AVR не отвечает. Что делать?
защита прошивки от копирования и запрет внутрисхемного программирования - разные вещи.
Защиту прошивки на серийных устройствах всегда ставят, а запрет внутрисхемного программирования обычно нет.
Интересно. Если так, значит, ее можно по ISP программировать? Но что-то я тут не понимаю… А что при этом со старой программой происходит? Она же должна стираться. А кроме того, PonyProg у меня, например, после записи тут же читает запись и проверяет. А если чтение запрещено, то как он ее сможет прочитать?
на седьмую ногу, мегаГерц 4-8
Попробую. Одного вольта хватит, или качать больше?
А что при этом со старой программой происходит?
Надо сначала стереть микросхему - при стирании автоматом снимается защита прошивки.
Одного вольта хватит, или качать больше?
Должно хватить
Скачайте AVReal32, 5 проводов на ЛПТ и установите в программе внешнее тактирование проца. Если и после этого не оживет - то все… Увалить авр перепрошивками нереально - я когда софт под ОСД отлаживал шил его по 20-30 раз в час в течении 2х недель - жив до сих пор.
Надо сначала стереть микросхему - при стирании автоматом снимается защита прошивки
А, врубился. Я думал, что Chip Erase можно делать только в параллельной моде. Что ж, можно попробовать.
А моя надежда обойтись без радикальной хирургии (= выпаивание чипа) состоит в том, что если причина сбоя – проблема с источником клока, то, подав на 7й пин внешний клок я смог бы ресетнуть чип и потом выставить правильные fuse и lock биты.
А вообще, используя только ISP было ли вообще возможно запретить serial programming, или такой запрет можно сделать лишь в параллельной моде? Что можно напартачить с выбором клока, мы проходили, но это лечилось просто подсоединием первого попавшегося кварца между соответствующими пинами. А вот с блокированием serial programming это было бы посерьезней…
Скачайте AVReal32, 5 проводов на ЛПТ и установите в программе внешнее тактирование проца. Если и после этого не оживет - то все…
А что может означать это “все”? Ведь изнашиваться там нечему, напряжение на проц подавалось 4.5В с ограничением по току около 200ма…
Можно ли прояснить, в чем здесь будет достоинство AVReal32’а? Он что, дополнительно выдает еще и меандр на один из пинов ЛПТ, который мы сажаем на соответствующий пин AVRа? Я ведь могу просто с генератора сигналов туда чего-нибудь запихнуть… Или тут важна какая-нибудь синхронность – вроде бы импульсы не обязаны быть привязаны к системному клоку, а только к коомуникационному?
А что может означать это “все”? Ведь изнашиваться там нечему, напряжение на проц подавалось 4.5В с ограничением по току около 200ма…
Можно ли прояснить, в чем здесь будет достоинство AVReal32’а? Он что, дополнительно выдает еще и меандр на один из пинов ЛПТ, который мы сажаем на соответствующий пин AVRа? Я ведь могу просто с генератора сигналов туда чего-нибудь запихнуть… Или тут важна какая-нибудь синхронность – вроде бы импульсы не обязаны быть привязаны к системному клоку, а только к коомуникационному?
AVReal дает меандр на пин led spi разъема он ни к чему не привязан
можно обойтись генератором на 1-4 мгц:)
А что может означать это “все”? Ведь изнашиваться там нечему, напряжение на проц подавалось 4.5В с ограничением по току около 200ма…
если запретить последовательное программирование и переключить reset в режим порта, то ВСЕ. 😦
В pdf-ке описан способ выхода и из этой ситуации.
В pdf-ке описан способ выхода и из этой ситуации.
Есть способ, использующий только ISP, или здесь нужно параллельное программирование? Можно ссылку на страницу в
pdf-ке?
Эксперты, не мог бы кто-нибудь из вас перевести PonyProgовские фьюзы и лок-биты на исходный язык AVR? А то совершенно непонятно, что чему соответствует, делаешь как какое-то заклинание…
Только параллельное.
Галочка = 0 = programmed
У меня - страница 106.
Раздел называется “Memory programming”
Только параллельное.
Галочка = 0 = programmed
Ну да, как раз и читал эти страницы, и заключил, что перепрограммировать, если что-то произошло с RESET, не удастся…
Боюсь, что в самом деле капут. Этот гад PonyProg у меня иногда самопроизвольно чекил все биты. Почему-то когда их пытаешься установить, он, негодяй, похоже сначала без спросу читает сам чип, и если он не читается, то он все записывает нулем (чекит). Вот, возможно это и произошло в какой-то момент, а я этого не заметил и нажал “усе равно пытайся записать”, или что-то похожее…
В pdf-ке описан способ выхода и из этой ситуации.
Я вот только не понял со страницы 112 – похоже, подавая +12в на RESET можно его (RESET пин) как-то возвращать к жизни. Может, попробовать подать на него эти +12 вольт и потом пытаться программировать? Если я правильно понял, все эти манипуляции работают для параллельной моды, но кто его знает… Я ведь могу переделать мой простенький программатор так, чтобы на RESET подавалось 0-12в вместо 0-Vcc, это-то несложно. Может такое сработать?
Возможно еще что испортились биты конфигурации и задано тактирование от внешнего генератора. Попробуйте на OSC1 дать клок от внешнего генератора 1-4МГц и заново прошить ПониПрогом. У самого была такая ситуация, только с ATMEGA8.
Если я правильно понял, все эти манипуляции работают для параллельной моды, но кто его знает… Может такое сработать?
Очень сомнительно, скорее +12 загоняют в паралельную моду…
Я вот только не понял со страницы 112 – похоже, подавая +12в на RESET можно его (RESET пин) как-то возвращать к жизни. Может, попробовать подать на него эти +12 вольт и потом пытаться программировать? Если я правильно понял, все эти манипуляции работают для параллельной моды, но кто его знает… Я ведь могу переделать мой простенький программатор так, чтобы на RESET подавалось 0-12в вместо 0-Vcc, это-то несложно. Может такое сработать?
Если ничего не путаю:
Есть отдельный режим высоковольтного ( параллельного ) программирования ( нужен, в основном, для выхода из вот таких тупиковых ситуаций путем полного стирания процессора и потом записи нужной комбинации битов конфигурации ). Как это делать - алгоритм там же ниже на стр. 114. Когда это будет сброшено - можно будет программировать обычным образом ( хотя и при высоковольтном ( с использованием 12 В ) можно все записать ).
Если просто 12 вольт подать - видимо, просто так ( без использования именно нужного алгоритма ) не получится ( хотя если есть возможность написать свою программу, пусть и на Бейсике, то и написать этот алгоритм - главное, чтобы работало не слишком медленно, т.к. в алгоритме есть ограничения по времени; и проводов для работы нужно больше, хотя для однократного стирания м.б. можно на чем-то сэкономить, подав “0” или “1” постоянно, а не от программатора ).
Источник для 12 вольт - там вроде достаточно очень слабого ( 1 мА ), т.к. он нужен только для информации процессору, что с ним вот таким способом будут работать.
Не уточните ли, как именно вы МК программировали ?
Просто у меня есть сдохшая мега8, которая вроде как исполняет последнюю загруженную в неё программу, но шиться не хочет.
Естественно пробовал и ISP и параллельный - оба рабочие ( точно!!! ).
На каком-то форуме встретил похожую историю - человек просто сначала включал питание проггера, а потом втыкал ISP разьём. Он убил свою мегу аж после четвёртой перепрошивки.
Может и у вас что-то подобное ?
Не уточните ли, как именно вы МК программировали ?
Просто у меня есть сдохшая мега8, которая вроде как исполняет последнюю загруженную в неё программу, но шиться не хочет.Естественно пробовал и ISP и параллельный - оба рабочие ( точно!!! ).
На каком-то форуме встретил похожую историю - человек просто сначала включал питание проггера, а потом втыкал ISP разьём. Он убил свою мегу аж после четвёртой перепрошивки.
Может и у вас что-то подобное ?
Сейчас уже трудно сказать, как было в последний день. Вполне может быть, что и так. Припоминаю, что в Datasheet написано, что на пинах должно быть не выше, чем Vcc+0.3V (кроме RESET). Если включать разъем после питания программатора, то не исключено, что на какие-то миллисекунды Vcc еще не подается, а остальные пины уже 4.5V. Вы на это намекаете? Как-то никогда это серьезно не рассматривал. Ведь на другие пины подается всего несколько миллиампер!
Как конкретно делал в последний раз я действительно не могу воссоздать. Но накануне точно делал и так и этак, причем поначалу точно несколько раз сначала давал питание на программатор, а уж потом подсоединял его к схеме.
Неужели в этом может быть проблема? Тогда это точно промашка ATMELа, так не должно бытьб или уж об этом должно предупреждаться крупным шрифтом с восклицательными знаками!
В общем, попытка реанимации электрошоком (подавая внешний клок от ВЧ генератора сигналов) ни к чему не привела, как не видел его PonyProg, так и не видит 😦. А выпаивать 20 мелких пинов и впаивать обратно зело не хочется. Поэтому попробую последнее средство: стереть все и записать правильный фьюз параллельным образом 😃. Наверное, попробую сделать это с помощью другого ATTINY26L (в DIP-20): у того в наличии 8 пинов Порта А и 7 пинов Порта В, вроде, должно хватить для записи нужной последовательности импульсов для трех команд: Chip Erase, Write Fuse High Byte, Write Fuse Low Byte. А RESET подам и уберу вручную, или синхронно с питанием 4.5V.
В связи этим, большая просьба к знающим и понимающим ❗: не могли бы выложить точную последовательность байтов, которую нужно запихнуть в микроконтроллер для выполнения этой процедуры (для получения default configuration)? Я бы тогда запрограммировал имеющийся Атмель на их выдачу, отладил по тактам в AVR Stiudio и попробовал таким образом реанимировать впаяный контроллер, авось после этого он начнет разговаривать с PonyProgом…
Сам не знаю, как делать, но вот что скажу :
Защитные диоды внутри МК держат 1-2 ма.
Нужно выполнить 2 инструкции - вход в режим программирования и Erase
Это описано на 121-123 страницах мануала на tiny26.
Возможно вам в этом поможет аппноут AVR910 и AVR911 (допустим с gaw.ru), который описывает работу конкретного и стандартного атмеловского программатора, правда о совметсимости его с tiny26 ничего сказать не могу.
AVR911 - там вроде и тексты на Си должны быть.
В общем, попытка реанимации электрошоком (подавая внешний клок от ВЧ генератора сигналов) ни к чему не привела, как не видел его PonyProg, так и не видит 😦. А выпаивать 20 мелких пинов и впаивать обратно зело не хочется. Поэтому попробую последнее средство: стереть все и записать правильный фьюз параллельным образом 😃. Наверное, попробую сделать это с помощью другого ATTINY26L (в DIP-20): у того в наличии 8 пинов Порта А и 7 пинов Порта В, вроде, должно хватить для записи нужной последовательности импульсов для трех команд: Chip Erase, Write Fuse High Byte, Write Fuse Low Byte. А RESET подам и уберу вручную, или синхронно с питанием 4.5V.
В связи этим, большая просьба к знающим и понимающим ❗: не могли бы выложить точную последовательность байтов, которую нужно запихнуть в микроконтроллер для выполнения этой процедуры (для получения default configuration)? Я бы тогда запрограммировал имеющийся Атмель на их выдачу, отладил по тактам в AVR Stiudio и попробовал таким образом реанимировать впаяный контроллер, авось после этого он начнет разговаривать с PonyProgом…
Даже если у тебя и получится написать прогу для второго чипа мало верится что это поможет
прочитай внимательно ДШ по параллельному программированию АТМЕЛ
насколько я знаю поней spien бит снять нельзя
Единственное что ту мог сделать это переключить тактовый генератор на extclk
а откуда подавал внешний клок?
возьми любое устр-во на АВР и с его генератора подай на этот чип
прежде чем пытаться писать свой параллельный программатор разберись
с имеющимся последовательным поставь Codevision и используй stk200-300
😉