Перейти к содержанию
    

Atmega64 и LCD

Приветствую всех!

 

Ситуация:

Имею Мегу64, работающую на кварце 14 мГц и ЖКИ 240х128 с контроллером t6963.

Инициализирую ЖКИ, очищаю всю его память, вывожу текст - все нормально. Но при попытках залить или очистить небольшой прямоугольник (24х24) в графической области памяти очень часто наблюдаются артефакты - то одна строка в прямоугольнике не зальется (или не очистится), то часть строки, то пара строк...

Заливку и очистку произвожу так: по координатам x и y вычисляю смещение в памяти первой строки прямоугольника, устанавливаю в ЖКИ указатель памяти на этот адрес и пишу данные с автоинкрементом указателя до конца строки, потом вычисляю адрес следующей строки, устанавливаю на него указатель и т.д.

 

Кто-нибудь сталкивался с таким?

Кстати, очищаю весь экран я таким же способом - все нормально, экран корректно очищается и в текстовой и в графической областях.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Решение "в лоб" - читать область после записи строки и делать верификацию. При необходимости повторить запись.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, я об этом думал, но это большая потеря времени... Разобраться бы в причинах такого поведения. Вообще, похоже, что неверно отрабатывается установка указателя адреса памяти в LCD, но вот из-за чего?... Пробовал ставить задержки, так что время сигналов, подаваемых на LCD превысило раз в 5 минимально рекомендуемые, не помогло.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а с электрической частью (фронтами) там все нормально?

см. файл может поможет..

display.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

.. очень часто наблюдаются артефакты...

 

Скорее всего все-таки слишком быстро работает процессор.

Я бы изучил осциллограммы работы с дисплеем.

и поставил задержки побольше - не в 5, а в 10 раз.

Хотя конечно, возможна хитрая программная ошибка.

 

Можно попробовать сменить алгоритм - рисовать по точкам.

:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поигрался я с задержками - артефакты пропадают при удержании данных на шине контроллера в течении ~1000 циклов, то есть больше 60 usec. Эт слишком много :(.

Может быть неверно само подключение ЖКИ? Я подключил его напрямую на выводы контроллера, без подтягивающих или ограничительных резюков...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Был бы осциллограф... :(

а рисовать по точкам - это, конечно, интересно, и мне придется к этому придти (рисовать битмапы по произвольным координатам по другому не получится ), но хотелось бы ликвидировать глюк сейчас, когда алгоритм рисования предельно прост, что бы не ковырять его в дальнейшем :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Товарищи, ну неужели никто не подключал графические контроллера к AVR-контроллерам? Может быть кто поделится точно работающей схемой подключения?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Пардон - был занят, не читал конфу 4 дня.

Конечно. я ставлю подтяжки - 4K7. На все выводы.

Кроме подсветки. :biggrin:

Плоский кабель очень короткий.

Производство серийное.

Если не жалко и процессор позволяет - можно поставить и 1K0.

Но все-таки тут нужно искать компромисс.

Удачи ! Попробуй - а вдруг получится.

:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за совет!

Я пробовал подтяжки 10К, они немного помогают, но не ликвидируют проблему до конца.

Попытаюсь поставить поменьше, 3-5К.

И еще: именно подтяжку к питанию? Не pull-down на землю?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И еще: именно подтяжку к питанию? Не pull-down на землю?

 

Теоретически это все равно - по переменному току

+5 и GND эквипотенциальны.

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

Поэтому используется как правило подтяжка к +5.

Однако, в тех случаях, когда до старта программы

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

к нему и следует "привязывать".

 

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

 

Да, чуть не забыл:

Процессор ,я полагаю,наверняка "сильнее", чем дисплей.

Значит минимум резистора шины данных определяется дисплеем.

(если нужно читать дисплей).

У меня в девайсе слабенький процессор - AT89C55-24 мгц.

Короткая команда - 0.5 mks, поэтому никаких дополнительных

задержек нет (если мне не изменяет память).

 

Для наладки нужен осциллограф - иначе нельзя оценить

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

ввода-вывода.

 

Иногда "все правильно", но плохо работает из-за отсутствия

некоторой задержки при переходе от режима чтения к режиму

записи и наоборот. <_<

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

минимум резистора шины данных определяется дисплеем.

(если нужно читать дисплей).

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

 

У меня в девайсе слабенький процессор - AT89C55-24 мгц.

Короткая команда - 0.5 mks, поэтому никаких дополнительных

задержек нет (если мне не изменяет память).

Да, максимальная задержка по спецификации ЖКИ-контроллера - 0,12 mks...

Осциллограф - вещь необходимая, согласен, но пока не обзавелся им. Дешевый покупать не хочется, потому как все равно он будет бесполезен во многих случаях, а на хороший пока не накопил :)

 

Спасибо за советы! Как что-то получится - обязательно отпишусь в чем была трабла.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...