This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TXB0108: SD card SPI working intermittently - MISO line

Part Number: TXB0108
Other Parts Discussed in Thread: LSF0108, TXS0108E

I am using SPI on  Atmega2560 (5V MCU) to interface 2 micro sd cards and an RTC(DS1306). Attached schematic is the initial configuration. I had to add a pull up to the MISO on the sd card in order to prevent the sd card from initialising unintentionally. Refer below link. The sd card did not work without the pull up. I didcheck it with multiple cards
<a href=" http://www.avrfreaks.net/forum/why-have-pullup-mosi-and-miso">.

The sd card  operations seem to be intermittent with this configuration. I have tried 100K, 75K,10K,1K as the MISO value. Can you identify a reason for this?

MISO being a pushpull line, I assumed that the TXB0108 should work for me. Would using TXS0108 solve this issue?

NOTE: I also had to change the pullup resistor values (R50 and R51) to 1K from 10K in order to pull the line to 3V3. The voltage on the line was around 1V with the 10K pullup. Even though the datasheet of TXB0108 suggests that pull up/downs need to be higher than 50K. higher values did not work. why is this?

  • Hi Michel,

    The TXB0108 has extremely limited output current drive capability (~20uA) due to the output structure. At DC (ie after the one-shot has fired and it is just driving the line high or low), the internal circuitry looks like this on each channel:

    The 4kΩ resistors are required for normal operation so that the nodes A1 and B1 can be easily forced to the opposite level when the direction of data changes. These resistors are also what limits the output current - adding a pull-up resistor creates a voltage divider and the outputs won't be able to drive the line correctly any more.

    For your application, either the LSF0108 or the TXS0108E is likely a better choice. The TXS device already has 10kΩ pull-ups built in (which would mean you can eliminate the external pull-ups entirely), and the LSF operates very similarly but external pull-ups are required (and they can be tuned to whatever value you need).

    I would recommend trying the TXS0108E first - it's simpler to work with and will eliminate some passive components in your system.

  • Thanks for the prompt response. I will try the TXS0108E . Can you explain the reason why the Resistor had to be changed to 1Kohm ?
  • No problem.

    In the above schematic, if the buffer is outputting 0V and your output is pulled up to 3.3V with a 10k resistor, the voltage on the output line will be determined by a voltage divider between the pull-up and the 4k internal resistance:

    Vout = 3.3V * 4k/(10k + 4k) = 0.94V. This is below the high voltage threshold, so the device will not switch. In order to switch, the input needs to go above ~Vcc/2 (1.65V). With a 1k resistor, recalculating the same thing: Vout = 3.3V * 4k/5k = 2.64V, which is well above the threshold value.
  • Thanks. But the datasheet specifies that pull up/downs used must be above 50Kohms. According to this explanation a resistor of 50K would result in 0.22V which fails to reliably pull up the line. Is there something which I am missing here
  • When a pull-up is used with this device, it is not intended to overpower the device, but to drive the line high in the event that the TXB0104E is turned off and the line is floating. In this case, even a very large (>50kohm) resistor will easily keep the line high.
  • Can I assume that the pull up will not be effective when the TXB0108 is powered on with >50kohm resistor?
    Does this mean this ic is not suitable to do what I intend to do (SD card VSS detect)?
  • That is correct.

    What you are describing is essentially an 'open-drain' application (when VSS detect is on, the line is driven low, when it is off, the line is left floating, which is why you need a pull-up resistor). TXB0108 is not designed to work with open-drain applications - only push-pull.  You will need to switch to TXS0108 to get that to work (and it has internal pull-ups, so it will make your design even simpler).  You might want to consider using LSF0108, hwoever, since TXS0108 has limited bandwidth, and SD cards typically require data signals in the MHz range.

    Check out this application report: Voltage-Level Translation With the LSF Family

  • Ok . I got it. Since the footprints of the TXB0108 and the TXS0108 are same, I will try it first. I will update once I test it. Thanks

  • I tested with the TXS0108. Now it works seamlessly. Thanks for the support