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!
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
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.
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
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.