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.
Pyboard initial pin voltages
- pythoncoder
- Posts: 5956
- Joined: Fri Jul 18, 2014 8:01 am
- Location: UK
- Contact:
Pyboard initial pin voltages
Peter Hinch
Index to my micropython libraries.
Index to my micropython libraries.
Re: Pyboard initial pin voltages
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.
You could remove all 4 of those. PB11 needs some type of pullup/pulldown, 100k is fine, to keep the bootloader happy.
- pythoncoder
- Posts: 5956
- Joined: Fri Jul 18, 2014 8:01 am
- Location: UK
- Contact:
Re: Pyboard initial pin voltages
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.
Index to my micropython libraries.