8(495) 662-59-14

Главная / Форум
  • РУС / ENG
(495) 662-59-14 Многоканальный телефон Не дозвонились?
Форумы >>ЖК индикаторы >>RE: MT-20S4S постоянно сбивается.
RE: MT-20S4S постоянно сбивается.

olegsage
Пользователи

Сообщений: 7
Регистрация: 18.09.2018

При работе с данным дисплеем по SPI интерфейсу дисплей постоянно сбивается при малейшей помехе. Сигнальные линии подтянуты со стороны контроллера и запаянны конденсаторы со стороны дисплея. в качестве шлейфа используется витая пара длинной около 50 см. Скорость интерфейса SPI 50кГц. Периодически во время работы производится программная инициализация. Но дисплей все равно сбивается и приходится перезагружать устройство целиком.


А теперь ещё и зеркалами начал

Имя Для добавления сообщений Вы должны зарегистрироваться или авторизоваться Цитировать Получить ссылку на сообщение

Петухов_Дмитрий
Пользователи

Сообщений: 1307
Регистрация: 25.11.2009

Витая пара ничем не поможет, тут сигналы не дифференциальные. Небольшой эффект даст разве что использование витых пар для каждого сигнала с объединением всех земель с обоих концов.
Попробуйте на время неактивности обмена с индикатором выставлять все сигналы жестко на ноль, кроме CS конечно, а его подтянуть сильнее на питание. Или использовать push-pull выход на этом выводе, чтобы подтяжка CS к питанию обеспечивалась не резистором, а открытым транзистором выходного ключа. Собственно SPI и не предполагает увод выводов в Z или открытый сток.
Установите подтяжку CS к питанию со стороны индикатора. Можно и остальные сигналы тоже.
Ну и разумеется кондёр керамику 1-100нФ по питанию поближе к индикатору, лучше даже в пару с электролитом/танталом мкф от 10.
Посчитайте постоянную времени RC для выводов с кондёрами, вдруг и 50кГц слишком высокая частота. А лучше - проверьте осциллографом вид сигналов непосредственно на выводах индикатора. Как в момент обращения, так и в паузах.
Больше пока по предоставленной Вами информации предложений нет.

Поясню: сбивание индикатора в паузах - 99% помехи на выводы с подтяжкой, а вот зеркалирование - вероятнее помехи в процессе обмена, т.е. коды команд при передаче искажаются, а значит номиналы RC и частота SPI плохо согласованы.
Ну или номинал R слишком велик и не перетягивает помеху, а номинал С слишком мал для её поглощения.

Имя Для добавления сообщений Вы должны зарегистрироваться или авторизоваться Цитировать Получить ссылку на сообщение

olegsage
Пользователи

Сообщений: 7
Регистрация: 18.09.2018

Тут больше похоже что сбивается сам ST7070, т.к. когда он начинает зеркалить он не возвращается в нормальное состояние, хотя переинициализация есть. Ошибки/искажения при обмене тоже вряд ли, т.к. не существует управляющих команд отправить дисплей в зазеркалье.

Имя Для добавления сообщений Вы должны зарегистрироваться или авторизоваться Цитировать Получить ссылку на сообщение

Петухов_Дмитрий
Пользователи

Сообщений: 1307
Регистрация: 25.11.2009

Команда зеркаливания как раз существует (можно посмотреть в ST7070.pdf): COM,SEG direction select, 0x40/0x43 при EXT=1, это лишь мы не стали её документировать в нашем pdf на индикатор. Команда 0x40@EXT=1 сбросит зеркалирование, в том числе если включить её в инициализацию.

Кристалл контроллера сам по себе сбиваться вообще не может, это в миллионы раз менее вероятно внешнего сбоя. Т.е. один-два раза в год может и произойдёт, но не чаще. Просто потому что есть лишь несколько адекватных причин сбоя именно кристалла микросхемы: попадание точно в кристалл (и не абы куда в нём) частицы космических лучей или другого источника радиации; помеха по питанию (от неё кондёры и нужны); незамеченный технологический брак производства кристалла (наверное один на миллионы кристаллов); мощная электромагнитная волна например от близкой молнии или СВЧ печки (но она намного раньше собьёт и сожжёт всё вокруг чем кристалл); других не вспоминается. Как видно, все причины или собьют и всё вокруг, или очень-очень редки.

Имя Для добавления сообщений Вы должны зарегистрироваться или авторизоваться Цитировать Получить ссылку на сообщение

olegsage
Пользователи

Сообщений: 7
Регистрация: 18.09.2018

т.е. достаточно включить в переинициализацию последовательность команд:

LCD_Send_CommandSPI(0x3c);
LCD_Send_CommandSPI(0x40);
LCD_Send_CommandSPI(0x38);
LCD_Send_CommandSPI(0x0e);
LCD_Send_CommandSPI(0x06);

Имя Для добавления сообщений Вы должны зарегистрироваться или авторизоваться Цитировать Получить ссылку на сообщение

Петухов_Дмитрий
Пользователи

Сообщений: 1307
Регистрация: 25.11.2009

Да.
Ещё неплохо бы добавить команду 0x02 для обнуления сдвига всего дисплея (если он не используется) и либо команду 0x80..0xFF для выбора DDRAM, либо не забывать выдавать её же (с любым правильным адресом) перед началом передачи данных. 0х80 на отображение не влияет, только на последующие записи/чтения данных, но вдруг триггер выбора CGRAM/DDRAM глюкнул ...

Имя Для добавления сообщений Вы должны зарегистрироваться или авторизоваться Цитировать Получить ссылку на сообщение

olegsage
Пользователи

Сообщений: 7
Регистрация: 18.09.2018

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

Имя Для добавления сообщений Вы должны зарегистрироваться или авторизоваться Цитировать Получить ссылку на сообщение

Петухов_Дмитрий
Пользователи

Сообщений: 1307
Регистрация: 25.11.2009

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

Имя Для добавления сообщений Вы должны зарегистрироваться или авторизоваться Цитировать Получить ссылку на сообщение

olegsage
Пользователи

Сообщений: 7
Регистрация: 18.09.2018

причина известна, большие помехи по питанию и земле, плюс рядом находящиеся тиристоры и т.д.

Имя Для добавления сообщений Вы должны зарегистрироваться или авторизоваться Цитировать Получить ссылку на сообщение

Петухов_Дмитрий
Пользователи

Сообщений: 1307
Регистрация: 25.11.2009

Тогда рекомендую смотреть стандартные методы защиты от импульсных помех. Не так уж это сложно и затратно. Начиная с фильтров по питанию (не просто керамику+электролит, а и индуктивность добавить). Можно даже перейти на диф.пары установкой приёмопередатчиков с обоих концов шлейфа ... Думаю хватит нормального фильтра по питанию (в том числе и в земле) и переноса подтяжек на сторону индикатора.
А, ещё полезно будет запитать индикатор не откуда-то со стороны, а прямо по этому же шлейфу от земли контроллера - вот тут витая пара полезна и просится. Т.е. не создавать петель (даже в земле), а использовать звездообразное распределение питания. Это тоже стандартный метод защиты от наводок.

Имя Для добавления сообщений Вы должны зарегистрироваться или авторизоваться Цитировать Получить ссылку на сообщение

ISD
Пользователи

Сообщений: 2
Регистрация: 01.02.2016

Столкнулся с аналогичной проблемой (дисплей MT-16s2s). В другом проекте этот дисплей работал без замечаний, Конфигурация подключения дисплея в обоих проектах идентичная. Помехи оказались не при чём. При выводе длинного сообщения из PROM, в которое закрался лишний пробел, и который "вытеснил" последний символ за границу сообщения в область команд, этот символ "сработал" как команда COM_SEG (Datasheet на ST7070 V1.4 2009/04/29 страница 22/51 ). Поэтому стоит упомянуть в описании дисплея данную особенность контроллера. Возможно эта информация кому-либо поможет сэкономить драгоценные время и нервы. В любом случае спасибо, тема помогла разобраться с проблемой.

Имя Для добавления сообщений Вы должны зарегистрироваться или авторизоваться Цитировать Получить ссылку на сообщение

Петухов_Дмитрий
Пользователи

Сообщений: 1307
Регистрация: 25.11.2009

Кажется это возможно только в режиме 3-х проводного SPI подключения, во всех прочих команды отделены от данных сигналом A0.

Добавлять это в документацию на индикатор не вижу смысла: глюков в управляющей программе может быть много разнообразных, к индикатору это отношения не имеет. Тогда кто-нибудь придумает инвертировать сигнал A0 и будет долго ругаться почему в pdf не запрещено это делать. Давайте не будем превращаться в американцев с идиотскими запретами. Добавлять в документацию предупреждение точнее рассчитывать длину текстовой строки тоже считаю излишним, это слишком очевидно. Но как одну из возможных ошибок, приводящих к странным эффектам, запомню. И может куда и добавим на сайте, типа в раздел "Типичные ошибки при работе с индикаторами", если таковой найдём или будет создан.

Имя Для добавления сообщений Вы должны зарегистрироваться или авторизоваться Цитировать Получить ссылку на сообщение

ISD
Пользователи

Сообщений: 2
Регистрация: 01.02.2016

Совершенно с Вами согласен! Глюков бывает множество и каждый не предусмотришь. По поводу описания дисплея я не точно сформулировал мысль. Я имел в виду упомянуть штатную возможность дисплея выдавать символы зеркально и вверх ногами, не более того. Именно это мне помогло в определении глюка. И действительно, у меня применён 3-х проводной интерфейс, и у коллеги, задавшего вопрос, также SPI интерфейс, и судя по всему вывод A0 не задействован. И опять спасибо, форум очень полезный, проблема решена.

Имя Для добавления сообщений Вы должны зарегистрироваться или авторизоваться Цитировать Получить ссылку на сообщение
Сейчас на форуме (гостей: 17, пользователей: 0 , из них : 0 )