wtorek, 29 stycznia 2019

PIC32MM - biblioteka dla kolorowego wyświetlacza ILI9341 2.2" 320x240.

Jakiś czas temu popełniliśmy bardzo fajną bibliotekę dla PIC32MM obsługującą wyświetlacz ILI9163 1.8" . Teraz czas na stworzenie biblioteki dla większego brata czyli ILI9341 2.2". Większe w tym przypadku mamy wszystko, czyli rozmiar i rodzielczość. Na pewno obrazki będą się prezentowały znacznie lepiej. Moim zdaniem rozmiar 2.2" jest taki w sam raz ani za mały ani za duży i miły dla oka. Wyświetlacz ten zaaplikowałem do mojej płytki developerskiej dla ATSAML21. Ale najpierw zrobimy bibliotekę dla PIC32MM bo będzie nam najprościej to zrobić a potem przeportujemy ją do ATSAML21. PIC32MM jest naprawdę świetnym MCU low end z bardzo ciekawymi peryferiami  i co ważne prostym w opanowaniu.  W każdym przypadku łatwiej jest mi tutaj  zrobić działającą aplikację i przeportować ją do ARM-a niż robić bezpośrednio dla ARM.

piątek, 25 stycznia 2019

ATSAML21 - rozpoznajemy moduł TC , a podobno szczęśliwi czasu nie liczą.

Kontynuujemy dobrą passę w poznaniu mikrokontrolerów ATSAM. W artykule zajmiemy się rozpoznaniem modułu peryferyjnego  TC (Timer/Counter), jaki został zaimplementowany w   ATSAML21/D21. Jest to jeden z dwóch (nie liczę SysTick-a i RTC) dostępnych modułów czasowych w naszym procku. Drugim jest bardziej rozbudowany TCC (Timer/Counter for Control Applications) ale tym się na razie zajmować nie bedziemy co by nas głowa nie rozbolała. Do ćwiczeń będziemy potrzebować płytki developerskiej, programatora (ja używam J-LINK EDU mini) oraz środowiska SEGGER. Nie używamy ASF (jest to ważna infomacja dlatego powtarzam ją ciągle).

wtorek, 22 stycznia 2019

ATSAML21 - uruchamiamy SPI czyli SERCOM nie tylko dla orłów.

To co wyróżnia ATSAM-y z cortexowego tłumu to m.in moduły SERCOM czyli Serial Comunication Interface. Jest to bardzo elastyczny moduł, który może być skonfigurowany jako moduł SPI lub I2C lub USART. Oznacza to fizycznie, że jeśli mamy np 6 x SERCOM w naszym MCU to możemy mieć do dyspozycji 6xSPI lub 6xI2C lub 6xUSART lub dowolną kombinację ilościową w/w peryferiów. Jest to bardzo wygodne i elastyczne podejście , które nie skazuje nas na ściśle ograniczoną i zdefiniowaną ilość peryferiów. Dlatego w SERCOM-ach można się zakochać od pierwszego wejrzenia :) W artykule spróbujemy skonfigurować SERCOM w tryb SPI. Działania nasze opieramy na środowisku SEGGER i plikach nagłówkowych dostarczanych przez producenta MCU ,dostępnych w środowisku. Nie używamy ATMEL STUDIA i ASF tylko czystej pracy organicznej na rejestrach.

piątek, 18 stycznia 2019

ATSAML21 - ustawiamy zegar na inną niż startowa wartość.

Po starcie, ATSAML21 ustawiony jest na pracę z wewnętrznym zegarem o wartości 4 MHz. Ponieważ jesteśmy pod wpływem filmu Szybcy i Wściekli, dlatego ta szybkość nas nie satysfakcjonuje. Spróbujemy zatem ustawić zegar wewnętrzny na szybszy wariant, ale nie na najszybszy, co by nam nie zdmuchneło czapek z głów. Zaproponuję zmianę ustawień zegara na jedną z dostępnych wartości 16 MHz. Maksymalna możliwa szybkość do uzyskania z zegara wewnętrznego to 48 MHz. Zegar będziemy ustawiać za pomocą wpisów do rejestrów bez używania bibliotek ASF i środowiska ATMEL STUDIO. Na poczętek przyjrzyjmy się jak w aplikacji webowej ATMEL START przedstawiony jest schemat blokowy zegara (patrz obrazek w nagłówku)

wtorek, 15 stycznia 2019

ATSAML21 - przepis na delay i podstawowe operacje na GitHub-ie

Wszyscy krzywimy się na pomysł używania delay-i .Niestety bez nich się nie obędzie, szczególnie w przypadku sprzętu , który wymaga opóźnień w procesie inicjacji czy wymiany danych. Sztandarowym przykładem niech będzie wiecznie żywy kontroler LCD HD44870, z którym bez delay-i nie porozmawiamy. W nawyk mi weszło, że po pierwszej rozmowie z nowym MCU rozglądam się za implementacją opóźnień. Staram się w tym przypadku nie odkrywać na nowo koła ale podejrzeć jak to robią inni ,bardziej zaawansowani użytkownicy danego MCU. W artykule pokażę zatem kod , który mi najbardziej przypadł do gustu. Przy okazji zmierzymy się z zagadnieniem współpracy z GitHub-em w przypadku kiedy środowisko nie oferuje narzędzi do kontroli wersji.

środa, 9 stycznia 2019

ATSAML21 - zaczynamy zabawę z legendarną serią MCU w nowym środowisku SEGGER-a

Moja płytka developerska dla ATSAML21 jest już gotowa do testów i wyszła bardzo fajnie. MCU jaki zastosowałem na niej to ATSAML21G18B. Ale możemy zastosować również modele z serii ATSAMD21. Czekam jeszcze na dostawę wyświetlacza 2.2 " ILI9341 aby uzupełnić płytkę . Nie przeszkadza mi to jednak aby zacząć na tym etapie zabawę z MCU. Nie mam żadnego doświadczenia z tą serią MCU ani ze środowiskiem SEGGERA. Czas to zmienić i rozpocząć nową przygodę. Pierwszą czynnością będzie instalacja środowiska od firmy SEGGER. Ściągamy zatem aktualną wersję ze strony producenta Embedded Studio . Ja wybrałem wersję dla Linuxa 64-bit, instalacja jest bardzo prosta i nie wymaga komentarza.

środa, 2 stycznia 2019

Luźne dywagacje jako podsumowanie roku 2018 na moim blogu.

Mija drugi rok aktywności na moim hobbystycznym blogu i drugi rok mojej przygody w ekosystemie PIC. Na wstępie chciałbym złożyć serdeczne podziękowania wszelkiej maści malkontentom i oponentom mikrokontrolerów z rodziny PIC a w domyśle również i przeciwników firmy Microchip za to, że prezentowane przez nich argumenty były zbyt słabe aby mnie zniechęcić do poznania produktów tego producenta. Rok 2018 spędziłem głównie na poznawaniu rodziny 32 bitowej a w szczególności rodziny PIC32MM(GPM). To bardzo ciekawy mikrokontroler , który w obszarze Low End ma sporo do zaoferowania za relatywnie niewielkie pieniądze. Rodzina ta jest doskonałą alternatywą dla osób przesiadających się z 8-bitów i szukających czegoś wydajniejszego, sprytnego i prostego w obsłudze. Dla PIC32MM stworzyłem projekty dwóch płytek developerskich, które udostępniam na moim blogu całkowicie za darmo.