Страница 1 из 2
помогите копировать прошивку из одного AVR в другой
Добавлено: Вс авг 24, 2014 23:11:32
romaha85
Доброго времени суток. У меня такая проблема: имеется два устройства на мк atmega 16 абсолютно одинаковые, одно работает,а в другом заменил контроллер и оно не работает без прошивки.Исходников программы нет, и HEX файла тоже нет. Возможно ли скопировать прошивку из рабочего устройства в нерабочее? С помощью программатора и программы пони прог пробовал копировать прошивку из рабочего устройства, прошиваю-не работает, может кто сталкивался с такой проблемой?
Re: помогите копировать прошивку из одного AVR в другой
Добавлено: Вс авг 24, 2014 23:17:02
Martin76
Прошивка наверняка залочена.
Re: помогите копировать прошивку из одного AVR в другой
Добавлено: Вс авг 24, 2014 23:23:58
romaha85
я так понимаю что нет, галочки на Lock 1 и Lock 2 не стоят, на Bootlock тоже не стоят
Re: помогите копировать прошивку из одного AVR в другой
Добавлено: Пн авг 25, 2014 00:21:32
НАПАЛМ
Ну попробуйте прочитать прошивку и залить ее на пустой камень. Если не получится, дешевыми способами никак не скопировать уже.
Re: помогите копировать прошивку из одного AVR в другой
Добавлено: Пн авг 25, 2014 00:51:01
wangine
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
Re: помогите копировать прошивку из одного AVR в другой
Добавлено: Пн авг 25, 2014 00:55:52
Rtmip
wangine писал(а):... and in one point the programmer can't read the protect bits...
Вы хотите сказать, что так можно обойти лок биты? Прочитать залоченную прошивку?
Re: помогите копировать прошивку из одного AVR в другой
Добавлено: Пн авг 25, 2014 05:14:39
wangine
Rtmip писал(а):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 try
Re: помогите копировать прошивку из одного AVR в другой
Добавлено: Пн авг 25, 2014 12:03:49
Jack_A
Попробовал перевести через Bing - чудеса : в одном месте controler не перевелся никак ( видимо, из-за одного 'l' ), в другом месте - перевел как .... Россия . Вирус ?
Re: помогите копировать прошивку из одного AVR в другой
Добавлено: Пн авг 25, 2014 16:51:00
uk8amk
Пожалйста подробней:
*названия чипов
*год изготовления
*использованный интерфейс для считывания(SPI/HVPP)
Re: помогите копировать прошивку из одного AVR в другой
Добавлено: Пн авг 25, 2014 19:21:16
romaha85
название Atmega16L,интерфейс SPI, год изготовления незнаю
Re: помогите копировать прошивку из одного AVR в другой
Добавлено: Пн авг 25, 2014 19:47:41
uk8amk
Меня интересовало заявление wangine
В ранних ревизиях кристаллов такая лажа очень может быть, как например было дело с PIC16C84 или AT89C2051.
Re: помогите копировать прошивку из одного AVR в другой
Добавлено: Пн авг 25, 2014 23:30:09
Rtmip
Меня тоже интересует сообщение от
wangine, у кого-нибудь есть возможность проверить?
Jack_A писал(а):Попробовал перевести через Bing - чудеса... Вирус ?
Этот поисковик избегаю, пробуйте другой переводчик, что он выдаст?
Кстати, коты, с хорошим английским, кому не лень, дайте хороший перевод на русский? А то не очень понял последнее предложение: "когда программируете
новые чипы, то необходимо в ручную конфигуриравать fuse биты" так?

Re: помогите копировать прошивку из одного AVR в другой
Добавлено: Вт авг 26, 2014 17:17:39
baron_P
Спойлер
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
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 try
Существует способ сделать это. Но работатет только с программатором STK500, с Pony не получится. Если у вас есть такой, вы можете пошагово регулировать напряжение от 3,8 до 4,3 В, и на одном из шагов программатор не сможет считать биты защиты. Удачи.
Ага, я много раз так делал, работатет только на Atmega, на PIC не получается (у меня). Но работает только с программатором STK первой версии, это баг Atmega. Типа как в этом примере: Если Vcc опускается ниже 3,6 В и микроконтроллер в этот момент получает инструкцию на запись в внутреннюю EEPROM, он может записать как 00 так и FF, если не выставлена защита от пинижения напряжения, перезагружающая контроллер. Типа обходной маневр. Плохо, что при программировании таким образом нового контроллера, вам необходимо вручную выставить биты конфигурации. Вам нужно попробовать.
Это с плохим английским. Видимо тут имеется в виду, что биты конфигурации таким образом не считаются с контроллера, и их на новом придется подбирать методом тыка.
Re: помогите копировать прошивку из одного AVR в другой
Добавлено: Ср авг 27, 2014 00:07:12
Rtmip
baron_P писал(а):Видимо тут имеется в виду, что биты конфигурации таким образом не считаются с контроллера, и их на новом придется подбирать методом тыка.
Спасибо, но это я все равно не очень понял... Подбирать биты защиты в какой момент? В режиме записи новой программы или считывания защищенной?
И как именно подбирать, например?

Re: помогите копировать прошивку из одного AVR в другой
Добавлено: Ср авг 27, 2014 09:50:38
baron_P
В этом предложении речь идет не о битах защиты, а о всех битах конфигурации (fuse bits). При считывании программы из контроллера описанным способом, не будут правильно читаться не только биты защиты от чтения (за счет чего программу и можно прочитать), но и все остальные биты: настройка режима тактового генератора, вочдог, последовательное программирование и тд. И при записи новой микросхемы нужно будет как-то самому додумать, как эти биты должны быть выставлены. Кроме метода тыка ничего в голову не приходит.
Re: помогите копировать прошивку из одного AVR в другой
Добавлено: Ср авг 27, 2014 09:54:55
novodrodskiy
Rtmip писал(а):Подбирать биты защиты в какой момент? В режиме записи новой программы или считывания защищенной?
И как именно подбирать, например?
Подбирать придется при записи и не биты защиты, а все биты конфигурации. Тактовая частота, внешний или внутренний генератор, и.т.п.
Интересно, а при таком взломе достаточно напряжение питания МК изменять, или напряжение интерфейсных сигналов с прогера синхронно должно меняться с напругой питания МК?
Re: помогите копировать прошивку из одного AVR в другой
Добавлено: Ср авг 27, 2014 10:36:44
uk8amk
Вообще, ошибочное считывание битов конфигурации говорит о некорректном функционировании части блоков или всего кристалла в целом. Можно ли доверять таким прочитанным данным? Отчасти да, если провести как минимум 3-4 считывания, затем проверить файлы на идентичность.
Очень точно утверждать не могу, но описанная выше методика может быть годна только для микроконтроллеров, которые не способны работать с напряжением ниже 4.5V.
Большинство современных имеют гарантированную работоспособность при более низких напряжениях, например:
2.7 - 5.5V for ATmega8A
0 - 4MHz@1.8 - 5.5V ATmega48A; ATmega48PA
Реальные глюки с некорректным чтением данных и неправильной дешифрацией команд у них могут начаться где-то при 1.5V питании. У контроллеров постарше - где-то 1.5-2V.
Разумеется, напряжение сигналов программирования должно соответствовать напряжению питания. Иначе будет паразитная запитка через внутренние диоды портов. На вход VTG программатора подаётся напряжение питания, буферы подстраивают свой выход под его значение.
Re: помогите копировать прошивку из одного AVR в другой
Добавлено: Чт авг 28, 2014 00:35:41
Rtmip
Спасибо, теперь понятно о чем речь

Думаю автору темы это может пригодиться.
Re: помогите копировать прошивку из одного AVR в другой
Добавлено: Вс авг 31, 2014 00:01:02
ANALOG
Возможно, в устройстве используется EEPROM, тогда вам кроме HEX-файла собственно прошивки нужно ведь еще и EEPROM скопировать.
Раз прошивка не залочена и после копирования не заработало, то вполне может быть в этом причина

Re: помогите копировать прошивку из одного AVR в другой
Добавлено: Вт сен 02, 2014 23:18:40
romaha85
ANALOG писал(а):Возможно, в устройстве используется EEPROM, тогда вам кроме HEX-файла собственно прошивки нужно ведь еще и EEPROM скопировать.
Раз прошивка не залочена и после копирования не заработало, то вполне может быть в этом причина

копировал EEPROM, не помогает. При сохранении программы там нужно выбрать под каким расширением сохранять ( hex, bin, eep,csm,rom, e2p, mot) я так понимаю программу надо сохранить как hex файл, а eeprom как eep?