Digital isolator problems - Page 1
Forum section: electronics / beginners

author: davegravy
author_rank: Regular Contributor
timestamp: October 11, 2024, 08:31:26 pm
content: I'm doing logic level translation with an digital isolator (ISO7041) and have a problem.I have two power sources - a primary DC (15V) source and a solar panel (15-30VDC) fed into a powerpath controller (LTC4418). The controller produces two *VALID (not valid) logic outputs, one for each DC source.I need to level-translate these *VALID signals, because my MCU is run off a different GND. My MCU is run off a 12V battery (down-regulated) which means it and the 1.8V side of the ISO7041 are always powered. TheThe schematic I've attached works fine as long as one of the two DC sources are always present and there's been at least one state change of *PRI_VALID and *PANEL_VALID. On power up *MCU_PRI_VALID and *MCU_PANEL_VALID are always 1.8V independent of *PRI_VALID AND *PANEL_VALID.The other issue is, if both sources are absent, there is no supply to the VCC1 side of the ISO7041. So then turning on the primary source, for example, is not sufficient to get 0V output on *MCU_PRI_VALID because even though *PRI_VALID is 0V there's been no state change since AFTER the isolator has been powered.I feel like maybe this isolator is not the right approach. I'm using it because there can be up to 14V difference between GND1 and GND2. Is there maybe a simple and low power circuit I could make with MOSFETS to accomplish what I need?

author: davegravy
author_rank: Regular Contributor
timestamp: October 11, 2024, 09:09:14 pm
content: Hmm... I perhaps interpreted the refresh behavior backwards. I have EN1 and EN2 tied to VCC1 and VCC2, respectively, which should disable refresh.I took this to mean "L" in the attached table, but I guess that it means "H" resulting in the "Undetermined" output until a state transition happens.

author: thm_w
author_rank: Super Contributor
timestamp: October 11, 2024, 09:20:15 pm
content: If these are simple low frequency unidirectional control signals, it usually makes most sense to use an optocoupler.

author: davegravy
author_rank: Regular Contributor
timestamp: October 11, 2024, 09:27:45 pm
content: Definitely simple and low frequency.I do remember looking through optocouplers fairly thoroughly and I can't recall exactly why I chose this device instead. It might have been because of the low power consumption (a requirement for this project).

author: Nominal Animal
author_rank: Super Contributor
timestamp: October 11, 2024, 10:34:12 pm
content: I'm only a hobbyist, but: Use the return channel.As the datasheet mentions (for startup in chapter 9.3.1, at end of page 21), the solution is to cause the /VALID signals to do a transition at regular intervals.Use a 2:1 (DPDT) digital multiplexer for the /VALID signals, so that when the return channel is LOW, the /VALID signals are derived from a digital oscillator circuit. You also use a logic-level P-channel MOSFET as a high-side switch for the oscillator circuit power, so what the the return channel is HIGH, the only extra power cost is that DPDT multiplexer.This way, when your MCU pulls the return channel low –– remembering that ISO7041 defaults to HIGH; ISO7041F would default to LOW ––, the /VALID signals are switched to oscillating outputs. This way, the MCU can regularly verify the /VALID signal states are correct, without massively increasing the power consumption.For anything more complicated, I'd use one forward and one return channel, and a panel-side low-power microcontroller monitoring things, talking to the main MCU via UART. If battery-backed (the panel-side low-power mcu, not the isolator!), it could even keep count of interesting events and when they happened. (Keeping track of when you lost power is done by updating a timestamp every second or so in RTC RAM, and noting the gap when powering up next time.)