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.

[参考译文] TMS570LS2135:[CAN]CAN#39;t 检测任何输出信号

Guru**** 2477885 points
Other Parts Discussed in Thread: TMS570LS2135, HALCOGEN, TMS570LS3137

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/678820/tms570ls2135-can-can-t-detect-any-output-signal

器件型号:TMS570LS2135
主题中讨论的其他器件: HALCOGENTMS570LS3137

您好!

我们正在使用 TMS570LS2135开发系统、并且需要使用 CAN 与其他系统进行通信。 当我们测试产品时、我们发现 CAN 接口不工作、 并且没有来自 CAN 高电平/低电平引脚的信号输出。

详细信息如下:

1.问题:

无法向外发送 CAN 消息、并且无法从具有示波器的 CAN 接口的引脚捕获信号。

MCU 型号:TMS570LS2135 PGE

MCU 和 CAN1引脚的逻辑图:

具有 CAN 收发器的 MCU 的逻辑图(这里是 CAN2引脚(它与 CAN1相同)

4. Halcogen 的配置:

5.测试代码(与示例代码几乎相同)

6.分步执行上述代码,在将消息发送出去后,寄存器的值如下:

CTRL 0x00031402配置寄存器[存储器映射]
勘误表0x00000007状态寄存器[存储器映射]
勘误表0x00000000错误计数器寄存器[存储器映射]
BTR 0x00001453位时序_BRP 扩展寄存器[存储器映射]
INTR 0x00000000中断寄存器[存储器映射]
TEST 0x00000080测试寄存器[内存映射]
ParErr 0x00000140奇偶校验错误代码寄存器[存储器映射]
Rel 0xA3170504内核发布寄存器[已映射内存]
ABOT 0x00000000自动总线开启时间[存储器映射]
TrReqX 0x00000000传输请求 X [存储器映射]
TrReq12 0x00000000传输请求2-1 [存储器映射]
TrReq34 0x00000000传输请求4-3 [存储器映射]
TrReq56 0x00000000传输请求6-5 [存储器映射]
TrReq78 0x00000000传输请求8-7 [存储器映射]
NewDatx 0x00000000新数据 X [存储器映射]
NewDat12 0x00000000新数据2-1 [存储器映射]
NewDat34 0x00000000新数据4-3 [存储器映射]
NewDat56 0x00000000新数据6-5 [存储器映射]
NewDat78 0x00000000新数据8-7 [存储器映射]
IntPenX 0x00000000中断挂起 X [存储器映射]
IntPen12 0x00000000中断挂起2-1 [存储器映射]
IntPen34 0x00000000中断挂起4-3 [存储器映射]
IntPen56 0x00000000中断挂起6-5 [存储器映射]
IntPen78 0x00000000中断挂起8-7 [存储器映射]
MsgValX 0x00000001消息有效 X [内存映射]
MsgVal12 0x00000001消息有效2-1 [内存映射]
MsgVal34 0x00000000消息有效4-3 [存储器映射]
MsgVal56 0x00000000消息有效6-5 [存储器映射]
MsgVal78 0x00000000消息有效8-7 [存储器映射]
IntPndMx12 0x00000000 IntPndMux 2-1 [存储器映射]
IntPndMx34 0x00000000 IntPndMux 4-3 [内存映射]
IntPndMx56 0x00000000 IntPndMux 6-5 [内存映射]
IntPndMx78 0x00000000 IntPndMux 8-7 [内存映射]
If1Cmd 0x00870001 IF1命令屏蔽/命令请求寄存器[存储器映射]
If1Msk 0xE00007FF IF1屏蔽寄存器[存储器映射]
If1Arb 0xE0000001 IF1引用寄存器[存储器映射]
If1MsgCtrl 0x00001008 IF1消息控制寄存器[存储器映射]
If1DatA 0x00000000 IF1数据 A 寄存器[存储器映射]
If1DatB 0x00000000 IF1数据 B 寄存器[存储器映射]
If2Com 0x00170001 If2命令屏蔽/命令请求寄存器[存储器映射]
If2Msk 0xFFFFFFFF If2屏蔽寄存器[存储器映射]
If2Arb 0x00000000 If2引用寄存器[存储器映射]
If2MsgCtrl 0x00000000 If2消息控制寄存器[存储器映射]
If2DatA 0x00000000 If2数据 A 寄存器[存储器映射]
If2DatB 0x00000000 If2数据 B 寄存器[存储器映射]
If3Obs 0x00000000 IF3观察寄存器[存储器映射]
If3Msk 0xFFFFFFFF IF3屏蔽寄存器[存储器映射]
If3Arb 0x00000000 IF3引用寄存器[存储器映射]
If3MsgCtrl 0x00000000 IF3消息控制寄存器[存储器映射]
If3DatA 0x00000000 IF3数据 A 寄存器[存储器映射]
If3DatB 0x00000000 IF3数据 B 寄存器[存储器映射]
If3Upd12 0x00000000更新使能2-1寄存器[存储器映射]
If3Upd34 0x00000000更新使能4-3寄存器[存储器映射]
If3Upd56 0x00000000更新使能6-5寄存器[存储器映射]
If3Upd78 0x00000000更新使能8-7寄存器[存储器映射]
IoCtrlTx 0x0004000E TX IO 控制寄存器[存储器映射]
IoCtrlRx 0x00040009 RX IO 控制寄存器[存储器映射]
7、我们已经使用 TMS570LS3137开发套件完成了测试。 它可以完美工作。
请提供帮助、如果需要更多详细信息、请告诉我。 谢谢!

 

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

    我在 HALCoGen 中看不到您的原理图和设置有任何问题。 您可以尝试以下操作:

    1.环回模式,检查您是否可以正确接收数据
    2.将 CAN_TX 和 CAN_RX 引脚配置为 GIO、并切换这2个引脚、检查输出是否正确。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否在 VIM 设置中启用了引脚?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 QJ、

    感谢您的回复。

    我们已经尝试了回送、它可以正常工作。

    2.如何将 CAN_TX 和 CAN_RX 配置为 GIO?

    在 reg_can.h 中、我们找不到"canPORT"的定义、因此无法直接使用 GIO API。 云您是否需要帮助指导我们如何将其编码为 GIO 端口?

    谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在本例中、我们不使用中断。 您可以在 halcogen 配置图中找到它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David:

    如果不需要 CAN 功能、每个 DCAN 模块的 CAN_RX 和 CAN_TX 引脚可被用作通用 IO 引脚。 此功能由 CAN TX IO 控制寄存器和 CAN RX IO 控制寄存器控制。

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

    您好、Wang、

    我们已完成测试、将 CAN2 TX 引脚配置为 GIO 输出。 当我们切换值时、我们可以捕获输出。

    但是、当我们切换回 CAN 模式时、情况仍然相同。 没有输出信号。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可能会确认的内容。 您的输出电路设置是否具有所需的端接电阻? 您是否已对测试板上电、以确保收发器已复位?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在当前设计中、电路板上的电阻为60Ω Ω。 但问题是、当我们尝试从 MCU 侧传输数据时、为什么 TX 引脚没有信号。 (我们将在信号到达收发器之前捕获信号。)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    该信号线路是否保持外部电压? 您确定不需要设置 VIM 来启用这些引脚吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、我们当然可以。 它可以使用3137开发套件。 如果我们只是将数据发送出去、我认为不需要配置 VIM。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    STB 信号可能设置为高电平。 当 STB=1时、CAN 收发器将处于待机模式、原理图看起来不错。