Forum: Mikrocontroller und Digitale Elektronik 10ns Rechteckimpuls erzeugen


von Sprungfunktion (Gast)


Lesenswert?

Hallo,

für ein Treiber brauch ich ein Signal, das soll sowohl für Dauerbetrieb 
als auch für Impulsbetrieb geeignet sein.
Anfangs dachte ich an einem STM32, da kann ich über den Timer die 
Impulsbreite z.B. 1µs bei einer Periodendauer von 10µs einstellen, oder 
den Pin einfach auf high schalten.

Um alles aus der Schaltung raus zu holen, bräuchte ich allerdings einen 
ca. 10ns Impuls (tr,tf=1ns) bei 3,3V. Das dürfte der Timer nicht mehr 
schaffen.

Wenn ich da einen VCO nehme und den mit einem Schmidt Tricker auf 
Rechteck "umwandle" habe ich ja keinen Impuls. Das sollte die Schaltung 
auch noch können. Also z.B. Ton=50ns PW=100ns.

Meine Idee wäre jetzt, ich erzeuge einen 15ns Impuls und lass ein Stück 
weg filtern und ein Komperator etc. bereitet es wieder auf. Dieser 
Filter müsste dann per µC zuschaltbar sein.

Eine Lösung für FPGA oder MCU wäre super. Kennt jmd eine MCU von STM mit 
einem IO-Takt von >100MHz bzw, dass ein Timer >100MHz auf den Pin legen 
kann.

Ich bedanke mich schon mal

von m.n. (Gast)


Lesenswert?

Sprungfunktion schrieb:
> Kennt jmd eine MCU von STM mit
> einem IO-Takt von >100MHz bzw, dass ein Timer >100MHz auf den Pin legen
> kann.

Abhängig vom Anwendungsfall könnte man einen STM32F4xxx nehmen. Die 
..407 laufen typisch mit 168 MHz und die ..427 mit 180 MHz.
An anderer Stelle gab es Berichte, daß es möglich sei, die µCs ein wenig 
zu übertakten, wenn man die wait-states fürs Flash höher einstellt.

Mit ein wenig Mut könntest Du einen dieser Kandidaten mit 200 MHz laufen 
lassen und hättest 5 ns Auflösung für die Timer.
Wie gesagt, es hängt von Deiner Anwendung ab.

von stefan us (Gast)


Lesenswert?

Muss es genau 10ns sein? Wenn nicht, kann man das mit TTL Gattern recht 
einfach realisieren, indem man deren Signal-Laufzeiten ausnutzt. Im 
Prinzip so:
1
                               _____
2
100kHz Takt o---+-------------|     |
3
                |   ___       | AND |----o Ausgang Nadelimpulse
4
                +--| 1 |o-----|_____|
5
                   |___|

Ich hatte diese Schaltung mal genutzt, um Reflexionen in defekten 
Koax-Kabeln auszumessen.

von Turbobit (Gast)


Lesenswert?

Statt des  TTL-Gatters geht auch ein entsprechend langes Stück Draht.

von m.n. (Gast)


Lesenswert?

Ich sehe gerade, 10 ns bekommt man ja schon mit 100 MHz Taktfrequenz und 
einen passenden Timer gezaubert.

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


Lesenswert?

Sprungfunktion schrieb:
> Um alles aus der Schaltung raus zu holen, bräuchte ich allerdings einen
> ca. 10ns Impuls (tr,tf=1ns) bei 3,3V. Das dürfte der Timer nicht mehr
> schaffen.
Ob du so ein Flanke hinbekommst, hängt zuallererst vom Layout ab. Denn 
für eine "halbwegs saubere" 1ns-Flanke brauchst du Oberwellen bis 
5GHz...

> mit einem Schmidt Tricker
Mit was?

> Um alles aus der Schaltung raus zu holen, bräuchte ich allerdings einen
> ca. 10ns Impuls (tr,tf=1ns) bei 3,3V. Das dürfte der Timer nicht mehr
> schaffen.
Wie oft brauchst du diesen Impuls?

: Bearbeitet durch Moderator
von Stefan F. (Gast)


Lesenswert?

> Wie oft brauchst du diesen Impuls?
> bei einer Periodendauer von 10µs einstellen

Hab ich zumindest so verstanden.

von Sprungfunktion (Gast)


Lesenswert?

@m.n. Mit dem 407 hab ich schon einiges gemacht, aber ist da nur der 
Core Takt so hoch und der IO-Takt liegt deutlich drunter? Wobei im Clock 
Tree würde der APBx timer clocks mit SYSCLK laufen können.

@stefan us die Idee ist super, so etwas könnte funktionieren.


@Lothar Miller habe ich vergessen sry. Die nachfolgende Schaltung kann 
momentan nur ca. Ton=10ns PW=30ns. Die Impulse sollen dann periodisch 
kommen. Also der 10ns Impuls z.B. alle 30ns.

von Jim M. (turboj)


Lesenswert?

Sprungfunktion schrieb:
> Um alles aus der Schaltung raus zu holen, bräuchte ich allerdings einen
> ca. 10ns Impuls (tr,tf=1ns) bei 3,3V. Das dürfte der Timer nicht mehr
> schaffen.

Solche Pulse macht nicht mal der Pin selber mit. Bei einem normalen µC 
Pin hast Du schon eher 10ns tr und tf wegen RdsOn der Ausgangs-FETs und 
des parasitären C.

von Sprungfunktion (Gast)


Lesenswert?

Also sowohl Impulsbreite als auch der Tastgrad sollte eigentlich frei 
einstellbar sein. Wobei die 10/30ns das Minimum wären und Dauerbetrieb 
das Maximum.

von m.n. (Gast)


Lesenswert?

Sprungfunktion schrieb:
> @m.n. Mit dem 407 hab ich schon einiges gemacht, aber ist da nur der
> Core Takt so hoch und der IO-Takt liegt deutlich drunter?

Dann fehlt Dir wohl noch PWM mit einem Timer. Damit geht das recht 
einfach.

von ul5255 (Gast)


Lesenswert?

m.n. schrieb:
> Sprungfunktion schrieb:
>> @m.n. Mit dem 407 hab ich schon einiges gemacht, aber ist da nur der
>> Core Takt so hoch und der IO-Takt liegt deutlich drunter?
>
> Dann fehlt Dir wohl noch PWM mit einem Timer. Damit geht das recht
> einfach.

beim STM32F407 ist offiziell bei den fast I/O pins bei 84MHz Schluss. Da 
hilft auch kein PWM.

von Sprungfunktion (Gast)


Lesenswert?

@m.n. PWM war ja auch mein Ziel. Ich hatte nur im Hinterkopf, dass da 
bei ~60MHz am Ausgang Schluss ist. Aber vll verwechsle ich das jetzt mit 
dem STM32F302, den ich eigentlich dafür einsetzen wollte. Da ich noch 
einen 407er rumliegen hab, teste ich es einfach demnächst. Das wäre 
natürlich die beste Lösung.

von Sprungfunktion (Gast)


Lesenswert?

@ul5255 da war ich zu spät ^^ genau das meinte ich eben.

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


Lesenswert?

Sprungfunktion schrieb:
> Also sowohl Impulsbreite als auch der Tastgrad sollte eigentlich frei
> einstellbar sein. Wobei die 10/30ns das Minimum wären und Dauerbetrieb
> das Maximum.
Nimm ein FPGA oder eher noch ein CPLD. Aber 1ns ist da immer noch zu 
eng.
Du wirst eher noch einen speziellen Clock-Buffer dafür einsetzen 
müssen...
https://www.google.de/search?q=Clock-Buffer+tr+tf

von MaWin (Gast)


Lesenswert?

Sprungfunktion schrieb:
> Meine Idee wäre jetzt, ich erzeuge einen 15ns Impuls und lass ein Stück
> weg filtern und ein Komperator etc. bereitet es wieder auf.

Och nö. Wenn der 10ns Impuls zu kurz ist, um per Ausgangspin erzeugt zu 
werden, dann erzeuge den Impuls durch ein Mono-Flop. Wenn die 10ns nicht 
so genau sein müssen, kann es die Durchlaufzeit eines Gatters sein, 
siehe Schaltung von Stefan us.
Genauere 10ns gibt es durch Delay-Schaltkreise wie CDKD5005 oder 
DS1100L-100 (3.3V)

Sprungfunktion schrieb:
> mit einem Schmidt Tricker

Och nöööööö.

von MaWin (Gast)


Lesenswert?

Sprungfunktion schrieb:
> Also sowohl Impulsbreite als auch der Tastgrad sollte eigentlich frei
> einstellbar sein. Wobei die 10/30ns das Minimum wären und Dauerbetrieb
> das Maximum.

Na klasse, und so was kommt als Salamischeibe nach dem 10. Beitrag.

Lös deine Probleme selber.

von Joachim B. (jar)


Lesenswert?

man kann doch die Gatterlaufzeit nutzen und eine Flanke auf einen Pin 
eines XOR mit 2 Eingängen geben und das verzögerte um die Gatterlaufzeit 
auf den anderen XOR Eingang geben, ergibt einen Peak mit der Breite der 
Gatterlaufzeit der Verzögerung. Habe ich früher zur Verdopplung vom 8 
MHz Systemtakt eines Floppy Controllers zum Betrieb für HD Disketten 
gemacht.

74/54er Gatter im ns Tempo gibts ja einige von AHC(T) bis F, ich denke 
da muss man noch nicht mal auf ECL ausweichen.

von isidor (Gast)


Angehängte Dateien:

Lesenswert?

Wär's recht so?

1ns Flanken bekommt man nicht, aber so etwa 2ns sind mit üblichen
LCV Gattern machbar.

Ich frage mich allerdings wofür die hohe Anforderung von 1ns
gedacht sein soll. Das hat uns der Thread-Ersteller bisher
verschwiegen.

von Sprungfunktion (Gast)


Lesenswert?

MaWin schrieb:
> Na klasse, und so was kommt als Salamischeibe nach dem 10. Beitrag.

Ging es Dir noch nie so, dass du gewisse Parameter für Dich selbst so 
klar sind, dass man sie nicht aufschreibt. Besonders, wenn man sich 
mehrere Monate mit einem Projekt beschäftigt? Ich habe mir den ersten 
Post durchgelesen und es stimmt, die Angabe fehlt, habe sie aber nach 30 
Min, als es zu Unklarheiten kam, sofort nachgereicht. Wenn ich so 
Perfekt wäre, bräuchte ich das MK.net-Board auch nicht.

von Sprungfunktion (Gast)


Lesenswert?

@isidor Das Signal sieht gut aus. Danke!

Während der Flanke erzeugt die nachfolgende Schaltung Verlustleistung. 
Die 1ns sind nicht zu 100% Fix, damit hat es nur gut Funktioniert (mit 
einem Funktionsgenerator).

Am Ende muss es realistisch funktionieren, also dann mit weniger 
Leistung und schneller oder eben mehr Leistung und im 100ns Bereich. Ich 
will nur Ideen sammeln, mit welchen Methoden ich welche Ergebnisse 
bekomme, bzw. welcher Ansatz sich lohnt weiter zu verfolgen.

von isidor (Gast)


Lesenswert?

Sprungfunktion schrieb:
> (mit einem Funktionsgenerator).

Den Generator der das kann (1 ns Trise/Tfall) ... den möchte
ich sehen ...  den gibt es nicht um die Ecke beim Conrad ...
Wo gibt es den?

von isidor (Gast)


Lesenswert?

Sprungfunktion schrieb:
> Während der Flanke erzeugt die nachfolgende Schaltung Verlustleistung.

Da wage ich mal zu behaupten dass jede nachfolgende Schaltung die
du mit einen handelsüblichen schellen (LVC-) Gatter steuerst,
deutlich langsamer ist und schon deshalb in den Schaltflanken
Leistung verbraucht, aber nicht weil das ansteuernde Gatter zu
lange Anstiegs- oder Abfallzeiten hat.

von Sprungfunktion (Gast)


Lesenswert?

http://s7.images.keysight.com/is/image/Keysight/COLL-1000000193.epsg.pgr-HI?wid=1410

Der ganz rechts. Die genaue Ausführung hab ich gerade nicht da, da ich 
nicht im Labor bin. Ein Kollege hat den BERT für nen 10GBit Test 
eingesetzt, das ist so die Grenze in der aktuellen Konfiguration. Nutzen 
den hauptsächlich für 1GBit Geschichten, da muss das Ding < 2 ns Impulse 
ausgeben. Die 1ns habe ich selbst nicht gemessen, aber lt. Kollegen 
packt er die. Und ich denke Conrad hat den nicht.

von m.n. (Gast)


Lesenswert?

ul5255 schrieb:
> beim STM32F407 ist offiziell bei den fast I/O pins bei 84MHz Schluss. Da
> hilft auch kein PWM.

In meinen 'inoffiziellen' Datenblättern stehen 100 MHz und auch 200 MHz, 
wobei sich letztere Angabe wohl auf Ethernet bezieht.
Vermutlich meinst Du die APB2 Frequenz. Das ist aber nicht die 
Taktfrequenz für die Timer.

von ul5255 (Gast)


Lesenswert?

m.n. schrieb:
> Vermutlich meinst Du die APB2 Frequenz. Das ist aber nicht die
> Taktfrequenz für die Timer.

Hallo m.n.,
Was ich meine, ist, dass selbst wenn die Timer schneller laufen, Du die 
Pins zum erzeugen des Impulses trotzdem nur mit max. 84MHz toggeln 
kannst. Fuer die oben angefragten Pulse bedeutet das dann t_on = 1 / 
(84MHz / 2) ~ 24ns was schon etwas von den geforderten 10ns weg ist.

von ul5255 (Gast)


Lesenswert?

Nachtrag: Weiters ist mir nicht klar, wie kraeftig die Treiber der Pins 
sind. Thema Flankensteilheit, parasitaere Kapazitaeten, Rds_on, ... Aber 
das wurde weiter oben ja schonmal thematisiert ...

von Uwe Bonnes (Gast)


Lesenswert?

ul5255 schrieb:
>
> beim STM32F407 ist offiziell bei den fast I/O pins bei 84MHz Schluss. Da
> hilft auch kein PWM.

F411 kann 100 MHz AHB/APB2 mit entsprechender Einstellung.
F3xx kann die Timer mit bis zu 144 MHz Takten.

von ul5255 (Gast)


Lesenswert?

Uwe Bonnes schrieb:
> ul5255 schrieb:
>>
>> beim STM32F407 ist offiziell bei den fast I/O pins bei 84MHz Schluss. Da
>> hilft auch kein PWM.
>
> F411 kann 100 MHz AHB/APB2 mit entsprechender Einstellung.
> F3xx kann die Timer mit bis zu 144 MHz Takten.

Interessant, wusste ich noch nicht. Aber auch damit schaffst Du keine 
10ns t_on ...

von Stefan F. (Gast)


Lesenswert?

> Solche Pulse macht nicht mal der Pin selber mit.

Aber sicher doch. Ich hab's wie gesagt mit Standard 74xx Gattern 
gemacht.

von m.n. (Gast)


Lesenswert?

ul5255 schrieb:
> Hallo m.n.,
> Was ich meine, ist, dass selbst wenn die Timer schneller laufen, Du die
> Pins zum erzeugen des Impulses trotzdem nur mit max. 84MHz toggeln
> kannst.

Ich brauche etwas Nachhilfe: Wo steht das?
Wenn Du 84 MHz als max. Ausgabefrequenz meinst, dann sind es 5,95 ns für 
'1' und 5,95 ns für '0'.
Ich rede vom STM32F407 und seinen Timern 1, 8, 9, 10 und 11, die ohne 
Übertaktung mit 168 MHz laufen können.

von T. F. (sar)


Lesenswert?

Habe gerade einen F334 gier rum liegen und der macht sehr brave ~5ns tr 
& tf wenn die Ausgangstreiber auf schnell eingestellt sind (~10ns bei 
low speed). Habe allerdings nur ein 200MHz Oszi gerade am Tisch. Denke 
also mit einem passenden Treiber könnten da schon tr&tf mit ~1ns und ton 
10ns machbar sein.

von uwe (Gast)


Lesenswert?

DSPPics können:
1 nS duty cycle resolution PWM
http://www.microchip.com/pagehandler/en-us/family/16bit/peripherals.html

von Uwe Bonnes (Gast)


Lesenswert?

uwe schrieb:
> DSPPics können:
> 1 nS duty cycle resolution PWM
> http://www.microchip.com/pagehandler/en-us/family/16bit/peripherals.html

Wenn wir hier beim "welcher ist länger" sind: Der HR Timer des F334 
schafft 210 ps Auflösung...

von Sprungfunktion (Gast)


Angehängte Dateien:

Lesenswert?

Ich bedanke mich erst einmal für die neuen Antworten. Ich werde mir die 
Chips anschauen, wobei ich gerne bei ARM bleiben würde.

Bei einem alten Projekt habe ich den STM32F407IG verbaut und hab da mal 
PWM auf vollgas laufen lassen.
Das Oszi ist nur ein altes Tektronix 100MHz, was besseres habe ich hier 
nicht rumstehen. Tastkopf ist abgeglichen, aber das Signal geht über ne 
Pfostenleiste nach außen.

Ich werde wohl die nächsten Wochen ein paar Möglichkeiten durch 
probieren und vll. einen Wikiartikel über das gesamte Projekt schreiben. 
(sobald ich darf) Das dürfte einige interessieren.

Jedenfalls Danke an alle, die konstruktiv mit geholfen haben, wenn jmd 
noch eine Idee hat, bitte posten.

von m.n. (Gast)


Lesenswert?

Sprungfunktion schrieb:
> Bei einem alten Projekt habe ich den STM32F407IG verbaut und hab da mal
> PWM auf vollgas laufen lassen.

Der Impuls ist genau 5,95 ns lang.
Das ist doch ganz deutlich zu sehen ;-)

von Sprungfunktion (Gast)


Lesenswert?

m.n. schrieb:
> Sprungfunktion schrieb:
>> Bei einem alten Projekt habe ich den STM32F407IG verbaut und hab da mal
>> PWM auf vollgas laufen lassen.
>
> Der Impuls ist genau 5,95 ns lang.
> Das ist doch ganz deutlich zu sehen ;-)

Laut Cube MX/Datenblatt läuft auch der Timer mit 168MHz. Dann beziehen 
sich die ~80MHz nur auf GPIO. Rechteck sieht zwar anders aus, da muss 
ich die Verluste bzw. Tj mal genauer untersuchen.

Da bietet sich vll auch die Cortex-M7 an, da steht es sogar im 
Datenblatt, Max timer clock 200 MHz. Da könnte ich einiges an Layout und 
Code übernehmen.

von m.n. (Gast)


Lesenswert?

Sprungfunktion schrieb:
> Da bietet sich vll auch die Cortex-M7 an, da steht es sogar im
> Datenblatt, Max timer clock 200 MHz. Da könnte ich einiges an Layout und
> Code übernehmen.

Geh das mal besser pragmatisch an und lass den 407 mit 100 MHz laufen. 
Damit bekommst Du genau Deine 10 ns Auflösung.

Den M7 würde ich nicht nehmen. Nächstes Jahr kommt der M8 mit 500 MHz 
und 2017 schon der M9 mit 1 GHz ... und viel billiger und in China und 
überhaupt.

von MiWi (Gast)


Lesenswert?

uwe schrieb:
> DSPPics können:
> 1 nS duty cycle resolution PWM
> http://www.microchip.com/pagehandler/en-us/family/...

Obacht.... wir hatten einen Hardwarebug in der F-Serie gefunden und seit 
dem traue ich den Teilen nicht mehr sonderlich über den Weg.

Und 2 Chipfehler in einem Jahr bei dem selben Hersteller DSPIC und 
MCP1710) lassen uns nun einen weiten Bogen um den Laden machen wenn es 
um Neudesigns geht.

Grüße

MiWi

von Sprungfunktion (Gast)


Lesenswert?

Naja die M7 ist kompatibel mit der M4. Beim vorherigen Projekt kam ich 
mit dem 407 an die Grenzen. StemWin ist zwar super (auch mit externen 
RAM) aber ohne 2D-DMA nur halb so schön. Der Speicherbus ist bei der 
vorgestellten M7 32Bit (bei der 427 auch). Bevor ich die 427 nehme, kann 
ich direkt die M7 nehmen. Wie die Anforderungen genau werden (10ns oder 
mehr oder weniger) stellt sich erst in den nächsten Monaten raus.

Aber was spricht gegen die M7? Klar für den Preis würde ich vermutlich 
auch die A20 bekommen. Mit Linux hätte ich Qt, Ethernet, Kernel, ...

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.