strange behavior of GPIO P33:

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

cross mob
Anonymous
Not applicable

We use the BCM20736S and we found some strange behavior of GPIO P33:

We want/must to use this GPIO P33 as an ADC input.

After power on or reset everything is OK, but after wakeup from LPM this GPIO is set to output !!!

(see following trace logs)

What is the reason for this ?

How could we avoid this? Is there a software workaround?

We don't want to change our hardware PCB design (if possible)!

Trace (C-code):

UINT16 cfg1 = gpio_getPinConfig( 0, 4);

UINT16 cfg1a = gpio_getPinConfig( 0, 8);

UINT16 cfg2 = gpio_getPinConfig( 2, 0);

UINT16 cfg2a = gpio_getPinConfig( 2, 1);

ble_trace2("cfg1:%02x  cfg1a:%02x", cfg1, cfg1a);

ble_trace2("cfg2:%02x  cfg2a:%02x", cfg2, cfg2a);

After PwrOn/Reset:

12:45:00 - CreateFnc

12:45:00 - cfg1:600  cfg1a:600

12:45:00 - cfg2:600  cfg2a:600

12:45:00 - SetLpm

12:45:00 - cfg1:0b  cfg1a:600

12:45:00 - cfg2:0b  cfg2a:600

12:45:00 - Entering Lpm.

After wakeup:

12:46:11 - CreateFnc

12:46:11 - cfg1:0b  cfg1a:600

12:46:11 - cfg2:0b  cfg2a:4600  // why is this GPIO P33 now set to output ??? !!!

0 Likes
4 Replies
BoonT_56
Employee
Employee
500 likes received 250 likes received 100 likes received

It could be a bug. Can you let me know if the below is useful to you?

GPIO state in deep sleep

0 Likes
Anonymous
Not applicable

Dear btta,

thank You for the quick response.

We checked hint

> GPIO state in deep sleep <https://community.cypress.com/thread/3995>

It really works fine with GPIOs defined as output.

But we have the opposite problem:

We define P33 as unused 0x600 or input 0x000 and

get it back as output 0x4600 after wakeup.

So something is changing our GPIO definition during entering deep sleep

or during wakeup !!

It would be very helpful to find a workaround as software,

because we want to avoid a change of our PCB

Thanks again

tbt

---

btta schrieb:

Cypress Semiconductor logo <http://www.cypress.com>

Cypress WICED Community

<https://community.cypress.com/?et=watches.email.thread>

strange behavior of GPIO P33:

reply from btta

<https://community.cypress.com/people/btta?et=watches.email.thread> in

Bluetooth Forums - View the full discussion

<https://community.cypress.com/message/31446?et=watches.email.thread#31446>

>

0 Likes

It is not obvious what could be the issue. Besides ADC, did you configure P33 as something else, like puart? From your log, 0x4600 did implied output enabled with input disabled, just like puart Tx.

dava

0 Likes
Anonymous
Not applicable

Dear btta,

> It is not obvious what could be the issue. Besides ADC, did you

> configure P33 as something else, like puart? From your log, 0x4600 did

> implied output enabled with input disabled, just like puart Tx.

we do not configure P33 as something else. After PwrOn or reset

everything is fine, we read 0x600 as configuration.

Even immediatly before entering deep sleep / LPM it is 0x600.

After wakeup we read 0x4600 !

So, who is changing the configuration and how can we avoid this.

This is our main issue and our only problem!

Thanks

tbt

0 Likes