controller mit >= 100 MHz clock

Hallo,

Ich bin auf der Suche nach einem controller mit mindestens 100MHz Taktfrequenz. Benoetigt werden:

- ein Eingang (zum Triggern)

- zwei Ausgaenge

Grund ist, ich moechte zwei Mosfets flexibel ansteuern. Die Signale sollten dabei auf 10ns genau einstellbar sein. Natuerlich sollte T_r and T_f dem entsprechend klein sein.

--
Gruss
Mark
Reply to
Mark
Loading thread data ...

Mark schrieb:

Hallo,

ich fürchte auch wenn der Controller über 100 MHz Taktfrequenz hat werden sich die Ausgänge nicht immer auf 10 ns genau einstellen lassen. Ein FPGA mit 100 MHz Taktfrequenz und genügend Flipflops für Schieberegister zur Steuerung des Zeitablaufs scheint mir da geeigneter.

Bye

Reply to
Uwe Hercksen

Hi Mark,

Das klingt nach FPGA oder CPLD. Mit geeignetem Plazieren kann man auch über die Wahl des Signalpfades im Chip ein paar 10 ns hin und her schieben, so dass ggfs die 100 MHz Takt gar nicht nötig sind.

Marte

Reply to
Marte Schwarz

Vermutlich träumt er nicht von kleinen Fets sondern von solchen mit viel Eingangskapazität die in diesem Fall gewaltigen Pegelumsetzer/Treiber benötigen. Der wird dann warm und hat nicht auf 10nsec fixe Verzögerung. Vermutlich ist eine simple Steuerung also nicht möglich und eine Regelschleife sinnvoller.

Oder auch: soll halt verraten was er genau bauen will, vermutlich ist anderer Ansatz nötig als ihm vorschwebt.

MfG JRD

Reply to
Rafael Deliano

Zumindest bei den schnellen Controllern mit denen ich so zutun habe (R32,SH2) gibt es ein gewisses Verhaeltnis zwischen Takt und Zugriff auf externen Busse/Pinne. Soll heissen der Controller schafft da niemals 100Mhz.

Das naechste Problem. Controller in der 100Mhz Klasse haben normalerweise viele Pinne mit vielen VCCs und jede Menge anderem Gedoens drin und dann gleich 144 bis 200++ Beinchen. Aber wenn du einen 8pinner mit 100Mhz findest dann sag ruhig bescheid.

Vielleicht solltest du besser genau erzaehlen was du machen willst. Es gibt ja unter Umstaenden die Moeglichkeit da was mit Timern zu machen. Ich habe z.B mal bei den R8C einen Typen gesehen den Renesas ganz besonders auf die Ansteuerung von Motoren optimiert hat. Leider faellt mir die genaue Bezeichnung gerade nicht ein. Damit kann man dann Sachen machen die ein fetter Controller niemals kann.

Ein FPGA koennte das natuerlich, aber da steckt auch gleich ein riesiger Aufwand hinter.

Olaf

Reply to
Olaf Kaluza

Taktfrequenz.

Wenn man viel Rechenleistung und (relativ) sauber synchronisierte schnelle Taktraten braucht waere ein DSP angesagt. Bin gerade an so einer Sachen dran. Zum Glueck muss ich den DSP nicht programmieren :-)

--
Gruesse, Joerg

http://www.analogconsultants.com/
 Click to see the full signature
Reply to
Joerg

Michael Koch schrieb:

Die 100 MIPS reichen aber leider nicht aus.

Der OP will einen Eingang abfragen und zwei Ausgänge setzen. Wie genau schreibt er nicht. Ich spinn also mal einfach rum:

Also mal angenommen, er wartet auf ein Eingagssignal (Trigger) und will dann zwei Ausgänge zeitverzögert ansteuern und anschließend auf den nächsten Trigger warten.

Dann benötigt er:

  1. Lese Eingangsbyte
  2. Prüfe Bit
  3. wenn kein Trigger springe nach 1
  4. Decrementiere Zähler 1
  5. Teste, ob Zähler 1 > 0
  6. Springe gegebenenfalls nach 4
  7. Setze Ausgangsbit 1
  8. Decrementiere Zähler 2
  9. Teste, ob Zähler 2 > 0
  10. Springe gegebenenfalls nach 8
  11. Setzen Ausgangsbit 2
  12. Setze Zähler 1 auf Anfangswert
  13. Setze Zähler 2 auf Anfangswert
  14. Setze Bit 1 zurück
  15. Setze Bit 2 zurück
  16. Springe nach 1

Also 16 Kommandos, entsprechend mindestens 160ns Durchlaufzeit. Die inneren Warteschleifen haben eine Umlaufzeit von mindestens 3 Takten, also 30ns.

Wenn die Impule nicht minimal 10ns lang sein müssen und der OP lediglich Impule mit z.B. 300ns mit 10ns einstellen will, reicht es unter Umständen so gerade eben, aber nicht mir variablen Pulsbreiten, nur durch fest einprogrammierte NOPS, die die Laufzeit verlängern.

In etwa so;

  1. siehe oben nop nop nop ... Setze Bit 1 nop nop nop ... Setze Bit 2 nop nop ... Setze Bit 1 zurück nop nop nop ... Setze Bit 2 zurück nop nop ... Springe nach 1

Je mit jedem zusätzlichen NOP wird dann ein Puls oder eine Pause um 10ns verlängern.

Gruß

Stefan

Reply to
Stefan Brröring

Hallo Stefan,

Und von diesen linear ablaufenden Programmen, die weitgehendst ohne Schleifen auskommen, legt man einfach für jede denkbare Verzögerungszeit ein eigenes Programm an. Speicher ist doch im Überfluss vorhanden.

Gruss Michael

Reply to
Michael Koch

Die Idee dahinter ist zwei Mosfets in totem-pole-Anordnung anzusteuern. Als Treiber hab ich hier den DEIC420. Mosfet DE475-501N44A. Verschiedene andere Mosfets und eine Treiber-Mosfet-Combination. Alle IXYS.

Derzeit hab ich eine Schaltung mit nur einem Mosfet. Das Signal kommt von einem Altera FPGA (Cyclone II). Pusbreite kann ich von 10ns bis

630ns via Software einstellen. Frequenz auch 1 Hz - 10 kHz.

Eine Spannung von 300 - 400 V soll sich sehr kurz auf einen piezoelektrischen Transducer entladen. Strom duerfte so bei ueber 100 A liegen. Transducer sind sehr niederohmig und vorwiegend kapazitiv.

Fuer gewoehnlich hat man da dann immer noch den "Schwanz" (gedaempfte Schwingung). den will ich mit dem zweiten Mosfet durch kurz schliessen reduzieren.

Transducer haben wir von 3.5 MHz bis 20 MHz. Deswegen auch die Einstellbarkeit.

Ein Controller schien mir da am Geeignetsten, FPGA waere ja overkill, nur fuer diesen Zweck.

Das naechste FBGA Board design hat natuerlich dann zwei Ausgaenge.

>
--
Gruss
Mark
Reply to
Mark

Taktfrequenz.

War mein erster Gedanke, nur ausschliesslich fuer diesen Zweck eine FPGA daher nehmen?

--
Gruss
Mark
Reply to
Mark

Mach ich.

Genauer geht es darum moeglichst kurz mittels eine hohe Spannung 300 -

400 V auf einen vornehmlich kapazitiven niederohmigen Transducer anzuwenden. Ein zweiter Mosfet schliesst Ihn dann kurz. Mit eienem Controller waere man da rech flexibel, was die Pulsbreiten und die Schaltzeitpunkte anbelangt.

Genau.

--
Gruss
Mark
Reply to
Mark

Mach ich.

Genauer geht es darum moeglichst kurz mittels eine hohe Spannung 300 -

400 V auf einen vornehmlich kapazitiven niederohmigen Transducer anzuwenden. Ein zweiter Mosfet schliesst Ihn dann kurz. Mit eienem Controller waere man da rech flexibel, was die Pulsbreiten und die Schaltzeitpunkte anbelangt.

Genau.

--
Gruss
Mark
Reply to
Mark

Also delay zum Eingangssignal ist nicht so das Problem. Wieviele Clockimpulse sind denn minimal noetig um einen Ausgang von 0 auf 1 und wieder zurueck zu setzen. Ist vermutlich von Controller zu Controller unterschiedlich.

--
Gruss
Mark
Reply to
Mark

Hi Mark,

Warum nimmst Du dann nicht eine der üblichen break-before-make Treiber, bzw deren diskrete Umsetzung? Das ist doch mittlerweile Standard bei fast allen H-Brückentreibern, die ich kenne. Ob nun totem-pole oder Komplementärendstufe, das Thema bbm ist doch überall gegeben.

Dann wird sich doch sicher in diesem Teil noch ein kleines Eckchen Platz für eine vernünftige Lösung finden.

Ob das mit Kurzschluß so klappen wird, wage ich zu bezweifeln. Zum wirsamen Dämpfen von Schwingungen waren Widerstände dazuschalten meist effektiver.

Hätte ich bei den geforderten Timings eher anderst herum gesehen. UNd wenn das FPGA schon für das Grundtiming zuständig ist, sollte da auch die abhängige Zeit einfacher zu realisieren sein, als noch mal was Externes aufzuziehen.

Na dann mal los.

Marte

Reply to
Marte Schwarz

Hallo Mark,

Sehr wohl und das hat auch gar nichts mit der internen Clockrate zu tun. Wir hatten ARM7-µC im Einsatz, die intern mit >40 MHz laufen, aber an den Pins bei 2 MHz schlapp machen. Speziell bei den SPIs hätten die Chipdesigner wirklich ein bischen mehr Speed spendieren können.

Marte

Reply to
Marte Schwarz

Mark schrieb:

Hallo,

wenn es keinen dafür passenden Controller gibt kann der auch nicht am geeignetsten sein. Wenn Du schon ein FPGA hast wäre es doch am besten das Problem in diesem zu lösen, ohne ein zusätzliches FPGA. Falls in dem vorhanden FPGA dafür nicht mehr genug Resourcen frei sind muß es wohl das nächstgrössere sein.

Bye

Reply to
Uwe Hercksen

Mark schrieb:

Hallo,

der Controller soll ja schnell mit konstanter Verzögerungszeit auf den triggernden Eingang reagieren, da liegt das Problem. Wenn dabei ein Jitter von etlichen 10 ns dazukommt nützt Dir das doch nichts.

Bye

Reply to
Uwe Hercksen

Am 10.08.2010 15:51, schrieb Mark:

Ich hatte mal nach Timer-ICs für das Takten mehrerer ADC mit 1Gs/s gesucht. Vielleicht gibt es da was für Dich Geeignetes. Ich meine, TI und Analog hätten solche Dinger im Programm.

Ein genügend schnelles FIFO könnte auch funktionieren.

In beiden Fällen könntest Du das Timing mit dem Controller vorgeben und dann laufen lassen.

Gruß, Falk

--
Suche SD/MMC-Karten mit 64MB-512MB
Reply to
Falk Willberg

Ack. Es kommt dann aber auch noch darauf an, wie gross das Jitter beim Erkennen des Triggersignals sein darf. 10ns sind da schon beim Erkennen mit dieser CPU gar nicht moeglich, denn es gibt keinen Sprungbefehl der nur 1 Cycle benoetigt. Dazu kommt, dass diese CPU bereits recht modern ist und einen Branch Target Cache hat (weil die Fetch-unit sonst nicht hinterherkommt und die Pipeline leerlaeufen wuerde). Bei einem Cache miss wird die Pipeline daher fuer Zitat "bis zu 4 Cycles" angehalten und der Sprung selbst dauert einen Cycle laenger. D.h. man kriegt gleich nochmal bis zu 50ns Jitter drauf wenn man die relevanten Sprungziele nicht im Cache halten kann. Wenn es dumm laeuft koennte das Gesamt-Jitter also mit dieser CPU am Ende groesser werden wie die angepeilte Pulsdauer.

Micha

Reply to
Michael Baeuerle

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.