I’m programming on an XMOS development board, which is 3.3V logic levels for all I/O. It isn’t 5V tolerant in the slightest. I’ve never used an Arduino, so I don’t know what sort of hardware it has on the main board. I’m also way more of a software guy than a hardware guy, so I apologize if this should be obvious.
I’ve successfully hooked my XMOS board up to an older SparkFun XBee Shield that uses only a diode for a level shifter, and only on input to the XBee (not on output to the MCU). This works just fine. And it was really convenient to have all the connectors, blinkenlights, and whatnot found on the shield–versus just a breakout board.
So I bought an uSD Shield, and I want to get a Codec Shield. But, instead of having just passive components for level shifting, they both appear to use an IC. Reading the datasheet for the “hex level shifter” doesn’t reveal much, as it’s apparently supposed to be obvious what it’s doing. The internal schematic does appear to have a string of diodes in series, but I don’t understand that at all.
What I think is that the “level shifters” only shift logic from 5V down to 3.3V, and that the return path is signaled directly at 3.3V which I surmise the Arduino can read as High even if running at 5V. The fact that the IC isn’t hooked up to +5V supports this guess. Also, I think there’s an Arduino at 3.3V.
But I was kinda hoping to get a check on all that before I fry a CPU I’m rather fond of.
They should be safe, but not necessarily work. There really isn’t a standard, but as a general rule the 5V is going to come from the Arduino to the shield, the shield isn’t going to provide power to the Arduino. There are a few exceptions of either boards like the Lipo shield whose purpose is to provide power or something like a motor driver shield that needs a lot of power (although its usually through the Vin pin not the 5V pin). But level shifters require you to provide the 2 levels so if you don’t have a 5V source you should be fine. If you plug the shield into a 3.3V board, then your shield is going to be getting 3.3V, some chips won’t run at 3.3V and will actually need 5V, others will. Also remember shields are great, but it sounds like in your case a breakout board is an easier and cheaper idea. The uSD shield is just a uSD slot with level shifting so it can work with a 5V board. If you have a 3.3V board, skip the shield and just use a uSD slot. In other words every shield is different, the schematic is the best way to find out, and if you have questions feel to email tech support.
Hey, thanks for the lowdown. Much obliged.
I actually bought the uSD and XBee shields just because I found them at my local MicroCenter–I was mad excited. As for the Codec Shield: as a kit from OML, it’s the cheapest breakout board I could find for any of those Wolfson codecs. (I got hot air for my birthday, you see. Not that I wasn’t already full of it.) I’ll just skip the shifter and jumper the gap.
Otherwise, I take your point.