in my application I need to use both pull up and pull down features on GPIOs P0 or P34, however when I try to enable the pullup with
wiced_hal_gpio_configure_pin(WICED_P34, GPIO_INPUT_ENABLE | GPIO_PULL_UP, GPIO_PIN_OUTPUT_LOW)
I see that the pin voltage goes up to VDD / 2 and not to VDD as expected.
I found the information in the pictures below in CYW920706WCDEVAL Hardware User Guide. Please note that I am using CYBT-343026 module.
I think that the problem is related to the default pulldown on pin I2S_WS_PCM_SYNC that remains active, however I cannot find a way to disable it.
Since I already used this in my application:
// Avoid conflict between PUART_RX and CLK_REQ bonding
#define cr_pad_fcn_ctl_adr4 0x003201b8
#define REG32(x) (*(volatile unsigned*)(x))
unsigned val = REG32(cr_pad_fcn_ctl_adr4) & ~(0x0000F000);
REG32(cr_pad_fcn_ctl_adr4) = val | (7 << 12);
I wonder if a similar approach will work but I have no documentation in how to apply this to I2S_WS_PCM_SYNC.
Are you using CYBT-343026-EVAL? Or followed the same schematics?
P0/P34 is used for User button with an external 100k pull down as per the schematics. Have you considered it?
no I am using custom hardware and pin P0/P34 is now floating. I activate internal pullup / pulldown to detect if the pin is floating, externally pulled up or externally pulled down. This is used as a board detection system (floating=board not connected, pd=board #0, pu=board #1). Everything worked on CYBT213043 but then we had to move to CYBT343026...
The problem is that when I activate the pullup the voltage does not go to VDD but remains in the middle, causing some systems to work and some not. I think an internal pulldown is always active and I'm asking a way to disable it.
In the evaluation board everything works because the button detection uses a strong 1K pullup while I'm using internal weak pulls to implement my board detection logic.