Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА: VGA

VGA 10 года 10 мес. назад #2089

  • Alucard
  • Alucard аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 208
  • Спасибо получено: 20
Доброго времени суток.
В рубрике Марсоход2 есть проект с выводом изображения из ОЗУ в VGA формат (640x480@60Hz).
Можно ли сделать подобное на плате Марсоход1 с EPM240? Имеется одна такая плата и одна микросхема ОЗУ с параллельным доступом (CY7C1019DV33-10ZSXI), чего должно хватить на изображение 320x240x8bb.
В дальнейшем, планируется отправлять плате картинку по шине данных, а она уже сама перенаправит ее в ОЗУ. Так как озу не может работать только с одним устройством - разделить работу так: четные такты - отправляем изображение в vga, нечетные - принимаем изображение из источника.

К сожалению, у меня опыт совсем небольшой с CPLD. Существуют ли подобные проекты? Хватит ли одной EPM240 на эту задачу?
---
Заранее, Спасибо.
Спасибо сказали: Mastar24

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: VGA 10 года 10 мес. назад #2090

В принципе ничего особе сложного нет, что-то подобное было здесь - marsohod.org/projects/plata1/174-phframe3
Но у марсохода мало свободных ног. Можно, для начала, также как в указанном проекте, сократить шину данных до 3х бит,
но все равно не хватит ног на адреса. Да и данные в экран через что-то нужно писать :(
Спасибо сказали: Mastar24

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: VGA 10 года 10 мес. назад #2091

  • Alucard
  • Alucard аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 208
  • Спасибо получено: 20
Спасибо за ответ.
Насчет ног... У EMP240 вроде бы 80портов I/O. Тогда получается: 17бит addr + 8бит data + 3 управляющие + 8бит ЦАП + 17бит addr внешн. + 8бит data внешн. = 61порт. (если не ошибаюсь)
Разрешение можно до 272x208 снизить.

Для меня самая большая сложность - реализация самого VGA интерфейса, я никак не могу сообразить как это все построить на лог.элементах :(

Да и данные в экран через что-то нужно писать

Для этого у меня уготован микроконтроллер.

PS: Также имеется отдельная микросхема EPM240.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Alucard.

Re: VGA 10 года 10 мес. назад #2092

Ну если с пинами проблем нет, то тогда последовательность действий может быть следующая:
- найти генератор на нужную частоту. Дотклок для 800х600 40мгц, значит вам нужен на 80 (для 640х480 - не помню)
- Сделать синхрогенератор для нужного вам режима, и добиться чтобы ваш монитор этот режим держал
Синхрогегераторы, только на 800х600 есть, например, здесь -https://marsohod.org/projects/plata1/7-videogametennis
и здесь - marsohod.org/projects/plata1/164-vga
- далее, можно подать на даки сигналы с синхрогенератора со счетчика точек (или строк), должны получиться вертикальные (или горизонтальные)
цветные полосы
- затем уже пытаться выводить на экран содержимое ОЗУ (скорее всего будет какая-то белиберда)
- и , наконец, научиться в это озу писать :)
Спасибо сказали: Alucard, Mastar24

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: VGA 10 года 10 мес. назад #2093

Ну никто не мешает для ввода данных использовать SPI или I2C шину. Можно и в упрощённом варианте. Сэкономит немного ножек.
Спасибо сказали: Alucard, Mastar24

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: VGA 10 года 10 мес. назад #2095

  • Alucard
  • Alucard аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 208
  • Спасибо получено: 20
Еще один вопрос. Можно ли пины так объединять и к счетчику?
Вложения:
Спасибо сказали: Mastar24

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Alucard.

Re: VGA 10 года 10 мес. назад #2096

  • Alucard
  • Alucard аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 208
  • Спасибо получено: 20
Нужно чтобы счетчик "считал" адреса, до тех пор пока есть 1 на управляющем сигнале. Если ноль, то остановиться, а при единице считать заново. Правильно ли я сделал? (я немного запутался в этих мегафункциях...:) )
Спасибо сказали: Mastar24

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: VGA 10 года 10 мес. назад #2097

Alucard пишет: Нужно чтобы счетчик "считал" адреса, до тех пор пока есть 1 на управляющем сигнале. Если ноль, то остановиться, а при единице считать заново. Правильно ли я сделал? (я немного запутался в этих мегафункциях...:) )

1. Неправильно. Как только появится ноль на вашем управляющем сигнале, сразу-же сбросится счетчик.
Вам нужно определиться, в какой такт и что должно происходить.
2.Гораздо проще было-бы создать входной пин с именем ADDRRAM[16..0] ли и a[16..0], было бы гораздо меньше "рисовалки"
И еще , у счетчика a[x.. - старший бит.
3. Возьмите за провило хорошего тона не переворачивать символы. Входы всегда должны быть слева, а выходы справа, иначе, через некоторое
время , сами будете путаться.
Почитайте для ознакомления статьи о графическом дизайне здесь - marsohod.org/index.php/aquartus2
Спасибо сказали: Alucard, Mastar24

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: VGA 10 года 10 мес. назад #2098

  • Alucard
  • Alucard аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 208
  • Спасибо получено: 20


Есть ли разница в этих двух схемах?
Тут идея в том: когда управляющий ==0, то на выводе появляется Z состояние, если ...==1, то идет GND или VCC. Все это нужно для работы со SRAM. (data)

PS: Замучил, наверное, вас глупыми вопросами...
Вложения:
Спасибо сказали: Mastar24

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Alucard.

Re: VGA 10 года 10 мес. назад #2099

Нижняя правильная.
Да и верхняя будет правильная, если "opndrn" убрать :)
Спасибо сказали: Mastar24

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.254 секунд
Работает на Kunena форум