www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik USB Stick mit PIC ansprechen


Autor: Marco (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit der vorhandenen USB-Schnittstelle geht es gar nicht.

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

Autor: Osterhase (Gast)
Datum:

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

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Schoaschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: Peter Menzel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Schoaschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: JarJar (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Joern G. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hotte (Gast)
Datum:

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

Autor: Marco (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Marco (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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.

...

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Joern G. aus H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marten (Gast)
Datum:

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

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Leichenschänder!

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo gibts den VNC1L für unter 10 Euro?

Autor: njp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: whitenoise (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Master Snowman (snowman)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Rolf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Mario (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?IdcServic...

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
VNC1L-0001 für 15,95€
http://shop.strato.de/epages/61400871.sf/de_DE/?Ob...

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

Autor: Jo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: whitenoise (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andreas Watterott (andreasw) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: xxx (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: whitenoise (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
liege ich bei diesem link richitg?

http://www.usb.org/developers/devclass_docs/usbmas...

kapitel 5?

Command Block Wrapper.

gruß

Autor: Rolf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> liege ich bei diesem link richitg?

Ja.

Autor: fm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Hubert (Gast) (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?IdcServic...
desweiteren werden von Microchip Webseminare zum Thema USB 
(host)angeboten, 
http://www.microchip.com/stellent/idcplg?IdcServic...

Interessant ist dann auch Microchip AN1189
http://www.microchip.com/stellent/idcplg?IdcServic...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail ü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
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.