Hello TI forum,
I’m currently facing a serious issue with the DCAN controller and its error interrupt.
I am using:
Code Composer Studio 5.2.0.00069
Blackhawk 510L JTAG Debugger
TMS570LS20216-PGE
My setup is as follows: I configure the DCAN1 message object number 1 to be a transmit box, message object 2 to be a receive box. The baudrate is initialized to 500kBaud.
Physically I have a PCan dongle attached to the DCAN1. In order to provoke the error interrupt, I start the PCan dongle with 500kBaud and then change the baudrate to 800kBaud.
Now if I am accessing a 32bit global variable inside the (error) interrupt, the DCAN1 never goes into bus off and the error interrupt does not get executed correctly. However if I change that 32bit variable to a 16bit or 8bit variable, the DCAN1 does enter bus off and the error interrupt does execute like it should.
As the issue is rather hard to describe, so I attached a test program in which I have isolated the issue. If you make the interrupt counter “InterruptExecutions” a uin32_t, the described problem occurs. If you make it a uint16_t, everything works as it should. The same thing happens if you use array “History” is used inside the interrupt. Mind the comments. Also mind the array “ErrorType”, which was not access correctly when the problem occurs.
Also, the error always occurs if the baudrate of the PCan doggle is changed to 250kBaud rather than 800kBaud.
Could you please tell me if I am doing something wrong or if there is really an issue with the DCAN controller?
Jakobim