Part Number:TMS320F280039COther Parts Discussed in Thread:C2000WARE
你好:
我在C2000Ware4.0版本的支持包中使用了有关MCAN的例程,其中接收部分的例程尚且可以正常使用。但是唯独ex9,无法使用,其中的BRS需要置0,才可以做CANFD发送,但是这样就无法使用CANFD加速模式。所以需要工作人员帮忙定位一下问题的原因,和解决办法。
C2000的版本::C2000Ware_4_02_00_00_setup.exe
CCS版本:CCS12.2.0.00009
硬件平台:就是官方的LaunchPad 280039 (例程中对应的IO已修改,满足开发板的状态)
?? ?:
你好,我也遇到了同样的问题,请问你解决了吗?
,
Yale Li:
我询问相关工程师后回复你:
https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1216996/tms320f280039c-mcan_ex9_transmit-cannot-work-normally
,
Yale Li:
?? ? 说:但是唯独ex9,无法使用,其中的BRS需要置0,
Could you give more information regarding this? (what is the data bit rate? What values are fed to the MCAN_DBTP register?)
The examples have been tested and verified regularly so there should not be any issues to run them out-of-the-box.
Given the fact, that the example only seems to be working with Bit Rate Switch disabled, there seems to be an issue with the data bit rate configuration. Please check the same in your setup.
,
? ?:
你好,我已确认过数据域波特率设置并未修改,就是例程中的1Mbps。
此外我想确认一下,按照采样点计算公式(1+TimeSeg1)/ (1+TimerSeg1+TimerSeg2)计算的结果,TI这边的采样点才55%?但是按照相关CAN标准,波特率500kbps时,采样点推荐87.5%。所以想确认TI的采样点是如何计算的。
,
Yale Li:
好的,我跟进过去了
,
Yale Li:
? ? 说:你好,我已确认过数据域波特率设置并未修改,就是例程中的1Mbps。
As I mentioned before, at the default settings, communication has been tested, so this will need further looking into.
Is it possible for the customer to check with an oscilloscope (preferably one that can decode CAN frames) the readings on the transmit pin, if the frame is as expected?
? ? 说:但是按照相关CAN标准,波特率500kbps时,采样点推荐87.5%。
I will look into it and get back to you on that.
? ? 说:所以想确认TI的采样点是如何计算的。
All timing related parameters are calculated by a spreadsheet that has been provided in the C2000ware package: C2000Ware_X_XX_00_00\device_support\f28003x\docs\MCAN_BitTimingCalculator
,
? ?:
抱歉,我这边没有可以对CAN信息解码的示波器,所以用例程跑了一下,用普通上位机记录。如下是MCAN_ex9_transmit例程发送时的数据波形。这时候程序在“while(HWREG(MCANA_DRIVER_BASE + MCAN_TXBTO) == 0x00000000)”处等待。
如果在初始化中将BRS位置零,那么可以正常发送,且发送时波形如下:
,
Yale Li:
好的
,
? ?:
你好,请问之前提供的CAN波形有什么反馈吗?还需要我这边做什么测试吗?
,
Yale Li:
我目前也在等待相关工程师的回复,有了结果我会第一时间给到你
,
Yale Li:
? ? 说:如下是MCAN_ex9_transmit例程发送时的数据波形。这时候程序在“while(HWREG(MCANA_DRIVER_BASE + MCAN_TXBTO) == 0x00000000)”处等待。
能否详细描述接收帧的设置细节。器件很可能没有收到传输帧的任何ACK。可以再检查一下MCAN_ECR寄存器的传输错误计数器吗?
? ? 说:如果在初始化中将BRS位置零,那么可以正常发送,且发送时波形如下:
根据这一点来看,上面的现象似乎是卡在了某个while循环中。那么在这里程序有从相应的while循环中退出来吗?
,
? ?:
程序在“while(HWREG(MCANA_DRIVER_BASE + MCAN_TXBTO) == 0x00000000)”处等待等待时,MCAN寄存器的值,如下:
之前询问的“按照相关CAN标准,波特率500kbps时,采样点推荐87.5%”,这个问题能解答一下吗?
,
Yale Li:
我已经跟进过去了
,
Yale Li:
"mcan_ex4_receive"这个例程可以正常运行吗?我们的工程师想要确认收发器是否工作正常。
,
? ?:
mcan_ex4_receive可以正常运行,可以接收,包括CAN、CANFD、CANFD加速模式的报文。
,
Yale Li:
好的,我跟进过去了
,
? ?:
你好,请问这个问题有什么进展吗?
,
Yale Li:
我问一下