High Speed 64 Bit Seriell to Parrallel Wandler

Gast #1870373
Lesenswert?

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.
#1870382
Lesenswert?

@  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
Gast #1870399
Lesenswert?

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.
Gast #1870450
Lesenswert?

>>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.
Gast #1870469
Lesenswert?

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...
Gast #1870487
Lesenswert?

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.
#1870507
Lesenswert?

@  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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren