low-speed USB und Keep Alives

Gast #3704599
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
Gast #3704803
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?
#3704850
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. ;)
Gast #3704894
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.