genokolar / notes

格诺的记录
https://notes.glab.online
17 stars 3 forks source link

nRF51 BLE60蓝牙双模机械键盘(蓝牙4.0) #2

Open genokolar opened 5 years ago

genokolar commented 5 years ago

2019年开年后,发现了Jim的蓝牙开源方案,基于NRF51822,感觉很不错,决定折腾蓝牙机械键盘。从1月底开始研究,购买需要的开发板、蓝牙模块、元件,打板PCB,研读源码,到最终完成成品,耗时一个月。现在基本完成,整个工程学了很多东西,比如Keli编译、单片机烧录固件、对芯片数据手册进行学习等。最终的蓝牙键盘个人也比较满意。感谢Jim开放的源代码,以及细心的解答各种问题,以下是相关制作过程的记录:

PCB图片

A、购买芯片工具

  1. 蓝牙主控板:RF-BM-ND01 点击淘宝购买

  2. Jlink烧录工具:J-OB V2

  3. 其他芯片:CH552T(USB)、TP4057(锂电池充电)、XC6206P30(3.3V稳压)

  4. 整个BOM清单详见表格(以60%键盘为例,部分元件需要根据轴的个数确定数量)

  5. 成本方面给大家也算一下:

B、软件下载安装

  1. Keil 5 --编译工具 用于编译蓝牙芯片APP DFU两部分固件,并烧录固件

  2. Jlink驱动 --烧录工具驱动 官网最新版下载

    以上软件分享地址:https://pan.baidu.com/s/1PkUEUNOMQgMm7IrDNyoOjA

  3. Code Blocks --编译工具,开源免费 点击进入官网下载地址

  4. SDCC --C编译工具,开源免费 点击进入官网下载地址

    以上Code Blocks和SDCC用于编译CH544的固件。

  5. WCHISPTool --CH55X固件烧录工具(可通过USB烧录) 点击进入官网下载地址

C、源代码电路板

  1. 键盘固件等源码:https://github.com/genokolar/nrf51822-keyboard

  2. PCB电路 :https://github.com/genokolar/GT_BLE60_Keyboard_PCB 注:可以直接打板使用。

  3. 预编译键盘固件、配例下载工具: https://github.com/genokolar/nrf51822-keyboard/releases

D、学习教程推荐

  1. Keil的系列教程 : https://www.strongerhuang.com/Keil/Keil系列教程.html

  2. Jlink烧录固件 : https://blog.csdn.net/weixin_42108484/article/details/80533032

E、键盘使用说明

TKG图片 配例下载

F、制作过程记录

G、更改调试记录

  1. 现在CH552和NRF51822通讯,CH552采用的uart1接口,CH552的fsys设置为12Mhz,uart1波特率设置为57600。同时NRF51822的时钟频率为16Mhz,波特率设置的57600。实测,两者设置波特率不能高于57600,时钟频率CH552仅能设置为12Mhz,否则均无法进行通讯。(但根据官方说明,在5V供电,24Mhz主频下,波特率可以设置为115200,但是实测不行,待查)(2019年6月19日更新:已经可以再24Mhz、115200波特率下通讯

  2. 当前几个地址记录:SD: ROM1 : 0x0 :0x18000,RAM1: 0x20000000 : 0x2000; APP : ROM1 : 0x18000 : 0x24000,RAM1 : 0x20002000 : 0x2000 ; BL :ROM1 : 0x3C000 : 0x3C00,RAM1 : 0x20002C00 : 0x1380 : RAM2 : 0x20003F80 : 0x80; --- 其中softdevice需要占用96KB,APP空间为144KB,实际占用约38KB,Bootlaoder空间为16KB,实际占用约12KB

  3. SDK12.3的地址记录:SD: ROM1 : 0x0 :0x1B000,RAM1: 0x20000000 : 0x2000; APP : ROM1 : 0x1B000 : 0x25000,RAM1 : 0x200025E0 : 0x1A20 ; BL :ROM1 : 0x3AC00 : 0x5000,RAM1 : 0x200025E0 : 0x19A0 : RAM2 : 0x20003F80 : 0x80;

  1. 二合一按键在USB模式下第一次短按失效,已经修复。其实就是第一次短按,由于识别二合一是按键还是MOD是在释放的时候完成的,在释放的时候会同时发送按下和释放按键的数据包,而蓝牙主控和USB串口通讯速率达不到,造成了丢包,直接更改tmk的源码加一个10ms的延迟就好了。

genokolar commented 5 years ago

留言测试

YCF commented 5 years ago

咦,我们用一样的博客应用,而且都是键盘侠。

genokolar commented 5 years ago

咦,我们用一样的博客应用,而且都是键盘侠。

我从你的博客看到的。哈哈~!!老罗

scofieldpeng commented 5 years ago

google来的,非常赞,如果早看到就好了,现在在折腾无线优联+usb2usb的方案,收藏一下,这阵子忙完了学习一下,非常感谢:-)

Steve0x2a commented 5 years ago

你好 是否能提供一下Kicad的工程文件呢 希望修改一下图案

genokolar commented 5 years ago

改图案什么的不太好吧。要么就自己建,原理图和bom都有的。暂时不公开工程文件。

Steve0x2a commented 5 years ago

改图案什么的不太好吧。要么就自己建,原理图和bom都有的。暂时不公开工程文件。

好的 还是十分感谢

jimmy54 commented 5 years ago

很详细,有没有能买到样品呢?求一个

billyjr commented 4 years ago

刚刚买了楼主一块PCB,到手看看怎么样

BurningBright commented 3 years ago

要是早点看到就好了,也是折腾Jim的蓝牙开源方案。

BurningBright commented 3 years ago

咦,我们用一样的博客应用,而且都是键盘侠。

你的飞线键盘好sao,不愧是键盘侠