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

 
 
> Zynq подключение камеры, Вопросы новичка
ilyaprok
сообщение Oct 30 2017, 08:57
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 29-10-17
Пользователь №: 99 964



Доброго времени суток!
Я совсем новенький в теме SoC. Есть плата Z-turn и JTAG отладчик, все подружил, попробовал hello world.
Пока читаю книгу ZynqBook.
Есть задача:
подключить камеру MT9V034 к плате Z-turn. Хочу подключить по параллельному интерфейсу (PIXCLK, DATA(9:0), HSYNC, VSYNC), но можно еще по LVDS последовательному интерфейсу. Камера имеет разрешение 752х480 60 фпс, монохромная.
1) Есть ли у кого опыт пользования этими интерфейсами, камера будет в сантиметрах от платы, поэтому скорее всего LVDS помехозащищенность не нужна. И проще всего подключить по параллельному интерфейсу. Так ли это?
2) Далее надо организовать некий контроллер-приемник на стороне PL. Есть ли готовые IP-ядра для этого? В STM32 есть DCMI контроллер, есть ли здесь что то похожее?
3) Надо, чтобы контроллер-приемник передавал принятые байты DMA контроллеру, а он складывал в видеобуфер на стороне DDR. Какой DMA контроллер использовать, который реализован аппаратно в PS или нужно IP ядро?
4) Как организовать связку DMA контроллера и DDR памяти, нужно ли доп ядро DDR контроллера? Какие параметры нужно устанавливать для совместной их работы и как их настроить? После заполнения видеобуфера, надо чтобы сработало прерывание для ядра, чтобы можно было производить обработку, то есть ядро никак не должно участвовать в приеме картинки, такое возможно? Стоит ли писать по байтово в DDR или лучше накопить некую пачку и только потом записать? Какова пропускная способность всей цепи от DCMI контроллера до ячеек DDR памяти, потянет ли реал-тайм запись или нудны промежуточные буферы?
5) Я так понимаю нужно 2 DDR буфера -пока один постепенно заполняется, с другим можно работать, потом они меняются местами, правильно ли думаю? Как организовать доступ ядра к DDR памяти или я просто обращаюсь под выделенное для DDR памяти адресное пространство и DDR контроллер понимает, что это орбащение к DDR памяти и все организовывает сам?
6) После получения кадра, надо отсылать картинку по UDP на комп, где она визуализируется. Хочу писать в FreeRTOS, есть ли готовые функции для приема/отправки UDP пакетов, как они реализованы (блокируемые или по прерываниям)? Как правильно упаковать картинку для передачи по UDP.
7) Еще не понятна схема работы в Vivado и SDK. То есть в Vivado нужно нарисовать саму архитектуру системы, далее сгенерировать некий BSP. А в SDK с помощью этого самого BSP настроить периферию, записью в различные регистры. Правильно я понимаю?
8) Если я использую аппаратный SPI в PS, нужно ли мне генерировать Bitstream? Ведь По идее ресурсы FGPA не используются
9) Как взаимодействовать с кэшем различного уровня? Как правильно с ним работать? Интересует именно в BareMetal и FreeRTOS варианте.
И вообще вопрос как правильно разрабатывать на таком устройстве? То есть как переключаться между SDK и Vivado, в какую память шить? Какие тесты делать? Как лучше отлаживать в SDK или внешними утилитами? Какие подводные камни есть? на что стоит обратить внимание? Очень много настроек в PS, что можно менять и как они повлияют друг на друга? Можно ли часть настроек менять в SDK вместо Vivado или они независимые?
Очень много вопросов.
Надеюсь не нарушил никакие правила и не задал слишком нубских вопросов.
Принимаю любую критику, ссылки на учебники, уроки, советы, наставления. Ответы на любые вопросы, какие сможете или хотите ответить. Заранее спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
svedach
сообщение Nov 19 2017, 07:13
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 135
Регистрация: 8-01-12
Из: Беларусь
Пользователь №: 69 226



Сигнал TUSER должен быть 1 такт! Если это не так - надо искать в логике обработки входных сигналов... Какое ядро для входа Вы используете сейчас? Посмотрите в даташите на него как оно формирует этот сигнал.
Go to the top of the page
 
+Quote Post
ilyaprok
сообщение Nov 19 2017, 11:58
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 29-10-17
Пользователь №: 99 964



Цитата(svedach @ Nov 19 2017, 12:13) *
Сигнал TUSER должен быть 1 такт! Если это не так - надо искать в логике обработки входных сигналов... Какое ядро для входа Вы используете сейчас? Посмотрите в даташите на него как оно формирует этот сигнал.

В идеале он 1 такт, но так как скорость поступления данных меньше, чем DMA их забирает. То длительность сигнала TUSER возрастает в 100,0МГЦ/26,6МГц - 3,75 раза. то есть 4 такта. Я сейчас использую Vide In To AXI4 Stream.
Вот его датаграмма (используется ILA тактируемое от FCLK0 - 100 Мгц):

На ней видно что сигнал прерывания от DMA около 30-60 тактов. Поэтому я сделал вывод, что может стоит продлить.
Есть проект с ядром AV2AXISV, но сигнал TUSER поймать у меня не получилось. DMA итакже работает без ошибок. Это ядро немного по-друггому генерирует сигналы AXI, я так понимаю логике работы шины это не противоречит и допускаются такие различия.
Вот датаграмма с ядром AV2AXISV:

Я полагаю надо поправить констанаты в файле AVInput.

Цитата(toshas @ Nov 19 2017, 12:31) *
Если все синхронно, то 1 такта должно хватать.
Выложите полную картину вашего Block Design (File - Export - Export Block Design - pdf)
Вы не теряете строки, по прерыванию начнется обработка кадра с самого начала,
просто тем самым вы вносите некоторую задержку, хотите ее избежать стройте проект вообще без буферизации в DDR.

Это проект с ядром Video In To AXI4 Stream.
Формировал сигналы hblank vblank исходя из даташита на камеру MT9V034 и документа "AXI4-Stream Video IP and System Design Guide" UG934 То есть hblank = ~LINE_VALID, vblank = ~FRAME_VALID, active_video = LINE_VALID&FRAME_VALID.


Сообщение отредактировал ilyaprok - Nov 19 2017, 12:03
Прикрепленные файлы
Прикрепленный файл  design_1.pdf ( 138.58 килобайт ) Кол-во скачиваний: 12
 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ilyaprok   Zynq подключение камеры   Oct 30 2017, 08:57
- - RuSTA   Готов выполнить за вознаграждение!   Oct 30 2017, 19:59
- - x736C   Цитата(ilyaprok @ Oct 30 2017, 11:57) 1) ...   Oct 30 2017, 21:09
- - ilyaprok   ЦитатаГотов выполнить за вознаграждение! Выпол...   Oct 31 2017, 11:41
|- - sheynmanyu   Цитата(ilyaprok @ Oct 31 2017, 14:41) Пок...   Oct 31 2017, 11:47
|- - ilyaprok   Цитата(sheynmanyu @ Oct 31 2017, 16:47) М...   Oct 31 2017, 20:05
- - svedach   Лично с Вами (ТС) связаться можно?   Oct 31 2017, 17:18
- - svedach   1) Проще всего подключить по параллельному интерфе...   Nov 1 2017, 11:35
- - ilyaprok   А как соединить IP ядро с конкретным портом, как е...   Nov 5 2017, 14:08
- - _Ivan_33   правой кнопкой мыши create port затем его соединит...   Nov 6 2017, 14:46
- - ilyaprok   Спасибо за последние ответы. Вновь прошу помощи. Д...   Nov 14 2017, 16:51
- - svedach   Оставляю для Вас личное IP-ядро с исходниками, кот...   Nov 14 2017, 17:47
|- - ilyaprok   Цитата(svedach @ Nov 14 2017, 22:47) Оста...   Nov 14 2017, 20:02
- - svedach   Добрый день. Вы уверены, что правильно назначили с...   Nov 15 2017, 06:07
|- - ilyaprok   Цитата(svedach @ Nov 15 2017, 11:07) Добр...   Nov 15 2017, 08:38
- - _Ivan_33   Еще такая тема с чушью лог.анализатора - там в спи...   Nov 15 2017, 08:12
|- - ilyaprok   Цитата(_Ivan_33 @ Nov 15 2017, 13:12) Еще...   Nov 15 2017, 08:53
- - svedach   ЦитатаСинтезатор ругается на физическую привязку к...   Nov 15 2017, 08:45
- - _Ivan_33   Ну тема такая - для бареметал все просто - у вас е...   Nov 15 2017, 08:58
- - svedach   ЦитатаА можно в DMA длину всего кадра заказать? а ...   Nov 15 2017, 09:14
|- - ilyaprok   Цитата(svedach @ Nov 15 2017, 14:14) Это ...   Nov 15 2017, 09:43
- - ilyaprok   Опять нужна помощь( Данные c ядра AV2AXISV_0 дальш...   Nov 15 2017, 15:39
- - svedach   Для быстрой проверки: отключите TREADY от DMA и по...   Nov 15 2017, 17:29
|- - ilyaprok   Цитата(svedach @ Nov 15 2017, 22:29) Обра...   Nov 15 2017, 20:33
- - ilyaprok   Вообщем вернулся к первоначальному варианту с Vide...   Nov 16 2017, 07:45
- - svedach   tvalid очень странно себя ведет.. Если ДМА блокир...   Nov 16 2017, 09:26
- - ilyaprok   Добился того, что DMA делает несколько транзакций ...   Nov 16 2017, 09:37
- - svedach   AXI VDMA можете не пробовать - не тратьте время......   Nov 16 2017, 10:16
|- - ilyaprok   Цитата(svedach @ Nov 16 2017, 15:16) AXI ...   Nov 16 2017, 10:41
- - svedach   Я давал Вам свое ядро, что бы Вы могли там сигналь...   Nov 16 2017, 11:22
|- - ilyaprok   Цитата(svedach @ Nov 16 2017, 16:22) Я да...   Nov 16 2017, 12:03
- - svedach   Используйте AV2AXISV. Посмотрите, как формируются ...   Nov 16 2017, 13:32
- - ilyaprok   Хотя еще раз проверил, в лог анализаторе, некоторы...   Nov 16 2017, 13:44
- - ilyaprok   Действительно примерно 1 из 5 случаев в лог. анали...   Nov 16 2017, 15:05
- - svedach   Тут сложнее: это может быть проблема дебаггера, ес...   Nov 16 2017, 16:34
- - ilyaprok   У меня получается два отладочный ядра. Одно тактир...   Nov 16 2017, 17:15
|- - Flip-fl0p   Ну хоть бы трубки термоусадочные на контакты надел...   Nov 16 2017, 17:38
- - svedach   Дааа, с таким монтажем далеко не уедем... Можете р...   Nov 16 2017, 17:51
- - ilyaprok   Каюсь монтаж ужасен, это временный вариант, пока н...   Nov 16 2017, 18:17
|- - Flip-fl0p   Тогда вопрос. А так ли необходимо применять процес...   Nov 16 2017, 19:21
|- - ilyaprok   Цитата(Flip-fl0p @ Nov 17 2017, 00:2...   Nov 16 2017, 19:50
|- - Flip-fl0p   Цитата(ilyaprok @ Nov 16 2017, 22:50) В и...   Nov 16 2017, 19:55
|- - ilyaprok   Цитата(Flip-fl0p @ Nov 17 2017, 00:5...   Nov 16 2017, 20:46
|- - Flip-fl0p   Цитата(ilyaprok @ Nov 16 2017, 23:46) Так...   Nov 17 2017, 05:04
|- - ilyaprok   Цитата(Flip-fl0p @ Nov 17 2017, 10:0...   Nov 17 2017, 12:56
|- - Flip-fl0p   Цитата(ilyaprok @ Nov 17 2017, 15:56) Но ...   Nov 17 2017, 13:49
|- - ilyaprok   Цитата(Flip-fl0p @ Nov 17 2017, 18:4...   Nov 17 2017, 18:50
|- - Flip-fl0p   Цитата(ilyaprok @ Nov 17 2017, 21:50) На...   Nov 17 2017, 19:23
- - toshas   Vivado ILA может работать некорректно если частота...   Nov 17 2017, 18:22
|- - ilyaprok   Цитата(toshas @ Nov 17 2017, 23:22) Когда...   Nov 17 2017, 19:40
|- - Flip-fl0p   Цитата(ilyaprok @ Nov 17 2017, 22:40) А к...   Nov 17 2017, 19:53
|- - ilyaprok   Цитата(Flip-fl0p @ Nov 18 2017, 00:5...   Nov 18 2017, 10:22
|- - toshas   Цитата(ilyaprok @ Nov 18 2017, 13:22) Так...   Nov 18 2017, 11:22
|- - ilyaprok   Цитата(toshas @ Nov 18 2017, 16:22) Это н...   Nov 18 2017, 16:20
- - Flip-fl0p   А выводится картинка куда должна ? Через HDMI на м...   Nov 18 2017, 11:24
- - svedach   Извините, не было возможности писать... Вы когда п...   Nov 18 2017, 18:41
|- - ilyaprok   Цитата(svedach @ Nov 18 2017, 23:41) Изви...   Nov 18 2017, 22:02
- - toshas   Если все синхронно, то 1 такта должно хватать. Выл...   Nov 19 2017, 07:31
- - toshas   Как вариант посмотрите как настроить прерывание не...   Nov 20 2017, 17:58
|- - ilyaprok   Цитата(toshas @ Nov 20 2017, 22:58) Как в...   Nov 21 2017, 08:04
- - toshas   В TCL консоли вы можете понять в какой рабочей дир...   Nov 21 2017, 11:11
|- - ilyaprok   Цитата(toshas @ Nov 21 2017, 16:11) В TCL...   Nov 21 2017, 11:42
- - svedach   Добрый день! Поздравляю! Xil_DCacheFlushRa...   Nov 21 2017, 14:04


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

 


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


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