文章目录
之前分享了一个纯 PCB 实现的键盘 《一个开源纯 PCB 键盘项目,只有信用卡大小》,不过原作者分享的 PCB 中存在不少问题,包括 MCU GND Pad 未连接、天线设计可能不合理等,以及作者一直没有完成可工作的固件,因此一直也没能让它真正跑起来。
不过最近在 GitHub 上找到另外一个开源实现,设计还是参考了原作者,但是新方案更换了 MCU 为 CH585,并且是实际打板验证过了的纯 PCB 键盘,也已经有一个可运行的固件可供使用。
项目地址: https://github.com/openwch/ch585
CH585 介绍
官方产品介绍: https://www.wch.cn/products/CH585.html
CH585 是集成 BLE 无线通讯和高速 USB 及 NFC 的 RISC-V MCU 微控制器。片上集成了 2Mbps 低功耗蓝牙 BLE 通讯模块、USB 全速控制器及收发器、USB 高速控制器及收发器(480Mbps)、NFC 近场通信无线接口、段式 LCD 驱动模块、LED 点阵屏接口、2 个 SPI、4 个串口、14 路 ADC、触摸按键检测模块等丰富的外设资源。
相比 CH582,CH585 的参数要高上很多了,主频来到了 78MHz,SRAM 有 128K,能玩的就相当多了。
原理图和 PCB 设计
从原理图看,使用 CH585M 代替 CH582M 相当于是 Pin2Pin 替换了,引脚数量一样,引脚位置也基本一样。
跟原作者的原理图相比,只需要更换一些外围器件的参数。
PCB 键盘原理
这个开源项目还完整了介绍了 PCB 触摸键盘的原理,简单来说就是通过手指接触 PCB,会改变焊盘与 GND 间的电容值,通过 ADC 来检测手指按下与未按下时的电压差,就可以判断是否按下键盘。
焊盘布局与原作也没有什么区别,还是行列交叉,本身检测方式与普通键盘也一样,采用行列扫描的方式。
这个 PCB 键盘总共 12 行 4 列,在工程中是定义成了 6 列 8 行,列是左右分开复用了,不知道是不是出于触摸检测灵敏度考虑。
顺便发现在这个 PCB 键盘的使用场景下,其实已经把 CH585M 的 14 路 ADC 都用掉了,如果再要增加触摸按键数量,可能需要另外想办法了?
PCB 布线
新项目的 PCB 布线也没有特别大变化,蓝牙天线变了,触摸按键的走线都走背面了,其他基本没动。
键盘固件
在 ch585/Application/CapacitiveTouchKeyboard/software
目录中可以找到已经开发完成的固件,使用 MounRiver Stduio 就可以编译。
在 APP/hidkdb.c
中,可以看到通过 USB HID Keyboard scan code
定义了键盘矩阵,理论上也可以改成一个适配 macOS 的键盘 😃。
顺便提一嘴,沁恒竟然基于 Visual Studio 重新开发了他们的 IDE,新的 MounRiver Studio v2.1.0 不再是基于 Eclipse 了,而且还增加了 macOS 的支持,真是 Mac 用户搞嵌入式开发的福音。
拿这个 PCB 键盘的项目试了下,编译相当顺滑,一次成功,等后面再仔细体验体验。
0 条评论。