Ник:
Пароль:

Контакты

Телеграм: t.me/starterkit_ru
тел.: (+7 3412) 478-448
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
E-mail: info@starterkit.ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:2
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Embedded Linux
ADV7180 и Video4Linux2
mibin
Добавлено 21.04.2013 13:35 Сообщение: 111
mibin
5

Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Странная ситуация...получается если он на этом канале уже был...он обратно на него не переключается...может быть нужно как-то останавливать работу канала, а потом переключаться на другой...
Спуститься к концу Подняться к началу
Персональная информация
mibin
Добавлено 21.04.2013 14:44 Сообщение: 112
mibin
5

Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Такое впечатление, что в файле mxc_v4l2_capture.c, где происходит переключение между каналами (VIDIOC_S_INPUT), что-то не то...
http://pastebin.com/UzZ7ckKU

На всякий случай выкладываю и файл драйвера.
adv7180.c
http://pastebin.com/yz1g8s91
Спуститься к концу Подняться к началу
Персональная информация
mibin
Добавлено 21.04.2013 15:56 Сообщение: 113
mibin
5

Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
На сайте analog.com есть два скрипта:
Скрипт переключения
Код
##CVBS AUTODETECT##
:Autodetect CVBS In, YPrPb Out:
42 00 00 ; INSEL = CVBS in on AIn 1
42 04 57 ; Enable SFL
42 17 41 ; select SH1
42 31 02 ; Clears NEWAV_MODE, SAV/EAV to suit ADV video encoders
42 3D A2 ; MWE Enable Manual Window, Colour Kill Threshold to 2
42 3E 6A ; BLM optimisation
42 3F A0 ; BGB
42 0E 80 ; ADI Recommended Write
42 55 81 ; ADI Recommended Write
42 0E 00 ; ADI Recommended Write
56 00 1C ; Power up DACs and PLL
56 01 00 ; SD only mode
56 80 10 ; SSAF Luma filter enabled, NTSC mode
56 82 C9 ; Step control on, pixel data valid, pedestal on, PrPb SSAF on, YPrPb out.
56 87 20 ; PAL/NTSC autodetect mode enabled
56 88 00 ; 8 bit input enabled
End

и скрипт быстрого переключения:
Код
##FAST SWITCH##
:NTSC-M in Ain1, FAST SWitch:
42 00 50 ; INSEL = CVBS in on AIn 1, force standard to NTSC-M,
42 0F 40 ; TRAQ
42 01 80 ; disable Hsync pll, Vsync processor
42 19 B1 ; Mv robustnesss bit
42 2C 12 ; Use sync based AGC
42 31 02 ; Clears NEWAV_MODE AV_MODE,SAV/EAV to suit ADV encoders
42 37 81 ; HS polarity
42 51 89 ; FSCLE enabled, CIL,COL
42 3A 16 ; Power down U and V ADC's
42 3D A2 ; MWE Enable Manual Window, Colour Kill Threshold to 2
42 3E 6A ; BLM optimisation
42 3F A0 ; BGB
42 51 9B ; ADI Recommended Write
42 0E 85 ; ADI Recommended Write
42 B6 0C ; manual enables for agc & clamp loop speeds
42 BE C0 ; speed of digital agc loop
42 C0 C0 ; speed of digital clamp loop
42 D1 B9 ; Disable always flip field ID bit, Disable VCR FIELD filtering for switching application
42 D6 6D ; ADI Recommended Write
42 D9 44 ; Toggle LSF set to zero
42 0E 80 ; ADI Recommended Write
42 55 81 ; ADI Recommended Write
42 0E 00 ; ADI Recommended Write
End

но я честно говоря вообще не представляю что это за скрипты.
Как их запустить, куда их вставить вообще ничего не понятно.
Спуститься к концу Подняться к началу
Персональная информация
leh
Добавлено 22.04.2013 23:00 Сообщение: 114
leh
5

Пункты: 1646
Регистрация: 07.06.2009
Пол: Мужчина
Из: Волгоград
Каждая строчка в скрипте - запись определенного значения в регистр ADV7180: первый байт - адрес микросхемы на шине I2C (0x42), второй - адрес регистра, третий - значение. Так что, каждая такая строка в cкрипте реализуется в драйвере как то так:
Код

adv7180_write_reg(address, value);

Полагаю, можно попробовать вставить эти скрипты в метод ioctl_s_input после выбора канала:
Код

/* Set CVBS input on AIN */
adv7180_write_reg(ADV7180_INPUT_CTL, in_channel);


А вто почему в одном из скриптов встречается адрес микросхемы - 0x56, мне непонятно...
Спуститься к концу Подняться к началу
Персональная информация
mibin
Добавлено 23.04.2013 20:51 Сообщение: 115
mibin
5

Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Короче, я сам дурак оказался, переключение происходит в обе стороны, просто переменная передающаяся внутрь ioctl в последствии принимала значение 1...

По поводу регистров, спасибо, попробую, может найду какие примеры, теперь хоть более ли менее понятно, куда копать.
Спуститься к концу Подняться к началу
Персональная информация
mibin
Добавлено 23.04.2013 21:33 Редактировалось 23.04.2013 21:34 Сообщение: 116
mibin
5

Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Да, все скорее всего так как ты и сказал.
Правда связан он со всем с другой проблемой, но схема решения ясна.
Спасибо, буду пробовать.
Вот пример один:
Код
##SD CVBS##
:AUTODETECT CVBS IN NTSC/PAL/SECAM, 8-Bit 422 encoder:
42 00 00 ; CVBS IN
42 03 0C ; 8 Bit Mode
42 04 77 ; Enable SFL
42 17 41 ; select SH1
42 1D 47 ; Enable 28MHz Crystal
42 31 02 ; Clears NEWAV_MODE, SAV/EAV to suit ADV video encoders
42 3A 17 ; Set Latch Clock & power down ADC 1 & ADC2 & ADC3
42 3B 81 ; Enable internal Bias
42 3D A2 ; MWE Enable Manual Window, Colour Kill Threshold to 2
42 3E 6A ; BLM optimisation
42 3F A0 ; BGB
42 86 0B ; Enable stdi_line_count_mode
42 F3 01 ; Enable Anti Alias Filter on ADC0
42 F9 03 ; Set max v lock range
42 0E 80 ; ADI Recommended Setting
42 52 46 ; ADI Recommended Setting
42 54 00 ; ADI Recommended Setting
42 7F FF ; ADI Recommended Setting
42 81 30 ; ADI Recommended Setting
42 90 C9 ; ADI Recommended Setting
42 91 40 ; ADI Recommended Setting
42 92 3C ; ADI Recommended Setting
42 93 CA ; ADI Recommended Setting
42 94 D5 ; ADI Recommended Setting
42 B1 FF ; ADI Recommended Setting
42 B6 08 ; ADI Recommended Setting
42 C0 9A ; ADI Recommended Setting
42 CF 50 ; ADI Recommended Setting
42 D0 4E ; ADI Recommended Setting
42 D1 B9 ; ADI Recommended Setting
42 D6 DD ; ADI Recommended Setting
42 D7 E2 ; ADI Recommended Setting
42 E5 51 ; ADI Recommended Setting
42 F6 3B ; ADI Recommended Setting
42 0E 00 ; ADI Recommended Setting
56 17 02 ; Software Reset
56 00 FC ; Power up all DAcs and PLL
56 01 80 ; SD only mode, Data input on Y-bus
56 80 10 ; SSAF Luma filter enabled, NTSC mode
56 82 c9 ; Step control on, pixel data valid, pedestal on, PrPb SSAF on,CVBS/YC out.
56 84 06 ; RTCO/SFL Enable
56 88 00 ; 8 bit input enabled
56 87 20 ; Encoder PAL/NTSC auto-detect enabled



Код
adv7180_write_reg(0x00,0x01); //CVBS IN

adv7180_write_reg(0x03,0x0C); //8 Bit Mode

adv7180_write_reg(0x04,0x77); //Enable SFL

adv7180_write_reg(0x17,0x41); //select SH1

adv7180_write_reg(0x1D,0x47); //Enable 28MHz Crystal

adv7180_write_reg(0x31,0x02); //Clears NEWAV_MODE, SAV/EAV to suit ADV video encoders

adv7180_write_reg(0x3A,0x17); //Set Latch Clock & power down ADC 1 & ADC2 & ADC3

adv7180_write_reg(0x3B,0x81); //Enable internal Bias

adv7180_write_reg(0x3D,0xA2); //MWE Enable Manual Window, Colour Kill Threshold to 2

adv7180_write_reg(0x3E,0x6A); //BLM optimisation

adv7180_write_reg(0x3F,0xA0); //BGB

adv7180_write_reg(0x86,0x0B); //Enable stdi_line_count_mode

adv7180_write_reg(0xF3,0x01); //Enable Anti Alias Filter on ADC0

adv7180_write_reg(0xF9,0x03); //Set max v lock range

adv7180_write_reg(0x0E,0x80); //ADI Recommended Setting

adv7180_write_reg(0x52,0x46); //ADI Recommended Setting

adv7180_write_reg(0x54,0x00); //ADI Recommended Setting

adv7180_write_reg(0x7F,0xff); //ADI Recommended Setting

adv7180_write_reg(0x81,0x30); //ADI Recommended Setting

adv7180_write_reg(0x90,0xC9); //ADI Recommended Setting

adv7180_write_reg(0x91,0x40); //ADI Recommended Setting

adv7180_write_reg(0x92,0x3C); //ADI Recommended Setting

adv7180_write_reg(0x93,0xCA); //ADI Recommended Setting

adv7180_write_reg(0x94,0xD5); //ADI Recommended Setting

adv7180_write_reg(0xB1,0xFF); //ADI Recommended Setting

adv7180_write_reg(0xB6,0x08); //ADI Recommended Setting

adv7180_write_reg(0xC0,0x9A); //ADI Recommended Setting

adv7180_write_reg(0xCF,0x50); //ADI Recommended Setting

adv7180_write_reg(0xD0,0x4E); //ADI Recommended Setting

adv7180_write_reg(0xD1,0xB9); //ADI Recommended Setting

adv7180_write_reg(0xD6,0xDD); //ADI Recommended Setting

adv7180_write_reg(0xD7,0xE2); //ADI Recommended Setting

adv7180_write_reg(0xE5,0x51); //ADI Recommended Setting

adv7180_write_reg(0xF6,0x3B); //ADI Recommended Setting

adv7180_write_reg(0x0E,0x00); //ADI Recommended Setting
Спуститься к концу Подняться к началу
Персональная информация
mibin
Добавлено 24.04.2013 13:07 Редактировалось 24.04.2013 13:08 Сообщение: 117
mibin
5

Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Вот картинка которую я получаю.
На картинке 2 камеры подключены
title

Так вот, при переключении какая-то странная ситуация...картинка уезжает...т.е. произошло переключение, потом картинка поползла вниз и вылезла сверху :)
Таким ухо мыши уползет и вылезет сверху :)
Че за хрень? :)
Спуститься к концу Подняться к началу
Персональная информация
leh
Добавлено 25.04.2013 08:48 Сообщение: 118
leh
5

Пункты: 1646
Регистрация: 07.06.2009
Пол: Мужчина
Из: Волгоград
Такой же эффект наблюдается и просто при выдергивании и последующей вставки камеры в разъем, так что вполне логично, что это у вас наблюдается при горячем переключении каналов. Похоже это баг во фрискейловском драйвере CSI, либо вообще какая-то непреодолимая особенность модуля CSI. Во всяком случае такого эффекта на SoC AT91SAM9G20 с тем же ADV7180 я не наблюдал.
Кстати, что-то подобное обсуждалось на imxcommunity, попробуйте поискать там. Правда, не уверен, что там было какое-то решение.
P.S. А это прокручивание картинки наблюдается и со скриптом быстрого переключения?
Спуститься к концу Подняться к началу
Персональная информация
mibin
Добавлено 25.04.2013 17:54 Сообщение: 119
mibin
5

Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Цитата
P.S. А это прокручивание картинки наблюдается и со скриптом быстрого переключения?


Да, наблюдается, НО в ГОРАЗДО, просто несравнимо гораздо меньшем проявлении. :)
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux