键盘 AK35I Pro V2 分析
文章目录
- AK35I Pro V2
- 1. MCU SN32F299
- SN32F299 内存映射
- 2. Bootloader
- 3. TFT 135x240 1.14inch
- 4. 键盘
- 5. Flash PY25Q128HA
- 6. 蓝牙 CH582F
- 7. 扩展板
- 8. 电池 606090 3.7V 4000mAh
AK35I Pro V2
AK35I Pro V2 测评视频
键盘外壳使用卡扣固定, 外壳没有螺丝, 将外框向外翘起, 用撬棒进行脱扣即可打开
【看键】1我常见键盘主控都有啥 提到华奋达是常见键盘主控之一, HFD 芯片就是华奋达的芯片
主控为 HFD80CP100 229GNWD0a
1. MCU SN32F299
FPB/AJAZZ-AK820-PRO 提到 HFD80CP100 就是 SN32F299
工作频率 48MHz
SonixQMK/sonix_dumper 提到了利用 SWD 接口读取程序 Flash 的方法
如何安装 - SonixQMK Docs 提到了如何向 HFD 写入程序的方法, 实际利用 Bootloader 的自举能力覆写程序 Flash
SN32F299 内存映射
地址下界 | 地址上界 | 大小 | 名称 | 注释 |
---|---|---|---|---|
00000000H | 00040000H | 256KB | on-chip FLASH | 用户程序 |
1FFF0000H | 1FFF1000H | 4KB | Boot ROM | Bootloader |
1FFF2000H | 1FFF2800H | 2KB | Information Block | |
20000000H | 20008000H | 32KB | SRAM | 内存 |
40000000H | 40064000H | 400KB | Peripheral | 外设功能寄存器 |
60000000H | 70000000H | 256MB | EBI BANK | |
A0000000H | B0000000H | 256MB | SPI FLASH | |
E000E000H | E000ED00H | 3.25KB | NVIC | |
E000ED00H | E000F000H | 768B | Debug Control |
2. Bootloader
空格下方藏有引出的 Boot 引脚和 GND, 短接后冷启动进入 Bootloader 模式
Bootloader 模式启动 USB 外设, 提供 USB HID 接口进行通信
将键盘连接到电脑后, 对 USB 数据进行抓包可得到如下参数
设备 DEVICE
键 | 值 | 含义 |
---|---|---|
idVendor(VID) | 0x0C45(Sonix Technology Co., Ltd) | 生产商ID, 由厂商向 USB-IF 申请 |
idProduct(PID) | 0x7140(SN299) | |
bcdDevice(REV) | 0x0121 |
接口 INTERFACE
Number | Class | SubClass | Protocol |
---|---|---|---|
0 | 3 (HID) | 0 (No Subclass) | 0 |
暂时未找到有 Sonix 官方文档对 Bootloader 的功能进行描述, 不过 sonixflasher.c 给出了通过 libusb/hidapi 与 Bootloader 通信的方法
3. TFT 135x240 1.14inch
其中 #3 和 #4 通过二极管后再接到MCU
淘宝上"类似产品"接口定义如下, 替换后可直接点亮
主控 ST7789V, 采用 SPI 协议通信, SCL 上使用 24MHz 的方波, 通过 SDA 进行半双工通信(实际疑为单工, 只写不读)
NO. | Symbol | Description |
---|---|---|
1 | LEDA | LED Anode |
2 | GND | Power Ground. |
3 | RESET | This signal will reset the device,Signal is active low. |
4 | RS | Display data/command selection pin in 4-line serial interface. |
5 | SDA | SPI interface input/output pin. |
6 | SCL | This pin is sed to be serial interface clock. |
7 | VDD | Power Supply for Analog |
8 | CS | Chip selection pin. Low enable, High disable. |
值得一提的是该 TFT 的显示区域的显存地址不是从 (0, 0) 到 (135, 240), 而是从 (52, 40) 开始到 (187, 280)
4. 键盘
5. Flash PY25Q128HA
PY25Q128HA_H 容量 16MB(用满 24 位地址的全部空间), 采用 SPI Flash/EEPROM 协议, 与其他类似Flash芯片的操作方式相同, 如 MX25L1605D
地址 0x330100~0x559C60 3888000B=60x240x135x2B≈3.70MB 为开机动画, 下面是提取数据后重制的 GIF 图
- 共 60 帧, 帧率 20Hz, 每 50ms 一帧
- 每帧大小 648000B, 宽 240 高 135
- 每像素 2B, 颜色编码 RGB565
- RRRRRGGG GGGBBBBB
- R: 低字节高5位
- G: 低字节低3位 + 高字节高3位
- B: 高字节低5位
- 每帧读取用时 21.5ms
6. 蓝牙 CH582F
CH582F 采用QFN28封装, 底部有一大片 #0 引脚用于接地, 其余引脚围绕边缘铺开, 外接一个有源 32MHz 晶振
7. 扩展板
开关拨向 BT 时, BT 引脚接地
开关拨向 RF 时, RF 引脚接地
开关拨向 Win 时, Win 引脚接地
8. 电池 606090 3.7V 4000mAh
板载 2 块 606090 电池