|
LPC2138 vs видеосигнал, ОЧЕНЬ нужна помощь... |
|
|
|
Jun 14 2007, 12:03
|
Частый гость
 
Группа: Участник
Сообщений: 127
Регистрация: 2-08-06
Пользователь №: 19 265

|
Цитата(KAlex @ Jun 14 2007, 14:43)  ПЛИС: 1.Снимает сигнал с АЦП, кладет в ОЗУ. При необходимости сжимает, кладет во флеш или др. носитель. 2. Раскрутка видео из ОЗУ. 3. Наложение OSD. 4. Доступ ЦП к ОЗУ. (рисуем в ОSD, детектор движения и пр.) 5. При желании реализуются функции зум, сглаживание и пр. Прелесть в том, что делается это все в нескольких потоках, никоим образом не мешая друг другу. Там всем рулит SX48 тактовая 40М. Но только отдельные ч\б кадры. 512х256 точек. В сквозняке ч\б меню на 256х256 точек наложением(врезкой) из ОЗУ. С одной стороны - надо сделать быстро, пусть и просто. С другой стороны - еще больше хочется сделать что-нибуть более стоящее, но боюсь что не успею в срок, влезая в незнакомую для меня область. Говорят, что на нормальное освоение плис нужно не менее месяца. Это не считая того, что в ЦОС я неграмотен. Да еще и делаю практически все "на коленке", из приборов - полуубитый С1-81 и моя голова. Цитата(GetSmart @ Jun 14 2007, 14:47)  По-моему всё абсолютно без проблем можно сообразить на арме. Непостоянная задержка входа в прерывание - совсем не проблема. Так или иначе строчную синхронизацию нужно делать через программный ФАПЧ. как сделать ФАПЧ, если я не могу с уверенностью сказать, когда пришел строчный синхроимпульс? Где про это почитать?
Сообщение отредактировал tolik_zp - Jun 14 2007, 12:18
|
|
|
|
|
Jun 14 2007, 12:25
|

Местный
  
Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719

|
Цитата(tolik_zp @ Jun 14 2007, 16:03)  как сделать ФАПЧ, если я не могу с уверенностью сказать, когда пришел строчный синхроимпульс? Никаких ФАПЧей не нужно. С той моей схемки идет прекрасный сигнал. Можно даже увидить на полуубитом С1-81. Подаешь его на ногу проца. Конфигурируешь прерывания по порту на спад фронта. Если есть другие прерывания - устанавливаем наивысший приоритет, либо вообще запрещаем(про вложенные прерывания тут недавно было). В прерывании считываем и обнуляем таймер. Смотрим что получилось, кадровый или строчный. Все.
|
|
|
|
|
Jun 14 2007, 12:31
|
Частый гость
 
Группа: Участник
Сообщений: 127
Регистрация: 2-08-06
Пользователь №: 19 265

|
Цитата(KAlex @ Jun 14 2007, 15:25)  Никаких ФАПЧей не нужно. С той моей схемки идет прекрасный сигнал. Можно даже увидить на полуубитом С1-81. Подаешь его на ногу проца. Конфигурируешь прерывания по порту на спад фронта. Если есть другие прерывания - устанавливаем наивысший приоритет, либо вообще запрещаем(про вложенные прерывания тут недавно было). В прерывании считываем и обнуляем таймер. Смотрим что получилось, кадровый или строчный. Все. Это хорошо, когда время входа в прерывание - 30 нс  В АРМах такого, к сожалению, нет. Да и SX48 на Украине приобрести можно только под заказ.
|
|
|
|
|
Jun 14 2007, 12:54
|
Частый гость
 
Группа: Участник
Сообщений: 127
Регистрация: 2-08-06
Пользователь №: 19 265

|
Цитата(KAlex @ Jun 14 2007, 15:41)  Да хоть 3000. Но оно всегда будет одно и то же, если правильно написать основной цикл. На сколько я понял, достаточно в основном цикле делать опрос таймера, и, при приближении его значения к ожидаемому синхроимпульсу, влепить несколько NOP'ов и спокойно ждать прерывание? И хватит ли скорости порта LPC2138 для изменения вида меню в ОЗУ? Кстати, я не нашел в даташите, какая скорость порта в LPC2138/01 PS: если не секрет, как вы решили вопрос с привязкой уровня черного? Ведь если переключать выход на монитор между выходом камеры и выходом ЦАПа, должны меняться уровни черного и белого
Сообщение отредактировал tolik_zp - Jun 14 2007, 13:04
|
|
|
|
|
Jun 14 2007, 13:14
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(KAlex) Да хоть 3000. Но оно всегда будет одно и то же, если правильно написать основной цикл. Не совсем понятно знаком ли человек с архитектурой армов и что он имел ввиду этим. Цитата(tolik_zp) На сколько я понял, достаточно в основном цикле делать опрос таймера, и, при приближении его значения к ожидаемому синхроимпульсу, влепить несколько NOP'ов и спокойно ждать прерывание? Уж если хотите сделать что-то подобное, то не опрашивайте таймер вручную, а сделайте прерывание, которое незадолго до прихода строчного синхроимпульса вызовет подготовительное прерывание с NOPами. Однако оно опять же будет похоже на ФАПЧ. То есть нужно будет знать период синхры. 2138 ревизии C и выше дёргает ножками быстро (2 или 3 такта кажется).
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Jun 14 2007, 14:12
|
Частый гость
 
Группа: Участник
Сообщений: 127
Регистрация: 2-08-06
Пользователь №: 19 265

|
Цитата(GetSmart @ Jun 14 2007, 16:14)  2138 ревизии C и выше дёргает ножками быстро (2 или 3 такта кажется). У меня период получается в 100 тактов, наверное потому, что команды дергантя ногой выполняются из флэша. Вопрос чайника: как одну функцию разместить в ОЗУ? PS - все решило RTFM PPS - сделать период менее 0.4 мкс все-равно не получается. может /01 спасет?
Сообщение отредактировал tolik_zp - Jun 14 2007, 14:16
|
|
|
|
|
Jun 15 2007, 05:26
|

Местный
  
Группа: Свой
Сообщений: 497
Регистрация: 9-06-05
Из: Новосибирск
Пользователь №: 5 852

|
Цитата(tolik_zp @ Jun 14 2007, 19:54)  На сколько я понял, достаточно в основном цикле делать опрос таймера, и, при приближении его значения к ожидаемому синхроимпульсу, влепить несколько NOP'ов и спокойно ждать прерывание? И хватит ли скорости порта LPC2138 для изменения вида меню в ОЗУ? Кстати, я не нашел в даташите, какая скорость порта в LPC2138/01
PS: если не секрет, как вы решили вопрос с привязкой уровня черного? Ведь если переключать выход на монитор между выходом камеры и выходом ЦАПа, должны меняться уровни черного и белого По поводу уровня черного. Врезку в видеосинал условно можно разделить на 2 вида: 1) Самый простой - коммутировать выход устройства то с выходом ЦАПа (врезка), то с выходом видеокамеры(непосредственно видеосигнал). Получаете только врезку, никаких наворотов с оцифровкой, обработкой и сжатием, зато просто и дешево. Для привязки уровня черного ставят разделительный конденсатор и производят дополнительное коммутирование с эталоном уровня черного в момент после строчного синхроимпульса, такой сигнал генерят и LM1881, и EL4581, и EL4583(надеюсь Вы используете какую-либо из них). 2) Сложнее схема с АЦП, зато, имея оцифрованный сигнал, можете обрабатывать и сжимать как душе угодно. Оцифровывать можно простыми АЦП или видеодекодерами, первое дешево и просто, зато второе позволяет получить стандартный BT.656 и работу с цветным видео. Врезка на цифровом уровне. Думайте сами, решайте сами, поиметь или не поиметь (с)
|
|
|
|
|
Jun 15 2007, 06:12
|
Частый гость
 
Группа: Участник
Сообщений: 127
Регистрация: 2-08-06
Пользователь №: 19 265

|
Цитата(GetSmart @ Jun 14 2007, 22:25)  Из флэша можно дёргать с теми же 2-3 тактами. Нужно только включить акселератор на полную. Почему получаеться 100 тактов - затрудняюсь сказать.
А что такое RTFM и /01 мне не понятно.
PS чтобы разместить функию в ОЗУ нужно перед именем написать __ramfunc. Это в IARe 1) посмотрите Fig 17 user manual'а, там нарисованы осциллограммы с включенным на полностью акселератором; 2) RTFM - read the f*ing manual, /01 - модификация lpc2138/01, у которой порты висят на локальной шине ядра Цитата(rat @ Jun 15 2007, 08:26)  По поводу уровня черного. Врезку в видеосинал условно можно разделить на 2 вида: 1) Самый простой - коммутировать выход устройства то с выходом ЦАПа (врезка), то с выходом видеокамеры(непосредственно видеосигнал). Получаете только врезку, никаких наворотов с оцифровкой, обработкой и сжатием, зато просто и дешево. Для привязки уровня черного ставят разделительный конденсатор и производят дополнительное коммутирование с эталоном уровня черного в момент после строчного синхроимпульса, такой сигнал генерят и LM1881, и EL4581, и EL4583(надеюсь Вы используете какую-либо из них). 2) Сложнее схема с АЦП, зато, имея оцифрованный сигнал, можете обрабатывать и сжимать как душе угодно. Оцифровывать можно простыми АЦП или видеодекодерами, первое дешево и просто, зато второе позволяет получить стандартный BT.656 и работу с цветным видео. Врезка на цифровом уровне.
Думайте сами, решайте сами, поиметь или не поиметь (с) Меня устроит вид 1, LM-ку я не использую. AFAIK для привязки нужна только синхросмесь, так что попробую обойтись схемой на двух pnp транзисторах для выделения синхры, ну а различать номера строк можно и программным способом.
|
|
|
|
|
Jun 15 2007, 06:32
|
Частый гость
 
Группа: Участник
Сообщений: 127
Регистрация: 2-08-06
Пользователь №: 19 265

|
Цитата(proba @ Jun 15 2007, 09:25)  может это оффтоп, но аналогичное устроиство зделано и на AVR. для уменщения дрожания там проц останавливается перед ожиданием INT от синхоимпулса, так как проц выидит с HALT всегда одинаково, дрожания нет. очень даже не оффтоп  спасибо, Ваша идея наверноеь лучше, чем куча NOP'ов
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|