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?
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
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.
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
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
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
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
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.
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 . . .
> 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!!!
>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!
@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.
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
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
@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!
@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
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
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.
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
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
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.
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
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 . . .
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
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.
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