Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: После Avreal контроллер не отвечает
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
reget
Обычно прошивал АТмеги из CodeVisionAVR при помощи "5 проводков" на LPT порт, однако пришлось сменить компьютер, теперь LPT-порта на материнской плате нет. Купил PCI-LPT адаптер, но CodevisionAVR не умеет с ним работать. Решил попробовать прошивать через Avreal.

Прошивал примерно с такими параметрами "-as -P0xD800 +mega162 -w -c brel.hex". После прошивки устройство перестало функционировать, горел светодиод на плате в 1/4 накала (хотя в программе никаких ШИМов не было). При нажатии кнопок на устройстве оно не реагировало, но через 10-20 нажатий могло как-то неадекватно промигать светодиодами и опять замолчать. Прошил с теми же параметрами еще пару раз - прошилось. На следующую попытку получал ошибку "Can't resync" - устройство не отвечало. Добавил в командную строку ключ -e (стереть flash), попробовал несколько раз - на пятый раз прошла команда об успешном стирании flash, а за ней привычный "Can't resync".

После этого устройство перестала подавать какие-либо признаки жизни (память стерлась видимо успешно). Подключил устройство по обычной схеме к другому компу и попробовал пообщаться через Codevision - не отвечает. С Avreal тоже не отвечает (Can't resync). Что делать? Что могло случится, если я фьюзы не трогал?
demiurg_spb
У Вас программатор с шинным формирователем (типа LS244)?
Если нет, то стоит обзавестись.
Гипотетически, при прошивке мог произойти сбой и всё-таки фьюз-биты могли слететь.
Тогда осталось 3 варианта:
1. Выбран внешний генератор в качестве задающего.
Попробуйте подать внешнее тактирование на XTAL1 от любого генератора (хоть с ноги другого MCU).
2. Выбран внешний кварц в качестве задающего, а его нет и впомине. Запаять кварц или сделать как в п1.
3. Cлетел бит отключивший ногу #RESET от сбросовой схемы MCU - в морг.
aleksey_g
Цитата(demiurg_spb @ Jan 16 2011, 02:01) *
3. Cлетел бит отключивший ногу #RESET от сбросовой схемы MCU - в морг.

Нельзя так категорично! С этой проблемой может справиться параллельный программатор.
sensor_ua
Возможно установлена немаленькая емкость по пину RESET - удалить на время прошивки
demiurg_spb
Цитата(aleksey_g @ Jan 16 2011, 04:16) *
Нельзя так категорично! С этой проблемой может справиться параллельный программатор.
Это конечно да, но судя по моему опыту проще выкинуть. Ибо контроллерами в DIP корпусах в серийных изделиях никогда не пользовался, а геморроитсья с параллельным TQFP программатором как-то нет ни малейшего желания.
reget
Да.. проще перепаять МК на новый, что я и сделал.
Страшно теперь этим Avreal'ом пользоваться. Посоветуйте, пожалуйста, решение для программирования МК через USB. Внутрисхемное конечно, в идеале небольших габаритов, чтобы в портативные устройства сразу встраивать и выводить наружу miniUSB.
ReAl
Вот как раз на прошлой неделе нужно было сверить foat-рассчёты на PC и на AVR, консольную программку написал с #ifdef и для AVR с перенаправлением printf на USART, а под рукой только платка с mega162 нашлась, у меня их когда-то много было.
С десяток раз эту тестировалку вычислений зашивал, всё без проблем. Точнее, сначала как раз и не шилось, оказалось, разболтался разъём шлейфа, потерялся контакт VCC и питание на плату от программатора не поступало. Взял другой шлейф и пошло.
Правда, у меня не "пять проводков". FT2232 и LPT-шный адаптер с шинником 74HC.


Этот же контроллер с этим же "адаптером" на обычном LPT из CodeVision прошивался? Т.е. с платой/питанием всё нормально?
Таки что там на сбросе? Конденсаторов больших нет?
Какой частотой тактируется mega162? Ключ -o для этой частоты давать пробовали?

Если "-as -P0xD800 +mega162 -w -c brel.hex" это вся командная строка, а контроллер уже какую-то программу имел, то после такой зашивки ничего правильно работать и не должно было, так как новая программа наложилась по AND на старую. Ключ стирания нужно давать.

Почему ушло в Can't resync - не понимаю. Критических в это смысле фьюзов у mega162 нет. Ни разу на тако не нарывался. Разве что CKSEL неудачно перешился, но это маловероятно, если команд fises не было.
sensor_ua
Цитата(reget @ Jan 16 2011, 17:55) *
Страшно теперь этим Avreal'ом пользоваться.

Это лучшее. Я бы рекомендовал показать схему, а до того проверить правильность подключения и целостность контактов
reget
Цитата(ReAl @ Jan 16 2011, 22:41) *
Этот же контроллер с этим же "адаптером" на обычном LPT из CodeVision прошивался? Т.е. с платой/питанием всё нормально?
Таки что там на сбросе? Конденсаторов больших нет?
Какой частотой тактируется mega162? Ключ -o для этой частоты давать пробовали?

Если "-as -P0xD800 +mega162 -w -c brel.hex" это вся командная строка, а контроллер уже какую-то программу имел, то после такой зашивки ничего правильно работать и не должно было, так как новая программа наложилась по AND на старую. Ключ стирания нужно давать.


Прошивал это устройство CodeVision'ом уже много раз (раз 50 на протяжении месяца точно), ни единой проблемы или ошибки верификации не было. На сбросе нет ничего.
Тактируется кварцем 16 Мгц, ключ -o для данной частоты пробовал, и для некоторых других стандартных тоже (1//4/8 Mhz).
Про ключ понял, но поздно. Хотя почему-то команда стирания один раз из кучи "cant resync'ов" все же прошла. Странно.

Цитата
Это лучшее. Я бы рекомендовал показать схему, а до того проверить правильность подключения и целостность контактов

Схемы в электронном виде нет. Но в ней ничего необычного нет - сам МК, керамический резонатор, и 6 портов ввода-вывода наружу, работающих с разными слаботочными нагрузками.

Перепаял в эту же плату новый контроллер - все работает и шьется из CodeVision'а нормально.
ReAl
Цитата(reget @ Jan 17 2011, 11:14) *
Перепаял в эту же плату новый контроллер - все работает и шьется из CodeVision'а нормально.
Но это уже на другом компьютере, там, где «обычный» LPT ?

Непонятно, что могло случиться. У меги162 не разве что CKSEL в позу вншнего такта либо внешнего RC зашить, чтобы перестало.
Были бы ближе, я бы взял тот «заглохший» для разбирательств. Было бы интересно.
Достоверно именно avreal «гробил» tiny12, tiny15, стирая SPIEN, но это было очень давно (1.22rev0, исправлено в 1.22rev2).
В остальных случаях проблема находилась, иногда даже в avreal, но кристаллы не блокировались.
GDI
Может камень в конверт и почтой? sm.gif
halfdoom
Для статистики добавлю, что avreal'ом зашиты несколько тысяч mega162 (lpt + шинник), и никаких проблем замечено не было.
sensor_ua
Цитата
Для статистики добавлю, что avreal'ом зашиты несколько тысяч mega162 (lpt + шинник), и никаких проблем замечено не было.
Аналогично. Адаптеры STK300. Причём у мну мега162 только в одном изделии и их там аж 2 шт. Шьются через 1 разъём (джампером CLK переключается).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.