- LiTime Speicher und Akkus         
Ergebnis 1 bis 9 von 9

Thema: 8-Bit PIC und SD Karte

  1. #1
    Erfahrener Benutzer Roboter Genie Avatar von oderlachs
    Registriert seit
    17.05.2010
    Ort
    Oderberg
    Alter
    73
    Beiträge
    1.175
    Blog-Einträge
    1

    8-Bit PIC und SD Karte

    Anzeige

    Praxistest und DIY Projekte
    Hallo Freunde !

    Wieder einmal stehe ich auf meinem Weg den PIC zu beherrschen wie ein "Ochs vorm Neuen Tor"

    Es geht mir darum,Sensor Messdaten auf eine SD Karte in eine Datei zu schreiben. Irgendwie finde ich mich mit dem Handling nicht zurecht, wie ich dem Prozessor PIC16F877A bei bringen soll Daten in eine Datei zu schreiben.
    Ich habe das web rauf und runter "gelesen" bin aber nicht so recht fündig geworden. Da ich den XC-8 Compiler von Microchip benutze, ist das wohl auch ein Nachteil gegenüber den Nutzern von MicroC für PIC.

    Nun bin ich gerade dabei eine SD-Librarie für den 8051 passend zu machen, aber ob ich damit mal Dateien(.cvs) schreiben kann... ??

    Mein ExperimentierBoard ist dieses Hier

    Hat vielleicht jemand eine Starthilfe für mich im Nähkästchen und würde mir damit weiterhelfen können ??

    Gruss und Dank

    Gerhard
    Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    66
    Beiträge
    2.435
    Hallo Gerhard,

    Du hast da 3 Probleme:
    1. Du brauchst einen Treiber um die SD-Karte anzusteuern. Ganz vereinfacht funktioniert eine SD-Karte so ähnlich wie ein I2C-Bus, die Daten werden seriel nach einem Protokoll übertragen.
    2. Dann musst du irgendwie die Daten auf der SD-Karte organisieren. Soll die Karte auf einem PC ausgelesen werden können, musst du ein Dateisystem, wie z.B. FAT verwenden, welches der PC lesen kann.
    3. Das .CSV-Format ist dann eine weitere Geschichte.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    707
    Zitat Zitat von Peter(TOO) Beitrag anzeigen
    Ganz vereinfacht funktioniert eine SD-Karte so ähnlich wie ein I2C-Bus, die Daten werden seriel nach einem Protokoll übertragen.
    Genauer gesagt ist es SPI. Damit laufen die Karten gewissermaßen im Minimalbetrieb, nicht alle Pins werden verwendet. Sieht aus, als ob das auf diesem Board schon alles fertig verschaltet ist.

    Wahrscheinlich brauchst du einen ganzen "Software-Stack", auf dem Treiber für den SD-Kartenzugriff sitzt dann noch der FAT-Treiber. Es gibt unterschiedliche FAT-Varianten, die auch nicht alle mit Karten jeder Größe, Unterverzeichnissen oder gar langen Dateinamen umgehen können. Dann müssen noch die Dateifunktionen aus der C-Laufzeitbibliothek mit dem FAT-Treiber verheiratet werden.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    Haha ja das habe ich mir schon einmal per Hand angetan und dann schnell nach einer Lib gesucht ... bis zum Sektorenlevel macht das noch Spaß denn der Bus und die Befehle sind relativ simpel(vergleichbar mit einem SPI Flash Chip), beim Dateilevel würde ich ernsthaft aufhören
    wie ich dem Prozessor PIC16F877A bei bringen soll Daten in eine Datei zu schreiben.
    Wo stehst du denn schon? Hast du schon Sektor-Level erreicht oder bekommst du nach garkeine Kommunikation mit der SD-Karte? Ich könnte mal versuchen meine alten tutorials dazu rauszusuchen mit denen ich das damals gebaut habe. Aber ernsthaft bei einer Datei hört der Spaß wirklich auf. Master Boot Record lesen, File Table lesen, Anfang der Datei finden Sektor laden, umschreiben, auf Sektorüberlauf prüfen, SEktor zurückschreiben und nächsten Sektor finden ... das ist alles JENSEITS von einfach
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578
    Hi,

    ich habe vor einiger Zeit (ca 1 Jahr) meine eigene Implementation von Hardware-Level und Fat32 (für Micro SD-HC) geschrieben. Das ganze hat den Vorteil, dass es bei mir periodisch (jede 1ms) aufgerufen wird und max ein paar µs braucht (auf STM32F4 @ 168MHz). Es gibt zwei Layer (SD-Communication und FAT32), sodass man in der FAT-Implementierung nur die Hardware-Befehle austauschen muss, um es auf anderen System lauffähig zu machen. Es können Dateien, geöffnet, erstellt und gelöscht werden, natürlich auch geschrieben. Lesen ist momentan noch nicht Implementiert, weil ich die Karte nur als Datenlogger nutze. Habe mittlerweile über 100000 Dateien damit erstellt und beschrieben, jede einzelne war am PC problemlos lesbar!
    Falls Interesse besteht, würde ich es hier reinstellen, würde mir wsl auch was bringen, wenn andere mal darüberschauen.

    Gruß
    Chris

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von oderlachs
    Registriert seit
    17.05.2010
    Ort
    Oderberg
    Alter
    73
    Beiträge
    1.175
    Blog-Einträge
    1
    Hallo ,
    vielen Dank für alle Eure Bemühungen mir zu helfen.
    Ich muss nun erst mal sagen , das ich in Sachen SD-Card und FAT totaler Neuling bei den PIC's bin. Für den Arduino gab/gibt es ja vorgefertigte Libs und Beispiele das man sich gar keinen Kopf weiter machen musste.
    Ich habe ja zum Board einige Programmbeispiele mit bekommen, die sind hier in einer Zip-Datei zu finden.
    Ich kann an Hand des SD Beispiels, auf Blöcke/Sektoren Daten schreiben und lesen..aber das ist ja keine Dateiverwaltung ähnlich FAT.

    Ich dachte ja nicht das es unter PIC so schwer ist damit was in Sachen SD-Card Speicher auf die Beine zu stellen. Vielleicht komme ich ja noch dahinter wie ich es lösen kann.

    Habe auch ein funktionierendes MPLAB-X Beispiel gefunden, aber leider nur mit einem anderen PIC möglich.
    So "PIC-Intern" bin ich noch nicht bewandert, um das vielleicht umzuschreiben. nun kommt Zeit kommt Rat....und vielleicht auch der Entschluss die Finger davon zu lassen

    Die Auswertung der Klimadaten per PC dann , ist ja an die Dateien gebunden(Exel o.ä.).

    Melde mich wieder wenn ich weiter bin oder "die SD-Card ins Korn geworfen habe."

    Gruss und Dank Gerhard
    Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    03.09.2009
    Ort
    Berlin (Mariendorf)
    Beiträge
    1.023
    Gerhards PIC hat maximal 8k RISC-Befehle für die FAT-Software, natürlich abzüglich dessen, was die Anwendung noch benötigt.
    Kann mal einer der Erfahrenen eine Abschätzung geben ob das überhaupt erfolgversprechend ist?

    Vielleicht wäre ja eine reine sequentielle Massenspeicherung Sektor für Sektor seitens des Loggers und als Gegenstück ein Ausleser mit UART-Schnittstelle zum PC ... auweia, ich höre schon die Buh-Rufe ... war ja nur so eine Idee.

    - - - Aktualisiert - - -

    Zitat Zitat von oderlachs Beitrag anzeigen
    Habe auch ein funktionierendes MPLAB-X Beispiel gefunden, aber leider nur mit einem anderen PIC möglich.
    Sag doch mal, für welchen PIC, damit man sehen kann ob das eine andere Liga ist. Wenn das Beispiel allerdings für einen 24er oder 33er ist, dann Gute Nacht.

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von RoboHolIC Beitrag anzeigen
    Gerhards PIC hat maximal 8k RISC-Befehle für die FAT-Software, natürlich abzüglich dessen, was die Anwendung noch benötigt.
    Kann mal einer der Erfahrenen eine Abschätzung geben ob das überhaupt erfolgversprechend ist?
    Kann ich nicht abschätzen, halte es aber für problematisch. Wollte mal schnell nachsehen, wie viel RAM der hat, und stoße als erstes auf: Not Recommended for new designs. Mit seinen 368 Bytes könnte es sehr mühsam werden. Ich würde abraten es zu versuchen.

    Vielleicht wäre ja eine reine sequentielle Massenspeicherung Sektor für Sektor seitens des Loggers und als Gegenstück ein Ausleser mit UART-Schnittstelle zum PC ... auweia, ich höre schon die Buh-Rufe ... war ja nur so eine Idee.
    Wäre ein Ansatz. Die Datensätze so formatieren, daß einer oder mehrere glatt in einen Sektor passen. Wobei die SD Karten heutzutage so groß sind, daß man sich auch einen Datensatz pro Sektor leisten kann. Unter Linux kann man die Karte dann als RAW-Device mounten (geht IMHO auch mit Windows) und ganz entspannt auf dem PC weiterverarbeiten.

    Ich würds aber eher anders lösen: die Daten mit einem ESP per WLAN live zu einem Server in meinem Netz schicken und dort speichern und weiterverarbeiten. So ein ESP-01 läßt sich mit seiner 8-poligen Stiftleiste leichter kontaktieren als ein SD-Karten Sockel und kost auch noch weniger.

    @Gerhard

    Wenn du es mit den PICs etwas leichter haben willst, nimm keine mit einer 3-stelligen Typnummer. Die sind zu alt, d.h. sie haben knappes RAM, knappes FLASH und sind langsam. Nimm etwas mindestens vierstelliges. Ich selbst bin inzwischen fast vollständig zu den 16 Bittern (PIC24) übergegangen. Da hat man dann leicht 16k RAM und 32k Code. Kosten tun sie auch nicht mehr. Man kann sich dann beim Programmieren voll auf die Funktion des Programms konzentrieren und muß nicht dauernd an RAM oder Speed denken.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  9. #9
    Erfahrener Benutzer Roboter Genie Avatar von oderlachs
    Registriert seit
    17.05.2010
    Ort
    Oderberg
    Alter
    73
    Beiträge
    1.175
    Blog-Einträge
    1
    Hallo Freunde !

    Recht herzlichen Dank für Euer Mitdenken und Hilfe. Ich glaube fast, das ich das Projekt, so wie ich es mir gedachte nicht durchführen kann. Mir ging es mit auch darum die Chips PIC16F877A irgendwie nutzbringend einzusetzen. Da sie ja einen grossen Temperaturbereich haben wollte ich sie im Klimalogger einsetzen.
    Ich habe mich mal mehr auch mit dem Datenblättern befasst, es gehört eine menge Umdenken dazu vom AVR auch PIC umzusteigen , schon von den Datenblättern her. Nicht mal die BIT-Breite ist ja angegeben, um heraus zu bekommen welche meiner Chips 8 Bit oder 16 Bit sind musste ich erst bei Mouser.com "nachfragen" weil dort jeder Chip dahingehend beschrieben ist.
    Nun ich bin eben noch Anfänger....
    Ja und warum ich mich auch bei diesen DIL 40 Pinnern festhalte, weil ich dafür ein Entwicklerboard besitze...mit der vielen Peripherie drum herrum.
    Andere Chipformen könnte ich auch gar nicht auf eine Lochrasterplatine löten, was anderes kommt nach meinen Möglichkeiten erst gar nicht in Frage. In meinem Alter will ich nur nicht im Kopf einrosten und weil's mir Programmieren Spass macht.
    Es verlohnt sich einfach nicht, noch viel Neues und auch Teures, wie Entwicklerboards usw. anzuschaffen....
    @Klebwax:
    Ich habe mich mal bei den 16-Bittern umgeschaut, so wie ich es beurteilen kann, gibt es da keine 40DIL Formen....
    Na vielleicht wenn die Rente besser wird und Weihnachten vor der tür steht...kommt doch noch ein 16 Bit Entwickler-Board ins Haus....man raucht und trinkt ja nicht...
    Für mich , d.h. wegen der Augen und Finger, käme fast nur noch eines mit Nullkraftsockel in Frage...wo schon vieles nicht in Frage kommt....
    Auch die Möglichkeit mit ESP-01 per WLan...ich kenne das, aber im Garten ist weder WLan noch anderes Netzwerk...und gerade im Winter muss es auch die "östlichen Temperaturen" hier an der Oder abkönnen.

    Warten wir ab, vielleicht finde ich ja noch ne Lösung...bei AVR habe ich auch nicht alles von heute auf morgen gemeistert, alles kann ich sowie so nicht...

    Gruss und Danke

    Gerhard
    Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint

Ähnliche Themen

  1. PCI Karte
    Von Attiny im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 4
    Letzter Beitrag: 04.04.2008, 23:26
  2. SD Karte
    Von Feratu im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 22
    Letzter Beitrag: 03.04.2008, 00:31
  3. SPI Bus und SD Karte
    Von geronet im Forum AVR Hardwarethemen
    Antworten: 0
    Letzter Beitrag: 16.03.2007, 20:31
  4. SD-Karte oder CF-Karte?
    Von Johannes G. im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 22.08.2006, 13:28
  5. SD Karte
    Von nevermind im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 7
    Letzter Beitrag: 06.04.2006, 10:30

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiTime Speicher und Akkus