跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Blogs
  3. YTM32B1MD24 SENT/SPC 收发 Demo:基于 eTMR、MPWM 与 DMA

YTM32B1MD24 SENT/SPC 收发 Demo:基于 eTMR、MPWM 与 DMA

已定时 已固定 已锁定 已移动 Blogs
1 帖子 1 发布者 44 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • DigaD 离线
    DigaD 离线
    Diga
    编写于 最后由 编辑
    #1

    本文介绍两套基于云途 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,会先发送主通道响应,再由对应的跟随通道发送一帧。

    1. 按各工程 README 中的接线表连接对应通道和公共地,并使用兼容的 SPC / SENT 电气接口。
    2. 分别运行 RX 和 TX 工程,打开 RX 串口日志,参数为 115200 baud、8N1、无流控。
    3. 按 RX README 的说明,通过调试器设置通道和 trigger 宽度,发起一次请求。
    4. 等待本次请求完成,检查主通道及跟随通道的接收日志,再发起下一次请求。

    本文上传了两者互相配合的测试报告: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,建议先阅读接线与使用说明,再根据自己的应用调整配置。

    1 条回复 最后回复
    1

  • 云途开发生态介绍

    快速上手云途开发生态

  • 云途论坛规则/Yuntu Forum Rules

    发帖前请查看

  • YT CONFIG TOOL调查问卷

    帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

  • can
    29
    demo
    26
    uds
    14
    lin stack
    13
    fbl
    6
    md14
    6
    yt-link
    6
    adc模块
    4
    Online Users
    • 登录

    • 登录或注册以进行搜索。
    • 第一个帖子
      最后一个帖子
    0
    • 版块
    • 最新
    • 标签
    • 热门