一、电路要求
4.87K 4.87K 直连 直连
USBi P4 ──────── CLK ──── MOSI ──── CS ──── MISO ────┐
│ │ │ │ │
MCU SPI4 ──[33R]── CLK ──── MOSI ──── CS ──── MISO ───┤── ADSP_SPI_* 网络
R131 R132 R133 R130 │
├──[33R R7]── DPI_P03 (CLK)
├──[33R R2]── DPI_P01 (MOSI)
├──[33R R9]── DPI_P04 (CS) ──[10K R12]── 3.3V
├──[33R R4]── DPI_P02 (MISO)
└── M25P16 (CLK/MOSI/MISO共用, CS独立=DPI_P05)
| USBi 线 | 串联电阻 | 原因 |
|---|---|---|
| CLK | 4.87K | 隔离 Boot 时 DSP 33R 驱动,无上拉冲突 |
| MOSI | 4.87K | 同上 |
| CS | 直连 | R12 10K 上拉,串大电阻会导致 CS 拉不低 |
| MISO | 直连 | 输入信号,不驱动总线 |
| GND | 直连 | 共地 |
二、代码要求
USBi 调试模式(SigmaStudio 下载 TOPO):
// main.c 中需要注释掉:
// USBi_Init(); // ← SPI4 不初始化,PE11-14 浮空
// DoDspTopoSend(); // ← MCU 不发 TOPO,由 USBi 发
// 保留不动:
InitSSMetaDataNew(); // ← 仅解析 Flash 常量,无 SPI 操作
DSP_Work(); // ← 释放 DSP 复位,让 DSP 从 M25P16 Boot
CheckDspIsWork(); // ← 检测 DSP 启动,使用 GPIO(PC9),不涉及 SPI4
MCU 正常运行模式(产品运行):
// main.c 中恢复:
USBi_Init(); // ← 初始化 SPI4
DoDspTopoSend(); // ← MCU 发送 TOPO 到 DSP
三、操作流程
USBi 调试时:
1. 烧录 USBi 调试模式固件(注释掉 USBi_Init/DoDspTopoSend)
2. 上电 → DSP 从 M25P16 Boot → LED 灭(框架就绪)
3. 打开 SigmaStudio → 连接 USBi → 下载 TOPO
4. DSP LED 闪烁 = TOPO 加载成功
切回正常模式时:
1. 关闭 SigmaStudio
2. 断电
3. 恢复代码(取消注释 USBi_Init/DoDspTopoSend)
4. 拔掉 USBi USB 线(或保留,4.87K 隔离)
5. 上电 → MCU 发 TOPO → DSP 运行
四、注意事项
- 断电前先关 SigmaStudio,防止 USBi 挂死总线
- 不要同时使用 MCU 和 USBi 发送 SPI 数据,两个 Master 会冲突
- 逻辑分析仪可直接并联在 ADSP_SPI_* 网络上(高阻输入,不需要串电阻)