SD-Karten Benutzung

Begonnen von ^Cobra, 21.04.2022, 14:41:14 CEST

⏪ vorheriges - nächstes ⏩

^Cobra

Hallo zusammen,

mir kam grade der gedanke das es doch "einfach" wäre eine SD mit Daten zu füttern (ich dachte an gCode bzw. Strings, also TextDateien die man am PC erstellt und der PIC sie verarbeiten kann.
Ich habe auch grade ein Beitrag gefunden wo wer anscheind damit schon was gemacht wurde. Will keine Namen nennen, aber PICkel weiß bescheind :P.

Laut wiki hat die SD Karte ein SPI Bus. Konnte aber nicht herrausfinden wie man sowas angeht. Es wäre schön wenn sich jemand bereit erklären würde mir/uns das zu erläutern.

Danke euch
Cobra

^Cobra

#1
Zitat von: ^Cobra am 21.04.2022, 14:41:14 CESTHallo zusammen,

mir kam grade der gedanke das es doch "einfach" wäre eine SD mit Daten zu füttern (ich dachte an gCode bzw. Strings, also TextDateien die man am PC erstellt und der PIC sie verarbeiten kann.
Ich habe auch grade ein Beitrag gefunden wo wer anscheind damit schon was gemacht wurde. Will keine Namen nennen, aber PICkel weiß bescheind :P.

Laut wiki hat die SD Karte ein SPI Bus. Konnte aber nicht herrausfinden wie man sowas angeht. Es wäre schön wenn sich jemand bereit erklären würde mir/uns das zu erläutern.

Danke euch
Cobra

EDIT: habe grade etwas gefunden:

Bin noch am lesen aber denke ist schonmal ein guter Einstieg.


ADMIN: Beide Links funktionieren nicht. Bitte korrigieren !!

PICkel

#2
Hallo ^Cobra!

Ja, ich habe mit SD-Karten gearbeitet zum Einlesen von NC-Programmen in meine selbstprogrammierte Steuerung. Schreiben auf SD habe ich nicht getestet. Allerdings programmiere ich mit mikroBasic auf PIC18.

Falls Dir das etwas nützt, helfe ich gerne.

Gruß
PICkel

Edit: Ich sehe gerade, dass Du Ähnliches vorhast. Das könnte die Sache vereinfachen.

^Cobra

Moin,
danke für die schnelle Antwort.

Nun ich hätte intresse es in beiden Richtungen hinzukriegen. Mehr aus intresse :P
mikroBasic Kenne ich garnicht. Habe mal C Angefangen aber durch Beruf (SPS Programmierung)
verlier ich den Durchblick. Daher ist bis jetzt für PIC nur Assembler zum Einsatz gekommen.
Was bis jetzt auch immer gereicht hat. Bis jetzt konnte ich nur fertige Libs usw. finden.
Ist ansich ja super, daruch hab ich es aber schwer zu verstehen wie es genau Funktioniert.
Verwendeust du ebenfalls fertige Libs oder hast du den gesamten Code selbst erstellt?

PICkel

#4
Naja,
Ohne hier in ellenlange vielleicht uninterresante Monologe abzuschweifen:

Ich habe in meiner kleinen NC-Steuerung die Möglichkeit, 3 Programme abzuspeichern (EEPROM und FRAM). Die müssen per PC über eine 8Bit-Schnittstelle (Centronics) eingespeichert werden. Bald wurde mir das zu aufwändig, weil ich keinen PC dauerhaft am Arbeitsplatz habe wegen Dreck und Platz.
Deswegen habe ich einen Adapter gebaut, der die Programme von der SD-Karte ausliest und auf die Steuerung Zeile-für-Zeile überträgt mit 8Bit-Datenbreite über die Centronics-Schnittstelle.
Das Protokoll ist dabei selbstgemacht und recht einfach.

Die SD-Bibliotheken habe ich übernommen, weil diese doch sehr aufwändig zu programmieren sind.
Das Programm kann:
- Verzeichnisinhalte und Unterverzeichnisse auflisten (FAT16 (Naja...) und FAT32)
- in Unterverzeichnisse wechseln und diese auflisten usw...
- Auswahl über Drehgeber
- Anzeige 3-zeilig mittels EA-DOGM (war günstig bei Pollin)
Bei Interesse kann ich einige Fotos davon machen.

Hardware: PIC18 @5V und Pollin SD-Adapter mit Pegelanpassung auf 3,3V.

Thema mikroBasic (www.mikroe.com):
Ich habe beruflich (bin jetzt 71 i.R.) mit mehreren Programmiersprachen zu tun gehabt: C, dBase/Clipper (Datenbanken), FORTRAN, Basic. Von allen war mir C zu kryptisch/unleserlich.
Ich bin deshalb bei Basic geblieben. ASM ist mir zu umständlich ggü. Programmiersprachen außer es geht um genaues Timing, z.B. WS2812-LEDs.
mikroBasic war deshalb meine Wahl, war aber als Vollversion nicht gerade preiswert. Als Testversion bis 2k Programm ist es kostenlos.

Gruß
Johannes
alias PICkel










^Cobra

Puh das hört sich schon nicht so einfach an wie ich dachte... Schade.


Muss gestehen das ich noch nie eine
Bibliotheken benutzt habe. Da ich bis jetzt recht einfache Dinge umgesetzt habe wars nie nötig. Anscheind führt nun aber kein Weg dran vorbei. Mich würde es interessieren wie viel Speicher sowas verbraucht. Da Bibliotheken meist mehr bietet als man braucht wird der Speicher doch unnötig voll gestopft?
Werde mich damit wohl länger beschäftigen. Aber ich finde das ist ein interessantes Thema.
Danke für die infos

Sascha
Alias cobra

Peter

Hallo
Irgendwann wird es natürlich sehr komplex solche Programme in Assembler zu schreiben.
Da ist es dann einfacher eine andere Sprache zu nehmen z.b C oder Basic usw. Da kann man dann
auf vorhandene Bibliotheken zugreifen, die das Programmieren vereinfachen können. Natürlich wird dadurch
der Speicher mehr belegt, was aber daran liegt das man die Libs (Library) so programmiert, das man sie einfach
handhaben kann. Wenn man sie selber programmiert dann kann man auch die Libs kleiner halten und nur das rein
machen was man selber braucht als Programmcode. Aber ehrlich gesagt, soviel mehr Speicher brauchen die Libs
auch nicht und wenn es mal knapp werden sollte dann nimmt man einen PIC mit mehr Speicher.
Ich hab mal geschaut was ein Programm für eine SD Karte braucht. Für einen PIC 24 sind es ca. 3KByte.
Das würde vielleicht noch in Assembler gehen. Aber z.B wenn du einen USB Host programmieren willst, der
würde ca. 48KByte belegen. Ich glaube kaum das das einer in Assembler programmieren will. Machbar ist
natürlich alles. Aber ob sich die Zeit und der Aufwand lohnt, weis ich nicht.
Einfach mal andere Sprachen testen und schauen was einem sonst noch liegt.

vloki

#7
Hi,
Teile der Bibliotheken, welche nicht benutzt werden sollten auch nicht im Programmspeicher erscheinen. Hängt aber unter Umständen vom Compiler und der gewählten Optimierung ab.

Vor einiger Zeit habe ich mal die FatFs Bibliothek von Elm Chan benutzt.
Ist in C, es gibt auf der Seite aber auch allgemeine Infos:

http://elm-chan.org/docs/mmc/mmc_e.html

Irgenwo war da sogar eine Tabelle wie viel Speicher bei verschiedenen Konfigurationen auf verschiedenen Plattformen verbraucht wird. PIC18 leider nicht dabei ;-)

http://elm-chan.org/fsw/ff/00index_e.html
http://elm-chan.org/fsw/ff/doc/appnote.html#memory

Bei Interesse habe ich auch irgendwo noch ein Beispielprojekt für PIC18.

Auch bei zeitkritischen Sachen, wie z.B. WS2812 Kommunikation funktioniert das in einer Hochsprache oft erstaunlich gut, wenn man in der Lage ist den Maschinencode der da ausgespuckt wird zu lesen und z.B. den C-Code dann so anzupassen, dass eben was passendes hinten raus kommt.
MPLABX  XC8  KiCAD

^Cobra

Guten morgen zusammen,
Elm Chan Seite hatte ich ebenfalls gefunden, und auch ein Lesezeichen gesetzt :)
@vloki Über ein Beispiel Projekt würde ich mich sehr freuen. Dann lern ich gleich bisschen C
wenn ich das durch gehe.

Wenn du davon was benutzt hast scheint es ja damit auch zu gehen :P.
@Peter Ja, ich muss mich wohl echt damit mal mehr beschäftigen. Danke für die aufbauung.

pic18

die chan Bibliothek ist in meinem größeren Projekt wo ich schon Jahre lang programmiere eingefügt, sie war zur Erweiterung vorgesehen aber nie getestet. Außerdem habe ich in meinen Pic zu wenig Arbeitsspeicher und den nötigen CS-Port habe ich schon anders benutzt. Es ist auch ein ganz kleines Testprogramm dabei.

Petit FAT File System Module
http://elm-chan.org/fsw/ff/00index_p.html

Petit FatFs on a PIC18
http://jonas.haksberg.net/post/Petit-FatFs-on-a-PIC18.aspx

pic18


^Cobra

Wow. Danke.
Es mag seltsam klingen aber ich kämpfe schon bei der isntallation. :P
MPLAB IDE runter laden ist ja kein Thema, den C Compiler (oder sagen wir irgendeinen) finde ich ebenfalls.
Und dann gehts los. IDE Starten, dieser sagt gleich kein Compiler gefunden, gut klickt man sich ins Menü wie er sagt, sagst scan und es passiert nix...
Man denkt so schwer kann es doch nicht sein aber selbst wenn man es Manuel den Pfad wählt oder den C18 Compiler nimmt, es geht einfach nicht. Bis man so verzweifelt ist das man compiler wieder deinstalliert... PC neu starten, compiler neu installieren, IDE starten, seltsam keine Fehler Meldung das kein compiler gefunden wurde... nach schauen. Oh, da ist ja der C8... scan schlägt fehl. Manuel C16 auswählen. Woah, der geht nun auch o.O. ich bin maximal verwirrt. Aber gut, nun habe ich die v6.00 auf ein PC mit scheinbar 2 C compiler. Ich denke schonmal ein guter Anfang :P. Meine ersten Projekte habe ich im Editor (Notpad) gemacht... Habe nur 2 Projekte in ASM mit IDE gemacht und dies ist leider auch wieder viel zu lange her...
Es mag wirklich an mir liegen aber ich hätte nichts dagegen wenn man ein Video bzw. Anleitung findet was Installation von IDE, Compiler bis zum ersten Projekt (ASM und C) gibt...
Nun gut, jetzt erstmal SPS wieder sagen wo es langgeht, später versuch ich dann mal paar PICs raus zu graben und paar Test dinger zu schreiben.
Danke euch :)

^Cobra

Zitat von: ^Cobra am 21.04.2022, 15:05:01 CESTADMIN: Beide Links funktionieren nicht. Bitte korrigieren !!


Sorry, erst grade gesehen diesen Beitrag.
Habe inzwischen viele Lesezeichen gesetzt. Hoffe das war dieser:

https://web.archive.org/web/20130319132840/http://www.ifas.htwk-leipzig.de/easytoweb/download/D&E_11_2006_Anbindung_von_SD-Karten.pdf

Und dieser:
http://elm-chan.org/docs/mmc/mmc_e.html

Bitte sagen ob dies nun geht.

Schnellantwort

Achtung: In diesem Thema wurde seit 120 Tagen nichts mehr geschrieben.
Wenn Sie nicht absolut sicher sind, dass Sie hier antworten möchten, starten Sie ein neues Thema.

Name:
Verifizierung:
Bitte lassen Sie dieses Feld leer:
Geben Sie die Buchstaben aus dem Bild ein
Buchstaben anhören / Neues Bild laden

Geben Sie die Buchstaben aus dem Bild ein:

Tastenkürzel: Alt+S Beitrag schreiben oder Alt+P für Vorschau