Forum: Mikrocontroller und Digitale Elektronik ADC ADS8364 ansprechen


von Erwin (Gast)


Angehängte Dateien:

Lesenswert?

Servus alle miteinander!

Ich muß an einem STR711(ARM7 µC) einen 16bit ADC, ADS8364,
anschliessen. Die Seiten 18-20 des ADC Datenblatts (siehe Anhang)
verwirren mich etwas. Was ist das für ein Bauteil zwischen dem µC und
der Chipselect Leitung? Ich nehme an ein 8:1 Decoder für die
Adressdecodierung, oder? Wenn ich jedoch nur ein Peripheriegerät an den
benützen I/Os (z.B.: P1.0-P1.7) des µCs angeschlossen habe so kann ich
doch die Chipselect-Leitung direkt an einen I/0 Port (z.B.: P1.8)
anschliessen oder sehe ich das falsch? Selbst wenn ich 2
Peripheriebausteine (2 ADCs) an den I/Os P1.0-P1.7 angeschlossen habe
könnte ich ohne einen Adressdecoder arbeiten indem ich P1.8 für die CS
Leitung des ersten ADC benützte und P1.9 für die CS Leitung des 2ten
ADCs.
Also brauch ich diesen Bauteil, was immer der auch ist, zwischen CS und
µC oder nicht?
Ich habe das alles einmal in der Schule gelernt, aber nie wirklich in
der Praxis...

lg, danke, Erwin

von Christoph Kessler (db1uq) (Gast)


Lesenswert?

Wenn es ein IO-Port ist, reicht der natürlich für /CS
In den Beispielen soll der ADC im Adressbereich des Prozessors
eingeblendet werden, das macht man gern mit einem 74xx138 Decoder, der
3 Bit zu 8 Ausgängen decodiert, wobei man noch drei weitere Adressbits
zur Decodierung heranziehen kann, um die Verschwendung von Adressraum
zu verringern.
Die Prozessoren haben teilweise einen extra "I/O"-Adressbereich, bei
anderen muss der ADC im RAM-Adressbereich liegen, daher die
Unterschiede. Auch die zeitliche Abfolge der Handshakesignale ( RD, WR,
CS) und Polarität können sich unterscheiden.

von Rick Dangerus (Gast)


Lesenswert?

Sieht ganz nach einem Multiplexer aus. Du kannst den IC wie in Bild 18
anschließen, ohne MUX.

Rick

von Erwin (Gast)


Lesenswert?

@Christoph
Danke einmal, aber ganz verstehen tu ichs immer noch nicht:
quote:"In den Beispielen soll der ADC im Adressbereich des Prozessors
eingeblendet werden"
Ich verstehe nicht genau was du meinst. In meinem Fall STR711FR1 sind
die I/O Ports des µC memory mapped und zwar die IOPORT0 auf 0xE0003000
IOPORT1 auf 0xE0004000, IOPORT2 auf 0xE0004000.

quote:"..., das macht man gern mit einem 74xx138 Decoder, der
3 Bit zu 8 Ausgängen decodiert"
Ja aber ich brauch das doch nur wenn ich mehrere ADCs bzw. Peripherie
an den gleichen Port anschliesen will. - Dann habe ich praktisch eine 3
Bit breite Adressleitung (sagen wir P1.0-P1.2) die bis zu 8 CS Leitungen
ansprechen kann oder?

Also bei nur einem ADC bringt mir der Decoder gar nichts oder?

quote:"...wobei man noch drei weitere Adressbits
zur Decodierung heranziehen kann, um die Verschwendung von Adressraum
zu verringern. "
3bit sind 8 Zustände wo ist die Verschwendung wenn ich 8 ADCs hätte?
und falls nicht für welche decodierung kann ich sie heranziehen meinst
du.

Danke nochmal,
Erwin

von Christoph Kessler (db1uq) (Gast)


Lesenswert?

Ein guter alter 8-Bit-Prozessor hat genau 64kByte Adressraum, wenn die
belegt sind, kann man keine weitere Peripherie anschließen ohe
irgendwelche "Bank-switching"-Tricks. Mit 32k-Ram und 32 k ROM für
das Programm ist er voll belegt. Der Z80 beispielsweise hat noch 256
weitere "I/O"-Adressen, speziell für solche Peripherie, die
eigentlich nur eine einzige Adresse belegen müßte. Ein kleiner
TTL-Decoder müßte schon beim 8Bit-Prozessor 16 Adressleitungen
auswerten, das spart man sich auf Kosten von Adressraum und belegt zum
Beispiel 1/4 kByte für den ADC, dann muß man nur 8 Adressen
berücksichtigen, oder mit dem 74138 eben 6 Adressbits also 1 kByte
statt 1 Byte "verschwendet"

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.