piątek, 14 lutego 2020

PIC18 Q43 - nowa rodzina mikrokontrolerów 8-bitowych firmy Microchip.

Microchip jest obecnie największym na świecie producentem MCU 8- bitowych.  Koniec dla 8-bitów wieszczono już wiele razy na przestrzeni kilku ostatnich lat . Wiele atykułów na ten temat pojawiło się w prasach branżowych. Jak widać jednak na przykładzie Microchipa, klasyka gatunku jest niezniszczalna a nawet widzimy ostatnio renesans konstrukcji 8-bitowych. Wielu producentów zaczyna naśladować Microchipa i powołuje do życia swoje konstrukcje 8-bitowe np. STM8 firmy STM. Microchip wprowadził ostatnio do produkcji nową rodzinę MCU o oznaczeniu PIC18 Q43. Nowe konstrukcje Microchip wysposaża w peryferia niezależne od rdzenia CIP , które umożliwiają sprzętowe wykonywanie zadań poza percepcją rdzenia i przy np. uśpionym rdzeniu.

poniedziałek, 3 lutego 2020

ATSAML10 - Mini Board - Pierwsze uruchomienie płytki.

Moja autorska płytka w wersji mini dla ATSAML10/11 (32-pin) firmy Microchip stała się faktem.  Zdecydowanie szybciej zaprojektujemy i wykonamy płytkę w takim minimalistycznym formacie. Czyli czas od pomysłu do pełnej satysfakcji wyraźnie nam się skraca, niż w przypadku płytek pełnowymiarowych z rozbudowanymi zasobami. Małe cieszy jeszcze bardziej :). Pierwszy test płytki mam za sobą czyli podłączenie do zasilania. Płytka nie wybuchła jest dobrze :). LED zasilający przyjemnie rozświetla mrok. Płytki można użyć jako mini-latarki :). A tak na serio przed pierwszym podaniem zasilania zawsze sprawdzam czy nie mamy zwarcia w punktach zasilania. W artykule pokażę jak przygotować warsztat pracy do programowania płytki i jak zamigać diodą LED znajdującą się na płytce. Zapraszam do przygody z moją filigranową płyteczką.

sobota, 18 stycznia 2020

ATSAME51J19A - wydajny Cortex M4 od Microchipa w super niskiej cenie.

Dotychczas moje dociekania w zakresie MCU skupiały się głównie na tzw półce "low end". Segment MCU "high perfomance" omijałem szerokim łukiem ponieważ w większości przypadków jest on dla hobbystów czyli również dla mnie  przerostem treści nad formą . Nie takie proste jest  wbrew pozorom zagospodarować te megatony mega-herców . Bardziej się podniecamy nimi niż jesteśmy w stanie je wykorzystać. Oczywiście są przypadki kiedy wydajność jest porządana np tam gdzie chcemy użyć stosy komunikacyjne i jednocześnie obsłużyć rozbudowany interfejs graficzny użytkownika a wszystko to spiąć jeszcze za pomocą RTOS-a, który chłonie RAM jak gąbka wodę.  Choć odnośnie interfejsów graficznych to jestem zwolennikiem użycia mikroprocesora i linuxa oraz oprogramowania np wxPython bo w tym przypadku zrealizujemy interfejs o wiele taniej i szybciej niż na MCU i co istotne kod takiego interfejsu będzie tańszy w utrzymaniu niż wersje pisane nawet w  dedykowanym oprogramowaniu do tworzenia interfejsów dla MCU. Wracając do meritum czyli segmentu MCU "high perfomance", chciałem temu segmentowi przyjrzeć się przez pryzmat właśnie RTOS-a i poczuć w uszach ten powiew mocy :). Moc jest z nami to któż przeciwko nam :). Przejrzałem w tym zakresie ofertę nie tylko Microchipa ale innego popularnego producenta m.in STM-a. Ku mojemu zaskoczeniu wbrew obiegowym opiniom STM32 wcale nie są takie tanie jak je malują. 

piątek, 17 stycznia 2020

ATSAML10 - DMAC Direct Memmory Access Controller

Z natury jestem człowiekiem , który lubi wszelkiego rodzaju wyzwania. Taki ze mnie Hobby Man Warrior :). W szczególności lubię rozwiązywać zagadki i szarady związane z mikrokonrolerami. Szczególnie sporo wrażeń w tym względzie przysparzają mi MCU ATSAM firmy Microchip, dlatego daże je szczególnym uczuciem :). Traktuję je jako poligon dla moich szarych komórek. Duży szacunek należy się  konstruktorom ATSAM-ów , że potrafili zaprojektować w tak wyrafinowany sposób peryferium jakim jest moduł DMAC . Jest sporym wyzwaniem dla hobbysty skonfigurować  DMA w ATSAM ,ale można z tego tytułu odnieść sporo satysfakcji z powodzenia tej operacji.  W artykule pokażę  jak skonfigurować i uruchomić DMA w ATSAM na przykładzie kopiowania tablicy i dodatkowo zobaczymy kod konfiguracji użycia DMA i SPI. Te dwa przykłady praktycznie wyczerpują retrospektywę dotyczącą konfiguracji DMA w ATSAM i na ich bazie można będzie zrobić taką konfigurację dla dowolnej innej konstelacji wymiany danych np. pamięć->peryferium czy peryferium->pamięć.

środa, 8 stycznia 2020

Projekty Czytelników - karta 8DI/8DO na 24V DC do zastosowań w automatyce przemysłowej.

Miło mi jest kiedy czytelnik mojego bloga "zarażony" pasją , dzieli się ze mną swoimi pomysłami i projektami. Taka jest wartość dodana prowadzenia bloga, że można poznać fajnych i twórczych ludzi, którzy sami są później w stanie zaoferować coś światu . Czytelnik o nicku Chris King jest jednym z takich ludzi. Z Chrisem poznałem się osobiście na jednej z prezentacji Microchipa w Warszawie. Człowiek ten drałował 500 km od miejsca stałej dyslokacji aby spotkać się ze mną i po raz pierwszy dotknąć  produktów Microchipa. Chris jest na najlepszej drodze  do osiągnięcia poziomu Jedi w zakresie MCU Microchipa , w szczególności upodobał sobie konstrukcje 16-bitowe i na nich obecnie postanowił tworzyć swoje projekty. Jego projekty i pomysły są niebanalne i co ciekawe jest w stanie wykorzystać je zawodowo w procesach technologicznych związanych z automatyką przemysłową. Zazdroszczę ludziom , którzy swoją pasję/hobby mogą łączyć z wykonywanym zawodem.

poniedziałek, 30 grudnia 2019

ATSAML10E16A - Mini Board , spontaniczny projekt płytki developerskiej.

Tak bardziej pod wpływem spontanicznego impulsu niż potrzeby , wykonałem projekt mini płytki developerskiej dla ATSAML10 firmy Microchip. MCU oparty jest na "bezpiecznym" rdzeniu Cortex M23. ATSAM-y serii L przyciągają mnie jak magnes. Jest w nich coś z kobiety - tajemniczej, inteligentnej, z pozoru trudno dostępnej. Po prostu seria ta ma swój niesamowity powab , który potrafi zauroczyć. Ale uwaga to nie jest prosta zabawa :). Normalnie mi odbiło :) . Programowanie tych MCU sprawiło mi niesamowitą satysfakcję i było dużym wyzwaniem dla moich szarych komórek. Kiedyś myślałem , że ATSAM-y są zbyt skomplikowane w ogarnięciu i taka obiegowa opinia w zasadzie krążyła po wsiach, trzymając mnie na dystans. Nie mniej spróbowałem i powiem tak, łatwo nie było ale jak się złapie wiatr w żagiel z ATSAM-em to poczujemy naprawdę głęboką i ogromną satysfakcję . Jeśli szukamy nie banalnych wyzwań to ATSAM-y spełnią nasze oczekiwania w tym zakresie :). Oczywiście swoje  doznania opieram na programowaniu bez użycia bibliotek typu HAL Ale tak to już rzadko kto programuje w świecie ARM-a:).

wtorek, 24 grudnia 2019

Zdrowych i spokojnych Świąt Bożego Narodzenia oraz Szczęśliwego Nowego Roku.

Boże Narodzenie jest symbolem narodzin dobra i miłość . W tym dniu trzeba być szczególnie otwartym na drugiego człowieka, tak jak żłób bożonarodzeniowy, który przyjął Dzieciątko.

Życzę otwartości w te Święta i możliwości Narodzenia Bożego w każdym z nas. 




czwartek, 19 grudnia 2019

PIC32MM i moduł Ethernetowy Wiznet W5500 - komunikacja z chmurą za pomocą MQTT ,zajęcia praktyczne cz.5

W części nr 4 wątku o komunikacji z chmurą pokazywałem prostą metodę rozmowy z chmurą opartą na samym protokole TCP i strumieniu znakowym.
Od strony chmury komunikacja taka obsługiwana była w warstwie aplikacji przez protokół Telnet. Metoda ta znalazła uznanie wśród czytelników bloga, nie bez przyczyny, jest tak prosta , że już prościej się nie da. Ale to nie koniec niespodzianek dotyczących metod komunikacji z chmurą. Na deser zostawiłem najbardziej spektakularną metodę opartą o protokół MQTT. Jest to metoda obsługiwana praktycznie przez wszystkie chmury, jeśli przez jakąś nie jest obsługiwana to znaczy, że ta chmura nie warta jest uwagi z punktu widzenia ekosystemu IoT. Zapraszam do podróży po MQTT w aspekcie praktycznym.

poniedziałek, 16 grudnia 2019

PIC32MM i moduł Ethernetowy Wiznet W5500 - komunikacja z chmurą za pomocą TCP ,zajęcia praktyczne cz.4

Kontynuujemy przygodę z modułem ethernetowym W5500 i PIC32MM oraz chmurą Ubidots. W części nr 3 artykułu  pokazałem metodę komunikacji z chmurą opartą o protokół HTTP i metodę POST. Wysyłaliśmy z powodzeniem daną do chmury.  Wspomniałem, że pokażę jak się tą metodą odbiera dane. Kiedy podczas testów odbierania danej z chmury zobaczyłem ile nadmiarowych informacji musimy odebrać aby dobrać się do naszej danej , doszedłem do wniosku , że nie będzie to preferowana metoda komunikacji z chmurą dla zestawu MCU + W5500. Dlatego nie będę tego wątku kontynuował. Chmura Ubidots ma tę ogromną zaletę, że dostarcza różnych metod przesyłania danych do wyboru, jedną z nich jest bardzo prosta metoda oparta na samym protokole TCP lub  UDP i zapytaniach znakowych . Od strony chmury w warstwie aplikacji, tego typu prosta komunikacja obsługiwana jest przez protokół Telnet , stworzony dla terminali znakowych. Telnet jest najstarszą i najbardziej elementarną usługą internetową , która dzisiaj została wyparta przez protokół SSH. Ekosystem internetu i usług sieciowych opiera się na ogromnej liczbie protokołów. W artykule pokażę jak posłużyć się bardzo prostą metodą komunikacji z chmurą. Nie będzie żadnych nadmiarowych komunikatów tak jak w przypadku protokołu HTTP.

środa, 4 grudnia 2019

PIC32MM i moduł Ethernetowy Wiznet W5500 - komunikacja z chmurą za pomocą HTTP i API REST ,zajęcia praktyczne cz.3

Czas na jedno z ciekawszych przedsięwzięć związanych z wykorzystaniem modułu ethernetowego W5500 firmy Wiznet. Tematyka chmur zaprząta moje myśli od jakiegoś czasu. Z zazdrością patrzyłem na moduły IoT np. takie jak PIC IoT firmy Microchip, które potrafiły wymienić dane z chmurą w obie strony. Mankamentem jak dla mnie w przypadku tego typu modułów jest ograniczenie współpracy do jednej firmy "Chmurowej" tutaj akurat Google. Jest to podyktowane wykorzystaniem urządzenia kryptograficznego ATECC608A zwiększającego poziom bezpieczeństwa przesyłu danych. Gdzie zatem wolność wyboru ? jedna chmura i koniec ?. Jeśli nie prezentujemy danych wrażliwych i sprawy bezpieczeństwa nie są kluczowe w naszym projekcie sieciowym to nie ograniczajmy się w wolności wyboru :). Duet PIC32MM + W5500 skomunikuje się z każdą chmurą, zatem niech żyje wolność :). W artykule pokażę na przykładzie wybranej chmury jedną z metod wysyłania i pobierania danych z chmury. Radość z pierwszego uaktualnienia danej w chmurze była ogromna :). Takiej satysfakcji nie zastąpi żaden gotowy moduł przysposobiony przez producenta do komunikacji z chmurą :)

poniedziałek, 2 grudnia 2019

PIC32MM i moduł Ethernetowy Wiznet W5500 - serwer TCP/IP, zajęcia praktyczne cz.2

W części pierwszej zajęć praktycznych pokazałem działanie mini-serwera UDP. W tym wpisie zajmiemy  się kolejną dostępną opcją w module W5500 firmy Wiznet .Rozbudujemy nasz program z części 1 o funkcjonalność mini-serwera TCP. Nasz mini-serwer będzie na każde wysłane do niego zapytanie klienta z sieci lokalnej reagował wysłaniem kodu HTML. Do czego to może się przydać ? Mnie do głowy przychodzi pomysł np. realizacja ustawienia/konfiguracji jakiegoś urządzenia za pomocą przeglądarki www. Nie musimy wtedy angażować do tego celu wyświetlacza i interakcji z użytkownikiem do niego. W artykule pokażę jak zrealizować funkcję mini-serwera TCP przy pomocy modułu W5500 firmy Wiznet.

środa, 27 listopada 2019

Microchip rozbudowuje swoje portfolio w zakresie pamięci EERAM.

Zarąbisty produkt Microchipa - pamięć EERAM, który skradł moje serce od pierwszej sekundy użycia tego rodzaju pamięci. Z radością donoszę, że oferta tych pamięci została powiększona o nowe modele z interfejsem SPI i rozmiarze aż 1 Mbit . Każdy z nas zna wady klasycznej pamięci EEPROM, wolne toto , trzeba się pieprzyć ze stronicowaniem takich pamięci i w ogóle blee.. I tu wkracza Super Hero - Microchip ze swoją pamięcią EERAM w której brak stronicowania, szybkość zapisu na poziomie pamięci SRAM, po zaniku zasilania dane przepisane do pamięci statycznej a po powrocie zasilania przepisane  z powrotem do pamięci SRAM. Jeśli ktoś nie czuje mocy tego wynalazku to ja cie przepraszam :)

niedziela, 24 listopada 2019

PIC32MM i moduł Ethernetowy Wiznet W5500 - serwer UDP, zajęcia praktyczne cz.1

Moduł W5500 sprawił mi dużo satysfakcji podczas jego poznawania. Zagadnienia z jakimi przyszło mi się zmierzyć po drodze były mi obce, dlatego podwójna satysfakcja, że udało się zgłębić "tajemną" sieciową wiedzę. Dziękuję ci zatem module W5500 za poszerzenie moich horyzontów wiedzy :).Przetarłem szlak ,zatem zapraszam do wspaniałej przygody z modułem Ethernetowym W5500 firmy Wiznet. W artykule pokażę jak prosto ogarnąć moduł W5500 za pomocą PIC32MM . W zajęciach praktycznych nawiążemy komunikację za pomocą protokołu  UDP pomiędzy naszym modułem W5500 a lokalnym PC . Po drodze skorzystamy z narzędzi sieciowych takich jak WIRESHARK aby podsłuchać sieć. Ponadto pokażę w jak prosty sposób możemy wysyłać pakiety UDP z poziomu systemu LINUX. Artykuł będzie wstępem przed kontynuacją tematu , którego zwieńczeniem będzie pełna realizacja komunikacji z wybraną Chmurą. Mam nadzieję , że mi się uda to zrealizować. Taki wytyczam sobie cel mojego spotkania z modułem W5500 . Howgh.

sobota, 16 listopada 2019

PIC32MM i printf() - prosty wyrzut strumienia danych po UART.

Często zdarza się , że potrzebujemy monitorować pracę programu i wyświetlać komunikaty lub mieć podgląd na jakieś dane , szczególnie na etapie testowania funkcjonalności programu. Jednym z mediów do wyświetlania danych/komunikatów jest wyświetlacz , ale co w przypadku kiedy chcemy na przykład wyświetlić więcej komunikatów niż pomieści nam wyświetlacz ?. Wtedy przychodzi nam z pomocą UART i funkcja printf() ze standardowej biblioteki języka C. Ta para powoduje , że możemy w bardzo prosty sposób zobrazować komunikaty/dane w oknie monitora PC, nie pisząc nawet ani kawałka kodu konfiguracyjnego. W artykule pokażę jak skorzystać z funkcji printf() w programie , przekierować do niej strumień danych z UART i  wyświetlić to na monitorze.


środa, 13 listopada 2019

WIZnet W5500, moduł ethernetowy ze sprzętowym stosem TCP/IP.

Podczas zabaw z chmurą dotarło do mnie, że fajnie byłoby mieć własny Gateway dostępowy oparty na mikrokontrolerze i zbudowany własnymi rękoma. Wiele projektów w tym zakresie opartych jest na RPi ale często jest to przerost treści nad formą. Po co angażować mikroprocesor i system operacyjny dla w sumie niezbyt skomplikowanego zadania. Dlatego moje poszukiwania skierowałem poza ekosystem RPi. Znalazłem młody projekt ZERYNTH , który w bajecznie prosty sposób umożliwia zbudowanie Gateway'a dostępowego do chmury w oparciu o wspierane płytki developerskie.  Mam jednak takie podejście , że jak coś jest zbyt proste to szybko się nudzę, normalnie jak dziecko :) . Dlatego postanowiłem zrobić coś co wymagałoby większego zaangażowania "mózgownicy" czyli np. dostęp MCU do chmury za pomocą modułu Ethernetowego. Układ , który sobie upatrzyłem do realizacji tego zadania to W5500 firmy WIZnet. Do testów kupiłem  moduł  ETH WIZ click Serbskiej firmy Mikroelektronika , który dostaniemy również na naszym rynku.