Hallo
Ich will versuchen einen 8051er mit einem USB-Stick zu verbinden. Es
wäre einmal interessant zu wissen wie ein USB Bus funktioniert bzw. wie
ein usb-stick funktioniert. vielleicht hat irgendjemand eine Idee oder
einen guten link dafür!!! ist es überhaupt möglich einen usb-bus auf
einem 8051er zu realisieren oder ist der aufwand zu groß??
mfg Grazzy
Hi,
du bist verrückt :)
Du solltest erst einmal mehr über USB in Erfahrung bringen. www.usb.org
z.B.
Bei USB gibt es (vereinfacht gesprochen) nämlich genau einen Host
(typischerweise der PC) und die Devices - also die Endgeräte. Wenn du
also einen USB-Stick an den µC basteln willst, müsste dieser µC die
komplette Host-Funktionalität auf diesem implementieren (man sagt, dies
wäre recht aufwändig g).
Normalerweise nimmt man jedoch für beide Seiten - also Host und Devices
- einen speziellen Controller (die gibt es). Endgeräte-µC gibt es auf
jeden Fall mit 8051-Kern, wie's bei den Hostcontrollern aussieht, weiß
ich nicht.
http://www.mikrocontroller.net/articles/USB
danke für die schnelle antworten!!
OK! verstehe warum es so kompliziert ist!!!
Meine Idee war eigentlich, dass ich mir einen kleinen computer mit
tastatur, und einem kleinen S/W-LCD baue!!! und mit dem internen
Speicher komme ich nicht aus wenn ich ein wenig graphisch programmieren
will!!! und jetzt benötige ich einen kleinen externen speicher!!
Ich weiß nicht einmal ob es mit dem 8051er möglich ist!!
vielleicht hat irgendjemand eine gute idee für einen größeren externen
Speicher !! Ein USB-Stick wäre das billigste!!! Ich muss mir noch das
mit einem USB-Hostcontroller genauer anschauen!! vielleicht bekomme ich
es mit ihm hin!!!
mfg grazzy!!
Dafür bräuchtest du auch eher RAM als FLASH-Speicher...Da ist ein
USB-Stick ungeeignet.
Wenn Flash, dann würden sich CompactFlash u.ä. Karten anbieten.
Da kann ich Rahul nur zustimmen. Zur Nutzung von Flash (CF,MMC,
wasauchimmer) einfach mal die Suchfunktion des Forums benutzen. Da
gibts es schon einige Beiträge, aus denen du was entnehmen kannst.
Ansonsten erst noch einmal genau überlegen, ob ein RAM oder FLASH
gefragt ist...
Viele Grüße
PS: !!!!!!!!!!!!!!!!!!!!!!!!!! (zur freien Verfügung)
es hat schon mal einer geschafft, theoretisch ist das unter diesem link
zu erreichen, aber der server is wohl grad down: http://cesko.host.sk/
Falls du nen usb-joystick bauen willst, dann schau auf
www.mindaugas.com
(ich weis, das is nicht ganz das was gesucht ist, aber so ähnlich)
Unter den oben genannten Links findetman keine USB-Hosts sondern Slaves,
die kann man mit Einschränkungen mit einem einfachen Controller
realisieren, bzw. es gibt diverse Contoller mit USB-Slave
Schnittstelle. Das Problem ist der HOST!
Um mit einem Controller einen USB-Stcik als Host anzusprechen brauchst
du mehrere Schichten:
1. Die Hardware eines speziellen USB-Device Controllers PDIUSBD11/12
von Philips. Diese Controller erledigen die notwendige 'Echtzeit'.
2. Eine Software die dir das 'Hot-Plug' unterstützt.
3. Eine Softwareschicht, die die Kommunikation durchführt.
4. Eine Software, die das Dateisystem des USB-Sticks abbildet (FAT).
5. Und letztendlich die Zugriffe aus deiner Applikation.
Wie zu sehen ist, ist dies viel Arbeit nur um einen Speicher zu nutzen.
Interressanter ist die Nutzung von SD-Karten wenn man viel Speicher
braucht (4+5 bleiben dir dann erhalten) oder die Nutzung von seriellen
SPI ansteuerbaren Flash-Bausteinen, wie sie z.B. Atmel bietet.
Wenn Du mit einem 8051 einen kleinen Computer bauen willst, dann
brauchst Du doch nur das externe Speicherinterface des 8051 zu
verwenden !!! Der kann das nämlich von Haus aus !!! Aber nur wenns ein
8051 ist, der den Bus nach außen geführt hat, z.B. der 8031, 8032,
80C535 !!!!
Ich habe so ein Ding mal gebaut!!!! Für den 8051 gibts sogar ein
BASIC!!! FREEWARE!!!!!! Übrigens: 32K SRAM reichen für ein Projekt
Deiner Art vollkommen aus!!!!! Brauchst also keinen USB-Stick mit
mehreren MB!!!!!
(Mann, bin ich jetzt heiser...)
@Klaus: PDIUSBD11/12 sind USB-Devicecontroller, mit denen kannst Du
keinen USB-Host aufbauen (falls doch, wüsste ich gerne, wie).
Der PDIUSBD11 wäre für manches Bastelprojekt ein interessanter Chip
gewesen, da er über eine I²C-Schnittstelle mit dem steuernden µC
verbunden wird und obendrein im lötfreundlichen DIL-Gehäuse verfügbar
war. Allerdings wird der aber schon seit einiger Zeit nicht mehr
hergestellt.
Der D12 hat ein paralleles Interface, aber auch das ändert nichts
daran, daß das Teil nur ein Devicecontroller ist.
Hallo,
der SM501 besitzt USB-Host und -Device Funktionalität, einen
integrierten 8051 und einige weitere Schnittstellen (PCI, SPI, UART,...)
und Videoausgang. Das könnte evtl was sein.
Wenn Du in die Funktionsweise des USB tiefer einsteigen möchtest, kann
ich das Buch "USB Complete" von Jan Axelson empfehlen. Die
Spezifikationen auf www.usb.org sind für Einsteiger kaum verständlich.
Gruss
Mike
Wenn es nur um die Realisierung eines USB-Hosts geht, ist es vermutlich
einfacher direkt einen entsprechenden Baustein einzusetzen. Diese haben
schon den ganzen USB-Kram integriert, und bieten auch Unterstützung für
FAT an. Meiner Meinung nach ist das die einfachste Möglichkeit vom
Mikrocontroller aus größere Massenspeicher über USB anzusprechen.
Ein geeigneter Kandidat wäre der VNC1L. Ansteuerung wahlweise über
SPI/UART/Parallel, da sollte für jeden was dabei sein.
Link: http://www.vinculum.com
Hallo
USB Kenner. Der Thread ist schon sehr alt und wiurde wieder ausgegraben.
Ich kenne die USB-Geschichte nicht, deshalb Nachsicht für meine Frage.
Läßt sich umgekehrt mit einem Atmega ein USB-Stick mit einem
vertretbaren Aufwand simulieren. Ich würde gerne ein FAT32 (?)
dateisystem auf I/O's mappen um mit Standardsoftware darauf zugreifen zu
können.
Ist das absurd?