|
Как подключить MIPI CSI-2 камеру?, Перекачать картинку с модулей Omnivision, Sony IMX и т.п. |
|
|
|
Dec 23 2016, 05:00
|
Местный
  
Группа: Участник
Сообщений: 200
Регистрация: 30-10-10
Пользователь №: 60 531

|
Существует множество сенсоров, у которых имеется только MIPI интерфейс. Какие есть пути их использования? Неавно вычитал, что по MIPI с некоторых модулей можно перекачивать JPEG, это в некотором смысле может уменьшить требования к используемым чипам. Меня давно интересует следующая идея: вычитать один Bayer кадр с такого сенсора и положить его в DDR память, либо вычитать JPEG по MIPI и сразу по USB отправить в какой-нибудь простенький ARM. Но ничего толком найти не удаётся. 1) FPGA Какой самый минимальный дешевый чип позволит сделать мост CSI-parallel? Я вижу рекламу новых чипов, но они дороже самих камер в десятки раз. Условно говоря сейчас 5 мегапикселей это 100 рублей. 2) Чипы USB camera controller Огромное количество чипов с MIPI интерфейсом, но никакой документации, сложно достать Вот маленький списочек: Цитата USB2.0 camera controllers:
sm3732 - USB 2.0 PC Camera Controller (QFN40) MIPI: unknown au3830 - USB 2.0 WEB Camera Controller (LQFP,QFN) MIPI: unknown AU3822U - USB 2.0 NB-Cam Controller MIPI: unknown AU3826 - USB 2.0 NB-Cam Controller MIPI: yes M5608T - USB 2.0 NB-Cam Controller MIPI: unknown AU3841 - USB 2.0 NB-Cam Controller MIPI: unknown SN9C292A - USB2.0 H.264 Video Encoding Camera Controller (65pin LGA) MIPI: yes SN9C291B - USB2.0 H.264 Video Encoding Camera Controller MIPI: yes SN9C270M - USB 2.0 High-Speed (HS) compatible PC Camera controller MIPI: yes SN9C271M - USB 2.0 High-Speed (HS) compatible PC Camera controller MIPI: yes SN9C281M - USB 2.0 High-Speed (HS) compatible PC Camera controller MIPI: yes SN9C281A - USB 2.0 High-Speed (HS) compatible PC Camera controller MIPI: no SN9C270A - USB 2.0 High-Speed (HS) compatible PC Camera controller MIPI: no SN9C271A - USB 2.0 High-Speed (HS) compatible PC Camera controller MIPI: no SN9C263 - USB 2.0 compatible PC Camera controller MIPI: no SN98600 - SONIX SN98600 / 98601 / 98610 IP Camera SoC MIPI: yes GL865A - USB 2.0 UVC/MJPG Camera Controller MIPI: yes GL864A - USB 2.0 UVC Camera Controller MIPI: unknown GL862EC - USB 2.0 PC Camera Controller MIPI: unknown
USB3.0 camera controllers (with MIPI interface):
RTS5825 - USB3.0 PC Camera Controller with Image Signal Processing and MJPEG Encoder cyusb3064 - EZ-USB CX3 Programmable MIPI CSI-2 to USB 3.0 Camera Controller
IP camera SOC:
S3LM IP Camera SoC MIPI: yes Hi3516A MIPI: yes Hi3518 MIPI: no GM8139 - High-Performance Solution for H.264 IP Camera Application MIPI: yes GM8138/8138S - Cost-Effective Solution for H.264 IP Camera Application MIPI: yes GM8136S/8135S - Economic H.264 IP Camera Application MIPI: yes
Mozart 330s Mozart 370s Mozart 385s Mozart 390s Mozart 395s - MIPI: unknown R288C,R292C - H.264 Codec SoC with Dual Video Input Channel MIPI: yes M388C,M392C - H.264 Encoder SoC with Integrated Fisheye Correction Function MIPI: yes
FH8810 - FH8810 high performance SoC for HD IPC - MIPI: yes FH8830 - 2M/3M High Performance Camera SoC - MIPI: yes FH8812 - High Performance SoC for IP Camera - MIPI: yes FH8620 - Low-Power、High Performance Wireless Camera SoC FH8610 - FH8610: Low Cost、High Performance Wireless Camera SoC FH8550M - High Performance 1080P ISP for CCTV - MIPI: yes Я смотрел даташиты на многие из этих чипов, и пришел к выводу, что если иметь доступ к их SDK (встроенной прошивке), то это очень интересное решение. Не совсем понятно ограничение на разрешение видео для некоторых чипов, наверное встроенной памяти не хватит для перекодировки Bayer в MJPEG. Но если сенсор напрямую шлёт JPEG (типа Omnivision), то без проблем должно пролезть в USB. Вообще идеальный вариант был бы, только нужно знать конфигурационные регистры модуля, и его уже можно подключать к любой платформе с USB2.0 + UVC. Это можеть быть и Openwrt, и обычный ПК, и андроид. 3) Всякие ARM процессоры, например от Broadcom и Mediatek. Но их не купить толком и документации нету. Разве что Raspberry Pi. Либо чипы очень дорогие, nvidia jetson и т.п..
Сообщение отредактировал tmtlib - Dec 23 2016, 05:03
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 21)
|
Dec 23 2016, 09:31
|
Знающий
   
Группа: Свой
Сообщений: 618
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 375

|
Цитата(tmtlib @ Dec 23 2016, 13:09)  А что за мост, что на выходе? Параллельный порт, USB? Я пока искал чипы, ещё заметил что-то про MIPI/CSI2 у Intel Atom.
Видимо ничего проще Lattice не найти. Смотрю документацию: "The Lattice MIPI CSI2-to-CMOS Parallel Sensor Bridge reference design performs this conversion in the ultra-low density MachXO2™-1200HC FPGA." 1. Атомов таких два или три, и будет дороже FX3 или малинки. 2. Я прикидываюсь камерой MIPI-CSI2, чтобы в Jetson загнать свои потоки данных от скоростных АЦП. Для FPGA вам надо будет или память и/или интерфейс быстрый наружу (USB2/USB3/Ethernet100/1000). Чобы быстро, я бы взял жетсон кит или кит на FX3 (все есть на столе). С FX3 есть плюс, можно обойтись без памяти, перегоняя все сразу в комп по USB3.0. По времени в 1 месяц можно уложиться. Есть пример в SDK и AP-note. Если какмера гонит JGEG, может и USB2.0 хватить. Если серия большая, то на MachXO3 подумать, самописное. В примерах есть и приемник MIPI и передатчик.
|
|
|
|
|
Dec 25 2016, 09:31
|
Местный
  
Группа: Участник
Сообщений: 200
Регистрация: 30-10-10
Пользователь №: 60 531

|
Поискал разные fpga из ходовых и одновременно дешевых, где есть LVDS. Я так понимаю XC6SLX9 Spartan-6 имеет lvds. http://datasheet.octopart.com/XC6SLX9-2FTG...eet-8423772.pdfИ cyclone 4 ep1c3t144c8n в 144-pin корпусе. EP1C3 devices in the 100-pin TQFP package do not support the LVDS I/O standard. У меня следующие вопросы. Можно ли обойти трудности с MIPI таким образом: 1) включаем мобильник в режим снаятия видео, записываем часть потока по LVDS и как настраивается модуль камера по SPI. Далее в своём устройстве попросту имитируем то, что делал мобильник. По минимуму, запись в регистры и т.п. Или всё равно придётся реализовывать этот MIPI, т.к. он каждый раз данные разлохматит по-разному, будет прыгать между low-power и high speed режимами и т.п.? Я даже подумывал о таком варианте: модуль камеры с поданным питанием сначала подключен к мобильнику, там включается видео на запись, затем не отключая питания идёт перевтыкание mipi в FPGA отладочную плату, и там LVDS поток нарезается на байты и отправляется в память, интернет или USB. 2) зачем так много ячеек в FPGA на приём MIPI? Из-за анализа протокола обмена? Я вообще представлял себе такую картину: в FPGA быстро сыплется MIPI по LVDS, а затем биты с минимальной обработкой (типа 8бит в 1 байт преобразовать, выбросить что-нибудь лишнее) сыплются в оперативную память, USB или ещё куда. 3) Я так понимаю LVDS можно принять и без специальных LVDS входов, особенно если расстояние по плате маленькое и скорость не очень высокая? Какая там у ov5647 скорость я не знаю, может быть _pv знает =) p.s. Но насколько я понимаю LCMXO2-1200HC это самый дешевый вариант, если документация не врет: "The Lattice MIPI CSI2-to-CMOS Parallel Sensor Bridge reference design performs this conversion in the ultra-low density MachXO2™-1200HC FPGA."
|
|
|
|
|
Dec 25 2016, 15:48
|
Местный
  
Группа: Участник
Сообщений: 200
Регистрация: 30-10-10
Пользователь №: 60 531

|
Я помню ты где-то говорил про передачу JPEG по mipi (идея была задействовать недокументированную низкую скорость обмена, отладочные команды для чтения буфера, если таковае имеются). И ещё я находил темы на зарубежных ресурсах, где люди по какой-то причине хотят считывать готовый JPEG по MIPI, и что-то там не стыкуется, но там проблемы в линуксах и драйверах UVC/V4L. Я достаточно отчетливо помню, что кто-то гнал JPEG по CSI, т.к. там была проблема как настроить этот CSI в процессоре на заранее неизвестный объём кадра JPEG. 605Мбит за секунду это понятно, но я что-то не понял какую минимальную частоту можно выставить в PLL (встроенной, у сенсора). Максимум заявлен около 1000 МГц, что явно многовато. И во что оборачивается пониженная частота работы PLL, кроме как низкого FPS. Например, затвор, что будет с ним. Например global shutter у ov5647. Будет ли опрос пикселей размазан по времени. https://www.leopardimaging.com/uploads/LI-O...IPI-AF_SPEC.pdfинтересует PLL BYPASS. Будет ли MIPI работать на частоте кварца без умножения, если выставить PLL BYPASS?
Сообщение отредактировал tmtlib - Dec 25 2016, 16:00
|
|
|
|
|
Dec 27 2016, 02:42
|
Местный
  
Группа: Участник
Сообщений: 200
Регистрация: 30-10-10
Пользователь №: 60 531

|
Меня интересует снятие одного несмазанного по времени кадра, выдрать единственный кадр из bayer или jpeg потока. Как я понимаю, против размазывания фото по времени (движущийся объект растягивается либо сжимается на фото) нужен global shutter или rolling shutter с очень высоким FPS. Модуль OV5647 заинтересовал доступностью и наличием global shutter. Но тут в интернете я какую-то противоречивую информацию вижу, что в OV5647 на самом деле rolling shutter, где-то на форуме raspberry pi. И что по мере вычитывания пикселей идёт засветка оставшихся пикселей, поэтому если читать медленно, то самые последние пиксели будут ярче и смазанные, и что-то про необходимость механического(!) затвора, который закроет матрицу во время считывания.
Сейчас возникли сомнения по принципу работы global shutter. Сомневаюсь, что в таком дешевом сенсоре есть frame buffer на несколько мегабайт, чтобы хранить все пиксели. Так что момент про засветку может быть правдой. Видимо global shutter-ом тут называют следующее: одновременно _обнулили_ все пиксели на матрице, а затем вычитали и послали по mipi. Если вычитывать долго, то у самых последних пикселей будет дольше время засветки, и если например махать чем-то перед камерой, то в месте последних пикселей будет больше смазывания (догадки).
Пока искал разные модули видел очень странные платы, например Altera MAX2 + какой-то сенсор на 14мегапикселей, может там параллельный интерфейс конечно.
|
|
|
|
|
Dec 27 2016, 10:03
|
Гуру
     
Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965

|
В DS на 5647 черным по белому написано: 4.10.1 FREX control In FREX mode, whole frame pixels start integration at the same time, rather than integrating row by row. After the user-defined exposure time (0x3B01, 0x3B04, 0x3B05), the shutter closes, preventing further integration and the image begins to read out. After the readout finishes, the shutter opens again and the sensor resumes normal mode, waiting for the next FREX request. The OV5647 supports two modes of FREX (see figure 4-13): mode 1: Frame exposure and shutter control requests come from the external system via the FREX pin. The sensor will send a strobe output signal to control the flash light mode 2: Frame exposure request comes from the external system via the SCCB register 0x3B08[0]. The sensor will output two signals, shutter control signal through the FREX pin and strobe signal through the STROBE pin
Так что, это то, что Вам нужно. Если один кадр, то в FPGA спокойно примете, а дальше выдавайте с любой скоростью куда угодно. Не стоит только уменьшать скорость очень сильно, можно получить много шумов с матрицы.
|
|
|
|
|
Dec 27 2016, 15:11
|
Местный
  
Группа: Участник
Сообщений: 200
Регистрация: 30-10-10
Пользователь №: 60 531

|
Цитата(Alex11 @ Dec 27 2016, 14:03)  В DS на 5647 черным по белому написано: 4.10.1 FREX control In FREX mode, whole frame pixels start integration at the same time, rather than integrating row by row. After the user-defined exposure time (0x3B01, 0x3B04, 0x3B05), the shutter closes, preventing further integration and the image begins to read out. After the readout finishes, the shutter opens again and the sensor resumes normal mode, waiting for the next FREX request. The OV5647 supports two modes of FREX (see figure 4-13): mode 1: Frame exposure and shutter control requests come from the external system via the FREX pin. The sensor will send a strobe output signal to control the flash light mode 2: Frame exposure request comes from the external system via the SCCB register 0x3B08[0]. The sensor will output two signals, shutter control signal through the FREX pin and strobe signal through the STROBE pin
Так что, это то, что Вам нужно. Если один кадр, то в FPGA спокойно примете, а дальше выдавайте с любой скоростью куда угодно. Не стоит только уменьшать скорость очень сильно, можно получить много шумов с матрицы. Спасибо, теперь становится понятнее. Здесь скорее всего ошибочная информация: https://www.raspberrypi.org/forums/viewtopi...98&p=904220Цитата I have discussed it with an Omnivision apps engineer - there is no frame sync input on OV5647. In all situations the OV5647 operates in a rolling shutter mode. FREX acts as a global reset on all pixels which then starts exposing them all. Readout will start after the configured exposure time, but the lines continue exposing until they are read out. If you do not have externally controlled lighting or a mechanical shutter then the frame will be exposed for significantly longer (~66ms longer if 5MPix) at the bottom than the top. либо это про драйвер Raspberry PI. Смутило вот это заявление: "I have discussed it with an Omnivision apps engineer..." Вот кое-какие интересные фото, может кому пригодится в качестве источника идей для разработки: MT9F001/MT9F002 14мегапикселей Altera Cyclone3 http://m.aliexpress.com/item-desc/1444814594.html 3d камера на Altera Cyclone4 + cy7c68013a  SM3732 - микросхема в ноутбучных и планшетных вебкамерах. Без mipi, но вещь интересная. USB2.0  USB2.0 вебкамера. 5 мегапикселей, микросхема AU382x (в последней цифре не уверен) Возможно это AU3822U - USB 2.0 NB-Cam Controller MIPI: unknown или AU3826 - USB 2.0 NB-Cam Controller MIPI: yes AU3826 интересна наличием MIPI, в теории можно дешево загнать JPEG по USB с MIPI камеры  Может кто в курсе насчёт этих микросхем? Достать в теории не так уж и сложно, проблема со стабильным поставщиком, но можно ими разово закупиться. Я уверен оптом это самое дешевое решение. Самое главное иметь к ним хоть какой-нибудь SDK или утилиты, чтобы настроить под конкретную mipi камеру. А помимо Lattice USB3.0 mipi bridge есть вот эти две интересные микросхемки: Realtek RTS5825 и Genesys logic GL865A интересны они тем, что 1) MIPI 2) USB3.0 3) оптом должно быть очень дешево Если под RTS5825 был бы SDK, то по идее любую MIPI камеру из современных телефонов можно взять. Предполагаю, что нужно делать так: 1) взять мобильник, выставить максимальное качество фото-видео, записать какие регистры смартфон шлет в MIPI камеру по I2C (или что там низкоскоростное для настроек) . По идее это очень просто сделать. 2) всять камеру из мобильника, подключить ее к RTS5825 и настроить RTS5825 на выдачу тех же конфигурационных регистров в камеру. Что скажете по поводу этих микросхем? Они почему-то как-то тихо попадают в ноутбуки и вебкамеры в огромных количествах, но о них почти никакой информации. Только lattice продвигает свой usb3 bridge, который при наличии средство можно достать максимум в течении пары недель + все sdk.
Сообщение отредактировал tmtlib - Dec 27 2016, 15:53
|
|
|
|
|
Dec 27 2016, 23:45
|
Гуру
     
Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965

|
Кто из них врет - не знаю, я не работал сам с 5647. Возможно, что этот app инженер прав. По общим идеям построения таких матриц там нет возможности запретить принимать свет, хотя, возможно, они умудрились поставить ключ между фотодиодом и накопительным конденсатором. По моему большому опыту, делать разработку не имея хотя бы более-менее приличной документации - занятие бесперспективное. Я бы взял камеру с описанием и FPGA какой нравится, приставил к нему память и USB контроллер или процессор с контроллером встроенным и на этом собрал все. Но я не знаю всех требований, может быть что-то усложнять придется. Все эти специализированные микросхемы делаются, как правило, под заказ и всегда документация дается только под NDA и часто при обещании купить миллион штук в год.
|
|
|
|
|
Jan 5 2017, 10:11
|
Частый гость
 
Группа: Участник
Сообщений: 90
Регистрация: 16-11-10
Пользователь №: 60 920

|
Цитата(Major @ Dec 23 2016, 09:17)  FPAG: Lattice MachXO3L-4300, на нем работает. Есть эвалюха с примерами от производителя. Цена от 4 уе за камень (там). На MachXO3 делаю MIPI-CSI мост к Jetson. Если взять 6900, то может и память DDR прицепиться сама. Дальше хоть по UART выкачивайте.
Cypress FX3 (USB3.0) - есть примеры, и уверен на все 100% что будет работать (использую FX3-GPIF для перекачки данных до 380 МБ/с). Тут за голый камень от 20$
Дальше малины и другие платы с SoC у которых есть MIPI-CSI. А на Lattice CrossLink смотрели?
|
|
|
|
|
Jun 29 2017, 17:16
|
Группа: Новичок
Сообщений: 1
Регистрация: 29-06-17
Пользователь №: 97 906

|
Цитата(Major @ Dec 23 2016, 12:31)  2. Я прикидываюсь камерой MIPI-CSI2, чтобы в Jetson загнать свои потоки данных от скоростных АЦП. @Major, было бы Вам интересно сделать то же самое (для того же самого) но немного в другом контексте ... 1) GigabitEthernet -> CSI2 (нужно загнать в Jetson Tx1 поток от нескольких RAW-камер, каждая из которых генерирует трафик порядка 0,8 Гбит/сек) 2) SubLVDS (Sony) -> CSI2 (видео-поток от сенсора Sony Imx 249 преобразовать из SubLVDS в MIPI CSI-2, трафик по интерфейсу тоже порядка 0,8Гбит/сек) Извините за возможный офтоп.
|
|
|
|
|
Aug 11 2017, 10:59
|
Местный
  
Группа: Участник
Сообщений: 200
Регистрация: 30-10-10
Пользователь №: 60 531

|
А тем временем в продажу вышло множество камер USB3.0, начиная от 8 мегапикселей. Нету никаких cyusb3014 и fpga! Просто один чип стоит (не всегда одинаковый) и маленький SPI EEPROM к нему (AT25040A). Есть модуль, который предположительно использует сенсор от смартфона известной фирмы. На одном из модулей виднеется выход SPI (в самом низу картинки MOSI/MISO/SCK). Модулей намного больше, залитые эпоксидкой или без фото задней части с микросхемой я сюда не добавлял. Сверху-вниз: N1: Фирма Kingcent, 8мегапикселей USB3.0. На микросхеме виднеется надпись NXP "A......." что-то там. Но у freescale/nxp я нашел только микросхемы для IP-камер, которые работают только при наличии большой внешней оперативки и флеш. Тут явно что-то другое. N2: Ссылку не сохранил, нашел на 1688.com. Микросхема похожа на предыдущий вариант. Все ищется по запросам камера (через переводчик) 800 (для 8 мегапикселей) USB 3 модуль. фото в полном разрешении: http://www.igrodel.ru/usb3-8mp-cameras.jpg N3: Микросхема SONIX SN5259 + сенсор 8 мегапикселей Sony IMX-179 (аналог ищется на www.alibaba.com и 1688.com). N4: микросхема схожая с N1 и N2. Сенсор явно от мобильника или от планшета, слева маленький SPI EEPROM. (https://gucee.1688.com/) N5: Скорее всего SONIX, как на N3. N3 и N5 возможно не USB3.0, а USB2.0 (shop1473414493515.1688.com/) N6: Опять USB3.0, опять 8 мегапикселей IMX179. Тут уже виднеется серийный номер микросхемы, но название стёрто лазером. На плате дата разработки 201703v1.0 (https://rys2015.1688.com/) N7: 8 мегапикселей USB3.0 Сжатие видео H.264(https://shop1369446042678.1688.com/) N8: 8 мегапикселей USB3.0, есть выход SPI (https://camera888.1688.com/) Это только маленькая часть! Интересно, какой чип там используется (N1,N2,N4,N6,N7 и N8) У 1,2,4,6,7 чипы похожи, у N8 немного побольше. Вряд ли это cyusb3014 с параллельным интерфейсом. Откуда тогда у IMX179 возмётся MJPEG сжатие на максимальном разрешении 8мп. У последней камеры интересно наличие H264 сжатия + USB3.0 + SPI интерфейса. Учитывая, что сейчас USB есть везде, а USB3 можно вставить и в USB2 (просто уменьшится интерфейс), то такое решение очень интересно. Одна микросхема + небольшая SPI FLASH soic8 + сенсор на 8 мегапикселей, и можно по USB2.0 гнать 2 мегапикселя с хорошей светочувствительностью. Вместо использования древних модулей камер на 2 мегапикселя, которые при комнатном освещении уже дают огромный шум. Кто-то знает, какой чип там используется, или хотя бы есть догадки? Update: ещё забыл сказать, недавно нашел интересную штучку. ALTERA D8M-GPIO: http://www.terasic.com.tw/cgi-bin/page/arc...=68&No=1011в основе лежит интересная микросхема Toshiba TC358746AXBG / TC358748XBG Цитата The MIPI® CSI-2 to Parallel port and Parallel port to CSI-2 (TC358746AXBG/TC358748XBG) is a bridge device that converts MIPI data transfers from devices such as a camera to an application processor over a Parallel port interface. All internal registers can be access through I2C or SPI (in CSI out case only). Микросхема распараллеливает MIPI, а дальше можно по усмотрению. Также вроде эта микросхема может и в обратную сторону собирать параллельный поток в MIPI. Фото:
Сообщение отредактировал tmtlib - Aug 11 2017, 11:45
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|