niedziela, 28 marca 2021

STM32G0 - ustawienie zegara.

W STM32G0 mamy do dyspozycji cztery podstawowe źródła taktowania. 

LSI RC - wewnętrzny zegar 32kHz

LSE OSC - zewnętrzny zegar 32.768 kHz

HSI16 RC - wewnętrzny zegar 16 MHz

HSE OSC - zewnętrzny zegar 4-48 MHz

Dla wersji z USB mamy dodatkowo dedykowany wewnętrzny zegar HSI48 RC .

czwartek, 25 marca 2021

STM32G0 - zapis do rejestrów, wybrane zagadnienia.


W MCU 8-bitowych wszystko było proste, rejestry były proste, zapisy do nich były proste , życie było proste. W rejestrach nie było praktycznie pól bitowych o rozmiarze większym niż jeden bit, zapis sprowadzał się do operowania na jednym bicie .Człowiekowi było mało , więc  stworzył 32-bitowe monstra. Rozmowa z nimi drastycznie się skomplikowała, wydłużyły się rejestry pojawiły się pola bitowe . Skoro rozmowa z MCU się skomplikowała to zaczęto wprowadzać dodatkową abstrakcje w postaci opasłych bibliotek typu HAL. Biblioteki tego typu uprościły komunikację użytkownika z rejestrami i migrację ale wprowadziły jednocześnie niepożądane zjawiska takie jak błędy związane z rozwojem biblioteki , dodatkowy narzut zasobów MCU jakie trzeba poświecić do obsługi biblioteki oraz wyraźne spowolnienie wykonywania zadań przez MCU w tym spowalnianie działania interfejsów komunikacyjnych . Dlatego w krytycznych czasowo aplikacjach tam gdzie nie można sobie pozwolić na luksus związany z wygodą stosowania biblioteki HAL, tam  pożądana jest umiejętność rozmowy z MCU w technice określanej jako "Bare Metal" czyli to co w MCU 8-btowych było chlebem powszednim.

czwartek, 18 marca 2021

Projekt płytki dla STM32G0 i instalacja lekkiego środowiska firmy SEGGER.


Tak to nie pomyłka :), na moim blogu poświęconym głównie wyrobom firmy Microchip postanowiłem zajrzeć do ogródka "konkurencji" czyli do wyrobu firmy STM32. A cóż mnie skłoniło do takiego szalonego pomysłu ?, ano zwykła ludzka ciekawość :) i chęć poszerzenia swoich horyzontów wiedzy. Na widelec biorę przedstawiciela relatywnie nowej serii STM32G0. Budżetowy MCU oparty o rdzeń Cortex M0+. Ciekawostką jest tutaj to, że w tej serii STM próbował poprawić odporność na zakłócenia EM. Generalnie z tego co wiem to  STM-y słabo wyglądały na tym polu. Drugą cechą STM-ów jest relatywnie słaba stabilność zegarów RC, przez co np. użycie USB bez zewnętrznego kwarca nie jest tutaj zalecane. W serii STM32G0 producent  deklaruje, że stabilność zegara RC została poprawiona.

poniedziałek, 15 marca 2021

USB w PIC32MM - uruchomienie przykładu z biblioteki Microchipa.


Tym razem krótki wpis w którym pokażę jak w ultraszybki sposób możemy uruchomić komunikację po USB pomiędzy komputerem a mikrokontrolerem PIC32MM. Dla przypomnienia seria PIC32MM firmy Microchip to segment tanich i sprytnych mikrokontrolerów. Jest to bardzo udana seria Microchipa, którą w sposób łatwy zaprogramujemy bez użycia "ciężkich" bibliotek HAL-o podobnych. Jest to jedyna seria 32-bitowa konfigurowalna w MPLABX-IDE za pomocą wtyczki MCC ,co powoduje, że kontakt z tym mikrokontrolerem to czysta przyjemność. Ponieważ PIC32MM w standardzie ma na pokładzie USB, postanowiłem zobaczyć czy to działa :). Poszedłem w tym przypadku maksymalnie na skróty i użyłem przykładu Microchipa do uruchomienia komunikacji. Przykład ten zawarty jest w standardowej bibliotece/stosie USB , który dołączamy we wtyczce MCC. Pokażę zatem jak to ugryźć.

czwartek, 11 marca 2021

PIC18F04Q41 z rozbudowanymi peryferiami analogowymi

 
Microchip konsekwentnie rozbudowuje portfolio MCU 8-bitowych. Tym razem mamy modele w małych obudowach 14 i 20 pin (w tym mini-obudowa typu SOIC). Nowymi przedstawicielami MCU są np. PIC18F06Q41 z rozbudowanymi peryferiami analogowymi i PIC18F06Q40 bez takiej rozbudowy ale dostępny w obudowie 3x3 mm !!!. Standardem już u Microchipa staje się wyposażenie MCU  8-bitowych w kontroler DMA co dotychczas było domeną tylko MCU 16-bit i 32-bit. Wyjątkowo dam przekierowanie do ciekawego artykułu na portalu mikrokontroler.pl . Świetny artykuł Pana Tomasza Jabłońskiego. Zachęcam do zapoznania się z nim i poszerzenia swoich horyzontów wiedzy :).