This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
TMS57LS12x 和 TMS570LS07x 有一个 LIN/SCI。 如果需要额外的 SCI、我们可以使用 N2HET 模块来实施 SCI。 TI 提供 N2HET 仿真 SCI 的代码示例。
我得到了几个反馈、即 N2HET 仿真 SCI 在接收到6~7个字节后可能会得到一个损坏的字节。 如何解决此问题?
由于 UART 是异步的、因此发送器和接收器不共享公共时钟信号。 发送器需要发出数据位正在传输的信号。 这是通过使用 START 位来实现的。 起始位是 A 高电平状态转换到低电平状态的速度 、后面紧跟用户数据位。
在 NHET 仿真 UART 代码中、每个位都有13个 HET 环路分辨率周期的持续时间。 UART 接收器假定一个有效的开始位恰好在停止位的13 LRP 之后。 UART 帧不会使用 STOP 位之后的下降沿与总线重新同步。
如果发送器的波特率与接收器的波特率不匹配、在几个字节后、累积的误差可能达到50%波特时钟周期、可能会丢失第一个数据位、并会对第二个数据位作为第一个数据位进行采样。
在此图中、中间是 RX 总线上的数据、顶部是发送器内部 UART 时钟、底部是接收器内部 UART 时钟。 接收器的波特率比发送器慢一点(例如、19231 vs 19371)。 七个字节(70位)之后、将在中间而不是开头对起始位进行采样、并且缺少第1个数据位。
为了避免出现这种移位问题、请勿连续将数据传输到 NHET 仿真 UART。