Part Number:AWR2944
我们在使用AWR2944 EVM Demo板调试运行SDK mmwave_mcuplus_sdk_04_02_00_02中MCAN的例程mcan_loopback_interrupt—>r5fss0-0_freertos,
我们使用的是CANB,并验证了CAN收发器EN(6)位高电平,STB(14)为高电平,这个状态下收发器正常工作。CANH和CANL接入周立功的CAN壳。
首先,我们在这个例程中去掉了回环模式的功能。再验证CANFD的发送功能时发现数据发送失败,调用MCAN_txBufAddReq后发送失败,寄存器中的数据表明终止了传输。
进一步调试时发现MCAN_PSR寄存器发生一些错误状态,如下图所示,Error Passive置位,LastErrorCode 101
查找参考手册中LastErrorCode的描述,如下所示,节点发送显性电平,总线电平为隐性
周立功CANFD上位机的配置如下:
我想了解下MCAN数据发送失败的原因是什么?是总线的这个Passive Error导致的吗?
Chris Meng:
你好,
你是否有对比测试过mcu_plus_sdk_awr294x_08_02_00_25\examples\drivers\mcan\mcan_external_loopback_interrupt例程?
,
忡明:
对比过,mcan\mcan_external_loopback_interrupt这个例程中多调用了一个接口mcan_enableTransceiver,就是让收发器工作在正常模式,我在问题描述也说明了CAN收发器是工作在正常模式,然后去掉了回环模式。差异主要是以上两点
,
Chris Meng:
你好,
mcan_external_loopback_interrupt demo这个demo可以成功发送,接收么?
周立功CANFD可以接收的msg id是如何配置的?
,
忡明:
例程mcan_external_loopback_interrupt 跑不通,上位机没有配置滤波,可以接收所有数据帧。我们的EVM开发板将R13和R17电阻去掉了,就是为了让CAN收发器工作在正常模式
,
Chris Meng:
你好,
请问你是否有去掉下面内部环回的使能?
if (TRUE == enableInternalLpbk) { MCAN_lpbkModeEnable(gMcanBaseAddr, MCAN_LPBK_MODE_INTERNAL, TRUE); }
你是否有看过下面的信息:
file:///C:/ti/mcu_plus_sdk_awr294x_08_02_00_25/docs/api_guide_awr294x/DRIVERS_MCAN_PAGE.html#autotoc_md442
请关注一下下面e2e讨论的回复。
(+) AWR2944: Test environment for mcan_external_loopback_interrupt in mcu_plus_sdk_awr294x_08_02_00_25 – Sensors forum – Sensors – TI E2E support forums
,
忡明:
1.我看了下英文e2e论坛的描述,mcan_external_loopback_interrupt这个例程在一个EVM板就能运行的,一个在Cortex_R5_0发送,一个在Cortex_R5_1接收
2.我们代码去掉了
if (TRUE == enableInternalLpbk){MCAN_lpbkModeEnable(gMcanBaseAddr, MCAN_LPBK_MODE_INTERNAL, TRUE);}
3.我们的问题找到原因了,不能去掉电阻R13和R17,mcan_external_loopback_interrupt这个例程得通过收发器的使能接口mcan_enableTransceiver配置STB(14)的电平
,
忡明:
多谢支持