Forum: Mikrocontroller und Digitale Elektronik USB Serial Port Implementierung für AVR?


von Karl K. (karl_k69)


Lesenswert?

Hi,

nach dem Google mich immer nur zum V-USB (=HID) schickt, frage ich doch 
mal hier: gibt es für die kleinen ATMegas ohne eigenes 
Hardware-USB-Interface auch eine Software-only Implementierung eines 
seriellen Interfaces über USB? Sprich eine Lösung bei der sich mein 
Controller dann als COMx bzw. /dev/ttyUSBx bzw. /dev/ttyACMx auf dem 
Host-PC meldet? Oder scheitert das an der mangelnden Rechenleistung?

Danke!

Karl

von Uwe (de0508)


Lesenswert?

Hallo Karl,

schau mal hier:

https://www.obdev.at/products/vusb/index.html

Für die Rechenleistung ist ein Quarz >= 12MHz notwendig.

von Clemens L. (c_l)


Lesenswert?

Karl K. schrieb:
> gibt es [...] eine Software-only Implementierung eines
> seriellen Interfaces über USB?

Software-only geht nur für Protokolle, die Low-Speed-USB verwenden 
können. Serielle Interfaces (und praktisch alles andere außer HID) 
setzen mindestens Full Speed voraus.

von goo (Gast)


Lesenswert?


von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Und hier ist doch ein CDC für V-USB:
https://www.obdev.at/products/vusb/prjinterface.html
http://www.recursion.jp/avrcdc/
Man beachte:
> Although it goes somewhat beyond the USB specification,
> it works on all major operating systems.

Denn, wie oben schon gesagt, verlangt CDC eigentlich Full Speed. Geht 
aber meistens doch, wenn du nicht gerade Win98 damit beglücken willst.

von c-hater (Gast)


Lesenswert?

Karl K. schrieb:

> nach dem Google mich immer nur zum V-USB (=HID) schickt

Womit Google völlig richtig liegt, denn V-USB ist eben !=HID. Mit V-USB 
geht alles, allerdings gibt es leider Grenzen, die aber außerhalb der 
Einflußmöglichkeiten von V-USB liegen.

> frage ich doch
> mal hier: gibt es für die kleinen ATMegas ohne eigenes
> Hardware-USB-Interface auch eine Software-only Implementierung eines
> seriellen Interfaces über USB?

Klares ja. Und allein die Frage ist der ultimative Beweis, daß du die 
von Google gefundene Website nicht wirklich gelesen hast, sonst wüßtest 
du das selber.

> Oder scheitert das an der mangelnden Rechenleistung?

Nein, es scheitert eigentlich an eine Form von "Paragraphenreiterei" 
oder "Standard-Schmalspuritis" oder wie immer man das nun nennen will. 
Es ist einfach so, daß der USB-Standard aus unerfindlichen Gründen 
einerseits für ein LowSpeed-Geräte (und das ist V-USB) Bulk-Transfers 
verbietet, sie andererseits aber für USB-ACM (also serielle 
Schnittstelle in der grundlegendsten Variante) zwingend einfordert.

"Unerfindlich" ist das deshalb, weil es keinerlei technischen Grund 
dafür gibt, LowSpeed-Geräten Bulk-Transfers zu verbieten. Der Beweis 
dafür ist, daß jahrelang V-USB-Lösungen, die eben dies implementiert 
haben, mit allen gängigen OS problemlos liefen.

Bis dann die "Standard-Schmalspurer" kamen und den USB-Treibern der 
Betriebssysteme die extrem schwachsinnige, künstliche und technisch 
sinnlose Durchsetzung der Restriktion auferlegt haben.

Der einzige wirkliche Grund sind die wirtschaftlichen Interessen der 
Mitglieder des Standardisierungsgremiums. Das liebe Geld, wie immer...

von Frank K. (fchk)


Lesenswert?

Es ist einfach der beschränkte Horizont der Leute, die zur Verbreitung 
von Pfuschlösungen wie VUSB führen. Es ist ja nicht so, dass es keine 
Alternativen gäbe. Ein PIC16F1454 kostet genauso viel, hat aber 
Full-Speed USB Hardware und einen kostenlosen USB-Stack von Microchip. 
Komplett mit Zertifizierung des USB Implementers' Forums. Wer will, 
bekommt den Chip auch in DIL. Die minimale Beschaltung sieht man hier:

https://hackaday.io/project/6258-two-component-usb-temperature-data-logger

Man kann die Leute halt nicht zu ihrem Glück zwingen.

fchk

von Karl K. (karl_k69)


Lesenswert?

Frank K. schrieb:

> Es ist einfach der beschränkte Horizont der Leute

Und das ist schlichtweg großkotzige Dummschwätzerei - einfach mal 
Beleidigungen verteilen ohne auch nur irgend was über die technischen 
Gegebenheiten zu wissen. Vielleicht kann man gar keinen PIC verwenden? 
Vielleicht geht es um eine existierende Lösung, die aus 'zig 
unumgehbaren Gründen nicht modifiziert werden kann? Aber Hauptsache, 
erst mal auf den Putz hauen.

von Guest (Gast)


Lesenswert?

hihi, in einem Board in dem erwartet wird, daß man Elektromeister ist 
ind VDE studiert hat um eine Glühbirne zu wechseln wird eine 
Bastellösung wie VUSB die gegen alle Standards vertstößt verteidigt und 
jemand der einem der größten Pöbeler hier im gleichen Ton antwortet wird 
als Dummschwätzer bezeichnet.

Lauter Koniferen hier ....

von Frank K. (fchk)


Lesenswert?

Karl K. schrieb:
> Frank K. schrieb:
>
>> Es ist einfach der beschränkte Horizont der Leute
>
> Und das ist schlichtweg großkotzige Dummschwätzerei - einfach mal
> Beleidigungen verteilen ohne auch nur irgend was über die technischen
> Gegebenheiten zu wissen.

> Vielleicht kann man gar keinen PIC verwenden?
Das liegt dann meistens an der Unfähigkeit oder Bequemlichkeit der 
Leute, für die es nicht anderes als AVR gibt. Ich lese hier schon 
ziemlich lange mit und habe so meine Erfahrungen gemacht. Dies ist eine 
davon.
Es gibt auch nette USB-ÄRMchen, so ist das nicht. Aber der PIC16F1454 
ist halt die kleinste, einfachste und billigste Lösung, Hardware-USB2 zu 
bekommen. Nicht einmal einen Quarz brauchst Du hier, weil der USB Host 
einen exakten Takt liefern muss.

Wie gesagt, es ist ja nicht so, dass es keinen Ausweg gibt. Selbst Atmel 
hat AVRs mit USB-Hardware. Nur eben halt nicht im DIL-Package.

> Vielleicht geht es um eine existierende Lösung, die aus 'zig
> unumgehbaren Gründen nicht modifiziert werden kann?

Unter diesen Umständen sich einen so invasiven Code wie VUSB 
reinzuholen, wenn möglichst wenig verändert werden darf, ist in höchstem 
Maße leichtsinnig. Für solche Szenarien gibts USB-Seriell-Bridges. Wenn 
Du dann ACM-CDC haben willst, greifst Du einfach zu MCP2200 oder MCP2221 
(das sind in Wirklichkeit vorprogrammierte PIC18F14K50 bzw PIC16F1455, 
aber das musst DU ja niemandem erzählen :-)), und fertig ist die 
Geschichte.

> Aber Hauptsache,
> erst mal auf den Putz hauen.

Genau. Und Wahrheiten aussprechen, die niemand hören will.

fchk

: Bearbeitet durch User
von Karl_K (Gast)


Lesenswert?

Frank K. schrieb:
> Genau. Und Wahrheiten aussprechen, die niemand hören will.

Nein, das ist nichts weiter als nutzlose Informationen.

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.