4. General Purpose Input Output#
GPIOs are nothing but digital input/output pins, the state of which can be controlled directly by the software running on the processors, or by a number of other peripherals available in the μC. As discussed in previous chapters, the RP2040 μC has 30 GPIOs, out of which 4 can also be used as inputs to the chip’s Analogue to Digital Converter (ADC). Each GPIO in RP2040 can perform a specific function of a specific peripheral. Following table lists the function that each GPIO can perform for each peripheral that we may discuss throughout this course. Full table is available here.
GPIO\Func |
1 |
2 |
3 |
4 |
5 |
---|---|---|---|---|---|
0 |
SPI0 RX |
UART0 TX |
I2C0 SDA |
PWM0 A |
SIO |
1 |
SPI0 CSn |
UART0 RX |
I2C0 SCL |
PWM0 B |
SIO |
2 |
SPI0 SCK |
UART0 CTS |
I2C1 SDA |
PWM1 A |
SIO |
3 |
SPI0 TX |
UART0 RTS |
I2C1 SCL |
PWM1 B |
SIO |
4 |
SPI0 RX |
UART1 TX |
I2C0 SDA |
PWM2 A |
SIO |
5 |
SPI0 CSn |
UART1 RX |
I2C0 SCL |
PWM2 B |
SIO |
6 |
SPI0 SCK |
UART1 CTS |
I2C1 SDA |
PWM3 A |
SIO |
7 |
SPI0 TX |
UART1 RTS |
I2C1 SCL |
PWM3 B |
SIO |
8 |
SPI1 RX |
UART1 TX |
I2C0 SDA |
PWM4 A |
SIO |
9 |
SPI1 CSn |
UART1 RX |
I2C0 SCL |
PWM4 B |
SIO |
10 |
SPI1 SCK |
UART1 CTS |
I2C1 SDA |
PWM5 A |
SIO |
11 |
SPI1 TX |
UART1 RTS |
I2C1 SCL |
PWM5 B |
SIO |
12 |
SPI1 RX |
UART0 TX |
I2C0 SDA |
PWM6 A |
SIO |
13 |
SPI1 CSn |
UART0 RX |
I2C0 SCL |
PWM6 B |
SIO |
14 |
SPI1 SCK |
UART0 CTS |
I2C1 SDA |
PWM7 A |
SIO |
15 |
SPI1 TX |
UART0 RTS |
I2C1 SCL |
PWM7 B |
SIO |
16 |
SPI0 RX |
UART0 TX |
I2C0 SDA |
PWM0 A |
SIO |
17 |
SPI0 CSn |
UART0 RX |
I2C0 SCL |
PWM0 B |
SIO |
18 |
SPI0 SCK |
UART0 CTS |
I2C1 SDA |
PWM1 A |
SIO |
19 |
SPI0 TX |
UART0 RTS |
I2C1 SCL |
PWM1 B |
SIO |
20 |
SPI0 RX |
UART1 TX |
I2C0 SDA |
PWM2 A |
SIO |
21 |
SPI0 CSn |
UART1 RX |
I2C0 SCL |
PWM2 B |
SIO |
22 |
SPI0 SCK |
UART1 CTS |
I2C1 SDA |
PWM3 A |
SIO |
23 |
SPI0 TX |
UART1 RTS |
I2C1 SCL |
PWM3 B |
SIO |
24 |
SPI1 RX |
UART1 TX |
I2C0 SDA |
PWM4 A |
SIO |
25 |
SPI1 CSn |
UART1 RX |
I2C0 SCL |
PWM4 B |
SIO |
26 |
SPI1 SCK |
UART1 CTS |
I2C1 SDA |
PWM5 A |
SIO |
27 |
SPI1 TX |
UART1 RTS |
I2C1 SCL |
PWM5B |
SIO |
28 |
SPI1 RX |
UART0 TX |
I2C0 SDA |
PWM6 A |
SIO |
29 |
SPI1 CSn |
UART0 RX |
I2C0 SCL |
PWM6 B |
SIO |
The actual working of a GPIO pin requires understanding of how a transistor works. Thus, this chapter will attempt to explain working of a GPIO in a much simpler way. However, keep in mind that this simplified explanation is not really true.