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

 
 
> 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
Ответов
_Ivan_33
сообщение Nov 15 2017, 08:12
Сообщение #2


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



Еще такая тема с чушью лог.анализатора - там в списке ядер их 2 штуки - system ila и обычные. У меня были глюки с системным. Попробуйте заменить.

Я весь дизайн не смотрел - но есть 2 пути инициализации транзакции - первый это самописный мастер, который передает данные в область памяти DDR и дергает прерывание процессору.
Второй это ядро по-моему AXI VDMA - с ним не работал, надо курить.

А процессор работает на бареметал, пингвинах или фриртос или что?

Пропускная способность AXI от PL до DDR через AXI_HP порт составляет 1200 МБайт в секунду - это частота 150 МГц при ширине шины в 8 байт. У себя делал такое, правда на 100 МГц у меня получилось грубо говоря на 1000 слов 1100 тактов передачи - т.е. на 10% ниже. Таких портов 4 штуки...



--------------------
Go to the top of the page
 
+Quote Post
ilyaprok
сообщение Nov 15 2017, 08:53
Сообщение #3


Участник
*

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



Цитата(_Ivan_33 @ Nov 15 2017, 13:12) *
Еще такая тема с чушью лог.анализатора - там в списке ядер их 2 штуки - system ila и обычные. У меня были глюки с системным. Попробуйте заменить.

Спасибо за помощь)
Я так понял у меня обычные ila. так как нигде не видно приставки system. Но хотелось бы удостоверится, где посмотреть?
Цитата(_Ivan_33 @ Nov 15 2017, 13:12) *
Я весь дизайн не смотрел - но есть 2 пути инициализации транзакции - первый это самописный мастер, который передает данные в область памяти DDR и дергает прерывание процессору.
Второй это ядро по-моему AXI VDMA - с ним не работал, надо курить.

Да я еще слишком неопытен, чтобы писать свое ядро, поэтому использую обычный AXI DMA, возможно возьму AXI VDMA. По идее мне надо просто сложить данные с камеры в DRAM. Но надо как то поймать начало кадра, чтобы первые данные в DRAM были именно с первого пикселя, а не с середины кадра.
Цитата(_Ivan_33 @ Nov 15 2017, 13:12) *
А процессор работает на бареметал, пингвинах или фриртос или что?

Сейчас работает на бареметалл, по мере усложнения проекта перейду на FreeRTOS, так как имел с ней опыт на STM32.
Цитата(_Ivan_33 @ Nov 15 2017, 13:12) *
Пропускная способность AXI от PL до DDR через AXI_HP порт составляет 1200 МБайт в секунду - это частота 150 МГц при ширине шины в 8 байт. У себя делал такое, правда на 100 МГц у меня получилось грубо говоря на 1000 слов 1100 тактов передачи - т.е. на 10% ниже. Таких портов 4 штуки...

Да я думаю с пропускной способностью проблем не возникнет - камера 752*480 пикселей, монохромная, то есть один пиксел - 1 байт. всего 752*480*1 = 360 960 байт - один кадр. Хочу разогнать до 60 фпс. Итого 21 657 600 байт в секунду. Итого около 20 Мбайт/сек.

Цитата(svedach @ Nov 15 2017, 13:45) *
Все правильно, значит пин не клоковый... Пока это не страшно.


Именно так!

Но Вы можете проанализировать поведение внутренних цепей ядра...

Про тактовые на дебагере - не надо их заводить для просмотра как сигнал... Просто знайте, что они есть... Если дебагер показывает времянку - он уже от чего-то тактируется...

Вот спасибо еще раз, вы меня прям сильно выручаете!
Тогда у меня вопрос - как отследить начало кадра?
Есть такой вариант - сначала настроить DMA, чтобы он ожидал данных. А потом подать клок на камеру. тогда автоматом первые пиксел кадра будет первым в памяти DRAM?
А можно в DMA длину всего кадра заказать? а не одной строки?
И еще вопрос - лучше самому в регистры записывать или использовать готовые функции из BSP?
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
- - 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
- - svedach   Сигнал TUSER должен быть 1 такт! Если это не т...   Nov 19 2017, 07:13
|- - ilyaprok   Цитата(svedach @ Nov 19 2017, 12:13) Сигн...   Nov 19 2017, 11:58
- - 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 Текстовая версия Сейчас: 26th June 2025 - 18:17
Рейтинг@Mail.ru


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