I/O -Erweiterung beim uC

J

Jürgen Leeb

Guest
Hallo zusammen,

ich möchte ein Schaltung mit einem uC aufbauen. Die I/O Port reichen mir
jedoch nicht aus. Wie kann ich diese erweitern. Ist I2C die Lösung. Den
Begriff "latch" habe ich auch noch im Hinterkopf. Lang ists her mit der
Microcontroller-Vorlesung.

Vielen Dank schon mal im Voraus!

Gruß Jürgen
 
juergen.leeb@bar.de meinte am 01.10.03
zum Thema "I/O -Erweiterung beim uC":

ich möchte ein Schaltung mit einem uC aufbauen. Die I/O Port reichen
mir jedoch nicht aus. Wie kann ich diese erweitern. Ist I2C die
Lösung. Den Begriff "latch" habe ich auch noch im Hinterkopf. Lang
ists her mit der Microcontroller-Vorlesung.
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
 
ich möchte ein Schaltung mit einem uC aufbauen. Die I/O Port reichen mir
jedoch nicht aus. Wie kann ich diese erweitern. Ist I2C die Lösung. Den
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
 
Wenn das Timing es zulaesst, dann sind Schieberegister a la 4021 / 4049
eine

Uuups, das sollte natuerlich 4021 / 4094 heissen ...
 
On Wed, 01 Oct 2003 09:41:54 +0200, Jürgen Leeb <juergen.leeb@bar.de>
wrote:

ich möchte ein Schaltung mit einem uC aufbauen. Die I/O Port reichen mir
jedoch nicht aus. Wie kann ich diese erweitern. Ist I2C die Lösung. Den
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
 
Klaus Bahner wrote:
ich möchte ein Schaltung mit einem uC aufbauen. Die I/O Port reichen mir
jedoch nicht aus. Wie kann ich diese erweitern. Ist I2C die Lösung. Den
[...]
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.

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
 
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.
Welche uC mit hardwaremaessiger I2C Schnittstelle könnte ich nehmen? Er
sollte auch ISP sein. Also ohne extra Programmiergerät programmiert
werden können. Ich habe mich schon mal bei Atmel umgesehen. Habe aber
keinen I2C gefunden.
 
ich m 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 L sung. Den
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
 
Johannes Bauer wrote:
On Wed, 01 Oct 2003 09:41:54 +0200, Jürgen Leeb <juergen.leeb@bar.de
wrote:

ich möchte ein Schaltung mit einem uC aufbauen. Die I/O Port reichen mir
jedoch nicht aus. Wie kann ich diese erweitern. Ist I2C die Lösung. Den

Wie wärs mit dem 74HC595?
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
-> http://www.mikrocontroller.net
 
On Wed, 01 Oct 2003 14:50:52 +0200, Jürgen Leeb wrote:

Ich habe mich schon mal bei Atmel umgesehen. Habe aber
keinen I2C gefunden.
Die nennen das glaube ich da "Two Wire Bus" .... z. B. in Atmega8
 

Welcome to EDABoard.com

Sponsor

Back
Top