Skip to content
blahlt edited this page May 9, 2013 · 9 revisions

Turinys

Atsakymai (Responses) SPI rėžime

Atsakymai SPI rėžime gali būti trijų formatų: R1, R1b ir R2.

R1 atsakymo formatas

R1 formato atsakymą sudaro 1 baitą (8 bitus):

7 6 5 4 3 2 1 0
Bito numeris Pavadinimas Aprašymas
7 Rezervuotas Visada "0"
6 Parametrų klaida (angl. Parameter error) Komandos argumentas (pvz. adresas, bloko dydis) viršija galimas reikšmes
5 Adreso klaida (angl. Address error) Komandoje panaudotas adresas, kuris neatitinka bloko dydžio
4 Sekos trynimo klaida (angl. Erase sequence error) Įvyko klaida trinant seką
3 CRC perdavimo klaida (angl. Communication CRC error) Nepavyko paskutinės komandos CRC tikrinimas
2 Negalima komanda (angl. Illegal command) Buvo perduoda negalima komanda
1 (angl. Erase reset)
0 Budėjimo režimas (angl. In idle state) Kortelė yra budėjimo rėžime ir vyksta inicializacija

R1b atsakymo formatas

R1b formatas identiškas R1 tik perduoda užimtumo signalą (angl. busy signal). Užimtumo signalas (busy signal) gali būti bet kuris bitas, todėl kortelė galės priimti naujas komandas tik tada kai R1b formato atsakymo reikšmė bus 0 (visi 8 atsakymo bitai "0")

R2 atsakymo formatas

R2 formato atsakymas užima 2 baitus (16 bitų).

1 baitas 2 baitas
15 (7) 14 (6) 13 (5) 12 (4) 11 (3) 10 (2) 9 (1) 8 (0) 7 6 5 4 3 2 1 0
Bito numeris Pavadinimas Aprašymas
15 (7) Rezervuotas Kaip R1 (Visada "0")
14 (6) Parametrų klaida (angl. Parameter error) Kaip R1
13 (5) Adreso klaida (angl. Address error) Kaip R1
12 (4) Sekos trynimo klaida (angl. Erase sequence error) Kaip R1
11 (3) CRC perdavimo klaida (angl. Communication CRC error) Kaip R1
10 (2) Negalima komanda (angl. Illegal command) Kaip R1
9 (1) (angl. Erase reset) Kaip R1
8 (0) Budėjimo režimas (angl. In idle state) Kaip R1
7 (angl. Out of range)
6 (angl. Erase param) An invalid selection, sectors or groups, for erase
5 (angl. Write protect violation) The command tried to write a write protected block
4 (angl. Card ECC failed) Card internal ECC was applied but failed to correct the data
3 (angl. CC error) Internal card controller error
2 (angl. Error) A general or an unknown error occurred during the operation
1 (angl. Write protect erase skip) Only partial address space was erased due to existing WP blocks
0 Rezervuotas Visada "0"

Inicializacija

  • Kortelės pasirinkimo (chip select) signalas turi būti "1" (/CS yra invertuotas). Paleidžiam minimum 74 "apšildymo" impulsus į kortelę (reikalinga, kad užsipildytų vidiniai kortelės registrai). Dažniausiai yra siunčiama 10 kartų 0xFF reikšmė (viso gaunasi 80 impulsų).
  • Aktyvuojam kortelė į /CS paduodami "0" (aktyvuotas).
  • Siunčiam kortelei CMD0 komandą (įskaitant argumentą, CRC, pradžios ir pabaigos bitus): 0x40 0x00 0x00 0x00 0x00 0x95.
  • Siunčiam du baitus "tuščių" duomenų (du kartus po 0x00), kad gautume atsakymą.
* http://www.linuxforturkey.com/mp4_project/mp4_project_c2.php

Clone this wiki locally