Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Подключение LCD к ПЛИС
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
the Devil incarnate
Всем привет. Только начинаю изучать ПЛИС, в наличии Spartan 3E на отладочной плате. Хочется запустить LCD-дисплей, такой вот. Написал на VHDL все пункты инициализации, погонял на симуляторе, всё, вроде, работает. Осталось только один пункт выполнить, а именно, вывод изображения по SPI. Сам SPI уже организовал. А как изображение описать на VHDL, не знаю. Может кто знает?
Lmx2315
QUOTE (the Devil incarnate @ Jul 17 2013, 19:40) *
А как изображение описать на VHDL, не знаю. Может кто знает?

..массив наверное надо создать с изображением, как же ещё.
Внутри массива разноцветные точки, размерности массива - координаты.
Александр77
А какое изображение то генерить?
Произвольное изображение скорее всего надо хранить в памяти.(это мое мнение)
Легче сгенерировать "тестовое" изображение, например шахматное поле, цветовые полосы и т.п.
Iptash
Видимо сначала надо научиться выводить точку на экран по заданным координатам и цвета (т.е. создать функцию). Потом изучить например BMP файл.
Создать функцию декодирования bmp файла. И все, загружаете bmp изображение через например RS232 в ваш чип и ...
Александр77
Выкинуть 56 первых байт дело не хитрое. Что делать когда картинка больше области экрана - вот где страсти начинаются.
Maverick
Цитата(the Devil incarnate @ Jul 17 2013, 18:40) *
Всем привет. Только начинаю изучать ПЛИС, в наличии Spartan 3E на отладочной плате. Хочется запустить LCD-дисплей, такой вот. Написал на VHDL все пункты инициализации, погонял на симуляторе, всё, вроде, работает. Осталось только один пункт выполнить, а именно, вывод изображения по SPI. Сам SPI уже организовал. А как изображение описать на VHDL, не знаю. Может кто знает?

на мой взгляд надо еще организовать в памяти (SRAM, DDR или какой-то другой) фрейм-буфер на 2 экрана. Из одного фрейм-буфера происходит постоянная вычитка (вывод на экран изображение - обновление экрана), в это время обновляется (перезаписывается в памяти) другой фрейм-буфер для другого изображения (следующий экран). Как только формирование нового экрана закончилось, т.е. второй фрейм-буфер переписался - переключается вычитка на второй фрейм-буфер. Начинает обновляться первый фрейм-буфер новым изображением, т.е. перезаписывается в памяти. И так далее по кольцу...
Откуда и как будут формироваться/поступать изображения Вам решать...и как управлять Touch Screen Interface тоже...
P.S. SPI serial для вывода изображения не очень хороший интерфес, лучше 18-bit parallel, 16-bit parallel, 8-bit parallel, но конечно все зависит какое обновление экрана Вы хотите т.е. от кадров/сек или частей кадра...
Александр77
Если картинка статична и меняется очень редко, то можно хранить ее во внешней памяти (если внутренняя память меньше размера изображения), из внутренней сделать двухпортовую на одну строку.
the Devil incarnate
Прочитал всё вышенаписанное и понимаю, что никто не подключал LCD-шку к ПЛИСине, у всех, как и у меня, только какие-то абстрактные идеи и ничего конкретного. Ну, ничего не поделать! Придётся самому бурить эту скважину. Буду пробовать, конечно сначала какое-то тестовое изображение, может просто точку (хотя, она слишком маленькая, на мой взгляд, и её можно не заметить), а потом уже и с динамикой можно разобраться. Главное, понять принцип, что писать, куда писать и как. А этого-то пока и не понятно. Видимо, сказывается нехватка знаний в области языка VHDL.
DASM
RTL Hardware Design книга автора Chou. Там правда VGA контроллер разобран с примерами, но описанные принципы понятны даже начинающему.
Inanity
Цитата(the Devil incarnate @ Jul 18 2013, 10:23) *
Прочитал всё вышенаписанное и понимаю, что никто не подключал LCD-шку к ПЛИСине, у всех, как и у меня, только какие-то абстрактные идеи и ничего конкретного. Ну, ничего не поделать! Придётся самому бурить эту скважину. Буду пробовать, конечно сначала какое-то тестовое изображение, может просто точку (хотя, она слишком маленькая, на мой взгляд, и её можно не заметить), а потом уже и с динамикой можно разобраться. Главное, понять принцип, что писать, куда писать и как. А этого-то пока и не понятно. Видимо, сказывается нехватка знаний в области языка VHDL.

Очень смелое предположение. На языке описания цифровых схем изображение никто не описывает, это очень странно и нерационально. Для тестирования вам выше советовали вывести изображение какой-нть периодической структуры, это простой, понятный и незатратный тест. Для вашего дисплея всё уже давно придумано. И память есть и интерфейс к ней, остаётся только использовать по назначению.

Если хотите что-то интересное, возьмите LCD без контроллера с параллельным или lvds интерфейсом (подойдёт матрциа от ноута или же тот же VGA монитор). Прикрутите к нему фреймбуфер на двухпортовой памяти, добавьте разные интерфейсы для работы с этим фреймбуфером (SPI, I2C, UART). В плане обучения для начала будет полезно. На ПЛИС вообще очень много чего можно делать, лишь бы фантазия была. Удачи!
flopix
Вот интересная статья почти по теме с примером
http://habrahabr.ru/post/157863/
DASM
По моему, имея ФПГА под рукой - подключать дисплеи со встроенным контроллером - убожество. За небольшие деньги есть 7 и более дюймов с LVDS - вот их подключить куда интереснее
izerg
Цитата(DASM @ Jul 18 2013, 12:05) *
По моему, имея ФПГА под рукой - подключать дисплеи со встроенным контроллером - убожество. За небольшие деньги есть 7 и более дюймов с LVDS - вот их подключить куда интереснее


Маркировку дисплея для примера приведете?
DASM
ну я такой наверное купил бы http://www.wayengineer.com/index.php?main_...roducts_id=4842
Для ихнего FPC коннектора есть breakout http://www.seeedstudio.com/wiki/index.php?title=LCD_EXT
Ну или вот брендовый InnoLux с даташитом http://www.wayengineer.com/index.php?main_...p;products_id=7
the Devil incarnate
Цитата(Inanity @ Jul 18 2013, 11:42) *
...Для вашего дисплея всё уже давно придумано. И память есть и интерфейс к ней, остаётся только использовать по назначению...

Вот именно, что придумано. Только на данный момент я не понимаю, как изображение (любое, даже тестовое) вывести на экран. Какой код написать. Мне бы с этого начать. В теории то я всё понимаю, а вот как эту теорию в код превратить, не понимаю. Ещё раз повторюсь, что я только начинаю изучать ПЛИС. А идей-то полно, это же ПЛИС, практически неисчерпаемый инструмент. Твари что угодно.
DASM
ага, твари еще те.. может со светодиодов начать тогда ?
flopix
Построение графики это не задача для ПЛИС. Хотите поэксперементировать - прошейте в вашу ПЛИС дополнительно какое нибудь ядро процессора и выводите изображение читая например с карты памяти.
DASM
ну графика она понятие растяжимое.. кто мешает небольшой OpenGL сопроцессор замутить в ней ? А процик то как раз тормозил бы на этой задаче..
akorud
Цитата(the Devil incarnate @ Jul 18 2013, 15:33) *
это же ПЛИС, практически неисчерпаемый инструмент. Твари что угодно.

Ох как много открытий вас ждет sm.gif. ИМХО - ПЛИС отличный, дорогой, специализированный инструмент который надо использовать когда нет другого выхода. Практически как девиз студии Лебедева sm.gif
Если что - мы используем, но если бы можно было - с удовольствием применил бы DSP.
DASM
Ну.. я вот жду такого же ПЛИС как Zynq (2 * Cortex A9 + FPGA) и плюс еще C64x ядро. Но вряд ли дождусь по лицензионным соображениям. А какие собственно DSP задачи не решить на ПЛИС то ? Ну медленне там МАК выходит, ну так их можно 200 штук в средненькой ПЛИСке загнать, уже кроет С64 с его 6-ю как бык овцу..
Maverick
Цитата(the Devil incarnate @ Jul 18 2013, 16:33) *
Вот именно, что придумано. Только на данный момент я не понимаю, как изображение (любое, даже тестовое) вывести на экран. Какой код написать. Мне бы с этого начать. В теории то я всё понимаю, а вот как эту теорию в код превратить, не понимаю. Ещё раз повторюсь, что я только начинаю изучать ПЛИС. А идей-то полно, это же ПЛИС, практически неисчерпаемый инструмент. Твари что угодно.

так Вам может начать с теории как строиться изображение на экране/дисплее и как оно там выводиться?

Цитата(flopix @ Jul 18 2013, 16:49) *
Построение графики это не задача для ПЛИС. Хотите поэксперементировать - прошейте в вашу ПЛИС дополнительно какое нибудь ядро процессора и выводите изображение читая например с карты памяти.

можно и без процессора.
например для генерации какой-то тестовой картинки можно сделать и на логике с помощью небольшой FSM (какие-нибудь полосы- вертикальные, горизонтальные, наклонные), но начать наверно надо хотя бы с обычного закрашивания экрана...
Наклонные полосы хорошо проверяют синхронизацию и все устнановки счетчиков схемы...
Некоторые делают даже и вывод текста
akorud
Цитата(DASM @ Jul 18 2013, 17:07) *
Ну.. я вот жду такого же ПЛИС как Zynq (2 * Cortex A9 + FPGA) и плюс еще C64x ядро. Но вряд ли дождусь по лицензионным соображениям. А какие собственно DSP задачи не решить на ПЛИС то ? Ну медленне там МАК выходит, ну так их можно 200 штук в средненькой ПЛИСке загнать, уже кроет С64 с его 6-ю как бык овцу..

Я вот кстати не понимаю почему на него все так молятся. Пробовали примерить к своим задачам - ну никак. И процессор слабый (точнее периферии мало) и логики мало. Куда универсальнее связка CPU + FPGA на плате.
А по теме - вы неправильно поняли. У нас задача которую можно решить только на ПЛИС. Можно бы было решить на DSP - выбрали бы его (что-то SC3850, мне больше нравится).
Но приходится платить - долго, дорого, и ограниченные возможности конфигурации в процессе работы (а с partial reconfiguration ох как не хочется связывается).
DASM
Видимо задачи разные. Какой перифирии мало? Ее же сам на фпга и делаешь. 50000 лутов это конечно не Стратиксы, но хватит на многое. Объясню, что привлекло меня. Шина. AXI . Она быстрая, она документирована, это АРМ. Даже два по 800 мгц с NEON SIMD блоками, с двойной точностью. Это 4 way cache (емнип у с64 2way). итого за сотку баксов чип, который поддерживается Линуксом и Андроидом. Плюс виртуальная мауетка в виде фпга, на которую я могу повесить какую угодно перифирию на быструю шину. Какие альтернативны? Ну да ,Циклон5, ну так он же брат близнец.
akorud
Цитата(DASM @ Jul 18 2013, 18:30) *
Видимо задачи разные. Какой перифирии мало? Ее же сам на фпга и делаешь. 50000 лутов это конечно не Стратиксы, но хватит на многое. Объясню, что привлекло меня. Шина. AXI . Она быстрая, она документирована, это АРМ. Даже два по 800 мгц с NEON SIMD блоками, с двойной точностью. Это 4 way cache (емнип у с64 2way). итого за сотку баксов чип, который поддерживается Линуксом и Андроидом. Плюс виртуальная мауетка в виде фпга, на которую я могу повесить какую угодно перифирию на быструю шину. Какие альтернативны? Ну да ,Циклон5, ну так он же брат близнец.

"Ну а теперь со всем этим мы попробуем взлететь" (с) sm.gif
Ну вот например мало мне интерфейсов сетевых - делать на дорогущей логике класса Kintex? Ну уж извините, у нас частная фирма, нам зарабатывать надо sm.gif
АРМ который поддерживается Линуксом и Андроидом - ну окошки порисовать красиво, да, не спорю sm.gif. Да и не слишком он и быстрый... У нас половина инженеров себе ZedBoard купили поиграться, но задачи у нас несколько иные. А AXI мы используем - хорошая вещь, очень.
DASM
Ну зато теперь знаю кого по Axi мучить. А раз половина купила — ну ведь не дураки у вас инженеры? я вот думаю что в ближайшие годы это станет основным трендом, фпга без арм станут архаикой (обратно не верно).Так что если звезды зажигают — значит кому-то это нужно. Я себе задачу нашел под Zynq, должен потянуть. Ну а в некоторых задачах только ASIC прокатит, цена за фпга кажется бросовой. Так что спор ни о чем. SoC в виде Virtex и, особенно, дешевые варианты Циклонов 5 и Zynq уверен имеют огромное будущее.
akorud
Да ясно, что спор ни о чем, с самого начала, и не спор, а дискуссия. Просто у меня тесты крутятся, делать нечего. А вот ТС мы уже совсем перепугали и запутали.
DASM
да чего тут путать, книга Чоу и вперед. Меня правда несколько удивил подход всю комбинаторику выносить always @* , я то обычно простые ветвления делаю в синхронном блоке, так короче. Но с другой стороны книга ясная и абсолютно понятная и полезная.
Maverick
Цитата(DASM @ Jul 18 2013, 21:33) *
...SoC особенно, дешевые варианты Циклонов 5 и Zynq ...

было бы не плохо если еще подешевеле
izerg
Цитата(DASM @ Jul 18 2013, 13:17) *
ну я такой наверное купил бы http://www.wayengineer.com/index.php?main_...roducts_id=4842
Для ихнего FPC коннектора есть breakout http://www.seeedstudio.com/wiki/index.php?title=LCD_EXT
Ну или вот брендовый InnoLux с даташитом http://www.wayengineer.com/index.php?main_...p;products_id=7

Странно, посмотрел - интерфейсы паралельные,
Цитата(DASM @ Jul 18 2013, 12:05) *
За небольшие деньги есть 7 и более дюймов с LVDS - вот их подключить куда интереснее

Может не туда смотрел?
DASM
Да, прошу прощения, это параллельные, но они rgb, ни памяти кадра, ни мозгов у них нет, ПЛИС нужна. С лвдс идут уже мониторные панели.
izerg
Цитата(DASM @ Aug 8 2013, 07:36) *
С лвдс идут уже мониторные панели.

sm.gif
Таблица интерфейсов
Примерный экземпляр.

Оказывается бывают и не мониторные. Но пока особой разницы по подключению - не заметил, хотя сигналов чуть меньше.
SpyBot
Цитата(the Devil incarnate @ Jul 18 2013, 10:23) *
Прочитал всё вышенаписанное и понимаю, что никто не подключал LCD-шку к ПЛИСине, у всех, как и у меня, только какие-то абстрактные идеи и ничего конкретного.

Мне кажется, что как раз именно конкретики было много, и ее вы как раз то и не поняли wink.gif
На альтере вроде вашу задачу проще реализовать, т.к. имеются большие объемы памяти, с возможностью предварительной инициализации.
Вот, например, в самый мелкий циклон2 помещается картинка для дисплея 320х240 с 24-х битным цветом!
(здесь правда 24 битность не видна, т.к. картинка тестовая для подгонки RGB sm.gif но реально цвет именно 24 битный!)
DASM
Всегда демонстрирую начальству исключительно голых баб на ЖКИ, очень повышает тонус и зп
Corner
У меня электролюминесцентник подключен к связке 5576ХС1 + 1986ВЕ91Т, в ПЛИС только генератор физического уровня, а картинка в Кортексе в ОЗУ. Ничего так, работает.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.