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.

[参考译文] TMS320F280025C:F280025 LIN SCI 模式波特率不一致的说明

Guru**** 2964790 points

Other Parts Discussed in Thread: TMS320F280025

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1650286/tms320f280025c-f280025-lin-sci-mode-baud-rate-inconsistency-clarification

器件型号: TMS320F280025C
主题: TMS320F280025 中讨论的其他器件

您好、

我在 TMS320F280025 上使用了 SCI 兼容模式下的 LIN 模块、并且尝试了解波特率发生器的工作原理。 在查看 TMS320F28002x 实时微控制器技术参考手册(2024 年 3 月修订)时、我发现了一些不一致的地方、需要对其进行澄清。

在第 96 页上、图像显示 LIN 模块由 PERx.SYSCLK 馈送、而 PERx.SYSCLK 等于 SYSCLK。
第 2456 页上还指出、“LINVCLK 等于 SYSCLK 频率“。

在第 2460 页上、它指出 “在异步时序模式下、帧中的每个位都有 16 个 SCI 波特时钟周期的持续时间“。

第 2454 页上的 内容指出“在 100MHz 外设时钟下、3.125Mbits/s 是可实现的最大波特率“。

在第 2461 页上、给出了以下公式:

“SCICLK 频率= VCLK 频率/(P+1+M/16) (1)

异步波特值= SCICLK 频率/16    (2)


对于 P = 0、
异步波特值= VCLK 频率/32      (3)“

不一致之处:
a) 公式 (3) 中的“32“来自哪里? 当 P = M = 0 时结合 (1) 和 (2)、得到 波特= VCLK/16
B) 如果 VCLK = SYSCLK 且 1 位= 16 个 SCICLK 脉冲、则 100MHz 可实现的最大波特率为 6.250Mbits/s

问题:

  1. F28002x 上 LIN 模块的 VCLK 究竟是什么? 它是真正的 SYSCLK、还是在波特生成器之前存在隐式除法?

  2. 位 16 还是 32 个 SCICLK 周期的持续时间?
  3. 正确的波特公式是否有效:波特= VCLK /[32 ×(P + 1 + M/16)]?

  4. 总之、如果 SYSCLK = 20MHz、则可实现的最大波特率是否为 625kbit/s?

提前感谢您的澄清。

此致、
Filipe

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

    尊敬的 Filipe,

    1. LIN 模块的 VCLK 直接是 SYSCLK—无隐式除法。 在 F28002x 上、LIN 模块 (LINA、LINB) 会接收 PERx.SYSCLK、在波特发生器之前没有预分频器。 TRM 声明“LIN VCLK 等于 SYSCLK 频率“是准确的。  
    2. 每个位始终为 16 个 SCICLK 周期。 但是、当 P = 0 时、硬件在该设置下强制执行最小预分频 2、即 SCICLK = VCLK/2。 因此、P = 0 时的位周期为 16 ×(2 ×T_VCLK)= 32 ×T_VCLK。 这在§24.2.1.3.1 中明确确认:“对于 P = 0、T_BIT = 32 T_VCLK。“
    3. 正确的公式为:P = 0 时波特率= VCLK/32;P× 1 时波特率= VCLK/[16≥(P + 1 + M/16)]。 TRM 中的公式 (1) 和 (2) 仅适用于 P≥1。 当 P = 0 时、硬件最小预分频为 2 会阻止 1 分频、优先使用方程 (3)(波特= VCLK/32)。
    4. 是、在 SYSCLK = 20MHz 时、可实现的最大波特率为 625kbps。 Baud_max = VCLK/32 = 20MHz /32 = 625kbps。 这与 TRM 规定的 100MHz 下最大 3.125Mbps (100MHz / 32 = 3.125Mbps) 一致。

    此致、

    Allison

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

    尊敬的 Allison:

    现在很清楚了。 感谢您的回答!


    作为未来修订 TRM 的一项建议、我认为应该明确指出、公式 (3) 专门适用于 P = 0、而公式 (2) 适用于 P≥1。 由于它目前是写的,给人的印象是,方程 (3) 是简单地推导通过将 P = 0 代入方程 (2),这可能是误导性的。

    感谢您的支持。

    此致、
    Filipe

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

    感谢您的反馈、Filipe! 提交注释以进行澄清 Slight smile