AVR не отвечает. Что делать?
я парочку мег упрограммировал до смерти
Поразительно! А где же заявленные 10000 циклов? Конечно, при полной автоматизации хороший компьютер за несколько суток, наверное, может вычистить ресурс в пару десятков тысяч, но вручную этого вроде не сделать… Я писал свой TINY от силы раз 25, точно не больше. Ну, и читал его, наверное, еще раз 5.
А вот, кстати, вопрос к эксперту, по их параллельному программированию. Собственно, мне нужно только осуществить Chip Erase – у меня есть еще старый заводской чип, говорят, он должен быть залочен. Если ж его стереть, то можно еще и его использовать. А то в деревне, где я сейчас работаю, магазинов настоящей (небытовой) электроники нет…
Так вот, читал я атмелевский манул, читал, да так и не понял – чтоб Chip Eraseнуть, достаточно ли просто на пины что-то простенькое подать вроде 10000000, дать импульс и подождать, или перед этим необходимо всю эту процедуру с Entering Programming Mode проделать и лишь после этого можно давать команду Chip Erase?
В принципе, я мог бы подать нужную последовательность импульсов (12 бит, а может и больше) через LPT прямо из BASICа, вручную… Если б только точно понимать, что подавать! А можно попробовать прямо на таком же ATTINY26L сделать “eraser” – запрограммировать его на выдачу нужной последовательности байтов, у меня прикуплена на будущее дюжина чипов в DIP корпусе, и даже есть что-то вроде самодельного evaluation boardа для них …
а в старом чипе ISP-программирование запрещено, что-ли?
З.Ы. Алгоритм программирования подробно описан в pdf на ATtiny26
а в старом чипе ISP-программирование запрещено, что-ли?
Говорили именно это (якобы, чтобы программу не прочитать) – я не проверял. Он же сейчас выпаян, и в SO корпусе, так что походя не проверишь
Алгоритм программирования подробно описан в pdf на ATtiny26
Так вот его и читал вдоль и поперек, в результате конкретно этот вопрос и не понял.
А что народ скажет, может, с горя, на тот ATTINY26L, что пока впаян, попробовать на пин 7, пин 8 или между ними подать внешний сигнал частотой в несколько МГц один-два вольта. Может, начнет откликаться, или вряд ли?
Куда чего следует пихать, какую лучше частот?
защита прошивки от копирования и запрет внутрисхемного программирования - разные вещи.
Защиту прошивки на серийных устройствах всегда ставят, а запрет внутрисхемного программирования обычно нет.
Куда чего следует пихать, какую лучше частот?
на седьмую ногу, мегаГерц 4-8
защита прошивки от копирования и запрет внутрисхемного программирования - разные вещи.
Защиту прошивки на серийных устройствах всегда ставят, а запрет внутрисхемного программирования обычно нет.
Интересно. Если так, значит, ее можно по 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 мА ), т.к. он нужен только для информации процессору, что с ним вот таким способом будут работать.