Hi Gang,
I am attempting to interface my NMOS 6522 to a 4GB MicroSD card. I purchased a TI TXB0104 to convert between 5V and 3.3V. However, I'm seeing some strange behavior. I stick the multi meter on one of the 3.3V outputs on the A side. The corresponding B side is connected to a 6522 port that has been configured as an output (high bit in the DDR) and is low (low bit in ORB). I read 0 volts on the 3.3 side - good. Then, I toggle it high by writing a 1 bit to ORB. It goes to 1.65 volts. Odd. I then remove the multi meter probe from the output pin and put it back (changing nothing else) and suddenly it reads 3.3V - good.
I also see a similar behavior if I look at the 6522's pins using a logic analyzer. After sending some clocks, the clock line appears to be 'stuck low'. If I remove and reconnect the probe it has somehow gone high.
I'm not sure exactly what's going on here, but I suspect it has something to do with why the card won't respond to my commands. I am considering a different strategy for interfacing the NMOS 6522 to the 3.3V SD card. I scrounged some old posts and found Andre Fachat's method along with this one:
http://www.ele.uva.es/~jesus/6502/perif_schem.pdf With the latter, he is just using voltage dividers (although different values for MOSI, SCK, and CS). I read somewhere else that a 3.3V output is enough to be considered a TTL "high", so that explains the direct connection on this circuit.
What's your favorite method for making the transition?
On the software side, I am bringing CS high, writing out 10 $FF bits using Garth's code, dropping CS, sending CMD0 (0x400000000095), and receiving nothing but $FF back for the next 256 frames. Also confirmed that the SD card's DO is high after such operations.