Hallo, ich bin dabei eine Lösung zu suchen eine bestehende Schaltung die mit einem ATmega128 arbeitet und via RS232 mit einem PC kommuniziert auf eine Kommunikation via USB umzustellen. Der Qualitätsanspruch der Lösung liegt am Ende da das man das Gerät in den Rechner einstecken können soll und es funktioniert ohne die Notwendigkeit irgendwelche virtuellen Schnittstellen einzurichten. Das Gerät um das es geht ist ein Optisches Messgerät. Ansätze die ich bis jetzt gefunden habe sind folgende: V-USB (http://www.obdev.at/products/vusb/index.html) als reine Software Lösung gefällt mir nicht wirklich, vor allem weil es relativ langsam arbeitet. Atmel AT90USB1286 scheint des ATmega128 ziemlich ähnlich zu sein was die Hoffnung aufkeimen lässt das die bestehenden Programme für den ATmega128 auch auf dem AT90USB1286 ohne oder nur mit minimalen Änderungen funktionieren. Diese Lösung wäre nur relevant wenn ich mit der Annahme das die Programme übertragbar sind richtig liege. Dann sehe ich die Möglichkeit einen ATmega128 mit einem Maxim MAX3420E oder einem FTDI FT2232H zu kombinieren. Bei dem Chip von Maxim ist aber auf der Homepage angegeben "All versions are Not Recommended for New Designs." ohne das eine Alternative angegeben ist. Da bin ich mir nicht sicher was ich davon halten soll. Auf der anderen Seite braucht der FT2232H einen zusätzlichen Treiber und kann nicht über einen Standard Treiber mit Windows kommunizieren. Das ist etwas was auch nicht so super ist. Mehr Lösungsansätze habe ich bis jetzt noch nicht gefunden. Grundsätzlich brauche ich am Ende eben irgendeine saubere Möglichkeit der Kommunikation zwischen PC und µC die mit einem möglichst geringem Installationsaufwand auf dem PC einhergeht. Mit welche Lösung sollte ich mich am ehesten weiterbeschäftigen? Martin
> V-USB gefällt mir nicht wirklich > vor allem weil es relativ langsam arbeitet. Ist deine bisherige serielle Schnittstelle etwa schneller? Du brauchst für jede "RS232 nach USB" Lösung einen Treiber, weil RS232 nicht wie z.B. HID fest im Betriebssystem eingbaut ist. > eine bestehende Schaltung die mit > einem ATmega128 arbeitet und via RS232 mit einem PC kommuniziert Und das mit wenig Aufwand auf USB umbiegen: nimm den FTDI.
Martin Karing schrieb: > Hallo, > > ich bin dabei eine Lösung zu suchen eine bestehende Schaltung die mit > einem ATmega128 arbeitet und via RS232 mit einem PC kommuniziert auf > eine Kommunikation via USB umzustellen. http://www.ftdichip.com/Products/FT232R.htm (Langsam sollten die mich dafuer bezahlen, dass ich ihnen so Werbung mache). > Der Qualitätsanspruch der Lösung liegt am Ende da das man das Gerät in > den Rechner einstecken können soll und es funktioniert ohne die > Notwendigkeit irgendwelche virtuellen Schnittstellen einzurichten. Diese Hoffnung ist Dir mit dem FT232 nicht genommen, da Du es mit Hilfe einer Software "direkt" ansprechen kannst, z.B. libftdi/libusb in Linux, so dass man den (in den Moeglichkeiten begrenzten) Umweg ueber eine virtuelle Seriellschnittstelle nicht gehen muss. Aber ganz ohne eine Form von Treiber kommst natuerlich nicht aus, fuer Deinen AT90USB braeuchtest auch einen und den duerftest Dir wahrscheinlich auch noch selber stricken. > Das Gerät um das es geht ist ein Optisches Messgerät. > > Ansätze die ich bis jetzt gefunden habe sind folgende: > V-USB (http://www.obdev.at/products/vusb/index.html) als reine Software > Lösung gefällt mir nicht wirklich, vor allem weil es relativ langsam > arbeitet. Wieviel Daten werden denn uebertragen? Wenn Du es sehr schnell brauchst, waere der FT245 auch eine Alternative, der macht dann bis zu 1MB/s USB Fullspeed per FIFO: http://www.ftdichip.com/Products/FT245R.htm > Atmel AT90USB1286 scheint des ATmega128 ziemlich ähnlich zu sein was die > Hoffnung aufkeimen lässt das die bestehenden Programme für den ATmega128 > auch auf dem AT90USB1286 ohne oder nur mit minimalen Änderungen > funktionieren. Diese Lösung wäre nur relevant wenn ich mit der Annahme > das die Programme übertragbar sind richtig liege. Haha :P Der war gut :D Minimale Aenderungen hast bei der USART-Loesung, da kann der Controller-Teil im Prinzip bleiben wie er ist. FIFO muesstest dann umstellen. Alles andere wird komplizierter. > Dann sehe ich die Möglichkeit einen ATmega128 mit einem Maxim MAX3420E > oder einem FTDI FT2232H zu kombinieren. Bei dem Chip von Maxim ist aber > auf der Homepage angegeben "All versions are Not Recommended for New > Designs." ohne das eine Alternative angegeben ist. Da bin ich mir nicht > sicher was ich davon halten soll. Auf der anderen Seite braucht der > FT2232H einen zusätzlichen Treiber und kann nicht über einen Standard > Treiber mit Windows kommunizieren. Das ist etwas was auch nicht so super > ist. Wo ist jetzt das Problem? Unter Linux brauchst z.B. keinen weil der laengst im Standardkernel ist. Dass Windows kaum Treiber mitliefert ist doch bekannt, was erwartest Du bitteschoen? > Mehr Lösungsansätze habe ich bis jetzt noch nicht gefunden. Sind genug, entscheide Dich. > Grundsätzlich brauche ich am Ende eben irgendeine saubere Möglichkeit > der Kommunikation zwischen PC und µC die mit einem möglichst geringem > Installationsaufwand auf dem PC einhergeht. Du meinst ohne. Und Deine Software sollte man natuerlich auch nicht installieren muessen... aber das Einstecken am USB-Port ist jetzt nicht zu viel Aufwand, oder? Greets, Michael
Wenn es sich um ein Einzelstück handelt und das Problem nicht die Übertragungsrate ist, würde ich nicht lange fackeln und mir einen USB-RS232 Stick kaufen. Die 5 Euro für den Stick hast du mit 10 Minuten Recherche schon längst aufgebraucht.
Erstmal danke für die vielen Antworten. @Lothar Miller: Natürlich ist die RS232 Schnittstelle nicht unbedingt schneller. Aber schon jetzt kommt die RS232 mit der Datenübertragung nicht hinterher und in absehbarer Zukunft wird die Menge der Daten noch steigen was nicht unbedingt für eine RS232 Schnittstelle spricht. @Michael G.: Das mit den minimalen Änderungen ist falsch rübergekommen. Der µC macht noch ein paar Sachen die nichts direkt mit der Datenübertragung zu tun haben. Der agiert z.b. als SPI Master und wertet die Messdaten zur Kalibrierung des Messgerätes aus. Ich habe diese Anteile gemeint bei denen ich höchstens kleine Änderungen erhoffe. Das die Umstellung von RS232 auf USB mit gröberen Änderungen einher geht ist mir klar. Aber ich will nicht unbedingt eine Quick & Dirty Lösung indem ich USB direkt auf RS232 umsetze und den µC einfach so weiterarbeiten lasse wie bisher. Martin
Welche Datenraten brauchst denn ueberhaupt. Wenn bisher eine einfache RS232 gereicht hat, brauchst doch jetzt nicht auf einmal USB HighSpeed, oder?
Oder so etwas hier: http://www.vinculum.com/prd_vdip1.html kommuniziert mit dem MC u.a. auch über UART, ist in Deinem Falle also vielleicht einfach einzubinden. Viele Grüsse Michael
Du kannst auch einen kleinen Atmega 16U2 oder den Vorgänger 90USB162 nehmen, dort ein Generic HID oder ein CDC USB Device aufsetzen und das ganze mit dem vorhandenen M128 koppeln. HID und CDC sind Standard USB Geräteklassen und ohne Treiber benutzbar. fchk
Frank K. schrieb: > HID und CDC sind Standard USB > Geräteklassen und ohne Treiber benutzbar Für CDC brauchst du unter Windows einen Treiber. Mit der HID Device-Class bist du auf max. 64KB je Kanal beschränkt.
Ja und was glaubst du macht das inf-File? Es ist vollkommen egal ob ich "nur" ein inf-File oder auch ein sys-File ausliefern muss. Sobald Windows das Gerät nicht wie bei HID automatisch erkennt, hat man als Hersteller von dem Gerät sehr viel Ärger und Arbeit. Man muss sich um die "DAU-sichere" Installation des Treibers kümmern, um Updates, den Treiber an neue Windows Versionen anpassen, neuerdings auch alles von Microsoft signieren lassen, ...
Mars schrieb: > Es ist vollkommen egal ob ich "nur" ein inf-File oder auch ein sys-File > ausliefern muss. Das glaubst Du spätestens dann nicht mehr, wenn Du ein sys-File selber programmieren darfst.
Schau dir mal den AT90USBKey an, der ist schick und für solche Aufgaben gibt es CDC-Beispiele, ganz easy, UŚB powered und alles was mit USB zu tun hat ist fest onboard, keine Löterei. Alle Ports sind auf Stiftleisten nach aussen geführt.
Frank K. schrieb: > Das glaubst Du spätestens dann nicht mehr, wenn Du ein sys-File selber > programmieren darfst. Keiner hat was von selber programmieren gesagt. Es gibt ja bereits genug generische USB-Treiber. Sei es als OpenSource, vom Chiphersteller, gegen $ oder von Microsoft.
Der AT90USB ist ganz nett, unterstützt Full-Speed USB OTG, allerdings wird es bei 8MHz @3.3V eng, wenn man wirklich die USB Full-Speed Datenrate ausschöpfen will.
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.