AVR не отвечает. Что делать?

dmitryu

а в старом чипе ISP-программирование запрещено, что-ли?

З.Ы. Алгоритм программирования подробно описан в pdf на ATtiny26

Volante24
dmitryu:

а в старом чипе ISP-программирование запрещено, что-ли?

Говорили именно это (якобы, чтобы программу не прочитать) – я не проверял. Он же сейчас выпаян, и в SO корпусе, так что походя не проверишь

Алгоритм программирования подробно описан в pdf на ATtiny26

Так вот его и читал вдоль и поперек, в результате конкретно этот вопрос и не понял.

А что народ скажет, может, с горя, на тот ATTINY26L, что пока впаян, попробовать на пин 7, пин 8 или между ними подать внешний сигнал частотой в несколько МГц один-два вольта. Может, начнет откликаться, или вряд ли?

Куда чего следует пихать, какую лучше частот?

dmitryu

защита прошивки от копирования и запрет внутрисхемного программирования - разные вещи.
Защиту прошивки на серийных устройствах всегда ставят, а запрет внутрисхемного программирования обычно нет.

Куда чего следует пихать, какую лучше частот?

на седьмую ногу, мегаГерц 4-8

Volante24
dmitryu:

защита прошивки от копирования и запрет внутрисхемного программирования - разные вещи.
Защиту прошивки на серийных устройствах всегда ставят, а запрет внутрисхемного программирования обычно нет.

Интересно. Если так, значит, ее можно по ISP программировать? Но что-то я тут не понимаю… А что при этом со старой программой происходит? Она же должна стираться. А кроме того, PonyProg у меня, например, после записи тут же читает запись и проверяет. А если чтение запрещено, то как он ее сможет прочитать?

на седьмую ногу, мегаГерц 4-8

Попробую. Одного вольта хватит, или качать больше?

dmitryu

А что при этом со старой программой происходит?

Надо сначала стереть микросхему - при стирании автоматом снимается защита прошивки.

Одного вольта хватит, или качать больше?

Должно хватить

AN_DR

Скачайте AVReal32, 5 проводов на ЛПТ и установите в программе внешнее тактирование проца. Если и после этого не оживет - то все… Увалить авр перепрошивками нереально - я когда софт под ОСД отлаживал шил его по 20-30 раз в час в течении 2х недель - жив до сих пор.

Volante24
dmitryu:

Надо сначала стереть микросхему - при стирании автоматом снимается защита прошивки

А, врубился. Я думал, что Chip Erase можно делать только в параллельной моде. Что ж, можно попробовать.

А моя надежда обойтись без радикальной хирургии (= выпаивание чипа) состоит в том, что если причина сбоя – проблема с источником клока, то, подав на 7й пин внешний клок я смог бы ресетнуть чип и потом выставить правильные fuse и lock биты.

А вообще, используя только ISP было ли вообще возможно запретить serial programming, или такой запрет можно сделать лишь в параллельной моде? Что можно напартачить с выбором клока, мы проходили, но это лечилось просто подсоединием первого попавшегося кварца между соответствующими пинами. А вот с блокированием serial programming это было бы посерьезней…

Volante24
AN_DR:

Скачайте AVReal32, 5 проводов на ЛПТ и установите в программе внешнее тактирование проца. Если и после этого не оживет - то все…

А что может означать это “все”? Ведь изнашиваться там нечему, напряжение на проц подавалось 4.5В с ограничением по току около 200ма…

Можно ли прояснить, в чем здесь будет достоинство AVReal32’а? Он что, дополнительно выдает еще и меандр на один из пинов ЛПТ, который мы сажаем на соответствующий пин AVRа? Я ведь могу просто с генератора сигналов туда чего-нибудь запихнуть… Или тут важна какая-нибудь синхронность – вроде бы импульсы не обязаны быть привязаны к системному клоку, а только к коомуникационному?

jonison
Volante24:

А что может означать это “все”? Ведь изнашиваться там нечему, напряжение на проц подавалось 4.5В с ограничением по току около 200ма…

Можно ли прояснить, в чем здесь будет достоинство AVReal32’а? Он что, дополнительно выдает еще и меандр на один из пинов ЛПТ, который мы сажаем на соответствующий пин AVRа? Я ведь могу просто с генератора сигналов туда чего-нибудь запихнуть… Или тут важна какая-нибудь синхронность – вроде бы импульсы не обязаны быть привязаны к системному клоку, а только к коомуникационному?

AVReal дает меандр на пин led spi разъема он ни к чему не привязан
можно обойтись генератором на 1-4 мгц:)

AN_DR
Volante24:

А что может означать это “все”? Ведь изнашиваться там нечему, напряжение на проц подавалось 4.5В с ограничением по току около 200ма…

если запретить последовательное программирование и переключить reset в режим порта, то ВСЕ. 😦

dmitryu

В pdf-ке описан способ выхода и из этой ситуации.

Volante24
dmitryu:

В pdf-ке описан способ выхода и из этой ситуации.

Есть способ, использующий только ISP, или здесь нужно параллельное программирование? Можно ссылку на страницу в
pdf-ке?

Эксперты, не мог бы кто-нибудь из вас перевести PonyProgовские фьюзы и лок-биты на исходный язык AVR? А то совершенно непонятно, что чему соответствует, делаешь как какое-то заклинание…

dmitryu

Только параллельное.

Галочка = 0 = programmed

Volante24
dmitryu:

Только параллельное.

Галочка = 0 = programmed

Ну да, как раз и читал эти страницы, и заключил, что перепрограммировать, если что-то произошло с RESET, не удастся…

Боюсь, что в самом деле капут. Этот гад PonyProg у меня иногда самопроизвольно чекил все биты. Почему-то когда их пытаешься установить, он, негодяй, похоже сначала без спросу читает сам чип, и если он не читается, то он все записывает нулем (чекит). Вот, возможно это и произошло в какой-то момент, а я этого не заметил и нажал “усе равно пытайся записать”, или что-то похожее…

Volante24
dmitryu:

В pdf-ке описан способ выхода и из этой ситуации.

Я вот только не понял со страницы 112 – похоже, подавая +12в на RESET можно его (RESET пин) как-то возвращать к жизни. Может, попробовать подать на него эти +12 вольт и потом пытаться программировать? Если я правильно понял, все эти манипуляции работают для параллельной моды, но кто его знает… Я ведь могу переделать мой простенький программатор так, чтобы на RESET подавалось 0-12в вместо 0-Vcc, это-то несложно. Может такое сработать?

avalanch

Возможно еще что испортились биты конфигурации и задано тактирование от внешнего генератора. Попробуйте на OSC1 дать клок от внешнего генератора 1-4МГц и заново прошить ПониПрогом. У самого была такая ситуация, только с ATMEGA8.

PigTail
Volante24:

Если я правильно понял, все эти манипуляции работают для параллельной моды, но кто его знает… Может такое сработать?

Очень сомнительно, скорее +12 загоняют в паралельную моду…

abalex
Volante24:

Я вот только не понял со страницы 112 – похоже, подавая +12в на RESET можно его (RESET пин) как-то возвращать к жизни. Может, попробовать подать на него эти +12 вольт и потом пытаться программировать? Если я правильно понял, все эти манипуляции работают для параллельной моды, но кто его знает… Я ведь могу переделать мой простенький программатор так, чтобы на RESET подавалось 0-12в вместо 0-Vcc, это-то несложно. Может такое сработать?

Если ничего не путаю:
Есть отдельный режим высоковольтного ( параллельного ) программирования ( нужен, в основном, для выхода из вот таких тупиковых ситуаций путем полного стирания процессора и потом записи нужной комбинации битов конфигурации ). Как это делать - алгоритм там же ниже на стр. 114. Когда это будет сброшено - можно будет программировать обычным образом ( хотя и при высоковольтном ( с использованием 12 В ) можно все записать ).
Если просто 12 вольт подать - видимо, просто так ( без использования именно нужного алгоритма ) не получится ( хотя если есть возможность написать свою программу, пусть и на Бейсике, то и написать этот алгоритм - главное, чтобы работало не слишком медленно, т.к. в алгоритме есть ограничения по времени; и проводов для работы нужно больше, хотя для однократного стирания м.б. можно на чем-то сэкономить, подав “0” или “1” постоянно, а не от программатора ).
Источник для 12 вольт - там вроде достаточно очень слабого ( 1 мА ), т.к. он нужен только для информации процессору, что с ним вот таким способом будут работать.

Chekhov

Не уточните ли, как именно вы МК программировали ?
Просто у меня есть сдохшая мега8, которая вроде как исполняет последнюю загруженную в неё программу, но шиться не хочет.

Естественно пробовал и ISP и параллельный - оба рабочие ( точно!!! ).

На каком-то форуме встретил похожую историю - человек просто сначала включал питание проггера, а потом втыкал ISP разьём. Он убил свою мегу аж после четвёртой перепрошивки.

Может и у вас что-то подобное ?

Volante24
Chekhov:

Не уточните ли, как именно вы МК программировали ?
Просто у меня есть сдохшая мега8, которая вроде как исполняет последнюю загруженную в неё программу, но шиться не хочет.

Естественно пробовал и ISP и параллельный - оба рабочие ( точно!!! ).

На каком-то форуме встретил похожую историю - человек просто сначала включал питание проггера, а потом втыкал ISP разьём. Он убил свою мегу аж после четвёртой перепрошивки.

Может и у вас что-то подобное ?

Сейчас уже трудно сказать, как было в последний день. Вполне может быть, что и так. Припоминаю, что в Datasheet написано, что на пинах должно быть не выше, чем Vcc+0.3V (кроме RESET). Если включать разъем после питания программатора, то не исключено, что на какие-то миллисекунды Vcc еще не подается, а остальные пины уже 4.5V. Вы на это намекаете? Как-то никогда это серьезно не рассматривал. Ведь на другие пины подается всего несколько миллиампер!

Как конкретно делал в последний раз я действительно не могу воссоздать. Но накануне точно делал и так и этак, причем поначалу точно несколько раз сначала давал питание на программатор, а уж потом подсоединял его к схеме.

Неужели в этом может быть проблема? Тогда это точно промашка ATMELа, так не должно бытьб или уж об этом должно предупреждаться крупным шрифтом с восклицательными знаками!