Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: VGA контролер
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Языки проектирования на ПЛИС (FPGA)
andriyXA
Делаю VGA контролер в квартусе кто-то знает как считать с интерфейса разрешения экрана
Maverick
Цитата(andriyXA @ Jun 12 2017, 20:42) *
Делаю VGA контролер в квартусе кто-то знает как считать с интерфейса разрешения экрана

это что за сообщение?
читаем правила:
Цитата
3.2 Создавать два или более сообщения (темы) одинакового содержания (кросспост). Также настоятельно рекомендуется еще до создания нового сообщения воспользоваться поиском для проверки наличия в форуме топика с обсуждением интересующего вопроса. Модератор имеет право закрыть дубликат темы без объяснения причины или удалить ее совсем.


Пока устное предупреждение
andriyXA
До конц не могу понять как выделить с порта разрешения корое посылает монитор на схему
Maverick
Цитата(andriyXA @ Jun 12 2017, 21:00) *
До конц не могу понять как выделить с порта разрешения корое посылает монитор на схему

Вам же ответили
или же запрограммировать на нужное Вам (Вам привел пример ниже программирования)...
andriyXA
Я пишу контролер на базе FPGA необходимо считать данные о расширении это на данный момент не могу сделать , по ключевому слову не нашёл аналогов
Maverick
Цитата(andriyXA @ Jun 12 2017, 21:05) *
Я пишу контролер на базе FPGA необходимо считать данные о расширении это на данный момент не могу сделать , по ключевому слову не нашёл аналогов

плохо искали

или в гугл
andriyXA
Тогда не подскажете ключевое слово чтоб найти нужную тему
Maverick
Цитата(andriyXA @ Jun 12 2017, 21:29) *
Тогда не подскажете ключевое слово чтоб найти нужную тему

в сообщении есть ссылка (подчеркнутое слово/словосочетание)
andriyXA
Вы мне дали ссылку на файл EDID я и так понимаю как его считывает ПК мне интересно как можно считать нужную инфу с помощью VHDL
Flip-fl0p
Цитата(andriyXA @ Jun 16 2017, 15:10) *
Вы мне дали ссылку на файл EDID я и так понимаю как его считывает ПК мне интересно как можно считать нужную инфу с помощью VHDL

Вы пишете I2C MASTER и им считываете с EEPROM данные, которые вам нужны.
iosifk
Цитата(andriyXA @ Jun 16 2017, 15:10) *
Вы мне дали ссылку на файл EDID я и так понимаю как его считывает ПК мне интересно как можно считать нужную инфу с помощью VHDL

Общий порядок такой:
1. Рисуете алгоритм вычислений
2. По нему рисуете блок-схему вычислителя
3. Блок-схему вычислителя описываете на VHDL

Сам по себе " I2C MASTER" - это только часть "вычислителя". чтобы считать что-то, нужно инициировать это действие, получить данные, преобразовать их и по результатам произвести подстройку VGA контроллера.
andriyXA
Сам VGA контролер построен но он работает с конкретным расширениям , вопрос сделать его ниверсальным и чтоб он сам понимал под какое расширения работать
iosifk
Цитата(andriyXA @ Jun 16 2017, 16:33) *
Сам VGA контролер построен но он работает с конкретным расширениям , вопрос сделать его ниверсальным и чтоб он сам понимал под какое расширения работать

Еще раз более подробно напишите, как Вы это себе представляете, чтобы он "сам"... И без "щуки"...
andriyXA
ОН получает данные с 12С о разширении передает их в другой блок , в котором заранее возможные варианты по тому что выдавать в зависимости от входов, потом передаются даные на горизонтальную и вертикальные синхронизации , в принципе как-то так
Flip-fl0p
Цитата(andriyXA @ Jun 17 2017, 19:02) *
ОН получает данные с 12С о разширении передает их в другой блок , в котором заранее возможные варианты по тому что выдавать в зависимости от входов, потом передаются даные на горизонтальную и вертикальные синхронизации , в принципе как-то так

Вот Вы только-что расписали сами, что необходимо сделать:
1. Написать устройство I2C которое считывает данные о расширении с монитора.
2. Написать блок, в который в зависимости от поступивших данных с I2C выдает команду VGA контроллеру в каком режиме ему работать.
3. Ну и придумать способ инициализации начала считывания I2C контроллером данных EDID.
Это в первом приближении.
andriyXA
В этом то и проблема я не полностью понимаю как выделить конкретно данные из 12С чтоб получить не всю информацию а только разширения
Flip-fl0p
Цитата(andriyXA @ Jun 17 2017, 19:32) *
В этом то и проблема я не полностью понимаю как выделить конкретно данные из 12С чтоб получить не всю информацию а только разширения

Ну для начала изучайте как работает I2C.Вот ссылка для примера http://easyelectronics.ru/interface-bus-iic-i2c.html
Если вкратце:
1. Старт условие
2. Адрес EEPROM
3. Бит указывающий, что вы обращаетесь с чтением.
4. Проанализировать ответила ли EEPROM. Т.е Выполнилось ли ACK условие.
5. Повторный старт
6. Адрес ячейки, где расположено разрешение.
7. Прочитали 1 байт подали ACK условие.
8. Когда прочитали все-что нужно подаете NACK.
9. Потом подаете стоп условие.
Это опять-же в первом приближении, и при условии, что данные о разрешении находятся в соседних ячейках. В противном случае надо по-другому будет читать.
Но в любом варианте необходимо разобраться с i2c протоколом.
Ключевой пункт - пункт 6. Работая с EEPROM вы имеете полное право указывать при обращении адрес ячейки с которой хотите общаться. Вот только если ячейки расположены не подряд, то после каждого прочитанного байта, необходимо будет завершать чтение, и снова обращаться с новым адресом ячейки.
andriyXA
А нет примера работы с 12с masters
Flip-fl0p
Цитата(andriyXA @ Jun 17 2017, 20:33) *
А нет примера работы с 12с masters

Есть первая же ссылка в GOOGLE.RU по запросу "i2c vhdl"
Хотя не уверен, что там есть возможность выдавать повторный старт для указания адреса, но не думаю, что будут особые сложности добавить его самостоятельно. Проще самому написать, тем более реализовать I2C MASTER куда проще чем I2C SLAVE.
andriyXA
12c master проще но осталось разобраться в работе а я никогда не работал с 12с ещё
Flip-fl0p
Цитата(andriyXA @ Jun 17 2017, 21:09) *
12c master проще но осталось разобраться в работе а я никогда не работал с 12с ещё

Абсолютно ничего сложного. Инфомации в сети более чем достаточно, при том есть как на русском языке, так и на иностранном. Да и примеры в сети есть. Всё в Ваших руках.
Maverick
по ссылке (ссылка действует в течении 7 дней)
по ссылке xapp 333 (с исходниками)
Golikov A.
Цитата
. Когда прочитали все-что нужно подаете NACK.

Может я чего то забыл, но зачем пороть обмен ошибкой перед завершением? Для штатного окончания есть стоп последовательность, НАК то зачем?
Flip-fl0p
Цитата(Golikov A. @ Jun 19 2017, 09:18) *
Может я чего то забыл, но зачем пороть обмен ошибкой перед завершением? Для штатного окончания есть стоп последовательность, НАК то зачем?

Это стандартный ответ мастера когда он больше не нуждается в услугах SLAVE. Во всяком случае во всех datasheet на I2C EEPROM описано именно так. Вот к примеру http://www.atmel.com/images/Atmel-8700-SEE...C-Datasheet.pdf (стр. 11). - окончанию чтения предшествует ответ мастера NACK.
Golikov A.
ох и правда по окончанию чтения мастер накает, спасибо.
sonycman
Цитата(Golikov A. @ Jun 19 2017, 11:57) *
ох и правда по окончанию чтения мастер накает, спасибо.

Nack для того, чтобы слейв освободил шину и не мешал, когда мастер будет выставлять стоп или повторный старт.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.