How to use GPIOs on CYW4343W as outputs?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Datasheet of CYW4343W states that GPIO can be controlled via 'GPIO control register' (section 11.3 GPIO Interface). Is there some documentation for this?

0 Likes
1 Solution

Hi Igor,

The snip function for gpio is for controlling the MCU GPIOs which is platform specific.

GPIO_0 is for host wake up which listens to Out-of-band interrupts. The OOB interrupt can be asserted  with the platform GPIO_0 pin (as defined in the platform_config.h). Gpio1 is for antenna diversity and definition of it could be found in the NVRAM file(nvram parameter = swdiv_gpio). And the rest of the gpios  are for coex. These are also set in the NVRAM and any changes in it needs to be followed up with a corresponding change in OTP memory.

You could find  how GPIO control register is modified when a oob interrupt is asserted in wwd_bus_protocol.c . Here, backpane function wwd_bus_write_register_value() is used to write and modify the GPIO control register. The MCU use sdio interface to call these backpane functions and hence it is best to leave this function as it is.

Also there are no specific IOCTLs to send to WLAN chip inorder to control the GPIOs as well. Could you elaborate on the end objective for controlling the gpios of radio chip?

View solution in original post

4 Replies
WinstonF_61
Moderator
Moderator
Moderator
100 likes received 100 sign-ins 50 solutions authored

Hi Igor,

Assuming that you are using the WICED SDK, there is a 'doc' folder which has an API guide.

The API's for setting up & controlling GPIO's are documented there. You could also refer to the gpio example in the apps>snip>gpio folder.

pastedImage_0.png

Regards

Winston.

Regards
Winston
Anonymous
Not applicable

Thank you for reply!

I checked example in my wiced stack (version 3.x). I think it is using platform gpio functions. So it is designed to control GPIO on MCU where Wiced Stack is running.

But I need to control GPIOs directly on CYW4343W so it does not solve my issue.

Am I right?

With  many thanks Igor

0 Likes

Hi Igor,

The snip function for gpio is for controlling the MCU GPIOs which is platform specific.

GPIO_0 is for host wake up which listens to Out-of-band interrupts. The OOB interrupt can be asserted  with the platform GPIO_0 pin (as defined in the platform_config.h). Gpio1 is for antenna diversity and definition of it could be found in the NVRAM file(nvram parameter = swdiv_gpio). And the rest of the gpios  are for coex. These are also set in the NVRAM and any changes in it needs to be followed up with a corresponding change in OTP memory.

You could find  how GPIO control register is modified when a oob interrupt is asserted in wwd_bus_protocol.c . Here, backpane function wwd_bus_write_register_value() is used to write and modify the GPIO control register. The MCU use sdio interface to call these backpane functions and hence it is best to leave this function as it is.

Also there are no specific IOCTLs to send to WLAN chip inorder to control the GPIOs as well. Could you elaborate on the end objective for controlling the gpios of radio chip?

Anonymous
Not applicable

Hi vnak, the wwd_bus_write_register_value() function looks like solution I was looking for. Thanks!