Top secrets sources NedoPC pentevo

Rev

Rev 89 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?


        BOOTLOADER ATMEGA128 äëÿ ZX Evolution

------------------------------------------------------------------------------

Èñïîëüçîâàíèå
~~~~~~~~~~~~~
Ìèêðîñõåìó ATMEGA128 çàïðîãðàììèðîâàòü ôàéëîì
ZXEVO_BL.HEX (íàïð. ñ ïîìîùüþ AVREAL)
èëè
ZXEVO_BL.E2P (ñ ïîìîùüþ PonyProg2000).

Êîìàíäíàÿ ñòðîêà äëÿ AVREAL (ByteBlaster íà ïîðòó LPT1):
avreal32.exe -ab -p1 +ATMEGA128 -e -w zxevo_bl.hex -f_low=3F,_high=88,_ext=FF,_lock=EF -v

Êîìàíäíàÿ ñòðîêà äëÿ óòèëèòû JTAGICE èç êîìïëåêòà AVRStudio4 (JTAGICE íà ïîðòó COM1):
jtagice.exe -cCOM1 -B115200 -dATMEGA128 -e -ifzxevo_bl.hex -pf -vf -f883F -F883F -EFF -GFF -lEF -LEF

Êîìàíäíàÿ ñòðîêà äëÿ óòèëèòû STK500 èç êîìïëåêòà AVRStudio4 (AVRISPmkII íà USB-ïîðòó):
stk500.exe -cUSB -I250000 -dATMEGA128 -e -ifzxevo_bl.hex -pf -vf -f883F -F883F -EFF -GFF -lEF -LEF

 ôàéëå E2P íóæíûå fuse áèòû óæå óñòàíîâëåíû, ïðîñòî îòêðîéòå ôàéë â PonyProg2000,
âûïîëíèòå ñòèðàíèå (Ctrl+E), çàïèñü (Ctrl+W) è çàïèñü áèòîâ (Ctrl+S).

Ìåòîäèêà çàãðóçêè(îáíîâëåíèÿ) îñíîâíîé ïðîøèâêè
(ôàéë avr\current\default\ZXEVO_FW.BIN)
îïèñàíà â äîêóìåíòå docs\ZXEvo_firmware_update.odt .


------------------------------------------------------------------------------

FPGA\
fpga.qpf        - ïðîåêò (Quartus v6.1)
fpga.qws
main.dpf
main.qsf
main.v          - ãëàâíûé èñõîäíèê
main.rbf        - âûõîäíîé ôàéë

AVR\
boot_evo.asm    - ãëàâíûé èñõîäíèê
_macros.asm
evotitle.ans    - ANSI-çàñòàâêà
m128def.inc
version.txt     - íàçâàíèå ïðîøèâêè (äî 12 ñèìâ.)

clean.bat
make.bat        - êîìàíäíûé ôàéë äëÿ
                  êîìïèëÿöèè AVR ÷àñòè è
                  ñáîðêè ïðîåêòà.

zxevo_bl.hex    - ñîáðàííûé ïðîåêò
zxevo_bl.e2p    - ñîáðàííûé ïðîåêò (äëÿ PonyProg2000)


Ñáîðêà ïðîåêòà
~~~~~~~~~~~~~~
1. Êîìïèëèðóåì â Quartus-å FPGA ÷àñòü ïðîåêòà (ïîëó÷àåì ôàéë main.rbf).
2. Çàïóñêàåì MAKE.BAT (êîìïèëèðóåì AVR ÷àñòü è ñîáèðàåì ïðî¸êò).

Ïðè ñáîðêå èñïîëüçóþòñÿ ñëåäóþùèå ïðîãðàììû:
tools\mhmt\mhmt.exe
tools\bin2avr\bin2avr.exe
tools\avra\avra.exe
tools\crcbldr\crcbldr.exe


------------------------------------------------------------------------------

INFO
~~~~

- CRC -

Boot-áëîê è îñíîâíàÿ ïðîøèâêà çàùèùåíû CRC-16 (CCITT).
Âû÷èñëåíèå è çàïèñü â ïðîøèâêó àâòîìàòèçèðîâàíî ñ ïîìîùüþ äîï.óòèëèò.
Çíà÷åíèÿ êëàäóòñÿ â ïîñëåäíèå äâà áàéòà
äëÿ boot-áëîêà $1FFFE/$1FFFF è äëÿ îñíîâíîé ïðîøèâêè $1DFFE/$1DFFF
(ñòàðøèé áàéò ïåðâûé).


- Âåðñèè -

 Âåðñèÿ ïðåäñòàâëÿåò ñîáîé èäåíòèôèêàòîð ïðîøèâêè, êîòîðàÿ ðàñïîëàãàåòñÿ
â ïîñëåäíèõ àäðåñàõ boot-áëîêà ($1FFF0-$1FFFD)
è îñíîâíîé ïðîøèâêè ($1DFF0-$1DFFD).

Ñîñòàâ èäåíòèôèêàòîðà ñëåäóþùèé:

 +00..+11 - ïðîèçâîëüíàÿ ñèìâîëüíàÿ ñòðîêà, äîáèòàÿ äî äëèíû 12 áàéò íóëÿìè
 +12..+13 - 16-áèòíàÿ âåëè÷èíà (ìëàäøèé áàéò ïåðâûé),
            îáîçíà÷àþùàÿ äàòó ðåëèçà äàííîé âåðñèè.

Ôîðìàò 16-áèòíîé âåëè÷èíû (áèòû ïðîíóìåðîâàíû íà÷èíàÿ ñ ìëàäøåãî íîìåðîì íîëü)

áèò  15     - áèò "îôèöèàëüíîñòè"
áèòû 14..09 - ãîä äàòû (8...63), 6 áèò
áèòû 08..05 - ìåñÿö äàòû (1..12), 4 áèòà
áèòû 04..00 - äåíü äàòû (1..31), 5 áèò

Çàïèñü â ïðîøèâêó àâòîìàòèçèðîâàíî ñ ïîìîùüþ äîï.óòèëèò. Ðàçðàáîò÷èêó íóæíî
ëèøü çàïîëíèòü(èçìåíèòü) ñòðî÷êó â ôàéëå VERSION.TXT ïåðåä êîìïèëÿöèåé.


- Fuse Bits -

CKOPT=0, CKSEL321=111,
CKSEL0=1, SUT10=11
Ext. Crystal/Resonator High Freq.; Start-up time: 16K CK + 64 ms

BODEN=0, BODLEVEL=0
Brown-out Detector level at 4.0 V

BOOTRST=0
Âåêòîð ñáðîñà íà boot-áëîê

BOOTSZ10=00
Ðàçìåð boot-áëîêà 8êá

EESAVE=1
Ïðè ChipErase ñòèðàòü EEPROM

SPIEN=0
Ïðîãðàììèðîâàíèå ÷åðåç ISP ðàçðåøåíî

JTAGEN=0
JTAG ðàçðåø¸í

OCDEN=1
On-chip Debug çàïðåù¸í

M103C=1
Ðåæèì ñîâìåñòèìîñòè ñ ATMEGA103 îòêëþ÷åí

WDTON=1
Watchdog Timer ïî-óìîë÷àíèþ çàïðåù¸í

BLB1=10
Çàïèñü â îáëàñòü boot-áëîêà êîìàíäîé SPM çàïðåùåíà