USB Stick mit PIC ansprechen

Gast #215993
Lesenswert?

Hallo,
ich habe einen PIC 182455 und wolle mit der vorhanden USB Schnittstelle
Daten in einen USB-Stick speichern( z.B Textdatei) und dann unter
Windows dieser Auswerten...

Hat einer schon mal in der hinsicht Erfahrung sammeln können, wieviel
Aufwand diese USB Programmierung erfordert?

Danke!

Marco Hanses
Gast #215996
Lesenswert?

Man könnte den Pic in einen PC einbauen und damit denn den Stick
beschreiben. Dann könnte man sich den PIC aber auch gleich sparen.

Das Zauberwort heisst "USB-HOST".

Die meisten Controller mit USB-Anschluß sind dafür gedacht, ein
USB-Slave zu realisieren.

Um einen USB-Host zu bauen, benötigt man etwas/wesentlich mehr Aufwand
(softwareseitig).

Irgendwie vermute ich, dass alle Leute irgendwas mit USB machen wollen,
seit dem es bei Aldi ein Autoradio mit USB-Stick-Anschluß gibt.
Gast #216001
Lesenswert?

Du brauchst nicht nur nen USB-Host, sondern noch das gesammte
Mass-Storage-Gebammel. Wenn USB-Host schon sehr schwer ist (hat mal ein
Japaner auf einen AVR gedrückt, allerdings nur für USB-Maus), dann ist
MassStorage mit allem drum und dran absolut unmöglich.

Klug ist, wer weiss, wann er aufgeben muß. Nebenbei soll sich dein

Controller ja auch noch um Filesystem usw. kümmern, eine sinnvolle
Tätigkeit braucht vermutlich ebenfalls noch Rechenzeit, oder genügt es
dir ein Byte zu schreiben und es dann periodisch wieder auszulesen?

USB-Host vielleicht mit einem 20MHz-AVR und Assembler, aber MassStorage
niemals.

Schliess einfach eine CF, SD-Card oder noch einfacher MMC-Card direkt
an deinen Controller. Wenn du eine Sandisk Ultra-II-Plus SD-Card nimmst
brauchst du nicht einmal einen USB-Reader (hat er eingebaut - geniales
Ding)!
Das ist im Gegensatz zu deinem Vorhaben geradezu trivial.

jörn
Gast #216003
Lesenswert?

Hallo,
ok das mit dem USB Stick ist glaube schwachsinn!

Der Weg mit der SD Karte ist glaube ich ne ganze ecke einfacher..

Wie kann ich dieses denn realisierten?
Ansteuern mit RS232 Signal?
Gibt es ein Schema für die Programmierung der Datenspeicherung?

Danke!
Persönliche Seite #216006
Lesenswert?

@Hotte: Das ist ein Missverständnis. Der von Dir zitierte Link (Keil)
ist die Implementierung eines USB Mass Storage Devices mit einem ARM,
der über einen USB Device Controller verfügt.
Das bedeutet eben nicht, daß man USB Mass Storage Devices mit diesem
ARM ansprechen kann, sondern daß dieser ARM sich wie eines verhält
(wenn auch mit lächerlicher Speicherkapazität).
Gast #216007
Lesenswert?

Wenn es ganz einfach sein soll, dann ist es gar nicht erforderlich ein
Filesystem zu implementieren in den Controller.

Einfach vorher formatieren die Karte, dann eine Datei darauf ablegen,
die man vom PC aus nicht löscht, oder verändert (!!!) sondern nur
liest.
Dann guckt man (z.B. mit WinHex), wo die Datei genau liegt, also
welcher Sektor und wie lang sie ist.
Die Datei kann z.B. einfach nur Nullen enthalten - vielleicht mit einer
eindeutigen Kennung am Anfang und am Ende der Datei (Textstring).

Der Controller prüft nun einfach, ob die Datei, in dem Sektor, wo sie
fest liegen soll vorhanden ist und ob die Kennung stimmt. Danach
schreibt er einfach munter in die Datei rein, ohne sich um Dateinamen
und Filesystem zu kümmern!

Die Datei kann natürlich z.B. 128MB oder sogar 1GB groß sein kann, also
die ganze Karte ausfüllen - dann besteht auch keine Gefahr, dass sich
etwas an dem Dateisystem verändert.

So kann man extrem einfach Daten mit einem PIC oder AVR ablegen und das
Auslesen der Daten ist auch fast trivial. Man muß einfach nur die Datei
öffnen und die Daten auslesen.

Es bleibt einem natürlich frei gestellt, innerhalb der Datei sich eine
feste Ordnung ähnlichen einem Dateisystem auszudenken.

Temperaturdaten oder so was ähnliches kann man sogar als echten Text in
der Datei ablegen. Wenn man diese Datei jetzt z.B. daten.txt nennt, kann
man die Daten sogar am PC ohne spezielle Software auslesen, also einfach
mit jedem Texteditor oder doppelklick.

jörn G
Gast #737454
Lesenswert?

Dass Ihr Euch imemr so in diese Hosen macht wegen USB...
Nimm einfach den VNC1L. Kostet unter 10 Euro und macht dir komplett 
alles. Du kannst alle möglichen Platten und Sticks über USB lesen und 
beschreiben.
Gast #897607
Lesenswert?

...was ist denn an dem massdata storage kram so komplex?

gibts es bibliotheken um ein massdata storage device auf der basis 
anszusprechen, über die es auch ein fs unter windows macht?

wenn ich zb einen stick habe und eine api mit der ich den bereich/layer 
usb am pc bedinen kann (endpunkte öffnen, geräteklasse festlegen usw..) 
was müsste ich senden um einen (sektor oder ein bestimmtes byte aus dem 
stick zu lesen?)

für mich wäre dies protokoll interessant.


grob:

-lösche datei
-lege datei an
usw...
  .------------.
  |  filesystem|
  '------------'

-schreibe ab sektor adresse
-lese ab sektor adresse

  .--------------------------.
  |  massdata storage device |    <<gesucht, wie wirds in den usb strom
  '--------------------------'      verpackt?

-usb device open
-schreibe buffer über pipe a
-lese buffer über pipe b

  .--------------------------.
  |  usb api                 |
  '--------------------------'

windows spezifisches geschlunze zt aus kernel32
-create device....

gruß,
whitenoise
Gast #915813
Lesenswert?

@Jo,

danke für den hinweis, ich schaue mich dort gerade um, ich benötige die 
volle usb geschwindigkeit, des weiteren benötige ich den passenden host 
treiber, also ein treiber der eben eine api zur verfügung stellt, über 
die ansonsten auch ein filesystem mit einem externen über usb 
angeschlossenen speicher spricht...

gruß,
w.
Gast #1048981
Lesenswert?

ich wollte Daten mit dem PIC auf eine SD Karte schreiben(Format.txt
oder ähnliches)und diese dann in Windows einlesen und bearbeiten...

Hi, zumindest CF Karten auslesen ist mit PICs kein Problem, wie diverse 
PIC MP3player z.b. auf http://elektronik.kai-uwe-schmidt.de/ zeigen.
Von Microchip git es auch Appnotes zum Thema Filesysteme, 
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en532040
desweiteren werden von Microchip Webseminare zum Thema USB 
(host)angeboten, 
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2651&param=en534463

Interessant ist dann auch Microchip AN1189
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en536602

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren