2
\$\begingroup\$

I am looking for ideas on improving the circuit below. Any constructive criticism is very much appreciated as well. The following is a long explanation how I arrived at this monstrosity, it can be skipped right away.

The setup:

We have a mixed bunch of 3-rd party and our own devices sharing the same 24V power line. We would like to power them up/down using one more conductor with logic level "enable" signal. The 3-rd party devices are controlled by simple relay + driver (SZNUD3160LT1G) combination.

Our own devices are identical STM32-based boards, one of which is a master controlling that signal, the others are slaves that follow the same power up/down logic.

The requirements:

  1. The logic signal is 3.3V but the inputs should be compatible with 5V as well;
  2. The boards should be able to provide up to 6W power for optional devices connected to them, like sensors, switches, LEDs etc.
  3. The boards should not load control line too much, i.e have high input impedance;
  4. The boards should be hot pluggable, i.e. not interfere with the signal (unless this is master board, of course) and be protected from transients or inductive kick-back from the line.

The schematics at the moment:

To satisfy requirement (2) I've designed somewhat universal footprint on PCB for mounting a variety of POL modules, chosen by specific power needs for each board. Some of them with dedicated EN/!SHDN inputs, like Pololu D24V5F3, the other are simple LDO substitutes, like Murata OKI-78SR. Pretty much anything with TO-220 pinout, including actual LDOs can be used.

Originally I was going to send the signal from MCU straight to EN pin, or maybe use simple buffer. Then I realized that Pololu modules have pull-ups to VIN, that would bleed 24V back to signal line, breaking requirement (4). After considering depletion MOSFETs, analog switches and solid state relays I've decided to use inverting gate driver for this.

enter image description here

What I would like to improve:

  • Simplify the circuit. Use less and cheaper parts;
  • Ensure inactive state on power-up. Analog switches and SSRs come in dual packages with NC+NO contacts. This should save PCB space and increase safety. Unfortunately I could not figure out how to use something like DG467 in single supply mode, even though datasheet says it is possible;
  • Saving one MCU pin would be a bonus. I do have pins available but rather use them for something else. Note, that Sense/Send signal basically depends on device being master or slave and is not changing ever otherwise;
  • Also R4 looks awfully misplaced to me. It's purpose is to safely send incoming "enable" signal to MCU so that in the absence of "EN" input on installed POL we can still save some power by entering sleep mode. However as it is I think it will simply latch up the outgoing buffer on itself.

Update

Ok, it looks like the original circuit was wrong, so here is updated version. Not only old one had self-latching power output, but it also allowed voltage to be applied to un-powered chips not designed to tolerate it. Hopefully all fixed now. Unfortunately, instead of simplifying this made it more complex.

enter image description here

\$\endgroup\$
7
  • \$\begingroup\$ Where are your decoupling capacitors? \$\endgroup\$ – winny Sep 7 '19 at 6:28
  • \$\begingroup\$ What determines which board is the master? Will the master ever need to read the state of the Enable line? \$\endgroup\$ – Bruce Abbott Sep 7 '19 at 6:56
  • \$\begingroup\$ @winny left out for clarity. Also, I am pretty much adding blank footprints to the PCB before and after since specific capacitors and inductors depend on the POL installed. \$\endgroup\$ – Maple Sep 7 '19 at 7:16
  • \$\begingroup\$ @BruceAbbott Originally it was going to be just by the software installed, but now that you asking it could be useful to have one pin somehow sensing the hardware (JP1, dip switch, something else) and altering power handling logic accordingly. Technically, master does not need to read Enable line. But again, your question made me think that some kind of check for master collision can be added to software, in case someone accidentally adds wrong board to the net. \$\endgroup\$ – Maple Sep 7 '19 at 7:23
  • \$\begingroup\$ @BruceAbbott It could be tricky to completely avoid collisions with Push-Pull driver even with software help, but maybe if I move output line to between R1 and R2 I can protect the buffers from over-current and have a benefit of reverse protection from D1. That's one improvement already. \$\endgroup\$ – Maple Sep 7 '19 at 7:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.