Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите с ATmega168
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
АСМол
Я радиолюбитель со стажем.
Дали мне на обследование пару контроллеров на ATmega168 TQFP32, однократно запрограммированных по SPI, после чего эта функция у них умерла. Те кто дал, говорят что попались плохие микросхемы фирмы ATMEL и есть еще. Я не волшебник, я только учусь, но хочу установить истинную причину, поэтому вынужден обратиться к коллективному разуму, чтобы сделать это еще в этой жизни.
Исходные данные:
- по включению питания контроллеры живут своей внутренней жизнью, периодически сигнализируя об этом через штатные светодиоды;
- обращение через систему PonyProg к контроллерам по SPI с низким уровнем RESET, c генерацией SCK и MOSI, при неиспользованном в конструкции выводе SS не приводит к активности MISO, который все время имеет низкий слаботочный уровень, поэтому сообщение обслуживающей программы DEVICE UNKNOUN логично.
- делаю параллельный программатор для AVR, аналогичный ELM-ChaN, проверяю его на ATmega8 DIP28 с программой под DOS, все декеларируемые автором команды работают.
- не выпаивая микросхему из контроллера, подпаиваю к ней 20 проводов и подключаю к параллельному программатору;
- DEVICE определяется, FUSE, CAIBRATE, PROGRAM читаются, но автор программы почему-то не отображает состояние битов защиты, да и команды на их чтение в обслуживающей программе нет;
- FUSE прочитались следующие:
L 1110 1111 SUT0=0
H 1001 1111 DWEN=0, SPEN=0
X 001 BOOTSZ1=0, BOOTSZ0=0
- пытаюсь выключить DWEN, но бит не стирается;
- пытаюсь изменить другие FUSE - они не изменяются;
- пытаюсь изменить биты защиты, а вдруг прочитается весь байт защиты, увы не читается;
- делаю как книжка пишет: стираю кристалл, а значит и биты защиты;
- PROGRAM видно что стерлась, биты защиты авторская программа не показывает, остальное без изменения;
- опять пытаюсь изменить FUSE - они не изменяются;
- иду в знакомую контору на промышленный программатор, подключаю как ATmega168 DIP28, но с контроллерными потрохами, дающими небольшие утечки по выводам. Программа останавливает процесс на ошибке подключения, видать считает что лишний милиампер это смертельно.
Дальнейшие размышления:
- я зашел во временный тупик, надо учить технику, но времени нет, старый уже. но припоминаю, что даже если тебя съели все равно есть два выхода;
- так и в этой ситуации, либо cписать проблему на ATMEL, которая получается выпускает и продает плохие микросхемы, либо наоборот, делает супер, ибо их один ГУРУ может так запрограммировать что сто таких как я их даже стереть не смогут. Может задействовано самопрограммирование из недоступной секции, восстанавливающее защиту по включению питания, блокируя доступ к конфигурационным байтам, а может еще чего;
- хоть это и мелочь в жизни, но истинную причину хочется узнать, может ФОРУМ поможет, может ATMEL, а может со временем сам разберусь, но хочется побыстрее. smile.gif
Rst7
Цитата
Я радиолюбитель со стажем.


Именно. Фигней занимаетесь, простите за грубость. Ибо даже если попалась бракованная партия микросхем, то при цене в 2 бакса за корпус их проще сдуть с плат и запаять новые. Это в случае, если уж так горит необходимость перепрограммирования.
Сергей Борщ
Цитата(АСМол @ Jan 11 2010, 16:07) *
H 1001 1111 DWEN=0, SPEN=0
SPEN = 0 и RSTDISBL = 1 говорит о том, что микросхема должна быть видна последовательным программатором. Биты защиты на это не влияют. От чего тактируется процессор? Возможно частота тактирования настолько низкая, что процессор не успевает за лошадью. Попробуйте avreal - в нем можно поиграться скоростью программирования опцией -O. Проверьте, что внешние цепи в вашей схеме не мешают сигналам RESET, SCK, MOSI программатора.


Цитата(АСМол @ Jan 11 2010, 16:07) *
- так и в этой ситуации, либо cписать проблему на ATMEL, которая получается выпускает и продает плохие микросхемы,
Конечно. Объявить виноватыми всех вокруг - типично русский подход.
DpInRock
Наверняка схема без кварца.
Подпаиваем какой-нибудь кварц к соотв. ножками. И программируем.

Если на микросхему не подано питание, то пони-прог сумеет таки прочитать байт конфигурации (чаще всего) паразитным питанием через ноги LPT.
defunct
Цитата(Сергей Борщ @ Jan 11 2010, 16:34) *
Цитата
H 1001 1111 DWEN=0, SPEN=0

SPEN = 0 и RSTDISBL = 1 говорит о том, что микросхема должна быть видна последовательным программатором.

DWEN = 0 говорит о том что чип в режиме отладки по debugWire, тобиш Reset пин занят. Последовательным программатором его не будет видно.
Необходимо отладчиком отключить dW. для Dragon'a и Jtag-MK2 ключик -W.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.