LINUX.ORG.RU

[спецам по всему] Протоколы SPI-интерфейса объектива Canon EF 200mm


0

1

[offtop] Оказывается, на ЛОРе нельзя добавить сообщение к теме чуть более, чем полугодовалой давности, поэтому пришлось создать новую тему.

Так много времени прошло, т.к. было слишком много работы, чтобы еще и эту поднимать... [/offtop]

Отчасти протокол был все-таки «взломан». На это было убито два дня и один контроллет PIC16F873a (и тот, скорее всего, сдох от старости - ему было более 10 лет).

Итак, как это делалось.

Контроллер был настроен на третий режим SPI (google 4ever), частота кварца - 4МГц, частота SPI - Fosc/64. И оказалось, что цифровой осциллограф был и не нужен: в пассивном режиме контроллер прекрасно считывал все данные (правда, от них не было особого толку, т.к. их было слишком много; зато они помогли установить, что после каждой команды фотоаппарата идет последовательность нулей для считывания ответа объектива). Для подбора команд использовалась простенькая «на коленке» написанная программа и столь же простая прошивка контроллера.

В итоге были подобраны основные команды для выбора направления вращения привода объектива и быстрого перемещения его в крайние позиции.

Осталось: всего немного, лишь «раскусить» протокол ответа на запрос текущего фокусного расстояния, и задача будет решена полностью.

P.S. Учитывая наши потребности в управлении подобными объективами, сомневаюсь, что в ближайший год-два возникнет потребность в определении текущего фокусного расстояния объектива.

☆☆☆☆☆

Последнее исправление: Eddy_Em (всего исправлений: 1)

Готово. Кому интересно, можете почитать.

Определены команды управления фокусировкой (точнее - перемещения тела объектива, т.к. фокусное расстояние не изменяется) и затвором, получение информации о текущем положении объектива (в метрах и угловых единицах).

Eddy_Em ☆☆☆☆☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.