Interfacing USART from 3v 'mega to 5v 'mega

Go To Last Post
6 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I need to interface two AVRs via their TX/RX USART pins. The catch is, one is running at 3v (the AVR on my SunSPOT's i/o board), and one is running at 5v (the AVR inside a Robotis Dynamixel motor). I know somebody makes a nice DIP IC to sit between them and do all the level conversion transparently, and it's probably from TI (though Maxim almost certainly has one or more in non-DIP form)... but which specific one is it?

Oh, I almost forgot... it has to be fast enough to support 1mbps (115kbps isn't good enough).

There's no place like ~/

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

http://para.maxim-ic.com/cache/e...
All MAxim has to offer ;) maybe you can find something in the list

http://www.maxim-ic.com/quick_vi...
MAX3394E seems OK for you. 2 channels, 6Mbps. 1.2-5.5V

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Actually, this might make it easier... or harder...

I just realized that since the Bioloid serial uses only a single pin (using a 74hc126 and 74hc04 to route that single lead to tx or rx at the controller end), what I REALLY need is a chip that can bidirectionally convert a single line (putting the 74hc126 and 74hc04 on the "3v" side and eliminating the need to level-shift between the 3v mega and the logic chips themselves).

If it matters, I CAN tell the level-translator chip which direction data is supposed to be flowing (one of the AVR's output pins goes high or low to pick one of the two drivers on the 74hc126 -- see http://robosavvy.com/forum/viewt... for an example).

Or... would I be better off putting the 74hc126 and 74hc04 on the "5v" side, and level-shifting 3 pins... two output pins (from the 3v sunspot's AVR's TX and one other i/o pin) and one input pin (to the 3v sunspot's AVR's RX pin).

There's no place like ~/

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Another question... if I had a Maxim level-conversion IC like the MAX3370 sitting between TX3v and RX5v, and between RX3v and TX5v, would it be considered "open-drain" or "push-pull"? How about if I had a single MAX3370 between a 74hc126 running at 3v and the Bioloid Dynamixel's 5v half-duplex serial line?

There's no place like ~/

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

@miamicanes

This sounds a lot like a bidir I2C/TWI levelshifter , but at 1Mbit i dont know ...
Have a "Search" :-)

Well Philips has made a 1Mbit I2C standard called fm+
http://www.embedded.com/showArti...

/Bingo

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Well, I went ahead and ordered a few SN74LVC1T45DBVR level shifters to get my order in before the 3pm CST Mouser deadline for same-day shipping.

Basically, you connect both power supplies to the chip (one determines the output level for pin 'A', the other determines the output level for pin 'B') and set a pin low or high to tell it whether you want it to read data from pin A and output it to pin B, or read data from pin B and output it to pin A. Allegedly, at Vcc=3.0v, they can handle somewhere between 220mbps and 420mbps (not sure since the example they gave was 3.3v to 5.0v = 420, and 2.5v->3.3v=220mbps).

I also ordered a few TI PCA9306DCTR chips, which are explicitly designed to sit between an I2C bus running at one voltage and a client running at different one.

I did, however, trip across a pair of new Maxim chips that look interesting for future projects... the MAX7300 and MAX7301. They're 28-port i/o expanders that appear to include just about every meaningful feature and option you could possibly want in one... in i2c and SPI versions. Unfortunately, they aren't available yet.

There's no place like ~/