STM32H7 与外置高精度 ADC(Master 模式)通信时,标准 SPI Slave 模式会因 ADC 停止采样后 DCLK 持续工作,接收无效干扰数据导致失序。核心解决方案是启用 SPI 的 NSS 脉冲模式(TI 模式),复用 ADC 的 DRDY 信号作为 NSS 触发源,其时序特性与 ADC 完美匹配,无需替换 DSP/FPGA,即可低成本解决通信问题。本文基于 ST 官方 LAT1398 应用笔记,详解问题根源、模式原理及软硬件实现步骤。
1. 核心问题与现象
1.1 应用场景
- 硬件:STM32H7(SPI Slave 模式)+ 外置高精度 ADC(SPI Master 模式),用于工业测量仪器;
- ADC 特性:工作于 Master 模式,DRDY 信号下降沿输出数据,停止采样后 DCLK 仍持续输出时钟;
- 通信需求:STM32H7 需准确接收 ADC 有效采样数据,过滤停止期间的无效信号。
1.2 标准 SPI 模式的核心缺陷
- 连续采样时:ADC 正常输出数据,STM32H7 接收正常;
- 停止采样时:DCLK 持续工作,STM32H7 的 SPI Slave 模式会持续接收无效数据,导致后续有效数据接收失序;
- 关键矛盾:标准 SPI 无 “数据帧边界识别” 机制,无法区分有效数据与时钟干扰。
2. NSS 脉冲模式(TI 模式)核心原理
STM32H7 的 SPI NSS 脉冲模式(手册称 TI 模式)专为这类特殊 Master 设备设计,核心优势是通过 NSS 脉冲界定数据帧,匹配非标准 SPI 时序:
2.1 模式启用方式
- 配置寄存器:通过
SPI_CFG2寄存器的SP[2:0]位启用 NSS 脉冲模式; - 简化配置:启用后无需设置
CPOL(时钟极性)、CPHA(时钟相位)、LSBFRST(字节序)等参数,时序固定适配。
2.2 关键时序特性(与 ADC 完美匹配)
- 数据帧启动:每帧数据传输前,NSS 引脚会产生一个时钟周期的高电平脉冲,作为帧起始标志;
- 采样时序:SCK 上升沿发送数据,下降沿采样接收,与 ADC DRDY 下降沿输出数据的时序完全同步;
- 帧边界界定:有效数据帧介于两个 NSS 脉冲之间,停止采样时无 NSS 脉冲,无效 DCLK 不会触发数据接收。
3. 解决方案:软硬件协同改进
3.1 硬件接线调整(核心改动)
复用 ADC 的 DRDY 信号作为 STM32H7 SPI 的 NSS 引脚,具体接线:
- ADC → STM32H7:DCLK→SCK、DOUT0→MOSI、DRDY#→NSS;
- 原理:DRDY 信号下降沿输出数据时,同步触发 NSS 脉冲,仅在有效数据帧期间启动 SPI 接收,过滤无效 DCLK 干扰。
3.2 软件配置步骤(关键代码)
(1)启用 NSS 脉冲模式
通过配置
SPI_CFG2寄存器启用模式,无需复杂时序参数配置:// 启用SPI NSS脉冲模式(TI模式),以SPI1为例
SPI1->CFG2 &= ~SPI_CFG2_SP_Msk; // 清除原有配置
SPI1->CFG2 |= SPI_CFG2_SP_0 | SPI_CFG2_SP_1; // 具体位值参考RM0455,按芯片型号调整
(2)SPI 核心配置要点
- 模式选择:Slave 模式,无需配置 CPOL、CPHA 等时序参数(模式内固定);
- 数据长度:按 ADC 输出数据宽度配置
DSIZE[4:0]位; - 中断使能:启用 SPI 接收中断,在中断中读取有效数据。
3.3 效果验证
- 有效数据接收:仅当 ADC 输出 DRDY 信号(NSS 脉冲触发)时,STM32H7 才启动 SPI 接收,匹配 DOUT0 数据输出时序;
- 干扰过滤:ADC 停止采样后,无 DRDY 信号(NSS 无脉冲),即使 DCLK 持续工作,SPI 也不接收数据,彻底解决失序问题。
4. 关键注意事项
- 模式专属特性:启用 NSS 脉冲模式后,
SSOM(NSS 输出模式)、SSOE(NSS 输出使能)、SSIOP(NSS 输入输出极性)等寄存器位无需配置,配置后无效; - 信号极性匹配:确保 ADC DRDY 信号为低电平有效,与 NSS 脉冲触发逻辑一致;
- 寄存器参考:具体
SPI_CFG2的SP[2:0]位配置值,需查阅 STM32H7 参考手册 RM0455 对应章节; - 成本优势:无需替换为 DSP/FPGA,利用 STM32H7 SPI 外设原有模式,降低开发周期与硬件成本。
STM32H7 的 SPI NSS 脉冲模式(TI 模式)是解决非标准 SPI Master 设备通信的关键方案。本次应用中,通过复用 ADC 的 DRDY 信号作为 NSS 触发源,既匹配了 ADC 的时序特性,又过滤了无效时钟干扰,避免了硬件方案升级。这一案例证明,灵活运用 STM32 外设的特殊模式,可应对各类定制化通信需求,无需过度依赖高端处理器。
阅读全文
216