Oprogramowanie>"picuś3">instrukcja obsługi
1.
Podział programu na bloki
Okno
główne programu podzielone zostało na bloki, aby oddzielić od siebie różne
formy funkcjonalności.

Wyróżniono
cztery podstawowe bloki:
ˇ
"programator" -
umożliwia ustawienie portu, na którym program będzie poszukiwał programatora
PICUŚ. W bloku tym wskazywany jest również status programatora.
ˇ
"obsługiwane
układy" - blok ten w strukturze hierarchicznej wyświetla wszystkie obsługiwane
układy scalone. Układy pogrupowano by ułatwić poszukiwanie.
ˇ
"wybrany układ" -
obsługuje wybrany przez użytkownika układ scalony. Wyświetla informacje oraz
umożliwia wykonywanie operacji
ˇ
"operacje" -
jest to nieoznaczony blok, w którym są dwie ikonki
"wybierz plik" oraz "wyświetl"
2.
Blok "programator"
Ostatnie
ustawienie portu jest przechowywane przez program. Nie ma
zatem konieczności każdorazowego ustawiania.
Po każdorazowej zmianie ustawienia, program na
ustawionym porcie nawiązuje połączenie z programatorem.
Jeżeli połączenie zakończy się sukcesem to w polu
niżej pojawia się stosowna informacja wraz z numerem wersji firmware.
Tylko w takiej sytuacji możliwa będzie dalsza praca z programem.
3.
Blok "obsługiwane układy"
W bloku tym wyświetlane są nazwy obsługiwanych przez
program i programator układów. Układy te zostały pogrupowane, aby ułatwić
użytkownikowi wyszukiwanie.
Aby wybrać dany układ, należy kliknąć na nim
dwukrotnie myszką. Warto nadmienić, iż po dwukrotnym kliknięciu
myszką na nazwie grupy (np. PIC10/12/16 lub PIC18) uruchomiona zostanie funkcja
automatycznej detekcji układu. Jeżeli układ zostanie rozpoznany, wówczas w
bloku "wybrany układ" pojawią się jego dane. Jeżeli nie zostanie rozpoznany to
użytkownik będzie musiał własnoręcznie wybrać go z listy. Jeżeli układ zostanie
rozpoznany to nie tylko jego dane zostaną pokazane, lecz automatycznie
odczytane zostaną jego pozycje identyfikacyjne oraz słowa konfiguracyjne.
Warto zauważyć, że nazwy niektórych modeli pamięci
poprzedzono
gwiazdką. Oznacza to, że jest to model
uniwersalny, czyli niezależny od producenta. Jest to spowodowane tym, że nawet
pamięci o tych samych oznaczeniach produkowane przez różnych producentów mogą
mieć trochę inną strukturę wewnętrzną, którą trzeba uwzględnić przy zapisie lub
odczycie.
Nie ma to wpływu na pamiętanie danych, lecz na sam
wpływ programowania. Nazwy pamięci, które nie zostały poprzedzone gwiazdką,
mają najczęściej spotykane parametry. Programowanie tych układów jest nieco
krótsze niż układów z gwiazdką.
Jeżeli zauważysz różnicę pomiędzy zaprogramowanym
układem *24C16 a 24C16 to powinieneś założyć, że prawidłowo zaprogramowany jest
układ *24C16.
4.
Blok "wybrany układ"
Blok ten będzie najczęściej wykorzystywanym przez
użytkownika blokiem. Po wybraniu układu w bloku "obsługiwane układy" w
niniejszym bloku pojawiają się informacje dotyczące wybranego układu. Pojawią
się również w formie ikonek, możliwe do wykonania
operacje.



Powyżej pokazano postaci bloku "wybrany układ" dla
kilku przypadków. Poniżej zostaną omówione kolejne pozycje w tym bloku.
ˇ
Program - zawiera
informacje na temat pamięci programu wybranego układu.
ˇ
Dane -
zawiera informacje na temat pamięci danych wybranego mikrosterownika
lub pamięci eeprom.
ˇ
ID -
zawiera pozycje identyfikacyjne wybranego mkrosterownika.
Te pozycje drzewa mogą być edytowane przez użytkownika. Poprawność wpisów jest
sprawdzana po zakończeniu edycji. Wartość pozycji ID może zostać załadowana z pliku
HEX o ile takie wpisy zostały w nim zawarte. Stanie się to automatycznie po
wyświetleniu pliku lub przeznaczeniu go do zaprogramowania.
ˇ
Konfiguracja - zawiera słowa konfiguracyjne wybranych mikrosterowników.
Ilość tych słów może być różna i jest zależna od wybranego mikrosterownika.
Należy mieć świadomość, iż kolejność wyświetlanych słów konfiguracyjnych
odpowiada kolejności słów w mikrosterowniku. Słowa
konfiguracyjne mogą być edytowane przez użytkownika. Poprawność wpisanych
danych jest sprawdzana, ale dotyczy tylko kwestii zgodności z systemem
szesnastkowym. Nie jest sprawdzana poprawność oraz zasadność bitów
konfiguracyjnych jako takich. Podobnie jak pozycje ID, słowa konfiguracyjne
mogą zostać załadowane z pliku HEX o ile zostały w nim umieszczone. Stanie się
to automatycznie po wyświetleniu zawartości pliku lub przeznaczeniu go do
programowania.
ˇ
Suma kontrolna - jest to szesnastobitowa wartość powstała przez dodanie do siebie
wartości wszystkich komórek odczytywanej pamięci. Jeżeli odczytywana pamięć
programu to suma kontrolna będzie sumą wszystkich komórek pamięci programu.
Jeżeli zaraz potem zostanie odczytana pamięć danych to wartość sumy kontrolnej
zmieni się na sumę wszystkich komórek pamięci danych.
ˇ
Adres I2C -
jest to fizyczny adres pamięci I2C. Standardowym adresem jest wartość A0 i w
taki sposób skonfigurowana jest pamięć w przystawce 2. Jeżeli jednak użytkownik
programuje pamięć znajdującą się w innym układzie, może zaistnieć potrzeba
ustawienia adresu. Dlatego właśnie adres ten jest pozycją, którą można
edytować. Należy pamiętać, że najmłodszy bit powinien pozostać wyzerowany,
czyli należy wpisywać adresy parzyste w systemie szesnastkowym.
ˇ
Orientacja -
ustawienie to dotyczy tylko pamięci typu microwire.
Pamięć ta może być zorientowana bajtowo lub 16bitowo. To ustawienie nie może
być zmieniane przez użytkownika i zależy od typu wybranej pamięci.
ˇ
Kalibracja OSC - występuje tylko w przypadku mikrosterowników,
które posiadają zapisaną kalibrację oscylatora. Wartość ta zostanie wyświetlona
bez możliwości edycji.
Z prawej części bloku znajdują się ikonki, których znaczenie omówiono poniżej.
ˇ
Programuj - inicjalizuje
programowanie całego układu. Jeżeli użytkownik zmienił własnoręcznie pozycje
identyfikacyjne lub słowa konfiguracyjne, przy zmianach tych zostanie wstawiony
stosowny znaczek, lecz nie zostaną one automatycznie wprowadzone do układu
programowanego. Dopiero dwukrotne milknięcie ikonki
"programuj" spowoduje faktyczne zaprogramowanie tych zmian. Jeżeli do pamięci
programu lub danych przypisany jest jakiś plik to pamięci te również zostaną
zaprogramowane.
ˇ
Kasuj -
kasuje wybraną pamięć. Opcja ta działa w technologii przeciągnij i upuść. Aby
skasować pamięć programu mikrosterownika, należy
"złapać" ją myszką i upuścić na ikonę "kasuj". Podobnie należy postąpić w
przypadku kasowania pamięci danych. W przypadku mikrosterowników
możliwe jest jeszcze skasowanie całego układu włączając w to zabezpieczenie
przed zapisem i odczytem. W tym celu należy przeciągnąć na ikonę "kasuj" nazwę
wybranego układu w bloku "układ wybrany". Przy nazwie układu znajduje się
obrazek przedstawiający dłoń.

5.
Blok "operacje"

W bloku tym znajdują się ikonki
"załaduj plik" oraz "wyświetl" umożliwiające wykonywanie m.in. operacji na
plikach.
ˇ
Załaduj plik - dwukrotne kliknięcie na ikonie "załaduj plik"
otworzy okno, w którym można wybrać istniejący plik lub stworzyć nowy. Nazwa
tego pliku natychmiast pojawi się pod ikoną i od teraz wszelkie operacje
plikowe będą oparte o dane z tego pliku. Obsługiwane przez program pliki mogą
mieć rozszerzenie .BIN lub .HEX.
ˇ
Wyświetl -
umożliwia obejrzenie danych pochodzących z pliku lub wybranego układu. Program
wyposażony jest w dwa bufory danych. Jeżeli obydwa bufory są wykorzystywane,
domyślnie dane ładowane są do pierwszego buforu.
Ikonki w tym bloku również działają w technologii
przeciągnij i upuść. Tak więc aby wyświetlić zawartość
wybranego pliku należy przeciągnąć ikonę pliku nad ikonę monitora i tam ją
upuścić.
Pozostałe operacje zostaną omówione w dalszej części
opisu.
6.
Okno podglądu
Dwukrotne kliknięcie na
ikonie "wyświetl" w bloku "operacje" spowoduj otwarcie okna podglądu kodu. Okno
to umożliwia odczytanie danych pochodzących z pliku lub z wybranego układu.

Jak widać wyżej, okno zawiera dwie siatki, w których
wyświetlane są dane pochodzące z różnych źródeł. W ten
sposób łatwo osobiście sprawdzić czy dane pochodzące z pliku są takie same, jak
w pamięci układu. Poniżej siatek znajdują się obliczone sumy kontrolne. Sumy te
wyliczane są jako suma wszystkich komórek.
Jeżeli zostanie zaznaczone pole "porównaj", w
siatkach zostaną wyróżnione komórki, które się między sobą różnią.

Ponadto obliczona zostanie ilość różniących się
pozycji w buforach.
7.
Odczyt danych z układu
Odczytane z pamięci układu dane mogą zostać przesłane
do pliku lub do bufora w celu analizy ich. Operacja ta jest wykonywana w
technologii "przeciągnij i upuść".
Aby przesłać dane z pamięci programu mikrosterownika do pliku, należy wybrać nazwę pliku (klikając dwukrotnie na ikonie "wybierz plik") "złapać"
napis "program" z bloku "wybrany układ" i upuścić go na ikonie symbolizującej
plik w bloku "operacje". Dane zostaną automatycznie odczytane z układu i
zapisane w pliku o wybranej nazwie. Podobnie operacja wygląda w przypadku
odczytu pamięci danych.
Jeżeli dane nie mają zostać zapisane w pliku, lecz
tylko wyświetlone na ekranie, napis "program" lub "dane" należy upuścić na
ikonie symbolizującej monitor. Pod ikoną pojawi się statystyka wykorzystania
pamięci.
Należy zauważyć, że po odczytaniu danych, pod wybraną
gałęzią "program" lub "dane" pojawi się informacja dotycząca zajętości wybranej
pamięci układu.

W tej sytuacji użytkownik odczytał pamięć programu.
Na 1024 dostępne komórki pamięci tylko 53% z nich zawiera istotne dane. Po
każdym odczycie aktualizuje się również informacja pod gałęzią "suma
kontrolna". Jest ona obliczana po każdorazowym odczycie z którejkolwiek
pamięci.

8.
Programowanie układu
Programowanie układu można zrealizować na dwa
sposoby.
ˇ
Bezpośrednie wskazanie pliku - sposób ten umożliwia osobne zaprogramowanie
pamięci danych oraz pamięci programu. Polega na przeciągnięciu ikony
symbolizującej plik i upuszczenie jej na napisie "program" lub "dane" w bloku
"wybrany układ". Natychmiast zostanie uruchomiona procedura programowania.
Należy zwrócić uwagę, że w przypadku gdy plik .hex zawiera słowa konfiguracyjne i/lub pozycje ID,
dane te również zostaną automatycznie zapisane w układzie. W związku z tym
zalecane jest programowanie pamięci danych w pierwszej kolejności gdyż w
przeciwnym wypadku razem z konfiguracją mogą zostać zapisane bity protekcji
kodu i zapisanie pamięci danych w następnej kolejności może nie być już
możliwe. Bezpośrednio po programowaniu pamięci danych lub pamięci programu,
wykonywana jest weryfikacja polegająca na odczytaniu zaprogramowanych danych i
porównaniu ich ze wzorcem. Jeżeli dane zostały zaprogramowane dobrze to
użytkownik zostanie o tym fakcie poinformowany.

W tym przypadku weryfikacja wykazała błąd
programowania. Istotna jest również gałąź oznaczona ikoną dyskietki. Informuje
ona o nazwie pliku przypisanym do danej pamięci oraz o tym, w jakim stopniu
dane pochodzące z niego wypełniają przestrzeń pamięci.
ˇ
Programowanie kompleksowe - wywoływane jest przez dwukrotne kliknięcie
ikonki "programuj" w bloku "wybrany układ". Jeżeli
tylko do danej pamięci przypisany jest jakiś plik to zostanie w niej
zaprogramowany. Jakiekolwiek programowanie poprzedzone jest kompleksowym
kasowaniem. W przypadku mikrosterowników kasowanie to
obejmuje również zdejmowanie zabezpieczenia przed zapisem i odczytem.
Zapisywane są również słowa konfiguracyjne oraz pozycje ID. Wykonywana jest
weryfikacja.
9.
Kasowanie
Kasowanie można przeprowadzić na pamięci danych,
programu lub kompleksowo. Aby skasować pamięć danych, należy "złapać" napis
"dane" w bloku "wybrany układ" i upuścić go na ikonę "kasuj". Podobnie należy
postąpić w przypadku kasowania pamięci programu. Jeżeli na ikonie zostanie
upuszczona nazwa wybranego układu, skasowany zostanie cały układ włączając w to
bity protekcji.