Ник:
Пароль:

Контакты

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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Отладочные платы » SK-iMX6Q
SK-IMX6Q и OV2640
sasamy
Добавлено 08.02.2014 00:09 Редактировалось 08.02.2014 00:11 Сообщение: 11
sasamy
4.70

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

Но возникла другая проблема. Подключил монитор HDMI,
примерно после от 2 до 10 минут работы гаснет


Посмотрите после загрузки параметры ядра

dmesg | grep "Kernel command line"
или
cat /proc/cmdline

есть ли там параметры
consoleblank=0 dmfc=3

если нет - добавьте в загрузчике
Спуститься к концу Подняться к началу
Персональная информация
702
Добавлено 08.02.2014 12:56 Сообщение: 12
702
0

Пункты: 289
Регистрация: 27.10.2011
А, так это просто скринсейвер. Тогда ладно.
Меня смутил этот "Some EDID".

С цветами на изображении все оказалось не так просто.
Байты каналов яркость/цвет перепутаны местами. Камера
умеет свопать, но зачем-то при этом зеркалит байты -
меняет порядок бит.

Можно ли как-то поменять порядок байт через gstreamer?
IPU умеет.

Но команда типа:
gst-launch mfw_v4lsrc !'video/x-raw-yuv,width=800,height=600, format=(fourcc)UYVY' ! mfw_v4lsink

приводит к

WARNING: erroneous pipeline: could not link mfwgstv4lsrc0 to mfw_gst_v4lsink_info_t0
и аварийному выходу.

Вообще, можно как нибудь посмотреть список поддерживаемых форматов?

gst-inspect mfw_v4lsrc

выводит массу информации, но нужной мне там нет.

Я пока с трудом разбираюсь в плагинах gstreamer. Понимаю, что это что-то вроде
фильтров DirectMedia в Windows, но там все как-то прозрачнее и нагляднее.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 08.02.2014 16:41 Редактировалось 08.02.2014 17:14 Сообщение: 13
sasamy
4.70

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

С цветами на изображении все оказалось не так просто.
Байты каналов яркость/цвет перепутаны местами. Камера
умеет свопать, но зачем-то при этом зеркалит байты -
меняет порядок бит.


По-моему там ошибка V4L2_PIX_FMT_YUV420

} else if (format == V4L2_PIX_FMT_YUV420) {
/* set YUV420 format */
if (i2c_smbus_write_byte_data(s->i2c_client, 0xda, 0x00) < 0)
ret = -EPERM;

где они планарный формат увидели на камере :) Если не убрали

{vidioc_int_s_fmt_cap_num, (v4l2_int_ioctl_func *)ioctl_s_fmt_cap},

попробуйте убрать из списка ioctl, в ov5640 не используется и упоминания о RGB тоже. Или еще лучше - выложите на pastebin.com свой исправленый ov2640.c - там еще пара нюансов, камера неправильно о своих настройках скорей всего сообщает на верхний уровень. Формат должен по идее автоматически преобразовываться в плагинах.
Спуститься к концу Подняться к началу
Персональная информация
702
Добавлено 08.02.2014 18:34 Сообщение: 14
702
0

Пункты: 289
Регистрация: 27.10.2011
http://pastebin.com/PSudjPde

Да, видно еще что-то не работает.
я там дебугов наставил в ov2640_set_format: "set RGB" и "set YUV".
Не вижу при работе. Похоже, эта ветка вообще никогда не вызывается.
Как раз то место, которое Вы указали.

Камера выдает по выбору: Байер 10 бит, YUV422/420, RGB565/RGB555,
сжатые данные.

...
При ближайшем рассмотрении это не драйвер. Это какая-то заготовка,
писаная левой ногой. Как при инициализации вся таблица регистров
в сенсор грузится, так больше практически и не трогается. Ну, кроме
перключателя rgb-yuv, который не вызывается.

функция ioctl_s_ctrl пустая.

Один режим починил. Нашел комбинацию настроек у камеры,
когда цвет нормальный. Теперь 800x600 YUV работает.

Нас интересует только один режим : 1600x1200 YUV.

По большому счету, gstreamer нужен был только для проверки
работоспособности. Все равно свою программу писать, которая
мультиплексором управляет и изображения захватывает.
Нужны сырые данные,обрабротаем сами.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 08.02.2014 18:55 Редактировалось 08.02.2014 19:14 Сообщение: 15
sasamy
4.70

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

Нас интересует только один режим : 1600x1200 YUV.
По большому счету, gstreamer нужен был только для проверки
работоспособности.


Я тогда не буду время тратить - вы и так уже получили результат думаю добьете и остальное - мне без железа смысла нет мозголомством с изучением даташита заниматься :) Для своей программы можете посмотреть как сделана работа с V4L2 в тестах, чтобы собрать в буилдруте включите тут

make menuconfig

-> Target packages
-> Hardware handling
-> Freescale i.MX libraries
[*] imx-test

exit и make

тесты в готовой корневой будут в /imx-test
исходники в дереве буилдрута в output/build/imx-test-3.10.9-1.0.0

на сайте фрискейл я когда-то видел патч для теста - при выводе на экран данные не копируются за счет процессора а передается адрес кадра который нужно отобразить через userptr, но я не могу найти его через гугл.

PS если в фрискейловском варианте драйвера все плохо с инициализацией регистров для разных режимов - посмотрите драйвер ov2640 в текущем ванильном ядре - там наверняка все правильно, разница только в том что там драйверы оформлены в стиле camera-soc, а ф-ции-обработчики ioctl по смыслу те же самые.
Спуститься к концу Подняться к началу
Персональная информация
702
Добавлено 09.02.2014 06:10 Сообщение: 16
702
0

Пункты: 289
Регистрация: 27.10.2011
Да, скорее всего так и сделаю. Скачаю тесты, покопаюсь.
--
soc- драйвер тоже выполнен "лишь бы работало". 80%
возможностей камеры не используются. Никаких яркостей-контрастностей-цветностей.
Не говоря уж об экспозициях, шумодавах, жипегах.

Вообще, думаю сделать "рулилку" регистрами из юзерспейса.
Пусть мне IPU данные с шины в память положит. Об их
содержании позабочусь сам.

Вот, нашел на просторах сети:
http://dl.linux-sunxi.org/SDK/A23-v1.0/unpacked/A23/lichee/linux-3.4/drivers/media/video/sunxi-

vfe/device/ov2640.c

Китайцы писали, видимо для какого-то планшета.
Тоже, судя по стилю,"для внутреннего употребления".
Но хотя бы настройки в регистры грузятся. Даже в те,
которые не описаны в официальном даташите на сенсор.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-iMX6Q