how to properly get 3.3v from 5v arduino uno for a sd card?

I have an Arduino Uno r3 and a card holder that I desoldered and then soldered on wires. The digital IO is based on 5v and sd cards take 3.3v and there appears to be a lot of different suggestions on how to get 3.3v from 5v.

After doing some reading there were a lot of different ways people were hocking stuff up
one website said TO use resistors.

Another website said NOT to use resistors and instead use a chip called a level shifter

After searching the forums a bit one post said NOT to use level shifters so I am wondering what is the best way to get those digital IO pins to 3.3v.

Resistors? hex buffers? level shifters? Putting a power regulator on all the pins that need 3.3v? There are so many different ways but I don't know which one is the right one. I don't want to damage my card so which way is the right way to get 3.3v for an sd card?

Use a chip like this
Txb0104

What is your 3.3V current source?
Some cards need significant current, like 250mA.
Often a separate 3.3 regulator is needed for that.

You are talking about the power source right? The arudino uno has a 3.3v power source but the digital io pins are based on 5v and I need 3.3v digital io just a thought is there anything I can set to make a digital i/o pin output 3.3v in my program?
Also for the chip the way it works is I would plug VCCA and VCCB into the 3.3v power pin and then in A1-A4 and B1-B4 I can plug in my digital i/o pins and it will output 3.3v to the sd card and it can also it can still go backwards as in the card sending 3.3v for a one (anything over 2.5v is considered a one) is that all right?

Yes, the power source.

No, there is nothing you can do to make the IO pins 3.3V, unless you are powering the Atmega at 3.3V also.
External hardware is needed. Either pairs of resistors as voltage dividers (not recommenced for higher capacity/speed SD cards) or a buffer chip like I suggested.

Or a part like this that can take 5V inputs and output 3.3V signals

It appears that a buffer chip would be best thank you CrossRoads!

As an example, I hooked up a 3.3V EEPROM chip to my Arduino using SPI and a level shifting chip:

Thank you for your help nick and cross roads I have decided to use this chip http://search.digikey.com/us/en/products/HEF4050BP,652/568-3108-5-ND/1023592
the HEF4050B and I have reasoned out the wiring in notepad it is a little messy but I understand it once the chip arrives I will post a picture of it working.

Sd card to arudiono
I am using the arduino uno r3 it should be the same on all revisions though
        ________________________________________
        |                                       |
        | ooooooooooooooooooooooooooooooooooooo |
        | o zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz  o |
        | o z dddddddddddddddddddddddddddddzd o |
        | o z d aaaaaaaaaaaaaaaaaaaaaaaaaa zd o |
________|_o_z_d_a_______________________ a zd o |
|     F D 3 2 1 0 9 8  7 6 5 4 3 2 1 0  |a zd o |
|     E N 1 1 1 1 ~      ~ ~   ~        |a zd o |
|     R G     ~ ~                  X X  |a zd o |
|     A         Digital (PWM~)     T R  |a zd o |
|  Arduino Uno                          |a zd o |
|                                       |a zd o |
|   F T                                 |a zd o |
|   E E 3                               |a zd o |
|   R S .                               |a zd o |
|   0 E 3                               |a zd o |
|   I R V                               |a zd o |
¯¯¯¯¯¯¯¯3¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯a zd o |
        3zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzazzd o
     aaa3aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  d o |                               
     a  C3333333333333333333            ooooooo |
   bbabb3bbbb  C___________3____________o___d___C
 33b33333z  bbb|bbbbbbbbbbb3bb          o   d   |
 3 b a   z yyyy|yyyyyyyyy               o   d   |
_3_b_a___z_y___|________ y 3 b          o   d   |
|1 2 3 4 5 6 7 8        |y 3 b          o   d   |
|  HEF4050B             |y 3 b          o   d   |
|                       |y 3 b          o   d   |
|9 10 11 12 13 14 15 16 |y 3 b          o   d   |
¯o¯¯*¯¯¯¯¯¯¯¯¯¯q¯¯d¯¯¯¯¯ y 3 b          o   d   |
 o  *        qqq  dddddddYd3dbddddddddddodddd   |
yoyy*yyyyyyyyyyyyyyyyyyyyy 3 b          o       |
yo  *        q             3 b          o       |
yooo*oooooooooooooooooooooo3ooooooooooooo       |
yy  *** 33333333333333333333 b                  |
 ybbbb*b3bbbbbbbbbbbbbbbbbbbbb                  |
 yb   * 3    q                                  |(GND is connected to sd pins 3 and 6 that part appears to be slightly diffucult to see)
 yb  3*33    q                                  |
 ybyC3*C_____q__________________________________|
  by|3*|qqqqqq   NOTE IMPORTAN READ ME!!!!!!:even though some of the
 _by|3*|q_      Wires appear to be connected to another wire because they are touching another wire they are not connected they are overlapping
/912345678|     also some wire were they "overlap" appear to be broken they are NOT
|         |     This is due to 2d limitations to solve this I will write were it is connected by using something like this (Uppercase C)
|         |     After finishing this I  realized alot of wires ended up overlapping                             C_C
|  SD     |     you may have to look around to find were it goes                                                | |
|         |     Two wires overlapping
|         |     AAAAAABAAAAAAA
|_________|           B
                      B
Sd pin notes
9 unused
8 also unused
3 GND1
6 GND2
5 Clock
4 supply power (3.3v)
1 cip dection (goes to pin 10 on arduino)
HEF4050B pin notes:
VDD 1 supply voltage
1Y to 6Y 2, 4, 6, 10, 12, 15 output
1A to 6A 3, 5, 7, 9, 11, 14, input
VSS 8 ground supply voltage
n.c. 13, 16 not connected
Aurduino uno pin notes:
Pin 11 MOSI Master Out Slave In
Pin 12 Master In Slave Out (MISO)
Pin 13 is the Serial Clock
Pin 10 Slave Select pin

I am using a micro SD card on my current project. This: http://www.sparkfun.com/products/8745 Has worked wonders for me. It will work with SPI or I2c. There are four converters. You can convert four 5v down to 3.3v or 3.3v to 5v or a mix of both. Read up on it. It's TINY. Slap some headers on it and your golden.

Mr_arduino:
You are talking about the power source right? The arudino uno has a 3.3v power source but the digital io pins are based on 5v and I need 3.3v digital io just a thought is there anything I can set to make a digital i/o pin output 3.3v in my program?

Can't just a couple of resistors be used to achieve that? You don't need any IC or complex circuit, as you don't need to filter/stabilize anything! Just choose your favorite resistors to comply with this formula:

3,3 = 5 * R2/(R1+R2)

Can't just a couple of resistors be used to achieve that?

No, not and do it properly. Resistors introduce too much distortion to a digital signal due to the charging / discharging of the capacitance in the load.

Grumpy_Mike:

Can't just a couple of resistors be used to achieve that?

No, not and do it properly. Resistors introduce too much distortion to a digital signal due to the charging / discharging of the capacitance in the load.

I didn't know about parasite capacitance in resistors. Maybe if it would work or not depends on application working frequency?

I didn't know about parasite capacitance in resistors

No it is not in the resistors it is in the rest of the circuit, the wiring and the load you are trying to drive. The lower the drive impedance the shorter it takes to charge up these capacitance. By putting resistors in the circuit you are adding to the drive impedance substantially, so yes this will depend on the frequency you are trying to drive something at.
The wave shield by Lady Ada started out using resistors, so obviously this worked. However, they found that there were a significant number of users where this wouldn't work and so they changed their design to use a level shifter. This illustrates the importance of proper testing on a piece of electronics. If something works it does not mean it is a good repeatable design. Something lost on a lot of people who post circuits on the net.

I already bought the chip and there was some other chips I wanted to buy as well, so I just added the buffer chip to my order it was only 50 cents not much more than putting a few resistors on each io pin and since resistors could cause noise I would prefer the buffer chip as it seems a lot more likely to work and I am still new to the Arduino and I would like more experiences on how to interface with various chips so there are a lot of advantageous on using the buffer chip.

For what it's worth, I've had good luck using these boards with an SPI interface. 4-channel I2C-safe Bi-directional Logic Level Converter [BSS138] : ID 757 : $3.95 : Adafruit Industries, Unique & fun DIY electronics and kits

There is also an 8-channel: 8-channel Bi-directional Logic Level Converter [TXB0108] : ID 395 : $7.95 : Adafruit Industries, Unique & fun DIY electronics and kits

The 4-channel is fully qualified for I2C, the 8-channel apparently is not as it uses an IC that auto-detects the direction and is apparently confused by the strong pullups on I2C lines.

They are simpler to use than the SparkFun board, much more convenient if you need to connect lots of wires or shift them around. And unlike the SparkFun board, each line is fully bi-directional. The SparkFun board only supports 2 bidirectional lines and you have to be careful about how you hook them up as each line has a separate RX and TX.

The Adafruit four channel level converter is great for I2C but may not work with all SD cards. Here is a quote from Adafruit:

The 10K's do make the interface a little more sluggish than using a TXB0108 or 74LVC245 so we suggest checking those out if you need high-speed transfer.

The eight channel level converter has low output impedance, about 40 ohms according to the TXB0108 data sheet.

Just to let you know I got it working in about 10 minutes if not that. Note that this picture also shows extra circuitry due to the presence of SPI RAM and a speaker.

Just as a very late postscript, I can thoroughly recommend the TXB0101 as a a one channel translator. Goes all the way down to 1.2-V on one side and 5-V easy on the other side in either direction. Watch out for the two versions TXB and TXS(buffered and something else)

Comes as SOT 23 6-pin, so sod to solder onto Roth DIL adaptor. Trick is to use a tacky flux, something like ChipQuik SMD291, lock a pair of tweezers over the chip and board and solder up with a very fine solder.
Note that the last transition is "held" and does not drop to 0-V if the source is removed.