mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik High Speed 64 Bit Seriell to Parrallel Wandler


Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falk Brunner schrieb:
> Siehe Netiquette.

Haha der war gut. Schau doch mal selber rein ;)

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: U.R. Schmitt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, wofür musst Du die LEDs mit 500kHz ansteuern?
Willst Du 64 optische Übertragungskanäle mit je 500kHz Bandbreite 
realisieren?

Autor: Andreas K. (derandi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und warum muss man aus einem Pin 64 machen?
Reichen nicht 4x 16 Pins nicht auch?
Würde die Verschiebe-Taktfrequenz auf freundliche 8 MHz senken.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andreas K. (derandi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aja vielleicht magst noch genauer beschreiben um was bei deinem Projekt 
geht. Zb Dimmen von LEDS geht viel viel einfacher.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja du kannst bei den ATMEGAs trotzdem 8 LEDs mit einem Befehl schalten.

Aber jetzt spucks mal aus. Wie sieht die Anwendung genau aus...

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  thomas (Gast)

>Aber jetzt spucks mal aus. Wie sieht die Anwendung genau aus...

Ich tippe mal auf eine Monster Propeller Clock ;-)

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier, das zu Falks kurzer Antwort:
http://www.altera.com/literature/an/an286.pdf

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.