Pmod HAT Adapter Reference Manual
The Pmod HAT Adapter makes it easy to connect Digilent Pmods to a Raspberry Pi. It supports plug-and-play functionality, only requiring that the host Raspberry Pi be booted with the Pmod HAT attached. The Pmod HAT has three 2×6 Digilent Pmod ports and provides access to additional I/O available via the Raspberry Pi 40 pin GPIO connector. Designed in collaboration with RS Components, users can take advantage of example Python libraries and demo tutorials hosted on DesignSpark. See the Software Support section below for more info.
Download This Reference Manual
Overview
Features
- Provides access to full line of Digilent Pmod™ peripheral modules.
- Enables use of up to three Pmods at a time.
- Supports SPI, UART, I2C, and GPIO connections.
- Optionally powered through a 5V barrel jack.
- Follows Raspberry Pi HAT specification. See the Raspberry Pi HAT Introduction for more details.
Compatible Boards
The Pmod HAT Adapter is compatible with all Raspberry Pi boards that use the 40-pin GPIO connector:
- Raspberry Pi Model A+
- Raspberry Pi Model B+
- Raspberry Pi 2 B
- Raspberry Pi 3 B
- Raspberry Pi Zero W
- Raspberry Pi Zero
About this Document
This reference manual applies to Revision B of the Pmod HAT Adapter.
Functional Description
Connectors and Jumpers
40 Pin Raspberry Pi GPIO Connector (J1) : This connector is used to attach the Pmod HAT to the host Raspberry Pi and provide access to each of the connector pins. Most of these 40 pins are shared with the Pmod ports. The Pmod ports are not intended to be used simultaneously with an additional HAT. However, five GPIO pins (GPIO22, GPIO23, GPIO24, GPIO25, and GPIO27) are unused by the Pmod HAT Adapter. These pins are available for use by other HATs or as user GPIO. Pmod port pins are connected to the 40-pin GPIO connector as seen in the Pinout Table Appendix.
External Power Jack (J2) : This connector can be used to provide power to the Pmod HAT adapter and the attached Raspberry PI. See the Power section below for more information.
Pmod Port JA : The first of the three 2×6 Pmod host ports, this port supports SPI and GPIO Pmods.
Pmod Port JB : The second of the three 2×6 Pmod host ports, this port supports SPI and GPIO Pmods, as well as 6-pin I2C Pmods on the bottom row.
Pmod Port JC : The third of the three 2×6 Pmod host ports, this port supports UART and GPIO Pmods.
Jumpers JP1 & JP2 : These jumpers enable pullup resistors for the Pmod Port JB I2C pins when shorted.
Jumper JP3 : This jumper enables writing to the onboard EEPROM containing the device tree fragment and other information used to configure the Raspberry Pi OS and drivers. Shorting this jumper is for advanced use only. See the Raspberry Pi HAT Introduction for more details.
Power
The Pmod HAT Adapter can be powered either from the Raspberry Pi through the 40-pin GPIO connector's two 5V pins, or from an external 5V supply, through the power jack. If an external supply is used, it must be able to provide minimum 1.3 Amps of current. An external supply will also power the host Raspberry Pi through the two 5V pins on the 40-pin GPIO connector. In addition, each Pmod GPIO pin can supply at most 16mA of current.
Important!
Make sure to never connect both the Pmod HAT Adapter and Raspberry Pi's power supplies at the same time. When changing power supplies, make sure to first fully disconnect the original supply.
Software Support
RS Components has produced the DesignSpark Pmod Library which can be used with a Raspberry Pi to control Pmods through the Pmod HAT Adapter using the Python programming language. Documentation and downloads for this library can be found at the following locations:
- Python library at Python.org.
- Documentation and installation instructions on Readthedocs.io.
- Source code at Github.com.
Appendix: Pinout Tables
Raspberry Pi 40-Pin Connector Pinout
Bottom Row | Top Row | ||||
---|---|---|---|---|---|
40-Pin GPIO Connector Pin Number | 40-Pin GPIO Connector Pin Name | Pmod Pin | 40-Pin GPIO Connector Pin Number | 40-Pin GPIO Connector Pin Name | Pmod Pin |
1 | 3V3 | N/C | 2 | 5V | N/C |
3 | GPIO02 | JB10 | 4 | 5V | N/C |
5 | GPIO03 | JB9 | 6 | GND | GND |
7 | GPIO04 | JC7 | 8 | GPIO14 | JC2 |
9 | GND | GND | 10 | GPIO15 | JC3 |
11 | GPIO17 | JC4 | 12 | GPIO18 | JA10 |
13 | GPIO27 | N/C | 14 | GND | GND |
15 | GPIO22 | N/C | 16 | GPIO23 | N/C |
17 | 3V3 | N/C | 18 | GPIO24 | N/C |
19 | GPIO10 | JB2 | 20 | GND | GND |
21 | GPIO09 | JB3 | 22 | GPIO25 | N/C |
23 | GPIO11 | JB4 | 24 | GPIO08 | JA1 |
25 | GND | GND | 26 | GPIO07 | JB1 |
27 | ID EEPROM | N/C | 28 | ID EEPROM | N/C |
29 | GPIO05 | JC9 | 30 | GND | GND |
31 | GPIO06 | JC10 | 32 | GPIO12 | JC8 |
33 | GPIO13 | JB8 | 34 | GND | GND |
35 | GPIO19 | JA7 | 36 | GPIO16 | JC1 |
37 | GPIO26 | JB7 | 38 | GPIO20 | JA9 |
39 | GND | GND | 40 | GPIO21 | JA8 |
Pmod Pinout Table
JA | JB | JC | ||||||
---|---|---|---|---|---|---|---|---|
Pmod Pin Number | 40-Pin GPIO Connector Pin Number | 40-Pin GPIO Connector Pin Name | Pmod Pin Number | 40-pin GPIO Connector Pin Number | 40-Pin GPIO Connector Pin Name | Pmod Pin Number | 40-Pin GPIO Connector Pin Number | 40-Pin GPIO Connector Pin Name |
1 | 24 | SPI0_CE0/GPIO08 | 1 | 26 | SPI0_CE1/GPIO07 | 1 | 36 | CTS0/GPIO16 |
2 | 19 | SPI0_MOSI/GPIO10 | 2 | 19 | SPI0_MOSI/GPIO10 | 2 | 8 | TXD0/GPIO14 |
3 | 21 | SPI0_MISO/GPIO09 | 3 | 21 | SPI0_MISO/GPIO09 | 3 | 10 | RXD0/GPIO15 |
4 | 23 | SPI0_CLK/GPIO11 | 4 | 23 | SPI0_CLK/GPIO11 | 4 | 11 | RTS0/GPIO17 |
7 | 35 | PCM_FS/GPIO19/PWM1 | 7 | 37 | GPIO26 | 7 | 7 | GPCLK0/GPIO04 |
8 | 40 | PCM_DOUT/GPIO21/GPCLK1 | 8 | 33 | PWM1/GPIO13 | 8 | 32 | PWM0/GPIO12 |
9 | 38 | PCM_DIN/GPIO20/GPCLK0 | 9 | 5 | SCL1/GPIO03* | 9 | 29 | GPCLK1/GPIO05 |
10 | 12 | PCM_CLK/GPIO18/PWM0 | 10 | 3 | SDA1/GPIO02* | 10 | 31 | GPCLK2/GPIO06 |
* Pullup resistors for pins SCL1 and SDA1 can be enabled by shorting jumpers JP1 and JP2, respectively.
Pins #5 and #11 of each Pmod port are tied to Ground. Pins #6 and #12 of each Pmod port are tied to the HAT Adapter's 3V3 rail.