ZERYNTH to platforma implementująca język PYTHON we wspieranych przez projekt MCU. Umożliwia m.in proste podłączenie MCU do chmury i proste oprogramowanie tego w języku PYTHON. Na projekt ten wpadłem kompletnie przypadkiem ale zainteresował mnie i postanowiłem chwilę się jemu przypatrzeć. W szczególności , że projekt wspiera MCU firmy Microchip obecnie na razie tylko ATSAM-y ale jak mi powiedział twórca projektu na początku 2020 r wspierana będzie seria PIC32. Projekt jest cały czas rozwijany i dodawane są nowe MCU. Moim zdaniem rzecz jest ciekawa i warta zapoznania się z nią. A zaskakujące w tym wszystkim jest to, że to naprawdę działa :) . Spróbujmy na początek zasterować wybranym pinem MCU przy pomocy języka PYTHON.
Blog jest formą pamiętnika technicznego, upamiętniający moją przygodę z mikrokontrolerami PIC firmy Microchip. "Per aspera ad astra..."
piątek, 4 października 2019
niedziela, 29 września 2019
ILI9341 - kolorowy wyświetlacz w rozmiarze 2.8"
niedziela, 22 września 2019
Jak napisać w języku C wygodny dostęp do warstwy sprzętowej . Praktyczny przykład na bazie modułu radiowego SI4463.
W artykule pokażę jedną z metod poruszania się po warstwie sprzętowej w języku C . Swoje rozważanie oprę na module radiowym SI4463. Ale tak naprawdę sprzęt jest tylko tłem dla pokazania samej metodologi i podejścia do zagadnienia. W wielu przypadkach bazujemy na bibliotekach sprzętowych napisanych przez innych adeptów języka C ,no bo w sumie po co odkrywać koło na nowo. Jeśli mamy szczęście to z takich bibliotek można się czegoś nauczyć bo metodologia jest zrozumiała i w sposób przejrzysty zakodowana. Ale to rzadkość. W większości przypadków do bibliotek czujemy awersję bo styl nam nie leży i ostatecznie trudno zrozumieć co poeta miał na myśli etc. Działa bo działa ale analiza kodu przysparza nas o ból głowy, więc odpuszczamy. Ekspertem od języka C nie jestem i wymądrzać się tutaj nie mam zamiaru. Ale ja wiele nauczyłem się na podstawie plików nagłówkowych napisanych dla MCU 32 bitowych. Gdzie królują Struktury , Unie, Wskaźniki . Moim zdaniem to olbrzymia kopalnia wiedzy o programowaniu warstwy sprzętowej w języku C, ponieważ te pliki piszą zawodowi informatycy, dlatego mamy pewność, że zastosowane rozwiązania programistyczne są optymalne.środa, 18 września 2019
SI4463 - transciver RF firmy Silicon Labs - STANDBY mode (50nA)
Mój ulubiony moduł radiowy SI4463 jest mistrzem w trybach Power Saving. Dlatego jest doskonałym wyborem dla aplikacji bateryjnych. W najniższym dostępnym trybie Shutdown uzyskamy pobór prądu na poziomie 30 nA !!!. Czyli można by rzec, że ilość śladowa. W artykule podejmę się krótkiej retrospektywy trybów Power Saving dostępnych w module. Ze szczególnym uwzględnieniem trybu STANDBY, który wydaje się być idealnym trybem z punktu widzenia poboru prądu i czasu pobudki.
wtorek, 10 września 2019
SAM L10/L11 External Interrupt Controller (EIC)
Artykuł jest potrzebą chwili i powstał pod wpływem pisania biblioteki dla modułu radiowego SI4463. Podczas pisania biblioteki zaszła potrzeba użycia przerwania sprzętowego na pinie PA03 , który współpracuje z pinem IRQ modułu radiiowego RF. Niby sprawa trywialna ot wyczarujmy sobie przerwanie no ale kiedy poznajemy jakiś MCU i pierwszy raz stykamy się z jego modułem peryferyjnym opierając się tylko na dokumentacji to takie zadanie może stać się wyzwaniem :) . W artykule pokażę jak wyglądała moja droga do rozpoznania i w efekcie konfiguracji przerwania sprzętowego z wykorzystaniem modułu peryferyjnego EIC (External Interrupt Controller)sobota, 7 września 2019
ATSAML10/11 - nowa wersja (ver 3.3) płytki developerskiej
Nowa wersja płytki dla ATSAML10 jest już dostępna. Przyczynkiem aktualizacji była praca nad biblioteką dla modułu radiowego SI4463. W boju wyszło mi, że przydałoby się więcej dostępnych GPIO dla gniazda pod moduł RF. Przy okazji wykryłem błąd związany z przełącznikami SW1 i SW2. Do płytki dodałem dwie diody LED , domyślnie do wykorzystania jako sygnalizacja dla modułu radiowego , tryb TX i RX. Nowa płytka jest dostępna na GitHub . Płytka sprawdza się w boju jest ładna , seksowna i funkcjonalna. Szczególne pięknie prezentuje się z obsadzonym wyświetlaczem i modułem radiowym RF a wszystko to spasowane kolorystycznie , można oprawić w ramki wieszać na ścianie , podziwiać i cieszyć się widokiem :)
czwartek, 15 sierpnia 2019
ZERYNTH - ciekawa koncepcja zastosowania języka Python w obszarze IoT.
Natknąłem się niedawno na ciekawy koncept przeniesienia percepcji programowania MCU 32 bitowych na pułap języka wysokopoziomowego jakim jest Python. Temat mnie zainteresował bo widzę przyszłość dla takiego podejścia. O ile na rynku są już jakieś lepsze lub gorsze próby implementacji Pythona np. w świecie embedded to ZERYNTH na tym tle wyróżnia się pozytywnie pod każdym względem. Przy czym nie tracimy tutaj możliwości korzystania z języka C . ZERYNTH umożliwia zgrabne łączenie Pythona z C. Wprowadzenie abstrakcji języka wysokopoziomowego jakim jest Python w świat MCU daje wbrew pozorom sporo korzyści. Jedną z nich jest przejrzysty i łatwy w utrzymaniu kod. Świat Pythona sprawia , że sporo rzeczy można zaimplementować małymi zasobami czasu i w sposób bardzo prosty a jednocześnie mamy do dyspozycji przyjazny język wspierający różne paradygmaty programowania, w tym obiektowość. Ponieważ Python rokuje być językiem wiodącym w przyszłym świecie autonomicznych urządzeń a w szczególności pojazdów autonomicznych , dlatego w/g mnie warto śledzić nowe technologie związane z tym językiem.
sobota, 27 lipca 2019
SI4463 - transciver RF firmy Silicon Labs do zastosowań bateryjnych, konwersja biblioteki dla ATSAML10 firmy Microchip.
W tym wpisie zajmę się konwersją biblioteki transcivera radiowego SI4463 napisaną dla ekosystemu PIC32 do ekosystemu ATSAML. W szczególe bibliotekę napisaną dla PIC32MM przekonwertujemy do ATSAML10E16. Stosowny artykuł w przypadku PIC32MM poczyniłem tutaj . Trasciver SI4463 zaskoczył mnie bardzo pozytywnie przy testach wewnątrz-budynkowych. W rozległym piętrowym obiekcie z żelbetonowymi przeszkodami nie było najmniejszych problemu z nawiązaniem łączności i przesyłem danych. Ani jedna ramka nie została utracona na 100 przesłanych pomimo ,że moduły były przedzielone nawet i kilkoma kondygnacjami o grubych stropach. Postanowiłem zatem kontynuować bliski kontakt z tymi modułami ale tym razem z perspektywy mikrokontrolera opartego o rdzeń M23 firmy Microchip.
niedziela, 21 lipca 2019
ATSAML10 - biblioteka dla kolorowego wyświetlacz ILI9341 2.2" 320x240.
niedziela, 30 czerwca 2019
Jestem na urlopie.
Korzystam z uroków Polskiej natury i wybrałem się pod namiot na Mazury. Ponieważ nabawiłem się ostatnio przepukliny pachwinowej i czekam obecnie na operację, dlatego ograniczam ruch do pływania i nordic walking. Rower niestety musiałem odpuścić. No cóż należy się cieszyć , że wogóle można cokolwiek robić :) Po latach wakacji w ciepłych krajach , stwierdzam, że najlepiej wypoczywam na naszej Polskiej ziemi. Klimat nam się ociepla i jak gdzieś czytałem migruje do nas śródziemnomorski. Więc niedługo Polska przez turystów będzie postrzegana jako ciepły kraj :)
wtorek, 4 czerwca 2019
ATSAML10 - spotkanie z SPI.
Generalnie wszystko co napisałem kiedyś o ATSAML21 dotyczy również ATSAML10 i ATSAML11. Ta sama seria L oznacza, że wspólne peryferia są opisane tymi samymi rejestrami. Więc przenośność kodu jest bardzo wysoka. Nie będę zatem ponownie powtarzał wiedzy przedstawionej w artykule ATSAML21 - uruchamiamy SPI czyli SERCOM nie tylko dla orłów. Bo większość tego co zostało napisane w tamtym artykule możemy zastosować do ATSAML10 i 11. Po krótce przyjrzymy się jak wygląda droga do uruchomienia SPI w naszym ATSAML10E16. Na pewno nie będzie nudno bo ATSAM-y są nietrywialnymi mikrokontrolerami i z nimi nie można się nudzić :)
środa, 29 maja 2019
ATSAML10 - pierwsze mruganie LED
Moja płytka do ATSAML10 i 11 jest gotowa, czas zatem zacząć zabawę . Na pokładzie dla przypomnienia mamy ATSAML10E16 firmy Microchip w obudowie 32 pin. Programy pisać będę w środowisku SEGGER-a . Do wgrania wsadu i debugowania używam programatora J-LINK Edu Mini. Zabawę zaczynam od wgrania aktualnego firmware do programatora. W tym celu ściągam J-Link Software w wersji dla Windowsa. Po zainstalowaniu softu znajduję program J-Link Configurator i z jego poziomu robię update firmware programatora. Cały proces jest bardzo prosty, więc nie ma potrzeby tutaj się więcej nad tym rozwodzić. Aktualizacja programatora jest potrzebna bo rdzenie M23 i M33 to nowość na rynku. Swoją drogą praca z programatorem J-Link firmy SEGGER to czysta przyjemność.
niedziela, 26 maja 2019
ATSAML10 - seksowna płytka gotowa do działania.
Czerwień płytki jest po prostu powalająca a zdjęcie nie oddaje tego w pełni. Zawsze będę powtarzał. że własna praca organiczna daje więcej satysfakcji niż kupienie gotowego produktu.
piątek, 10 maja 2019
ATSAML10 i ATSAML11 Power Saving Killer in 32-bit ecosystem.
Firma Microchip swoją ofertę rozszerzyła o MCU z rdzeniem Cortex M23 oparty o nowszą w stosunku do Cortex M0/M0+ architekturę ARMv8M. Są to ATSAML10 i ATSAML11. Pisałem już o tym w tym artykule. Pojawienie się na rynku takich konstrukcji w zasadzie za jednym zamachem do lamusa przenosi nam całą rodzinę Cortex M0/M0+. Jeśli ktoś jeszcze tego nie dostrzegł to informuję uprzejmie, że tak jest :). Lepsza wydajność, lepsza energooszczędność, lepsze bezpieczeństwo, praktycznie wszystko lepsze :). Jak zatem przejść obojętnie obok Cortex M23, no po prostu się nie da. Moją szczególną uwagę przykuły aspekty związane z Power Saving . Nie chodzi tylko o tryby uśpienia ale również o tryb Run Mode . W nowym produkcie Microchipa możemy uzyskać w tym trybie nawet i 25uA/MHz. W sumie myślałem , że to jakaś lipa z takimi poziomami ale jak zobaczyłem na własne oczy możliwości w zakresie Power Saving dostępne w ATSAML10 i 11 uwierzyłem tak jak niewierny Tomasz :)
czwartek, 9 maja 2019
PIC32MM - Tutorial part 6 - Prosty przepis na przerwania
Subskrybuj:
Posty (Atom)







