Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Интерфейс управления объективами EF цифровых зеркалок CANON?
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Аудио/Видео интерфейсы
NikWik
Есть объектив от цифровой зеркалки CANON EF 85mm 1,2 L, нужно "приделать" к нему микроконтроллер, чтобы управлять фокусом и диафрагмой.
Собственнно интересует интерфейс управления данным объективом, чтобы не придумывать много всего для управления шаговым двигателем (на диафрагме) и пьезомотором (на фокусе).
Саша Z
Цитата(NikWik @ Jan 18 2009, 03:43) *
Есть объектив от цифровой зеркалки CANON EF 85mm 1,2 L, нужно "приделать" к нему микроконтроллер, чтобы управлять фокусом и диафрагмой.
Собственнно интересует интерфейс управления данным объективом, чтобы не придумывать много всего для управления шаговым двигателем (на диафрагме) и пьезомотором (на фокусе).


Вполне вероятно этот виды информации (протоколы управления моторами диафрагмы, фокуса и системы IS (у тех линз у которых релевантно) - есть classified - это внутренняя тех. инфа фирмы разработчика (Кенона в данном случае), получить ее "со стороны" весьма трудно. Единственно ежели у кого-нить с ними есть подписанный NDA, но думаю они тоже сильно фильтруют с кем подписывать (т.е. кому "открываться" а кому нет).
Есть комеьно варианты third-party производителей (Sigma, Tokina, Tamron, etc) линзы которых (под Кенон/Никон) "interfaceируются" с камерами соотв. брендов, но (как минимум относительно Sigma, не уверен насчет Tokina и Tamron) они (сторонние производители) делали reverse-engineering протоколов и т.д. для создания своеи оптики compatible с родной. Да и то это было в рамках не тривиальных патентных разборок...

Думаю сделать самостоятельно reverse-engineering подобным делам - сам по себе проэкт....
ishergin
Цитата(NikWik @ Jan 18 2009, 04:43) *
Есть объектив от цифровой зеркалки CANON EF 85mm 1,2 L, нужно "приделать" к нему микроконтроллер, чтобы управлять фокусом и диафрагмой.
Собственнно интересует интерфейс управления данным объективом, чтобы не придумывать много всего для управления шаговым двигателем (на диафрагме) и пьезомотором (на фокусе).


Хороший объектив smile.gif
Есть человек который сделал вот это http://www.filmprocess.ru/oduvanchik/index.htm
Если сможете с ним договориться -- то думаю это Вам поможет...
На ixbt.com Виктор Лушников тоже есть, собственно оттуда и появились "одуванчики"
Al Jumper
Вопрос к автору темы - удалость ли как то продвинуться? Имею такую же задачу. Обращались ли к автору "одуванчиков" и чем это закончилось?
NikWik
Ни к кому не обращался, разобрал объектив, начертил схемку, пытаюсь разобраться как она работает. Пока времени много на это уделять не получается. Если что у тебя прояснится дай знать.
Al Jumper
Я вплотную пока не брался, ищу инфу.
Протокол там похож на SPI. Есть pinout - см. картинку.

Нашел еще вот это
http://ozerki.net/photosight/PhotoDocs/Man...F-50-28-15).zip
Там про протокол обмена только общие слова, но все же кое что.

Есть еще фирма в штатах - делают переходник для управления объективом по RS-232
www.birger.com/ef232.htm

Стоит эта приблуда около 1000$
NikWik
Это все у меня тоже есть, инфы там мало.
Сегодня подключал питание на прямую к объективу без фотика, результат отрицательный, ни каких движений.
Вот бы где зеркалку кэноновскую взять на пару дней.
NikWik
Есть кое какие продвижения в этом направлении, кому интересно - в личку.
deadfire
Интересую данным вопросом, по протоколу передачи данных между камерой и объективом так и не смог ничего толкового найти. Если есть какая нибудь информация, просьба поделится.
Doka
Цитата(Саша Z @ Jan 20 2009, 19:46) *
Думаю сделать самостоятельно reverse-engineering подобным делам - сам по себе проэкт....


а в чём проблема-то?!..
распиновка есть, и если поверх нету какого-то криптования, то задача сводится к кропотливому документированию:
1) подключили логич.анализатор (ммногокан.осциллограф)
2) на тушке поставили диафрагму Fx - записали эпюру на интерфейсе
3) повторяем п.2 для всех значений диафрагм объектива
4) управление фокусом: переводим в ручной режим фокусировки и делаем фокус на ближайшем объекте: далее в режиме автомата фокусируемся на бесконечности и из периодической последовательности команд вычленяем команду движения линзы в направлении увеличения фокусировочного расстояния.
4) тоже самое для команды уменьшения фокусировочного расстояния

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

ну а потом уже по вкусу - управление либо через кнопки, либо через простейший интерпретатор команд на RS-232 \ USB

делал что-то подобное, но не из сферы фототехники
Димыч
Тема ещё жива? wink.gif

Мы делали RE интерфейса объективов EF. Работали с объективом Sigma. Управлять им, в итоге, так, как нам нужно было - удалось. Родные кэноновские объективы, как оказалось, имеют более расширенный протокол по сравнению с Сигмой. Но, в целом, процесс RE вполне подъёмен.

fyodor
Цитата(Димыч @ Mar 25 2011, 13:46) *
Мы делали RE интерфейса объективов EF. Работали с объективом Sigma. Управлять им, в итоге, так, как нам нужно было - удалось. Родные кэноновские объективы, как оказалось, имеют более расширенный протокол по сравнению с Сигмой. Но, в целом, процесс RE вполне подъёмен.

Можно подробнее узнать, что в итоге получилось? Интересует электроника и механика.
Димыч
Цитата(fyodor @ Apr 6 2011, 09:54) *
Можно подробнее узнать, что в итоге получилось? Интересует электроника и механика.

через пару дней подготовлю подборку материалов, и выложу.
На счёт механики - вкратце - применяли пружинные контакты mill-max, установленные на ПП.


west329_
Все ждем подборку. Пару дней прошло.
edren_baton
Мы до сих пор очень-очень ждем подборку! =)
Димыч
Цитата(edren_baton @ May 23 2011, 00:09) *
Мы до сих пор очень-очень ждем подборку! =)


Цейтнот. Если ещё актуально:
CODE
Описание байонета Canon, со стороны объектива

Электрический разъём байонета Canon EF

Контакты:


1 ….. питание-1 (+6 V) (до 4,5 V)
2 ….. вход датчика подключения объектива; замыкается на контакт 3
3 ….. gnd
4 ….. питание-2 (+5V)
5 ….. data_in_lens (данные на объектив)
6 ….. data_out_lens (данные от объектива)
7 ….. data_clk
8 ….. gnd


Логический уровень сигналов – TTL (+5V)

Данные передаются в 8-битном формате и захватываются по положительному перепаду data_clk. В неактивном состоянии уровень сигнальных линий «высокий»

Перед началом передачи байта, перед первым тактовым импульсом, необходимо установить data_in_lens в низкий уровень на один такт.

После передачи восьмого бита, объектив опускает CLK в ноль на два такта, в подтверждение приема.

Данные, передающиеся от аппарата к объективу, делятся на два типа: запросы и команды,
и имеют длину от 2 до 4 байт. Ниже приведенные команды и запросы дополнены до 4 байт нулями.

Команды
05 0F 00 00 – двигаться вниз, внутренний счетчик увеличивается
06 0F 00 00 - двигаться вверх, внутренний счетчик уменьшается
07 0E 00 00– стоп
0С 00 00 00 – сброс внутреннего счетчика
0А 00 00 00– инициализация объектива. (возвращается 00 АА 00 00)
13 XX 00 00 – увеличить диафрагму на заданное значение, второй байт – значение диафрагмы от 01 до 24 (в зависимости от модели)
13 80 00 00 – сбросить диафрагму в ноль (отключить диафрагму)
Совместная работа диафрагмы и мотора фокусировки не возможна (в зависимости от модели)

После получения команды – объектив возвращает код команды обратно.
Пример: передаем команду вверх 06 0F 00 00, получаем обратно 00 06 0F 00,

Запросы
С0 00 00 00 - возвращает значение внутреннего счетчика оборотов двигателя.
F0 00 00 00 – возвращает текущее значение диафрагмы
E0 00 00 00 – суммарное значение положения фокуса и зума.
90 00 00 00 – текущее состояние объектива.
А0 00 00 00 – не установлено
В2 00 00 00 - неустановленно
C2 00 00 00 – неустановленно

Ответ на запрос состояния 90 (зависит от модели) - один байт


Есть ещё Verilog описание модуля.
Sergey_Bekrenyov
Все получилось в конце концов? А где контакты приобретали?
gte
Вот еще ссылка, по которой есть информация по командам объективов CANON
P.S.
По объективам NIKON аналогичную информацию никто не встречал?
Sergey_Bekrenyov
Цитата(gte @ Jul 17 2011, 17:05) *
Вот еще ссылка, по которой есть информация по командам объективов CANON
P.S.
По объективам NIKON аналогичную информацию никто не встречал?


Присоединяюсь к вопросу, мучаюсь уже неделю (:
По Никону шаром покати в сети, а хотелось бы

Вот нарыл еще по Кэнону
gte
Цитата(Sergey_Bekrenyov @ Jul 17 2011, 23:52) *
Вот нарыл еще по Кэнону

В предыдущем сообщении ссылка на тот же документ.
Sergey_Bekrenyov
Кто-нибудь научился считывать текущее положение фокуса и диафрагмы? А то, при вылете за пределы, объектив "отскакивает".
codier
Цитата(Sergey_Bekrenyov @ Sep 26 2011, 18:22) *
Кто-нибудь научился считывать текущее положение фокуса и диафрагмы? А то, при вылете за пределы, объектив "отскакивает".


В прошлом году занимались реверсом протокола. Могу поделиться. Научились читать параметры объектива. Диафрагма, как я понял драйвится на каждый кадр заново от крайнего положения. Законченное устройство так и не сделали - задача отпала, но команды отснифали некоторые. Могу дополнить немного то что Димыч нашёл.

Как можно выложить файл чтобы особо не светить?
DSIoffe
Цитата("codier")
Как можно выложить файл чтобы особо не светить?

Можно, например, прислать мне, а я положу в закрома sm.gif
Мне, пожалуйста, если можно - на dsioffe собака yandex ru. Обещаю не засветить.
Sergey_Bekrenyov
и мне если можно bekrenyov собака mail ru
codier
Скинул мылом gte и Sergey_Bekrenyov. Если будут замечения, пишите мылом sm.gif Вообще, хотелось бы на выходе получить достоверное описание протокола общими силами. Если надо, могу поучавствовать в экспериментах.

У нас методика снифа была цеплянием 2-ух SPI в Slave режимах на DCL и DLC с общими клоками.

Кстати, вопрос где найти ответный байонет для объектива да ещё и с контактами, желательно?
gte
Цитата(codier @ Sep 28 2011, 15:33) *
Кстати, вопрос где найти ответный байонет для объектива да ещё и с контактами, желательно?

Спасибо.
Если надо единичный экземпляр, то купите тушку пленочного аппарата CANON.
Сразу и контакты и кольцо байонета.
С английского ebay может обойтись с доставкой фунтов в 10 и 3 недели rolleyes.gif .
Или
http://www.ebay.com/itm/220805486925?ssPag...984.m1436.l2649

Или запасные части для фото CANON, коды есть в Service Manual. Но это будет заметно дороже.
Пружинные отдельные контакты здесь уже рекомендовали.

Sergey_Bekrenyov
еще раз по поводу протокола. Сходите на сайт к фирме elphel - они делали проект для google, немного управляли объективами Canon.

ключевые слова "lensraw.c" "lensraw.html". Исходники у них открытые

Все немного запутано, так как у них стоит линуксовый процессор Etrax и через web-интерфейс пишутся команды в байтовом виде в FPGA, которая и делает собственно SPI

Какие-то ребята на этом железе сделали камеру для кинематографии, еще модернизировали протокол - http://cinema.elphel.com/en/prototypes
Sergey_Bekrenyov
Для ленивых

http://elphel.cvs.sourceforge.net/viewvc/e...amp;view=markup
Sergey_Bekrenyov
А кто-нибудь нашел как оптическую стабилизацию включить?

Судя по описаниям и поведению тушки оптическая стабилизация включается при половинном нажатии кнопки спуска. Делается это для экономии батарейки. Я думаю, что в момент нажатия спуска идет команда от тушки для активации оптической стабилизации
Костян
QUOTE (Sergey_Bekrenyov @ Feb 7 2013, 04:27) *
А кто-нибудь нашел как оптическую стабилизацию включить?

Судя по описаниям и поведению тушки оптическая стабилизация включается при половинном нажатии кнопки спуска. Делается это для экономии батарейки. Я думаю, что в момент нажатия спуска идет команда от тушки для активации оптической стабилизации

Дык стабилизация с тушки не отключается , скорее всего и команды такой нету. Вероятно стаб начинает работать при начале фокусировки.
vladimir_orl
Да. Только как выяснилось, у кэнона протокол обмена по SPI включает ещё дополнительный, 9-й бит.
Sergey_Bekrenyov
Цитата(vladimir_orl @ Jul 10 2013, 12:15) *
Да. Только как выяснилось, у кэнона протокол обмена по SPI включает ещё дополнительный, 9-й бит.


Очень интересно. А поподробней можно? Насколько я ковырялся - если дашь лишний тактовый импульс, то объектив отвечает ошибкой
vladimir_orl
Вот нашёл в инете: (http://dangerousprototypes.com/forum/viewtopic.php?t=695)

The pinout is known, we can connect to a camera and lens using a hacked mount adaptor, and we know the protocol uses "8-data-bit, 1-stop-bit SPI (mode 3)". I have a small amount of experience with AVR microcontrollers (some years ago) and have done a bit of amateur level software engineering.

На объектив, действительно подаётся по 8 бит, как написано, и всё работает. Посылал данные согласно документам, описанным в "Автономное использование объективов Canon EOS". Но смотрел на осциллографе обмен тушки с объуктивом, там вот такая картинка:


Нажмите для просмотра прикрепленного файла

Зелёный – MOSI
Розовый - MISO
Жёлтый – CLK

Размер по времени: 50 мкс в клетке.

Т. е. присутствует 9-й такт. Я его пока просто игнорирую.

Нажмите для просмотра прикрепленного файла
Sergey_Bekrenyov
Цитата(vladimir_orl @ Jul 10 2013, 13:49) *
Вот нашёл в инете: (http://dangerousprototypes.com/forum/viewtopic.php?t=695)

The pinout is known, we can connect to a camera and lens using a hacked mount adaptor, and we know the protocol uses "8-data-bit, 1-stop-bit SPI (mode 3)". I have a small amount of experience with AVR microcontrollers (some years ago) and have done a bit of amateur level software engineering.

На объектив, действительно подаётся по 8 бит, как написано, и всё работает. Посылал данные согласно документам, описанным в "Автономное использование объективов Canon EOS". Но смотрел на осциллографе обмен тушки с объуктивом, там вот такая картинка:


Нажмите для просмотра прикрепленного файла

Зелёный – MOSI
Розовый - MISO
Жёлтый – CLK

Размер по времени: 50 мкс в клетке.

Т. е. присутствует 9-й такт. Я его пока просто игнорирую.

Нажмите для просмотра прикрепленного файла


Это не 9-ый бит. В конце посылки из 8 бит тушка переводит линию LCLK в 3 состояние для того чтобы объектив со своей стороны сигнализировал об ошибках поднятием этой линии в 1. Так что переход в 1 после перерыва - это просто тушка снова выставила 1 на тактовой линии.
vladimir_orl
Цитата
В конце посылки из 8 бит тушка переводит линию LCLK в 3 состояние для того чтобы объектив со своей стороны сигнализировал об ошибках поднятием этой линии в 1.


То есть ему (объективу) даётся этот промежуток времени, чтобы он мог сигнализировать об ошибках? Так у объектива (слэйва) MOSI должен быть всегда настроен на вход. Или он на это время переключает его на выход?
Sergey_Bekrenyov
Цитата(vladimir_orl @ Jul 10 2013, 15:16) *
То есть ему (объективу) даётся этот промежуток времени, чтобы он мог сигнализировать об ошибках? Так у объектива (слэйва) MOSI должен быть всегда настроен на вход. Или он на это время переключает его на выход?

Да, только CLK в вашей терминологии, а не MOSI, переключается
vladimir_orl
Вот у меня есть, если интересно:



Список поддерживаемых команд (все команды в шестнадцатеричном виде)



Название, описание. Длина Байты

Нулевая команда. 1 00
Повтор изменения значения диафрагмы. 1 02
Повтор изменения значения диафрагмы. 1 03
Переход в положение "минимальный AF". 1 05
Переход в положение "максимальный AF". 1 06
Инициализация. 1 0A
Закрыть/открыть диафрагму на XX шагов. 1 12 XX
Переход в положение "максимальный AF". 1 16
Информация об объективе. 7 97 01
Получить мин/макс значение апертуры 4 B0
Текущее значение увеличения 2 A0
Закрыть/открыть диафрагму на XX шагов. 4 07 13 XX
Открыть диафрагму (полностью). 2 13 80
Относительное значение положения двигателя автофокуса. 1 C0
Подвинуть объектив на ХХ шагов. 1 44 XX XX
Включить ручное управление. 1 5E
Информация о модели объектива. 1 80
Относительное значение двигателя автофокуса. 1 С2
Положение переключателя AF/MF. 1 90
Информация об объективе. 1 CA
Переход в бесконечность. 1 25
Переход на отметку 2,5 м. 1 16
Получить значение апертуры 1 01


Вдвинуть объектив полностью 15, 25, 45, 55


Выдвинуть объектив полностью 16, 26, 46, 56






Да, хотел сказать клок. На днях как раз написал анализатор (монитор) протокола обмена. Железо - VS2010 + STK500 + mega128.
Там игнорирую 9-й бит (у меня биты определяются по фронтам). Мне кажется, этот 9-й проверочный цикл всё же можно рассматривать как 9-й бит. Однако выдаётся белиберда.

Однако, если просто управлять объективом CANON, то всё получается замечательно, даже без учёта этого проверочного бита.
А объектив CANON знает когда ему можно подавать ответные сигналы? Просто по времени определяет?

Цитата
Это не 9-ый бит. В конце посылки из 8 бит тушка переводит линию LCLK в 3 состояние для того чтобы объектив со своей стороны сигнализировал об ошибках поднятием этой линии в 1. Так что переход в 1 после перерыва - это просто тушка снова выставила 1 на тактовой линии.


А клок притянут к земле?

И, насколько я понял, в MISO тоже стоит подтяжка. Я поставил 4 кОм между MISO и питанием. Даже не знаю, правильно ли. Но работает.

И скажите про логику ошибок. Они камерой рассматриваются как фатальные?

То есть, если объектив выставил "1", то дальше работать нельзя, или посылаются другие команды?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.