本帖最后由 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
主芯片:NXP LPC55
  • Sensor:PWM3389DM
  • LDO1:NCP161ASN180
  • LDO2:NCP161ASN330
  • Audio Stereo:SA8900
  • Audio Amplifier:SV3H725
  • LED Array:ISD4516VGBC1MAC1
  • 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。
    Cortex-M33 =
  • Cortex-M3/M4
  • + 性能提升(实测大约18%)
  • + 专用栈溢出硬件检测
  • + 指令集小改进
  • + 安全扩展(TrustZone for Armv8-M)
  • + 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了,无法查看源码。

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