Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ATmega8 + RFM43. Подключение модуля и прошивка МК
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
DWL
Доброго времени суток


Увы, но на горьком опыте возник следующий вопрос: как правильно подключить к AtMega8 радиомодуль RFM43.

На данный момент ситуация следующая: когда радиомодуль не впаян в схему: всё отлично прошиваеться.
После припаивания радиомодуля он определяеться, конфигурируеться и тд..
Прошиваю при помощи USBAsp.

Но при попытке перепрошить МК при подключённом модуле avrdude при верификации выдаёт сообщение о несовпадении данных по адресу 0x0000 и после этого МК уже не отзывается. AVR fuse doktor'a пока нету, так что даже не могу проверить в чём дело: сгорает МК или просто лочится из-за влияния радиомодуля.

При перепрошивке выводы радиомодуля NSEL и SHUTDOWN подтягиваю резисторами к питанию. Результат тот же.
Сегодня отрезал дорожку питания к модулю и попробовал прошить новый МК: не помогло, ещё один кристал испорчен sad.gif

Вот электрическая схема и сама ПП
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла

Ну и весть проект
Нажмите для просмотра прикрепленного файла

Очень прошу, помогите разобраться в причинах происходящего, а то у меня уже небольшая паника начинается....
coolbassnik
Микроконтроллер скорее всего не "лочится", тут просто происходит конфликт с программатором из-за того что RFM подключен именно на порт SPI через который вы прошиваете микроконтроллер. Причина скорее всего в том что RFM сидя на шине SPI просаживает напряжение на выводах SPI и не дает нормально прошить микроконтроллер через ISP порт.
Выход из ситуации - попробуйте подключить модуль RFM через резисторы около 2-5кОм, при этом чтобы от программатора к микроконтроллеру шина была без резисторов. Нужно просто развязать по току RFM и микроконтроллер.
Определить что микроконтроллер не блокируется очень просто - выпаяйте RFM и попробуйте прошить снова, думаю что без RFM программатор успешно будет читать и записывать МК.
DWL
Спасибо за оперативный ответ

В принципе было подозрение, что дело в разводке платы: линии от разъёма программирования идут сначала на RFM, а с него уже на МК.

Выпаивать радиомодуль пробовал, не помогает. МК всё равно не отзываеться sad.gif
Арк К
Цитата(DWL @ Feb 23 2014, 23:28) *
При перепрошивке выводы радиомодуля NSEL и SHUTDOWN подтягиваю резисторами к питанию. Результат тот же.
Сегодня отрезал дорожку питания к модулю и попробовал прошить новый МК: не помогло, ещё один кристал испорчен sad.gif

По идее, сигнал выборки радиомодуля (цепь SS на схеме) должен иметь активное состояние в нуле (хотя, по вашей схеме это явно не видно), тогда, если на этом входе будет единица, то выход последовательных данных радиомодуля должен находиться в третьем (High-Z) состоянии и не должен ни на что влиять при прошивке. Говорите, он у вас подтянут к плюсу? Может, радиомодуль неисправен и и садит линии на землю? А последовательные резисторы в данном случае могут ухудшить фронты и привести к трудно обнаруживаемым ошибкам при передаче данных.
Ещё вопрос: зачем у вас SS выведен на разъём программирования? Для прошивки МК он не нужен.
МК может не отзываться по причине установки фьюза, который отвечает за тактирование кристалла, на внешний источник.
octobus
Цитата(DWL @ Feb 23 2014, 23:28) *
При перепрошивке выводы радиомодуля NSEL и SHUTDOWN подтягиваю резисторами к питанию. Результат тот же.
Сегодня отрезал дорожку питания к модулю и попробовал прошить новый МК: не помогло, ещё один кристал испорчен sad.gif


Если у Вас нормальный программатор, то кристаллы Вы не портите, скорее всего как написали до меня, Вы сбиваете настройки МК и он не реагирует из за фьюзов. Параллельный программатор поможет Вам вернуть все "сгоревшие" чипы.

Чтобы не портить больше чипов, отрежьте ножки SPI от радимодуля и сделайте на них напаиваемые перемычки. Программируйте без перемычек. В серийном изделии можете поставить двунаправленные буферы которые при подключении программатора отключают радиомодуль от шины SPI. Это если не разбираться в чем причина, а чтобы разобраться, надо посидеть с осциллографом. И конечно понять горят чипы действительно или просто лочатся по фьюзам. Если горят, значит где то серьезно нарушается режим программирования. Но не похоже на это...
DWL
Большое спасибо за ответы и подсказки, обязательно всё попробую: плату уже переразвёл с учётом рекомендаций Atmel по подключению SPI к ISP.

Радиомодуль исправен, только что проверил. Проблема именно с МК при одновременном подключении программатора и радиомодуля. Причём после попытки прошивки МК в такой конфигурации МК уже неотзываеться, дажу при выпаянном радиомодуле.

SS вывел на разъём как раз для того, что бы во время прошивки подтягивать к питанию.


Буду пробовать дальше, ну и завтра сделаю AVR-доктора...
TOL500
Воспользуюсь вопросом на такую же тему.
Кто подскажет, если прошивка сделана для ATmega8 в ДИП корпусе (28 выводов), будет ли она работать без переделки в smd корпусе (32 вывода). Разводка платы естественно будет переделана в соответствии в назначением выводов.
Арк К
Цитата(DWL @ Feb 24 2014, 23:44) *
SS вывел на разъём как раз для того, что бы во время прошивки подтягивать к питанию.

Лучше бы это сделать прямо на плате резистором на постоянной основе, а не только на время прошивки. Не забывайте, что при подаче питания на МК до программной установки портов все выходы находятся в выключенном состоянии и подключенные к ним входы других компонентов в это время просто висят в воздухе, а это не фэн-шуй. Разве что, в самом радиомодуле уже есть подтяжка.

А может вы перепутали вход с выходом последовательных данных у радиомодуля? По приведённой вами схеме это понять нельзя, поскольку у радиомодуля отсутствует нумерация выводов, а по рисунку платы тоже понять ничего нельзя. Ещё такой момент: по даташиту модуль находится в состоянии POWER DOWN, если на соответствующем входе присутствует 1. Нужно подать 0 на RESET контроллера, тем самым отключив его выходы, и посмотреть напряжения на выводах SPI модуля при SDN=1 и при SDN=0. По идее, если при этом nSEL=1, то выход SDO модуля должен быть отключен, т.е. висеть в воздухе, но всякое может быть.
DWL
Касательно выводов SS и SHUTDOWN в новой итерации платы поставил подтягивающие резисторы.

Радиомодуль 100% подключён правильно, так как в те пару раз, когда прошивка заливалась без радиомодуля он определялся и работал (конечно после установки на плату).

Но это уже не совсем важно, так как произошедшее сегодня ломает все предположения и догадки.
Сразу оговорюсь, что пользуюсь проверенным программатором (пользуюсь им уже лет 5-6, никаких претензий к нему не было и нет, так как уже проверял с другим кристалом).
Короче. Сей час радиомодуль установлен на разъёме и при перепрошивке я его снимаю. Вчера ночью был запаян новый МК с надеждой что сегодня по отлаживаю прошивку. Но уже при второй загрузке прошивки МК перестал отзываться. При чём радиомодуль лежал рядом с платой на столе.

У тут меня посетила одна мысля: МК питаеться от 3.3 вольт, а программатор от 5В. заглянут в даташит я увидел, что для ножек меги допустимо максимум Vcc+0.5. То есть 3.8В. А я, увидев что на ножках есть защитные диоды (ну и по аналогии с АРМ"ом) подумал, что от 5В контроллеру худо не будет. Вот только странно, как радиомодуль то не сгорел?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.