500 kHz-PWM mit Xilinx CPLD?

Gast #5540977
Lesenswert?

Hallo,

kann ich eine PWM mit 500 kHz Schaltsignal und einer minimalen Auflösung 
meines erzeugten Signals von 14 Bit überhaupt mit einem Xilinx CPLD 
erzeugen?
(D.h., die PWM muss mindestens in 100...150 ps-Schritten schaltbar 
sein.)

Wenn ja, welchen Baustein muss ich dafür mindestens verwenden?

Vielen Dank für alle Tipps.
#5541017
Lesenswert?

@ Kent (Gast)

>kann ich eine PWM mit 500 kHz Schaltsignal und einer minimalen Auflösung
>meines erzeugten Signals von 14 Bit überhaupt mit einem Xilinx CPLD
>erzeugen?

Nö.

>(D.h., die PWM muss mindestens in 100...150 ps-Schritten schaltbar
>sein.)

Eben darum geht es nicht.

>Wenn ja, welchen Baustein muss ich dafür mindestens verwenden?

Nimm einen PICCOLO.
Moderator (Firma: Titel) Persönliche Seite #5541034
Lesenswert?

Kent schrieb:
> (D.h., die PWM muss mindestens in 100...150 ps-Schritten schaltbar sein.)
D.h. die Taktfrequenz muss 10GHz sein...

> mit einem Xilinx CPLD erzeugen?
Nein. Und auch sonst mit keinem. Und selbst als ASIC ist das nichts für 
Anfänger.

Dort wurde schon mal eine kombinatorische Lösung via Carry-Chain für 
FPGAs diskutiert: https://ieeexplore.ieee.org/document/6377307/

Im Beitrag "PWM 100 kHz, minimum 16 Bit Auflösung" war da auch schon einer 
in diesem Bereich unterwegs. Und im 
Beitrag "High Resolution PWM Mikrocontroller (<ns Auflösung)" sucht wer µC dafür.
Der 
https://www.renesas.com/kr/en/about/press-center/news/2013/news20130920.html 
bringt auch "nur" 300ps zuwege...

Kent schrieb:
> Welche Zeiten sind denn etwa realisierbar?
Was willst du denn machen?

BTW: wie kannst/willst du dieses zig GHZ-Signal (PWM ist ja eigentlich 
rechteckig, d.h. die Oberwellen gehen noch weit, weit höher) auf der 
Leiterplatte handhaben?
#5541039
Lesenswert?

@Kent (Gast)

>>>(D.h., die PWM muss mindestens in 100...150 ps-Schritten schaltbar
>>sein.)
>
>> Eben darum geht es nicht.

>Welche Zeiten sind denn etwa realisierbar?

Nur so schnell, wie man sequentielle Logik takten kann. Selbst wenn man 
ALLE Register seines Können zieht, wird man kaum über 500MHz/2ns 
Auflösung kommen.

Es gibt ein paar Tricks mit FPGAs, welche über GBit-Tranceiver verfügen. 
Die kann man je nach Typ mit 3-10 GHz takten. Wenn man sie als einfache 
Schieberegister ohne jegliche Kodierung etc. verwendet, kann man 
100-300ps Zeitauflösung erzielen. Allerdings kostet so ein FPGA deutlich 
mehr als ein PICCOLO und der Aufwand, das hinzukriegen ist auch um 
einiges höher. Beim PICCOLO lädt man ein Beispielprogramm und ist fast 
fertig. Das Eval-Board C2000 kostet gerade mal 25 Euro.

https://www.reichelt.de/c2000-piccolo-launchpad-testplattform-ti-launchxl-p129632.html?&trstct=pos_0
#5541041
Lesenswert?

@ Lothar M. (lkmiller) (Moderator)

>> Welche Zeiten sind denn etwa realisierbar?
>Was willst du denn machen?

DAS ist die entscheidende Frage. Meist ist das so oder so nur Spinnerei.

>BTW: wie kannst/willst du dieses zig GHZ-Signal (PWM ist ja eigentlich
>rechteckig, d.h. die Oberwellen gehen noch weit, weit höher) auf der
>Leiterplatte handhaben?

Nur weil ein 500kHz PWM-Signal 100ps ZeitAUFLÖSUNG hat, hat es noch 
lange keine 100ps ANSTIEGSZEIT.
#5541140
Lesenswert?

Was soll es denn am Ende werden, warum meinst du, die hohe Frequenz und 
Auflösung zu brauchen?

Flimmerfreier Lampendimmer?
Super-HiFi Class-D Verstärker?
SDR für Langwellen-Funk?


Wie schnell ändert sich der Sollwert, kann man evtl. mit 10 Bit PWM 
arbeiten, und die 4 fehlenden Bit dazu-"dithern"?
(13 Durchläufe mit Sollwert 987, dann 3 Durchläufe mit 988, dann von 
vorne)

Geht eine Analog-Lösung? 14-Bit DAC, dahinter schneller Komparator gegen 
Sägezahn/Dreieck?
#5541145
Lesenswert?

@Roger S. (edge)

>Mit einem Kintex-7 und dessen ODELAY laesst sich ohne viel Aufwand eine
>Zeitaufloesung im unteren zweistelligen Picosekunden Bereich
>realisieren.

So wenig wie eine Schwalbe einen Sommer macht, macht ein Odelay einen 
PWM-Generator mit 100ps Zeitauflösung.
Gast #5541155
Lesenswert?

Εrnst B. schrieb:
> Super-HiFi Class-D Verstärker?

So etwas in dieser Richtung, mit SiC-MOSFETs aufgebaut.

Εrnst B. schrieb:
> Geht eine Analog-Lösung? 14-Bit DAC, dahinter schneller Komparator gegen
> Sägezahn/Dreieck?

Da auch noch weitere Funktionen benötigt werden, wie z.B. veränderbare 
Filter, soll der komplette Pfad vom Einlesen des Signals bis zur 
PWM-Erzeugung in einem Baustein realisiert werden.
#5541223
Lesenswert?

@ Roger S. (edge)

>> So wenig wie eine Schwalbe einen Sommer macht, macht ein Odelay einen
>> PWM-Generator mit 100ps Zeitauflösung.

>Genauso wie Deine Schwalbe mit dem MGT.

Das ist ein Adler! ;-)

Ja klar, aber das sagte ich bereits.

"Allerdings kostet so ein FPGA deutlich mehr als ein PICCOLO und der 
Aufwand, das hinzukriegen ist auch um einiges höher."
#5541429
Lesenswert?

Kent schrieb:
> Da auch noch weitere Funktionen benötigt werden, wie z.B. veränderbare
> Filter, soll der komplette Pfad vom Einlesen des Signals bis zur
> PWM-Erzeugung in einem Baustein realisiert werden.

Ok, also ist deine Anwendung:

irgendwoher kommt ein Analog-Audio-Signal.
Das wird digitalisiert, digital nachbearbeitet, div. Filter usw.
Vermutlich in "Echtzeit" ohne lange Verzögerung.
Und dann, möglichst ohne wieder analog zu werden, auf eine 
Class-D-Endstufe geleitet.


Hast du dich mal in der DSP-Ecke umgesehen? die haben teilweise recht 
schicke PWM-Ausgänge. 500kHz@14bit zwar eher nicht, aber vielleicht 
reicht die ja trotzdem, und du musst zumindest nicht bei 0 anfangen...
DSP für Audio-Anwendungen einzusetzen ist ja nicht sooo ungewöhnlich.
#5541463
Lesenswert?

Kent schrieb:
> (D.h., die PWM muss mindestens in 100...150 ps-Schritten schaltbar
> sein.)

Kent schrieb:
> So etwas in dieser Richtung, mit SiC-MOSFETs aufgebaut.

Und die SiC-FETs deren An- und Ausschaltzeiten auf <100ps gematcht sind, 
welche Silizium-Fee verkauft euch die? Samt den MOSFET-Treibern?

Eure Idee fällt wahrscheinlich leider in die Kategorie "Wenn es so 
einfach wäre, hätte es vor euch schon jemand gemacht". Ist ja 
schließlich verlockend, die Effizienz von gepulstem Class-D-Betrieb in 
immer höhere Frequenz- und Auflösungsbereiche zu drehen in dem man 
einfach die PWM-Taktraten hoch genug schraubt... :-/

Bis zu welcher Ausgangsbandbreite und -auflösung solls denn gehen? 
Vielleicht kann man euch dann bessere Hilfestellung geben.

Mein Vorschlag wäre, vom Konzept her eher in Richtung hybrides 
Delta-Sigma zu gehen, (ihr vergleicht euer Ausgangssignal mit eurem 
Referenzsignal und schaltet eure FETs dadurch gesteuert ein und aus), 
denn dann sind die ganzen Nichtlinearitäten der Treiber, FETs und Filter 
mit in der Feedbackschleife. Mit einem geeigneten Modulationsverfahren 
höherer Ordnung kommen dann bei niedrigen Taktraten auch schon gute 
Signal-Rauschabstände raus.
Persönliche Seite #5541598
Lesenswert?

Falk B. schrieb:
>>kann ich eine PWM mit 500 kHz Schaltsignal und einer minimalen Auflösung
>>meines erzeugten Signals von 14 Bit überhaupt mit einem Xilinx CPLD
>>erzeugen?
> Nö.

Mit einem FPGA habe ich schon auf statisch +/-20ps genau getriggert. War 
ein Stratix. Mit einem aktuellen Artix und den IOs in Verbindung mit 
dynamisch alloziierten LUTs geht das sicher in einer ähnlichen Liga. Das 
erfordert aber einiges an analoger Beschaltung, Kalibrierung, 
Wärmemodell und der FPGA darf an der Ecke auch sonst nichts Dynamisches 
machen, was unkalkulierbare IO-Last erzeugt. Die 150ps des TE sind aber 
eigentlich recht gut zu machen.

Philipp M. schrieb:
> Und die SiC-FETs deren An- und Ausschaltzeiten auf <100ps gematcht sind,
> welche Silizium-Fee verkauft euch die? Samt den MOSFET-Treibern?
Das wird wegkalibriert, indem die Ausgänge des FPGAs entsprechend 
individuell agieren.

> Eure Idee fällt wahrscheinlich leider in die Kategorie "Wenn es so
> einfach wäre, hätte es vor euch schon jemand gemacht".
BTDT :-)

> Mein Vorschlag wäre, vom Konzept her eher in Richtung hybrides
> Delta-Sigma zu gehen,
So wird das bei modernen digitalen Audioverstärkern auch gemacht, 
allerdings zeigt es sich trotzdem, dass es am Besten ist, durch 
entsprechende Ansteuerung erst gar keinen unnötigen Regelbedarf 
einzuspseisen, jedenfalls nicht in dem Spektralbereich, der durch die 
Schleife und Messungen nicht geregelt werden kann.

Für Präzisionsaufgaben benötigt man schon beides.
#5542768
Lesenswert?

@ Ingenieur (Gast)

Du schmückst dich mit fremden Federn. PFUI!

>> Diese Digital Power Dinger haben auch hochauflösende PWMs, vielleicht
>> kann man damit was anfangen.

>Die dürften eine analoge Regelung drin haben, die keine zeitliche
>Rasterung  mehr haben.

Nicht mal ein Datenblatt kann er lesen, aber rumtönen!

PFUI^2!!!
Persönliche Seite #5550362
Lesenswert?

--- schrieb:
> Deine Messtechnik kann ps auflösen?
Mein eigene nicht, die des Kunden schon. Die Messung erfolgte über die 
Wirkung des HL-Schaltens. Effektiv eine Zeit-Spannungsumsetzung mit 
mehrfacher Kalibrierung. Dazu zählt auch das Messen der sich im Betrieb 
ändernden Randbedingungen, deren Vorausberechnung zum Zeitpunkt des 
"Zündens" und der dann mutmaßlich vorliegenden Effekte und deren 
Einflüsse auf das analoge System.

Philipp M. schrieb:
> @Jürgen S.: magst du darauf ein bisschen genauer eingehen? Das Thema
> finde ich sehr interessant. Alternativ auch Links zu Whitepapern oder
> Appnotes etc.
Zu dem Thema gibt es nur "black papers" in denen drin steht, keine 
Details zu publizieren. Auch der FPGA-Hersteller hat damals ein NDA 
zeichnen müssen.

Umgekehrt halte ich die meisten Überlegungen aber für naheliegend und 
genau genommen liegen sie auch offen. Nehmen wir z.B. den Effekt Nummer 
1, nämlich die Variation des Stromes eines FPGA-Ausgangspins in 
Abhängigkeit der Aktivität seines Nachbarn. Die Schlussfolgerung, die 
Dinger möglichst leistungslos zu schalten, die Aktivität des Nachbarn 
mit zu berücksichtigen, das Folgesignal zu gaten und die Steuerung des 
Gatens HF-fest zu machen, ist in ählicher Weise in jeder zweiten 
HF-Baugruppe zu finden, die kurze Pulse braucht.
#5550415
Lesenswert?

Jürgen S. schrieb:
> Zu dem Thema gibt es nur "black papers" in denen drin steht, keine
> Details zu publizieren. Auch der FPGA-Hersteller hat damals ein NDA
> zeichnen müssen.

Hm, okay :-/ interessant wäre noch die Pulsbreite bzw die Wiederholrate 
- waren die im regulär machbaren Bereich des FPGA (d.h. so was wie <300 
MHz mit 20ps aufgelöst) oder habt ihr da auch was getrickst?
#5551972
Lesenswert?

Ich würde das ganz auch mit einem Piccolo oder STM32F334 machen. Der STM 
wird einfach programmiert als hätte der Timer eine 4.9GHz Clock, bei dem 
Piccolo (gibt an bei 500kHz 13,8 Bit Auflösung, etwas unter dem 
geforderten, aber hört ja eh niemand) weiß ich das nicht.

Dann einfach alles im FPGA machen und 14 Ausgänge parallel an den 
Mikrocontroller, und diesen Wert einfach ständig in das Compare-Match 
Register schreiben. Bei dem STM32 muss man da nichteinmal programmieren 
können, das macht CubeMX für einen (bis auf das Schreiben der Eingänge 
in das Register, ist aber nur eine Zeile).
#5555714
Lesenswert?

Ja, das bedeutet dass sich alle 2us das Verhältnis ändert. Und genau das 
würdest du mit den Pins übergeben. Die Unterteilung in die beiden high 
und low-Zeiten macht der Mikrocontroller. Der STM32 über mehrere 
phasenverschobene Zähler und der Piccolo über eine Schieben des 
Zeitpunktes des Pintoggelns im ps Bereich.
Ich weiß nicht ob du nicht verstanden hast was ich meine oder du nicht 
verstanden hast was du vor hast, aber ich bin mir ziemlich sicher dass 
das Teil so eh nicht gebaut wird und die Diskussion sich damit eh 
erledigt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren