piątek, 27 lipca 2018

PIC32MM i rejestr ANSELx - błąd Microchipa

Jeśli w PIC32MM w obudowie 48pin zapragniemy sterować cyfrowo pinami RB13,RB14,RB15 lub RA6 to możemy zderzyć się z problemem konfiguracyjnym dla tych pinów. Analizując informację z datasheet dla PIC32MM dochodzimy do wniosku, że w rejestrze ANSELx te bity nie są obsługiwane. Jedna z błędnych informacji brzmi "The ANSB<13:11> and ANSB6 bits are not available on 48, 36 or 28-pin devices.. Niestety jest to błędna informacja w części dotyczącej ANSB<13:11> i bitu nr 13, która może przysporzyć zaczynającym przygodę z PIC32MM bólu głowy. Przyjrzyjmy się zatem istocie problemu i jak sobie z nim poradzić.

środa, 18 lipca 2018

ILI9163 = ST7735 kolorowy wyświetlacz LCD - biblioteka dla PIC32MM.

 Tym razem bierzemy na widelec kolorowy wyświetlacz LCD o rozdzielczości 128x160 i przekątnej ekranu 1,8" oparty na sterowniku ILI9163 Tajwańskiej firmy ILITEK. Inspiracją do zainteresowania się tym wyświetlaczem  była prośba czytelnika bloga o pomoc w konwersji biblioteki dla 32-bitowego MCU PIC32MM firmy Microchip. Wyświetlacz do testów zakupiłem w  cenie ok 25 zł . Trudno się dopatrzyć producenta , ktoś się boi sygnować gotowy produkt swoim logo z tego względu do poważniejszych projektów taki produkt raczej nie ale dla hobbysty czemu nie . Wygląda schludnie zobaczymy jak sobie radzi z wyświetlaniem.

niedziela, 8 lipca 2018

dsPIC33CH Dual Core Family - nowa rodzina dwurdzeniowych MCU w 16 bitach.

Microchip nie przestaje mnie zaskakiwać. Ledwo co rozpakowałem się z wyprawy pod namiot a tutaj ogromna rewolucja w świecie 16-bitów. Do sprzedaży trafiła unikatowa konstrukcja MCU 16-bitowego z dwoma rdzeniami na pokładzie w architekturze Master-Slave. Dwa niezależne rdzenie na jednym chipie potrafiące ze sobą współpracować i pędzone 200 i 180 MHz zegarem !!!!. Co ciekawe jest to pierwszy MCU z serii 16-bitowej wyposażone w przemysłowy standard CAN-FD. Powiem nawet , że jestem trochę oszołomiony tym news-em. Prawdopodobnie musiała powstać wśród dużych klientów Microchipa , potrzeba zaistnienia takiej konstrukcji.

sobota, 30 czerwca 2018

Chwila przerwy na wyprawę pod namiot.....kierunek Szczytno i okolice.

Ponieważ nie zaplanowałem sobie w tym roku urlopu. Dlatego jestem zmuszony improwizować na pełnym spontanie. W biegu podjęta decyzja aby wypocząć jak najbliżej natury czyli pod gołą chmurką. Namiot zakupiony dokładnie ten co na zdjęciu Coleman Darwin 4+ lubię przestrzeń dlatego nie oszczędzam na niej :) . Kilka niezbędnych do życia gadżetów takich jak mata samopompująca, jakiś czajnik z gwizdkiem, worek świeżej lawendy przeciw komarom etc. W sumie co do sprzętu to wydatek jednorazowy . Jako miejsce lotnej dyslokacji wybrałem okolice Szczytna. Szkoła Policyjna w pobliżu , więc założyłem , że będzie bezpiecznie :)

poniedziałek, 11 czerwca 2018

SI4432 moduł RF firmy Silicon Labs - zajęcia praktyczne.


Wreszcie znalazłem chwilę czasu aby przetestować moduły radiowe RF oparte na chipsecie SI4432 firmy Silicon Labs. Pomimo , że chipset ten nie jest już rekomendowany przez producenta i zaleca się go zastąpić nowszymi wersjami takimi jak np SI446x to jest on nadal bardzo łatwo dostępny i tani. Kompletne moduły można nabyć poniżej 2 USD. Warto zauważyć , że inny popularny u nas moduł radiowy RFM22 firmy Hoperf został zbudowany na bazie  SI4432. Opinie o modułach SI4432 w necie są bardzo pozytywne, jako podstawowe zalety wymienia się niezawodność transmisji i duże zasięgi. No ale najlepszą metodą zweryfikowania opinii innych osób jest wyrobienie jej sobie samemu, najlepiej przez poznanie modułu w praktyce. Co niniejszym czynię.

czwartek, 31 maja 2018

PIC32MM - SPI + DMA zajęcia praktyczne.


Poprzednia randka z SPI i 32-bitowym mikrokontrolerem firmy Microchip PIC32MM została zrealizowana przy wykorzystaniu funkcji wygenerowanych przez wtyczkę do MPLABX-IDE , MCC (MPLAB Code Configuration).  Jakość kodu generowanego przez tę wtyczkę bije na głowę podobne rozwiązania u innych producentów. Wiem, że zaczynam się powtarzać :) ale pracę programistów Microchipa należy docenić, ponieważ dzięki ich trudowi , życie hobbysty jest prostsze :). W artykule pokażę, jak w prosty sposób użyć DMA do transferu danych po SPI oraz inne przydatne rzeczy takie jak np. konfiguracja pinów do współpracy z peryferium sprzętowym.

wtorek, 29 maja 2018

Wyświetlacz OLED 1.3" na sterowniku SH1106 - biblioteka dla PIC32MM

Ponieważ tak się złożyło, że jeden z czytelników mojego bloga, który chce poznać w praktyce PIC32MM, zwrócił się do mnie z prośbą o pomoc w pozyskaniu biblioteki do obsługi wyświetlacza OLED 1.3 opartego na sterowniku SH1106. Biblioteka taka powstała na bazie biblioteki zamieszczonej w zasobach LibStock.
Ja tylko zrobiłem pełną konwersję tej biblioteki do współpracy z 32-bitowym mikrokontrolerem PIC32MM firmy Microchip.
Co ciekawe działanie biblioteki sprawdzane było po stronie czytelnika bo ja takiego wyświetlacza akurat nie posiadałem :) Dzięki temu zadaniu poznałem potęgę GitHuba i jego superancką implementację w MPLABX-IDE. Upewniło mnie to w przekonaniu , że środowisko Microchipa jest bardzo wygodne i przyjemnie się w nim programuje.  Wyświetlacz jak wyświetlacz jest OLED-owy i jest chiński ,co nie gwarantuje , że w kolejnych partiach rzucanych na rynek nie zmieni się np. ilość pinów czy ich funkcjonalność. Nie mniej podstawową zaletą jest tutaj cena i jak na razie łatwa dostępność.

wtorek, 22 maja 2018

MPLABX-IDE współpraca ze zdalnym repozytorium na GitHub.

W tym krótkim artykule zapoznamy się z możliwością współpracy ze zdalnym repozytorium na GitHub-ie. Funkcjonalność taka jest zaimplementowana w MPLAB-X IDE czyli w podstawowym środowisku do programowania MCU PIC firmy Microchip. Nie widzę powodu abyśmy z tej funkcjonalności nie skorzystali a w zasadzie z tego dobrodziejstwa.
Tym bardziej , że jest to bardzo fajne narzędzie i sympatycznie się z niego korzysta. Co to jest GitHub ? w sumie to już nawet nie wypada nie wiedzieć :)
W artykule pokażę jak  podpiąć dowolny projekt w MPLABX-IDE do zdalnego repozytorium, jak zatwierdzać zmiany i wysyłać je. Czyli takie podstawowe rzeczy na dobry początek.

sobota, 19 maja 2018

PIC32MM - SPI zajęcia praktyczne

W tym artykule spróbujemy wykorzystać nabytą wiedzę o SPI w PIC32MM. W szczególności wykorzystamy wygenerowane przez MCC funkcje do obsługi SPI, o których wspominałem w artykule poprzednim. Naszym celem będzie wymiana danych pomiędzy dwoma MCU PIC32MM. Jeden będzie skonfigurowany jako Master a drugi jako Slave czyli klasyczny układ .
Aby zajęcia sprawnie przeprowadzić wykorzystam dwie płytki developerskie PIC32MM mojego autorstwa.  Praktyczna wiedza o SPI przyda nam się w następnym zagadnieniu. Zaczynamy zatem przedstawienie :)

środa, 16 maja 2018

PIC32MM - SPI , szybka konfiguracja za pomocą MCC

W MCU PIC32MM mamy do dyspozycji 3 x SPI, które mają trzy wyróżniające cechy : powiązany interfejs I2S co umożliwa np. przesyłanie muzyki z kodowaniem PCM, zmienną szerokość danych 8,16 i 32 bity oraz bufory FIFO niezależne dla RX i TX. Szybkość do 25 Mbps czyli szybko.W celu zapoznania się z konfiguracją SPI posłużymy się wtyczką do MPLABX-IDE - MCC (MPLAB Code Configurator). Microchip może być dumny z tego narzędzia bo jakość i opis generowanego kodu deklasuje podobne rozwiązania stosowane  u innych producentów MCU.

czwartek, 10 maja 2018

Mikrokontrolery PIC - kilka przydatnych makr oraz jak po swojemu zbudować dostęp do dowolnego rejestru MCU.

Pomimo , że rejestry w mikrokontrolerach PIC są bardzo dobrze opisane przyjaznymi strukturami co znacznie ułatwia programowanie ich , to czasami jednak zachodzi potrzeba zrobienia czegoś po swojemu .....

niedziela, 6 maja 2018

MCP9808 - cyfrowy czujnik temperatury, zajęcia praktyczne .

Biblioteka I2C do PIC32MM przygotowana. Jesteśmy zatem gotowi do poznania od strony praktycznej milutkiego cyfrowego czujnika temperatury MCP9808.
Czujnik ten ma sporo funkcjonalności jak na takie maleństwo i jest bardzo prosty w implementacji. Nie sprawił mi żadnych problemów przy uruchomieniu. Wszystko zaskoczyło od przysłowiowego pierwszego strzała. W sumie sam byłem zdziwiony , że tak łatwo poszło. Do uruchomienia czujnika MCP9808 posłużyłem się moją autorską płytką developerską dla PIC32MM.
Czujnik został osadzony na mini płytce-rozszerzeniu wpiętej w złącze PICbus, w które jest wyposażona moja płytka developerska . Mamy zatem kompletny modularny system do badania różnych komponentów z udziałem uroczego 32-bitowego MCU PIC32MM firmy Microchip.

poniedziałek, 30 kwietnia 2018

PIC32MM 32bity od Microchipa - I2C budujemy bibliotekę.

Część sprzętową czyli budowę własnej płytki developerskiej dla PIC32MM mam za sobą. Płytka umożliwia mi w mega wygodny sposób podjęcie wyzwania poznania tego słodkiego MCU 32 bitowego. Ponieważ w kolejce czeka również do rozpoznania czujnik temperatury Microchipa MCP9808 dlatego potrzebujemy biblioteki I2C do zagadania z tym czujnikiem. Z przyjemnością zabieram się do roboty. Ostatni raz z I2C spotkałem się przy okazji poznawania serii 16 bitowej MCU PIC24HJ. Poczyniłem wówczas artykuł o I2C ,przytoczyłem w nim trochę niezbyt ciężkiej teorii o I2C.

środa, 25 kwietnia 2018

ATMEGA4809 - 8-bitów w popularnym opakowaniu od Microchipa.

Microchip śmiało rozwija swoją ofertę MCU 8 bitowych w oparciu o wydajne rdzenie przejętej firmy ATMEL. Tym razem mamy serię wypuszczoną w jednym formacie obudowy 48-pin. Swoją drogą jest to mój ulubiony format i jak widzę dookoła u różnych producentów bardzo popularny ostatnio. Przyjrzyjmy się zatem co nowe 8-bitowce mają na pokładzie .

czwartek, 19 kwietnia 2018

MCP9808 - cyfrowy czujnik temperatury od Microchipa

Firma Microchipa ma w swoim portfolio kilka sprytnych czujników temperatury. Mnie zainteresował model MCP9808. Jest to swoistego rodzaju kombajn do "zarządzania" temperaturą.Mamy tutaj rozbudowane opcje eventów sygnalizujących różne zdarzenia takie jak np krytyczne poziomy temperatury czy możliwość definiowania okna temperaturowego (histerezy) etc.
Czujnik dostępny jest w bardzo mikraśnych obudowach typu MSOP i DFN. Jest tak mały, że praktycznie niezauważalny :)