piątek, 3 lutego 2017

Microchip – własne pomysły na mikrokontrolery.





Microchip jest jedną z tych firm, które nie uległy powszechnej „armizacji”. Nadal promuje rozwiązania natywne i całkiem dobrze ma się na rynku mikrokontrolerów.

Niemniej jednak ostra konkurencja wymusza na firmie wprowadzanie innowacji do swoich wyrobów, w tym modułów funkcjonalnych do mikrokontrolerów 8-bitowych, które kiedyś były zarezerwowane dla mocniejszych rdzeni.

Napiszmy kilka słów o tym,co nowego można znaleźć w strukturach tych mikrokontrolerów. Bramki logiczne zintegrowane z mikrokontrolerem (CLC) pozwalają na wykonywanie w czasie rzeczywistym operacji, takich jak: iloczyn logiczny (AND), suma logiczna (OR), alternatywa wykluczająca (XOR), zaprzeczenie (NOT), negacja iloczynu (NAND),negacja sumy (NOR) i negacja alternatywy wykluczającej (XNOR). Dzięki możliwości ich konfigurowania, do każdej z wymienionych operacji wystarczy pojedyncza bramka.Ponadto, jest możliwe tworzenie automatów w oparciu o wbudowane przerzutniki D, JK oraz zatrzaski D i SR. Jako wejścia do bramek i przerzutników mogą posłużyć sygnały podawane bezpośrednio na wyprowadzenia obudowy mikrokontrolera lub pochodzące z innych modułów unkcjonalnych. Wyjścia mogą być przekierowane na inne wyprowadzenia lub do pozostałych modułów funkcjonalnych. Co ważne, funkcje logiczne będą realizowane również w czasie, gdy mikrokontroler znajduje się w trybie uśpienia.

Kolejnym ciekawym układem peryferyjnym jest CWG (Complementary Waveform Generator) lub COG (Complementary Output Generator), który służy do generowania dwóch, częściowo uzależnionych od siebie sygnałów w oparciu o jeden wejściowy. Na jego wejście mogą być doprowadzone sygnały z komparatorów, PWM-u, komórek logicznych lub sterowanego oscylatora. Generator CWG analizuje zmiany na wejściu umożliwiając filtrowanie krótkich impulsów oraz pozwala na opóźnianie wyjścia w fazie względem wejścia. Dwa, powiązane ze sobą sygnały wyjściowe pozwalają na bezpośrednie sterowanie pracą wielu złożonych urządzeń, takich jak np. silniki. Ułatwiają tworzenie zasilaczy, systemów oświetlenia LED, ładowarek akumulatorów, układów korekcji współczynnika mocy i wzmacniaczy audio klasy D. Dzięki scaleniu w obudowie mikrokontrolera zmniejszają koszt i fizyczną wielkość gotowego urządzenia oraz ograniczają pobór mocy.

W niektórych zastosowaniach bardzo przydatny może okazać się oscylator sterowany cyfrowo (Numerically ControlledOscillator, NCO), który umożliwia liniowe regulowanie częstotliwości generowanego przebiegu. Sygnał wyjściowy z NCO jest tworzony z 20-bitową rozdzielczością w oparciu o 16-megahercowy sygnał zegarowy. Generowana częstotliwość jest ustawiana za pomocą liczby16-bitowej, co daje skok 15 Hz.

Maksymalna częstotliwość przebiegu wyjściowego to 500 kHz. Co więcej, wyjście może pracować w dwóch trybach: standardowym, gdy czas trwania impulsu wynosi połowę jego okresu (tryb FDC) oraz z regulowanym współczynnikiem wypełnienia (tryb PFM).

Układ PSMC (Programmable Switch Mode Controller) to zaawansowany sterownik umożliwiający generowanie sygnałów w oparciu o różne wejścia zegarowe (wejście zewnętrzne, systemowe lub niezależny zegar 64 MHz) i różne sygnały sterujące pochodzące z komparatorów i lub doprowadzone do mikrokontrolera z innych obwodów. Pozwala on na generowanie do 6 oddzielnych sygnałów PWM lub do 3 podwójnych, komplementarnych, z bramkowanymi wyjściami. Rozdzielczość sterowania PWM to 16 bitów, a dostępne tryby pracy wyjść umożliwiają sterowanie różnymi typami silników. Moduł PSMC znajdzie też zastosowanie w zasilaczach, przetwornicach, układach PFC, systemach sterowania oświetleniem, napędach i aplikacjach z czujnikami.Upraszcza generowanie szybkich, precyzyjnie sterowanych sygnałów PWM. 


Prawie każdy z mikrokontrolerów wyposażony w przetwornik A/C ma też wbudowany czujnik temperatury. Jego wskazania mieszczą się w zakresie od –40°C do +85°C, co pozwala na łatwy pomiar temperatury w aplikacji, bez konieczności stosowania dodatkowych komponentów zewnętrznych. Jest przydatny w takich aplikacjach, jak telefony komórkowe, urządzenia o dużej mocy, konsumencki sprzęt domowy i wielu innych.Ułatwia implementację funkcji zabezpieczania urządzeń przed przegrzaniem.

W wielu aplikacjach przyda się generator modulowany cyfrowo. Blok ten umożliwia modulowanie częstotliwości nośnej za pomocą strumienia danych. Może nim być sygnał z wyprowadzenia układu, zegar odniesienia, przebieg PWM, sygnał UART/SPI/I2C, bit rejestru lub wyjście wbudowanego komparatora. Ułatwia to tworzenie nadajników IrDA oraz przygotowywanie danych do transmisji ASK, FSK, PSK.

Kolejną innowacją jest bramkowany timer, który służy do pomiaru długości impulsów wejściowych. Odliczanie może być rozpoczęte lub wstrzymane za pomocą dowolnego sygnału, którym może być wyjście komparatora, Timer 0 lub wyprowadzenie T1G mikrokontrolera. 16-bitowy licznik Timera 1 może być taktowany przebiegiem z wbudowanego oscylatora (opcjonalnie 4-krotnie spowolnionego) lub oddzielnym z Timera 1. Rozpoczęcie i zakończenie pomiaru może być uruchamiane w oparciu o zbocze opadające lub narastające monitorowanego sygnału. Po zakończeniu pomiaru timer wyzwala przerwanie. Bramkowany timer nie wymaga do działania dodatkowych komponentów i ułatwia dekodowanie sygnału PWM oraz pomiary czasu i częstotliwości impulsów.

W strukturę nowych układów wbudowano też rejestr typu „zatrzask”. Może on być sterowany sygnałem z wbudowanego komparatora, programowalnego zegara, pochodzącym spoza mikrokontrolera lub za pomocą kodu programu. Jego wyjście może być wyprowadzone na zewnątrz lub dołączone wewnątrz mikrokontrolera do któregoś z modułów funkcjonalnych. W praktyce i we współpracy z komparatorem ten zatrzask pozwala na wykonanie wszystkiego, co dało się wykonać w oparciu o popularny timer 555 – astabilnych i bistabilnych generatorów sygnałów bez potrzeby stosowania wielu dodatkowych podzespołów. Może znaleźć zastosowanie do budowy modulatora ASK, budowy ściemniaczy, komparatorów fazy i generatorów dźwięków lub generatorów PWM. Uwaga – funkcja zatrzasku SR jest zaimplementowana również w omówionym na początku artykułu bloku konfigurowalnych komórek logicznych CLC.

Dodatkowe bloki peryferyjne sprawiają, że nawet, jeśli do aplikacji zostanie wybrany tani mikrokontroler 8-bitowy o niedużej wydajności, to i tak za jego pomocą można zrealizować zaawansowane funkcje sterowania. Co więcej, zwykle omawiane moduły funkcjonalne nie będą wymagały dodatkowych komponentów, więc ich zastosowanie upraszcza urządzenie, zmniejsza wymagania odnośnie do wielkości płytki drukowanej oraz podnosi niezawodność rozwiązania.






Prawdziwą trudność stanowi zaprezentowanie przeglądu mikrokontrolerów 16-bitowych. Ich wybór w ofecie Microchipa jest bardzo duży. Pełna lista obejmuje ponad 360 pozycji i składają się na nią następujące rodziny mikrokontrolerów: dsPIC30, dsPIC33i PIC24. Są one dostępne i doskonalone od około 10 lat. W związku z ogromną liczbą układów poprzestaniemy na ich omówieniu,nie będziemy wymieniali ich w tabeli. Osoby zainteresowane ich przeglądem odsyłamy do strony internetowej, której adres podano na końcu artykułu.

Mikrokontrolery dsPIC33 łączą cechy klasycznych mikrokontrolerów oraz prostszych procesorów DSP. Rodzinę układów dsPIC30 zoptymalizowano pod kątem wykorzystania w układach czujnikowych, w systemach zasilania, sterowania napędami elektrycznymi, a także w celu powiększenia grona uniwersalnych mikrokontrolerów przeznaczonych do użycia w typowych aplikacjach. Układy dsPIC33 są w znacznym stopniu zgodne programowo i pod względem rozmieszczenia wyprowadzeń z dsPIC33. Najważniejsze z punktu widzenia użytkownika będą jednak różnice pomiędzy tymi rodzinami, ponieważ to one będą predysponowały mikrokontroler do danej aplikacji.

W mikrokontrolerach dsPIC33 zwiększono prędkość wykonywania programu do 70 MIPS, dostępną pamięć Flash do 256 kB i RAM do 30 kB. Zwiększono również liczbę timerów 16-bitwych do 9, a 32-bitowych do 4. Również liczba wyprowadzeń I/O wzrosła do 85 (ich liczba zależy od wersji układu).

Jednym z elementów wpływających na wzrost wydajności jest kontroler DMA pośredniczący w transmisji danych pomiędzy pamięcią SRAM a większością modułów peryferyjnych. Ponadto, istotną modyfikacją jest zwiększenie maksymalnej częstotliwości próbkowania 10-bitowego przetwornika A/C do 1,1 MSa/s oraz maksymalnej liczby jego kanałów pomiarowych do 32. Mikrokontrolery dsPIC33 zaprojektowano w taki sposób, że mogą one być stosowane wymiennie z odpowiednikami z rodziny PIC24.

Rodzina mikrokontrolerów PIC24 była pierwszym krokiem Microchipa w stronę mikrokontrolerów 16-bitowych. Jednym z założeń podczas ich projektowania było zapewnienie kompatybilności – także pod względem wyprowadzeń – z procesorami dsPIC33 i niektórymi ze starszej rodziny PIC18. Dzięki temu konstruktorzy mogą łatwo migrować pomiędzy różnymi platformami, o różnej wydajności i procesorami DSC.

Rodzina PIC24 składa się z dwóch grup układów: PIC24F o prędkości dochodzącej do 32 MIPS oraz PIC24H o prędkości do 40 MIPS. Ponadto, układy PIC24H wyposażono w DMA, który służy do szybkiej transmisji danych pomiędzy pamięcią,a większością modułów funkcjonalnych.

Charakterystycznym elementem wyposażenia jest także 12-bitowy przetwornik A/C o maksymalnej częstotliwości próbkowania 500 kHz (w odróżnieniu od wersji „F” wyposażonej w równie szybki, ale 10-bitowy przetwornik A/C).

W strukturę mikrokontrolera wbudowano 16-pozycyjny potencjometr cyfrowy sterowany za pomocą rejestru 4-bitowego. Dzięki temu można precyzyjnie ustalić i zmieniać dynamicznie wartość napięcia odniesienia za pomocą programu.

Standardowym wyposażeniem mikrokontrolerów PIC24 jest zaawansowany interfejs do komunikacji szeregowej, przystosowany do bezpośredniej współpracy z interfejsami RS232, RS485, LIN 1.2 i IrDA (oczywiście za pomocą odpowiedniego interfejsu fizyczne go). Wyposażono go między innymi w automatyczny detektor prędkości transmisji oraz system automatycznego testowania loopback. Bezpieczeństwo komunikacji szeregowej można zwiększyć wykorzystując sprzętowy generator CRC, który dzięki wydzieleniu rejestrów dostępowych można wykorzystać do obliczania CRC dowolnych grup danych.

Standardowym wyposażeniem wszystkich mikrokontrolerów z rodziny PIC24 są interfejsy SPI i I2C, a wybrane układy mają także wbudowane sprzętowe interfejsy CAN (lub Enhanced CAN).

Wyposażeniem, które z pewnością ucieszy wielu projektantów jest kompletny zegar czasu rzeczywistego z kalendarzem i rejestrami alarmu. Wykrycie ustawionego czasu alarmu może być sygnalizowane przerwaniem oraz zmianą stanu jednej z linii I/O. Znika więc występujący w wielu aplikacjach problem odmierzania czasu oraz programowego realizowania kalendarza. Mikrokontroler można łatwo skonfigurować do pracy w roli zaawansowanego budzika i to w zdecydowanej części w oparciu o wbudowany w niego sprzęt, nie angażując mocy CPU.

Rdzeń mikrokontrolerów wyposażono w bloki mnożenia sprzętowego (także zmiennoprzecinkowego) oraz dzielenia (32:16 bitów), a liniowa przestrzeń adresowa pamięci programu obejmuje aż 12 MB. Dostęp do pamięci danych ułatwiają dwa generatory adresów – osobne dla odczytu i zapisu danych. Maksymalna, liniowa przestrzeń adresowa dla pamięci danych wynosi 64 kB. Pamięć programu Flash można programować za pomocą interfejsu ICSP lub JTAG. Ten drugi można wykorzystać także do testowania krawędziowego, natomiast do wspomagania uruchamiania systemu z mikrokontrolerem PIC24 służy specjalny, dwuliniowy interfejs ICE. Najpopularniejszymi dedykowanymi programatorami od producenta są PICkit2 i 3.

Microchip zrezygnował (jak na razie) z podążania modnym kursem „na ARM–y” i forsuje własne, przemyślane rozwiązania.

Jak pokazują dotychczasowe doświadczenia, od samego początku istnienia firmy inżynierowie firmy Microchip potrafią przewidzieć zapotrzebowanie rynku, czego przykładem jest choćby sukces rodziny procesorów dsPIC.

Jednym z elementów sukcesu, kontynuowanym także w odniesieniu do prezentowanych nowości, jest szanowanie nawyków projektantów korzystających z mikrokontrolerów Microchipa, dlatego właśnie zadbano o ich wzajemną kompatybilność, a także o to, żeby projektanci mogli korzystać z dotychczas stosowanych narzędzi, jak choćby ze środowiska MPLab.


autor : Jacek B.

Mikrokontrolery PIC 16 bitowe zestawienie:

http://ww1.microchip.com/downloads/en/DeviceDoc/30010109C.pdf




2 komentarze:

  1. Ciekawe artykuły :)

    OdpowiedzUsuń
  2. Dziękuję, dopiero zaczynam kolegowanie się z PIC-ami, ale już na początku znajomości widzę, że to perełki. Obecnie czekam na dostawę od Microchipa procków 16-bitowych PIC24EP512MC202 i dsPIC33EP128MC502.Na razie działam na PIC24HJ128GP502 zakupionym na ebay-u bo to jeszcze wielka nie odkryta księga :)Ale radość z odkrywania nieznanego lądu jest ogromna. Pozdrawiam

    OdpowiedzUsuń