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

Volante24

В какой-то момент при ISP программировании ATTINY26L микроконтроллера он перестал отзываться, причем это произошло в процессе записи программы (трудно сказать, в какой точно момент). PonyProg просто дает Device missing or unknown device. Накануне некоторые похожие симптомы временами возникали, как будто в соединении плохой контакт, но все обходилось, и в конце концов программы работали и читались. А вот теперь ничего ни на что 😃 не реагирует.

Что это может быть, и что теперь делать? Чип дал дуба (такое бывает?), или просто вошел в особую моду? Похоже, его осциллятор работает, поскольку около девайса сканнер детектирует частоту около 7.98МГц.

Микроконтроллер в SOI8 корпусе, впаян в схему вертолета Walkera Dragonfly 5 (см. http://old.rcdesign.ru/index.php?showtopic=23532); перепаивать довольно морочно…

dmitryu

Мог и дуба дать - я парочку мег упрограммировал до смерти (т.е. параллельный программатор их тоже уже не видит).

Volante24
dmitryu:

я парочку мег упрограммировал до смерти

Поразительно! А где же заявленные 10000 циклов? Конечно, при полной автоматизации хороший компьютер за несколько суток, наверное, может вычистить ресурс в пару десятков тысяч, но вручную этого вроде не сделать… Я писал свой TINY от силы раз 25, точно не больше. Ну, и читал его, наверное, еще раз 5.

Volante24

А вот, кстати, вопрос к эксперту, по их параллельному программированию. Собственно, мне нужно только осуществить Chip Erase – у меня есть еще старый заводской чип, говорят, он должен быть залочен. Если ж его стереть, то можно еще и его использовать. А то в деревне, где я сейчас работаю, магазинов настоящей (небытовой) электроники нет…

Так вот, читал я атмелевский манул, читал, да так и не понял – чтоб Chip Eraseнуть, достаточно ли просто на пины что-то простенькое подать вроде 10000000, дать импульс и подождать, или перед этим необходимо всю эту процедуру с Entering Programming Mode проделать и лишь после этого можно давать команду Chip Erase?

В принципе, я мог бы подать нужную последовательность импульсов (12 бит, а может и больше) через LPT прямо из BASICа, вручную… Если б только точно понимать, что подавать! А можно попробовать прямо на таком же ATTINY26L сделать “eraser” – запрограммировать его на выдачу нужной последовательности байтов, у меня прикуплена на будущее дюжина чипов в DIP корпусе, и даже есть что-то вроде самодельного evaluation boardа для них …

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 у меня иногда самопроизвольно чекил все биты. Почему-то когда их пытаешься установить, он, негодяй, похоже сначала без спросу читает сам чип, и если он не читается, то он все записывает нулем (чекит). Вот, возможно это и произошло в какой-то момент, а я этого не заметил и нажал “усе равно пытайся записать”, или что-то похожее…