Наверняка каждый из нас сталкивался с такой штукой, когда после прошивки контроллера, последний переставал "видиться" программатором.Причем не помогали никакие средства. Данная тема поможет владельцам таких мк не разочаровываться и не выбрасывать их, ошибочно думая, что железячка безвозвратно утеряна.
Первое, что хочу сказать. Что НИ ОДИН МИКРОКОНТРОЛЛЕР нельзя убить програмным методом, за исключением подлости железа, пробоя или каких либо вспомогательных методов.
Немного теории.
Микроконтроллеры атмел могут программироваться специальными битами конфигурации, с помощью которых микроконтроллер можно переключить на режим тактования с внешнего устройства( кварц, генератор). Также фирма предусмотрела в некоторых случаях прошивать вывод "Reset" как порт ввода вывода, тем самым делая невозможным дальнейшее программирование чипа.
Так вот, неумелые либо ошибочные операции могут вызвать именно такие "нежелательные" действия, ставя в ступороз и так боящегося спалить либо "сделать что либо не так юзера микроконтроллера".
Группа: Cоучастник
Сообщений: 800
Пользователь №: 9236
Регистрация: 20-June 06
Место жительства: Сибирь
Еще у AVR есть FLASH Lock Bits. Можно запретить программирование или программирование и чтение. Прошивая через CodeVisionAVR, однажды (нечаянно) заблокировал АВРку. Пришлось выкинуть, т.к. восстановить их нельзя.
Вооще уважаемые у меня есть несколько пиков разных серий и атмелов я не могу их восстановить почему заблокирована линия клок и ничего не поделаешь если кто чото придумал то подскажите особенно это присуще атмелам но пики последнее время не отстают особенно это присуще когда программируешь внутренний RC после этого пик можетт очиститься а может и нет
1) АВР. Они все флешовые. Программно убить нельзя. Все глюки от непрочитанных мануалов и дешёвых программаторов/самопалов типа СТК200 с которыми нужно работать особенно аккуратно. Вообще нужно использовать STK500, AVR Dragon, JTAG ICE2 и т.д. и будет вам счастье…. Ну мануалы ещё читать полностью, чтоб не переспрашивать, например что такое High-Voltage Programming и чем он отличается от SPI
2) ПИКи. Бывают как однократные серии «С», так и флешовые серии «F». «С»-серия одноразовая, её можно только 1 раз новую прошить, а дальше либо использовать МК в устройстве, либо выкинуть. Читается она или нет, определяется при программировании. «F»-серия многократная, массовых залочек вроде нет. Все глюки программирования так же от дешёвых программаторов, используете нормальные на ЮСБ, гарантирующие тайминги, и ни будет никаких проблем, их самому сделать можно (ICD2, PICKit). Всякие лошади, винпики, айсипроги это наудачу….
3) MSP430- Как правило применяются все флешовые. BSL доступен всегда, Если чип залочен, то BSL доступен через пароль векторов прерывания. JTAG ядро отключается фьюсом РАЗ И НА ВСЕГДА. Но для его отключения так же необходим продвинутый программатор. Массовых залочек так же вроде нету у народа.
Вообще примите как правило, подтверждённой практикой: «Чем проще программатор, тем аккуратнее с ним нужно работать и обходить все его глюки. По возможности используйте клоны оригинальных программаторов, они надёжнее и плюс поддержка новых чипов от производителя» И ещё раз говарю, читаем даташиты….
Нада сначала пачитать документ на атмеги а потом говорить и критиковать самопальные прогеры в дакументе описано что есть линия SCK её нельзя использовать и соединять на землю резистором 10-50 ком а где вы видели это соблюдается если на эту линию чото пападёт статика посторонне напряжение контролеру хана у меня раз 10 было частотомер.таймер.дисек идругое прежде чем говорить нада читать
Еще у AVR есть FLASH Lock Bits. Можно запретить программирование или программирование и чтение. Прошивая через CodeVisionAVR, однажды (нечаянно) заблокировал АВРку. Пришлось выкинуть, т.к. восстановить их нельзя.
Ну вот типичный пример. Залочил контроллер, а как восстановить не знает. Все просто, меня в принципе уже опередили. Лечится все стиранием данного девайса. После этого лок биты сбрасываются и микросхема доступна для дальнейшего программирования. Дела обстоят хуже, когда не правильно ставишь выбор тактования микросхемы. По теории закона подлости обычно 90 процентов случаев микра прошивается на внешний тактовый сигнал. Это всё так же лечится цеплянием генератора к выводу XTAL2 контроллера. Генератор собирается из одной микросхемы к555лн1 двух резисторов и одного кварца. Есть уникальные случаи, когда силой воли пользователь прошивает микроконтроллеру вывод ресет. В данном случае не стоит разочаровываться, а скачать схемку простейшего параллельного программатора типа AVRXP. И тогда ваш контроллер задышит с новой силой. Главное не отчаиваться, а хвататься за любые способы, если конечно не уверен на 100% что контроллер мертв
Вот такую схемку прицепить на вывод XTAL2 микроконтроллера если он запрограммирован на внешний тактовый генератор. Светодиоды любые, если горят два - генератор работает, один - не работает.
Присоединённое изображение (Нажмите для увеличения)
контроллеры, установленные на внешний генератор, можно тактовать от... Пальца! часто фона 50гц хватает. С низкой частотой, но прошить можно. Знакомые говорили про одного уникала, с которым так шилось на скорости SPI 100кгц
контроллеры, установленные на внешний генератор, можно тактовать от... Пальца! часто фона 50гц хватает. С низкой частотой, но прошить можно. Знакомые говорили про одного уникала, с которым так шилось на скорости SPI 100кгц
Палец истинного программиста!
Это сообщение отредактировал -mark- - May 24 2008, 03:21 AM
Содержимое EEPROM данных имеет право НЕ читаться(см. errata) при частотах близких к максимальной для данного проца(например, для ATtiny15 она всего 1.6Мгц), поэтому частоту внешнего тактового генератора лучше не задирать слишком высоко, и ещё иметь в виду как был до этого прошит бит CKDIV(Clock Division Factor). При программировании также нужно следить за настройкой скорости SPI со стороны программатора- он не должен вдруг оказаться быстрее, чем скорость работы самого процессора. Цеплять внешний генератор желательно к ноге XTAL1 (а не XTAL2).
Это сообщение отредактировал -mark- - Jun 2 2008, 02:29 AM
Присоединённое изображение (Нажмите для увеличения)
А у меня обратная проблема. Контроллер программируется, записанная программа читается, а когда вставляю в устройство "молчит". Не хочется думать, что им конец. У меня таких лежит pic16f873a, pic16f628a и pic12f675 целая коллекция...
--------------------
Это не дым канифоли... Это души погибших транзисторов...
Когда МК установлен в рабочем устройстве выводе сброса есть логическая единица? Тактовый генератор МК работает? Уверены что верную прошивку загрузили и верно выставили конфигурационные биты?
Как вариант , у вас программатор на грани так сказать работает, или иголки какие нить проскакивают, и некотрые чипы подпаливают. Я что тока с пиками не делал - всё ок, ну разве что не выдержал 20 вольт в течение 0, 5 сек (проводочек слетел и проскальзнул по высокому)... даже переполюсовку секунд 10 и вследствии чего разогрев выдерживали...
Авр кстати тоже жил минут 5 при переполюсовке. Живой остался, и ниче,работал дальше. Не знаю как пики, а авры не переносят следующего: при питании от неизолированного от сети устройства, при подключении программатора стк200, ноги моси мисо сцк выжыгаются. Связано это видимо в разности массы компьютера и нейтрали(около 100 вольт).
Группа: Автор
Сообщений: 2818
Пользователь №: 11311
Регистрация: 14-September 06
Место жительства: USSR
Подскажите схему программатора чтобы вернуть к жизни Tiny15. Неудачно поэкспериментировал с fuse битами. Три штуки, не обнаруживаются программатором, жалко выбрасывать. Пользовался этим программатором - http://avr.nikolaew.org/progr.htm
Группа: Cоучастник
Сообщений: 800
Пользователь №: 9236
Регистрация: 20-June 06
Место жительства: Сибирь
QUOTE (Роман @ Jun 11 2008, 10:55 PM)
Подскажите схему программатора чтобы вернуть к жизни Tiny15. Неудачно поэкспериментировал с fuse битами. Три штуки, не обнаруживаются программатором, жалко выбрасывать. Пользовался этим программатором - http://avr.nikolaew.org/progr.htm
Аналогичная проблема, пытался изменить фьюзами частоту внешнего генератора и не заметил, что установились Bit lock. Соответственно перепрошить не получается, как можно оживить МК?
Группа: Cоучастник
Сообщений: 800
Пользователь №: 9236
Регистрация: 20-June 06
Место жительства: Сибирь
QUOTE (mrkot @ Jul 2 2008, 01:24 PM)
Аналогичная проблема, пытался изменить фьюзами частоту внешнего генератора и не заметил, что установились Bit lock. Соответственно перепрошить не получается, как можно оживить МК?
PS: AVR ATmega128.
На первой страничке писали: "флэш лок биты стираются стиранием, вместе с содержимым флэша и/или еепрома"
А не может ли неправильная установка битов CKSEL и SUT привести к такому эффекту? Вместо тактирования от керамического резонатора, был выбран ВЧ кварцовый резонатор или внешняя RC цепочка.
Да уж....Понипрог на самом деле самый тупой и скоростной по убивке програматор. Скорее всего получилось следующее: При установке в режим программирования Fuse bits любой программатор считывает те фузы, которые были прошиты в контроллер по умолчанию, понипрог этого не делает.А наивный пользователь ставит фузы те, которые нужно подправить, забывая считать контроллер.Соответственно "выносится" ресет и SPIEN. После этого можно посоветовать лишь две вещи: Попробовать оживить контроллер внешним геннератором Поставить програмку AVRXP - параллельный программатор какого то японского автора.Могу советовать, потому как сам лично разлочил им около 200 тань 15х с зашитым ресетом,не реагирующих на понипрог.
У меня проблема: Когда-то давно когда я только начинал изучать МК я попортил пару Attiny2313. Недавно решил их оживить. Стер с помощью универсального программатора Phyton. Микроконтроллеры просматриваются. Но после заливки Флеша МК опять не дышат. В чем дело, не понимаю...
Дело может быть в следующем: если мк видится программатором, то: если уверен что код "живой" то на мк грешить не стоит. Программер если видит то контроллер живой, это первое. Второе: проверяй цепь ресет, должны быть стабильные +VDD. Если контроллер в прошиве использует аналоговые цепи, то: обязательно проверь напряжение авдд и цепь ареф. Без них контроллер наглухо завесится. Но если у тя тани2313, то все таки смотри на цепь ресет. Посмотри на худой конец осциллом. Также проверь питание. Если используется большая частота, то проверь цепь запуска кварца, кондеры да и сам кварц.смотри также фузы.