You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
1) Use the RX STATUS command instead of READ(CANINTF) to check availability of
data to read. This reduces SPI usage for a simple "is data available" check
from 3 bytes to 2.
2) Use the READ RX BUFFER command to read the RXFn* registers as well as the
received data. This requires doing only a single CS pull, and only N+6 bytes
transferred over SPI. READ RX BUFFER also takes care of resetting the RXnIF
flag.
If my math is right, the old code needed N+6 readRegister() calls for a standard
frame, and N+9 readRegister() calls for an extended frame, plus one
modifyRegister() call to reset the RXnIF flag. Each readRegister() call requires
a CS pull and transferring 3 bytes over SPI.
For N = 8,
- we now send 16 bytes over SPI vs 45 for a standard frame (>2.8x reduction!)
- we now do just 2 CS pulls vs 16 for a standard frame (8x reduction!)
0 commit comments