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.

[参考译文] TMS570LC4357:需要澄清如何在功能模式和 GIO 模式之间进行选择。

Guru**** 2464290 points
Other Parts Discussed in Thread: TMS570LC4357

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1132916/tms570lc4357-clarification-required-on-how-can-selection-between-the-functional-and-gio-modes-is-achieved

器件型号:TMS570LC4357

您好!

我使用的是 TMS570LC4357、我对 CAN 模块的功能模式和 GIO 模式之间的选择有疑问。
技术参考手册 TMS570LC43x 16/32位 RISC 闪存微控制器(SPNU563A 2018年3月)第27.17.34节 CAN TX IO 控制寄存器(DCAN TIOC)
位3 Func 具有以下文本:
   CAN_TX 功能。 该位更改了 CAN_TX 引脚的功能。
   0 CAN_TX 引脚处于 GIO 模式。
   1 CAN_TX 引脚处于功能模式(作为发送 CAN 数据的输出)。
   如果 CAN 控制寄存器的 Init 位被复位、则强制为1。
   
最后一句"如果 CAN 控制寄存器的 Init 位被复位、强制为1。" 实际上意味着什么?

这是否意味着、如果 CAN 控制寄存器的 Init 位被复位、那么即使 CAN 模块被初始化为 GIO 模式、CAN 模块也被强制进入功能模式?

这是否意味着如果我想在 GIO 模式下操作 CAN、那么 CAN 控制寄存器的 Init 位必须被永久置位?

谢谢你。

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

    尊敬的 Andrew:

    DCAN TIOC 寄存器和 RXOC 寄存器用于设置/清除 CANTX 引脚和 CANRX 引脚(GIO 模式)。

    只有当 CAN 控制寄存器的 Init 位被置位时、IO 控制寄存器的值才可写入。

    canREG1->CTL |= 0x00000001;
    canREG1->TIOC =(UINT32)((UINT32) 1U <<18U)  /* CAN_TX 引脚*/
                   |(uint32)((uint32) 0U <<17U)
                   |(uint32)((uint32) 0U <<16U)
                   |(UINT32)((UINT32) 0U <<3U)   /*GIO 模式*/
                   |(uint32)((uint32) 1U << 2U)   /*输出*/
                   |(uint32)((uint32) ti << 1U);    /*高*/

    canREG1->CTL &= 0xFFFFFFFE;

    [引用 userid="479197" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum 1132916/tms570lc4357-exclusion-require-on-how-ca-selection-between the functional-and -gio-mode-is sense"]这是否意味着如果我想在 GIO 模式下操作 CAN、则必须永久设置 CAN 控制寄存器的 Init 位[报价]?

    是的、必须设置 Init 位。

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

    谢谢你。