Forum: Mikrocontroller und Digitale Elektronik PWM-Werte beim Raspberry Pi Pico


von Florian Wilhelm (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

heute ist mir beim Herumspielen mit dem Pi Pico etwas Merkwürdiges 
aufgefallen.

Lt. Datenblatt RP2040 Kapitel 4.5 verfügt die (HW-) PWM über einen 16bit 
Counter.

Also nach meiner Rechnung ein range von 0 (entsprechend 0% Tastgrad) bis 
65.535 (entsprechend 100% Tastgrad).

Mit einem Oszi auch leicht zu überprüfen bzw. zu sehen.

So weit so gut.

Nun hab ich mal aus Neugier größere Werte als 65.535 rausgeschickt.

Der Tastgrad bleibt merkwürdigerweise auf vollen 100% bis zum Wert von 
68.717 (auch gut auf Oszi sichtbar, siehe Anhänge). Ab dem Wert 68.718 
springt er auf dann urplötzlich auf 0%.

Ich weiss mit diesen Werten partout nichts anzufangen. Wo kommen die 
her?
Subtrahiere ich bsp. 65.536 von 68.718 erhalte ich 3.182, aber der Wert 
ist ebenfalls nichtssagend da keine 2er Potenz oder sowas.

Danke für eure Hilfe.

von Wolfgang (Gast)


Lesenswert?

Florian Wilhelm schrieb:
> Danke für eure Hilfe.

Guck in der Doku und im Source Code zu pwm.duty_u16 wie die übergebenen 
Werte verarbeitet werden und was letztendlich ins PWM-Register 
geschrieben wird.

Ansonsten gilt: "PWM.duty_u16([value])
Get or set the current duty cycle of the PWM output, as an unsigned 
16-bit value in the range 0 to 65535 inclusive.", d.h. die von dir 
verwendeten Werte liegen außerhalb der Spezifikation und können damit zu 
einem beliebigen Ergebnis führen.
https://docs.micropython.org/en/latest/library/machine.PWM.html

von Florian Wilhelm (Gast)


Lesenswert?

Danke Wolfgang!

von mIstA (Gast)


Lesenswert?

Florian Wilhelm schrieb:
> springt er auf dann urplötzlich auf 0%.

Sinds wirklich exakt 0% oder könntens auch 0,17% sein?

Florian Wilhelm schrieb:
> Subtrahiere ich bsp. 65.536 von 68.718 erhalte ich 3.182,
> aber der Wert ist ebenfalls nichtssagend da keine 2er Potenz
> oder sowas.

Na ja, er ist zumindest recht nah an der Summe 2er aufeinander folgenden 
2er Potenzen: 2^10 + 2^11 + 10*11 = 3182

Und 110 als PWM-Wert wären eben ~0,17%.

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.