PWM-Signal weiterverarbeiten

Gast #3057754
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?
#3057929
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
Gast #3057980
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.
Gast #3058604
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
?
Gast #3058891
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.