Запуск камеры с телефона

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Alik221
Встал на лапы
Сообщения: 103
Зарегистрирован: Пн сен 13, 2010 14:37:38

Запуск камеры с телефона

Сообщение Alik221 »

Вобщем снял камеру ov2640 с тел. SE S500, вышла 24-х ногая камера. Подал питания 1.2; 1.8; 2.8 вольт и на входы I2C подаю команду чтения одного из регистров. А она не отвечает... Даже ACK на переданный байт не выставляет. Она чо, всё?? Мертва? Или там ещо какие то ножки надо задействовать, чтобы она хотяб на мои запросы отвечала?

Ножки незадействованные:
CAM_RESET - сброс камеры, но если ее отдельно контачить к 0 или 1, эфекта нет.
CAM_OFF - отключение вроде как.. Но тоже не влияет.
CAM_CLK - вход синхронизации
CAM_DCLK - синхронизация по пикселам вроде как
VSYNC HSYNC и т д
Остальные информационные.

Преобразование уровней I2C делаю с помощью резистивного делителя для SCL и транзисторного преобразователя - для SDA (преобразование уровней к 1.8 вольтам).
Тест выполняю логическим анализатором.

Щас даже напрямую 3.3 подал к SCL SDA. Эффекта 0.


Расположение ног вроде не попутаны:
CAM_D5 | CAM_D3 | VCAM_18 | CAM_DCLK
CAM_D7 =============== VCAM_12
CAM_D0 =============== CAM_D1
CAM_D4 =============== GND
CAM_D6 =============== VCAM_28
CAM_CLK ============== GND
GND ================= I2C_DAT
CAM_RESET ============ I2C_CLK
CAM_STROBE =========== CAM_D2
CAM_OFF | CAM_HSYNC | GND | CAM_VSYNC
Реклама
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Re: Запуск камеры с телефона

Сообщение SubDia »

Перед началом общения по I2C ресет камере даете?
Тактирование cam_clk подается в это время на камеру?
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Реклама
Alik221
Встал на лапы
Сообщения: 103
Зарегистрирован: Пн сен 13, 2010 14:37:38

Re: Запуск камеры с телефона

Сообщение Alik221 »

В даташите указано, что резет должен быть на 1 для нормальной работы, так я ее и повесил на 1. Или после подачи питания необходимо сделать кратковременный сброс??

А на CAM_CLK не подается ничего. Я думал, что CAM_CLK нужен только для скачивания данных.. Или он выступает в роли тактового генератора для микроконтроллера, который и управляет шиной I2C?

Щас попробую..
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Re: Запуск камеры с телефона

Сообщение SubDia »

Как раз cam_clk не нужно давать во время настройки по I2C. Это я уточнил - вдруг подаете.
А reset нужно, конечно же, дать после подачи питания. Установить в 1, сбросить в 0, выждать непродолжительное время (тайминги по ДШ гляньте), снова установить в 1.
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Реклама
Эиком - электронные компоненты и радиодетали
Alik221
Встал на лапы
Сообщения: 103
Зарегистрирован: Пн сен 13, 2010 14:37:38

Re: Запуск камеры с телефона

Сообщение Alik221 »

Ресет подал.
Связи нет.. Наверно убита.. Я в нее вчера 3.3 напрямую подавал. В I2C..
Реклама
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Re: Запуск камеры с телефона

Сообщение SubDia »

Рано отчаиваться, эти заразы знаете какие живучие. =))
Я и 3,3 подавал куда нужно 1,8, ну и всякое такое. Думал - ласты склеила, ан нет.
Смотрите внимательно ДШ, схему телефона, проверяйте монтаж и софт. Можете еще попробовать все-таки дать cam_clk. Да и вообще, попробовать без настройки запустить - что на выходе камеры будет.
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Реклама
Alik221
Встал на лапы
Сообщения: 103
Зарегистрирован: Пн сен 13, 2010 14:37:38

Re: Запуск камеры с телефона

Сообщение Alik221 »

Хорошо, попробую. Позже отпишусь..
Alik221
Встал на лапы
Сообщения: 103
Зарегистрирован: Пн сен 13, 2010 14:37:38

Re: Запуск камеры с телефона

Сообщение Alik221 »

Вобщем, ту камеру я так и не запустил.. Наверно все таки не работает..

НО.. КУПИЛ НОВУЮ. И теперь хочу собрать все правильно, как положено.

проверьте ПОЖАЛУЙСТА, правильно ли я мыслю..

1. Преобразователи логического уровня 3.3 -> 1.8 вольт - делитель на резисторах: 100кОм и 120кОм.

Изображение

R1 == 100кОм, R2 == 120кОм

Данная схема для: I2C_CLK, CAM_CLK, CAM_RESET, CAM_OFF

2. Для I2C_DAT схема преобразователя на транзисторе:

Изображение

Подойдет ли вообще такой транзистор (КП505А)??
  • Максимальное напряжение сток-исток
  • 50V
  • Максимальное напряжение исток-затвор
  • ±10V
  • Пороговое напряжение на затворе
  • 0,8..2,0V
  • Сопротивление сток-исток (откр.)
  • 0,3..0,5 om
  • Входная ёмкость
  • 425 pF
  • Выходная ёмкость
  • 170 pF
  • Время включения
  • 33 nS
  • Время выключения
  • 180 nS
3. Напряжения 1.3В, 1.8В, 2.8В беру напрямую с DC-DC преобразователя с MC34063. Можно ли так сразу, напрямую, без стабилизаторов. Не могут ли там броски напряжения возникать при включении/отключении.

4. На схеме модуля указано, что имеются 24 вывода и 10 из них - данные (см. Рисунок ниже). А я контакты определил по дорожкам на шлейфе, определив к какому контакту на разъеме (80 контактный - оттуда и камера и флеш и экран управляются) идет дорожка. Там у меня вышло 8 - данных и 4 GND. Значит на самом деле 2 контакта данных посажены на GND?? Нет ли у кого нибудь такой же камеры, чтобы проверить, правильно ля и все соединяю..

Картинка 1.
Изображение

Схема контактов (как я определил):
___________________CAM_D5 __|__ CAM_D3 __|__ VCAM_18 __|__ CAM_DCLK
_____CAM_D7 =========== VCAM_12
_____CAM_D0 =========== CAM_D1
_____CAM_D4 =========== GND
_____CAM_D6 =========== VCAM_28
____CAM_CLK =========== GND
________GND =========== I2C_DAT
__CAM_RESET =========== I2C_CLK
_CAM_STROBE =========== CAM_D2
___________________CAM_OFF __|__ CAM_HSYNC __|__ GND __|__ CAM_VSYNC

Картинки с сайта
CHIPENABLE.RU
OV2540 camera module application notes
Вложения можно не смотреть, это картинки выше..
Вложения
ov2640 scheme.PNG
(236.04 КБ) 3116 скачиваний
voltage-level-transition1.png
(4.08 КБ) 7869 скачиваний
delitel-naprjazhenija-1.png
(3.35 КБ) 3198 скачиваний
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Re: Запуск камеры с телефона

Сообщение SubDia »

1. Делители установлены для получения напряжения питания портов? Как Вы думаете, какой максимальный ток сможет обеспечить данный делитель?
3,3V/10^5 R = 33 uA. Не маловато ли? Лучше тогда уж делитель из R1=100 Ом и R2=120 Ом (а еще лучше - преобразователь 3,3 -> 1,8 в корпусе sot-223, к примеру. Я такими именно и пользуюсь).
2. Не берусь судить ни о правильности, ни о неверности данного схемотехнического решения.
3. Сглаживающие фильтры - обязательно.
4. Референс дизайн - для производителей мобильных устройств. На деле, в шлейфе камеры присутствуют только необходимые 8 линий данных, все земли уже распиханы куда нужно.
Посмотрите схему телефона, там должна присутствовать распиновка модуля камеры.
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Alik221
Встал на лапы
Сообщения: 103
Зарегистрирован: Пн сен 13, 2010 14:37:38

Re: Запуск камеры с телефона

Сообщение Alik221 »

1. Изначально на плате стояли резисторы на 200 и 220 ом. Но на одном из сайтов проводился такой же расчет и у них вышло 100 и 120 КОм. Поэтому здесь так и написал.
2. Схемку на транзисторе проверю еще (завтра, осциллом). Если не подойдет, то куплю преобразователи уровня (Только доставка будет лишь через 2 недели...).
3. Преобразователи напряжения проверю завтра тем же осциллографом.
4. Имеются datasheet и hardware application, но в них лишь описание - 38 ногой камеры. На схеме телефона - указание контактов на шлейфе (80 ногая штука). Распиновки 24-х камеры нигде нет.. Я отпаял камеру со шлейфа и по дорожкам определил контакты. 4 из контактов - соединены на GND. 1 - AGND; 2 - DGND; 3 - DATA_0; 4 - DATA_1. Или не так я понял?
Аватара пользователя
maglev
Потрогал лапой паяльник
Сообщения: 316
Зарегистрирован: Пт апр 17, 2009 22:45:42
Откуда: Minsk
Контактная информация:

Re: Запуск камеры с телефона

Сообщение maglev »

Alik221 писал(а):1. Изначально на плате стояли резисторы на 200 и 220 ом. Но на одном из сайтов проводился такой же расчет и у них вышло 100 и 120 КОм. Поэтому здесь так и написал.
Стокилоомные резисторы в этом делителе выглядят дико. Единицы килоом максимум, сотни ом - вероятнее всего.
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Re: Запуск камеры с телефона

Сообщение SubDia »

Alik221 писал(а):Я отпаял камеру со шлейфа и по дорожкам определил контакты. 4 из контактов - соединены на GND. 1 - AGND; 2 - DGND; 3 - DATA_0; 4 - DATA_1. Или не так я понял?
Я не работал именно с этой камерой, но принципы у всех CMOS камер одинаковы. Тем не менее, определение контактов полностью ложится на Вас. Странно, что в схеме нет отдельно указанного разъема камеры (в общем-то, он должен быть).
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Alik221
Встал на лапы
Сообщения: 103
Зарегистрирован: Пн сен 13, 2010 14:37:38

Re: Запуск камеры с телефона

Сообщение Alik221 »

Осциллографом все проверил, все в норме. Остается надеяться только на правильность определения контактов...
Alik221
Встал на лапы
Сообщения: 103
Зарегистрирован: Пн сен 13, 2010 14:37:38

Re: Запуск камеры с телефона

Сообщение Alik221 »

Собрал всю схему, подал все необходимые напряжения.

CAM_RESET после подачи питания сбрасываю в 0, затем, через 10 миллисекунд устанавливаю в 1.
CAM_OFF сразу устанавливаю в 0.
CAM_CLK подаю частоту 1МГц сразу при подаче питания (и не подавать пробовал).
SCL и SDA начинаю дергать через 5 миллисекунд после установки RESET в 1.

Все проверено логическим анализатором USBEE. На SDA то же, что я и передаю.
START -> Адрес (0x61) -> NACK от камеры, а должно быть ACK -> Регистр (0xF7) -> NACK -> Читаемый байт (0xFF - то есть ничего) -> и далее STOP

Преобразование напряжений 3.3 в 1.8 выполняю резистивным делителем: 2 резистора по 10 кОм. (200 и 220 ом микроконтроллер не может вытянуть).
Все уровни проверялись осциллографом, все в норме, даже фронты сигналов крутые, почти 90 градусов.
SDA (так как двунаправленный) преобразуется MOSFET транзистором. Все в норме. Осциллограф показал.

НО!!!!. ACK на прием байта по SCCB (я использовал I2C) нету. Камера вообще не отвечает.

Подскажите пожалуйста, как ее запустить..

Картинки из Hardware Application ниже. PWDN это не CAM_OFF? Там они PWDN в 1 устанавливают, но у них на второй картинке I2C отвечает при PWDN == 0.
Вложения
аппаратка.rar
(953.81 КБ) 215 скачиваний
Аватара пользователя
ALBSEERA
Родился
Сообщения: 8
Зарегистрирован: Ср ноя 30, 2011 20:42:12

Re: Запуск камеры с телефона

Сообщение ALBSEERA »

Самый эффективный способ запустить этот девайс , проверив его работу непосредственно на телефоне т.е просто снять все уровни и показатели осцилом при запуске камеры на телефоне ( сразу будет понятно какие логические уровни ,какие сигналы ,какая последовательность там идет). Нужен просто некий снифер (прослушиватель), смотря какой интерфейс. Именно так я запустил Bluetooth модуль с интерфейсом HCI , телефона SAMSUNG U800; попытки запустить его по даташиту , с помощью схем не увенчались успехом.
Аватара пользователя
nick17
Встал на лапы
Сообщения: 134
Зарегистрирован: Пт июн 26, 2009 06:40:07
Контактная информация:

Re: Запуск камеры с телефона

Сообщение nick17 »

Раньше тоже как то хотел подключить камеру на чипе от "OmniVishion" как правило на ядро нужно подавать не более 2.5 вольт а на питание I/O 3.3 вольта. Т.е. никаких согласующих резисторов не нужно
Alik221
Встал на лапы
Сообщения: 103
Зарегистрирован: Пн сен 13, 2010 14:37:38

Re: Запуск камеры с телефона

Сообщение Alik221 »

Наконец-то, первые признаки жизни..

Подал на вход CAM_CLK 6МГц и на SDA появилась ACK. Но 0, установленный на момент ACK - держится на протяжении передачи всего второго байта. Хотя секунд через 10 просадка на 0 длится не для всего байта, а только для нескольких бит. (Пишу вторым байтом 0xF7, а на линии - 0x00, а через секунд 10 - 0x37 - 2 старших бита обнулены). То есть он как то нестабильно работает. Думал - из-за транзистора преобразующего.

Но кроме этого: на выводе CAM_CLK меандр иногда пропадает, и тут же на выводах HSYNC и VSYNC (причем и там и там одно и то же) присутствует меандр 6МГц кусками (начинается через 8 тактов после пропажи CAM_CLK, если SDA==1 и меандра нет, если SDA==0).. Длится около 10 микросекунд.

Изображение

На рисунке рабочие каналы - 2,3,4
канал 2 - CAM_CLK
канал 3 - SCL
канал 4 - SDA

Картинка, увеличенная на ACK:
Изображение

nick17 писал:

SubDia писал:
Раньше тоже как то хотел подключить камеру на чипе от "OmniVishion" как правило на ядро нужно подавать не более 2.5 вольт а на питание I/O 3.3 вольта. Т.е. никаких согласующих резисторов не нужно
Попробую позже.. Но ведь и так должно работать..
Как раз cam_clk не нужно давать во время настройки по I2C. Это я уточнил - вдруг подаете.
Может быть как раз так-и нужно делать? Но почему без CAM_CLK не отвечает вовсе..
Или надо подать, затем после ресета убрать?
Вложения
Безымянный2.JPG
(109.3 КБ) 2325 скачиваний
Безымянный.JPG
(111.58 КБ) 2269 скачиваний
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Re: Запуск камеры с телефона

Сообщение SubDia »

Alik221 писал(а):Или надо подать, затем после ресета убрать?
После подачи ресета вообще теряется весь смысл предыдущего общения с камерой по i2c, ибо состояние всех регистров сбросится в значения по умолчанию.
Подали ресет первым делом - после этого уже все остальное. Ресет уже вообще не трогаем. Буду думать, навскидку вариантов нет..
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Alik221
Встал на лапы
Сообщения: 103
Зарегистрирован: Пн сен 13, 2010 14:37:38

Re: Запуск камеры с телефона

Сообщение Alik221 »

Нашел ошибки в программе (по ресету), теперь такой нестабильности нет. Но:

Пишу адрес 0x61, получаю ACK, пишу 0xFF (типа читаю такой регистр). но последний бит устанавливается в 0.
Картинка:
Изображение

Продолжаю тест..
Вложения
11.JPG
(29.21 КБ) 2288 скачиваний
Alik221
Встал на лапы
Сообщения: 103
Зарегистрирован: Пн сен 13, 2010 14:37:38

Re: Запуск камеры с телефона

Сообщение Alik221 »

Тут почитал на форумах, и вычитал вот что:
1. Послать стартовую последовательность
2. Послать 0xC0 - I2C адрес SRF08 с нулевым битом чтения/записи (четный адрес)
3. Послать 0x01 (Внутренний адрес регистра азимута)
4. Послать стартовую последовательность снова (повторный старт)
5. Послать 0xC1 - I2C адрес SRF08 с единичным битом чтения/записи (нечетный адрес)
6. Читать байт данных от CMPS03
7. Послать завершающую последовательность.
Чтение регистра с I2C устройства состоит из 2-х шагов:
1. ПИШЕМ по адресу 0x60 адрес регистра - всего 2 байта - указываем читаемый далее регистр. (2 пишем)
2. Читаем регистр, то есть 1 байт - 0x61, второй байт - значение регистра.. (1 пишем, 1 читаем)
Так чтоли надо?

как я помню, было же: адрес устройства с последним битом 1, адрес регистра читаемого, затем начинаем считывание данных. (2 пишем, 1 читаем)

наверно надо делать аппаратно i2c.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»