Forum: Mikrocontroller und Digitale Elektronik Porterweiterung


von Techniker (Gast)


Lesenswert?

Hallo!

Gibt es einen günstigen IC, der eine bidirektionale Porterweiterung
realisiert? Am besten serielle (SPI) Verbindung zum uC! :-)

Sowas wie 74HC4094 und 74HC165 in einem... ;-)

Ich hoffe ihr versteht, was ich meine...!
(als Beispiel fällt mir das alte, parallele Ungetüm 8255 ein...)

Danke!

von Rahul D. (rahul)


Lesenswert?

ATmega128...
ziemlich grosse Porterweiterung...

von Techniker (Gast)


Lesenswert?

..kennst du auch ein richtiges (günstiges) I/O-IC?

von Peter D. (peda)


Lesenswert?

Bidirektionales Schieberegister:

74HC299


Peter

von Techniker (Gast)


Lesenswert?

GENIAL! :-)

Danke!

von romanua (Gast)


Lesenswert?


von romanua (Gast)


Lesenswert?

MCP23008 (I2C,SPI) gibt es bei www.mouser.com fuer 83cent (12$ Versand +
paar Cent Zoll)

von Techniker (Gast)


Lesenswert?

@romanua

Danke! Aber der HC299 ist schon fast perfekt! :-)
SPI-Interface, 8Bit, I/O, supergünstig, ...

(Nur ein Ausgangslatch zwischen Schieberegister und 3State-Treiber wäre
noch was feines gewesen... ;-) )

von Christoph Söllner (Gast)


Lesenswert?

PCF8574 IIC Interface sogar mit Interrupt, kannst 8 Knöpfe (oder 16 mit
Matrix) dranhängen, und immer, wenn einer gedrückt wurde, gibt er auf
einem 9. Beinchen einen IRq. Bis zu 8 können an einen IIC Bus, mit der
PCF8574A Variante, sogar 16. LCD-dran geht genauso einwandfrei,
BitBanging wird allerdings schwieriger, je nachdem, was noch am Bus
hängt und Datenkapazität haben will.
PINs können dynamisch als Ein/Ausgänge verwendet werden.
Das Teil sinkt aber nur Strom, und kann keinen sourcen (Habe da 4
Platinen umsonst gemacht deswegen, seitdem schaue ich genauer in
Datenblätter ^^)

von Manfred Glahe (Gast)


Lesenswert?

Danke! Aber der HC299 ist schon fast perfekt! :-)
SPI-Interface, 8Bit, I/O, supergünstig, ...

(Nur ein Ausgangslatch zwischen Schieberegister und 3State-Treiber
wäre
noch was feines gewesen... ;-) )
__________________________________

Schau Dir ruhig noch einmal den 74595 an, der ist besser geeignet und
bietet bei richtiger Beschaltung einige Vorteile,

MfG Manfred Glahe

von Techniker (Gast)


Lesenswert?

@Manfred:
Ja aber der kann doch kein parallel-in -> serial-out..?!?!
Oder überseh ich da was im Datasheet?

von Techniker (Gast)


Lesenswert?

@Christoph:
hab schonmal mit I2C lange herumgekämpft und dann aufgegeben, weil ich
dachte es liegt nur an mir. Seit diesem Thread
(http://www.mikrocontroller.net/forum/read-1-262816.html) verzichte ich
ganz auf i2c... ;)

von Christoph Söllner (Gast)


Lesenswert?

Also mal Verzeihung, aber die Atmels laufne auch im MMaster Betrieb
einwandfrei. Das kann ich aus eigenener Erfahrung mit 4 ATMegas
bestätigen. Wenn eben Leute nicht sauber programmieren können, oder
noch eine alte Version der Chips haben, dann kann da TWI oder IIC nix
dafür.
Dann hast Du hier keinen MM Betrieb sondern AT=M, x PCF=S. Und die
Teile sind einfach genial: Willst Du Outputs haben, schreibst Du das
Byte einfach an die IIC-Adresse (Achtung: die sinken nur, also 1=0!).
Willst Du sie dagegen als Input haben, schreibst Du überall eine 1 rein
und sobald ein Pin gegen Masse gezogen wird, gibts auf einem 9. PIN eine
Flanke und du liest von der IIC-Adresse und hast im Bitmuster stehen,
welches Bit denn auf 0 ist.
Kannst also 64 Tasten an den IIC-Bus hängen und jeden Interrupt pin der
PCFs zusammen auf einen INT des AVR schalten, und sobald irgendwo eine
Taste gedrückt wurde, alle der Reihe nach abfragen und brauchst nicht
mehr pollen. Und das ist genial. Und Latch inklusive. Leider kostet das
Ding 1,75 pro Stück, also kannst gleich nen Tiny auch hernehmen ^^
Christoph

von Manfred Glahe (Gast)


Lesenswert?

@Manfred:
Ja aber der kann doch kein parallel-in -> serial-out..?!?!
Oder überseh ich da was im Datasheet?
_________________________________________

Da solltest du mal die Verwendung der SPI Schnittstellen erklären, je
nach Bedarf kann die 2 IC- Lösung auch sinnvoller sein. Was willst Du
ansteuern und was willst Du einlesen mit SPI, erst danach kann man
einen gezielten Vorschlag machen.
Für eine profilaktische Erweiterung von SPI Ports gehe ich doch anders
vor, als für eine gezielt, wenn auch noch unvollständige, Anwendung.

MfG Manfred Glahe

von Techniker (Gast)


Lesenswert?

Ich möchte mir eine I/O-Leiterplatte machen, die ich per SPI (oder
dergl) an einen Controller hänge. Die Erweiterungskarte soll mir dann
(z.B.) 8 parallele I/O-Ports "erzeugen".

Was dann später daran alles drankommt ist noch offen! :)
Die Leiterplatte würde ich sowieso gerne zum experiementieren
verwenden.

Anwendungsbeispiele:
-MT8880 (bidirektional)
-Relais (output)
-Tastenmatrix (input)
-usw...

Jetzt bitte nicht hauen! aua ;)

Nach aktuellem Stand würde ich das mit einem kl. AVR und ein paar
Parallel-TTL-IC's realisieren. Der AVR soll dann die Daten per SPI
entgegennehmen und dann einen 8Bit-Datenbus mit 3State-Latches und
3State-Buffers auf 8 Ports verteilen. Werden dann zwar wieder einige
"Käfer" auf der Leiterplatte werden, was ich eintlich vermeiden
wollte, aber naja... ;)

Da das ganze dann auch noch reparabel bleiben soll, werden außerdem
wohl alles DIL-IC's werden... :-/

Trotzdem danke für eure Hinweise!

von Manfred Glahe (Gast)


Angehängte Dateien:

Lesenswert?

Gut, dann geht das mit dem 74595 doch auch, den benutzt Du dann doch zur
externen Selektion der SPI bzw. Quellen. MOSI/MISO wir doch eh
getrennt.
Im Anhang mal den 74595 als solch einen Selektor.

Ich habe hier mal eine gute Idee zu lesen bekommen (Peter Dannegger),
da wurde nach PowerOn der  Ausgang des 595 hochohmig geschaltet. So
kann man über Widerstände nach GND oder +UB den Resetlogiklevel einfach
vorgeben. Hat der mP die Regie, wird nachgeladen.

MfG Manfred Glahe

von Schoaschi (Gast)


Lesenswert?

Hi!

Ich bastle gerade mit dem MCP23008 herum. Das ist ein 8Bit IO-Expander
von Microchip mit IIC. Er besitzt ebenfalls einen Interrupt und kann
direkt Leds treiben. es gibt auch eine SPI Version und zwar heisst
diese MCP23S08. Die beiden Chips gibts auch als 20Bit Variante und
laufen unter dem namen MCP23016(IIC),MCP23S17(SPI),MCP23017.

http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=11034&mid=11&lang=en&pageId=79

also ich muss sagen, das Bauteil gefällt mir. Es ist fast so einfach zu
Programmieren wie der IO-Expander(PCF8574) von Philips.

Zu meinem Projekt: Mein LCD (HD44780 kompatibel)hängt an dem
IO-Expander und ich schreib mir gerade einen Treiber dafür, damit ich
eben das LCD über den IO-Expander ansprechen kann. Der Vorteil... Ich
brauche nur 2 Leitungen und ich kann sowohl aufs LCD schreiben als auch
vom LCD lesen.

mfg schoasch

von Schoaschi (Gast)


Lesenswert?

achja... und die bauteile kosten so knappe 80Cent :-)

von AVRWalli (Gast)


Lesenswert?

@Schoaschi:
Wo bekomme ich in Deutschland den MCP23008 bzw. MCP23016/17?

mfg
AVRWalli

von Schoaschi (Gast)


Lesenswert?

Da muss ich dich enttäuschen. Das weis ich leider nicht, denn ich komme
aus Österreich und hab da so meine speziall Geschäfte die mir die Teile
Notfalls bestellen. Und ich glaube das sich das Porto nicht dafür steht.
Also wäre der PCF8574 zu empfehlen.

Oder du probierst es direkt über Microchip.

Wieviele würdest du denn benötigen?

von schoaschi (Gast)


Lesenswert?


von rs485 (Gast)


Lesenswert?

Hallo,

muss diesen Thread nochmal aufwärmen.

Bin auch auf der Suche nach einer Möglichkeit die ports meines µC zu 
erweitern.
Genauer gesagt will ich an einen µC nach 2-3 Module mit Ein- / Ausgängen 
hängen, um z.B. eine Heizungssteuerung an zu steuern.
Die Module sind allerdings min. ein paar Meter vom µC entfernt.

Dachte daher an eine Lösung über einen Bus z.B. RS485.
Ist allerdings nicht ganz günstig und der Strombedarf ist sicherlich 
höher als bei einem Schieberegister.

Wisst ihr ein paar Links zu AppNotes mit dem 74hc299 ?

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.