Forum: Mikrocontroller und Digitale Elektronik Ethernet I/O Karte 64 Ein- 64 Ausgänge


von Franki C. (franki1986)


Lesenswert?

Hallo Leute!

Ich würde mir gerne kostengünstig eine Ethernet I/O-Karte bauen.
Die sollte 64 Ausgänge haben und mit 5V relais laufen und 64 Eingänge 
mit Optokopplern besitzen.
Ich hatte mir gedacht den AVR NET IO 
http://www.pollin.de/shop/downloads/D810058B.PDF
und die Relaiskarte
http://www.pollin.de/shop/downloads/D710722B.PDF
als Vorbild zu nutzen.
Ich kommuniziere nun also mit meinem Ethernet-Controller und der mit 
einem Mikrokontroller und der mit mind. einem Treiberbaustein und den 
Optokopplern.

Meine Frage ist nun, welche Mikrokontroller-Treiberbaustein Kombination 
sollte ich da am besten nehmen? Gibt es einen 8 zu 64 Demultiplexer, 
damit ich mit 8-Ausgängen des Mikrokontrollers 8 Treiberbausteine z.B. 
ULN2803 ansprechen kann? Oder gibt es eine einfachere bzw. 
kostengünstigere Lösung die Relais anzusprechen. Zusätzlich benötige ich 
dann ja auch einen 64 zu 8 Multiplexer.

Könnt ihr mir da weiter helfen?

von Henk (Gast)


Lesenswert?

Ich wuerde sagen das schreit nach Schieberegistern

von Franki C. (franki1986)


Lesenswert?

Guter Tipp, danke!

Hab mich mal hier durchgekämpft, klingt ganz logisch :-)

http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister

Übrigens hatte ich den vorhin noch gefunden

http://www.ak-nord.de/ak/product_info.php?cPath=Embedded-LAN-module&products_id=33

Ich stell mir das jetzt so vor:

Das oben genannten Modul mit dem ATMega32 über rs232 kommunizieren 
lassen. An dem Atmega sind drei 16-Bit Schieberegister 74LS674. 16 
Ausgänge vom ATMega und 48 vom Schieberegister. Diese Ausgänge müssen 
dann nochmals zu den Treiberbausteinen z.B. ULN2803 (Gibt es den 
eigentlich auch mit mehr Ausgängen?) und danach die Relais mit Diode 
Widerstand und Led.
Kann ich die Schieberegister eigentlich auch andersherum für die 
Optokoppler nutzen?

von lib lam (Gast)


Lesenswert?


von Jochen (Gast)


Lesenswert?

Franki C. schrieb:
> Das oben genannten Modul mit dem ATMega32 über rs232 kommunizieren
> lassen. An dem Atmega sind drei 16-Bit Schieberegister 74LS674. 16
> Ausgänge vom ATMega und 48 vom Schieberegister.

Ich weiß nicht...
die Mikrocontroller sind inzwischen so billig, da kannst du auch mehrere 
parallel verwenden, anstatt etwas mit Schieberegistern zu konstruieren.

Bei 64 I/Os brauchst du entweder drei ATmega32 oder vier ATmega328, 
wenns DIP sein soll. Oder du nimmst einen einzigen ATmega3250A, 
allerdings hat der dann ein TQFP-Gehäuse.
Egal welche der drei Möglichkeiten, du liegst immer um die 10 Euro für 
alle Mikrocontroller zusammen.

Vorteil ist, dass die Ein- und Ausgänge deutlich schneller geschaltet 
bzw. gelesen werden können als bei Schieberegistern. Überhaupt ist das 
Lesen einfacher, als wenn du dir per Schieberegister und Logik etwas 
zusammenbaust.

Jochen

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Da muss ich Jochen Recht geben.

Das Tutorial bei mikrocontroller.net ist sehr gut, aber es stammt zum 
großen Teil aus einer Zeit, zu der die Mikrocontroller noch relativ 
teuer waren.

Ich würde auch den ATmega3250A nehmen. Vielleicht auch drei ATmega324A 
als DIP, weil ich ein Schisser bin und nicht so gerne 100 TQFP-Pins 
löte. :-)

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

OT: Wozu braucht man 64 Ethernet-Ports ?
Wird das ein Switch ?

von Michael U. (amiga)


Lesenswert?

Hallo,

als Ausgänge zur Relaisansteuerung sehe ich nichts, was gegen 
Schieberegister mit Ausgangs-Latch (595) am AVR-NetIO spricht.
So schnell kann sinnvoll kein übliches Relais bedient werden, wie es in 
8x 595 hintereinander geschoben werden kann.

Bei den Eingängen kommt es darauf an, wie schnell hintereinander 
Pegelwechsel erfolgen können. Da aber von einem zusätzlichen AVR mit 
serieller Anbindung die Rede ist, kann es nicht so schnell sein.
Da gehen also sicher auch Schieberegister mit Eingangs-Latch.
Beide parallel per (Soft-)SPI angesteuert und zwei Array dazu.

Kostet SPI-Clock, SPI-In, SPI-Out, In-Latch, Out-Latch, also 5 Portbits.
In-Latch verriegeln, 8x8 SPI-Takte, um die Ausgänge aus dem Array 
rauszuschieben und die Eingänge rein. In-Latch freigeben, Out-Latch 
aktiv, fertig.

Würde ich vermutlich im Timerinterrupt alls 100ms oder so laufen lassen 
und nur die Arrays bearbeiten (IRQ-Verhalten beim Zugriff natürlich 
beachten usw.

Gruß aus Berlin
Michael

von Franki C. (franki1986)


Lesenswert?

Danke erstmal für die Antworten!

Der ATmega3250A  klingt interessant, aber der würde auch nicht ganz 
reichen, da ich ja noch mit meinem Ethernet-Modul kommunizieren muss und 
dazu brauche ich die RxD und TxD Anschlüsse (PE0 und PE1), aber ich 
könnte 2 von denen nehmen... Es gibt ja auch genügend firmen die die 
Bauteile nach dem Ätzen automatisiert mitlöten lassen. Das sit bei 
verwendung von SMD Bauteilen auch manchmal ganz Hilfreich, wenn man dann 
20 bis 30 von diesen Karten herstellen muss...

Nochmal zu den treiberbausteinen, gibt es die auch in größeren Versionen 
als den ULN2803 ?

@ Joachim Drechsel
OT: Wozu braucht man 64 Ethernet-Ports ?
Wird das ein Switch ?

Manchmal habe ich in verschiedenen Gebäuden viele Einheiten die per 
Relais steuern muss. Also habe ich mal den Fall dass ich nur 8 Relais 
brauche mal 32 aber auch mal 64 und bevor ich mir zisch Varianten 
erstelle, nehme ich lieber eine "große" Version, und gebe vielleicht 10 
- 20 Euro mehr für extra Bauteile aus, als doppelte Platinen 
anzufertigen, die würden dann alle Bauteile doppelt beinhalten...


@lib lam
Die W&T finde ich etwas teuer für 400 Euro...

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Sorry Franki,

ich hatte mich verlesen ... Löschen ging nicht.

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
Noch kein Account? Hier anmelden.