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
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"
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
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.
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.
Das lässt sich doch gut über einen Interrupt erfassen. Bedenke, dass PWM-Spannung = Signalspannung x Tastverhältnis ist.
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 ?
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.