Forum: Mikrocontroller und Digitale Elektronik USB Stick mit PIC ansprechen


von Marco (Gast)


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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Mit der vorhandenen USB-Schnittstelle geht es gar nicht.

Mehr Informationen hier:
http://www.mikrocontroller.net/forum/read-1-215731.html#new

von Osterhase (Gast)


Lesenswert?

Es gbt kein PIC, der dir diese Möglichkeit eröffnet -> vergiss es!

von Rahul (Gast)


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.

von Schoaschi (Gast)


Lesenswert?

ICh glaube auch das es möglich wäre einen USB-Host zu programmieren,
denn dahinter verbirgt sich doch nur ein haufen Programmierarbeit. Es
sei "ein Haufen" betont ;-)

von Peter Menzel (Gast)


Lesenswert?

@ Schoaschi,

vergiß es, der Programmspeicher reicht auf den meisten µCs dafür bei
weitem nicht aus, die Komplexität ist enorm hoch. - Bau doch lieber ein
Lauflicht!

- Peter

von Schoaschi (Gast)


Lesenswert?

Wenn es Microsoft zusammengrbracht hat, dann sollte es auch möglich sein
selbst so etwas zu machen ;-)(Bin Optimist ;-) )

PS.: Übers Lauflicht bin ich schon drüber hinaus ;-)

von JarJar (Gast)


Lesenswert?

Kauf Dir nen 32 Bit Controller mit eingebautem USB Host und versuch's
damit. Da haste zumindest ne reelle Chance. Auf nem 8 Bit µC mit ein
paar kB Programmspeicher kannste das knicken

von Joern G. (Gast)


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

von Hotte (Gast)


Lesenswert?

Stimmt, mit PIC geht´s nicht.
Aber mit ARM http://www.keil.com/download/docs/307.asp

von Marco (Gast)


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!

von Marco (Gast)


Lesenswert?

Hallo nochmal,

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

Ciao

von Hannes L. (hannes)


Lesenswert?

Dann schau dir doch einfach mal die Beiträge zum Thema in der
Codesammlung an. Ist zwar nicht für PIC sondern für AVR, vermittelt dir
aber das Prinzip und eine Übersicht über den Aufwand.

...

von Rufus Τ. F. (rufus) Benutzerseite


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

von Joern G. aus H. (Gast)


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

von Marten (Gast)


Lesenswert?

Müsste eigentlich gehen, wenn man z.B. das USB interface von elv 
benutzt!

von Michael (Gast)


Lesenswert?

Leichenschänder!

von Frank (Gast)


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.

von Mike (Gast)


Lesenswert?

Wo gibts den VNC1L für unter 10 Euro?

von njp (Gast)


Lesenswert?

ebay

von whitenoise (Gast)


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

von Master S. (snowman)


Lesenswert?

USB-host: wieso gleich einen host und nicht OTG, wenn man nur einen 
USB-Stick ansteuern will -> wie wärs mit einem PIC24HJxxxx mit OTG?

von Rolf (Gast)


Lesenswert?

>> Wo gibts den VNC1L für unter 10 Euro?

> ebay

Hast Du bitte mal einen Link zu einem solchen Angebot? Ich kann bei ebay 
leider überhaupt keine Auktionen zum VNC1l finden...

von Mario (Gast)


Lesenswert?

Das Zauberwort heist USB OTG (On The Go).
Es gibt PICs welche so win OTG Interface haben und auch die nötige 
Software wird von Microchip zur Verfügung gestellt.
Siehe: 
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1486&redirects=USB

von Hans (Gast)


Lesenswert?

VNC1L-0001 für 15,95€
http://shop.strato.de/epages/61400871.sf/de_DE/?ObjectPath=/Shops/61400871/Products/VNC1L/SubProducts/VNC1L-0001

Fertigplatine 20€ + Versand als "VDRIVE1-Vinculum FTDI USB Flash Drive 
interface VNC1L" in eBay

von Jo (Gast)


Lesenswert?

@ whitenoise
SCSI.

Mehr hier:
http://www.lvr.com/mass_storage.htm

Der Vinculum ist elend langsam...Mehr als 40KB/sek habe ich bei Tests 
nicht erreicht. Wenn man nicht unbedingt nen stick ansprechen muss, 
sondern nur Daten speichern möchte ---> SD KARTE.

von whitenoise (Gast)


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.

von Andreas W. (andreasw) Benutzerseite


Lesenswert?

Jo wrote:
> Der Vinculum ist elend langsam...Mehr als 40KB/sek habe ich bei Tests
> nicht erreicht. Wenn man nicht unbedingt nen stick ansprechen muss,
> sondern nur Daten speichern möchte ---> SD KARTE.

Welches Interface hast du vom Vinculum benutzt? SPI, UART oder Parallel?

von xxx (Gast)


Lesenswert?

zurück zum Thema PIC & mass storage mit SD/MMC Karte:

Auf der Microchip Webseite findet sich Application Note & Code für PIC 
C18 und C30 Compiler.

von whitenoise (Gast)


Lesenswert?

liege ich bei diesem link richitg?

http://www.usb.org/developers/devclass_docs/usbmassbulk_10.pdf

kapitel 5?

Command Block Wrapper.

gruß

von Rolf (Gast)


Lesenswert?

> liege ich bei diesem link richitg?

Ja.

von fm (Gast)


Lesenswert?


von Hubert (Gast) (Gast)


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

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.