Hallo liebes Forum
Ich hab mich vor einigen Wochen gefragt "Wie mach ich eine SD-Karte an einen Controller?". Also hab ich ein bischen rumgeforscht und mich dann mal mit AVR-DOS beschäftigt und dann wollt ich es auch mal ausprobieren eine SD-Karte an einen Controller zu hängen.
Da stellten sich natürlich ein paar Problem heraus.
1). Braucht man für das AVR-DOS massig RAm (Mega128+)
2). Sind diese Chips nur als SMD erhältlich
3). Wie betreibe ich den Chip und die SD-Karte (Chip 5V, SD-Karte 3V)
Da ich persönlich keine Ätzausrüstung habe und auch keinen kenne der mir was ätzen kann musste ich mir anders weiterhelfen.![]()
Der Ausweg war eine SMD-Adapterplatine für den Mega und ein fertiges SD-Kartenmodul mit integriertem Pegelwandler (weil Spannungsteiler usw. sollen wohl nicht so prall sein).
So und bisher sieht es so aus (nicht wundern wieso die LED so hell ist, hab mir ausversehn Ultrahelle LEDs bestellt)
http://img696.imageshack.us/img696/9125/bildvo.jpg
Und im TeraTerm sieht es dann so aus:
http://img715.imageshack.us/f/unbenanntog.png/
Als Komponenten für die Platine benutze ich:
SD-Kartenhalter
http://www.shop.display3000.com/elek...enplatine.html
UART -> USB Wandler
http://de.rs-online.com/web/search/s...duct&R=0406568
Und einen Mega128 mit SMD-Adapter von Reichelt.
Und als Code benutze ich den Testcode von der AVR-DOS Homepage.
http://members.aon.at/voegel/index.html
Mein nächster Schritt wird jetzt sein das ich das in ein Programm als Datenlogger integrieren möchte und ich hoffe es klappt![]()
Hoffe dieser Thread ist für einige Anreiz es auch mal zu probieren.
Edit: Hab hier noch ein kleines Programm um den Wert aus dem ADC0 mitzuloggen. Die Stacks müssen vielleicht noch dimensioniert werden aber ganz ohne gehts nicht!
Code:$regfile = "M128def.dat" $crystal = 8000000 $baud = 19200 $hwstack = 200 $swstack = 200 $framesize = 400 Dim Zu_schreiben As Byte Dim Tmpbyte As Byte ' Dim Btemp1 As Byte Dim Wert As Byte 'ADC konfigurieren und starten Config Adc = Single , Prescaler = Auto , Reference = Internal Start Adc 'AVR-DOS einbinden $include "config_mmc.bas" $include "config_avr-dos.bas" Do 'A/D Wandlung Wert = Getadc(0) 'SD Karte initialisieren Tmpbyte = Driveinit() Print "Init: " ; Str(tmpbyte) Print "Trying to read File system..." Btemp1 = Initfilesystem(1) Print "Btemp1: " ; Btemp1 'Fehlerausgabe If Btemp1 <> 0 Then Print "Error: " ; Btemp1 ; " beim Initialisieren des Dateisystems" Waitms 500 Print "SD - FEHLER" Else Print "SD OK" End If 'SD Karte beschreiben Open "LOG.txt" For Append As #1 Print #1 , Wert 'Variable auf SD schreiben Print Wert 'Variable auf COM / PC anzeigen Close #1 Return Wait 1 Loop End
Lesezeichen