Удобный дисплей
Я работал с i2c дисплеем от Ericsson T20 (101x33). Хотел сделать читалку на pic12f675 😁 . Шрифт (8х8) хранится в EEPROM (24c32), причем для двух кодировок - первая koi8-r, вторая cp1251. Вывод на экран по коду символа 😃
я заказал таких индикаторов 5 штук еще пол года назад-ни ответа ни привета =(
удобно что i2c! но в нем вроде бы не совсем квадратная точка (сейчас лень в даташит лезть уточнять)
сейчас даже и не вспомню. какаято контора… но не платан и не тритон. в тритоне какаято была заморочка с оплатой по безналу чтоль… в итоге задействовал МЭЛТовские изделия. Их проще достать-от дома 25 минут пешком и я у них в офисе
сейчас даже и не вспомню. какаято контора… но не платан и не тритон. в тритоне какаято была заморочка с оплатой по безналу чтоль… в итоге задействовал МЭЛТовские изделия. Их проще достать-от дома 25 минут пешком и я у них в офисе
www.gamma.sbp.ru
У них есть индикаторы на этом контроллере, и к ним имеется RGB подсветка. Только разрешение 128х32 точки, что погоды не делает, ИМХО. Зато точки квадратные (визуально разницы не видно, по чертежу не смотрел на этот счет). Девайс хороший, но если нужно постоянно обновлять информацию (например мигание поля, анимация и т.д.) то тут уже начинаются проблемы, т.к. I2C сравнительно медленная, а байт нужно много передать. Например на перерисовку всего экрана уходит примерно 50 мс, а это ценное машинное время контроллера… Интересно есть похожие со скоростным SPI ?
Вот фишка и состоит в том, чтобы отдельный контроллер заточить под И2С. Например МЕГУ8 (25 руб.)
Хорошо конечно еслиб оперативки было 65*133=1080 байт, тогда сначала образ рисуется в оперативке, а прерывание его выводит на и2С непрерывно со скоростью 1080/(400кбит/с=50кБт/с)=50 кадров в секунду при условии изменений.
Но так как оперативки всего 512 байт придется например при рисовании линии сначала читать байт из ЖКИ ставить там точку, а потом засовывать его взад.
В итоге получится кадров 10 в секунду.
Или придется мутить КЭШ как у взрослых винчестеров, т.е. иметь образ наиболее часто переисываемого куска ЖКИ.
Да и еще будет буфер принятых команд. Одна команда 1-3 байта, а в случае подмены символа из фонта 9 байт.
А чоб тады не взять сразу мегу постарше начиная с 32-ой, а то начнете обвешивать выйдет и дороже и муторней.
Думаю 8ой меги должно хватить для наших потребностей.
Теперь мне ясно, почему на графических картах чем больше памяти тем больше скорость. Перед тем как развертку переключают на прорисовку какойнибудь видеопамяти, ее надо разрисовать, поэтому может быть много видеопамятей. Но при определенном количестве памяти улучшение прекращается. Еще от дров сильно зависит, которые наверняк и прошивку карточки меняют.
Ну вот и заработал мой PIC149.
Из обнаруженных особенностей:
- Точек там 133х64, а не 133х65, как указано в описании драйвера PCF8535. Ну и хорошо одним гимором меньше (там отдельная адресация).
- Есть там переменные: Top Row Swap, Bottom Row Swap, которые должны быть нулями чтобы заполнение памяти было равномерным (1234, а не 2143). Так вот в PIC149 эти две переменные должны быть 1.
- Примененные жидкие кристаллы достаточно жидкие, поэтому напряжение для их завихрения нужно достаточно маленькое вольт 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)
H-размер по высоте
W-размер по ширине
X-координата точки левой нижней
Y-координата точки левой нижней
DirAmount - направление и количество бит для смещения экрана
N-количество байт
СHx-буква под осью х
СHy-буква под осью y
Еще добавлю встроенное управление меню:
- Передаем все строки меню с номерами
- Передаем текущий номер
- Передаем команды вверх вниз
Mega8 сама заботится об отражении меню на экране
Облом!!! 😵
TIC149 не позволяет читать из видео памяти, а позволяет читать только температуру для подстройки напряжения завихрения жидких кристаллов.
Чтобы сделать все по уму, придется юзать Мегу32 TFQP 90 руб. в самом дешевом месте. Или оставить Мегу8 но тогда придется все поделить на квадратики 8х8 и помнить что вписывая чтото в квадратик все что там было трется. В общем будет не красиво.
А надо то всего: проц с 1.5 кБ памяти и 2 ноги и желательно атмел.
Блин, жаль!
Както странновато 32ю вешать.
Блин, жаль!
Както странновато 32ю вешать.
Из пушки по воробью. Хыть вообще забивай на всю эту затею, тогда в основном устройстве придется резервировать 1к+х памяти и дофига основного проц-времени.
Внешнюю память использовать както обломно.
Остается придумать крутой архиватор памяти чтоб жал в 4 раза минимум.
Нашел доисторическую SRAM6116 2k x8 ценв 30 руб
паралельный доступ 70нс, а 16МГц=62,5нс как раз тока это изврат
А чем странно то? Ну что за упертость с процессорами, обязательно надо с нехваткой ресурсов найти, проблем Вам мало надо их придумать.
Денег жалко.
В общем вот она жизнь. Трудности стратегического выбора. Что оценить как. Какие плюсы весомее минусов.
- Забить на всю эту затею и делать все в основном устройстве.
- Взять и потратиться на мегу 32
- Собирать все из старья и на погранично маленьком проце
- Выбрать другой индикатор
Либо вчера по 5 но крупные либо сегнодня но по три и маленькие. Вот еслибы вчерааа по 5…
Денег жалко.
В общем вот она жизнь. Трудности стратегического выбора. Что оценить как. Какие плюсы весомее минусов.
- Забить на всю эту затею и делать все в основном устройстве.
- Взять и потратиться на мегу 32
- Собирать все из старья и на погранично маленьком проце
- Выбрать другой индикатор
Либо вчера по 5 но крупные либо сегнодня но по три и маленькие. Вот еслибы вчерааа по 5…
может таки пункт 4? например, выбрать вот такой индикатор FDCG12864H-RNNYBW, правда без подсветки, стоит 300 рублев, но мне кажется что если что-то городить, то по деньгам так и выйдет… продают вроде как тут
Еще прикольный вариант - сделать на двух Мега8. Будет дешевле чем на одной Меге8 и внешней памяти и дешевле чем на Мега32 😉
Мне нуно памяти 133*64=1064 и плюс на всякие там переменные стек команд…
Будем делать по принципу послушай совета и сделай наоборот.
У меня просто их(PIC149) уже 5 штук есть. Судя по ценам на 32 мегу можно разориться.
Да и кстати прогу можно будет легким движением руки переписать и под этот ЖКИ, а схема и разводка останется тойже
Все пошел за 32 мегой.
Схемка этого девайса.
Sch.rar
А в формате подоступнее нельзя выложить?
Если не секрет-а это что у вас за программа такая? немного похоже на diptrace, но вроде бы и нет…
Чума!
Это же пикад!