TI中文支持网
TI专业的中文技术问题搜集分享网站

DSP28377D CAN通信问题

我想问一下:

我在调试CAN通信的时候,用controlSUITE里边的can_loopback_interrupts_cpu01进行测试,如果完全采用例程的程序进行回环测试,不看是不是有输出,是不是就不需要考虑程序里选用的CAN接口与DSP实际与CAN芯片接口是哪个引脚?

但是我的程序会一直停在这里:

//###########################################################################
;// $TI Release: F2837xD Support Library v160 $
;// $Release Date: Mon Jun 15 13:36:23 CDT 2015 $
;// $Copyright: Copyright (C) 2013-2015 Texas Instruments Incorporated –
;// http://www.ti.com/ ALL RIGHTS RESERVED $
;//###########################################################################

.def _F28x_usDelay
.sect "ramfuncs"

.global __F28x_usDelay
_F28x_usDelay:
SUB ACC,#1
BF _F28x_usDelay,GEQ ;; Loop if ACC >= 0
LRETR

;There is a 9/10 cycle overhead and each loop
;takes five cycles. The LoopCount is given by
;the following formula:
; DELAY_CPU_CYCLES = 9 + 5*LoopCount
; LoopCount = (DELAY_CPU_CYCLES – 9) / 5
; The macro DELAY_US(A) performs this calculation for you

我的板子上DSP引脚GPIO36、37,与CAN芯片相连,将对应的IO配置之后:

//GPIO30 – CANRXA
GPIO_SetupPinMux(36, GPIO_MUX_CPU1, 6);
//GPIO31 – CANTXA
GPIO_SetupPinMux(37, GPIO_MUX_CPU1, 6);
GPIO_SetupPinOptions(36, GPIO_INPUT, GPIO_ASYNC);
GPIO_SetupPinOptions(37, GPIO_OUTPUT, GPIO_PUSHPULL);

其他地方不变,观察寄存器可以看到接收发送寄存器都有数据,但是CAN分析仪观察不到数据。

将如下程序注释掉,通过CAN分析仪连接CAN芯片的H和L观察。

// HWREG(CANA_BASE + CAN_O_CTL) |= CAN_CTL_TEST;
// HWREG(CANA_BASE + CAN_O_TEST) = CAN_TEST_EXL;

// Check the error flag to see if errors occurred
//if(g_bErrFlag)
//{
//asm(" ESTOP0");
//}

观察寄存器,可以看到发送数据在变,但是can分析仪仍然观察不到数据。

希望能帮我分析一下问题所在,谢谢!!

mangui zhang:

最好这样    你用示波器看看CANH和CANL上是否有波形波形    

频率和你设置的一致     这样肯定是有数据发出来了

然后接收CAN分析仪     如果还接收不到    检测连线和120欧电阻是否正确

赞(0)
未经允许不得转载:TI中文支持网 » DSP28377D CAN通信问题
分享到: 更多 (0)