LinkedIn YouTube Facebook
Szukaj

Newsletter

Proszę czekać.

Dziękujemy za zgłoszenie!

Wstecz
Artykuły

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.

Fotografia 4. Moduł PmodDPOT

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.

Kod programu z plikami projektowymi środowiska Atollic można pobrać w sekcji „Do pobrania”

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.

Moduły PmodACL2, PmodDPOT i PmodSSD a także zestaw KAmeleon oraz wiele innych płytek ewaluacyjnych i modułów rozszerzających można znaleźć w ofercie Kamami.pl