Forum: Mikrocontroller und Digitale Elektronik PWM-Signal weiterverarbeiten


von hEiko (Gast)


Lesenswert?

Hallo,

wie würdet ihr ein PWM-Signal mit einem Controller weiterverarbeiten?

-PWM-Filter + Lastwiderstand und den Spannungswert am Last-R per ADC 
einlesen

oder

-PWM-Signal direkt an einem Portpin "einsampeln" und das 
HI/LO-Verhältnis in einen Spannungswert umrechnen?


Gibt es auch noch andere Möglichkeiten?

: Verschoben durch Moderator
von Michael (Gast)


Lesenswert?

hEiko schrieb:
> Gibt es auch noch andere Möglichkeiten?

Auszählen.
Um was für Frequenzen geht es überhaupt? Ehr um 100Hz oder um 1MHz?
Und jetzt sag nicht: "dazwischen"

von Kai S. (kai1986)


Lesenswert?

Hallo,

pauschal lässt sich das nicht beantworten. Ist es z.B. ein 100 Hz 16 Bit 
PWM Signal (bei dem die Auflösung auch benötigt wird) ist es günstiger 
das Tastverhältnis über einen Digitaleingang zu erfassen. Bei einem 
100kHz 8 Bit Signal wäre sicher der ADC mit Filter geschickter.
Mit mehr Informationen von deiner Seite können wir dir besser helfen 
(was hast du, was möchtest du).

Gruß Kai

von hEiko (Gast)


Lesenswert?

Danke für die Antworten!

Tut mir leid, ganz vergessen, das Signal hat 200Hz und 8bit Auflösung. 
Auf einem LCD soll die aktuelle (gemessene) PWM-Spannung nach 
Möglichkeit mit der Originalauflösung (also wieder 8 bit) dargestellt 
werden.

von hEiko (Gast)


Lesenswert?

Gibt es noch weitere Ideen, Hinweise oder Anregungen zum Thema?

von Michael (Gast)


Lesenswert?

hEiko schrieb:
> Tut mir leid, ganz vergessen, das Signal hat 200Hz und 8bit Auflösung.

Dann müßtest du also mit einer Taktfrequenz von 51,2kHz die Pulsdauer 
ausmessen. Das ist doch machbar.

von Timm T. (Gast)


Lesenswert?

Das lässt sich doch gut über einen Interrupt erfassen. Bedenke, dass 
PWM-Spannung = Signalspannung x Tastverhältnis ist.

von hEiko (Gast)


Lesenswert?

Danke an euch für die Antworten!

Michael schrieb:
> das Signal hat 200Hz und 8bit Auflösung.
>
> Dann müßtest du also mit einer Taktfrequenz von 51,2kHz die Pulsdauer
> ausmessen. Das ist doch machbar.

Wie kommst du auf den krummen Wert?


Timm Thaler schrieb:
> Das lässt sich doch gut über einen Interrupt erfassen.

Also so:
der Interrupt wird immer aktiviert, wenn sich der Zustand am Pin ändert
?

von Michael (Gast)


Lesenswert?

hEiko schrieb:
> Wie kommst du auf den krummen Wert?
200 Hz * 2^8
Damit würde man direkt bei den 8 Bit landen. Schneller geht natürlich 
auch.

von c-hater (Gast)


Lesenswert?

hEiko schrieb:

> wie würdet ihr ein PWM-Signal mit einem Controller weiterverarbeiten?
>
> -PWM-Filter + Lastwiderstand und den Spannungswert am Last-R per ADC
> einlesen
>
> oder
>
> -PWM-Signal direkt an einem Portpin "einsampeln" und das
> HI/LO-Verhältnis in einen Spannungswert umrechnen?

Letzteres natürlich. Wie man das genau machen würde, hängt aber von 
Frequenz und Auflösung der PWM ab, deren Angaben du dir ja inzwischen 
abgerungen hast.

Wir haben es also mit einem zu erfassenden Minimalintervall von rund 20 
µs zu tun. In der Zeit kann z.B. ein AVR @20MHz rund 400 Operationen 
erledigen. Die ganze Messererei kann also per Timer mit input capture 
und Interrupt problemlos komplett im Hintergrund ablaufen, ohne parallel 
laufende Software nennenswert zu behelligen, jedenfalls wenn diese 
ihrerseits Interrupts höchstens für rund 350 Takte sperrt.

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.