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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> LPC2138 vs видеосигнал, ОЧЕНЬ нужна помощь...
GetSmart
сообщение Jun 14 2007, 11:47
Сообщение #31


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



По-моему всё абсолютно без проблем можно сообразить на арме. Непостоянная задержка входа в прерывание - совсем не проблема. Так или иначе строчную синхронизацию нужно делать через программный ФАПЧ. После которого для начала каждой строки будет некое число - сдвиг (плавающий от прерывания к прерыванию). И всё. Далее выводить картинку уже относительно этого сдвига. Синхро прерывание поставить на FIQ. Однако, пытаться жать джипег и выводить картинку вероятнее всего не получится ни на каком проце. Процы два дела одновремено делать ещё не умеют. Хотя и это наверно я бы попытался осилить через SPI+FIFO как уже тут предлагали. Причём с очень высокой разрешающей способностью графики. Совсем не 8*16 точек.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
tolik_zp
сообщение Jun 14 2007, 12:03
Сообщение #32


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

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
KAlex
сообщение Jun 14 2007, 12:25
Сообщение #33


Местный
***

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



Цитата(tolik_zp @ Jun 14 2007, 16:03) *
как сделать ФАПЧ, если я не могу с уверенностью сказать, когда пришел строчный синхроимпульс?

Никаких ФАПЧей не нужно.
С той моей схемки идет прекрасный сигнал. Можно даже увидить на полуубитом С1-81. Подаешь его на ногу проца. Конфигурируешь прерывания по порту на спад фронта. Если есть другие прерывания - устанавливаем наивысший приоритет, либо вообще запрещаем(про вложенные прерывания тут недавно было). В прерывании считываем и обнуляем таймер. Смотрим что получилось, кадровый или строчный. Все.
Go to the top of the page
 
+Quote Post
tolik_zp
сообщение Jun 14 2007, 12:31
Сообщение #34


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

Группа: Участник
Сообщений: 127
Регистрация: 2-08-06
Пользователь №: 19 265



Цитата(KAlex @ Jun 14 2007, 15:25) *
Никаких ФАПЧей не нужно.
С той моей схемки идет прекрасный сигнал. Можно даже увидить на полуубитом С1-81. Подаешь его на ногу проца. Конфигурируешь прерывания по порту на спад фронта. Если есть другие прерывания - устанавливаем наивысший приоритет, либо вообще запрещаем(про вложенные прерывания тут недавно было). В прерывании считываем и обнуляем таймер. Смотрим что получилось, кадровый или строчный. Все.


Это хорошо, когда время входа в прерывание - 30 нс smile.gif
В АРМах такого, к сожалению, нет. Да и SX48 на Украине приобрести можно только под заказ.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jun 14 2007, 12:40
Сообщение #35


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Реакция на FIQ от (с запасом) 3 до 30 тактов проца. При 60 МГц максимальная задержка 500 нс. Вообще, это достаточно слабое дрожание = 1/128 от ширины строки. Но его можно ещё уменьшить во много раз именно ФАПЧем. После окончания кадрового синхроимпульса нужно в прерывании запоминать значение таймера (постоянно тикающего на максимуме частоты PCLKFREQ = SYSFREQ/1). С каждым новым строчным синхроимпульсом будет увеличиваться среднее арифметическое ширины строки. Таким образом за 10 первых строк после начала кадра можно уменьшить дрожание в 10 раз. А 10 первых строк (и даже больше) на экране обычного телевизора даже не видны. То есть сделать отсутствие дрожания на одном кадре очень легко. Сложнее сделать отсутствие дрожание на нескольких последовательных кадрах. Но думаю если хорошенько подумать, то и это не проблема


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
KAlex
сообщение Jun 14 2007, 12:41
Сообщение #36


Местный
***

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



Цитата(tolik_zp @ Jun 14 2007, 16:31) *
Это хорошо, когда время входа в прерывание - 30 нс smile.gif
В АРМах такого, к сожалению, нет. Да и SX48 на Украине приобрести можно только под заказ.

Да хоть 3000. Но оно всегда будет одно и то же, если правильно написать основной цикл.
Go to the top of the page
 
+Quote Post
tolik_zp
сообщение Jun 14 2007, 12:54
Сообщение #37


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

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jun 14 2007, 13:14
Сообщение #38


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(KAlex)
Да хоть 3000. Но оно всегда будет одно и то же, если правильно написать основной цикл.

Не совсем понятно знаком ли человек с архитектурой армов и что он имел ввиду этим.

Цитата(tolik_zp)
На сколько я понял, достаточно в основном цикле делать опрос таймера, и, при приближении его значения к ожидаемому синхроимпульсу, влепить несколько NOP'ов и спокойно ждать прерывание?

Уж если хотите сделать что-то подобное, то не опрашивайте таймер вручную, а сделайте прерывание, которое незадолго до прихода строчного синхроимпульса вызовет подготовительное прерывание с NOPами. Однако оно опять же будет похоже на ФАПЧ. То есть нужно будет знать период синхры.

2138 ревизии C и выше дёргает ножками быстро (2 или 3 такта кажется).


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
tolik_zp
сообщение Jun 14 2007, 14:12
Сообщение #39


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

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jun 14 2007, 19:25
Сообщение #40


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Из флэша можно дёргать с теми же 2-3 тактами. Нужно только включить акселератор на полную. Почему получаеться 100 тактов - затрудняюсь сказать.

А что такое RTFM и /01 мне не понятно.

PS чтобы разместить функию в ОЗУ нужно перед именем написать __ramfunc. Это в IARe


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
rat
сообщение Jun 15 2007, 05:26
Сообщение #41


Местный
***

Группа: Свой
Сообщений: 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 и работу с цветным видео. Врезка на цифровом уровне.

Думайте сами, решайте сами, поиметь или не поиметь (с)
Go to the top of the page
 
+Quote Post
tolik_zp
сообщение Jun 15 2007, 06:12
Сообщение #42


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

Группа: Участник
Сообщений: 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 транзисторах для выделения синхры, ну а различать номера строк можно и программным способом.
Go to the top of the page
 
+Quote Post
proba
сообщение Jun 15 2007, 06:25
Сообщение #43


Местный
***

Группа: Участник
Сообщений: 358
Регистрация: 29-05-05
Пользователь №: 5 526



может это оффтоп, но аналогичное устроиство зделано и на AVR. для уменщения дрожания там проц останавливается перед ожиданием INT от синхоимпулса, так как проц выидит с HALT всегда одинаково, дрожания нет.
Go to the top of the page
 
+Quote Post
tolik_zp
сообщение Jun 15 2007, 06:32
Сообщение #44


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

Группа: Участник
Сообщений: 127
Регистрация: 2-08-06
Пользователь №: 19 265



Цитата(proba @ Jun 15 2007, 09:25) *
может это оффтоп, но аналогичное устроиство зделано и на AVR. для уменщения дрожания там проц останавливается перед ожиданием INT от синхоимпулса, так как проц выидит с HALT всегда одинаково, дрожания нет.

очень даже не оффтоп smile.gif спасибо, Ваша идея наверноеь лучше, чем куча NOP'ов
Go to the top of the page
 
+Quote Post
KAlex
сообщение Jun 15 2007, 06:38
Сообщение #45


Местный
***

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



Цитата(proba @ Jun 15 2007, 10:25) *
может это оффтоп, но аналогичное устроиство зделано и на AVR. для уменщения дрожания там проц останавливается перед ожиданием INT от синхоимпулса, так как проц выидит с HALT всегда одинаково, дрожания нет.

Абсолютно верно. Титлер на АТ2313 так и был реализован.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 04:11
Рейтинг@Mail.ru


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