Take a look at this schematic provided by Adafruit with a MAX31855 to read a thermocouple.


They use diodes on CLK and CS pins while also pulling them up on VCC.

I would like to ask why the use those diodes?

Maybe as an ESD protection?

And on another note:

Let's say, on the PCB I am currently designing, I have multiple SPI devices on my bus. Should I add those same pull-up resistors on all of the devices or just place them once for the whole bus?

Maybe I should use multiple buses?

Yes, I know about the sink current of my μC and I should adjust the values accordingly if I have to place multiple pull-up resistors. But should I?


They can't protect against ESD strikes but are there to protect against overvoltage.

The connector JP1 is labled breakout, which indicates that the user can connect random stuff to these pins. The diodes protect the inputs against the user supplying the pins with an external voltage. The direction of the diodes only allows a current flow out of the pins, so the user is able to pull the lines low (while pulling them to high is only done by the pullup resistors ob board).

Regarding your second question: It does not make a difference if you use one pullup at only one place or multiple ones with higher values distributed over the bus. Just use one pullup for the whole bus.


The diodes are used so that the 3.3V MAX31855 chip can be used with a 5V MCU such as many of the Arduino boards.

It's a cheap and dirty level shifter that also works (without modification) if the MCU is powered from 3.3V.

If your MCU is powered from 3.3V you do not require the resistors or the diodes and can simply connect the lines directly.

If your MCU is powered from 5V you can consider using a proper level translator chip with dual Vdd lines which will give more noise margin, better waveforms at high SPI clock rates, and lower parts count (but costs slightly more).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.