Forum: Mikrocontroller und Digitale Elektronik PIC18F16Q41 SD Karte Über SPI


von Philp (Gast)


Lesenswert?

Hallo zusammen!
ich bestätige mich momentan mit SD Karte Steuerung mithilfe von 
PIC18F16Q41 über SPI Schnittstelle. Ich benutze die vorhandene Libs von 
Microchip (SD Card SPI Driver und FatFs v1.1.0)
Die Einstellung von Clock und SPI habe ich gemacht und habe das 
FatFs_Demo Funktion zum Schreiben verwendet.
Mein Problem ist folgendes
Die SD Karte lässt sich nicht initialisieren und kriege ich einen Fehler 
"FR_NOT_READY"
Nach langer Recherche habe ich festgestellt, dass diese Libs nur mit 
bestimmten PIC-Serien ausgetestet sind, die das MSSP. Dabei kann man 2 
SPIMaster Clock einstellen (400KHz/2MHz) für SlowMode und FastMode.
Stimmt mein Gedanke ?

meine Frage ist, ob jemand mit dem PIC18F16Q41 SD Karte gearbeitet hat.

ICh wäre euch wirklich dankbar

Liebe Grüße

von Philp (Gast)


Lesenswert?

Hallo!
ich weiß, dass es langweiliges Thema ist. Aber wenn jemand Ahnung davon 
hat, wäre ich sehr dankbar

LG
PHil

von Plalf (Gast)


Lesenswert?

Der Thread ist schon etwas alt - aber, falls jemand darüber stolpert: 
Die neueren PIC18-Chips haben eine völlig andere  Konzeption der 
peripheren Module hinsichtlich deren Programmierung. Das erkennt man 
schon anhand der sehr zahlreichen Register, die viele verwirren.

"Alte" Software-Bibliotheken für UART/I2C/SPI können nicht mehr 
verwendet werden. Man muss alle Funktionen völlig neu schreiben, was uU 
ziemlich kompliziert wird, da einfach zu viele Optionen vorhanden sind, 
welche auch kaum dokumentiert sind. Software-Beispiele im Internet 
findet man auch kaum.

Hat man sich einmal in die neuen Konzepte eingearbeitet, dann erkennt 
man auch durchaus Vorteile der neuen Konzeption. Der Bruch mit den 
"alten" PICs ist jedoch unabänderlich da - und es ist mehr als ein 
einfacher Generationenwechsel.

Laßt euch nicht zu sehr von den tollen Ausstattungen (sehr viel 
Flash-Memory, sehr hohe Taktraten, tolle Peripheriemodule, etc) der 
neuen PIC18-Chips verleiten - ihr bezahlt das mit sehr viel Zeit für die 
Neuerstellung einfacher Schnittstellenfunktionen und bekommt dabei ev 
auch noch (mehr) graue Haare.

Für den Hobbyanwender ist dies besonders ärgerlich, da die vielen neuen 
Möglichkeiten nicht oder nur in geringem Umfang benötigt werden.
Man will ja einen Sensor so unkompliziert wie möglich zB per I2C 
ansprechen und die Meßwerte abfragen und keinen überbordenden, schon 
quasi professionellen I2C-Software-Stack kreieren.

Es mag besser sein, bei den "alten" Typen zu bleiben, welche vertraut 
sind und durchaus ausreichende Ausstattungen haben.

von Plalf (Gast)


Lesenswert?

Nun spezifisch zu FATFS: ich habe ein Projekt mit einem PIC18F46K22 und 
einem 3.2" (320x480) ILI9341-TFT-Display mit XPT2046-Touch-Controller 
und integriertem SD-Karten-Modul realisiert - funktioniert gut.

Alle 3 (ILI9341, XPT2046 und SD-Modul) wurden per SPI angesprochen, 
wobei das SD-Modul extra und alleine auf SPI2 lag. Dies deshalb, weil 
das SD-Modul im Vergleich zum Display sehr langsam ist (100-400KHz). Das 
Display selbst lag auf SPI1 (16MHz).

Ich wollte nur ausprobieren, ob das auf dem Display vorhandene 
SD-Kartenmodul auch funktioniert - tut es.

So verlockend eine SD-Karte auch sein mag - sie ist einfach sehr langsam 
und hemmt den Programmfluß v.a. bei raschen Datenerfassungen oder 
Bilddarstellungen. Deshalb bin ich auf ferromagnetische Speicherchips, 
wie zB den FM24W256 (I2C, 256KBit) umgestiegen. Irre schnell (keine 
Pages, KEIN Zeitverlust beim Beschreiben, egal, wie schnell geschrieben 
wird) und zuverlässig (habe welche schon jahrelang im Freien in 
Betrieb). Es gibt Versionen mit I2C und mit SPI (schneller) mit 
Speicherkapazitäten bis einige Megabit. Ist die Datenerfassung beendet, 
holt man sich die Daten vom Speicherchip per UART, WLAN oder Funk auf 
den PC und kann sie dort weiterverarbeiten.

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
Noch kein Account? Hier anmelden.