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.

[参考译文] TMS320F28388S:CAN FD 问题

Guru**** 2538950 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1168419/tms320f28388s-can-fd-issues

器件型号:TMS320F28388S
Thread 中讨论的其他器件:SysConfig

您好!

我尝试使用 CAN FD 标称速度1MHz 和数据4MHz、每~8-8.5秒会收到一条重复错误消息

我的程序非常简单(为了简化调试)-它只发送 TX 电报(请参阅随附的打印屏幕)

我已经检查了我的硬件参数、并使用示波器来检查信号、一切正常。

一些背景:

在转至4Mhz 之前、我已经检查了使用2MHz 数据速率以查看我的时钟和配置是否正确-在2MHz 速率下、CAN FD 工作正常、完全没有错误。

只有4 MHz 的速率才会出现此问题。

检查 PSR 寄存器-我可以看到"被动错误"被打开-但是、这意味着检测到超过127个错误帧  

当我查看 LEC 或 LEC 位时-该值一直停留在0x7 ->这意味着与之前相同的状态(这在2速率和4速率下发生)-所以我可以从其中获取任何数据。

我还尝试更改 DBTP 和 TDCR 寄存器、以查看它是否有用-但没有成功。  

寻求您的帮助

非常感谢  

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

    您好!

     

    我们的专家将尽快回来。

     

    谢谢、

    Saravanan

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

     哈姆、

                   如果在2Mbps 下一切正常、但在4Mbps 下出现错误、则可能会导致时序问题。 需要考虑的要点:

    • 从发送器和接收器捕获发送的帧、并验证位时间是否完全符合计算结果。
    • 28388S 使用什么时钟源? 是外部石英晶体还是石英振荡器?
    • 请查看 www.ti.com/lit/SPRACU9.pdf 中的调试提示
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Haresh、

    我已将 TX 和 Rx 连接到示波器、并获得以下数据:数据位时间为250ns (精确为1/4Mhz)、TX 和 Rx 之间的增量为~120ns:

    相关寄存器:

    DBTP:

    TDC = 1

    DBRP=0

    DTSEG1=20

    DTSEG2=9



    TDCR.TDCO = 6

     PSR.TDCV = 24  ->从这个24值我得到发送器延迟为24*Tq - Tq 是 CAN.Fclk (126Mhz)=> 192ns、小于250、所以应该可以  

    请查看这些数据、如果我犯了错误或误解、请告知我。

    P.S.将 extern Master (CAN Runner)用作 Tx 制造 、而我的程序仅用作 Rx -它似乎可以正常工作、没有错误...

    非常感谢

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

    忘记添加-我还收到许多 Error_Passive 状态标志-但我相信它源自所讨论的主要问题   

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

    您尚未回答我的问题"用于28388S 的时钟源是什么? 是外部石英晶体还是石英振荡器?"  

    您是否在 www.ti.com/lit/SPRACU9.pdf?中查看了调试提示 

    有趣的是、MCU 作为接收器@ 4Mbps 时没有问题、但无法以该比特率传输。 我希望您知道当 MCAN 模块访问 DTSEG1和 DTSEG2时、其值会增加1。 请回答以下所有问题:  

    1. 器件的时钟速度是多少?
    2. MCAN 模块的输入时钟是多少?
    3. 谁控制 MCAN 模块? C28或 M4?
    4. 您可以附加 MCANTX 引脚的示波器捕获吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您的问题答案:

    16MHz 晶体-->我们使用 M4内核来控制 MCAN 模块,时钟为124Mhz --> MCAN 时钟也为124Mhz

    随附以下打印屏幕:

    第一个是总发送器消息

    第二个是消息的结束部分

    第三个是消息的起始部分

    图例:黄色表示 TX、绿色表示 RX  

    帧:CANID - 0x000000AB - LEN 为8,数据为:0xBA AA AA AA AA AA AA AA AA AA AA AA AA  AA AA

    谢谢

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

    您写入 DBTP 寄存器的值似乎不正确。 它不能精确地产生4Mbps。 您可以在 CCS 中获取该寄存器的屏幕截图并发送它吗?

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

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

    我请求了寄存器的屏幕截图、而不是您的代码。 换句话说、我想知道实际写入寄存器的内容。

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

    随附的 DTBP 寄存器打印屏幕 - 0x00801490  

    谢谢

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

    在一篇文章中、您说 MCAN 时钟为124MHz、比特率为3.875Mbps。

    在另一篇文章中、您说 MCAN 时钟为126MHz、比特率为3.9375Mbps。  

    您可以看到、这两个值都不会产生恰好为4Mbps 的比特率。

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

    MCAN 时钟为124Mhz -如果我写了126、这是错误的。

    您是正确的-因此我更改了 DTBP.DTSEG2 =8 、这给出了以下公式:MCAN_Cock/(1+(DTSEG2+1)+(DTSEG1+1))*(DBRP+1)=

    124m/(1+(8+1)+(20+1))*(0+1)=4M  

    我是对的吗?  

    您是否使用了不同的方程? 如果是、您能否解释您的计算?

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="459171" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1168419/tms320f28388s-can-fd-issues/4407757 #4407757">我的回答是否正确?  [/报价]

    是的。

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

    您拒绝了答案、但没有解释原因。 请提供原因。

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

    我不明白吗? 我拒绝了哪一个答案?  

    我已经更改了 DTBP 的值以适应4Mh -在计算之后-仍然不起作用(实际上变得更糟)  

    我建议我们从不同的方向来处理这个问题:  

    您能告诉我我需要设置哪些值、以及在哪些寄存器中-以便在75%总线负载下获得4Mhz 吗?

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="459171" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1168419/tms320f28388s-can-fd-issues/4414709 #4414709">我不明白吗? 我拒绝了哪一个答案?  [/报价]

    我收到一条自动消息、说您拒绝了我的答案。 这并不是什么大问题。 我们可以继续讨论。

    [引用 userid="459171" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1168419/tms320f28388s-can-fd-issues/4414709 #4414709"]我已将 DTBP 的值更改为适合4Mh -在计算之后-仍然不起作用(实际上变得更糟) 

    请提供 NBTP 和 DBTP 寄存器的屏幕截图。

    [引用 userid="459171" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1168419/tms320f28388s-can-fd-issues/4414709 #4414709"]您能告诉我我需要设置哪些值以及在哪些寄存器中设置-以便获得75%总线负载的4Mhz?

    对于任何给定的输入时钟、位速率都完全由 NBTP 和 DBTP 寄存器决定。 寄存器值对总线负载没有影响、反之亦然。  

    您可以尝试 SysConfig 生成寄存器值吗?