#c #linux #v4l2
Вопрос:
Нужны ли v4l2 команды I2C для сбора данных с модуля камеры?
Мы работаем с камерой, данные которой преобразуются в MIPI в мосту. Это означает, что у нас нет возможностей I2C с этой камерой. Однако мы пытаемся написать для него драйвер (на основе этого примера), и я пытался получить некоторую информацию, используя команды v4l2 в терминале. Пример:
v4l2-ctl --device /dev/video0 --all
Дает ответ:
Driver Info:
Driver name : mx6s-csi
Card type : i.MX6S_CSI
Bus info : platform:30a90000.csi1_bridge
Driver version : 4.14.98
Capabilities : 0x84200001
Video Capture
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04200001
Video Capture
Streaming
Extended Pix Format
Priority: 0
Video input : 0 (Camera: ok)
Format Video Capture:
Width/Height : 0/0
Pixel Format : ''
Field : Any
Bytes per Line : 0
Size Image : 0
Colorspace : Default
Transfer Function : Default (maps to Rec. 709)
YCbCr/HSV Encoding: Default (maps to ITU-R 601)
Quantization : Default (maps to Full Range)
Flags :
Crop Capability Video Capture:
Bounds : Left 0, Top 0, Width 0, Height 0
Default : Left 0, Top 0, Width 0, Height 0
Pixel Aspect: 1/1
Crop: Left 0, Top 0, Width 0, Height 0
Как вы можете видеть, все равно 0. Тем не менее, я уверен (проверено с помощью осциллографа), что с моста поступают данные, а также часы. Я думаю, что команды v4l2 нуждаются в I2C для сбора данных, но я не уверен.
PS: если кто-нибудь знает какие-либо примеры драйверов без I2C, пожалуйста, дайте мне знать!
Комментарии:
1. Я знаю Джека о V4L, но я был бы поражен, если бы кто-нибудь использовал медленную шину, такую как I2C, для извлечения данных из камеры. Кроме того, конечно, все дело в V4L в том, что это API, поэтому вы не беспокоитесь об аппаратных уровнях? Вы пытаетесь написать действительно низкоуровневый драйвер?
2. @DiBosco v4l2 использует I2C для получения информационных данных с камеры (рукопожатия, считывание информационных регистров и т.д.). V4L действительно является API, который можно использовать в качестве драйвера. Основное, что я пытаюсь сделать, — это использовать этот API для вывода данных с камеры без необходимости использования I2C. Что оказывается гораздо сложнее, чем кажется.
3.Само ядро v4l2 не зависит от I2C. Некоторые устройства используют I2C для настройки и управления. Если у вашего модуля камеры есть I2C, он, вероятно, для чего-то нужен. Для примеров драйверов, которые не зависят от I2C, найдите в файлах «Kconfig» в каталоге драйверы/носители параметры конфигурации, которые
depends on
не являются ниselect
I2C
.4. @IanAbbott Моей камере вообще не нужен I2C, поэтому любой драйвер, в котором мы можем настроить некоторую информацию (например, ширину пикселя) и который не использует I2C, очень приветствуется! где те файлы, на которые вы указали? В системе Linux Менделя в этом каталоге есть «платформа» и папка «usb» (/lib/модули/4.14.98-imx/ядро/драйверы/носители/) , ни один из которых, похоже, не имеет подключения к v4l на первый взгляд? Однако я также не могу найти никаких онлайн-примеров.
5. Например (все в разделе «драйверы/носители/платформа/»): «ti-vpe/cal.c», «ti-vpe/vpe.c», «stm32/stm32-dcmi.c».