Unterrichts- und Lernmaterial für Mikrocontroller
Unterrichts- und Lernmaterial fürMikrocontroller

SD-Speicher besser verstehen - Teil 2

Wer mit Video, Musik oder Graphik arbeitet benötigt Speicherplatz. Mikrocontroller verfügen - was die Speicherung von Daten anbelangt - nur über einen sehr überschaubaren kleinen Speicherbereich, der über ca. 1 - 4 kByte nicht hinausgeht.

In den kommenden Versuchen beschäftigen wir uns mit sogenannten microSD-Speicherkarten und wie man auf ihnen Daten ablegt und wieder ausliest. Dazu wird ein Micro SD Card Breakout Board der Fa. Adafruit benutzt. Es lässt sich über einen Arduino UNO mit vorgefertigter Software sofort betreiben. Wer etwas mehr über das WIE und WARUM bei der Ansteuerung erfahren möchte, der ist hier gut aufgehoben. In diesem Abschnitt liegt der Schwerpunkt auf der Ansteuerung einer Speicherkarte mit BASCOM.

SD-Karten dürfen nur mit 3,3V betrieben werden. Aus diesem Grund befindet sich auf dem Breakout-Board ein Pegelanpasser vom Typ H4050. Ebenso müssen die Datenleitungen bei 3,3V betrieben werden. Der Datenaustausch erfolgt über einen SPI-Bus mit vier Anschlussleitungen.

Abbildung 1 - microSD Breakout Board

SD Karten sind sogenannte Rohspeicher ohne Struktur. Um Daten auf ihnen ablegen zu können, muss ein Dateisystem installiert sein, das vom Betriebssystem des Computers auch gelesen werden kann. Unter dem Betriebssystem Windows arbeitet man mit einem FAT-Dateisystem, bei dem man zwischen FAT12, FAT16 und FAT32 unterscheidet.

Eine neu gekaufte microSD-Karte ist in der Regel mit FAT16 oder FAT32 vorformatiert; wer unsicher ist, ob seine SD-Karte das korrekte Format besitzt, sollte die Karte neu formatieren; eventuell vorhandene Daten auf der Karte gehen damit natürlich verloren.

Das dafür notwendige Programm sollte man sich aus dem Internet bei SD-Association kostenfrei herunterladen. Der Formatter wird für Windows und Mac-Systeme angeboten.

MicroSD-Speicherkarte

Die Pinbelegung einer microSD-Karte im SPI-Modus zeigt Abb. 2 und Tabelle 1.

Abbildung 2 - Pinbelegung einer microSD Speicherkarte

Die Spannungsversorgung einer microSD-Karte liegt zwischen 2,7V und 3,6V. Bei den im Handel käuflichen Modul- und Breakoutboards sind Spannungswandler und Pegelanpasser vorhanden, so dass sich die Speicherkarten auch mit 5V Versorgungsspannung betreiben lassen.

Tabelle 1 - Pinbelegung SPI-Modus

Die Bezeichnung DI (Data Input) bezieht sich auf die Speicherkarte und ist bei einem SPI damit der MISO-Eingang, der vom MOSI-Ausgang des Controllers Daten erhält. DO (Data Output) ist aus Sicht der Speicherkarte der MOSI-Ausgang, der an den MISO-Eingang des Controllers Daten überträgt.

SD-Karten sind sogenannte Flash-Speicher, die nach einer bestimmten Anzahl von Schreibzyklen ihren Geist aufgeben. Sie eignen sich deshalb zum Beispiel zur Abspeicherung von Messdaten hervorragend, nicht aber zum permanenten Updaten von Daten. Das kennt man von Kameras, in denen ebenfalls SD-Karten eingesetzt werden.

Übung 1 - Eine SD-Karte lesen und beschreiben

In der ersten Übung geht es darum, beliebige Daten auf eine microSD-Karte zu schreiben und diese Daten auch wieder von ihr zu lesen. In einer zweiten Übung werden Messdaten eines Temperatursensors auf einer microSD-Karte abgelegt.

Versuch 1 - microSD-Karte lesen und beschreiben
Material
  • 1x  microSD-Karten-Modul
  • 1x  USB-I2C Adapter
  • 1x  USB-Kabel
  • diverse Steckkabel
  • 1x  PC oder Laptop mit Programm CoolTerm und BASCOM
  • Datenblatt ATmega8A
Aufgaben
  • Baue die Schaltung nach Abb. 2 auf und verbinde sie mit einer 5V-Gleichspannungsquelle.
  • Verbinde den USB-I2C-Adapter mit dem PC und starte dort das Programm CoolTerm.
  • Stelle die Baudrate auf 115200 ein und wähle anschließend das Icon Connect.
  • Öffne über Connection - Send String in CoolTerm ein Eingabefenster und gib die in Abb. 12 dargestellten Befehlszeilen ein.
  • Übertrage anschließend mit Send die Daten über den I2C-Bus an den Slave und notiere die im Terminalfenster zurückgegebenen Werte.

Anschlüsse auf dem Board

Es stehen insgesamt acht Anschlüsse auf dem Breakout Board zur Verfügung:

5V, 3V, GND für die Spannungsversorgung

CLK, DO, DI, CS für den SPI

CD (Card detect) , über den der Controller abfragen kann, ob sich eine Karte im Slot befindet. Ist das der Fall, wird der Pin auf GND gezogen.

Versuchsaufbau

Abbildung 2 - Versuchsaufbau zu Übung 1 mit einem microSD-Karten-Breakout Board
Druckversion | Sitemap
© Reinhard Rahner - Gettorf