文章目录
- [AK35I Pro V2](#AK35I Pro V2)
-
- [1. MCU SN32F299](#1. MCU SN32F299)
-
- [SN32F299 内存映射](#SN32F299 内存映射)
- [2. Bootloader](#2. Bootloader)
- [3. TFT 135x240 1.14inch](#3. TFT 135x240 1.14inch)
- [4. 键盘](#4. 键盘)
- [5. Flash PY25Q128HA](#5. Flash PY25Q128HA)
- [6. 蓝牙 CH582F](#6. 蓝牙 CH582F)
- [7. 扩展板](#7. 扩展板)
- [8. 电池 606090 3.7V 4000mAh](#8. 电池 606090 3.7V 4000mAh)
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 电池