Forum: Mikrocontroller und Digitale Elektronik Suche passenden MUX


von Thomas (Gast)


Lesenswert?

Hallo an alle,
ich suche zur Zeit einen passenden MUX für meine Schaltung, habe aber 
leider keine Erfahrung in diesem Bereich. Vielleicht könnt ihr mir ja 
was entfehlen.
Also ich habe drei 16 Bit AD-Wandler. Diese Daten sollen nacheinander an 
die 16-I/O Pins meines µC. Nun dachte ich mir das ich einen 4:1 Mux 
bräuchte (2 Steuerleitungen). Bekomme ich dabei nicht nur ein Bit am 
Ausgang des MUX raus? Es müssten aber doch 16 sein und insgesagt 3*16 
Leitungen von den ADC anliegen. Gibt es sowas überhaupt oder muss/kann 
man dies eleganter lösen?

Danke schonmal für eure Hilfe

von Fly (Gast)


Lesenswert?

Gibt es so bestimmt nicht, macht man eigentlich so auch nicht.

Gibt es überhaupt AD-Wandler mit 16 Bit Busbreite Ausgang? Habe ich no 
nie gesehen. Die sind seriell oder 8 Bit Parallel. Bei Parallel Dann man 
2x 8Bit aus.

Normalerweise haben die ADC ein Chip-Select. Mit dieser Leitung kannst 
du dem Chip mitteilen dass er gerade gemeint ist und die anderen 
schweigen. Somit kannst du den Datenbus Parallel verdrahten.

von Fly (Gast)


Lesenswert?

"Bei Parallel Dann man
2x 8Bit aus."

Ich meinte: Dann kann mal 2 mal 8Bit nacheinander auslesen...

Wie heissen denn die AD-Wandler?

von Dieter W. (dds5)


Lesenswert?

> Nun dachte ich mir das ich einen 4:1 Mux bräuchte (2 Steuerleitungen)

Das ist im Prinzip schon richtig, nur muss es nicht EIN sondern es 
müssen 16 4:1 Multiplexer sein.
Ist es nicht möglich die Übertragung seriell abzuwickeln, sonst würde 
das ein ziemliches IC Grab (von den 4:1 Mux sind 2 Stück in einen 
Gehäuse, das wären dann z.B. 8 mal 74HC153).

von Thomas (Gast)


Lesenswert?

Hab gerade nochmal nachgeschaut. Der ADC ist 16-Bit bidirektionales 
parallel Interface.
Das mit dem Chip Select ist ne gute variante, daran hab ich einfach 
nicht gedacht. Das heißt ich verbinde die CS Leitungen der ADC`s mit den 
I/O Ports des µC und kann dann auslesen wer wann Daten zum abholen 
bereit hat...ist das so richtig?
Aber nun muss ich z.B. die 16 Bit vom ADC1 abholen und anschließend vom 
ADC2. Aber wie? Mit CS weis ich nur das die Daten bereit zum abholen 
sind....mehr auch nicht. Die Datenleitungen müssen doch irgendwie 
verbunden mit den µC verbunden sein. Und wie soll dies nun ohne MUX 
gehen?

von Fly (Gast)


Lesenswert?

Mit dem Chip Select kannst du den anwählen, mit dem du gerade 
kommunizieren willst. Jedes CS an einen seperaten uC-Pin.
Wenn der ADC wirklich 16Bit Ausgänge hast, brauchst du einen Latch, um 
die höheren 8-Bit zwischen zu speichern.

von Thomas (Gast)


Lesenswert?

>> Mit dem Chip Select kannst du den anwählen, mit dem du gerade
>> kommunizieren willst. Jedes CS an einen seperaten uC-Pin.

Das ist schon klar, aber wie kommen nun die Datenleitungen vom ADC zum 
µC? Die müssen doch nun schon verbunden sein. Und was ist dann mit den 
Datenleitungen vom zweiten ADC....so sollen die noch dran?

von Dieter W. (dds5)


Lesenswert?

Das ist leider ein ziemliches herumraten wenn die Typbezeichnungen der 
beteiligten ICs nicht bekannt sind.

von Thomas (Gast)


Lesenswert?

Das können wie ja schnell ändern:
ADC von Analog: AD7762
µC: 8051

von Andreas K. (a-k)


Lesenswert?

Nicht wirklich eine gelungene Kombination zweier Bausteine. Es sollten 
sich besser geeignete ADC finden lassen als ausgerechnet dieser Typ. 
Zumal der nicht 16 sondern 24 Bits hat, und nicht nur gelesen sondern 
auch geschrieben werden will.

Wenn du das am externen Bus-Port eines 8051 anschliessen willst, dann 
schau dir mal den 74HC646 an.

von Fly (Gast)


Lesenswert?

Schöne Wandler!

Schau mal im DB deines Controllers wie man den externen Datenbus 
handelt. Steht sicher auch drin wie man ein Bidirektionales Latch für 16 
Bit Zugriffe anschliesst.

von tastendrücker (Gast)


Lesenswert?

Na alle an den BUS:

ADC1.DB0  ---> ADC2.DB0   ---> ADC3.DB0  ---> µC.PIN1
ADC1.DB1  ---> ADC2.DB1   ---> ADC3.DB1  ---> µC.PIN2
ADC1.DB2  ---> ADC2.DB2   ---> ADC3.DB2  ---> µC.PIN3
:
ADC1.DB15 ---> ADC2.DB150 ---> ADC3.DB15 ---> µC.PIN15

ADC1.CS ------------------------------------> µC.PIN16
ADC2.CS ------------------------------------> µC.PIN17
ADC3.CS ------------------------------------> µC.PIN18


Und da du nicht so viele IO-Pins am µC hast, must du wohl aus 8 IO's 16 
machen (wie Andreas Kaiser schon schrieb).

von Thomas (Gast)


Lesenswert?

@Andreas Kaiser: So wie das jetzt ist gebe ich dir recht, aber im laufe 
des Projektes besteht die möglichkeit alle 24Bit zu nutzen wenn dies 
später von Vorteil ist. Warum will der Baustein beschrieben werden? 
Meiner Meinung nach besitzt er nur die Möglichkeit hierfür.

@Fly: Kann ich ja alles machen, aber das löst ja nun nicht mein Problem. 
Irgendwie muss ich ja nun auf die Daten aller drei ADC`s zugreifen 
können.

von Fly (Gast)


Lesenswert?

Ich glaube zwar des geht nur mit den Adressen, diese zu multiplexen.
Hmm es wäre möglich, aber dann musst du die Signale einzeln, von Hand 
setzen, kannst den Datenbus nicht automatisch ansprechen, resp. den 
Datenbus intern einblenden.

Das einfachste wäre:
Also alle Daten, Adressen, RD und WR Leitungen parallel an einen uC-Pin. 
Die Data-Ready Pin und CS Leitungen musst du einzeln auswerten. Ich 
fürchte dir werden die Ports ausgehen.
Ich schliesse mich Andreas an, suche dir lieber einen Wandler mit 8B 
Interface.

von Thomas (Gast)


Lesenswert?

@tastendrücker: Achso geht das? Also brauche ich ja gar keinen 
MUX.....macht ja auch Sinn. Ich schaue mir dann ja erst die CS Flags an 
und setzte dies entsprechend und lesen dann ja nur die Daten von dem 
entspechenden ADC. Ist das wirklich so? Muss ich dann noch irgendwas 
beachten?

von Dieter W. (dds5)


Lesenswert?

Donnerwetter, eine anspruchsvolle Aufgabe, allein das "simplified 
connection Diagram" auf Seite 18 des Datenblatts macht schon was her.
Optimal wäre ein Referenz Design der Leiterplatte, fehlt aber leider.

Es dürfte auch etwas schwierig werden, die Data ready Meldung der 
Wandler zu erfassen, da der Impuls nur 1/2 Clock (von 1 ... 40MHz) lang 
ist.
µC erkennen flankengetriggerte Interrupts meistens durch 
Mehrfachabtastung und kommen mit so kurzen Impulsen selten zurecht.

von Thomas (Gast)


Lesenswert?

@fly: Leider ist der Markt von 24-Bit ADC die eine Samplinrate von 
mindestens 500kHz haben leider sehr begrenzt. Wenn du andere kennst wäre 
ich auch für andere Bausteine offen. Ein 24-Bit soll es aber schon 
bleiben, weil ich später die Möglichkeit haben möchte alle 24-bit nutzen 
zu können.

von tastendrücker (Gast)


Lesenswert?

Du siehst dir nicht die CS-Flags an, sondern du setzt die CS Leitung von 
dem ADC auf LOW (wenn LOW Aktiv), mit dem du 'reden' willst, die anderen 
beiden setzt du auf HIGH. Alle ADC's, deren CS auf HIGH gesetzt wird, 
tun so, als wären sie nicht da.

Der µC (also dein Programm) setzt also die CS-Leitungen wie du sie 
benötigst.

von Thomas (Gast)


Lesenswert?

@Dieter Werner: Siehst du den eine andere Möglichkeit das hinzubekommen? 
Bei den beiden Bausteiner würde ich aber eigentlich schon gern bleiben.

von Thomas (Gast)


Lesenswert?

Muss ich den überhaupt die Data Ready Meldung vom ADC beachten? Da der 
Datenstrom kontinuierlich sein soll, dann weis ich wann ich die Daten 
vom ADC holen kann/muss.

Jetzt alles im großen und ganzen mal gesehen. Denkt ihr das es überhaupt 
so realisierbar ist? Wo seht ihr die größten Probleme?

von Thomas (kosmos)


Lesenswert?

wozu brauchst du 3 A/D Wandler soll die Samplingrate erhöht werden? Wenn 
nicht nimm einen A/D Wandler und schalte dort einen oder mehrere 
Analogmultiplexer davor?

von Thomas (Gast)


Lesenswert?

Die Samplingrate soll nicht erhöht werden, sondern ich habe drei 
Eingangssignale die einzeln digitalisiert werden müssen.

von Christian R. (supachris)


Lesenswert?

Die größten Probleme sehe ich nicht auf der Digital- sondern auf der 
Analogseite. Schon mal ein rauscharmes Layout für 24 Bit gemacht? Bei 
2.5V Vollaussteuerung des ADC sind das ca 150nV pro LSB. Ein Layout für 
sowas erfordert viel Erfahrung. Desweiteren brauchst du ja sicher eine 
Eingangsstufe (Vorverstärker) der muss ja für 24 Bit ein gewaltiges SNR 
haben....(sowas um die 140dB)...dann mal viel Spaß.

von Thomas (Gast)


Lesenswert?

Das sollte eher nicht so das Problem sein, weil eine 
Vorverstärkerschaltung bereits vorhanden ist und bei dieser auf wenig 
Rauschen sehr geachtet wurde (auch bei der Auswahl der 
Operationsverstärker).

von Fly (Gast)


Lesenswert?

Wozu brauchst du denn 24-Bit?
Es ist schon sehr schwierig 16-Bit zu erreichen, Layout-Technisch 
gesehen.

von Thomas (kosmos)


Lesenswert?

Also müssen die 3 Wandlungen gleichzeitig durchzuführen oder wegen der 
höheren Auflösung des externen A/Ds?

Wenns nur um die Auflösung geht, nicht ums synchrone wandeln und auch 
etwas Zeit zur Verfügung steht könntest auch mehrere Ergebnisse 
zusammenzählen

Hier mal ein kleines Beispiel für die Auflösungserweiterung von 8 auf 10 
bit für 3 Kanäle.

Ergebniss 1=  255     Ergebniss 2=  253     Ergebniss 3=  254
Ergebniss 4=  254     Ergebniss 5=  254     Ergebniss 6=  254
Ergebniss 7=  254     Ergebniss 8=  253     Ergebniss 9=  255
Ergebniss10=  253     Ergebniss11=  253     Ergebniss12=  254
            -------               -------               -------
             1016                  1013                  1017

in diesem Fall würde ein externen Multiplexer aber trotzdem hilfreich 
sein weil man nicht die erste Wandlung verwerfen muss wie es beim 
internen Multiplexer gemacht werden soll.

von Der_kleine_vom_See (Gast)


Lesenswert?

@fly: Wo sind deiner Meinung nach die Layout Probleme? An welchen 
Stellen denkst du das Probleme Auftreten können?


@ Thomas O.: Ich brauche wirklich früher oder später 24-Bit. Da der 
Markt an 24-Bit ADC`s mit einer Saplingrate von 500kHz+x sehr klein ist 
bleibt mir keine andere Wahl außder diesen zu verwenden.

von Falk B. (falk)


Lesenswert?

@ Der_kleine_vom_See (Gast)

>@ Thomas O.: Ich brauche wirklich früher oder später 24-Bit. Da der
>Markt an 24-Bit ADC`s mit einer Saplingrate von 500kHz+x sehr klein ist
>bleibt mir keine andere Wahl außder diesen zu verwenden.

Dream on!

Wozu glaubst du, einen 24Bit ADC mit 500kHz Samplingrate zu brauchen? 
Und viel mehr, wo glaubst du diesen zu bekommen? Ist dir schonmal 
aufgefallen, dass sämtliche 24 BIT-ADCs am Markt bestenfalls mit 1 kHZ 
Samplingrate daherkommen, und dabei nicht mal 24 Bit erreichen? Echte 24 
Bit (tm) erreicht man heute bestenfalls bei ca. 100 Hz, meist eher 
weniger.

MFG
Falk

von Falk B. (falk)


Lesenswert?

By the way. Vielleicht solltest du besser den AD7763 verwenden, der hat 
ein serielles Interface. Wenn du doch den hier nehmen willst, schau ins 
Datenblatt. "Sharing the parallel bus", Seite14, kein Mux notwendig.

MFG
Falk

von Dirk L. (Gast)


Lesenswert?

Er hatte doch oben gesagt das der AD7762 von Analog verwendet werden 
soll. Wenn ich mir das Datenblatt so anschaue sollte das doch so ok 
sein.

von Christian R. (supachris)


Lesenswert?

WAS soll denn bitte mit 24 Bit so schnell gemessen werden? Welche 
Prozessgröße soll das denn sein? Ist doch irrwitzig. Und dann in den PC?

Ist jetzt eigentlich "Der kleine vom See" und "Thomas" der gleiche? Ist 
es denn so schwer, sich mal anzumelden hier?

500KS/s  3 Byte  3 Wandler -> 4,5MByte/s Rohdaten. Da musst du 
wirklich einen schnellen USB 2.0 Controller haben, zudem große FIFOs, 
wenn es eine kontinuierliche, äquidistante Abtastung werden soll...

Und für eine 24 Bit-taugliche Eingangsstufe brauchst du min. eine 
4-Lagen-Platte.


Außerdem hat der ADC bei 625KS/s nur noch 106 dB SNR, das sind ja nur 
effektive 17,5 Bit ungefähr, der rest ist Rauschen. Aber mit Werbung 
fängt man halt Kunden....

von Der_kleine_vom_See (Gast)


Lesenswert?

Ich habe ja auch nie behauptet das die Aufgabe leicht realisierbar 
ist....und da ist schon klar das nicht einfach standartbausteine 
verwendet werden können und somit natürlich viele dinge beachtet werden 
müssen und Probleme entstehen können.

>> Und für eine 24 Bit-taugliche Eingangsstufe brauchst du min. eine
>> 4-Lagen-Platte.
 Wieso ist das nötig???

von Falk B. (falk)


Lesenswert?

@ Der_kleine_vom_See (Gast)

>> Und für eine 24 Bit-taugliche Eingangsstufe brauchst du min. eine
>> 4-Lagen-Platte.
> Wieso ist das nötig???

Um deine ADCs zu versorgen und möglichst wenig Störungn von aussen 
dranzulassen.

MfG
Falk

von Thomas (kosmos)


Lesenswert?

würd mich auch mal interessieren was für ein Signal da digitalisiert 
werden soll.

Bekommst du überhaupt die Versorgungsspannung für die OPAMPs so sauber 
hin?

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.