Удобный дисплей

R2D2

Предлагается в качестве дисплея использовать графический ЖКИ TIC-149
Цена 190 рублей.
Цена за подсветку 50 рублей.
133х65 точек.
Скорость 400 кбит/с.

Описание: www.dc-dc.ru/download/Ampire/Graph/TIC149.pdf
Контроллер PCF8535 udf-cat.tstu.edu.ua/fileserver/…/PCF8535_2.pdf
ЖКИ работает по протоколу I2C www.microchip.ru/files/d-sheets-rus/I2C_INTR.pdf

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

Ваше устройство (передатчик, ЗУ, тахометр, тестер машинок и т.д. …) по одному проводу асинхронно передает MEGA8 команду и данные например такого формата:

0001 RESET
0010 CLR
0011 SLEEP
0100 Point(x, y)
0101 LineTo(x, y)
0110 Print(x, y, word)
0111 SendFontChar(code, bit_map)

А оно само рисует. Осталось написать программу.

Вопрос заключается в том, что Может есть решения лучше?

AVK

А где такие используются?
Думаю за такие деньги это просто супер.

lamobot

я заказал таких индикаторов 5 штук еще пол года назад-ни ответа ни привета =(
удобно что i2c! но в нем вроде бы не совсем квадратная точка (сейчас лень в даташит лезть уточнять)

AlexN
lamobot:

я заказал таких индикаторов 5 штук еще пол года назад-ни ответа ни привета =(
удобно что i2c! но в нем вроде бы не совсем квадратная точка (сейчас лень в даташит лезть уточнять)

Где заказывали?
В Тритоне есть в наличии, брали именно там.

R2D2

Девайс на коленке собрал. Прога уже пишется.
Из обнаруженных недостатков - у подсветки по контуру идет фольга наверное на липучке. Если неаккуратно браться, то отслаивается.

Короче два стеклышка на проводках (не удобно). Пришлось впаять все в монтажку на обратной стороне схему паять.
Допаяю оболью все эпоксидкой и маску из бальзы сделаю под дуб. 😁

Да с такой кривой точкой телик смотреть не удобно будет. 😒

alex_grach

Я работал с i2c дисплеем от Ericsson T20 (101x33). Хотел сделать читалку на pic12f675 😁 . Шрифт (8х8) хранится в EEPROM (24c32), причем для двух кодировок - первая koi8-r, вторая cp1251. Вывод на экран по коду символа 😃

lamobot
lamobot:

я заказал таких индикаторов 5 штук еще пол года назад-ни ответа ни привета =(
удобно что i2c! но в нем вроде бы не совсем квадратная точка (сейчас лень в даташит лезть уточнять)

сейчас даже и не вспомню. какаято контора… но не платан и не тритон. в тритоне какаято была заморочка с оплатой по безналу чтоль… в итоге задействовал МЭЛТовские изделия. Их проще достать-от дома 25 минут пешком и я у них в офисе

avalanch
lamobot:

сейчас даже и не вспомню. какаято контора… но не платан и не тритон. в тритоне какаято была заморочка с оплатой по безналу чтоль… в итоге задействовал МЭЛТовские изделия. Их проще достать-от дома 25 минут пешком и я у них в офисе

www.gamma.sbp.ru
У них есть индикаторы на этом контроллере, и к ним имеется RGB подсветка. Только разрешение 128х32 точки, что погоды не делает, ИМХО. Зато точки квадратные (визуально разницы не видно, по чертежу не смотрел на этот счет). Девайс хороший, но если нужно постоянно обновлять информацию (например мигание поля, анимация и т.д.) то тут уже начинаются проблемы, т.к. I2C сравнительно медленная, а байт нужно много передать. Например на перерисовку всего экрана уходит примерно 50 мс, а это ценное машинное время контроллера… Интересно есть похожие со скоростным SPI ?

R2D2

Вот фишка и состоит в том, чтобы отдельный контроллер заточить под И2С. Например МЕГУ8 (25 руб.)
Хорошо конечно еслиб оперативки было 65*133=1080 байт, тогда сначала образ рисуется в оперативке, а прерывание его выводит на и2С непрерывно со скоростью 1080/(400кбит/с=50кБт/с)=50 кадров в секунду при условии изменений.

Но так как оперативки всего 512 байт придется например при рисовании линии сначала читать байт из ЖКИ ставить там точку, а потом засовывать его взад.

В итоге получится кадров 10 в секунду.

Или придется мутить КЭШ как у взрослых винчестеров, т.е. иметь образ наиболее часто переисываемого куска ЖКИ.

Да и еще будет буфер принятых команд. Одна команда 1-3 байта, а в случае подмены символа из фонта 9 байт.

PigTail

А чоб тады не взять сразу мегу постарше начиная с 32-ой, а то начнете обвешивать выйдет и дороже и муторней.

R2D2

Думаю 8ой меги должно хватить для наших потребностей.

Теперь мне ясно, почему на графических картах чем больше памяти тем больше скорость. Перед тем как развертку переключают на прорисовку какойнибудь видеопамяти, ее надо разрисовать, поэтому может быть много видеопамятей. Но при определенном количестве памяти улучшение прекращается. Еще от дров сильно зависит, которые наверняк и прошивку карточки меняют.

Ну вот и заработал мой PIC149.
Из обнаруженных особенностей:

  1. Точек там 133х64, а не 133х65, как указано в описании драйвера PCF8535. Ну и хорошо одним гимором меньше (там отдельная адресация).
  2. Есть там переменные: Top Row Swap, Bottom Row Swap, которые должны быть нулями чтобы заполнение памяти было равномерным (1234, а не 2143). Так вот в PIC149 эти две переменные должны быть 1.
  3. Примененные жидкие кристаллы достаточно жидкие, поэтому напряжение для их завихрения нужно достаточно маленькое вольт 7-9 при 25 оС.

Хочется сказать несколько слов в отношении людей пишущих даташиты и тех людей которые придумали стандарты как надо писать эти даташиты. Ну почему нельзя написать в самом начале коротко и ясно основную идею? Которая как путеводная нить помогла бы освоить все детали. Нет блин напишут все попорядку. Пока 70% не прочтешь и 100 опытов не сделаешь нихера не поймешь.

Наверное это все просто от незнания языка. Пишут они както не душевно. А вот www.gaw.ru/html.cgi/txt/lcd/chips/index.htm пишет душевно. Но там к сожалению перевода PCF нет ни одного.

На выходных налобал прогу для изготовления шрифтов и картинок в виде массивов Си, а может и не я это вовсе был. Прога простая запускается без выпендронов.MyShrift.rar

Вот новый список поддерживаемых функций:
#define cmdReset 0 // 1 Сброс ЖКИ (Сmd)
#define cmdBright 1 // 2 Яркость экрана (Cmd V)
#define cmdSqr 2 // 5 Квадрат (Cmd Xo Yo W H)
#define cmdMirror 3 // 2 Зеркало (Cmd M)
#define cmdSleep 4 // 1 ЖКИ в спящий режим (Сmd)
#define cmdPoint 5 // 3 Ставим точку с координатами (Cmd X=0…132 Y=0…63)
#define cmdLine 6 // 3 Рисуем линию от последней точки к указанной (Cmd X=0…132 Y=0…64)
#define cmdPrint 7 // 3+n Печатаем слово в точке с координатами (Cmd X=0…132 Y=0…64)
#define cmdFontChar 8 // 8 Подмена буквы в шрифте (Cmd Ch F0 F1 F2 F3 F4 F5)
#define cmdShift 9 // 2 Сдвиг экрана (Cmd DirAmount)
#define cmdBitmap 10 // 4+n Графическая картинка (Cmd X Y W N B0 B1 B2 …)
#define cmdLogo 11 // 1 Графическая заставка (Сmd)
#define cmdAxi 12 // 7 Оси координат (Cmd X Y W H CHx CHy)
#define cmdXY 13 // 2+5:8 Точку на графике (Cmd X Y)

R2D2

H-размер по высоте
W-размер по ширине
X-координата точки левой нижней
Y-координата точки левой нижней
DirAmount - направление и количество бит для смещения экрана
N-количество байт
СHx-буква под осью х
СHy-буква под осью y

Еще добавлю встроенное управление меню:

  1. Передаем все строки меню с номерами
  2. Передаем текущий номер
  3. Передаем команды вверх вниз
    Mega8 сама заботится об отражении меню на экране
R2D2

Облом!!! 😵

TIC149 не позволяет читать из видео памяти, а позволяет читать только температуру для подстройки напряжения завихрения жидких кристаллов.
Чтобы сделать все по уму, придется юзать Мегу32 TFQP 90 руб. в самом дешевом месте. Или оставить Мегу8 но тогда придется все поделить на квадратики 8х8 и помнить что вписывая чтото в квадратик все что там было трется. В общем будет не красиво.

А надо то всего: проц с 1.5 кБ памяти и 2 ноги и желательно атмел.

AVK

Блин, жаль!
Както странновато 32ю вешать.

R2D2
AVK:

Блин, жаль!
Както странновато 32ю вешать.

Из пушки по воробью. Хыть вообще забивай на всю эту затею, тогда в основном устройстве придется резервировать 1к+х памяти и дофига основного проц-времени.

Внешнюю память использовать както обломно.

Остается придумать крутой архиватор памяти чтоб жал в 4 раза минимум.

R2D2

Нашел доисторическую SRAM6116 2k x8 ценв 30 руб
паралельный доступ 70нс, а 16МГц=62,5нс как раз тока это изврат

PigTail

А чем странно то? Ну что за упертость с процессорами, обязательно надо с нехваткой ресурсов найти, проблем Вам мало надо их придумать.

R2D2

Денег жалко.

В общем вот она жизнь. Трудности стратегического выбора. Что оценить как. Какие плюсы весомее минусов.

  1. Забить на всю эту затею и делать все в основном устройстве.
  2. Взять и потратиться на мегу 32
  3. Собирать все из старья и на погранично маленьком проце
  4. Выбрать другой индикатор

Либо вчера по 5 но крупные либо сегнодня но по три и маленькие. Вот еслибы вчерааа по 5…

mega_john
R2D2:

Денег жалко.

В общем вот она жизнь. Трудности стратегического выбора. Что оценить как. Какие плюсы весомее минусов.

  1. Забить на всю эту затею и делать все в основном устройстве.
  2. Взять и потратиться на мегу 32
  3. Собирать все из старья и на погранично маленьком проце
  4. Выбрать другой индикатор

Либо вчера по 5 но крупные либо сегнодня но по три и маленькие. Вот еслибы вчерааа по 5…

может таки пункт 4? например, выбрать вот такой индикатор FDCG12864H-RNNYBW, правда без подсветки, стоит 300 рублев, но мне кажется что если что-то городить, то по деньгам так и выйдет… продают вроде как тут

PigTail

Еще прикольный вариант - сделать на двух Мега8. Будет дешевле чем на одной Меге8 и внешней памяти и дешевле чем на Мега32 😉

R2D2

Мне нуно памяти 133*64=1064 и плюс на всякие там переменные стек команд…

Будем делать по принципу послушай совета и сделай наоборот.

У меня просто их(PIC149) уже 5 штук есть. Судя по ценам на 32 мегу можно разориться.

Да и кстати прогу можно будет легким движением руки переписать и под этот ЖКИ, а схема и разводка останется тойже

Все пошел за 32 мегой.

PigTail

А в формате подоступнее нельзя выложить?