8bit IO Port ueber I2C Interface

background image

Elektor

1/2000

Die Anwendung eines I

2

C-Interfaces

hat einige große Vorteile. So verläuft
die komplette Kommunikation über
eine Zweidraht-Verbindung. Das Inter-
face ist sehr zuverlässig, ausreichend
schnell und gut dokumentiert. Darü-
ber hinaus ist eine Vielzahl von I/O-
Komponenten mit I

2

C-Interface erhält-

lich. Vorteile zuhauf, doch die andere
Seite der Medaille? Eigentlich ist nur
ein Nachteil zu nennen: Der steuernde
Computer muß über ein I

2

C-Interface

verfügen, wie es in Elektor schon in
vielen Variationen veröffentlicht
wurde, zuletzt im März ´99. Dabei
handelte es sich um ein I

2

C-Interface

für die parallele Druckerschnittstelle,
das durch DLLs für eine Windows-
Umgebung unterstützt wurde. Aber
auch verschiedene Mikrocontroller-
Systeme, die in Elektor vorgestellt wur-
den, konnten mit einer solchen
Schnittstelle aufwarten.

N

U R M I T D R E I

C

H I P S

Die Schaltung des Interfaces ist in Bild
1
dargestellt. Chef der Schaltung ist der
PCF8574(A), ein Philips-IC, das regel-

mäßig in Elektor-Projekten auftaucht.
Näheres über die Funktionsweise des
PCF8574 ist im Kasten zu finden. An
der linken Seite des ICs sieht man das
I

2

C-Interface, dessen Leitungen sowohl

auf einen Mini-DIN-Stecker (Standard
für I

2

C-Verbindungen) als auch auf

einen Schraubverbinder-Block geführt
sind. Neben den bekannten Steuersig-
nalen SCL und SDA sowie der Versor-
gungsspannung (+5 V und Masse)
wird auch die beim I

2

C-Bus optionale

Interruptleitung INT unterstützt.
Werden mehrere dieser Interfaces ein-
gesetzt, ist die zweite Anschlußvariante
von Interesse. Die Verbinder K2 und K3
sind so angeordnet, daß Interfaces auf
einfache Weise über ein paar kurze
Drähtchen miteinander Kontakt auf-
nehmen können. Neben den I

2

C-Sig-

nalen führt der Verbinderblock auch
die Betriebsspannungsleitungen VCC
und Masse. Auch ein gemeinschaftli-
cher Kathodenanschluß für die Frei-
laufdioden von IC3 (dazu später mehr)
ist vorhanden.
Mit den Jumpern JP1...JP3 wird die
Basisadresse des PCF8574(A) einge-
stellt. Die Basisadresse eines PCF8574

I/O-Interfaces werden

in schöner Regel-

mäßigkeit in Elektor

behandelt. Und doch

hat jede Schaltung

ihre besonderen

Eigenschaften, die sie

mehr oder weniger

einzigartig macht. Die-

ser sehr kompakt auf-

gebaute 8-bit-I/O-Port

besitzt acht gepufferte

Ausgänge, acht Ein-

gänge auf TTL-Niveau

und kommuniziert mit

dem PC über das

bekannte I

2

C-Inter-

face.

22

Entwurf von H. Böhling

8-bit I/O-Port

Steuern über I

2

C-Interface

MIKROPROZESSOREN

background image

lautet $0100xxx (40

h

), während ein

PCF8574A die Basisadresse $0111xxx
(70

h

) verwendet. Die drei Bits hinter

der Basisadresse lassen sich mit den
Jumpern frei auswählen. Zwei Basis-
adressen und acht Bitkombinationen
ergeben 16 verschiedene Adressen, so
daß sich an den I

2

C-Bus für “Heavy-

duty-Anwendungen” insgesamt 16
dieser Module parallelschalten lassen.
Damit erhalten Sie satte 128 bidirektio-
nale I/O-Leitungen. Hinter den drei
variablen Bits folgt übrigens immer ein

weiteres, mit dem die
Datenrichtung (lesen
oder schreiben) festge-
legt wird.
Nun zur rechten Seite des Schaltbil-
des. IC1 verfügt über die acht bidirek-
tionale Anschlüsse P0...P7. Jede I/O-
Leistung besitzt einen Pull-up-Wider-
stand mit einer in Reihe geschalteten
LED. Ist ein Pin als Ausgang geschal-
tet, so zeigt die angeschlossene LED
den Ausgangspegel an:
Sie leuchtet, wenn der

Pegel Low ist und
bleibt bei einem High-
Pegel dunkel. Soll ein
Anschluß ausschließ-

lich als Eingang verwendet werden,
kann die LED samt Widerstand ent-
fallen.
Der Verbinder K4 ist direkt am
PCF8574(A), so daß hier nur Eingänge
angeschlossen werden sollten. Als Aus-
gänge dagegen sorgen zwei Puffer für

die nötige Leistung. IC2
ist ein sogenannter

23

Elektor

1/2000

K1

2

5

4

3

1

6

K2

K3

K4

K5

IC1

8574

INT

SCL

SDA

PCF

10

11

12

15

14

13

P0

P1

P2

P3

P4

P5

P6

P7

A2

A1

A0

16

4

5

6

1

2

3

7

9

8

74HCT540

IC2

19

11

12

13

14

15

16

17

18

EN

2

3

4

7

8

9

5

6

1

&

D1

R3

1k5

D2

R4

1k5

D3

R5

1k5

D4

R6

1k5

D5

R7

1k5

D6

R8

1k5

D7

R9

1k5

D8

R10

1k5

R2

330

R1

330

C2

100n

C1

100µ 16V

JP3

JP2

JP1

SCL

SDA

SCL

SDA

INT

INT

5V

5V

5V

5V

IC2

20

10

C3

100n

5V

994077 - 11

ULN2803

IC3

VEE

+VS

11

12

13

14

15

16

17

18

10

1

2

3

6

7

8

4

5

9

1

Bild 1. Die Schaltung
des 8-bit-I/O-Ports, der
über das I

2

C-Interface

angesteuert wird.

994077-1

(C) ELEKTOR

C1

C2

C3

D1

D2

D3

D4

D5

D6

D7

D8

IC1

IC2

IC3

JP1

JP2

JP3

K1

K2

K3

K4

K5

R1

R2

R3

994077-1

R10

994077-1

(C) ELEKTOR

2

Stückliste

Widerstände:
R1,R2 = 330

R3...R10 = 1k5

Kondensatoren:
C1 = 100

µ/16 V stehend

C2,C3 = 100 n

Halbleiter:
D1...D6 = LED high eff.
IC1 = PCF8574P oder PCF8574AP
IC2 = 74HCT540
IC3 = ULN2803

Außerdem:
JP1...JP3 = 1

⋅3poliger

Pfostenverbinder

K1 = 6polige Mini-DIN-Buchse für

Platinenmontage

K2...K5 = 8polige

Platinenanschlußklemme, RM5

Platine EPS 994077-1
(siehe Service-Seiten in der

Heftmitte)

Bild 2. Das kompakte
Platinenlayout samt
Bestückungsplan.

background image

24

Elektor

1/2000

Bild 4. Das Timing eines Lese-
und eines Schreibbefehls zum
PCF8574(A).

INTERRUPT

LOGIC

LP FILTER

INPUT

FILTER

I

2

C-BUS

CONTROL

SHIFT

REGISTER

I / O

PORTS

POWER-ON

RESET

12

11

10

9

7

6

5

4

P7

P6

P5

P4

P3

P2

P1

P0

15

SDA

16

V

DD

8

V

SS

14

SCL

3

A2

2

A1

1

A0

13

INT

8 BIT

8 x

WRITE pulse

994077 - 12

READ pulse

PCF8574

"1"

"0"

+

3

1

SCL

SDA

WRITE

TO PORT

DATA OUT

FROM PORT

0

S

2

3

4

5

6

7

8

1

0

0

A2

A1

A0

0

A

DATA 1

DATA 2

DATA 1 VALID

DATA 2 VALID

994077 - 13a

data to port

slave address (PCF8574)

data to port

start condition

acknowledge

from slave

A

acknowledge

from slave

A

acknowledge

from slave

R/W

t

pv

t

pv

SDA

INT

READ

FROM PORT

DATA

INTO PORT

0

S

1

0

0

A2

A1

A0

1

A

DATA 1

DATA 2

DATA 3

DATA 4

DATA 4

994077 - 13b

data from port

slave address (PCF8574)

data from port

start condition

acknowledge

from slave

A

acknowledge

from slave

1

P

stop

condition

R/W

t

ps

t

ph

t

iv

t

ir

t

ir

4

Bild 3. Der interne Aufbau des
PCF8574(A). Das IC wurde
exakt für den hier eingesetz-
ten Zweck entwickelt.

Näher betrachtet:
PDF8574

Der PCF8557(A) ist ein CMOS-IC, daß einen Mikrocon-
troller über den I

2

C-Bus mit besonderen I/O-Funktionen

bereichern kann. Der Chip besitzt ein I

2

C-Interface sowie

einen quasi-bidirektionalen Port mit kombinierten Ein- und
Ausgängen. Der Port kann als Eingang eingesetzt werden,
wenn er zuvor auf High gesetzt wurde. Nur dann ist der
Portbaustein in der Lage, logische Niveaus zu registrieren.
Wird der Ausgang durch einen Lesebefehl gelesen, so ist
zu sehen, auf welches logische Niveau der Eingang
gesetzt ist. Um eine Portleitung, die als Eingang geschal-
tet ist, auf logisch Null zu setzen, muß ein externer Strom
von wenigstens 100 µA nach Masse fließen.
Die Ausgangsleitungen sind stark genug, um eine LED

direkt anzusteuern. Die Innenschaltung (Bild 3) zeigt, daß
ein Port nur 100 µA liefern, aber maximal 25 mA nach
Masse schalten kann.
Das IC bietet auch die Möglichkeit, einen Interrupt zu
erzeugen. Wenn der Port als Eingang geschaltet ist, ver-
ursacht jede Änderung des Pegels einen Interrupt. Der
Interrupt wird aufgehoben, wenn die Ursache verschwun-
den ist, also der Port wieder den ursprünglichen Zustand
einnimmt, oder wenn der Port über den I

2

C-Bus gelesen

oder beschrieben wurde.
Nach einem (Power-on-) Reset sind zunächst alle Portlei-
tungen High. Dadurch befinden sie sich im richtigen
Zustand, um als Eingänge gebraucht zu werden.
Bild 4 zeigt, welche Signale auf den I

2

C-Bus gesetzt

werden müssen, um Daten vom und zum Controller zu
schieben.

A

B

background image

25

Elektor

1/2000

Bustreiber, der intern über acht inver-
tierende Puffer verfügt. Um aber auch
größere Lasten anschließen zu können,
folgt auf IC2 ein Leistungstreiber mit
der Bezeichnung ULN2803. Dieses IC
stellt acht Transistor-Treiber mit Open-
collector-Ausgängen zur Verfügung,
die für ohmsche oder induktive Lasten
(Lämpchen, Relais) bis maximal 50
V/500 mA (gesamt 2,25 W) geeignet
sind. Alle Ausgänge sind mit Freilauf-
dioden ausgestattet, deren Kathoden
gemeinschaftlich an Pin 10 liegen. Die
externe Spannungsversorgung für die
Lasten wird an K2 oder K3 ange-
schlossen (Masse an Pin 1 und Pin 8,
V++ an Pin 7). Pin 1 ist im Schaltbild
und im Bestückungsaufdruck mit einer
Abschrägung markiert.

M

E H R

S

T E C K E R

A L S

I C

S

Der Aufbau der Schaltung ist eine
Arbeit, die in einer guten halben
Stunde erledigt sein sollte. Probleme
durch “ungewöhnliche” Bauteile oder
durch allzu gedrängten Aufbau sind
nicht zu erwarten. Bild 2 zeigt, daß die
Elektronik im Zentrum der Platine
sitzt, während der Kontakt mit der
Außenwelt über eine DIN-Buchse
sowie die Platinenanschlußklemmen
an den Platinenrändern aufgenommen
wird. Diese Klemmen mit Schraubver-
bindung sorgen für vertrauenswürdige
elektrische Verbindungen. Da die
Klemmen dicht aneinander sitzen,
werden sie Rücken an Rücken mon-
tiert. Wenn erhältlich, kann man auch

je einen hohen und einen niedrigen
Klemmenblock (dann natürlich nach
außen gerichtet) anbringen.
Nach den Lötarbeiten kontrolliert man
Lötstellen und Bauteile und nimmt das
Interface in Betrieb. Mit einem Jumper
steckt man die gewünschte Adresse
und schließt die I/O-Karte am I

2

C-Bus

an. Die Platine ist übrigens so bemes-
sen, daß sie in ein Standard-Gehäuse
für Hutschienenmontage paßt.
Fehlt noch etwas? Richtig, die Software.
Üblicherweise wird das Interface durch
einen Treiber unterstützt, der lediglich
Daten lesen und schreiben können
muß. Der Kasten bietet ausreichend
Informationen, um einen solchen Trei-
ber ohne Probleme selbst zu erstellen.

(994077)rg


Wyszukiwarka

Podobne podstrony:
I2C Interface fuer Druckerschnittstelle
I2C Interface am EPP
IO Port Programming
Mikrokontrolery STM32 Użycie interfejsu I2C, USART, SPI
i2c to keyboard interface
interfejs i2c
(notes) Electronics Interfacing the PC Serial Port (RS232)
instrukcja interfejsu na rs 232 com port
parallelport IO Interface

więcej podobnych podstron