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

 
 
> Программирование одного мк другим, Вопрос по программированию
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
Ответов
prottoss
сообщение Oct 13 2006, 22:54
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(ILYCHOFF @ Oct 13 2006, 15:40) *
...Задача такая. Есть два мк ATMega128 связаны между собой по SPI нужно, чтобы один мк залил в другой свою прошивку. Со считыванием из флеш все нормально. Интересует как залить в другой мк, смотрел ДШ по программированию по SPI, не все понятно. Хочется посмотреть как делают грамотные люди. Может у кого есть исходники по этой теме.
МК связаны так, выводы SPI одного мк связаны с выводами PDI и PDO другого RESETом управляет отдельный вывод мк.


Вам правильно сказал demaven, возьмите исходник на ASM от AVR910... разобраться в нем досконально - пару дней от силы. Кроме этого даташит на М128, что бы знать количество страниц и их размер и вперед))) Вот Вам код для входа в режим программирования от моего программатора
Код


...

#define AVR_PROG_EN()    Write123(0xAC, 0x53, 0x00)

...



/*****************************************************************************
Записывает последовательно 3 байта в SPI и возвращает результат от записи 3-го
******************************************************************************/
UCHAR Write123(UCHAR byte1, UCHAR byte2, UCHAR byte3)
{
   ExSPI(byte1);
    ExSPI(byte2);
    return ExSPI(byte3);
}



...


/*****************************************************************************
Вход в режим программирования
******************************************************************************/
void SetProgMode(void)
{
   UCHAR err = ACK;
    SET_LED_RD();
    SET_LED_WR();
            
    // проверяем код устройства
    if(S89 == g_DeviceType) //89S
    {
       ReleasePorts(); // отключаем порты
  CatchPorts(); // подключаем порты к ISP
     S89_DELAY_RESET(); // задержка
          
        // посылаем команду входа в режим программирования
        S89_PROG_EN();
    }
    else
    {
       // синхронизируемся с подключенным чипом
        ReleasePorts();  // отключаем порты
  CatchPorts();  // подключаем порты к ISP
     AVR_DELAY_RESET(); // задержка
          
        // 32 цикла попыток засинхронизироваться с программируемым МК
        for(UCHAR c = 0; c < 32; c++)
        {
            // пытаемся вывести чип в режим программирования
   // при посылке 3-го байта в SPI чип должен вернуть код предыдущей посылки
           UCHAR ctrl_byte = AVR_PROG_EN();
            ExSPI(0x00);
          
            // получили верный контрольный байт - синхронизация выполнена
            if(0x53 == ctrl_byte)
             goto m1;
            
            // если нет валидного возврата, то сдвигаем при каждой попытке строб
           SET_SCK();
      __delay_cycles(600); // задержка 50 мкс
   CLR_SCK();
      __delay_cycles(600);
        }
        
        // если мы не засинхронизировались,
        // считаем, что устройство не найдено
        ReleasePorts(); // отключаем порты
        err = NACK; // посылаем код ошибки
    }

m1:
    PutChar(err);
    CLR_LED_WR();
    CLR_LED_RD();
}


--------------------
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
- - add   Цитататак ничего не выйдет. нужна программа для пр...   Oct 13 2006, 07:51
|- - Семён   Я делал вот так. Сразу извиняюсь за качество кода,...   Oct 13 2006, 08:13
- - ILYCHOFF   А как адресуются страницы во флеш памяти??? Просто...   Oct 13 2006, 08:50
|- - Семён   Цитата(ILYCHOFF @ Oct 13 2006, 12:50) А к...   Oct 13 2006, 09:01
- - demaven   возьми за исходное программатор AVR910, в инете бы...   Oct 13 2006, 11:43
- - 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 Текстовая версия Сейчас: 31st July 2025 - 23:31
Рейтинг@Mail.ru


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