Thanks
This procedure would likely be the same with whichever library you use. The SPI protocol for writing to the card goes like this:
- Send 'write sector command' - 0x58 a b c d 0x00
- Await command acceptance - ie you receive 0x00
- Send data token - 0xFE
- Send 512 bytes
- Send dummy checksum - 0x00 0x00
- Await 'done' status code - ie you receive 0x00
Mostly these 6 steps are all wrapped up in a function. What I suggest is that 1-3 are split out into one function, 4 in another, and 5-6 in yet another.
StartWrite() - does 1-3
WriteByte - actually would be the existing 'xfer byte' routine
EndWrite() - does 5 & 6
Start the write with steps 1,2,3.
Then write bytes at a time (step 4) until you've sent 512 of the blighters.
Do 5 & 6. If you want to continue, start again at the next sector with steps 1-3.
Let me know how you get on!