collapseos/blk/430
Virgil Dupras 1a6a549857 Make the SPI Relay protocol support multiple devices
Working on programming AVR chips exposes a glaring omission in my
first design of the SPI Relay: not allowing multiple devices make
this task hard. I constantly have to unplug my SD card before, plug
the AVR chip holder, then play a bit, then unplug the AVR holder,
then replug the SD card...

My prototype for a SPI relay design is built, but I haven't tested
it yet. I need to adapt the code first, which is what I do here.

When the prototype is tested, I'll update the SDC recipe with a new
schema.
2020-09-17 09:48:55 -04:00

17 lines
745 B
Plaintext

: _err 0 (spie) ABORT" SDerr" ;
( Tight definition ahead, pre-comment.
Initialize a SD card. This should be called at least 1ms
after the powering up of the card. We begin by waking up the
SD card. After power up, a SD card has to receive at least
74 dummy clocks with CS and DI high. We send 80.
Then send cmd0 for a maximum of 10 times, success is when
we get 0x01. Then comes the CMD8. We send it with a 0x01aa
argument and expect a 0x01aa argument back, along with a
0x01 R1 response. After that, we need to repeatedly run
CMD55+CMD41 (0x40000000) until the card goes out of idle
mode, that is, when it stops sending us 0x01 response and
send us 0x00 instead. Any other response means that
initialization failed. )