repstosw 18 15 августа, 2019 Опубликовано 15 августа, 2019 (изменено) · Жалоба Необходимо обеспечить передачу видео-сигнала NTSC на 75-омный видео-вход ТВ. (AV in). В качестве энкодера NTSC микросхемы: AD724 или CXA1145 или CXA1645, которые из RGB, Hsync,Vsync делают NTSC. Значит, необходимо со стороны PRUSS реализовать чтение видеопамяти, сформировать сигналы H,V-sync , компоненты RGB превратить в аналоговые с помощью простейшего резистивного ЦАП и подать их в энкодер. Требуемый режим: 400x240 60 Гц, 16 бит на точку (5:6:5, можно 5:5:5). Можно не на весь экран, а с бордюрами. PRU ядро, на частоте 228 МГц, память кода 4 кБ и данных 0,5 кБ для этих целей хватит? Или не взлетит? DSP TMS320C6745. P.S. с ПЛИСами и спец-чипами заморачиваться неохотно, желается сделать решение на 1 кристалле C6745 Изменено 15 августа, 2019 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 78 15 августа, 2019 Опубликовано 15 августа, 2019 · Жалоба там рядом лежит ADV7390, который в два раза дешевле чем AD724. и я так понимаю человеческого параллельного видео порта и 2D DMA, как в тех же блэкфинах, которые это всё сами сделают, у С6745 нету, а lcd контроллер есть только С6547. но я бы всё равно попробовал сначала на EMIFA, если он свободен, цифровой видеоэнкодер повесить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 15 августа, 2019 Опубликовано 15 августа, 2019 · Жалоба 12 minutes ago, _pv said: там рядом лежит ADV7390, который в два раза дешевле чем AD724. и я так понимаю человеческого параллельного видео порта и 2D DMA, как в тех же блэкфинах, которые это всё сами сделают, у С6745 нету, а lcd контроллер есть только С6547. но я бы всё равно попробовал сначала на EMIFA, если он свободен, цифровой видеоэнкодер повесить. EMIFA 8 бит - занят LCD, EMIFB 16 бит занят SDRAM. Делать временное разделение шины не хотелось бы (нужна производительность). Остаются GPIO + PRUSS. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 78 15 августа, 2019 Опубликовано 15 августа, 2019 (изменено) · Жалоба почему ADV7390 нельзя посадить параллельно с lcd на EMIFA? вам одновременно нужны разные картинки на lcd и тв выходе? Изменено 15 августа, 2019 пользователем _pv Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 15 августа, 2019 Опубликовано 15 августа, 2019 (изменено) · Жалоба 13 minutes ago, _pv said: почему ADV7390 нельзя посадить параллельно с lcd на EMIFA? вам одновременно нужны разные картинки на lcd и тв выходе? Посадить на EMIFA можно. Требуется только один режим из двух: или LCD (со своим контроллером и памятью) или ТВ. Вопрос, насколько ощутима потеря цветовых оттенков из-за суб-дискретизации в 4:2:2 из RGB 5:6:5 на ТВ приёмнике (ЭЛТ, кинескоп) ? И где брать HSYNC, VSYNC - из стробов WR и CS делать функцию или отдельные GPIO ? Изменено 15 августа, 2019 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 15 августа, 2019 Опубликовано 15 августа, 2019 · Жалоба 1 час назад, _pv сказал: и я так понимаю человеческого параллельного видео порта и 2D DMA, как в тех же блэкфинах, которые это всё сами сделают, у С6745 нету Человеческого 2D нет, есть нечеловеческий 3D. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 78 15 августа, 2019 Опубликовано 15 августа, 2019 · Жалоба только надо посмотреть как там с приоритетами на шинах и возможностью синхронизации ДМА или EMIFA (через какой-нибудь drdy, если он есть) от таймера, чтобы не получилось что данные будут выдаваться с каким попало джиттером, NTSC кодеру такое сильно не понравится, думаю. а сами синхроимпульсы либо каким-нибудь таймером, либо можно их завести на старшие адресные линии EMIFA, и дма (опять же если умеет) настраивать на две посылки, сначала данные, а потом по другому адресу сколько надо нулей, для того чтобы кодек синхроимпульс с адреса брал. есть, наверное, ещё один похабный вариант, взять RMII, сделать из TXD0/1 двухбитный r2r ЦАП и добавив ещё поверх сигма-дельта модуляцию генерить NTSC напрямую, с колор бурстами и квадратурной модуляцией цветоразностных сигналов, как раз задача для PRUSS :), возможно затактировать его придётся от чего-то кратного 3.5МГц (или сколько там у NTSC), 3.5*14 ~ 50МГц, а может и так сойдёт, частота всё-таки довольно большая. для нескольких цветов из SPI чуть ли не на AVR такое вроде делал кто-то, но там всего один бит и удвоенная частота и (либо sin либо cos), а тут и частота выше и ЦАП аж двухразрядный, 65к цветов не получится конечно, но при разрешении 400х240 исключительная точность цветопередачи думаю не самая большая проблема. 2 minutes ago, jcxz said: Человеческого 2D нет, есть нечеловеческий 3D. ну хорошо, правда если синхроимпульсы генерить всё равно некому и придётся самому руками, радости особой от того что можно целый кадр отправить, а не построчно всё равно не сильно много. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 15 августа, 2019 Опубликовано 15 августа, 2019 (изменено) · Жалоба 3 минуты назад, _pv сказал: только надо посмотреть как там с приоритетами на шинах и возможностью синхронизации ДМА или EMIFA У C67xx кроме 3D-DMA есть ещё 2 PRU-ядра, которые можно рассматривать как супер-мега-фичастые DMA-контроллеры. О чём ТС и писал изначально. Приоритеты доступа к шинам у OMAP-L137 можно было запрограммировать по отдельности для каждого bus-master-а. Думаю что у C67xx должно быть аналогично. Изменено 15 августа, 2019 пользователем jcxz Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 15 августа, 2019 Опубликовано 15 августа, 2019 (изменено) · Жалоба 9 минут назад, _pv сказал: правда если синхроимпульсы генерить всё равно некому и придётся самому руками, радости особой от того что можно целый кадр отправить, а не построчно всё равно не сильно много. У C67xx есть McASP (только не помню сколько шт. и по сколько каналов). Это - последовательный порт с множеством сериализаторов, каждый из которых можно запрограммировать независимо от других сериализаторов на ввод/вывод и обслуживание DMA-контроллером. По-крайней мере у меня в проекте на OMAP-L137 один 16-канальный McASP обслуживал 3 отдельных канала SPI-АЦП (на ввод), и один аудио-кодек (1 сериализатор - ввод, 1 сериализатор - вывод). И все эти сериализаторы обслуживались EDMA-контроллером одновременно. Изменено 15 августа, 2019 пользователем jcxz Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 78 15 августа, 2019 Опубликовано 15 августа, 2019 · Жалоба хоть и фичастые, но просто перекладывание руками (пусть и pru ядра) данных из памяти в регистр gpio при наличии отдельного дма, внутреннее чувство прекрасного не принимает. хотя если им действительно заняться больше нечем, почему бы и нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 15 августа, 2019 Опубликовано 15 августа, 2019 · Жалоба 2 минуты назад, _pv сказал: хоть и фичастые, но просто перекладывание руками (пусть и pru ядра) данных из памяти в регистр gpio при наличии отдельного дма, внутреннее чувство прекрасного не принимает. Лучше по возможности использовать McASP. Но не уверен сколько сериализаторов остались свободными у ТС. Ведь судя по всему - у него много ног уже занято (SDRAM, LCD по параллельной шине, ...). Может оказаться что ноги McASP все уже заняты. Тогда придётся GPIO-шить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 15 августа, 2019 Опубликовано 15 августа, 2019 (изменено) · Жалоба 1 hour ago, jcxz said: Лучше по возможности использовать McASP. Но не уверен сколько сериализаторов остались свободными у ТС. Ведь судя по всему - у него много ног уже занято (SDRAM, LCD по параллельной шине, ...). Может оказаться что ноги McASP все уже заняты. Тогда придётся GPIO-шить. На McASP занят 1 канал - дует звук в аудио-ЦАП. Чем решение с GPIO плохое? Допустим, есть ещё свободные биты GPIO: 16 штук + 2 (на синхры). Неужели для PRUSS ничего нельзя сообразить толкового при таких условиях? С GPIO тоже не выходит, часть заняты и нету с 0 по 15 свободного GPIO. Остаётся EMIFA 8 бит и 2 на H/V sync + скрип зубов от потери цвета при суб-пиксельной дискретизации YUV 4:2:2 и ещё конверт RGB в YUV на плечи процессора В этом случае всё-же AD724 или CXA1145 будут лучше, так как они тупо принимают аналог RGB и делают NTSC/PAL, без всякого дополнительного программирования по I2C(как в случае ADV7390 ). Как вариант - рассмотреть вывод на монитор (аналог, D-SUB). Не могу найти времянки для 400x240, вижу только стандартные растактовки кадров, стандартизированных VESA'ой (640x480, 800x600 и т.д.) Изменено 15 августа, 2019 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 78 15 августа, 2019 Опубликовано 15 августа, 2019 · Жалоба а чем 4:2:2 помешал, разрешение и так в два раза меньше телевизионных 750 точек. или крестик снимите или трусы наденьте, а то субсэмплинг 422 так УЖАС-УЖАС, а вот R2R ЦАП (на который ещё 16ти битную шину найти надо) и потом ещё аналоговое же преобразование в NTSC так всё нормально, ничего не потеряется. я вот что-то совсем не уверен что картинка из r2r цапа будет лучше чем от нормального энкодера пусть и с 422. у ADV7392/3 есть и RGB565 режим но придётся защёлку 8ми битную ставить на EMIF. так и не было вроде таких разрешений, были 320х240, 640х480, 800х600 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 16 августа, 2019 Опубликовано 16 августа, 2019 (изменено) · Жалоба 11 hours ago, _pv said: или крестик снимите или трусы наденьте, а то субсэмплинг 422 так УЖАС-УЖАС, а вот R2R ЦАП (на который ещё 16ти битную шину найти надо) и потом ещё аналоговое же преобразование в NTSC так всё нормально, ничего не потеряется. я вот что-то совсем не уверен что картинка из r2r цапа будет лучше чем от нормального энкодера пусть и с 422. На плате olinuxino A13 есть R-ЦАП на VGA выхлопе, и ничего. Картинки видел, по качеству устраивал. + сам так делал. Quote так и не было вроде таких разрешений, были 320х240, 640х480, 800х600 Тогда из 640x480 сделать 400 на 240 путём стретча пиксела по горизонтали в 1,6 раз и с двойным сканированием строки - чтобы 240 строк стали толще в 2 раза для покрытия 480. И ещё больной вопрос про aspect ratio: 400x240 на мониторе 4:3 будет смотреться вытянутым по вертикали - тут решение с бордюами наверное лучше, чем OverScan (на весь экран) В общем прикинул, в моем случае ничего хорошего не получится. Нет детерминированности в обращении к памяти. L1 отданы под кеш, L2 также отдан под кеш + стек , во внешней SDRAM код и данные. Так что чтение из любой из них приведет к неопределенному времени. Пикселы будут неровными и будет дрожать. Не годится. Это в случае - PRUSS+ GPIO. С ДМА всё ещё более сложнее - неизвестно сколько времени будет чтение из SDRAM, на которую претендует ещё CPU и кеш. Увы, без ПЛИС или спец-контрорллера тут не отделаешься. В простейшем случае нужен видеоконтроллер с 8 битной шиной (на EMIFA чтоб завязаться) с фреймбуфером не менее 187,5 кБайт (400x240 16 bpp) Изменено 16 августа, 2019 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 50 16 августа, 2019 Опубликовано 16 августа, 2019 (изменено) · Жалоба В 15.08.2019 в 11:57, __inline__ сказал: Необходимо обеспечить передачу видео-сигнала NTSC на 75-омный видео-вход ТВ. (AV in). В качестве энкодера NTSC микросхемы: AD724 или CXA1145 или CXA1645, которые из RGB, Hsync,Vsync делают NTSC. Так вы же уже почти аллвиннер освоили, припоминаю, тогда зачем весь этот натюрморт, когда в большинстве их чипов есть нормальный и правильный ТВ выход?? ЗЫ. Для всяких "лялек и поделок" есть и крохотные и очень дешевые платки на Н2 чипе, типа "бананы" без HDMI, с которым приходилось не сладко, но с ТВ выходом и аудиокодеком, причем механизм загрузки у нее такой же, как у А13го... И кстати, почему именно NTSC? Не PAL, например.. 14 часов назад, __inline__ сказал: Тогда из 640x480 сделать 400 на 240 путём стретча пиксела по горизонтали в 1,6 раз и А что это, правда, за разрешение такое, куда ни прикину - так везде либо 320х240, как у старых компов-игрушек, или 640х400, как у ХТшки айбиэмовской или VGA 640х480 и т.д. Ну или ТВ 510строк или как его уж не помню... Изменено 16 августа, 2019 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться