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

TMS0320F28335技术咨询

Other Parts Discussed in Thread:TMS320F28335

Hi team 

good day

客户有个问题需要咨询,麻烦帮忙看下:

有关TMS320F28335 CAN寄存器的问题需要请教。
CAN模块寄存器是不是都是可读的,我现在读取寄存器并赋值给变量:

pAcquireValue->TempSensor.Ch[0]=ECanaRegs.CANME.all<<16;

pAcquireValue->TempSensor.Ch[1]=ECanaRegs.CANME.all;

pAcquireValue->TempSensor.Ch[2]=ECanaRegs.CANRMP.all<<16;

pAcquireValue->TempSensor.Ch[3]=ECanaRegs.CANRMP.all;

(pAcquireValue->TempSensor.Ch为16位变量的数组)
寄存器ECanaRegs.CANME.all和ECanaRegs.CANRMP.all中的数值都不是0,但是寄存器ECanaRegs.CANRMP.all赋值的变量读取出来有的变成了0.(见附件截图)
同样ECanaRegs.CANRML.all和ECanaRegs.CANGIF.all这种实时变化的寄存器读取出来都是0.
请问这是对寄存器操作的问题还是这种寄存器不能这样读取?
另外,我之所以这样读取寄存器是因为调试中遇到问题,CAN通讯正常情况发送接收都没有问题,但是出现干扰(目前认为是干扰的原因)会出现CAN通讯中断,28335不能应答接收的报文,可以发送报文,干扰情况下仿真器会断开,无法查看寄存器状态。28335仍然运行,只是CAN通讯会有这种问题。
报文截图:(28335为从机,轮训发送帧0x0001,0x0002,发送帧中有空数据。主机发送报文0x030c,28335没有应答)
3916 26:58.9 0x2752E4C ch1 接收 0x0001 数据帧 标准帧 0x08 x| 00 13 00 00 28 01 02 00 
3917 37:01.6 0x2C26457 ch1 接收 0x0002 数据帧 标准帧 0x02 x| B6 15 
3918 37:01.6 0x2C2672B ch1 接收 0x030C 数据帧 标准帧 0x08 x| 00 00 00 00 00 00 00 00 
3919 37:01.6 0x2C26C02 ch1 接收 0x0002 数据帧 标准帧 0x08 x| B6 15 3D 01 02 00 00 00 
3920 37:01.6 0x2C26D8A ch1 接收 0x0002 数据帧 标准帧 0x02 x| B6 15 
3921 37:01.6 0x2C27744 ch1 接收 0x0002 数据帧 标准帧 0x02 x| B6 15 
3922 37:01.6 0x2C279BA ch1 接收 0x0002 数据帧 标准帧 0x08 x| B6 15 3D 01 02 00 00 00 
3923 37:01.6 0x2C27CA0 ch1 接收 0x030C 数据帧 标准帧 0x08 x| 00 00 00 00 00 00 00 00 
3924 37:01.6 0x2C28022 ch1 接收 0x0002 数据帧 标准帧 0x00 x| 
3925 37:01.6 0x2C28644 ch1 接收 0x0002 数据帧 标准帧 0x08 x| B6 15 3D 01 02 00 00 00 
3926 37:01.6 0x2C288B1 ch1 接收 0x0002 数据帧 标准帧 0x02 x| B6 15 
3927 37:01.6 0x2C2926B ch1 接收 0x0002 数据帧 标准帧 0x02 x| B6 15 
3928 37:01.6 0x2C29279 ch1 接收 0x030C 数据帧 标准帧 0x08 x| 00 00 00 00 00 00 00 00 
3929 37:01.6 0x2C293A2 ch1 接收 0x0001 数据帧 标准帧 0x00 x| 
这种出现干扰不能仿真的情况下,该怎样解决can通讯的问题?
Regards
Asoker
Green Deng:

Hi Aosker:
CAN寄存器都是可读的,但是读取方法是否可行我需要验证一下。
至于干扰不能仿真情况下的CAN通讯,不知道干扰是否影响CAN通讯本身?总的来说只能通过在仿真器或者CAN通讯线上加抗干扰措施来解决。可以选择带屏蔽的连接线。

,

wcl chunlei:

Green Deng:

您好,感谢您的回复。

现在我发现全局中断标志寄存器ECanaRegs.CANGIF1.bit.WDIF1写拒绝中断标志位置位,将其写一清除后,can模块还是不能接受到数据(主机一直在发送数据,但是CANRMP中相应位不能置位)。干扰是瞬时的,故障出现后取消干扰,can模块接收不能正常工作,可以发送。can模块并没有进入离线模式,这种情况有办法使模块功能恢复吗?

期待您的回复。

,

Green Deng:

你好,我概括一下你的问题是不是希望CAN模块在干扰结束后使原本因干扰导致无法工作的CAN模块继续恢复工作?
这样的话可以尝试一下CAN模块的ABO(auto-bus-on)功能,可以自动恢复接收。

,

wcl chunlei:

Green Deng :

您好。如果干扰情况下CAN模块并没有离线,离线状态位BO和标志位BOIF均没有置位,还需要使用ABO功能么?

另定时器管理单元我没有设置,定时管理单元跟CAN模块接收中断有关系吗,会影响接收中断的发生吗?

期待您的回复。

,

da qin zheng sheng:

硬件需要光耦隔离通信,提高抗干扰。

赞(0)
未经允许不得转载:TI中文支持网 » TMS0320F28335技术咨询
分享到: 更多 (0)