- Architektura i aplikacje mikrokontrolera PIC:
- Wybór mikrokontrolera PIC do naszych samouczków:
- Wybór oprogramowania do naszych samouczków:
- Przygotowanie ze sprzętem:
W 1980 roku Intel opracował pierwszy mikrokontroler (8051) z architekturą Harvard 8051 i od tego czasu mikrokontrolery przyniosły rewolucję w elektronice i przemyśle wbudowanym. Wraz z postępem technologicznym na przestrzeni czasu mamy teraz wiele wydajniejszych mikrokontrolerów o małej mocy, takich jak AVR, PIC, ARM. Te mikrokontrolery są bardziej wydajne i łatwiejsze w użyciu, mają najnowsze protokoły komunikacyjne, takie jak USB, I2C, SPI, CAN itp. Nawet Arduino i Raspberry Pi całkowicie zmieniły perspektywę na mikrokontrolery, a Raspberry Pi to nie tylko mikrokontroler, ale ma całość komputer w środku.
Będzie to pierwsza część serii samouczków, które dopiero nadejdą, które pomogą Ci w nauce mikrokontrolerów PIC. Jeśli jesteś z wykształcenia elektronikiem i zawsze chciałeś zacząć od nauki mikrokontrolerów i wkroczyć w świat kodowania i budowania różnych rzeczy, ta seria samouczków będzie pierwszym krokiem do rozpoczęcia.
Mikrokontroler PIC jest bardzo wygodnym wyborem do rozpoczęcia pracy z projektami mikrokontrolerów, ponieważ ma doskonałe fora wsparcia i będzie stanowić silną podstawę do budowania wszystkich zaawansowanych mikrokontrolerów, których jeszcze się nie nauczyłeś.
Te samouczki są przeznaczone dla osób absolutnie lub średnio zaawansowanych; planowaliśmy zacząć od najbardziej podstawowych projektów do zaawansowanych. Nie oczekujemy żadnych wymagań wstępnych od uczniów, ponieważ jesteśmy tutaj, aby pomóc Ci na każdym poziomie. Każdy samouczek będzie zawierał teoretyczne wyjaśnienie i symulację, po której nastąpi samouczek praktyczny. Te samouczki nie będą obejmować żadnych płytek rozwojowych, stworzymy własne obwody za pomocą płytki perf. Więc przygotuj się i poświęć trochę czasu każdego tygodnia, aby wzbogacić się o mikrokontrolery.
Teraz zacznijmy od prostego wprowadzenia do mikrokontrolerów PIC i niektórych ustawień oprogramowania, abyśmy mogli uruchomić nasz następny samouczek. Sprawdź wideo na końcu, aby zainstalować i skonfigurować MPLABX, XC8, Proteus i szybkie rozpakowanie programatora PICkit 3.
Architektura i aplikacje mikrokontrolera PIC:
Mikrokontroler PIC został wprowadzony przez firmę Microchip Technologies w 1993 roku. Pierwotnie te PIC zostały opracowane jako część komputerów PDP (Programmed Data Processor), a każde urządzenie peryferyjne komputera było połączone za pomocą tego mikrokontrolera PIC. Stąd PIC otrzymuje swoją nazwę jak kontroler interfejsu peryferyjnego. Później firma Microchip opracowała wiele układów scalonych serii PIC, które mogą być używane w każdej małej aplikacji, takiej jak aplikacja oświetleniowa, aż do zaawansowanej.
Każdy mikrokontroler ma być zbudowany wokół jakiejś architektury, najbardziej znanym typem architektury jest architektura Harvardu, nasz PIC jest oparty na tej architekturze, ponieważ należy do klasycznej rodziny 8051. Przejdźmy do małego wprowadzenia na temat architektury Harvardu PIC.
PIC16F877A Mikrokontroler składa się z procesorem wbudowanym, porty I / O, organizacja pamięci, konwerter A / D, liczniki / timery, przerwania, komunikacji szeregowej, oscylator i modułu CCP, które zebrania czyni IC potężny mikrokontrolerów dla początkujących, aby rozpocząć. Ogólny schemat blokowy architektury PIC przedstawiono poniżej
CPU (jednostka centralna):
Mikrokontroler ma procesor do wykonywania operacji arytmetycznych, decyzji logicznych i operacji związanych z pamięcią. Procesor musi koordynować między pamięcią RAM a innymi urządzeniami peryferyjnymi mikrokontrolera.
Składa się z jednostki ALU (Arithmetic Logic Unit), za pomocą której wykonuje operacje arytmetyczne i decyzje logiczne. MU (jednostki Memory) jest obecna także przechowywać instrukcje po tym zostanie wykonany. To MU decyduje o wielkości programu naszego MC. Składa się również z CU (Control Unit), która działa jako magistrala komunikacyjna między CPU a innymi urządzeniami peryferyjnymi mikrokontrolera. Pomaga to w pobieraniu danych po ich przetworzeniu w określonych rejestrach.
Pamięć o dostępie swobodnym (RAM):
Pamięć o dostępie swobodnym to ta, która decyduje o szybkości działania naszego mikrokontrolera. Pamięć RAM składa się z banków rejestrów, z których każdy ma przypisane określone zadanie. Ogólnie można je podzielić na dwa typy:
- Rejestr ogólnego przeznaczenia (GPR)
- Rejestr funkcji specjalnych (SFR)
Jak sama nazwa wskazuje, GPR są używane do ogólnych funkcji rejestrów, takich jak dodawanie, odejmowanie itp. Operacje te są ograniczone do 8-bitów. Wszystkie rejestry w GPR są zapisywalne i odczytywalne przez użytkownika. Same w sobie nie mają żadnych funkcji, chyba że jest to określone w oprogramowaniu.
Podczas gdy SFR jest używany do wykonywania skomplikowanych funkcji specjalnych, które również wymagają obsługi 16-bitowej, ich rejestry można odczytać tylko (R) i nie możemy nic do nich zapisać (W). Więc te rejestry mają predefiniowane funkcje do wykonania, które są ustawione w momencie produkcji i po prostu wyświetlają nam wynik, za pomocą którego możemy wykonać pewne powiązane operacje.
Pamięć tylko do odczytu (ROM):
Pamięć tylko do odczytu to miejsce, w którym przechowywany jest nasz program. To decyduje o maksymalnym rozmiarze naszego programu; stąd jest również nazywany pamięcią programu. Gdy MCU działa, program przechowywany w pamięci ROM jest wykonywany zgodnie z każdym cyklem instrukcji. Ta jednostka pamięci może być używana tylko podczas programowania PIC, podczas wykonywania staje się pamięcią tylko do odczytu.
Elektrycznie kasowalna, programowalna pamięć tylko do odczytu (EEPROM):
EEPROM to inny typ jednostki pamięci. W tej jednostce pamięci wartości mogą być przechowywane podczas wykonywania programu. Wartości przechowywane tutaj są tylko kasowalne elektrycznie, co oznacza, że te wartości zostaną zachowane w PIC nawet po wyłączeniu układu scalonego. Mogą być używane jako mała przestrzeń pamięci do przechowywania wykonywanych wartości; jednak przestrzeń pamięci będzie znacznie mniejsza na zmianę KB.
Pamięć Flash :
Pamięć Flash to także programowalna pamięć tylko do odczytu (PROM), w której możemy czytać, zapisywać i kasować program tysiące razy. Generalnie mikrokontroler PIC wykorzystuje ten typ pamięci ROM.
Porty we / wy
- Nasz PIC16F877A składa się z pięciu portów, a mianowicie Port A, Port B, Port C, Port D i Port E.
- Ze wszystkich pięciu PORTÓW tylko port A jest 16-bitowy, a PORT E jest 3-bitowy. Reszta PORTÓW jest 8-bitowa.
- Piny na tych PORTACH mogą być używane jako wejście lub wyjście, w oparciu o konfigurację rejestru TRIS.
- Oprócz wykonywania operacji we / wy piny mogą być również używane do funkcji specjalnych, takich jak SPI, przerwanie, PWM itp.
Autobus:
Termin magistrala to po prostu wiązka przewodów łączących urządzenie wejściowe lub wyjściowe z procesorem i pamięcią RAM.
Magistrala danych służy do przesyłania lub odbierania danych.
Magistrala adresowa służy do przesyłania adresu pamięci z urządzeń peryferyjnych do CPU. Piny I / O służą do łączenia zewnętrznych urządzeń peryferyjnych; UART i USART oba protokoły komunikacji szeregowej są używane do łączenia urządzeń szeregowych, takich jak GSM, GPS, Bluetooth, IR itp.
Wybór mikrokontrolera PIC do naszych samouczków:
Mikrokontrolery PIC firmy Microchip są podzielone na 4 duże rodziny. Każda rodzina składa się z różnych komponentów, które zapewniają wbudowane funkcje specjalne:
- Pierwsza rodzina, PIC10 (10FXXX) - nosi nazwę Low End.
- Druga rodzina, PIC12 (PIC12FXXX) - nosi nazwę Mid-Range.
- Trzecia rodzina to PIC16 (16FXXX).
- Czwarta rodzina to PIC 17/18 (18FXXX)
Ponieważ zaczynamy uczyć się o PIC, wybierzmy układ scalony, który jest używany i dostępny powszechnie. Ten układ scalony należy do rodziny 16F, a numer części układu to PIC16F877A. Od pierwszego samouczka do końca będziemy używać tego samego układu scalonego, ponieważ ten układ jest wyposażony we wszystkie zaawansowane funkcje, takie jak SPI, I2C i UART itp. Ale jeśli nie dostaniesz żadnej z tych rzeczy teraz, wszystko jest w porządku, będziemy przejść przez każdy samouczek i wreszcie wykorzystać wszystkie wyżej wymienione funkcje.
Po wybraniu układu scalonego bardzo ważne jest przeczytanie arkusza danych układu scalonego. To powinien być pierwszy krok w realizacji jakiejkolwiek koncepcji, którą zamierzamy wypróbować. Teraz, ponieważ wybraliśmy ten PIC16F877A, przeczytajmy specyfikację tego układu scalonego w arkuszu danych.
Funkcja urządzeń peryferyjnych wspomina, że ma 3 timery, z których dwa są 8-bitowe, a jeden to 16-bitowy preskaler. Te timery są używane do tworzenia funkcji czasowych w naszym programie. Mogą również służyć jako liczniki. Pokazuje również, że ma opcje CCP (Capture Compare i PWM), które pomagają nam generować sygnały PWM i odczytywać przychodzące sygnały częstotliwości. Do komunikacji z urządzeniem zewnętrznym posiada SPI, I2C, PSP i USART. Ze względów bezpieczeństwa jest wyposażony w Brown-Out Reset (BOR), który pomaga w resetowaniu programu while.
Funkcje analogowe, wskazują, że układ scalony ma 10-bitowy 8-kanałowy przetwornik ADC. Oznacza to, że nasz układ scalony może konwertować wartości analogowe na cyfrowe z rozdzielczością 10-bitową i ma 8 analogowych pinów do ich odczytu. Mamy również dwa wewnętrzne komparatory, których można użyć do bezpośredniego porównania przychodzącego napięcia, bez faktycznego odczytywania ich przez oprogramowanie.
Specjalne cechy mikrokontrolera oznaczają, że ma on 100 000 cykli kasowania / zapisu, co oznacza, że można go zaprogramować około 100 000 razy. In-Circuit Serial Programming ™ (ICSP ™), pomaga nam programować układ scalony bezpośrednio przy użyciu PICKIT3. Debugowanie można przeprowadzić za pomocą debugowania w obwodzie (ICD). Kolejną funkcją bezpieczeństwa jest Watchdog Timer (WDT), który jest niezależnym zegarem, który w razie potrzeby resetuje cały program.
Poniższy obraz przedstawia pinouty naszego układu scalonego PIC16F877A. Ten obraz przedstawia każdy pin w porównaniu z jego nazwą i innymi cechami. Można to również znaleźć w arkuszu danych. Zachowaj ten obraz pod ręką, ponieważ pomoże nam podczas prac nad sprzętem.
Wybór oprogramowania do naszych samouczków:
Mikrokontroler PIC można zaprogramować za pomocą różnych programów dostępnych na rynku. Są ludzie, którzy nadal używają języka asemblera do programowania MCU PIC. Do naszych samouczków wybraliśmy najbardziej zaawansowane oprogramowanie i kompilator, które zostały opracowane przez samą firmę Microchip.
Aby zaprogramować mikrokontroler PIC, będziemy potrzebować IDE (Integrated Development Environment), w którym odbywa się programowanie. Kompilator, gdzie nasz program zostanie przekształcony MCU postaci czytelnej zwanych plików HEX. IPE (Zintegrowane środowisko programistyczne), który jest używany do zrzutu nasz plik hex do naszego mikrokontrolerów PIC.
IDE: MPLABX v3.35
IPE: MPLAB IPE v3.35
Kompilator: XC8
Firma Microchip udostępniła wszystkie te trzy programy za darmo. Można je pobrać bezpośrednio z ich oficjalnej strony. Podałem również link dla Twojej wygody. Po pobraniu zainstaluj je na swoim komputerze. Jeśli masz z tym jakiś problem, możesz obejrzeć wideo podane na końcu.
Do symulacji użyliśmy oprogramowania o nazwie PROTEUS 8, dostarczonego przez Labcenter. To oprogramowanie może służyć do symulacji naszego kodu wygenerowanego za pomocą MPLABX. Istnieje bezpłatne oprogramowanie demonstracyjne, które można pobrać z ich oficjalnej strony za pośrednictwem łącza.
Przygotowanie ze sprzętem:
Wszystkie nasze samouczki kończą się sprzętem. Aby nauczyć się PIC w najlepszy możliwy sposób, zawsze zaleca się przetestowanie naszych kodów i obwodów na sprzęcie, ponieważ niezawodność symulacji jest znacznie mniejsza. Kody działające w oprogramowaniu do symulacji mogą nie działać zgodnie z oczekiwaniami na sprzęcie. Dlatego będziemy budować własne obwody na płytach Perf, aby zrzucić nasze kody.
Zrzucić lub przesłać na nasz kod PIC, musimy PICkit 3. PICKIT 3 programator / debugger jest prostym, tanim debugger w obwodzie, który jest sterowany za pomocą komputera z systemem MPLAB IDE v8.20 (lub wyższej) oprogramowania na platforma Windows. PICkit 3 programator / debugger jest integralną częścią pakietu narzędzi inżyniera deweloperskich. Oprócz tego będziemy również potrzebować innego sprzętu, takiego jak płyta perf, stacja lutownicza, układy scalone PIC, oscylatory kryształowe, kondensatory itp. Ale będziemy je dodawać do naszej listy w miarę postępów w naszych samouczkach.
Przywiozłem mój PICkit 3 z amazon, wideo z rozpakowywania tego samego można znaleźć na poniższym filmie. Podany jest również link do PICKIT3; cena może być trochę wysoka, ale uwierz mi, że warto zainwestować.