Страница 1 из 5
AVR и светодиодный индикатор
Добавлено: Вт мар 12, 2019 21:03:58
melandr
Добрый вечер, уважаемые форумчане! Не могли бы подсказать, в чем может быть проблема. Есть плата с ATmega8 и подключенный к ней светодиодный 4-х сегментный индикатор.
Схема ниже

Происходит паразитная засветка неактивных сегментов светодиодного индикатора.

Сначала грешил на плохо смытый флюс, либо замыкание где-то на плате. После промывки в ультразвуковой ванне, изменений не было. Отпаял разъем, к которому подключается шлейф платы семисегментного индикатора, снял с панельки микроконтроллер. Нигде замыканий между дорожками, которые идут на плату индикации не нашел. Обратно впаял разъем, тоже самое. При этом, если подключаю плату индикации к другой плате с микроконтроллером, вливаю ту же программу, все нормально паразитной засветки нет. Может кто подскажет, как можно продиагностировать, где происходит утечка. Индикация динамическая, поразрядная. Светятся сегменты, которые должны быть погасшими. Если нужно могу сбросить на сайт проект в AVRStudio на СИ. Просто не знаю, в какую сторону копать.
Re: AVR и светодиодный индикатор
Добавлено: Вт мар 12, 2019 21:25:12
АлександрЛ
Я бы попробовал добавить резисторы, примерно 10 кОм, между базами и эмиттерами транзисторов Q1~Q4..

Если, конечно, дело не в "ошибке программиста"..
Добавлено after 3 minutes 14 seconds:
[uquote="melandr",url="/forum/viewtopic.php?p=3589532#p3589532"]Есть плата с ATmega8 и подключенный к ней светодиодный 4-х сегментный индикатор.[/uquote]
Вы хоть выражевывайтесь правильно- ЭТО- "СЕМИ
СЕГМЕНТНЫЙ ЧЕТЫРЁХ
РАЗРЯДНЫЙ светодиодный индикатор!!!!!!
Re: AVR и светодиодный индикатор
Добавлено: Вт мар 12, 2019 21:40:52
BOB51
Некорректно выполнен функционал гашения индикации при смене позиций.

Re: AVR и светодиодный индикатор
Добавлено: Вт мар 12, 2019 21:52:14
melandr
[uquote="АлександрЛ",url="/forum/viewtopic.php?p=3589550#p3589550"]Вы хоть выражевывайтесь правильно- ЭТО- "СЕМИ
СЕГМЕНТНЫЙ ЧЕТЫРЁХ
РАЗРЯДНЫЙ светодиодный индикатор!!!!!![/uquote]
!:) сорь, по запарке неправильно написал.
Ваше решение пробовал делать, стало лучше. Но вот фрагмент схемы отладочной платы EVBavr04

По этой схеме и делал подключение светодиодного индикатора. И при подключении к этой плате все нормально
BOB51 писал(а):Некорректно выполнен функционал гашения индикации при смене позиций.

А в чем это заключается? Та же программа, запущенная на отладочной плате работает и на индикаторе который стоит на отладочной плате, и на индикаторе который сделан самостоятельно.
Re: AVR и светодиодный индикатор
Добавлено: Вт мар 12, 2019 22:01:52
ПростоНуб
Это нормально. На выходе ATMega высокий уровень гарантируется не меньше 4.2В. Напряжение насыщения БЭ у BC857 - 0.7В. Вот транзистор и остается приоткрытым даже при высоком уровне выходе МК.
Добавлено after 6 minutes 40 seconds:
[uquote="АлександрЛ",url="/forum/viewtopic.php?p=3589550#p3589550"]Я бы попробовал добавить резисторы, примерно 10 кОм, между базами и эмиттерами транзисторов Q1~Q4.[/uquote]
Радикально это проблему не решит, а только уменьшит в 2 раза. А вот если резисторы поставить между питанием и выходами МК, то должно помочь.
Re: AVR и светодиодный индикатор
Добавлено: Вт мар 12, 2019 22:05:41
BOB51
Ежли не доставало сноровки правильно со схемой разобраться на данный момент единственный "бескровный" выход - увеличить время гашения и включить подтягивающие резисторы позиционных выводов у меги.

В противном случае - кромсаем монтаж и немного схемку.

Re: AVR и светодиодный индикатор
Добавлено: Вт мар 12, 2019 22:24:47
melandr
Припаял резисторы между эмиттером и базой транзисторов., стало красиво.

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

Нет никаких дополнительных резисторов, для закрывания транзистора. ЧЯДНТ?
ЗЫ: Паразитной засветки нет вообще, после установки резисторов 10к между эмиттером и базой. Ткните носом, где можно почитать, чтобы опять на эти грабли не наступать. Во всех примерах которые смотрел, нет этих резисторов.
Re: AVR и светодиодный индикатор
Добавлено: Вт мар 12, 2019 22:28:03
Martin76
20я нога меги avcc подключена к +5 В? По схеме нет, а через нее порт С питается, в противном случае порт С питается через базовые переходы ключей и паразитные и защитные диоды порта, вызывая засветку.
Re: AVR и светодиодный индикатор
Добавлено: Вт мар 12, 2019 22:33:11
ПростоНуб
[uquote="melandr",url="/forum/viewtopic.php?p=3589616#p3589616"]Но хочется понять, почему при подключении к другой плате, индикация работает нормально.[/uquote]
Так я же писал выше! Напряжение высокого уровня гарантируется в интервале от 4.2 до 5В. При напряжении ниже 4.4В транзисторы могут приоткрываться. Если выше - не будут.
Re: AVR и светодиодный индикатор
Добавлено: Вт мар 12, 2019 22:59:49
java
[uquote="Martin76",url="/forum/viewtopic.php?p=3589621#p3589621"]20я нога меги avcc подключена к +5 В?[/uquote]
Я вот тоже об этом подумал, когда схему увидел - почему 20 нога идёт на кондёр а не на +5в! Может опечатка?
Re: AVR и светодиодный индикатор
Добавлено: Вт мар 12, 2019 23:18:19
melandr
Извините, видать не ту схему бросил

Вот действующая схема.
Если не трудно, можете посмотреть код. Сам код в принципе рабочий, интересует красивое написание, потому как кажется я сильно накрутил. Был бы рад дельным замечаниям по коду.
Пытался делать отдельными хидерами. Но кажется, что основной цикл написан как-то коряво
Добавлено after 11 minutes 23 seconds:
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3589624#p3589624"]Так я же писал выше! Напряжение высокого уровня гарантируется в интервале от 4.2 до 5В. При напряжении ниже 4.4В транзисторы могут приоткрываться. Если выше - не будут.[/uquote]
Да я понимаю, поставив резисторы между эмиттером и базой, мы подтянули выводы микроконтроллера к "+".
Как происходит свечение определенных сегментов индикатора. Мы подаем низкий уровень с вывода микроконтроллера, управляющего разрядом индикатора. Так как на разрядах стоят транзисторы, то на общий анод индикатора подается "+". Для свечения определенного сегмента мы должны на вывод микроконтроллера, управляющего сегментами подать низкий уровень и сегмент засветится. Соответственно, еслина выводе, управляющем сегментом будет высокий уровень, сегмент светится не должен. А он немного засвечивается, значит напряжение на выводе должно бытьменьше 5В Или все-таки проблема в транзисторах разрядов?
Но почему тогда, на другой плате с этими же компектующими все нормально. Есть подозрение, что между какими-то выводами микроконтроллера сопротивление меньше чем нужно, и поэтому происходит паразитная засветка. Кстати, как можно увеличить яркость свечения сегментов. Резисторами на 390 ом, которые идут на катоды индикатора.
Re: AVR и светодиодный индикатор
Добавлено: Вт мар 12, 2019 23:24:26
java
А зачем столько ног у атмеги отбирать? может так было бы интересней
https://www.radiokot.ru/forum/viewtopic.php?p=2422095
Re: AVR и светодиодный индикатор
Добавлено: Вт мар 12, 2019 23:34:14
АлександрЛ
[uquote="java",url="/forum/viewtopic.php?p=3589646#p3589646"]А зачем столько ног у атмеги отбирать? .... так было бы интересней[/uquote]
Ну, хорошо.. "сЫкономили"

вы десяток ног.. А ЧТО потом с ними делать то?
Re: AVR и светодиодный индикатор
Добавлено: Вт мар 12, 2019 23:56:23
melandr
[uquote="java",url="/forum/viewtopic.php?p=3589646#p3589646"]А зачем столько ног у атмеги отбирать? может так было бы интересней
https://www.radiokot.ru/forum/viewtopic.php?p=2422095[/uquote]
Согласен с Вами, сейчас так бы и делал, если бы не хватало выводов. Но в принципе ног хватало, потому сделал напрямую
Re: AVR и светодиодный индикатор
Добавлено: Ср мар 13, 2019 00:03:55
Аlex
melandr писал(а):Если не трудно, можете посмотреть код.
Мой WinRAR говорит, что архив битый

Вроде бы как он 7z умеет кушать, а тут ...

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

Re: AVR и светодиодный индикатор
Добавлено: Ср мар 13, 2019 08:26:32
java
[uquote="melandr",url="/forum/viewtopic.php?p=3589653#p3589653"]Но почему тогда, на другой плате с этими же компектующими все нормально.[/uquote]
чудес не бывает. это не высокочастотная станция, где плохо заэкранированный провод даст наводку и всё пропало! обычный сигнал.и разводка платы тут не причём. всё гораздо проще - есть контакт где его не должно быть, или нет контакта где он должен быть.нужно внимательно проверить всё.
И ещё из личного опыта. Не помню уже что собирал, реле давала слабый дребезг, на макетке нормально - в плате дребезг! оказалось что на питание атмеги у меня была длинная и очень тонкая дорожка. кинутая перемычка от кренки прям на ногу МК проводом решила проблему. Казалось бы причём тут питание атмеги и реле, которое питается от 12 вольт через транзисторный ключ.
Re: AVR и светодиодный индикатор
Добавлено: Ср мар 13, 2019 09:20:16
melandr
У меня тоже такая мысль возникла, поэтому отпаял разъем шлейфа и прозвонил все контакты, нигде не нашел уменьшения сопротивления. Потому и спросил, как можно отследить где плохой контакт. По симптомам создается впечатление, что присутствует подтягивание выводов микроконтроллера, управляющими сегментами к "-". Те которые должны светиться, светятся в полный накал. А остальные, на которых микроконтроллер установил высокий уровень, почему то по факту имеют напряжение не 5 В, а как писал товарищ выше по теме, например, 4,2 В. Просто думал написать простую тестовую программу, которая бы не в динамике, а статически зажигала индикаторы. Чтобы проверить, из-за какого вывода происходит утечка. Не могу понять, если происходит засветка выключенных сегментов, то это проблема на линии разрядов, или на линии сегментов? По фото видно, что если сегмент ни на одном из разрядов не включен, то засветки нет. А если сегмент на одном из разрядов включен, то на тех разрядах, на которых он выключен, происходит его засветка.
Re: AVR и светодиодный индикатор
Добавлено: Ср мар 13, 2019 09:49:32
Ivanoff-iv
разряды виноваты (раз сегмент размазывает...) если бы был виноват сегмент, он бы светился вообще всегда
Re: AVR и светодиодный индикатор
Добавлено: Ср мар 13, 2019 10:27:08
GoldenAndy
Выдайте на PC0-PC3 лог.1 (что бы закрылись все ключи)
Выдайте на PD0-PD7 все лог. 0 - типа засветить все сегменты. Но помним, что ключи у нас закрыты, т.е. светиться не должно ничего.
Если засветка сегментов будет - проблема в схеме.
Если засветки не будет - проблема в коде динамической индикации.
Если засветка программная, то такую засветку обычно убирают так:
1. погасить все сегменты
2. выключить разряд
3. включить следующий разряд
4. вывести новое значение на сегменты.
Все 4 действия делать последовательно.
Между пунктами 2 и 3 можно еще вставлять задержку в единицы-десятки микросекунд - для случая, если транзисторы в насыщении и долго закрываются...