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.

[参考译文] CCS/TMS320F28377S:了解 TMS320F28377S CAN 示例程序中的比特率设置时遇到问题

Guru**** 2451020 points
Other Parts Discussed in Thread: TMS320F28377S

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/699378/ccs-tms320f28377s-trouble-in-understanding-bit-rate-setting-in-can-example-program-for-tms320f28377s

器件型号:TMS320F28377S

工具/软件:Code Composer Studio

大家好、

我对 CCS 中 TMS320F28377S 的示例程序"CAN_EXTERNAL_Transmit "有疑问。 在 API CANBitRateSet()中,我们使用一组定义的位参数值组合(TSEG1, TSEG2, SJW)。 当一个位时间被分成5个时间份额时、该集以位参数值的组合开始。 我无法理解为什么值为5。 是否通过为 Prop_Seg、Phase_Seg1和 Phase_Seg2以及 Sync_Seg 的1tq (固定)位参数输入[1..8]tq 来获得该值? 如果是、那么最小除数不应该为4、因为位参数的最小值总和给出了4 (即 Prop_Seg、Phase_Seg1、Phase_Seg2和 Sync_Seg 的1tq)? 有人请帮助我了解如何获得这些定义的值。

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

    来自 SPRUHX5E.pdf:
    "位时间可能包含8到25个时间份额。" 5 Time Quantas 不够、sync-seg、prop-seg、phase seg 1和 phase seg 2之和应为>=8和<= 25。
    BOSCH CAN 规范 v2.0应该有助于理解所有内容。 Google 应该会帮助您找到它。

    您可以使用示波器来验证您当前的比特率设置是否与您的预期相符。 断开任何与 CAN 总线的连接(自动总线恢复应开启或使用您的软件继续手动恢复)、尝试发送消息、确定使用收发器之前总线上或 TX 引脚上低脉冲或高脉冲的最小宽度。 它应该与您的比特率完全匹配、不会再少不少、1Mbps 为1us、500kbps 为2us 等。

    Edward
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Edward
    感谢你的答复。 我明白你的观点。 我的理解是、它们使用5个时间份额作为该设置中的第一个值是否正确? 它们也将最大值用作13。 在 TI 示例代码中使用这些值是否有任何特殊原因? 我只是想知道他们为什么在代码的上述部分中使用这些值(5分频和13分频)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好

    我认为这是不正确的、而且我怀疑将以时间份额数表示的位时间视为分频器是正确的。 我不确定、但我认为最小时间份额数来自 CAN 规范、IIRC 必须是通用的、我认为 Freesce/NXP CAN 模块也具有相同的最小时间份额数。 此外、TSEG1和 TSEG2之间的比率有时会因高级协议而异、CANOpen 和其他 IIRC 具有不同的 TSEG/TSEG 比率要求、您应该检查它。

    Edward