MMC blok yazma algoritması nedir?

Başlatan rree, 09 Ekim 2012, 20:17:07

rree

   MMC okuma yazma önceden 512 byte tanımlı olsun

Örnek: 40. Sektöre 512 tane 'A'  karekteri ile dolduralım.

İşlem basamaklarım.
Adım -1 Adresi hesapla------------------------------------------------
Sektör =40
Adres=40*512 ise Adres=20480
Adreshex=00 00 50 00   <Onaltı sayısiteme çevirdik>

Adım -2 Yazma modunda Adresi gönder ------------------------------

SpiWrite(0x58)  <Cmd24 (0x58) sayısını MMC gönder
SpiWrite(0x00)
SpiWrite(0x00)
SpiWrite(0x50)
SpiWrite(0x00) < 00 00 50 00  Adresi gönderdik>
SpiWrite(0xFF) <  CRC (0xFF) rasgele attım  bir arkadaş önemli değil yazısını okudum>

Adım -3 -- Data gönderelicek hazır ol ------------------------------
SpiWrite(0xFF)
SpiWrite(0xFE) 

Adım -4 ----512 byte datayı gönder ------------------------------

      For (i=0;i<512;i++) { SpiWrite(0x41);}  <  512 tane  'A'  gönderme> 

Adım -5  --- Datanın yazılıp yazılmadığını kontrol et ------------------------
    ???????????? Çözemediğim adım burası 

SpiWrite(0xFF)
SpiWrite(0xFF)  < iki defa 0xFF gönderiliyor>

DataCRC=SpiRead(0xFF)   < Crc okumak için 3. defa 0xFF gönderiliyor>
DataCRC=0b00011111 &  DataCRC <Soldan 3 biti  sıfır yap>

MMC yazma uzun sürmesi gerekir. DataCRC bilgi alıp.
  MMC meşgul veya Yazma hatası veya data yazıldı gibi olyları nasıl öğreneceğiz
yardımlarınızı şimdiden teşekkür.