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 | SPI1CON1bits.CKE=1; |
2 | SPI1CON1bits.MSTEN=1; // Master |
3 | SPI1CON1bits.SPRE=0; // Divide by 8 |
4 | SPI1CON1bits.PPRE=0; // Divide by 64 |
5 | SPI1CON2 = 0x0000; |
6 | SPI1STAT = 0x8000; // enable SPI |
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 | SPI1BUF = data; |
2 | while (!SPI1STATbits.SPIRBF); |
3 | return SPI1BUF; |
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
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.