GPIO36/39 crosstalk (or still in sensor mode)
Posted: Sat Feb 01, 2020 9:05 am
Hi - I have an issue with using GPIO 36&39 with is driving me nuts. I'm using multiple GPIO with interrupts for button. It's in a fairly large application and working fine. As I was a bit short on GPIOs, I added 36 & 39. I'm well aware they can only be inputs and they are also sensor vn/vp. Buttons have a pull-up of 33k (I've tried as low as 2k w/o success)
What happens is that there seems to be some crosstalk in the sense that it *only* GPIO39 is enabled for interrupts then when GPIO36 is pulled down, it also triggers an interrupt on 39.
I've read about the AMP/ADC spurious 80ns pull-down that happens when these blocks are activated, but that's not the case. It does not happen "randomly", but only when the 36 is pulled down. If I reverse the situtation, the same issue happens, just reverted.
I've been down to using just the gpio sample code to confirm the issue. The exact same "buttons" work with all other GPIOs
The only thing that seems to improve the situation is to filter with a pretty large cap (2.2uF) the GPIOs. So it seems that they still behave as if they were not GPIOs, but hall sensors/ADC.
I've tried to use rtc_gpio_deinit, gpio_config, gpio_pad_select, adc_power_off .. no luck
Any hint would be highly welcome!
What happens is that there seems to be some crosstalk in the sense that it *only* GPIO39 is enabled for interrupts then when GPIO36 is pulled down, it also triggers an interrupt on 39.
I've read about the AMP/ADC spurious 80ns pull-down that happens when these blocks are activated, but that's not the case. It does not happen "randomly", but only when the 36 is pulled down. If I reverse the situtation, the same issue happens, just reverted.
I've been down to using just the gpio sample code to confirm the issue. The exact same "buttons" work with all other GPIOs
The only thing that seems to improve the situation is to filter with a pretty large cap (2.2uF) the GPIOs. So it seems that they still behave as if they were not GPIOs, but hall sensors/ADC.
I've tried to use rtc_gpio_deinit, gpio_config, gpio_pad_select, adc_power_off .. no luck
Any hint would be highly welcome!