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


von Dan (Gast)


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

von m.n. (Gast)


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.

von pitschu (Gast)


Lesenswert?

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

von m.n. (Gast)


Lesenswert?

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

von Peter D. (peda)


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.

von Dan (Gast)


Lesenswert?

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

von Quarz (Gast)


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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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
von Michael B. (laberkopp)


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.

von Falk B. (falk)


Lesenswert?

Der PICCOLO kann eine PWM mit ~150ps Zeitauflösung erzeugen.

von m.n. (Gast)


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 ;-)

von Dan (Gast)


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.

von Jim M. (turboj)


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.

von m.n. (Gast)


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.

von Falk B. (falk)


Lesenswert?


von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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?

von Dan (Gast)


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

von Pandur S. (jetztnicht)


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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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...

von Pandur S. (jetztnicht)


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
von c-hater (Gast)


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...

von Dan (Gast)


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.

von Falk B. (falk)


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.

von m.n. (Gast)


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!

von Possetitjel (Gast)


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?

von m.n. (Gast)


Lesenswert?

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

Sehr gute Idee! Die Schaltung bitte ;-)

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.