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
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.
Sieht ganz nach einem Multiplexer aus. Du kannst den IC wie in Bild 18 anschließen, ohne MUX. Rick
@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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.