mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Relaismatrix mit GAL?


Autor: Stefan (Gast)
Datum:

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

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum nicht mit Schieberegistern? 74HC595 wäre ein Vorschlag.

Autor: Sachich Nich (dude) Benutzerseite
Datum:

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

Autor: Ralf (Gast)
Datum:

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

Autor: Stefan (Gast)
Datum:

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

Autor: Peter Dannegger (peda)
Datum:

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

Autor: Ralf (Gast)
Datum:

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

Autor: Stefan (Gast)
Datum:

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

Autor: Steffen (Gast)
Datum:

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

Autor: Ulrich P. (uprinz)
Datum:

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

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.