Digilent Pmod i STM32 (cz. 6) – PmodACL2, PmodDPOT i PmodSSD
PmodDPOT
Drugim z opisywanych modułów jest PmodDPOT z potencjometrem cyfrowym AD5160 od Analog Devices. Potencjometr posiada 256 pozycji, umożliwiających podział całkowitej rezystancji widzianej pomiędzy portami A i B (RAB). Całkowita rezystancja wynosi w sumie 10 kΩ. Zależność pomiędzy ustawieniem ślizgacza, a rezystancją pomiędzy między portami W i B (RWB) jest zgodna z równaniem:
w której D jest konfigurowaną pozycją ślizgacza w zakresie od 0 do 255, natomiast RW jest jego rezystancją wynoszącą 60 Ω. Analogicznie przedstawia się zależność dla portów W i A:
Interfejs SPI
Do komunikacji z układem służy interfejs SPI, za pomocą którego można konfigurować pozycję ślizgacza. Odbywa się to przez wysłanie pojedynczego bajtu, zawierającego żądaną pozycję, która jest jednocześnie wartością D w przedstawionych wcześniej zależnościach.
Moduł posiada sześciopinowe złącze SPI typu 2, które może zostać podłączone do gniazda Pmod-SPI zestawu KAmeleon, tak jak na fotografii 5. Lista wyprowadzeń mikrokontrolera połączonych z pinami modułu PmodDPOT została przedstawiona w tabeli 2. Komunikacja odbywa się tylko w jedną stronę: od mikrokontrolera do modułu.
Fotografia 5. Moduł PmodDPOT podłączony do zestawu KAmeleon
Tabela 2. Sygnały PmodDPOT oraz odpowiadające im piny mikrokontrolera; w tabeli pominięto sygnały niepołączone (NC) i linie zasilania występujące na złączu Pmod
| Sygnał | Numer pinu PmodDPOT (J1) | Pin STM32L496ZG (KAmeleon Pmod-SPI) |
| ~CS | 1 | PB0 |
| MOSI | 2 | PA7 |
| SCLK | 4 | PA1 |
Kod przykładu
Kod do obsługi modułu PmodDPOT w prezentowanym przykładzie znajduje się w plikach src/PmodDPOT.c i inc/PmodDPOT.h. Konfiguracja interfejsu SPI, znajdująca się w funkcji PmodDPOT_Config, wygląda analogicznie jak dla opisywanego wcześniej modułu PmodACL2 – tryb 0 z programową kontrolą sygnału ~CS. Piny GPIO są jak zwykle konfigurowane przez funkcję HAL_SPI_MspInit wywoływaną wewnątrz funkcji bibliotecznej HAL_SPI_Init. Ostatnia z funkcji – PmodDPOT_SetValue, jest odpowiedzialna za zmianę ustawienia ślizgacza. Została ona przedstawiona na listingu 8.
Listing 8. Funkcja PmodDPOT_SetValue
void PmodDPOT_SetValue(uint8_t value)
{
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
HAL_SPI_Transmit(&pmodDpotSpi, (uint8_t*)&value, 1, 100);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);
}
Główna pętla programu wykonuje co 100 ms zmianę ustawienia ślizgacza w zakresie od 0 do 255. Można to obserwować przez pomiar rezystancji RWA, lub RWB.



Sześciu na dziesięciu liderów IT stawia na roboty. Tylko czterech jest na to gotowych
Precyzyjny pomiar dużych prądów
Kiedy obudowa staje się częścią projektu elektroniki? 

![https://www.youtube.com/watch?v=XkeyLmtLfxo O konkursie organizowanym przez firmę TRUMPF Huettinger i polskie uczelnie techniczne opowiada Alicja Peresada i prof. Jacek Rąbkowski oraz kilkoro nagrodzonych dyplomantów: mgr inż. Jakub Dobosz, inż. Maja Zielińska, dr inż. Jakub Kołodziej, dr inż Weronika Hryniewska-Guzik i dr inż. Grzegorz Bartyzel. Zapraszamy do obejrzenia filmu! [materiał redakcyjny]](https://mikrokontroler.pl/wp-content/uploads/2026/07/TRUMPF-czolowka.png)



