YTM32B1MD24 SENT/SPC 收发 Demo:基于 eTMR、MPWM 与 DMA
-
本文介绍两套基于云途 YTM32B1MD24 的 SENT/SPC 通信 Demo,分别用于 SENT 数据发送和接收。工程使用 eTMR / MPWM 定时器与 DMA 完成波形输出及边沿采样,由软件处理协议编码、解码和 CRC,可用于学习 SENT/SPC 通信、对接传感器,或搭建收发联调环境。
工程说明
SENT 通过相邻下降沿的时间间隔传递数据。SPC 则采用主机触发、从机响应的方式:主机先在信号线上输出一个低电平 trigger,从机收到后返回 SENT 报文。
两个工程按 SENT 数据的传输方向命名,对应关系如下:
工程 SENT 功能 SPC 角色 适用场景 YTM32B1MD24_SENT_Rx接收并解码 SENT 报文 主机:发送 trigger,再接收响应 读取传感器数据、接收 TX Demo 的输出 YTM32B1MD24_SENT_Tx编码并发送 SENT 报文 从机:接收 trigger,再发送响应 模拟传感器输出、为接收端提供报文 两套工程均提供 eTMR 和 MPWM 实现。它们可以配合使用,也可以根据外部设备的协议和电气接口单独使用。
实现方式与支持功能
RX 通过定时器输入捕获记录下降沿时间戳,使用 DMA 搬运采样数据,再由软件识别 SYNC、状态位、数据及 CRC。TX 将报文编码为符号时长,通过定时器与链接 DMA 输出对应波形。
两端使用相近的工程结构:
app/main.c负责应用流程,spc_driver提供协议接口及 eTMR / MPWM 硬件实现,YCT 文件保存时钟、引脚和外设配置。支持的消息格式如下:
消息类型 ID 长度 数据长度 CRC Fast message 无 1~6 个 nibble,每个 nibble 为 4 bit CRC-4 Short slow message 4 bit 8 bit CRC-4 Enhanced slow message,4-bit ID 4 bit 16 bit CRC-6 Enhanced slow message,8-bit ID 8 bit 12 bit CRC-6 Slow message 通过多个 Fast message 的状态位传输,Short 和 Enhanced 格式分别需要 16 帧和 18 帧。
默认 SENT tick 为 3 µs,Fast 数据为 6 个 nibble。TX 默认生成 Fast CRC 并附加 Pause Pulse,RX 默认开启 Fast CRC 校验、Slow 解码和 Slow CRC 校验。
除 SPC 触发响应外,驱动也支持纯 SENT 收发:RX 可持续接收外部报文,TX 可由应用直接调用发送接口,发送时机由应用安排。
两套 Demo 如何配合使用
默认配置包含四个逻辑通道:SENT_CH0 / SENT_CH2 分别使用 eTMR / MPWM 完成 SPC 触发响应;SENT_CH1 / SENT_CH3 用于演示对应的纯 SENT 收发。TX 每接受一次有效 trigger,会先发送主通道响应,再由对应的跟随通道发送一帧。
- 按各工程 README 中的接线表连接对应通道和公共地,并使用兼容的 SPC / SENT 电气接口。
- 分别运行 RX 和 TX 工程,打开 RX 串口日志,参数为 115200 baud、8N1、无流控。
- 按 RX README 的说明,通过调试器设置通道和 trigger 宽度,发起一次请求。
- 等待本次请求完成,检查主通道及跟随通道的接收日志,再发起下一次请求。
本文上传了两者互相配合的测试报告:SENT_TX_RX_回归测试报告_2026-10-09.zip
例如,向 eTMR 对应的 SENT_CH0 发送 20 µs trigger,可观察一次 Fast 响应;使用 25 µs trigger,并逐次等待响应、重复 16 次,可观察完整的 Short slow message。这些宽度与消息类型的对应关系由本 Demo 定义,对接实际传感器时应以设备协议为准。完整 Slow 序列结束后,再切换响应类型或模块。
RX 默认打印原始报文及解码结果。TX 打印默认关闭,需要时可将
app/main.c中的APP_PRINT_ENABLE设为1U。串口仅用于日志输出,请求通过 RX 调试变量发起。具体引脚、配置项、API 和使用限制见各工程的
ReadMe.md。工程下载
- SENT RX Demo:YTM32B1MD24_SENT_Rx.zip 。
- SENT TX Demo:YTM32B1MD24_SENT_Tx.zip 。
每套工程附带
ReadMe.md,建议先阅读接线与使用说明,再根据自己的应用调整配置。
快速上手云途开发生态
发帖前请查看
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...