LINUX.ORG.RU

Доделка V4L2-compatible драйвера

 , , , ,


0

1

Дано устройство (камера на ov5642) у которого по i2c - control flow, по SPI - data flow.
Существующий драйвер ov5642 умеет в контроль по i2c. В то же самое время для даты он использует v4l2-mediabus который умеет только Parallel или CSI1/2.
Девайс три написал вроде бы, но не знаю можно ли как-то дата ендпоинт описать как SPI канал... Или все же прийдется допиливать драйвер(в смысле добавлять SPI как канал для передачи даных)?

LK 4.9

fragment@0 {
  target = <&i2c2>;
  __overlay__ {
    status = "okay";

    #address-cells = <1>;
    #size-cells = <0>;

    ov5642: camera@3c {
      compatible = "ovti,ov5642";
      reg = <0x3c>;
      port {
        #address-cells = <1>;
        #size-cells = <0>;
        ov5640_spi: endpoint {
          reg = <0>;
          /*remote = <&spi1_1>;*/
        };
      };
    };
  };
};

★★★★★

Последнее исправление: Jetty (всего исправлений: 1)

Существующий драйвер ov5642 умеет в контроль по i2c. В то же самое время для даты он использует v4l2-mediabus который умеет только Parallel или CSI1/2.

сенсор ov5642 не поддерживает SPI для передачи данных - в устройстве стоит какой-то дополнительный микроконтроллер, кстати он slave или master на SPI ?

Или все же прийдется допиливать драйвер(в смысле добавлять SPI как канал для передачи даных)?

его фактически надо написать с нуля используя существующий код для управления из драйвера subdevice а не допиливать

anonymous
()
Ответ на: комментарий от anonymous

сенсор ov5642 не поддерживает SPI для передачи данных - в устройстве стоит какой-то дополнительный микроконтроллер, кстати он slave или master на SPI ?

Да, естественно там доп мцу с довольно большой набортной памятью. Slave SPI.

Jetty ★★★★★
() автор топика

как интересно: очень похоже на то, с чем мы сейчас ковыряемся на IP камерах.

А что за устройство у вас?

max_lapshin ★★★★★
()
Ответ на: комментарий от Jetty

Slave SPI

в данном случае под API subdevice нет смысла подстраиваться и описывать endpoint. Можно сделать i2c драйвер описать его в DT на нужном интерфейсе и через эту ноду передать номер SPI-мастера, чипселект и тд. В probe динамически зарегистрировать новое slave-устройство для spi-мастера

https://elixir.bootlin.com/linux/v4.16.10/source/Documentation/spi/spi-summar...

пример

https://elixir.bootlin.com/linux/v4.16.10/source/drivers/staging/fbtft/fbtft_...

драйвер написать по примеру плат видеозахвата на PCI(e) у которых «все в одном» и нет разделения на сенсор и хост дма.

anonymous
()
Ответ на: комментарий от max_lapshin

очень похоже на то, с чем мы сейчас ковыряемся на IP камерах

странно учитывая то что SPI нетипичный интерфейс для передачи данных большого объема, у ТС какая-то кустарная камера для ардуин. Для примера 5 мегапикселей 2 байта на пиксель для одного кадра потребуют 10 МГц на SPI, 50 МГц это практически потолок для SPI, те 5 кадров в секунду. Есть конечно dual и quad spi но это явно не случай ТС. Все SoC используют либо параллельный интерфейс или MIPI-CSI 2 и выше.

anonymous
()
Ответ на: комментарий от anonymous

Для примера 5 мегапикселей 2 байта на пиксель для одного кадра потребуют 10 МГц на SPI

Наврал я немного причем не в пользу SPI

5 000 000 pix * 16 bpp = 80 000 000 bit

так что 80 МГц - максимум кадр в секунду на обычном spi

anonymous
()
Ответ на: комментарий от anonymous

Попал с камерой.
не попал с калькуляцией битиков и проприетаным мипи цси2.

Простой ХД в жпеге дает совсем другие числа. 5МП делают исходник для копрессии хорошего качества.

Jetty ★★★★★
() автор топика
Ответ на: комментарий от max_lapshin

Ардукам 5мп плюс загугли. Здорово экономит ноги, в условиях когда их нет совсем вполне ок. Низковатый фреймрейт (8мгц по СПИ подрезает крылья) но 5-10 вытянуть можно. В условиях отсутствия ЦСИ на лоукост мцу/мпу неплохой вариант... Теоретически :)
Если есть получше варианты то с удовольствием послушаю.

Jetty ★★★★★
() автор топика
Ответ на: комментарий от Jetty

Вот из-за таких экономистов вебки такое уг.

anonymous
()
Ответ на: комментарий от anonymous

Спасибо за детали. В принципе что-то похожее в голове и крутилось. Но наличие полного обслуживания сенсора в существующем драйвере давало надежду на его переиспользование.

Jetty ★★★★★
() автор топика
Последнее исправление: Jetty (всего исправлений: 1)
Ответ на: комментарий от Jetty

не попал с калькуляцией битиков и проприетаным мипи цси2

я же не тебе это писал

Простой ХД в жпеге дает совсем другие числа

этот жпег годится только для дешевых фотиков типа мыльница. Современные камеры для видеонаблюдения с нормальными процессорами с DSP и с сенсора берут RGB/YUV или Bayer.

anonymous
()
Ответ на: комментарий от anonymous

да, в камерах используется i2c и MIPI CSI, всё верно. SPI только для флешки на которой линукс

max_lapshin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.