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
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
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
>> 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.
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
Du laberst mit allen 4051 gleichzeitig, weil alle enabled sind. Schau mal was der "E\" Eingang bewirkt.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.