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


von Jukkabrother (Gast)


Lesenswert?

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.

von gast (Gast)


Lesenswert?

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

von Zwirbeljupp (Gast)


Lesenswert?

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.

von Jukkabrother (Gast)


Lesenswert?

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

von morph1 (Gast)


Lesenswert?

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.

von Christian R. (supachris)


Lesenswert?

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.

von Jukkabrother (Gast)


Lesenswert?

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

von gast (Gast)


Lesenswert?

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.

von Jukkabrother (Gast)


Lesenswert?

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.

von Zwirbeljupp (Gast)


Lesenswert?

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

von Zwirbeljupp (Gast)


Lesenswert?

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.

von Christian R. (supachris)


Lesenswert?

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.

von Jukkabrother (Gast)


Lesenswert?

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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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

von Jukkabrother (Gast)


Lesenswert?

> 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?

von holger (Gast)


Lesenswert?

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

von Ralf H. (Firma: rahand.eu) (ralfh)


Lesenswert?

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

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.