readme pl


OpenFirmware Service PicCard & FunCard
--------------------------------------

Soft do karty PicCard (Zielonka) oraz FunCard umożliwiający przenoszenie sekcji flasha między komputerem i tunerem bez konieczności przeprogramowywania przez kable lub Jtag-a.

'PicCard.hex' - dla karty PicCard z PIC16[C/F]84(A)
'FunCard.hex' - dla karty FunCard z AT90S8515(A)

Wymagana pamięć na karcie to 24C512 (64KB i2c eeprom, z innymi nie będzie chodziło poprawnie).

Protokół zapisu i odczytu został skonstruowany w taki sposób, że bajty wpisywane są i odczytywane z pamięci eeprom podczas komunikacji, więc nie jest przeznaczony żaden dodatkowy czas na zapis lub odczyt od tego, który potrzeba do przesłania lub odebrania bajtów z karty. Zastosowanie 128-bajtowych paczek (maksymalne przyjmowane przez 24C512) daje jak najmniejszą ilość wydawanych komend co dodatkowo skraca proces wgrywania i odczytywania.

Cały eeprom jest wykorzystany do zapisu i nie potrzeba w nim żadnych dodatkowych danych do działania karty. Należy więc tylko wymienić pamięć na 24C512 (nie dotyczy kart Fun5, które już mają 24C512) oraz zaprogramować flash procesora i karta jest gotowa do pracy.

Nowe instrukcje odpowiedzialne za zapis i odczyt z eeproma karty:
-----------------------------------------------------------------

legenda:
> - z tunera do karty
< - z karty do tunera

- ins F0 - ustawianie sekcji do zapisu/odczytu:

>C1 F0 00 00 01
>xx
<90 00 lub 90 11

xx:
-0x00: początek eeproma (gdy używamy flasha jako loadera)
-0x01: TCS
-0x02: TPT
-0x03: TSR
-0x04: EMU
-0x05: TSETTING
-0x06: zerowanie statusu sekcji
-inna wartość: pointer sekcji nie ustawiony i odpowiedź karty 90 11

Mapa eeproma:
0000-0BFF: TPT (3KB) - 24 pętle odczytu/zapisu
0C00-13FF: TSR (2KB) - 16 pętli odczytu/zapisu
1400-FFFF: TCS (59KB) - 472 pętli odczytu/zapisu
1400-23FF: EMU (4KB) - 32 pętle odczytu/zapisu
2400-2BFF: TSETTING (2KB) - 16 pętli odczytu/zapisu
FFFF: status sekcji (1B)

TCS zachodzi na EMU i TSETTING, więc można wgrać wszystko oprócz TCS i potem w drugiej turze samo TCS, albo TCS+TPT+TSR i EMU+TSETING lub update'ować pojedyncze sekcje, np. samo EMU.

Rozkład bajtu statusu sekcji:
000abcde

a - TSETTING
b - EMU
c - TSR
d - TPT
e - TCS

Bity a-e wskazują na istnienie danej sekcji w eepromie. Bit ustawiony na '1' oznacza, że w eepromie jest wgrana dana sekcja i można ją odczytać. Dany bit ustawia się gdy wgrywamy odpowiednią sekcję instrukcjami 0xF1. Oczywiście jeśli wgrywamy sekcję, która zachodzi na jakąś inną to bit tej drugiej zostaje wyzerowany. Jeśli przygotowujemy od razu cały eeprom do wgrania w trybie loadera lub w zewnętrznym programatorze to należy odpowiednio ustawić bajt statusu (ostatnia pozycja). Jak widać na mapie eepromu, bajt statusu jest ostatnim bajtem w eepromie i zachodzi na niego TCS. Jednakże soft nie pozwala na nadpisanie bajtu statusu przy zapisie ostatniej paczki TCS i jest to możliwe jedynie gdy ładujemy dane w trybie loadera (wtedy karta zapisuje wszystko i nie zwraca uwagi na strukturę sekcji oraz bajt statusu).

- ins 0xF1 - zapis:

>C1 F1 00 00 80
>{yy}
<90 00

{yy}: 128 bajtów do zapisu w eepromie

- ins F2 - odczyt:

>C1 F2 00 00 80
<{yy}
<90 00

{yy}: 128 bajtów odczytanych z eeproma

- ins 0xF3 - odczyt statusu sekcji:
>C1 F3 00 00 01
<90 00

yy: odczytany bajt statusu sekcji

Po ustawieniu sekcji należy wykonać odpowiednią ilość pętli odczytu/zapisu, aby odczytać/zapisać daną sekcję z eeproma/w eepromie.

Konfiguracja diod LED (dotyczy tylko FunCard oczywiście o ile takowe są na niej zainstalowane):
-----------------------------------------------------------------------------------------------
oooo ooo
1234 567

1-5: zielona
6: zółta/pomarańczowa
7: czerwona

567 - wysyłanie ATR
5 - przetwarzanie standardowej instrukcji Seca
W momencie gdy karta otrzymuje standardową instrukcję Seca diody 1-4 gasną (jeśli któreś są zapalone).
67 - przetwarzanie instrukcji 0xF0 (ustawianie sekcji do zapisu/odczytu), po tej instrukcji zmienia się stan diod 1-4:
- żadna się nie pali:
1) został podany bajt o wartości 0x06 jako parametr, nastąpiło zerowanie statusu i karta dała odpowiedź 90 00
2) został podany błędny numer jako parametr i karta nie ustawiła pointera oraz dała odpowiedź 90 11
- wszystkie się palą: zostało podane 0x00 jako parametr i pointer ustawiony jest na początek eeproma (tryb loadera)
- inna kombinacja: został ustawiony pointer na daną sekcję i diody te wskazują na jej numer w postaci binarnej, tzn.:
legenda:
o - pali się
x - nie pali się
xxxo - TCS
xxoo - TPT
xoxx - TSR
xoxo - EMU
xoox - TSETTING
7 - przetwarzanie instrukcji 0xF1 (zapis) - diody 1-4 wskazują zapisywaną sekcję
6 - przetwarzanie instrukcji 0xF2 (odczyt) - diody 1-4 wskazują odczytywaną sekcję
56 - przetwarzanie instrukcji 0xF3 (odczyt bajtu statusu sekcji)

bezerker


Wyszukiwarka

Podobne podstrony:
ReadMe PL
ReadMe PL
ReadMe PL
Readme PL
readme pl
Readme PL
JobsOfSkyrim readme PL
readme pl
readme pl
Readme PL
Readme PL
ReadMe PL
DarkBreath v 1 ReadMe PL
README PL
ReadMe pl
Flash Licznik v 2 0 Readme PL

więcej podobnych podstron