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
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.
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.
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?
@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.
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.
Also sowohl Impulsbreite als auch der Tastgrad sollte eigentlich frei
einstellbar sein. Wobei die 10/30ns das Minimum wären und Dauerbetrieb
das Maximum.
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.
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.
@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.
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
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öööööö.
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.
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.
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.
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.
@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.
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?
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.
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.
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.
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.
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 ...
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.
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 ...
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.
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.
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.
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 ;-)
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.
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.
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
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, ...