SD-Karte funktioniert bei PIC24fj128gb010 aber nicht beim Pic24fj256gb410

OP #4541549
Lesenswert?
• ▲
▼
Hallo zusammen,

ich habe meinen PIC24FJ128GB010 mithilfe der MLA (Microchips Library for 
Application) bzw der FILEIO-Library dazu bringen können Daten auf eine 
SD-Karte zu schreiben und auslesen zu können.

Jetzt möchte ich das selbe Programm auf dem PIC24FJ256GB410 zum laufen 
bringen. Da der Controller Audio Codec supported, verwende ich im 
Gegensatz zum anderen Controller den drv_spi_16bit_v2.c Treiber.

Neben einem anderen Treiber musste ich die Configuration Bits anpassen. 
Ansonsten ist alles gleich (abgesehen davon das die Pins diesmal mit PPS 
auf die GPIOs gemappt wurden). Auch die Hardware ist gleich.

Leider Funktioniert weder das Schreiben noch das Lesen.
Beim Debuggen konnte ich festellen, dass die nachfolgende Bedingung 
(CMD0) (aus der sd_spi.c Datei) erfüllt ist:

if(response.r1._byte != 0x01) //Check if card in idle state now.

und aus diesem Grund ein Initialisierungsfehler zurückgegeben wird.

Zum Programmieren verwende ich das Explorer 16 Board mit den oben 
genannten Controllern als PIM und einen ICD3 Debugger.

Als Entwicklungsumgebung dient MPLAB X IDE  v3.26 mit einem 
XC16-Compiler v1.26.

Da ich hauptsächlich die Config Pins verdächtige, sind diese im Anhang 
zu finden.


Ich hoffe jemand hat eine Idee woran es liegen könnte und kann mir 
helfen.
Schon mal vielen Dank im Voraus!
Angehängte Dateien:
#4541990
Lesenswert?
• ▲
▼
Hallo,
vermutlich hier:
-------------------------------------------
Ansonsten ist alles gleich (abgesehen davon das die Pins diesmal mit PPS
auf die GPIOs gemappt wurden.
------------------------------------------
Einfach mal messen (Oszi) ob die Signale auch aus dem PIC kommen.

Gruß Gerhard
OP #4542550
Lesenswert?
• ▲
▼
Hallo Gerhard,

zunächst einmal Danke für deine Antwort.

Ich habe am Controller mit einem Oszi nachgemessen.
An allen Pins (SCK, SDO, SDI,CS) liegt nichts an!

Bei meinem alten Controller dagegen konnte ich die Signale sauber 
messen.

Wie gesagt, eigentlich habe ich abgesehen von den Configs und der 
Pinbelegung nichts verändert.

Ich hänge meine Pinbelegung mal mit in den Anhang.

Ich bin wirklich für jede Idee dankbar.
Angehängte Dateien:
#4548763
Lesenswert?
• ▲
▼
Hallo,
die IO's sind immer analog und müssen auf Digital gestellt werden 
(zumindest bei denen die diese Funktion haben).
Hast du aber so wie ich sehe bereits gemacht. Schau dir nochmals das 
Mapping an. Nicht jeder IO kann für jede Funktion genutzt werden. Gerade 
bei den Kommunikationsschnittstellen (SPI, i2C, UART) gibt es da 
Einschränkungen.

Hier hilft dir das Datenblatt weiter.

Gruß Gerhard

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.