Skip to content

Commit

Permalink
Add dumps for Sony E-mount lens protocol
Browse files Browse the repository at this point in the history
  • Loading branch information
Entropy512 authored and uwehermann committed Sep 3, 2015
1 parent b830256 commit b7f9d25
Show file tree
Hide file tree
Showing 6 changed files with 105 additions and 0 deletions.
105 changes: 105 additions & 0 deletions lens_mounts/sony_emount/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
-------------------------------------------------------------------------------
Sony E-mount camera/lens
-------------------------------------------------------------------------------

These are dumps from a Sony E-mount camera/lens.

Details:
https://en.wikipedia.org/wiki/Sony_E-mount

These were taken using a modified 16mm Meike extension tube that brings out
each lens contact to a 10-pin ribbon cable.

Pinout of the mount is as follows (these pins are from left to right
looking at a lens from the rear):

1: LENS_GND - Lens motor GND

2: LENS_POWER - Lens motor power
Can be either 5.0V or unregulated Vbat (7.4V nominal) - This is somehow
negotiated between body and lens.

3: LOGIC_GND - Ground for lens logic circuitry

4: BODY_VD_LENS - As-of-yet unknown body->lens signalling
In nearly all cases, it is normally high but pulses low at a very low duty
cycle at 60 Hz (is it 50 in EU?).

5: LOGIC_VCC - Lens logic power
3.15V. All data lines described below are 3.15V logic high.

6: LENS_CS_BODY - Handshaking line from lens to body
Always high when RXD is transferring data, normally low.

7: RXD - Serial data from lens to body
Starts at 750 kbaud, usually negotiates up to 1.5 Mbaud during init.
8N1, LSB-first.

8: TXD - Serial data from body to lens
Same speeds as above.

9: BODY_CS_LENS - Handshaking line from body to lens
Always high when TXD is transferring data.

10: LENS_XDETECT - (weakly) pulled high by the body
Grounded to LOGIC_GND by the lens, or sometimes via 680 Ohm resistor
(Viltrox EF-NEX II). Used to detect presence of a lens. Body will not
output power unless this is grounded.


Logic analyzer setup
--------------------

The logic analyzer used was an fx2lafw board (at 6MHz):

http://www.amazon.com/gp/product/B00ZOC23TK

Probe Lens mount
----------------------
0 BODY_VD_LENS
1 VCC
2 LENS_CS_BODY
3 RXD
4 TXD
5 BODY_CS_LENS


Data
----

Protocol (quick summary):

Data is only transmitted when a CS line goes high. Only one frame of data is
transmitted per high CS period. All frames start with 0xF0, followed by a
command ID byte. All frames end with 0x55, this is preceded by a 16-bit
checksum of the command ID byte plus all payload bytes. Checksum is least
significant byte first. Frames from body to lens are sometimes padded with
additional 0x00 bytes beyond 0x55.

A CS line can go high without any data being transmitted. This has so far
only been seen during a speed change.

The protocol appears to assume fixed frame lengths for a given command ID.
Occurrences of 0x55 within a frame are NOT escaped.

During "idle" operation, a low pulse of BODY_VD_LENS appears to trigger two
status response frames from the lens to the body, followed by two frames from
body to lens.

Summary of hardware used:

- Body: Sony ILCE-A6000
- Probe breakout: Meike 16mm macro extension tube with all pins wired out
to a ribbon cable
- Lenses:
- Sony SEL55210 55-210mm zoom lens, initialization captured at both 55mm
and 210mm zoom settings
- Viltrox EF-NEX II adapter - Canon EF to Sony E mount electronic adapter
- Canon EF 50mm/1.8 STM - Used with Viltrox adapter
- Canon EF-S 24mm/2.8 STM - Used with Viltrox adapter
- Sony SELP1650 16-50mm Power Zoom lens - Initialization only captured at
the lens' default power-on focal length due to PZ + retractable lens

More details can be found in the dpreview thread at:
http://www.dpreview.com/forums/post/56133485

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added lens_mounts/sony_emount/a6000_sel55210_init_55.sr
Binary file not shown.
Binary file added lens_mounts/sony_emount/a6000_selp1650_init.sr
Binary file not shown.

0 comments on commit b7f9d25

Please sign in to comment.