
R01UH0336EJ0102 Rev.1.02
Page 1161 of 1538
Jul 17, 2014
V850E2/PG4-L
Section 20 CAN Controller (FCN)
Figure 20-33
Reception via Interrupt (Using FCNnCMRGRX Register), Alternative Way
Note 1.
Also check the FCNnGMCLSSMO flag at the beginning and at the end of the
interrupt routine, in order to check the access to the message buffers as well
as receive history list registers of the FCN module, in case a pending sleep
mode had been executed. If FCNnGMCLSSMO is detected to be cleared at
any check, re-set FCNnGMCLSSMO, discard actions and results of the
processing, and then perform processing again.
It is recommended that all sleep mode requests be cancelled before
processing reception interrupts.
Note 2.
Once FCNnCMRGRX.FCNnCMRGRVFF is set, the receive history list is
inconsistent. Consider to examine all configured receive buffers to check
reception.
Note 3.
This flow will not provide most recently received data for the application.
However, interrupt load is reduced because of less processing amount.
Note 4.
The overwrite function (FCNnMmSTRB.FCNnMmSSOW = 1) must not be
used in this flow. Using this function may lose data consistency.
Yes
Yes
No
No
START
Generation of receive
completion interrupt
Read FCNnCMRGRX register
FCNnCMRGRX.
FCNnCMRGRVFF
= 1?
FCNnCMRGRX.
FCNnCMRGSSPM
= 1?
Read FCNnMmDATx,
FCNnMmDTLGB, and
FCNnMmMID0W registers
Clear
FCNnMmCTL.FCNnMmDTNF
Clear
FCNnCMRGRX.FCNnCMRGRVFF
END