Issue with 4051 Analog Multiplexer #300
Replies: 4 comments 2 replies
-
Check the following discussion: |
Beta Was this translation helpful? Give feedback.
-
Hi @paradajz, thanks for the quick relpy. I am aware that some models of the 4051 might need 5V for control. However, in my debug scenario (3), I'm setting s0..2 to 0V and I can clearly measure the 0..3.3V readout at GP26 when turning the pot, but the firmware does not pick it up. In scenario (2) the firmware will recognize this as native analog input, even with the mux connected and s0..2 set to 0V. I expect in multiplexer mode that the firmware should pick up the value at GP26 for all mux channels, correct? Is there anything the firmware/hardware does differently when |
Beta Was this translation helpful? Give feedback.
-
One more update: I tried muxonmux (with the same schematic, so without any controller multiplexer in place) and set the controller inputs s0..1 to some unused pins. With this approach I am getting successful readings. For me it looks like there might be an issue with with the implementation of multiplexer mode. I am happy to help tracking this down if you could give me some hints where to look at (see my post above).
|
Beta Was this translation helpful? Give feedback.
-
Okay, found the bug. It was a mistake in a script which generates symbols for analog driver. Can you please test back the original configuration against this commit? |
Beta Was this translation helpful? Give feedback.
-
Hi everyone,
I'm using a raspi-pico connected to three 4051 multiplexers in the following schematic:
The MUX used are Nexperia 74HC4051D,653, which should be capable of handling 3.3V operation according to the datasheet:
https://www.mouser.de/datasheet/2/916/74HC_HCT4051-1318685.pdf
I'm using the following configuration:
All my digital inputs/outputs are working properly, but I have troubles getting the analog inputs to work. I get no readings in the OpenDeck Configurator activity when turning a pot.
Now I've tried some debugging based on the first pot connected to the mux at GP26, which leads me to the idea that this might be a software side problem, and not hardware related:
I switched the input type to 'native' instead of '4051'. That way the mux will connect the first input to GP26, and this does work. I get perfect readings for the first pot.
I tried to replicate the same behavior as (2) by setting the multiplexer pins to some unused pins. But like this I don't get any readings.
Does someone have any idea what's happening here? I even tried to replicate the Native.cpp implementation in Multiplexer.cpp, but for some unknown reason the readings will only work if I'm setting the type to native.
Best,
Sebastian
Beta Was this translation helpful? Give feedback.
All reactions