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
Hmm, wofür musst Du die LEDs mit 500kHz ansteuern? Willst Du 64 optische Übertragungskanäle mit je 500kHz Bandbreite realisieren?
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.
>>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...
Aja vielleicht magst noch genauer beschreiben um was bei deinem Projekt geht. Zb Dimmen von LEDS geht viel viel 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.
Ja du kannst bei den ATMEGAs trotzdem 8 LEDs mit einem Befehl schalten. Aber jetzt spucks mal aus. Wie sieht die Anwendung genau aus...
@ 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
@ thomas (Gast)
>Aber jetzt spucks mal aus. Wie sieht die Anwendung genau aus...
Ich tippe mal auf eine Monster Propeller Clock ;-)
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!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.