音箱控制面板功能说明
LED 功能分配
| 索引 |
引脚 |
类型 |
功能 |
说明 |
| 0 |
PA1 |
反并联 |
低音音量段1(SW1) |
LED1 |
| 1 |
PB7 |
反并联 |
低音音量段2(SW1) |
LED2 |
| 2 |
PB6 |
反并联 |
低音音量段3(SW1) |
LED3 |
| 3 |
PB5 |
反并联 |
低音音量段4(SW1) |
LED4 |
| 4 |
PA0 |
反并联 |
低音音量段5(SW1) |
LED5 |
| 5 |
PB2 |
反并联 |
主音量段6(SW2) |
LED6 |
| 6 |
PB4 |
反并联 |
主音量段7(SW2) |
LED7 |
| 7 |
PB3 |
反并联 |
主音量段8(SW2) |
LED8 |
| 8 |
PA12 |
反并联 |
主音量段9(SW2) |
LED9 |
| 9 |
PB1 |
反并联 |
主音量段10(SW2) |
LED10 |
| 10 |
PA4 |
高电平点亮 |
输入源指示灯 |
LED11 (AUX=常亮, BT=灭, BT断开=1s闪) |
| 11 |
PA8 |
反并联 |
电量灯1(正向)/灯2(反向) |
LED12 |
| 12 |
PA11 |
反并联 |
电量灯3(正向)/灯4(反向) |
LED13 |
电池电量 LED 状态表
控制原理
每个物理引脚控制两颗反并联LED,通过时间槽(1ms周期)分时复用实现独立控制:
- 槽A(前0.5ms): ODR=1 → 正向灯亮/反向灯灭
- 槽B(后0.5ms): 由
g_batSlotState 控制,要亮则 ODR=0,不亮则浮空输入(高阻态)
命名规则
| 代码/文档名 |
硬件 |
说明 |
| 灯1 |
LED12正向(PA8=高) |
第1颗电量灯 |
| 灯2 |
LED12反向(PA8=低) |
第2颗电量灯 |
| 灯3 |
LED13正向(PA11=高) |
第3颗电量灯 |
| 灯4 |
LED13反向(PA11=低) |
第4颗电量灯 |
g_batSlotState[0]=灯1, [1]=灯2, [2]=灯3, [3]=灯4
段位划分
| 电量范围 |
level |
亮的灯 |
| 0% |
0 |
全灭 |
| 1~24% |
1 |
灯1 |
| 25~49% |
2 |
灯1+灯2 |
| 50~74% |
3 |
灯1+灯2+灯3 |
| 75~100% |
4 |
全亮 |
状态表
| 状态 |
灯1(LED12正) |
灯2(LED12反) |
灯3(LED13正) |
灯4(LED13反) |
| 0% |
·灭 |
·灭 |
·灭 |
·灭 |
| 1~24% 不充电 |
★常亮 |
·灭 |
·灭 |
·灭 |
| 1~24% 充电 |
✦1s闪 |
·灭 |
·灭 |
·灭 |
| 25~49% 不充电 |
★常亮 |
★常亮 |
·灭 |
·灭 |
| 25~49% 充电 |
★常亮 |
✦1s闪 |
·灭 |
·灭 |
| 50~74% 不充电 |
★常亮 |
★常亮 |
★常亮 |
·灭 |
| 50~74% 充电 |
★常亮 |
★常亮 |
✦1s闪 |
·灭 |
| ≥75% 不充电 |
★常亮 |
★常亮 |
★常亮 |
★常亮 |
| ≥75% 充电未满 |
★常亮 |
★常亮 |
★常亮 |
✦1s闪 |
| 充满(100%) |
★常亮 |
★常亮 |
★常亮 |
★常亮 |
| 充电异常 |
✦1s闪 |
·灭 |
·灭 |
·灭 |
注: 充满标志(g_chgFull==1)时不论是否在充电,4颗灯全亮常亮。
闪烁周期
- 充电闪烁: 1s (500个1ms周期亮 + 500个1ms周期灭)
- 充电异常闪烁: 1s
编码器功能
| 控件 |
引脚 |
功能 |
说明 |
| SW_KEY |
PF3 |
音源切换 |
BT↔AUX循环,按下触发,松开生效 |
| SW1编码器A |
PA5 |
低音音量- |
ITEM 0x0D |
| SW1编码器B |
PA6 |
低音音量+ |
旋转方向 |
| SW2编码器A |
PB0 |
主音量LR- |
ITEM 0x0C |
| SW2编码器B |
PA7 |
主音量LR+ |
旋转方向 |
| SW1_KEY |
PB8 |
清除回连 |
长按5s触发,ITEM 0x05 |
| SW2_KEY |
PA15 |
快速静音 |
PGA_MUTE,旋转编码器恢复 |
变速调节
编码器根据旋转速度自动调整步进值:
| 速度 |
触发间隔 |
脉冲阈值 |
每次调节 |
适用场景 |
| 慢 |
>800ms |
4脉冲 |
1% |
精细调节 |
| 中 |
300~800ms |
2脉冲 |
2% |
正常调节 |
| 快 |
<300ms |
1脉冲 |
3% |
快速跨越 |
音量LED显示
音量范围 0~100% 映射为 10 段 LED 显示(每段10%):
- LED1~LED5: 低音音量(倒序从LED5→LED1逐级点亮)
- LED6~LED10: 主音量LR(倒序从LED10→LED6逐级点亮)
- 每颗灯两级(正向+反向),10段=5颗反并联LED
通讯协议 (UART2, 115200 8N1)
帧格式
AA CMD ITEM VALUE CRC (5字节固定长度)
CRC = CMD ^ ITEM ^ VALUE
命令类型
| CMD |
方向 |
说明 |
| 0x01 |
面板→主板 |
读查询 |
| 0x02 |
面板→主板 |
写设置 |
| 0x81 |
主板→面板 |
上报 |
| AA |
主板→面板 |
写成功ACK(单字节) |
写操作
| 用途 |
发送 |
成功回复 |
| 主音量 |
AA 02 0C PCT CRC |
AA |
| 低音音量 |
AA 02 0D PCT CRC |
AA |
| 切换蓝牙 |
AA 02 01 01 02 |
AA |
| 切换AUX |
AA 02 01 02 01 |
AA |
| PGA解除静音 |
AA 02 07 01 04 |
AA |
| PGA静音 |
AA 02 07 02 07 |
AA |
| 清除回连 |
AA 02 05 XX CRC |
AA |
变化上报 (5字节简写)
| 触发 |
帧 |
| 输入源/蓝牙/音频变化 |
AA 81 ITEM VALUE CRC |
| 电量变化 |
AA 81 09 PCT CRC |
| 充电状态变化 |
AA 81 0B STATUS CRC |
| 主音量变化 |
AA 81 0C PCT CRC |
| 低音变化 |
AA 81 0D PCT CRC |
开机/查询全部上报 (24字节)
AA 81 0B
01 [source] — 输入源
02 [bt_conn] — 蓝牙连接
03 [bt_audio] — 蓝牙音频
04 [dac_mute] — DAC静音
05 [reconn] — 回连状态
0C [vol_lr] — 主音量%
0D [vol_bass] — 低音音量%
07 [mute_sw] — 静音开关
09 [battery] — 电量%
0A [chg_full] — 充满状态
0B [chg_ing] — 充电中
[CRC]
数据项定义
| ITEM |
名称 |
权限 |
值范围 |
| 0x00 |
查询全部 |
只读 |
— |
| 0x01 |
输入源选择 |
读写 |
01=BT, 02=AUX |
| 0x02 |
蓝牙连接状态 |
只读 |
01=已连接, 02=已断开 |
| 0x03 |
蓝牙音频状态 |
只读 |
01=播放中, 02=已停止 |
| 0x04 |
DAC静音 |
读写 |
01=解除, 02=静音 |
| 0x05 |
清除回连 |
只写 |
任意值 |
| 0x07 |
PGA静音开关 |
读写 |
01=解除, 02=静音 |
| 0x09 |
电池电量 |
只读 |
0~100 |
| 0x0A |
充电充满 |
只读 |
0=未充满, 1=已充满 |
| 0x0B |
充电中 |
只读 |
0=未充电, 1=充电中, 0xFE=异常 |
| 0x0C |
主音量LR |
读写 |
0~100 |
| 0x0D |
低音音量 |
读写 |
0~100 |
上电流程
- 全亮(3秒): 所有LED全亮,同时每秒发一次查询全部
- 等待数据: 收到主板上报后立即更新各LED显示
- 进入主循环: 正常处理编码器/按键/协议通信
- 空闲查询: 30秒无操作自动查询一次保持同步