Zestaw startowy Microchip PIC16F18446 Sensor Board – demonstracja możliwości płytki, część 1

Microchip konsekwentnie promuje małe 8 bitowe mikrokontrolery z prostym rdzeniem RISC pamiętającym lata 80-te ubiegłego wieku. Ten rdzeń lekko zmodernizowano, ale nie on stanowi o atrakcyjności małych układów PIC. Nowe możliwości i właściwości mikrokontrolerów z niezależnymi peryferiami pokażemy na przykładzie układu PIC16F18446 i płytki demonstracyjnej PIC16F18446 Sensor Board.

Mikrokontroler PIC16F18446

PIC16F18446 ma wbudowany ulepszony rdzeń z rodziny mid-range z 48 instrukcjami i 16-poziomowym stosem. Jak na 8 bitowca dysponuje sporą pamięcią programu Flash o pojemności 28kB i pamięci RAM o pojemności 2kB. Zabudowano tu typowe interfejsy komunikacyjne UART, 2xSPI i 2xI2C, liczniki, przetwornik ADC, standardowe układy taktowania itp.

Jednym z najciekawszych układów peryferyjnych jest przetwornik analogowo-cyfrowy z blokiem obliczeń.

Rysunek 1. Schemat blokowy modułu ADC z modułem obliczeń

Schemat blokowy został pokazany na rysunku 1. Przetwornik ma wbudowane własne źródła napięcia referencyjnego i programowalny generator taktujący konwersją. Ale najciekawsze są tryby pracy z danymi wyjściowymi konwersji:

  • Tryb podstawowy – przetwornik pracuje bez żadnych obliczeń na danych wyjściowych
  • Tryb akumulacji – po każdej konwersji jej wynik zapisany w rejestrze ACC jest gromadzony (dodawany) do 16-bitowego rejestru ADACC (dla konwersji 10-bitowej), lub 18-bitowego (dla konwersji 12-bitowej). Rejestr ADCNT zlicza ile próbek zostało zgromadzonych. ADACC przepełni się zależnie od wartości ACC po kilku, a maksymalnie po 64 próbkach. Wystąpienie przepełnienia jest sygnalizowane ustawieniem się bitu ADAOV. Wartość akumulowana może być przesuwana w prawo o wartość zapisaną w rejestrze ADCRS i zapisywana do rejestru ADFLT
  • Tryb uśredniania – podobny do trybu akumulacji. Jednak gdy liczba próbek zliczana w ADCNT jest równa wartości zapisanej w rejestrze ADRPT, to wartość z rejestru ADFLT staje się średnią wartością sygnału wejściowego z ADCNT próbek. Średnia wartość jest poprawnie obliczana dla ADRPT równe ADRPT=2^ADCRS
  • Filtrowanie dolnoprzepustowe – charakterystyka tłumienia filtra zależy oczywiście od częstotliwości próbkowania. Maksymalna częstotliwość sygnału próbkowanego powinna być równa połowie częstotliwości próbkowania (z twierdzenia Nyquista). Rząd filtru jest programowany w zakresie od 1 do 6 (rejestr ADCRS). Na rysunku 2 pokazano przykład charakterystyk filtrów różnych rzędów dla próbkowania z częstotliwością 900Hz

Rysunek 2. Przykładowe charakterystyki filtrowania dla próbkowania 960Hz

 

Rysunek 3. Efekt działania filtra dolnoprzepustowego

 

Oprócz przetwornika zabudowano bardzo ciekawe, ale bardziej już znane interfejsy typu Core Independent:

  • Moduł PWM o rozdzielczości 10 bitów z wyrównaniem do zbocza (edge aligned output)
  • Generator sygnału komplementarnego CWG (Complementary Waveform Generator) z funkcją dodawania czasów rising edge deadband i falling Edge deadband (rysunek 4). Źródłem sygnału jest wyjście generatora PWM

Rysunek 4. Moduł CWG

  • Cyfrowo sterowany oscylator NCO – precyzyjny oscylator z dokładną regulacją częstotliwości

Rysunek 5. Moduł NCO

  • Moduł DSM (Digital Signal Modulator) modulujący sygnał nośnej (carrier) sygnałem danych – przykład działania DSM został pokazany na rysunku 6

Rysunek 6. Moduł DSM

  • Moduł Signal Mesurement Timer. To 24-bitowy licznik z zaawansowaną logiką taktowania i bramkowania sygnału mierzonego. Może być skonfigurowany do mierzenia parametrów sygnałów cyfrowych, takich jak długość impulsów, częstotliwość, wypełnienie sygnału PWM i czas pomiędzy dwoma zboczami dwu sygnałów

Rysunek 7. Moduł SMT

  • Moduł Hardware Limit Timer HLT jest przeznaczony do wykrywania periodyczności zdarzeń, na przykład z czujnika obrotów wału silnika. Może wykrywać przeciążenia (spadek obrotów wału poniżej określonej wartości), lub zatrzymanie wału silnika. Wykrycie stanów awaryjnych może być sygnałem dla generatora PWM, który zatrzyma sterowanie silnikiem

Rysunek 8. Przykład wykorzystania modułu HLT

  • Moduł Zero Cross Detect. Wykrywa przejście sygnału AC przez zero (potencjał masy). Może być użyty do sterowania triakiem z ograniczonymi zakłóceniami EMI (sterowanie w zerze). Może również mierzyć okres sygnału AC

Rysunek 9. Przykład wykorzystania modułu Zero Cross Detect

O autorze

Absolwent Wydziału Elektroniki Politechniki Wrocławskiej, współpracownik miesięcznika Elektronika Praktyczna, autor książek o mikrokontrolerach Microchip i wyświetlaczach graficznych, wydanych nakładem Wydawnictwa BTC. Zawodowo zajmuje się projektowaniem zaawansowanych systemów mikroprocesorowych.