| Author |
Message |
alex Guest
Free account, no CAN development support
|
26-09-2017, 18:46 Subject: Low Speed: Scheduling & Level Control |
Quote |
|
Hello everyone,
I probably need a low-speed CAN interface, and it has a different electrical configuration.
Now, unlike with High-Speed CAN, you can't find any complete boards for this; only individual chips (TJA 1054/55), and those are only available in surface mount technology (SMD).
From what I can find, the only difference in a 'Low Speed CAN' is the recessive level.
While in high-speed mode, the CAN bus has a voltage of 2.5 volts for both CanHi and CanLo, and is connected via x number of 120 Ohm resistors. In low-speed mode, the CAN bus has a voltage of 0 volts for CanHi and 5 volts for CanLo.
Now the question is whether I can simply use a high-speed transceiver and, instead of the usual termination, connect 120 ohms between CanHi/CanLo. For low speed, could I then connect CanHi with 120 ohms to 0 volts, and CanLo with the same resistance to 5 volts?
I've only found information about the 0 and 5 volts so far, but not about what resistance (in Ohms) is required.
Translated on 19-08-2026, 18:21.
|
|
| Back to top |
|
 |
alex Guest
Free account, no CAN development support
|
27-09-2017, 9:41 Subject: Low Speed: Scheduling & Level Control |
Quote |
|
I have now found a detailed document about the low-speed CAN transceiver TJA1055, which also describes the termination process.
According to the specification, each Low Speed CAN node (CanLo) should be terminated with +5 volts, and CanHi should be terminated with GND. The total resistance against each level should be 100 ohms, but for each node connected to this transceiver, the minimum resistance should be 500 ohms.
The termination is handled by this transceiver; in case of an error, it switches to a higher resistance value (above Ohms) using internal resistors, and under normal conditions, it bypasses the termination and can then tolerate at least 500 Ohms externally.
When examining the driver circuits of the low-speed transceiver TJA1055 and the high-speed transceiver TJA1050, it becomes apparent whether or not the CAN_High/CAN_Low lines are switched to Vcc/ground.
Input is the difference between CanHi and CanLo.
It might be possible to use a high-speed transceiver for a low-speed application by externally terminating the CAN High/Low lines against ground/VCC with appropriate resistors to achieve the correct recessive level.
On the input side, the high-speed transceiver might be able to handle the fact that the difference is -5 volts at low speed instead of 0 volts at high speed.
The dominant levels and the difference between them are similar for both high-speed and low-speed operation.
https://www.nxp.com/docs/en/supporting-information/AH0801.pdf
Translated on 19-08-2026, 18:25.
|
|
| Back to top |
|
 |
postmann CAN-Profi

Joined: 05/23/2013 Posts: 145 Karma: +64 / -0
CAN Support
CAN-Diagnose likes this. |
29-09-2017, 20:32 Subject: Low Speed: Scheduling & Level Control |
Quote |
|
A low-speed CAN typically does not have any termination.
According to ISO 11898-3, termination is not required/allowed for the CAN bus because it can operate at a maximum of 125 KBps and is designed to be fault-tolerant.
The timing configuration you described is for a high-speed CAN bus.
Translated on 19-08-2026, 18:27.
|
|
| Back to top |
Profile PM |
 |
alex Guest
Free account, no CAN development support
|
29-09-2017, 21:20 Subject: Low Speed: Scheduling & Level Control |
Quote |
|
I believe that high-speed CAN requires a 120-ohm termination at each end between the CAN_H and CAN_L lines.
The described termination scheme, where each CanHi node is connected to ground (GND), each CanLo node is connected to VCC, and a total of 100 ohms is used for all nodes, is completely different.
The linked document describes the functionality for the tja1055 low-speed transceiver, which is the successor to the tja1054.
I've also heard elsewhere that the LowSpeed CAN is recessive, with CanLo at 5 volts and CanHi at ground. This information must come from somewhere, whatever you want to call it.
'On my CAN device, I'm measuring an open-circuit voltage of -10.x volts between CAN High and CAN Low, which would suggest a low-speed termination. However, the tja 1055 datasheet specifies an operating voltage of only 4.x to 5.x volts, so a 10-volt level difference is not explainable.'
Translated on 19-08-2026, 18:29.
|
|
| Back to top |
|
 |
postmann CAN-Profi

Joined: 05/23/2013 Posts: 145 Karma: +64 / -0
CAN Support
CAN-Diagnose likes this. |
30-09-2017, 11:43 Subject: Low Speed: Scheduling & Level Control |
Quote |
|
The 120 ohms at both ends of a CAN network, as you described, are actually just a theoretical value and are not used in practical applications.
The termination with 100 ohms between the CAN bus line and the power supply is a split termination. This also includes an appropriate capacitor and an inductor. This is generally the most common type of termination used in automotive applications.
What actually doesn't really matter, since a low-speed CAN network isn't terminated. You're using a transceiver that is compatible with ISO 11898-3, are you sure that the network is a low-speed network?
In the automotive industry, it is common to use high-speed CAN and reduce the baud rate. In such cases, using a termination resistor would also make sense.
Translated on 19-08-2026, 18:31.
|
|
| Back to top |
Profile PM |
 |
alex Guest
Free account, no CAN development support
|
30-09-2017, 12:38 Subject: Low Speed: Scheduling & Level Control |
Quote |
|
What is the practical implementation of high-speed CAN bus termination, or are you saying that every high-speed CAN node has a 120-ohm resistor between CAN High and CAN Low, not just at the ends of the bus?
With one of my OBD adapters, I can measure 120 ohms between CAN High and CAN Low, but with another adapter, I cannot.
It should be possible to determine whether you are dealing with a high-speed or low-speed CAN bus by measuring the different timing parameters and recessive voltage levels.
With high-speed CAN, you should be able to measure a resistance of 120 ohms or less between CAN High and CAN Low, due to the multiple connections in parallel.
I also saw in a datasheet that a higher resistance value is recessive and pulled down to 2.5 volts through a resistor, while the same high-value resistors are connected to 5 volts and ground.
In a Low-Speed CAN system, there is no termination required between the CAN High and CAN Low lines, and the measured resistance between them should be very high.
Instead, CanLo is pulled down to 5 volts (with a diode connected to the negative side) and CanLo is pulled up to 5 volts (with a diode connected to the positive side) at each node, with a total resistance of 100 ohms.
This is also referred to as termination in the linked application note.
Translated on 19-08-2026, 18:34.
|
|
| Back to top |
|
 |
postmann CAN-Profi

Joined: 05/23/2013 Posts: 145 Karma: +64 / -0
CAN Support
|
30-09-2017, 21:59 Subject: Low Speed: Scheduling & Level Control |
Quote |
|
When connecting to a high-speed network (e.g., via the OBD port) between CAN High and CAN Low, you should measure approximately 0-0.5V for Bus Low Power and around 60 Ohms. This is because a split termination is used here.
With an OBD adapter, you shouldn't be able to measure anything (i.e., the resistance should be very high). This is because the termination is handled within the vehicle itself. If the adapter also has a termination resistor (like the 120 ohms you measured), this could negatively affect the impedance matching. However, it will still likely function, as the diagnostic CAN bus in most vehicles doesn't have a high bus load.
The linked application note is not intended for a low-speed CAN bus. While the transceiver itself is compatible with the ISO 11898-3 standard, it will not function correctly on a low-speed CAN bus, especially in applications like diagnostic CAN systems.
You first need to determine which CAN standard is being used (e.g., 11898-2, 11898-3, or another standard; there are many available).
Once you're ready, you'll need the baud rate. If it's a low-speed CAN bus, it's relatively simple, as it can only go up to 125 kbps. High-speed CAN is more complex.
When dealing with voltage levels on the CAN bus, you need to understand what the network is currently doing. In a vehicle, we can distinguish between:
- Low Power: Voltage between CAN High and CAN Low is 0V, voltage between CAN H and ground is 0V, and voltage between CAN L and ground is 0V (transceiver disabled).
- Bus Idle Low Power -> Voltage between CAN High & CAN Low is 0V, voltage between CAN H and ground is 0.5V, and voltage between CAN L and ground is 0.5V (transceiver is in sleep mode).
- Bus recessive -> Voltage between CAN High and CAN Low is 0V, voltage between CAN High and ground is 2.5V, and voltage between CAN Low and ground is 2.5V (which fluctuates slightly due to the changing bus level).
- Bus Dominant: Voltage between CAN High and CAN Low is 2V, voltage between CAN High and ground is 3.5V, and voltage between CAN Low and ground is 1.5V (which fluctuates slightly due to the changing bus level).
In industrial CAN systems (such as Safety CAN, TT CAN, etc.), different voltage levels can be used.
What do you plan to use the transceiver for?
Translated on 19-08-2026, 18:38.
|
|
| Back to top |
Profile PM |
 |
alex Guest
Free account, no CAN development support
|
30-09-2017, 22:53 Subject: Low Speed: Scheduling & Level Control |
Quote |
|
The linked application note is not intended for a Low-Speed CAN.
It says so right on the first page:
Title: TJA1055T - Fault-tolerant CAN transceiver.
'Fault-tolerant' (single line can) already implies low speed, because 'fault-tolerant' does not exist for high-speed applications.
Furthermore, the TJA1055 and 54 are low-speed transceivers.
Translated on 19-08-2026, 18:42.
|
|
| Back to top |
|
 |
alex Guest
Free account, no CAN development support
|
30-09-2017, 23:10 Subject: Low Speed: Scheduling & Level Control |
Quote |
|
With an OBD adapter, you shouldn't be able to measure anything (i.e., the resistance should be very high). This is because the termination is located in the vehicle. If the adapter also has a termination (like the 120 ohms you measured), this could negatively affect the impedance matching.
As I understand it, a terminating resistor must be placed at the end of the cable, with a resistance value equal to the cable's characteristic impedance, and this value should be independent of the cable's length in order to avoid reflections.
One might reasonably assume that this could occur on every branch of the cable, even if it increases the bus load.
Whether the resistor should be inside the module or in the adapter is debatable. In a diagnostic CAN system, there's likely a gateway at one end and an OBD connector at the other, so it probably doesn't matter which location you use. However, having a resistor in both the module and the adapter would result in a total resistance of 60 ohms, which would be incorrect.
Translated on 19-08-2026, 18:44.
|
|
| Back to top |
|
 |
alex Guest
Free account, no CAN development support
|
30-09-2017, 23:31 Subject: Low Speed: Scheduling & Level Control |
Quote |
|
Regarding the voltages on the CAN
As mentioned earlier, I'm measuring -11.5 volts between CAN High and CAN Low on the device in question when it's in deep sleep mode with a battery voltage of 13.5 volts. During operation, I'm seeing approximately -10 volts between CAN High and CAN Low.
This could only be explained by using a Low-Speed CAN interface, which is terminated against the entire battery voltage and not just 5 volts. However, the TJA1055 Low-Speed Transceiver, according to its datasheet, only operates with 5 volts.
This voltage is so high that I can easily communicate between an MCP2515/TJA1050 and an ELM327 on the same bus using this device, with all three devices connected to the same bus.
I will still try sending the 0x7FF CAN IDs to see if I receive an acknowledgment for any of them. Even with all the baud rates I know (83.3, 125, 250, 500 kbps), it might still be possible.
The device should also be able to turn on via the CAN bus, but I haven't managed to get that working yet; I have to use the ACC (accessory) function instead.
I don't know if there's a specific sequence involved, or if a particular ID/message is required, or if it just needs some kind of traffic – although the latter should have already happened.
It's also possible that the Raspberry Pi Socket CAN module isn't correctly setting the non-standard baud rate of 83.3 for the MCP2515; I could measure this using a logic analyzer.
I read on a forum that some Mercedes vehicles use an 83.3 baud Low-Speed CAN bus, and that the TJ1054 Low-Speed interface should be used for the Comfort Bus.
How often does one read different things...?
Translated on 19-08-2026, 18:47.
|
|
| Back to top |
|
 |
postmann CAN-Profi

Joined: 05/23/2013 Posts: 145 Karma: +64 / -0
CAN Support
|
01-10-2017, 10:34 Subject: Low Speed: Scheduling & Level Control |
Quote |
|
I can help you with that  .
Indeed, there are CAN networks in Mercedes vehicles with a data rate of 83.3 kB, but these are high-speed CAN networks. Low-speed CAN is not used in Mercedes vehicles.
As far as I know, the value 83.3 is not used on the comfort CAN bus, but rather on the head unit CAN bus (telematics/audio).
Get a different transceiver and then trigger it based on the ID 0xA1h or 0x20h (depending on the vehicle). This is the ignition message, which is always sent.
You don't need to schedule anything there; Mercedes uses a star arrangement, and the scheduling is centralized within that star.
Translated on 19-08-2026, 18:51.
|
|
| Back to top |
Profile PM |
 |
alex Guest
Free account, no CAN development support
|
01-10-2017, 21:18 Subject: Low Speed: Scheduling & Level Control |
Quote |
|
As far as I know, 83.3 is not used on the comfort CAN bus, but rather on the head unit CAN bus (telematics/audio).
Isn't that the same one (Can B)?
I thought the head unit would need to be connected to the same CAN bus as the steering wheel and onboard computer. If that's the case and it's a different CAN bus, then quite a bit of wiring would have to be routed to the comfort CAN bus.
On the other hand, some head units have connections for two pairs of headphones, which is what's needed for the Vito.
Translated on 19-08-2026, 18:52.
|
|
| Back to top |
|
 |
alex Guest
Free account, no CAN development support
|
01-10-2017, 21:46 Subject: Low Speed: Scheduling & Level Control |
Quote |
|
I'm now receiving acknowledgements from the device in deep sleep at 83.3 kbps using an mcp2515/tja1050 without any termination resistors, only connected to a tja1050 and the device, for every ID I've tried so far.
That's already a step forward. I had actually tried 83.3 kbps before, but I don't know why it's working now. I need to experiment to see if it's related to the ELM327 device, the 120 Ohm resistor, or something else.
Since the device, as mentioned, exhibits a high impedance and draws approximately -10 volts between CanHi/Lo, it's understandable that no further termination is needed to pull the dominant +x volts back down.
'83.3 kHz should also pose few problems in terms of reflections, especially considering my relatively short cables (a few decimeters).'
I'm going to start experimenting with specific messages now.
Do you know exactly what information must be included in the ignition messages labeled '0x20' or '0xA1'?
Translated on 19-08-2026, 18:54.
|
|
| Back to top |
|
 |
alex Guest
Free account, no CAN development support
|
02-10-2017, 2:11 Subject: Low Speed: Scheduling & Level Control |
Quote |
|
I have now found the specification for the Mercedes CAN bus.
https://drive.google.com/file/d/0B1Rb8jOWwErbQ19CM3dnZmsyRlU/view
https://mbworld.org/forums/audio-electronics/580108-w211-can-b-hacking-2.html
Following that, it becomes clear that Can B/Body Can is indeed a low-speed CAN bus with a data rate of 83 kbps, because the possibility of connecting a CAN line to Vcc or ground for fault tolerance suggests the potential for single-wire operation.
The levels I measured are also specified as follows: CanLo is approximately 11 volts in the dormant state and 4 volts in the active state. The value for CanHi is somewhat unclear; I'm not sure if the active level is actually only 0.65 volts, as the diagram isn't entirely clear on that point.
It's surprising to me that it even works with my high-speed transceiver at these strange voltage levels (I'm getting acknowledgements), because theoretically, the active level difference is still negative, and that should be positive for high-speed CAN, whereas I'm not sure about low-speed.
Based on my understanding of the specifications for the low-speed transceivers TJ1054/55, it seems that a completely different transceiver might be required.
Translated on 19-08-2026, 18:57.
|
|
| Back to top |
|
 |
alex Guest
Free account, no CAN development support
|
02-10-2017, 3:18 Subject: Low Speed: Scheduling & Level Control |
Quote |
|
After searching for 1.5 months, I finally figured out how to turn on my CAN device via CAN, thanks to the linked thread on mbworld.org and a GitHub project found there.
https://github.com/jumph4x/can-bus-w211.git
You need to send '0 0xFF' once or twice to ID 0, and then it will turn on.
It turns off again with 'id 0 0x00', and everything is at 83 kbps (or possibly 83.3 kbps).
With Linux Socket CAN, it looks like this:
cansend can0 000#FF
cansend can0 000#FF
cansend can0 000#00
Okay, it looks quite simple once you know how, but apart from this one mbworld thread that I recently found, nobody actually knew anything useful.
The explanation is that in ID 0, byte 0, there are various pins related to terminal 15, which represents the ignition.
Extensive additional information can be found in the thread and the linked GitHub project about the Mercedes CAN bus.
Translated on 19-08-2026, 19:00.
|
|
| Back to top |
|
 |
CAN-Diagnose Administrator


Joined: 06/07/2011 Posts: 575 Karma: +29 / -0 Location: Ländle
|
02-10-2017, 21:35 Subject: Low Speed: Scheduling & Level Control |
Quote |
|
alex wrote: | Ich habe die Infos zum Mercedes CanBus consolidiert.
Ich verstehe nicht, dass Du das entfernst, insbesondere weil sonst keine Infos dieser Qualität vorhanden sind.
Was ich Stück für Stück herausfand ist unübersichtlich über mehrere meiner Threads verteilt und zum Stichwort Mercedes gar nicht zu finden.
Ich hatte in anderen Foren zum Thread verlinkt, dann werde ich das entfernen müssen und dort direkt angeben.
Ich kann nicht verstehen, dass Du Informationen unterdrückst. |
Klarstellung, warum Du hier rausfliegst.
1.) Beiträge, die nur aus Links und keinem Text bestehen, was soll das? Hier ist keine Linkschleuder.
2.) Links auf Dinge die urheberrechtlich geschützt sind, gehen gar nicht, da nützt es auch nichts, die in irgendwelchen Pastebins zu speichern!
3.) Dokumente die extern verlinkt sind, sind irgendwann weg und damit nutzlos.
4.) Finde ich es unverschämt, hier um Hilfe zu bitten, sich helfen zu lassen und dann nur noch Links zu posten und Themen zu entführen.
Deshalb: Ciao.
|
|
| Back to top |
Profile PM WWW |
 |
|