xvr 12 6 марта, 2012 Опубликовано 6 марта, 2012 · Жалоба Можете попробовать сделать что нибудь из OSD (On Screen Display) микросхем. Они еще где то должны остаться (на стадии вымирания :) ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
НЕХ 4 6 марта, 2012 Опубликовано 6 марта, 2012 · Жалоба когда-то давно делал выход на TV с монохромного дисплея с контроллером T6963. Altera 7064 и 1/8 ОЗУ 62256, один день заняло достаточное для реализации освоение ПЛИС. Одна строка ЖК дисплея 2 раза отображалась на TV, 4 раза для VGA. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lexy_one 0 7 марта, 2012 Опубликовано 7 марта, 2012 · Жалоба Тут есть следующий вопросик. я тут прикинул и получилось, что для частоты 60гц и разрешения 800*600 необходимая частота выдачи пикселей получилась - 25 Мгц.. Что будет проблематичным для большинства недорогих процессоров.... Смущает, то что в примерах с процессорным выводом стоят кварцы с более низкой частотой, и производительноастью... Может я не правильно пощитал, или вывод можно организовать каким либо "хитрым образом"??? За пример для расчета брал следующую диаграмку...(прилогаю в файле) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
madgarry 0 7 марта, 2012 Опубликовано 7 марта, 2012 · Жалоба 1056*628*60=39790080 Гц. Т.е. порядка 40 Мгц. Можно конечно уменьшить частоту кадров вдвое, но это все равно порядка 20Мгц. Можно пойти путем сокращения количества blanking строк и пикселей. Но все это полу-меры - какие-то LCD мониторы такие режимы будут поддерживать а какие-то нет. Попутно нашел вот такое решение. http://www.microvga.com Что характерно на снимке просматривается Xilinx для разветки изображения. Вторая микросхема - судя по всему микроконтроллер но какой не разобрать. Для Вас вопрос использования только микроконторллера - вопрос принципиальный? По тому как решение типа "микроконтролле+FPGA" достаточно простое. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Demeny 0 7 марта, 2012 Опубликовано 7 марта, 2012 · Жалоба Может я не правильно пощитал, или вывод можно организовать каким либо "хитрым образом"??? Правильным решением будет сделать развёртку картинки из отдельной памяти с помощью любой FPGA, а вот заполнение этой памяти процессор может вести в любом удобном ему темпе. Для этого видеобуфер делится на 2 части - одна часть разворачивается на экране, другую в этот момент заполняет процессор, и это два независимых друг от друга процесса. Как только процессор заполнил "теневую" память - он ждёт от FPGA импульса вертикальной развертки (прерывание), и в этот момент просто меняет местами теневой и текущий буфер. Это делается одной записью в регистр, без копирования всех данных. После этого FPGA начинает разворачивать на экране вновь созданное процессором изображение. Таким образом можно выводить картинки даже самыми медленными процессорами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
madgarry 0 7 марта, 2012 Опубликовано 7 марта, 2012 · Жалоба Использование встроенного SPI контроллера дает возможность понизить тактовую частоту в 8 или 16 раз. Но проблема часто бывает в том что у микроконтроллера "на борту" часто бывает только один SPI контроллер. Чтобы организовать хотя-бы двухбитовый цвет таких нужно два. Как выход из такой ситуации - можно извне микроконтроллера поставить 2...N сдвиговых регистра c параллельной загрузкой и последовательным выходом. Внутренний SPI использовать параллельно внешним сдвиговым регистрам для простоты синхронизации. По прерыванию от SPI произвести Update внешних сдвиговых регистра и загрузить их новыми значениями. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lexy_one 0 7 марта, 2012 Опубликовано 7 марта, 2012 · Жалоба Правильным решением будет сделать развёртку картинки из отдельной памяти с помощью любой FPGA, а вот заполнение этой памяти процессор может вести в любом удобном ему темпе. Для этого видеобуфер делится на 2 части - одна часть разворачивается на экране, другую в этот момент заполняет процессор, и это два независимых друг от друга процесса. Да полностью с вами согласен.... Скорее всего єто самый правильный путь для решения поставленной задачи... вопросик... Как я понимаю из ваших слов "видеобуфер делится на 2 части" - ето не делиться на 2 части, а является 2мя физически разделенними микросхемами... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Demeny 0 7 марта, 2012 Опубликовано 7 марта, 2012 · Жалоба Да полностью с вами согласен.... Скорее всего єто самый правильный путь для решения поставленной задачи... вопросик... Как я понимаю из ваших слов "видеобуфер делится на 2 части" - ето не делиться на 2 части, а является 2мя физически разделенними микросхемами... Совсем необязательно - микросхема памяти может быть одна, в ней два логических видеобуфера, ну, условно, с адреса 0 первый буфер, с адреса 0x100000 второй буфер. В регистре FPGA нужно предусмотреть бит, который указывает, из какого буфера FPGA разворачивает изображение на экран, 0 или 1, таким образом, в противоположный буфер можно процессором записывать картинку, затем, по кадровому импульсу синхронизации процессор переключает этот бит. Тут вам придётся решать вопрос с разделением циклов доступа к памяти, чтобы процессор и FPGA корректно обращались к одной и той же памяти. И разнесение буферов в 2 разные микросхемы не решает этой проблемы. Видимо, арбитражем доступа будет заниматься та же FPGA - в свободные от циклов чтения моменты разрешать процессору запись в память. Также на FPGA можно возложить синхронизацию переключения буферов с вертикальной развёрткой. Как видите, довольно запутаная история ... :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lexy_one 0 7 марта, 2012 Опубликовано 7 марта, 2012 · Жалоба Тут вам придётся решать вопрос с разделением циклов доступа к памяти Вот именно єто я и имел ввиду.... Хотя можно и позпморачиватся с арбитражем, всетаки это более дешевый (1 микросхема + место на плате) вариант, хотя и более торудоемкий. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 7 марта, 2012 Опубликовано 7 марта, 2012 · Жалоба Обратите внимание на хмегу, много SPI и DMA имеется. Когда вы определитесь с VGAрежимом, разрешением экрана и глубиной цвета тогда и нужно думать на чём можно реализовать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 54 7 марта, 2012 Опубликовано 7 марта, 2012 · Жалоба P.S. Выводить на экран необходимо текст (хотябы 2 величины шрифта с русскими символами), желательно с возможностью указания цвета шрифта, простейшие графические фигуры (прямоугольные рамки, линии), и по возможности простейшие небольшые 2х (8ми) битные изображения (хотя и не обязательно). основная проблема - вывод графики, так как потребуется буфер таких размеров что во внутреннюю память МК не влезет. с выводом текста гораздо проще (стандартный текстовый режим 80х40 = 3200 байт, еще на 2 помножить если текст цветной плюс буфер на одну строку) можно ногодрыганием практически из любого МК десяток мегагерц получить. если ограничиться 1, 8/16 цветами то с несложной внешней логикой эффективная частота вывода в 2/8 раз повышается если порт 8 бит. т.е. даже на авр можно попробовать приготовить буфер на одну строку (успеть бы за время обратного хода луча) а потом выплёвывать с тактовой частотой/3 (ld два такта?): забив память парами команд ld r0, y+; out portx, r0; если хотя бы уполовинить разрешение по горизонтали, то можно успеть. а если взять арм с 16/32 разрядными портами io, то тем более. за раз выдавать в порт 4/8 точек, а простой внешней логикой выталкивать их последовательно в VGA. stm32 / lpc11xx (правда как у них с быстродействием io - я хз) стоит от 1.5$ + 5m40Z - стоит еще дешевле. еще как вариант - adsp-bf592, стоит 6$, но зато есть человеческий параллельный порт 16бит х 66МГц. можно даже hi color - 65536 цветов сделать r-2r цапом :) но опять же только для текста, под графику памяти маловато. хотя на небольшие картинки вроде 100х100, например - хватит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VCucumber 0 8 марта, 2012 Опубликовано 8 марта, 2012 · Жалоба PIC или AVR при наличии SPI)получается только монохром 16 символов в строке Очень давно сделал вывод на VGA 32*22 символов c фонтом 13*20 и 16 цветов на mega128 16мгц без каких-либо внешних чипов. Сомтрелоссь просто супер, но только на CRT, на LCD было хуже. Для вывода на LCD частота генератора должна совпадать с VGA, иначе вертикальные линии размазывает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lexy_one 0 12 марта, 2012 Опубликовано 12 марта, 2012 · Жалоба Для вывода на LCD частота генератора должна совпадать с VGA, иначе вертикальные линии размазывает. А не подскажите, например, для 800*600 (640*480) какая должна быть частота генератора? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 12 марта, 2012 Опубликовано 12 марта, 2012 · Жалоба А не подскажите, например, для 800*600 (640*480) какая должна быть частота генератора? VGA Signal Timing Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zöner 0 12 марта, 2012 Опубликовано 12 марта, 2012 (изменено) · Жалоба получилось, что для частоты 60гц и разрешения 800*600 необходимая частота выдачи пикселей получилась - 25 Мгц.. Что будет проблематичным для большинства недорогих процессоровможно снизить разрешение до 320х200, частота пикселей сильно упадет. У многих контроллеров есть параллельные порты с DMA (FSMC у STM32, Paralel port у PIC). 8 бит на точку - 3+3+2, и нужен контроллер с минимум 64К ОЗУ. Изменено 12 марта, 2012 пользователем zöner Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться