Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Atmega64 и LCD
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
AndyBig
Приветствую всех!

Ситуация:
Имею Мегу64, работающую на кварце 14 мГц и ЖКИ 240х128 с контроллером t6963.
Инициализирую ЖКИ, очищаю всю его память, вывожу текст - все нормально. Но при попытках залить или очистить небольшой прямоугольник (24х24) в графической области памяти очень часто наблюдаются артефакты - то одна строка в прямоугольнике не зальется (или не очистится), то часть строки, то пара строк...
Заливку и очистку произвожу так: по координатам x и y вычисляю смещение в памяти первой строки прямоугольника, устанавливаю в ЖКИ указатель памяти на этот адрес и пишу данные с автоинкрементом указателя до конца строки, потом вычисляю адрес следующей строки, устанавливаю на него указатель и т.д.

Кто-нибудь сталкивался с таким?
Кстати, очищаю весь экран я таким же способом - все нормально, экран корректно очищается и в текстовой и в графической областях.
yung
Решение "в лоб" - читать область после записи строки и делать верификацию. При необходимости повторить запись.
AndyBig
Да, я об этом думал, но это большая потеря времени... Разобраться бы в причинах такого поведения. Вообще, похоже, что неверно отрабатывается установка указателя адреса памяти в LCD, но вот из-за чего?... Пробовал ставить задержки, так что время сигналов, подаваемых на LCD превысило раз в 5 минимально рекомендуемые, не помогло.
indela
а с электрической частью (фронтами) там все нормально?
см. файл может поможет..
-Tумблер-
Цитата(AndyBig @ Jun 16 2005, 23:32)
.. очень часто наблюдаются артефакты...
*


Скорее всего все-таки слишком быстро работает процессор.
Я бы изучил осциллограммы работы с дисплеем.
и поставил задержки побольше - не в 5, а в 10 раз.
Хотя конечно, возможна хитрая программная ошибка.

Можно попробовать сменить алгоритм - рисовать по точкам.
smile.gif
AndyBig
Поигрался я с задержками - артефакты пропадают при удержании данных на шине контроллера в течении ~1000 циклов, то есть больше 60 usec. Эт слишком много sad.gif.
Может быть неверно само подключение ЖКИ? Я подключил его напрямую на выводы контроллера, без подтягивающих или ограничительных резюков...
AndyBig
Был бы осциллограф... sad.gif
а рисовать по точкам - это, конечно, интересно, и мне придется к этому придти (рисовать битмапы по произвольным координатам по другому не получится ), но хотелось бы ликвидировать глюк сейчас, когда алгоритм рисования предельно прост, что бы не ковырять его в дальнейшем smile.gif
AndyBig
Товарищи, ну неужели никто не подключал графические контроллера к AVR-контроллерам? Может быть кто поделится точно работающей схемой подключения?
-Tумблер-
Цитата(AndyBig @ Jun 20 2005, 16:24)
Я подключил его напрямую на выводы контроллера, без подтягивающих или ограничительных резюков...


Пардон - был занят, не читал конфу 4 дня.
Конечно. я ставлю подтяжки - 4K7. На все выводы.
Кроме подсветки. biggrin.gif
Плоский кабель очень короткий.
Производство серийное.
Если не жалко и процессор позволяет - можно поставить и 1K0.
Но все-таки тут нужно искать компромисс.
Удачи ! Попробуй - а вдруг получится.
smile.gif
AndyBig
Спасибо за совет!
Я пробовал подтяжки 10К, они немного помогают, но не ликвидируют проблему до конца.
Попытаюсь поставить поменьше, 3-5К.
И еще: именно подтяжку к питанию? Не pull-down на землю?
-Tумблер-
Цитата(AndyBig @ Jun 24 2005, 13:34)
И еще: именно подтяжку к питанию? Не pull-down на землю?
*


Теоретически это все равно - по переменному току
+5 и GND эквипотенциальны.
Но традиционно на землю ключи сильнее.
Поэтому используется как правило подтяжка к +5.
Однако, в тех случаях, когда до старта программы
после вкл. питания необходим конкретный уровень, то
к нему и следует "привязывать".

В моем конкретном случае я все нагрузил к +5.

Да, чуть не забыл:
Процессор ,я полагаю,наверняка "сильнее", чем дисплей.
Значит минимум резистора шины данных определяется дисплеем.
(если нужно читать дисплей).
У меня в девайсе слабенький процессор - AT89C55-24 мгц.
Короткая команда - 0.5 mks, поэтому никаких дополнительных
задержек нет (если мне не изменяет память).

Для наладки нужен осциллограф - иначе нельзя оценить
качество сигналов и верность осциллограмм "базовых" процедур
ввода-вывода.

Иногда "все правильно", но плохо работает из-за отсутствия
некоторой задержки при переходе от режима чтения к режиму
записи и наоборот. <_<
AndyBig
Цитата
минимум резистора шины данных определяется дисплеем.
(если нужно читать дисплей).

Читать, конечно, будет нужно, но уж пару миллиампер дисплей, думаю, выдержит smile.gif. Но по спецификации, конечно, уточню.

Цитата
У меня в девайсе слабенький процессор - AT89C55-24 мгц.
Короткая команда - 0.5 mks, поэтому никаких дополнительных
задержек нет (если мне не изменяет память).

Да, максимальная задержка по спецификации ЖКИ-контроллера - 0,12 mks...
Осциллограф - вещь необходимая, согласен, но пока не обзавелся им. Дешевый покупать не хочется, потому как все равно он будет бесполезен во многих случаях, а на хороший пока не накопил smile.gif

Спасибо за советы! Как что-то получится - обязательно отпишусь в чем была трабла.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.