Forum: Mikrocontroller und Digitale Elektronik Bascom Avrdos & Sd karte Hängt Prozessor auf


von Mark M (Gast)


Lesenswert?

Hallo

 Ich habe heute das erste mal eine Sd karte an einen Avr angeschlossen.
 Soweit scheint es zu klappen er gibt mir den gewünschten Sektor über 
die rs232 aus.
 Doch wenn ich den Sektor erneut Lesen oder Schreiben möchte stürzt mein 
Programm ab und macht einfach garnix mehr.
 Prozessor ist ein mega16 Sd Karte, Pegelwandler und Spannungsversorgung 
(der Karte) sind auf dem "Pollin Net io Addon Board" somit denke ich 
sollte der anschluss der Karte soweit ok sein.


 $regfile = "m16def.dat"
 $crystal = 8000000
 $hwstack = 64
 $swstack = 64
 $framesize = 64
 $baud = 9600

 Const Cmmc_soft = 0
 $include "\\Server\Projekte\28-01-13 sd karte m16\Config_MMC.bas"

 Dim Abuffer(512) As Byte ' SRAM-Bereich für den Transfer
 Dim Wsrampointer As Word ' Adress-Pointer für den Drive... Routine


 Dim I As Word
 Dim Sectornr As Long
 Wsrampointer = Varptr(abuffer(1))
 Gbdriveerror = Driveinit() ' Init MMC/SD Card

 Print "INIT ";
 Print Gbdriveerror

 Sectornr = 1

 Print "Rdy0"

 Gbdriveerror = Driveinit() ' Init MMC/SD Card
 Do
 Print "Rdy1"
 Wsrampointer = Varptr(abuffer(1))
 Print "Rdy2"
 Gbdriveerror = Drivereadsector(wsrampointer , Sectornr ) 'dauert 8ms
 Print "Rdy3"
 For I = 1 To 511
 Print Chr(abuffer(i));
 Next I
 Waitms 1000
 Print "Rdy4"

 Gbdriveerror = Driveinit()
 Print Gbdriveerror

 Loop



 Programm ist kurz und übersichtlich.
 Die "Rdy"'s lass ich mir ausgeben um zu wissen wo er Stecken bleibt

 Meistens schafft er Zwei durchgänge manchmal nur einen manchmal Drei.
 Die Driveinit am Ende war ein Versuch die Karte neuzustarten aber ohne 
Erfolg.
 Mit dem eintrag Driveinit am ende bleibt er meistens bei Rdy4 stecken 
also beim init ohne init beim Drivereadsector.

 Andere Karte (265mb oder 1Gb Micro sd in adapter) Gleiches ergebnis und 
Ohne karte gibt die Init den Fehler 255 aus und hängt sich auf oder eben 
auch erst beim Drivereadsector.

 Schreiben und auch Lesen sind aber nach jedem Reset 1-3 mal Möglich

 Woran könnte das liegen?

von holger (Gast)


Lesenswert?

Dein ATMEga16 hat nur 1kB RAM. Schau mal in die Doku
von Avrdos ob das reicht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.