mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wie PWM mit Duty Cycle Error <0,1% erzeugen?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Dan (Gast)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
Hallo,
ich benötige eine PWM mit 500kHz, 0...100% Duty Cycle und einem Duty 
Cycle Error <0,1%.
Ein- und Ausgangsspannungen, Versorgungsspannung und Leistungsaufnahme 
sind egal.

Über jede Idee zur Realisierung würde ich mich freuen.

Gruß Dan

Autor: m.n. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dan schrieb:
> Über jede Idee zur Realisierung würde ich mich freuen.

Nimm einen schnellen STM32, dessen Jitter am Ausgag locker unter 2 ns 
liegt.

Autor: pitschu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei 500kHz mit 1000 Schritten (0,1%) brauchst Du 500MHz Grundfrequenz.

Autor: m.n. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es geht um 0,1 % Fehler und nicht um 0,1 % Auflösung!

Autor: Peter D. (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dan schrieb:
> ich benötige eine PWM mit 500kHz, 0...100% Duty Cycle und einem Duty
> Cycle Error <0,1%.

Also eine Auflösung von 1:1000.
Das ergibt:
500kHz * 1000 = 500MHz PWM Eingangstakt.
Bzw. 2µs / 1000 = 2ns.

Autor: Dan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich könnte mir auch eine analoge Erzeugung vorstellen.
Gibt es dazu Erfahrungen mit speziellen ICs?

Autor: Quarz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
500MHz Quarz und 10Bit Counter, diskret aufgebaut.
Für kleineren Duty Cycle Error die Frequenz erhöhen und einen grösseren 
Zähler verwenden.

Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dan schrieb:
> ich benötige eine PWM mit 500kHz, 0...100% Duty Cycle und einem Duty
> Cycle Error <0,1%.
Da war noch die Frage nach der Auflösung. Wieviele Schritte sollen 
zwischen 0 und 100% sein? Nur, wenn die PWM auch mit 0,1% auflösen soll, 
sind 100 Schritte nötig. Allerdings ist dann der erlaubte Fehler schon 
so groß wie ein Auflösungsschritt. Das ist eigentlich zu viel. Denn dann 
könnte es sein, ich verlange 4,9% und bekomme da bei Ausreizen der 
Grenzen das selbe wie bei 5,0%... :-O

> Ein- und Ausgangsspannungen, Versorgungsspannung und Leistungsaufnahme
> sind egal.
Ich würde dafür natürlich ein FPGA nehmen. Es wäre trotzdem überaus 
sportlich, und sobald dieses Signal das Ball am Gehäuse verlässt, wirst 
du noch deutlich größere Probleme bekommen...

> Über jede Idee zur Realisierung würde ich mich freuen.
Nur interessehalber: was soll denn damit realisiert werden? Wofür 
braucht man so eine PWM?

: Bearbeitet durch Moderator
Autor: Michael B. (laberkopp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dan schrieb:
> Ich könnte mir auch eine analoge Erzeugung vorstellen.

Dann bekommst du zwar 2ns Auflösung (machen ja manche Class-D 
Audioverstärker), aber niemals 0.1% Genauigkeit.

Du wirst wohl den PWM Kanal mit einem 500MHz FPGA aufbauen müssen.

Ein MSP430 würde dank 256MHz PWM immerhin 0.2% schaffen, falls du also 
an deinen Wunschvorstellungen arbeiten könntest...
http://www.ti.com/lit/an/slaa497/slaa497.pdf
(wie hoch der Jitter wäre, sehe ich aber nicht sofort, dank PLL wohl 
grösser).

Eventuell kann der das 
https://docs-emea.rs-online.com/webdocs/1542/0900766b8154288f.pdf aber 
ich habe das Datenblatt nicht ganz gelesen, zudem ist er mit 7 Kanälen 
und ADC wohl etwas überdimensioniert.

Autor: Falk B. (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der PICCOLO kann eine PWM mit ~150ps Zeitauflösung erzeugen.

Autor: m.n. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter D. schrieb:
> Dan schrieb:
>> ich benötige eine PWM mit 500kHz, 0...100% Duty Cycle und einem Duty
>> Cycle Error <0,1%.
>
> Also eine Auflösung von 1:1000.

Nein ;-)

Autor: Dan (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Lothar M. schrieb:
> Nur interessehalber: was soll denn damit realisiert werden? Wofür
> braucht man so eine PWM?

Mit dem Prinzip eines Class-D-Verstärkers sollen Prüfsignale erzeugt 
werden.

Autor: Jim M. (turboj)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Dan schrieb:
> Lothar M. schrieb:
>> Nur interessehalber: was soll denn damit realisiert werden? Wofür
>> braucht man so eine PWM?
>
> Mit dem Prinzip eines Class-D-Verstärkers sollen Prüfsignale erzeugt
> werden.

Analoge Prüfsignale?

Da hatte ich eher die 500kSps 12-Bit DACs von einem (Silabs) EFM32 
benutzt, eventuell nachverstärkt. Die dürften den Ansatz mit PWM 
deutlich übertreffen.

Autor: m.n. (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Jim M. schrieb:
> Da hatte ich eher die 500kSps 12-Bit DACs von einem (Silabs) EFM32
> benutzt, eventuell nachverstärkt.

Warum denn 500 kSps? Das ist doch nirgends gefordert.

> Die dürften den Ansatz mit PWM deutlich übertreffen.

PWM mit 7 Bit Auflösung kann durchaus eine Genauigkeit von 16 Bit haben.
Leider werden hier kaum Lösungen sondern nur Interpretationen zur 
Fragestellung geboten.
Nur zur Erinnerung: Auflösung != Genauigkeit.

Autor: Falk B. (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dan schrieb:
> Mit dem Prinzip eines Class-D-Verstärkers sollen Prüfsignale erzeugt
> werden.
So richtig mit Leistung?
Wie sieht da die nachgeschaltete Elektronik aus, wenn die Flanken mit 
<<2ns wiedergeben kann?

Autor: Dan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar M. schrieb:
> Wie sieht da die nachgeschaltete Elektronik aus, wenn die Flanken mit
> <<2ns wiedergeben kann?

Der Unterschied ist mit solchen Komponenten erkennbar:

https://www.wolfspeed.com/c3m0120090j

Autor: Joggel E. (jetztnicht)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Irgendwie macht es keinen Sinn solche Spezifikationen zu verlangen um 
Komponenten zu testen.
Ich denke 1% Aufloesung sollte genuegen, und die Genauigkeit ist schon 
richtig wie sie rauskommt. Also zB ein FPGA mit 50MHz laufen lassen.

Allenfalls reicht auch weniger

Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zitronen F. schrieb:
> Ich denke 1% Aufloesung sollte genuegen, und die Genauigkeit ist schon
> richtig wie sie rauskommt.
Ich sehe es da wie gesagt durchaus auch interessant vor, diese Flanken, 
die ja für ein halbwegs sinnvolles Rechteck im Bereich um 500ps sein 
muss, bis an und hinter den Prüfling zu bekommen...

Autor: Joggel E. (jetztnicht)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Siehst du. Die Flankensteilheit hat nichts mit Aufloesung, oder 
Repetitionsrate zu tun. Eine 500ps Flanke kann man auch viel langsamer 
haben. Irgendwo benoetigt man dann auch einen Treiber, der das auf das 
Zielsystem umsetzen kann.kann.

Ein schnelles FPGA kann zB so schnelle Flanken produzieren. Das 
Weiterleiten waere dann mit ECL, und dann ?

: Bearbeitet durch User
Autor: c-hater (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dan schrieb:
> Hallo,
> ich benötige eine PWM mit 500kHz, 0...100% Duty Cycle und einem Duty
> Cycle Error <0,1%.

Sprich: 10Bit-PWM bei 500kHz PWM-Frequenz=500MHz Taktbasis Minimum.

Das wird aufwendig. Da kommen wohl nur spezialisierte ICs in Frage, in 
den üblichen µC wird man sowas wohl eher nicht finden (da dürfte es am 
Takt hapern), auch nicht in den üblichen SPMC-ICs (da hapert es dann an 
der Auflösung).

Insgesamt vermutlich: du solltest nicht darstellen, was du zu brauchen 
glaubst, sondern, was du machen willst...

Denn: wenn es keinen passenden IC gibt, ist das sehr oft ein deutliches 
Zeichen, dass du dich konzeptionell hoffnungslos verrannt hast...

Autor: Dan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
c-hater schrieb:
> Denn: wenn es keinen passenden IC gibt, ist das sehr oft ein deutliches
> Zeichen, dass du dich konzeptionell hoffnungslos verrannt hast...

Ich suche ein möglichst gut passendes IC.
Und ja, das Projekt befindet sich am Rande des technisch Machbaren.

Autor: Falk B. (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Dan (Gast)

>Ich suche ein möglichst gut passendes IC.

PICCOLO

>Und ja, das Projekt befindet sich am Rande des technisch Machbaren.

Und du bist der Macher? Hast du in den Bereich ausreichende Erfahrung 
und Wissen? Den solche Anforderungen sind leicht auf's Papier 
geschrieben, die Umsetzung ist eine andere Liga.

Autor: m.n. (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Dan schrieb:
> Ich suche ein möglichst gut passendes IC.

Warum teilst Du nicht endlich mit, welche Auflösung Du zu brauchen 
glaubst?
Bei 1 % Abstufung reicht auch ohne Programmierkenntnisse ein 50 MHz 7 
Bit Zähler mit nachfolgendem Komparator; ggf. auch zwei kaskadierte 
Dezimalzähler.
Eleganter macht es ein mit 100 MHz betriebener STM32 und, wenn Du keinen 
Piccolo magst, bietet auch ein STM32F334 hochauflösende Timer. 
Sicherlich gibt es auch andere Anbieter (Microchip, Renesas, ...).

> Und ja, das Projekt befindet sich am Rande des technisch Machbaren.

Was die Signalerzeugung angeht: ganz und garnicht!

Autor: Possetitjel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
m.n. schrieb:

> Eleganter macht es ein mit 100 MHz betriebener STM32 und,
> wenn Du keinen Piccolo magst, bietet auch ein STM32F334
> hochauflösende Timer. Sicherlich gibt es auch andere
> Anbieter (Microchip, Renesas, ...).

Langweilig :)

Warum keine Lösung mit Mehrphasentakt und 74ACxxx? Oder
eine analog phasenmodulierte PLL?

Autor: m.n. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Possetitjel schrieb:
> Warum keine Lösung mit Mehrphasentakt und 74ACxxx? Oder
> eine analog phasenmodulierte PLL?

Sehr gute Idee! Die Schaltung bitte ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.