Other Parts Discussed in Thread: HALCOGEN
Hello,
I am currently working with the Hercules TMS570LC43x LaunchPad Development kit. What I am trying to do is to send CAN message to another MCU, more specifically the Hercules Safety MCU Development Kit, TMS570 MCU. I have been able to send a CAN message from the Development kit to the LaunchPad, however, I am not able to send a message the other way around. I only have this problem with the LaunchPad.
I configured the LaunchPad in HALCoGen using the following configurations :
- TMS570LC4357ZWT chip
- enabled CAN1 driver
- disabled Identifier Extension (I need to use 11 bit identifiers)
- configured the first message box of CAN1 to TX and configured the identifier, and activated the message box
In the code :
- I enabled error notification on canREG1
- I read the canREG1 error and status register
- try to transmit
After a very short while, the canErrorNotification is triggered, with notification = 96, at this point the error and status register of canREG1 has the value 99, after reading the documentation of the MCU, this means that the bits EPass and EWarn are set, and the last error code is 3H, meaning Ack Error. I want to note that there is another node, as the LaunchPad is connected via CAN to the Hercules Development MCU, and in this same configuration I can send CAN messages from the development kit to the launchpad, triggering a canMessageNotification on the LaunchPad.
I do not know why there is an Ack Error when trying to transmit, I would think that there is a mismatch when configuring the two nodes, however, in HALCoGen, the general section of CAN1 on both mcus is the same.
I have read that a node writes a recessive bit int he ACK slot, i.e. does not acknowledge the message, if the CRC is not valid for that message. However, if I debug the development kit mcu, the receiver, and check the status and error register of CAN1, I do not see a CRC error.
If I can provide any more information please do not hesitate to ask.
Thank you.