| 전자부품 데이터시트 검색엔진 |
|
ST72561J4-Auto 데이터시트(PDF) 234 Page - STMicroelectronics |
|
|
|||||||||||||||||||||||||||||
ST72561J4-Auto 데이터시트(HTML) 234 Page - STMicroelectronics |
|
234 / 324 page ![]() beCAN controller (beCAN) ST72561-Auto 234/324 Doc ID 12370 Rev 8 Figure 109. FIFO corruption Workaround To implement the workaround, use the following sequence to release the CAN receive FIFO. This sequence replaces any occurrence of CRFR |= B_RFOM; . Figure 110. Workaround 1 Explanation of workaround 1 First, we need to make sure no interrupt can occur between the test and the release of the FIFO to avoid any added delay. The workaround checks if the first two FIFO levels are already full (FMP = 2) as the problem happens only in this case. If FMP ≠ 2 we release the FIFO immediately, if FMP = 2, we monitor the reception status of the cell. The reception status is available in the CMSR register bit 5 (REC bit). Note: The REC bit was called RX in older versions of the datasheet. ● If the cell is not receiving, then REC bit in CMSR is at 0, the software can release the FIFO immediately: there is no risk. ● If the cell is receiving, it is important to make sure the release of the mailbox will not happen at the time when the received message is loaded into the FIFO. Initial State *v * pointer to next receive location v pointer to next message to be released --- When the FIFO is empty, v and * point to the same location FIFO Receive Message A * v A- - Receive Message B AB - * v Receive Message C ABC * v * does not move because FIFO is full (normal operation) Release Message A ABC v * Release Message B DB C and Receive Message D * v DB C * Normal operation * Does not move, pointer corruption Receive Message E EBC Release Message C EBC * v Release Message E EBC * v C released * v Release Message B EBC * v * and v are not pointing to the same message D is overwritten by E FMP 0 1 2 3 2 2 3 2 1 0 the FIFO is empty v E released instead of B if ((CRFR & 0x03) == 0x02) while ((CMSR & 0x20) && (CDGR & 0x08)) { }; CRFR |= B_RFOM; |
|
링크 URL |
| ALLDATASHEET 가 귀하에 도움이 되셨나요? [ DONATE ] |
Alldatasheet는? | 광고문의 | 운영자에게 연락하기 | 개인정보취급방침 | 링크 투 데이터시트 | 링크교환 | 제조사별 검색 All Rights Reserved©Alldatasheet.com |
| Russian : Alldatasheetru.com | Korean : Alldatasheet.co.kr | Spanish : Alldatasheet.es | French : Alldatasheet.fr | Italian : Alldatasheetit.com Portuguese : Alldatasheetpt.com | Polish : Alldatasheet.pl | Vietnamese : Alldatasheet.vn Indian : Alldatasheet.in | Mexican : Alldatasheet.com.mx | British : Alldatasheet.co.uk | New Zealand : Alldatasheet.co.nz |
|
Family Site : ic2ic.com |
icmetro.com |