Forum: Mikrocontroller und Digitale Elektronik Probleme mit Multiplexer 4051


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Stilles Wasser (Gast)


Angehängte Dateien:

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


Bewertung
0 lesenswert
nicht lesenswert
Evtl JTAG eingeschaltet?

von U. M. (oeletronika)


Bewertung
0 lesenswert
nicht 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:
  • preview image for 1.JPG
    1.JPG
    81,7 KB, 245 Downloads

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


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


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


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

von U. M. (oeletronika)


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

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

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]
  • [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.