www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem mit MIKROFAT16 und Zuordnung der SPI Anschlüsse


Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du mußt die defines schon an deine Hardware anpassen. SS kann als 
normaler ausgnag im SPI Modus verwendet werden, aber auch jeder ander 
I/O Pin kann seine Funktion übernehmen. Probiers mal dort die für deine 
Hardware passenden Pinnummer einzutragen und dann neu zu kompilieren.

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Probiers mal dort die für deine Hardware passenden
>> Pinnummer einzutragen und dann neu zu kompilieren.

CS der Karte (Pin 1 bei SD Karten) liegt (über Pegelwandler) an PP4. 
Habe schon beide (siehe oben) Arten des defines probiert. Die Karte 
(auch schon mehrere versucht) wird nicht initialiesiert...

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Da MIKROFAT16 ursprünglich für einen ATMEGA644 geschrieben ist, ich > aber "nur" 
einen ATMEGA644p habe,

lt. Datenblatt haben die doch eine völlig identische Pinbelegung...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.