Hi Jesper,
Thanks for that, it was as I understood it from the datasheets, just
wanted to double check with someone more familiar. Just one more
thing, am I then correct in assuming that Block1 is bytes 0 to 511,
block 2 is bytes 512 to 1023 etc. ? And the address I supply for write
instructions, I always then just change bits higher than the 9th bit
(512) ?
Cheers again
Hein
Auckland, New Zealand.
--- In AVR-Chat@yahoogroups.com, Jesper Hansen <jesperh@...> wrote:
>
> kernels_nz wrote:
> > Hi guys,
> >
> > Ive googled it to death, and read all the app notes and data sheets I
> > could get my hands on, but clearly I havent read them hard enough!
> >
> > Just a few questions if anyone has used them succesfully please.
> >
> > 1. As i read and understand it, can I only use 512byte block sizes for
> > single block writing in SPI mode ? Do I then have to write as a
> > minimum 512bytes of info everytime I write to the card ?
>
> You MUST write complete 512 byte blocks. When reading you can terminate
> a read by raising CS, but when writing this is not possible. If you do
> not fullfill a block write, no data will be written at all.
>
> > 2. Can anyone enlighten me as to how the physical sectors work ? How
> > many blocks per sector etc ? As I understand it, I need to supply a
> > start address for all write / read instructions, just wondering how I
> > know what address to give to make sure I start at the edges of blocks
> > and stay in the same sector.
>
> Forget all about physical sectors and just think of the card as a
> collection of 512 byte blocks. If you start playing with different
block
> sizes (which only works on read anyway) you'll quickly end up confused.
> Simply address the card by logical sector numbers, by simply
shifting up
Show quoted textHide quoted text
> the sector number 9 bits and feed that address to the card.
>
> /Jesper
>