# Couple questions about logic levels

I have a microcontroller (ATmega328) that runs on 5V and another chip (MAX31855), connected via SPI as a slave (that only using the MISO line), that runs on 3.3V.

1. Do I need to convert the output of the slave from 3.3V to 5V?
2. The chip select pin (active low) is held high via a pullup resistor connected to 3.3V. Is this a problem since it is also connected to the 5V uC? I assume so, yes? Would I need to use a logic level converter for that as well?
• Try it, it should work. If it is not reliable, then you will want to use a level converter. – Matt M May 19 '14 at 21:24
• @Matt: Bad advice. It may appear to work, but you have no way to know how much margin there is. Some other day at a different temperature it might not work. Worst case is works 99.99% of the time. – Olin Lathrop May 19 '14 at 22:21

Do I need to convert the output of the slave from 3.3V to 5V?

Unlikely because the input logic high acceptable level for the ATmega will probably cover 3.3V devices.

• I haven't looked it up, but I wouldn't be so quick to assume this. Many PICs, for example, have a minimum guaranteed logic high input level of .8 Vdd, which would be 4 V in this case. – Olin Lathrop May 19 '14 at 22:20

1. Open datasheet.

2. Find electrical characteristics section.

3. Find logic levels section within that.

4. Find the minimum guaranteed voltage to be interpreted as a high level by the input pin you are using for MISO.

5. Compare to the 3.3 V the MISO signal will be when high.

6. If #4 < 3.3V, then it will work, else it won't.

7. Realize all the above steps should have been obvious.

If the answer is it won't work, then you have to find a solution. There are many possibilities, one of which is to use a logic level converter.