Ник:
Пароль:

Контакты

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

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Embedded Linux
SK-VideoADC-Plug
leh
Добавлено 31.08.2009 19:00 Сообщение: 21
leh
5

Пункты: 1646
Регистрация: 07.06.2009
Пол: Мужчина
Из: Волгоград
Цитата
то есть приходится ставить FRATE=1 и размер preview = размеру "сенсора" (720x576 для PAL), что сильно грузит PDC (а значит аукнется рано или поздно)

preview позволяет захватывать видео максимум 640x480, так по-крайней мере в документации говорится. Сам я не пробовал, может и 720x576 можно, но реально картинка-то будет 720x288. ISI не работает через PDC, он имеет собственную шину, хотя скорее всего особой роли это не играет, т.к. все равно конкуренция идет за внешнюю память.

Цитата
в 9G45 можно сжимать картинку в preview до 320x200 (к примеру), сравнивать, и если надо - читать через codec два полуфрейма.

Как вариант - не читать два полукадра из codec, а растягивать один полукадр. Так в некоторых системах оцифровки видео и делается, а иначе еще и деинтерлейсинг придется делать программно.
Спуститься к концу Подняться к началу
Персональная информация
Felzinger
Добавлено 09.03.2010 22:35 Сообщение: 22
Felzinger
0

Пункты: 3672
Регистрация: 19.01.2010
Пол: Мужчина
Не моглибы скинуть драйвер для ADV7180
Спуститься к концу Подняться к началу
Персональная информация
Geban
Добавлено 10.03.2010 01:31 Сообщение: 23
Geban
5

Пункты: 2060
Регистрация: 03.01.2010
Поидее камера от телефона SIEMENS S56 должна подойти. Там 8 бит шина данных (RGB5:6:5) и управление по I2C. Даташит есть.
На днях добуду камеру, попробую присобачить
Спуститься к концу Подняться к началу
Персональная информация
Strijar
Добавлено 10.03.2010 21:22 Сообщение: 24
Strijar
Ранг
5

Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
Возьмите крайнее стабильное ядро - там есть уже ADV7180
Спуститься к концу Подняться к началу
Персональная информация
alex7
Добавлено 31.05.2010 14:40 Сообщение: 25
alex7
0

Регистрация: 02.05.2010
Кто сталкивался с проблемой зелено-фиолетовых кадров, подскажите, как ее решить? Переставлял уже по-всякому YCbCr, а картинка меняется либо на зеленые оттенки, либо никак.
Спуститься к концу Подняться к началу
Персональная информация
Strijar
Добавлено 31.05.2010 20:34 Сообщение: 26
Strijar
Ранг
5

Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
А что именно "переставлял"? Переставлять надо порядок байт именно в драйвере. Насколько я помню - он не умеет это делать настройками снаружи
Спуститься к концу Подняться к началу
Персональная информация
alex7
Добавлено 01.06.2010 01:22 Сообщение: 27
alex7
0

Регистрация: 02.05.2010
(работаю в Keil) Основные параметры:

AT91C_BASE_ISI->ISI_PSIZE = ((640-1) << 16) | ((480-1) << 0); // preview size
AT91C_BASE_ISI->ISI_PDECF = (16 * 720) / 640; // precision koef
// Init ISI control registers
tempu32 = (
( 0 << 0) | /* ISI_RST = 0 (not in reset) */
( 1 << 1) | /* ISI_DIS = disable (enable later)*/
( 1 << 2) | /* HSYNC_POL */
( 1 << 3) | /* VSYNC_POL */
( 1 << 4) | /* PIXCLK_POL */
( 1 << 6) | /* EMC_SYNC = SAV/EAV */
( 1 << 7) | /* CRC_SYNC = correction */
( 6 << 8) | /* FRATE = capture every 6th frame */
( 0 << 12) | /* FULL */
( 0 << 13) | /* THMASK = 4, 8, 16 AHB bursts allowed */
( 0 << 15) | /* CODEC_ON = disable codec path */
( 0 << 16) | /* SLD = start of line delay */
( 0 << 24) ); /* SFD = start of frame delay */
AT91C_BASE_ISI->ISI_CR1 = tempu32;

tempu32 = (
((288-1) << 0) | /* IM_VSIZE = vert.size */
( 0 << 11) | /* GS_MODE = don't care */
( 0 << 12) | /* RGB_MODE = don't care */
( 0 << 13) | /* GRAYSCALE = disabled */
( 0 << 14) | /* RGB_SWAP = D7->R7 */
( 0 << 15) | /* COL_SPACE = YCbCr */
((720-1) << 16) | /* IM_HSIZE = horiz. size = 720 */
( 0 << 28) | /* YCC_SWAP = mode 0 */
( 0 << 30) ); /* RGB_CFG = mode 0 */
AT91C_BASE_ISI->ISI_CR2 = tempu32;

Буфера заполняются нормально (работаю с двумя), кадр получается реальный. На первых порах, чтобы хоть что-то получить корректно поставил захватывать каждый 6-й кадр, чтобы все было ок и не перегружать шину памяти.

Итого, как я себе это понимаю: кадр захватывается по Preview Path, преобразуется в RGB и ложится в буфер preview. За порядок получаемых от сенсора (в данном случае в роли сенсора - ADV7180) цветовых компонентов пикселя отвечает AT91C_ISI_YCC_SWAP. Он имеет 4 значения: от 0 до 3. Его-то я и перебирал - итог не радует. Значения пикселей в буфере меняются, но все равно цвета не те.
Т.е., может копать не ISI, а по I2C какие-то специфические цветовые параметры ADV7180??
Если не сложно, буду рад любому фрагменту кода. Хоть работаю не в линуксе, но в данном случае принципиальной разницы не вижу - дело явно в каких-то специфичных для ISI+ADV7180 параметрах.
Спуститься к концу Подняться к началу
Персональная информация
lluke
Добавлено 22.06.2012 16:44 Сообщение: 28
lluke
0

Пункты: 118
Регистрация: 22.06.2012
Цитата

Для захвата потокового видео я использовал утилиту ффмпег. Захват видео производил с устройства /дев/видео1 (превиещ патх). Корректного захвата видео удалось добиться только после некоторых исправлений драйвера атмел-иси:
1. для ффмпег требуется, чтобы каждый кадр имел штамп времени, похоже он их упорядочивает по времени, хотя иного порядка быть не может. В обработчик прерываний добавил установку времени захвата кадра.
2. выбор способа перестановки компонентов ЫЦбЦр написан неправильно. Исправил в соответствии с докой, иначе получаем зелено-фиолетовые кадры.
3. увеличил число буферов с 4 до 8-16 в зависимости от размера картинки. Это позволило избежать потери кадров в драйвере из-за больших задержек в Линух.
В итоге получилось захватывать видео вплоть до 176х144, 25Гц в мпег1 со 100% загрузкой процессора. Полукадры чересстрочного видео (176х72) при этом растягивались программно утилитой ффмпег.


Hi Leh,

Я также использовал, что выше патча: ISI инициализируется,

i2c /dev entries driver
Linux video capture interface: v2.00
atmel_isi atmel_isi: Reading configuration
atmel_isi atmel_isi: video buffer: 155648 bytes at ffcee000 (phys 21d80000)
atmel_isi atmel_isi: video buffer: 155648 bytes at ffd14000 (phys 21dc0000)
atmel_isi atmel_isi: video buffer: 155648 bytes at ffd3a000 (phys 21f00000)
atmel_isi atmel_isi: video buffer: 155648 bytes at ffd60000 (phys 21f40000)
atmel_isi atmel_isi: capture buffer: 962560 bytes at ffc03000 (phys 0x21e00000)
atmel_isi atmel_isi: Atmel ISI V4L2 device at 0xfffc0000

но при использовании утилита захвата я получаю

Failed to open video device: Invalid argument

ls -al /dev/video*
crw-r--r-- 1 root root 81, 0 Jan 1 02:00 /dev/video0
crw-r--r-- 1 root root 81, 1 Jan 1 02:00 /dev/video1


Можете ли вы поделиться более подробно?
Спуститься к концу Подняться к началу
Персональная информация
z00b
Добавлено 11.09.2012 10:17 Сообщение: 29
z00b
0

Пункты: 5587
Регистрация: 11.02.2012
Здравствуйте, используется плаг SK-VideoADC-Plug, плата SK-(M)AT91SAM9G45/M10, ISI инициализируется:

Linux video capture interface: v2.00
AT91: atmel_isi_init_module
AT91: atmel_isi_probe
atmel_isi atmel_isi: Reading configuration
atmel_isi atmel_isi: video buffer: 155648 bytes at ffc00000 (phys 73940000)
atmel_isi atmel_isi: video buffer: 155648 bytes at ffc80000 (phys 73980000)
atmel_isi atmel_isi: video buffer: 155648 bytes at ffd00000 (phys 739c0000)
atmel_isi atmel_isi: video buffer: 155648 bytes at ffd80000 (phys 73000000)
atmel_isi atmel_isi: capture buffer: 962560 bytes at ffb00000 (phys 0x73b00000)
kfifo_alloc
atmel_isi atmel_isi: Atmel ISI V4L2 device at 0xfffb4000

А вот камеру не находит:
SK-MAT91SAM9G45 + SK-VideoADC-Plug video frame grab example.
Before, connecting SK-VideoADC-Plug to X1 or X4.
Close J4 to 2-3 position (for FIELD as VS sync sellection).
Attention!!! Some GPIO pins will be reconfiguring, after this SK-SIMCOM-Plug will not be working correct.
Pb no camera found!!!
Segmentation fault
image.ppm can be opened in PhotoShop

А при загрузке не вижу инициализации драйвера ADV7180, в ядре включен. Ядро то что с платой шло, 2.6.36-rc6.

Подскажите,куда копать.
Спуститься к концу Подняться к началу
Персональная информация
z00b
Добавлено 11.09.2012 13:24 Сообщение: 30
z00b
0

Пункты: 5587
Регистрация: 11.02.2012
по I2C устройство видится:
#i2cdetect 0
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- 21 -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
отвечает правильно:
# i2cget -f -y 0 0x21 0x11 b
0x1c
При отключенной камере, я должен получить черную картинку при запуске isi_test или все правильно, что ругается?
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux