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
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.
"Bei Parallel Dann man 2x 8Bit aus." Ich meinte: Dann kann mal 2 mal 8Bit nacheinander auslesen... Wie heissen denn die AD-Wandler?
> 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).
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?
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.
>> 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?
Das ist leider ein ziemliches herumraten wenn die Typbezeichnungen der beteiligten ICs nicht bekannt sind.
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.
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.
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).
@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.
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.
@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?
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.
@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.
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.
@Dieter Werner: Siehst du den eine andere Möglichkeit das hinzubekommen? Bei den beiden Bausteiner würde ich aber eigentlich schon gern bleiben.
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?
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?
Die Samplingrate soll nicht erhöht werden, sondern ich habe drei Eingangssignale die einzeln digitalisiert werden müssen.
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ß.
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).
Wozu brauchst du denn 24-Bit? Es ist schon sehr schwierig 16-Bit zu erreichen, Layout-Technisch gesehen.
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.
@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.
@ 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
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
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.
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....
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???
@ 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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.