Pages: [1]   Go Down
Author Topic: Interfacing to SD card using sparkfun logic level changers  (Read 1113 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi All,

I've got a pretty weird problem. I'm trying to interface to a microSD card using two of sparkfun's logic level changers: http://www.sparkfun.com/products/8745

I've got them set up like this:



Please excuse the horrid circuit diagram.

I've eliminated most of the obvious failure modes; drawing too much power from the arduino's 3.3v (powered it independantly from a 3.3v rail on an ATX PSU), pins plugged into the wrong place (checked four or five times) and basic electrical faults (half an hour with a multimeter). I've tried two different microSD cards that have been independantly verified as being A-OK, neither are kingston branded, and both were FAT32. I'm connecting to the microSD card via an SD-to-microSD adaptor. The adaptor works, I've measured all connections from the pads on the card.

I'm using the bog-standard SD card test sketch that comes with arduino 22. I'm using a 2560, the uno mega.

Any ideas?

Thanks,
Tjhowse.
Logged

0
Offline Offline
Edison Member
*
Karma: 63
Posts: 1604
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The resistor level shifters in this product don't work well with SD cards.  The two 10k resistors result in 2.5 V on RX .

http://www.sparkfun.com/datasheets/BreakoutBoards/Level-Converter-v10.pdf

In general resistor level shifters are not recommended for use with SD cards.  The SD spec requires a maximum rise time of 10 ns for SPI signals.  Resistor level shifters often produce sort of a sawtooth SPI signal.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 48
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The resistor level shifters in this product don't work well with SD cards.  The two 10k resistors result in 2.5 V on RX .

http://www.sparkfun.com/datasheets/BreakoutBoards/Level-Converter-v10.pdf

In general resistor level shifters are not recommended for use with SD cards.  The SD spec requires a maximum rise time of 10 ns for SPI signals.  Resistor level shifters often produce sort of a sawtooth SPI signal.

My solution is to create my own stripduino or stripboard based arduino, basically just a atmega328p and the oscillator at 16mhz together with a 3.3v voltage regulator.  The AVR used in the arduino can be safely run at 16mhz at 3.3v, and then you can directly interface it to the 3.3v hardware needed thus avoiding all of this resistor and IC based level conversion hassle.

If you must persist with a 5v arduino or avr, then i reccommend the 74lcx245, it is a 8bit level shifter IC but its a SOP part so the pins are far nearer than a DIP product.

Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The problem was that I had my TX and RX lines backwards. T

I figured that out after I replaced it with a 74HC4050 circuit.
Logged

Pages: [1]   Go Up
Jump to: