Forum: Mikrocontroller und Digitale Elektronik Wie gut funktioniert V-USB CDC?


von Frager (Gast)


Lesenswert?

Mich interessieren besonders die Versionen mit PLL zur Taktgewinnung. 
Datenraten sind klein, klar, aber das ist oft nicht schlimm.
Also zur Frage, wie gut funktionierts? Was macht am ehesten Probleme, 
wenn man Spannung korrekt versorgt (ohne LED-'Spannungsregler') usw?
Welche Latenz kann man im Loopback erwarten von Paket über USB 
rausschicken bis es wieder da ist?

von Karl M. (Gast)


Lesenswert?

Hallo,

Aufbauen und Testen ist angesagt, USB hat da einen Puffer und 1ms 
Ticks..

Probleme machen die Treiber unter WinOS. Unter Linux geht das i.a. 
problemloser, wenn man die Rechte richtig gesetzt hat.

von Karl M. (Gast)


Lesenswert?

Nachtrag damit habe ich auch mal angefangen:

http://www.recursion.jp/prose/avrcdc/

von Frager (Gast)


Lesenswert?

Ja, ich werde selber testen, aber was andere getestet haben kann ich mir 
ja auch anlesen ;)

von matrixstorm (Gast)


Lesenswert?

Also V-USB an sich funktioniert schon ziemlich gut (auch wenn da die 
Meinung hier im Forum gespalten ist)
Allerdings bezieht sich diese Aussage auf low-speed: Meist also eigene 
Protokolle oder USB-HID.
CDC ist eine full-speed Klasse die bulk Transfers benötigt (für 
low-speed nicht spezifizierte Transferart).
Alte Betriebssysteme haben das ignoriert. HEUTE allerdings erlaubt das 
nichteinmal Linux. DU SOLLTEST DAHER DIE FINGER VON DIESER V-USB CDC 
IMPLEMENTIERUNG LASSEN.

Wenn du mags sehe dir doch mal das tinyUSBboard Projektchen an: 
http://matrixstorm.com/avr/tinyusbboard.
Auf https://github.com/tinyusbboard gibt es einen hid-serial quelöcode 
der sowas aehnliches wie  cdc allerdings per eigenem Protokoll und ohne 
bulk macht.

MfG

von Frager (Gast)


Lesenswert?

Ja, du hast wohl recht, CDC ist zu sehr gegen die Norm, also werde ich 
mit HID anfangen und ggf was eigenes bauen.

von Volker S. (vloki)


Lesenswert?

Frager schrieb:
> Ja, du hast wohl recht, CDC ist zu sehr gegen die Norm, also werde
> ich
> mit HID anfangen und ggf was eigenes bauen.

Warum nicht einfach einen Controller mit integriertem USB-Modul nehmen?

von Flip B. (frickelfreak)


Lesenswert?

Der Treiber ist nur in den windowstreiber geflickt. Funktioniert ab 
windows 10 nicht mehr, da die basis usbser.sys von Microsoft neu 
geschrieben wurde.

von Frager (Gast)


Lesenswert?

Volker S. schrieb:
> Frager schrieb:
>> Ja, du hast wohl recht, CDC ist zu sehr gegen die Norm, also werde
>> ich
>> mit HID anfangen und ggf was eigenes bauen.
>
> Warum nicht einfach einen Controller mit integriertem USB-Modul nehmen?

Kurz: Isoliertes USB, BOM Kosten, Platz. Bitte hier keine Diskussion 
über Alternativen, die sind wohl hinlänglich bekannt

von Frager (Gast)


Lesenswert?

Flip B. schrieb:
> Der Treiber ist nur in den windowstreiber geflickt. Funktioniert ab
> windows 10 nicht mehr, da die basis usbser.sys von Microsoft neu
> geschrieben wurde.

Das gilt für CDC?

von Volker S. (vloki)


Lesenswert?

Noch was zur "Norm"

Wenn ich mich richtig erinnere, ist HID Low-Speed Intrerrupt Transfer, 
mit max 8Bytes alle 10ms -> 800 Bytes/s. Reicht dir das?

(isoliertes USB, Kosten, Platz verstehe ich nicht ;-)

: Bearbeitet durch User
von Frager (Gast)


Lesenswert?

Volker S. schrieb:
> Noch was zur "Norm"
>
> Wenn ich mich richtig erinnere, ist HID Low-Speed Intrerrupt Transfer,
> mit max 8Bytes alle 10ms -> 800 Bytes/s. Reicht dir das?

Ja, ist für den Anfang okay

> (isoliertes USB, Kosten, Platz verstehe ich nicht ;-)

seufz Also gut. USB ist schwer galvanisch zu trennen (siehe auch 
ADuM4160). Leicht ist es, einen uC vom Bus zu versorgen, damit USB zu 
empfangen und zB SPI oder UART draus zu machen und die zu isolieren.
ADuM4160 ist ausserdem relativ teuer (aber ist ja nur Geld), vorallem 
aber sehr gross.

von Frank K. (fchk)


Lesenswert?

Frager schrieb:
> Volker S. schrieb:
>> Frager schrieb:
>>> Ja, du hast wohl recht, CDC ist zu sehr gegen die Norm, also werde
>>> ich
>>> mit HID anfangen und ggf was eigenes bauen.
>>
>> Warum nicht einfach einen Controller mit integriertem USB-Modul nehmen?
>
> Kurz: Isoliertes USB, BOM Kosten, Platz. Bitte hier keine Diskussion
> über Alternativen, die sind wohl hinlänglich bekannt

PIC16F1454. Echtes Full Speed USB zu einem unschlagbaren Preis, und im 
QFN oder SSOP ist der Platzbedarf auch nicht größer als der eines Tiny85 
im SO08.

Die Macher von blink(1) (*) haben zB Ihr VUSB-Design in die Tonne 
gedrückt und durch diesen PIC ersetzt, weil sie oft Probleme zB an 
USB3-Ports hatten. Nur mal so als Info aus dem Markt.

(*)http://buy.thingm.com/blink1

von Clemens L. (c_l)


Lesenswert?

Frank K. schrieb:
> PIC16F1454. Echtes Full Speed USB zu einem unschlagbaren Preis

EFM8UB10F8G

von Volker S. (vloki)


Lesenswert?

Frager schrieb:
> seufz Also gut. USB ist schwer galvanisch zu trennen

V-USB ist dann wohl einfacher zu trennen?
(WO ist der Unterschied, ob jetzt hinter einem V-USB oder hinter einem 
"echten" USB Controller getrennt wird)


Frager schrieb:
> Bitte hier keine Diskussion
> über Alternativen, die sind wohl hinlänglich bekannt

Echt? Wie kommt man denn dann auf die Idee V_USB zu verwenden?

: Bearbeitet durch User
von Rolf M. (rmagnus)


Lesenswert?

Volker S. schrieb:
> (isoliertes USB, Kosten, Platz verstehe ich nicht ;-)

Das sind die Teile, die ich verstehe. Aber was ein BOM ist, weiß ich 
nicht. Wikipedia schlägt die "Bank of Maharashtra" vor, sowie einige 
andere ähnlich gut passende Begriffe.

von ... (Gast)


Lesenswert?

Rolf M. schrieb:
> Volker S. schrieb:
>> (isoliertes USB, Kosten, Platz verstehe ich nicht ;-)
>
> Das sind die Teile, die ich verstehe. Aber was ein BOM ist, weiß ich
> nicht. Wikipedia schlägt die "Bank of Maharashtra" vor, sowie einige
> andere ähnlich gut passende Begriffe.

https://de.wikipedia.org/wiki/BOM

"Bill of materials, siehe Stückliste"

von Volker S. (vloki)


Lesenswert?

Rolf M. schrieb:
> Volker S. schrieb:
>> (isoliertes USB, Kosten, Platz verstehe ich nicht ;-)
>
> Das sind die Teile, die ich verstehe. Aber was ein BOM ist, weiß ich
> nicht. Wikipedia schlägt die "Bank of Maharashtra" vor, sowie einige
> andere ähnlich gut passende Begriffe.

Mit nicht verstehen meinte ich eigentlich wieso die als Argumente als 
"pro V-USB" hier angeführt werden ;-)

- isoliertes USB -> wo bitte wäre der Unterschied?
- Kosten -> noch billiger* als 50ct..1€?
- Platz -> weniger* Platz als die genannten uC im qfn16/20 oder TSSOP14
- BOM -> auf welchem uC läuft V-USB mit weniger* Beschaltung als bei den 
genannten USB uC?


* die genannten uC laufen mit internem Oszillator

von Clemens L. (c_l)


Lesenswert?

Volker S. schrieb:
> - isoliertes USB -> wo bitte wäre der Unterschied?

Alternative 1:
1
+----+  USB  +------------+
2
| µC |-------| Isolierung |--...
3
+----+       +------------+

Alternative 2:
1
+----+  +------------+  SPI/UART  +----------+  USB
2
| µC |--| Isolierung |------------| Hilfs-µC |------...
3
+----+  +------------+            +----------+

Unidirektionale Isolierung ist einfacher und billiger, aber damit die 
zweite Alternative insgesamt billiger ist, gibt es eine Obergrenze für 
den Preis des Hilfs-µC. (Und die Annahme war, dass nur ein AVR darunter 
fällt.)

Frager schrieb:
> Bitte hier keine Diskussion über Alternativen

:-D

: Bearbeitet durch User
von Volker S. (vloki)


Lesenswert?

Na ja, mir ging es eigentlich NUR um den "Hilfs-uC"
Ob der ein echter USB uC oder ein nicht USB uC mit V-USB ist...

Volker S. schrieb:
> V-USB ist dann wohl einfacher zu trennen?
> (WO ist der Unterschied, ob jetzt hinter einem V-USB oder hinter einem
> "echten" USB Controller getrennt wird)

: Bearbeitet durch User
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.