Skip to content

Commit 84b968e

Browse files
committed
Merge remote-tracking branch 'origin/main'
2 parents 0949cb8 + fae2507 commit 84b968e

File tree

4 files changed

+35
-0
lines changed

4 files changed

+35
-0
lines changed

ports/raspberrypi/bindings/rp2pio/__init__.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@
1717
//| introduction and guide to working with PIO in CircuitPython, see `this
1818
//| Learn guide <https://learn.adafruit.com/intro-to-rp2040-pio-with-circuitpython>`_.
1919
//|
20+
//| .. warning:: Using PIO inputs on Raspberry Pi RP2350 A2 stepping has some limitations
21+
//| due to a GPIO hardware issue that causes excessive leakage current (~120uA).
22+
//| A pin can read as high even when driven or pulled low, if the input signal is high
23+
//| impedance or if an attached pull-down resistor is too weak (has too high a value).
24+
//| See the warning in `digitalio` for more information.
2025
//| """
2126
//|
2227

shared-bindings/digitalio/__init__.c

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,27 @@
5858
//|
5959
//| For more information on using `digitalio`, see `this additional Learn guide
6060
//| <https://learn.adafruit.com/circuitpython-digital-inputs-and-outputs>`_
61+
//|
62+
//| .. warning:: `digitalio.DigitalInOut` on Raspberry Pi RP2350 A2 stepping has some limitations
63+
//| due to a GPIO hardware issue that causes excessive leakage current (~120uA).
64+
//| A pin can read as high even when driven or pulled low, if the input signal is high
65+
//| impedance or if an attached pull-down resistor is too weak (has too high a value).
66+
//|
67+
//| To prevent this problem, drive the the input pin with a strong signal that can overcome
68+
//| the leakage current. If you need to use a pull-down,
69+
//| connect a strong external pull-down resistor that is 8.2k ohms or less.
70+
//|
71+
//| The internal pull-down resistor (``digitalio.DigitalInOut.pull = digitalio.Pull.DOWN``)
72+
//| is not strong enough, and is not useful.
73+
//|
74+
//| Typical push-pull outputs from attached peripherals or other microcontrollers will drive
75+
//| input pins adequately, with no resistor needed.
76+
//|
77+
//| There is no problem when pull-ups are used, even weak ones. Using the internal pull-up resistor
78+
//| (``digitalioDigitalInOut.pull = digitalio.Pull.UP``) will work fine.
79+
//|
80+
//| For more information, see the RP2350-E9 erratum in the
81+
//| `RP2350 datasheet <https://datasheets.raspberrypi.com/rp2350/rp2350-datasheet.pdf>`_
6182
//| """
6283

6384
static const mp_rom_map_elem_t digitalio_module_globals_table[] = {

shared-bindings/keypad/__init__.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,12 @@ const mp_obj_property_t keypad_generic_events_obj = {
7070
//| For more information about working with the `keypad` module in CircuitPython,
7171
//| see `this Learn guide <https://learn.adafruit.com/key-pad-matrix-scanning-in-circuitpython>`_.
7272
//|
73+
//| .. warning:: Using pull-downs with `keypad` on Raspberry Pi RP2350 A2 stepping has some limitations
74+
//| due to a GPIO hardware issue that causes excessive leakage current (~120uA).
75+
//| A pin can read as high even when driven or pulled low, if the input signal is high
76+
//| impedance or if an attached pull-down resistor is too weak (has too high a value).
77+
//| See the warning in `digitalio` for more information.
78+
//|
7379
//| .. jinja
7480
//| """
7581

shared-bindings/touchio/__init__.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
//| For more information about working with the `touchio` module in CircuitPython,
2929
//| see `this Learn guide page <https://learn.adafruit.com/circuitpython-essentials/circuitpython-cap-touch>`_.
3030
//|
31+
//| **Limitations**: `touchio` is available on Raspberry Pi RP2040 builds,
32+
//| but not on RP2350, due to GPIO hardware limitations.
33+
//|
3134
//| Example::
3235
//|
3336
//| import touchio

0 commit comments

Comments
 (0)