реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> MicroBlaze & XPS_TFT, Вывода на VGA монитор
xor.kruger
сообщение Nov 27 2012, 15:43
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 290
Регистрация: 17-08-08
Из: Чернигов
Пользователь №: 39 647



Доброго времени суток!

Решил к платке Spartan3E StarterKit (spartan3e500) прикрутить стандартную корку XPS_TFT от Xilinx.
Судя по документации данная корка умеет работать как с DVI интерфейсом (используя все навороты и конфигурацию по шине I2C) так и с простыми VGA дисплеями.

В опциях корки указал следующие параметры:
Код
BEGIN xps_tft
PARAMETER INSTANCE = xps_tft_0
PARAMETER HW_VER = 2.01.a
PARAMETER C_DCR_SPLB_SLAVE_IF = 1
PARAMETER C_TFT_INTERFACE = 0
PARAMETER C_DEFAULT_TFT_BASE_ADDR = 0x47000000
PARAMETER C_SPLB_BASEADDR = 0x86e00000
PARAMETER C_SPLB_HIGHADDR = 0x86e0ffff
BUS_INTERFACE MPLB = mb_plb
BUS_INTERFACE SPLB = mb_plb
PORT SYS_TFT_Clk = clock_generator_0_CLKOUT3
PORT TFT_HSYNC = xps_tft_0_TFT_HSYNC
PORT TFT_VSYNC = xps_tft_0_TFT_VSYNC
PORT TFT_VGA_R = xps_tft_0_TFT_VGA_R
PORT TFT_VGA_G = xps_tft_0_TFT_VGA_G
PORT TFT_VGA_B = xps_tft_0_TFT_VGA_B
PORT IP2INTC_Irpt = xps_tft_0_IP2INTC_Irpt
END

На плате также имеется банка DDR памяти размером в 64 МБайта. Адресное пространство у нее составляет 0x44000000 - 0x47ffffff.
Соответственно базовый адрес для видеопамяти в ОЗУ составляет - 0x47000000
Так как каждый из трех каналов является 6ти разрядным - то пины в ucf файле прописаны следующим образом:
Код
# VGA

Net xps_tft_0_TFT_HSYNC_pin LOC=F15 |  IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST;
Net xps_tft_0_TFT_VSYNC_pin LOC=F14 |  IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST;

Net xps_tft_0_TFT_VGA_R_pin<5> LOC=H14 | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST;
Net xps_tft_0_TFT_VGA_R_pin<*>  IOSTANDARD = LVTTL;
Net xps_tft_0_TFT_VGA_G_pin<5> LOC=H15 | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST;
Net xps_tft_0_TFT_VGA_G_pin<*>  IOSTANDARD = LVTTL;
Net xps_tft_0_TFT_VGA_B_pin<5> LOC=G15 | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST;
Net xps_tft_0_TFT_VGA_B_pin<*>  IOSTANDARD = LVTTL;


В общем суть проблемы следующая - на разъем "валят" hsync и vsync с нужными таймингами (монитор отлично определяет режим), а вот картинки нету вообще, то есть на линиях данных постоянно находится лог. ноль (проверял осциллографом). Данная проблема имеет место быть если вывод осуществляется как с помощью Standalone так и при использовании GNU/Linux (Framebuffer и все дела...)

Кто нибудь использовал данную кору? Были бы какие нибудь проблемы, или же наоборот - успех? sm.gif
Заранее спасибо за любой ответ sm.gif
Go to the top of the page
 
+Quote Post
xor.kruger
сообщение Nov 29 2012, 09:45
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 290
Регистрация: 17-08-08
Из: Чернигов
Пользователь №: 39 647



Добился вывода на монитор standalone приложением. Проблема была в том (хотя как бы проблемой это не совсем можно назвать), что кэшировалась область ОЗУ, по которой была "расположена" видеопамять.

Теперь буду добиваться вывода консоли линукса через фреймбуфер (драйвер xilinxfb)
Go to the top of the page
 
+Quote Post
xor.kruger
сообщение Nov 30 2012, 21:43
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 290
Регистрация: 17-08-08
Из: Чернигов
Пользователь №: 39 647



В общем драйвер фрейм-буффера от xilinx в составе ядра GNU/Linux вполне сносно работает, а в купе с xilinx_ps2 получается очень сносная игрушка sm.gif
Go to the top of the page
 
+Quote Post
Serb1987
сообщение Dec 11 2012, 09:18
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 12-11-12
Пользователь №: 74 345



Добрый день, а вы не могли бы более подробно объяснить как подключить данный IPCore (к Microblaze, я так понимаю) при помощи EDK или ISE. Простите за тупые вопросы но я новичек и очень хочу разобраться в тонкостях данного вопроса.
С уважением!
Go to the top of the page
 
+Quote Post
xor.kruger
сообщение Dec 12 2012, 08:58
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 290
Регистрация: 17-08-08
Из: Чернигов
Пользователь №: 39 647



Создаете проект в EDK с необходимой вам периферией. Потом через IP-Catalog добавляете кору XPS_TFT, минимальное требование для данной коры - это наличие ОЗУ, в моем случае это была DDR-ка повешенная на PLB шину.
В опциях коры указываете базовый адрес видеопамяти в ваше ОЗУ и как будут выводится данные на монитор - TFT или VGA (я использовал VGA). VGA выбирается в том случае если снята галочка с опции C_TFT_INTERFACE. Потом цепляете MPLB и SPLB на шину PLB и генерите адреса для коры.

Также для данной коры необходим сигнал тактирования в 25 МГц, их можно получить как с помощью коры Clock_generator так и зависти снаружи, например, от кварцевого генератора. Во вкладке Ports указываете внешние порты и источник тактирования коры (линию прерывания я не использовал). Минимальный набор внешних портов - HSYNC, VSYNG и RGB.
Теперь осталось дело за малым - описать сигналы в ucf-файле.
Проверка работоспособности происходит очень просто - если все правильно подключено, сразу после заливки битника в ПЛИС вы увидите мусор на экране.
Пример работы на C с этой корой можно найти в каталоге
Код
Xilinx/14.3/ISE_DS/EDK/sw/XilinxProcessorIPLib/drivers/tft_v3_00_a

Если юзаете Linux на микроблейзе то драйвер там также имеется - заводится с пол-пинка.
Так что как видите никаких тонкостей в данном вопросе нету sm.gif
Go to the top of the page
 
+Quote Post
Serb1987
сообщение Dec 12 2012, 12:40
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 12-11-12
Пользователь №: 74 345



Спасибо, буду пробовать, но я думаю что еще обращусь к вам за помощью wink.gif
Go to the top of the page
 
+Quote Post
Serb1987
сообщение Dec 12 2012, 13:38
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 12-11-12
Пользователь №: 74 345



Подскажите, как установить опции корки - вообще не могу найти(открыл configure IP, но там ничего толком нет)?
Как должны соотносится адреса (бэйс и хай) корки с остальной периферией?
На всякий случай - у меня версия пакета ISE 14.2
Спартан 3Е Стартер кит

Сообщение отредактировал Serb1987 - Dec 12 2012, 13:39
Go to the top of the page
 
+Quote Post
xor.kruger
сообщение Dec 12 2012, 14:14
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 290
Регистрация: 17-08-08
Из: Чернигов
Пользователь №: 39 647



Цитата
открыл configure IP, но там ничего толком нет

Как это нету? Смотрите внимательно!
В configure IP необходимо убрать галочку напротив C_TFT_INTERFACE и указать адрес в ОЗУ по которому будут располагаться ваши данные.
Цитата
Как должны соотносится адреса (бэйс и хай) корки с остальной периферией?

Думаю что в вашем случае все равно, выставите размер адресного пространства 64К и перегинерируйте адреса с помощью кнопки "Generate Address"
Go to the top of the page
 
+Quote Post
xor.kruger
сообщение Dec 12 2012, 16:10
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 290
Регистрация: 17-08-08
Из: Чернигов
Пользователь №: 39 647



ЗЫ: фото коры в действие под "управлением" драйвера xilinxfb (качество не очень)

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
toshas
сообщение Dec 13 2012, 09:55
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 372
Регистрация: 14-02-06
Пользователь №: 14 339



Цитата(Serb1987 @ Dec 12 2012, 17:38) *
Подскажите, как установить опции корки - вообще не могу найти(открыл configure IP, но там ничего толком нет)?
Как должны соотносится адреса (бэйс и хай) корки с остальной периферией?
На всякий случай - у меня версия пакета ISE 14.2
Спартан 3Е Стартер кит



Вот пошаговая инструкция (описание какой-то зарубежной лабораторной работы), все должно заработать.

Мне гораздо более интересен поднятый на sp3e kit линукс, вы использовали сборку xilinx ? (http://wiki.xilinx.com/) или что-то стороннее ?
делали по какому-то мануалу? или все сами ? не могли бы набросать краткий how-to ? )

спасибо!
Прикрепленные файлы
Прикрепленный файл  TFT_EDK_Lab3solutionsdk101.pdf ( 466.74 килобайт ) Кол-во скачиваний: 329
 
Go to the top of the page
 
+Quote Post
xor.kruger
сообщение Dec 13 2012, 10:47
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 290
Регистрация: 17-08-08
Из: Чернигов
Пользователь №: 39 647



Тулчейн брал с git xilinx. Ядро - ваннила 3.6 с kernel.org. RootFS - busybox. Загрузчик SrecBootloader и U-Boot.
Все стандартно - никаких особенностей.
Go to the top of the page
 
+Quote Post
Serb1987
сообщение Dec 14 2012, 09:31
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 12-11-12
Пользователь №: 74 345



Спасибо!
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2025 - 06:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.01458 секунд с 7
ELECTRONIX ©2004-2016