Nie, nie musisz, w rzeczywistości nie możesz, używać SPI, UART lub I 2 C do programowania PIC. Jedyny sposób, aby dostać nowy program w PIC, że nie posiada specjalny kod załadowany do tego celu (bootloader) jest użycie zewnętrznego interfejsu programowania sprzętu. Elektrycznie oznacza to połączenie z Vss, MCLR, PGC i PGD. Przydatne może być również podłączenie programatora do Vdd, ale nie jest to konieczne w przypadku tego układu, o ile poziom Vdd jest znany, a programator odpowiednio dostosowany.
Interfejs sprzętowy niskiego poziomu jest dość prosty. PGD to linia danych, która jest próbkowana przez PIC na zboczu opadającym PGC (linia zegarowa). Aby w pierwszej kolejności ustawić PIC w tryb programowania, specjalny 32-bitowy klucz jest taktowany względem określonych zboczy w MCLR (chociaż patrz uwaga poniżej dotycząca programowania wysokiego napięcia).
Protokół wyższego poziomu staje się bardziej skomplikowany. Większość czynności odbywa się za pomocą poleceń 6-bitowych, a po niektórych z nich znajdują się 14-bitowe słowa danych. Musisz dokładnie przeczytać specyfikację programowania. Należy pamiętać, że specyfikacja programowania jest dokumentem odrębnym od arkusza danych. Przejdź do strony produktu dla konkretnego PIC na stronie Microchip, a link do specyfikacji programowania znajdziesz w sekcji dokumentów.
Dodano informacje o programowaniu wysokiego napięcia
Tego rodzaju PIC mają dwa sposoby wejścia w tryb programowania: wysokie napięcie (HVP) i niskie napięcie (LVP). Metoda wysokonapięciowa wymaga podniesienia MCLR do 8–9 woltów i utrzymania go podczas programowania. Ta metoda zawsze działa, niezależnie od ewentualnych danych zaprogramowanych w PIC.
Metoda niskiego napięcia wejścia w tryb programowania rozpoczyna się od ustawienia wysokiego poziomu MCLR, a następnie niskiego, a następnie taktowania specjalną 32-bitową sekwencją klawiszy przy użyciu normalnie PGC i PGD. Część wejdzie w tryb programowania po prawidłowej sekwencji klawiszy i pozostanie w trybie programowania, dopóki MCLR będzie utrzymywany na niskim poziomie.
Metodę niskiego napięcia można wyłączyć jednym z bitów konfiguracji. Jednak skasowany stan bitu konfiguracyjnego umożliwia programowanie przy niskim napięciu, jest on wysyłany z fabryki w ten sposób, a ten bit konfiguracyjny można ustawić tak, aby nie zezwalał na LVP, jeśli programowanie zostało wprowadzone metodą wysokonapięciową. Dlatego, aby LVP nie mógł zostać włączony, muszą być spełnione wszystkie następujące warunki:
- PIC został ostatnio zaprogramowany za pomocą programatora obsługującego HVP i zastosowano tryb wprowadzania programu HVP.
- Plik HEX zaprogramowany w PIC celowo ustawia bit LVP w słowie konfiguracyjnym 2 na stan nieskasowany.
Ponieważ wyłączenie LVP prawie wymaga celowego działania i odpowiedniego programisty, prawdopodobnie nadal jest możliwe. Jeśli został celowo wyłączony z jakiegoś dziwnego powodu, musisz podać 8–9 V na MCLR, aby wprowadzić PIC w tryb programowania przynajmniej na tyle długo, aby wykonać kasowanie masowe (które ponownie włącza LVP).