cancel
Showing results for 
Search instead for 
Did you mean: 

problem on 3V3 IO to drive 5V chipset with SPI

xinjin
Associate II
Posted on March 19, 2013 at 16:07

Dear everyone,

     I met a problem when I try to use the SPI (3.3V) to drive the meganetic isolation ADum2400 which is powered by 5V.The SPI pin are remapped to SPI3 (PC10, PC11, PC12) and the CS pin are remapped to PB3 on the STM32F4-Discovery board. The same case occurs when I use USART pin to drive the RS485 interface chipset which is powered by 5V. Because I have to be compatible with the 5V power system for the old product. So could anyone suggest how to use the 3.3V I/O to drive the chipset which is powered by 5V. The configuration of Pin structures are PP and pull down. The test result from oscilloscope are attached. I have tried to use OD with no pull, there is no signal at all. What confused me most is that, the same pin struction configured for SCK, SDO, CS. But different test result. Only SCK works OK. In the attachment:

channel1: SDO

channel2: SCK

channel3: CS

When I disconnected the SPI with the meganetic isolation, it works well. However, the SPI pin are also connect to the audio codec on discovery board. I doubt but can't understand.
5 REPLIES 5
Posted on March 19, 2013 at 16:45

I have tried to use OD with no pull, there is no signal at all.

No kidding, OD just clamps LOW, and expects a pull-up for the high state. Ideally in your situation you'd use an external pull-up to 5V, and use pins which are designated FT (Five volt Tolerant), which is most of them on current STM32 parts, refer to the data manual.

There are also plenty of Logic Level Conversion solutions, a search away.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
dthedens23
Associate II
Posted on March 19, 2013 at 17:04

As I read the data sheet, this part has dual supply level shift features.

Are you powering one side with 3.3v and the other side with 5v?

Depending upon the grade, you might only be able to run a 1Mbps.

and you should be using a ADum2401 part.  Why?

xinjin
Associate II
Posted on March 20, 2013 at 13:07

Thanks, Clive,

     In fact, I am not kidding. :) Now, I configured the IO as PP with No pull. At the same time, I changed the power supply of ADum2400 from 5V to 3.3V. Additionally, I make sure the ground are connected together. But the result is disappointed. The lower voltage changed from 1.4V to around 1V. At this level, it is still not useful for the slave to response. But the clock signal is still OK.

dthedens23
Associate II
Posted on March 20, 2013 at 18:02

From F4 SPI pins

clock is an output

MOSI is an output

ChipSelect is an output

MISO is an INPUT!!!!  AN INPUT.  A ADum2400 has no input.

you cannot use a ADum2400.  You need a ADum2401.

VDD1 should be tied to 3.3v

VDD2 should be tied to 5V

make sure pin 6 & 11 on the ADum2401 are tied to MISO.

xinjin
Associate II
Posted on March 21, 2013 at 03:05

Thanks rocket. I missed some information. Yes, I have ADum2401 for MISO. And the current problem is occurs on the output. So at present, there is no response from the slave.