реклама на сайте
подробности

 
 
> Программирование одного мк другим, Вопрос по программированию
ILYCHOFF
сообщение Oct 13 2006, 07:40
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 78
Регистрация: 5-07-05
Из: Великий Новгород
Пользователь №: 6 536



Посмотрел по форуму вроде ничего не попалось. Задача такая. Есть два мк ATMega128 связаны между собой по SPI нужно, чтобы один мк залил в другой свою прошивку. Со считыванием из флеш все нормально. Интересует как залить в другой мк, смотрел ДШ по программированию по SPI, не все понятно. Хочется посмотреть как делают грамотные люди. Может у кого есть исходники по этой теме.

МК связаны так, выводы SPI одного мк связаны с выводами PDI и PDO другого RESETом управляет отдельный вывод мк.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
add
сообщение Oct 13 2006, 07:51
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459



Цитата
так ничего не выйдет. нужна программа для прошивки (в первом процессоре) и внешняя память для программы

Вот как раз щас занимаюсь портативным копиром микросхем.
Думаю что прошить программу в другой MK можно , раз мк может себя стирать... то уж передать собственный код в другой мк наверное несложно..


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post
Семён
сообщение Oct 13 2006, 08:13
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922



Я делал вот так. Сразу извиняюсь за качество кода, писался он в экстремальном режиме из серии это должно было быть сделано еще вчера (кто-то на фирме отправил большую партию контролеров, довольно далеко, с непрошитами микросхемами) поэтому поял, писал, собирал в корпус в один день. Устройство следующие Mega 8 перешивает AtTiny2313. Код для tiny находиться в программной памяти mege
[code]
countErr=0;
ST:
RESET_OFF

mode.errProg=0;
// включаем режим програмирования

StartSPI(C_ENABALD_PROG_1);
StartSPI(C_ENABALD_PROG_2);
temp=StartSPI(C_ENABALD_PROG_3);
if(temp != 0X53)
{
mode.errProg=1;
}
StartSPI(C_ENABALD_PROG_4);
if(mode.errProg==1)
{
countErr++;
if(countErr==ERROR_COUNT_PROG)
{
goto START;
}
else
{
goto ST;

}
}
// стираем кристал
GRIN_OFF
StartTaimer1();

if(mode.clear==0)
{
StartSPI(C_CLEAR_PROG_1);
StartSPI(C_CLEAR_PROG_2);
StartSPI(C_CLEAR_PROG_3);
StartSPI(C_CLEAR_PROG_4);
mode.clear=1;
RESET_ON
Timer0Start(0,5);
goto ST;
}

adres.adres_int=0;
countData=0;
mode.clear=1;
page=64;
// команда режим програмирования
do
{

count16=32;
tempAdres=0;
do
{
if(mode.byteLorH==0)
{
temp=DATA[countData];
mode.byteLorH=1;
StartSPI(C_SAVE_L_PROG_1);
StartSPI(C_CLEAR_PROG_3);
StartSPI(tempAdres);
StartSPI(temp);
}
else
{
temp=DATA[countData+1];
mode.byteLorH=0;
StartSPI(C_SAVE_H_PROG_1);
StartSPI(C_CLEAR_PROG_3);
StartSPI(tempAdres);
StartSPI(temp);
countData=countData+2;
tempAdres=tempAdres+1;
}
Timer0Start(0,3);
count16--;
}while(count16);

StartSPI(C_PAGE_PROG);
StartSPI(adres.adres_Arx[1]);
StartSPI(adres.adres_Arx[0]);
StartSPI(C_CLEAR_PROG_4);
page--;
adres.adres_int=adres.adres_int+16;
Timer0Start(0,3);
}while(page);

// запись конфигурации
StartSPI(C_CONFIG_L_1);
StartSPI(C_CONFIG_L_2);
StartSPI(C_CONFIG_L_1);
StartSPI(C_CONFIG_L_4);
Timer0Start(0,3);
// запись защиты
StartSPI(C_LOOK_1_1);
StartSPI(C_LOOK_1_2);
StartSPI(C_ENABALD_PROG_3);
StartSPI(C_LOOK_1_4);
Timer0Start(0,3);

unsigned char StartSPI(unsigned char data)
{
mode.spi=1;
SPDR=data;
do
{
}while(mode.spi);
data=0;
data=SPDR;
return data;
}

[code]


--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ILYCHOFF   Программирование одного мк другим   Oct 13 2006, 07:40
- - chief_olimp   Цитата(ILYCHOFF @ Oct 13 2006, 10:40) Пос...   Oct 13 2006, 07:45
|- - ILYCHOFF   Цитата(chief_olimp @ Oct 13 2006, 11:45) ...   Oct 13 2006, 08:06
|- - Семён   [/quote] Почему не выйдет? Считаю с одного мк стра...   Oct 13 2006, 08:34
|- - SasaVitebsk   Цитата(ILYCHOFF @ Oct 13 2006, 11:06) Цит...   Oct 13 2006, 08:54
|- - ILYCHOFF   Цитата(SasaVitebsk @ Oct 13 2006, 12:54) ...   Oct 13 2006, 10:19
|- - Семён   Свой код, который я привел выше писал, как говорит...   Oct 13 2006, 10:34
- - ILYCHOFF   А как адресуются страницы во флеш памяти??? Просто...   Oct 13 2006, 08:50
|- - Семён   Цитата(ILYCHOFF @ Oct 13 2006, 12:50) А к...   Oct 13 2006, 09:01
- - demaven   возьми за исходное программатор AVR910, в инете бы...   Oct 13 2006, 11:43
- - prottoss   Цитата(ILYCHOFF @ Oct 13 2006, 15:40) ......   Oct 13 2006, 22:54
- - ILYCHOFF   Спасибо большое всем за ответы, буду разбираться.....   Oct 16 2006, 04:50
|- - yarunt   Цитата(ILYCHOFF @ Oct 16 2006, 05:50) Спа...   Dec 15 2006, 16:16
- - Igor26   Была такая идея, но говорю сразу - это только мысл...   Dec 15 2006, 17:30
|- - prottoss   Цитата(Igor26 @ Dec 15 2006, 21:30) Была ...   Dec 15 2006, 17:55
|- - ReAl   Цитата(Igor26 @ Dec 15 2006, 16:30) Так п...   Dec 16 2006, 18:30
- - demaven   просто товарищ желает сохранить свой код в тайне о...   Dec 16 2006, 09:22
- - Igor26   ЦитатаЕсли ты едешь туда лично Если я поеду туда л...   Dec 17 2006, 00:30
|- - prottoss   Цитата(Igor26 @ Dec 17 2006, 04:30) Цитат...   Dec 17 2006, 00:40
- - Panych   Я пытаюсь запрограммировать из Mega128 Tiny26. Вхо...   Jan 21 2008, 09:47
- - =VRA=   Цитата(ILYCHOFF @ Oct 13 2006, 10:40) Хоч...   Jan 21 2008, 09:59
- - ArtemKAD   Цитатаредставьте себе некую маленькую коробочку, в...   Jan 21 2008, 14:58
- - SasaVitebsk   А я бы сделал стандартно (на мой взгляд). В обоих ...   Jan 21 2008, 21:39
- - Dmitry_Od   Цитата(ILYCHOFF @ Oct 13 2006, 09:40) ......   Jan 27 2008, 12:15


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 04:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01403 секунд с 7
ELECTRONIX ©2004-2016