SD Karte! Ich weiss die Frage kam schon zum 100mal
Hallo zusammen,
ich habe mal eine Frage und zwar...
Wie kann ich mit dem Atmel etwas auf einer SD Karte speichern.
Bevor wieder irgendwelche blöden Sprüche kommen wie "Die ganze Welt ist ein einziges Google" kann ich schon mal gleich sagen:
JA ich habe bei Google gesucht.
JA ich habe sogar etwas herausgefunden
JA ich habe die Suchfunktion von Roboternetz benutzt
Ja ich weiss in ungefähr, dass man die SD KArte am SPI Bus chließen muss
JA ich habe AVR Dos gefunden und muss sagen das ich dafür kein Geld ausgeben möchte
ABER: Ich komme mit der Programmierung nicht klar. Könntet ihr mir einfach mal ein kleines Beispiel geben?
Vielen Dank,
Hunni
Re: SD Karte! Ich weiss die Frage kam schon zum 100mal
Zitat:
Zitat von hunni
JA ich habe AVR Dos gefunden und muss sagen das ich dafür kein Geld ausgeben möchte
Ist AVR Dos nicht inzwischen in der Bascom Vollversion enthalten ,
und für die nicht Kommerzielle Nutzung „Freeware“ ?
Gruß HH
Re: SD Karte! Ich weiss die Frage kam schon zum 100mal
Zitat:
Zitat von HansHans
Ist AVR Dos nicht inzwischen in der Bascom Vollversion enthalten , und für die nicht Kommerzielle Nutzung „Freeware“ ?
Hallo!
Ja, AVR-Dos ist in der Bascom-Vollversion mit dabei. Man kann es auch direkt von der AVR-Dos-Homepage herunterladen. Und für "Nicht Kommerzielle Nutzung" ist AVR-Dos gratis.
Allerdings braucht man **mindestens** einen ATmega32, besser einen ATmega128, dafür. Und wenn man auf das FAT-Dateisystem verzichten kann und einfach nur Daten, wie bei einem EEPROM, auf die Karte schreiben möchte, dann kann man auf AVR-Dos verzichten und sogar mit einem ATmega8 arbeiten.
- http://www.mcselec.com/index.php?opt...d=20&Itemid=41
- http://members.aon.at/voegel/
- http://www.mcselec.com/index.php?opt...d=87&Itemid=57
- http://www.ulrichradig.de/home/index.php/avr/mmc-sd
- http://staff.ltam.lu/feljc/electroni..._Low_Level.pdf
mfg
Gerold
:-)
SD Karte beschreiben - Sektor anlegen?
Hallo,
ich möchte eine SD Karte mit Messwerten beschreiben und diese am PC auslesen.
Da ich nur einen M32 benutze kann ich kein AVR Dos nutzen.
In einem älteren Beitrag habe ich folgenden Artikel gefunden:
Zitat:
Zitat von for_ro
Dann versuch es doch mal mit der einfachen Version, ohne AVR-DOS.
Ich weiß nicht, wieviel dein sonstiger Code ausmacht, aber der hier inklusive Lesen und Schreiben von 1000 Sektoren und Ausgabe auf den UART belegt gerade mal 1492 Byte, also noch viel Platz bis 4K.
Code:
$regfile = "M128def.dat"
$crystal = 16000000
$baud1 = 115200
Open "Com2:" As Binary As #1
Enable Interrupts
Dim Mmc_error As Byte
Dim In_ptr As Word ' Address-Pointer for read
Dim In_sect As Long
Dim In_buffer As String * 512
Print #1 , "Wait for Drive"
$include "Config_MMC.bas"
'Hier werden als Test die ersten 1000 Sektoren der Karte eingelesen und auf den UART ausgegeben und dann wieder auf die SD geschrieben.
In_ptr = Varptr(in_buffer)
If Gbdriveerror = 0 Then
Mmc_error = Driveinit()
If Mmc_error = 0 Then
Print #1 , "Driveinit Ok. "
For In_sect = 0 To 1000
Mmc_error = Drivereadsector(in_ptr , In_sect)
If Mmc_error = 0 Then
Print #1 , "ReadSector(" ; In_sect ; ") ok." 'Zum Inhalt drucken, Kommentare entfernen !!!!!!!!!!
Print #1 , In_buffer 'Dann wird es aber langsamer, 115200 baud beim übertragen
Mmc_error = Drivewritesector(in_ptr , In_sect)
Else
Print #1 , "Error during ReadSector(" ; In_sect ; ") : " ; Mmc_error
End If
Next In_sect
Else
Print #1 , "Error during Driveinit(): " ; Mmc_error
End If
End If
End
Hierbei werden die Sektoren direkt geschrieben. Das reicht für die Ein- und Ausgabe im µC.
Wenn du eine Datei in Windows sehen willst, legst du vorher eine dummy-Datei der benötigten Größe an und schreibst dann deren Sektoren.
Gruß
Rolf
Jetzt die Frage:
Wie und welche Datei muss ich anlegen, und wie weis ich auf welchen Sektoren sie liegt?