mibin
Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Странная ситуация...получается если он на этом канале уже был...он обратно на него не переключается...может быть нужно как-то останавливать работу канала, а потом переключаться на другой...
mibin
Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
mibin
Пункты: 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
Пункты: 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
Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Короче, я сам дурак оказался, переключение происходит в обе стороны, просто переменная передающаяся внутрь ioctl в последствии принимала значение 1...
По поводу регистров, спасибо, попробую, может найду какие примеры, теперь хоть более ли менее понятно, куда копать.
mibin
Пункты: 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
Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Вот картинка которую я получаю.
На картинке 2 камеры подключены
Так вот, при переключении какая-то странная ситуация...картинка уезжает...т.е. произошло переключение, потом картинка поползла вниз и вылезла сверху :)
Таким ухо мыши уползет и вылезет сверху :)
Че за хрень? :)
leh
Пункты: 1646
Регистрация: 07.06.2009
Пол: Мужчина
Из: Волгоград
Такой же эффект наблюдается и просто при выдергивании и последующей вставки камеры в разъем, так что вполне логично, что это у вас наблюдается при горячем переключении каналов. Похоже это баг во фрискейловском драйвере CSI, либо вообще какая-то непреодолимая особенность модуля CSI. Во всяком случае такого эффекта на SoC AT91SAM9G20 с тем же ADV7180 я не наблюдал.
Кстати, что-то подобное обсуждалось на imxcommunity, попробуйте поискать там. Правда, не уверен, что там было какое-то решение.
P.S. А это прокручивание картинки наблюдается и со скриптом быстрого переключения?
mibin
Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Цитата P.S. А это прокручивание картинки наблюдается и со скриптом быстрого переключения?
Да, наблюдается, НО в ГОРАЗДО, просто несравнимо гораздо меньшем проявлении. :)