Hallo, ich will ein Relais-Matrix-System bauen mit dem ich Signale routen kann. Es sind ca. 500 Relais, die mit uC angesteuert werden sollen. Kann mir jemand helfen, welcher serielle Bus hierfür geeignet ist und wie ich die Relais ansteuern kann.
Hallo Mach einfach eine Speicherausklammerung (AT90S8515 du benötigst nur 64Byte) Oder über Schieberegister. Sag was wird das für ein Projekt?. 500 Relais ziehen ja auch eine Menge Strom!
Projekt:Routing von Audiosognalen in einem Meßsystem Von den Relais werden ca. max. 30 auf einmal durchgeschaltet. Wie funktioniert das mit der Speicherausklammerung, hab ich noch nicht gemacht
Du mußt einen Controller verwenden der externes RAM unterstützt. Statt den Speicher stezt du einen Adressdekoder und Latches. Read Write richtig belegen und du kannst dich schon austoben. Ist like 8051er. Es liegt dann der IO-Bereich in deinem Speicherbereich. Im Programm schreibst einfach auf eine Speicherzelle einen Wert.
Gibt es auch eine Möglichkeit I2C zu nehmen mit den Porterweiterungen und dazu Schieberegister?
Was du verwenden solltest hängt u.a. auch davon ab wie du die 500 Relais ansteuern willst bzw. wie die Verbaut sind. Befinden die sich alle dicht-an-dicht auf einer riessen Platine (glaube ich kaum ;)). Oder dicht-an-dicht auf mehrere Platinen verteilt ? Oder in einem Schaltschrank einzeln auf Hutschienen oder wie ? Die Wahl ob und falls ja welchen Bus du verwendest hängt vom konstruktiven Aufbau der Relaismatrix ab. Muss der µC noch andere Aufgaben erfüllen oder soll dem z.B. einfach per serieller Schnittstelle der Befehl "schalte Relais 145 ein" "schalte Relais 278 aus" usw. übermittelt werden.
Die Relais sitzen zu 25 St. auf einer Karte, die auf eine Busplatine gesteckt werden. uC soll noch ein kleines Menue verwalten, in dem Schaltkonfigurationen der Relais aus ext. EPROM abgerufen werden können,das ganze auf LCD anzeigen.
Wenn du genug freie Leitungen hast, kannst du dann z.B. 5Bit(Adresse der Busplatine)+5Bit(Adresse des Relais auf der Busplatine)+1Bit(On oder Off)+1(Clock) also insg. 12 Leitungen als Bus verwenden. Damit könntest du pro CLOCK ein Relais schalten. Bräuchtest aber noch einiges an Logikschaltung auf den Busplatinen. Wenn du aber sogar: 5Bit(Adresse der Platine)+25Bit(Zustände aller Relais der Platine)+1(Clock) also 31 Leitungen hättest, könntest du eine komplette Busplatine pro CLOCK schalten. Dann müsstest du nur auf der µC Platine z.B. mit I2C Porterweiterungen (um Ports zu sparen falls nötig) auf deine 31 Leitungen kommen und auf den Busplatinen brauchst du nur noch einfache latches und eben deine Relais. (naja und noch einen 5Bit comparator der deine Platinenadresse prüft :)).
Danke für die Vorschläge. Hab noch nicht so viel mit uC gemacht. Gibt es für diesen Vorschlag Beispiele (in Form von Schaltplänen). Wie trenne ich die Relaisnummer von der Kartenadresse?
@Lars: bin nicht sicher, ob ich da durchsteige, aber: Wieso nicht einfach statt die 5bit "adresse der platine" auf den Puls (keine ahnung, wie man das nennt) der Latches legen? dann kannste vom µc einfach an alle latches dasselbe signal legen, pulst aber nur den, für den es bestimmt war... also nochmal im klartext: je 25leitungen vom µc zu den platinen, plus zu jeder platine noch ne extraleitung für den Puls des latches. willste dann auf platine1 was ändern, legste deine daten auf die 25 pins und pulst dann das entsprechende latch. Wenns dir nicht auf schaltgeschwindigkeit, sondern auf ne einfache schaltung ankommt, kannste doch auch schieberegister auf den platinen einsetzen. dann brauchste nur 2 leitungen (1 daten, 1 puls) zu jeder platine zu legen. im extremfall könnten die datenleitungen aller platinen sogar auf denselben pin (wenn du dann nur den puls für die platine pulst, die die daten haben soll). PS: Hoffentlich hab ich nicht kompletten bullshit gelabert, hab sowas nämlich noch nie gebaut.
Kannst du das genauer erklären, wie man so was aufsplittet um die Module und die einzelnen Relais adressiert.
naja, ich weiß das selber nicht 100%ig. aber es gibt sog. schieberegister die seriell angesteuert werden. da schiebst du über 1 pin (+1 für den clock? ich kenn die dinger doch nicht!!! :-) ) die daten rein, dann pulst du auf nem anderen pin (oder?) und die daten stehen dann an den ausgängen (daran kommen dann die relais). hab ich das so richtig verstanden/wiedergegeben?
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.