adafruit / Adafruit-SPI-Flash-SD-Card-PCB

PCB Files for Adafruit SPI Flash SD Card breakout.
Other
4 stars 4 forks source link

Unbuffered MISO pin problematic when used with 5V SPI #1

Open doppelhub opened 1 year ago

doppelhub commented 1 year ago

Issue #1a: This device's 3.3V(nom) MISO output doesn't meet Vih(min) when used with a 5V MCU. For example, when used with a 328p operating at 5V(nom), the 328p's Vih(min) is VCC*.6. This means Vih(min) for MISO into the 328p is: VCC@5.0V: 3V VCC@5.1V: 3.06V VCC@5.2V: 3.12V VCC@5.3V: 3.18V VCC@5.4V: 3.24V VCC@5.5V: 3.30V

However, the NAND chip on this card has a specified output Vih(min) of VDD*0.75 and operates at 3.3V(nom). This 3.3V is sourced onboard from a supply with 1.5% specified uncertainty. Therefore, when the NAND drives MISO high, the specified Voh(min) is: VCC@3.25V: 2.44V

Therefore, since this device's specified MISO Voh(min) of 2.44 volts is less than a 5V ATMEGA 328p's Vih(min) of 3.00 volts, there is no guarantee that this device can properly communicate with an Arduino device operating at 5 volts.

Issue #1b: This device gets destroyed when operating on a 5V SPI bus if any slave drives MISO high (because the XTXD08 Vpin(max) is VDD+0.3 (i.e. 3.6 volts).

doppelhub commented 1 year ago

For low speed, one simple solution to this would be to drive MISO into an open drain NFET channel, with the drain pulled up to VCC. For higher speed, you could replace the existing buffer with another variant with per-pin output enable logic (e.g. 74xx125 buffer), and then connect all four OEn lines to CS.

For your convenience, here's my open source PCB redesign, which uses a 5V tolerant tri-state buffer (PN 74LVC125AS14-13): https://github.com/doppelhub/Honda_Insight_LiBCM/tree/JTS_inWork/Electronics/PCB%20(KiCAD)/FLASH/RevA This link will eventually move to: https://github.com/doppelhub/Honda_Insight_LiBCM/tree/main/Electronics/PCB%20(KiCAD)/FLASH/RevA

Feel free to use this design. I didn't create a pull request because I don't use Eagle... I can do that if you want me to, but it'll blow away your Eagle files.