AVR и светодиодный индикатор

Обсуждаем контроллеры компании Atmel.
melandr
Вымогатель припоя
Сообщения: 580
Зарегистрирован: Пт ноя 08, 2013 01:01:18

AVR и светодиодный индикатор

Сообщение melandr »

Добрый вечер, уважаемые форумчане! Не могли бы подсказать, в чем может быть проблема. Есть плата с ATmega8 и подключенный к ней светодиодный 4-х сегментный индикатор.
Схема ниже
Изображение
Происходит паразитная засветка неактивных сегментов светодиодного индикатора.
Изображение Изображение
Сначала грешил на плохо смытый флюс, либо замыкание где-то на плате. После промывки в ультразвуковой ванне, изменений не было. Отпаял разъем, к которому подключается шлейф платы семисегментного индикатора, снял с панельки микроконтроллер. Нигде замыканий между дорожками, которые идут на плату индикации не нашел. Обратно впаял разъем, тоже самое. При этом, если подключаю плату индикации к другой плате с микроконтроллером, вливаю ту же программу, все нормально паразитной засветки нет. Может кто подскажет, как можно продиагностировать, где происходит утечка. Индикация динамическая, поразрядная. Светятся сегменты, которые должны быть погасшими. Если нужно могу сбросить на сайт проект в AVRStudio на СИ. Просто не знаю, в какую сторону копать.
Реклама
Аватара пользователя
АлександрЛ
Друг Кота
Сообщения: 43820
Зарегистрирован: Пн ноя 30, 2009 03:00:01
Откуда: Нерезиновая

Re: AVR и светодиодный индикатор

Сообщение АлександрЛ »

Я бы попробовал добавить резисторы, примерно 10 кОм, между базами и эмиттерами транзисторов Q1~Q4.. :dont_know:
Если, конечно, дело не в "ошибке программиста".. :facepalm:

Добавлено after 3 minutes 14 seconds:
[uquote="melandr",url="/forum/viewtopic.php?p=3589532#p3589532"]Есть плата с ATmega8 и подключенный к ней светодиодный 4-х сегментный индикатор.[/uquote]
Вы хоть выражевывайтесь правильно- ЭТО- "СЕМИСЕГМЕНТНЫЙ ЧЕТЫРЁХРАЗРЯДНЫЙ светодиодный индикатор!!!!!!
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15556
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: AVR и светодиодный индикатор

Сообщение BOB51 »

Некорректно выполнен функционал гашения индикации при смене позиций.
8)
melandr
Вымогатель припоя
Сообщения: 580
Зарегистрирован: Пт ноя 08, 2013 01:01:18

Re: AVR и светодиодный индикатор

Сообщение melandr »

[uquote="АлександрЛ",url="/forum/viewtopic.php?p=3589550#p3589550"]Вы хоть выражевывайтесь правильно- ЭТО- "СЕМИСЕГМЕНТНЫЙ ЧЕТЫРЁХРАЗРЯДНЫЙ светодиодный индикатор!!!!!![/uquote]
!:) сорь, по запарке неправильно написал.
Ваше решение пробовал делать, стало лучше. Но вот фрагмент схемы отладочной платы EVBavr04
Изображение
По этой схеме и делал подключение светодиодного индикатора. И при подключении к этой плате все нормально
BOB51 писал(а):Некорректно выполнен функционал гашения индикации при смене позиций.
8)
А в чем это заключается? Та же программа, запущенная на отладочной плате работает и на индикаторе который стоит на отладочной плате, и на индикаторе который сделан самостоятельно.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
ПростоНуб
Собутыльник Кота
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Re: AVR и светодиодный индикатор

Сообщение ПростоНуб »

Это нормально. На выходе ATMega высокий уровень гарантируется не меньше 4.2В. Напряжение насыщения БЭ у BC857 - 0.7В. Вот транзистор и остается приоткрытым даже при высоком уровне выходе МК.

Добавлено after 6 minutes 40 seconds:
[uquote="АлександрЛ",url="/forum/viewtopic.php?p=3589550#p3589550"]Я бы попробовал добавить резисторы, примерно 10 кОм, между базами и эмиттерами транзисторов Q1~Q4.[/uquote]
Радикально это проблему не решит, а только уменьшит в 2 раза. А вот если резисторы поставить между питанием и выходами МК, то должно помочь.
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15556
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: AVR и светодиодный индикатор

Сообщение BOB51 »

Ежли не доставало сноровки правильно со схемой разобраться на данный момент единственный "бескровный" выход - увеличить время гашения и включить подтягивающие резисторы позиционных выводов у меги.
8)
В противном случае - кромсаем монтаж и немного схемку.
:solder:
Реклама
melandr
Вымогатель припоя
Сообщения: 580
Зарегистрирован: Пт ноя 08, 2013 01:01:18

Re: AVR и светодиодный индикатор

Сообщение melandr »

Припаял резисторы между эмиттером и базой транзисторов., стало красиво.
Изображение Изображение
Но хочется понять, почему при подключении к другой плате, индикация работает нормально. Используются те же транзисторы, так как они расположены на плате индикации. На плату индикации подается логический уровень с выводов микроконтроллера. Чтобы в дальнейшем не делать таких ошибок.
Вот навскидку нашел пример динамической индикации с транзистором на общий анод или катод.
Изображение
Нет никаких дополнительных резисторов, для закрывания транзистора. ЧЯДНТ?
ЗЫ: Паразитной засветки нет вообще, после установки резисторов 10к между эмиттером и базой. Ткните носом, где можно почитать, чтобы опять на эти грабли не наступать. Во всех примерах которые смотрел, нет этих резисторов.
Аватара пользователя
Martin76
Друг Кота
Сообщения: 20169
Зарегистрирован: Пт фев 04, 2011 17:57:51
Откуда: Рыбинск

Re: AVR и светодиодный индикатор

Сообщение Martin76 »

20я нога меги avcc подключена к +5 В? По схеме нет, а через нее порт С питается, в противном случае порт С питается через базовые переходы ключей и паразитные и защитные диоды порта, вызывая засветку.
Аватара пользователя
ПростоНуб
Собутыльник Кота
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Re: AVR и светодиодный индикатор

Сообщение ПростоНуб »

[uquote="melandr",url="/forum/viewtopic.php?p=3589616#p3589616"]Но хочется понять, почему при подключении к другой плате, индикация работает нормально.[/uquote]
Так я же писал выше! Напряжение высокого уровня гарантируется в интервале от 4.2 до 5В. При напряжении ниже 4.4В транзисторы могут приоткрываться. Если выше - не будут.
Аватара пользователя
java
Держит паяльник хвостом
Сообщения: 962
Зарегистрирован: Вт янв 04, 2011 13:26:17
Откуда: Лен.Обл.

Re: AVR и светодиодный индикатор

Сообщение java »

[uquote="Martin76",url="/forum/viewtopic.php?p=3589621#p3589621"]20я нога меги avcc подключена к +5 В?[/uquote]
Я вот тоже об этом подумал, когда схему увидел - почему 20 нога идёт на кондёр а не на +5в! Может опечатка?
Пишу с ошибками и опечатками.На это у меня есть разрешение и справка
melandr
Вымогатель припоя
Сообщения: 580
Зарегистрирован: Пт ноя 08, 2013 01:01:18

Re: AVR и светодиодный индикатор

Сообщение melandr »

Извините, видать не ту схему бросил
Изображение
Вот действующая схема.
Если не трудно, можете посмотреть код. Сам код в принципе рабочий, интересует красивое написание, потому как кажется я сильно накрутил. Был бы рад дельным замечаниям по коду.
Пытался делать отдельными хидерами. Но кажется, что основной цикл написан как-то коряво

Добавлено after 11 minutes 23 seconds:
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3589624#p3589624"]Так я же писал выше! Напряжение высокого уровня гарантируется в интервале от 4.2 до 5В. При напряжении ниже 4.4В транзисторы могут приоткрываться. Если выше - не будут.[/uquote]
Да я понимаю, поставив резисторы между эмиттером и базой, мы подтянули выводы микроконтроллера к "+".
Как происходит свечение определенных сегментов индикатора. Мы подаем низкий уровень с вывода микроконтроллера, управляющего разрядом индикатора. Так как на разрядах стоят транзисторы, то на общий анод индикатора подается "+". Для свечения определенного сегмента мы должны на вывод микроконтроллера, управляющего сегментами подать низкий уровень и сегмент засветится. Соответственно, еслина выводе, управляющем сегментом будет высокий уровень, сегмент светится не должен. А он немного засвечивается, значит напряжение на выводе должно бытьменьше 5В Или все-таки проблема в транзисторах разрядов?
Но почему тогда, на другой плате с этими же компектующими все нормально. Есть подозрение, что между какими-то выводами микроконтроллера сопротивление меньше чем нужно, и поэтому происходит паразитная засветка. Кстати, как можно увеличить яркость свечения сегментов. Резисторами на 390 ом, которые идут на катоды индикатора.
Вложения
timer.7z
(137.92 КБ) 316 скачиваний
Аватара пользователя
java
Держит паяльник хвостом
Сообщения: 962
Зарегистрирован: Вт янв 04, 2011 13:26:17
Откуда: Лен.Обл.

Re: AVR и светодиодный индикатор

Сообщение java »

А зачем столько ног у атмеги отбирать? может так было бы интересней https://www.radiokot.ru/forum/viewtopic.php?p=2422095
Пишу с ошибками и опечатками.На это у меня есть разрешение и справка
Аватара пользователя
АлександрЛ
Друг Кота
Сообщения: 43820
Зарегистрирован: Пн ноя 30, 2009 03:00:01
Откуда: Нерезиновая

Re: AVR и светодиодный индикатор

Сообщение АлександрЛ »

[uquote="java",url="/forum/viewtopic.php?p=3589646#p3589646"]А зачем столько ног у атмеги отбирать? .... так было бы интересней[/uquote]
Ну, хорошо.. "сЫкономили" :))) вы десяток ног.. А ЧТО потом с ними делать то?
melandr
Вымогатель припоя
Сообщения: 580
Зарегистрирован: Пт ноя 08, 2013 01:01:18

Re: AVR и светодиодный индикатор

Сообщение melandr »

[uquote="java",url="/forum/viewtopic.php?p=3589646#p3589646"]А зачем столько ног у атмеги отбирать? может так было бы интересней https://www.radiokot.ru/forum/viewtopic.php?p=2422095[/uquote]
Согласен с Вами, сейчас так бы и делал, если бы не хватало выводов. Но в принципе ног хватало, потому сделал напрямую
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: AVR и светодиодный индикатор

Сообщение Аlex »

melandr писал(а):Если не трудно, можете посмотреть код.
Мой WinRAR говорит, что архив битый :roll:
Вроде бы как он 7z умеет кушать, а тут ... :dont_know:
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15556
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: AVR и светодиодный индикатор

Сообщение BOB51 »

7Z нового выпуска старыми версиями winrar НЕ ЧИТАЕТСЯ.
Приходится постоянно раз в пол-года 7Z обновлять...
:(
Касательно "чудес" - достаточно разницы в разводке монтажа и многие схемотехнически (на чертежика схемного решения) правильные решения окажутся неработоспособны.
Тем более такой как в Вашем, melandr первичном варианте.
Для устранения проблем чаще применяется эмиттерный повторитель, но там также есть свои "тонкости" о которых по умолчанию забывают.
:beer:

К сожалению под СИ я только адуриньями маюсь...
Единственно, что можно сказать по данной схеме - оптимально (под ассемблером) применяется алгоритм сканера клавиатуры/дисплея с прерыванием по таймеру и алгоритм сопровождающей обработки событий по факту возникновения соответствующих флагов в диспетчере задач. Обмен данными между дисплейно-клавиатурным контроллером ведется через буфер данных (видеопамять и байт возврата клавиатуры) по флаг-семафорам (конец развертки строки, запрос обновления данных буфера видеопамяти).
:write:
Аватара пользователя
java
Держит паяльник хвостом
Сообщения: 962
Зарегистрирован: Вт янв 04, 2011 13:26:17
Откуда: Лен.Обл.

Re: AVR и светодиодный индикатор

Сообщение java »

[uquote="melandr",url="/forum/viewtopic.php?p=3589653#p3589653"]Но почему тогда, на другой плате с этими же компектующими все нормально.[/uquote]
чудес не бывает. это не высокочастотная станция, где плохо заэкранированный провод даст наводку и всё пропало! обычный сигнал.и разводка платы тут не причём. всё гораздо проще - есть контакт где его не должно быть, или нет контакта где он должен быть.нужно внимательно проверить всё.
И ещё из личного опыта. Не помню уже что собирал, реле давала слабый дребезг, на макетке нормально - в плате дребезг! оказалось что на питание атмеги у меня была длинная и очень тонкая дорожка. кинутая перемычка от кренки прям на ногу МК проводом решила проблему. Казалось бы причём тут питание атмеги и реле, которое питается от 12 вольт через транзисторный ключ.
Пишу с ошибками и опечатками.На это у меня есть разрешение и справка
melandr
Вымогатель припоя
Сообщения: 580
Зарегистрирован: Пт ноя 08, 2013 01:01:18

Re: AVR и светодиодный индикатор

Сообщение melandr »

У меня тоже такая мысль возникла, поэтому отпаял разъем шлейфа и прозвонил все контакты, нигде не нашел уменьшения сопротивления. Потому и спросил, как можно отследить где плохой контакт. По симптомам создается впечатление, что присутствует подтягивание выводов микроконтроллера, управляющими сегментами к "-". Те которые должны светиться, светятся в полный накал. А остальные, на которых микроконтроллер установил высокий уровень, почему то по факту имеют напряжение не 5 В, а как писал товарищ выше по теме, например, 4,2 В. Просто думал написать простую тестовую программу, которая бы не в динамике, а статически зажигала индикаторы. Чтобы проверить, из-за какого вывода происходит утечка. Не могу понять, если происходит засветка выключенных сегментов, то это проблема на линии разрядов, или на линии сегментов? По фото видно, что если сегмент ни на одном из разрядов не включен, то засветки нет. А если сегмент на одном из разрядов включен, то на тех разрядах, на которых он выключен, происходит его засветка.
Аватара пользователя
Ivanoff-iv
Друг Кота
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

Re: AVR и светодиодный индикатор

Сообщение Ivanoff-iv »

разряды виноваты (раз сегмент размазывает...) если бы был виноват сегмент, он бы светился вообще всегда
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Аватара пользователя
GoldenAndy
Поставщик валерьянки для Кота
Сообщения: 1925
Зарегистрирован: Чт июл 28, 2016 07:58:37
Откуда: Kyiv, UA
Контактная информация:

Re: AVR и светодиодный индикатор

Сообщение GoldenAndy »

Выдайте на PC0-PC3 лог.1 (что бы закрылись все ключи)
Выдайте на PD0-PD7 все лог. 0 - типа засветить все сегменты. Но помним, что ключи у нас закрыты, т.е. светиться не должно ничего.
Если засветка сегментов будет - проблема в схеме.
Если засветки не будет - проблема в коде динамической индикации.
Если засветка программная, то такую засветку обычно убирают так:
1. погасить все сегменты
2. выключить разряд
3. включить следующий разряд
4. вывести новое значение на сегменты.

Все 4 действия делать последовательно.
Между пунктами 2 и 3 можно еще вставлять задержку в единицы-десятки микросекунд - для случая, если транзисторы в насыщении и долго закрываются...
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]
Ответить

Вернуться в «AVR»