Hallo Ich suche einen Baustein, mit dem ich TTL Signale von 5 Eingängen auf 5 Ausgänge schalten kann. Dabei soll es möglich sein je einen Eingang auf (k)einen, oder mehrere Ausgänge zu schalten, also eine 1:m Verknüpfung. Das ganze soll mit TTL Pegeln funktionieren und Signale bis <= 10 MHz (min. 6MHz) durchleiten können. Im Prinzip also so eine Art 5x5 TTL Schaltmatrix. Das ganze sollte sich möglichst einfach per uC ansteuern lassen und ein handlötbares Gehäuse (kein BGA, etc...) besitzen. Bisher habe ich leider nur überdimensionierte Audio/Video Schaltmatrizen gefunden. Kennt jemand so ein IC? Für Infos wäre ich dankbar. Eventuell kennt ja jemand auch ne andere Möglichkeit das zu realisieren. Ich hatte schon an einen ATTiny gedacht, aber der wird, selbst bei 20 MHz, ein wenig zu schwach sein, oder? Gruß Holger
@Holger: das macht man mit Multiplexern. Die nächstgrößeren haben 8 Signaleingänge und 3 Adresseingänge, mit denen man einen der Eingänge auf den Ausgang schalten kann. Davon brauchst Du dann 5 Stück (einer pro Ausgang). Der bekannteste TTL-Vertreter mit dieser Funktion dürfte der SN74(xx)151 sein. Jörg
Prinzipiell wäre das mit einem RAM zu lösen. Ich bräuchte als Eingänge 5 Adressleitungen. Das wären bei 8 Bit Breite 2^5*8 = 256 Bit im RAM. Dann müsste ich das RAM so mit Werten füllen, dass z.B. wenn an i0 ein high Pegel anliegt, o3 high ist und so weiter. Außerdem kann das ganze dann wärend einer Konfigurationsänderung nicht weiter laufen. Ich hatte aber mehr an eine Schaltmatrix gedacht, die wirklich eine "physikalische" Verbindung herstellt. Ein GAL ist da schon besser. Das Problem ist auch hier das umkonfigurieren, da die Konfiguration auf einen Rutsch übernommen werden soll, ohne die Verbindungen lange zu unterbrechen. Oder geht das elegant? @Jörg: Multiplexer sind ne gute Idee. Hätte ich auch drauf kommen können. Alles in einem Chip wäre aber schöner wegen Platzmangel. Schaltbeispiel i: Eingänge ((k)ein/mehrere Ausgänge an einem Eingang) o: Ausgänge (immer nur ein Eingang auf einem Ausgang) i0- x i1- x i2- i3- x i4- x x | | | | | o0 01 02 03 04 Danke schon mal für die Antworten. Vielleicht kennt ja jemand doch noch ne andere Lösung.
@Lars: >das kann man auch mit einem GAL machen. Ein GAL dürfte damit überfordert sein. Du brauchst 5x3 Adresseingänge, 5 Signaleingänge und 5 Ausgänge = 25 Signalleitungen. Alleine die Pin-Anzahl des größten GALs (22V10, DIP24) kommt schon nicht hin. Man kann natürlich mehrere GALs nehmen, aber dann kann man auch gleich 5 x 74151 nehmen. Mit einem CPLD sollte es schon eher gehen, das braucht aber auch viel Strom. Jörg
@Jörg R. > Ein GAL dürfte damit überfordert sein. Du brauchst 5x3 Adresseingänge, 5 Yep. Und DIE ziehen wirklich saumässig Strom. > Mit einem CPLD sollte es schon eher gehen, das braucht aber auch viel > Strom. Naja, die zeihen wesentlich weniger als ein GAL. Und die Coolrunner von Xilinx, oder MACH-Zero Power von Lattice sind echte CMOS Bausteine und ziehen sehr wenig Ruhestromo (~100uA). MFG Falk
@Falk: >Naja, die zeihen wesentlich weniger als ein GAL. Und die Coolrunner von >Xilinx, oder MACH-Zero Power von Lattice sind echte CMOS Bausteine und >ziehen sehr wenig Ruhestromo (~100uA). Das ist schon richtig, aber ich meine trotzdem, dass es keinen Sinn macht, fünf 16-polige Standard-TTL-ICs durch ein CPLD zu ersetzen. Im Vergleich zu 74HCxxx- oder 74ACxxx-Bausteinen, die genau für diese Aufgabe geschaffen wurden dürfte der Stromverbrauch von CMOS-PLDs um Größenordnungen höher liegen. Auch für die Kosten und den Platzbedarf sehe ich in diesem Fall keine wirklichen Vorteile. Jörg
@Jörg R. > Das ist schon richtig, aber ich meine trotzdem, dass es keinen Sinn > macht, 5 16-polige Standard-TTL-ICs durch ein CPLD zu ersetzen. Im > Vergleich zu 74HCxxx- oder 74ACxxx-Bausteinen, die genau für diese > Aufgabe geschaffen wurden dürfte auch der Stromverbrauch von CMOS-PLDs > um Größenordnungen höher liegen. Auch für die Kosten und den Platzbedarf Hmm, mal schauen. Da wäre ich vorsichtig. ---Ruhestrom: 74HC151, ist laut NXP Datenblatt vom Typ MSI Ruhestrombedarf typ 8uA (25C), max. 80uA (-40C/+85C) das Ganze x5 macht 40 bzw. 640 uA Der XCR3032XL hat 17 bzw 100 uA 1:0 für den CPLD ---Platzbedarf: 74HC151 im TSSOP16: 5 x 6,4 mm; = 32 mm^2 x5 : = 160 mm^2 (und da sind minimale Bestückungsabstände und Platz für Leiterbahnen noch nicht drin!) XCR3032XL im VQ44: 12x12mm, = 144 mm^2 (das CS48 mit 7x7mm lassen wir hier mal raus ;-) 2:0 für den CPLD ---Kosten: 74HC151 bei Reichelt: 31 Cent (und das ist die SO16 Version, die ist noch grösser) x 5 = 1,55 Euro XCR3032XL bei Nuhorizons: $1,70; macht bei einem Kurs von ca. 0,75 Euro 1,28 Euro 3:0 für den CPLD Spiel, Satz und Sieg! > sehe ich in diesem Fall keine wirklichen Vorteile. AUGEN AUF und mal wirklich die Zahlen vergleichen. ;-) MfG Falk
>AUGEN AUF und mal wirklich die Zahlen vergleichen. ;-) Wie ist das mit dem CPLD-Programmer? (Ich hab zwar schon von CPLDs gehört und gelesen, sie aber noch nie verwendet). Wenn der was kostet, dürften die TTL-Gatter billiger sein, sofern man das Ding nur ein Mal braucht...
@fieser Rahul > Wie ist das mit dem CPLD-Programmer? (Ich hab zwar schon von CPLDs > gehört und gelesen, sie aber noch nie verwendet). > Wenn der was kostet, dürften die TTL-Gatter billiger sein, sofern man > das Ding nur ein Mal braucht... Du bist aber mal wieder SEHR kleinlich. ;-) Einen low-cost Programmer gibts hier, Kosten wahrscheinlich kleiner als 5 Euro. http://www.geocities.com/jacquesmartini/misc/Parallel_Cable_III.png MfG Falk
>Du bist aber mal wieder SEHR kleinlich. ;-)
Wer hat denn angefangen? ;-)
wenn du 5 eingänge hast, und 5 ausgänge, da würd ich n alten flash oder eeprom nehmen. es gibt da schon welche die bei 10mhz mithalten können. das ist die einfachste methode, wen du mich fragst. hast nach nem power off nicht die notwendigkeit den neu zu beschreiben, etc. zumal das die dinger so billig sind, dass du bei einer "programmänderung" einfach nen neuen reinsteckst. wenn du die ganzen änderungen auf einen rutsch übernehmen willst, dann kannst du das mit multiplexern ganz einfach machen... vorteil istdie einfache programmierung, eindeutig. cpld erst mal kennenlernen etc....
Genau das Programmieren ist der Grund, warum der CPLD im Moment ausscheidet. Ich muss die Schaltmatrix möglichst schnell mittels uC umprogramieren können. Dazu will ich nicht unbedingt ein ISP-Protokoll benutzen. Die Multiplexer sind da prinzipiell die einfachste Variante. Einfach die neuen Adressen anlegen und schon ist ein neuer Eingang selektiert. Aber ich habe halt viel Verdrahtungsaufwand. 15 Adressleitungen, die je 8 Eingänge und alles drum rum. Mit SMD Bauteilen geht es aber vom Platz halbwegs. Prinzipiell müsste ich aber auch einen CPLD so konfigurieren können, dass er genau das macht. Also quasi die acht Multplexer da reinprogramieren. Genug IOs hätte der XCR3032XL dafür. Da muss ich noch mal drüber nachdenken. Evt. kann man dann ja auch die Adressierung vereinfachen. Ich habe leider mit CPLDs noch nicht wirklich viel zu tun gehabt. Geht das und gibt's die auch mit 5 Volt Versorgung? edit: Zum RAM, ROM: Genau da liegt das Problem. Die Konfiguration ändert sich ständig. Sonst könnte ich das ja auch fest Verdrahten. Deshalb habe ich ganz zu anfang ja auch geschrieben, dass ich bisher nur Audio/Video Schaltmatrizen gefunden habe. Die können nämlich genau das. Sind aber maßlos überdimensioniert (und deshalb teuer).
@Holger M. > Genau das Programmieren ist der Grund, warum der CPLD im Moment > ausscheidet. Kann man in geweissem Grade verstehen. > Ich muss die Schaltmatrix möglichst schnell mittels uC umprogramieren > können. Dazu will ich nicht unbedingt ein ISP-Protokoll benutzen. Du hast hier eine Denkfehler. Der CPLD wird nur einmal programmiert (mittels ISP). Im normalen Betrieb hast du 5x3 Steureingänge, um die Verschaltung der Eingänge auf die Ausgänge zu steuern. Genaus wie bei 5x74HC151. > Die Multiplexer sind da prinzipiell die einfachste Variante. Einfach die Ja. > Prinzipiell müsste ich aber auch einen CPLD so konfigurieren können, > dass er genau das macht. Also quasi die acht Multplexer da > reinprogramieren. Genug IOs hätte der XCR3032XL dafür. Da muss ich noch Eben. > mal drüber nachdenken. Evt. kann man dann ja auch die Adressierung > vereinfachen. Kann man einfach per Schieberegister (im CPLD) und SPI (im uC). Spart tierisch Verdrahtungsaufwand. > Ich habe leider mit CPLDs noch nicht wirklich viel zu tun gehabt. Geht > das und gibt's die auch mit 5 Volt Versorgung? Ja, gibts auch. Z.B. 9536 (ohne XL) bei Reichelt. Wobei 3,3V CMOS Ausgänge 5V TTL Eingänge sicher treiben können. MFG Falk
Wie hoch sind denn die Versandkosten bei NU Horizon ? Kann man da überhaupt aus Deutschland bestellen ?
> Du hast hier eine Denkfehler. Der CPLD wird nur einmal programmiert > (mittels ISP). Im normalen Betrieb hast du 5x3 Steureingänge, um die > Verschaltung der Eingänge auf die Ausgänge zu steuern. Genaus wie bei > 5x74HC151. Ja, stimmt, Denkfehler. Sonst wäre es ja ein FPGA. Ich vergaß. > Ja, gibts auch. Z.B. 9536 (ohne XL) bei Reichelt. > Wobei 3,3V CMOS Ausgänge 5V TTL Eingänge sicher treiben können. Ja, 3.3V CMOS kann die TTL Ausgänge treiben. Ich wollte aber die 3,3V Versorgung einspraren. Der Rest läuft auf 5V, Danke jedenfalls für den Tip. Ich werde mir das mit dem 9536 mal reinziehen. Passendes Programmierkabel hab ich sogar noch irgendwo rumliegen.
@ein anderer > Wie hoch sind denn die Versandkosten bei NU Horizon ? Kann man da Weiss ich nciht mehr genau, ist schon ne Weile her. Könnte aber so um die 20 Euro sein. > überhaupt aus Deutschland bestellen Ja. Zahlung aber nur über Kreditkarte, AFAIK. @ Holger M. > > Du hast hier eine Denkfehler. Der CPLD wird nur einmal programmiert > > (mittels ISP). Im normalen Betrieb hast du 5x3 Steureingänge, um die > > Verschaltung der Eingänge auf die Ausgänge zu steuern. Genaus wie bei > > 5x74HC151. > Ja, stimmt, Denkfehler. Sonst wäre es ja ein FPGA. Ich vergaß. Zweiter Denkfehler. Ein FPGA musst du auch nur eimal "ISP" programmieren. Entweder mit externem EEPROM, dann muss sich der uC um gar nix kümmern. Oder die Konfigurationsdaten per uC laden. Das ist aber sehr einfach, einfach Binärdatei per SPI rausschieben. MFG Falk
Nein, kein Denkfehler! War nur darauf bezogen, dass ich den FPGA mehrfach programmieren/konfigurieren kann, was dann wohl beim CPLD nicht so ist. Von FPGA hab ich, im Gegensatz zu den CPLDs, Anhnung. Da arbeite ich schon länger mit. CPLDs habe ich erst einmal (bereits programmiert) in eine Schaltung verbaut. Ich denke aber ich werde das jetzt mit einem CPLD machen. Nur die Gehäuseform (PLCC) bei Reichelt gefällt mir noch nicht. Ich bin da für mehr Bein! :)
@Holger M. > War nur darauf bezogen, dass ich den FPGA mehrfach > programmieren/konfigurieren kann, was dann wohl beim CPLD nicht so ist. Naja, FPGAs haben SRAM, der ist praktisch unbegrenz oft beschreibbar. CPLDS haben EEPROM oder FLASH, da ist man auf 1000-100.000 "begrenzt". > Ich denke aber ich werde das jetzt mit einem CPLD machen. Nur die > Gehäuseform (PLCC) bei Reichelt gefällt mir noch nicht. Ich bin da für > mehr Bein! :) Warum? VQ44? Denk dran, nicht alle Pins sind für Logik verfügbar (VCC/GND, JTAG, etc.) MfG Falk
Hier mal die geplante Logik für den CPLD. Vielleich interessiert es ja jemanden. :-) Wie am Betreff zu erkennen ist, hab ich das gleich noch auf eine 8x8 Matrix erweitert. Die Konfiguration der Matrix wird seriell in den CPLD gelatcht und dann, mit einem Strobe an SET, übernommen. Im Prinzip ist das eine Hintereinanderreihung, von 4 74xx595 Schieberegistern, zur Adressierung von 8 74xx11151 Multiplexern. Allerdings schon etwas optimiert, was die Gatterzahl angeht. Einiges war doppelt oder unnötig für meine Zwecke. Ich habs in Eagle layoutet. Was anderes war grad nicht da. Wenn im Plan kein Fehler ist werde ich wohl 48 FlipFlops 248 UND Gatter 96 Inverter 11 Eingänge und 9 Ausgänge brauchen. Ganz schön viel, ich hoffe das passt.
@ Holger M. >Hier mal die geplante Logik für den CPLD. Kann ich im Moment nicht lesen, bin im internetcafe ohne Eagle. > Wie am Betreff zu erkennen ist, hab ich das gleich noch auf eine 8x8 > Matrix erweitert. > Die Konfiguration der Matrix wird seriell in den CPLD gelatcht und dann, > mit einem Strobe an SET, übernommen. Wenn im Plan kein Fehler ist werde ich wohl 48 FlipFlops 248 UND Gatter 96 Inverter 11 Eingänge und 9 Ausgänge brauchen. Hmmm, mal rechen 8 Eingänge + 8 Ausgänge für die Matrix, wobei das 8 Macrozellen für die Ausgänge braucht. Drei Eingänge für Data, Clock und Strobe Dein Schieberegister + Latch braucht 8x3x2=48 Macrozellen. Der Rest ist nur kombinatorischer Logik und wird von den Produkttermen in den Macrozellen erschlagen. Macht Summa-Summarum 56 Macrozellen, passt also in 9572(XL) oder 3064(XL). Wozu brauchst du den 9. Ausgang? MFG Falk
@Falk: Auf dem 9. Ausgang, habe ich vorgesehen, das Ende des Latches rauszuführen. Dann könnte man mehrere Module aneinanderreihen. Ist aber nicht unbedingt nötig. Bei meiner Abschätzung, der in Frage kommenden CPLD, kam ich auf den XC9572. Ich habe mir den mal näher angesehen. Laut Datenblatt gibt es den XC9572 im 44-Pin PLCC mit 34, 84-Pin PLCC mit 69, 100-Pin TQFP mit 72 100-Pin PQFP mit 72 Ausgängen. Und 5V Versorgung geht auch noch. Scheint also ideal zu sein. Prinzipiell würde ich ja ein QFP Gehäuse bevorzugen, aber die 100-Pin-Varianten gehen ins Geld und sind überdimensioniert. Muss ich halt nen Sockel verwenden. Da kann man, von innen, an die Beinchen ran zum löten.
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.