Serwis Edukacyjny w I-LO w Tarnowie Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej Autor artykułu: mgr Jerzy Wałaszek |
©2024 mgr Jerzy Wałaszek |
https://www.microchip.com/about-us/legal-information/copyright-usage-guidelines
Bajt z bitami blokującymi
Nazwa bitu blokującego | Numer bitu | Opis | Standardowa wartość(1) |
7 | – | 1 (niezaprogramowany) | |
6 | – | 1 (niezaprogramowany) | |
BLB12 | 5 | Bit blokujący boot-loadera | 1 (niezaprogramowany) |
BLB11 | 4 | Bit blokujący boot-loadera | 1 (niezaprogramowany) |
BLB02 | 3 | Bit blokujący boot-loadera | 1 (niezaprogramowany) |
BLB01 | 2 | Bit blokujący boot-loadera | 1 (niezaprogramowany) |
LB2 | 1 | Bit blokujący | 1 (niezaprogramowany) |
LB1 | 0 | Bit blokujący | 1 (niezaprogramowany) |
Tryby zabezpieczeń bitów blokujących(2)
Bity blokujące pamięci | Rodzaj zabezpieczenia | ||
Tryb LB | LB2 | LB1 | |
1 | 1 | 1 | Cechy blokowania pamięci wyłączone |
2 | 1 | 0 | Dalsze programowanie FLASH i EEPROM jest zablokowane w trybie programowania równoległego i szeregowego. Bity bezpiecznikowe są zablokowane w obu trybach programowania(1). |
3 | 0 | 0 | Dalsze programowanie i weryfikacja FLASH oraz EEPROM są zablokowane w trybie programowania równoległego i szeregowego. Bity bezpiecznikowe są zablokowane w obu trybach programowania(1). |
Tryb BLB0 | BLB02 | BLB01 | |
1 | 1 | 1 | Nie ma ograniczeń dostępu instrukcji SPM i LPM do sekcji aplikacji. |
2 | 1 | 0 | Instrukcja SPM nie może zapisywać w sekcji aplikacji. |
3 | 0 | 0 | Instrukcja SPM nie może zapisywać w sekcji aplikacji, a instrukcja LPM wykonywana z sekcji boot-loadera nie może odczytywać z sekcji aplikacji. Jeśli wektory przerwań są umieszczone w sekcji boot-loadera, przerwania są zablokowane podczas wykonywania z sekcji aplikacji. |
4 | 0 | 1 | Instrukcja LPM wykonująca się z sekcji boot-loadera nie może odczytywać z sekcji aplikacji. Jeśli wektory przerwań są umieszczone w sekcji boot-loadera, przerwania są zablokowane podczas wykonywania z sekcji aplikacji. |
Tryb BLB1 | BLB12 | BLB11 | |
1 | 1 | 1 | Nie ma ograniczeń dostępu instrukcji SPM i LPM do sekcji boot-loadera. |
2 | 1 | 0 | Instrukcja SPM nie może zapisywać w sekcji boot-loadera. |
3 | 0 | 0 | Instrukcja SPM nie może zapisywać w sekcji boot-loadera, a instrukcja LPM wykonywana z sekcji aplikacji nie może odczytywać z sekcji boot-loadera. Jeśli wektory przerwań są umieszczone w sekcji aplikacji, przerwania są zablokowane podczas wykonywania z sekcji boot-loadera. |
4 | 0 | 1 | Instrukcja LPM wykonująca się z sekcji aplikacji nie może odczytywać z sekcji boot-loadera. Jeśli wektory przerwań są umieszczone w sekcji aplikacji, przerwania są zablokowane podczas wykonywania z sekcji boot-loadera. |
Uwagi: | 1. | Zaprogramuj bity bezpiecznikowe przed zaprogramowaniem bitów blokujących |
2. | "1" oznacza bit niezaprogramowany, "0" oznacza bit zaprogramowany |
Górny bajt bitów bezpiecznikowych
Górny bajt bitów bezpiecznikowych | Numer bitu | Opis | Standardowa wartość |
RSTDISBL(4) | 7 | Określa, czy końcówka PC6 jest końcówką we/wy, czy końcówką RESET. | 1 (niezaprogramowane, PC6 jest końcówką RESET) |
WDTON | 6 | Licznik zegarowy (WDT) zawsze włączony | 1 (niezaprogramowane, licznik zegarowy włączany przez WDTCR) |
SPIEN(1) | 5 | Włączenie szeregowego ładowania programu i danych | 0 (zaprogramowane, programowanie szeregowe włączone) |
CKOPT(2) | 4 | Opcje oscylatora | 1 (niezaprogramowane) |
EESAVE | 3 | Pamięć EEPROM jest zachowywana przy kasowaniu układu | 1 (niezaprogramowane, pamięć EEPROM nie jest zachowywana) |
BOOTSZ1 | 2 | Wybór rozmiaru obszaru boot-loadera | 0 (zaprogramowane)(3) |
BOOTSZ0 | 1 | Wybór rozmiaru obszaru boot-loadera | 0 (zaprogramowane)(3) |
BOOTRST | 0 | Wybór wektora resetu | 1 (niezaprogramowane) |
Uwagi: | 1. | Bit bezpiecznikowy SPIEN nie jest dostępny w trybie programowania szeregowego. |
2. | Działanie bitu bezpiecznikowego CKOPT zależy od ustawień bitów CKSEL, zobacz do podrozdziału "Źródła zegarowe". | |
3. | Standardowa wartość bitów BOOTSZ1..0 daje maksymalny rozmiar obszaru boot-loadera. | |
4. | Po zaprogramowaniu bitu bezpiecznikowego RSTDISBL należy używać programowania równoległego do zmiany bitów bezpiecznikowych oraz do wykonywania dalszego programowania. |
Dolny bajt bitów bezpiecznikowych
Dolny bajt bitów bezpiecznikowych | Numer bitu | Opis | Standardowa wartość |
BODLEVEL | 7 | Poziom wyzwalania detektora spadku napięcia zasilającego | 1 (niezaprogramowane) |
BODEN | 6 | Włączenie detektora spadku napięcia zasilającego (BOD) | 1 (niezaprogramowane, BOD wyłączony) |
SUT1 | 5 | Wybór czasu uruchamiania się mikrokontrolera | 1 (niezaprogramowane)(1) |
SUT0 | 4 | Wybór czasu uruchamiania się mikrokontrolera | 0 (zaprogramowane)(1) |
CKSEL3 | 3 | Wybór źródła zegarowego | 0 (zaprogramowane)(2) |
CKSEL2 | 2 | Wybór źródła zegarowego | 0 (zaprogramowane)(2) |
CKSEL1 | 1 | Wybór źródła zegarowego | 0 (zaprogramowane)(2) |
CKSEL0 | 0 | Wybór źródła zegarowego | 1 (niezaprogramowane)(2) |
Stan bitów bezpiecznikowych nie jest zmieniany przez kasowanie układu (ang. Chip Erase). Zauważ, iż bity bezpiecznikowe są zablokowane, jeśli został zaprogramowany bit blokujący LB1. Zaprogramuj bity bezpiecznikowe przed zaprogramowaniem bitów blokujących.
Wartości bitów bezpiecznikowych zostają zapamiętane, gdy mikrokontroler wchodzi w tryb programowania i zmiany ich wartości zaczną obowiązywać dopiero po wyjściu z trybu programowania . Nie odnosi się to do bitu bezpiecznikowego EESAVE, którego funkcja rozpoczyna działania zaraz po zaprogramowaniu. Bity bezpiecznikowe są również zapamiętywane przy uruchamianiu w trybie normalnym.
Dla ATmega8 bajty sygnaturowe są następujące:
Liczba słów na stronę i liczba stron w pamięci FLASH
Rozmiar FLASH | Rozmiar strony | PCWORD | Liczba stron | PCPAGE | PCMSB |
4K słów (8KB) | 32 słowa | PC[4:0] | 128 | PC[11:5] | 11 |
Liczba słów na stronę i liczba stron w pamięci EEPROM
Rozmiar EEPROM | Rozmiar strony | PCWORD | Liczba stron | PCPAGE | EEAMSB |
512 B | 4 B | EEA[1:0] | 128 | EEA[8:2] | 8 |
W tym rozdziale niektóre końcówki mikrokontrolera ATmega8 nazwane są wg nazw sygnałów opisujących ich funkcje podczas programowania równoległego. Do końcówek nieopisanych w poniższej tablicy odwołujemy się przez ich normalne nazwy.
Przydział nazw do końcówek
Nazwa sygnału w trybie programowania | Nazwa końcówki | we/wy | Funkcja |
RDY/BSY | PD1 | wy | 0: mikrokontroler jest zajęty programowaniem, 1: mikrokontroler jest gotowy na nowy rozkaz |
OE | PD2 | we | Uaktywnienie wyjścia (aktywne w stanie niskim) |
WR | PD3 | we | Impuls zapisu (aktywne w stanie niskim) |
BS1 | PD4 | we | Wybór bajtu 1 ("0" wybiera dolny bajt, "1" wybiera górny bajt) |
XA0 | PD5 | we | Bit 0 działania XTAL |
XA1 | PD6 | we | Bit 1 działania XTAL |
PAGEL | PD7 | we | Ładowanie strony pamięci programu i danych EEPROM |
BS2 | PC2 | we | Wybór bajtu 2 ("0" wybiera dolny drugi bajt, "1" wybiera górny drugi bajt) |
DATA | {PC[1:0]: PB[5:0]} | we/wy | Dwukierunkowa szyna danych (wyjście, gdy OE jest w stanie niskim) |
Wartości końcówek używane do wejścia w tryb programowania
Końcówka | Symbol | Wartość |
PAGEL | Prog_enable[3] | 0 |
XA1 | Prog_enable[2] | 0 |
XA0 | Prog_enable[1] | 0 |
BS1 | Prog_enable[0] | 0 |
Końcówki XA1/XA0 określają wykonywane działania, gdy na końcówce XTAL1 pojawi się dodatni impuls. Kodowanie bitów przedstawia poniższa tabelka.
Kodowanie XA1 i XA0
XA1 | XA0 | Działanie przy impulsie na końcówce XTAL1 |
0 | 0 | Załadowanie adresu FLASH lub EEPROM (górny lub dolny bajt adresu określa BS1) |
0 | 1 | Załadowanie danych (górny lub dolny bajt danych dla FLASH określa BS1) |
1 | 0 | Ładowanie rozkazu |
1 | 1 | Brak działania, bezczynność |
Gdy impuls pojawia się na końcówce WR lub OE, załadowany rozkaz określa wykonywane działanie. Rozkazy są pokazane w tabelce poniżej.
Kodowanie bitów w bajcie rozkazu
Bajt rozkazu | Wykonywany rozkaz |
1000 0000 | Kasowanie układu |
0100 0000 | Zapis bitów bezpiecznikowych |
0010 0000 | Zapis bitów blokujących |
0001 0000 | Zapis FLASH |
0001 0001 | Zapis EEPROM |
0000 1000 | Odczyt bajtów sygnaturowych i bajtu kalibracyjnego |
0000 0100 | Odczyt bitów bezpiecznikowych i bitów blokujących |
0000 0010 | Odczyt FLASH |
0000 0011 | Odczyt EEPROM |
Poniższy algorytm wprowadza mikrokontroler w tryb programowania równoległego:
Zauważ, że jeśli końcówka RESET została zablokowana przez zaprogramowanie bitu bezpiecznikowego RSTDISBL, to może okazać się niemożliwe postępowanie wg powyższego algorytmu. To samo może wystąpić, gdy wybrano na źródło zegarowe zewnętrzny kwarc lub zewnętrzne elementy RC, ponieważ wtedy nie można wysłać na końcówkę XTAL1 odpowiednich impulsów. W takich przypadkach należy postępować wg następującego algorytmu:
Rozkaz Chip Erase skasuje zawartość pamięci FLASH i EEPROM (zawartość EEPROM zostaje zachowana podczas kasowania, jeśli został zaprogramowany bit bezpiecznikowy EESAVE) plus bity blokowania. Bity blokowania (ang. lock bits) nie są resetowane aż cała pamięć programu nie zostanie całkowicie skasowana. Bity bezpiecznikowe nie są zmieniane. Rozkaz Chip Erase musi być wykonany przed przeprogramowaniem pamięci FLASH i/lub EEPROM.
Uwaga: 1. Pamięć EEPRPOM jest zachowywana podczas kasowania układu, jeśli zaprogramowano bit bezpiecznikowy EESAVE.
Pamięć FLASH zorganizowana jest w strony. Przy programowaniu dane programu są zapamiętywane w buforze strony. Pozwala to na jednoczesne zaprogramowanie jednej strony z danymi programu. Poniższa procedura opisuje sposób zaprogramowania całej pamięci FLASH:
Podczas gdy dolne bity adresu odwzorowują słowa wewnątrz strony, to starsze bity adresują strony wewnątrz pamięci FLASH. Przedstawiono to na rysunku poniżej. Zauważ, że jeśli do adresowania słów w obrębie strony potrzebne jest mniej niż osiem bitów (rozmiar strony < 256), to najbardziej znaczący bit (lub bity) w dolnym bajcie adresu są używane do adresowania strony, gdy będzie wykonywany zapis strony.
Adresowanie
pamięci FLASH, która jest zorganizowana w strony
Przebiegi
sygnałów w wysokonapięciowym programowaniu szeregowym
Litery odpowiadają krokom w algorytmie
XX oznacza wartość nieistotną
ADDR. LOW | – | dolny bajt adresu |
DATA LOW | – | dolny bajt danych |
DATA HIGH | – | górny bajt danych |
ADDR. HIGH | – | górny bajt adresu |
Pamięć EEPROM zorganizowana jest w strony. Gdy pamięć ta jest programowana, dane są zapamiętywane w buforze strony. Pozwala to jednocześnie programować jedną stronę danych. Algorytm programowania pamięci danych EEPROM jest następujący:
Przebiegi sygnałów w
wysokonapięciowym programowaniu szeregowym
Litery odpowiadają krokom w algorytmie
XX oznacza wartość nieistotną
ADDR. HIGH | – | górny bajt adresu |
ADDR. LOW | – | dolny bajt adresu |
DATA | – | bajt danych |
Algorytm odczytywania pamięci FLASH jest następujący:
Algorytm odczytywania pamięci EEPROM jest następujący:
Algorytm programowania dolnych bitów bezpiecznikowych jest następujący:
Algorytm programowania górnych bitów bezpiecznikowych jest następujący:
Algorytm programowania bitów blokujących jest następujący:
Algorytm odczytywania bitów bezpiecznikowych i blokujących jest następujący:
Odwzorowanie pomiędzy BS1, BS2
a bitami bezpiecznikowymi i bitami blokującymi podczas odczytywania
Algorytm odczytywania bajtów sygnaturowych jest następujący:
Algorytm odczytywania bajtów kalibracyjnych jest następujący:
Czasy w programowaniu
równoległym, łącznie z niektórymi ogólnymi wymaganiami czasowymi
Czasy w programowaniu
równoległym, sekwencja ładowania z wymaganiami czasowymi(1)
Uwaga: | 1. | Wymagania czasowe z poprzedniego rysunku (tj. tDVXH, tXHXL i tXLDX) odnoszą się również do operacji ładowania. |
Czasy w programowaniu
równoległym, sekwencja odczytu (wewnątrz tej samej strony)
z wymaganiami czasowymi(1)
Parametry programowania równoległego, VCC = 5V ±10%
Symbol | Parametr | Min. | Typ. | Max. | Jednostki |
VPP | Napięcie włączania trybu programowania | 11,5 | 12,5 | V | |
IPP | Prąd włączania trybu programowania | 250 | µA | ||
tDVXH | Ustalenie danych i sterowania przed stanem wysokim XTAL1 | 67 | ns | ||
tXLXH | Czas pomiędzy stanem niskim XTAL1 a stanem wysokim XTAL1 | 200 | |||
tXHXL | Szerokość stanu wysokiego impulsu XTAL1 | 150 | |||
tXLDX | Utrzymanie danych i sterowania po przejściu XTAL1 w stan niski | 67 | |||
tXLWL | Czas od stanu niskiego XTAL1 do stanu niskiego WR | 0 | |||
tXLPH | Czas od stanu niskiego XTAL1 do stanu wysokiego PAGEL | 0 | |||
tPLXH | Czas od stanu niskiego PAGEL do stanu wysokiego XTAL1 | 150 | |||
tBVPH | Ustalenie BS1 przed stanem wysokim PAGEL | 67 | |||
tPHPL | Szerokość stanu wysokiego impulsu PAGEL | 150 | |||
tPLBX | Utrzymanie BS1 po stanie niskim PAGEL | 67 | |||
tWLBX | Utrzymanie BS2/1 po stanie niskim WR | 67 | |||
tPLWL | Czas od stanu niskiego PAGEL do stanu niskiego WR | 67 | |||
tBVWL | Utrzymanie BS1 po stanie niskim WR | 67 | |||
tWLWH | Szerokość stanu niskiego impulsu WR | 150 | |||
tWLRL | Czas od stanu niskiego WR do stau niskiego RDY/BSY | 0 | 1 | µs | |
tWLRH | Czas od stanu niskiego WR do stanu wysokiego RDY/BSY(1) | 3,7 | 4,5 | ms | |
tWLRH_CE | Czas od stanu niskiego WR do stanu wysokiego RDY/BSY dla kasowania układu(2) | 7,5 | 9 | ||
tXLOL | Czas od stanu niskiego XTAL1 do stanu niskiego OE | 0 | ns | ||
tBVDV | Utrzymanie BS1 do ważności danych DATA | 0 | 250 | ||
tOLDV | Czas od stanu niskiego OE do ważności danych DATA | 250 | |||
tOHDZ | Czas od stanu wysokiego OE do przejścia DATA w stan wysokiej impedancji | 250 |
Uwagi: | 1. | tWLRH dotyczy rozkazów zapisu FLASH, zapisu EEPROM, zapisu bitów bezpiecznikowych i zapisu bitów blokujących. |
2. | tWLRH_CE dotyczy rozkazu kasowania układu. |
Obie pamięci FLASH i EEPROM można programować przy wykorzystaniu magistrali szeregowej SPI, gdy końcówka RESET zostanie zwarta do masy GND. Interfejs szeregowy składa się z końcówek SCK, MOSI (wejście) i MISO (wyjście).
Gdy na końcówkę RESET poda się stan niski, należy najpierw wykonać instrukcję włączającą programowanie, zanim będzie można wykonywać operacje wymazywania/programowania.
Przydział końcówek dla programowania szeregowego
Symbol | Końcówka | We/wy | Opis |
MOSI | PB3 | We | Wejście danych szeregowych |
MISO | PB4 | Wy | Wyjście danych szeregowych |
SCK | PB5 | We | Zegar szeregowy |
Programowanie szeregowe i
weryfikacja(1)
Przy programowaniu pamięci EEPROM cykl samokasowania jest wbudowany w samotaktującą się operację programowania (tylko w trybie szeregowym) i nie ma potrzeby wykonywania najpierw instrukcji kasowania układu (ang. Chip Erase). Operacja kasowania układu zmienia zawartość każdej komórki w pamięci programu FLASH i w pamięci EEPROM w 0xFF.
Zależnie od bitów bezpiecznikowych CKSEL musi być obecny właściwy zegar. Minimalne okresy stanów niskich i wysokich dla zegara szeregowego (SCK) są zdefiniowane następująco:
Stan niski: > 2 taktów zegara mikroprocesora dla fck < 12MHz, 3
taktów zegara mikroprocesora dla fck >= 12MHz
Stan wysoki: > 2 taktów zegara mikroprocesora dla fck < 12MHz, 3
taktów zegara mikroprocesora dla fck >= 12MHz
Gdy dane szeregowe są zapisywane w mikrokontrolerze ATmega8, ich taktowanie następuje przy narastającym zboczu sygnału SCK. Gdy dane są odczytywane z ATmega8, taktowanie odbywa się przy opadającym zboczu SCK.
Do programowania i weryfikacji mikrokontrolera ATmega8 zalecana jest następująca
sekwencja operacji:
Gdy strona pamięci jest programowana wewnątrz FLASH, odczyt komórki w obrębie tej strony da wartość 0xFF. Gdy mikrokontroler będzie gotowy na nową stronę, programowana wartość zostanie odczytana prawidłowo. Używa się tego do określenia, kiedy można zapisać następną stronę. Zwróć uwagę, iż cała strona jest zapisywana równocześnie i można użyć dowolnej jej komórki do podglądu. Podgląd nie zadziała z wartością 0xFF, zatem przy programowaniu tej wartości użytkownik będzie musiał odczekać przez czas co najmniej tWD_FLASH przed programowaniem następnej strony. Ponieważ skasowany układ zawiera wartości 0xFF we wszystkich komórkach, programowanie ich można pominąć.
Gdy nowy bajt został zapisany i jest programowany w EEPROM, odczyt komórki zawierającej go da wartość 0xFF. Gdy pamięć będzie gotowa na nowy bajt, programowana komórka da prawidłowy odczyt. Używa się tego do określenia, kiedy można zapisać następny bajt. Nie zadziała to z wartością 0xFF, lecz użytkownik powinien pamiętać, że skasowane urządzenie zawiera wartości 0xFF w każdej komórce, zatem ich programowanie można pominąć. Nie ma to zastosowania, gdy pamięć EEPROM podlega przeprogramowaniu bez kasowania układu mikrokontrolera. W takim przypadku wartość 0xFF nie może być użyta do podglądu i użytkownik będzie musiał odczekać przez czas co najmniej tWD_EEPROM, przed zaprogramowaniem następnego bajtu.
Minimalne czasy opóźnień przed zapisem następnych komórek we FLASH lub w EEPROM
Symbol | Minimalny czas opóźnienia |
tWD_FUSE | 4,5ms |
tWD_FLASH | 4,5ms |
tWD_EEPROM | 9,0ms |
tWD_ERASE | 9,0ms |
Instrukcje programowania szeregowego
Instrukcja | Format instrukcji | Operacja | |||
Bajt 1 | Bajt 2 | Bajt 3 | Bajt 4 | ||
Programming Enable |
1010 1100 |
0101 0011 |
xxxx xxxx |
xxxx xxxx |
Uaktywnia programowanie szeregowe po stanie niskim na końcówce RESET. |
Chip Erase |
1010 1100 |
100x xxxx |
xxxx xxxx |
xxxx xxxx |
Kasuje zawartość pamięci EEPROM i FLASH. |
Read Program Memory |
0010 H000
|
0000 aaaa
|
bbbb bbbb
|
oooo oooo
|
Odczyt danych H (górny lub dolny bajt) z pamięci programu pod adresem słowa a:b. |
Load Program Memory Page |
0100 H000
|
0000 xxxx |
xxxb bbbb |
iiii iiii
|
Zapis danych H (górny lub dolny bajt) do strony strony pamięci programu pod adres słowa b. Dolny bajt danych musi być załadowany przed załadowaniem górnego bajtu pod ten sam adres. |
Write Program Memory Page |
0100 1100 |
0000 aaaa
|
bbbx xxxx
|
xxxx xxxx |
Zapis strony pamięci programu pod adres a:b. |
Read EEPROM Memory |
1010 0000 |
00xx xxxa
|
bbbb bbbb
|
oooo oooo
|
Odczyt danej o z pamięci EEPROM spod adresu a:b. |
Write EEPROM Memory |
1100 0000 |
00xx xxxa |
bbbb bbbb
|
iiii iiii
|
Zapis danej i do pamięci EEPROM pod adres a:b. |
Read Lock Bits |
0101 1000 |
0000 0000 |
xxxx xxxx |
xxoo oooo
|
Odczyt bitów blokujących. "0" = bit zaprogramowany, "1" = bit niezaprogramowany. |
Write Lock Bits |
1010 1100 |
111x xxxx |
xxxx xxxx |
11ii iiii
|
Zapis bitów blokujących. Ustaw bity na "0", aby zaprogramować bity blokujące. |
Read Signature Byte |
0011 0000 |
00xx xxxx |
xxxx xxbb
|
oooo oooo
|
Odczyt bajtu sygnatury o spod adresu b. |
Write Fuse Bits |
1010 1100 |
1010 0000 |
xxxx xxxx |
iiii iiii
|
Zapis bitów bezpiecznikowych. Ustaw bity na "0", aby je zaprogramować, na "1", aby je odprogramować. |
Write Fuse High Bits |
1010 1100 |
1010 1000 |
xxxx xxxx |
iiii iiii
|
Zapis górnych bitów bezpiecznikowych. Ustaw bity na "0", aby je zaprogramować, na "1", aby je odprogramować. |
Read Fuse Bits |
0101 0000 |
0000 0000 |
xxxx xxxx |
oooo oooo
|
Odczyt bitów bezpiecznikowych. "0" = bit zaprogramowany, "1" = bit niezaprogramowany. |
Read Fuse High Bits |
0101 1000 |
0000 1000 |
xxxx xxxx |
oooo oooo
|
Odczyt górnych bitów bezpiecznikowych. "0" = bit zaprogramowany, "1" = bit niezaprogramowany. |
Read Calibration Byte |
0011 1000 |
00xx xxxx |
0000 00bb
|
oooo oooo
|
Odczyt bajtu kalibracyjnego. |
Uwaga: | a = górne bity
adresu b = dolne bity adresu H = 0 – Dolny bajt, 1 – Górny bajt o = dane wyjściowe i = dane wejściowe x = bez znaczenia |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2024 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.