Делал я на указанном микроконтроллере вольтметр, индикация статическая на трехразрядном индикаторе (просто был у мня такой индикатор, у которого 22 ноги, из них одна общий +). Для упрощения схемы и экономии резисторов на каждый сегмент я решил эти резисторы не ставить, а поставить один резистор на общий анод на 68 Ом. Недостатки я знаю, яркость зависит от числа включенных сегментов, но для меня это некритично. Написал прошивку, зашил в МК для проверки, на плате кроме МК и индикаторов пока ничего нет больше, работает нормально. Потом думал проверить, а оно не работает. Индикаторы не светятся, на выводах МК непонятно что, ни 1, ни 0. Ну думаю что то с МК случилось, зашиваю прошивку, в которой все порты установлены в 0, на выходах ничего нет, потом 1 - тоже ничего нет. Ну думаю, МК погиб от того, что я так светодиоды подключил. Но чето я сомневаюся, чтоб одновременно все порты сгорели, ну ладно один какой-то бит, ну или весь порт, а так все порты, проверяю уровень на ресет, там 1 как и должно быть, а МК не работает. Потом через некоторое время заливаю ради прикола рабочую прошивку, и тут произошло чудо, МК заработал как положено. С чем это может быть связано, не представляю. Ну перегрузить МК светодиодами я точно не мог. 68 Ом для всех 2одновременно включенных 21 светодиодов при 5В даже много будет.
Получается примерно по 3,5 мА на сегмент или пин МК. Всего должно получится около 75мА. По документации на МК его порты можно нагружать до 20 мА, а общий ток через порты не должен превышать 200-300 мА.
Вопрос, не у кого не было подобной ситуации с МК?
Согласно даташиту я МК подпалить ну никак не мог. Тем более проводили эксперименты и МК выдерживал замыкание выхода (и даже нескольких) с 1 на землю без последствий.
PS: с подобными контроллерами работаю не первый раз, и платы делаю не первый раз, так что о кривизне рук и ошибках в монтаже речи быть не должно.
Для упрощения схемы и экономии резисторов на каждый сегмент я решил эти резисторы не ставить, а поставить один резистор на общий анод на 68 Ом.
Их надо подключать по одному на сегмент, а для надежности управлять LED не напрямую с МК а через драйвер (в простейшем случае - транзисторные ключи). Почему именно по одному? При включении хотя бы одного сегмента (не всех!!!) в случае применения общего балластного резистора, ток через него из-за малой величины данного резистора может быть весьма большим, что может привести к выходу из строя LED и других элементов схемы. Именно это обстоятельство решающее, а не пресловутая "разнояркость" сегментов. Подробнее о выборе балластного резистора и схемах индикации логических уровней смотрите здесь: "Светодиоды - типовые схемы включения".
Достаточна ли мощность источника питания? Проверьте напряжение питания под нагрузкой.
То что резисторы надо подключать по одному на сегмент я знаю давно, но почему-то этим грешат и многие проиозводители, не только самодельщики. Очень часто наблюдал, когда яркость свечения индикатора зависит от числа одновременно включенных сегментов. Насчет драйвера, то нет смысла мне ставить драйвер если надо 5-10 мА взять с контроллера. В случае применения мощных индикаторов я мтавлю драйвер ULN2803 (сборка с 8 дарлингтонов, 50В 500 мА).
Про случай включения всего одного сегмента с вами согласен, он может выйти из строя от большого тока. Но у меня в программе такой режим не предусмотрен, в самом худшем случае это будет число 111, при этом одновременно включено 6 сегментов, а это будет примерно по 10 мА на сегмент. За ссылку http://www.irbislab.ru/modules.php?name=Guide&op=content&tid=2 спасибо, но это было актуально для ТТЛ, КМОП логики, с которых больше 1-2 мА нельзя было вытянуть. Именно так я угробил в одно время часовую микросхему К176ИЕ18 подключением светодиода к выходу секундных импульсов для проверки работоспособности. Светодиод мигал, но не долго. Микросхема вышла из строя безвозвратно. МК довольно мощные по току, причем некоторые допускают подключение светодиодов к портам напрямую, когда МК ограничивает ток 10мА. А в случае использования динамической индикации можно вообще никаких ограничительных резисторов не ставить. Индикатор подключается напрямую к МК, при определенной скважности импульсов на общих электродах средний ток через сегмент будет в пределах допустимого. Но что будет в случае зависания МК или остановки программы, это уже вопрос.
Источник питания батарея от карманного фонаря 4,5В, правда не первой свежести, но МК проверять можно. МК допускает питание 2,7-5,5 (у меня ATmega8L-8AI). Напряжение около 3,6В.
МК тактируется от внутреннего RC-генератора, кварца там нет.
А вот с фьюзами BODEN ну непонячтно что-то, когда его прошить, то МК останавливается при просадке напряжения до 2,7В или 4,0В. Но у меня не было ниче запрограммированного, что с этим связано.
в самом худшем случае это будет число 111, при этом одновременно включено 6 сегментов, а это будет примерно по 10 мА на сегмент.
В этом я не уверен - диод нелинейный элемент и тут возможно всякое.
i8086 писал(а):
это было актуально для ТТЛ, КМОП логики, с которых больше 1-2 мА нельзя было вытянуть.
Многие микросхемы имели нагрузочную способность 20-30 мА. Никогда не мешает уточнить ТХ конкретного типа.
i8086 писал(а):
в случае использования динамической индикации можно вообще никаких ограничительных резисторов не ставить.
Распространенное заблуждение. В режиме динамической индикации за счёт переходных процессов токи могут иметь большие величины, значительно превышающие рабочие токи в статическом режиме.
i8086 писал(а):
МК допускает питание 2,7-5,5 (у меня ATmega8L-8AI). Напряжение около 3,6В.
Было! И бывает. У меня с ними тоже довольно плотное общение (АТmega88). Причем такое бывает почему-то только при отладке. Когда уже готовое решение прошиваешь - все работает. Не хочу флудить, но cдается мне - это полтергейст.
Правда, бывает такое не хочет работать, и никакие танцы с бубнами не помогают. Уже привык переключаюсь на другую задачу (без МК), а на следующий день возвращаюсь - все работает. По-началу и фьюзы и монтаж по десятку раз проверял, с питанием вопросов даже не возникало (все ОК) - ну не помогало.
Хотя не смешно иногда.
Такое, конечно бывает, а вот чудес не бывает. Это точно. Где-нибудь накосячили. Или с цепью RESET, или хреновая развязка по питанию (между выводами микроконтроллера "земля" и "питание" конденсаторы стоят? Какие?) или монтаж неудачный. Или вот это:
i8086 писал(а):
...Источник питания батарея от карманного фонаря 4,5В, правда не первой свежести...
Если батарея дохловатая, то импульс тока через светодиод может кратковременно просадить напряжение питания до уровня, когда сработает сброс (Brown-out Reset) Порог этого сброса задаётся фьюзами. Может в этом секрет успеха?
Sergey_K, и у вас такое бывает, а я то думал что только у меня руки искривились от МК, сколько делал никогда такого не было, чтоб МК тупо не работал. Кстати когда заработало, так и работает счас без никаких проблем. Кстати у меня еще аналогичная проблема с ATTiny26, собирался сделать набор из мастеркит вольтамперметр, но что-то с прошивкой не получилось, МК не подавал признаков жизни. Зашил свою собственную прошивку, недоделанную правда, работает, потом в процессе отладки МК перестал работать. Заливаю прошивку чтоб все порты в 0 выставить, на выходах Z-состояние, 1 - тоже самое неопределенное состояние. Причем это случилось в один день что и ATmega8 временно не работал, в чем тогда прикол получается. Влияние магнитных полей Земли что-ли, ну это магия какая-то.
На следующий день ATmega8 заработала, с ATTiny26 еще не разбирался.
Барсик, цепь RESET висит в воздухе, иногда через 10К цепляю на + питания, но чаще всего висит в воздухе и ниче, работает.
между выводами МК земля-питание стоит керамика 100 нФ непосредственно возле МК, электролиты 47-100 мкФ.
Писал уже про BOD, он у меня вообще был отключен.
Но вот RESET я не пробовал в этом случае на питание садить.
Atmel рекомендует неиспользуемые выводы МКконфигурировать как входы с внутренним подтягивающим резистором, а внешне вывод получается, что "висит в воздухе". А вот с выводом RESET не знаю, как там реализовано аппаратно, но рекомендуется резистор 10к на плюс питания и конденсатор 10н на корпус. И еще, какое же это внутрисхемное программирование у AVR, если подключенные к выводам программирования эжлементы схемы мешают программированию МК? Приходится резать дорожки чтоб перепрошить МК.
Насчет ложного сброса МК в моем случае я не уверен, он бы хотя бы через раз запускался.
Парадокс какой-то: ATtiny26 определяется и прошивается программатором USBasp только на паразитном питании. С чем это может быть связано, даю питание от программатора, не определяется, от внешнего ИП через 78L05 - также не определяется, отключаю МК от питания, определяется. Другим программатором AVR910 вообще не определяется ни в каких режимах. Прошил внутренний генератор на 8 МГц, наоборот стало, определяется только AVR910 и как положено прошивается, зато не определяется USBasp. От чего такие глюки бывают? Получается, что AVR910 определяет МК только прошитым на 8МГц, а USBasp определяет МК только прошитый на 1 МГц.
В общем, сделал полную очистку чипа, вроде бы процессор программу выполняет нормально, но что-то мне не нравится такая прошивка, то работает, то нет.
Всем привет!
Я пользуюсь AVRISP. Первый и второй (СОМ и USB). У них не важно чем прошивал и чем читаешь. А вот, что на одном программаторе прошил, а на другом или не читается, или не прошивается это я где-то слышал, сам не пробовал, но чужие МК прочитать бывает проблематично (может защитные фьюзы стоят).
А по-поводу косяков разных, честно - просто уже для прикола оставлял "до завтра" и с утра следующего дня все прекрасно работает. Флюс, спирт и т.д. отпадает, потому что отладочные платки с МК один раз паяются (при сборке).
Ну и еще по-поводу внутрисхемных отладок. Проблем не было и окончательные отладки проводим на собранной плате. Правда чтобы проверить работу надо отключить (физически) программатор и иногда сбросить питание отладочного устройства.
Согласен.
Просто отладочные платы собраны как промышленные образцы (не вручную) и отмыты соответственно. Плюс отладочные работы ведутся в "тепличных" условиях. В "жизни" при резко меняющихся условиях эксплуатации претензий к работе МК еще не было.
Я сначала тоже искал "научные" объяснения, но в конечном итоге начал верить в "непознанное" .
Что то ребята у вас явно не так. Либо шкварит компилятор либо, что наиболее веротно сами в коде что то не так делаете. Описаных "глюков" за 4-х летний стаж работы с МК не было замечено. Причем и устройств на них собрано не мало и отлаживолось многое и по всякому. Сдается мне выводы как выходы забываете настраивать или еще чего в этом духе. _________________ Путь осилит идущий ...
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы