Forum: Mikrocontroller und Digitale Elektronik low-speed USB und Keep Alives


von mwalle (Gast)


Lesenswert?

Hallo zusammen,

gibt es hier einen USB Experten? Ich möchte V-USB auf einem attiny45 
einsetzen. Dazu will ich den internen RC nutzen, der mit Hilfe der 
Tokens auf dem USB kalibriert wird.

Dazu hat V-USB auch schon passende Funktionen, die jeweils die Zeit 
zwischen zwei keep-alive Pulsen messen. In dem V-USB Code wird 
allerdings angenommen, dass diese Pulse nur alle 1ms kommen. Wenn ich 
die USB Spezifikation (siehe Kapitel 11.8.4.1 in der USB 2.0 Spec) 
allerdings richtig verstehe, werden Keep-alives mindestens von jedem SOF 
generiert, können aber auch von jeden anderen Token generiert werden.

Habe ich da nun einen Denkfehler, oder funktioniert das so wie V-USB das 
macht nur deshalb, weil die meisten USB-Hubs nur aus den SOF Tokens 
Keep-alive Pulse generieren?

-michael

von Detlef K. (adenin)


Lesenswert?

Was erwartest Du für keep-alive Pulse?
Im Lowspeed-Modus gibt es nur SOF aller 1ms, wenn keine Daten auf dem 
Bus übertragen werden.

von holger (Gast)


Lesenswert?

>Ich möchte V-USB auf einem attiny45
>einsetzen. Dazu will ich den internen RC nutzen, der mit Hilfe der
>Tokens auf dem USB kalibriert wird.

Ach, mein Gott. Zieh dir nen Controller der USB per
Hardware kann. Was soll dieses ewige rumgehampel mit
proprietären Lösungen die nur Ärger machen?
Zu teuer? Einen Euro sparen?

von Detlef K. (adenin)


Lesenswert?

holger schrieb:
>>Ich möchte V-USB auf einem attiny45
>>einsetzen. Dazu will ich den internen RC nutzen, der mit Hilfe der
>>Tokens auf dem USB kalibriert wird.
>
> Ach, mein Gott. Zieh dir nen Controller der USB per
> Hardware kann. Was soll dieses ewige rumgehampel mit
> proprietären Lösungen die nur Ärger machen?
> Zu teuer? Einen Euro sparen?

Du solltest die Bedeutung von proprietär noch mal nachschlagen, bevor 
du sie noch mal verwendest. ;)

von mwalle (Gast)


Lesenswert?

Detlef Kunz schrieb:
> Was erwartest Du für keep-alive Pulse?
> Im Lowspeed-Modus gibt es nur SOF aller 1ms, wenn keine Daten auf dem
> Bus übertragen werden.

Naja so wie ich das sehe, gibt es im low-speed gar keine SOF Tokens. 
Sondern eben nur keep-alive pulses, die vom Hub aus den SOF Tokens 
generiert werden. Aber eben auch aus anderen Tokens.

Aus der USB 2.0 spec hierzu:
> The following rules for generation of a low-speed keep-alive must be adhered to:
>  * A keep-alive must minimally be derived from each SOF. It is recommended
>    that a keep-alive be generated on any valid full-speed token.
>  * The keep-alive must start by the eighth bit after the PID of the full-speed
>    token.

Das heißt für mich aber, dass man ohne extra Logik nicht einfach die 
keep-alives für eine 1ms Synchronisation nehmen. Da im schlechtesten 
Fall, zwischen den keep-alive pulsen, die aus den SOF Tokens abgeleitet 
werden auch Pulse von anderen tokens kommen können.

von Detlef K. (adenin)


Lesenswert?

Ah ja, stimmt ja, Lowspeed bekommen den SOF ja nicht.
Aber der SOF wird als EOP an den LowSpeed weitergegeben.
Also auch aller 1ms.

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.