SD CARD (Deutsch)

From Ethersex_Wiki
Revision as of 11:45, 4 June 2013 by GooPie4o (talk | contribs) (Anschluss)
Jump to: navigation, search
SD/MMC-Card Reader
Status
Stable
menuconfig I/O->SD/MMC-Card Reader
Pinning yes
Ecmd yes
Control6 yes
Depends on ECMD
Code https://github.com/ethersex/ethersex/tree/master/hardware/storage/sd_reader

Das Modul basiert auf Roland Riegels MMC/SD/SDHC card library ergänzt um die Anbindung an das Ethersex Virtual File System.

Anschluss

MMC- und SD-Speicherkarten lassen sich im SPI-Modus relativ einfach mit einem Mikrocontroller ansteuern. Prinzipiell gibt es zwischen SD-Card und MMC nicht viele Unterschiede, allerdings sind SD-Karten weiter verbreitet, in der Regel schneller als MMCs, und haben ein besser implementiertes SPI-Interface. Es existieren diverse Varianten (miniSD, microSD), die zur normalen SD-Card weitgehend kompatibel sind.

Die Karte liest das anliegende Datenbit mit der steigenden Taktflanke ein, als SPI-Modi eignen sich somit Mode 0 und Mode 3. Bei MMCs ist der SPI-Modus nicht genau spezifiziert, somit kommt es durchaus mal vor, dass der SPI-Modus je nach Karte unterschiedlich gewählt werden muss.

SD-Karten werden typischerweise mit 3,3V und Microcontroller oft mit 5V betrieben. Das erzwingt eine Pegelanpassung, weil die Eingangsleitungen zur SD-Karte nicht 5V tolerant sind. Von einer Pegelanpassung mit Widerständen wird abgeraten.

Neben den Leitungen, die zur SD-Karte führen, gibt es noch zwei weitere Leitungen, die auf den SD-Karten-Sockel führen: nämlich die card-detect Leitung und die write-protect Leitung. Sie dienen dazu, wie die Namen schon sagen, das physische Vorhandensein einer Karte im SD-Sockel und die Stellung des Schreibschutzschiebers zu signalisieren.

The SPI connection is pretty fixed and does not need special pinnings. For the chip select (CS) of the modul and the optional LEDs the pinning must be defined.

Wird Hardware-SPI verwendet, muss nur die chip select Leitung konfiguriert werden. Die card-detect Leitung und die write-protect Leitung sind optional.

 ifdef(`conf_SD_READER', `
   /* port the sd-reader CS is attached to */
   pin(SPI_CS_SD_READER, PB2, OUTPUT)
   /* uncomment and edit this if you have connected the CD (card detect) signal */
   pin(SD_READER_AVAILABLE, PD4, INPUT)
   /* uncomment and edit this if you have connected the WP (write protected) signal */
   pin(SD_READER_WR_PROTECT, PD5, INPUT)
 ')

Konfiguration

 | |              General Setup  --->                                    | |
 ...
 | |       [*] VFS (Virtual File System) support  --->                   | |
 ...
 | |                   [*] SD/MMC-Card Filesystem                        | |
 
 
 | |              I/O  --->                                              | |
 ...
 | |        [*] SD/MMC-Card Reader  --->                                 | |
 ...
 | |                  [ ] SDHC support                                   | |
 | |                  [*] VFAT LFN support                               | |
 | |                  [ ] Read-only mode                                 | |
 | |                  [*] Use read-timeout                               | |
 | |                  [*] Ping-read SD card every 10s                    | |
 | |                  --- Debugging Flags                                | |
 | |                  [ ] SD-Reader                                      | |
    

ECMD

Control6