(c) 2006 Ekiert
Programowanie pamięci FLASH
mikrokontrolerów PIC®
Procesory serii Baseline, Midrange
oraz High-Performance
(c) 2006 Ekiert
Rodziny procesorów
Baseline (12 bit)
– PIC10
– PIC12
– PIC16
Mid-Range (14 bit)
– PIC12
– PIC16
High-Performance (16 bit)
– PIC18
(c) 2006 Ekiert
Dokumentacja techniczna
Podział dokumentacji
– datasheet
– programming specification
Change notification
Do pobrania ze strony:
http://www.microchip.com/
→ Datasheet Finder
(c) 2006 Ekiert
Protokół ICSP
TM
Linie sygnałowe
Tryby protokołu ICSP
TM
Podłączanie urządzenia do programatora
Pułapki protokołu ICSP
Informacje dodatkowe
(c) 2006 Ekiert
Linie sygnałowe ICSP
TM
VPP
MCLR
VDD
VDD
VSS
VSS
DATA
RB7 GP0
RB0
CLOCK RB6 GP1 RB1
PGM
RB4 RB3
RB5
(c) 2006 Ekiert
Tryby protokołu ICSP
TM
Warunki wejścia w tryb HVP
– DATA ← 0
– CLOCK ← 0
– PGM ← 0
– MCLR 0 → Vpp
Warunki wejścia w tryb LVP
– DATA ← 0
– CLOCK ← 0
– MCLR 0 → Vdd
– PGM 0 → Vdd
(c) 2006 Ekiert
Podłączanie urządzenia do
programatora
Typowe podłączenie programatora
(c) 2006 Ekiert
Tryb programowania HVP
Wejście w tryb programowania HVP
(c) 2006 Ekiert
Tryb programowania LVP
Wejście w tryb programowania LVP
(c) 2006 Ekiert
Pułapki protokołu ICSP
Konfiguracja procesora
– wewnętrzny oscylator
– wewnętrzny reset
– zewnętrzny układ zerowania RC na MCLR
– pojemności na liniach DATA i CLOCK
– programowanie nowego procesora
(c) 2006 Ekiert
Informacje dodatkowe
Protokół ICSP nie zależy od:
– wersji układu (F, LF)
– obudowy (DIP, SOIC, TQFP itp.)
– zakresu temperaturowego (I, E)
(c) 2006 Ekiert
Organizacja pamięci 10F20X
(c) 2006 Ekiert
Organizacja pamięci 16F628
(c) 2006 Ekiert
Organizacja pamięci 18FXX20
(c) 2006 Ekiert
Pamięć konfiguracji dla 18FXX20
(c) 2006 Ekiert
Rozkazy protokołu programującego
dla procesora 10F20X
Rozkaz 6 bitów + dane 16 bitów → 22 bity
Transmisja LSB → MSB
(c) 2006 Ekiert
Transmisja rozkazu
Load Data oraz Begin Programming
(c) 2006 Ekiert
Rozkazy protokołu programującego
dla procesora 16F628
Rozkaz 6 bitów + dane 16 bitów → 22 bity
Transmisja LSB → MSB
(c) 2006 Ekiert
Transmisja rozkazu
Read Data oraz Increment Address
(c) 2006 Ekiert
Rozkazy protokołu programującego
dla procesora 18FXX20
Rozkaz 4 bity + dane 16 bitów → 20 bitów
Transmisja LSB → MSB
(c) 2006 Ekiert
Rejestr wskaźnika Table Pointer
TBLPTRU → 0x0ff8
TBLPTRH → 0x0ff7
TBLPTRL → 0x0ff6
(c) 2006 Ekiert
Transmisja rozkazu
Table Read Post Increment
(c) 2006 Ekiert
Algorytm kasowania procesora 18FXX20
(c) 2006 Ekiert
Sekwencja Bulk Erase dla 18FXX20
(c) 2006 Ekiert
Tryby programowania 18FXX20
Single Panel programming
– Control register → 0x3c0006 = 0x00
Multi Panel programming
– Control register → 0x3c0006 = 0x40
(c) 2006 Ekiert
Tryb Multi-panel
(c) 2006 Ekiert
Algorytm zapisu pamięci
(c) 2006 Ekiert
Sekwencja zapisu pamięci programu
(c) 2006 Ekiert
Algorytm odczytu/weryfikacji danych
(c) 2006 Ekiert
Sekwencja odczytu pamięci
(c) 2006 Ekiert
Specyfikacja elektryczna 10F2XX
(c) 2006 Ekiert
Specyfikacja elektryczna 16F6X8
(c) 2006 Ekiert
Specyfikacja elektryczna 18FXX20
(c) 2006 Ekiert
Sposoby zapisu pamięci FLASH
Bufor zapisu pamięci Flash
– 1 słowo programu (10F2XX, 16F628)
– 2 słowa programu (16F72)
– 4 słowa programu (16F684)
– 8 słów programu (16F877A, 18FXX20)
(c) 2006 Ekiert
Technologie pamięci FLASH
Microchip wykorzystuje następujące
technologie produkcji pamięci FLASH
– Standard Flash
– Flash (J)
– Enhanced Flash
– Enhanced Flash (K)
(c) 2006 Ekiert
Zakres napięć zasilających
Standard Flash: 2.0V do 5.5V
Flash (J): 2.0V do 3.6V
Enhanced Flash: 2.0V do 5.5V
Enhanced Flash (K): 1.8V do 3.6V
(c) 2006 Ekiert
Liczba cykli kasowania/zapisu
Standard Flash: 10k min. / 100k typ.
Flash (J): 100 min. / 1k typ.
Enhanced Flash: 10k min. / 100k typ.
(c) 2006 Ekiert
Czas przechowywania danych
Standard Flash: 40 lat min / 100 lat typ.
Flash: 20 lat min
Enhanced Flash: 40 lat min / 100 lat typ.
(c) 2006 Ekiert
Dodatkowe różnice
Możliwości zapisu własnej pamięci
– Enhanced Flash i Flash
Sposób zapisu pamięci przez procesor
– Flash: duże bloki danych, zapis pełnego bufora
– Enhanced Flash: kasowanie całego bloku, zapis
kolejnych danych do końca bufora, zerowanie
bufora po zapisie
(c) 2006 Ekiert
Ochrona danych w procesorze
bity ochrony kodu programu – Code Protect
bity ochrony danych – Data Protect
zakresy ochrony – obszary pamięci
procedury kasowania bitu ochrony
(c) 2006 Ekiert
Koniec
Dziękuję za uwagę