Навигация
· Главная
· Архив новостей
· Лаборатория
· Личные сообщения
· Личный кабинет
· О нас
· Пользователи
· Справочник
· Статьи
· Форум
· Школа
· Энциклопедия

Irbislab.ru :: Просмотр темы - WH1602 "мусорит"
 FAQFAQ   ПоискПоиск   ГруппыГруппы   ПрофильПрофиль  Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

WH1602 "мусорит"
На страницу 1, 2  След.
 
Начать новую тему   Ответить на тему    Список форумов Irbislab.ru -> Техника цифровых сигналов
Предыдущая тема :: Следующая тема  
Автор Сообщение
One
Разведчик
Разведчик


Зарегистрирован: Oct 10, 2007
Сообщения: 259
Откуда: Ukraine, Kyiv

СообщениеДобавлено: Пт Июл 30, 2010 12:11:29    Заголовок сообщения: WH1602 "мусорит" Ответить с цитатой

Использую LCD WH1602 совместно с ATtiny2313, при 5-ти Вольт-ах питания отображаемая информация нормальная. При снижении питания до 3,13 В (2 новые батарейки типа ААА) иногда при переключениях между менюшками появляются произвольные знаки в конце выводимых строк. Предварительно для перехода между менюшками используется комманда очистки экрана (clear - 0x01). Если урезать комманду очистки то экран не "мусорит" но изображение накладывается друг на друга, что не есть приемлемо. "Мусор" не исчезает при увеличении временных интервалов импульсов управляющих дисплеем, так же не исчезает при расстановке блокировочных керамических конденсаторов вокруг микроконтроллера и самого дисплея. Длина проводов до дисплея около 10 см. (В ранних проектах использовал провода достигающие 1 метра при питании 5 В). Ещё одной особенностью данного дисплея при низких напряжениях питания, является необходимость использования дополнительного отрицательного напряжения питания подаваемого на вход управления контрастностью Vo. Отрицательное напряжение получается выдачей меандра 4042 Гц на один из выводов, далее преобразованием диодным (шоттки) умножителем. Согласно даташитам управляющий контроллер дисплея сохраняет работоспособность при снижении напряжения питания до 3 В, в моём случае дисплей работает и при 2,12 В (значит запас есть).

Также на одной из линий порта, на котором "висит" дисплей находиться "пьезо-буззер" (типа ЗП) с собственной ёмкостью 0,15 мкФ. При каждом нажатии на клавиши "буззер" пикает в течении 33-х мс на своей резонансной частоте. Изначально решил что из-за значительной ёмкостной нагрузки возникают сильные наводки на внутренние цепи МК или дисплея. Установил 330 Ом балластный резистор, но ситуация не изменилась. Программно временно отключил буззер, ситуация снова не изменилась.

В чём фокус? Симуляторы "мусор" не показывают. (И вообще симуляторам не очень доверяю.)

_________________
Тротила для дураков не бывает® One
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Irbis
Администратор
Администратор


Зарегистрирован: Oct 02, 2007
Сообщения: 1369
Откуда: _,,,_^._.^_,,,_

СообщениеДобавлено: Вс Авг 01, 2010 09:33:57    Заголовок сообщения: Ответить с цитатой

А если все же увеличить напряжение питание до 3 вольт?
_________________
Если не принимать меры, то энтропия в голове будет расти и расти....
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
One
Разведчик
Разведчик


Зарегистрирован: Oct 10, 2007
Сообщения: 259
Откуда: Ukraine, Kyiv

СообщениеДобавлено: Вс Авг 01, 2010 22:24:25    Заголовок сообщения: WH1602 "мусорит" Ответить с цитатой

One писал(а):
При снижении питания до 3,13 В (2 новые батарейки типа ААА) иногда при переключениях между менюшками появляются произвольные знаки в конце выводимых строк.

Питание даже чуть больше чем 3 В.

Вообщем разобрался в чём дело. Дело было так:
Уже однажды прокалывался c функцией (подпрограммой) ожидания занятости дисплея - циклического считывание бита BUSY и ожидания пока дисплей "раздуплится". Поэтому сразу эту процедуру урезал и вместо неё вставил задержку на 3 мс. Мусор исчез сразу, при 2,56 В (2 металл-гидритных аккумулятора) дисплей и микроконтроллер работающий на 4 МГц отлично себя чувствуют. Поэту в очередной раз полез в даташит смотреть тайминги злостного ожидания. Обнаружил интервалы между переводом дисплея в состояние считывания и тактированием для получения бита состояния (на диаграмме выделил красным цветом). После того как вставил 2 задержки по 10 мкс, сразу всё заработало. Правда всё равно не вставлял задержку указанную на диаграмме желтым цветом Smile

_________________
Тротила для дураков не бывает® One
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Антон
Разведчик
Разведчик


Зарегистрирован: Jun 19, 2009
Сообщения: 150

СообщениеДобавлено: Вс Авг 01, 2010 23:04:13    Заголовок сообщения: Ответить с цитатой

У меня были подобные грабли, только не с дисплеем, а с микрой AD7142, там стандартная шина SPI, тайминги поленился лезть смотреть, просто увидел строчку в ДШ, что максимальная частота SPI 5МГц. Вломил со спокойной душой 4 МГц, и месяц ломал мозги, почему девайс жестоко глючит. Все исходники перебрал по букве. Проверил монтаж, согласование уровней, напряжения... .Ну все, а глючит зараза... Делать было нечего, полез в тайминги... а судя по ним, макс. частота шины 2,5МГц, а не 5, как было написано на предыдущем листе в ДШ. Внимательно надо читать мануалы. В них сила Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
One
Разведчик
Разведчик


Зарегистрирован: Oct 10, 2007
Сообщения: 259
Откуда: Ukraine, Kyiv

СообщениеДобавлено: Пн Авг 02, 2010 14:11:00    Заголовок сообщения: Ответить с цитатой

Так дисплейчик (мать-его-так) при пятёрке Вольт работает изумительно! А при снижении вольтажа... Всё! теперь если буду писать библиотечки буду железку тестировать в "крайних" режимах. Confused
_________________
Тротила для дураков не бывает® One
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
ИРБИС
Администратор
Администратор


Зарегистрирован: Oct 02, 2007
Сообщения: 2117
Откуда: Cтрана скал и снегов...

СообщениеДобавлено: Пн Авг 02, 2010 15:21:11    Заголовок сообщения: Ответить с цитатой

One, не советую использовать крайние режимы. Технологический запас, конечно, есть, но он может варьироваться от партии к партии. И ещё вопрос: у тя только от питания глюки? Логических уровней хватает?

Тогда мой совет: не мучайся, а поставь DC/DC c диапазоном входного напряжения, как ты предполагаешь и с выходом +5 В. Мы такие в интегральном исполнении уже упоминали в теме: "Ищу преобразователь напряжения"

С преобразованием логических уровней это наверное, Антон подскажет - он кое-что уже испытал в железе. Smile

_________________
А ещё называют его “кар кечкен ильбирс”, что означает — “по грудь идущий в снегу”…
© Чингиз Айтматов "Когда падают горы (Вечная невеста)"
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
One
Разведчик
Разведчик


Зарегистрирован: Oct 10, 2007
Сообщения: 259
Откуда: Ukraine, Kyiv

СообщениеДобавлено: Пн Авг 02, 2010 18:01:04    Заголовок сообщения: Ответить с цитатой

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

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

Глюки, как оказалось, были с таймингами. Тайминги сильно растягивать не хочется в виду того что микроконтроллеру придётся больше бодрствовать нежели спать, а значит экономить он будет меньше. С уровнями всё в порядке. Согласовывать уровни я умею Smile

_________________
Тротила для дураков не бывает® One
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Антон
Разведчик
Разведчик


Зарегистрирован: Jun 19, 2009
Сообщения: 150

СообщениеДобавлено: Пн Авг 02, 2010 22:01:48    Заголовок сообщения: Ответить с цитатой

"Технологические" паузы лучше формировать таймерами, используя механизм прерывания.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
One
Разведчик
Разведчик


Зарегистрирован: Oct 10, 2007
Сообщения: 259
Откуда: Ukraine, Kyiv

СообщениеДобавлено: Вт Авг 03, 2010 14:46:21    Заголовок сообщения: Ответить с цитатой

Если паузы в еденицы мкс формировать таймером, то это очень не рационально. Микроконтроллер будет относительно большую часть времени терять на подготовку таймерной задержки. Дело в том что задержки в еденицы мкс соизмеримы с тактами микроконтроллера. А значит точность такой задержки будет весьма сомнительной. Если задержка требуется в несколько миллисекунд или несколько секунд то тут и так понятно, что лучше "взвести" таймер, а ядро пусть дальше занимается рутинной работой, после того как таймер "щёлкнет" предустановленным битиком то можно выполнить отсроченное действие.
_________________
Тротила для дураков не бывает® One
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Антон
Разведчик
Разведчик


Зарегистрирован: Jun 19, 2009
Сообщения: 150

СообщениеДобавлено: Пт Авг 06, 2010 16:39:41    Заголовок сообщения: Ответить с цитатой

Например, когда идет вывод на приличных размеров графические дисплеи с параллельным интерфейсом, когда пауз много , то тут каждый такт на счету. Паузы по 8-10 микросекунд предпочитаю формировать все же таймером, ибо при частоте 16-20 МГц, это 160-200 тактов. Пускай, половина тактов уйдет на взвод/остановку таймера, обработку прерывания, даже если на каждый баит, отправленный на дисплей, выигрывать 50-100 тактов, то параллельно с выводом каждого кадра, мк еще много чего сможет обработать. ИМХО, в подобных задачах, формирование даже таких мелких пауз выгодно. Rolling Eyes
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
One
Разведчик
Разведчик


Зарегистрирован: Oct 10, 2007
Сообщения: 259
Откуда: Ukraine, Kyiv

СообщениеДобавлено: Пт Авг 06, 2010 17:14:12    Заголовок сообщения: Ответить с цитатой

Антон, я как-то раз вообще оригинально решил вопрос задержек (на мой взгляд конечно), когда необходима была задержка в еденицы микросекунд, врубал на полную катушку прескаллер такта контроллера (clk/256), выставлял на линии порта 1, выставлял на линии порта 0, вырубал прескаллер. Таким образом даже 50 нс микроконтроллера превращались в 50 * 256 = 12800 нс, тоесть 12,8 мкс, а с учётом того что инструкции микроконтроллера sbi и cbi (PORT.x=1 и PORT.x=0) выполняются за 2 такта то это получается уже 25,6 мкс, при этом микроконтроллер меньше потреблял от источника и минимум исполняемого кода.

А вообще предельные частоты контроллера которые Вы привели очень редко использую, в основном когда требуется большая вычислительная скорость. Точнее использовал только раз, в генераторе сигналов (DDS) 20 MHz, при этом получил ~2,1 Мегавыборок в секунду. Программу пришлось писать и вылизывать на ассемблере, Си-шный код сдох на 250 кГц обработчика прерывания таймера который и делал выборки.

_________________
Тротила для дураков не бывает® One
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Антон
Разведчик
Разведчик


Зарегистрирован: Jun 19, 2009
Сообщения: 150

СообщениеДобавлено: Пн Авг 09, 2010 17:07:37    Заголовок сообщения: Ответить с цитатой

Надо бы почитать книжку по ассемблеру, вставочки в сишный код буду делать, если понадобится Rolling Eyes
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
One
Разведчик
Разведчик


Зарегистрирован: Oct 10, 2007
Сообщения: 259
Откуда: Ukraine, Kyiv

СообщениеДобавлено: Пн Авг 09, 2010 17:27:55    Заголовок сообщения: Ответить с цитатой

Книжку мало читать, практика нужна.

Пы-Сы. Я на 2-х языках свободно программирую. Хотя начинал с Сей. Cool

_________________
Тротила для дураков не бывает® One
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Антон
Разведчик
Разведчик


Зарегистрирован: Jun 19, 2009
Сообщения: 150

СообщениеДобавлено: Пн Авг 09, 2010 18:02:02    Заголовок сообщения: Ответить с цитатой

Ну я пока что на своем уровне поступаю тупо: не хватает скорости - ставлю кварц побыстрее и даю команду компилятору - оптимизация скорости исполнения кода
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
One
Разведчик
Разведчик


Зарегистрирован: Oct 10, 2007
Сообщения: 259
Откуда: Ukraine, Kyiv

СообщениеДобавлено: Пн Авг 09, 2010 22:22:03    Заголовок сообщения: Ответить с цитатой

Когда пишу на Сях и программа начинает тормозить (допустим слишком часто вызывается прерывание) то тут два пути ставить быстрее кварц и отключать оптимизацию по компактности кода. В асме вариантов очень много, компромиссов между объёмом и скорость тоже много. Причем определённые куски кода можно написать с учётом скорости, другие же (которые особо не влияют не результат) можно расписать покомпактнее. Я уже не говорю о фокусах которые не возможно сделать на сях и о существовании которых просто не догадываешься пока не залезешь в дебри внутренностей МК. То что на асме всё пишется дольше конечно правда, особенно долго когда только начинаешь, позже появляются куча наработок в виде макросов и инклудов, например работы с графическим ЖКИ. Хотя это одинаково как для высоких языков так и для низкоуровневых. Просто Си компиляторы развивают активнее, тут и кодогенераторы и куча легко подключаемых быблиотек о содержимом которых просто не приходится задумываться. Сейчас никак не могу стартонуть с AVR32, чё-то не даются они мне (программатор, отладочная плата, деньги на это всё...), так что пока теория.
_________________
Тротила для дураков не бывает® One
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Irbislab.ru -> Техника цифровых сигналов Часовой пояс: GMT + 3
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001-2003 phpBB Group




Web-ring: электроника, электронные компоненты и приборы
rand prev next

ChipFind: поисковая система по поставщикам радиокомпонентов Rambler\'s Top100 Рейтинг@Mail.ru


Сайт оптимизирован для отображения в браузере Mozilla Firefox версии 2 и выше с разрешением 1024*768 точек и выше.

При неполадках с отображением кнопок, обновите проигрыватель Macromedia Flash.

PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.

Открытие страницы: 0.10 секунды
The Russian localization - project Rus-PhpNuke.com