Hallo alle, hat einer eine Idee, wie ich Problemlos einen ATmega16 mit 8 Mhz getaktet an den USB Bus anschliessen kann um meine messdaten möglichst schnell an den PC zu schicken? Ich habe schon die AVR309 angekuckt, aber es scheint nur mit 12 Mhz zu funktionieren! Danke! Und schöne Weihnachten!
> hat einer eine Idee, wie ich Problemlos einen ATmega16 mit 8 Mhz > getaktet an den USB Bus anschliessen kann um meine messdaten > möglichst schnell an den PC zu schicken? Definiere "möglichst schnell". Ich nehme nicht an, daß du die vollen 480MBit eines USB 2.0 wirklich brauchst. Die üblichen Verdächtigen: FT232 und FT485. > Ich habe schon die AVR309 angekuckt, aber es scheint nur mit 12 > Mhz zu funktionieren! Wäre es denn so schlimm, mit 12Mhz zu takten?
nimm nen USB nach RS232 Adapter oder direkt nur den FTDI Chip, die können bis 1MBit.
Der erfordert aber deutlich mehr Softwareaufwand, sowohl im AVR als auch auf der PC-Seite, sofern der USB-Stack, der auf dem AVR zu schreiben ist, nicht eine der Standardgeräteklassen (HID etc.) implementiert. Da ist ein FT232 deutlich interessanter, und der dürfte in seiner neuesten Inkarnation (FT232R, siehe gleichnamiger Thread) dem CP2102 nun endgültig überlegen sein (keine zusätzlichen Bauelemente erforderlich, dafür aber auch in einem lötbarem Gehäuse verfügbar und deutlich weiterführende Treiberunterstützung).
So, danke mal für die Recht flotten und auch sehr informativen Antworten. Soweit hab ichs kapiert, ist besser ich nehm nen separaten Chip! Hab mich jetzt umgekuckt, und mein Mega16 kann 500.000 Baud bei 8 Mhz, das langt bei weitem! Aber wie funktioniert das jetzt??? Ich schließ mein TXD und RXD an den chip an, und stöpsel das alles an den USB bus? Dann wird der CP2102 einfach als USB Comport eingebunden, in der systemsteuerung die baudrate gewählt und das funktioniert so ? OK Danke mal! Sorry für die Blöden fragen, bin halt ein Neuling!
Ich schließ mein TXD und RXD an den chip an, und stöpsel das alles an den USB bus? Dann wird der CP2102 einfach als USB Comport eingebunden, in der systemsteuerung die baudrate gewählt und das funktioniert so ? H
Bei dem CP2102 kann ichs Dir leider nicht sagen - da wirst Du wohl oder übel ins zugehörige Datenblatt schauen müssen. Beim FT232 wird ein Treiber installiert (von der Herstellerseite downloadbar) der einen virtuellen Com-Port installiert. Die PC-Software muß dann nur einen Com-Port ansteuern können.
Ja und wie sag ich jetzt z.Bsp dem FT232 mit wieviel Baud mein Atmel mit ihm Kommunizieren tut? Gibt es da eine Software, mit der man den dann den FT232 / CP2102 über die USB Schnittstelle konfigurieren kann oder wie? und kostet die was?
Hi, Wie schon angeprochen installiert der Treiber für den FT232 einen virtuellen COM Port, und dessen Baudrate kannst du ja entweder in der Systemsteuerung, in einem Terminalprogramm, in Deinem Sourcecode usw usw usw einstellen, genauso wie bei einem ganz normalen Com Port. Die Geschwindigkeit die da eingestellt wird entspricht genau der Geschwindigkeit zwischen FTDI Chip und Deinem Atmel... Stefan
Hallo Natürlich hast du bei der virtuellen COM den Nachteil, dass du nur die standard Baudraten fahren kannst. Durch die 8MHZ kann der ATMEGA diese krummen Baudraten nicht richtig darstellen. Aus diesem Grund wird der Fehler zu höheren Baudraten hin immer größer. Mein Tipp: Es gibt auch noch einen anderen Treiber für den FTDI, der auch auf der Homepage verfügbar ist, den D2XX-Treiber. Dort hat man was Baudraten angeht freie Wahl. Der Nachteil: Man sieht keine virtuelle Com. Man kann nur mittels Programmiersprache z.B. C auf die Treiber und somit auf das Gerät zugreifen, aber du kannst dann die volle Bandbreite von 500.000 Baud nutzen. Tschüss Martin
Hi man kann auch die VCP-Treiber so trimmen das sie andere Baudraten einstellen. IIRC geht das über die INF-Datei des Treibers. Der interpretiert dann die eingestellten Baudraten einer Apllikation einfach anderst. Auf der Seite von FTDI gibts irgendwo ein Dokument das das erklärt. Matthias
Hallo, ich habe auch gerade mit dem FT232 gespielt um eine möglichst hohe Übertragungsrate zu erhalten. Mein ATMEGA8 (16MHz) sendet mit 1MBaud und im Terminalprogramm (HTerm) habe ich auch 1MBaud eigestellt. Läuft bei mir unter virtuellem COM5 (war gerade frei). Es hat bei meinem ersten Versuch gleich geklappt (mit der Standartinstallation). Die Aussichten ohne großen Aufwand eine hohe Datenübertragung zu ermöglichen sind wohl groß. Gruss moin
HE DANKE, im Forum hier ist wohl viel Passiert, seit dem ich das letzte mal da war! So einfach geht das?! Ist ja super, also dann danke mal kollegen! Hat noch einer einen Tipp?, bis jetzt Programmiere ich uC in Assembler und die Windows Anwendungen in RapidQ-Basic. Was für Programmiersprachen sollte man heutzutage verwenden? MFG und vielen Dank Andreas
Also da hab ich jetzt auch noch ne Frage, wo wir grad dabei sind.... ich schreibe seit etlichen Jahren alle Programme nach wie vor unter DOS, das reicht für meine Zwecke (bin Hard-Warer, SW iss nix für mich, besinders seit Windows)! Kann ich wirklich ganz einfach, einen FTDI mit einer Schaltung verbinden (TX, RX) und dann so tun, als wäre das Gerät ein normales COM Gerät? Installiert der FTDI Treiber einen dritten COM? Was passiert, wenn ich zwei oder mehr dieser Geräte an mein USB anstöpsel? Beginnt dann das große Who-is-Who, oder gibt es da auch eine Lösung? Wäre für jeden Tipp dankbar... Gruß KB
Naja, unter DOS kannst Du mit USB-Geräten gar nicht kommunizieren, aber das ist Dir vermutlich auch klar. Der Schnittstellentreiber des FT232 und auch anderer USB-Seriell-Wandler installiert in der Tat eine weitere (virtuelle) serielle Schnittstelle, die sich aus Sicht darauf zugreifender Programme (fast) genauso verhält wie eine "echte". Es gibt kleine Unterschiede im Zeitverhalten, aber davon abgesehen sind die Dinger tatsächlich echte serielle Schnittstellen, Du wirst allerdings, wenn Du Programme schreiben möchtest, die unter Windows laufen und sinnvolle Dinge mit seriellen Schnittstellen anstellen sollen, Dich von Deiner DOS-Entwicklungsumgebung trennen müssen. DOS-Programme greifen mittels direkter Hardwarezugriffe auf serielle Schnittstellen zu und verwenden dazu keine Devicetreiber oder ähnliches (weil u.a. IBM zu blöd war, vernünftige Schnittstellentreiber in das BIOS einzubauen). Direkte Hardwarezugriffe werden unter Windows abgefangen und -sofern sie von DOS-Programmen ausgeführt werden- auf eine virtualisierte Hardware losgelassen. Die allerdings bildet nicht alle am Rechner angeschlossenen Geräte ab, sondern nur einige wenige Standardgeräte (COM1 & COM2 etc.). Eventuell funktioniert das noch mit COM3 und COM4, jenseits davon ist aber definitiv nichts mehr zu löten. Auch das Zeitverhalten dieser Virtualisierung ist alles andere als der Funktion förderlich, so daß auch für die Ansteuerung "echter" serieller Schnittstellen was anderes als DOS-Programme verwendet werden sollten. Du musst aber keine "Fenster"-Anwendungen schreiben, unter Windows gibt es das Konzept der Konsolapplikationen. Die laufen in diesen Textfenstern ("Eingabeaufforderung"), die oft fälschlich als "DOS-Fenster" bezeichnet werden. Konsolapplikationen sind aber echte Windows-Programme, mit Zugriff auf Windows-Gerätetreiber und ohne Segment-Krampf, linearem 32-Bit-Adressraum, Dateien mit Dateinamen (anstelle 8.3-Kürzeln) etc. Es lohnt sich. Obendrein kann man mit Multithreading in solch einer Konsolapplikation auch Dinge quasiparallel "im Hintergrund" ablaufen lassen, was auch sehr interessante Möglichkeiten eröffnet. Eine eineindeutige Zuordnung mehrerer FT232 zu den ihnen einmal zugewiesenen Schnittstellennummern lässt sich durch Anschluss eines seriellen EEPROMs und Vergabe einer Seriennummer an die FT232 hinbekommen. Bei der neuesten Inkarnation, dem FT232R, ist das EEPROM in den Chip integriert und von vornherein mit einer eineindeutigen Seriennummer programmiert. Der Treiber bietet für jeden installierten FT232 (oder 245) die Möglichkeit, dessen Schnittstellennummer festzulegen. Windows unterstützt 255 serielle Schnittstellen, COM1..COM9, \\.\COM10..\\.\COM255 (die andere Schreibweise ist bei der Ansteuerung von Schnittstellennummern größer 9 erforderlich). Viel Erfolg beim Lossagen von DOS.
Schau dir mal das aplicationboard von der Elektor für den r8c/13 an ! die nutzen einen PL2303x von Prolific. und für den gibt es sogar treiber(win98 bis W2k). ist eine wirkliche anternative zu RS232 gruß Maic
Da der PL2303 nichts anderes ist als ein USB-Seriell-Adapter (genauso wie FT232 und CP2102), sehe ich hier nicht so ganz, was da jetzt die "anternative" sein soll. Obendrein sind die Prolific-Adapter die am schlechtesten dokumentierten mit dem geringsten Support - gerade FTDI steht da doch etwas anders da.
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.