Post History
CAN is asynchronous and, if you receive a string of consecutive zeros, the UART mechanism that turns raw CAN data into "a byte" might have to wait a great deal longer than 1 bit of data before it c...
Answer
#2: Post edited
- CAN is asynchronous and, if you receive a string of consecutive zeros, the UART mechanism that turns raw CAN data into "a byte" might have to wait a great deal longer than 1 bit of data before it can re-sync.
If data is coming 101010101010 then that's great but, if data is 010000000010 then you have to freewheel across all those zeros and still be able to reliably detect the next 1 without over-counting the number of steady bits you have received in the interim period.
- CAN is asynchronous and, if you receive a string of consecutive zeros, the UART mechanism that turns raw CAN data into "a byte" might have to wait a great deal longer than 1 bit of data before it can re-sync.
- If data is coming 101010101010 then that's great but, if data is 010000000010 then you have to freewheel across all those zeros and still be able to reliably detect the next 1 without over-counting the number of steady bits you have received in the interim period.
- By the way, 1 Mbps is a maximum frequency of 500 kHz because there are two symbol slots in one cycle.
#1: Initial revision
CAN is asynchronous and, if you receive a string of consecutive zeros, the UART mechanism that turns raw CAN data into "a byte" might have to wait a great deal longer than 1 bit of data before it can re-sync. If data is coming 101010101010 then that's great but, if data is 010000000010 then you have to freewheel across all those zeros and still be able to reliably detect the next 1 without over-counting the number of steady bits you have received in the interim period.