Analog and digital pin | Cypress Semiconductor
Analog and digital pin
Since a week I have started to work with PSoc creater and I must say I like the concept. I didn’t take to long however to run into it’s limitations – the analog router. My goal is easy: 16 pins need to be connected to an analog multiplexer, easy. Also I want to be able to drive a logical 1 onto each and every one of these pins. This is where the trouble starts. The compiler does not allow this for the following reason:
The digital input of pin "Pin_16(0)" is occupied. This pin is connected to an AMuxHW component, which indicates its digital input is expected to be controlled by the only matching hardware control signal on the AMuxHW component.
I got a nice explanation with the error message to:
If a GPIO pin is connected to an AMuxHW component, its digital input is expected to be used by the matching digital control signal on the AMuxHW component. So this GPIO pin's digital input signal should be reserved for the matching digital control signal on AMuxHW component only.
I must say I find it nice that the compiler presumes to know what I want to do. My Goal is easy. Put a logical 1 on one of the pins and measure the voltage on the other pins. I know this should be possible for 2 reasons: A pic processor can do this, even the most stupid one, and the analog part of a pin should have nothing to do with the digital part. It is perfectly valid to write a digital 1 using the digital logic and read it out with the analog logic (which should be separate and apparently is) to check if there is no short circuit.
I tried 5 different approaches to do this, differential muxes,… most of the time I got routing problems. I somebody could explain me why I got this problem and how to tell the compiler to ignore this please do. If I need to write to the registers directly to circumvent the router, my pleasure.
Thank you for your help.