Hallo! Hat jemand von Euch schon mal an einem dsPIC33FJ128GP710 MMC/SD-Karten zum Laufen gebracht, die via SPI angebunden ist? Hintergrund: Ich verwende hier ein Mikroelektronika LV24-33A-Board. Dieses wird mit einem PIC24FJ96GA010 ausgeliefert. Ein Beispiel für den Mikroelektronika C-Compiler für dsPICs läuft auf diesem MC relativ problemlos (Beispiel MMC_Fat15_Example.c, frisch-formatiertes FAT-Dateisystem auf der Karte notwendig). Wenn ich den dsPIC33 verwenden will, bekomme ich keine SD-Karte initialisiert. Danke und Gruß PeFi
Peter Fischer schrieb: > Hat jemand von Euch schon mal an einem dsPIC33FJ128GP710 MMC/SD-Karten > zum Laufen gebracht, die via SPI angebunden ist? Ja.
Hallo Benedikt! Das war eine kurze und knappe Antwort. :-) O.k., anders formuliert: Was ist zu tun, damit ich a) die CPU richtig konfiguriert habe und b) SPI korrekt angesprochen wird. Ich bitte um Lösungsbeispiele. An der CPU ist ein externer 10MHz-Quarzoszillator angeschlossen. Gruß PeFi
Du musst bei den Pin die Richtung mit den TRIS Registern passend einstellen, und SPI initialisieren:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
Nach dem Init der SD Karte kann man die Taktfrequenz erhöhen indem man den Prescaler verkleinert. Das Senden/Empfangen eines Bytes sieht so aus:
1 | |
2 | |
3 | |
Hallo Benedikt! Danke für Deine Antwort, die mir mit geholfen hat! Auf dem Mikroelektronika-Board LV24-33A ist im Handbuch angegeben, dass alle DIP-Schalter für den MMC/SD-Zugriff gesetzt müssen. So geht z.B. dann das SD-Signal SCK auf RG6 und RB6. Nachdem ich nun die Verbindung zu RB6 ausschaltete und mit Deiner Initialisierungshilfe die SPI2-Schnittstelle startete, konnte ich auf SD- und MMC-Karten zugreifen. Mikroelektronika C Compiler für dsPIC bietet Funktionen an, die die SPI-Schnittstelle initialisieren. Das scheint aber nur dann zu funktionieren, wenn das SPI-Modul disabled ist. Danke! Gruß PeFi
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.