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
Mit der vorhandenen USB-Schnittstelle geht es gar nicht. Mehr Informationen hier: http://www.mikrocontroller.net/forum/read-1-215731.html#new
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.
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 ;-)
@ 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
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 ;-)
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
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
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!
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
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. ...
@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).
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
Müsste eigentlich gehen, wenn man z.B. das USB interface von elv benutzt!
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.
...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
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?
>> 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...
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
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
@ 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.
@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.
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?
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.
liege ich bei diesem link richitg? http://www.usb.org/developers/devclass_docs/usbmassbulk_10.pdf kapitel 5? Command Block Wrapper. gruß
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¶m=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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.