Frage

Ich verwende Beaglebone nicht Beaglebone Black.

Ich habe gerade versucht, ein PWM auszugeben, und ich erwartete potenzielle Frequenzen einiger Megaherz auf einem solchen schnellen Gerät.
Ich fand heraus, dass 100Hz das genaue Maximum ist, das ich durch Sysfs einstellen kann.
Ich habe angefangen, online für Beispiele zu graben, und sie erwähnte keine Grenze, aber sie zeigten auch keinen Wert schneller als 100 Hz.

Beispiel:

generasacodicetagpre.

Jeder 10cret AVR kann eine schnellere PWM als das tun.
Gibt es einen Trick, den ich vermisst habe?
Muss ich wirklich einen benutzerdefinierten PWM von Manuallz, um GPIO zu schaffen, wenn ich eine schnellere Häufigkeit als 100 Hz möchte?!

War es hilfreich?

Lösung

Ich habe die Lösung tatsächlich kurz nach der Eröffnung meiner Frage gefunden.
Ich werde es hier posten, wie ich denke, dass dies tatsächlich mehr verursacht, als nur ich mich wundern kann :)

Die PWM-Frequenz ist natürlich nicht so beschränkt, dass auf einem 1-GHz-Gerät der Kernel-Treiber einfach nicht auf dieselbe Weise funktioniert, wie man erwarten würde.

Wenn Sie einen diensthabenden Wert (wie 1 Prozent) eingeben (wie 1 Prozent), scheint der Fahrer den Wert des Duty_NS-Werts zu berechnen und vergessen Sie danach Prozent.
Ein normaler Benutzer würde denken, er ist in "Prozentmodus", aber eigentlich ist die prozentuale Datei nur an einen Wrapper gebunden, um zu helfen.
Das gleiche zählt für die häufigkeit!
Wenn Sie nun die Frequenz auf einen höheren Wert ändern, prüft der Kernel, ob der Duty_NS-Zykluszeitraum in die neue Gesamtperiode-Periode-Periode! Es ignoriert, dass Sie tatsächlich einen Prozentsatz einstellen!

Natürlich können Sie natürlich keinen In-Frist haben, der größer als der gesamte Zeitraum ist, so dass es fehlschlägt.

Langer Text kurze Zusammenfassung:
Set immer dutell_cycle auf Null, bevor Sie die Häufigkeit einstellen, wenn der vorherige Wert nicht in den neuen Zeitraum passt, vermeidet dies Frustration.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top