помогите копировать прошивку из одного AVR в другой
Доброго времени суток. У меня такая проблема: имеется два устройства на мк atmega 16 абсолютно одинаковые, одно работает,а в другом заменил контроллер и оно не работает без прошивки.Исходников программы нет, и HEX файла тоже нет. Возможно ли скопировать прошивку из рабочего устройства в нерабочее? С помощью программатора и программы пони прог пробовал копировать прошивку из рабочего устройства, прошиваю-не работает, может кто сталкивался с такой проблемой?
- Реклама
я так понимаю что нет, галочки на Lock 1 и Lock 2 не стоят, на Bootlock тоже не стоят
Ну попробуйте прочитать прошивку и залить ее на пустой камень. Если не получится, дешевыми способами никак не скопировать уже.
Exist a solution to do that . but work only with STK500 programmer , is imposible with pony. If you have one you can ajust the voltage bettwen 3.18 - 4.3 v step by step and in one point the programmer can't read the protect bits . Good luck
- Реклама
Вы хотите сказать, что так можно обойти лок биты? Прочитать залоченную прошивку?wangine писал(а):... and in one point the programmer can't read the protect bits...
Yeea , i do that many time , work just on atmega , on PIC is imposible (for me). But work only with STK500 programmer first version , is a bug of atmega . Is like ,, example: If vcc decrease below 3.6v and microcontroler have a instruction to write in that moment on internal eeprom , data will be FF or 00 , if brownout is not enable to reset controler. And yeea is like bypass . The bad thing on that operation is on new controler ,when program him you need to configure manualy the FUSE bits . You will need some tryRtmip писал(а):Вы хотите сказать, что так можно обойти лок биты? Прочитать залоченную прошивку?wangine писал(а):... and in one point the programmer can't read the protect bits...
Попробовал перевести через Bing - чудеса : в одном месте controler не перевелся никак ( видимо, из-за одного 'l' ), в другом месте - перевел как .... Россия . Вирус ?
- Вложения
-
- Ros.JPG
- (23.67 КБ) 1064 скачивания
Пожалйста подробней:
*названия чипов
*год изготовления
*использованный интерфейс для считывания(SPI/HVPP)
*названия чипов
*год изготовления
*использованный интерфейс для считывания(SPI/HVPP)
название Atmega16L,интерфейс SPI, год изготовления незнаю
Последний раз редактировалось ibiza11 Ср авг 27, 2014 11:51:26, всего редактировалось 1 раз.
Причина: 2.7 Запрещается бездумное вложенное цитирование, а так же полное, бессмысленное цитирование предыдущего поста.
Причина: 2.7 Запрещается бездумное вложенное цитирование, а так же полное, бессмысленное цитирование предыдущего поста.
Меня интересовало заявление wangine
В ранних ревизиях кристаллов такая лажа очень может быть, как например было дело с PIC16C84 или AT89C2051.
В ранних ревизиях кристаллов такая лажа очень может быть, как например было дело с PIC16C84 или AT89C2051.
Меня тоже интересует сообщение от wangine, у кого-нибудь есть возможность проверить?
Кстати, коты, с хорошим английским, кому не лень, дайте хороший перевод на русский? А то не очень понял последнее предложение: "когда программируете
новые чипы, то необходимо в ручную конфигуриравать fuse биты" так?
Этот поисковик избегаю, пробуйте другой переводчик, что он выдаст?Jack_A писал(а):Попробовал перевести через Bing - чудеса... Вирус ?
Кстати, коты, с хорошим английским, кому не лень, дайте хороший перевод на русский? А то не очень понял последнее предложение: "когда программируете
новые чипы, то необходимо в ручную конфигуриравать fuse биты" так?
Спойлер
Exist a solution to do that . but work only with STK500 programmer , is imposible with pony. If you have one you can ajust the voltage bettwen 3.18 - 4.3 v step by step and in one point the programmer can't read the protect bits . Good luckYeea , i do that many time , work just on atmega , on PIC is imposible (for me). But work only with STK500 programmer first version , is a bug of atmega . Is like ,, example: If vcc decrease below 3.6v and microcontroler have a instruction to write in that moment on internal eeprom , data will be FF or 00 , if brownout is not enable to reset controler. And yeea is like bypass . The bad thing on that operation is on new controler ,when program him you need to configure manualy the FUSE bits . You will need some try
Ага, я много раз так делал, работатет только на Atmega, на PIC не получается (у меня). Но работает только с программатором STK первой версии, это баг Atmega. Типа как в этом примере: Если Vcc опускается ниже 3,6 В и микроконтроллер в этот момент получает инструкцию на запись в внутреннюю EEPROM, он может записать как 00 так и FF, если не выставлена защита от пинижения напряжения, перезагружающая контроллер. Типа обходной маневр. Плохо, что при программировании таким образом нового контроллера, вам необходимо вручную выставить биты конфигурации. Вам нужно попробовать.
Это с плохим английским. Видимо тут имеется в виду, что биты конфигурации таким образом не считаются с контроллера, и их на новом придется подбирать методом тыка.
We do what we must because we can (c) GLaDOS
Спасибо, но это я все равно не очень понял... Подбирать биты защиты в какой момент? В режиме записи новой программы или считывания защищенной?baron_P писал(а):Видимо тут имеется в виду, что биты конфигурации таким образом не считаются с контроллера, и их на новом придется подбирать методом тыка.
И как именно подбирать, например?
В этом предложении речь идет не о битах защиты, а о всех битах конфигурации (fuse bits). При считывании программы из контроллера описанным способом, не будут правильно читаться не только биты защиты от чтения (за счет чего программу и можно прочитать), но и все остальные биты: настройка режима тактового генератора, вочдог, последовательное программирование и тд. И при записи новой микросхемы нужно будет как-то самому додумать, как эти биты должны быть выставлены. Кроме метода тыка ничего в голову не приходит.
We do what we must because we can (c) GLaDOS
- Сообщения: 441
- Зарегистрирован: Пт май 25, 2012 19:30:42
Подбирать придется при записи и не биты защиты, а все биты конфигурации. Тактовая частота, внешний или внутренний генератор, и.т.п.Rtmip писал(а):Подбирать биты защиты в какой момент? В режиме записи новой программы или считывания защищенной?
И как именно подбирать, например?
Интересно, а при таком взломе достаточно напряжение питания МК изменять, или напряжение интерфейсных сигналов с прогера синхронно должно меняться с напругой питания МК?
Вообще, ошибочное считывание битов конфигурации говорит о некорректном функционировании части блоков или всего кристалла в целом. Можно ли доверять таким прочитанным данным? Отчасти да, если провести как минимум 3-4 считывания, затем проверить файлы на идентичность.
Очень точно утверждать не могу, но описанная выше методика может быть годна только для микроконтроллеров, которые не способны работать с напряжением ниже 4.5V.
Большинство современных имеют гарантированную работоспособность при более низких напряжениях, например:
2.7 - 5.5V for ATmega8A
0 - 4MHz@1.8 - 5.5V ATmega48A; ATmega48PA
Реальные глюки с некорректным чтением данных и неправильной дешифрацией команд у них могут начаться где-то при 1.5V питании. У контроллеров постарше - где-то 1.5-2V.
Разумеется, напряжение сигналов программирования должно соответствовать напряжению питания. Иначе будет паразитная запитка через внутренние диоды портов. На вход VTG программатора подаётся напряжение питания, буферы подстраивают свой выход под его значение.
Очень точно утверждать не могу, но описанная выше методика может быть годна только для микроконтроллеров, которые не способны работать с напряжением ниже 4.5V.
Большинство современных имеют гарантированную работоспособность при более низких напряжениях, например:
2.7 - 5.5V for ATmega8A
0 - 4MHz@1.8 - 5.5V ATmega48A; ATmega48PA
Реальные глюки с некорректным чтением данных и неправильной дешифрацией команд у них могут начаться где-то при 1.5V питании. У контроллеров постарше - где-то 1.5-2V.
Разумеется, напряжение сигналов программирования должно соответствовать напряжению питания. Иначе будет паразитная запитка через внутренние диоды портов. На вход VTG программатора подаётся напряжение питания, буферы подстраивают свой выход под его значение.
Спасибо, теперь понятно о чем речь 
Думаю автору темы это может пригодиться.
Думаю автору темы это может пригодиться.
Возможно, в устройстве используется EEPROM, тогда вам кроме HEX-файла собственно прошивки нужно ведь еще и EEPROM скопировать.
Раз прошивка не залочена и после копирования не заработало, то вполне может быть в этом причина
Раз прошивка не залочена и после копирования не заработало, то вполне может быть в этом причина
копировал EEPROM, не помогает. При сохранении программы там нужно выбрать под каким расширением сохранять ( hex, bin, eep,csm,rom, e2p, mot) я так понимаю программу надо сохранить как hex файл, а eeprom как eep?ANALOG писал(а):Возможно, в устройстве используется EEPROM, тогда вам кроме HEX-файла собственно прошивки нужно ведь еще и EEPROM скопировать.
Раз прошивка не залочена и после копирования не заработало, то вполне может быть в этом причина


