Столкнулся с непонятной проблемой: работаю с ATmega32, программатор а-ля STK200/300, LPT порт. С некоторого времени при попытке записать фьюзы, прошиваются лок биты и сбросить контроллер удается с помощью "РЕАНИМАТОРа", описанного на этом сайте. Решил что умудрился каким-то образом подпалить контроллер, купил сегодня новый. При первой же попытке откорректировать фьюзы на внешний кварц, он заблокировался Причем, если фьюзы не трогать, работает нормально.
Схема устройства простая, повторяет экзамплы для V-USB (AVR-USB), питание на контроллере 5 вольт, с шины USB. В разводке печати ошибок нет, соплей на плате тоже нет.
Программатор (на мой взгляд) исправен, работаю с ATmega8515, фьюзы и hex перешивает на ура, без ошибок. Софт - CodeVisionAVR, PonyProg, результат одинаковый.
Заголовок сообщения: Re: ATmega32 блокируется при попытке записать фьюзы
Добавлено: Вт май 04, 2010 08:32:55
Вымогатель припоя
Зарегистрирован: Вс мар 04, 2007 01:17:12 Сообщений: 690
Рейтинг сообщения:0
извиняюсь за ламерский вопрос- а что, есть лок биты, отвечающие за блокирование программирования? Я думал только от считывания защита, а перезаписать можно всегда...
Может фьюзы кварца неправильно выставляешь, вот мк и не видиться потом...
RWLOCK - Защита от чтения и записи. Программирование, а также чтение/проверка flash-памяти и EEPROM через интерфейс программирования отключены. Чтение/запись lock- и fuse-бит через интерфейс программирования так же отключены.
Хочу добавить что испытуемые контроллеры из разных партий, хоть и куплены в одной конторе. JTAG отключен, да и порт PC не использую пока что.
Кварц на плате 16 МГц, на частоту выходит, проверено. Если бы были проблемы с частотой, ни поня, ни CodeVisionAVR не видели бы контроллер.
Цитата:
извиняюсь за ламерский вопрос- а что, есть лок биты, отвечающие за блокирование программирования? Я думал только от считывания защита, а перезаписать можно всегда...
Перезаписать можно всегда, с потерей данных. Но только параллельным программатором или одним из РЕАНИМАТОРОВ, например, представленном на этом сайте (вроде все контроллеры Atmel, про которые я знаю имеют такой режим, суть состоит в том, чтобы на разные сигнальные ноги подать разные импульсы с задержками (детально как и в какой последовательности, написано в даташитах), в общем случае у всех похоже. Некоторые контроллеры серии tiny только такой режим и понимают, SPI там нет).
Может имеет смысл менять программатор? Ведь неудобно же перед каждой прошивкой делать "хард ресет" на другой плате, ноги контроллера недолговечные, а панелей с нулевым усилием пока не завел - дороговатая конструкция выходит...
RWLOCK - Защита от чтения и записи. Программирование, а также чтение/проверка flash-памяти и EEPROM через интерфейс программирования отключены. Чтение/запись lock- и fuse-бит через интерфейс программирования так же отключены.
извиняюсь, может я от жизни отстал? откуда такой fuse-бит вы взяли? в даташите на atmega32 нет такого.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
1. RWLOCK - это абревиатура Read/Write Lock 2. FUSE и LOCK bits это абсолютно разные вещи 3. Вот таблица из даташита для Атмега32:
Биты защиты памяти Тип защиты LB2 LB1 1 1 Нет защиты памяти. 1 0 Дальнейшее программирование флэш-памяти и ЭСППЗУ отключено при параллельном и последовательном (SPI/JTAG) программировании. Конфигурационные биты защищены при любом способе программирования(1) 0 0 Дальнейшее программирование и проверка флэш-памяти и ЭССПЗУ отключена как при параллельном, так и при последовательном программировании через SPI/JTAG. Конфигурационные биты защищены при любом способе программирования(1)
BLB02 BLB01 1 1 Нет ограничений действия инструкций SPM или (E)LPM при адресации сектора прикладной программы. 1 0 SPM не записывает данные в сектор прикладной программы. 0 0 SPM не записывает данные в сектор прикладной программы, а выполнение инструкции (E)LPM в загрузочном секторе не позволяет считать данные из сектора прикладной программы. Если векторы прерываний размещены в загрузочном секторе, то при выполнении команд в секторе прикладной программы прерывания отключаются. 0 1 Выполнение (E)LPM в загрузочном секторе не позволяет считать данные из сектора прикладной программы. Если векторы прерываний размещены в загрузочном секторе, то при выполнении команд в секторе прикладной программы прерывания отключаются.
BLB12 BLB11 1 1 Нет ограничений действия инструкций SPM или (E)LPM при адресации загрузочного сектора. 1 0 SPM не записывает данные в загрузочный сектор. 0 0 SPM не записывает данные в загрузочный сектор, а выполнение инструкции (E)LPM в секторе прикладной программы не позволяет считать данные из загрузочного сектора. Если векторы прерываний размещены в секторе прикладной программы, то при выполнении команд в загрузочном секторе прерывания отключаются. 0 1 Выполнение (E)LPM в секторе прикладной программы не позволяет считать данные из загрузочного сектора. Если векторы прерываний размещены в секторе прикладной программы, то при выполнении команд в загрузочном секторе прерывания отключаются.
Я думаю, что автор имел в виду именно эти лок биты о чем я и писал выше. Шил Атмега32 программаторами STK500, AVRISP mkII, AvrDragon и не разу такой проблемы не возникало.
Все перечисленные биты у меня установлены в 1, т.е. не запрограммированы, что в понипроге, что в визионе. Попорбую сегодня повесить "5 проводков" на COM порт, чтобы исключить звено LPT-Программатор.
Спаял программатор Громова на COM порт. Все видит, все читает, все пишет, ничего не лочится. Когда поня говорит, что девайс залочен, второй программатор видит все без проблем. Обломно только, что он очень медленный и при подключеном программаторе девайс не работает.
Резюме - проблема в STK программаторе (буферы) или в LPT порте (сомневаюсь, так как CNC станок мой на нем живет нормально). На всякий случай, отправился в /dev/null, так как отколупывать м/с из термоклея влом. Завтра соберу USB-шный программатор и будет счастье.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения