Ich benötige eine genau einstellbare Pulsfolge vom Typ 0101010... mit
bis zu 18 bit, bei denen die Länge der Nullen und Einsen sehr genau
einstellbar sein muss.
Die Pulslängen betragen 1,2ns bis 2,4ns, einstellbar möglichst fein und
reproduzierbar. Die Bits sind mindestens 4. Denkbar wäre eine solche
Konstellation:
1,35 ns 1
1,72 ns 0
1,84 ns 1
1,93 ns 0
und wieder von vorne.
Oder z.B. auch die 18bit. Eine Periode kann 2,4x2x18 ns lang sein.
Lässt sich das mit einem FPGA bauen?
Aktuell benutze ich verkettete MonoFlops, deren Einstellung per digital
programmiertem R erfolgen.
Nach 2maligem durchlesen bin ich immer noch nicht schlau geworden. Die
ersten 2 Sätze verstehe ich, den Rest nicht. Entweder liegt es um diese
Uhrzeit an deinem Bier oder an meinem...
Ich denke ich verstehe einigermaßen was du vor hast.
Wenn du das ganze wirklich genau und einfach einstellbar machen willst
nimm einen µC mit Timer der PWM Erzeugung unterstützt. Beispielsweise
einen STM32 hier kannst du über den DMA und die vorhanden 16 bzw. 32 Bit
Timer ein PWM mit verschiedenen Pulsbreiten ausgeben. eine ähnliche
Anwendung findest du hier:
https://www.mikrocontroller.net/articles/WS2812_Ansteuerung
Dort wird das ganze benutzt um das Signal für WS2812 zu erzeugen. Im
Prinzip berechnest du dir die nötigen DC vor, die für die entsprechenden
Zeiten gebraucht werden und speicherts sie in einem Array. Der DMA gibt
diese dann an die Timer-Hardware weiter. Da du die Periodendauer
ebenfalls ändern willst, musst du das etwas ändern, das ist nicht ganz
so wie es für die WS2812 gebraucht wird aber in jedem Fall umsetzbar. Da
der µC vermutlich sonst nichts zu tun hat geht das aber auch locker ohne
DMA rein in Software wenn man die entsprechenden Timer Register
beschreibt.
Es gibt STMs mit High Resolution Timern die im ps Bereich auflösen.
https://www.st.com/en/microcontrollers-microprocessors/stm32f334.html
Ob das ganze genau genug ist müsste man mal probieren bzw. mal genau
nachrechnen, aber ich denke mal, dass ein STM eventuell billiger als ein
FPGA ist und je nach Kenntnisstand auch einfacher zu Programmieren.
Zumal ein FPGA je nach Systemtakt vermutlich auch schon an seine Grenzen
kommt.
Der Titel passt irgendwie überhaupt nicht zur Frage.
Du willst eine Pulsfolge erzeugen, da wird doch nichts moduliert?
Mit einem FPGA mit schnellem SerDes kannst du vielleicht etwa 0.1ns
Auflösung erreichen (10 GHz SerDes). Ob das aber einfacher wird, als die
18 Monoflops bezweifle ich.
Hamburger schrieb:> Ich benötige eine genau einstellbare Pulsfolge vom Typ 0101010... mit> bis zu 18 bit, bei denen die Länge der Nullen und Einsen sehr genau> einstellbar sein muss.
Meinst du sowas wie einen extrem flinken Arbiträrgenerator?
Hamburger schrieb:> Die Pulslängen betragen 1,2ns bis 2,4ns, einstellbar möglichst fein
Wie fein müssen die verbleibenden 1,2ns unterteilt werden können?
> Aktuell benutze ich verkettete MonoFlops, deren Einstellung per digital> programmiertem R erfolgen.
Demnach dürften da etwa 6 Bits (64 Stufen) drin sein.
> Denkbar wäre eine solche Konstellation:> 1,35 ns 1> 1,72 ns 0
Mit welchen Monoflops kommst du in den 10ps/100GHz-Bereich? Und wie geht
das mit einem schnarchlangsamen Digitalpoti (aus der Werbung: "Wide
bandwidth: 3 MHz") als zeitbestimmendes Glied?
Hamburger schrieb:> Lässt sich das mit einem FPGA bauen?
Ohne spezielle Timer geht das nicht. Du willst Auflösungen im
ps-Bereich, und 10GHz kann kein FPGA.
Du wirst einen Chip (sei es FPGA oder µC) suchen müssen, der einen
speziellen PWM-Block bietet, der das kann. Es wurde ja schon ein STM32
genannt, ob der das kann, kann ich auch nicht beurteilen.
Eventuell wirst du auch mit externen Timern glücklich.
Es wird nicht sehr einfach und billig werden.
Rechne dir die Auflösung / Frequenz aus, die du benötigst und mach dich
auf die Suche.
Ich sag mal, du wirst Kompromisse eingehen müssen. 10GHz und mehr ist
kein Pappenstiel.
Wenn so wenige Details zur Anwendung genannt werden, habe ich immer
keine Lust viel Zeit in Suche nach Lösungen zu investieren. Nachher
stellt sich noch heraus, dass das Problem mit einem anderen Konzept viel
einfacher zu lösen wäre.
Maxim schrieb:> Es gibt STMs mit High Resolution Timern die im ps Bereich auflösen.
Das ist leider völlig utopisch. Die Auflösung wird durch den maximalen
Clock an dem jeweilige Timer bestimmt und ist besitmmt nicht im
GHz-Bereich.
Hamburger schrieb:> 1,35 ns 1> 1,72 ns 0> 1,84 ns 1> 1,93 ns 0
Mit der Delfino-Serie von TI kannst Du über die High Resolution-PWMs
auch Einzelimpule ereugen. In Verbindung mit den internen logischen
Verknüpfungsmöglichkeiten von bis zu sechs PWM-Signalen sind damit auch
sehr komplexe Ausgangssignale hestellbar.
Allerdings beträgt die Auflösung 150ps!
Falk B. schrieb:> Wollen wir wetten, daß das alles ... ohne Substanz ist?
Ich halte nicht dagegen.
Oder da ist wer um ein paar Zehnerpotenzen verrutscht...
Hamburger schrieb:> Aktuell benutze ich verkettete MonoFlops, deren Einstellung per digital> programmiertem R erfolgen.
Zeig mal her, das fördert das Gruppenverständniss.
Also bitte schaltplan anhängen aber mindestens ein Foto vom Aufbau.
jemand schrieb:> Ohne spezielle Timer geht das nicht. Du willst Auflösungen im> ps-Bereich, und 10GHz kann kein FPGA.
Was ist mit den Giga-Bit-Transceivern?
Leider gibt es da auch noch gewissse geometrische Einschränkungen.
Die elektrische Welle macht in:
1ns 30cm
100ps 3cm
10ps 3mm
Wenn du mit FR4 arbeitest eher nur 2/3 davon.
Da muss man beim Aufbau ziemlich wissen was man tut. Reflektionen,
Gruppenlaufzeit & Co lassen grüssen.
Für einen Rechteck mit derart genau definierter Dauer sind Anstiegszeit
und die dafür nötigen Oberwellen nicht zu verachten bzw. nicht immer so
ganz leicht zu realisieren.
viel Erfolg
hauspapa
>Das ist leider völlig utopisch. Die Auflösung wird durch den maximalen>Clock an dem jeweilige Timer bestimmt und ist besitmmt nicht im>GHz-Bereich.
Nein.
Nanno schrieb:>> Das ist leider völlig utopisch. Die Auflösung wird durch den maximalen>>>Clock an dem jeweilige Timer bestimmt und ist besitmmt nicht im>>>GHz-Bereich.> Nein.
Danke Nanno nein ist da die einzig sinnvolle Antwort.
Natürlich ist es so das normale Timer begrenzt durch ihren Takt sind.
Die HR Timer haben allerdings einen anderen internen Aufbau. also @Ulf
L. erst richtig informieren und dann seinen Senf dazu geben. Wenn ST
angibt das sie 217ps Auflösung haben dann ist das auch so. Ich selbst
benutze den Timer für einen Hochfrequenz Schaltregler und habe als altes
Spielkind auch mal etwas mit dem Timer gespielt und Signale im ns
Bereich sind locker machbar. Ob die Flankensteilheit ausreicht hängt wie
bereits weiter oben erwähnt vom restlichen Aufbau ab und daher habe ich
auch gesagt das man es einfach mal probieren muss was bei einem mucleo
Board für rund 10€ wohl drin sein wird.
hauspapa schrieb:> Die elektrische Welle macht in:>> 1ns 30cm> 100ps 3cm> 10ps 3mm
Die Wellenausbreitung ist aber konstant und ein am Ausgang eines Chips
geformte Welle bleibt somit erhalten. Reflektionen sind noch ein anderes
Thema. Die können einen aber auch im kHz-Bereich erwischen.
Zynq-Entwickler schrieb:> Die Wellenausbreitung ist aber konstant und ein am Ausgang eines Chips> geformte Welle bleibt somit erhalten.
Schön wär's. Wenn nicht der komplette Frequenzbereich eine homogene
Impedanz sieht, was fast immer der Fall ist, dann verschmiert es den
Impuls komplett. Die parasitären Effekte von z.B. Pins an Bauteilen,
Bonddrähten, Leiterbahnecken... Das alles macht einem die schöne Idee
einer konstanten Gruppenlaufzeit komplett kaputt.
Außerdem sind beispielsweise Microstrip-Ausbreitungsmoden nur in
Näherung TEM Moden. Was zu einer unvermeidbaren Frequenzabhängigkeit der
Ausbreitungsgeschwindigkeit führt.
Geht schon, schau Dir mal Advantest pin scale sl an:
http://www.gosemiandbeyond.com/pin-scale-sl-testing-high-speed-io-links/
Die Testersoftware kann Pulszüge im sub Picosekundenbereich erzeugen.
Dank trace length calibrierung kommt das dann auch so am Prüfling an.
Das geht alles sehr komfortabel out of the box, aber Preis dafür wird
Dir nicht gefallen ....
Intern werkelt da für das Timing ein Asic, der mit so 10 GHz das grobe
Timing macht, danach kommt dann eine analoge Verzögerungsleitung - mit
Auflösung in Femtosekundenbereich.
So ähnlich sollte man das auch im FPGA hinbekommen, als
Verzögerungsleitung kann man hier eine Gatterkette nehmen, dann ist die
kleinste Auflösung die Gatterschaltzeit.
Viel Vergnügen .... Monoflops sind einfacher .....
Nanno schrieb:> Hier ist ein Ansatz mit FPGA beschrieben:https://www.researchgate.net/publication/279205726_Design_and_Implementation_of_FPGA_based_High_Resolution_Digital_Pulse_Width_Modulator
Cool, was die Inder so alles entwickeln und papers davon machen! Und
komisch, dass es das immer irgendwie schon alles gibt. Vor ziemlich
genau 10 Jahren habe ich das mit einem Stratix GX gebaut (ist von
Siemens auch patentiert worden).
Und es wurde ebenfalls ein grobes tuning mit den 8 Takten aus den PLLs,
ein Schieben mit den IO-Delays sowie ein Feintuning mit den LUTs
vollzogen, teilweise mit AHDL, dem Chipeditor und Scripten unter
Einbindung des Altera FAE.
Super interessant ist, dass sie mit 19,5ps Präzision fast genau
denselben Wert herausbekommen, wie ich in meiner Applikation (20ps).
Diese resultierten primär aus der Messunsicherheit und der Messdauer
beim Kalibieren der Schleife. Die LUTs selber addieren Verzögerungen im
Bereich von 12ps ... 15ps und gestatten bei entsprechender Verschaltung
mit unterschiedlichen Wegen durchaus Werte im Bereich von 10ps. Das
driftet nur binnen Minuten durch Erwärmung weg und unterliegt noch
Jittereffekten infolge des Schaltens des Restdesigns, bzw der
Spannungsversorgung der Platine. Genauer kriegt man das nicht hin, ohne
ständig nachzukalibrieren.
Und es braucht auch eine entsprechende Signalaufbereitung am Ausgang des
FPGA-Pins mit einem schnellen Schalttransistor (GaAs z.b) samt
kalibierfähiger Messschleife um die von "Bambel" beschriebenen Effekte
leitungsweise zu kompensieren.
Bastler_ps schrieb:> Monoflops sind einfacher .....
kriegst du aber nicht in den Griff, wenn es programmierbar sein soll und
stabil über mehrere in einer Kette.
Zynq-Entwickler schrieb:> jemand schrieb:>> Ohne spezielle Timer geht das nicht. Du willst Auflösungen im>> ps-Bereich, und 10GHz kann kein FPGA.>> Was ist mit den Giga-Bit-Transceivern?
Die machen keine harten Pulse, das ist ein ziemlich wackliger Sinus und
wie der TO seine Anforderungen umschreibt, erwartet er ein knackiges
Rechteck
"Länge der Nullen und Einsen sehr genau einstellbar sein muss."
Bei Hispeed signalen ist aber der grösstes Teil weder 0 noch 1 sondern
Übergang. Und nicht selten wird kein binäres sondern ein mehrwertiges
signal (bspw 256 QAM) übertragen, das bringt hinsichtlich
Fehlerkorrektur einige Vorteile. (simples Beispiel automotive Ethernet:
https://pbs.twimg.com/media/Ddz0k_oV0AEWQ1q.jpg )
Und abgesehen davon, wird das bei den Hispeed-Treibern über
Trainingssequenzen erreicht, es werden zu beginn keine Nutz- sondern
Trainingsdaten übermittelt, anhand dessen der ganze Analogkram (Lange
Filter, Preemphasis) nachgeregelt wird. Und dieses "trainieren" muss
auch immer mal wieder neu gestartet werden. Das mag eine PWM nicht.
Auch ja Fehlerkorektur ist auch noch, da stört eine verpasste Flanke
nicht, bei ner PWM dagegen schon.
Man darf nicht denken in den Hispeed Treiber werkelöt die gleiche simple
Schaltstufe wie in den GPIO's für TTL und Co. Nicht umsonst umfasst das
Manual für Hispeed Treiber über 500 Seiten:
https://www.xilinx.com/support/documentation/user_guides/ug476_7Series_Transceivers.pdf
während die Beschreibung für die normalen mit ca. einem Drittel
abgefrühstückt ist:
https://www.xilinx.com/support/documentation/user_guides/ug471_7Series_SelectIO.pdf
Wie schon angesprochen gibt es ein High Resolution Timer in
Microcontrollern
z.B. dem XMC4400 von Infineon. Damit kann man PWM Pulse mit einer
Auflösung von 15ps verlängern bzw. verkürzen. Soweit ich weiß
funktioniert das mit einer DLL (Delay Locked Loop). Wir haben das mal
versucht in einem Projekt zu r genauen Stromregelung von Laserdioden zu
verwenden. Aber leider mussten wir dann davon weg, weil der Jitter
einfach viel zu stark war, was zu ziemlich üblem rauschen geführt hat.
Das könnte bei deiner Anwendung auch stören
moep schrieb:> z.B. dem XMC4400 von Infineon. Damit kann man PWM Pulse mit einer> Auflösung von 15ps verlängern bzw. verkürzen.
Auch beim XMC4400 sind es wie beim oben genannten Delfino von TI 150ps.
Zynq-Entwickler schrieb:> jemand schrieb:>> Ohne spezielle Timer geht das nicht. Du willst Auflösungen im>> ps-Bereich, und 10GHz kann kein FPGA.>> Was ist mit den Giga-Bit-Transceivern?
Sind das solche LVDS Serializer? Also diese Dinger, mit denen man HDMI
und dergleichen macht?
Sowas:
http://www.ti.com/lit/ug/snla201/snla201.pdf
Nur halt im FPGA?
Ich kenn die Dinge selber nur vom Ansteuern von Flatpanels (und da auch
nur von diskreten IC), aber anscheinen können das sogar einige
bezahlbare FPGAs. Die Dinger erzeugen ja intern einen höheren Takt
mittels einer PLL, und takten parallele Daten seriell heraus. Man ist
also nicht auf den erreichbaren Systemtakt des FPGAs begrenzt (nehme ich
an - zumindest bei den diskreten Serializern ist das ja so).
Das ginge.
Der oben geäußerte Einwand, dass da ein Sinus herauskäme ist nicht
korrekt. Das sind schon richtige Logikpegel, nur eben LVDS. TTL-Pegel
kann man daraus auch erzeugen, ein schneller LVDS-Receiver
vorausgesetzt.
Ein Interessanter Vorschlag! Allerdings werden auch damit nicht 100ps
Zeitauflösung auch nicht erreicht. Außer man hat 10GHz Serializer, was
ich nicht glauben kann.
jemand schrieb:> Zynq-Entwickler schrieb:>> jemand schrieb:>>> Ohne spezielle Timer geht das nicht. Du willst Auflösungen im>>> ps-Bereich, und 10GHz kann kein FPGA.>>>> Was ist mit den Giga-Bit-Transceivern?>> Sind das solche LVDS Serializer? Also diese Dinger, mit denen man HDMI> und dergleichen macht?
Nein, die dummen LVDS schleudern findest Du unter Select-IO in dem
kleinen verlinkten Manual. Einfach mal nachlesen, deshalb hab ich ja die
Dokumente verlinkt ...
> Ich kenn die Dinge selber nur vom Ansteuern von Flatpanels (und da auch> nur von diskreten IC), aber anscheinen können das sogar einige> bezahlbare FPGAs. Die Dinger erzeugen ja intern einen höheren Takt> mittels einer PLL, und takten parallele Daten seriell heraus. Man ist> also nicht auf den erreichbaren Systemtakt des FPGAs begrenzt (nehme ich> an - zumindest bei den diskreten Serializern ist das ja so).> Das ginge.>> Der oben geäußerte Einwand, dass da ein Sinus herauskäme ist nicht> korrekt. Das sind schon richtige Logikpegel, nur eben LVDS. TTL-Pegel> kann man daraus auch erzeugen, ein schneller LVDS-Receiver> vorausgesetzt.
Wie bereits gesagt, die erwähnten Hispeed MGT sind nicht dasselbe wie
das LVDS Gedöhns. Und dieser LVDS Receiver, den du da meinst, ist
whrscheinlich ein Deserializer, der die Bitdauer verlängert aber wegen
der parallelen Daten dennoch auf die hohe Bitrate kommt. Das sind dann
aber nicht die picosekunden die der TO verlängt. Hoher Speed ist eben
ein Grund warum TTL durch LVDS abgelöst würde, Ärger mit Reflexionen,
EMV etc. ein anderer.
> Ein Interessanter Vorschlag! Allerdings werden auch damit nicht 100ps> Zeitauflösung auch nicht erreicht. Außer man hat 10GHz Serializer, was> ich nicht glauben kann.
Doch die hat man im FPGA, einfach mal das Datenblatt lesen, das sind
allerdings dann Die MGT mit den erwähnten Mali bzgl PWM. Allerdings
nicjt im jeden, s. UG476 S.4
Was so ein LVDS-Pin bei Bastler-FPGA's wie Artix-7 speedmäßig kann,
steht dort ab seite 15
https://www.xilinx.com/support/documentation/data_sheets/ds181_Artix_7_Data_Sheet.pdf
ssss schrieb:> Die genannten Zeiten liegen aber immer noch deutlich über den 150ps, die> mit den oben genannten µCs ohne nennenswerte Klimmzüge erreicht werden.>> Gibt es FPGAs, die ebenfalls 150ps erreichen?
Bist Du bereit dafür zu bezahlen? Und warun nach einem FPGA schielen,
wenn es auch ein µC macht, den Hinz und Kunz von der Baumschule
programmieren können ???
Ansosnte mal bei den HighEnd-Serien schauen oder einfach mal einen FAE
eines FPGA-Distri anrufen und um Beratung bitten.
https://www.xilinx.com/support/documentation/data_sheets/ds892-kintex-ultrascale-data-sheet.pdf
ssss schrieb:> Die genannten Zeiten liegen aber immer noch deutlich über den 150ps, die> mit den oben genannten µCs ohne nennenswerte Klimmzüge erreicht werden.
Die 150ps liegen aber Faktor 15 über den 10ps Auflösung die da nötig
wären.
Und wie kann so ein µC mit schneller PWM eine Pulsfolge, wie beschrieben
erzeugen, ohne Pausen dazwischen. Dazu müsste dauern das Periodendauer
und Pulsweitenregister neu geschrieben werden, etwa alle 3 ns und
synchron zu den Pulsdauern.
Andi schrieb:> Und wie kann so ein µC mit schneller PWM eine Pulsfolge, wie beschrieben> erzeugen, ohne Pausen dazwischen. Dazu müsste dauern das Periodendauer> und Pulsweitenregister neu geschrieben werden, etwa alle 3 ns und> synchron zu den Pulsdauern.
Es können z.B. beim Delfino mehrere synchron arbeitende
HiRes-PWM-Ausgangssignale intern logisch verknüpft werden. Damit können
schnelle komplexe Signalfolgen erzeugt werden, die kaum noch Ähnlichkeit
mit einem reinen PWM-Signal haben.
Maxim schrieb:> Nanno schrieb:>>> Das ist leider völlig utopisch. Die Auflösung wird durch den maximalen>>>>Clock an dem jeweilige Timer bestimmt und ist besitmmt nicht im>>>>GHz-Bereich.>> Nein.>> Danke Nanno nein ist da die einzig sinnvolle Antwort.>> Natürlich ist es so das normale Timer begrenzt durch ihren Takt sind.> Die HR Timer haben allerdings einen anderen internen Aufbau. also @Ulf> L. erst richtig informieren und dann seinen Senf dazu geben. Wenn ST> angibt das sie 217ps Auflösung haben dann ist das auch so. Ich selbst> benutze den Timer für einen Hochfrequenz Schaltregler und habe als altes> Spielkind auch mal etwas mit dem Timer gespielt und Signale im ns> Bereich sind locker machbar. Ob die Flankensteilheit ausreicht hängt wie> bereits weiter oben erwähnt vom restlichen Aufbau ab und daher habe ich> auch gesagt das man es einfach mal probieren muss was bei einem mucleo> Board für rund 10€ wohl drin sein wird.
Hallo
Da habe ich dann wohl die Eingangsfrage falsch verstanden. Ich dachte da
soll eine (bis 18Bit) Pulsfolge erstellt werden, bei der jedes einzelne
Bit in einer Ausflösung von 10 ps unterschiedlich eingestellt werden
können soll. 217ps sind halt keine 10 ps.
Die Mindestdauer eines Bits liegt bei 1,2 ns. Das heißt aber auch, daß
der PWM-Wert des HRTIM-Registers alle 1,2ns aktualisiert werden müßte.
Aber Du hast recht, daß die mittels PLL intern den Clock der PWM-Einheit
bis in den einstelligen GHz-Bereich treiben, hätte ich echt nicht
gedacht :-).
Gruß Ulf
C. A. Rotwang schrieb:> Bei Hispeed signalen ist aber der grösstes Teil weder 0 noch 1 sondern> Übergang.
Stimmt! Das hatte ich übersehen. Man könnte zwar einen beliebigen Code
auf die Transceiver geben, kriegt es aber nicht gleichstromfrei hin und
hat dann Probleme auf der Gegenstelle.
Maxim schrieb:> Wenn du das ganze wirklich genau und einfach einstellbar machen willst> nimm einen µC mit Timer der PWM Erzeugung unterstützt.
Bist du dir sicher, dass du dich nicht um einen Faktor 100 oder mehr
vertan hast
Hamburger schrieb:> ... sehr genau ...
... ist immer eine Frage des Maßstabs.
C. A. Rotwang schrieb:> Zeig mal her, das fördert das Gruppenverständniss.
Es sind 16 in Reihe geschaltete MF, die sich nacheinander anschieben.
Abgriff per Analogmultiplexer.
So wie im Bild soll das Timing in etwa aussehen. Man könnte die Pakete
als PWM-Abschnitte auffassen, die aneinander gereiht werden, aber nur
einmal vorkommen und ständig wechseln. Es sind pulse codes.
Auflösung 50ps wäre schon ausreichend, schätze ich.
Hamburger schrieb:> C. A. Rotwang schrieb:>> Zeig mal her, das fördert das Gruppenverständniss.>> Es sind 16 in Reihe geschaltete MF, die sich nacheinander anschieben.> Abgriff per Analogmultiplexer.
Hm, ich hatte gedacht du hast schon einen Aufbau, den du in einen FPGA
nachstellen willst ->
>> Aktuell benutze ich verkettete MonoFlops, deren Einstellung per digital>> programmiertem R erfolgen.
Aus der typbezeichenung von DigPoti Und MonoFlops kann man sich die
timing parameter fürs FPGA ableiten und dann gezielt schauen, wie man es
realisieren könnte
> So wie im Bild soll das Timing in etwa aussehen. Man könnte die Pakete> als PWM-Abschnitte auffassen, die aneinander gereiht werden, aber nur> einmal vorkommen und ständig wechseln. Es sind pulse codes.
Du meinst wohl PCM pulse Code Modulation, also digitale
Nachrichtenübertragung?! Für mich ist das nicht das gleiche wie PWM
(Pulse Width Modulation), PWM impliziert heutzutage (zumindest bei mir)
Schalten von elektrischen Lasten wie Motoren aber
Speicher-Induktivitäten. In der schnellen Datenübertragung kann man
andere Signalstandards wählen als zum Schalten von (induktiven,
kapazitiven) Lasten, muss aberer auch andere Parameter (Terminierung
aktiv/Passiv) im Auge behalten.
Falls Du PCM haben willst, dann wären die High speed Treiber wieder
interessant, wenn es Pakete sind dann könnte man auch zwischendurch
Trainingsphasen wie oben beschrieben einschieben.
Natürlich wäre auch wichtig wie weit die Verbindung reicht und ob
Leitungstreiber (cable driver) involviert sind. Einige FPGA's sind
speziell für solche highspeed-Übertragungen "ausgerüstet" und man kann
da auch einiges am Protokoll drehen, ist also nicht darauf angewiesen
10G Ethernet o.ä darauf laufen zu lassen. Allerdings hat man auch nicht
völlige Freiheit sich selbst einen Leitungscode zu spezifizieren und zu
implementieren.
PS:
Ich seh grad die engl. WP schränkt PCM auf Audio ein, hat aber einen
schönen Kasten "Passband modulation", wo sich bestimmt etwas findet, was
deine Anwendung besser beschreibt als PWM
https://en.wikipedia.org/wiki/Pulse-code_modulation
Hamburger schrieb:> Es sind 16 in Reihe geschaltete MF, die sich nacheinander anschieben.
Was für Bauteile sind da verbaut? Und was genau macht das langsame Poti
da drin?
> Auflösung 50ps wäre schon ausreichend, schätze ich.
Du hast doch einen funktionierenden Aufbau. Warum musst du dann noch
schätzen?
Jürgen S. schrieb:> Andi schrieb:>> Wofür braucht man denn so kurze und genaue Impulsfolgen?> Präzise Ansteuerung von Leistungstransistoren
Und was schalten diese Leistungtransistoren? Und in was für
Maschinen/Geräten befinden sich die Leistungstransistoren und das, das
damit angesteuert wird?
Jürgen S. schrieb:> Andi schrieb:>> Wofür braucht man denn so kurze und genaue Impulsfolgen?> Präzise Ansteuerung von Leistungstransistoren
Mit 50ps Auflösung. Jaja . . .
Andi schrieb:> Und was schalten diese Leistungtransistoren?
Leistung in der Regel, lieber Andi, Leistung schalten die, daher heißen
sie so:-) Praktisch schalten sie Strom ohne etwas von der Spannung zu
wissen. Die sieht aber der Verbraucher.
Wie genau so etwas sein muss, hängt von der Anwendung ab:
Ein massiger Mehrphasenmotor dreht sein Feld mit maximal 3000 UPM, sind
1Mio Winkelgrade, bei einer Auflösung von 1:100 (es werden 3600
PWM-Pulse je Winkelgrad fällig). Also 100MHz Auflösung. Somit müssen die
Pulse also mit 10ns gerastert werden. Wenn die Ansteuerung Sinn machen
soll, sollten die jeweils auf 1% genau sein -> 100ps Auflösung.
Die sind aber mit einem IC und einem Oszillator eigenlich leicht
hinzubekommen.
Robotix schrieb:> Ein massiger Mehrphasenmotor dreht sein Feld mit maximal 3000 UPM, sind> 1Mio Winkelgrade, bei einer Auflösung von 1:100 (es werden 3600> PWM-Pulse je Winkelgrad fällig). Also 100MHz Auflösung. Somit müssen die> Pulse also mit 10ns gerastert werden. Wenn die Ansteuerung Sinn machen> soll, sollten die jeweils auf 1% genau sein -> 100ps Auflösung.
Nein, nicht Aufllösung sondern jitter (des Taktgenerators). Und
natürlich macht eine Motorsteuerung allein mit 10 ns schon "Sinn".
Kürzer zu fordern ist Unsinn.
>Z. B. Laser die gepulst für sehr kurze Zeit eine sehr große Leistung>abgeben.
Nein, die ultrakurzen Laserimpulse (fs) entsehen nicht durch
An/Ausausschalten einer Laserquelle, sondern sind in der jeweiligen
Laserquelle inherent. Geschaltet wird lediglich die Impulsfolgefrequenz
(PRF - pulse repitition -ratio) und das optisch (AOM)), nicht
elektrisch.
https://de.wikipedia.org/wiki/Akustooptischer_Modulatorhttps://de.wikipedia.org/wiki/Femtosekundenlaser>> Andi schrieb:>>> Wofür braucht man denn so kurze und genaue Impulsfolgen?>> Präzise Ansteuerung von Leistungstransistoren>Mit 50ps Auflösung. Jaja . . .
Wer mit 50ps irgendwas schalten will, sollte mal mit den
Grundgleichungen (bspw. (für Kapazität C = Q/U, strom I = Q/t, etc. pp)
mal durchrechnen mit welcher Power er die parasitenkapazitäten
überschwemmen muss um bspw. feldmäßig den Drain Source Kanal
umgeschaltet zu kriegen. Wenn das nicht überzeugt, dann nochmal aber mit
den Differentialgleichungen. Dann wird schon klar warum steile, hohe
Flanken technisch schwer realisierbar sind.
C. A. Rotwang schrieb:> Wer mit 50ps irgendwas schalten will, sollte mal mit den> Grundgleichungen (bspw. (für Kapazität C = Q/U, strom I = Q/t, etc. pp)> mal durchrechnen mit welcher Power er die parasitenkapazitäten> überschwemmen muss um bspw. feldmäßig den Drain Source Kanal> umgeschaltet zu kriegen. Wenn das nicht überzeugt, dann nochmal aber mit> den Differentialgleichungen. Dann wird schon klar warum steile, hohe> Flanken technisch schwer realisierbar sind.
Das ist ein sehr guter Einwand. Wir haben eine Anwendung, bei der ein
Leistungs-FET mit zweistelligen MHz geschaltet wird.
Dazu ist ein Gatetreiber nötig, der satte 19A liefern kann. Der Strom in
das Gate ist kleiner als der Drain-Source-Strom, und der Gatetreiber hat
so hohe Verluste, dass er einen Kühlkörper benötigt.
Und da reden wir von Timings im Bereich von - villeicht - 5ns.
Es braucht viel Know-How, um da 1ns reproduzierbares Timing
hinzubekommen, und ps mit Leistungs-MOSFET halte ich für sehr schwierig.
Das stecken eine Menge Abhängigkeiten wie die Temperatur und die
Spannung mit drin. Natürlich ist das umso leichter, umso kleiner der FET
ist, andererseits darf man bei kleineren FET auch nicht mit 19A ins Gate
fahren.
foobar schrieb:> Du möchtest also eine Auflösung von ca 10ps?Andi schrieb:> Der Titel passt irgendwie überhaupt nicht zur Frage.Lothar M. schrieb:> Mit welchen Monoflops kommst du in den 10ps/100GHz-Bereich?hauspapa schrieb:> Leider gibt es da auch noch gewissse geometrische Einschränkungen.Robotix schrieb:> Andi schrieb:>> Und was schalten diese Leistungtransistoren?> Leistung in der Regel, lieber Andi, Leistung schalten die, daher heißen> sie so:-) Praktisch schalten sie Strom ohne etwas von der Spannung zu> wissen. Die sieht aber der Verbraucher.
Schätze, der Ärmste hängt in einem Nebenmaximum fest, was immer er auch
vor hat.
Andi schrieb:> Jürgen S. schrieb:>> Andi schrieb:>>> Wofür braucht man denn so kurze und genaue Impulsfolgen?>> Präzise Ansteuerung von Leistungstransistoren> Und was schalten diese Leistungtransistoren?
Würde ich auch fragen wollen. In so kurzen Zeiten kann kein Transistor
durchschalten.
C. A. Rotwang schrieb:> Nein, die ultrakurzen Laserimpulse (fs) entsehen nicht durch> An/Ausausschalten einer Laserquelle, sondern sind in der jeweiligen> Laserquelle inherent.
Wie kurz sind solche Pulse minimal? Welche Anwendung benötigt so kleine
Leistungspakete?
Einwand schrieb:> In so kurzen Zeiten kann kein Transistor> durchschalten.
Will das der Threadersteller überhaupt?
Also er will eine hohe zeitliche Auflösung, aber keine so irre kurzen
Pulse. Da will er zwar auch sehr kurze Pulse, aber deutlich länger als 1
ns und vor allem sehr viel länger als die Auflösung.
Ich würde mal behaupten, dass auch wenn der Transistor mehrere ns zum
Schalten braucht, das einigermaßen konstant ist. Also die Zeit zwischen
dem digitalen Signal und bis der Transistor einen bestimmten
Widerstandswert erreicht hat. Wenn man da also digital eine kleine
Verzögerung hat, dann sollte sich das direkt auf den Ausgang und somit
die Pulslänge auswirken.
Gustl B. schrieb:> Einwand schrieb:>> In so kurzen Zeiten kann kein Transistor>> durchschalten.>> Will das der Threadersteller überhaupt?>> Also er will eine hohe zeitliche Auflösung, aber keine so irre kurzen> Pulse. Da will er zwar auch sehr kurze Pulse, aber deutlich länger als 1> ns und vor allem sehr viel länger als die Auflösung.
...und trotzdem geht das nicht so einfach.
Nimm die Miller-Ladung. Die ist Spannungsabhängig. Schon ein paar mV
mehr, schon dauert das Einschalten ein bischen länger. 50ps Genauigkeit
erreichst du damit nie.
Oder nimm den Gatewiderstand. Der ist Temperaturabhängig, und
beeinflusst die Schaltgeschwindigkeit.
Gatetreiber sind auch keine Präzisionsbauteile und haben auch
temperaturabhängige Schaltzeiten. Die liegen außerdem im zweistelligen
ns-Bereich, mithin >Faktor 100 über den 50ps.
Nein, 50ps reproduzierbar zusammnzubekommen ist nicht so einfach, wie
sich das einige hier vorstellen ;-)
Ich kann mir höchstens vorstellen, dass man das in einem geschlossenen
Regelkreis irgendwie die Auflösung benötigen könnte.
--> Es wäre mal toll, wenn Details zur Anwendung kommen würden.
Klar, 50 ps sind schon extrem. Ich wollte nur darauf hinweisen, dass
wenn er hohe Auflösung will, das nicht bedeutet, dass es kurze Pulse
sind. Wobei die 1 ... 2 ns Pulse auch schon sehr kurz sind.
Andi schrieb:> Und was schalten diese Leistungtransistoren? Und in was für> Maschinen/Geräten befinden sich die Leistungstransistoren und das, das> damit angesteuert wird?
Teilchenbeschleuniger-Kavitäten.
In meinem Fall ging es darum, dass die Pulse sehr genau übereinander
liegen mussten, weil mehrere Transistoren gleichzeitig schalten sollten.
Geschieht dies nicht voll synchron, kriegt man die Leistung nicht hin.
In der Betrachtung von Picosekunden, sind das alles sehr flache Flanken,
wie oben schon erwähnt, die aber bei hohen Spannungen dennoch zu
Spannungsdifferenzen führen. Anders, als bei der klassischen
Motorentechnik kann man aber nicht einfach zusätzliche Induktivitäten in
die Pfade schalten um Querströme zu begrenzen.
Hamburger schrieb
> Aktuell benutze ich verkettete MonoFlops, deren Einstellung per digital
programmiertem R erfolgen.
Er arbeitet mit 74HC123 Monoflops und das kann man in jedem FPGA machen.
Entweder kennt er die Bedeutung von n für nano nicht oder es war ein
voll gelungener Trollversuch.
Einwand schrieb:> C. A. Rotwang schrieb:>> Nein, die ultrakurzen Laserimpulse (fs) entsehen nicht durch>> An/Ausausschalten einer Laserquelle, sondern sind in der jeweiligen>> Laserquelle inherent.> Wie kurz sind solche Pulse minimal?
Da wird heutzutage auch von Atto-sekundenlaser gesprochen (10^-18), da
frag mal einen Quantenphysiker wie kurz es theoretisch geht.
> Welche Anwendung benötigt so kleine> Leistungspakete?
Femtosekundenlaser werden in der Ophthalmologie eingesetzt, siehe auch
Laser-in-situ-Keratomileusis (Lasik (augen lasern)). Falls ich es nicht
mit einer anderen Laseranwendung verwechsle dann auch in der
Fluoreszenzmikroskopie/STED/Photoactivated Localization Microscopy, für
die es 2014 den Nobelpreis in Chemie gab.
Ansonsten mal in die Wikipedia schauen, die ist beim stupiden Auflisten
von populärwissenschaftlichen Errungenschaften wie diese noch brauchbar:
https://de.wikipedia.org/wiki/Femtosekundenlaser
Helmut S. schrieb:> Entweder kennt er die Bedeutung von n für nano nicht oder es war ein> voll gelungener Trollversuch.
Er hat ein Problem mit seinem FPGA. Das ist der Sumpf der unbegrenzten
Möglichkeiten mit Fallstricken und Solperdrähten.
Die kommen auf dem LHC nicht weiter und versuchen nun während der
Ereignisse Resonanzen zu erzeugen.
Wahrscheinlich geht es darum einen stringtheoretischen Ansatz zu finden.
Helmut S. schrieb:> Er arbeitet mit 74HC123 Monoflops und das kann man in jedem FPGA machen.
Mit denen lassen sich Zeiten aber durchaus feiner einstellen, als mit
einem hochgetakteten FPGA. Nur nicht so reproduzierbar. Man darf den
Jitter im FPGA nicht vergessen. FPGA-Ausgänge sind keine Wunder, was
analoge Qualitäten angeht.
C. A. Rotwang schrieb:> Femtosekundenlaser werden in der Ophthalmologie eingesetzt,
Die pulsen aber von selber so kurz und müssen nicht digital gefenstert
werden, oder?
Laser mit solchen Energien können sicher auch nicht so lang pulsen?
Die Pulsen von selbst so kurz. Allerdings mit einem Trick, welcher die
Pulse von selbst verkuerzt.
Zutat 1 : Ein Element, welches seine Verluste mit zunehmender
Peakleistung verkleinert.
Zutat 2 : Dispersionskompensator, welcher einen wellenlaengenabhaengigen
Delay macht.
Femtosekunden Laser laufen kuntinuierlich als Pulslaser. zB mit
repetitionsraten von 100MHz. Man kann davon Einzelpulse, zB mit 10Hz
verstaerken und die laufen dann eben mit 10Hz.
Superhochaufloesenden PWM sind in den meisten Faellen phantasieloser
Quatsch. Ich verwende in solchen Faellen bevorzugt Submodulation.
Beispiel.
Ich moechte einen 16bit PWM mit 60kHz. Kein Problem. Ein 8 Bit Zaehler
laeuft mit 16 MHz, ergibt mein 60kHz PWM. Nun werden eben die 60kHz noch
mit 8 bit moduliert. zB 94 mal der eine Wert, und 162 mal der andere
Wert.
Also PWM Wert = 0x2312 bedeuten :
8 Bit Divider = 0x23
Modulation : 0x12 mal den Wert 0x24 und
0xDE mal den Wert 0x23 laden
Fertig.
Joggel E. schrieb:> Ich moechte einen 16bit PWM mit 60kHz. Kein Problem. Ein 8 Bit Zaehler> laeuft mit 16 MHz, ergibt mein 60kHz PWM.
Mal abgesehen davon, dass das so nicht stimmt, sondern es 66kHz sein
müssten und die auch nicht zu den geplanten 16 Bit passen, ist deine
zweistufige Lösung nicht vergleichbar mit einer hochaufgelösten PWM. Die
Aussage, dass diese in den meisten Fällen Quatsch sei, ist nicht
nachvollziehbar.
Also eigentlich ist die PWM Frequenz bei Joggel E.s Verfahren 62.5 kHz
für primäre 8 Bit Auflösung, und 244 Hz für 16 Bit Sub-modulierte
Auflösung.
Es gibt natürlich Anwendungen da reicht es, wenn man schnell den
ungefähren Wert erhält und dann langsam den genaueren, aber das ist
trotzdem keine 16bit PWM bei 60 kHz.
Ich plädiere ohnehin für eine PDM, wenn es um ein schnelles Nachführen
des Wertes geht.
Joggel E. schrieb:> Ein 8 Bit Zaehler laeuft mit 16 MHz,
Schon mit 6MHz statt 16 kriegt man damit gutes Audio hin.