К содержимому
  1. Главная
  2. Документация
  3. Промышленные USB-камеры
  4. Плата USB2.0 Camera Shield Rev.E

Плата USB2.0 Camera Shield Rev.E

Документация Arducam · перевод arducam-russia.ru

Общие сведения

В этом разделе описана работа с платой Arducam USB2 Camera Shield. Главное в новой ревизии USB2.0 Camera Shield Rev.E — поддержка сенсоров с интерфейсом MIPI без отдельной платы-адаптера MIPI.

На плате есть аппаратный буфер кадров на 16 МБ. Он снимает проблемы с пропускной способностью и потерей кадров, которые возникают при программной буферизации. Кроме того, встроенный буфер позволяет синхронизировать несколько камер, чтобы они снимали точно в один момент.

Плата работает как с ПК, так и со встраиваемыми системами вроде Raspberry Pi. Для Odroid, Beaglebone Black и плат NVIDIA Jetson TK/TX возможна поддержка под заказ.

Плата Arducam USB2.0 Camera Shield Rev.E

Аппаратная часть

Подключение

Рисунок 1. Схема интерфейсов платы:

Схема интерфейсов платы USB2 Camera Shield
Габаритные размеры платы USB2 Camera Shield

Рисунок 2. Габаритные размеры платы Arducam USB2 Camera Shield.

На плате два разных интерфейса для камер, но одновременно можно использовать только один из них.

Интерфейс камеры MIPI

Интерфейс MIPI служит для подключения отладочных плат камер MIPI с разъёмом на 22 контакта. Полный список совместимых камер — в разделе «Поддерживаемые модули камер».

Пример камеры с интерфейсом MIPI

Таблица 1. Назначение выводов разъёма P1

№ выводаНазваниеТипОписание
1GNDЗемляОбщий провод питания
2D0_NВходMIPI DATA0 N
3D0_PВходMIPI DATA0 P
4GNDЗемляОбщий провод питания
5D1_NВходMIPI DATA1 N
6D1_PВходMIPI DATA1 P
7GNDЗемляОбщий провод питания
8C_NВходMIPI CLOCK N
9C_PВходMIPI CLOCK P
10GNDЗемляОбщий провод питания
11D2_NВходMIPI DATA2 N
12D2_PВходMIPI DATA2 P
13GNDЗемляОбщий провод питания
14D3_NВходMIPI DATA3 N
15D3_PВходMIPI DATA3 P
16GNDЗемляОбщий провод питания
17PWENВыходВключение питания MIPI (активный высокий уровень)
18VCCПитаниеПитание 3,3 В
19GNDЗемляОбщий провод питания
20SCLВходТактовый сигнал двухпроводного последовательного интерфейса
21SDAДвунаправленныйДанные двухпроводного последовательного интерфейса (ввод-вывод)
22VCCПитаниеПитание 3,3 В
Пример камеры с интерфейсом DVP и шлейфом на 30 контактов

Интерфейс DVP служит для подключения отладочных плат камер со шлейфом на 30 контактов. Полный список совместимых камер — в разделе «Поддерживаемые модули камер».

Таблица 2. Назначение выводов разъёма HDC1

№ выводаНазваниеТипОписание
1GNDЗемляОбщий провод питания
2NC--
3TriggerВыходВход синхронизации экспозиции
4VSYNCВходАктивный высокий уровень: кадр действителен (активный кадр)
5HREFВходАктивный высокий уровень: строка или данные действительны (активные пиксели)
6DOUT11ВходВыход данных пикселя 11 (старший бит)
7DOUT10ВходВыход данных пикселя 10
8DOUT9ВходВыход данных пикселя 9
9DOUT8ВходВыход данных пикселя 8
10DOUT7ВходВыход данных пикселя 7
11DOUT6ВходВыход данных пикселя 6
12DOUT5ВходВыход данных пикселя 5
13GNDЗемляОбщий провод питания
14DOUT4ВходВыход данных пикселя 4
15DOUT3ВходВыход данных пикселя 3
16DOUT2ВходВыход данных пикселя 2
17DOUT1ВходВыход данных пикселя 1
18DOUT0ВходВыход данных пикселя 0 (младший бит)
19NC--
20PCLKВходТактовый сигнал пикселей от сенсора
21SCLВходТактовый сигнал двухпроводного последовательного интерфейса
22SDAДвунаправленныйДанные двухпроводного последовательного интерфейса (ввод-вывод)
23RST_NВыходСброс сенсора, активный низкий уровень
24GNDЗемляОбщий провод питания
25GNDЗемляОбщий провод питания
26STANDBYВыходВключение режима ожидания (активный высокий уровень)
27–30VCCПитаниеПитание 3,3 В

Установка драйвера

Плата Arducam USB Camera Shield — не стандартное устройство UVC (USB Video Class). Она работает через собственный драйвер для фирменных SDK и API Arducam, которые дают доступ ко всем функциям сенсора на уровне регистров. Как установить драйвер, читайте в разделе «Установка драйвера в Windows».

Примеры программ

Arducam выпускает библиотеку SDK и API для C++ и Python, а также графическую программу (GUI) для Windows, которая помогает разобраться в работе USB-камеры Arducam и библиотеки SDK. Как запустить пример, читайте в разделе «SDK и API».

Таблица регистров

Адрес регистраДоступUC-391 Rev.E (USB 2.0)
0 × 00только чтениеbit[7:0]: номер версии CPLD; для UC-391 Rev.E — 0 × 25
0 × 01чтение и записьbit[7]: разрядность камеры DVP: 0 — 8 бит; 1 — 16 бит. bit[5]: полярность pclk камеры DVP: 0 — обычная; 1 — инверсная. bit[4]: ИК-фильтр (ircut): 0 — включён; 1 — выключен. bit[3]: режим ожидания камеры DVP: 0 — обычный режим; 1 — ожидание. bit[2]: rst_n камеры DVP: 0 — сброс; 1 — обычный режим. bit[1]: режим ожидания камеры MIPI: 0 — обычный режим; 1 — ожидание. bit[0]: rst_n камеры MIPI: 0 — сброс; 1 — обычный режим
0 × 02чтение и записьbit[8]: вывод внешнего запуска камеры DVP, подключённый к CPLD, работает как вход или выход CPLD: 0 — вход CPLD; 1 — выход CPLD. bit[4]: вид внутренних тестовых данных: 0 — цветные полосы; 1 — счётчик. bit[2]: источник данных: 0 — данные камеры; 1 — тестовые данные. bit[0]: полярность vsyn камеры DVP: 0 — обычная; 1 — инверсная
0 × 03чтение и записьbit[7]: сброс CPLD: 0 — обычный режим; 1 — сброс (запишите 1, затем снова 0). bit[6]: пауза приёма данных с камеры: 0 — обычный режим; 1 — пауза. bit[5]: однократный снимок (действует только при bit[6] = 1): 0 — ожидание; 1 — сделать один снимок (запишите 1, затем снова 0)
0 × 04чтение и записьbit[7:0]: пропуск кадров. Входной поток кадров может превышать пропускную способность USB 2.0, поэтому число передаваемых кадров можно уменьшить, пропуская часть из них. M = bit[7:4], N = bit[3:0]: из каждых N кадров передаются M. 0 × 00 — без пропуска; 0 × 01 — пропуск 1 кадра, то есть 1/2 (для совместимости с Rev.C); 0 × 11 — без пропуска; 0 × 12 — 1/2; 0 × 13 — 1/3; … 0 × 1F — 1/15
0 × 05только чтениеbit[7:0]: год версии CPLD. Например, для десятичного значения 19 программа на хосте прибавляет 2000 — получается 2019
0 × 06только чтениеbit[7:0]: месяц версии CPLD. Например, десятичное 08 — август
0 × 07только чтениеbit[7:0]: день версии CPLD. Например, десятичное 03 — 3-е число
0 × 08чтение и записьbit[7]: передача данных в USB: 0 — обычный режим; 1 — остановить передачу. bit[0]: сброс хостом флага завершения однократного снимка: 0 — не сбрасывать; 1 — сбросить (запишите 1, затем снова 0)
0 × 09только чтениеbit[0]: флаг завершения однократного снимка: 0 — не завершён; 1 — завершён
0 × 0Aчтение и записьbit[1:0]: выбор разрядов данных камеры DVP (входные данные — 12 бит). Режим 8 бит: 0 — dvp_data[11:4]; 1 — dvp_data[9:2]; 2 — dvp_data[7:0]. Режим 16 бит: 0 — {4'd0, dvp_data[11:0]}; 1 — {6'd0, dvp_data[9:0]}
0 × 0B
0 × 0Cчтение и записьbit[7]: выбор камеры: 0 — камера DVP; 1 — камера MIPI. bit[4]: формат MIPI RAW: 0 — raw8; 1 — raw10. bit[1:0]: число линий MIPI: 0 — 1 линия; 1 — 2 линии; 2 — 4 линии
0 × 0Dчтение и записьMIPI, разрешение изображения, столбцы, старшие 8 бит
0 × 0Eчтение и записьMIPI, разрешение изображения, столбцы, младшие 8 бит
0 × 0Fчтение и записьMIPI, разрешение изображения, строки, старшие 8 бит
0 × 10чтение и записьMIPI, разрешение изображения, строки, младшие 8 бит
0 × 11чтение и записьbit[5:4]: режим проверки ECC: 3 — {DI, WC_I, WC_H}; 2 — {DI, WC_H, WC_I}; 1 — {WC_I, WC_H, DI}; 0 — {WC_H, WC_I, DI}. bit[2]: проверка WC для MIPI HREF: 0 — без проверки; 1 — проверять. bit[1]: проверка data_type (raw8 или raw10): 0 — без проверки; 1 — проверять. bit[0]: проверка MIPI ECC: 0 — без проверки; 1 — проверять
0 × 12чтение и записьbit[7]: два дополнительных вывода работают как PWM (ШИМ) или GPIO: 0 — GPIO; 1 — PWM. bit[0]: направление GPIO: 0 — вход CPLD; 1 — выход CPLD
0 × 13только чтениеbit[1:0]: считанные значения GPIO: bit[1] — значение GPIO[1]; bit[0] — значение GPIO[0]
0 × 14чтение и записьbit[1:0]: выводимые значения GPIO: bit[1] — значение для GPIO[1]; bit[0] — значение для GPIO[0]. Пример: если записать в 0 × 12 значение 0 × 01, оба дополнительных вывода работают как GPIO на выход; если затем записать в 0 × 14 значение 0 × 01, на GPIO[1] будет низкий уровень, а на GPIO[0] — высокий
0 × 15чтение и записьbit[5:4]: такт отсчёта периода pwm_0: 3 — 320 мкс; 2 — 160 мкс; 1 — 80 мкс; 0 — 40 мкс. bit[1:0]: такт отсчёта высокого уровня pwm_0: 3 — 40 мкс; 2 — 20 мкс; 1 — 10 мкс; 0 — 5 мкс
0 × 16чтение и записьbit[7:0]: длительность высокого уровня pwm_0 в тактах
0 × 17чтение и записьbit[7:0]: длительность периода pwm_0 в тактах
0 × 18чтение и записьbit[5:4]: такт отсчёта периода pwm_1: 3 — 320 мкс; 2 — 160 мкс; 1 — 80 мкс; 0 — 40 мкс. bit[1:0]: такт отсчёта высокого уровня pwm_1: 3 — 40 мкс; 2 — 20 мкс; 1 — 10 мкс; 0 — 5 мкс
0 × 19чтение и записьbit[7:0]: длительность высокого уровня pwm_1 в тактах
0 × 1Aчтение и записьbit[7:0]: длительность периода pwm_1 в тактах
0 × 1Bчтение и запись
0 × 1Cчтение и запись
0 × 1Dчтение и запись
0 × 1Eтолько чтениеРазобранные данные MIPI. bit[7:0]: MIPI DATA ID
0 × 1Fтолько чтениеРазобранные данные MIPI. bit[4:0]: MIPI, разрешение изображения, столбцы, старшие 5 бит
0 × 20только чтениеРазобранные данные MIPI. bit[7:0]: MIPI, разрешение изображения, столбцы, младшие 7 бит
0 × 21только чтениеРазобранные данные MIPI. bit[4:0]: MIPI, разрешение изображения, строки, старшие 5 бит
0 × 22только чтениеРазобранные данные MIPI. bit[7:0]: MIPI, разрешение изображения, строки, младшие 7 бит

Запросить цену

Укажите количество — пришлём коммерческое предложение.