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.
Das einzige was es dir am Ende aber bringt ist, das Du mit höherer Geschwindigkeit wartest. Eckhard
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
Es geht ja nicht speziell ums Flashen sondern allgemein um die Kommunikation µC->PC via USB
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
Kann ich leider noch nicht genau sagen, aber irgendwo zwischen 20 und 50
@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
USB Host und Client sind zwei paar Schuhe, Host ist mit den FTDI-Chips AFAIK nicht möglich.
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 . . .
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
Der AMTEGA256 wird eine USB Schnittstelle haben und wird ab Mitte 2005 in Mass Production laufen...!
Aha, gibts da schon irgendwas handfesteres in Form eines Datenblattes?
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
Find in o.g. PDF keinen Hinweis auf 1-wire.. :-? debugwire ist doch nicht 1-wire, oder?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.