Ремонт портативной техники - телефоны, КПК, навигаторы и типа того.
Ответить

Реверс интерфейса объектива Nikon 1

Сб янв 27, 2018 21:51:30

Я являюсь одним из несчастливых обладателей фотокамеры системы Nikon 1. Камера J3 со съёмными объективами.
Сама по себе тушка качественная и снимает неплохо. А вот над разработкой объективов наверное трудились китайцы. Потому что такой малый ресурс работы по другому объяснить не могу.
Первая линза отработала полгода или около 3000 фоток. Потом попросилась в сервис. В сервисе развели руками, сказали что такую штуку видят впервые, запчастей нет и отправили за новой. Сервис естественно неофициальный, представителей у нас нет.
Вторая линза не проработала и двух недель...
Хотел прицепить оптику от старого Зенита. Но есть один досадный момент. Без умного объектива выключаются практические все режимы работы камеры, даже не функционирует экспозамер и помошник фокусировки.
Изображение Изображение
Фишка от производителя, понимаешь ли. Разрешено только выставлять экспозицию наобум, съёмка в таком режиме практически неприемлема.

Решил попробовать расковырять интерфейс чтобы повторить одуванчик. Кто не знает, одуванчик - это обманка объектива на процессоре. Камера начинает думать что в неё вставили полноценный объектив и открываются все или почти все функции.
Получится ли довести до конца - не знаю. Но уже есть чем поделиться.

Интерфейс.
Изображение
12 контактов, из них реально с объективом kit 10-30мм VR работют 8.
Если смотреть на тушку, слева-направо:
1 +7V, питание аналоговой части объектива
2 GND
3 ?(CH7)
4 ?(CH6)
5 ?(CH5)
6 ?(CH4)
7 STROB CAM OUT(CH3)
8 DATA CAM IN(CH2)
9 DATA CAM OUT(CH1)
10 CLOCK CAM OUT(CH0)
11 GND
12 +3V3
Интерфейс очень похож на SPI. Тактовая частота 5МГц. Логические уровни 3,3В. Посылки идут с интервалом примерно 17,5мс.

Для записи данных сделал переходник. В тушку вкручивается байонет с контактами от старого объектива, туда паяется шлейф и идёт к контактной колодке. Она в свою очередь клеится на макрокольцо MEKE, являющееся переходником на ещё условно живой объектив.
Изображение Изображение
Лог записан анализатором Saleae Logic на 24МГц. В скобах на распиновке сверху указан номер канала анализатора.
Изображение
Обмен идёт на достаточно высокой скорости. Ширпотребные 8-битные МК могут не потянуть. Скорее всего придётся поставить Cortex.
Вложения
N13 capture.rar
Лог обмена
(505.47 KiB) Скачиваний: 152

Re: Реверс интерфейса объектива Nikon 1

Пн фев 05, 2018 21:55:17

Продолжим.
Данные идут пакетами. Пакет начинается с заголовка, далее следует команда или данные. Пакет закрывается своей контрольной суммой.
Изображение
Передача дуплексная. При передаче очередного байта камера от объектива принимает байт ответа. Размер пакетов от 4-х байт.
Принятая объективом команда возвращается в камеру в момент следующей посылки. Таким образом может контролироваться отсутствие сбоев в канале. Аналогичным способом устроен обмен у зеркальных камер Никон(по информации с сайта NikonHacker).
Изображение
Пока не известен порядок битов, байтов, алгоритм вычисления контрольной суммы и её порождающий полином. Поэтому говорить о поддержании обмена на алгоритмическом уровне не приходится. Зато можно пойти другим путём. По снятым логам видно, что при инициализации идёт одинаковый набор команд. Если записать этот поток, а потом слать в камеру, то есть шанс что получится.

Re: Реверс интерфейса объектива Nikon 1

Ср фев 07, 2018 21:43:34

Если установить настройки SPI следующим образом, то можно увидеть более осмысленные данные:
8 bit transfer
LSbit
CPOL=1
CPHA=1
Enable=Low

Изображение
Главным устройством(master) является фотоаппарат, подчинённым - объектив(slave).
Пакеты идут парами. После каждого запроса следует пакет ответа или записи новых данных.
Изображение
Пакет запроса включает в себя следующую информацию:
1. Заголовок 0x55
2. Счётчик запросов
3. Команда
4. Длина следующего блока ответа/данных
5. Контрольная сумма.

Счётчик запросов. Камера нумерует запросы. После каждого запроса счётчик увеличивается на 1. Счётчик однобайтный и поэтому при достижении 0xFF происходит переполнение в 0x00.
На следующих запросах видно как инкрементируется счётчик.
Код:
55 00 10 00 05 96
55 01 11 00 20 79
55 02 12 00 11 86
55 03 20 00 78 10
...
55 FF 20 00 78 14
55 00 25 00 02 84


Длина блока ответа/данных. Видимо камера обрабатывает данные как 16-битные слова. Длина блока ответа не учитывает байт заголовка и контрольной суммы.
После запроса
55 10 15 00 02 84
Будет прочитано 2 слова + 2 байта = всего 6 байт:
55 0B 00 03 00 9D

Контрольная сумма. Всё оказалось достаточно просто. Никаких CRC.
К примеру вот такой пакет:
55 32 20 00 78 E1
Считаем:
55 + 32 + 20 + 00 + 78 = 1F
Not 1F = E0
E0 + 01 = E1
Байты совпадают, пакет целый.

Очень не хватает логов с других типов объективов, например фиксов или переходника FT1.
Также многие нюансы протокола могли быть обнаружены изучением листинга дизассемблера прошивки. Однако отсутствие упоминаний об успешном дизасме говорит либо о запутанности программы, либо о том что это нафиг никому не надо. Если учесть малую популярность системы N1, то скорее второе.

Ну и напоследок картинка объектива 10-30VR со снятым байонетом.
Изображение

Re: Реверс интерфейса объектива Nikon 1

Чт фев 08, 2018 16:44:05

.... Если учесть малую популярность системы N1, то скорее второе....

Думаю что попали в точечку. А смысл простой. Мал размер матрицы объектива и, как следствие, рабочий отрезок где -то 16,5 мм, кроп 2.7. таким образом стандартная широкораспостраненная оптика 50 мм будет для вашего фотика как 13 мм. И самое главное старая мануальная оптика не даст того разрешения как хочется, будет "мыло". а качественные объективы это другие деньги. Мжно попытаться использовать объектив от кинокамер 16мм пленки.
Есть для вашего фотика переходник FT-1. Ему сделать реверс инжиниринг.
Порядок обмена начинается с проверки наличия объектива, потом какой объектив и дистанция фокусировки. далее команды управления фокусировкой и установка диафрагмы перед съемкой.
Желательно чтобы объектив ответил типа я "10-30мм VR", дистанция "25" работаю в мануальном режиме.

Re: Реверс интерфейса объектива Nikon 1

Чт фев 08, 2018 21:02:48

К слову, о "ширпотребных 8-битных МК".
PIC12F1822 при тактировании от внешнего кварца 20MHz обеспечит частоту SPI, равную 5 MHz.
А при тактировании от внутреннего RC-генератора при включенном PLL частота SPI будет 32/4=8MHz.
Имеет 8 ног, паябельный SOIC.

Re: Реверс интерфейса объектива Nikon 1

Пт фев 09, 2018 00:56:57

Есть для вашего фотика переходник FT-1.

FT-1 имел цену почти как новый аппарат. По крайней мере там где смотрел.
У этой камеры сейчас 2 пути: или заработать, или отправиться в мусорку/на запчасти.
По кропу, мылу, аберрациям и прочему. Я не профи и в принципе меня устраивает качество старого мыла фуджика за 50 долларов. Но в один момент захотелось иметь возможость управлять параметрами съёмки. Типа творческая камера.
Выбирал между самсунгом NX1000 и никоном.
Никон кит выиграл по следующим параметрам:
1. Макросъёмка. Для меня очень важно. Позже всё равно пришлось докупить макрокольцо и линзу closeup+10.
2. Оптический стаб.

Порядок обмена начинается с проверки наличия объектива,

Я так понял, что вы уже занимались этим вопросом?

Re: Реверс интерфейса объектива Nikon 1

Пт фев 09, 2018 16:24:02

У меня были вопросы сопряжения старых объективов Sigma c Canon, а также применить объективы Canon на тушке Panasonic GH1 микро4\3 (управление диафрагмой). Там матрица поболее вашей, но результирующие картинки (с моими объективами) - не понравились. Дело до адаптера не дошло. В данный момент применяются так называемые "бустер" , т.е. переходники с линзами, уменьшающие картинку на матрице (повышают разрешающую способность и заодно светосилу). Но оптимальный вариант фотоаппарат с родной оптикой - наилучший вариант.
Другое. Теперь, в основном, все фотики и линзы делают в Китае. В результате - гавно полное. Был у меня такой Canon 700D - слава богу продал. Теперь есть, сделанный в Японии, Canon 550D. Уделывае 700 по качеству картинки. С объективами аналогично. Купленный 18-55 STM, по качеству картинки проигрывает 18-55 второй версии.
Если габариты не смущают то приобретите Nikon D80 (дороги обективы и проблематична установка сторонних из-за большого рабочего отрезка) или Canon 1100...(с переходником лезет вся советская оптика).
Если маленький и макро то Panasonic серии L..., к примеру LX3.


Инфа - https://www.ixbt.com/digimage/canonautosonyl.shtml
Ответить