This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

LAUNCHXL-F280049C: About CAN_ES Register in the DCAN module

Part Number: LAUNCHXL-F280049C
Other Parts Discussed in Thread: C2000WARE

Hi,

    According to the 《TMS320F28004x Real-Time Microcontrollers Technical Reference Manual》, the BOff/EWarn/EPass bit don't be clear though Reading the Error and Status Register. My question is:

1、How can I clear them?

2、If the DCAN has the ability to continue transmitting, when the BOff/EWarn bit generate an Interrupt? Do I also use the function"CAN_sendMessage()" in canISR if I want to continue transmitting?

    Thansk!

  • Lei,

    How can I clear them?

    The bits cannot be written to directly to be cleared. For the Bus-OFF bit please look at the Auto Bus-ON feature of the DCAN Module. Transmit and Receive Error counters are characterized by the CAN protocol and not the module itself.

    when the BOff/EWarn bit generate an Interrupt?

    All interrupts in CAN are routed through the same interrupt line (for error and status interrupts CANINT0), hence, within the CAN ISR, it is upto the application to determine the code/action to be followed in case of error. 

    If the DCAN has the ability to continue transmitting

    Although there is no software safeguard against giving command to the module to transmit, successful operation is not guaranteed unless the errors are cleared. 

    You can refer to the example "can_ex2_loopback_interrupts" available at "C2000Ware_X_XX_XX\driverlib\f28004x\examples\can" for one possible method of error handling. 

    Thanks.

  • Hi,

      

    2、If the DCAN has the ability to continue transmitting, when the BOff/EWarn bit generate an Interrupt? Do I also use the function"CAN_sendMessage()" in canISR if I want to continue transmitting?

         My be I didn't express the problem clearly.

        The BOff/EWarn bit generate an Interrupt, and then it entered the interrupt service routine. The DCAN will stop transmission.

    If the DCAN transmit again,do I configure the function"CAN_sendMessage()" in ISR? Or other method?

         Thanks!

  • Hi,

       Is there any news?

  • Hi,

       Is there any news?