Electronic – Safely connecting 4056 and MSP430

cmosmsp430

I'm using MSP430G2553IN20 microcontroller on LaunchPad to drive an 4056 chip (HCF4056B to be precise) and a 7 segment display. The 4056 is set to sink current.

I've connected the port 2 pins, set as outputs, to the BCD and STROBE input pins of the 4056. The board with 4056 and display has its own separate power supply and the MSP430 is powered via the LaunchPad which provides it around 3.6 V. The grounds of both supplies are connected and I've set the other power supply as close as possible to 3.6 V.

I'm concerned that with this setup I could damage the chips. For example, when the 4056 power is down, it and the display are still getting some power from the MSP430 via the BCD and STROBE pins and the display remains on, although sometimes it works incorrectly.

Right now, I'm using \$220 \mbox{ } \Omega\$ resistors on the output pins of the MSP430 to limit the output current, but I'm afraid that the setup isn't safe enough.

So my question is: Is there a simple and safe way to connect the MSP430 to the 4056? For best results, I'd want to drive 4056 at higher voltage than MSP430, but if that's too difficult I could settle for 3.6 V.

Best Answer

One popular method to get data from one device running off one power supply to some other device running off some other power supply -- perhaps at much higher voltage -- is to solidly connect the grounds together and use a "discrete inverter" (level shifter) built from one discrete FET and one resistor for each signal (in your case, 5 signals).

enter image description here

Your MSP430 drives the gate of the FET. When the MSP430 sends a "hi" output (+3.3 V), turning the FET "on", the FET pulls the output close to GND. When the MSP430 sends a "lo" output, turning the FET "off", the resistor -- with one end connected to the "other" power supply, the power supply connected to the 4056 -- pulls the output "hi". In your case, the output is pulled close to +12 V when your +12 V power supply is turned on and connected, or 0 V if it isn't. No constant current can leak through this inverter / level shifter.

This arrangement "inverts" the signal. In principle one could add another inverter (a single 74HC14 or 5 more transistors and resistors) in series so that "hi" input gives "hi" output, and "close to GND" input gives "close to GND" output, but many people make the hardware a little simpler at the cost of adding a few more lines of code to compensate.

As an alternative to the one FET one resistor discrete inverter, some people use a "discrete inverter" built from one discrete BJT and two or three resistors for each signal; it works very similarly. a b c