Hallo zusammen, Ich habe ein kleines Problem und zwar bin ich an einem Relaismatrix für ein Testsystem drann, wo von einem uP 128 Relais auf 2 Prints auslessen muss. Nun sollte ich vom uP möglichst wenig PIN's belegen und ich habe mir überlegt mit einem 74HC154 den Printselect zu machen und dann über jeweils einen GAL pro Print die 64 Anzusteuern. Nun meine Frage kennt jemand von euch evtl. nen GAL mit dem ich 64 Relais ansteuern kann oder habt ihr ne anderen Vorschlag? Vielen Dank für eure Hilfe Freundliche Grüsse Stefan
Was willst du mit 128 Relais machen? Hoert sich nach einem Crosspointswitch an, sind Relais noetig? Warum willst du einen veralteten Gal einsetzen? Nimm einfach eine Hand voll Schieberegister und ein paar Treiberbausteine...
Einen GAL mit so vielen Anschlüssen gibts soweit ich weiss nicht, da brauchts dann eher einen CPLD oder FPGA. Du könntest ein paar Schieberegister kaskadieren, dann brauchst du 3-5 Pins, je nach Funktionalität. Ralf
Also soweit ich das richitg sehe, sind Schieberegister keine Alternative da wir eine 8-Bit-Parallel Leitung haben und der Aufwand die Schieberegiester zu kaskadieren etwas gross währe. Auch könnten wir dann evtl. platzprobleme bekommen. Was auch noch zur Debatte steht sind 8 D-FlipFlops. Aber ich werde mir mal die CPLD oder FPGA anschauen ob es mit dem auch geht. Danke schon mal für euren tollen anregungen und für die Hilfe Freundliche Grüsse Stefan
Stefan wrote: > Also soweit ich das richitg sehe, sind Schieberegister keine Alternative > da wir eine 8-Bit-Parallel Leitung haben und der Aufwand die > Schieberegiester zu kaskadieren etwas gross währe. ??? Schieberegister nimmt man doch, gerade weil sie sich so einfach kaskadieren lassen. Sie sind daher ideal geeignet für eine hohe Anzahl an Ein- oder Ausgängen. Alles andere ist viel umständlicher und auch vom Layout aufwendiger. Was sind denn das für Relais? In der Regel brauchen die mehr Leistung / Spannung, als ein TLL oder GAL liefern kann. Es gibt daher auch Schieberegister mit Treiberstufen, z.B. TPIC6C595. Peter
> Was sind denn das für Relais? > In der Regel brauchen die mehr Leistung / Spannung, als ein TLL oder GAL > liefern kann. Er schrieb aber, dass er die Relais auslesen will? Was genau er jetzt damit meint... ? Ralf
Hmm ja ok gut auslesen ist wohl nicht so das geeignete Wort. Also ich kenn mich ja mit Relaismatrixen und so gar nicht aus, hab einfach den auftrag bekommen eine Lösung zu finden wie man am einfachsten eine Relaismatrix mit 128 Relais mit maximal 16-Bit-Adressbus und 8-Bit-Datenbus schaltet. Und wenn möglich eben am besten mit programierbaren IC's. Und die Relais werden mit einer eigenen speisung mit 24V versorgt.
>auslesen ist wohl nicht so das geeignete Wort In der Tat. Auslesen bezeichnet eigentlich das komplette Gegenteil. >16-Bit-Adressbus und 8-Bit-Datenbus schaltet Hast du dir schon mal ein "Schema" oder irgendwie eine Übersicht erstellt, was du eigentlich willst/machen sollst? Soll das ganze über den Daten- und Adressbus eines Mikrocontrollers funktionieren?
Also Ihr habt einen Datenbus mit 8 Bit und zwei Karten mit je 64 Relais. Jede Karte besteht also aus 8x8 Relais. Platztechnisch könnte es effektiver sein, ein 8-Bit Latch zu nehmen, aber jedem Relais ein eigenes MOSFET zur Seite zu stellen als einen der ULN200x zu nehmen und sich zu tode zu routen. 3->8 Decoder(1) für die 8-Bit Latches pro Karte zu adressieren. Einen weiteren 3->8 Decoder (2) als Cardselect davor. Per Jumper kann einer der 8 Chipselects auf den Chipselect des 3->8 Decoders (1) gelegt werden. Steckt das ganze in einem Rahmen, kann man den 2. Decoder auch entfallen lassen und einfach ein paar Outputs des AVR auf die Backplane legen. Diese werden nicht parallel über alle Stecker geführt, sondern jeder führt genau an einen Pin einer Steckposition, also ein Card-Select. Damit werden die Karten über ihre Position im Rahmen angesprochen und müssen nicht ( z.B. im Fall eines Austauschs durch den Kunden) konfigueriert werden. Natürlich kann man auch GPIOs am AVR einsparen und das Cardselect für 8 Karten über drei Outputs machen, die wiederum einen 3->8 Decoder haben. Aber einige meiner Vorredner habe auch recht. Man kann ein Serial->Parallel-Shift Register nehmen. Man kann eliebig viele dieser Register hintereinander schalten. Dieser Register gibt es als Double-Latched. D.h. der serielle Bus schiebt die Zukünftigen Werte in das Latch. Ein Latch-Befehl übernimmt die aktuellen Werte in einen Puffer aus weiteren 8 Latches. Ein Puls auf einer weiteren Leitung schaltet dies auf die Output-Latches durch. Diese Latches, sind, wie auch ihre einfacheren Verwandten, kaskadierbar. Und sie sind, mit Einschränkung, mit dem SPI-Bus kompatibel. D.h. ich die 16 S->P Chips einfach hintereinander schalten und brauche nur MOSI, SCLK, einen Chipselect / Load und einen Latch-Out. Wenn ich meinem Bus prüfen will, brauche ich noch einen Open-Collector Buffer mit ChipSelect ( weil die S->P Converter einen Push-Pull Ausgang haben und daher das Programmieren über SPI-Programmer verhindern) und am VAR noch MISO. Bei 1MHz Clockrate sind die Relais in 128µs programmiert, Load ist das Signal, was allen S->P Bausteinen sagt, dass sie den aktuell anstehenden Wert in die Zwischenspeicher laden sollen, Latch-Out ist das Signal, dass dann bei allen Relais parallel die neue Einstellung anlegt. Bei 64 Relais pro Platine also Schrauben mit Federring vorsehen, die demontiert sich sonst selbst. Eine Platine mit Ansteuerung über RS485 und USB mit 12 Relais und eben dieser seriellen Ansteuerung auf Basis AVR habe ich fertig. Bei Interesse bitte PM. Da das eine Auftragsentwicklung war, kann ich das Design nicht posten, aber vielleicht einen Kontakt herstellen. Gruß, Ulrich
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.