Digilent Pmod i STM32 (cz. 1) – PmodLED i PmodALS
Standard interfejsów peryferyjnych firmy Digilent o nazwie Pmod zdobywa coraz szersze rynki, a złącza z nim zgodne można spotkać na coraz większej liczbie płytek ewaluacyjnych z mikrokontrolerami, mikroprocesorami, a także układami FPGA. W tym cyklu artykułów przedstawimy biblioteki napisane w języku C dla środowiska Atollic TrueSTUDIO, które spełniają rolę „driverów” ułatwiających korzystanie z kilkunastu typów modułów Pmod we współpracy z mikrokontrolerami STM32. Biblioteki były testowane na płytce KAmeleon (www.kameleonboard.org) z użyciem bibliotek STM32Cube_FW_L4.
Pmod (Peripheral Module) jest standardem złącza zaproponowanym przez firmę Digilent Inc. do komunikacji z układami peryferyjnymi. Występuje on w kilku odmianach zawierających linie GPIO i takie interfejsy komunikacyjne jak SPI, I2C, UART. W niniejszym artykule, będącym początkiem serii dotyczącej przykładów użycia modułów Pmod Digilent wraz z zestawem uruchomieniowym KAmeleon, zostaną przedstawione wybrane konfiguracje złącza, PmodLED wykorzystujący linie GPIO do sterowania diodami, a także PmodALS – moduł z czujnikiem natężenia oświetlenia.
Standard Pmod
Pmod, stworzony przez firmę Digilent, jest standardem opisującym złącza dla urządzeń peryferyjnych. Występują one w kilku wersjach różniących się liczbą linii sygnałowych i zasilania, a także typem interfejsu użytym do komunikacji. Wybrane typy złączy przedstawiono w tabelach 1-8. Rola sygnałów oznaczonych jako N/S jest zależna od konkretnego modułu. Sygnały te można wykorzystać dodatkowo jako linie sterujące lub źródła przerwań. Ponadto niektóre z sygnałów, np. CTS i RTS, mogą pełnić inne funkcje, opisane w dokumentacjach poszczególnych modułów. W przypadku interfejsu UART wszystkie sygnały oznaczone są z punktu widzenia mikrokontrolera – TX oznacza transmisję danych do modułu, a RX odbiór danych przez mikrokontroler.
Rysunek 1. Najpopularniejsze typy złącz Pmod
Typy złącza Pmod
Tabela 1. Interfejs I2C (6 pinów)
Sygnał | Numer pinu |
N/S | 1 |
N/S | 2 |
SCL | 3 |
SDA | 4 |
GND | 5 |
VCC | 6 |
Tabela 2. Interfejs I2C (8 pinów)
Sygnał | Numer pinu | Sygnał | |
SCL | 1 | 5 | SCL |
SDA | 2 | 6 | SDA |
GND | 3 | 7 | GND |
VCC | 4 | 8 | VCC |
Tabela 3. Interfejs SPI (6 pinów) – Typ 2
Sygnał | Numer pinu |
SS | 1 |
MOSI | 2 |
MISO | 3 |
SCK | 4 |
GND | 5 |
VCC | 6 |
Tabela 4. Interfejs SPI (12 pinów) – Typ 2A
Sygnał | Numer pinu | Sygnał | |
SS | 1 | 7 | INT |
MOSI | 2 | 8 | RESET |
MISO | 3 | 9 | N/S |
SCK | 4 | 10 | N/S |
GND | 5 | 11 | GND |
VCC | 6 | 12 | VCC |
Tabela 5: Interfejs UART (6 pinów) – Typ 4
Sygnał | Numer pinu |
CTS | 1 |
TXD | 2 |
RXD | 3 |
RTS | 4 |
GND | 5 |
VCC | 6 |
Tabela 6: Interfejs UART (12 pinów) – Typ 4A
Sygnał | Numer pinu | Sygnał | |
CTS | 1 | 7 | INT |
TXD | 2 | 8 | RESET |
RXD | 3 | 9 | N/S |
RTS | 4 | 10 | N/S |
GND | 5 | 11 | GND |
VCC | 6 | 12 | VCC |
Tabela 7: Interfejs GPIO (6 pinów) – Typ 1
Sygnał | Numer pinu |
IO1 | 1 |
IO2 | 2 |
IO3 | 3 |
IO4 | 4 |
GND | 5 |
VCC | 6 |
Tabela 8: Interfejs GPIO (12 pinów)
Sygnał | Numer pinu | Sygnał | |
IO1 | 1 | 7 | IO5 |
IO2 | 2 | 8 | IO6 |
IO3 | 3 | 9 | IO7 |
IO4 | 4 | 10 | IO8 |
GND | 5 | 11 | GND |
VCC | 6 | 12 | VCC |
Złącze Pmod zaimplementowane w zestawie KAmeleon
W zestawie uruchomieniowym KAmeleon znajduje się złącze Pmod z interfejsem SPI, a także sygnałami INT i Reset. Konfiguracja ta odpowiada Tabeli 4. bez połączonych pinów N/S (9 i 10). Listę wyprowadzeń mikrokontrolera podłączonych do złącza Pmod-SPI przedstawiono w Tabeli 9.
Tabela 9: Złącze Pmod-SPI zestawu KAmeleon
Sygnał | Numer pinu | Sygnał | |
SS (PB0) | 1 | 7 | INT (PE12) |
MOSI (PA7) | 2 | 8 | RESET (PE13) |
MISO (PE14) | 3 | 9 | – |
SCK (PA1) | 4 | 10 | – |
GND | 5 | 11 | GND |
VCC | 6 | 12 | VCC |
Rysunek 2. Złącze Pmod zestawu KAmeleon, który jest platformą testową dla bibliotek opisanych w artykule