docs: 增加手环主动发射 SOS 和获取出厂固定 ID 芯片硬件 UID 规划

This commit is contained in:
2026-07-09 11:03:18 +08:00
parent fdf0c5ed1b
commit 89ff52c9b3
15 changed files with 96 additions and 15 deletions

View File

@@ -35,7 +35,14 @@ bit is_sos_pressed = (KEY_SOS1 == 0) || (KEY_SOS2 == 0);
```
该标志后续被直接送入消抖状态机和长按计时器,生成 `KEY_SOS_SHORT``KEY_SOS_LONG` 事件,从而完全对上层业务层屏蔽双按键硬件细节。
### 1.3 SPI 复用与马达防噪硬件规避设计
### 1.3 出厂唯一固定 ID (Factory ID) 的设计与获取
手环在主动发射对码广播与主动 SOS 报警时,需要以唯一的出厂 ID (Factory ID) 作源地址以供接收端IPC进行辨识。
为避免每台手环烧写不同固件,程序从 STC32G 内置的全球唯一硬件 ID (UID) 中提取地址码:
* **硬件读取源**STC32G 芯片在出厂时会在程序存储器ROM的末尾扇区存储一个 **7 字节的唯一 ID**,同样在 RAM 空间的特定区(如 `0xF1`~`0xF7`)也会在启动时映射。
* **Factory ID 生成**:系统初始化时,通过读取 UID 寄存器,将其中的 3 个字节提取出来,并进行 `& 0x0FFFFF`20位掩码限制以符合 EV1527 的 20 位地址规范),存入全局变量 `bracelet_factory_id` 中。若读取 UID 失败,则默认使用硬编码预置 ID `0x37A86UL`
### 1.4 SPI 复用与马达防噪硬件规避设计
由于 `P2.5` 同时作为马达引脚和硬件 SPI 的 SCLK 引脚,为了避免在高频发送 24-bit 灯效数据时引脚电平抖动导致马达异常鸣叫:
1. **发送前**:调用 `EA = 0` 关闭总中断。临时将 `P2.5` 引脚配置为 **高阻输入模式**。此时 SCLK 输出时钟不会使马达导通。