黄金会员
主题
帖子
积分8515
阅读权限40
注册时间2011-10-27
最后登录1970-1-1
在线时间 小时
|
来了
usbasp.rar
(5.27 KB, 下载次数: 156)
刷这个固件可以用usbasp读写lgt芯片, 但是不能写avr芯片.
支持avrdude, progisp172 (这是我测试过的) 用linux可以用avrdude
progisp172 选择m8芯片 读识别符也是m8的
avrdude 可以再avrdude.conf中加入一个芯片看着也许舒服点
#------------------------------------------------------------
# LGT8F0*A
#------------------------------------------------------------
part
id = "lgt8f08a";
desc = "LGT8F08A";
stk500_devcode = 0x70;
avr910_devcode = 0x76;
signature = 0x1e 0x93 0x07;
pagel = 0xd7;
bs2 = 0xc2;
chip_erase_delay = 10000;
pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
"x x x x x x x x x x x x x x x x";
chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
"x x x x x x x x x x x x x x x x";
timeout = 200;
stabdelay = 100;
cmdexedelay = 25;
synchloops = 32;
bytedelay = 0;
pollindex = 3;
pollvalue = 0x53;
predelay = 1;
postdelay = 1;
pollmethod = 0;
pp_controlstack =
0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
hventerstabdelay = 100;
progmodedelay = 0;
latchcycles = 5;
togglevtg = 1;
poweroffdelay = 15;
resetdelayms = 2;
resetdelayus = 0;
hvleavestabdelay = 15;
resetdelay = 15;
chiperasepulsewidth = 0;
chiperasepolltimeout = 10;
programfusepulsewidth = 0;
programfusepolltimeout = 5;
programlockpulsewidth = 0;
programlockpolltimeout = 5;
memory "eeprom"
size = 504;
page_size = 4;
min_write_delay = 9000;
max_write_delay = 9000;
readback_p1 = 0xff;
readback_p2 = 0xff;
read = " 1 0 1 0 0 0 0 0",
" 0 0 x x x x x a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" o o o o o o o o";
write = " 1 1 0 0 0 0 0 0",
" 0 0 x x x x x a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" i i i i i i i i";
mode = 0x04;
delay = 20;
blocksize = 128;
readsize = 256;
;
memory "flash"
paged = yes;
size = 8192;
page_size = 64;
num_pages = 128;
min_write_delay = 4500;
max_write_delay = 4500;
readback_p1 = 0xff;
readback_p2 = 0x00;
read_lo = " 0 0 1 0 0 0 0 0",
" 0 0 0 0 a11 a10 a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" o o o o o o o o";
read_hi = " 0 0 1 0 1 0 0 0",
" 0 0 0 0 a11 a10 a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" o o o o o o o o";
loadpage_lo = " 0 1 0 0 0 0 0 0",
" 0 0 0 0 x x x x",
" x x x a4 a3 a2 a1 a0",
" i i i i i i i i";
loadpage_hi = " 0 1 0 0 1 0 0 0",
" 0 0 0 0 x x x x",
" x x x a4 a3 a2 a1 a0",
" i i i i i i i i";
writepage = " 0 1 0 0 1 1 0 0",
" 0 0 0 0 a11 a10 a9 a8",
" a7 a6 a5 x x x x x",
" x x x x x x x x";
mode = 0x21;
delay = 10;
blocksize = 64;
readsize = 256;
;
memory "lfuse"
size = 1;
min_write_delay = 2000;
max_write_delay = 2000;
read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
"x x x x x x x x o o o o o o o o";
write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
"x x x x x x x x i i i i i i i i";
;
memory "hfuse"
size = 1;
min_write_delay = 2000;
max_write_delay = 2000;
read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
"x x x x x x x x o o o o o o o o";
write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
"x x x x x x x x i i i i i i i i";
;
memory "lock"
size = 1;
min_write_delay = 2000;
max_write_delay = 2000;
read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
"x x x x x x x x x x o o o o o o";
write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
"x x x x x x x x 1 1 i i i i i i";
;
memory "calibration"
size = 4;
read = "0 0 1 1 1 0 0 0 0 0 x x x x x x",
"0 0 0 0 0 0 a1 a0 o o o o o o o o";
;
memory "signature"
size = 3;
read = "0 0 1 1 0 0 0 0 x x x x x x x x",
"x x x x x x a1 a0 o o o o o o o o";
;
;
progisp172 的usb包是128字节
avrdude 的usb包是200字节
progisp172 也许更快点
avrdude 读写eeprom
avrdude -p lgt8f08a -c usbasp -U eeprom:r:"R:/eeprom.bin":r
avrdude -p lgt8f08a -c usbasp -U eeprom:w:"R:/eeprom1.bin":r
avrdude 读写flash
avrdude -p lgt8f08a -c usbasp -u -U flash:r:"R:/flash.bin":r
avrdude -p lgt8f08a -c usbasp -U flash:w:"R:/test_firmware.hex":i
加密位
LB1 LB2 同时置位为芯片加密
熔丝
SPIEN置位为熔丝使能
熔丝低位0:5是rc校准
LGT芯片的加密位可以用全片擦除解锁的
估计论坛里的朋友很少有天天用usbasp的, 可以参考一下http://vamposdecampos.googlepages.com/infrahid.html当pc遥控器用 |
|