Strictly necessary cookies are on by default and cannot be turned off. Functional, Performance and Tracking/targeting/sharing cookies can be turned on below based on your preferences (this banner will remain available for you to accept cookies). You may change your cookie settings by deleting cookies from your browser. Then this banner will appear again. You can learn more details about cookies HERE.
Strictly necessary (always on)
Functional, Performance and Tracking/targeting/sharing (default off)
I need to get out of a problem in a hurry. I need to route an analogue signal out to another pin.
I am using a CY8C5888AXI-LP096. P4[0..5] route to a mux that feeds the DS ADC. The mux is in a sequencer that samples each of the six channels sequentially. I want to route one of these signals out to another pin.
I have reserved the six lines using Mux Constraints which leaves the global bus available. I close the switches on the route to my pin by writing to the various registers.
It sort-of works but only when the ADC mux channel is closed. It is as if the pin is disconnected from both buses.
My question: why does opening the analogue mux bus open the analogue global?
I've been kind-of inspired by your own little low-pass filter component. I made a 'switch' component and was delighted to see it reflected in the analogue mimic diagram during debugging. I worked out a route through the analogue routing and placed reserves to stop the compiler from using it. I then dropped my own 'switches' into the schematic and closed them at boot-up.
But it doesn't work in practice. It is as if the pin itself is disconnected, not the mux switch. So, I only see my signal at the pin 1/6th of the time. However, this isn't how it is depicted in the Architecture TRM. i.e., Figure 29-5. GPIO Pin Input/Output Block Diagram on page 310.
I cannot see why both cannot be closed at the same time. So maybe the internal implementation of the mux opens both the switches when it deselects the channel?
My analogue inputs are all on port 4 and the mux shares the single register address. Could I instead use DMA to write to that register?