analog Multiplexer 16 Eingänge auf 8 Ausgänge u. LCD auslesen

OP #2353324
Lesenswert?

Gibts sowas? Ich habe nichts gescheites gefunden, außer Video oder 
Ethernet-Arrays.. das ist mir zuviel des Guten.

Es sollen ganz simpel 16 analoge Signale auf 8 ADC's eines Atmel geführt 
werden, erst die einen 8, dann die anderen 8. Dabei sollen die Kanäle 
weder durch Massen getrennt werden, noch muss der Chip besonders schnell 
sein.

Das man das auch mit Transistoren lösen kann, ist mir klar, jedoch 
sollte  das nur Plan B sein.
#2353377
Lesenswert?

Thomas Eckmann schrieb:
> holger schrieb:
>> 74HC4051 8 Channel to 1 multiplexer;)
>
> Und was soll das bringen?

Ganz einfach, der TO braucht zwar 16->8, vergisst aber dass der avr 
immer nur einen Kanal wandeln kann. D.h. 16->1 bringt genauso viel, bzw. 
ist besser da der interne Demux nicht gebraucht wird (soweit ich weiß 
braucht der zum umschalten auch seine Zeit). Außerdem könnte man 
mithilfe eines 4bit Zählers, die maximale Geschwindigkeit zum Einlesen 
der Daten erreichen, da HW-seitig umgeschalten werden kann (ADC dann im 
Freerunning-mode).
Gast #2353387
Lesenswert?

> Ganz einfach, der TO braucht zwar 16->8, vergisst aber dass der avr
> immer nur einen Kanal wandeln kann.

Naja, es hat ja noch keiner gesagt fuer welchen Controller genau. 
vielleicht ist Atmel ja mittlerweile schon so schlau wie Renesas und hat 
auch Controller mit mehr als einem AD-Wandler die dann parallel arbeiten 
koennen?

Olaf
Gast #2353442
Lesenswert?

>nen uC mit 8 parallelen ADC haben will?

Wozu brauchst du das denn?

Wenn du wirklich zeitgleich samplen willst, dann suche mal bei analog 
devices. Es gibt Wandler, die können alle Kanäle zeitgleich samplen und 
einzeln digitalisieren.
OP #2353452
Lesenswert?

ne, so wichtig ist das nicht. Ich will die Werte einer Digitalwaage 
abfangen. Das geht nur darüber, die Signale des Displays abzufangen. Die 
Waage aktualisiert das Display ca 1 mal pro Sekunde. Das Display hat 4 
Commons. Es wird 4fach multiplext und deshalb setzen sich die Signale 
aus den Werten 0,1,2 und 3 V zusammen.
16 Leitungen hat das Display. Naja, dann hol ich mir die Werte alle 
nacheinander, ist ja nich wild! Selbst dann hab ich immernoch genug 
Platz, um das Display mehrere hundert mal pro Sekunde abzufragen und nen 
gescheiten Wert zu mitteln.
OP #2353534
Lesenswert?

ich hab hier ne Periode von 75Hz und eine Periode besteht aus 8 
verschiedenen "Zeitschlitzen", also 600Hz. In diesen 600Hz = 1,7ms muss 
ich alle 16 Leitungen möglichst mehrmals auslesen. Gehen wir von 5 mal 
pro Leitung aus. Macht 80 ADC-Umsetzungen pro 1,7ms, also pro Umsetzung 
21us. Im Datenblatt steht "13 μs- 260 μs Conversion Time". Welche Zeit 
such ich mir jetz aus?
Gast #2353605
Lesenswert?

OK, es geht nicht nur um die Geschwindigkeit, du mußt auch synchron mit 
der Multiplexfrequenz messen. Ansonsten bekommst du Werte, die du nicht 
den einzelnen Phasen beim Multiplexen zuordnen kannst. Dazu ist eine 
Synchronisation deines µC mit dem Display erforderlich. Außerdem ist 
eine volle Kontrolle der Timings des Sample and Hold und des ADC Moduls 
erforderlich.

Ob das mit deinem µC klappt? Ich würde versuchen, die Wägezellen selbst 
auszulesen. Auch nicht ganz einfach, aber die chinesischen 
Waagenhersteller schaffen es auch.

MfG Klaus
OP #2353653
Lesenswert?

Klaus schrieb:
> synchron mit
> der Multiplexfrequenz messen

Darüber hab ich mir auch schon Gedanken gemacht. Ich glaube, die 
Synchronität ist nicht so wichtig, denn ich bekomm nur im Umschaltmoment 
der Waage falsche Werte. Da die Waage aber nur aller Sekunde den Wert 
ändert, kann ich damit leben. Ich lese die Periode dann zwar versetzt 
aus, aber die Summe der einzelnen Spannungen bleibt gleich.

Bsp: für ein aktiviertes Segment kommt diese Folge von Spannungen:
Leitung 1: 2,2,0,1,1,1,3,2
Leitung 2: 1,1,3,2,2,2,0,1
Diff:  -1,-1,3,1,1,1,-3,-1

Summe der Beträge: 12 (entspricht aktiviertem Segment, für ein 
deaktiviertes Segment beträgt die Summe 8)

Ob ich nun beim ersten Wert anfange 8 Werte mitzuschneiden und die 
Differenz bilde, oder beim 5. anfange und 8 Werte mitschneide, das 
spielt keine Rolle.

Die Fehler zu erkennen ist dann Softwaresache.


Ein Treiber is nich drauf. Da ist ein schwarzer Klecks, dort geht alles 
rein und raus(LCD, Tasten, DMS).. noch nicht mal ein OPV ist da drauf..
OP #2354953
Lesenswert?

So, ich habe mich entschieden, dass Synchronität doch wichtig ist, da 
ich nicht knallhart in ASM code und so Zeitvorhersagen schwierig sind. 
Die wären jedoch wichtig, um im Takt zu bleiben (ich muss sicherstellen, 
dass mit einem exakten Vielfachen der Displayfrequenz arbeite, da sich 
sonst recht schnell die Abtastzeitpunkte aus den entsprechenden Zyklen 
verschieben würden).

Also werde ich einen externen Interrupt-Takt aus dem Displaytakt 
erzeugen und kann dann sicherstellen, dass immer zum richtigen Zeitpunkt 
gelesen wird. Kann der MC während einer AD-Umsetzung eigentlich sein 
Programm weiter ausführen oder ist er dann busy?
OP #2372702
Lesenswert?

So, der halbe Weg ist geschafft.

Auf dem Bild seht ihr in blau einen von 16 Kanälen der 
Displayansteuerung, dabei sind gut die 8 "Zeitschlitze" zu erkennen, die 
sich immer wiederholen. Darunter in gelb seht ihr die visuelle Ausgabe 
der AD-Umsetzungen. Habe einen Pin auf high gesetzt, solange der ADC 
beschäftigt ist.
Ein gelber, dicker Peak steht für 16 AD-Umsetzungen (16 Kanäle müssen 
pro Zeitschlitz abgetastet werden), auf dem 2. Bild ist das besser zu 
erkennen.

Die passende Multiplex-Hardware mit nem 4067 ist auch schon gebaut, wird 
vom MC angesteuert und funktioniert. Kleine Kinderkrankheiten sind noch 
zu beheben und die Auswertung bzw Ausgabe der gesampelten Daten muss 
noch gecoded werden. Aber jetz is erstmal WE :)
OP #2381912
Lesenswert?

Mittlerweile erkennt der AVR das auf dem Display der Waage angezeigte 
Gewicht und speichert es in ner Variable, dh wenn zB 126g auf der Waage 
angezeigt werden, befindet sich in der Variable der Wert 126.

Der Rest ist Kleinkram:
- Auswerten von "g", "kg" etc
- Ausgabe bereitstellen

Damit darf ich mich dann also offiziell als sportlich bezeichnen?? ;O)

Wenn das Projekt fertig ist (Doku, Schaltplan etc), werd ichs hier 
veröffentlichen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren