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.

[参考译文] TMS320F280039C:在使用位域方法对 MCAN 进行编程时遇到一些问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1168459/tms320f280039c-encounter-some-issues-when-using-bit-field-way-to-program-mcan

器件型号:TMS320F280039C

大家好、

以下是客户可能需要您帮助的一些问题:

问题背景:将项目从 280049迁移到280039、使用 MCAN 实现 DCAN 功能、 位域程序方式。

该函数在使用 driverLib 时可以工作、但在使用 位字段时会出现异常。

具体 现象:

由于 地址桥的原因、使用位字段方法读取和写入寄存器数据是错误的。  客户尝试用 BP-16/32替换 MCAN 头文件的 uint16/32。 编译失败。

2.例如,如果使用  

HW_RD_FIELD32(baseAddr + MCAN_MCANSS_STAT,MCAN_MCANSS_STAT_MEM_INIT_DONE);
,结果为1;但使用位字段方式时,结果为0。

 仿真期间寄存器视图的数据不是寄存器的实际数量。  例如、例程读取的寄存器实际值为6、但视图显示8。  客户看到有一个文档提到地址桥引入了地址不对齐。  但他不知道如何正常使用 MCAN 的头文件来实现 MCAN 操作。  他还尝试了32位单片读取和写入、都失败了。

 

他发现 CAN 的结构在 280049和280039之间是不同的、如下所示:

客户检查了这些信息、发现这将影响编译器解析地址的方式。

问题:

 MCAN 是否也使用 CAN 这样的地址桥?

是否还需要专门定义寄存器文件结构?

您能否提供一些使用寄存器实现 MCAN 的例程?

谢谢、此致

耶鲁李

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

    耶鲁大学

      我们的软件团队将有人回答您的问题。

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

    耶鲁大学  

    [引用 userid="514648" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1168459/tms320f280039c-encounter-some-issues-when-using-bit-field-way-to-program-mcan "]他发现 CAN 的结构在 280049和280039之间是不同的、如下面所示:

    为 CAN 和 CAN-FD (分别为 DCAN 和 MCAN)提供的模块是不同的模块。 f28004x 和 f28003x 的寄存器结构完全不同、不能完全匹配。

    [引用 userid="514648" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1168459/tms320f280039c-encounter-some-issues-when-using-bit-field-way-to-program-mcan "]例如,例程读取的寄存器实际值为6,但视图显示为8。

    您能否提供有关此问题的更多信息以帮助诊断问题? 什么寄存器? 使用了什么例程来读取寄存器?  

    [引用 userid="514648" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1168459/tms320f280039c-encounter-some-issues-when-using-bit-field-way-to-program-mcan "]但使用位字段方式时结果为0 [/quot]

    使用了什么命令来读取该位?

    谢谢。