vladimir_orl 0 10 июля, 2013 Опубликовано 10 июля, 2013 · Жалоба Да. Только как выяснилось, у кэнона протокол обмена по SPI включает ещё дополнительный, 9-й бит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sergey_Bekrenyov 0 10 июля, 2013 Опубликовано 10 июля, 2013 · Жалоба Да. Только как выяснилось, у кэнона протокол обмена по SPI включает ещё дополнительный, 9-й бит. Очень интересно. А поподробней можно? Насколько я ковырялся - если дашь лишний тактовый импульс, то объектив отвечает ошибкой Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vladimir_orl 0 10 июля, 2013 Опубликовано 10 июля, 2013 · Жалоба Вот нашёл в инете: (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 0 10 июля, 2013 Опубликовано 10 июля, 2013 · Жалоба Вот нашёл в инете: (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 0 10 июля, 2013 Опубликовано 10 июля, 2013 · Жалоба В конце посылки из 8 бит тушка переводит линию LCLK в 3 состояние для того чтобы объектив со своей стороны сигнализировал об ошибках поднятием этой линии в 1. То есть ему (объективу) даётся этот промежуток времени, чтобы он мог сигнализировать об ошибках? Так у объектива (слэйва) MOSI должен быть всегда настроен на вход. Или он на это время переключает его на выход? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sergey_Bekrenyov 0 10 июля, 2013 Опубликовано 10 июля, 2013 · Жалоба То есть ему (объективу) даётся этот промежуток времени, чтобы он мог сигнализировать об ошибках? Так у объектива (слэйва) MOSI должен быть всегда настроен на вход. Или он на это время переключает его на выход? Да, только CLK в вашей терминологии, а не MOSI, переключается Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vladimir_orl 0 10 июля, 2013 Опубликовано 10 июля, 2013 · Жалоба Вот у меня есть, если интересно: Список поддерживаемых команд (все команды в шестнадцатеричном виде) Название, описание. Длина Байты Нулевая команда. 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", то дальше работать нельзя, или посылаются другие команды? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться