Overcoming the logic level translator limitations

level-shiftinglevel-translationlogic-level

Good morning everyone,

I have a STM32F407 microcontroller running on 3.3V logic level, and I have a plethora of peripherals that I want to connect to it. The problem is that these peripherals run at anything but 3.3V level. Some of them are 1.8, some are 2.5, and a couple of 5V devices.

Immediate solution that comes to mind: programmable logic level translator. There are a lot of dual supply bi-directional level translator ICs available; I can turn these into "programmable" ones with the help of digital potentiometers.

My only problem is the common requirement of logic level translator ICs: Vcc > Vl, i.e. voltage on one side of the translator must be strictly less that voltage on the other side. But what I want is:

controller side logic level: fixed at 3.3V,

GPIO side level: anything from 1.8 to 5 V.

Are there any solutions to this problem (either through ICs or discrete elements), or am I asking too much?
Thank you in advance.

Best Answer

One option is, design your system to accommodate translation from 3.3 V on the uC side to lower and equal voltages on the peripheral side.

Then if you have a 5 V peripheral, include as part of the peripheral circuit a translator to translate from 5 V on the peripheral side to 3.3 V on the uC side. This means that 5 V peripherals will have their signals running through two translator circuits.