|
На чем сделать проект с дисплеем? |
|
|
|
Jul 4 2012, 12:33
|

Участник

Группа: Участник
Сообщений: 37
Регистрация: 23-09-09
Из: Москва
Пользователь №: 52 540

|
Здравствуйте! Придумал себе устройство, которое должно выполнять следующие задачи: - снимать или выставлять показания на 20 дискретных выводов - снимать показания с 2 выводов АЦП - общаться с другим устройством по zigbee - считывать дополнительные данные с sd карточки - выводить свое состояние на большой экран, 6-7 дюймов.
От экрана я и начал плясать. Китайцы продают tft-модули с параллельным интерфейсом по 50 баксов за штуку. Цена очень привлекательна, я бы такой модуль и взял бы. Однако, выясняется, что для реализации моих хотелок для разрешения 640х480 точек необходимо порядка 6 Мб оперативной памяти (по 1 Мб на меняющиеся основной и дополнительный буферы вывода, 4 Мб для supersampling-сглаживания линий). Сглаживание линий мне довольно принципиально, потому использовать дисплей со встроенными буферами уже не сильно спасает ситуацию.
Какие бы комплектующие (помимо экрана) вы бы посоветовали бы взять? Есть ли микроконтроллеры с такой большой ОЗУ? Какой взять мк, чтобы выдержал нагрузку, и какую память, как подключать, желательно еще так чтобы в интернетах было достаточно информации?
Альтернативное устройство (китайский планшет итп) не рассматриваю - мне важно, чтобы устройство своевременно реагировало на изменение информации на датчиках. За жизнь человека не отвечает, но использовать прослойки из linux-ов уже не хотелось бы.
Благодарю за ответы.
|
|
|
|
|
Jul 4 2012, 12:55
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(Urvin @ Jul 4 2012, 16:33)  Однако, выясняется, что для реализации моих хотелок для разрешения 640х480 точек необходимо порядка 6 Мб оперативной памяти (по 1 Мб на меняющиеся основной и дополнительный буферы вывода, 4 Мб для supersampling-сглаживания линий). Во-первых, можно включить видеорежим 640x480x8bpp. Это 300 кБайт. Палитры из 256 цветов хватит за глаза, если только не захотите выводить полноцветные фотографии. Во-вторых, если изменения картинки происходят не часто, а прорисовка достаточно быстрая, то никаких тормозов на практике не заметно, то есть двойной буфер не требуется. В третьих, откуда 4 Мб для сглаживания линий? Есть алгоритмы динамической прорисовки сглаженных линий. Кроме того, часто бывает достаточно иметь заранее заготовленные картинки в флэш. Цитата(Urvin @ Jul 4 2012, 16:33)  Есть ли микроконтроллеры с такой большой ОЗУ? Нет. И на 300 кБайт тоже нет. Цитата(Urvin @ Jul 4 2012, 16:33)  Какие бы комплектующие (помимо экрана) вы бы посоветовали бы взять? Внешний графический контроллер. У Epson есть хороший ассортимент. Цитата(Urvin @ Jul 4 2012, 16:33)  Какой взять мк, чтобы выдержал нагрузку, и какую память, как подключать, желательно еще так чтобы в интернетах было достаточно информации? Любой 32-разрядный МК от 50 МГц должен подойти. Естественно, он должен стыковаться с графическим контроллером (внешняя шина). Причём желательно использовать ширину шины по максимуму для наиболее быстрой прорисовки.
|
|
|
|
|
Jul 4 2012, 13:02
|
Профессионал
    
Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008

|
Цитата(Urvin @ Jul 4 2012, 16:33)  Придумал себе устройство, которое должно выполнять следующие задачи: - снимать или выставлять показания на 20 дискретных выводов - снимать показания с 2 выводов АЦП - общаться с другим устройством по zigbee - считывать дополнительные данные с sd карточки - выводить свое состояние на большой экран, 6-7 дюймов. Вы что хотите GUI на экран и вот всю эту обработку написать на голом С/C++ без использования операционной системы? Цитата(Urvin @ Jul 4 2012, 16:33)  Какие бы комплектующие (помимо экрана) вы бы посоветовали бы взять? Есть ли микроконтроллеры с такой большой ОЗУ? Какой взять мк, чтобы выдержал нагрузку, и какую память, как подключать, желательно еще так чтобы в интернетах было достаточно информации? Судя по Вашим вопросам Вы совершенно не представляете с чем хотите связаться. Если будете продолжать в том же духе то вас ждет долгий путь с туманными перспективами. Цитата(Urvin @ Jul 4 2012, 16:33)  Альтернативное устройство (китайский планшет итп) не рассматриваю - мне важно, чтобы устройство своевременно реагировало на изменение информации на датчиках. За жизнь человека не отвечает, но использовать прослойки из linux-ов уже не хотелось бы. Вот даже если взять планшет, т.е. уже готовое железо, zigbee подключить свистком на встроенный USB-host и где то на плате найти 20 свободных GPIO, 2 входа АЦП взять с микрофонного входа и использовать "прослойки из linux-ов" и то это достаточно сложная задача. P.S. Или это я всё усложняю? С другой стороны, никаких цифр не озвучено, так что можно только гадать что имелось ввиду.
--------------------
|
|
|
|
|
Jul 4 2012, 13:02
|

Профессионал
    
Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634

|
Цитата Внешний графический контроллер. У Epson есть хороший ассортимент. Контроллер Epson S1D13781. 480 * 272, SPI интерфейс. TFT. Подойдёт?
Сообщение отредактировал Genadi Zawidowski - Jul 4 2012, 13:05
|
|
|
|
|
Jul 4 2012, 13:46
|

Участник

Группа: Участник
Сообщений: 37
Регистрация: 23-09-09
Из: Москва
Пользователь №: 52 540

|
Цитата P.S. Или это я всё усложняю? С другой стороны, никаких цифр не озвучено, так что можно только гадать что имелось ввиду. Действительно все усложняете. Я не вижу необходимости использования операционной системы для обработки датчиков в стиле (Pin1 = Pin2 && Pin3 ? 1 : 0), основная работа мк заключается в выводе нескольких показометров на экран. Сглаживание необходимо для придания устройству готового вида, дабы устранить зазубрины на стрелках и все. Какие цифры вам рассказать, я не представляю. Цитата Палитры из 256 цветов хватит за глаза, если только не захотите выводить полноцветные фотографии. Да, пожалуй, вполне подойдет. Цитата Контроллер Epson S1D13781. Недоставаемо. Цитата Вот даже если взять планшет, т.е. уже готовое железо, zigbee подключить свистком на встроенный USB-host и где то на плате найти 20 свободных GPIO, 2 входа АЦП взять с микрофонного входа и использовать "прослойки из linux-ов" и то это достаточно сложная задача. Мне кажется, что легче взять нулевой камень и написать для него чистую программу, нежели сначала раскурочить планшет, узнать, что в нем нет ни usb-хоста, ни свободных выводов, затем писать подвисающую программу под андроид или типа того (мой 700 мгц телефон подвисает с графикой, не знаю что уж у него внутри). В итоге все становится похоже на покупку Arduino для моргания светодиодом.
Сообщение отредактировал Urvin - Jul 4 2012, 13:50
|
|
|
|
|
Jul 4 2012, 14:10
|

Профессионал
    
Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634

|
Цитата Недоставаемо. Не, есть... А где искали? Или уточните страну. Если даже это останавливает... что же дальше будет, если потребуется что-то отличающееся от IN74AC74? Действительно, для выдачи показометров лучше отдельный контроллер - не будет эффекта "опускающегося занавеса" при перерисовке или смене картинки.
|
|
|
|
|
Jul 4 2012, 14:11
|

Участник

Группа: Участник
Сообщений: 37
Регистрация: 23-09-09
Из: Москва
Пользователь №: 52 540

|
GUI: никаких эффектов, ничего трехмерного, никаких даже меню. Просто набор из трех-четырех стрелочных показометров и нескольких текстовых надписей в определенных местах экрана. Сперва в буфер надо положить задний фон, считанный с карточки SD, затем на нем в нужных местах нарисовать стрелки и буквы. Почти статичная картинка, хотя показания могут меняться каждую секунду и их надо соответственно быстро отображать.
Мегабайты ОЗУ нужны для графических буферов. Пусть даже буду использовать по 256 цветов на каждую из 640х480 точек экрана, это 600 кб на два буфера. Так и быть, со сглаживанием можно повоевать, однако превращаться в филиал NVidia мне тоже не хочется, потому рассматриваю самые простые алгоритмы сглаживания границ полигонов. Тем не менее, памяти уже надо поболее того, что обычно встречается в МК.
Бекенд с обработкой портов простейший, плюс по zigbee небольшие порции данных, не чаще раза в минуту - также пара удаленных простых датчиков.
Я почему-то все думаю про реализацию видеоконтроллера и прочей мути в едином камне. Сказывается различие цены за голый tft модуль ($50) и модулем со встроенным контроллером с работой по SPI (медленно?) ($200). Еще вижу интересные примеры работы с lcd через STM32 fsmc, но там рассматриваются только мелкие экраны.
|
|
|
|
|
Jul 4 2012, 14:18
|

Профессионал
    
Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634

|
Цитата Сказывается различие цены за голый tft модуль ($50) и модулем со встроенным контроллером с работой по SPI (медленно?) ($200). Потому я и начал делать свой. Стирание экрана около 2 мс (в режиме 8 бит на пиксель, 63 МГц тактовая частота внутри контроллера) - затраты только на передачу команд. Смена цифр оставляет впечетление, как будто смотришь на газоразрядный индикатор на ИН - просто мгновенно (посторение из битмапа в видеопамяти).
|
|
|
|
|
Jul 4 2012, 14:20
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(Urvin @ Jul 4 2012, 18:11)  Сперва в буфер надо положить задний фон, считанный с карточки SD, затем на нем в нужных местах нарисовать стрелки и буквы. Если фон произвольный и есть сглаживание, то это alpha-blending, то есть геморрой. Гораздо проще, когда фон однородный. В этом случае можно прикинуться Nvidia, не так уж это и сложно. Цитата(Urvin @ Jul 4 2012, 18:11)  Я почему-то все думаю про реализацию видеоконтроллера и прочей мути в едином камне. Я выше писал про МК+SDRAM. Не совсем один камень, конечно.
|
|
|
|
|
Jul 4 2012, 15:25
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(scifi @ Jul 4 2012, 17:20)  Если фон произвольный и есть сглаживание, то это alpha-blending, то есть геморрой. Гораздо проще, когда фон однородный. В этом случае можно прикинуться Nvidia, не так уж это и сложно. Да нет никакого гемороя, в ucGUI есть антиалиасинг для всех графических примитивов. Но антиалиасинг требует повышеной мощности проца и пропускной способности видео ОЗУ. Поэтому на STM32 даже не пытался бы. Нужно выбирать процессор с отдельной шиной с DMA на дисплей (из семейства iMX например) и включать в GUI функцию прорисовки в памяти.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|