Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Post History

71%
+3 −0
Q&A Most reliable galvanic isolation technology for extreme EMI environments?

My first knee-jerk reaction was to use opto-isolators. There are some that have been around for decades and are unlikely to go obsolete any time soon. I wasn't previously aware of these "digital ...

posted 10mo ago by Olin Lathrop‭

Answer
#1: Initial revision by user avatar Olin Lathrop‭ · 2024-01-10T13:27:59Z (10 months ago)
My first knee-jerk reaction was to use opto-isolators.  There are some that have been around for decades and are unlikely to go obsolete any time soon.

I wasn't previously aware of these "digital isolators".  They seem like they go thru a lot of trouble to ultimately do what opto-isolators do.  I'd be more worried about sourcing problems for these than optos.  They do seem to have advantages in niche cases, like lower current requirement and direct digital signal in and out.  However, the description of your problem doesn't indicate these would be particular advantages.

Your main concern is radiated emissions.  The main way to address that is to make sure signals are filtered to not include high frequencies.  At 50 kbit/s, you have 20 &micro;s per level.  A 2-pole low pass filter that takes 5 &micro;s to settle within 90%, for example, sounds good enough.  The result would control the current thru the LED of an opto-isolator.

On the other end, don't make your circuit "snap" (hysteresis).  I'd again use a 2-pole RC filter so that the output signal has a finite rise and fall time.  Even with 5 &micro;s time from 10% to 90%, a regular digital input should have no problem solidly interpreting the signal without bouncing.  It would be OK to use a Schmidt trigger input as long as the resulting signal stays internal to a chip.

None of the above sounds hard to do, nor would require unusual opto-isolators so that you might have future availability problems.

<h2>CAN</h2>

The real problem is the way the CAN bus works.  CAN is always bi-directional, and there are multiple things going on within a single bit time.

Whenever the sending node is "writing" (actually just letting the bus go) the recessive state, it checks to make sure that nobody else is writing the dominant state.  This is how collisions are detected.  The node writing the recessive state aborts the message.  The node writing the dominant state never knows there was anyone else out there trying to write, and just keeps on sending its message.  When the current message is over, all nodes that have something to send will try again.  The ones that have recessive states where others have dominant states drop out, and one message is ultimately sent.  When that message is over, the remaining nodes retry, etc.

Neither opto-isolators or your digital isolators allow for this.  You will have to guarantee at a higher level that no node on the output side of the isolators tries to send while one on the input side of the isolators is sending.

Another problem is the ACK bit.  Every node that sees a valid message on the bus asserts the bus during the ACK bit time.  If the sending node doesn't see ACK asserted, it assumes a transmission error and tries again.  If this continues to happen, it goes into various error modes with causes the node to get off the CAN bus, at least for some time period.  You therefore have to make sure there is another node on the same segment that can provide the ACK bit.

These are all solvable problems, but you have to think about them.  I won't go into more here because this has nothing to do with radiated emissions, and both your proposed isolation methods have the same issue.