Menu English Ukrainian Rosyjski Strona główna

Bezpłatna biblioteka techniczna dla hobbystów i profesjonalistów Bezpłatna biblioteka techniczna


ENCYKLOPEDIA RADIOELEKTRONIKI I INŻYNIERII ELEKTRYCZNEJ
Darmowa biblioteka / Schematy urządzeń radioelektronicznych i elektrycznych

Mikrokontroler PIC16C84. Krótki opis. Encyklopedia elektroniki radiowej i elektrotechniki

Bezpłatna biblioteka techniczna

Encyklopedia radioelektroniki i elektrotechniki / Mikrokontrolery

Komentarze do artykułu Komentarze do artykułu

Ten opis nie jest kompletny i zawiera szereg błędów i literówek. Pełną dokumentację można uzyskać u dystrybutorów firmy Microchip, których adresy podane są na końcu pliku.

Wprowadzenie

PIC16C84 należy do rodziny mikrokontrolerów CMOS. Różni się tym, że posiada wewnętrzną pamięć EEPROM 1K x 14 bitów dla programów, dane 8-bitowe oraz 64 bajtową pamięć EEPROM pamięci danych. Jednocześnie charakteryzują się niskim kosztem i wysoką wydajnością. Użytkownicy zaznajomieni z rodziną PIC16C5X mogą zobaczyć szczegółową listę różnic między nowymi a poprzednio produkowanymi sterownikami. Wszystkie instrukcje są jednym słowem (szerokość 14 bitów) i wykonywane są w jednym cyklu (400 ns przy 10 MHz), z wyjątkiem instrukcji skoku, które są wykonywane w dwóch cyklach (800 ns). PIC16C84 ma czteroźródłowe przerwanie i ośmiopoziomowy stos sprzętowy.

Urządzenia peryferyjne obejmują 8-bitowy zegar/licznik z 8-bitowym programowalnym preskalerem (w rzeczywistości 16-bitowy zegar) i 13 dwukierunkowych linii we/wy. Wysoka obciążalność (maks. ujście 25 mA, ujście 20 mA) linii we/wy upraszcza zewnętrzne sterowniki, a tym samym zmniejsza całkowity koszt systemu. Rozwój oparty na sterownikach PIC16C84 jest wspierany przez asembler, symulator oprogramowania, emulator w układzie (tylko Microchip) oraz programator.

Seria PIC16C84 nadaje się do szerokiego zakresu zastosowań, od szybkich obwodów sterowania silnikami samochodowymi i silnikami elektrycznymi po ekonomiczne zdalne nadajniki-odbiorniki, przyrządy wskazujące i procesory komunikacyjne. Obecność pamięci ROM pozwala dostosować parametry w programach użytkowych (kody nadajnika, prędkości silnika, częstotliwości odbiornika itp.).

Małe rozmiary obudów, zarówno konwencjonalne, jak i montowane powierzchniowo, sprawiają, że ta seria mikrokontrolerów nadaje się do zastosowań przenośnych. Niska cena, ekonomiczność, szybkość, łatwość obsługi i elastyczność we/wy sprawiają, że PIC16C84 jest atrakcyjny nawet w obszarach, w których mikrokontrolery nie były wcześniej używane. Na przykład zegary zastępujące twardą logikę w dużych systemach, koprocesory.

Należy dodać, że wbudowany programator EEPROM PIC16C84 ułatwia dostosowanie programu i danych do określonych wymagań nawet po zakończeniu montażu i testowania. Możliwość tę można wykorzystać zarówno do replikacji, jak i do wprowadzania danych kalibracyjnych po końcowym teście.

Przegląd funkcji

- tylko 35 prostych poleceń;

- wszystkie komendy wykonywane są w jednym cyklu (400ns), z wyjątkiem komend przejścia -2 cykle;

- częstotliwość pracy 0 Hz ... 10 MHz (min 400 ns cykl poleceń)

- 14 - bitowe polecenia;

- 8 - bitowe dane;

- 1024 x 14 elektrycznie reprogramowalna pamięć programu na chipie (EEPROM);

- 36 x 8 rejestrów ogólnego użytku;

- 15 specjalnych rejestrów sprzętowych SFR;

- 64 x 8 elektrycznie reprogramowalna pamięć EEPROM na dane;

- ośmiopoziomowy stos sprzętowy;

- bezpośrednie, pośrednie i względne adresowanie danych i poleceń;

- cztery źródła przerwań:

. wejście zewnętrzne INT

. Przepełnienie timera RTCC

. przerwanie przy zmianie sygnałów na liniach portu B

. po zakończeniu zapisu danych do pamięci EEPROM

Urządzenia peryferyjne i I/O

- 13 linii I/O z indywidualnymi ustawieniami;

- Prąd zlewu/zlewu do sterowania diodami LED

. maksymalny prąd wejściowy - 25 mA

. maksymalny prąd płynący - 20 mA

- 8-bitowy timer/licznik RTCC z 8-bitowym programowalnym preskalerem;

- automatyczny reset po włączeniu;

- licznik czasu włączenia przy resecie;

- zegar startowy generatora;

- Zegar Watchdog WDT z własnym wbudowanym generatorem zapewniającym zwiększoną niezawodność;

- bit bezpieczeństwa EEPROM do ochrony kodu;

- ekonomiczny tryb SLEEP;

- wybierane przez użytkownika bity do ustawienia trybu napędu wbudowanego oscylatora:

- Generator RC: RC

- konwencjonalny rezonator kwarcowy : XT

- rezonator kwarcowy wysokiej częstotliwości : HS

- ekonomiczny kryształ niskiej częstotliwości : LP

- wbudowany programator pamięci EEPROM programów i danych; używane są tylko dwie nogi.

Technologia CMOS

- ekonomiczna, szybka technologia CMOS EPROM;

- zasada statyki w architekturze;

- szeroki zakres napięć zasilających i temperatur:

. handlowe: 2.0...6.0 V, 0...+70C

. przemysłowe: 2.0 ... 6.0 V, -40...+70С

. samochodowy: 2.0...6.0 V, -40...+125C

- niska konsumpcja

. 3 mA typowo dla 5V, 4MHz

. 50 µA typowo dla 2V, 32kHz

. 26µA typowe dla trybu SLEEP przy 2V.

Schemat strukturalny PIC16C84

Mikrokontroler PIC16C84. Krótki opis

Architektura oparta jest na koncepcji oddzielnych szyn i obszarów pamięci dla danych i poleceń (architektura Harvarda). Szyna danych i pamięć danych (RAM) mają szerokość 8 bitów, a szyna programu i pamięć programu (ROM) mają szerokość 14 bitów. Ta koncepcja zapewnia prosty, ale potężny zestaw instrukcji zaprojektowany tak, aby operacje na bitach, bajtach i rejestrach działały z dużą szybkością i nakładały się na cykle pobierania i wykonywania instrukcji. 14-bitowa szerokość pamięci programu umożliwia pobranie 14-bitowej instrukcji w jednym cyklu. Dwustopniowy potok zapewnia jednoczesne pobieranie i wykonywanie instrukcji Wszystkie instrukcje są wykonywane w jednym cyklu, z wyjątkiem instrukcji skoku. PIC16C84 ma pamięć programu 1K x 14 umieszczoną na chipie. Program wykonywalny może znajdować się tylko we wbudowanej pamięci ROM.

Różnice między PIC16C84 i PIC16C5x

1. Długość polecenia zwiększona do 14 bitów. Pozwala to na zorganizowanie pamięci ROM i RAM ze zwiększonym rozmiarem strony: odpowiednio (2 KB zamiast 512 bajtów), (128 bajtów zamiast 32 bajtów).

2. Wysoki rejestr licznika programu (PCLATH) steruje przełączaniem stron w pamięci programu. Bity wyboru strony PA2, PA1, PA0, które zostały użyte do tego w krysztale PIC16C5X, są usuwane z rejestru STATUS.

3. Zmodyfikowano stronicowanie pamięci i rejestr STATUS.

4. Dodano cztery nowe komendy: RETURN, RETFIE, ADDLW, SUBLW. Dwa polecenia TRIS i OPTION nie są już potrzebne, ale są zachowane dla zgodności oprogramowania z PIC16C5X.

5. Rejestry OPTION i TRIS są adresowane za pomocą numeru.

6. Dodano możliwość pracy na przerwaniach. Wektor=0004h.

7. Rozmiar stosu zwiększony do ośmiu poziomów.

8. Zmieniono adres resetowania po włączeniu na 0000h.

9. Rozpoznawanych jest pięć różnych typów resetów (wyjścia z trybu SLEEP). Zmieniono inicjalizację rejestru. Są one ustawiane różnie, w zależności od rodzaju resetu.

10. Dodano wyjście z trybu SLEEP przez przerwanie.

11. Aby zapewnić bardziej niezawodne uruchamianie, dodano następujące opóźnienia sprzętowe: zegar startowy (OST) i zegar włączania (PWRT). Te timery mogą być używane selektywnie, aby uniknąć niepotrzebnych opóźnień, zarówno podczas włączania, jak i wychodzenia z trybu SLEEP.

12. Port B ma aktywne obciążenia i przerwanie, gdy zmieniają się sygnały wejściowe.

13. Noga RTCC jest wyrównana z nogą portu (RA4).

14. Adres rejestru 07h (port C) nie istnieje i nie jest rejestrem ogólnego przeznaczenia.

15. Rejestr FSR (f4), który przechowuje wskaźnik z adresowaniem pośrednim, ma szerokość ośmiu bitów.

16. Zaimplementowana wbudowana maszyna do programowania EEPROM. Użytkownik może zaprogramować PIC16C84 używając tylko pięciu pinów: Vdd, Vss, /MCLR/Vpp, RB6 (zegar), RB7 (wejście/wyjście danych).

Przejście z PIC16C5x na PIC16C84

Aby przekonwertować kod napisany dla PIC16C5X na kod dla PIC16C84, użytkownik musi wykonać następujące czynności:

1. Zastąp operacje wyboru stron pamięci programu (bity PA2, PA1, PA0) komendami CALL, GOTO.

2. Przejrzyj wszystkie obliczone operacje skoku (zapis do komputera lub dodanie do komputera itp.) i upewnij się, że bity strony są również prawidłowo ustawione dla nowego układu.

3. Wyeliminuj przełączanie stron pamięci danych. Przedefiniuj zmienne i ponownie przydziel im pamięć.

4. Sprawdź wpis w rejestrach STATUS, OPCJA, FSR, ponieważ są nieco zmodyfikowane.

5. Zmień wektor resetowania po włączeniu na 0000h.

6. Zauważ, że adres 07h jest nieistniejącym adresem pamięci danych.

Rodzaje i wersje obudów

Oznaczenia opakowań dla kryształów PIC16C8x. Rodzaj opakowania jest wskazany w oznakowaniu przy zamawianiu mikroukładów. Walizki mają tylko 18 pinów. PDIP - Plastikowa dwurzędowa obudowa. Używany do wersji OTP EPROM kryształów. SOIC - Mały pakiet do montażu powierzchniowego DIP

Projekty chipów występują w trzech typach: komercyjnym, przemysłowym i motoryzacyjnym. Ich główna różnica polega na zakresie temperatur i napięciu roboczym.

Wykonanie komercyjne

Temperatura pracy 0 ... +70 C

Napięcie robocze 3.0 ... 5.5 V

Wersja przemysłowa

Temperatura pracy -40 .... +85 C

Napięcie robocze 3.0 ... 5.5 V

Wersja pojazdu

Temperatura pracy -40 ... +125 C

Napięcie robocze 3.0 ... 5.5 V

Oznaczenie przy zamówieniu

Oznaczenie mikroukładów składa się z następujących pól:

<Numer firmy>-<Częstotliwość generatora><Zakres temperatur>/<Body><Uwaga>

<numer firmy może być>: PIC16C84 - Zakres Vdd 4...6 V

PIC16LC84 Zakres Vdd 2...6 V

<Częstotliwość źródła>: 04 ---> 4 mHz

10 ---> 10mHz

Zakres temperatur to:

- od 0С do +70С

Ja od -40С do +85С

E od -40С do +125С

Ciało jest oznaczone:

P - zwykły plastikowy DIP

SO-300 mln SOIC

PRZYKŁADY:

PIC16C84-04/Pxxx 4 mHz, wersja komercyjna w pakiecie PDIP, normalny zakres Vdd, maska ​​ROM z programem xxx

PIC16LC84-04I/SO 4 mHz, wersja przemysłowa, rozszerzony zakres mocy, obudowa=SOIC

PIC16C84-10E/P wersja samochodowa, 10 mHz, PDIP, typ. jedzenie

Układ nóg

Funkcje pinów można znaleźć w rozdziale „Oznaczenia pinów” lub na schemacie blokowym. Typy obudów PDIP itp., patrz Obudowy.

Mikrokontroler PIC16C84. Krótki opis

Cel nóg

Oznaczenia nóg i ich przeznaczenie funkcjonalne.

Mikrokontroler PIC16C84. Krótki opis

Maksymalne wartości parametrów elektrycznych

Parametry wykraczające poza te limity mogą uszkodzić chip. Praca kryształu na jego wartościach granicznych przez długi czas wpłynie na jego niezawodność.

Mikrokontroler PIC16C84. Krótki opis

Uwagi:

1. Całkowite rozpraszanie mocy nie może przekraczać 800mW dla każdej obudowy. Moc rozpraszaną oblicza się według następującego wzoru:

Pdis= Vdd(Idd - Sum(Ioh)) + Suma ((Vdd - Voh)Ioh) + Suma (Vol Iol)

2. Spadek napięcia na pinie /MCLR poniżej Vss (masa) powoduje wysokie prądy, powyżej 80mA i może uszkodzić tę linię. Dlatego zalecamy, aby sygnały do ​​pinu /MCLR były doprowadzane przez rezystor zakończeniowy 50-100 omów.

Przegląd rejestrów i pamięci RAM

Obszar RAM jest zorganizowany jako 128 x 8. Komórki RAM mogą być adresowane bezpośrednio lub pośrednio przez rejestr wskaźników FSR (04h). Dotyczy to również EEPROM stałej pamięci danych.

Mikrokontroler PIC16C84. Krótki opis

Rejestr stanu (03h) zawiera bity wyboru strony, które umożliwiają dostęp do czterech stron przyszłych wersji tego układu. Jednak w przypadku PIC16C84 pamięć danych istnieje tylko do adresu 02Fh. Pierwszych 12 adresów służy do przechowywania rejestrów specjalnego przeznaczenia.

Rejestry o adresach 0Ch-2Fh mogą być używane jako rejestry ogólnego przeznaczenia, które są statyczną pamięcią RAM. Niektóre rejestry specjalnego przeznaczenia są zduplikowane na obu stronach, a niektóre znajdują się osobno na stronie 1. Gdy ustawiona jest strona 1, dostęp do adresów 8Ch-AFh faktycznie adresuje stronę 0. Rejestry mogą być adresowane bezpośrednio lub pośrednio. W obu przypadkach można zaadresować do 512 rejestrów.

Adresowanie bezpośrednie

Gdy wykonywane jest bezpośrednie adresowanie 9-bitowe, dolne 7 bitów jest brane jako adres bezpośredni z kodu operacyjnego i dwa bity wskaźnika strony (RP1, RP0) z rejestru stanu (03h).

Mikrokontroler PIC16C84. Krótki opis

Adresowanie pośrednie

f4 - pośredni wskaźnik adresu

Każda instrukcja, która używa f0 (adres 00) jako rejestru, faktycznie uzyskuje dostęp do wskaźnika, który jest przechowywany w FSR (04h). Pośrednie odczytanie f0 da w wyniku 00h. Zapis do rejestru f0 będzie domyślnie wyglądał jak Nop, ale bity stanu można zmienić. Wymagany 9-bitowy adres jest tworzony przez połączenie zawartości 8-bitowego rejestru FSR i bitu IRP z rejestru statusu.

Mikrokontroler PIC16C84. Krótki opis

Zauważ, że niektóre rejestry funkcji specjalnych znajdują się na stronie 1. Aby je zaadresować, musisz dodatkowo ustawić bit RP0 w rejestrze stanu na jeden.

Zegar/licznik RTCC

Schemat blokowy RTCC jest pokazany poniżej. Zawiera element „MUX” - jest to przełącznik elektroniczny.

Mikrokontroler PIC16C84. Krótki opis

Tryb timera wybiera się poprzez zerowanie bitu RTS w rejestrze OPTION. W trybie timera, RTCC będzie inkrementowany od WEWNĘTRZNEGO źródła częstotliwości - w każdym cyklu komendy (bez preskalera).

Po zapisaniu informacji do RTCC, rozpocznie się inkrementacja po dwóch cyklach instrukcji. Dzieje się tak ze wszystkimi instrukcjami, które zapisują lub odczytują-modyfikują-zapisują f1 (np. MOVF f1, CLRF f1). Można tego uniknąć, zapisując dostosowaną wartość do RTCC. Jeśli RTCC musi być sprawdzone pod kątem zera bez zatrzymywania zliczania, użyj instrukcji MOVF f1,W.

Tryb licznika wybiera się ustawiając bit RTS w rejestrze OPTION na jeden. W tym trybie, RTCC będzie zwiększany o zbocze narastające lub opadające na pinie RA4/RTCC od zdarzeń ZEWNĘTRZNYCH. Kierunek zbocza jest określony przez bit kontrolny RTE w rejestrze OPTION. Przy RTE=0 wybrane zostanie zbocze narastające. Ogranicznik może być używany z zegarem RTCC lub Watchdog. Możliwość podłączenia dzielnika sterowana jest bitem PSA w rejestrze OPCJA. Przy PSA=0 dzielnik zostanie podłączony do RTCC. Zawartość przekładki nie jest dostępna dla programu. Współczynnik podziału - programowalny. Przerwanie RTCC jest generowane, gdy timer/licznik RTCC przepełnia się przy przejściu z FFH na 00h. Następnie ustawiany jest bit żądania RTIF w rejestrze INTCON<2>. To przerwanie może być zamaskowane przez bit RTIE w rejestrze INTCON<5>. Bit żądania RTIF musi zostać wyczyszczony przez oprogramowanie podczas obsługi przerwania. Przerwanie RTCC nie może wybudzić procesora ze stanu SLEEP, ponieważ zegar nie działa w tym trybie.

Problemy z zegarem

Podczas liczenia sygnałów zewnętrznych mogą pojawić się problemy. Sygnały te są bramkowane przez wewnętrzny sygnał zegarowy, patrz schemat SYNC. Pomiędzy narastającym zboczem sygnału wejściowego a czasem narastania RTCC występuje pewne opóźnienie. Bramkowanie odbywa się za ogranicznikiem. Wyjście ogranicznika jest odpytywane dwukrotnie podczas każdego cyklu poleceń w celu określenia narastających i opadających zboczy sygnału wejściowego. Dlatego sygnał Psout musi być wysoki i niski przez co najmniej dwa okresy zegara.

Gdy ogranicznik nie jest używany, Psout powtarza sygnał wejściowy, więc wymagania dla niego są następujące:

Trth= wysoki czas RTCC >= 2tosc+20ns

Trtl= niski czas RTCC >= 2tosc+20ns.

Gdy używany jest ogranicznik, wejście RTCC jest dzielone przez liczbę ustawioną w liczniku dzielnika. Sygnał za ogranicznikiem jest zawsze symetryczny.

Psout wysoki czas = Psout niski czas = NTrt/2,

gdzie Trt jest okresem wejściowym RTCC,

N to wartość licznika dzielnika (2,4...256).

W takim przypadku wymagania dotyczące sygnału wejściowego można wyrazić w następujący sposób:

NTrt/2 >= 2tosc +20ns lub

Trt >= (4tosc + 40ns)/N.

Gdy używany jest ogranicznik, niski i wysoki poziom sygnału na jego wejściu musi wynosić co najmniej 10 ns. W związku z tym ogólne wymagania dotyczące sygnału zewnętrznego po podłączeniu dzielnika są następujące:

Trt= okres RTCC >= (4tosc + 40ns)/N

Trth = wysoki czas RTCC >= 10ns

Trtl = niski czas RTCC >= 10ns.

Ponieważ wyjście ogranicznika jest taktowane przez zegar wewnętrzny, występuje niewielkie opóźnienie między narastającym zboczem zegara zewnętrznego a rzeczywistym czasem narastania RTCC. To opóźnienie wynosi od 3tosc do 7tosc. Tym samym pomiar odstępu między zdarzeniami będzie wykonywany z dokładnością 4tosc (+-400ns przy kwarcu 10 MHz).

Rejestr statusu

Rejestr (f3) zawiera flagi arytmetyczne jednostki ALU, stan resetowania sterownika i bity wyboru strony dla pamięci danych. (f3) jest dostępne dla każdego polecenia, tak jak każdy inny rejestr. Jednak bity TO i PD są ustawiane sprzętowo i nie mogą być zapisywane w statusie przez oprogramowanie. Należy o tym pamiętać podczas wykonywania polecenia przy użyciu rejestru statusu. Na przykład, instrukcja CLRF f3 ustawi wszystkie bity na 1 z wyjątkiem bitów TO i PD, a następnie ustawi bit Z=3. Po wykonaniu tego polecenia rejestr statusu może nie mieć wartości zerowej (ze względu na bity TO i PD) f000=100??XNUMX. Dlatego do zmiany rejestru statusu zaleca się używanie tylko poleceń ustawiania bitów BCF, BSF, MOVWF, które nie zmieniają reszty bitów statusu. Wpływ wszystkich poleceń na bity stanu można zobaczyć w „Opisie poleceń”.

Flagi stanu oprogramowania

Lokalizacja flag w rejestrze statusu jest następująca:

Mikrokontroler PIC16C84. Krótki opis

Dla poleceń ADDWF i SUBWF. Ten bit jest ustawiany, jeśli najważniejsza operacja na bitach skutkuje przeniesieniem. Odejmowanie odbywa się poprzez dodanie dodatkowego kodu drugiego argumentu. Podczas wykonywania instrukcji przesunięcia, ten bit jest zawsze ładowany z LSB lub MSB przesuwanego źródła.

Mikrokontroler PIC16C84. Krótki opis

Dla poleceń ADDWF i SUBWF. Ten bit jest ustawiany, jeśli operacja czwartego bitu skutkuje przeniesieniem. Mechanizm ustawiania bitu przeniesienia dziesiętnego „DC” jest taki sam, z wyjątkiem tego, że monitorowane jest przeniesienie z czwartego bitu.

Z - Flaga wyniku zerowego:

Ustaw, czy wynik operacji arytmetycznej lub logicznej wynosi zero.

PD - Wyłączenie (tryb przechowywania danych):

Ustaw na „1” po włączeniu zasilania lub poleceniu CLRWDT. Zresetuj do „0” za pomocą polecenia SLEEP.

DO - Przekroczono limit czasu. Flaga aktywacji timera watchdoga:

Ustaw na „1” przy włączaniu i poleceniach CLRWDT, SLEEP. Resetuje się do „0” po wygaśnięciu timera WDT.

RP1, RP0 - Bity wyboru strony pamięci danych do adresowania bezpośredniego:

RP1, RP0:

00= Strona 0 (00-7Fh)

01= Strona 1 (80h-FFh)

10= Strona 2 (100-17Fh)

11= Strona 3 (180h-1FFh)

Każda strona zawiera 128 bajtów. Układ PIC16C84 wykorzystuje tylko RP0. W tym układzie RP1 może być używany po prostu jako bit do odczytu/zapisu ogólnego przeznaczenia. Należy jednak pamiętać, że w kolejnych opracowaniach będzie on wykorzystywany.

IRP - Bit wyboru strony pamięci danych do adresowania pośredniego:

IRP0:

0= Strony 0,1 (00h-FFh)

1= Strona 2,3 (100h-1FFh)

Ten bit w krysztale PIC16C84 nie ma sensu używać. Dlatego może być używany jako bit do odczytu/zapisu ogólnego przeznaczenia. Musimy jednak pamiętać, że w kolejnych opracowaniach będzie on wykorzystywany.

Flagi stanu sprzętu

Bity stanu sprzętu TO (przekroczenie limitu czasu) i PD (wyłączenie zasilania). Stan bitów rejestru stanu „TO” i „PD” może określić, co spowodowało „Reset”:

- po prostu włączając zasilanie,

- aktywacja timera watchdoga,

- wyjście ze stanu uśpienia w wyniku wyzwolenia timera watchdoga,

- przez sygnał zewnętrzny /MCLR.

Tylko następujące zdarzenia mogą wpływać na stan tych bitów:

Mikrokontroler PIC16C84. Krótki opis

Uwaga: Bity TO i PD pozostają aktualne do momentu wystąpienia jednego ze zdarzeń wymienionych w tabeli. "0" - Impuls niskiego poziomu na wejściu kryształu /MCLR nie zmienia stanu bitów TO i PD.

Organizacja wbudowanej pamięci ROM

Licznik programu w PIC16C84 ma szerokość 13 bitów i może adresować 8Kx14 bitów pamięci programu. Jednak fizycznie na chipie jest tylko 1Kx14 pamięci (adresy 0000h-03FFh). Adresowanie powyżej 3FFh jest w rzeczywistości adresowaniem tego samego pierwszego kilobajta. Wektor resetowania znajduje się pod adresem 0000h, wektor przerwań znajduje się pod adresem 0004h.

EEPROM PIC16C84 jest przeznaczony do ograniczonej liczby cykli kasowania/zapisu. Aby zapisać do pamięci programu, kryształ musi być wprowadzony w specjalny tryb, w którym napięcie programowania Vprg podawane jest na pin /MCLR, a napięcie zasilania Vdd musi mieścić się w zakresie 4.5V...5.5V. PIC16C84 nie nadaje się do zastosowań, w których program jest często modyfikowany. Zapis do pamięci programu odbywa się krok po kroku, sekwencyjnie przy użyciu tylko dwóch pinów.

Adresowanie PC i ROM

(f2). Licznik programu

Licznik programu ma 13 bitów. Młodszy bajt licznika programu (PCL) jest odczytywany/zapisywany i znajduje się w rejestrze 02h. Starszy bajt licznika programu (PCH) nie może być bezpośrednio odczytywany ani zapisywany. Starszy bajt licznika programu można zapisać poprzez rejestr PCLATH o adresie 0Ah. W zależności od tego, czy nowa wartość jest ładowana do licznika programu podczas instrukcji CALL, GOTO, czy też zapisywany jest młodszy bajt licznika programu (PCL), starsze bity licznika programu są ładowane z PCLATH na różne sposoby, jak pokazano na rysunku.

Przypadek poleceń GOTO, CALL

Mikrokontroler PIC16C84. Krótki opis

Stos i zwroty z podprogramów

Kryształ PIC16C84 ma ośmiopoziomowy, 13-bitowy stos sprzętowy. Obszar stosu nie należy ani do obszaru programu, ani do obszaru danych, a wskaźnik stosu nie jest dostępny dla użytkownika. Bieżąca wartość licznika programu jest odkładana na stos podczas wykonywania instrukcji CALL lub przetwarzania przerwania. Gdy wykonywany jest podprogram instrukcji RETLW , RETFIE lub RETURN , zawartość stosu jest wrzucana do licznika programu. Rejestr PCLATH (0Ah) nie jest zmieniany przez operacje na stosie.

Dane w EEPROM

Nieulotna pamięć danych EEPROM.

Pamięć danych EEPROM pozwala na odczytanie i zapisanie bajta informacji. Podczas zapisywania bajtu poprzednia wartość jest automatycznie usuwana i zapisywane są nowe dane (wymazywanie przed zapisem). Wszystkie te operacje są wykonywane przez wbudowaną nagrywarkę EEPROM. Zawartość tej pamięci jest zachowywana po wyłączeniu zasilania. Kryształ PIC16C84 posiada 64x8 bitową pamięć danych EEPROM, która umożliwia zapis i odczyt podczas normalnej pracy (w całym zakresie napięcia zasilania). Ta pamięć nie należy do obszaru rejestrów RAM. Dostęp do niej uzyskuje się poprzez dwa rejestry: EEDATA <08h>, który zawiera ośmiobitowe dane do odczytu/zapisu oraz EEADR <09h>, który zawiera adres komórki, do której uzyskuje się dostęp. Dodatkowo istnieją dwa rejestry kontrolne: EECON1 <88h> i EECON2 <89h>.

Podczas odczytu danych z pamięci EEPROM należy zapisać żądany adres do rejestru EEADR, a następnie ustawić bit RD EECON1<0> na jeden. Dane pojawią się w następnym cyklu poleceń w rejestrze EEDATA i będą mogły być odczytane. Dane w rejestrze EEDATA są zablokowane.

Przy zapisie do pamięci EEPROM należy najpierw wpisać wymagany adres do rejestru EEADR i dane do rejestru EEDATA. Następnie wykonaj specjalną sekwencję poleceń, która spowoduje nagranie bezpośrednie:

film 55 godz

movwf EECON2

movlv AH

movwf EECON2

bsf EECON1,WR ;ustaw bit WR, rozpocznij nagrywanie

Podczas wykonywania tej sekcji programu wszystkie przerwania muszą być wyłączone, aby dokładnie wykonać wykres czasowy. Czas nagrania -

około 10ms. Rzeczywisty czas zapisu będzie się różnić w zależności od napięcia, temperatury i indywidualnych właściwości kryształu. Pod koniec zapisu bit WR jest automatycznie ustawiany na zero i ustawiana jest flaga zakończenia zapisu EEIF, która jest również żądaniem przerwania.

Aby zapobiec przypadkowym zapisom w pamięci danych, w rejestrze EECON1 przewidziany jest specjalny bit WREN. Zaleca się pozostawienie wyłączonego bitu WREN, z wyjątkiem sytuacji, gdy pamięć danych wymaga odświeżenia. Co więcej, segmenty kodu, które ustawiają bit WREN i te, które wykonują zapis, powinny być przechowywane pod różnymi adresami, aby uniknąć przypadkowego wykonania obu w przypadku awarii programu.

Zarządzanie pamięcią EEPROM

Rejestry kontrolne dla EEPROM

Mikrokontroler PIC16C84. Krótki opis

Rejestry EECON1 i EECON2

Rejestr EECON1 (adres 88h) to pięciobitowy rejestr kontrolny. Dolne pięć bitów jest fizycznie obecnych, podczas gdy górne trzy bity są zawsze odczytywane jako „0”.

Zarejestruj się EECON1 Adres 88h

Zresetuj po włączeniu - 0000X000

Mikrokontroler PIC16C84. Krótki opis

Bity kontrolne RD i WR rozpoczynają odpowiednio odczyt i zapis. Można je ustawić tylko programowo. Czyszczone przez sprzęt po zakończeniu operacji odczytu/zapisu. Wyłączenie resetowania programowego bitu WR zapobiega przedwczesnemu zakończeniu zapisu.

RD - Przeczytaj bit.

RD =1 : Rozpoczyna odczytywanie danych z pamięci EEPROM. Czytanie trwa jeden cykl. Instalowane przez oprogramowanie. Resetowanie sprzętowe.

WR - Napisz bit.

WR =1 : Rozpoczyna zapis do pamięci danych EEPROM.

Instalowane przez oprogramowanie. Resetowanie sprzętowe.

WREN - bit zezwolenia na zapis EEPROM.

WREN = 1: Zapis włączony.

WREN = 0: Zapis wyłączony.

Po włączeniu zasilania WREN jest resetowany do zera.

Flaga błędu WRERR jest ustawiana, gdy proces zapisu zostanie przerwany przez sygnał zerowania /MCLR lub sygnał zerowania z timera WDT. Zalecamy sprawdzenie tej flagi WRERR i w razie potrzeby nadpisanie danych, których dane i adres są przechowywane w rejestrach EEDATA i EEADR.

WRERR — flaga błędu zapisu.

WRERR = 1: Flaga jest ustawiana, gdy operacja zapisu jest przerywana przez sygnał zerowania /MCLR (w trybie normalnym lub w trybie SLEEP) lub przez sygnał zerowania WDT w trybie normalnym.

Flaga EEIF jest ustawiana, gdy wbudowany automat zakończy zapis do pamięci danych. Musi być zresetowany przez oprogramowanie.

EEIF — flaga zakończenia zapisu.

EEIF = 1: Flaga jest ustawiana po zakończeniu zapisu. Odpowiedni bit zezwolenia na przerwanie to EEIE w rejestrze INTCON.

Organizacja przerwań

Przerwania w PIC16C84 mogą pochodzić z czterech źródeł:

- przerwanie zewnętrzne z pinu RB0/INT,

- przerwanie licznika/przepełnienia timera RTCC,

- przerwa na końcu zapisu danych do EEPROM

- przerwanie od zmiany sygnałów na pinach portu RB<7:4>.

Wszystkie przerwania mają ten sam wektor/adres - 0004h. Natomiast w rejestrze sterowania przerwaniami INTCON jest napisane: - z jakiego źródła odebrano żądanie przerwania. Zapisany przez odpowiednią flagę bitową. Takie przerwanie może być maskowane pojedynczo lub przez wspólny bit. Jedynym wyjątkiem jest przerwanie końca zapisu EEPROM. Ta flaga znajduje się w innym rejestrze EECON1.

Bit GIE General Interrupt Enable/Disable (INTCON <7>) włącza (jeśli=1) wszystkie indywidualnie zdemaskowane przerwania lub wyłącza (jeśli=0) je. Każde przerwanie można dodatkowo włączyć/wyłączyć poprzez ustawienie/skasowanie odpowiedniego bitu w rejestrze INTCON. Bit GIE jest ustawiany na zero podczas resetowania. Kiedy przerwanie jest przetwarzane, bit GIE jest ustawiany na zero, aby wyłączyć dalsze przerwania, adres powrotny jest odkładany na stos, a adres 0004h jest ładowany do licznika programu. Czas odpowiedzi na przerwanie dla zdarzeń zewnętrznych, takich jak przerwanie ze styku INT lub portu B, wynosi około pięciu cykli. Jest to o jeden cykl mniej niż w przypadku zdarzeń wewnętrznych, takich jak przerwanie przepełnienia z zegara RTCC. Czas reakcji jest zawsze taki sam. W obsłudze przerwań źródło przerwania może być określone przez odpowiedni bit w rejestrze flag. Ten bit flagi musi zostać skasowany przez oprogramowanie w podprogramie. Flagi żądania przerwania są niezależne od odpowiednich bitów maski i ogólnego bitu maski GIE.

Instrukcja powrotu do przerwania RETFIE kończy procedurę przerwania i ustawia bit GIE, aby ponownie włączyć przerwania.

Rejestr zapytań i masek

Rejestr sterowania przerwaniami i jego bity

Mikrokontroler PIC16C84. Krótki opis

Adres: 0bh

Wartość przy resecie= 0000 000?

RBIF - Zmień flagę przerwania na porcie RB.

Flaga jest ustawiana, gdy zmienia się sygnał na wejściu RB<7:4>.

Flaga jest resetowana programowo.

INTF - flaga przerwania INT.

Flaga jest ustawiana, gdy pin INT odbiera sygnał z zewnętrznego źródła przerwań. Resetowanie przez oprogramowanie.

RTIF – Flaga przerwania przepełnienia RTCC.

Flaga jest ustawiana w przypadku przepełnienia RTCC.

Flaga jest resetowana programowo.

RBIE - Bit włączania/wyłączania przerwań RBIF.

RBIE = 0: wyłącz przerwanie RBIE

RBIE = 1 : włącz przerwanie RBIE

INTE - Bit włącza/wyłącza przerwanie INT.

INTE = 0: wyłącz przerwanie INT

INTE = 1 : włącz przerwanie INT

RTIE Bit włączania/wyłączania przerwań RTIF.

RTIE = 0 : wyłącz przerwanie RTIE

RTIE = 1 : włącz przerwanie RTIE

EEIE - Bit włączenia/wyłączenia przerwania zapisu EEPROM.

EEIE = 0: wyłącz przerwanie EEIF

EEIE = 1 : włącz przerwanie EEIF

GIE Bit włączania/wyłączania wszystkich przerwań.

GIE = ​​​​0: wyłącz przerwania

GIE = ​​1 : włącz przerwania

Resetuje się automatycznie w następujących okolicznościach:

- zasilanie włączone.

- przez sygnał zewnętrzny /MCLR podczas normalnej pracy.

- przez sygnał zewnętrzny /MCLR w trybie UŚPIENIA.

- pod koniec opóźnienia timera WDT podczas normalnej pracy.

- na końcu opóźnienia timera WDT w trybie SLEEP.

Przerwanie zewnętrzne

Zewnętrzne przerwanie na pinie RB0/INT jest wyzwalane albo zboczem narastającym (jeśli bit6 INTEDG=1 w rejestrze OPTION) albo zboczem opadającym (jeśli INTEDG=0). Po wykryciu zbocza narastającego na pinie INT, ustawiany jest bit żądania INTF (INTCON <1>). Przerwanie to można zamaskować przez ustawienie bitu kontrolnego INTE na zero (INTCON <4>). Bit żądania INTF musi zostać wyczyszczony przez program przerwania, zanim przerwanie będzie mogło być ponownie włączone. Przerwanie INT może wybudzić procesor z trybu SLEEP, jeśli bit INTE został ustawiony na jeden przed wejściem w ten tryb.

Stan bitu GIE określa również, czy procesor przejdzie do procedury przerwania po przebudzeniu z trybu SLEEP.

Przerwanie RTCC

Przepełnienie licznika RTCC (FFh->00h) ustawi bit żądania RTIF (INTCON<2>). To przerwanie może być włączone/wyłączone przez ustawienie/skasowanie bitu maski RTIE (INTCON<5>). Resetowanie żądania RTIF zależy od programu przetwarzającego.

Przerwanie portu RB

Każda zmiana sygnałów na czterech wejściach portu RB<7:4> spowoduje ustawienie bitu RBIF (INTCON<0>). To przerwanie może być włączone/wyłączone poprzez ustawienie/skasowanie bitu maski RBIE (INTCON<3>). Resetowanie żądania RBIF zależy od programu przetwarzającego.

przerwanie EEPROM

Flaga żądania przerwania zakończenia zapisu EEPROM, EEIF (EECON1<4>), jest ustawiana po zakończeniu automatycznego zapisu danych do EEPROM. Przerwanie to można zamaskować przez zresetowanie bitu EEIE (INTCON<6>). Zresetowanie wniosku EEIF należy do operatora.

Przegląd rejestru/portów

Kryształ ma dwa porty: 5-bitowy port RA i 8-bitowy port RB z indywidualnym ustawieniem bit po bicie dla wejścia lub wyjścia.

Schemat linii portu A

Port A to port o szerokości 5 bitów, odpowiadający pinom układu RA<4:0>. Linie RA<3:0> są dwukierunkowe, a linia RA4 jest wyjściem z otwartym drenem. Adres rejestru portu A to 05h. Rejestr kontrolny TRISA portu A znajduje się na pierwszej stronie rejestrów pod adresem 85h. TRISA<4:0> to rejestr o szerokości 5 bitów. Jeśli bit w rejestrze kontrolnym TRISA jest ustawiony na jeden, to odpowiednia linia zostanie ustawiona na wejście. Zero przełącza linię na wyjście i jednocześnie wyprowadza do niej zawartość odpowiedniego rejestru zatrzaskowego. Poniżej schemat portów RA0..RA3

Mikrokontroler PIC16C84. Krótki opis
Mikrokontroler PIC16C84. Krótki opis

Mikrokontroler PIC16C84. Krótki opis

Schemat linii portu B

Port B jest portem dwukierunkowym o szerokości ośmiu bitów (adres rejestru 06h). W odniesieniu do portu B rejestr kontrolny TRISB znajduje się na pierwszej stronie rejestrów pod adresem 86h. Jeżeli bit rejestru kontrolnego TRISB jest ustawiony na jeden, to odpowiednia linia zostanie ustawiona na wejście. Zero przełącza linię na wyjście i jednocześnie wyprowadza do niej zawartość odpowiedniego rejestru zatrzaskowego. Każdy pin portu B ma małe obciążenie rezystancyjne (około 100 µA) na linii zasilającej. Jest automatycznie wyłączany, jeśli ten pin jest zaprogramowany jako wyjście. Ponadto bit kontrolny RBPU OPTION<7> może wyłączyć (RBPU=1) wszystkie obciążenia. Reset po włączeniu również wyłącza wszystkie obciążenia.

Cztery linie portu B (RB<7:4>) mają możliwość wywołania przerwania, gdy na którymkolwiek z nich zmieni się wartość sygnału. Jeśli te linie są skonfigurowane jako wejście, są odpytywane i zatrzaskiwane w pętli odczytu Q1. Nowa wartość sygnału wejściowego jest porównywana ze starą w każdym cyklu poleceń. Jeśli wartość sygnału na nodze i w zatrzasku nie zgadza się, generowany jest wysoki poziom. Wyjścia detektorów „niezgodności” RB4, RB5, RB6, RB7 są ORedowane i generują przerwanie RBIF (przechowywane w INTCON<0>). Żadna linia skonfigurowana jako wyjście nie bierze udziału w tym porównaniu. Przerwanie może wybudzić kryształ z trybu SLEEP. W programie obsługi przerwań zresetuj żądanie przerwania w jeden z następujących sposobów:

1) Wyłącz przerwania, czyszcząc bit RBIE INTCON<3>.

2) Odczytaj port B. To zakończy stan porównania.

3) Wyczyść bit RBIF INTCON<0>.

Niedopasowane przerwania i konfigurowalne programowo wewnętrzne aktywne obciążenia na tych czterech liniach mogą zapewnić prosty interfejs, taki jak klawiatura, z wybudzaniem po naciśnięciu klawisza z trybu SLEEP. Noga RB0 jest połączona z wejściem przerwania zewnętrznego INT.

Nazwa

Mikrokontroler PIC16C84. Krótki opis

Problemy z portem

Problemy z organizacją portów dwukierunkowych

-Niektóre polecenia są wewnętrznie wykonywane jako odczyt+zapis. Na przykład instrukcje BCF i BSF odczytują cały port, modyfikują jeden bit i zwracają wynik. Tutaj potrzebna jest ostrożność. Na przykład instrukcja BSF dla bitu 5 rejestru f6 (port B) najpierw odczytuje wszystkie osiem bitów. Bit 5 jest następnie manipulowany i nowa wartość bajtu jest zapisywana w całości do zatrzasków wyjściowych. Jeśli inny bit w rejestrze f6 używa i jako dwukierunkowego we/wy (powiedzmy bit 0) i jest aktualnie zdefiniowany jako wejście, wejście na tym pinie zostanie odczytane i zapisane z powrotem do zatrzasku wyjściowego tego pinu, nadpisując jego poprzedni stan.

Dopóki ten pin pozostaje w trybie wejściowym, nie pojawiają się żadne problemy. Jeśli jednak linia 0 przejdzie później w tryb wyjścia, jej stan będzie niezdefiniowany.

Zewnętrzne źródła prądu („montaż AND”, „montaż OR”) nie powinny „opierać się” na nodze pracującej w trybie wyjścia. Powstające duże prądy mogą uszkodzić kryształ.

Szeregowy dostęp do portów I/O

Zapis do portu wyjściowego następuje pod koniec cyklu poleceń. Ale podczas odczytu dane muszą być stabilne na początku cyklu instrukcji. Uważaj na odczyty bezpośrednio po zapisach do tego samego portu. Tutaj należy wziąć pod uwagę bezwładność ustalania napięcia na zaciskach. Może być wymagane opóźnienie oprogramowania, aby umożliwić ustabilizowanie się napięcia na bolcu (w zależności od obciążenia) przed wykonaniem następnego polecenia odczytu.

Przegląd poleceń i symboli

Każde polecenie PIC16C84 jest 14-bitowym słowem, które jest podzielone według znaczenia na następujące części: - 1. kod operacji, -2. pole dla jednego lub więcej operandów, które mogą lub nie mogą uczestniczyć w tej instrukcji. Zestaw instrukcji PIC16C84 zawiera instrukcje zorientowane bajtowo, instrukcje zorientowane bitowo, operacje stałe i instrukcje transferu sterowania.

W przypadku poleceń zorientowanych bajtowo, „f” oznacza rejestr, na którym ma nastąpić działanie; "d" - bit określa, gdzie umieścić wynik. Jeśli "d"=0 to wynik zostanie umieszczony w rejestrze W, przy "d"=1 wynik zostanie umieszczony w "f" wymienionym w poleceniu. W przypadku instrukcji zorientowanych bitowo, „b” wskazuje numer bitu zaangażowanego w instrukcję, a „f” jest rejestrem, w którym znajduje się ten bit.

W przypadku poleceń transferu i operacji stałych „k” oznacza stałą ośmio- lub jedenastobitową.

Wszystkie polecenia są wykonywane w jednym cyklu poleceń. W dwóch przypadkach wykonanie instrukcji zajmuje dwa cykle instrukcji: -1. sprawdzenie stanu i skok, -2.w rezultacie zmień licznik programu

wykonanie polecenia. Jeden cykl poleceń składa się z czterech okresów generatora. Tak więc, dla oscylatora 4 MHz, czas wykonania cyklu poleceń wyniesie 1 µs.

Polecenia zorientowane na bajty

Mikrokontroler PIC16C84. Krótki opis

Polecenia bitowe

Mikrokontroler PIC16C84. Krótki opis

Przejścia

Mikrokontroler PIC16C84. Krótki opis

Uwagi i wyjaśnienia

Uwaga 1: Polecenia TRIS i OPTION zostały umieszczone na liście poleceń w celu zapewnienia zgodności z rodziną PIC16C5X. Ich stosowanie nie jest zalecane. W PIC16C84 rejestry TRIS i OPTION są dostępne do odczytu i zapisu, podobnie jak rejestry numerowane. Należy pamiętać, że te polecenia mogą nie być obsługiwane w przyszłych wersjach PIC16CXX. Uwaga 2: Gdy rejestr I/O jest modyfikowany, np. MOVF 6,1, wartość używana do modyfikacji jest odczytywana bezpośrednio z pinów układu. Jeśli wartość zatrzasku wyjścia dla pinu zaprogramowanego na wyjście wynosi „1”, ale sygnał zewnętrzny na tym pinie ma wartość „0” z powodu „wybrzuszenia” na zewnątrz, to odczytane zostanie „0”. Uwaga 3: Jeśli operandem tej instrukcji jest f1 (i d=1, jeśli dozwolone), to dzielnik, jeśli jest podłączony do RTCC, zostanie ustawiony na zero.

Zresetuj warunki

W PIC16C84 istnieją różnice między opcjami resetowania:

1) Reset po włączeniu.

2) Zewnętrzny reset /MCLR podczas normalnej pracy.

3) Zewnętrzny reset /MCLR w trybie UŚPIENIA.

4) Zresetuj po zakończeniu opóźnienia timera WDT podczas normalnej pracy.

5) Zresetuj po zakończeniu opóźnienia timera WDT w trybie SLEEP.

Niektóre rejestry specjalne nie są inicjalizowane po zresetowaniu. Mają losowy stan podczas włączania i nie zmieniają się wraz z innymi typami resetów. Pozostała część rejestrów specjalnych jest inicjowana do „stanu resetowania” dla wszystkich typów resetów, z wyjątkiem resetowania na końcu opóźnienia timera WDT w trybie SLEEP. Tyle, że ten reset jest traktowany jako chwilowe opóźnienie w normalnej pracy. Jest jeszcze kilka wyjątków. Licznik programu jest zawsze zerowany (0000h). Bity stanu TO i PD są ustawiane lub kasowane w zależności od opcji resetowania. Bity te są używane przez oprogramowanie do określenia charakteru resetowania. Ich wartości po resecie pokazane są w tabeli. Stan rejestrów po resecie przedstawia tabela. Akceptowane są tam zapisy: i-nie zmienia się, x - nieznany, - nie wykonywany, odczytywany jako `0`. ? - zostanie ustawiony na końcu zapisu do EEPROM

Mikrokontroler PIC16C84. Krótki opis

Algorytm resetowania po włączeniu zasilania

Kryształ PIC16C84 ma wbudowany detektor po włączeniu zasilania. Licznik startowy rozpoczyna odliczanie opóźnienia po przekroczeniu przez napięcie zasilania poziomu około 1,2...1,8 V. Po opóźnieniu około 72ms uważa się, że napięcie osiągnęło swoją wartość nominalną i rozpoczyna się kolejna zwłoka połówkowa, aby ustabilizować oscylator kwarcowy. Programowalny bit konfiguracji umożliwia włączenie lub wyłączenie opóźnienia we wbudowanym zegarze startowym. Czas uruchamiania różni się w zależności od instancji kryształów, mocy i temperatury. Zobacz specyfikacje DC.

Zegar stabilizacji generatora odlicza 1024 impulsy z generatora, który rozpoczął pracę. Uważa się, że w tym czasie oscylator kwarcowy wszedł w tryb. Podczas korzystania z generatorów RC ekspozycja na stabilizację nie jest wykonywana.

Zewnętrzny zegar oczekiwania na reset /MCLR jest wtedy włączony. Jest to konieczne w przypadkach, gdy wymagane jest synchroniczne uruchomienie kilku kontrolerów PIC za pośrednictwem wspólnego sygnału /MCLR dla wszystkich. Jeżeli taki sygnał nie zostanie odebrany, to po czasie Tost generowany jest wewnętrzny sygnał resetu i sterownik rozpoczyna wykonywanie programu. Czas Tost jest programowany przez bity konfiguracyjne w pamięci EEPROM. Występuje tutaj problem polegający na tym, że Vdd rośnie zbyt wolno i wszystkie opóźnienia są przy rozruchu, a moc nie osiągnęła jeszcze minimalnej wartości zdrowia Vdd(min). W takich przypadkach zalecamy użycie zewnętrznych łańcuchów RC w celu zresetowania do /MCLR. Poniżej znajduje się łańcuch

Mikrokontroler PIC16C84. Krótki opis

Tutaj możesz użyć diody, aby szybko rozładować kondensator po wyłączeniu zasilania. Zalecany jest rezystor R < 40 kΩ, wtedy spadnie na niego nie więcej niż 0,2 V. Rezystor 100 omów

Zegar Watch Dog

Watchdog timer jest całkowicie niezależnym wbudowanym generatorem RC, który nie wymaga żadnych zewnętrznych obwodów. Będzie działać, nawet jeśli główny oscylator zostanie zatrzymany, tak jak w przypadku polecenia SLEEP. Timer generuje sygnał resetu. Generowanie takich resetów można wyłączyć, wpisując zero do specjalnego bitu konfiguracyjnego WDTE. Ta operacja jest wykonywana na etapie spalania mikroukładów.

Opóźnienie WDT

Nominalne opóźnienie WDT wynosi 18 ms (bez użycia dzielnika). Zależy to od temperatury, napięcia zasilania, od cech typów mikroukładów. Jeśli wymagane są duże opóźnienia, do WDT można podłączyć wbudowany dzielnik o współczynniku podziału do 1:128; który jest programowany przez zapis do rejestru OPCJA. Tutaj można realizować ekspozycje do 2.5 sekundy.

Polecenia „CLRWDT” i „SLEEP” resetują WDT i dzielnik, jeśli jest podłączony do WDT. Powoduje to rozpoczęcie opóźnienia od początku i zapobiega na chwilę generowaniu sygnału resetowania. Jeżeli pojawi się sygnał resetujący z WDT, wówczas bit „TO” w rejestrze stanu (f3) jest jednocześnie resetowany. W aplikacjach o wysokim poziomie szumów zawartość rejestru OPCJA jest podatna na awarię. Dlatego rejestr OPTION musi być aktualizowany w regularnych odstępach czasu.

Należy zauważyć, że najgorsza kombinacja to: Vdd=min, temperature=max i max współczynnik dzielący, co prowadzi do największego opóźnienia czasowego, które może wynosić nawet kilka sekund.

Rodzaje generatorów

Kryształy PIC16C84 mogą współpracować z czterema rodzajami wbudowanych oscylatorów. Użytkownik może zaprogramować dwa bity konfiguracyjne (FOSC1 i FOSC0), aby wybrać jeden z czterech trybów: RC, LP, XT, HS.

Kryształy PIC16... mogą być również taktowane ze źródeł zewnętrznych. Oscylator zbudowany na rezonatorach kwarcowych lub ceramicznych wymaga okresu stabilizacji po włączeniu zasilania. Aby to zrobić, wbudowany zegar uruchamiania oscylatora utrzymuje urządzenie w stanie resetowania przez około 18 ms po tym, jak sygnał na pinie układu /MCLR osiągnie logiczny jeden poziom. Dlatego w wielu przypadkach zewnętrzny łańcuch RC skojarzony z /MCLR nie jest wymagany.

Wbudowane generatory działają przy określonych wartościach napięcia zasilania:

Mikrokontroler PIC16C84. Krótki opis

UWAGA! Przy częstotliwościach poniżej 500 kHz wewnętrzny oscylator może generować wadliwy impuls harmoniczny, gdy zostanie przełączony bit 0 portu A. Nie dzieje się tak, gdy używany jest zewnętrzny oscylator lub wbudowany oscylator RC.

Generator kwarcowy

PIC16C84-XT, -HS lub -LP wymagają podłączenia rezonatora kryształowego lub ceramicznego do pinów OSC1 i OSC2.

Mikrokontroler PIC16C84. Krótki opis

Oznaczenia są następujące: XT - standardowy oscylator kwarcowy, HS - oscylator kwarcowy wysokiej częstotliwości, LP - oscylator niskoczęstotliwościowy do zastosowań ekonomicznych. Rezystor Rs może być wymagany dla oscylatora „HS”, zwłaszcza poniżej 20 MHz, aby wytłumić harmoniczne. Może być również wymagany w trybie XT z rezonatorem AT typu strip-cut. Dobór kondensatorów do rezonatora ceramicznego.

Mikrokontroler PIC16C84. Krótki opis

Większa pojemność zwiększy stabilność generatora, ale także wydłuży czas uruchamiania. Podane wartości mają charakter wyłącznie orientacyjny. W trybach HS i XT może być wymagany szeregowy rezystor Rs, aby uniknąć harmonicznych.

generator rc.

Gdy prędkość i dokładność pomiaru czasu nie są wymagane, kryształ OTP, taki jak PIC16C84-RC, oszczędza pieniądze i implementuje prosty oscylator RC.

Mikrokontroler PIC16C84. Krótki opis

Częstotliwość jest funkcją napięcia zasilania, rezystora Rext, kondensatora Cext i temperatury. Ponadto częstotliwość oscylatora będzie się nieznacznie różnić w zależności od partii. Na częstotliwość generowania wpływa wewnętrzna pojemność obudowy kryształu, jej wpływ jest zauważalny dla małych wartości Cext. Należy również wziąć pod uwagę dryf elementów R i C. Dla wartości Rext poniżej 2.2 kΩ generator może być niestabilny lub nie uruchamiać się. Przy bardzo wysokich wartościach Rext (np. 1 MΩ) generator staje się wrażliwy na zakłócenia, wilgoć i upływ prądu instalacji.

Zalecana wartość Rext wynosi od 5 kΩ do 100 kΩ. Chociaż oscylator działa bez zewnętrznego kondensatora (Cext = 0), zalecamy stosowanie pojemności większej niż 20 pF w celu zwiększenia stabilności. Przy niewielkim lub żadnym Cext częstotliwość oscylatora jest silnie zależna od pojemności montażowych. Rozrzut będzie tym większy, im większa wartość R (i mniejsza wartość C (ponieważ w tym przypadku efekt pojemności montażowych jest bardziej wyraźny).

Częstotliwość oscylatora podzielona przez 4 sygnały jest obecna na pinie OSC2/CLKOUT i może być używana do testowania lub do celów czasowych dla innych obwodów.

pobudzenie zewnętrzne

Mikrokontroler PIC16C84. Krótki opis

Rejestr OPCJI

Rejestr OPTION (adres 81h) jest dostępny do odczytu i zapisu i zawiera różne bity kontrolne, które określają konfigurację ogranicznika, do którego jest podłączony: do RTCC lub WDT, znak przodu zewnętrznego przerwania INT i sygnał zewnętrzny dla RTCC, połączenie aktywnego obciążenia na porcie RB.

Zarejestruj OPCJA Adres 81h

Wartość po włączeniu = FFH

Mikrokontroler PIC16C84. Krótki opis

PSA - Bit łączący dzielnik do: 0 - RTCC

1-WDT

RTE - Zbocze zewnętrznego sygnału RTCC:

0 - przyrost zbocza narastającego na pinie RTCC

1 - przyrost ujemnego zbocza na pinie RTCC

RTS - Źródło sygnału dla RTCC

0 - sygnał z wewnętrznego generatora

1 - Sygnał zewnętrzny na odnodze RTCC

INTEDG - Zbocze sygnałowe INT:

0 - przerwa na ujemnym zboczu na pinie INT

1 - przerwanie zbocza dodatniego na pinie INT

/RBPU — Odwrócony bit połączenia obciążenia aktywnego do portu B.

/RBPU = 0: Aktywne obciążenia zostaną podłączone zgodnie z algorytmem portu RB

/RBPU = 1: Aktywne obciążenia portu B są zawsze wyłączone

Połączenia dzielnika częstotliwości

Ten sam ośmiobitowy licznik można włączyć przed RTCC lub po zegarze Watchdog. Pamiętaj, że dzielnik działa tylko z jednym z tych urządzeń. Powtarzamy, jeśli dzielnik współpracuje z RTCC, oznacza to, że w tej chwili nie działa z zegarem Watchdog i odwrotnie. Schemat włączania licznika (patrz rozdział RTCC:RTCC}. Bity PSA i PS0-PS2 w rejestrze OPTION określają, z którym urządzeniem pracuje dzielnik oraz ustawienie współczynnika podziału. Gdy dzielnik jest podłączony do RTCC, wszystkie polecenia, które zapisują do RTCC ( na przykład , CLRF 16 MOVWF 1, BSF 1,x... itd.) zresetuje dzielnik. Gdy jest podłączony do timera Watchdog, limiter wraz z timerem Watchdog zresetuje polecenie CLRWDT. fragment programu do przełączania z RTCC na WDT

1. MOVLW B`xx0x0xxx` ;wybierz wewnętrzny zegar i nową ;wartość dla dzielnika. Jeśli nowa wartość ; dzielnik to

2. OPCJA ;`000` lub `001`, należy tymczasowo wybrać ;inną wartość dzielnika.

3. CLRF 1 ;zresetuj RTCC i dzielnik.

4. MOVLW B`xxxx1xxx` ;wybierz WDT bez zmiany wartości dzielnika.

5. OPCJA

6. CLRWDT ;zresetuj WDT i dzielnik.

7. MOVLW B`xxxx1xxx` ;wybierz nową wartość dla dzielnika.

8. OPCJA

Pozycje 1 i 2 są wymagane tylko wtedy, gdy do RTCC zostało podłączone zewnętrzne źródło impulsów. Pozycje 7 i 8 są wymagane, gdy współczynnik

podział powinien być ustawiony na „000” lub „001”.

Przełączanie rozdzielacza z WDT na RTCC

1. CLRWDT ;zresetuj WDT i dzielnik.

2. MOVLW B`xxxx0xxx` ;wybierz RTCC, nowa wartość dla dzielnika ;źródło sygnału.

3. OPCJA Programy te powinny być używane nawet wtedy, gdy funkcja WDT jest wyłączona.

Słowo konfiguracyjne

Kryształ PIC16C84 ma pięć bitów konfiguracyjnych, które są przechowywane w EEPROM i są ustawiane podczas fazy programowania układu. Bity te można zaprogramować (odczytywać jako `0`) lub pozostawić niezaprogramowane (odczytywać jako `1`), aby wybrać odpowiednią opcję konfiguracji urządzenia. Bity te znajdują się w pamięci EEPROM pod adresem 2007h. Użytkownik powinien pamiętać, że adres ten znajduje się poniżej obszaru kodu i nie jest dostępny dla programu. Konfiguracja komórki EEPROM.

Mikrokontroler PIC16C84. Krótki opis

CP - Bit ochrony kodu.

CP = 1: Kod zabezpieczający wyłączony

CP = 0: Kod zabezpieczający włączony

Pozostałe bity w słowie nie są używane i są odczytywane jako jedynki.

indywidualna etykieta

Kryształ PIC16C84 ma cztery słowa znajdujące się w (2000h-2003h) Są one używane do przechowywania kodu identyfikacyjnego użytkownika (ID), sumy kontrolnej lub innych informacji. Podobnie jak słowo konfiguracyjne, mogą być odczytywane lub zapisywane tylko przez programistę. Nie ma do nich dostępu programowego. Jeśli kryształ jest chroniony, zaleca się, aby użytkownik używał tylko dolnych siedmiu bitów każdego ID słowa do identyfikacji i wpisywał `0` do wyższego bitu. Wtedy słowo ID można odczytać nawet w wersji chronionej.

Ochrona programów przed odczytem

Kod programu zapisany w chipie może być chroniony przed odczytem poprzez ustawienie bitu ochrony (CP) w słowie konfiguracyjnym na zero. Zawartość programu nie może być odczytana w taki sposób, aby można było z nim pracować. Ponadto, gdy bit ochrony jest ustawiony, zmiana programu staje się niemożliwa. To samo dotyczy zawartości pamięci danych EEPROM.

Jeśli zabezpieczenie jest ustawione, bit CP może zostać usunięty tylko wraz z zawartością kryształu. Pamięć programu EEPROM i pamięć danych zostaną skasowane jako pierwsze, a na końcu bit ochrony kodu CP.

Sprawdzenie kryształu z zainstalowaną ochroną. Podczas odczytu chronionego układu, odczytanie dowolnego adresu pamięci da wynik podobny do 0000000XXXXXXX (binarny), gdzie X to 0 lub 1. Aby sprawdzić integralność pamięci w chronionym układzie, postępuj zgodnie z zasadami:

1) zaprogramuj i sprawdź działanie działającego kryształu.

2) ustawić zabezpieczenie kodu programu i wczytać zawartość pamięci programu do pliku referencyjnego.

3) Sprawdź każdy chroniony chip, porównując jego pamięć programu z zawartością tego testu porównawczego.

Pamięć danych EEPROM nie może być sprawdzona po ustawieniu bitu bezpieczeństwa.

Tryb niskiego poboru mocy

W tryb SLEEP wchodzi się komendą SLEEP. Za pomocą tego polecenia, jeśli WDT jest włączone, jest resetowane i rozpoczyna się odliczanie, bit „PD” w rejestrze stanu (f3) jest resetowany, bit „TO” jest ustawiany, a wewnętrzny oscylator jest wyłączony. Porty I/O zachowują stan sprzed przejścia w tryb SLEEP. Aby zmniejszyć pobór prądu w tym trybie należy ustawić kołki tak, aby między kryształem a obwodami zewnętrznymi nie przepływał prąd. Styki wejściowe muszą być połączone z zewnętrznymi rezystorami wysokimi lub niskimi, aby uniknąć przełączania prądów spowodowanych przez płynne wejścia o wysokiej rezystancji. To samo dotyczy RTCC. Noga /MCLR musi być zasilana przez Vihmc.

Wyjście z trybu SLEEP następuje w wyniku następujących zdarzeń:

1. Reset zewnętrzny - impuls niskiego poziomu na pinie /MCLR.

2. Resetuj po wyzwoleniu WDT (jeśli jest włączony)

3. Przerwy. (Przerwanie na pinie INT, przerwanie na zmianie portu B, przerwanie po zakończeniu zapisu danych EEPROM).

Pierwsze zdarzenie resetuje całe urządzenie. Pozostałe dwa wydarzenia sugerują, że program nadal działa. Bit „PD” w rejestrze stanu (f3), który jest ustawiany podczas włączania, ale resetowany poleceniem „SLEEP”, może być użyty do określenia stanu procesora przed „przebudzeniem”: albo procesor był w trybie „SLEEP” (ciepły start) lub było po prostu wyłączone (zimny start). Bit „TO” pozwala określić, co spowodowało wyjście z trybu SLEEP: albo zewnętrzny sygnał na pinie /MCLR, albo działanie WDT.

Aby urządzenie wybudziło się z trybu SLEEP poprzez przerwanie, przerwanie musi zostać włączone poprzez ustawienie odpowiedniej maski w rejestrze INTCON. Podczas wychodzenia z trybu SLEEP, program działający w tle zostanie wykonany, jeśli maska ​​ogólna wyłączy wszystkie przerwania (GIE=0). Jeśli GIE=1, to zostanie wykonana procedura przerwania.

Maksymalne wartości parametrów elektrycznych

Parametry wykraczające poza te limity mogą uszkodzić chip. Praca kryształu na jego wartościach granicznych przez długi czas wpłynie na jego niezawodność.

Mikrokontroler PIC16C84. Krótki opis

Uwagi:

1. Całkowite rozpraszanie mocy nie może przekraczać 800mW dla każdej obudowy. Moc rozpraszaną oblicza się według następującego wzoru:

Pdis= Vdd(Idd - Sum(Ioh)) + Suma ((Vdd - Voh)Ioh) + Suma (Vol Iol)

2. Spadek napięcia na pinie /MCLR poniżej Vss (masa) powoduje wysokie prądy, powyżej 80mA i może uszkodzić tę linię. Dlatego zalecamy, aby sygnały do ​​pinu /MCLR były doprowadzane przez rezystor zakończeniowy 50-100 omów.

Parametry prądu stałego

Specyfikacje prądu stałego: PIC16C84-04, PIC16C84-10.

(Do zastosowań komercyjnych, przemysłowych, motoryzacyjnych).

MEMEC BALTIC Sp. jest członkiem Memec International Components Group i Raab Karcher Electronics Group. Ta grupa dystrybutorów komponentów elektronicznych jest liderem w dystrybucji najnowszych technologii elektronicznych i komponentów półprzewodnikowych.

MEMEC BALTIC Sp. reprezentuje grupę firm MEMEC i jest oficjalnym dystrybutorem Microchip i Raychem w Rosji, Ukrainie, Białorusi i krajach bałtyckich.

MEMEC BALTIC Sp.

Publikacja: N. Bolszakow, rf.atnn.ru

Zobacz inne artykuły Sekcja Mikrokontrolery.

Czytaj i pisz przydatne komentarze do tego artykułu.

<< Wstecz

Najnowsze wiadomości o nauce i technologii, nowa elektronika:

Hałas drogowy opóźnia rozwój piskląt 06.05.2024

Dźwięki, które otaczają nas we współczesnych miastach, stają się coraz bardziej przeszywające. Jednak niewiele osób myśli o tym, jak ten hałas wpływa na świat zwierząt, zwłaszcza na tak delikatne stworzenia, jak pisklęta, które nie wykluły się jeszcze z jaj. Najnowsze badania rzucają światło na tę kwestię, wskazując na poważne konsekwencje dla ich rozwoju i przetrwania. Naukowcy odkryli, że narażenie piskląt zebry rombowatej na hałas uliczny może spowodować poważne zakłócenia w ich rozwoju. Eksperymenty wykazały, że zanieczyszczenie hałasem może znacznie opóźnić wykluwanie się piskląt, a pisklęta, które się wykluwają, borykają się z szeregiem problemów zdrowotnych. Naukowcy odkryli również, że negatywne skutki zanieczyszczenia hałasem rozciągają się na dorosłe ptaki. Zmniejszone szanse na rozrodczość i zmniejszona płodność wskazują na długoterminowe skutki, jakie hałas drogowy wywiera na dziką przyrodę. Wyniki badania podkreślają taką potrzebę ... >>

Bezprzewodowy głośnik Samsung Music Frame HW-LS60D 06.05.2024

W świecie nowoczesnych technologii audio producenci dążą nie tylko do nienagannej jakości dźwięku, ale także do łączenia funkcjonalności z estetyką. Jednym z najnowszych innowacyjnych kroków w tym kierunku jest nowy bezprzewodowy system głośników Samsung Music Frame HW-LS60D, zaprezentowany podczas wydarzenia World of Samsung 2024. Samsung HW-LS60D to coś więcej niż tylko system głośników, to sztuka dźwięku w stylu ramki. Połączenie 6-głośnikowego systemu z obsługą Dolby Atmos i stylowej konstrukcji ramki na zdjęcia sprawia, że ​​produkt ten będzie idealnym dodatkiem do każdego wnętrza. Nowa ramka Samsung Music Frame jest wyposażona w zaawansowane technologie, w tym Adaptive Audio zapewniający wyraźne dialogi na każdym poziomie głośności oraz automatyczną optymalizację pomieszczenia w celu uzyskania bogatej reprodukcji dźwięku. Dzięki obsłudze połączeń Spotify, Tidal Hi-Fi i Bluetooth 5.2, a także integracji inteligentnego asystenta, ten głośnik jest gotowy, aby zaspokoić Twoje ... >>

Nowy sposób kontrolowania i manipulowania sygnałami optycznymi 05.05.2024

Współczesny świat nauki i technologii rozwija się dynamicznie i każdego dnia pojawiają się nowe metody i technologie, które otwierają przed nami nowe perspektywy w różnych dziedzinach. Jedną z takich innowacji jest opracowanie przez niemieckich naukowców nowego sposobu sterowania sygnałami optycznymi, co może doprowadzić do znacznego postępu w dziedzinie fotoniki. Niedawne badania pozwoliły niemieckim naukowcom stworzyć przestrajalną płytkę falową wewnątrz falowodu ze stopionej krzemionki. Metoda ta, bazująca na zastosowaniu warstwy ciekłokrystalicznej, pozwala na efektywną zmianę polaryzacji światła przechodzącego przez falowód. Ten przełom technologiczny otwiera nowe perspektywy rozwoju kompaktowych i wydajnych urządzeń fotonicznych zdolnych do przetwarzania dużych ilości danych. Elektrooptyczna kontrola polaryzacji zapewniona dzięki nowej metodzie może stanowić podstawę dla nowej klasy zintegrowanych urządzeń fotonicznych. Otwiera to ogromne możliwości dla ... >>

Przypadkowe wiadomości z Archiwum

Pułapka na światło 04.11.2011

Instytut Technologii Fotonicznej (Jena, Niemcy) nauczył się pokrywać powierzchnię krzemowych dysków gęstym „pędzelkiem” srebrnych nanodrutów 10 XNUMX razy cieńszych niż ludzki włos. W takim „lasie” padające światło ulega zaplątaniu, a wcześniej zwierciadlana powierzchnia krzemu przestaje cokolwiek odbijać i staje się czarna.

Światło o długości fali od 300 do 1100 nanometrów (od ultrafioletu do podczerwieni) jest skutecznie pochłaniane, dlatego proponuje się pokrycie powierzchni ogniw słonecznych podobną warstwą w celu zwiększenia ich wydajności.

Inne ciekawe wiadomości:

▪ Odkryto formułę szczęśliwej rodziny

▪ Podgrzewane wkładki do butów

▪ Samochód dostosowuje się do stylu jazdy właściciela

▪ Dobra muzyka sprzyja dobrej pracy zespołowej

▪ Eksperyment izolacyjny symulujący życie na Marsie

Wiadomości o nauce i technologii, nowa elektronika

 

Ciekawe materiały z bezpłatnej biblioteki technicznej:

▪ sekcja serwisu Encyklopedia elektroniki radiowej i elektrotechniki. Wybór artykułów

▪ artykuł Czy kłamię na różach? Popularne wyrażenie

▪ artykuł Co to jest sen na jawie? Szczegółowa odpowiedź

▪ artykuł Pływanie z pompą torpedową. Transport osobisty

▪ artykuł Amperomierz AC ze skalą liniową. Encyklopedia elektroniki radiowej i elektrotechniki

▪ artykuł Stara bateria i jej odrodzenie. Doświadczenie chemiczne

Zostaw swój komentarz do tego artykułu:

Imię i nazwisko:


Email opcjonalny):


komentarz:





Wszystkie języki tej strony

Strona główna | biblioteka | Artykuły | Mapa stony | Recenzje witryn

www.diagram.com.ua

www.diagram.com.ua
2000-2024