Forum: Mikrocontroller und Digitale Elektronik Einfaches und schnelles USB I/O?


von Ralph Tödter (Gast)


Lesenswert?

Ich möchte über den USB port einen spezial flash speicher programmieren
und lesen, dazu brauche ich mindestens 24 frei programmierbare IO
leitungen die ich aber gerne vom Host PC aus programmieren will.
Weil ich mich mit Mikrocontrollern noch nicht so gut aus kenne und ein
mikrocontroller mit USB a) ziemlich teuer ist und b) schwer zu
programmieren ist (da muss man sich bestimmt erstmal in das USB
protokol einarbeiten was für einen Anfänger wohl eher schwer ist).

Ich habe die FTDI chips gefunden, da ist mir vor allem dieser hier
aufgefallen:
http://www.ftdichip.com/Products/FT2232C.htm

Läuft dieser chip auf full speed USB? Low speed USB wäre glaube ich zum
programmieren eines flash speichers zu langsam, aber 12 mb/s sollte
schon genug sein...

Als, eigentlich perfekte Lösung für einen Anfänger wie mich, ist mir
noch der IO-Warrior40 von www.codemercs.com aufgefallen, aber der chip
läuft ja leider nur auf USB low speed und das ist ja noch nicht mal 1.5
mb/s :(

Es wäre echt toll wenn ihr gute Lösungsvorschläge hättet, aber es
sollte möglichst eine einfache Lösung sein die nicht so viel
Programmierung erfordert.

Vielen Dank,
Ralph

von Peter Dannegger (Gast)


Lesenswert?

Einen Flash ohne µC zu programmieren dürfte schwer bis unmöglich sein.

Es gibt da nämlich auch maximale Zeiten einzuhalten, die nicht
überschritten werden dürfen und sowas kannst Du mit den großen
Latenzzeiten von USB nicht machen.

Erheblich langsamer bist Du ohne µC auf jeden Fall.


Peter

von A.K. (Gast)


Lesenswert?

Hast Du denn schon mal einen Anhaltspunkt, welchen Durchsatz Du
überhaupt benötigst?

von Ralph Tödter (Gast)


Lesenswert?

hmm, ich hab mir das nicht so schwer vorgestellt :)

Also der flash speicher ist nur 512kb groß...

Was wäre denn ein guter Mikrocontroller um den flash zu beschreiben?
Ich hab gesehen das man USB mit jeden Atmel chip realisieren kann (auch
die ohne USB unterstützung) aber da hab ich mir sagen lassen das s das
ziemlich lahm, ausserhalb der spezifikationen und wohl auch nicht so
einfach zu programmieren ist.

Ich hab mir die PICs mit USB angeschaut, die sind echt komisch zu
programmieren und auch nur low speed, damit müsste ich mich erstmal
eine weile beschäftigen...

Die Atmel chips mit USB sind alle in VQFP bauform oder so (schaut halt
sehr fummelig aus und den bekomme ich auf meine loch-platine bestimmt
nicht rauf ;)).

Btw, das lesen/beschreiben des flashs geht per lpt indem man einfach
einen 82C55 IO chip benutzt, ich wollte für mein Projekt aber gerne,
aus verschiedenen Gründen, USB verwenden.

von Benedikt (Gast)


Lesenswert?

Das Beschreiben eines Page Mode Flash Speichers geht nur unter echtem
DOS am LPT, denn zwischen zwei Bytes dürfen nicht mehr als 100us
liegen. USB benötigt 1ms für ein Datenpacket, soviel zu diesem Thema.

High Speed USB macht wenig Sinn, denn ein Byte Mode Flash Speicher
benötigt ca. 10us um ein Byte zu schreiben. Das macht 100kByte/s bzw.
1MBit.
Das schaffen die meisten USB-RS232 Konverter problemlos. Die Daten dann
per UART in einen mega8515, der diese dann in den Flash schreibt.

von Ralph Tödter (Gast)


Lesenswert?

Kann ich den FTDI chip dafür benutzen oder gibt es da einen besseren der
vielleicht noch einfacher ist? Brauche ich dann noch das extra eeprom
dafür?

Ausserdem scheint es den FTDI chip nur als LQFP bauweise zu geben was
irgendwie zum experimentieren ziemlich schlecht ist...

Sorry das ich soviel frage, aber ich weiss halt nix ;(

Danke erstmal für die Antworten, ich wollte eigentlich eine
kostengünstige und einfach herzustellende (so das jemand ohne
Lötkenntnisse auch damit zurecht kommt) lösung haben aber ich nehme mal
an USB ist einfach nicht so billig zu haben ;)

von JojoS (Gast)


Lesenswert?

bei chip45 gibt es ein Modul
http://www.chip45.com/crumb/crumb128/index.html
das hat einen ATMega128 und einen USB2.0 Converter drauf. Die
Peripherie Signale können alle an Pfostensteckern mit 2,54 mm
Rastermass abgegriffen werden. Im Controller müsste ein Programm laufen
das die Daten blockweise puffert und dann dein Flash programmiert. Der
Crumb128 kann wg. eingebautem Bootloader direkt über die serielle
Schnittstelle programmiert werden, ist ein schickes Teil und nicht zu
teuer (ca. 50€).

von Benedikt (Gast)


Lesenswert?

Reichelt: USB-RS232 Konverter für 10€, fertig aufgebaut. Ist billiger
als der FTDI Chip und macht mindestens 115200Baud, vermutlich noch
etwas mehr.

von Ralph Tödter (Gast)


Lesenswert?

Ich hab mich jetzt hierfür entschieden (war doch irgendwie
naheliegend):

http://shop.mikrocontroller.net/csc_article_details.php?nPos=0&saArticle[ID]=60&VID=YsgZGC75iZE1MZrr&saSearch[word]=&saSearch[category]=AVR&saSearch[special]=

Danke für eure Ideen und Ratschläge, dieses Crumb128 sieht echt gut aus
aber der USB controller darauf ist glaube ich in deutschland nur schwer
zu bekommen ausserdem ist der SMD bauweise (das ist ganz übel...) und
einen Atmega128 brauche ich glaube ich auch nicht... wahrscheinlich tut
es schon ein Atmega8 wie es Benedikt vorgeschlagen hat. Den USB-RS232
konverter habe ich nicht gefunden...

Der FTDI kann zwar, soweit ich das verstanden habe, nur low-speed USB
aber das müsste reichen weil ich ja nur 512kb speicher schreiben will
und da ich einen AVR zum schreiben der Daten verwenden will habe ich ja
auch keine extra-daten die ich noch schreiben muss wie zB bei einer
direkten IO lösung wie sie momentan mit dem LPT port gehandled wird.

Ich hoffe ich habe jetzt die richtige entscheidung getroffen :)

von Steffen (Gast)


Lesenswert?

Erst mal zur Richtigstellung:

- die FTDI-Chips sind Full-Speed Devices
- PICs gibt es ebenfalls mit Full-Speed-Brige

Ich habe mir mal einen MP3-Player mit einem FT245BM (Yampp 3U)
aufgebaut. Die erreichbare Datenübertragungrate liegt bei rund
0,5MB/Sekunde (sonst nur Maus und Kleinkram an USB). Sollte also für
dein Vorhaben mehr als ausreichen.

MfG

von Torsten Büttner (Gast)


Lesenswert?

Schau doch mal unter www.ic-board.de. Das Modul ICmega8-8-USB oder
ICmega8-16-USB müßte genau Deinen Anfordeungen gerecht werden. Und
teuer ist das auch nicht. Microcontroller programmieren und fertig.

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.