本帖最后由 skycham 于 2021-8-16 07:21 编辑


  • 开场白
       首先要感谢本次活动的主办方和赞助方——大联大WPI和面包板社区給了我这个宝贵的测评名额。申请这块开发板的主要原因是我对这款开发板简介里面提到的Anti Ghost Key和2K Report Rate这两个功能点非常的感兴趣,想要体验一下这两个Feature。有可能的话,在这基础上,进一步开发一套游戏装备。

  • 开发板开箱

彩盒包装
微信图片_20210816045506.jpg
开发板型号
微信图片_20210816045509.jpg
红色的开发板主体、银色的MicroUSB数据线
微信图片_20210816045447.png
USB Audio应用需要的耳机
微信图片_20210816045501.png
USB Audio应用需要的耳机
微信图片_20210816045504.png
开发板正面
微信图片_20210816045536.png
开发板反面
微信图片_20210816045542.png

  • 开发板介绍
我们来看下开发板上面主要的芯片型号吧。

image.png
image (1).png
  1. 主芯片:NXP LPC55
  2. Sensor:PWM3389DM
  3. LDO1:NCP161ASN180
  4. LDO2:NCP161ASN330
  5. Audio Stereo:SA8900
  6. Audio Amplifier:SV3H725
  7. LED Array:ISD4516VGBC1MAC1
  8. NFC:LPC8N04
下面这段引用自WPI官方介绍。
本开发套件的核心技术优势:
相关软硬件设计,可提供客户快速开发;
LPC55Sxx硬件加速器开发设计,可以协助Key Scan的运用;
LPC55Sxx对应PixArt PMW3389的光学Sensor的设计及程式;
LPC55Sxx I2S的设计,可以针对不同的Audio Res做不同对应;
主动式RGB LED的相关设计,并有相关DMA控制模式;
后续可搭配其他板子做延伸开发。

  • 芯片介绍
如上文所述,开发板背面的贴纸上面写的是NXP LPC55S2X,然后通过查看文档和芯片上的丝印,我们可以了解到开发板上面实际SMT的芯片型号是LPC55S2x系列里面的LPC55S26JBD100,封装是HLQFP100,NXP称之为SOT1570-3。

image (2).png
image (3).png
通过查看Datasheet,我们可以看到这颗芯片是系列里面的次旗舰,对于这款芯片的资源和性能,总的来说就一个词:奢华,奢华到用来做键鼠应用我都觉得有点杀鸡用牛刀。
image (4).png
另外贴一下Cortex M33内核的介绍,这是我认为的LPC55系列相对于之前我们在公开市场常见的STM32F103/303/401等MCU最大的优势。LPC55S2的内核是ARM公司的Cortex M33。下面我就借用ARM公司的官网图片简单介绍一下M33。
  1. Cortex-M33 =
  2. Cortex-M3/M4
  3. + 性能提升(实测大约18%)
  4. + 专用栈溢出硬件检测
  5. + 指令集小改进
  6. + 安全扩展(TrustZone for Armv8-M)
  7. + MPU开发者模型的友好化改进
image (5).png

  • 开发板评测

  • Keyboard 测试

微信图片_20210816054123.png
开发板上面自带了4*4 按键矩阵。
微信图片_20210816054106.png
我用https://blog.seethis.link/scan-rate-estimator/这个网站来测试按键时延。
当然,因为电脑性能、浏览器性能等诸多复杂因素,网站上实际显示的时延值肯定是大于开发板本身能响应的时延值。
image (6).png

  • Mouse 测试
开发板上面自带的是台湾原相PixArt的PWM3389光学引擎,这也是一颗公开市场上常见的高端Sensor。
微信图片_20210816054443.png
微信图片_20210816054438.png
开发板底部用热熔胶贴了一块亚克力板,这样我们就能在测试鼠标垫上比较顺畅的滑动了,不会让开发板本身全是针脚的底面干扰我们的测试。
测试鼠标回报率,我用的是https://zowie.benq.com/en-us/support/mouse-rate-checker.html这个网站和MouseTest这个软件。
image (7).png

image (8).png
再来看下大联大给的demo吧,让我们来看一下整体的代码流程。
1.png
首先最开始,是设置系统时钟频率。
这里是将MCU的时钟频率设置为96MHZ,并没有达到MCU最高频率150MHZ。猜想可能设置为96MHZ是为了后面配合其他外设和通讯协议的频率。
然后就是设置音频时钟,以及USB时钟。
在音频时钟这里,是把PLL0设置为24MHz然后给MCLK和I2S用。
2.png
接下来是Keyboard模块引脚的初始化。
以及两个SPI协议的初始化。第一个是把SPI0分配给了ISD4516VGBC1MAC1的RGB LED灯用的,第二个是把SPI8分配给了原相科技的PMW3389光学sensor用的。
后面接下来都是声音部分,先是进行了音频解码器SA8900的I2C、MCLK、I2S的初始化。
为了提升效率,LPC5526在与SA8900通讯的时候,为了提升传输效率,这里使用了DMA传输。
3.png
这部分代码,最开始是音频解码器SA8900的初始化。
SA8900_MainGain应该是设置增益。
接下来是PWM3389的初始化。
从EZH开始,应该是硬件加速器的KeyScan代码设置了。
但是EZH的这部分代码,原本想查看他的源码,可惜这部分是编译成lib了,无法查看源码。

开发板的简评就先介绍到这里,更详细的功能测试我会找机会继续的,谢谢阅读。