Ich entwickle eine Hochgeschwindigkeits-USB-Firmware für den STM32F746VG , und auf Seite 1411 (unter Abschnitt 37.16.3, Schritt 2) wird mir mitgeteilt, dass ich den Start von Frame-Interrupts aktivieren soll.
Ich weiß, dass USB-Hosts im Hochgeschwindigkeitsmodus alle 125 uS ein Start-of-Frame-Paket senden, aber warum sollte sich mein Gerät um SOF-Pakete kümmern, abgesehen von der Zeitmessung? Was könnte ich möglicherweise in einer Interrupt-Service-Routine tun, die bei jedem Start eines Frame-Pakets ausgelöst wird?
Ich glaube, der ursprüngliche Beginn des Frame-Interrupts von 1 ms (1 kHz) sollte Geräten ein billiges, aber genaues Timing geben. Die Genauigkeitsspezifikation dafür ist ziemlich eng.
Wenn Sie kein genaues Timing benötigen oder Ihren eigenen Kristall haben, müssen Sie nicht wissen, wann USB-Frames starten. Der Host initiiert alle Transaktionen, auch wenn Sie senden, sodass Ihre Hardware und Firmware auf diese Weise wissen, wann was zu tun ist.
Ich habe eine Reihe von USB-Geräten erstellt und die Start-of-Frame-Erkennung bisher überhaupt nicht verwendet. Wenn Sie eine vorgefertigte Bibliothek verwenden, verwendet die Bibliothek SOF möglicherweise für ein internes Timing oder um zu wissen, wann sie den Haushalt führen muss. Wenn die Bibliotheksdokumentation besagt, dass Sie SOF benötigen, dann benötigen Sie SOF.
Eugen Sch.
John M
Eugen Sch.