Forum: Mikrocontroller und Digitale Elektronik AVR mit USB-Schnittstelle?


von Matthias Weisser (Gast)


Lesenswert?

die "alte" serielle Schnittstelle wird
immer mehr von modernen Bussystemen wie
USB abgelöst.

Zum kleinen billigen Motorola 68HC08 gibt
es eine Version mit einem USB onchip, das
sehr gut arbeiten soll. Außerdem wurde
das Flash renoviert, so dass es nun 100x
schneller arbeitet. Der Treiber für USB
soll gut sein.

Weiß jemand, ob es auch einen AVR mit USB
geben soll . . . .

Es ist absehbar, dass es bald PC`s oder
Laptops gibt, die keine serielle Anbindung
mehr haben. Und wie dann den AVR da anbinden?

von Markus (Gast)


Lesenswert?

Es gibt einen AVR mit USB. Der ist aber für den Hobbybereich ungeeignet.
Ich arbeite gerade mit dem USB Chip FT232 von FTDI. Das ist ein IC, der 
USB auf eine serielle Schnittstelle umsetzt. Damit kann man einen µC 
problemlos über einen UART mit USB verbinden. Für den Chip gibt es für 
fast jedes OS einen Treiber. Unter Windows z.B. wird ein virtueller COM 
Port Treiber installiert, so das man das ganz normal wie eine serielle 
Schnittstelle ansteuern kann. Sogar bestehende Programme, die mit der 
seriellen Schnittstelle arbeiten, können das nutzen. Controller und 
Software bekommen gar nicht mit, das noch USB dazwischen ist.
Ich entwickle gerade ein kleines Modul, auf dem die komplette Schaltung 
rund um den FTDI Chip drauf ist. Daran kann man dann praktisch jeden µC 
mit UART anschließen. Das Modul kann man in einen 28 poligen IC Sockel 
Stecken. Das einzige was man noch braucht ist eine USB Buchse.
Gruß
Markus

von Matthias Weisser (Gast)


Lesenswert?

Der Vorteil von USB ist doch auch die höhere
Datenrate. Seriell ist bald oberhalb von 115200bd
Schluß. USB geht deutlich darüber hinaus.

Hier gibt es also eine Einschränkung der einfachen
Add on-Lösung.

von Peter D. (peda)


Lesenswert?

Bei einem UART zu USB Umsetzter kann sich die lange Pollingzeit sehr 
negativ auswirken:

Wenn die UART-Software im Pingpong Verfahren arbeitet (gibst du mir ein 
Byte, gebe ich dir eins), dann bricht die Übertragungsrate trotz 115200 
Baud drastisch ein.

Soweit ich weiß, kann USB bestenfalls jede 1ms Daten übertragen, das 
sind dann max 9600 Baud bei einen einzelnen Byte.

Deshalb sind auch viele fertige USB-I/O-Module schnarchlam.



Peter

von Markus (Gast)


Lesenswert?

Also, der FT232 kann mit TTL oder RS485 bis zu 3MBit erreichen. Läßt man 
bei dem Modul und dem Controller den Max232 weg und schließt es direkt 
an dürfte wohl eher der Controller nicht nachkommen. Mehr schaffen auch 
die Controller mit integriertem USB nicht.
Gegen diese 1mS Geschichte gibt es auch irgendwas, um das Problem zu 
minimieren. Weiß jetzt aber nichtmehr genau, wie das hieß und ging.
Außerdem verwende ich den neueren FT232BM. Der beherrscht auch USB 2.0. 
Sollte also alles halb so schlimm sein.

Gruß
Markus

von Eckhard (Gast)


Lesenswert?

Hallo,

es wird wohl kaum ein 8 Bit Controller eine Datenrate von 115 KBit/s 
wirklich schffen. 19,2 ist da schon wesentlich realistischer. 
Desweiteren bremst da natürlich auch die geschwindigkeit mit der man 
Flash Speicher Programmieren kann. Für die RS232 hat man nirgends 
Treiberprobleme und das ganze ist inzwischen ausgereift und stabil. Also 
bevor ich da ohne Not mit USB rummache kauf ich mit lieber ne Karte für 
den PC mit ner RS232 drauf.

Eckard

von Markus (Gast)


Lesenswert?

Also ich hab schon mit 115,2 gearbeitet (AVR mit 7,3728MHz). Das einzige 
was anfangs nicht nachkam war das Terminalprogramm. Den AVR hat das 
nicht tangiert. Programmieren sollte (per Bootloader beim AVR) auch mit 
115,2 möglich sein. Stellt sich nur die Frage, wie lang die Pausen 
zwischen zwei Paketen ist, sprich, wie lange der AVR zum Flaschen der 
Scratch Page braucht.

Gruß
Markus

von Matthias Weisser (Gast)


Lesenswert?

ich schicke meine Daten mittlerweile alle mit
115200 über Optokoppler vom AVR zum PC und
auch wieder zurück. Das klappt wunderbar mit dem
Bray-Terminal, wenn man nicht zuviele Daten hinter-
einander schickt, so daß der Bray die Chance hat
die Zeichen auch sauber ins Fenster zu schreiben.

Ich hätte nichts gegen eine noch höhere Datenrate.

Wichtig ist halt die 7.3728MHz-Frequenz wegen der
Genauigkeit.

Mit USB ginge es theoretisch noch schneller.
Und man könnte auch Laptops ohne serielle SS
nutzen. Beim Laptop geht eben leider die einfache
PCI-Karte nicht mehr. Da muß es dann ein Umsetzer
über PCMCIA oder eben vom USB her sein.

von Eckhard (Gast)


Lesenswert?

Das einzige was es dir am Ende aber bringt ist, das Du mit höherer 
Geschwindigkeit wartest.


Eckhard

von Markus (Gast)


Lesenswert?

ich werds wissen wenn die platine da ist

von Matthias Weisser (Gast)


Lesenswert?

Ich kann mir nicht recht vorstellen, dass USB
nicht schneller als die serielle SS sein soll.

Die Verarbeitungsleistung kann nicht schneller
sein. Aber von der Geschwindigkeit der
Datenübertragung erhoffe ich schon etwas.

Oder ist der Overhead wirklich so gross . . .

Warten wir auf Markus Untersuchung . . .

von Rainer (Gast)


Lesenswert?

> Also, der FT232 kann mit TTL oder RS485 bis zu 3MBit erreichen. Läßt man bei dem 
Modul und dem Controller den Max232 weg und schließt es direkt an dürfte wohl eher 
der Controller nicht nachkommen. Mehr schaffen auch die Controller mit 
integriertem USB nicht.

Nichts für ungut, aber das ist schlicht und einfach Blödsinn. Der 
Cypress Ez-USB FX kann die gesamten theoretischen 10MBit von USB1.1 im 
full speed-Modus ausnützen. Beim FX2 (USB2.0-Version) sollten es 
deutlich mehr sein (ob er alle 480MBit schafft wage ich zu bezweifeln, 
aber sicher einen schönen Teil davon). Ist ja auch kein Problem, 
aktuelle Prozessoren schaffen per DMA ein Byte/Cycle - bei 48MHz sind 
das immerhin schon 48MByte/s!!!

von Rainer (Gast)


Lesenswert?

>Gegen diese 1mS Geschichte gibt es auch irgendwas, um das Problem zu minimieren. 
Weiß jetzt aber nichtmehr genau, wie das hieß und ging.

Interrupt-Transfers sollten bei diesen Ping-Pong-Transfers die besten 
sein, funktionieren aber nur PC->USB-Device. Wenns wirklich hohe 
Geschwindigkeiten sein sollen, dann muss es halt Isochronous sein - 
nicht so fehlersicher, aber VIEL schneller. Da muss man halt selbst 
Fehlerkorrektur einbauen - dann wird aber der Controller wirklich nicht 
mehr nachkommen!

von Schmittchen (Gast)


Lesenswert?

@Matthias Weisser:
Bist du Matthias "MoD" Weißer oder ist das "nur" dein Namensvetter? Der 
hat sich nämlich auch schon mit USB und µCs (auch mit dem FTDI-Teilen) 
beschäftigt und kann deine Fragen bestimmt beantworten... www.matwei.de

Schmittchen.

von Eckhard (Gast)


Lesenswert?

Hi,

also ich hab da mal ein wenig im Datenblatt gestöbert. Ergebnis : das 
Programmieren des Flash ist ziemlich langsam, so im kleinen 
Milisekundenbereich. Selbst bei den anfänglich genannten 115 KBits, 
würde ein Byte nur ca 90 Mikrosekunden brauchen. Es würde also 
wesentlich mehr bringen, wenn der Flash Speicher schneller zu 
beschreiben wäre. Das bißchen Datenübertragung ist da nicht der 
Flaschenhals.

Eckhard

von Markus (Gast)


Lesenswert?

Es geht ja nicht speziell ums Flashen sondern allgemein um die 
Kommunikation µC->PC via USB

von Gerhard Paulus (Gast)


Lesenswert?

Hallo Markus,

was werden die FT232-DIP-Module in etwa kosten ?

Die FTFI-Teile scheinen ganz praktisch zu sein aber mit SMD kann ich 
nichts anfangen und das Huckepackmodul von FTDI (DLP-USB232M Evaluation 
Board) ist für meine Zwecke zu teuer.

Danke,
Gerhard

von Markus (Gast)


Lesenswert?

Kann ich leider noch nicht genau sagen, aber irgendwo zwischen 20 und 50 
€

von Matthias Weisser (Gast)


Lesenswert?

@Schmittchen
 ich bin nicht der Matthias "MoD" Weißer.
 Danke für den Tipp mit www.matwei.de

@alle
 20-50€ für einen Supportbaustein finde ich
 schon sehr teuer. Da kann es sich schon
 lohnen besser einen anderen Controller zu
 nehmen, wo das Teil drauf integriert ist,
 wie eben der billige HC08.

Das war genau meine ursprüngliche Frage.
Ob der AVR eben USB mal kann oder nicht.

Danke für Eure Beiträge!

von Markus (Gast)


Lesenswert?

@Matthias: der preis ist relativ. Wenn ich z.B. mit AVR arbeite und den 
mit USB erweitern möchte sollte man sich die frage stellen, was billiger 
kommt, die Einarbeitung in einen neuen Controller und die Anschaffung 
der notwendigen Tools oder die Verwendung eines solchen Moduls. Auf dem 
Modul wird ja auch alles drauf sein, was man zum Betrieb des Chips 
braucht, außer dem USB Stecker. Und man kann neben dem Anschluß eines µC 
z.B. auch einen RS485 Bus aufbauen. Man ist also deutlich flexiebler. 
Und wer will heute noch mit einem HC08 arbeiten. Ich für meinen Teil bin 
nach 3 Jahren HC Familie (beruflich) geheilt.

Gruß
Markus

von Eckhard (Gast)


Lesenswert?

Hi Markus,

ich will mit dem HC08 arbeiten. Mußte ich jetzt einfach mal sagen. Ich 
finde das Ding auch nicht unhandlich und es gibts sie einfach mit so 
ziemleich jeder Peripherie die man braucht, nicht nur A/D und Timer. 
Nach Wunsch halt auch USB, CAN, LIN, BDLC alles was das Herz begehrt. 
Elektrisch sind die Dinger auch nicht komplizierter als ein AVR. Wenn 
man aufgrung des kranken Befehlssatzes des AVR eh auf ne Hochsprache 
geht ist der rest des Controllers doch sowieso völlig egal. Naja man 
trifft seine Wahl und zahlt sein Geld.

Eckhard

von Thomas Maierhofer (Gast)


Lesenswert?

Die FTDI Teile kann man bei Segor (www.segor.de) beziehen. Sie kosten 
9,80 Euro.
FT232BM (RS 232)
FT245BM (FIFO, 8 Bit Zugriff)

Wer kennt Bezugsquellen für die Evaluation Boards? Die gibt es nämlich 
bei Segor nicht!
DLP-USB232M (Evaluation Board für FT232BM)
DLP-USB245M (Evaluation Board für FT245BM)


Übrigens bin ich der Meinung (obwohl noch nicht getestet), dass nur der 
FT245BM einigermassen an den Speeed herankommt, der angegeben ist. Er 
benötigt fast 2 Kompette Ports (8 Bit Daten, 5 Bit Handshake).

Wenn man davon ausgeht, dass ein AVR vielleicht 5-10 Taktzyklen für 
einen kompletten Handshake braucht, müsste ein Durchsatz von 1-3MB/s vom 
AVR zum FIFO möglich sein. Der AVR macht dann allerdings sonst nichts 
und ist schon sehr hoch getaktet.

von BernhardT (Gast)


Lesenswert?

Hallo Thomas,
der offizielle FTDI Distri in Deutschland  Unitronic  scheint die Teile 
besonderst fördern zu wollen. D.h. keine mindestabnahmen oder 
Mindermengenzuschläge. Das DLP-USB245 M kostet wohl 38 Euro, die Chips 
4,90. alles natürlich zuzüglich Versand und Mehrwertsteuer. Ich würde 
mich nicht   wundern, wenn die auch an privat Liefern, sicherheitshalber 
mal ne gute Story in der Hinterhand   (z.B. Diplomarbeit oder so)
Gruß Bernhard

von Reiner Ruehle (Gast)


Lesenswert?

Hallo,

ich möchte mich noch mal zum Für und Wieder äußern: Für mich ist nicht 
allein die Übertragungsgeschwindigkeit entscheidend. Interessant wäre 
außerdem die Steuerung von kommerziellen Geräten. So wäre zahlreiche 
preiswerte Kombinationen ohne PC möglich.

Gruß Reiner

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

USB Host und Client sind zwei paar Schuhe, Host ist mit den FTDI-Chips 
AFAIK nicht möglich.

von Steffen G. (Gast)


Lesenswert?

Auf der Roadshow von MSC wurde ein ATMEGA256 vorgestellt. Dieser soll 
dann einen USB-Controller mit drinn haben. Das wird man aber frühstens 
im Herbst sehen wenn die ersetn Muster erhältlich sind.

von Markus Burrer (Gast)


Lesenswert?

Mal abwarten. Das Ding dürfte es, so wie ich Atmel kenne, erst in 2 
Jahren in Stückzahlen zu bekommen sein. Gleiches gilt für Mega48, 
Mega88, Mega168 und Tiny2313, auch wenn ich schon sehnsüchtig auf die 
beiden letzteren warte. Das der Mega256 USB bekommen soll ist mir neu. 
Hab bisher nur von den anderen die preliminary Datasheets gesehen. Ich 
weiß nur das der neben 256kB ein 84 poliges Gehäuse bekommen soll, also 
nochmal 20 mehr als der mega128. Da kann's natürlich sein das der mehr 
Funktionen bekommt

von mikki merten (Gast)


Lesenswert?

Alternativ gibt's ja schon den AT76C711

von Matthias Weisser (Gast)


Lesenswert?

so wie es ausschaut gibt es ein erfahrenes
Entwicklerteam bei Atmel, das nun anfangen wird
zu arbeiten, um die AVR interessanter zu machen.
Dann wird es eine Weile dauern bis man das
Ergebnis sehen wird. Ich bin gespannt . . .

von Sam (Gast)


Lesenswert?

Also als simple Kommunikation zwischen PC und AVR kann ich noch folgende
Site empfehlen:


http://www.cesko.host.sk/IgorPlugUSB/IgorPlug-USB%20(AVR)_eng.htm

Es enthält sowohl eine detailierte als auch einen Treiber...

Lohnt sich auf jeden fall mal anzusehen...

Sam

von Kenny (Gast)


Lesenswert?

Der AMTEGA256 wird eine USB Schnittstelle haben und wird ab Mitte 2005
in Mass Production laufen...!

von Markus (Gast)


Lesenswert?

Aha, gibts da schon irgendwas handfesteres in Form eines Datenblattes?

von Jörn (Gast)


Lesenswert?

Habt Ihr schon gesehen, dass Igor jetzt auch eine RS232-Version
anbietet, die sogar offizielle Atmel Application Note werden wird. Ist
bereits alles bei ihm downzuladen, mit vielen Beispielen, Dokus und für
ATmega8!!!!!
jörn

von Rufus T. Firefly (Gast)


Lesenswert?

Laut http://www.atmel.com/dyn/resources/prod_documents/doc4003.pdf,
Tabelle auf der 3. Seite ist beim Mega256 nicht mit einer
USB-Schnittstelle zu rechnen. Das ist im Grunde genommen ein
aufgemotzter Mega128 - mit doppelt soviel Flash-ROM, doppelt soviel
RAM, keinem JTAG-Interface und 16 statt 8 PWM-Kanälen.

Also nichts spektakuläres.

Zum Hin und Her der USB-Datenübertragung: Die Paketorientierung von USB
legt die Nutzung eines paketorientierten Protokolles anstelle einer
Byte-Ping-Pong-Übertragung nahe. Wird der FT245 verwendet, so kann
problemlos mit Paketgrößen von 128 bzw. 384 Bytes gearbeitet werden,
die vom FT245 in einem Empfangs- bzw. Sendefifo vorgehalten werden.
Sollte es einem AVR gelingen, das Schreibfifo innerhalb einer
Millisekunde zu füllen, dann müssten sich immerhin bis zu 384
Bytes/msec übertragen lassen - was sich von den eingangs erwähnten
"9600 Baud" doch etwas abhebt.

Der FT245 wird parallel über ein Byte-breites Interface angesteuert und
kann dazu gebracht werden, nach Empfang eines Datenpaketes einen
Interrupt auszulösen, ebenso, wie er das nach dem Abholen eines zum
Senden zur Verfügung gestellten Datenpaketes kann.

Solange es keinen AVR mit einer USB-Unterstützung wie in den vormaligen
AnchorChips gibt (jetzt Cypress EZ-USB), wird das eine der sinnvollsten
Lösungen sein - die obendrein mit sehr überschaubaren bis
vernachlässigbarem Aufwand auf der PC-Treiberseite daherkommt.

von Markus (Gast)


Lesenswert?

OneWire für den Mega256? Das muß ein Druckfehler sein. Ich bete das es
nur ein Druckfehler ist. Laut dem Blatt soll der auch nur 53 I/O haben
wie der Mega128. Das kann dann aber nur die 64 Pin Version sein
Naja, so wie man Atmel kennt wird das bis zur endgültigen Version eh
noch 5x ändern

von Johannes M. Richter (Gast)


Lesenswert?

Find in o.g. PDF keinen Hinweis auf 1-wire.. :-? debugwire ist doch
nicht 1-wire, oder?

von Markus (Gast)


Lesenswert?

Omg, freudsche Fehlleistung. Gemeint war DebugWire

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.