CYW43907 gpio on exit from hibernation

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

cross mob
NiMc_1688136
Level 5
Level 5
10 sign-ins 50 questions asked 10 solutions authored

As far as I can tell from the CYW43907 datasheet/ref manual, the default GPIO settings should be an input.

GPIOOutEn Release 9c5be10 0x18000068

Bits Name Function R/W Reset

31:0 GPIOOutEn

The 4-byte General Purpose I/O Output Enable register is writable, has a reset value of zero,

and determines which GPIO pins are used as inputs and which are used as outputs. When a bit

in this register is set, the corresponding GPIO pin is driven as an output.

RW 0

Reset: 0x00000000

When I exit the device from Hibernation mode, one of the GPIO pins switches to an output low for a short duration,  ~1mS, I happen to have this GPIO connected to the reset pin of a secondary MCU and this is causing it to reset when it cannot reset (At this point the secondary MCU is waking the CYW43907 by HIB_WAKE to send serial data).

I tried leaving the pin config alone, making it an high impedance input on startup, and making it an input with a pullup on startup, but nothing has changed the behavior. These gpio configurations are being called as part of the platform_init_external_devices call.

platform_gpio_init( &platform_gpio_pins[ST_RST_PIN], INPUT_HIGH_IMPEDANCE ); // has internal pullup

Is there something prior to platform_init_external_devices that is configuring the pin? The pin is not redefined in my platform code.

0 Likes
3 Replies