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.

[参考译文] TMS320F28023:F28023中的 BRKDT 问题

Guru**** 2391415 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/603914/tms320f28023-brkdt-issue-in-f28023

器件型号:TMS320F28023

尊敬的 C2000专家:

我正在使用 F28023的 UART 外设、并将波特率配置为600位/秒、8位数据、1位奇偶校验和1个停止位。  

但我发现、有时如果另一个器件发送数据0x00、则会导致 BRKDT 位置1。 有时 RXRDY 位被置位是正常的、但没有 BRKDT。

下面是我得到的波形:

接收到10个连续低电平位(1个起始位+ 8个数据位+ 1个奇偶校验位)后、BRKDT 位置1、但 RXRDY 位未置1。

CH1 (蓝色):TX 引脚、CH4 (绿色):IO 显示 RXRDY、CH3 (紫色):IO 显示 BRKDT

2、在接收到10个连续低电平位(1个开始位+ 8个数据位+ 1个奇偶校验位)后、BRKDT 位不置位、但 RXRDY 位被置位。

CH1 (蓝色):TX 引脚、CH4 (绿色):IO 显示 RXRDY、CH3 (紫色):IO 显示 BRKDT

0x00将有10个连续的低电平位(1个起始位+ 8个数据位+ 1个奇偶校验位)、BRKDT 位置1了吗?  

您能否帮助我了解这2个波形之间为什么存在差异?

我想知道如何使器件通过奇偶校验位接收正确的0值。 谢谢。。。

此致、

插孔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    插孔、
    您的 LSPCLK 是什么?
    您的600位/S 误差百分比有多大?

    此致、
    Cody
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Cody、

    我的 LSPCLK 为12.5MHz。

    该器件在-40'C - 125'C 下为我提供了最大误差+/- 3% 但上述测试结果是在室温下测得的。

    我在室温下得到了实际的波特率602.4。 这会产生0.4%的误差。

    此致、
    插孔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Cody、

    禁用奇偶校验位后、BRKDT 条件仍然会发生、但这次 RXRDY 位也会被置位。 测试结果如下:

    CH1 (蓝色):RX 引脚、CH4 (绿色):IO 显示 RXRDY 标志、CH3 (紫色):IO 显示 BRKDT 标志

    此致、

    插孔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 C2000专家:

    是否有人可以在这方面提供帮助?

    从上面的测试中、我得到了
    -在偶校验的情况下,当接收到0 (将有10个连续的低位)时,BRKDT 有时会被置位,RXRDY 有时不会被置位。
    -如果没有奇偶校验位、当接收到0时、BRKDT 有时会被置位、RXRDY 也会被置位。

    我想知道如何设置 BRKDT? 有时 BRKDT 被置位、有时甚至不被置位、在接收10个连续低电平位后、为什么呢?

    为什么在接收到9个连续低电平位时设置 BRKDT? 如何使器件接收到具有偶校验的正确0值?

    此致、
    插孔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Cody 和 C2000团队、

    对此问题有任何反馈? 我的产品正在等待解决方案、然后将其传递到工厂。 希望有人对此有所帮助。

    插孔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    插孔、

    我正在研究这一点、我将在我确认结果后发布结果。 请参阅下面我的备注/问题。

    请注意、在波特率为600时、我期望波特率为1.66mS、您的波形看起来使用的位时间为1.68mS。 但这足够接近、不应导致问题。

    您使用什么作为时钟源? 时钟抖动可能会导致一些问题。

    您在 RX 引脚上使用哪种类型的 GPIO 鉴定? (它应该是异步的)。

    此致、
    Cody

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    插孔、

    我已经在我的末尾做了很多特性描述和调试 我能够复制与您类似的结果!

    当使用一个精确的振荡器来实现 SYSCLK 和一个精确的波特率输入(来自我 的 PC) 时、我不会遇到任何问题。 您描述的行为在以下情况下发生:

    1. 传入信号波特率中的误差变得过高(在我的案例中、我看到这种情况发生在偏离理想值+/-4.4%左右、 但我认为这个数字会因器件而异)。
    2. 如果我的振荡器频率关闭... 这会导致 SYSCLK 的频率不正确、因此 LSPCLK 的频率不正确、因此 SCI 的波特率不正确、 我 开始看到帧和中断检测错误。  

    最后、根据我的测试、如果您的时钟 频率准确、我认为您在接收10个连续低位时间时不会遇到任何问题。 请 验证振荡器的频率、这可以通过设置 XCLKOUT 轻松实现。

    用1个停止位甚至 奇偶校验来测试发送0x00的另一种方法是只为 SCI 模块提供一个低脉冲、这可以通过函数发生器来完成。 从 16.66mS 的10位时间(波特为600)的理想周期开始、并增加/减少这个值、直到 SCI 模块接收到正确的值。  请告诉我器件接收正确值的范围。  此外 、对于测试、确保器件配置有8个数据位、1个停止位、甚至奇偶校验。

    我渴望听到您的调查结果! 希望它能帮助你!

    此致、
    Cody

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Cody、

    感谢您的回复。

    您使用什么作为时钟源? 时钟抖动可能会导致一些问题。
    Jack ->我使用内部振荡器作为时钟源、但此测试在室温下进行、这不应该有任何问题。

    切换到使用外部 XTAL 振荡器后、仍然会出现此问题。 我已经在 TX 引脚中测试了单个位时间、大约为16.8ns、我认为振荡器可能不是根本原因。

    您在 RX 引脚上使用哪种类型的 GPIO 鉴定? (它应该是异步的)。
    JACK ->是的、它是异步类型。

    您能告诉我什么是 buad range (% error)、可以使器件接收到正确的值吗? 谢谢。。。

    此致、
    插孔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    拼写错误:

    切换到使用外部 XTAL 振荡器后、仍然会出现此问题。 我已经在 TX 引脚中测试了单个位时间、大约为1.68ms、我认为振荡器可能不是根本原因。

    这里是测试波形:

    CH1:RX 引脚、CH2:TX 引脚、CH3:IO 显示 RXRDY 标志、CH4:IO 显示 BRKDT 标志

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    插孔、

    我没有可接受的确切%ERROR。 但是、在昨天使用内部振荡器进行测试时、我的系统可以在1.66ms 的理想位时间附近承受高达4.4%的误差。

    "我已经在 TX 引脚中测试了单个位时间、大约为1.68ms、我认为振荡器可能不是根本原因。" 这句话让我感到困惑、您是否在 F28023的 Tx 引脚上测量这一位时间?

    您能不能描述系统中 TX 和 RX 的连接方式?

    • 什么是向 SCI 的 RX 引脚提供消息?
    • 您是否将信号从 SCI 的 Tx 引脚循环回 SCI 的 Rx 引脚?

    我将研究振荡器理论的其他替代方案、但现在请描述 SCI 模块正确接收到一条0x00消息的脉冲宽度。 我 在我的末尾尝试过此测试、当低脉冲宽度  介于15.93mS-17.39mS (相当于 16.66mS+/-4.4%)之间时、我收到了正确的值0x00、没有错误。 如果我低于15.93mS、我将得到一个奇偶校验错误、如果我超过17.39mS、我将收到一个组帧错误和一个中断检测错误。

    如果 SCI 模块未正确接收到0x00、即使您改变低脉冲宽度、我们也会遇到另一个问题。 如果发生这种情况、请描述该行为以及接收到的值。

    此致、
    Cody