Gast
#1147364
Hallo ich möchte mit einem ATMega??? eine SD Karte beschreiben. Dazu habe ich mit die Bibliothek MIKROFAT16 von www.mikro-control.de heruntergeladen und die entsprechende Harware aufgebaut. Letztere scheint zu funktionieren, die SD-Karten Software von Ulrich Radig läuft damit (und einem ATMega32). Da MIKROFAT16 ursprünglich für einen ATMEGA644 geschrieben ist, ich aber "nur" einen ATMEGA644p habe, habe ich die "#if defined (_AVR_ATmega644_)" in "#if defined (_AVR_ATmega644P_)" geändert. Bitte belehrt (und schlagt mich nicht:-) mich, wenn das so nicht geht. Ich dachte, da wäre kein relevanter Unterschied zwischen den beiden. Dann lies sich alles schon mal in AVR Studio compilieren und auf den ATMega644p meines STK500 schieben. Auf die Karte schreib es aber nichts... Ich habe mich nun Schritt für Schritt durch den Programmablauf gehangelt und div. Kontrollausgaben (über das UART, funktioniert) eingebaut. Dabei hänge ich gerade bei der Initialiesierung der SD Karte bzw. schon einem Schritt vorher beim init der SPI. In der headerdatei steht: #if defined (_AVR_ATmega32_) #define SPI_DI 6 #define SPI_DO 5 #define SPI_Clock 7 #define MMC_Chip_Select 3 #define SPI_SS 4 #endif #if defined (_AVR_ATmega644P_) // das "P" stammt wie o.g. von mir #define SPI_DI 6 #define SPI_DO 5 #define SPI_Clock 7 #define MMC_Chip_Select 4 #define SPI_SS 3 #endif Also die letzten beiden Zeilen sind beim ATMega32 bzw. ATMega644(p) vertauscht. Wenn ich aber in die Datenblätter von ATMega32 bzw. ATMega644(p) schaue, liegt dort (SPI_)SS bei beiden auf PB4. So ist auch meine Hardware verdrahtet. Kann mir jemand weiterhelfen? Gruß Ralf