6.5.7.7 Programmable GPIOs
General-purpose input/output (GPIO) pins offer flexibility for a variety of connections. The GPIO module is composed of 15 physical GPIO blocks, each corresponding to an individual GPIO port. The GPIO module is FiRM-compliant (compliant to the Arm Foundation IP for Real-Time MCUs specification) and supports 0 to 90 programmable I/O pins. The number of GPIOs available depends on the peripherals being used.
- Up to 90 GPIOs, depending on configuration
- Highly flexible pin multiplexing allows use as GPIO or one of several peripheral functions
- 3.3-V tolerant in input configuration
- Advanced high-performance bus (AHB) accesses all ports:
- Ports A to H, K to N, P, and Q
- Fast toggle capable of a change every clock cycle for ports on AHB
- Programmable control for GPIO interrupts
- Interrupt generation masking
- Edge-triggered on rising, falling, or both
- Level-sensitive on high or low values
- Per-pin interrupts available on port P and port Q
- Bit masking in both read and write operations through address lines
- Can be used to initiate an ADC sample sequence or a µDMA transfer
- Pin state can be retained during hibernation mode; pins on port P can be programmed to wake on level in hibernation mode
- Pins configured as digital inputs are Schmitt triggered
- Programmable control for GPIO pad configuration
- Weak pullup or pulldown resistors
- 2-, 4-, 6-, 8-, 10-, or 12-mA pad drive for digital communication; up to four pads can sink 18-mA for high-current applications
- Slew rate control for 8-, 10-, and 12-mA pad drive
- Open-drain enables
- Digital-input enables