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 çàïðåùåíà