www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik SD-Karte -> µC -> USB -> PC

Autor: Jukkabrother (Gast)
Datum: 03.07.2009 10:13

Hallo zusammen!
Mein Problem ist ein ähnliches wie in diesem Thread (119745), doch ich
wollte mal konkret für mein System nachfragen und nicht nen kalten
Thread aufwärmen...

Also: Mein µC (PIC18LF4620) schreibt mir Messdaten (1KB großes File) auf
ne microSD-Karte (FAT formatiert).
Auf der Platine ist außerdem ein FTDI FT232, der mit meinem mini-USB
Anschluss verbunden ist. Der FT232 ist aber nur mit dem µC verbunden und
hat keine direkte Verbindung mit der SD Karte, falls das eine Rolle
spielt.
Nun will ich eben nicht mehr andauernd meine Karte rausbaun und per
Kartenleser auslesen, sondern am liebsten direkt per USB in Windows auf
die Karte und das File zugreifen.
Würde mich über Tipps freuen, die mich der Lösung des Problems näher
bringen. Vielen Dank schonmal im Voraus.
Autor: gast (Gast)
Datum: 03.07.2009 10:20

und wenn man ein programm schreibt für den PC

du due daten von der SD ließt und über serielle verschickst
das PC programm baut dann wieder eine datei  daraus zusammen
Autor: Zwirbeljupp (Gast)
Datum: 03.07.2009 10:40

Sorry, aber was ist an Deinem speziellen Spezialsystem jetzt so anders
als bei dem in Thread 119745???
(schau mal, man kann hier sogar verlinken:
Beitrag "SdKarte -> µC -> Usb -> Pc")

Den einzigen Unterschied den ich sehe: Du verwendest halt einen
PIC18LF4620. Auch dieser PIC hat kein USB-Interface, alles was in dem
obigen Thread bereits dazu geschrieben wurde, gilt also auch exakt für
Deinen Fall.
Autor: Jukkabrother (Gast)
Datum: 03.07.2009 10:54

oh, entschuldigung herr kluk, dass ich so dum bin... und schön für dich
dass du weißt wie man verlinkt - ich bin halt grad eben erst auf dieses
forum gestoßen und noch nicht so ein forenexperte wie du.

wie gesagt wollt ich keinen alten thread rauskramen und da ich noch ein
paar zusatzfragen hatte, dacht ich mir ich frag nochmal von neuem in die
runde. ich hoffe die anderen nehmen mir das nicht ganz so übel.
sorry, aber bin was das angeht grad bzgl. eines projektes ins kalte
wasser geworfen worden und wohl wahr nicht so ein experte. darum die
nachfragerei...

wie geh ich das problem denn nun konkret an?
ist die hardware ok? kann ich es per software lösen? gibts da schon was
- in dem anderen thread war die rede von ner Mass Storage Application
von Microchip?!
Autor: morph1 (Gast)
Datum: 03.07.2009 11:05

die kannst du vergessen, da dir der FTDI dein usb zu einem seriellen
port macht.


du musst eine software für den pc schreiben der seriell auf dein board
zugreift und du musst die software auf deinem board umschreiben um die
daten über die serielle rauszureichen.
Autor: Christian R. (supachris)
Datum: 03.07.2009 11:58

Da gibts zig Lösungsmöglichkeiten, allerdins kannst du mit dem FT232
keinesfalls einen USB MAssendatenspeicher realisieren, der sich als
Laufwerk im Windows meldet. Dazu brauchts einen SD-Card Controller wie
z.B. den USB2240 von SMSC oder halt einen anderen Controller mit USB
direkt dran, auf dem du dann das MSD emulierst.
Autor: Jukkabrother (Gast)
Datum: 03.07.2009 13:19

Danke schon mal für die Antworten!
Versteh ich das richtig: Entweder ich behalt den FTDI und muss mir ne
komplexe Software für Windows schreiben, um seriell auf die Daten
zugreifen zu können; oder ich tausch den FTDI gegen nen SD-Card
Controller aus, wo ich dann relativ unproblematisch über den USB auf die
SD Karte zugreifen kann!?
Autor: gast (Gast)
Datum: 03.07.2009 13:36

komplexe Software? Naja, das kann so wild nicht sein.

Wenn du den FTDI nicht mehr brauchst geht auch die zweite Variante.
Musst hat den exklusiven Zugriff beider Controller irgendwie umsetzen.
Autor: Jukkabrother (Gast)
Datum: 03.07.2009 14:04

nun ja, der µC würde ja nur drauf schreiben und der SD-C nur auslesen...
Bisher habe ich den FTDI nur gebraucht, um die von einem Sensor
ermittelten und weitere berechnete Daten (die jetzt auf die SD Karte
geschrieben werden) testweise per printf über Docklight auszugeben.
Da das "Endprodukt" aber per USB nur noch dieses File von der SD Karte
auslesen soll - und das am besten von jedem Rechner ohne zusätzliche
Software - wäre wohl das klügste die V2 mit nem SD-Controller
umzusetzen, oder?!
Nichts desto trotz, wie würde denn das Grundgerüst von so einer Software
aussehen?! Ist euch evtl. ein ähnliches, schon gelöstes Beispiel
bekannt?
Oder hat jemand vielleicht doch noch eine andere Idee...
Danke soweit nochmal.
Autor: Zwirbeljupp (Gast)
Datum: 03.07.2009 14:19

> wäre wohl das klügste die V2 mit nem SD-Controller
> umzusetzen, oder?!
Nein! Es wäre am klügsten/wirtschaftlichsten/einfachsten den PIC18LF4620
gegen einen mit USB-Interface (z.B. den PIC18LF4550) auszutauschen und
diesem eine USB-Mass-Storage-Firmware zu verpassen. Dann brauchst Du NUR
den PIC und die SD-Karte. Und am PC wird das Teil dann als Kartenleser
erkannt, ohne zusätzliche Software/Treiber schreiben zu müssen.
Autor: Zwirbeljupp (Gast)
Datum: 03.07.2009 14:25

Noch besser würde sich der PIC18F46J50 eignen. Die J-Serie ist speziell
für den Betrieb bei 3.0 bis 3.6V ausgelegt und hat bei diesen
Betriebsspannungen eine bessere Performance als LF-PICs, verfügt
allerdings nicht über internes EEPROM.
Autor: Christian R. (supachris)
Datum: 03.07.2009 14:30

Jukkabrother schrieb:

> Da das "Endprodukt" aber per USB nur noch dieses File von der SD Karte
> auslesen soll - und das am besten von jedem Rechner ohne zusätzliche
> Software - wäre wohl das klügste die V2 mit nem SD-Controller
> umzusetzen, oder?!

Nur, wenn es ein gewerbliches Unterfangen mit höheren Stückzahlen ist.
Diese Controller gibts für privat nicht und kleine Stückzahlen sind auch
schwer beschaffbar.

Ansonsten MSD in der Firmware eines Controllers mit USB.
Autor: Jukkabrother (Gast)
Datum: 03.07.2009 14:59

also bei farnell würde ich den USB2241 schon finden. in kleinen
Stückzahlen...
Ich bin gerade am überlegen, was dann die einfachere Lösung wäre bzgl.
Schaltun/Platinenlayout: den FTDI gegen den SMSC auszutauschen, oder den
µC zu tauschen...
Autor: Rufus t. Firefly (rufus) (Moderator) Benutzerseite
Datum: 03.07.2009 15:12

> nun ja, der µC würde ja nur drauf schreiben und der SD-C nur auslesen...

Sofern Du die Zugriffe klar voneinander trennst, und zwar dergestalt,
daß bei verbundenem PC der µC keinen Schreibzugriff erhält, geht das.

Das hat damit zu tun, daß auch bei klarer Trennung in Leser und
Schreiber der Leser nicht mitbekommt, daß der Schreiber etwas
geschrieben hat, und bestimmte Datenbereiche im Cache hält, wie z.B. die
FAT oder auch ganze Verzeichnisse. Und damit liest der Leser das, was
zum Zeitpunkt des Verbindungsaufbaus bzw. letzten Cache-Füllens aktuell
war, nicht aber neu hinzugekommene Dateien oder gar Verzeichnisse.
Um das zu synchronisieren, musst Du eine
Laufwerkswechselbenachrichtigung (k.A. wie der genaue Wortlaut geht)
erzeugen, die dem Leser mitteilt, daß er seine Caches invalidieren muss.

Ohne eine solche Synchronisation ist nur entweder-oder-Betrieb möglich:
Entweder Schreibezugriff für den µC oder Verbindung mit dem PC.
Autor: Jukkabrother (Gast)
Datum: 03.07.2009 16:12

> Es wäre am klügsten/wirtschaftlichsten/einfachsten den PIC18LF4620
> gegen einen mit USB-Interface (z.B. den PIC18LF4550) auszutauschen und
> diesem eine USB-Mass-Storage-Firmware zu verpassen.

Ich habe bei uns gerade zufällig noch einen 4550 gefunden. Da er ja mit
meinem bisherigen PIC baugleich ist, müsste das Teil ja ohne große
Umstellungen mit der bisherigen Beschaltung funktionieren?! Die
Verbindung zum mini USB muss halt noch hergestellt werden... muss ich im
datenblatt mal genau nachlesen. aber das werd ich dann mal ausprobieren,
danke.
wegen der firmware: die hol ich mir von der microchip seite und brenn
sie mit meinem brenner auf den µC drauf, wie wenn ich mein programm
draufspiel, richtig?
Autor: holger (Gast)
Datum: 03.07.2009 18:53

>wegen der firmware: die hol ich mir von der microchip seite und brenn
>sie mit meinem brenner auf den µC drauf, wie wenn ich mein programm
>draufspiel, richtig?

Nein, du musst das Gehäuse aufknacken und die Bits
alle einzeln per Hand setzen. SCNR

Du musst dir die Mass-Storage-Firmware ziehen,
und dann mit deinem eigentlichen Programm verheiraten.
Viel Spaß dabei.
Autor: Ralf H. (ralfh)
Datum: 03.07.2009 19:21

Im übrigen sind das zwei verschiedene Paar Schuhe. Zum einen musst Du
dem USB-Gerät die Mass Storage Class beibringen (das gibt es wohl fertig
von Microchip).

Zum anderen musst Du aber auch noch die SD-Card auf die richtige Art und
Weise beschreiben, so dass Windows Dein MSD auch als solches erkennt und
lesen kann - Stichwort: FAT.

Gruß RalfH

Antwort schreiben

Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate

Hinweis: der Originalbeitrag ist mehr als 6 Monate alt.
Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net