Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/70: Рейтинг темы: голосов - 70, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
1

Глюки с дисплеем на max7219 - как победить?

18.08.2013, 12:17. Просмотров 12666. Ответов 15
Метки нет (Все метки)

сделал девайс (контроллер вытоматического управления светом и вентилятором вытяжки на кухне) где в качестве дополнения есть часы и 4 цифры семисегментного индикатора
индикация железно сделана на max7219
все работает на ура вроде, но иногда после многих часов работы обнаруживаю на дисплее все сегменты зажженые и ничего более не отображается кроме всех горящих сегментов, при этом сам МК продолжает выполнять программу - это ясно по управлению релюшками и нагрузкой

В чем может быть причина?

Я пока додумался только до одной идеи - в программе настроен сторожевой таймер и возможно (моя гипотеза) после рестарта МК происходит рассинхронизация очередности передачи байт 16-битного слова при записи в max7219. Так это или нет не знаю.

Прочитал даташит на max7219 от корки до корки и не нашел способа гарантировано перезапустить его если мы не знаем текущий статус записи в его 16-битный регистр (прошла ли полная запись или только половины слова). Соотвественно в моем случае индикация исправляется только сбросом питания.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.08.2013, 12:17
Ответы с готовыми решениями:

Как победить IE 11?
Камрады, помогите, пожалуйста, победить IE 11. Говорю сразу - ламер, без специального образования,...

Как работать с дисплеем Winstar OLED WEG010032B?
Есть такой графический дисплей Winstor WEG010032B. Аннотация к дисплею и даташит на контроллер...

Глюки, опять глюки, и Яша иже с ними.
То ли я не тем пользуюсь, тол Яша со мной повоевать вздумал.... В общем несколько сайтов у Мну -...

Холодильник Gorenje RK67365SB, как подружить плату с дисплеем
Тема уже про него была просто вопросы были другие а как оживить не понял. Сгорел проц на плате...

15
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,044
19.08.2013, 10:44 2
Это означает, что память MAX ловит помехи. С ЖКИ та же ситуация. Выход - сделать что-то вроде видеобуфера, обновлять посимвольно, скажем раз в 1 мс. От помех не избавит. Но от кракозябров точно.
0
MCSD: APP BUILDER
8786 / 1064 / 104
Регистрация: 17.06.2006
Сообщений: 12,604
19.08.2013, 12:46 3
странно, конечно. не должно быть никакой рассинхронизации - по сигналу cs происходит запись в выходной регистр защёлку из регистра сдвига и всё. неважно дозаписались туда данные или нет.
попробуйте устанавливать все регистры 7219 при старте мк. возможно вы какие-то оставляете по умолчанию и они "портятся" при помехе, а мк потом их не восстанавливает.

судя по симптомам, возможно портится регистр dysplay-test - он может включить все светодиоды сразу .

Для проверки своей версиии попробуйте посбрасывать мк ресетом и посмотрите, будет ли это влиять на индикацию
0
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
19.08.2013, 16:59 4
спасибо за отклик!

какого рода помехи могут быть? я поставил около max7219 как написано в даташите один керамический конденсатор, второй на большую емкость электролитический. МК отделен от MAX7219 по питания через LC фильтр
0
MCSD: APP BUILDER
8786 / 1064 / 104
Регистрация: 17.06.2006
Сообщений: 12,604
19.08.2013, 21:06 5
Да вот всякие. И как с эти бороться - иногда фиг знает. Фильтры да экранировка - других способов нет.

но вам проверить ещё надо, может действительно сброс происходит где. при этом происходит неполная запись в регистр сдвига и попадает потом в тест-регистр.
в любом случае надо выяснить и потом, тоже в любом случае, - дописать в прогу установку тест регистра на на сбросе и в случае аварии, если у вас этого нет - вы так и не ответили ничего по этому поводу
0
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
19.08.2013, 22:46 6
я не сразу понял что вы меня спрашиваете, а сейчас кажется понимаю
при старте МК у меня прописываются значения всех управляющих регистров max7219 кроме dysplay test
может дело как раз в этом?
спасибо, вставил запись, посмотрим исчезнет ли проблема или нет
0
MCSD: APP BUILDER
8786 / 1064 / 104
Регистрация: 17.06.2006
Сообщений: 12,604
20.08.2013, 00:59 7
>>может дело как раз в этом?

ну так я сразу на это и намекнул:
судя по симптомам, возможно портится регистр dysplay-test - он может включить все светодиоды сразу .

вопрос только - почему портится. проверяйте, потом отпишитесь
0
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
20.08.2013, 01:59 8
Может таки подтянуть /СS к +5В через резюк 4.7ком
0
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
20.08.2013, 22:04 9
не помогло, видимо регистр портится без перезапуска МК
попробую сбрасывать тестовый регистр в основном цикле, хуже не будет

добавлено
помехи явно от питания. установил схему на место с подключением нагрузки (релейное управление 220в - двумя светодиодными светильниками и тремя режимами вентилятора вытяжки) - с 1-2 включения или выключения нагрузки индикатор теряет управление, загораются все сегменты

что такого предусмотреть по питанию, чтобы избавиться? схема вся питается от AC-DC преобразователя на LNK306 (бес трансформаторный БП на 600кГц). max7219 питается напрямую от БП, а МК через LC фильтр. МК не виснет от помех, а max7219 сбивается
LC фильтр предназначен для того, чтобы фиьльтровать помехи от самой max7219 - так рекомендовано в даташите.
А как избавить от помех в нагрузке саму max7219? LC фильтры и так предусмотрены в схеме LNK306 - один в высоковольтной части, второй в низковольтной.
0
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
22.08.2013, 19:59 10
поставил еще один LC на питании самой max7219 и припаял 0.1мкф который рекомендован даташитом, но я его упустил
помех стало меньше, но все равно иногда при включении или выключении нагрузки, особенно обмоток вентилятора, сегменты приобретают хаос

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

осталось загадкой как избавиться от помех кардинально. Это не единственное устройство SPI, но помехи почему-то влияют именно на max7219
0
MCSD: APP BUILDER
8786 / 1064 / 104
Регистрация: 17.06.2006
Сообщений: 12,604
23.08.2013, 14:03 11
А экранировать никак нельзя?
хотя б для проверки, чтоб выяснить, каким путём помеха приходит
0
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,044
23.08.2013, 14:09 12
Тогда уж схему нужно увидеть и разводку.
0
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
23.08.2013, 19:24 13
А экранировать никак нельзя?
хотя б для проверки, чтоб выяснить, каким путём помеха приходит
все собрано в пластиковый корпус который плотно ставится в корпус вытяжки сделанный из толстой нержавейки - чем не экран
помехи скорее всего приходят по цепи питания

все сделано на трех платах, схемы двух привожу, на третьей только семисегментный индикатор и 4-ре rgb светодиода
плата с МК


плата с блоком питания на 5в + реле
0
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,044
23.08.2013, 20:28 14
Попробуйте погонять схему следующим образом. Подключить МК, MAX со светодиодами к стороннему блоку питания. Силовую часть отключить. Потом постепенно, подключить родной блок питания, силовую часть.
0
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
23.08.2013, 21:55 15
уже делаю финальную инсталяцию
но во время отладки все стояло на макетке и питалось от лабораторного блока питания и тестировалось без силовой части
сбои индикации возникали уже тогда
тогда я предположил, что глючит как раз МК из-за помех от ШИМа max - как об этом написано в даташите
поэтому на готовой плате возник LC фильтр для питания МК

на тот же SPI подключен nrf24l01+, с ним вроде проблем нет, хотя точно знать это не могу

кстати выглядит плата с МК и индикатором так
<Изображение удалено>
а так выглядит устройство в сборе (справа)
https://www.cyberforum.ru/savedimages/2013/08/23/tmjgwzzcqxvmcqn1ewnfrv.jpg
0
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
01.09.2013, 21:18 16
опубликовали мою статью, попытался подробно описать что получилось
http://rodyokot.ru/konkurs/29/
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.09.2013, 21:18

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как узнать количество одновременных касаний, поддерживаемое дисплеем?
Здравствуйте! Необходимо узнать количество одновременных нажатий, поддерживаемых экраном (на...

Как победить окирпичивание?
Всем привет! Суть проблемы: - телефон JIAYU G2 1GB RAM. Служил мне верой и правдой &gt; 2-х лет, и...

Как победить крокозябру?
Windows XP SP3 - при установке некоторых программ, например Nokia PC Suite или FL Studio сама...

Как победить speed2.ru
Народ! Убедительно прошу помочь с вирусом speed2.ru. Поражен Эксплорер. Что делать?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.