Hi,
ich möchte gerne einen sehr schnellen Seriell zu Parallel Wandler
entwerfen und habe dazu Fragen, wie ich die Sache am Besten angehen
sollte.
Auf paralleler Seite möchte ich 64 Ausgänge (beinahe) gleichzeitig mit
einer Ausgangsfrequenz von 500 KHz schalten.
Nun würde ich daraus folgern, dass die serielle Taktfrequenz nun
mindestens das 64-fache der Ausgangsfrequenz betragen muss, also
mindestens 32 MHz.
Ideal für mich wäre eine serielle Datenübertragung z.B. über SPI mit
einer Taktfrequenz von z.B. 80 MHz. Das müsste mit einem ARM9 machbar
sein.
Nun bräuche ich am Besten einen schnellen Wandler IC, idealerweise
schafft dieser pro Output auch noch einen Ausgangsstrom von 500 mA pro
Output.
Jedoch wird es so einen IC wahrscheinlich nicht geben.
Wie könnte man 64 Pins mit einer 500 Khz Frequenz mit jeweils 500 mA
Ausgangsstrom noch schalten?
Vielleicht habt ihr ja nette Ideen.
@ Matthias (Gast)
>ich möchte gerne einen sehr schnellen Seriell zu Parallel Wandler>entwerfen
Das wollen hier viele.
>Auf paralleler Seite möchte ich 64 Ausgänge (beinahe) gleichzeitig mit>einer Ausgangsfrequenz von 500 KHz schalten.
Das nennst du SCHNELL?
>Nun würde ich daraus folgern, dass die serielle Taktfrequenz nun>mindestens das 64-fache der Ausgangsfrequenz betragen muss, also>mindestens 32 MHz.
Sieht so aus. Mathe Leistungskurs?
>Ideal für mich wäre eine serielle Datenübertragung z.B. über SPI mit>einer Taktfrequenz von z.B. 80 MHz. Das müsste mit einem ARM9 machbar>sein.
Was denn nun schon wieder mit SPI?
>Nun bräuche ich am Besten einen schnellen Wandler IC, idealerweise>schafft dieser pro Output auch noch einen Ausgangsstrom von 500 mA pro>Output.
Lass mich raten, für LEDs?
>Jedoch wird es so einen IC wahrscheinlich nicht geben.
Richtig geraten!
>Wie könnte man 64 Pins mit einer 500 Khz Frequenz mit jeweils 500 mA>Ausgangsstrom noch schalten?
Mit einem CPLD + nachgeschaltetem Treiber.
>Vielleicht habt ihr ja nette Ideen.
1001. Ist aber egal. Sag uns was du WIRKLICH machen willst und man kann
dir vielleicht sinnvolle Tips geben. Siehe Netiquette.
MfG
Falk
Wie immer in diesem Forum,
- schnelle Antwort in Fetzen
- über die Freundlichkeit kann man streiten
Hast doch schon super getippt, da muss ich meine Applikation doch gar
nicht mehr erklären, also LEDs ansteuern 64 an der Zahl und das bitte
sehr schnelle.
Da ich noch nie mit einem CPLD gearbeitet habe:
Könntest du noch ein bisschen genauer werden?
Noch kann ich mir nicht viel darunter vorstellen.
Wozu diese Umstände?
Wärs nicht einfacher, gleich nen MC mit >64 Ausgängen zu nehmen?
Z.B. ATmega640.
SPI mit 80MHz ist keine einfache Sache mehr ab >10cm Leitungslänge.
Peter
>>Wärs nicht einfacher, gleich nen MC mit >64 Ausgängen zu nehmen?>>Z.B. ATmega640.
Wäre mir auch am Liebsten und einfachsten zu programmieren, jedoch kann
man doch die uC nur mit maximal 32 MHz betreiben.
Ich weiss jetzt nicht genau wieviele Clocks der benötigt um den nächsten
PIN zu halten, so 4 => 125 ns, bei 64 Ausgängen kann ich dann die Pins
in 8 us alle high schalten.
Bei dem CPLD schaffe ich das laut DB in 7,5 ns => 64 Ausgänge in 480 ns.
Matthias schrieb:> Wäre mir auch am Liebsten und einfachsten zu programmieren, jedoch kann> man doch die uC nur mit maximal 32 MHz betreiben.
Die 32 MHz brauchst du doch wohl nur für die Übertragung durch das
Serielle Interface, oder nicht?
Matthias schrieb:> Ich weiss jetzt nicht genau wieviele Clocks der benötigt um den nächsten> PIN zu halten, so 4 => 125 ns, bei 64 Ausgängen kann ich dann die Pins> in 8 us alle high schalten.
Du kannst den ganzen Port (8bit) auf einmal setzen. Somit brauchst du
bei 64 LEDS nur 8 Instruktion. Damit lassen sich deine 500khz bestimmt
erreichen. Wenn du aber ohnehin immer alle ein und ausschalten willst,
geht das auch einfacher...
Nein ich möchte diese LEDs einzeln ansteuern, dazu muss ich einerseits
das Muster generieren und andererseits das eben raustakten und da möchte
ich gerne eine Taktfrequenz oder man könnte auch Frame Rate von 500 Khz
erreichen, was ich als duchaus sportlich ansehe.
@ Matthias (Gast)
>Wäre mir auch am Liebsten und einfachsten zu programmieren, jedoch kann>man doch die uC nur mit maximal 32 MHz betreiben.
DIE uC. Aha! Es gibt ja nur einen auf dieser Welt . . .
>Ich weiss jetzt nicht genau wieviele Clocks der benötigt um den nächsten>PIN zu halten, so 4 => 125 ns, bei 64 Ausgängen kann ich dann die Pins>in 8 us alle high schalten.
Bitklappern per CPU ist nicht unbedingt der Weisheit letzter Schluss.
>Bei dem CPLD schaffe ich das laut DB in 7,5 ns => 64 Ausgänge in 480 ns.
Vergiss die Rechung, die ist Unsinn^3.
>Nein ich möchte diese LEDs einzeln ansteuern, dazu muss ich einerseits>das Muster generieren und andererseits das eben raustakten und da möchte>ich gerne eine Taktfrequenz oder man könnte auch Frame Rate von 500 Khz>erreichen, was ich als duchaus sportlich ansehe.
Also du willst einen 64 Bit Generator mit 500 kHz bauen. Wozu auch
immer.
Naja.
500kHz = 2us. Bei 32 MHz CPU Takt sind das 64 Takte, geht so.
Also klemmt man z.B. acht 8-Bit Register an einen Port des uC und takte
dort die Daten 8 Bit breit raus. Oder 16 Bit. Dahinter kommt eine zweite
Reihe Register, die übernimmt von dem ersten Registersatz die Daten
parallel mit 64 Bit. Fertig ist das "Schieberegister". Deine CPU muss
dann nur die 8 Bytes raustakten sowie einen gemeinsamen Übernahmetakt
für das 2. Register generieren. Das kann man mit TTL ICs ala 74HC373
aufbauen oder mit einem CPLD, der braucht dann aber min. 128
Makrozellen. Oder man nimmt gleich ein kleines FPGA, damit wird das
spielend einfach. Als Treiber für die 500mA nimmt man eine Handvoll
Logic Level MOSFETs, wie z.B. IRF7301.
MfG
Falk
Soda ich klink mich hier aus. Solange du dein Vorhaben nicht genauer
spezifizieren willst/kannst, musst du mit wenig hilfreichen Antworten
leben.
Viel Glück!