<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[YTM32B1MD24 SENT&#x2F;SPC 收发 Demo：基于 eTMR、MPWM 与 DMA]]></title><description><![CDATA[<p dir="auto">本文介绍两套基于云途 YTM32B1MD24 的 SENT/SPC 通信 Demo，分别用于 SENT 数据发送和接收。工程使用 eTMR / MPWM 定时器与 DMA 完成波形输出及边沿采样，由软件处理协议编码、解码和 CRC，可用于学习 SENT/SPC 通信、对接传感器，或搭建收发联调环境。</p>
<h2>工程说明</h2>
<p dir="auto">SENT 通过相邻下降沿的时间间隔传递数据。SPC 则采用主机触发、从机响应的方式：主机先在信号线上输出一个低电平 trigger，从机收到后返回 SENT 报文。</p>
<p dir="auto">两个工程按 <strong>SENT 数据的传输方向</strong>命名，对应关系如下：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>工程</th>
<th>SENT 功能</th>
<th>SPC 角色</th>
<th>适用场景</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>YTM32B1MD24_SENT_Rx</code></td>
<td>接收并解码 SENT 报文</td>
<td>主机：发送 trigger，再接收响应</td>
<td>读取传感器数据、接收 TX Demo 的输出</td>
</tr>
<tr>
<td><code>YTM32B1MD24_SENT_Tx</code></td>
<td>编码并发送 SENT 报文</td>
<td>从机：接收 trigger，再发送响应</td>
<td>模拟传感器输出、为接收端提供报文</td>
</tr>
</tbody>
</table>
<p dir="auto">两套工程均提供 eTMR 和 MPWM 实现。它们可以配合使用，也可以根据外部设备的协议和电气接口单独使用。</p>
<h2>实现方式与支持功能</h2>
<p dir="auto">RX 通过定时器输入捕获记录下降沿时间戳，使用 DMA 搬运采样数据，再由软件识别 SYNC、状态位、数据及 CRC。TX 将报文编码为符号时长，通过定时器与链接 DMA 输出对应波形。</p>
<p dir="auto">两端使用相近的工程结构：<code>app/main.c</code> 负责应用流程，<code>spc_driver</code> 提供协议接口及 eTMR / MPWM 硬件实现，YCT 文件保存时钟、引脚和外设配置。</p>
<p dir="auto">支持的消息格式如下：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>消息类型</th>
<th>ID 长度</th>
<th>数据长度</th>
<th>CRC</th>
</tr>
</thead>
<tbody>
<tr>
<td>Fast message</td>
<td>无</td>
<td>1～6 个 nibble，每个 nibble 为 4 bit</td>
<td>CRC-4</td>
</tr>
<tr>
<td>Short slow message</td>
<td>4 bit</td>
<td>8 bit</td>
<td>CRC-4</td>
</tr>
<tr>
<td>Enhanced slow message，4-bit ID</td>
<td>4 bit</td>
<td>16 bit</td>
<td>CRC-6</td>
</tr>
<tr>
<td>Enhanced slow message，8-bit ID</td>
<td>8 bit</td>
<td>12 bit</td>
<td>CRC-6</td>
</tr>
</tbody>
</table>
<p dir="auto">Slow message 通过多个 Fast message 的状态位传输，Short 和 Enhanced 格式分别需要 16 帧和 18 帧。</p>
<p dir="auto">默认 SENT tick 为 <strong>3 µs</strong>，Fast 数据为 <strong>6 个 nibble</strong>。TX 默认生成 Fast CRC 并附加 Pause Pulse，RX 默认开启 Fast CRC 校验、Slow 解码和 Slow CRC 校验。</p>
<p dir="auto">除 SPC 触发响应外，驱动也支持纯 SENT 收发：RX 可持续接收外部报文，TX 可由应用直接调用发送接口，发送时机由应用安排。</p>
<h2>两套 Demo 如何配合使用</h2>
<p dir="auto">默认配置包含四个逻辑通道：SENT_CH0 / SENT_CH2 分别使用 eTMR / MPWM 完成 SPC 触发响应；SENT_CH1 / SENT_CH3 用于演示对应的纯 SENT 收发。TX 每接受一次有效 trigger，会先发送主通道响应，再由对应的跟随通道发送一帧。</p>
<ol>
<li>按各工程 README 中的接线表连接对应通道和公共地，并使用兼容的 SPC / SENT 电气接口。</li>
<li>分别运行 RX 和 TX 工程，打开 RX 串口日志，参数为 115200 baud、8N1、无流控。</li>
<li>按 RX README 的说明，通过调试器设置通道和 trigger 宽度，发起一次请求。</li>
<li>等待本次请求完成，检查主通道及跟随通道的接收日志，再发起下一次请求。</li>
</ol>
<p dir="auto">本文上传了两者互相配合的测试报告：<a href="https://yt-static-main.oss-cn-shanghai.aliyuncs.com/nodebb/23/a0ebe7a7-732a-45fd-9948-3bfe0c994581.zip" rel="nofollow ugc">SENT_TX_RX_回归测试报告_2026-10-09.zip</a></p>
<p dir="auto">例如，向 eTMR 对应的 SENT_CH0 发送 20 µs trigger，可观察一次 Fast 响应；使用 25 µs trigger，并逐次等待响应、重复 16 次，可观察完整的 Short slow message。<strong>这些宽度与消息类型的对应关系由本 Demo 定义</strong>，对接实际传感器时应以设备协议为准。完整 Slow 序列结束后，再切换响应类型或模块。</p>
<p dir="auto">RX 默认打印原始报文及解码结果。TX 打印默认关闭，需要时可将 <code>app/main.c</code> 中的 <code>APP_PRINT_ENABLE</code> 设为 <code>1U</code>。串口仅用于日志输出，请求通过 RX 调试变量发起。</p>
<p dir="auto">具体引脚、配置项、API 和使用限制见各工程的 <code>ReadMe.md</code>。</p>
<h2>工程下载</h2>
<ul>
<li><strong>SENT RX Demo</strong>：<a href="https://yt-static-main.oss-cn-shanghai.aliyuncs.com/nodebb/23/975f37ca-fce4-425f-8fa4-39c525af5bef.zip" rel="nofollow ugc">YTM32B1MD24_SENT_Rx.zip</a> 。</li>
<li><strong>SENT TX Demo</strong>：<a href="https://yt-static-main.oss-cn-shanghai.aliyuncs.com/nodebb/23/1bf6a3c8-4d49-4bba-b573-24cb11b155a2.zip" rel="nofollow ugc">YTM32B1MD24_SENT_Tx.zip</a>  。</li>
</ul>
<p dir="auto">每套工程附带 <code>ReadMe.md</code>，建议先阅读接线与使用说明，再根据自己的应用调整配置。</p>
]]></description><link>https://forum.ytmicro.com/topic/2283/ytm32b1md24-sent-spc-收发-demo-基于-etmr-mpwm-与-dma</link><generator>RSS for Node</generator><lastBuildDate>Fri, 09 Oct 2026 23:20:41 GMT</lastBuildDate><atom:link href="https://forum.ytmicro.com/topic/2283.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 09 Oct 2026 07:12:54 GMT</pubDate><ttl>60</ttl></channel></rss>