I/O -Erweiterung beim uC

Hallo zusammen,

ich m=F6chte ein Schaltung mit einem uC aufbauen. Die I/O Port reichen mi= r jedoch nicht aus. Wie kann ich diese erweitern. Ist I2C die L=F6sung. Den=

Begriff "latch" habe ich auch noch im Hinterkopf. Lang ists her mit der Microcontroller-Vorlesung.

Vielen Dank schon mal im Voraus!

Gru=DF J=FCrgen

Reply to
=?iso-8859-1?Q?J=FCrgen?= Leeb
Loading thread data ...

snipped-for-privacy@bar.de meinte am 01.10.03 zum Thema "I/O -Erweiterung beim uC":

Schieberegister. Erfordert nur 3 Port Pins, und man kann beliebig viele Ausgaenge daran anschliessen. Einen fuer Clock, einen Data und gegebenenfalls einen fuer den Latch-Enable bzw. Output-Enable...

Die Daten werden seriell in das/die angeschlossenen Schieberegister (Serial In / Parallel Out) geschoben (ueber Clock und Data), und sobald diese gueltig sein sollen, wird vom uC noch der LE angesteuert, und die Ausgaenge uebernehmen den gewollten Zustand.

Es gibt auch Schieberegister, ohne LE. Das sollte man aber nur nehmen, wenn an den Ausgaengen LEDs oder sowas haengen, da die Daten ja dann an den Ausgaengen vorbeigeschoben werden, und diese jeden Zustand ungewollt mit uebernehmen wuerden. Bei LEDs faellt das kaum auf, aber bei anderen Sachen waere das unter Umstaenden fatal!

Schau Dir mal einen 4094 (CMOS) oder sowas in der Richtung an.

Steffen

for private reply use sp_bw(AT)gmx.de

Reply to
Steffen Poppe

Wenn das Timing es zulaesst, dann sind Schieberegister a la 4021 / 4049 eine einfache Moeglichkeit die Anzahl der I/O Ports zu erweitern. Du brauchst 3 Ports um das Schieberegister anzusteuern: einen fuer die Clock, einen fuer Parallel/Seriell-Umschaltung und den dritten als serielle Datenleitung. Das heisst mit 3 Ports kannst du z.B. 8, 16, 24 etc. Ports aufbauen. Nachteil ist neben langsameren Timing, dass es sich dann entweder um Inputs oder Outputs handelt (diese Loesung ist erst mal *nicht* bidirektional) und natuerlich dass die Anzahl der externen Komponenten steigt.

I2C kann auch eine Loesung sein. Mit einem PCF8574 kann man zum Beispiel einen bidirektionalen 8 bit I/O Port aufbauen. Das bietet sich dann an wenn der uC bereits Hardwaresupport fuer I2C hat. Eine reine Softwareloesung fuer I2C kann je nach Anforderungen und uC-Umgebung relativ giftig werden. Falls es sich um ein Serienprodukt handelt, kann die Lieferzeit und der Preis fuer die typischen I2C Bausteine wie den PCF8574 ebenfalls ein k.O. Argument sein.

HTH Klaus

Reply to
Klaus Bahner

eine

Uuups, das sollte natuerlich 4021 / 4094 heissen ...

Reply to
Klaus Bahner

Wie wärs mit dem 74HC595? Ein 8 Bit SR, du schiebst deine Daten seriell rein, dann gibts du den Storage Clock Pulse, das wars. Auch kaskadierbar. Finde ich sehr nett, die Dinger. Die Tristate Ausgänge sind hilfreich, wenn du bei Start deiner Schaltung definierte Zustände herstellen willst. Ansonsten kannst ja auch den 74HC594 nehmen.

MfG Johannes

Reply to
Johannes Bauer

Hallo!

Also ich habe mit den PCF8574 nur gute Erfahrungen gemacht. Abgesehen davon, dass es die Dinger als PCF8574 und PCF8574A gibt. Letzterer hat eine andere Adresse, also aufpassen.

komfortabel finde ich dabei die Signalisierung einer Eingangsänderung per IRQ, was einem eine Menge Polling-Software abnimmt. Bislang habe ich die I2C Bussyszeme auf MCS51ern und AVRs immer per Software emuliert und bis dato auch keine Probleme. Lieferzeit ist kein Problem bei diesem Baustein, da er sehr weit verbreitet ist, bei den I2C Bausteinen sozusagen eine Feld-Wald-Wiesen-Type. Preise kann ich jetzt nicht beurteilen. Zwei Leitungen sind weniger als 3 oder 4 für eine diskrete Lösung. Dazu kommt, dass man die Dinger auch kaskadiert Byte-Weise ansprechen kann. Bei einem ellenlangen Schieberegister muss man schon aufpassen, welches Bit man wo setzt und das ganze dann auch jedes mal in voller Länge durchklickern. Und das Schieberegister ist nicht bidirektional an seinen Ausgängen, der PCF schon. Der Programmieraufwand ist für das SR jedenfalls nicht weniger und bei einem ausgelasteten System nicht weniger kritisch, als ein Software-I2C. Bei dem Sofware-I2C habe ich aber auch die Möglichkeit viele andere Bausteine mit anzuschließen.

Gruß,

Ulrich

Reply to
Ulrich Prinz

l

wenn

fuer

alls

fuer

Welche uC mit hardwaremaessiger I2C Schnittstelle k=F6nnte ich nehmen? Er=

sollte auch ISP sein. Also ohne extra Programmierger=E4t programmiert werden k=F6nnen. Ich habe mich schon mal bei Atmel umgesehen. Habe aber keinen I2C gefunden.

Reply to
=?iso-8859-1?Q?J=FCrgen?= Leeb

Das hängt von dem uC ab. I2C eher nicht. Latch klingt besser. Wenn's ein "ganz normaler" Datenbus ist, dann schau Dir mal die 74xx373 oder

-573 an. Die sind halt unidirektional, also nicht wirklich I/O. Um Eingangsdaten zu lesen, die nicht gelatched werden müssen, kann man auch gut einen Bustreiber mit Schmitt-Trigger Eingängen (74xx240~245) nehmen.

Michael

Reply to
Michael Kr?mer

Würde ich auch empfehlen. Schaltplan:

formatting link

--
AVR-Tutorial, über 350 Links
Forum für AVRGCC und MSPGCC
-> http://www.mikrocontroller.net
Reply to
Andreas Schwarz

Die nennen das glaube ich da "Two Wire Bus" .... z. B. in Atmega8

Reply to
Henning Aust

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.