I/O -Erweiterung beim uC

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From German to

Threaded View
Hallo zusammen,

ich mF6%chte ein Schaltung mit einem uC aufbauen. Die I/O Port reichen mi=
r
jedoch nicht aus. Wie kann ich diese erweitern. Ist I2C die LF6%sung. Den=

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

Vielen Dank schon mal im Voraus!

GruDF% JFC%rgen

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

Quoted text here. Click to load it

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

Re: I/O -Erweiterung beim uC
Quoted text here. Click to load it

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






Re: I/O -Erweiterung beim uC
Quoted text here. Click to load it
eine

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




Re: I/O -Erweiterung beim uC
Quoted text here. Click to load it
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


Re: I/O -Erweiterung beim uC


Quoted text here. Click to load it

Welche uC mit hardwaremaessiger I2C Schnittstelle kF6%nnte ich nehmen? Er=

sollte auch ISP sein. Also ohne extra ProgrammiergerE4%t programmiert
werden kF6%nnen. Ich habe mich schon mal bei Atmel umgesehen. Habe aber
keinen I2C gefunden.

Re: I/O -Erweiterung beim uC

Quoted text here. Click to load it

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


Re: I/O -Erweiterung beim uC

Quoted text here. Click to load it

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

Re: I/O -Erweiterung beim uC
Quoted text here. Click to load it

Würde ich auch empfehlen. Schaltplan:
http://wiki.mikrocontroller.net/Porterweiterung_mit_SPI.htm

--
AVR-Tutorial, über 350 Links
Forum für AVRGCC und MSPGCC
We've slightly trimmed the long signature. Click to see the full one.
Re: I/O -Erweiterung beim uC
Quoted text here. Click to load it

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

Site Timeline