Buduję projekt, w którym jest obsługiwana karta SD (po SPI oczywiście).
Jestem na etapie rozpracowywania obsługi i trafiłem na taki problem:
Mam testowo kilka kart 16MB, 128MB, 128MB, 2GB, 2GB
Otóż karty reagują na rozkazy zadziwiająco różnie (ale powtarzalnie !)
1. Inicjalizacja
a) Wysyłam FF dla rozpędzenia karty (jakieś 15 razy)
b) CMD0 (odp 0x01)
c) CMD1 (odp 0x00)
Wszystkie karty startują i odpowiadają 0x00 na CMD1 choć niektóre starsze najpierw jeszcze
raz lub dwa podają 0x01. Żadna nie wymaga ACMD41.
2. Proszę o CID
a) CMD10 (odp 0x00 - starsze 0x01 0x00)
b) wysyłam FF i odbieram CID
I tu właśnie jest problem którego nie rozumiem:
- wg mnie nic w tym ciągu ciekawego nie widać (jest powtarzalny dla karty jednak)
- karty 2GB nie rozumieją CMD10: odpowiedź w kółko 0x07, 0xFF, 0xFF (sandisk) lub 0x1C, 0xFF, 0xFF (nokia)
To nie są SDHC bo na nich nie pisze nic takiego. O co chodzi ?
Jestem na etapie rozpracowywania obsługi i trafiłem na taki problem:
Mam testowo kilka kart 16MB, 128MB, 128MB, 2GB, 2GB
Otóż karty reagują na rozkazy zadziwiająco różnie (ale powtarzalnie !)
1. Inicjalizacja
a) Wysyłam FF dla rozpędzenia karty (jakieś 15 razy)
b) CMD0 (odp 0x01)
c) CMD1 (odp 0x00)
Wszystkie karty startują i odpowiadają 0x00 na CMD1 choć niektóre starsze najpierw jeszcze
raz lub dwa podają 0x01. Żadna nie wymaga ACMD41.
2. Proszę o CID
a) CMD10 (odp 0x00 - starsze 0x01 0x00)
b) wysyłam FF i odbieram CID
I tu właśnie jest problem którego nie rozumiem:
- wg mnie nic w tym ciągu ciekawego nie widać (jest powtarzalny dla karty jednak)
- karty 2GB nie rozumieją CMD10: odpowiedź w kółko 0x07, 0xFF, 0xFF (sandisk) lub 0x1C, 0xFF, 0xFF (nokia)
To nie są SDHC bo na nich nie pisze nic takiego. O co chodzi ?
