xmega_tutorial.jpg

Xmega Tutorial - SD Karte

Bewertung:  / 9
SchwachSuper 
  • xmega_sdcard_1

Folgend gibt es ein kleines Beispiel wie man über den SPI-Bis dess Xmegas mit einer SD Karte kommunizieren kann. Zur Ansteuerung der SD Karte habe ich auf die Library von Roland Riegel zurückgegriffen und diesen für meine Zwecke, also den Xmega Controller angepasst.

SD Karten sind sehr nützlich für Projekte wie Datenlogger, elektrische Bilderrahmen oder auch nur zur Zwischenspeicherung von Datenmengen mit einer Größe von mehreren Megabyte.

Eine einfache Lösung für diese Speicherprobleme ist die SD Karte oder auch Micro SD Karte. Auf eine Größe von unter einen einen cm kann man somit schon mehrere GB an Daten unterbringen. Die geringe Größe und der zudem geringe Preis ermöglicht die Verwendung solch einer Karte in einer vielzahl an Anwendungen.

Weitere Informationen und Hilfe zur Xmega SD Karten Bibliothek, bzw. informationen zu Problemlösungen findet man im Forum inter folgendem Link: Forum Xmega SD Karte

Features

  • low-level MMC, SD and SDHC read/write routines
  • partition table support
  • a simple FAT16/FAT32 read/write implementation

In dem hier dargestellten Beipiel werden nacheinander die folgenden Punkte abgearbeitet,

  1. öffnet der SD Karte
  2. auslesen der SD Karten Informationen
  3. anlegen eines String für den Dateinamen  und den Testinhalt.
  4. anlegen einer neuen Datei mit dem entsprechendem Namen
  5. Datei öffnen, beschreiben und schließen
  6. auslesen der SD Karten Directory

Alle daten werden über USB, also dem UART D0 zur Kontroller an den Rechner gesendet. Das Egebnis kann man mit HIlfe einem Terminalprogramm, wie HTerm oder ähnlich auswerten.

Xmega SD Card Example
#include "macros.h"
#include "avr_compiler.h"
#include "clksys_driver.h"
#include "usart_driver.h"
#include "sdcard_driver.h"
 
...
 
 
//####################################### main
int main (void) 
{   		
initialisierung();	// Load controller setup
 
//############################ SD Card	 
usart_puts(&USARTD0_data,"\r");	
sd_card_open();
 
usart_puts(&USARTD0_data,"\r");
sd_get_disk_info();
 
usart_puts(&USARTD0_data,"\r");	
char filename[20];
char filetext[200];
strcpy( filename, "testfile1234.txt" );
strcpy( filetext,  "Das ist der ertse versuch eine SD karte zu beschreiben.\r\n \\
 		    Zahlen: 0123456789\r\n \\
 		    Zeichen !§$%&/()=?\r\n \\
		    ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n");
 
sd_file_new(filename);
sd_file_open(filename);
sd_file_write(filetext);
sd_file_close();
 
usart_puts(&USARTD0_data,"\r");
sd_get_Directory();		
 
 
while(1) 
{          
}                                   
}
 

Ein ausführliches Beispiel zum Testen der vorgestellten Funktionen findet ihr unter Downloads. Weiterhin findet ihr die von Atmel zu dem Thema zur Verfügung gestellte Appnote im Anhang des Artikels unter Links.

Viel Spass beim Testen.

Hinweis:
Das Tutorial wird nach und nach von mir ergänzt. Wenn ihr Fehler in dem Tutorial findet würde ich mich freuen wenn ihr mir diese mitteilt, damit ich diese korrigieren kann. Wenn jemand eigene Tips, Informationen oder Code-Schnipsel hat kann er mir diese gern zusenden damit ich sie anschließend in das Tutorial einbinden kann.

Links

 
Informationen im Forum
SD Karten Bibliothek von
Roland Riegel für Atmega Controler
Atmel Appnote

Forum Xmega SD Karte
MMC/SD/SDHC card library

AVR115: Data Logging with Atmel File System

Downloads

 

 

Kommentar hinzufügen

Neuste Beiträge

30/08/2016
Es gibt nun endlich ein Update für die Tinyg CNC Controller Hardware und der dazu gehörenden PC Software...
03/09/2015
In den letzten Monaten habe ich lange das CAD Programm und meinen kleinen Ultimaker 3D Drucker gequält....
15/05/2015
Zuerst wurde eine kleine Katze am Computer konstruiert. Der erste Druck mit 0,3mm Schichtstärke war...
06/05/2015
Da beim Ultimaker keine Beleuchtung des Arbeitstisches vorgesehen ist, muss ich mir hier selber eine...
10/03/2015
Nach vielen Überlegungen habe ich mich nun endlich dazu entschieden meinen Machinenpark mit einem 3D...
01/02/2015
Diese Hardware besteht aus einem mächtigem Hardwarecontroller und vier leistungsstarken...
123135