Подключение LCD дисплея от телевизора к STM32-DISCOVERY

Достался мне нерабочий телевизор PE-1180. Это ни чем не примечательный китайский переносной телевизор с разрешением экрана 800x480 пикселей и диагональю 11.5 дюйма. Телевизор не показывал аналоговое видео (из эфира и с композитного входа) и у него было что-то с питанием — при подаче напряжения на него с лабораторного блока питания, срабатывала защита по току — 3А, и телевизор не включался. При питании от штатного блока питания телевизор работал нормально — и блок питания даже особо и не грелся, видимо, такой бросок тока давали какие-то переходные процессы. Что это было — особенности китайской схемотехники или проблема телевизора — непонятно. К телевизору можно было подключить источник VGA сигнала, правда необычное разрешение не очень-то хорошо сказывалось на картинке.

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

Как подключить модуль LCD с большим разрешением и без видеопамяти к контроллеру — под катом.


Электроника телевизора состоит из 2 плат — на одной расположены видео-АЦП, видеопроцессор, тюнер, DC-DC и прочая обвязка. Эта плата нам не нужна. Вторая плата с маркировкой CPWBX0043TPZZ в данном случае важнее — на ней расположен контроллер LCD и инвертор для питания ламп подсветки. В гугле встречал упоминания, что точно такую же плату можно найти в портативном DVD плеере. Контроллером дисплея является микросхема LZ9JG17 (в даташите эта микросхема названа Timing Control IC). ВАЖНО: интерфейс у LCD модуля на данной микросхеме 18-bit RGB, и у данного LCD модуля нет встроенной видеопамяти.

Опишу поподробней работу данного интерфейса. Данные передаются в модуль по параллельной 18-битной шине(по 6 бит на цвет), по каждому тактовому сигналу на экране отображается новый пиксель, цвет которого соответствует коду на шине данных. Для того, чтобы пиксели отображались на экране в нужных местах, используются сигналы горизонтальной(строчной) и вертикальной (кадровой) синхронизации.
Перед началом передачи новой строки необходимо установить нужный уровень на линии горизонтальной синхронизации, послать определенное число тактовых импульсов, изменить уровень, и отправить еще определенное число тактовых импульсов, только после чего можно отправлять данные.
Вид уровня и количество тактов берутся из даташита на контроллер дисплея.

Ниже приведена временная диаграмма сигналов для LZ9JG17: clk — тактовый, HSY — горизонтальной синхронизации, DATA — данных.

По какой-то причине в реальности 216 тактовых импульсов отсчитывались от 2 фронта импульса HSY. Для правильной работы индикатора нужно выводить данные о всех 800 видимых пикселях — иначе нормального изображения не добиться.

С импульсом вертикальной синхронизации все похоже — для начала формирования нового кадра нужно установить на линии вертикальной синхронизации нужный уровень, отправить на индикатор определенное число линий, изменить уровень, отправить еще определенное число линий, и только после этого можно передавать данные, которые будут реально отображаться на экране. Частота импульсов VSY — это частота обновления изображения.
Ниже приведена временная диаграмма сигналов для LZ9JG17: VSY — вертикальной синхронизации, HSY — горизонтальной синхронизации, DATA — данных.

Поскольку видеопамяти у модуля LCD нет, то данные на индикатор нужно передавать постоянно. Как оказалось, для нормальной работы индикатора нужно обновлять изображение с частотой не менее 15 гц.

Микроконтроллер способен справиться с этой задачей, однако для достижения необходимой скорости передачи данных и формирования тактового сигнала нужно использовать SPI, тактовый сигнал при этом берется с вывода SCK, а данные — c MOSI. Поскольку вывод MOSI только один, то изображение возможно формировать только черно-белое, все входы данных модуля нужно запараллелить и соединить с MOSI. В данном случае, при передаче одного байта через SPI на экране будут обновляться 8 пикселей. Частота передачи данных через SPI может доходить до половины тактовой частоты контроллера. Таким образом, для управления модулем LCD требуется всего 4 линии — clk, DATA, VSY, HSY.
У контроллера дисплея есть и другие входы, но, к счастью, их использовать не надо — они отвечают за экзотические настройки контроллера, вроде зеркального отображения изображения, и подтянуты в контроллере к нужным уровням так, что модуль работает в наиболее часто используемом режиме.

Для хранения одного кадка потребуется (800*480)/8 = 48000 байт. К сожалению, у контроллера STM32-DISCOVERY всего 8 килобайт ОЗУ. Поэтому на DISCOVERY возможно формировать только текст. При размере знакоместа 8x16 на экране можно расположить 100x30 знакомест — то потребует 3000 байт ОЗУ.

По поводу подключения в модулю. Модуль LCD соединялся с основной платой телевизора через 40-пиновй шлейф, к выводам которого не подпаятся. Однако рядом с разъемом шлейфа на плате модуля имеются круглые тестовые площадки достаточно большого размера, чтобы к ним можно было припаять провод. Поскольку даташит на контроллер LCD у меня был, то прозвонив мультиметром выводы LZ9JG17 и тестовые площадки, я определил назначение тестовых площадок модуля. С цепями питания еще проще — при подключенной плате телевизора измерил напряжения на наиболее толстых дорожках рядом с разъемом, и определил, что где. Модуль требует 5В 0.1А для питания основных цепей и 12В 0.8А для инвертора. Напряжение сигналов, подаваемых на модуль — 3.3В, так как LZ9JG17 питается именно от 3.3 В. Источник 3.3 вольт есть на самом модуле. Сигнал управления на инвертор подается с еще одного вывода разъема, для того включить подсветку, нужно подать на него 3.3В.

Фотография участка модуля LCD с распиновкой.
image
Подписи соответствуют подписям выводов LZ9JG17 в даташите. Площадки HENAB, HRVC, HRVC остаются не подключенными.
Что интересно, диод на плате установили китайцы — когда я в первый раз разбирал телевизор, отверстия под винты были закрыты заводской наклейкой.
Вывод VSY модуля у меня соединяется с выводом PC5 платы DISCOVERY, HSY — с PC4, clk — с PA5(SPI_SCK), запараллеленные входы данных — с PA7(SPI_MOSI).
Опыт показал, что вывод clk нужно соединить с землей через конденсатор 18пФ, иначе возникают артефакты изображения.

Фотография конструкции в сборе:


Теперь о программе. Она написана в IAR. Информация у меня передается в SPI через DMA. Используется двойная буферизация — в то время, пока данные из одного буфера передаются на индикатор, другой буфер заполняется данными программой.
При вызове функции start_line() на линии HSY устанавливается высокий уровень, в SPI два раза отправляется байт, что дает 16 тактовых импульсов, после чего на HSY устанавливается низкий уровень. Горизонтальный импульс синхронизации сформирован. Остается отправить на индикатор 216 тактовых импульсов, что соответствует 27 байтам, после чего отправить 100 байт данных. Для этого DMA конфигурируется на передачу 127 байт; адрес, откуда DMA будет брать данные, определяется как адрес нулевого элемента нужного буфера минус 27. После конфигурирования DMA запускается, при этом устанавливается флаг разрешения заполнения нового буфера. Буфер должен быть заполнен раньше, чем DMA закончит передавать данные, поэтому оптимизация в компиляторе должна быть включена.
По завершению передачи DMA создает прерывание. Обработчик прерывания вновь вызывает функцию start_line(), после чего начинается передача новой линии. Если все линии переданы, то start_line() не вызывается, и устанавливается флаг окончания передачи кадра.
Формирование вертикального импульса синхронизации аналогично формированию горизонтального. При вызове функции lcd_new_frame() линии VSY устанавливается высокий уровень, вызывается функция start_line(), после чего программа ожидает завершения передачи линии через DMA. Эта оперция повторяется 6 раз, после чего на VSY устанавливается низкий уровень. После вызова start_line() линии начинают передаваться автоматически и функция lcd_new_frame() завершается. Вызывается lcd_new_frame() программно, после того как программа обнаруживает, что все линии переданы.

Фотография готового устройства:


Работает LCD модуль стабильно, мерцание экрана не заметно. В принципе, подобным образом к DISCOVERY можно подключить любой экран с RGB интерфейсом, лишь бы был даташит на контроллер LCD и индикатор мог работать на соответствующей частоте развертки(у меня 17 Гц).

Позже хочу подключить модуль к более мощному контроллеру с 64 Кбайт памяти, что позволит организовать настоящую видеопамять и выводить на экран любую графику, и сделать что-то вроде настенного календаря-будильника с wifi, что позволит показывать прогноз погоды из интернета, синхронизировать данные будильника с компьютером, показывать заметки, сделанные на компьютере. Эдакий шаг к умному дому.
  • +6
  • 12 ноября 2011, 00:43
  • citizen
  • 2
Файлы в топике: pinout2.jpg, CODE_DISCOVERY_TEXT_2.zip

Комментарии (69)

RSS свернуть / развернуть
Спасибо! Ещё бы статья про использование графических библиотек… Например, распространённую uc/gui и подключение к ней данного LCD (т.е. написание своего драйвера lcd для этого гуи). На uc/gui даже на английском описание найти весьма сложно…
0
А теперь немножко про чудеса оптимизации.
Кто видал вот такую штуку?
rossum.posterous.com/20131601

ПО-моему, очень круто. Камень Cortex M0, хоть и разогнанный слегка, но в итоге хуже stm32f100. И только текстом парень не ограничился )
0
вот еще интересный пример подобного, контроллер прямо VGA монитором любым управляет. PIC18.
pic24.ru/doku.php/osa/articles/vga_game
0
Вот тут явно указано, что режим работы индикатора — матрица спрайтов размером 16x16 пикселей. Я знаю, что в интернете полно проектов с выводом изображения на экран телевизора, обычно все они используют текстовый или спрайтовый режим.
0
И 3d графика тоже спрайтами ))
0
Как они выводят цветную графику — не знаю. При этом нужна очень большая оптимизация и все ресурсы контроллера уходят только на формирование графики.
0
Исходники там есть. Глянул краем глаза — прерывание в котором идет дергание ногами чисто на ассемблере прописано, шаг влево, шаг вправо и работать не будет. А так времени ему хватает и на генерацию музыки и математику и кучу всего. Думаю как минимум повторить.
0
Вот именно, конструкция там получилась уж очень специализированная, чисто демонстрационная.
0
Что-то ссылки что одна что вторая битая.
0
беру свои слова обратно, у меня инет было упал.
0
Как показывает практика если что-то хочешь сделать, но не знаешь как, лучше подождать.
Имею аналогичную матрицу с таким же контроллером LCD. Давно ломал голову как бы ее получше запустить.
Подождал всего ничего :))))))
0
Круто, жаль что ч/б, но всё равно…
А процессорное время для какой-либо другой работы остается? Или есть мысли использовать два отдельных МК, главный + контроллер экрана?
0
  • avatar
  • ACE
  • 12 ноября 2011, 12:51
В принципе, при передаче каждой линии после того, как будет сформирован новый буфер, остается определенное время, ну и можно между кадрами что-то делать, а также во время передачи 27 линий после вертикального синхроимпульса.
0
А считали, можно уложится?
Тем более обработка цвета займет больше времени.
0
Во время передачи линий — я не пробовал определять, сколько остается времени после того, как новый буфер заполнен, а новая строка еще не началась. Передача 27 линий после вертикального синхроимпульса, которые не отображаются на экране, и во время передачи которых можно не заполнять буфер, занимает примерно 2ms — это примерно 50000 команд.
0
Про цвет — я не вижу способа, которым можно было бы сформировать хотя бы 5 цветное изображение с разрешением (800*600), не прибегая к очень суровым методам оптимизации, как было упомянуто здесь Да и то, разрешение там гораздо меньше. Формировать цвет для отдельных знакомест возможно, используя аппаратный метод отсюда , только DMA в данном случае уже не использовать.
0
А как с выдачей данных на 3 порта через ДМА и заполнением буфера для следующей строки?
0
Если это и возможно, то достаточно сложно. Я думаю, что контроллер не успеет заполнить буфер.
0
Познавательная статья! +1.
0
  • avatar
  • _YS_
  • 12 ноября 2011, 17:54
А как на счет задействовать для работы все SPI интерфейсы контроллера?
настраиваете один на выход (с него берем SCK) а остальные на вход. Данные запихиваем во все регистры сдвига. Может получиться?
0
Что именно получиться? Если формирование цвета, то на DISCOVERY только 2 SPI, да и то проблема не в этом. Для хранения данных о цвете нужно больше памяти, которой нет.
0
+4K ушло на знакогенератор? Если добавить по байту на цвет то получится по 16 цветов из EGA палитры на фон и на символ, можно даже с битом мигания символа.

А на перспективу для экономичной многоцветной графики можно использовать например HAM8.
0
Если говорить про текстовый или спрайтовый вывод изображения, то выводить цвет действительно можно. А вот для вывода графических изображений памяти не хватит — там нужно каждый пиксель описывать своим цветом.
0
а если разрешение понизить?
например, имеем экран 640х480, выводим 320х240 или еще меньше
0
А как насчет того чтоб SPI через регистр подключить?? Он же вроде довольно шустрый. (SPI) ТОгда получится все цвета задействовать.
0
  • avatar
  • kos
  • 14 ноября 2011, 16:22
Регистр на выход СПИ и заполнять цветамим?
Не выйдет. Сейчас обновление идет 17 раз в секунду. А тут будет в 3 раза меньше, т.е. чуть больше 5Гц. Да и памяти для полноценного буфера не хватает.
0
Медленновато…
Вроде там скорости можно хоошие получить… Ну да ладно!
0
Прошу прощения, не совсем понял что делать с линиями с цветами?
0
Лучше использовать ПЛИС, они куда больше подходят для решения этой задачи. В свежем номере «Хакер» есть описания девайса на Altera Cyclone II. выводящего инфу на VGA (модуль написан на VHDL). Купить на ебее отладку — и вперёд)
0
Ммм, можно поподробнее?
Что именно там реализовано? Сколько цветов?
0
16 цветов. Описано про младшую модель этой отладки:

www.ebay.com/itm/Altera-CycloneII-EP2C8Q208-NIOS-II-SOPC-FPGA-Main-Board-/190517842238?pt=LH_DefaultDomain_0&hash=item2c5bbf913e

на борту там уже есть VGA-разъём. И в примерах — текстовый вывод на VGA. На uart посылаем двухбайтовую посылку, первый байт — ascii код символа, первые 4 бита второго байта — цвет символа, вторые 4 бита — цвет фона. Записывается во внутреннюю память по шине записи. VGA модуль по второй шине, чтения, памяти непрерывно выводит данные на выход в разрешении 640х480 с частотой 60Гц.

Если задействовать внешнюю память на девборде, можно более впечатляющих результатов добиться.
0
16 цветов. Описано про младшую модель этой отладки:

www.ebay.com/itm/Altera-CycloneII-EP2C8Q208-NIOS-II-SOPC-FPGA-Main-Board-/190517842238?pt=LH_DefaultDomain_0&hash=item2c5bbf913e

на борту там уже есть VGA-разъём. И в примерах — текстовый вывод на VGA. На uart посылаем двухбайтовую посылку, первый байт — ascii код символа, первые 4 бита второго байта — цвет символа, вторые 4 бита — цвет фона. Записывается во внутреннюю память по шине записи. VGA модуль по второй шине, чтения, памяти непрерывно выводит данные на выход в разрешении 640х480 с частотой 60Гц.

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

Описание VGA модуля (32 цвета):

habrahabr.ru/blogs/controllers/129746/
0
Софт кстати у альтеры бесплатный — QuartusII Web Edition Software. Отладка через JTAG, соответствующая usb-девайсина для этого зовётся Altera USB Blaster, которую во всемирных просторах инета можно у китайцев купить за 8$.

Девборда помимо прочего имеет порт PS/2 и пример с подключением мышки, выводящий курсор на vga-порт. По сравнению с предыдущим примером вывода на vga-моник — всего одна дополнительная строчка в модуль VGA и модуль MouseRefComp. При желании свою ЭВМ сваять можно, с моником, клавой и мышкой )
0
Та у меня есть уже плата с плисиной )) DE0-Nano
Для цветов я заюзаю R-2R ЦАП(думаю, 16 бит на RGB цвет). Уже рассчитал её, осталось нужные номиналы подобрать.
У меня другая бИда. С помощью внутренней памяти я уже делал графический режим 640х480 1 бит цвет, на большее её уже не хватает. И текстовый режим тоже запиливал уже ))) Всё работает.
Хочу графический режим, но уперся в память. У меня на плате есть 32 мб оперативы SDRAM, но заюзать я ещё не смог. Для меня это пока еще сложновато
0
Если вы про мою конструкцию — то соединить их параллельно и соединить с выводом MOSI контроллера.
0
Я вот тут подумал. Что если использовать статическую память, к примеру CY7C1041D (4-Mbit (256K x 16), хотя этого мало, но может есть что-то схожее на 512К х 16), выход с неё (16-бит) подавать на матрицу, а адрес задавать счетчиком? Останется только задать тактовый сигнал, одновременно на счётчик и матрицу. Ну и управлять разверткой, само собой. В свободное время можно заполнять память графикой.
0
  • avatar
  • ACE
  • 02 декабря 2011, 06:54
У стм есть аппноут по управлению такими дисплеями через интерфейс внешней памяти, с внешней оперативкой в том числе. получаете 16битное изображение и фоновый вывод. Это куда более рацирональное решение.
0
Тот аппноут, который я видел, он только про 320х240 рассказывает. Как я понимаю, на большее скорости не хватит. В аппноуте говориться о максимуме в 40Hz обновления экрана при 72MHz (DCLK=3.6MHz). Для 800х480 понадобится частота раз в 5 больше. Видимо нереально. Нагуглить тоже ничего не удалось.
0
Кроме памяти нужен будет еще и арбитр шины. angel5a правильно говорит про использование FSMC.
0
Арбитр шины не нужен, если обновлять данные в памяти во время «обратного хода луча». Судя по всему, это может быть до трети времени.
0
Так тоже будет не очень удобоваримо. Если уж цеплять внешний буфер, то делать его на VRAM. Она как раз для этого и предназначена.
0
Ммм, это уже за гранью моих знаний. Буду гуглить. Спасибо за направление.
0
Вообще это имхо нафиг не нужно. дешевле и проще тогда взять мк со встроенным контроллером дисплея. или сам контроллер отдельно. А брать мк и навешивать вокруг него десяток микрух, убивать на обновление весь ресурс мк — бред.
Такие дисплеи надо рассмотривать не в широком профиле задач (делать не универсальный дисплей) а под конкретную задацу (консоль, фоторамка).
0
Ну полноценный контроллер под такую матрицу обычно прилагается к медиа-SoC'ам, а там уже и флеш надо внешний, и память, и на МК оно уже не очень похоже.
МК и пара микросхем может оказаться дешевле и доступнее.
0
Тогда предположим конкретную задачу. Хочу, ну допустим, метеостанция/календарь/фоторамка/etc с экраном 7" 800х480. Информация обновляется не часто, высокой производительности не требуется. Но должно быть красиво, т.е. 16 бит на точку. И, конечно, дешево в единичном экземпляре. Есть какие-нибудь идеи, на чем реализовать?

У меня мысли такие.
1) TFT матрица 7" 800х480. Например, 7" TFT INNOLUX AT070TN92, 35-38 долларов на ебее с доставкой (либо ковыряем какое-либо устройство, как в статье.
2) Чем управлять? Какая-либо ПЛИС? Я в них не разбираюсь, даже не знаю как определить необходимые параметры, чтобы прикинуть цену. Спец контроллер? Пока что самый интересный вариант, какой смог найти — контроллер TFT с собственной памятью SSD1963. Стоит 18 баксов на ебее с доставкой. Судя по всему отличная штука, решает все проблемы, легко управляется хоть AVRкой, хоть STM32. Минус только один, корпус LQFP-128 с шагом 0.4 мм. ЛУТом вытравить и запаять… не знаю, получится или нет. Явно будет не просто. Есть на ебее и готовый комплект, 7" TFT LCD Module + Touch Panel Screen + SSD1963 PCB, за $108. Но за такую цену уже можно 15.6" 1366×768 монитор купить! Это ж цена за пиксель почти в 3 раза выше :)

Есть какие мысли?
0
Китайский планшет или «нетбук» на WM8505 или WM8650. За 60-80 баксов будет все что нужно, в сборе, с корпусом и операционкой. Останется только программу написать, а то и вовсе подобрать. И всего вдвое дороже, чем голый экран.
Можно попробовать поискать в дохлых плеерах/фоторамках/etc подходящий проц с контроллером TFT. Например, JZ4725 из вогоплеера скорее всего справится.
Ну и наконец, при совсем малой частоте обновления возможно и STM какой потолще и с FSMC справится. Вон Rossum википедию на каком-то из LPC на подобный экран показывал.
0
Вариант. Минус готового планшета — сложность подключения внешних устройств, типа датчиков/кнопок/светодиодов. Если только внутри не обнаружится uart'а. Второй, возможный, минус — наличие ОС на борту, иногда проще и удобнее было бы без неё, быстрее бы включалось. Хотя это и не критично, а иногда и удобнее, зависит от применения и опыта программирования под разные платформы.

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

Rossum использовал дисплей 320 х 240, да ещё и с контроллером встроенным, ILI9325. Неплохо, но хочется выйти за габариты QVGA и 4.3".
0
Минус готового планшета — сложность подключения внешних устройств, типа датчиков/кнопок/светодиодов. Если только внутри не обнаружится uart'а.
UART на камне есть (точнее, в WM8505 их восемь). Правда с его выведением могут возникнуть проблемы. Так, если в моем нетбучике на WM8505 он выведен на хедер и подписан, то в планшете на WM8650 — уже нет. Проц в BGA, так что прозвонить проблематично. Правда, зато в обоих девайсах проц, ОЗУ и флеш распаяны на отдельной платке-модуле, так что можно попробовать эти уарты поискать на контактах модуля, уже вполне паябельных.
К тому же, там есть полноценный USB 2.0 хост. Подключить эту обвязку можно туда. Есть также Ethernet и Wi-Fi — так что датчики вполне могут быть включены и в домашнюю сеть.
Есть там и GPIO, кстати говоря, если его, опять же, удастся найти на контактах модуля.

ОС облегчает программирование, хотя на запуск нужно время, да. С другой стороны, полновесный проц без ОСи юзать таки сложно. Вкатить туда можно, как правило, линух, андроид и WinCE.
JZ4725, как ты выше и писал, требует серьезной обвязки памятью и тому подобным, сложно для домашнего приготовления. Допилить напильником тот же вогоплейер для подключения нормального дисплея, скорее всего, тоже.
Обвязки не так много — микросхема ОЗУ и микросхема NAND (а то и вовсе SD-карта — проц умеет грузиться с нее). Правда, растащить параллельные шины по ним довольно сложно, тот же вогоплеер имеет многослойную плату. Впрочем, врядли без внешней памяти вообще можно обойтись.
Вогоплеер допиливать придется только программно — интерфейс у этих дисплеев стандартный и от разрешения не зависит. Ну, разве что, его контроллер не потянет такой большой экран.
0
А что за нетбучок?
0
Примерно такой, только салатовой расцветки. Алсо можно найти подешевле, на алиэкспресс например. Правда он изрядно слоупочен. Собсна, настолько, что Lifelover отдал его мне, не найдя применения)
0
Уважаемый коллега, удалось ли осуществить идею с памятью и экраном?
0
Вариант с памятью и счетчиком нет, не нашел подходящих для реализации.
Саму идею не забросил, заказал и получил 7" экран для экспериментов. Буду пробовать вариант с ПЛИС. Их тоже получил, теперь изучаю как их готовить.
Это вариант интереснее. Но есть и более простой. Есть чип SSD1963, стоит в районе 18 баксов, но в нём всё готовое, контроллер, память. Но это не спортивно :)
0
Абсолютно согласен, на счет не спортивно.
Про ПЛИС пока не думал, думаю про SRAM и «софтовый видеоконтроллер» на STM32. Если в два 16-битных порта микроконтроллера одной командой вывести адрес ячейки SRAM и необходимые управляющие сигналы, то в следующие 5-7 нс. на шину данных память выдаст содержимое ячейки? Верно? Шину данных соединяем с 16-битным RGB-выходом и получаем формирование картинки с минимальным участием самой STM32. Микроконтроллер только выдает управляющие сигналы, адреса памяти, и тактовый сигнал + горизонтальную/вертикальную развертку на LCD.
Выглядит заманчиво — не использовать дополнительных микросхем. Но будет ли работать? Пока не ясно — надо спаять схему.
А что за 7" экран, если не секрет?
0
Взял вот такой, Innolux AT070TN92. Аналогичный, AT070TN83 (я так понял, на беглый взгляд) отличаются только распиновкой разъёма, подключали к ПЛИС ребята с марсохода.
Так вот, для этого экрана по даташиту указана частота управления 33 MHz. Минимум 26.4 MHz. Может оно и меньше будет работать, не знаю. На один такт управления надо увеличить адрес, выдать его на шину, дёрнуть тактовым. Вот не знаю, потянет ли такое даже самый быстрый STM32. Надо смотреть, что там по тактам будет в лучшем случае.
Ещё пока не нашёл подходящей памяти. Чтобы её хватило под всю видеопамять. Там мегабайт выходит для 16-бит цветности.
0
дешево и сердито
www.promelec.ru/company/news/768/
0
Разрешение там значительно меньше, чем у меня. Кроме того, судя по описанию, отображаться там могут достаточно простые объекты — для того, чтобы изменить картинку (например отображать график горизонтально) нужно заметно менять программу, что характерно для любых конструкций на микроконтроллерах с отображением цвета.
0
Хочу себе дисплей в промышленном исполнении -20..+85 по цельсию в количестве 1 штука.
Желаемые характеристики:
— физические размеры 2,8-3,5"
— разрешение от 320x240
— число цветов от 256 шт до 65 тыс.шт.
— желательно сенсор прикосновения, однако не обязательно

Может кто подскажет варианты?
0
  • avatar
  • Rita
  • 15 декабря 2011, 06:55
Вот здесь можно глянуть
www.terraelectronica.ru/catalog.php?ID=390&InHave=1&Page=
0
0
Намучился с подключением 7" AT070TN83 к STM32 с использованием внешней SRAM. Работает, но плохо.
Решил использовать видео-контроллер. Долго искал — цены высоковаты, и вот нашел SSD1963 всего за 5! долларов!
Чем и спешу поделиться с вами, коллеги. Поговорил с продавцом, тот согласился высылать в Россию Аир-мейлом — около $3.
Итого около 8 баксов за чип, который на Ибее стоит 18. Мой уже прошел таможню :) Скоро паять буду :)
Ссылочка может пригодится, искал-то долго:
www.aliexpress.com/item/IC-SSD1963QL9-more-than-10-pcs-free-shipping/603364521.html
Попросите продавца отправить by China Post Air Mail, он очень приятный в общении :)
0
Специализированный видео-контроллер — это хорошо, но это еще один лишний чип.
За ссылку — спасибо.
0
Мне не удалось избавиться от помех на экране, при записи во внешнюю SRAM. Хотя регенерация и такты висели на таймерах и прерывании с максимальным приоритетом, разделял ресурсы как мог, но периодическая каша на экране огорчала. Причем генерация на VGA мониторе шла хорошо — картинка почти идеальная при 800х600 на 60 Гц. А на 7" экранчике при меньших рабочих частотах ерунда получилась.
0
А есть еще какие нить шрифты, других размеров или других стилей?
0
Можно или из системных сделать, например этой программой: armag.newmail.ru/sgfed.htm,
либо в гугле поискать — их в интернете полно.
0
Что-то коряво ссылка вставилась, запятая в ее конце не нужна.
0
документ не найден на сервере

в интернете полно. но они то платные, по бесплатно только конвертируют но не дают сохранить, то сохраняют но в свой формат :-( устал перебирать и решил спросить чем _all_ пользуется
0
ааа, все, убрал запятую :-)
0
интересно, нафига там ком-объекты? Или зачем ещё там регистрация?
По мне, так подобные утилиты обязаны быть портируемыми (не требовать установки).
0
Для получения доступа к возможностям программы из WSH скриптов, судя по всему. В принципе, если не использовать в скриптах — вероятно можно и регистрацию сервера пропустить.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.