Можно ли скомпилировать программу и прошить AT89s51 через AVR ISP?
- Войдите на сайт для отправки комментариев
Вс, 16/02/2014 - 19:58
Есть устройство основанное на ATmega8515. Но МК дороговатый. Решил перейти на AT89s51. Функционально он такой же. Пока не знаю заказывать их или нет. Может кто сталкивался... Arduino ISP прошьёт его или нет? Пользуюсь CODEvision и Arduino. Стремает что цепь сброса на 89й серии инвертна ATmega. Или может не стоит и связываться с 89ой серией?
Вот пример:
http://www.nipahut.com.ph/proj_avr1_frm.html
Можно так же добавить секцию по данному контролеру в avrdude.conf и board.txt, указав соответствующие сигнатуры и фьюзы.
Ардуино использует avrdude для программирования так что если правильно изменить конфиг то проблемы не должно быть. Вроде данный чип уже есть в конфиге.
вот код для avrdude.conf
#define AT89S51 0xE0
#define AT89S52 0xE1
добавить в конец файла
# AT89S51
#------------------------------------------------------------
part
id = "8052";
desc = "AT89S51";
signature = 0x1E 0x51 0x06;
chip_erase_delay = 500000;
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;
memory "flash"
size = 4096;
paged = no;
min_write_delay = 4000;
max_write_delay = 9000;
readback_p1 = 0xff;
readback_p2 = 0xff;
read = " 0 0 1 0 0 0 0 0",
" x x x a12 a11 a10 a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" o o o o o o o o";
write = " 0 1 0 0 0 0 0 0",
" x x x a12 a11 a10 a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" i i i i i i i i";
mode = 0x21;
delay = 12;
;
memory "signature"
size = 3;
read = "0 0 1 0 1 0 0 0 x x x 0 0 0 a1 a0",
"0 0 0 0 0 0 0 0 o o o o o o o o";
;
;
#------------------------------------------------------------
# AT89S52
#------------------------------------------------------------
part
id = "8052";
desc = "AT89S52";
signature = 0x1E 0x52 0x06;
chip_erase_delay = 500000;
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;
memory "flash"
size = 8192;
paged = no;
min_write_delay = 4000;
max_write_delay = 9000;
readback_p1 = 0xff;
readback_p2 = 0xff;
read = " 0 0 1 0 0 0 0 0",
" x x x a12 a11 a10 a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" o o o o o o o o";
write = " 0 1 0 0 0 0 0 0",
" x x x a12 a11 a10 a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" i i i i i i i i";
mode = 0x21;
delay = 12;
;
memory "signature"
size = 3;
read = "0 0 1 0 1 0 0 0 x x x 0 0 0 a1 a0",
"0 0 0 0 0 0 0 0 o o o o o o o o";
;
;
#------------------------------------------------------------
# AT89S8253
#------------------------------------------------------------
part
id = "8253";
desc = "AT89S8253";
chip_erase_delay = 20000;
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;
memory "flash"
size = 12288;
paged = no;
min_write_delay = 4000;
max_write_delay = 9000;
readback_p1 = 0xff;
readback_p2 = 0xff;
read = " 0 0 1 0 0 0 0 0",
" x x a13 a12 a11 a10 a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" o o o o o o o o";
write = " 0 1 0 0 0 0 0 0",
" x x a13 a12 a11 a10 a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" i i i i i i i i";
mode = 0x21;
delay = 12;
;
memory "signature"
size = 2;
readback_p1 = 0x1E;
readback_p2 = 0x73;
read = "0 0 1 0 1 0 0 0 x x x x x x x x",
"x x 1 1 0 0 0 a0 o o o o o o o o";
;
;
Для запуска прошивки в Ардуина нужно содать в файле board.txt вашу МК по аналоги как для других МК.
Загрузить скетч прогромматора, выбрать далее вашу плату т.е ваш МК.
Далее подменить фаил загрузчика на вашу прошивку для данного МК и запустить в Ардуино запись загрузчика.
Код для запуска с USBASP