工具/软件:
您好、
我正在使用超时寄存器在 ECU 上获取以时间分隔的消息。 根据 TRM 1、寄存器值的单位为1个波特周期。 但当我根据每个位时间进行计算时、我观察到错误的超时。 例如、波特率9600 39位或超时值应该会提供4.01ms 的超时时间、但我得到的时间是3.5ms。 超时寄存器是否有任何已知错误。
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.
工具/软件:
您好、
我正在使用超时寄存器在 ECU 上获取以时间分隔的消息。 根据 TRM 1、寄存器值的单位为1个波特周期。 但当我根据每个位时间进行计算时、我观察到错误的超时。 例如、波特率9600 39位或超时值应该会提供4.01ms 的超时时间、但我得到的时间是3.5ms。 超时寄存器是否有任何已知错误。
您好 Chetana、
您遇到了 AM62x 处理器的 UART 超时行为的已知问题。
具体而言、观察到的实际超时在 AM62x 处理器器件修订版本1.0勘误表中解决、该勘误表记录为问题 i2310。
发出 i2310:错误地清除/触发超时中断
说明:
当读取接收器保持寄存器(RHR)、调制解调器状态寄存器(MSR)或线路状态寄存器(LSR)时、UART 模块可能会错误地清除或触发超时中断。
权变措施:
要缓解此问题、请执行以下步骤:
1.设置高超时值:
将 TIMEOUTH 和 TIMEOUTL 寄存器配置为高值以防止过早发生超时中断。
2.启用周期性超时模式:
将 EFR2寄存器的位6设置为1可将超时行为切换到周期模式。
3.清除中断:
读取中断识别寄存器(IIR)以清除任何挂起的超时中断。
4、恢复原稿超时模式:
将 EFR2寄存器的位6复位为0可恢复到原始超时行为。
此致、
Anil.