TMP126-Q1: Issues with multiple devices on SPI bus

Part Number: TMP126-Q1
Other Parts Discussed in Thread: TMP126, TMP127

Tool/software:

I'm using the TMP126-Q1 on a board. I have a digital connector that brings over the SPI bus (CLK, MISO, MOSI, CS) from a Raspberry Pi 4B.

I was able to configure and talk with the sensor when I have 1 board plugged in. I can poll the ID register to ensure communication works and then read the temperature data.

This all breaks when I plug in another board digital connector. I initially had the 10k isolation resistor, I tried replacing that with a a 0ohm resistor. This allowed me to operate faster (tested up to 6MHz, 10MHz was failing) as opposed to the 500kHz with the 10k. But with 2 boards connected, I am no longer getting data back from the chip.

If I probe directly on the SIO line, I can see the COMMAND word is written fine, but the output byte is either not present, or the pulses are really narrow at the rising clock edge and at a lower voltage. This seems like something is loading down the SPI line? I only pull the CS low for the temp sensor I am talking to, and am polling their IDs one after another. For the one that looks like it is trying to output, I can see the value is 0x2126 which is correct, but it is still being read as 0s since the pulses are practically non-existent. I am using buffers between the RasPi and my board. My board is operating at 2.4V (buffer is stepping down 3.3V to 2.4V).

Any ideas on why this isn't working? I already verified I can still talk to other devices that are on the same SPI bus, but the temperature sensor doesn't like other things connected. If I unplug one of the digital connectors, I can successfully communicate with the other temp sensor, and vice-versa.

Thanks.

  • I guess to be more clear. The RasPi is plugged into a "motherboard" via its 40pin header. The SPI and GPIO pins I'm using are put through buffers on this motherboard. Then for each board with a temperature sensor, there is a digital connector that goes from this motherboard to the temperature board, with another buffer that takes the 3.3V to 2.4V. So a total of 2 buffers and a voltage change.

  • I apologize for the late reply; we had an internal change that caused us to miss new E2E posts in the sensor organization. The normal expectation is to respond to E2E posts within 24 hours.

    The simple answer is that the 10kOhm resistor is required for TMP126. The TMP126's SIO only has +/-3mA output drive capability in its VOH/VOL specifications. It cannot hope to win against the PICO output without the resistor to limit current from PICO. In fact, there's a potential for damage (known as EOS) to the TMP126's SIO pin under your 0ohm condition. 

    I recommend using TMP127 instead, which can transmit temperature data on a single POCI pin without additional overhead.

    thanks,

    ren