Hi, ich steuere über SPI eine FAT16 Formatierte SD-Karte an und lese bzw. schreibe Daten auf diese. Dafür benutze ich Holger Klabundes Programm was mit einem ATMega32L und einem Takt von 4 MHz wunderbar funktioniert hat. Da ich den 32L mit 3.3V betreiben kann, habe ich auch kein Umnormiernetzwerk benötigt. Nun bin ich auf einen ATMEGA32 umgestiegen, damit ich meinen Takt auf 16 MHz legen kann. Meine einzige Veränderung an meiner vorher (funktionierendes) Schaltung ist, dass der Quarz nun 16 MHz hat, der Mega32 mit 5 V versorgt wird, und ich das Transistornetzwerk von Ulrich Radig für den MISO, MOSI, SCK und CS verwende. Nun treten folgende Probleme auf: 1.) Meine on-Board ISP, welche ja ebenfalls über SPI funktioniert, bringt nur noch den üblichen ISP-Mode Error Fehler 2.) Wenn ich Ulrich Radigs Programm verwende, wird die Karte zwar gefunden, allerdings bekomme ich dann komische Clusterwerte etc. Die CSD-Rückgabe ist: 44 9a 62 7e e2 82 19 4 c8 e 4b 2a b1 bc ae Bin gerade ratlos wo der Fehler liegen könnte. SD-Karte ist mit Linux-Formatiert (Knoppix) mit Fat 16 (Hex6).
Bei letzten Mal, wo es funktioniert hat bekam ich: CSD: 0 26 0 32 5f 59 83 c8 be fb cf ff 92 40 40 d7
naja, 4facher Takt heisst auch 4fache SPI-Geschwindigkeit auf dem SPI-Bus, wenn du keine Programmänderungen machst. Das allein kann schon zu schnell für die Karte sein. Ausserdem machen die Levelshifter irgendwann auch Murks, wenns zu schnell wird, kommt auf das konkrete Design an, wann das passiert. Da helfen nur die Kartenspezifikation und ein Betrachten der Signale weiter. Erst mal kannst du ja den SPI-Takt per Software runterschrauben.
hab ich auf ein viertel. Leider keine Veränderung. Vorallem warum geht der ISP nicht mehr. Das muss irgendei damit zusammenhängen, dass ich ISP und dass Transistornetzwerk gleichzeitig an den Pins habe (parallel).
Hab grade meinen SPI Takt gemessen, liegt ungefähr bei 250 kHz und in der Software habe ich jetzt fosc/4 also 4 MHz eingestellt.
Sieht mir irgendwie so aus, als würde der interne 1 MHz Takt des ATMega32 laufen, obwohl ich in meinen Fuse Bits External Cristal / Resonator High Frequency 1111 11 eingestellt habe. Das passt doch, wenn ich einen 16 MHz Quarz an PIN XTAL2 und XTAL1 habe.
Nachdem mir hier leider keiner Antwortet,schreib ich jetzt trotzdem was ich rausgefunden habe. Anscheinend liegt es daran, dass man nicht gleichzeitig die SD-Karte und den ISP an SPI anlegen kann, jetzt hab ich die SD-Karte mit dem Transistornetzwerk abgemacht und ISP geht wieder.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.