PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : CD4067 ein 16 multiplexer - so verlockend und so gefährlich



kolisson
19.06.2009, 01:07
hallo ihr lieben,

ich finde ja, dass mein nachmiottag sehr aufschlussreich war. zunächst messtechnisch und dann beim erneuten .. und genauen .. lesen eines datenblattes vom CD4067.

der anfang der geschichte ist eigentlich sehr einfach:

ich habe mir ein netzteil mit einigen zusatzfunktionen gebaut und benutze den atmel Micro hauptsächlich als Panel-meter. er zeigt mir halt auf dem display die eingestellte spannung (voltmeter) , den vorgewählten maximalstrom und den aktuellen strom an.

da dieses netzeil auch noch das gleiche für negative spannungen kann und ich zusätzlich noch eine akkuanordnung mit ladereglern (sozusagen USV ähnlich) im system habe musste ich eigentlich sehr viele analogwerte überwachen. im endeffekt komme ich nun auf 13 analog ... also adc-kanäle eines mega32.

da der m32 nur 8 kanäle hat, kam ich auf die vermeintlich geniale idee, eine Cd4067 einzusetzen, der 16 anlogkanäle auf einen gemeinsamen ausgang durchschalten kann. gleichzeitig wurden ja auch so weitere 7 ports am mega frei, da ich ja für die adc geschichten nur einen eingang am mega benötigte.

nu hatte ich das auch alles so aufgebaut und es gab noch einige kleinigkeiten in der hardware zu lösen. deshalb habe ich dem schwanken der spannungsanzeige im display um vielleicht 20mV zunächst keine bedeutung beigemessen.

nachdem nun meine software gestern soweit erstmal akzeptabel war, wunderte ich mich dann schon über die schwankungen.

ein blck in das geschehen mit dem oszilloskop , den ich dann heute machte, offenbarte , dass es sich keinesfalls um einige 10mV hadelte. das schien nur so, da ich die messwerte über 16 messwerte mittele.

die ausgangsspannung am ausgang meines geregelten und stabilisierten netzteiles brachen etwa im sekundentakt um bis zu 90% ein.
es waren noch nichteinmal immer sekunden und es war sehr sehr unregelmässig.

ein betrieb des netzteiles ohne die mega32-einheit gab allerdings gewissheit darüber, dass da netzteil gut arbeitet.

einige stunden der gezielten messung ergaben dann... "!der 4067 injezirt irgenein signal in meine spannungsregelung des netzteiles"

nunja.. dafür sind die dinger ja bidirektional.

ich dachte also nun, dass beim umschalten des mux eine ladung im mux oder am eingang des atmel irgendwie zurückwirkt. das spezielle problem in meiner schaltung war hier , dass eine meiner messungen über den mux, der ausgang meiner high-side strommessung war, die gleichzeitig aber netzteilintern für die strombegrenzug verwendet wurde.


ein rückinjektion von störungen durch den 4067 war natürlich fatal.

der einsatz vom impedanzwandlern (opamps) löste das problem.

die verwendung des Inhibit-eingangs des 4067 oder warteschleifen im programm verbesserten die lage nicht.

als ich dann alles fertig hatte, und mich entspannte, las ich das datenblatt vom 4067 erneut.
plötzlich viel mir ein absatz auf, der sich stark mit meinen erkenntnissen deckte:

dort heisst es unter "Special considerations" , dass es wohl keine klaren schaltzustände gibt und sich die einzelnen kanäle im umschaltmoment überlagern werden

das ist natürlich tragisch, wenn man das nicht erwartet und man die spannung in einem servokreis messen will.

OKAY .. ich habs geschafft, wollte aber auf die fussfalle hinweisen.

zudem frag ich ab jetzt natürlich, ob die neueren analogmuxe genauso ticken.

ich werde es nie vergessen

gruss klaus

Neutro
19.06.2009, 09:25
Ich habe mir mit dem 4067 auch schon mal einen 32Kanal Multiplexer aufgebaut. Die Anwendung war ganz ähnlich deiner, aber ich hatte an jedem
Eingang einen Spannungsteiler da ich Spannungen von bis zu 25V damit messe. Am Ausgang dazu befindet sich ein weiterer Spannungsteiler der dann zu einem Mega16 ADC Port geht. Ich hatte deine Probleme allerdings nicht, dürfte wohl an den Spannungsteilern liegen die den Strom da begrenzt haben. Die Spannungsteiler haben dabei Werte von mehreren 100k. Aber danke dfür deine Erfahrungen ich werde es mir auf jeden Fall merken, da ich öfters Mulplexer verwende.

Gruß

Neutro

pongi
19.06.2009, 09:46
Eigentlich sollte das Problem auch mit Tiefpässen am Eingang des MUX lösbar sein, oder? Diese "Rückwirkung" dauert ja wahrscheinlich nur einige ns-us, daher sind sie mit einem TP gut zu filtern. Und strenggenommen müsste ja an jedem ADC Eingang ein TP sein, damit man Aliasing vermeidet.

kolisson
19.06.2009, 14:08
hallo pongi.. und neutro
natürlich kann man sowas wie tiefpässe verwenden.
ich habe ja am ausgang vom mux und somit am eingang des adc einen kleinen kondensator sitzen. zudem warte ich ja einige millisekunden nach dem umschalten bis zur eigentlichen wandlung. zudem habe ich an den eingängen des mux jeweils einen serienwiderstand sitzen.

das beschriebene problem hatt aber trotzdem seine wirkung. es war ja sogar so, dass bei abgetrenntem ausgang des mux rückwirkungen der einzelnen eingänge aufeinander stattfinden.

diese sind im allgemeinen auch zu verkraften, da, wie z.b. neutro schreibt,
beim messen einer statischen spannung ja vor der messung gewartet werden kann.

in meinem fall ist aber ein spezialfall eingetreten:
ich habe in einem servokreis mit op (hat ja ne relativ hohe verstärkung) die referenzspannung über den mux gemessen. da diese dann durch das um-muxen wie wild sprang , spielte dann der kreis auch verrückt.

wer es testen will, nehme einen 4067 , hänge an einige eingänge verschiedene gleichspannungen. dann lege er den ausgang über 1 kohm oder so auf masse und hänge dann sein scope an einen unbelegten weiteren eingang des mux.

beim durchtakten der mux-adressen kann am unbelegten eingang dann die treppenspannung sehen, die sich durch die anderen eingänge ergibt.

ist ja alles nicht schlimm, wenn man sich darüber bewusst ist.

gruss