Forum: Mikrocontroller und Digitale Elektronik Probleme mit Multiplexer 4051


von Stilles Wasser (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich sitze gerade an einem meiner Projekte. Ich verwende drei 4051 
Multiplexer, die ich gerne ansprechen möchte, um Drucksensoren 
auszuwerten. Ich habe euch einen Teil meines Schaltplans als Bild 
angehängt. Den Multiplexer U3 kann ich ansprechen, aber die anderen 
Multiplexer reagieren nicht. Es sieht so aus, als ob am ADC4 und ADC5 
des AVR kein Signal reinkommt.

Wo könnte der Fehler liegen? Ich habe mit dem Multimeter die Kontakte 
überprüft. Es ist alles so, wie ich es ausgelegt hatte. Die Kontakte 
scheinen in Ordnung zu sein. Ich spreche alle Multiplexer über die 3 
Steuerleitungen an.

MfG

von foobar (Gast)


Lesenswert?

Evtl JTAG eingeschaltet?

von U. M. (oeletronika)


Lesenswert?

Hallo,
> Stilles Wasser schrieb:
> ich sitze gerade an einem meiner Projekte. Ich verwende drei 4051
> Multiplexer, die ich gerne ansprechen möchte, um Drucksensoren
> auszuwerten. Ich habe euch einen Teil meines Schaltplans als Bild
> angehängt. Den Multiplexer U3 kann ich ansprechen, aber die anderen
> Multiplexer reagieren nicht.
Wie sollen die den reagieren? Und wenn sie reagieren.

> Es sieht so aus, als ob am ADC4 und ADC5
> des AVR kein Signal reinkommt.
Ich frage mich, was dieses Problem mit dem Multiplexern und deren 
Ansteuerung überhaupt zu tun hat. Offenbar hats du keine Systematik im 
Denken und suchst deshalb mit merkwürdiger Strategie nach einem Fehler.

> Wo könnte der Fehler liegen? Ich habe mit dem Multimeter die Kontakte
> überprüft.
Und wie machst du das? Um welche Kontakte handelt es sich den?

Wäre es nicht sehr nahe liegend, die Multiplexer erstmal einfach links 
liegen zu lassen und statt dessen einfach mittels Spannungsmessung die 
jeweiligen ADC zu prüfen. Falls da keine verwertbare Spannung anliegt, 
solltest du mal Testspannungen an die ADC-Eingänge anlegen.
Mit dem Multimeter kann man außer "Kontakte prüfen" auch Spannungen 
messen und diese mit den Werten der ADC-Wandlung vergleichen.
Gruß Öletronika

von Stilles Wasser (Gast)


Angehängte Dateien:

Lesenswert?

foobar schrieb:
> Evtl JTAG eingeschaltet?

JTAG benutze ich gar nicht. Ich habe die digitale Funktion der 
jeweiligen Pins deaktiviert. Hat trotzdem nicht geholfen. Sonst noch 
einer ne Idee?

MfG

von foobar (Gast)


Lesenswert?

>> Evtl JTAG eingeschaltet?
>
> JTAG benutze ich gar nicht. Ich habe die digitale Funktion der
> jeweiligen Pins deaktiviert.

Soweit ich sehe, hat die JTAGEN-Fuse da höhere Priorität. U.a. die 
Pull-Ups sind dann immer aktiv.

von Stilles Wasser (Gast)


Lesenswert?

foobar schrieb:
> Soweit ich sehe, hat die JTAGEN-Fuse da höhere Priorität. U.a. die
> Pull-Ups sind dann immer aktiv.

Vielen Dank für den Tipp. Jetzt hat es klappt :)

Ich habe es zunächst per Programmierung gemacht:

MCUCR |= (1 << JTD);

Das hat nichts bewirkt. Dann habe ich das passende Fuse-Bit für das JTAG 
Interface abgeschaltet. Danach ging es.

Ich habe zum Testen einen FSR Drucksensor mit einem Spannungsteiler 
aufgebaut. Die abgegriffene Teilspannung führt zum Multiplexer und von 
dort aus zum ADC des AVRs. Wenn ich auf den Drucksensor gedrückt hatte, 
dann sollte eine grüne LED aufleuchten, damit ich sehen konnte, ob der 
ADC einen Wert bekommt. Wenn nicht, leuchtete eine rote LED auf.

Die ganze Zeit blinkte es grün, obwohl ich den Sensor nicht mal 
berührte. Und das jedesmal, wenn ich den Multiplexer U8 und U9 nutzen 
wollte. Die Pull-Ups haben wohl dafür gesorgt, dass eine Spannung am 
ADC4 und ADC5 registriert werden konnte. Nun klappt es aber :)

MfG

von Jörn P. (jonnyp)


Lesenswert?

Du laberst mit allen 4051 gleichzeitig, weil alle enabled sind.
Schau mal was der "E\" Eingang bewirkt.

von U. M. (oeletronika)


Lesenswert?

Hallo
> Jörn P. schrieb:
> Du laberst mit allen 4051 gleichzeitig, weil alle enabled sind.
> Schau mal was der "E\" Eingang bewirkt.
Das ist doch kein Problem, wenn er die COM-Signale auf jeweils einen 
separaten ADC bringt (eben ADC1, ADC4 und ADC5).
Gruß Öletronika

von Tim (Gast)


Angehängte Dateien:

Lesenswert?

Stilles Wasser schrieb:
> Ich habe es zunächst per Programmierung gemacht:
>
> MCUCR |= (1 << JTD);
>
> Das hat nichts bewirkt.

Ja, da muß man halt mal ein bissel genauer lesen:
1
In order to avoid unintentional disabling or enabling of the JTAG interface, a timed sequence must be followed when changing this bit: The application software must write this bit to the desired value twice within four cycles to change its value.

Dann klappts auch mit der Nachbarin:
1
    // disable JTAG, timed sequence
2
    MCUCR |= (1<<JTD);
3
    MCUCR |= (1<<JTD);

Das Fusebit JTAGEN auf 1 (unprogrammed) zu setzen geht natürlich auch...

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.