CAN Tranceiver 3.3V - Page 1
Forum section: electronics / projects

author: lollandster
author_rank: Contributor
timestamp: June 06, 2019, 11:30:15 am
content: Hi,I' working on a simple CAN transmitter for interfacing between various sensors and a datalogger (no car is involved). The design will be based around a STM32F103 (at least that is where I started).My question is about voltage levels.Most transceivers I've found need a 5V power supply. Since the STM32 is 3.3V, this isn't ideal. I've found several transceivers that claims to work on 3.3V, but all of them have a lower output voltage than the 5V transceivers.Does anyone have experience with 3.3V based CAN transceivers? I'm thinking TCAN332G for my design.

author: Niklas
author_rank: Frequent Contributor
timestamp: June 06, 2019, 11:46:55 am
content: The CAN Tx and Rx pins on the STM32F103 are 5V compatible so you can connect a 5V transceiver directly to them. Another option is to use a transceiver with a separate supply for the logical interface. Look for a Vio pin and connect your 3.3 V supply there.

author: lollandster
author_rank: Contributor
timestamp: June 06, 2019, 11:53:22 am
content: Quote from: Niklas on June 06, 2019, 11:46:55 amThat isn't the issue. I don't want to have a regulated 5V supply.I did find some more information about 3.3V compatibility from Linear Technologies. It looks like it shouldn't be an issue.https://www.analog.com/en/technical-articles/can-bus-transceivers-operate-from-33v-or-5v-and-withstand-60v-faults.html

author: Rerouter
author_rank: Super Contributor
timestamp: June 06, 2019, 11:56:57 am
content: the issue is the bus active state, the can high line needs to go above 3.3V, so unless the device has an internal boost converter it needs to have a higher supply, you cant get away with using a simple bucket-brigade 3.3-5V regulator?, no complex inductor stuff involved. just a single capacitor and an IC.

author: lollandster
author_rank: Contributor
timestamp: June 06, 2019, 12:03:49 pm
content: Quote from: Rerouter on June 06, 2019, 11:56:57 amSo why do Texas Instrument, Linear Technology and Maxim Integrated sell 3.3V CAN transceivers? It clearly works. I'm just wondering if there are issues related to doing so.

author: Rerouter
author_rank: Super Contributor
timestamp: June 06, 2019, 12:09:07 pm
content: Its described in the article, they drop the bus idle level to 1.95V, the issue is other devices on the network will have biasing in there transceiver pulling it to 2.5V already, it would be fine if everything was running at the lower Idle threshold, but some devices can trancievers don't quite work to the full specified range and get upset if you play with the idle levelTo clarify, your device would likely read fine, and send the data, there just will be idle level fighting, and the possibility some devices will fail to read what your device writes

author: Yansi
author_rank: Super Contributor
timestamp: June 06, 2019, 12:12:50 pm
content: I see here pretty bad misunderstanding of the CAN bus and the transceivers.Use either a 3V or 5V single supplied transceiver. There is plenty of choice. There is not much to fuss about.There are even transceivers with 5V for the driver and separate Vio pin (1.8 to 5V).CAN transceiver inputs I mean the side on CAN bus can most times tolerate voltages well beyond supply voltage and ground of the chip itself. Good transceivers have common mode range of +-20V or more.Use for example SN65HVD232, if you want to go 3V3 only. Job done.

author: Yansi
author_rank: Super Contributor
timestamp: June 06, 2019, 12:15:11 pm
content: Quote from: Rerouter on June 06, 2019, 11:56:57 amThe CAN transceiver is like "zero fucks given" as the common mode voltage rang on a good transceiver like TJA1044 is like +-27V.It looks for the DIFFERENCE between the signals. The biasing is just biasing to keep it from floating away.//EDIT: Even the TCAN332G has a common mode range of +-17V ! Why don't you read the datasheet first?

author: lollandster
author_rank: Contributor
timestamp: June 06, 2019, 08:29:07 pm
content: I don't know if I got any smarter after reading over the replies a couple of times. I mean, two super contributors answering very differently on the question just made me more confused. I don't fully understand the electrical side of CAN-Bus and I'm thinking I don't have to if the IC can handle it for me.The linked article does say that the common mode will fluctuate when mixing 5V and 3.3V based transceivers, but the effect seams to be only slightly increased EME and no functionality problems. I think I'll use the LTC2875 chip just because of the article. It is significantly more expensive, but my time is more valuable.

author: SparkyFX
author_rank: Frequent Contributor
timestamp: June 06, 2019, 08:42:46 pm
content: The transceiver needs to be able to drive the bus dominant state to have a difference between lines of 0V - against all other recessive nodes (which output a 2.5V, high impedance, difference) and with adequate slew rate, low ringing/overshoot. In recessive state the transceiver just needs to keep the voltage level in presence of the termination resistors.The thing is you layout the network, not just one node, to operate to certain limits (within its baudrate, wire length).

author: lollandster
author_rank: Contributor
timestamp: June 06, 2019, 08:59:45 pm
content: Quote from: SparkyFX on June 06, 2019, 08:42:46 pmAre you guys deliberately trying to confuse me by making it sound more complicated than it is?I found application note from TI (http://www.ti.com/lit/an/slla337/slla337.pdf) that agrees with Linear Technology. I'll quote:Quote from: http://www.ti.com/lit/an/slla337/slla337.pdfQuote from: http://www.ti.com/lit/an/slla337/slla337.pdfEDIT: The data logger is black box, so unless I put a probe to it, I don't know much about it. It's a HBM Quantum MX840.

author: Yansi
author_rank: Super Contributor
timestamp: June 06, 2019, 09:06:07 pm
content: I am sorry if my response was confusing to you. But I have clearly stated I think, that the transceiver gives zero f*cks whether the rest of the network uses transceivers powered from 5 or 3V, as long as the input signal will be within its common mode voltage limits, which are as I have stated always wider than the supply voltage.

author: lollandster
author_rank: Contributor
timestamp: June 06, 2019, 09:15:11 pm
content: Quote from: Yansi on June 06, 2019, 09:06:07 pmYes, your explanation was clear and agreed with what I read (which is why I pressed the thanks button). What confuses me is that your peers don't agree. Since I don't know your backgrounds I don't know who to trust.I will now stop being confused and trust TI and LT/analog (and by extension you). Thanks.

author: SparkyFX
author_rank: Frequent Contributor
timestamp: June 07, 2019, 05:51:53 pm
content: Quote from: lollandster on June 06, 2019, 08:59:45 pmI wish there was a simpler way to express it, but with CAN or differential signaling, forget the concept of low = 0 and high = 1.Any node can be master, so any other node needs to be able to override (e.g. during message id transmission or during ACK), hence this is better called dominant/recessive state. Which brings the electrical characteristics into focus.

author: lollandster
author_rank: Contributor
timestamp: June 07, 2019, 08:06:17 pm
content: Quote from: SparkyFX on June 07, 2019, 05:51:53 pmYes, I know all the basics about how this stuff works and I know that all this stuff gets complicated fast). What I mean you may be over-complicating is implementing the IC. I may have been slightly frustrated and defensive when I wrote some of my previous replies. Sorry. I just want to concentrate on the software.To summarize.As long as the IC is implemented as detailed in the data sheet and all other nodes follow the standard, it shouldn't matter if the IC is 5V or 3.3V (from a practical viewpoint). The bus cable should be impedance matched with the termination resistors. The cable should be a twisted pair. Grounded shielding is optional. A common mode split termination can be used to reduce EME, but will increase current consumption when transceivers with different common mode voltages (which is likely to be my scenario).If you think my summation is wrong to the point that I may get in trouble, please let me know. I will start drawing the first schematic layout now. This is a private project so I will open source everything and probably post it somewhere on the forum for review/criticism when I have the first draft ready.

author: ColCon
author_rank: Contributor
timestamp: June 15, 2019, 10:27:10 am
content: I use lots of SN65HVD230's with lots of STM32F103's.There is no issue here. Just do it.SLLA270 is also a good read.Here's one option. You need to remove the 120r resistor.https://www.dx.com/p/bus-transceiver-sn65hvd230-can-communication-module-blue-2053233#.XQTN8OnF00N

author: ColCon
author_rank: Contributor
timestamp: June 18, 2019, 11:49:09 am
content: This is good too:https://www.kvaser.com/about-can/the-can-protocol/the-can-bus/Here's a quote:...the arbitration scheme requires that the wave front of the signal can propagate to the most remote node and back again before the bit is sampled. In other words, the cable length is restricted by the speed of light. A proposal to increase the speed of light has been considered but was turned down...

author: Yansi
author_rank: Super Contributor
timestamp: June 18, 2019, 12:20:44 pm
content: Whats so good about it?CAN bus length restriction and sample-point positioning shall be a basic knowledge for anyone that works with CAN bus.I'd suggest starting with the freely available CAN SPECIFICATION from Bosch, but reading about the first 30 pages that tells you the most basic things may deter one...

author: Laserz
author_rank: Newbie
timestamp: June 20, 2019, 09:12:50 am
content: I would probably recommend using the ISO1050DUB / ISO1050DUBR from TI - it allows 3V to 5V on the digital side, but does require 5v on the transceiver side.Used with an appropriate common mode choke and TVS diode on the transceiver side it makes simple work of enabling CAN functionality.Common mode choke value depends entirely on your bitrate, for example, at 250kbit/s, I would recommend a 51uH.I would recommend getting a copy of J1939-11 (250k) or J1939-14 (500k) as this gives you information for the physical layer. Worth mentioning these recommend a sampling point of 87.5%, which should be (reasonably) consistent across nodes.Any faster than 500K and this value should be reduced to around 80% and to around 75% over 800K.On the STM32 itself you will need to set the CAN timing prescalers and time quanta for the sampling point, along with an SJW value. Below 500K you can set SJW to 1.There are plenty of resources to help with these values, and I believe (not 100% sure, however) the STM32CubeMX software can initialise these values for you.I hope this helps!