Skip to main content
Search type Search syntax
Tags [tag]
Exact "words here"
Author user:1234
user:me (yours)
Score score:3 (3+)
score:0 (none)
Answers answers:3 (3+)
answers:0 (none)
isaccepted:yes
hasaccepted:no
inquestion:1234
Views views:250
Code code:"if (foo != bar)"
Sections title:apples
body:"apples oranges"
URL url:"*.example.com"
Saves in:saves
Status closed:yes
duplicate:no
migrated:no
wiki:no
Types is:question
is:answer
Exclude -[tag]
-apples
For more details on advanced search visit our help page
Results tagged with
Search options not deleted user 56411

CAN stands for Controller Area Network and is a bus often used in automotive applications. It is a two-wire differential protocol and works on baud rates from 10 kbits/sec to 1 Mbits/sec.

8 votes

What is the limiting factor for a CAN bus to exceed 1Mbps bandwidth?

It can. Meet CAN-FD. Why was a new protocol needed? CAN is a multi-master bus with arbitration and error reporting. … That, along with backwards compatibility requirements, led to CAN-FD. Classic CAN at 1 Mbps is limited to a 40-meter bus length. (In practice, I think it's lower due to stray capacitance.) …
Adam Haun's user avatar
  • 22.3k
3 votes

CAN- "Messages have ID's not nodes"

For example, if you have a temperature sensor broadcasting data, you can assign an ID number to mean "temperature data from sensor #1". Then any node that cares about temperature data can receive it. … CAN controllers can easily send and receive multiple IDs, so it often doesn't make sense to say that a node has only one ID. …
Adam Haun's user avatar
  • 22.3k
0 votes

Does STM32F0-ecosystem always need at least 2 controllers for CAN transmit to work?

Standard CAN requires two nodes so that ACKs will be sent. Nodes don't ACK themselves. If you only have one node, you can get a CAN adapter for a PC to act as a second node. …
Adam Haun's user avatar
  • 22.3k
16 votes
Accepted

How to deal with signed int overflows

In C, you can do it by starting with unsigned values and using bitwise operators, like this: uint16_t highbyte, lowbyte, data; highbyte = get_can_byte(); //Do whatever you normally do to get the bytes … Things like bitwise operators can behave differently or produce undefined behavior when used on signed values. In general, whenever you're doing bit manipulation, use unsigned values. …
Adam Haun's user avatar
  • 22.3k
1 vote

CAN bus simulation (automotive purpose) - tried Arduino and SparkFun

You can get one with an OBD-2 connector if that's what you need. …
Adam Haun's user avatar
  • 22.3k