Pyboard initial pin voltages

The official pyboard running MicroPython.
This is the reference design and main target board for MicroPython.
You can buy one at the store.
Target audience: Users with a pyboard.
Post Reply
User avatar
pythoncoder
Posts: 5956
Joined: Fri Jul 18, 2014 8:01 am
Location: UK
Contact:

Pyboard initial pin voltages

Post by pythoncoder » Sat Aug 08, 2015 10:07 am

If you power up a Pyboard, the I/O pins read 0V with the exception of the four I2C pins, which read 3.3V. I've found no way to avoid them being pulled to 3.3V when issuing standby(). I've tried defining them as inputs with a pulldown, and also defining them as push-pull outputs and setting them low. In each case, when I issue pyb.standby() the pins go to 3.3V.

I've not spotted anything in the chip data to define what state the pins go into under the standby condition - is it an inherent property of the chip or something in the Pyboard firmware? Having these pins go to 3.3V causes I2C connected devices to draw current (in my case 150uA) limiting the potential of ultra low power systems.
Peter Hinch
Index to my micropython libraries.

User avatar
dhylands
Posts: 3821
Joined: Mon Jan 06, 2014 6:08 pm
Location: Peachland, BC, Canada
Contact:

Re: Pyboard initial pin voltages

Post by dhylands » Sat Aug 08, 2015 1:17 pm

If you look at the schematic you'll see that the i2c lines have 4.7k pullups on them.

You could remove all 4 of those. PB11 needs some type of pullup/pulldown, 100k is fine, to keep the bootloader happy.

User avatar
pythoncoder
Posts: 5956
Joined: Fri Jul 18, 2014 8:01 am
Location: UK
Contact:

Re: Pyboard initial pin voltages

Post by pythoncoder » Sat Aug 08, 2015 4:19 pm

Doh! I should have thought to check the schematic before trawling through the ARM datasheet. Thanks for that ;)
Peter Hinch
Index to my micropython libraries.

Post Reply