Re: problem regarding Succesful Transmission of CAN message

Started by Edward Karpicz March 26, 2009
wrote:

> how application knows when arbitration lost? will msCAN retry later?
> thanks!

Yes MSCAN will retry later. It will keep retrying until message is send and
acked by other nodes.

>
> helo everybody
>>
>> i am working on S12MSCAN-v2....for data transmission
>>between any test equipment and an ECU...the Microcontroller I am
>>using in the using ECU is MC9S12D64..
>>
>> i have a question regarding this....
>>
>> how can we know that the CAN transmission is
>>completed...instead of cheking the MSCAN transmitter register
>>(CAN0TFLG (TXE))..

Why checking TXE doesn't suit you?

>>
>> how can we check the status of the CAN bus..i.e., when we
>>send a data to the Data segement register....CANTFLG will be set to 1
>>automatically stating that the transmitter buffer is empty that
>>means the transmission is completed succesfully..but how can we know
>>about the successful transmission if the CAN Bus is Open or any error
>>occured in the CAN bus...please provide the sample code for this if u
>>have...

To check if bus is OK, you should configure RSTATEx, TSTATEx bits in CANRIER
register. Then you should monitor CSCIF flag. RSTATx (no E in bit name),
TSTATx flags are updated only when CSCIF is cleared. So every time error
status changes (CSCIF=1), you read error status flags RSTATx, TSTATx and
clear CSCIF by writing one to it.

Edward

>>it will help me alot..
>>thanks and regards
>>Yadunandan
>