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.

niedziela, 23 grudnia 2018

RADOSNYCH ŚWIĄT BOŻEGO NARODZENIA

ABYŚMY SPOKOJNIE. PATRZYLI  JAK ROSNĄ NASZE DZIECI . ABY SĄSIAD BYŁ NASZYM PRZYJACIELEM A CZŁOWIEK CZŁOWIEKOWI BRATEM. ŻEBY NIKOMU NIE ZABRAKŁO JEDZENIA NA TALERZU. NIECH POKÓJ NA ZIEMI KWITNIE A MIŁOŚĆ ZABARWIA NASZE ŻYCIE.

ZDROWYCH , SPOKOJNYCH , RODZINNYCH ŚWIĄT BOŻEGO NARODZENIA ..... I ZAPACHU PIERNIKÓW W DOMU :)   Życzy PICmajster.

środa, 19 grudnia 2018

Jak wyświelić kolorowy obrazek na wyświetlaczu TFT ILI9163 1.8" zapisany na karcie SD.

Zbliżają się narodziny Pana Jezusa. To piękne święto bo m.in tuż przed, czyli w dzień Wigilijny wszyscy się obdarowują prezentami. Taki symboliczny wyraz miłości do drugiego człowieka. Na okoliczność tego radosnego święta rozpracowałem zagadnienie związane z wyświetlaniem dowolnego obrazka z karty SD. Wykorzystałem możliwości biblioteki FatFs i biblioteki dla kolorowego wyświetlacza ILI9163 1.8 " z czytnikiem SD. Pan Jezus może mi wybaczy , że przed jego urodzinami zajmuję się takimi głupotami, zamiast Żonie pomóc lepić pierogi :) No ale co ja poradzę, że lepić pierogów nie lubię a grzebać w kodzie tak.

sobota, 8 grudnia 2018

FatFs - implementacja biblioteki dla PIC32MM

W artykule zajmiemy się implementacją znanej biblioteki FatFS dla PIC32MM. Inspiracją do zajęcia się tym zagadnieniem był fakt posiadania czytnika kart SD w wyświetlaczu ILI9163 do którego tworzyliśmy bibliotekę jakiś czas temu.
Szkoda aby czytnik marnował się w wyświetlaczu nie używany. Tym bardziej , że wyświetlacz ten znajdziemy w  moim najnowszym projekcie płytki developerskiej dla PIC32MM. Zatem bierzemy się niezwłocznie do roboty. Na początek należy zdobyć  kartę SD. Fajnie abyśmy mieli dostęp do czytnika w PC, mnie udało się taki znaleźć w moim  laptopie. Trzeba było go tylko uaktywnić w BIOS-ie.

sobota, 10 listopada 2018

ATSAML21 - budujemy płytkę developerską dla Legendy z rdzeniem Cortex M0+.

Ponieważ ATSAM-y są mało znane na naszym rynku a stanowią kawałek historii rozwoju nurtu ARM-owego i są spuścizną po firmie ATMEL. Postanowiłem pochylić się nad nimi i spróbować je bliżej poznać. Dodatkowym pretekstem było pojawienie się bardzo ciekawego środowiska firmy SEGGER, które wspiera wszystkie popularne serie ATSAM-ów. Środowisko to jest dostępne dla systemu Linux, mojego bazowego systemu. Aby rozpocząć przygodę z ATSAM-ami potrzebuję płytkę developerską. Zatem radośnie przystępuję do jej tworzenia. Tym razem przybliżę w jaki sposób i jakimi narzędziami tworzę takie projekty. Jestem zdania , że robienie własnych płytek jest nie tylko świetną i twórczą zabawą ale przybliża nas znacząco do poznania danego mikrokontrolera. Precz z lenistwem i kupowaniem gotowych płytek :)

czwartek, 8 listopada 2018

Rewolucyjne środowisko firmy SEGGER do programowania m.in mikrokontrolerów serii SAM firmy Microchip.

Na rynku pojawiło się nowe środowisko do programowania MCU z rdzeniem ARM od firmy Segger. Nie byłoby w tym nic ciekawego gdyby nie fakt , że nie jest to kolejna edycja Eclipsowych tworów oraz to, że zaprogramujemy tutaj m.in mikrokontrolery z oferty firmy Microchip. Moją uwagę przykuła   jedna rewolucyjna/rewelacyjna możliwość. Mianowicie IDE SEGGERA wspiera mikrokontrolery SAM firmy Microchip. A to oznacza, że wreszcie możemy programować te wspaniałe MCU w środowisku LINUX. Dotychczas możliwe to było tylko w ATMEL STUDIO , KEIL i IAR ale tylko pod Windą. Microchip co prawda przenosi produkty byłej firmy ATMEL do swojego środowiska MPLABX-IDE ale zanim to zostanie dobrze zrobione to jeszcze może trochę wody w Wiśle upłynie. Obecnie mamy tu i teraz doskonale działające  środowisko SEGGER-a , które jest niezwykle wydajne , szybkie i wspiera  MCU SAM.

środa, 31 października 2018

Jak wyświetlić kolorowy obrazek na wyświetlaczu 1.8 TFT ILI9163 - aktualizacja biblioteki dla PIC32MM.

Ponieważ udało mi się opanować konwersję kolorów z RGB888 do RGB565  i jej adaptację na wyświetlaczu ILI9193. Niniejszym czynię wpis, w którym pokażę drogę jaką trzeba przebyć od pobrania dowolnego obrazka z internetu do jego wyświetlenia na kolorowym wyświetlaczu TFT. Motywem przewodnim , który zostanie wyświetlony będzie zamieszczony obok komiksowy obrazek z dwoma znanymi Herosami. Zobaczymy jak nasz wyświetlacz poradzi sobie z tym obrazkiem i paletą barw. Czy choć trochę wyświetlony obrazek będzie przypominał pierwowzór ?? Zapraszam do zabawy.

wtorek, 2 października 2018

dsPIC33CK - nowa seria 16-bitowa z zegarem 100MHz.

Firma Microchip rozbudowywuje swój potencjał w zakresie MCU 16-bitowych dodając nową serię dsPIC33CK. Mikrokontrolery te zadziwiają potężnie rozbudowanymi peryferiami i dużym potencjałem obliczeniowym w zakresie przetwarzania sygnałów cyfrowych. Zegar 100MHz  i 100 MIPS-ów czynią te serię  najszybszą obecnie na rynku w całym ekosystemie 16-bitowym. W sumie jest to ciekawy ruch, w otoczeniu innych producentów, którzy prześcigają się w tworzeniu coraz bardziej podrasowanych MCU z rdzeniem Cortex M7 nie zauważając , że jest to już pole dla mikroprocesorów , które mogą być tańsze i bardziej elastyczniejsze w docelowych aplikacjach. Microchip przyjął tutaj jak widzę odmienną strategię tzw chodzenia bliżej ziemi, rozwijając serie 8-bitowców i 16-bitowców , obudowując je coraz bardziej wymyślnymi peryferiami i czyniąc je bardziej wydajnymi. Historia osądzi, która strategia była lepsza.

niedziela, 30 września 2018

Płytka developerska PIC32MM dla Kowalskiego.

Postanowiłem dokonać modyfikacji mojego projektu płytki developerskiej dla PIC32MM - mikrokontrolera 32-bitowego firmy Microchip. Podstawową zmianą będzie zastosowanie wyświetlacza graficznego TFT z kartą SD. Zmiany dotyczą również zasilania, płytka będzie zasilana ze złącza Micro USB. Postaram się również zmniejszyć wymiary płytki. Sumarycznie koszt wykonania projektu ulegnie znaczącej obniżce m.in przez zastosowanie tańszego wyświetlacza, przez co płytka wraz z osprzętem stanie się bardziej przyjazna dla kieszeni przeciętnego Kowalskiego. 

wtorek, 25 września 2018

MCCP i SCCP w PIC32MM - kopalnia skarbów

Moduł xCCP (Compare/Capture/PWM) jak określił  Paweł Borkowski w książce "Mikrokontrolery PIC w praktycznych zastosowaniach" to programistyczna kopalnią skarbów. Moduł występuje w dwóch odmianach SCCP(Single) i MCCP(Multi). Różnica sprowadza się do ilości sterowanych pinów i dodatkowych możliwości. W module Single możemy działać tylko na jednym wybranym pinie a w Multi na grupie pinów (maksymalnie do 6) i tutaj mamy dostępne dodatkowo, bardziej rozbudowane możliwości, od których może głowa rozboleć.

piątek, 21 września 2018

PIC32MM i piny alternatywne dla I2C1 - odkrywamy najskrytsze tajemnice :)

Interfejs I2C1 w PIC32MM nie możemy przyporządkować do innych pinów niż wymusza to producent firma Microchip. Standardowo mamy tutaj przyporządkowane następujące piny RB9 -> SDA1 i RB8 -> SCK1 . Z tabelki z opisem pinów MCU wynika jednak , że jest dostępna alternatywa. Ponieważ sam się drapałem w głowę przez chwilę nad tym zagadnieniem. Dlatego czynię niniejszy wpis przy okazji przywołujący mi skojarzenie ze słynnym serialem Stanisława Bareji - Alternatwy 4.