TXB0104 interface level translator

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

I'm trying to redesign a project which has an m128 @ 5V connected via SPI directly to a 3,3V dataflash and only SO(data out) is currently converted to 5V via a tranzistor.
That way, the circuit works ok because Dataflash has 5V tolerant inputs.

This relative new IC from TI, TXB0104, seems ideal for SPI signal level shifting, yet doesn't work for me.

DC signals are being translated ok, but CLK and other fast changing signals are shown as discharging spikes on my scope. There is a TPS76333 regulator with all needed capacitors as 3,3V source and it should be strong enough.

Do you think that the ringing on AVR's SPI signals could cause this?

Kyriakos

Practice Safe hex.

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

Is the chip designed for fast SPI comms? What is the data rate specified for the chip?

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

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

I am also going to try the TXB0104 for an SPI 5V <-> 3.3V conversion, and have a prototype board almost ready but not yet sent out for manufacture. I also want to use the TXS0104 (open-drain version) for I2C voltage translation.

A thought that comes to mind -- did you make sure the 5V side is connected to port B? Port A needs to be 1.65-3.6v, and Port B between 2.3-5.5v. And is your output enable (OE) pulled up to VCC on port A?

And as for the speeds -- I believe that the TXB010x can do data rates from 20-100Mbps depending on voltage levels used and is designed for SPI apps like SD cards, and the TXS010x does 24Mbps and is designed for I2C.

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

I have the OE pin connected to Vcca 3,3V. Should I use a pull up? The datasheet isn't very clear on this. Says something about R depends on drivers' loads!

TI adverts the chip as ideal for fast SD cards apps and that's was my purpose.

Now I'm worried because there is no sign of anybody's using it and I was waiting a long time for such a great looking chip.

And I'm using really slow SPI, about 20kbps.

Practice Safe hex.

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

I just found a sample schematic from an article about the TXB0108:
https://i.cmpnet.com/embedded/2007/September07/TIDhoundFig6.jpg
which has a 10k pullup to VCCA on the OE line, as well as 100k pullups on all the Port A signal lines.

original article here:
http://www.wirelessnetdesignline.com/202200662

The datasheet for the TXB0108 says this:

Quote:
Pullup or Pulldown Resistors on I/O Lines
The TXB0108 is designed to drive capacitive loads of up to 70 pF. The output drivers of the TXB0108 have low dc drive strength. If pullup or pulldown resistors are connected externally to the data I/Os, their values must be kept higher than 50k ohm to ensure that they do not contend with the output drivers of the TXB0108.

The internal pullups of the AVRs seem to be anywhere between 20-50k - so this might be a problem if enabled - and you might need external pullups of 50-100k.

Let us know if you get this working.

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

Ok, I declare myself an idiot... again!

The 5V line wasn't attached to Vccb at all!

Now it works!

If you don't want to use the OE feature, just connect it to Vcca.

Be careful with the pullups. If they are too big, they may be overdriven by the other port. Use low resistors for CS lines, to be sure. I'm going to change the 56K to 1-2K on my new memory's CS because it pulls it down.
I'm upgrading to ST's M25P128 flash and its CS input seem to have some impedance.

Practice Safe hex.

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

I've been using the txb0104 for 3V3-5V SPI for a while, without any of the pullups on the port A side - and it seems to work quite nicely at 2.5 MHz.

My only complaint is that occasionally it will lock up on me - it seems that there are some combinations of cycling the 5v and 3v3 power that locks it - it can be reset by keeping 5v active and cycling 3v3. I'm still trying to ferret out the cause of that issue. Don't really want to have to add a supervisor chip...

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

... and my VCCA and VCCB lines are all connected.

The chip seems _incredibly_ sensitive to power supply noise, and no arrangement of bypass capacitors has been able to address the issue. I'm hoping someone has a suggestion for what to do beyond designing this chip out of the board, because if I have to go the full-on decoupling route with an inline inductor, that's probably what I'll do. I'm hoping to salvage a few of my current, prototype boards in the meantime.

To give an example, I have a 2" trace going from a MEGA16 output to one of the inputs on the TXB0104, and the output from the TXB0104 jumps all over the place with only 200 mV p-p noise on the 5V power (VCCB) supply. In fact, even with the input tied to ground through a 1.5K resistor _at the chip itself_, the output is noise. Wow.

If I turn off the circuit that causes the noise, the chip behaves as the datasheet describes.

Can anyone offer me a silver bullet? :)

b.g.

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

Is this happening on a single prototype board or the whole batch? Mis-soldered traces could cause that.

200mV seem a lot to me. Maybe your 5V regulator is not good. We used to have problem with some 78xx that where easily oscillating. Buying from trusted reps solved the problem.

Till now I haven't seen a glitch in my design, it works as expected.

Practice Safe hex.

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

kkontak wrote:
Is this happening on a single prototype board or the whole batch? Mis-soldered traces could cause that.

200mV seem a lot to me. Maybe your 5V regulator is not good. We used to have problem with some 78xx that where easily oscillating. Buying from trusted reps solved the problem.

Till now I haven't seen a glitch in my design, it works as expected.

It's on the whole batch.

200mV is definitely more than I would prefer, but the rest of the design tolerates it so I'm hoping to find a way to make the TXB0104 happy too. It seems to be switching noise from the TXB0104 itself, because it comes in periodic bursts that don't seem to be timed to anything else on the board. And they're present even when the rest of the board is quiet, but not when the inputs/outputs through the TXB0104 are quiet.

Almost as if the VCCB regulator starts ringing in response to the transition-related circuitry in the TXB0104, and then hits a frequency that's pathogenic to the logic in the TXB0104. Lather, rinse, repeat.

I've ordered some MAX3378's, which look like they might be pin-for-pin compatible. Hopefully it isn't a clone on the inside as well! Otherwise, I'm going to have to search for an entirely new way to do my logic level translation, which means scrapping 30 populated boards at $40 each... :(

b.g.

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

What's your 3.3V regulator? Is it ringing too?
Can you post the schematic around the TXB0104?

I've checked my board and the 5V line also have a ringing pulse of 100mVpp at 62.5KHz caused by a triple PWM output from the AVR but the TXB0104 is steady. So are the rest of the few hundreds boards that have been made.

Practice Safe hex.

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

I'm new to TXB0104. I read through the datasheet but I have a question regarding the operation of TXB0104. The TXB0104 does voltage translation between two ports A and B. But I was wondering if a Channel on Port A can be input while another channel on the Port A is Output.

For example, I am designing an application where two uControllers are required to communicate with each other using SPI. However one uController runs at 3.3V while the other is running at 5V. Since SPI requires data to move in both directions, i was wondering if a single TXB0104 can be used for SPI level translation between two uControllers.

Or do I have to use two TXB0104s, one for either direction of data-flow?

Joe!

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

No, the TXB devices are bi-directional. They will work themselves out based on the conditions you give them. Just have to put all 5V on one side and all 3V on other side. (or whatever your VCC/VDD levels are)

I suppose with that in mind, it could be possible to confuse it by either driving both sides or setting up both sides as inputs. And then various combinations of pull-ups/downs could to I suppose.

For the guys having problems, maybe have a look at the order of things in particular when your port I/O gets configured or changed.

I have been using the TXB0108 (8-ch version) between a m2560 and an AP7000 at around 2-3MHz (SPI) with no problems.
I have connected the OE to a port pin and this means the micro's I/O is all setup before I enable the TXB.
Could be a furphy but worth investigating perhaps.

Steve