I have read that limits may be programmed for the output current of GPIO pins. However, after reading several online versions of Broadcom's data sheet for the SoC, I've found nothing to corroborate the data in this reference. Is there a "definitive source" for this GPIO current limit function, either in hardware documentation OR software documentation?
1 Answer
Yes. The definitive source for RPi hardware documentation is the Raspberry Pi Foundation. The Foundation updated their published documentation to include programmable GPIO current limits recently (Jan, 2019), and the latest "official documentation" of the GPIO docs can be found here.
In general, The Foundation's "official documentation" is published in the following locations:
The Foundation has also referenced some documents published by Broadcom as part of their official documentation. Specifically with respect to the GPIO, you may wish to consult this document beginning on p. 89.
EDIT/UPDATE, 2021-06-09:
The "Official Documentation" on the RPi GPIO is written for the BCM2835 - the Broadcom processor used in Raspberry Pi 1 and Zero. The Foundation has not yet updated this GPIO documentation for the RPi 2, 3 or 4. This may mean the BCM2835 GPIO documents remain valid - or it may not. The CM4 documentation addresses the BCM2711 (the RPi 4b SoC), and covers some of the details in the "Official GPIO Documentation", but not all. You can follow this question if you're interested.
While you can set current limits on the GPIO in software, those limits are, for all intents and purposes, meaningless. For example, you can set the current limit to 2mA, yet if you connect a load of 330 Ohms from that pin to ground, and set the pin to "HIGH" (3.3V)) the pin will source 10 mA, not 2 mA.