mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Suche passenden MUX


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Fly (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Fly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Bei Parallel Dann man
2x 8Bit aus."

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

Wie heissen denn die AD-Wandler?

Autor: Dieter Werner (dds5)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Fly (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Dieter Werner (dds5)
Datum:

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

Autor: Thomas (Gast)
Datum:

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

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Fly (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: tastendrücker (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Fly (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Dieter Werner (dds5)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: tastendrücker (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas (Gast)
Datum:

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

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Thomas O. (kosmos)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Thomas (Gast)
Datum:

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

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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ß.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Fly (Gast)
Datum:

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

Autor: Thomas O. (kosmos)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Der_kleine_vom_See (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Dirk L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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....

Autor: Der_kleine_vom_See (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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???

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas O. (kosmos)
Datum:

Bewertung
0 lesenswert
nicht 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?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.