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/LAUNCHXL-F28379D:是否可以将 CANA 信号路由到 Booster Pack 接头?

Guru**** 2560390 points
Other Parts Discussed in Thread: CONTROLSUITE, LAUNCHXL-F28379D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/636440/ccs-launchxl-f28379d-is-it-possible-to-route-the-cana-signal-to-the-booster-pack-headers

器件型号:LAUNCHXL-F28379D
Thread 中讨论的其他器件:controlSUITE

工具/软件:Code Composer Studio

大家好、

 

除 CANB 模块外、我想使用 CANA 模块。 我已经阅读了"用户指南"、但我无法理解是否只能对 GPIO4041或其他信号进行重新路由。

此外、我已经尝试通过相应地更改 GPIO 和 MUX 值来使用 CANA。 下面是我已从 controlSUITE 外部传输示例中修改的代码。 这对于 CANB 来说是很好的、但对于 CANA 来说不是很好。

我的 J11、J13跳线配置是否有问题、或者 除了电路板背面的 J9高密度连接器之外、没有其他方式输出 CANA 信号?

 

任何答案都将不胜感激!

#include "F28x_Project.h"
#include 
#include 
#include "inc/hw_types.h"
#include "inc/hw_memmap.h"
#include "inc/hw_can.h"
#include "driverlib/can.h"

//
define

LED_PIN_RED 31
#define LED_PIN_blue 34
#define MSG_DATA_LENGTH 4 #define TXMSG_CANMSG_GET_Message



1

/ CANGIN_0 = unsignatile

Data 1;CANMsgchar 4

//
//函数原型
//


//// Main
//
void main (void)
{
//
//初始化系统控制:
// PLL、安全装置、启用外设时钟
//
InitSysCtrl();

//
//初始化 GPIO 并为 CANTX/CANRX 配置 GPIO 引脚
//在模块 A 和 B 上
//
InitGpio();

//
//为 CAN-A TX/RX 和 CAN-B TX/RX 设置 GPIO 引脚多路复用器
//
GPIO_SetupPinMux (18、GPIO_MUX_CPU1、3);//GPIO10 - CANRXB
GPIO_SetupPinOptions (18、GPIO_INPUT、GPIO_异 步);
GPIO_SetupPinMux (19、GPIO_MUX_CPU1、3);//GPIO8 - CANTXB
GPIO_SetupPinOptions (19、GPIO_OUTPUT、GPIO_PushPull);
//
//设置 LED 的 GPIO 引脚多路复用器
//
GPIO_SetupPinMux (34、GPIO_MUX_CPU1、0);
GPIO_SetupPinOptions (34、GPIO_OUTPUT、GPIO_PushPull);
GPIO_SetupPinMux (31、GPIO_MUX_CPU1、0);
GPIO_SetupPinOptions (31、GPIO_OUTPUT、GPIO_PushPull);

//初始化 CAN 控制器
//
CANInit (CANA_base);

//
//设置可以从 PLL 输出时钟计时
//
CANClkSourceSelect (CANA_base、0);// 500kHz CAN 时钟

//
//为每个模块将 CAN 总线位速率设置为500kHz
//此函数为标称配置设置 CAN 总线时序。
//您可以使用实现对 CAN 总线时序的更多控制
//函数 CANBitTimingSet()代替这个函数(如果需要)。
//此外、请查阅器件数据表以了解更多相关信息
// CAN 模块计时。
//
CANBitRateSet (CANA_base、200000000、50000);

//
//清除所有中断并初始化 PIE 矢量表:
//禁用 CPU 中断
//
Dint;

//
//将 PIE 控制寄存器初始化为默认状态。
//默认状态为禁用所有 PIE 中断和标志
//被清除。
//
InitPieCtrl();

//
//禁用 CPU 中断并清除所有 CPU 中断标志
//
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();


//启用全局中断和更高优先级的实时调试事件
EINT; //启用全局中断 INTM
ERTM; //启用全局实时中断 DBGM


//
//初始化用于发送 CAN 消息的发送消息对象。
//消息对象参数:
// 消息标识符:0x5555
// 消息 ID 掩码:0x0
// 消息对象标志:无
// 消息数据长度:4字节
// 报文发送数据:txMsgData
//
sTXCANMessage.ui32MsgID =0x203;
sTXCANMessage.ui32MsgIDMask = 0;
sTXCANMessage.ui32Flags = 0;
sTXCANMessage.ui32MsgLen = MSG_DATA_LENGTH;
sTXCANMessage.pucMsgData = txMsgData;

//
//初始化要发送的发送消息对象数据缓冲区
//
txMsgData[0]= 0x10;
txMsgData[1]= 0x10;
txMsgData[2]= 0x10;
txMsgData[3]= 0x10;

//
//启动 CAN 模块 A 和 B 操作
//
CANEnable (CANA_base);

//
//将消息从 CAN-A 发送到 CAN-B
//
for (;;)
{

CANMessageSet (CANA_base、TX_MSG_OBJ_ID、&sTXCANMessage、
MSG_OBJ_TYPE_TX);
txMsgData[0]= 0x10;
txMsgData[1]= 0x10;
txMsgData[2]= 0x10;
txMsgData[3]= 0x10;


GPIO_WritePin (LED_PIN_RED、0);
GPIO_WritePin (LED_PIN_BLUE、1);
DELAY_US (1000*500);
GPIO_WritePin (LED_PIN_RED、1);
GPIO_WritePin (LED_PIN_BLUE、0);
DELAY_US (1000*500);
}
} 

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

    您好、Kyriakos、

    如果您使用的是 LAUNCHXL-F28379D、则板载 CAN 收发器通过电阻器 R43和 R44 (请参阅下面的原理图)硬接线至 CANB TX/RX (分别为 GPIO12和 GPIO17):

    如果要使用 CANA 进行外部传输、则必须使用与上述收发器电路类似的其他收发器电路来路由 CANA TX/RX 通道。

    此致、

    Joseph

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

    我的主要问题是无法找到将 CANA 通道路由到 BoosterPack 接头 J1的方法、以及更具体的引脚"3"和"4"、
    以便我可以将它们分配给外部收发器电路。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Kyriakos、

    您能不能告诉我您有哪种 BoosterPack、我们将从那里开始...

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


    我没有 BoosterPack。 我将尝试解释我要实现的目标。
    我已经在 CANB 通道上使用 J12连接器:

    GPIO_SetupPinMux (17、GPIO_MUX_CPU1、2);
        GPIO_SetupPinOptions (17、GPIO_INPUT、GPIO_异 步);
        GPIO_SetupPinMux (12、GPIO_MUX_CPU1、2);
        GPIO_SetupPinOptions (12、GPIO_OUTPUT、GPIO_PushPull);

    我也想使用 Cana 频道。

    除了将 J9连接器与 CAN 收发器电路配合使用外、我还需要做什么才能实现这一目标?
    我是否可以使用 BoosterPack 来实现此目的?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Kyriakos、

    感谢您澄清您没有使用 BoosterPack、因为我觉得您使用的是 BoosterPack、实际上您只是指 BoosterPack 接头上的连接。  很抱歉我的困惑。 总之、没有配备专用 CAN 收发器的 BoosterPack、因此您最好使用适用于 CANA 的引脚多路复用器选项。

    一种方法是使用 GPIO4和 GPIO5。  这些引脚来自引脚5和6上的 BoosterPack 接头 J4。  在 LaunchPad 顶部丝网上、这些引脚将在接头端子5和6上提供。  底部丝印将位于标有 P04和 P05的引脚上。  那么您的 GPIO 配置将是:

      //使用 GPIO5的 CANRXA    

      GPIO_SetupPinMux (5、GPIO_MUX_CPU1、2);
        GPIO_SetupPinOptions (5、GPIO_INPUT、GPIO_异 步);

      //使用 GPIO4的 CANTXA

        GPIO_SetupPinMux (4、GPIO_MUX_CPU1、2);
        GPIO_SetupPinOptions (4、GPIO_OUTPUT、GPIO_PushPull);

    然后、您可以在 GPIO4和 GPIO5上连接另一个收发器、并使您能够使用 CANA。

    请告诉我这是否能解答您的问题。

    此致、

    Joseph

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

    很抱歉我迟到了。
    我设法将引脚36、35与其他 CAN 收发器电路结合使用、使用相应的 GPIO 和完美地发送/接收 CAN 总线消息。 我所做的唯一更改是在多路复用器值:

      //使用 GPIO5的 CANRXA    
      GPIO_SetupPinMux (5、GPIO_MUX_CPU1、5);
        GPIO_SetupPinOptions (5、GPIO_INPUT、GPIO_异 步);
      //使用 GPIO4的 CANTXA
        GPIO_SetupPinMux (4、GPIO_MUX_CPU1、5);
        GPIO_SetupPinOptions (4、GPIO_OUTPUT、GPIO_PushPull);

    非常感谢您的支持!

    此致

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

    您好、Kyriakos、

    很高兴听到您解决了您的问题。

    此致、

    Joseph