Jump to content

    
Sign in to follow this  
NikWik

Интерфейс управления объективами EF цифровых зеркалок CANON?

Recommended Posts

Да. Только как выяснилось, у кэнона протокол обмена по SPI включает ещё дополнительный, 9-й бит.

 

Очень интересно. А поподробней можно? Насколько я ковырялся - если дашь лишний тактовый импульс, то объектив отвечает ошибкой

Share this post


Link to post
Share on other sites

Вот нашёл в инете: (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". Но смотрел на осциллографе обмен тушки с объуктивом, там вот такая картинка:

 

 

post-73591-1373449638_thumb.jpg

 

Зелёный – MOSI

Розовый - MISO

Жёлтый – CLK

 

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

 

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

 

post-73591-1373449760_thumb.jpg

Share this post


Link to post
Share on other sites
Вот нашёл в инете: (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". Но смотрел на осциллографе обмен тушки с объуктивом, там вот такая картинка:

 

 

post-73591-1373449638_thumb.jpg

 

Зелёный – MOSI

Розовый - MISO

Жёлтый – CLK

 

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

 

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

 

post-73591-1373449760_thumb.jpg

 

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

Share this post


Link to post
Share on other sites
В конце посылки из 8 бит тушка переводит линию LCLK в 3 состояние для того чтобы объектив со своей стороны сигнализировал об ошибках поднятием этой линии в 1.

 

То есть ему (объективу) даётся этот промежуток времени, чтобы он мог сигнализировать об ошибках? Так у объектива (слэйва) MOSI должен быть всегда настроен на вход. Или он на это время переключает его на выход?

Share this post


Link to post
Share on other sites
То есть ему (объективу) даётся этот промежуток времени, чтобы он мог сигнализировать об ошибках? Так у объектива (слэйва) MOSI должен быть всегда настроен на вход. Или он на это время переключает его на выход?

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

Share this post


Link to post
Share on other sites

Вот у меня есть, если интересно:

 

 

 

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

 

 

 

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

 

Нулевая команда. 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", то дальше работать нельзя, или посылаются другие команды?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this