OPIS PROGRAMU IC-Prog
Program IC-Prog (ostatnia wersja 1 .04) autorstwa Bonny Gizjen'a współpracuje min. z programatorami kompatybilnymi z JDM, LUDIPIPO (tylko w wersji z zasilaniem zewnętrznym), z PHOENIX'em oraz z SMOUSE.
Przegląd funkcji programu:
Menu File
Open File... Ta funkcja ładuje kod programu i dane pamięci z wybranego pliku.
IcProg obsługuje pliki 8 i 16-bit Intel hex, pliki typu object i binarne.
Uwaga: niekiedy zdarza się plik hex z nietypowym rozszerzeniem, aby go załadować należy wybrać polecenie any files.
Save File As... Zapisuje zawartość bufora do pliku hex. Plik zawiera kod programu i dane pamięci, łącznie z zabezpieczeniami (fuses), oraz położeniem ID.
Open Data File... Ładuje jedynie dane pamięci do bufora programu.
Recent Files Znajdziesz tu ostatnio używane pliki.
Print Drukuje bufor kodu programu i danych, poprzedzając go nazwą pliku, typem układu i sumą kontrolną.
Menu Edit
Fill Buffer Wypełnia bufor kodu programu pojedynczą wartością , wartość ta może być zdefiniowana dziesiętnie, heksagonalnie, bądź w kodzie ASCI.
Fill Buffer from... Jak wyżej, lecz w przedziale od do zdefiniowanego adresu.
Copy From Buffer Po zaznaczeniu jakiejś wartości kopiuje ją do schowka.
Paste To Buffer Wkleja wartość ze schowka w zaznaczone miejsce.
Cztery powyższe polecenia odnoszą się do okna z kodem programu.
Następne cztery polecenia w tym menu są analogiczne do powyższych, lecz wykonują operacje na danych pamięci.
Menu Buffer
Active Buffer Pozwala na przechodzenie pomiędzy buforami (program oferuje pięć buforów).
Compare Porównuje zawartość kodu programu i danych umieszczonych w różnych buforach, wskazując wszelkie niezgodności.
Menu Settings
Device Wybór rodzaju i konkretnego symbolu układu. Trzeba przyznać, że obecna wersja (1.04) ma imponująco długą listę obsługiwanych układów, szczególnie mikrokontrolerów rodziny PIC.
Recent Devices To lista ostatnio używanych układów.
Hardware
Programmer Tu wybieramy programator z jakim ma współpracować program.
Ports Numer portu COM do którego mamy przyłączony programator.
I/O Delay Opóźnienie wejścia/wyjścia (domyślna wartość 10, najczęściej odpowiednia)
Interface Typ interfejsu, Direct I/O- bezpośredni dostęp do portu, dla Win95, Win98/ME, Windows API- Application Programming Interface, dla WinNT/2000.
Communication Pozwala programowo odwrócić wszystkie z sygnałów biegnących do i z programatora (przydatne np. w przypadku współpracy z JDM, gdzie należy odwrócić VCC)
Hardware Check
Po zaznaczeniu Enable Data Out powinno zaznaczyć się Data In, jest to potwierdzenie prawidłowej współpracy oprogramowania z programatorem. Pozostałych funkcji używamy w przypadku mierzenia sygnałów w podstawce programatora.
Options Konfiguracja programu, znaczenia zakładek nie będę tu wyjaśniał, gdyż program działa z domyślnymi ustawieniami, a jeśli będziesz chciał coś tu zmienić, zapewne będziesz wiedział co robisz
Nadmienię jedynie, że podczas współpracy z Phoenix'em należy w zakładce Smartcard wybrać port COM, częstotliwość kwarcu (3,58 MHz dla Phoenix'a), oraz rodzaj układu do którego ładujemy plik Loader.hex.
SmartCard (Phoenix) Opcji tej używamy podczas programowania pamięci na kartach GoldCard/WaferCard za pomocą programatora Phoenix.
Clear Settings Przywraca domyślne ustawienia programu.
Menu Command
Read All Czytanie zawartości układu. Zabezpieczenia (fuses) zostaną ustawione zgodnie z zapisanymi w układzie. Jeśli układ został zaprogramowany z zabezpieczeniem przed kopiowaniem (CP), bufor wypełni się wartościami nieprawdziwymi, np. dla układu PIC 16C84 okno z danymi pamięci (Eeprom Data) wypełni się wartościami 7F, zawartości innych układów mogą być odczytane jako zera.
Program All Zapisywanie układu zawartością bufora, łącznie z całą konfiguracją widoczną w oknie głównym programu. Bufor może zawierać dane pozyskane z odczytania wcześniej zapisanego układu, bądź dane z pliku (polecenie Open File...).
Program Config Zapisuje do chipa samą konfigurację widoczną w prawej części okna programu.
Erase All Kasuje zawartość układu.
Blank Check To polecenie czyta zawartość układu i potwierdza (lub nie) czy układ jest czysty (niezapisany żadnymi danymi).
Uwaga: Układ zapisany zerami nie jest niezapisany
Verify Sprawdza zgodność zawartości układu z danymi w buforze programu.
Uwaga: Polecenie to nie sprawdza zgodności zabezpieczeń (Fuses), a jedynie kod i dane.
Smartcard Wizard Jest to kreator programowania pamięci na kartach goldkard/waferkard, gdzie pamięć nie jest połączona fizycznie ze stykami karty, a jedynie poprzez mikrokontroler.
Zaprogramowanie takiej pamięci wymaga zapisania PIC'a odpowiednim kodem (np. loader.hex) umożliwiającym dostęp do zawartości eepromu.
Tok postępowania:
Ustaw w zakładce Settings-Options-Smartkard nr portu COM do którego zamierzasz podłączyć programator Phoenix, ustaw również typ układu na 16F84, a częstotliwość oscylatora na 3,58MHz
Uruchom Smartcard Wizard, podłącz programator układów PIC (nie Phoenix, a np. JDM, lub Ludipipo) i włóż uprzednio wyjęty z karty układ PIC 16F84 do podstawki programatora, jeśli posiadasz programator PIC'ów ze złączem smartcard nie musisz wyjmować układu, a jedynie włożyć kartę.
Teraz PIC zostanie zaprogramowany kodem umożliwiającym późniejszą modyfikację eepromu
Włóż układ do karty, a kartę do Phoenix'a którego należy podłączyć do wcześniej wybranego portu COM.
Teraz eeprom karty zostanie zapisany wybranym plikiem hex lub bin.
Włóż ponownie PIC'a w dedykowany mu programator i zapisz go wybranym przez siebie plikiem.
Menu Tools
CRD Upload Pozwala na edycję eepromu karty programatorem Phoenix przy użyciu plików *.crd.
Pliki takie mogą przykładowo usuwać pin karty, zawierać aktualizację kluczy dla danego operatora, zmieniać datę uprawnień.
Menu View
Assembler Podgląd zawartości bufora w Asemblerze, niestety, w tym widoku polecenie Compare nie wskazuje różnic między zawartością buforów.
Hex View Standardowy, hexagonalny sposób wyświetlania kodu i danych.
Device Position Pokazuje jak umieścić układ w podstawce zależnie od rodzaju programatora wybranego w zakładce Hardware, jak i typu układu wybranego w zakładce Device.
Device Information Wyświetla informacje o układzie; nazwę, typ, rozmiar i strukturę pamięci, oraz ile nóżek posiada.
Refresh Odświeża zawartość okna programu.
W SKRÓCIE DLA PIC 16F84
Na początku konfigurujemy program Settings - Hardware tak, aby współpracował z programatorem:
Dla programatora JDM należy zaznaczyć opcję „Invert VCC”, a w przypadku
programatora ludipipo lub multipipo wszystkie pola powinny być odznaczone.
Teraz sprawdzamy poprawność naszej konfiguracji; Settings - Hardware Check, po zaznaczeniu Enable Data Out powinno zaznaczyć się Data In, jest to potwierdzenie prawidłowej współpracy oprogramowania z programatorem
Wybieramy rodzaj programowanego układu Settings - Device.
Teraz ładujemy plik przeznaczony do zaprogramowania układu, File - Open file.
Niżej opisane opcje dostępne są w prawej części głównego okna programu, należy je ustawić po załadowaniu odpowiedniego pliku *.hex, lub *.bin, gdyż w innym przypadku ulegną zmianie.
Wybór oscylatora:
LP Low power oscillator mode
XT Crystal oscillator mode (standard)
HS High Speed oscillator mode
RC Resistor/Capacitor mode
Zgodnie ze specyfikacją producenta PIC 16x84 programuje się przy oscylatorze XT.
Bezpieczniki (Fuses):
WDT - (Watchdog timer) - do naszych zastosowań zawsze wyłączony
PWRT - (Power on reset)
Włączyć dla układu 16C84
Wyłączyć dla układu 16F84
CP - Code protect, proponuję pozostawić wyłączone, co umożliwi weryfikację prawidłowości programowania.
Jeśli programujemy mikrokontroler PIC który był wcześniej zaprogramowany z użyciem Code protect należy najpierw skasować jego zawartość poleceniem Erase All.
Układ programujemy poleceniem Program All.
IcProg na domyślnych ustawieniach zweryfikuje nam poprawność zaprogramowania, w przypadku zgodności proces zakończy się komunikatem Device successfully verified!
Powyższa instrukcja powstała w oparciu o oryginalny Help for IC-Prog, oraz
doświadczenia autora nabyte podczas pracy z programem.