Os08a10-H92a Specification Version-2-11 Se
Os08a10-H92a Specification Version-2-11 Se
on SE
fid C
en nl
tia y
o
lf
or
OS08A10
datasheet
PRODUCT SPECIFICATION
1/2" color CMOS 8 megapixel (3840 x 2160) image sensor
with PureCel® technology
OmniVision Technologies, Inc. and all its affiliates disclaim all liability, including liability for infringement of any proprietary
rights, relating to the use of information in this document. No license, expressed or implied, by estoppel or otherwise, to
any intellectual property rights is granted herein.
The information contained in this document is considered proprietary to OmniVision Technologies, Inc. and all its
affiliates. This information may be distributed to individuals or organizations authorized by OmniVision Technologies, Inc.
to receive said information. Individuals and/or organizations are not allowed to re-distribute said information.
C
on SE
Trademark Information
PureCel, OmniVision, the OmniVision logo are registered trademarks of OmniVision Technologies, Inc.
fid C
All other trademarks used herein are the property of their respective owners.
en nl
tia y
o
lf
or
color CMOS 8 megapixel (3840 x 2160) image sensor with PureCel® technology
datasheet (CSP)
PRODUCT SPECIFICATION
version 2.11
april 2018
00features
2 µm x 2 µm pixel 12-bit ADC
C
active array size: 3840 x 2160 input clock frequency: 6~27 MHz
power supply: lens chief ray angle: 11° linear (see figure 9-3)
or
C
on SE
fid C
en nl
tia y
o
lf
or
00table of contents
6.15 BLC control [0x4000 ~ 0x402F, 0x4040 ~ 0x409F, 0x40C0 ~ 0x40CF] 6-33
6.16 CADC sync [0x4500 ~ 0x4502, 0x4507] 6-41
en nl
00list of figures
00list of tables
1 signal descriptions
table 1-1 lists the signal descriptions and their corresponding pin numbers for the OS08A10 image sensor. The package
information is shown in section 8.
pin pin
number signal name type description
A1 NC – no connect
A11 NC – no connect
tia y
pin pin
number signal name type description
C8 DOGND ground I/O ground
E9 XSHUTDOWN2 input reset and power down (active low with pull down resistor)
pin pin
number signal name type description
F7 MDP3 output MIPI data positive output
F10 TM input test mode (active high with pull down resistor)
MDN2
J1 NC – no connect
pin pin
number signal name type description
J3 EVDD power MIPI/PLL digital circuit power
J9 XSHUTDOWN input reset and power down (active low with pull down resistor)
J11 NC – no connect
on SE
after after
XSHUTDOWN XSHUTDOWN
with with
en nl
F4
(configurable) (configurable)
input input
F9 VSYNC high-z input high-z
(configurable) (configurable)
after after
XSHUTDOWN XSHUTDOWN
with with
XSHUTDOWN2 XSHUTDOWN2 software hardware
pin signal name XSHUTDOWNa highb low ALS mode standbyc standbyd
high by default high by default
G5 MCN high-z high high-z
(configurable) (configurable)
(configurable) (configurable)
H11 SDA open drain I/O open drain I/O open drain
a. XSHUTDOWN = 0
b. XSHUTDOWN from 0 to 1
c. sensor set to standby from streaming mode
d. sensor set to hardware standby from streaming mode by pulling PWDNB = 0
OS08A10
J11 J10 J9 J8 J7 J6 J4 J3 J2 J1
NC DOGND XSHUTDOWN GPIO1 DVDD MDN1 DVDD EVDD DVDD NC
H11 H10 H9 H8 H7 H6 H5 H4 H3 H2 H1
SDA STROBE PWDNB GPIO2 DOVDD MDP1 MCP EGND MDN2 DOVDD AGND
G11 G10 G9 G8 G7 G6 G5 G4 G3 G2 G1
DVDD SID HREF GPIO3 MDN3 EGND MCN MDN0 MDP2 PGND VH2
F11 F10 F9 F8 F7 F6 F5 F4 F3 F2 F1
DOGND TM VSYNC GPIO0 MDP3 EVDD EVDD MDP0 DOGND AVDD DVDD
E11 E10 E9 E8 E7 E6 E5 E4 E3 E2 E1
C
DVDD DOVDD XSHUTDOWN2 XVCLK DOGND DOGND DOGND DOGND DOGND VH1 DOGND
D11 D10 D9 D8 D7 D4 D3 D2 D1
on SE
C11 C10 C9 C8 C7 C4 C3 C2 C1
AVDD DVDD AGND DOGND DOGND DOGND AVDD AVDD AVDD
fid C
B11 B10 B9 B8 B7 B4 B3 B2 B1
AGND DOGND DVDD DVDD DVDD DOGND ATEST DOGND AGND
A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1
en nl
OS08A10_CSP_DS_1_1
top view
tia y
o
lf
PAD
XVCLK
DOGND EN
to core
PAD
from core
SDA PD1
DOGND
open-drain
PAD
SCL PD1
DOGND
DOVDD
DOUT
PD2
DOGND
PAD
VN1, VN2
DOGND
C
PAD
fid C
DOGND
DOVDD DOVDD
tia y
DOGND
PWDNB
PAD
o
lf
DOGND
or
DOVDD
DOGND
DOGND
C
on SE
fid C
en nl
tia y
o
lf
or
The OS08A10 color RAW RGB PureCel® image sensors are high performance, 1/2-inch, 8 megapixel, CMOS, image
sensors that deliver 3840x2160 at 60 fps. They provide full-frame, sub-sampled, and windowed 10/12-bit MIPI/LVDS
images in various formats via the control of the serial camera control bus (SCCB) interface.
The OS08A10 has an 8 megapixel image array capable of operating at up to 60 frames per second (fps) in 10-bit
resolution with complete user control over image quality, formatting and output data transfer. Some image processing
functions, such as defective pixel canceling, etc., are programmable through the SCCB interface.
In addition, OmniVision image sensors use proprietary sensor technology to improve image quality by reducing or
C
eliminating common lighting/electrical sources of image contamination, such as fixed pattern noise, smearing, etc., to
produce a clean and fully stable color image.
on SE
For customized information purposes, the OS08A10 includes 8k bits of one-time programmable (OTP) memory (6k bits
are reserved for OmniVision and 2k bits are reserved for customers). The OS08A10 has a MIPI interface of up to four
lanes.
fid C
2.2 architecture
The OS08A10 sensor core generates streaming pixel data at a constant frame rate. figure 2-1 shows the functional block
en nl
The timing generator outputs clocks to access the rows of the imaging array, pre-charging and sampling the rows of the
tia y
array sequentially. In the time between pre-charging and sampling a row, the charge in the pixels decreases with
exposure to incident light. This is the exposure time in rolling shutter architecture.
o
The exposure time is controlled by adjusting the time interval between pre-charging and sampling. After the data of the
lf
pixels in the row has been sampled, it is processed through analog circuitry to correct the offset and multiply the data
with corresponding gain. Following analog processing is the ADC which outputs up to 12-bit data for each pixel in the
or
array.
OS08A10
image sensor core image image
sensor interface
column
processor
sample/hold
MIPI /LVDS TX
row select
FIFO
ISP
AMP MDP/N[3:0]
array ADC
gain
control
C
on SE
PLL PLL timing generator and system control logic SCCB interface
en nl
XVCLK
XSHUTDOWN2
XSHUTDOWN
TM
GPIO[3:0]
PWDNB
STROBE
VSYNC
HREF
SCL
SID
SDA
tia y
OS08A10_DS_2_1
o
lf
or
AGND
DGND
ATEST
DGND
DVDD
DVDD
DVDD
DGND
AGND
AVDD
AVDD
AVDD
DGND
DGND
DGND
AGND
DVDD
AVDD
A10
A11
B10
B11
C10
C11
A1
A2
A3
A4
A5
A6
A7
A8
A9
B1
B2
B3
B4
B7
B8
B9
C1
C2
C3
C4
C7
C8
C9
NC1
DVDD
DOVDD
DVDD
DOVDD
DOGND
DOGND
DOVDD
DOGND
DOVDD
NC2
AGND
DOGND
ATEST
DOGND
DVDD
DVDD
DVDD
DOGND
AGND
AVDD
AVDD
AVDD
DOGND
DOGND
DOGND
AGND
DVDD
AVDD
AGND D1
AGND
D7 DVDD
VN2 D2 DVDD
VN2
D8 DVDD
VN1 D3 DVDD
VN1
D9 SIOC
PVDD D4 SCL
PVDD
D10 AVDD
AVDD
D11 DOVDD
DOVDD
E1 DGND
J1 DOGND
NC3
U1 E2 VH1
DVDD J2 VH1
DVDD
EVDD J3 OS08A10 DOGND
E3 DGND
EVDD
DVDD J4 CSP DOGND
E4 DGND
DVDD
E5 DGND
DOGND
E6 DGND
MDN1 J6 DOGND
MDN1
E7 DGND
DVDD J7 DOGND
DVDD
E8 XVCLK
GPIO1 J8 XVCLK
GPIO1
C
E9 XSDN2
XSDN J9 XSHUTDOWN2
XSHUTDOWN
E10 DOVDD
DGND J10 DOVDD
DOGND
E11 DVDD
J11 DVDD
NC4
STROBE
PWDNB
DOGND
DOGND
DOVDD
DOVDD
VSYNC
GPIO0
GPIO3
GPIO2
MDN0
MDN3
MDN2
MDP0
MDP3
MDP2
MDP1
AGND
DVDD
PGND
DVDD
EGND
EGND
EVDD
EVDD
AVDD
HREF
on SE MCN
MCP
VH2
SDA
SID
TM
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
G1
G2
G3
G4
G5
G6
G7
G8
G9
G10
G11
H1
H2
H3
H4
H5
H6
H7
H8
H9
H10
H11
STROBE
DOVDD
DOVDD
VSYNC
GPIO0
GPIO3
GPIO2
PWDN
MDN0
MDN3
MDN2
MDP0
MDP3
MDP2
MDP1
DGND
DGND
DGND
DGND
DGND
AGND
DVDD
DVDD
EVDD
EVDD
AVDD
HREF
SIOD
MCN
MCP
VH2
SID
TM
fid C
U2
VDD TLV70028DDC-TSOT23-5 AVDD 2 1 VDD C21 100μF
+
4 3
1 5 R1 0-0603
IN OUT
6 5
2 4 R2 NC-0603
C3 10μF-0805
GND FB
C1 1μF-0603
C2 1μF-0603
HEADER3X1 12 11 SIOD
QTE-020-01-X-D-A
MDP0 14 13 SIOC
DOVDD
1
MDN0 16 15
XSDN
2
18 17
DOGND
3 no mount
MCP 20 19
MCN 22 21 XSHUT R9 0-0603 XSDN
tia y
U3 24 23
VDD XC6206P182PR 1.8V DOVDD 1.8V
MDP1 26 25
2 3 R4 0-0603 J3
VIN OUT HEADER3X1 MDN1 28 27
1
10μF/6V-EIA-A
GND 30 29
J1
C6 0.1μF-0603
DOVDD
1
C4 0.1μF-0603
MDP3 32 31
PWDN
2
MDN3 34 33
DOGND
lf
3
36 35
38 37
C5
VSYNC 40 39
DGND
41
42
43
44
or
DGND
HEADER 20x2/SM
U4
VDD ELM121A-N 1.2V DVDD 1.2V MIPI traces should have same length
2 3 R5 0-0603 and with 100 ohm impedance control
VIN OUT
1
22μF/6V-EIA-A
GND
C8 0.1μF-0603
no mount
C7 0.1μF-0603
no mount
DGND
VH2
VN1
VN2
0-0603
0-0603
C11 0.1μF-0603
C12 4.7μF-0603
C13 0.1μF-0603
C14 0.1μF-0603
C15 0.1μF-0603
C16 0.1μF-0603
C17 1.0μF-0603
C18 1.0μF-0603
C19 1.0μF-0603
C20 1.0μF-0603
C10 1μF-0603
DGND
AGND
PGND
R6
R7
DVDD
AVDD
for better image quality, it is recommended to use 4.7μF + 0.1μF capacitor for AVDD power part OS08A10_CSP_DS_2_2
The OS08A10 supports RAW RGB output with one/two/four MIPI or LVDS interface.
4K2K (12bit) 3840 x 2160 30 fps full resolution (16:9) 1440 Mbps/lane
1280 x 960 1280 x 960 120 fps cropping + 2x binning 700 Mbps/lane
The OS08A10 can configure its I/O pins as an input or output. For the output signal, it follows one of two paths: either
from the data path or from register control.
tia y
1: output
VSYNC output select 0x3008 Bit[7]: Enable VSYNC as GPIO controlled by register
GPIO0 output select 0x3008 Bit[0]: Enable GPIO0 as GPIO controlled by register
GPIO1 output select 0x3008 Bit[0]: Enable GPIO1 as GPIO controlled by register
GPIO2 output select 0x3007 Bit[0]: Enable GPIO2 as GPIO controlled by register
GPIO3 output select 0x3007 Bit[1]: Enable GPIO3 as GPIO controlled by register
The OS08A10 supports an MIPI interface of up to four lanes. The MIPI interface can be configured for 1/2/4-lanes. Each
lane is capable of a data transfer rate of up to 1500 Mbps.
en nl
The OS08A10 supports a 1/2/4 LVDS interface with a data transfer rate of up to 1500 Mbps. For details of LVDS, please
tia y
OmniVision recommends cutting off all power supplies, including the external DVDD, when the sensor is not in use.
There is no requirement for the power sequence. Cutting off any power source (AVDD/DVDD/DOVDD) is equivalent to
XSHUTDOWN going low and the OS08A10 will enter hardware standby mode, which uses very low power.
t4 (fixed)
AVDD, DOVDD,
DVDD ready t5 (variable)
and XSHUTDOWN high
t1
XVCLK
(free running)
XVCLK
(gated)
requirement is that XVCLK must be active for time t3 prior to first SCCB transaction.
on SE
SDA
t2 t3
SCL
fid C
MIPI
en nl
high-z LP-11
MDP/MDN LP-01
tia y
OS08A10_DS_2_3
o
lf
or
SDA
t0
SCL if SCCB command is received during readout of frame, then sensor must wait after
MIPI end of frame short packet before entering software standby mode.
enter
software
SDA
t1
fid C
OS08A10_DS_2_4
o
lf
or
hardware
STATE streaming (active) software standby standby power off
t3
AVDD, DOVDD,
and DVDD off or
XSHUTDOWN goes low
t2
XVCLK
(free running)
XVCLK
(gated)
requirement is that XVCLK must be active for time t1 after last SCCB transaction
or after MIPI frame end short packet, whichever is later event.
on SE
SDA
t0 t1
fid C
SCL
if SCCB command is received during readout of frame, then sensor must wait after
MIPI frame end short packet before entering sleep mode. if SCCB command is received
during inter frame time, then sensor must enter sleep mode immediately. OS08A10_DS_2_5
en nl
2.8 reset
tia y
The power on reset can be controlled from an external pin. Additionally, in this sensor, a power on reset is generated
after the core power becomes stable.
or
• hardware standby
• software standby
halt the device clock. All register content is maintained in standby mode. During the resume state, all the registers are
restored to their original values.
on SE
mode description
1. enabled by pulling XSHUTDOWN low
2. power down all blocks
hardware standby with XSHUTDOWN 3. register values are reset to default values
en nl
4. no SCCB communication
5. minimum power consumption
PLL settings can only be changed during sensor standby mode (0x0100 = 0).
2.10.1 PLL1
The PLL1 generates a default 184 MHz pixel clock and 1500 MHz MIPI serial clock from a 6~64 MHz input clock. The
VCO range is from 500 MHz to 1600 MHz. A programmable clock is provided to generate different frequencies.
2.10.2 PLL2
The PLL2 generates a default 144 MHz system clock from a 6~64 MHz input clock. The VCO range is from 500 MHz to
1200 MHz. A programmable clock divider is provided to generate different frequencies.
PLL1
on SE
PLL2
pre_divp pre_div div_loop tc_pre_divider tc_divider dig_sa1clk_div
ref clk /1/2 /1/1.5/2/2.5/3/4/5/6/8 1 ~ 255 1 ~ 16 /1/1.5/2/2.5/3/3.5/4/5 /1/2 SCLK
6 ~ 64MHz 0x0322[0] 0x0323[2:0] {0x0324[1:0], 0x0325[7:0]} 0x0328[3:0] 0x032A[3:0] 0x3106[0]
sram_div dig_sramclk_div
en nl
1 ~ 16 /1/2 TCLK
0x0327[3:0] 0x301B[7]
dac_div
1 ~ 16 DAC_CLK
0x0329[3:0]
tia y
OS08A10_DS_2_6
o
lf
default
or
default
address register name value R/W description
0x0323 PLL_CTRL_23 0x02 RW Bit[2:0]: pll2_prediv
The Serial Camera Control Bus (SCCB) interface controls the image sensor operation. Refer to the OmniVision
Technologies Serial Camera Control Bus (SCCB) Specification for detailed usage of the serial control port.
In the OS08A10, the SCCB ID is controlled by the SID pin. If SID is low, the sensor’s SCCB ID is 0x6C for write (0x6D
en nl
for read). If SID is high, the sensor’s SCCB ID is 0x20 for write (0x21 fore read). The SCCB ID can also be programmed
by registers. When 0x303F[0] is 1, the ID comes from register 0x3004 when SID=0 and register 0x3012 when SID=1.
tia y
message type: 16-bit sub-address, 8-bit data, and 7-bit slave address
note 1 slave address must be 0x36 for SCCB write address to be 0x6C and for SCCB read address to be 0x6D
fid C
OS08A10_DS_2_7
The OS08A10 supports four different read operations and two different write operations:
In a single read from random locations, the master does a dummy write operation to desired sub-address, issues a
repeated start condition and then addresses the camera again with a read operation. After acknowledging its slave
address, the camera starts to output data onto the SDA line as shown in figure 2-8. The master terminates the read
operation by setting a negative acknowledge and stop condition.
If the host addresses the camera with read operation directly without the dummy write operation, the camera responds
by setting the data from last used sub-address to the SDA line as shown in figure 2-9. The master terminates the read
C
slave slave
S 1 A data A P S 1 A data A P
en nl
address address
OS08A10_DS_2_9
tia y
The sequential read from a random location is illustrated in figure 2-10. The master does a dummy write to the desired
sub-address, issues a repeated start condition after acknowledge from slave and addresses the slave again with read
o
operation. If a master issues an acknowledge after receiving data, it acts as a signal to the slave that the read operation
lf
shall continue from the next sub-address. When master has read the last data byte, it issues a negative acknowledge
and stop condition.
or
The sequential read from current location is similar to a sequential read from a random location. The only exception is
that there is no dummy write operation as shown in figure 2-11. The master terminates the read operation by setting a
negative acknowledge and stop condition.
slave
S 1 A data A data A data A P
address
C
The write operation to a random location is illustrated in figure 2-12. The master issues a write operation to the slave,
sets the sub-address and data correspondingly after the slave has acknowledged. The write operation is terminated with
a stop condition from the master.
fid C
The sequential write is illustrated in figure 2-13. The slave automatically increments the sub-address after each data
byte. The sequential write operation is terminated with stop condition from the master.
tF tHIGH tR
SCL
tLOW
tSU:DAT
tHD:STA tSU:STO
SDA (IN)
tAA
C
SDA (OUT)
on SE
tDH OS08A10_DS_2_14
table 2-7
Group write is supported in order to update a group of registers in the same frame. These registers are guaranteed to
be written prior to the internal latch at the frame boundary.
The OS08A10 supports up to four groups and can be recorded in the same time. These groups share 1024 bytes of
memory and the size of each group is programmable by adjusting the start address.
default
address register name value R/W description
Bit[7:4]: group_ctrl
C
Bit[7:6]: Reserved
Bit[5]: Repeat switch mode
0x320D GRP_SWCTRL 0x01 RW Bit[4]: context_en
or
Bit[3:2]: Reserved
Bit[1:0]: Switch back group
2.12.1 hold
After the groups are configured, users can perform a hold operation to store register settings into the SRAM of each
group. The hold of each group starts and ends with the control register 0x3208. The lower 4 bits of register 0x3208 control
which group to access, and the upper 4 bits control the start (0x0: hold start) and end (0x1: hold end) of the hold
operation.
2.12.2 launch
on SE
After the contents of each group are defined in the hold operation, all registers belonging to each group are stored in
SRAM, and ready to be written into target registers (i.e., the launch of that group).
fid C
There are five launch modes as described in sections section 2.12.2.1 to section 2.12.2.5.
Quick manual launch is achieved by writing to control register 0x3208. The value written into this register is 0xEX,
the upper 4 bits (0xE) are the quick launch command and the lower 4 bits (0xX) are the group number. For example,
tia y
if users want to launch group 0, they just write the value 0xE0 to 0x3208, then the contents of group 0 will be written
to the target registers immediately after the sensor gets this command through the SCCB. Below is a setting
example.
o
lf
In this example, the sensor will quick launch group 3 for 5 frames, switch to group 1 for 1 frame, and then switch to
group 2.
fid C
Launching quick auto launch in stagger HDR mode has additional requirements, such as:
2. User needs to drop first short channel frame after launching context switching.
incrementing indices until the return group number is reached. Similar to mode 3, specifying 0 frames to stay will
skip that group(s).
o
lf
In this example, the sensor will delay launch group 0, stay at group 0 for 4 frames, then return to group 1.
Launching delay auto launch in stagger HDR mode has additional requirements, such as:
...
6C 3208 12 group 2 hold end
tia y
...
lf
In this example, the sensor will repeat launch group 0, stay at group 0 for 100 frames, skip group 1 since stay frames
for group 1 is set to 0, switch to group 2 for 50 frames, switch to group 3 for 100 frames, then back to group 0 for
100 frames, and so on until the user sends a register write.
Launching delay auto launch in stagger HDR mode has additional requirements, such as:
In power saving mode, the sensor operates in low power mode during vertical blanking. The sensor will enter power
saving mode using register 0x3406 × 4 rows before entering vblanking and exit out of power saving mode using register
0x3409[3:0] × 4 rows after vblanking ends.
default
address register name value R/W description
0x3406 R STREAM ST OFFS 0x08 RW Bit[7:0]: r_stream_st_offs
The OS08A10 sensor has an image array of 3872 columns by 2192 rows (8,487,424 pixels). figure 3-1 shows a
cross-section of the image sensor array.
The color filters are arranged in a Bayer pattern. The primary color BG/GR array is arranged in line-alternating fashion.
Of the 8,487,424 pixels, 8,294,400 (3840x2160) are active pixels and can be output.
The sensor array design is based on a field integration readout system with line-by-line transfer and an electronic shutter
with a synchronous pixel readout scheme.
columns
on SE
3855
3856
3857
3858
3859
3871
15
16
17
18
19
...
...
...
0
1
2
3
0 B G B G B G B G B G B G B G B G B G
1 G R G R G R G R G R G R G R G R G R
fid C
16
2 B G B G B G B G B G B G B G B G B G dummy
3 G R G R G R G R G R G R G R G R G R lines
... B G B G B G B G B G B G B G B G B G
15 G R G R G R G R G R G R G R G R G R
en nl
16 B G B G B G B G B G B G B G B G B G
17 G R G R G R G R G R G R G R G R G R
18 B G B G B G B G B G B G B G B G B G 2160
rows
active
19 G R G R G R G R G R G R G R G R G R lines
tia y
... B G B G B G B G B G B G B G B G B G
2175 G R G R G R G R G R G R G R G R G R
2176 B G B G B G B G B G B G B G B G B G
o
2177 G R G R G R G R G R G R G R G R G R 16
lf
2178 B G B G B G B G B G B G B G B G B G dummy
2179 G R G R G R G R G R G R G R G R G R lines
... B G B G B G B G B G B G B G B G B G
or
2191 G R G R G R G R G R G R G R G R G R
16 3840 16
dummy active dummy
pixels pixels pixels
OS08A10_DS_3_1
3.2 subsampling
The OS08A10 supports a binning mode to provide a lower resolution output while maintaining the field of view. With
binning mode ON, the voltage levels of adjacent pixels (of the same color) are averaged before being sent to the ADC.
The OS08A10 supports 2x2 binning, which is illustrated in figure 3-2 and figure 3-3, where the voltage levels of two
horizontal (2x1) adjacent same-color pixels are averaged.
B G B G B G B G
G R G R BG G R G R BG
C
B G B G GR B G B G GR
G R G R G R G R
on SE
B G B G B G B G
G R G R BG G R G R BG
B G B G GR B G B G GR
G R G R G R G R
fid C
B G B G B G B G
o
G R G R YY G R G R YY
lf
B G B G YY B G B G YY
G R G R G R G R
or
B G B G B G B G
G R G R YY G R G R YY
B G B G YY B G B G YY
G R G R G R G R
default
address register name value R/W description
0x3814 X_ODD_INC 0x01 RW Bit[4:0]: Horizontal increase number at odd pixel
0x3815 X_EVEN _INC 0x01 RW Bit[4:0]: Horizontal increase number at even pixel
Bit[2]: Flip
0x3820 FORMAT1 0x80 RW Bit[1]: Vertical mono binning
Bit[0]: Vertical binning
When the column sample/hold circuit has sampled one row of pixels, the pixel data will shift out one-by-one into an
analog amplifier.
en nl
C
on SE
fid C
en nl
tia y
o
lf
or
The OS08A10 provides mirror and flip readout modes, which respectively reverse the sensor data readout order
horizontally and vertically (see figure 4-1).
F F
F F
C
on SE
OS08A10_DS_4_1
fid C
default
address register name value R/W description
tia y
An image windowing area is defined by four parameters, horizontal start (HS), horizontal end (HE), vertical start (VS),
and vertical end (VE). By properly setting the parameters, any portion within the sensor array size can output as a visible
area. Windowing is achieved by masking off the pixels outside of the window; thus, the original timing is not affected.
H_crop_start H_crop_end
H_win_off
on SE
H_output_size
sensor array vertical output size
V_win_off
o
lf
56 black line
or
default
address register name value R/W description
Bit[3:0]: x_addr_start[11:8]
0x3800 X ADDR START 0x00 RW
Array horizontal start point
Bit[7:0]: x_addr_start[7:0]
0x3801 X ADDR START 0x00 RW
Array horizontal start point
Bit[3:0]: y_addr_start[11:8]
0x3802 Y ADDR START 0x00 RW
Array vertical start point
Bit[7:0]: y_addr_start[7:0]
0x3803 Y ADDR START 0x04 RW
Array vertical start point
C
Bit[3:0]: x_addr_end[11:8]
0x3804 X ADDR END 0x07 RW
Array horizontal end point
on SE
Bit[7:0]: x_addr_end[7:0]
0x3805 X ADDR END 0x8F RW
Array horizontal end point
Bit[3:0]: y_addr_end[11:8]
0x3806 Y ADDR END 0x04 RW
Array vertical end point
fid C
Bit[7:0]: y_addr_end[7:0]
0x3807 Y ADDR END 0x43 RW
Array vertical end point
en nl
Bit[3:0]: x_output_size[11:8]
0x3808 X OUTPUT SIZE 0x07 RW
ISP horizontal output width
Bit[7:0]: x_output_size[7:0]
0x3809 X OUTPUT SIZE 0x80 RW
ISP horizontal output width
tia y
Bit[3:0]: y_output_size[11:8]
0x380A Y OUTPUT SIZE 0x04 RW
ISP vertical output height
o
lf
Bit[7:0]: y_output_size[7:0]
0x380B Y OUTPUT SIZE 0x38 RW
ISP vertical output height
Bit[7:0]: HTS[15:8]
or
Bit[7:0]: HTS[7:0]
0x380D HTS 0x78 RW
Total horizontal timing size
Bit[7:0]: VTS[15:8]
0x380E VTS 0x04 RW
Total vertical timing size
Bit[7:0]: VTS[7:0]
0x380F VTS 0xA0 RW
Total vertical timing size
Bit[7:0]: isp_x_win[15:8]
0x3810 ISP X WIN 0x00 RW
ISP horizontal windowing offset
Bit[7:0]: isp_x_win[7:0]
0x3811 ISP X WIN 0x08 RW
ISP horizontal windowing offset
default
address register name value R/W description
Bit[3:0]: isp_y_win[11:8]
0x3812 ISP Y WIN 0x00 RW
ISP vertical windowing offset
Bit[7:0]: isp_y_win[7:0]
0x3813 ISP Y WIN 0x04 RW
ISP vertical windowing offset
For testing purposes, the OS08A10 offers three types of test patterns: color bar, square and random data. The OS08A10
fid C
also offers two digital effects: transparent effect and rolling bar effect. The output type of digital test pattern is controlled
by the test_pattern_type register (0x5081[3:2]). The digital test pattern function is controlled by register 0x5081[7].
There are four types of color bars, which are switched by bar-style in register 0x5081[3:2] (see figure 4-3).
4.3.2 square
There are two types of squares: color square and black-white square. The squ_bw register (0x5081[4]) determines which
type of square will be output.
OS08A10_DS_4_4
on SE
The transparent effect is enabled by transparent_en register (0x5081[5]). If this register is set, the transparent test pattern
will be displayed. figure 4-5 is an example showing a transparent color bar image.
en nl
OS08A10_DS_4_5
OS08A10_DS_4_6
on SE
default
address register name value R/W description
Bit[7]: test_en
en nl
Bit[6]: rolling
Bit[5]: trans
0x5081 ISP CTRL 1 0x00 RW
Bit[4]: squ_bw
Bit[3:2]: bar_style
tia y
Bit[1:0]: test_sel
o
lf
or
Exposure time control is based on a frame brightness average value. The OS08A10 supports the average image
luminance calculation. By properly setting X_start, Y_start, and window_width and window_height, the user can adjust
the average based window.
on SE
sensor array
size Y
fid C
default
lf
The pixel array contains several optically shielded (black) lines and optically shielded (black) pixels on the right side.
These lines and columns are used as reference for black level calibration. The main function of the BLC is to adjust all
normal pixel values based on the values of the black levels.
default
address register name value R/W description
Bit[7]: offset_trigger_en
Bit[6]: exp_trig_en
Bit[5]: gain_trig_en
C
Bit[4]: fmt_trig_en
0x4000 BLC CTRL00 0xF8 RW
Bit[3]: rst_trig_en
on SE
Bit[2]: man_trig_en
Bit[1]: blc_freeze
Bit[0]: blc_always_update
Bit[7]: zero_in_out_en
fid C
Bit[6]: blc_In_out_en
Bit[5]: blc_dithering_en
Bit[4]: man_offset_en
0x4001 BLC CTRL01 0x2B RW
Bit[3]: median_filter_en
en nl
Bit[2]: v15_one_chnl_en
Bit[1]: dc_blc_en
Bit[0]: blc_en
tia y
default
address register name value R/W description
Bit[7]: r_threshold_en
Bit[6]: r_set_zb
Bit[5:4]: output_bits
00: 10 bits
0x400F BLC CTRL0F 0xA0 RW 01: 11 bits
10: 12 bits
Bit[2]: r_en_adp_k
Bit[1]: r_dc_offset_mode
Bit[0]: r_compute_offset_v15
Bit[7]: r_img_gfirst_rvs
Bit[6]: r_blk_rblue_rvs
C
Bit[5]: r_img_rblue_rvs
Bit[4]: r_dc_man
0x4010 BLC CTRL10 0x12 RW
on SE
Bit[3]: target_adj_dis
Bit[2]: cmp_en
Bit[1]: kcoef_man_en
Bit[0]: man_avg_en
fid C
Bit[7]: r_off_cmp_man_en
Bit[6]: off_chg_mf_en
Bit[5]: fmt_chg_mf_en
Bit[4]: gain_chg_mf_en
en nl
Bit[1:0]: off_trig_th[9:8]
0x4016 OFF TRIG TH 0x00 RW
off_trig_th high 2 bits
Bit[7:0]: off_trig_th[7:0]
0x4017 OFF TRIG TH 0x04 RW
off_trig_th low 8 bits
Bit[7]: r_h_size_man_en
Bit[6]: r_kcoef_mirror
Bit[5]: r_adp_dc_switch_en
Bit[4]: gain_trig_beh
0x401A BLC CTRL1A 0x48 RW
Bit[3]: format_trig_beh
Bit[2]: r_ln_man
Bit[1:0]: byp_mode
CZ V1.54 change start
default
address register name value R/W description
0x4020 BLC CTRL20 0x00 RW Bit[7:0]: off_cmp_th0000
Bit[6]: r_lim_bits_en
Bit[5]: r_thres_en
0x4028 THRES CTRL 0x4F RW
Bit[4]: r_thres_man_en
Bit[3:0]: r_thres_hist_cutoff
fid C
0x402E~
NOT USED – – Not Used
0x402F
o
default
address register name value R/W description
0x404C OFF MAN0110 0x00 RW Bit[4:0]: off_man0110[12:8]
Bit[1:0]: rnd_gain_th[9:8]
0x405D RND GAIN TH 0x00 RW
lf
Bit[7:0]: rnd_gain_th[7:0]
0x405E RND GAIN TH 0x00 RW
rnd_gain_th low 8 bits
or
Bit[1:0]: zero_ln_num[9:8]
0x4065 ZERO LN NUM 0x00 RW
Zero line number high 2 bits
Bit[7:0]: zero_ln_num[7:0]
0x4066 ZERO LN NUM 0x02 RW
Zero line number low 8 bits
default
address register name value R/W description
0x4067 COL WIN 0x18 RW Bit[7:0]: col_win
Bit[1:0]: r_col_low_gain[9:8]
0x4068 R COL LOW GAIN 0x00 RW
r_col_low_gain high 2 bits
Bit[7:0]: r_col_low_gain[7:0]
0x4069 R COL LOW GAIN 0x20 RW
r_col_low_gain low 8 bits
Bit[1:0]: r_col_high_gain[9:8]
0x406A R COL HIGH GAIN 0x00 RW
r_col_high_gain high 2 bits
Bit[7:0]: r_col_high_gain[7:0]
0x406B R COL HIGH GAIN 0x40 RW
r_col_high_gain low 8 bits
C
vertical
blanking
fid C
exposure
time
en nl
data
out
tia y
o
strobe
lf
request
or
strobe
pulse
request here zoomed
correctly strobe
exposed pulse
frame 1H OS08A10_DS_4_8
vertical
blanking
exposure
time
data
C
out
on SE
strobe
request
start end
fid C
strobe
pulse
frame
OS08A10_DS_4_10
vertical
blanking
o
lf
exposure
time
or
data
out
strobe
request
start
strobe
pulse
request here
correctly
exposed number of inserted dummy lines is programmable
frame OS08A10_DS_4_11
exposure
time
data
out
C
strobe
request
on SE
start end
strobe
signal
correctly
exposed
frame OS08A10_DS_4_12
en nl
vertical
lf
blanking
or
exposure
time
data
out
strobe
request
strobe
pulse
request here
correctly
exposed
frame
OS08A10_DS_4_13
default
address register name value R/W description
Bit[7]: Strobe on/off
Bit[6]: Strobe polarity
0: Active high
1: Active low
Bit[5:4]: width_in_xenon
0x3B00 STROBE CTRL 0x00 RW Bit[2:0]: Strobe mode
000: Xenon
001: LED1
C
010: LED2
011: LED3
100: LED4
on SE
Bit[3]: start_point_sel
Bit[2]: Strobe repeat enable
Bit[1:0]: Strobe latency
0x3B04 STROBE CTRL 0x00 RW 00: Strobe generated at next frame
en nl
128×(2^gain)×(step+1)×Tsclk
lf
or
In the OS08A10, the user can configure the registers being output in embedded line. One or more rows of embedded
data can be output at the beginning or end of image frame. The embedded line number is controlled by register
0x3216[3:0]. In total, embedded line can support up to 512 bytes of data.
default
o
default
address register name value R/W description
Bit[7:6]: emb_line_blk_ctrl
00: 32 sclk cycles
01: 64 sclk cycles
10: 128 sclk cycles
11: Wait for external trigger signal
Bit[5]: embline_addr_en
Bit[4]: r_padding_md2
0: No dummy data mixing with valid
0x3218 EMB_CTRL 0x00 RW data
1: Dummy data output with valid
data for every cycle
C
Bit[3]: frame_trig_sel
0: tc_grp_wr
1: EOF
on SE
Bit[2]: embline_eof_en
Bit[1]: embline_sof_en
Bit[0]: embline_tag_en
fid C
The OS08A10 provides a new operating mode called light sensing mode (LSM). While it features extremely low power
consumption, its functionality is very different from conventional video streaming modes. In LSM mode, all digital
functions are shut down. The image sensor serves as an ambient light sensor. Therefore, there is no video streaming
output.
4. Host reads register 0x2021 (MSB) and 0x2022 (LSB) for light sensing condition to decide the next step
figure 4-13 shows an example flow chart for unlocking a device using LSM mode.
no
light change
no
C
on SE
yes
ULPM (~ 10 mW)
fid C
OS08A10_DS_4_13
o
lf
or
The configuration below is used to generate interrupt when the light level is above the threshold.
threshold 0 (0x2004/0x2005)
interrupt range
C
The configuration below is used to generate interrupt when the light level is below the threshold.
on SE
threshold 0 (0x2004/0x2005)
The configuration below is used to generate interrupt if the light level is above threshold 1 or between
the light zone boundary and threshold 0.
The interrupt range ceiling is fixed as 0xFFFF and “threshold 1” > “light zone boundary” > “ threshold 0”.
default
address register name value R/W description
o
lf
Bit[7]: clk_sel_o
Bit[6:0]: frame_interval
0x2001 LSM CTRL01 0x01 RW
Minimum number of frames
between two LSM interrupt signals
Bit[7:0]: lm_small[15:8]
0x200A LM SMALL0 0xFF RW
Small zone light level boundary
Bit[7:0]: lm_small[7:0]
0x200B LM SMALL1 0xFF RW
Small zone light level boundary
default
address register name value R/W description
Bit[7:0]: lm_large[15:8]
0x200C LM LARGE0 0xFF RW
Small zone light level boundary
Bit[7:0]: lm_large[7:0]
0x200D LM LARGE1 0xFF RW
Small zone light level boundary
Bit[5:4]: lsm_output_sel
00: Level interrupt (last one frame
(65536 cycles))
01: Debug mode
en nl
Bit[7:0]: lm1_count[15:8]
o
Bit[7:0]: lm1_count[7:0]
0x2022 RO LM1 COUNT1 – R
Light meter readout value
or
The OS08A10 supports an ULPM interrupt function that can output the current frame's Y (or R/G/B channel) average
and generate a hardware interrupt when sensor luminance level is within or out of pre-set target range. figure 4-16
shows a description of the ULPM interrupt operations.
change exposure/gain
C
step 1
no is output-Y in
stable range-1?
fid C
yes
generate interupt,
en nl
latch mean R, G, B, Y,
exposure and gain values.
tia y
clear interupt.
lf
yes step 2
is output value within
stable range-2?
no
generate interupt,
latch mean R, G, B, Y,
exposure and gain values.
clear interupt.
OS08A10_DS_4_16
upper bound
0x3A02 for stable range
fid C
en nl
0 OS08A10_DS_4_17
o
1. Host programs a sequence of SCCB addresses to get the sensor into a lower fps mode. The host will need to
use the gain and exposure values latched in the previous step 1.
or
2. Host programs a new stable range-2 (0x4A08~0x4A0B) around the value that the sensor had reached when
it gave a trigger to the host in step 1.
3. If the Y output of the sensor goes outside its stable range programmed above in step 2, it will generate
another interrupt on the same pin (ULPM) and 0x4A20[1] latched the gain, exposure, mean (R, G, B, Y)
values on registers (0x4A21~0x4A2B).
4. Host needs to clear the interrupt (rewrite 0x4A10=0) to come back to step 1.
5. Host needs to program the sensor back to the step 1 to get the new Y value as per the procedure in step 1.
10-bit mode
1023
0 OS08A10_DS_4_18
on SE
default
en nl
default
address register name value R/W description
Bit[7]: Debug mode (always set to 1'b0)
Bit[6]: Use average method to do ULPM
1: Average mode
Bit[5]: r_opt
Bit[3]: r_ratio_man_en
0x4A00 ULPM_CTRL00 0xA4 RW
Bit[1]: r_pol_inv_en
Bit[0]: r_abs_en
C
Bit[3]: gpio_auto_clear_en
Bit[2]: gpio_host_clear_en
0x4A01 ULPM_CTRL01 0x0A RW
Bit[1]: reg_auto_clear_en
fid C
Bit[0]: reg_host_clear_en
Bit[7:4]: r_diff_ratio1
en nl
default
address register name value R/W description
0x4A21 ULPM_CTRL21 – R Bit[7:0]: Current gain value
6. Reduce frame rate for step 2, if desired, and set the stable range for step 2.
6c 380e 20; reduce fps
7. Clear flag by writing 0x00 to register 0x4A10, and then monitor register 0x4A20 for step 2 flag. Once image Y
value is outside stable range-2, ULPM interrupt can be observed at 0x4A20 (=0x06) and ULPM pin.
6c 4a10 00
8. After step 2 interrupt, frame rate can be adjusted by clearing step 2 flag by writing 0x00 to register 0x4A10,
C
HDR mode increases image dynamic range by capturing multiple exposures of a similar scene and then combining them
into one single image. The OS08A10 supports staggered HDR mode. Sequential HDR can be achieved by using context
switching.
In this mode, the max exposure line number: T_long + T_short < frame_length (VTS) - 4
C
Tframe_HDR
fid C
OS08A10_DS_4_19
The first staggered mode uses a MIPI channel to differentiate different exposure frames. Long/short frames use MIPI
virtual channel VC0/VC1, respectively, in order for different exposure frames to not mix signals on the MIPI receiver side.
o
The second output mode is the new staggered HDR mode with dummy lines, where no VC is needed, and only on FS
lf
and on FE for each new staggered HDR frame, supported by MIPI and LVDS.
V_blank
frame long FS row 0 frame N row M-1 dummy FS row 0 frame N+1 row M-1 dummy
frame short dummy row 0 frame N row M-1 FE dummy row 0 frame N+1 row M-1 FE
OS08A10_DS_4_20
max_exposure_short
T
frame_HDR
The third output mode is the LVDS axis mode. LVDS axis mode uses two independent LVDS, long exposure transmits
on lane0/1, short exposure transmits on lane2/3. LVDS axis mode supports two 2-lane modes and two 1-lane modes.
MDP0 MDP0
long exposure
MDN0 MDN0
LVDS1 long exposure LVDS1
MDP1 MDP1
MDN1 MDN1
MDN3 MDN3
OS08A10_DS_4_21
on SE
default
address register name value R/W description
0x3501 LONG EXPO 0x00 RW Bit[7:0]: Long exposure[15:8]
en nl
real_gain = Gain[12:0]/128
lf
default
address register name value R/W description
0x3512 SHORT EXPO 0x20 RW Bit[7:0]: Short exposure[7:0]
BLC_NUM_
0x381C 0x0E RW Bit[1]: new_stg_hdr_en
OPTION
default
address register name value R/W description
C
Bit[7]: awb_en
0x5000 ISP CTRL 0 0xA9 RW Bit[3]: otp_en
on SE
Bit[0]: isp_en
Bit[6]: win_en
0x5001 ISP CTRL 1 0x09 RW
Bit[1]: dpc_en
fid C
5.2 DSP
en nl
default
address register name value R/W description
Bit[7]: test_en
Bit[6]: rolling
Bit[5]: trans
0x5081 ISP CTRL 1 0x04 RW
Bit[4]: squ_bw
Bit[3:2]: bar_style
Bit[1:0]: test_sel
The main purpose of the DPC function is to remove white/black defect pixels. If the pixel is defective, DPC will use a
value calculated from the neighboring normal pixels to replace it.
default
address register name value R/W description
Bit[7]: Enable tail
Bit[6]: Enable tailing cluster
Bit[5]: Enable 3x3 cluster
Bit[4]: Enable saturate cross cluster
0x5200
C
ISP_CTRL_0 0x1B RW
Bit[3]: Enable cross cluster
Bit[2]: Enable manual mode
on SE
The main purpose of the WINC module is to make the image size to be real size by removing offset.
en nl
default
address register name value R/W description
o
Bit[7:4]: emb_num
Bit[2]: emb_flag_sel
0: Start line
0x5808 ISP_CTRL_8 0x00 RW 1: End line
Bit[0]: win_man_en
0: Window size from window top
1: Window size from register
Manual exposure provides exposure time settings and sensor gain. Manual gain provides analog gain settings. For
optimal performance, maximum exposure should be 200 ms. For more details, contact your local OmniVision FAE.
1: Not used
lf
0x3505 GCVT OPTION 0x80 RW Bit[3:2]: Sensor gain pregain option (debug only,
always set it to 0)
Bit[1:0]: Sensor gain option for transferring real
gain to sensor gain format
Bit[3]: fine_snr_gain_16_en
Back gain enable
Bit[2]: Priority_6
switch_snr_gain_en
0: dac[2:0]_comp[1:0]
0x3507 GAIN SHIFT 0x08 RW 1: comp[1:0]_dac[2:0]
Bit[1:0]: Gain shift option
00: Do not shift
01: Left shift 1 bit
10: Left shift 2 bits
11: Left shift 3 bits
default
address register name value R/W description
0x3508 LONG GAIN 0x00 RW Bit[5:0]: Gain[13:8]
00000: 1x
00001: 2x
on SE
00011: 4x
00111: 8x
Gain[7]: 1’b1
Gain[6:3]: Fine gain
fid C
Gain[2:0]: Always 0
For example, 0x080 is 1x gain, 0x180 is 2x gain, and
0x380 is 4x gain.
default
address register name value R/W description
Bit[2]: Debug mode
Bit[1]: digital_gain apply select
0: Digital gain apply in BLC
1: Digital gain apply in MWB
Bit[0]: Auto gain delay option
0: Real gain and digital gain delay
GAIN_DELAY_
0x3519 0x00 RW manual mode
SWAP_OPTION
1: Real gain and digital gain delay will
auto sync with expo. When expo
and gain change at same time, both
gain will delay 1 frame to sync with
C
BLC_DIG_GAIN_
0x351A – R Bit[5:0]: Current BLC long digital gain[13:8]
CUR_L
BLC_DIG_GAIN_
0x351B – R Bit[7:0]: Current BLC long digital gain[7:0]
CUR_L
fid C
BLC_DIG_GAIN_
0x351C – R Bit[5:0]: Current BLC short digital gain[13:8]
CUR_S
en nl
BLC_DIG_GAIN_
0x351D – R Bit[7:0]: Current BLC short digital gain[7:0]
CUR_S
The RAW R/G/B values of a gray object vary with the spectrum of the illumination and the sensor spectral response. The
illumination spectrum is usually described by "color temperature", which is the surface temperature of a black body
radiating equivalent spectrum. In the real world, the light color temperature ranges from very low (reddish) to very high
(bluish) value. For example, the color temperature of an incandescent lamp is around 2850K, while the color temperature
of an overcast day is around 6500K.
To make sure that a gray image is truly gray, the sensor needs to adjust the gain for each color channel according to the
color temperature. The process is called white balance (WB).
White balanced gain is enabled by default and can be disabled by register 0x5000[7]. The manual white balance (MWB),
controlled by registers 0x5100~0x5105, provides gain for R, G, and B channels. Each channel gain is 12-bit. 0x400 is 1x
gain. Maximum 4x gain is 0xFFF.
C
White balance gain does not have internal latch function. Once it is set, it will take effect immediately.
on SE
default
address register name value R/W description
0x5100 ISP CTRL 0 0x04 RW Bit[3:0]: awb_gain_b[11:8]
en nl
6 register tables
The following tables provide descriptions of the device control registers contained in the OS08A10. For all register
enable/disable bits, ENABLE = 1 and DISABLE = 0. The device slave addresses are 0x6C for write and 0x6D for read
(when SID=1, 0x20 for write and 0x21 for read).
default
C
Bit[2:0]: pll1_prediv
Bit[1:0]: pll1_divmipi
lf
default
address register name value R/W description
Bit[7:2]: Not used
0x0326 PLL_CTRL_26 0x00 RW
Bit[1:0]: pll2_reserve1
The SCCB ID in LSM is 0x7C when SID is 0, and 0x30 when SID is 1.
default
address register name value R/W description
tia y
Bit[3]: merge_en
lf
Bit[2]: Reserved
Bit[1]: sel_abs_diff
0x2000 LSM CTRL00 0x20 RW
0: Using absolute level of current
or
frames
1: Using absolute level
difference between current
and previous frames
Bit[0]: lsm_en
Bit[7]: clk_sel_o
Bit[6:0]: frame_interval
0x2001 LSM CTRL01 0x01 RW
Minimum number of frames
between two LSM interrupt signals
default
address register name value R/W description
0x2006 THRESHOLD1 HIGH 0x00 RW Bit[7:0]: Threshold1[15:8]
Bit[7:0]: lm_small[15:8]
0x200A LM SMALL0 0xFF RW
Small zone light level boundary
Bit[7:0]: lm_small[7:0]
C
Bit[7:0]: lm_large[15:8]
on SE
Bit[7:0]: lm_large[7:0]
0x200D LM LARGE1 0xFF RW
Small zone light level boundary
fid C
1: Active high
Bit[2]: rdy_mask_auto_only
Bit[1]: out_of_range_intr_en
o
Bit[0]: host_clear_frm
lf
Bit[7]: rdy_opt
0x2011 LSM CTRL11 0x02 RW Bit[6:0]: mask_period
or
default
address register name value R/W description
Bit[7:6]: Interrupt calculation mode select
00: Compare light level count of
current frame
01: Compare absolute difference
against previous frame
10: Combine mode0 and mode1
11: Compare change percentage
0x2013 LSM CTRL13 0x00 RW against previous frame
Bit[5:4]: lsm_output_sel
00: Level interrupt (last one frame
(65536 cycles))
C
Bit[7:4]: level_adj_ht
Higher threshold for automatic level
adjustment
0x2017 LSM CTRL17 0xC4 RW
Bit[3:0]: level_adj_lt
en nl
Bit[3:1]: lsm_pulse_length
LSM pulse width = Nx16 clock
cycles
o
als_trigger
default
address register name value R/W description
0x2026 RO LM1 DIFF1 – R Bit[7:0]: lm1_diff[7:0]
default
address register name value R/W description
en nl
Bit[7]: io_vsync_oen
Bit[6]: io_href_oen
o
Bit[1]: io_gpio1_oen
Bit[0]: io_gpio0_oen
or
Bit[7]: io_vsync_o
Bit[6]: io_href_o
Bit[5]: Not used
Bit[4]: io_strobe
0x3005 IO PAD OUT 0x00 RW
Bit[3]: Not used
Bit[2]: io_sda
Bit[1]: io_gpio1_o
Bit[0]: io_gpio0_o
default
address register name value R/W description
Bit[7:2]: Not used
0x3007 IO PAD SEL 0x04 RW Bit[1]: ip_gpio3_sel
Bit[0]: ip_gpio2_sel
Bit[7]: io_vsync_sel
Bit[6]: io_href_sel
Bit[5]: Not used
Bit[4]: io_strobe_sel
0x3008 IO PAD SEL 0x00 RW
Bit[3]: Not used
Bit[2]: io_sda_sel
Bit[1]: io_gpio1_sel
Bit[0]: io_gpio0_sel
C
Bit[6:4]: p_pump_clk_div
0x300D PUMP CLK CTRL 0x13 RW
Bit[3]: Not used
Bit[2:0]: n_pump_clk_div
tia y
Bit[7]: mipi_cphy_dis2
Bit[6]: mipi_cphy_dis1
lf
Bit[7:6]: mipi_decap
Bit[5]: mipi_hsen_skew
0x3010 MIPI PK 0x00 RW Bit[4]: dis_hsen_skew
Bit[3]: mipi_pclk_debug
Bit[2:0]: pgm_vcm
Bit[7:4]: sel_drv
0x3011 MIPI PK 0x04 RW Bit[3:2]: pgm_lptx
Bit[1:0]: r_iref
default
address register name value R/W description
Bit[7:4]: lane_num
0000: 0 lane
0001: 1 lane
0010: 2 lane
0100: 4 lane
0x3012 MIPI SC 0x41 RW Bit[3]: Not used
Bit[2]: r_phy_pd_mipi manual
0: Not used
1: Power down PHY HS TX
Bit[1]: mipi_ck_lp_dir
Bit[0]: phy_pad_en
C
Bit[7:6]: mipi_d4_skew
Bit[5:4]: mipi_d3_skew
0x3013 MIPI SC 0x00 RW
on SE
Bit[3:2]: mipi_d2_skew
Bit[1:0]: mipi_d1_skew
Bit[7]: mipi_lane_dis4
Bit[6]: mipi_lane_dis3
Bit[5]: mipi_lane_dis2
0x3015 MIPI SC 0x00 RW Bit[4]: mipi_lane_dis1
en nl
Bit[3]: mipi_ck_lane_dis
Bit[2]: Not used
Bit[1:0]: mipi_ck0_skew_o
tia y
Bit[7]: sclk_ac
Bit[6]: sclk_stb
Bit[5]: ULPM clock enable
o
Bit[4]: sclk_tc
lf
1: Reset
Bit[0]: rst_tc
Bit[7]: sclk_tpm
Bit[6]: sclk_isp
Bit[5]: sclk_arb
Bit[4]: sclk_vfifo
0x3017 CLKRST1 0xF0 RW
Bit[3]: rst_tpm
Bit[2]: rst_isp
Bit[1]: rst_arb
Bit[0]: rst_vfifo
default
address register name value R/W description
Bit[7]: Not used
Bit[6]: sclk_mipi
Bit[5]: Not used
Bit[4]: sclk_efuse
0x3018 CLKRST2 0xF0 RW
Bit[3]: rst_lvds
Bit[2]: rst_mipi
Bit[1]: rst_hdns
Bit[0]: rst_efuse
Bit[7]: sclk_blc
Bit[6]: sclk_ispfc
Bit[5]: sclk_fmt
C
Bit[4]: sclk_embline
0x3019 CLKRST3 0xF0 RW
Bit[3]: rst_blc
on SE
Bit[2]: rst_ispfc
Bit[1]: rst_fmt
Bit[0]: rst_embline
Bit[7]: sclk_grp
fid C
Bit[6]: padclk_mipi_sc
Bit[5]: pclk_vfifo
Bit[4]: pclk_mipi
0x301A CLKRST4 0xF0 RW
Bit[3]: rst_grp
en nl
Bit[2]: rst_mipi_sc
Bit[1]: Not used
Bit[0]: rst_emline manual
tia y
Bit[7:6]: dac_clk_sel
Bit[5]: sclk_bist20
Bit[4]: sclk_snr_sync
o
Bit[2]: dacclk_en
Bit[1]: rst_bist20
Bit[0]: rst_snr_sync
or
0x301C~
RSVD – – Reserved
0x301D
default
address register name value R/W description
Bit[7]: Not used
Bit[6]: phy_pd_mipi_pwdn_dis
Bit[5]: Not used
Bit[4]: stb_rst_dis
0: Reset all blocks at software
0x3020 LOW PWR CTRL 0x00 RW standby mode
1: TC, sensor_control, ISP are reset,
others not
Bit[3:2]: Not used
Bit[1]: phy_pd_mipi_slppd_dis
Bit[0]: Not used
C
Bit[7]: sclk_psv
Bit[6:5]: Not used
0x3023 CLKRST7 0xF0 RW Bit[4]: sclk_sccb
fid C
Bit[3]: rst_psv
Bit[2:0]: Not used
Bit[7]: sclk_avg
Bit[6]: sclk_ulpm
tia y
Bit[5]: pclk_mipi
Bit[4]: pclk_vfifo
0x3026 CLK GATE MASK 0x00 RW
Bit[3]: pclk_pdfifo
o
Bit[2]: sclk_snr_sync
lf
Bit[1]: sclk_emb
Bit[0]: Not used
or
Bit[7]: sclk_fmt
Bit[6]: sclk_ispfc
Bit[5]: sclk_blc
0x3027 CLK GATE MASK 0x00 RW Bit[4:3]: Not used
Bit[2]: sclk_vfifo
Bit[1]: sclk_isp
Bit[0]: sclk_ulpm_aec
default
address register name value R/W description
Bit[7]: n3_vcnt_set[0]
Bit[6]: discon_elvd_sl
Bit[5]: open_term_en
Bit[4]: pll_mipiclk_debug
Bit[3]: mipi_mode 1
0x3031 MIPI PK 0xA9 RW
0: CPHY
1: DPHY
Bit[2]: n3_dis_term
Bit[1]: n3_testmode_en
Bit[0]: lp_sr
0x3033~
NOT USED – – Not Used
0x3034
Bit[4]: ssc_en
0x3038 SCCB ID CTRL 0x00 RW
Bit[3:1]: Not used
Bit[0]: sccb_id2_no_ack
tia y
Bit[0]: p_href_i
lf
Bit[7]: p_pwdn_i
Bit[6]: p_tm_i
Bit[5]: p_rst_n_i
or
Bit[4]: p_sid_i
0x303F GP IO IN2 – R
Bit[3]: p_gpio3_i
Bit[2]: p_gpio2_i
Bit[1]: p_gpio1_i
Bit[0]: p_gpio0_i
default
address register name value R/W description
Bit[7:4]: Not used
0x3100 SCCB CTRL 0x00 RW Bit[3]: r_sda_dly_en
Bit[2:0]: r_sda_dly
Bit[3]: r_sda_byp_sync
0: Two clock stage sync for sda_i
0x3101 SCCB OPT 0x32 RW 1: No sync for sda_i
on SE
Bit[2]: r_scl_byp_sync
0: Two clock stage sync for scl_i
1: No sync for scl_i
Bit[1]: r_msk_glitch
fid C
Bit[0]: r_msk_stop
Bit[7:4]: r_sda_num
0x3102 SCCB FILTER 0x00 RW
Bit[3:0]: r_scl_num
en nl
Bit[0]: ctrl_pll_rst_o
lf
Bit[3]: pwup_dis2
0x3104 PWUP DIS 0x01 RW
Bit[2]: pwup_dis1
Bit[1]: pll_clk_sel
Bit[0]: pwup_dis0
Bit[7]: sramclk_cutoff_byp
Bit[6]: sa1clk_cutoff_byp
SRB HOST INPUT Bit[5:4]: Not used
0x3106 0x15 RW
DIS Bit[3:2]: sclk_sel
Bit[1]: rst_arb
Bit[0]: bypass_arb
default
address register name value R/W description
Bit[7]: npump_clk_ausw_dis
Bit[6]: npump_clk_sw
Bit[5]: auto_sleep_en
Bit[4]: pd_mipi_dis_aslp
0x3107 SRB_CTRL 0x01 RW
Bit[3]: pumpclk_cutoff_byp
Bit[2]: pclk_cutoff_byp
Bit[1]: sclk_cutoff_byp
Bit[0]: sclk_inv
1: p_clk_i
Bit[0]: Sleep control
on SE
0x321C ~ 0x321F]
en nl
default
address register name value R/W description
tia y
default
address register name value R/W description
Bit[7:4]: group_ctrl
0000: Group hold start
0001: Group hold end
1010: Group launch
1110: Fast group launch
Others: Reserved
0x3208 GROUP ACCESS – W
Bit[3:0]: Group ID
0000: Group bank 0
0001: Group bank 1
0010: Group bank 2
0011: Group bank 3
C
Others: Reserved
Bit[7:6]: Reserved
Bit[5]: Repeat switch mode
0x320D GRP_SWCTRL 0x01 RW Bit[4]: context_en
en nl
Bit[3:2]: Reserved
Bit[1:0]: Switch back group
default
address register name value R/W description
Bit[7:6]: emb_line_blk_ctrl
00: 32 sclk cycles
01: 64 sclk cycles
10: 128 sclk cycles
11: Wait for external trigger
signal
Bit[5]: embline_addr_en
Bit[4]: r_padding_md2
EMB_LINE_ 0: No dummy data mixing
0x3218 0x00 RW
CONTROL with valid data
1: Dummy data output with
C
1: EOF
Bit[2]: embline_eof_en
Bit[1]: embline_sof_en
Bit[0]: embline_tag_en
fid C
default
address register name value R/W description
Bit[7:4]: Not used
Bit[3]: psv_auto_on_dis
0: PSV mode auto enable if
VTS > threshold
1: Disable PSV auto on mode
C
only (depends on
r_psv_mode_en)
0x3400 PSV CTRL 0x00 RW Bit[2]: r_psv_mode_en
on SE
Bit[1:0]: blank_retime_opt
R STREAM ST
0x3406 0x08 RW Bit[7:0]: r_stream_st_offs
OFFS
default
address register name value R/W description
0x340D CTRL0D 0x00 RW Bit[7:0]: psv_auto_on_thresh[7:0]
LONG EXPOSURE
0x3412 0x00 RW Bit[7:0]: long_expo_time[31:24]
CONTROL
LONG EXPOSURE
0x3413 0x00 RW Bit[7:0]: long_expo_time[23:16]
CONTROL
C
LONG EXPOSURE
0x3414 0x00 RW Bit[7:0]: long_expo_time[15:8]
on SE
CONTROL
LONG EXPOSURE
0x3415 0x00 RW Bit[7:0]: long_expo_time[7:0]
CONTROL
fid C
Bit[7:4]: r_ramp_psv_start_offs
en nl
Bit[7]: Bpg2
N-pump2 bypass to AGND
Bit[6]: sreg_lp_npump
o
Bit[5]: a_pd_pump
Pump power down (all pumps)
Bit[4]: a_pd_vref_core
or
default
address register name value R/W description
Bit[7]: sreg_bp_ppump1 (high-z)
P_pump1 power down
Bit[6]: sreg_pwrdn_vrd
VRFD buffer power down
Bit[5]: ulpm_vref
VREF power down
Bit[4]: ulpm_dac
DAC power down
0x3422 R ASP PD 0x00 RW
Bit[3]: ulpm_v2i
V2I power down
Bit[2]: sreg_bpA_pp1
C
Bit[0]: bpg1
N-pump1 bypass to AGND
Bit[7]: d_col_pwrdn_l
fid C
Bit[5]: d_col_pwrdn_r
Right column power down
(vln/rampbuf/dcomp)
0x3423 R ASP PD 0x00 RW Bit[4]: DAC clock divider power down
tia y
through resistor)
N-pump1 power down
Bit[0]: sreg_bp_ppump2 (high-z)
or
default
address register name value R/W description
Bit[7:6]: bpg2
N-pump2 bypass to AGND
00: Register
01: Stream blanking
10: Stream and PCHG blanking
11: Stream to PCHG blanking
Bit[5:4]: sreg_lp_npump
N-pum low power mode
00: Register
01: Stream blanking
10: Stream and PCHG blanking
C
00: Register
01: Stream blanking
10: Stream and PCHG blanking
11: Stream to PCHG blanking
fid C
Bit[1:0]: a_pd_vref_core
VREF core pump down
00: Register
01: Stream blanking
en nl
Bit[7:6]: A_pd_column_r
tia y
00: Register
01: Stream blanking
10: Stream and PCHG blanking
11: Stream to PCHG blanking
0x3426 R ASP PD SEL 0x00 RW
Bit[3:2]: A_pd_XDEC
XDEC power down
00: Register
01: Stream blanking
10: Stream and PCHG blanking
11: Stream to PCHG blanking
Bit[1:0]: d_pd_SRAM
SRAM power down
00: Register
01: Stream blanking
10: Stream and PCHG blanking
11: Stream to PCHG blanking
default
address register name value R/W description
Bit[7:6]: sreg_bp_ppump1 (high-z)
P_pump1 power down
00: Register
01: Stream blanking
10: Stream and PCHG blanking
11: Stream to PCHG blanking
Bit[5:4]: sreg_pwrdn_vrd
VRFD buffer power down
0x3427 R ASP PD SEL 0x00 RW
00: Register
01: Stream blanking
10: Stream and PCHG blanking
C
Bit[1:0]: ULPM_dac
DAC power down
Bit[7:6]: ULPM_v2i
fid C
Bit[7:6]: d_col_pwrdn_l
tia y
Bit[3:2]: d_col_pwrdn_r
Right column power down
(vln/rampbuf/dcomp)
or
default
address register name value R/W description
0x3501 LONG EXPO 0x00 RW Bit[7:0]: Long exposure[15:8]
0: Delay 1 frame
1: Not used
Bit[0]: Exposure change delay option (must be 0)
0: Delay 1 frame
tia y
1: Not used
0x3505 GCVT OPTION 0x80 RW Bit[3:2]: Sensor gain pregain option (debug only,
always set it to 0)
Bit[1:0]: Sensor gain option for transferring real
gain to sensor gain format
default
address register name value R/W description
Bit[7:4]: Not used
Bit[3]: fine_snr_gain_16_en
Back gain enable
Bit[2]: Priority_6
switch_snr_gain_en
0: dac[2:0]_comp[1:0]
0x3507 GAIN SHIFT 0x00 RW
1: comp[1:0]_dac[2:0]
Bit[1:0]: Gain shift option
00: No shift
01: Left shift 1 bit
10: Left shift 2 bit
C
Bit[5:0]: Gain[13:8]
real_gain = Gain[12:0]/128
For example, 0x080 is 1x gain, 0x140 is 2.5x gain.
Maximum gain is 15.5x; 0x7C0.
en nl
00001: 2x
00011: 4x
00111: 8x
o
Gain[7]: 1’b1
lf
0x380 is 4x gain.
SHORT
0x350F 0x00 RW Bit[7:0]: Short digital gain[7:0]
DIGIGAIN
default
address register name value R/W description
0x3511 SHORT EXPO 0x00 RW Bit[7:0]: Short exposure[15:8]
0x3516 SNR_GAIN_S – R
Bit[5:0]: Short sensor gain[13:8]
BLC_DIG_GAIN
0x351B – R Bit[7:0]: Current BLC long digital gain[7:0]
_CUR_L
BLC_DIG_GAIN
0x351D – R Bit[7:0]: Current BLC short digital gain[7:0]
_CUR_S
MWB_DIG_
0x351F – R Bit[7:0]: Current MWB long digital gain[7:0]
CUR_L
default
address register name value R/W description
MWB_DIG_ Bit[7:6]: Not used
0x3520 – R
CUR_S Bit[5:0]: Current MWB long digital gain[13:8]
MWB_DIG_
0x3521 – R Bit[7:0]: Current MWB long digital gain[7:0]
CUR_S
BLC_REAL_
0x3523 – R Bit[7:0]: Current BLC long real gain[7:0]
CUR_L
0x3524 – R
CUR_S Bit[1:0]: Current BLC short real gain[9:8]
on SE
BLC_REAL_
0x3525 – R Bit[7:0]: Current BLC short real gain[7:0]
CUR_S
ISP_REAL_
0x3527 – R Bit[7:0]: Current ISP long real gain[7:0]
CUR_L
0x3528 – R
CUR_S Bit[3:0]: Current ISP short real gain[11:8]
ISP_REAL_
0x3529 – R Bit[7:0]: Current ISP short real gain[7:0]
CUR_S
tia y
default
address register name value R/W description
0x3600~
ANA CTRL – – Analog Control Registers
0x3637
Bit[7]: pseudo_12bit_en
Bit[6]: pseudo_12bit_rnd_option
Bit[5]: mipi_pclk_sel
0: MIPI
C
1: LVDS
Bit[4]: raw12_en
0x3660 CORE 0 0x40 RW
Bit[3]: Not used
on SE
Bit[2]: ramp_bit
0: 10-bit
1: 11-bit
Bit[1]: rip_seof_ispfc_en
fid C
Bit[0]: rip_sof_vfifo_en
Bit[7]: byp_isp
Bit[6]: sof_s_img
For stagger HDR sof_s after
en nl
image_href
Bit[5]: testmode_sel
0: Long exposure
1: Short exposure
tia y
Bit[2]: stg_hdr_short_en
Debug mode
lf
Bit[1]: stg_hdr_long_en
Debug mode
Bit[0]: stg_hdr_align_en
or
Bit[7]: raw_bit_shift_dis
Bit[6]: sram_tm
Bit[5]: Not used
0x3662 CORE 2 0x00 RW
Bit[4]: col_vln_sig_clamp_en_disable
Bit[3]: bit_shift_clip_en
Bit[2:0]: bit_shift_mode
default
address register name value R/W description
Bit[7]: rst_opt
Bit[6]: rst_tpm
Bit[5:4]: Not used
Bit[3]: lvds_vsync_sel
Bit[2]: lvds_ck_data_sel
Bit[1]: split_lvds
0x3663 CORE 3 0x00 RW
Two LVDS to transmit long and
short exposure data
Bit[0]: split_lane
One LVDS, two lanes for long, and
other two lanes for short, new STG
C
HDR
Bit[7]: r_fix_timing_en
on SE
Bit[7]: emb_en
fid C
0x3666~
RSVD – – Reserved
en nl
0x3669
Bit[7:0]: hts_pclk[15:8]
0x366A CORE A 0x00 RW
Fix timing mode
tia y
Bit[7:0]: hts_pclk[7:0]
0x366B CORE B 0x00 RW
Fix timing mode
o
Bit[7:0]: y_output_size[15:8]
lf
Bit[7:0]: y_output_size[7:0]
0x366D CORE D 0x00 RW
or
Bit[7]: rlong_reverse
Bit[6:5]: ln_mask_opt_l
Bit[4:3]: ln_mask_opt_s
0x366E CORE E 0x00 RW
Bit[2]: new_stg_hdr_blc_line_en
Bit[1]: hdr_vsize_out_sel
Bit[0]: hdr_vsize_man_en
default
address register name value R/W description
0x3680~
ANA CTRL – – Analog Control Registers
0x36A5
default
C
0x3700~
SNR CTRL – – Sensor Timing Control Registers
0x37FF
fid C
default
address register name value R/W description
o
Bit[7:0]: x_addr_start[7:0]
0x3801 X ADDR START 0x00 RW
Array horizontal start point
Bit[7:0]: y_addr_start[7:0]
0x3803 Y ADDR START 0x04 RW
Array vertical start point
Bit[7:0]: x_addr_end[7:0]
0x3805 X ADDR END 0x8F RW
Array horizontal end point
default
address register name value R/W description
Bit[7:4]: Not used
0x3806 Y ADDR END 0x04 RW Bit[3:0]: y_addr_end[11:8]
Array vertical end point
Bit[7:0]: y_addr_end[7:0]
0x3807 Y ADDR END 0x43 RW
Array vertical end point
Bit[7:0]: x_output_size[7:0]
0x3809 X OUTPUT SIZE 0x80 RW
C
Bit[7:0]: y_output_size[7:0]
0x380B Y OUTPUT SIZE 0x38 RW
ISP vertical output height
fid C
Bit[7:0]: HTS[15:8]
0x380C HTS 0x02 RW
Total horizontal timing size
en nl
Bit[7:0]: HTS[7:0]
0x380D HTS 0x78 RW
Total horizontal timing size
Bit[7:0]: VTS[15:8]
0x380E VTS 0x04 RW
Total vertical timing size
tia y
Bit[7:0]: VTS[7:0]
0x380F VTS 0xA0 RW
Total vertical timing size
o
lf
Bit[7:0]: isp_x_win[15:8]
0x3810 ISP X WIN 0x00 RW
ISP horizontal windowing offset
or
Bit[7:0]: isp_x_win[7:0]
0x3811 ISP X WIN 0x08 RW
ISP horizontal windowing offset
Bit[7:0]: isp_y_win[7:0]
0x3813 ISP Y WIN 0x04 RW
ISP vertical windowing offset
default
address register name value R/W description
Bit[7:5]: Not used
0x3817 Y_INC_EVEN 0x01 RW
Bit[4:0]: y_even_inc
Bit[7:0]: vsync_start[15:8]
0x3818 VSYNC START 0x00 RW
VSYNC start point
Bit[7:0]: vsync_start[7:0]
0x3819 VSYNC START 0x00 RW
VSYNC start point
Bit[7:0]: vsync_end[15:8]
0x381A VSYNC END 0x00 RW
VSYNC end point
Bit[7:0]: vsync_end[7:0]
C
Bit[7:5]: ablc_adj
Bit[4]: Not used
BLC_NUM_ Bit[3]: tc_sof_sel
0x381C 0x0E RW
OPTION Bit[2]: vref_new_stg_hdr_s_rev
Bit[1]: new_stg_hdr_en
fid C
Bit[0]: vref_img_rev
Bit[7]: Reserved
Bit[6]: r_tc_sof_dly
en nl
Bit[7]: vsub48_blc
Bit[6]: blc_flip
Bit[5:3]: Not used
0x3820 FORMAT1 0x80 RW
o
Bit[2]: Flip
lf
Bit[7:6]: Reserved
Bit[5]: r_fix_cnt_en
0x3822 REG22 0x04 RW
Bit[4]: vts_add_dis
Bit[3:0]: r_grp_adj
Bit[7]: ext_vs_re
Bit[6]: ext_vs_en
0x3823 REG23 0x08 RW Bit[5]: vts_no_latch
Bit[4]: init_man
Bit[3:0]: r_grp_adj
default
address register name value R/W description
Bit[7:0]: cs_rst_fsin[15:8]
0x3824 CS RST FSIN 0x00 RW
CS reset value at vs_ext
Bit[7:0]: cs_rst_fsin[7:0]
0x3825 CS RST FSIN 0x20 RW
CS reset value at vs_ext
Bit[7:0]: r_rst_fsin[15:8]
0x3826 R RST FSIN 0x00 RW
R reset value at vs_ext
Bit[7:0]: r_rst_fsin[7:0]
0x3827 R RST FSIN 0x08 RW
R reset value at vs_ext
Bit[7:4]: vsync_width
0x3832 REG32 0x08 RW
Bit[3:0]: r_init_offset
Bit[7:3]: Reserved
en nl
Bit[2]: r_stg_grphold_nomask
0x3833 REG33 0x05 RW
Bit[1]: r_stg_sleep_nomask
Bit[0]: r_stg_hdr_grp_wr_opt
Bit[7:6]: Reserved
tia y
default
address register name value R/W description
Bit[7]: Debug mode
0x3A01 AEC CTRL01 0x01 RW Bit[6:4]: long_short_ration
Bit[3:0]: min_expo
0x3A04~
RSVD – – Reserved
0x3A0F
default
address register name value R/W description
Bit[7]: Strobe on/off
Bit[6]: Strobe polarity
0: Active high
1: Active low
Bit[5:4]: width_in_xenon
Bit[3]: Not used
0x3B00 RSTRB 0x00 RW
Bit[2:0]: Strobe mode
C
000: Xenon
001: LED1
010: LED2
on SE
011: LED3
100: LED4
default
address register name value R/W description
Bit[7]: OTP_wr_busy (read only)
OTP_PROGRAM_
0x3D80 – RW Bit[6:1]: Not used
CTRL
Bit[0]: OTP_program_enable (write only)
1: Disable
Bit[6]: Mode select
0x3D84 OTP_MODE_CTRL 0x00 RW
0: Auto mode
1: Manual mode
tia y
Bit[5:1]: Reserved
Bit[0]: bank_sram_switch
o
Bit[7]: Reserved
lf
Bit[6]: r_otp_bist_comp_val
Bit[5]: otp_bist_select
0: Compare with SRAM
or
Bit[7:6]: Reserved
SRAM_TEST_ Bit[5]: r_test
0x3D86 0x00 RW
SIGNALS Bit[4]: r_rme
Bit[3:0]: r_rm
OTP_START_
0x3D88 0x00 RW OTP Start High Address for Manual Mode
ADDRESS
default
address register name value R/W description
OTP_START_
0x3D89 0x00 RW OTP Start Low Address for Manual Mode
ADDRESS
0x3D8A OTP_EN_ADDRESS 0x00 RW OTP End High Address for Manual Mode
0x3D8B OTP_END_ADDRESS 0x00 RW OTP End Low Address for Manual Mode
OTP_SETTING_STT_
0x3D8C 0x00 RW OTP Start High Address for Load Setting
ADDRESS
OTP_SETTING_STT_
0x3D8D 0x00 RW OTP Start Low Address for Load Setting
ADDRESS
C
Bit[7:4]: t_pgenb_end
0x3D92 PGENB_TIMING 0xE2 RW
Bit[3:0]: t_pgenb_start
Bit[7:4]: t_vddq_end
0x3D93 VDDQ_TIMING 0x46 RW
en nl
Bit[3:0]: t_vddq_start
default
address register name value R/W description
Bit[7]: sread_st_opt 1
Manual mode 2
at asp_start
Bit[6]: sread_d1r
Bit[5]: sread_img_d1r
0x3F00 PSRAM REG0 0x04 RW
Bit[4]: srclk_inv
Bit[3]: Not used
Bit[2]: srclk_div2 enable
Bit[1:0]: PSRAM address increase
number
default
address register name value R/W description
0x3F01 PSRAM REG1 0x00 RW Bit[7:0]: sread_man_st_pt[15:8]
Bit[7:0]: sram_readpoint[15:8]
0x3F0E SRAM READPOINT – R
SRAM readout point at CS
Bit[7:0]: sram_readpoint[7:0]
0x3F0F SRAM READPOINT – R
SRAM readout point at CS
C
default
address register name value R/W description
Bit[7]: offset_trigger_en
en nl
Bit[6]: exp_trig_en
Bit[5]: gain_trig_en
Bit[4]: fmt_trig_en
0x4000 BLC CTRL00 0xF8 RW
Bit[3]: rst_trig_en
tia y
Bit[2]: man_trig_en
Bit[1]: blc_freeze
o
Bit[0]: blc_always_update
lf
Bit[7]: zero_In_out_en
Bit[6]: blc_In_out_en
Bit[5]: blc_dithering_en
or
Bit[4]: man_offset_en
0x4001 BLC CTRL01 0x2B RW
Bit[3]: median_filter_en
Bit[2]: v15_one_chnl_en
Bit[1]: dc_blc_en
Bit[0]: blc_en
0x4002~
RSVD – – Reserved
0x4003
default
address register name value R/W description
0x4008 BLC CTRL08 0x00 RW Bit[7:0]: bl_start
Bit[7]: r_threshold_en
Bit[6]: r_set_zb
Bit[5:4]: output_bits
00: 10 bits
fid C
01: 11 bits
0x400F BLC CTRL0F 0xA0 RW
10: 12 bits
Bit[3]: Not used
Bit[2]: r_en_adp_k
en nl
Bit[1]: r_dc_offset_mode
Bit[0]: r_compute_offset_v15
Bit[7]: r_img_gfirst_rvs
Bit[6]: r_blk_rblue_rvs
tia y
Bit[5]: r_img_rblue_rvs
Bit[4]: r_dc_man
0x4010 BLC CTRL10 0x12 RW
o
Bit[3]: target_adj_dis
Bit[2]: cmp_en
lf
Bit[1]: kcoef_man_en
Bit[0]: man_avg_en
or
Bit[7]: r_off_cmp_man_en
Bit[6]: off_chg_mf_en
Bit[5]: fmt_chg_mf_en
Bit[4]: gain_chg_mf_en
0x4011 BLC CTRL11 0xFF RW
Bit[3]: rst_mf_mode
Bit[2]: off_chg_mf_mode
Bit[1]: fmt_chg_mf_mode
Bit[0]: gain_chg_mf_mode
default
address register name value R/W description
Bit[7:2]: Not used
0x4016 OFF TRIG TH 0x00 RW Bit[1:0]: off_trig_th[9:8]
off_trig_th high 2 bits
Bit[7:0]: off_trig_th[7:0]
0x4017 OFF TRIG TH 0x04 RW
off_trig_th low 8 bits
Bit[7]: r_h_size_man_en
Bit[6]: r_kcoef_mirror
C
Bit[5]: r_adp_dc_switch_en
Bit[4]: gain_trig_beh
0x401A BLC CTRL1A 0x48 RW
on SE
Bit[3]: format_trig_beh
Bit[2]: r_ln_man
Bit[1:0]: byp_mode
CZ V1.54 change start
fid C
0x401B~
RSVD – – Reserved
0x401F
default
address register name value R/W description
0x402D R THRES MAN 0x00 RW Bit[7:0]: r_thres_man[7:0]
0x402E~
NOT USED – – Not Used
0x402F
default
address register name value R/W description
0x4055 KCOEF GB MAN 0x00 RW Bit[7:0]: kcoef_gb_man[7:0]
Bit[7:0]: rnd_gain_th[7:0]
0x405E RND GAIN TH 0x00 RW
rnd_gain_th low 8 bits
en nl
Bit[7:0]: zero_ln_num[7:0]
0x4066 ZERO LN NUM 0x02 RW
Zero line number low 8 bits
Bit[7:0]: r_col_low_gain[7:0]
0x4069 R COL LOW GAIN 0x20 RW
r_col_low_gain low 8 bits
default
address register name value R/W description
Bit[7:2]: Not used
0x406A R COL HIGH GAIN 0x00 RW Bit[1:0]: r_col_high_gain[9:8]
r_col_high_gain high 2 bits
Bit[7:0]: r_col_high_gain[7:0]
0x406B R COL HIGH GAIN 0x40 RW
r_col_high_gain low 8 bits
Bit[4:0]: r_h_size_man[12:8]
Bit[0]: blc_offset0001[24]
default
address register name value R/W description
0x4081 BLC OFFSET0100 – R Bit[7:0]: blc_offset0100[23:16]
Bit[0]: blc_offset0111[24]
default
address register name value R/W description
Bit[7:3]: Not used
0x409A CMP 0101 – R
Bit[2:0]: cmp_0101[10:8]
default
address register name value R/W description
0x4500 CTRL 0x16 RW Bit[7:0]: FIFO read delay
Bit[7]: rblue_disable
Bit[6:2]: Not used
0x4502 R2 0x00 RW
Bit[1]: Digital mono_hbin
fid C
Bit[0]: rblue_reversed
default
address register name value R/W description
R VFIFO READ Bit[7:0]: r_vfifo_read_start[15:8]
0x4600 0x01 RW
START read_start size high byte
Bit[7:4]: r_rm
Bit[3]: r_test1
0x4602 R2 0x02 RW Bit[2]: bist_clk_sw
Bit[1]: Frame reset enable
Bit[0]: RAM bypass enable
default
address register name value R/W description
Bit[7:4]: Not used
Bit[3]: r_sram_hfq_mode 1
Use SRAM readout data after 2
0x4604 VFIFO MIRR CTRL 0x00 RW clock cycles
Bit[2]: r_fo_mirr_4x_fix_dis
Bit[1]: mirror_fi_swap_dis
Bit[0]: vfifo_mirror_dis
default
address register name value R/W description
o
lf
lane
Bit[4]: lvds_pclk_inv
Bit[3]: Channel ID enable in sync per lane
0x4700 LVDS R0 0x2A RW
mode
Bit[2]: CCIR parameter
Bit[1]: Sav first enable
Bit[0]: Sync code mode
0: Split
1: Per lane
default
address register name value R/W description
LVDS DUMMY Bit[7:0]: lvds_dummy_data1[7:0]
0x4705 0x10 RW
DATA1 Dummy data1
Bit[7:0]: lvds_r6
0x4706 LVDS R6 0xAA RW frame_start sync code in manual sync
code mode
Bit[7:0]: lvds_r7
0x4707 LVDS R7 0x55 RW frame_end sync code in manual sync
code mode
Bit[7:0]: lvds_r8
C
Bit[7:0]: lvds_r9
0x4709 LVDS R9 0x66 RW line_end sync code in manual sync code
mode
Bit[2]: r_hts_man_en
0x470A LVDS RA 0x08 RW
Bit[1]: r_ln2_sel
Bit[0]: r_chk_pcnt
en nl
Bit[7]: sleep_en
LVDS SLEEP
0x470B 0x88 RW Bit[4]: frame_rst_en
CTRL
Bit[3:0]: ln_end_dly
tia y
Bit[7:0]: lvds_blk_times[7:0]
0x470D LVDS BLK TIMES 0x02 RW
Low byte of r_blk_times
Bit[7:0]: lvds_hts_man[15:8]
or
Bit[7:0]: lvds_hts_man[7:0]
0x470F LVDS HTS MAN 0x00 RW
hts_man low byte
Bit[7:4]: man_id_lane1
0x4710 LVDS CHID01 0x00 RW
Bit[3:0]: man_id_lane0
Bit[7:4]: man_id_lane3
0x4711 LVDS CHID23 0x00 RW
Bit[3:0]: man_id_lane2
Bit[7:4]: man_id_lane5
0x4712 LVDS CHID45 0x00 RW
Bit[3:0]: man_id_lane4
Bit[7:4]: man_id_lane7
0x4713 LVDS CHID67 0x00 RW
Bit[3:0]: man_id_lane6
default
address register name value R/W description
Bit[7:6]: Not used
Bit[5]: gate_sc_en
0: Clock lane is free running
1: Gate clock lane when there is no
packet to transmit
0x4800 MIPI CTRL00 0x04 RW
Bit[4]: line_sync_en
0: Do not send line short packet for each
C
line
1: Send line short packet for each line
on SE
default
address register name value R/W description
Bit[7]: hs_prepare_sel
0: Auto calculate T_hs_prepare, unit
pclk2x
1: Use hs_prepare_min_o[7:0]
Bit[6]: clk_prepare_sel
0: Auto calculate T_clk_prepare, unit
pclk2x
1: Use clk_prepare_min_o[7:0]
Bit[5]: clk_post_sel
0: Auto calculate T_clk_post, unit pclk2x
1: Use clk_post_min_o[7:0]
C
Bit[4]: clk_trail_sel
0: Auto calculate T_clk_trail, unit pclk2x
0x4802 MIPI CTRL02 0x00 RW
1: Use clk_trail_min_o[7:0]
on SE
Bit[3]: hs_exit_sel
0: Auto calculate T_hs_exit, unit pclk2x
1: Use hs_exit_min_o[7:0]
Bit[2]: hs_zero_sel
fid C
1: Use hs_trail_min_o[7:0]
Bit[0]: clk_zero_sel
0: Auto calculate T_clk_zero, unit pclk2x
1: Use clk_zero_min_o[7:0]
tia y
Bit[2]: r_manu_half2one
t_period half to 1 SMIA
Bit[1:0]: Not used
or
Bit[7:4]: man_lane_num
Bit[3]: lane_num_manual_enable
Bit[2]: lane4_6b_en
0x4804 MIPI CTRL04 0x44 RW
0: Not used
1: Supports 4, 7, and 8-lane 6-bit
Bit[1:0]: Not used
default
address register name value R/W description
Bit[7:5]: Not used
Bit[4]: pu_mark_en_o
Power up mark1 enable
Bit[3]: mipi_remot_rst
0x4806 MIPI CTRL06 0x00 RW Bit[2]: mipi_susp
Bit[1]: smia_lane_ch_en
Bit[0]: tx_lsb_first
0: High bit first
1: Low power TX low bit first
ul_tx t_lpx
on SE
Bit[7:0]: wkup_dly
0x4808 MIPI CTRL08 0x18 RW
Mark1 wakeup delay/2^10
Bit[7:0]: fcnt_max[15:8]
0x4810 FCNT MAX 0xFF RW High byte of max frame counter of frame
en nl
Bit[7:0]: fcnt_max[7:0]
0x4811 FCNT MAX 0xFF RW Low byte of max frame counter of frame
sync short packet
tia y
0x4815~
RSVD – – Reserved
0x4816
default
address register name value R/W description
Bit[7:2]: Not used
Bit[1]: yuv420_2x
YUV420 2x in odd line, lcnt[0]=1
0x4817 YUV420 FUN 0x04 RW 0: Not used
1: Use emb_dt as data in first
emb_line_nu
Bit[0]: yuv420_en
Bit[7:0]: hs_zero_min[7:0]
on SE
Bit[1:0]: hs_trail_min[9:8]
0x481A HS TRAIL MIN 0x00 RW
High byte of minimum value of hs_trail,
unit ns
en nl
Bit[7:0]: hs_trail_min[7:0]
Low byte of minimum value of hs_trail
0x481B HS TRAIL MIN 0x3C RW
hs_trail_real = hs_trail_min_o +
Tui*ui_hs_trail_min_o
tia y
unit ns
lf
Bit[7:0]: clk_zero_min[7:0]
Low byte of minimum value of clk_zero
or
Bit[7:0]: clk_prepare_min[7:0]
CLK PREPARE Minimum value of clk_prepare
0x481F 0x26 RW
MIN clk_prepare_real = clk_prepare_min_o +
Tui*ui_clk_prepare_min_o
default
address register name value R/W description
Bit[7:0]: clk_post_min[7:0]
Low byte of minimum value of clk_post
0x4821 CLK POST MIN 0x3C RW
clk_post_real = clk_post_min_o +
Tui*ui_clk_post_min_o
Bit[7:0]: clk_trail_min[7:0]
CLK TRAIL Low byte of minimum value of clk_trail
0x4823
C
0x3C RW
MIN clk_trail_real = clk_trail_min_o +
Tui*ui_clk_trail_min_o
on SE
Bit[7:0]: lpx_p_min[7:0]
Low byte of minimum value of lpx_p
0x4825 LPX P MIN 0x32 RW
lpx_p_real = lpx_p_min_o +
en nl
Tui*ui_lpx_p_min_o
Bit[7:0]: hs_prepare_max[7:0]
HS PREPARE Maximum value of hs_prepare
0x4827 0x55 RW
MAX hs_prepare_real = hs_prepare_max_o +
o
Tui*ui_hs_prepare_max_o
lf
Bit[7:0]: hs_exit_min[7:0]
Low byte of minimum value of hs_exit
0x4829 HS EXIT MIN 0x64 RW
hs_exit_real = hs_exit_min_o +
Tui*ui_hs_exit_min_o
default
address register name value R/W description
Bit[7:6]: Not used
UI CLK ZERO
0x482C 0x00 RW Bit[5:0]: ui_clk_zero_min[5:0]
MIN
Minimum UI value of clk_zero, unit UI
Bit[7:4]: ui_clk_prepare_max
UI CLK Maximum UI value of clk_prepare
0x482D 0x00 RW
PREPARE Bit[3:0]: ui_clk_prepare_min
Minimum UI value of clk_prepare, unit UI
MIN
Minimum UI value of clk_trail, unit UI
Bit[7:4]: ui_hs_prepare_max
UI HS Maximum UI value of hs_prepare
en nl
0x4831 0x64 RW
PREPARE Bit[3:0]: ui_hs_prepare_min
Minimum UI value of hs_prepare, unit UI
UI HS EXIT
0x4832 0x00 RW Bit[5:0]: ui_hs_exit_min[5:0]
MIN
Minimum UI value of hs_exit, unit UI
o
MIPI PKT
0x4833 0x18 RW Bit[7:0]: mipi_pkt_star_size
lf
STAR SIZE
0x4834~
RSVD – – Reserved
0x4835
or
Bit[7:0]: pclk_period[7:0]
0x4837 PCLK PERIOD 0x08 RW Period of pclk2x, pclk_div=1, and 1-bit
decimal
default
address register name value R/W description
Bit[7]: lp_sel0
0: Auto generate mipi_lp_dir0_o
1: Use lp_dir_man0 to be mipi_lp_dir0_o
Bit[6]: lp_dir_man0
0: Input
1: Output
Bit[5]: lp_p0_o
Bit[4]: lp_n0_o
0x4838 MIPI LP GPIO0 0x00 RW
Bit[3]: lp_sel1
0: Auto generate mipi_lp_dir1_o
1: Use lp_dir_man1 to be mipi_lp_dir1_o
C
Bit[2]: lp_dir_man1
0: Input
1: Output
on SE
Bit[1]: lp_p1_o
Bit[0]: lp_n1_o
Bit[7]: lp_sel2
fid C
1: Output
Bit[5]: lp_p2_o
Bit[4]: lp_n2_o
0x4839 MIPI LP GPIO1 0x00 RW
Bit[3]: lp_sel3
tia y
0: Input
lf
1: Output
Bit[1]: lp_p3_o
Bit[0]: lp_n3_o
or
Bit[7]: lp_sel4
0: Auto generate mipi_lp_dir4_o
1: Use lp_dir_man4 to be mipi_lp_dir4_o
Bit[6]: lp_dir_man4
0: Input
1: Output
Bit[5]: lp_p4_o
Bit[4]: lp_n4_o
0x483A MIPI LP GPIO2 0x00 RW
Bit[3]: lp_sel5
0: Auto generate mipi_lp_dir5_o
1: Use lp_dir_man5 to be mipi_lp_dir5_o
Bit[2]: lp_dir_man5
0: Input
1: Output
Bit[1]: lp_p5_o[0] lp_n5_o
Bit[0]: Not used
default
address register name value R/W description
Bit[7]: lp_sel6
0: Auto generate mipi_lp_dir6_o
1: Use lp_dir_man6 to be mipi_lp_dir6_o
Bit[6]: lp_dir_man6
0: Input
1: Output
Bit[5]: lp_p6_o
Bit[4]: lp_n6_o
0x483B MIPI LP GPIO3 0x00 RW
Bit[3]: lp_sel7
0: Auto generate mipi_lp_dir7_o
1: Use lp_dir_man7 to be mipi_lp_dir7_o
C
Bit[2]: lp_dir_man7
0: Input
1: Output
on SE
Bit[1]: lp_p7_o
Bit[0]: lp_n7_o
Bit[7]: lp_ck_sel0
0: Auto generate mipi_ck_lp_dir0_o
en nl
1: Use lp_ck_dir_man0 to be
mipi_ck_lp_dir0_o
Bit[6]: lp_ck_dir_man0
0: Input
tia y
1: Output
Bit[5]: lp_ck_p0_o
Bit[4]: lp_ck_n0_o
o
Bit[2]: lp_ck_dir_man1
0: Input
1: Output
Bit[1]: lp_ck_p1_o
Bit[0]: lp_ck_n1_o
default
address register name value R/W description
Bit[7:3]: Not used
Bit[2]: line_st_sel_o
0: Line starts after HREF
1: Line starts after fifo_st
Bit[1]: clk_start_sel_o
0x484B SMIA OPTION 0x01 RW
0: Clock starts after SOF
1: Clock starts after reset
Bit[0]: sof_sel_o
0: Frame starts after HREF starts
1: Frame starts after SOF
TEST
Bit[7:0]: test_patten_data[7:0]
0x484D PATTERN 0xB6 RW
Data lane test pattern register
DATA
en nl
Bit[7:0]: r_fe_dly_o
0x484E FE DLY 0x10 RW
Last packet to frame end delay/2
tia y
TEST
0x484F PATTERN CK 0x55 RW Bit[7:0]: clk_test_patten_reg
DATA
o
Bit[7:2]: r_de_skew_dly
lf
R SKEW
0x4851 0x01 RW Bit[7:0]: r_skew_commond
COMMOND
R DE SKEW
0x4852 0x27 RW Bit[7:0]: r_de_skew_dly
DLY
R SKEW CNT
0x4854 0x1E RW Bit[7:0]: r_skew_cnt_start0
START0
R SKEW CNT
0x4855 0x90 RW Bit[7:0]: r_skew_cnt_start1_l
START1 L
default
address register name value R/W description
Bit[7:5]: Not used
Bit[4]: r_skew_cnt_start1_h
0x4856 R MODE 0x5C RW Bit[3]: r_trail_same_start
Bit[2]: r_mode12_tradat
Bit[1:0]: r_mode
R MODE12
0x4857 0x55 RW Bit[7:0]: r_mode12_hsdat
HSDAT
R MODE2
0x4858 0xFF RW Bit[7:0]: r_mode2_syncdat1
SYNCDAT1
C
R MODE2
0x4859 0xFF RW Bit[7:0]: r_mode2_syncdat2
SYNCDAT2
on SE
R MODE3
0x485A 0xFF RW Bit[7:0]: r_mode3_preadat1
PREADAT1
R MODE3
0x485B 0x3F RW Bit[7:0]: r_mode3_preadat2
PREADAT2
fid C
R MODE3
0x485C 0x2A RW Bit[7:0]: r_mode3_preadat_sel
PREADAT SEL
en nl
R MODE3
lf
R MODE3
or
R MODE3
0x4863 0x84 RW Bit[7:0]: r_mode3_syncdat1
SYNCDAT1
R MODE3
0x4864 0x36 RW Bit[7:0]: r_mode3_syncdat2
SYNCDAT2
R MODE3
0x4865 0x2A RW Bit[7:0]: r_mode3_syncdat_sel
SYNCDAT SEL
default
address register name value R/W description
Bit[7:5]: Not used
Bit[4]: Mode3 PH order select
Bit[3]: eot_same
0x4869 MODE3 CTR 0x18 RW
Bit[2]: crc_mode3_sel
Bit[1]: mode3_tradat
Bit[0]: mode3_trail_man
R MODE3 PH
0x486A 0xAA RW Bit[7:0]: r_mode3_ph_sel
SEL
R MODE3
0x486B 0x00 RW Bit[7:0]: r_mode3_reserdat
RESERDAT
C
R MODE3 ESC
0x486C 0x84 RW Bit[7:0]: r_mode3_esc_dat1
DAT1
on SE
R MODE3 ESC
0x486D 0x36 RW Bit[7:0]: r_mode3_esc_dat2
DAT2
R MODE12
0x486F 0x55 RW Bit[7:0]: r_mode12_clk_data
CLK DATA
tia y
Bit[2:0]: r_lane0_swap
lf
Bit[7]: r_slp_change_en
Bit[6]: r_pkt_slp_en
0x4872 MIPI CTRL72 0x2C RW
Bit[5:3]: r_lane5_swap
Bit[2:0]: r_lane4_swap
R MODE2
0x4874 0xFF RW Bit[7:0]: r_mode2_syncdat3
SYNCDAT3
R LANE1
0x4875 0xF0 RW Bit[7:0]: r_lane1_start
START
R CPHY
0x4876 0x08 RW Bit[7:0]: r_cphy_manual
MANUAL
default
address register name value R/W description
R DUMMY
0x4877 0x00 RW Bit[7:0]: r_dummy_data15
DATA15
R DUMMY
0x4878 0x00 RW Bit[7:0]: r_dummy_data14
DATA14
R DUMMY
0x4879 0xE7 RW Bit[7:0]: r_dummy_data13
DATA13
R DUMMY
0x487A 0x24 RW Bit[7:0]: r_dummy_data12
DATA12
R DUMMY
C
R DUMMY
0x487C 0x00 RW Bit[7:0]: r_dummy_data10
DATA10
R DUMMY
0x487D 0x34 RW Bit[7:0]: r_dummy_data9
DATA9
fid C
R DUMMY
0x487E 0x00 RW Bit[7:0]: r_dummy_data8
DATA8
R DUMMY
en nl
R DUMMY
0x4880 0x36 RW Bit[7:0]: r_dummy_data6
DATA6
tia y
R DUMMY
0x4881 0x00 RW Bit[7:0]: r_dummy_data5
DATA5
o
lf
R DUMMY
0x4882 0x00 RW Bit[7:0]: r_dummy_data4
DATA4
R DUMMY
or
R DUMMY
0x4884 0x24 RW Bit[7:0]: r_dummy_data2
DATA2
R DUMMY
0x4885 0x01 RW Bit[7:0]: r_dummy_data1
DATA1
R DUMMY
0x4886 0x00 RW Bit[7:0]: r_dummy_data0
DATA0
R MODE3
0x4887 0x00 RW Bit[7:0]: r_mode3_progdat5
PROGDAT5
R MODE3
0x4888 0x00 RW Bit[7:0]: r_mode3_progdat6
PROGDAT6
R MODE3
0x4889 0x55 RW Bit[7:0]: r_mode3_progdat7
PROGDAT7
default
address register name value R/W description
R MODE3
0x488A 0x15 RW Bit[7:0]: r_mode3_progdat8
PROGDAT8
R MODE3
0x488B 0xAA RW Bit[7:0]: r_mode3_progdat9
PROGDAT9
R MODE3
0x488C 0x2A RW Bit[7:0]: r_mode3_progdat10
PROGDAT10
R MODE3
0x488D 0xFF RW Bit[7:0]: r_mode3_progdat11
PROGDAT11
R MODE3
C
R MODE3
0x488F 0x00 RW Bit[7:0]: r_mode3_progdat13
PROGDAT13
R MODE3
0x4890 0x00 RW Bit[7:0]: r_mode3_progdat14
PROGDAT14
fid C
R MODE3
0x4891 0x55 RW Bit[7:0]: r_mode3_progdat15
PROGDAT15
R MODE3
en nl
R MODE3
0x4893 0xAA RW Bit[7:0]: r_mode3_progdat17
PROGDAT17
tia y
R MODE3
0x4894 0x2A RW Bit[7:0]: r_mode3_progdat18
PROGDAT18
o
lf
R MODE3
0x4895 0xFF RW Bit[7:0]: r_mode3_progdat19
PROGDAT19
R MODE3
or
R MODE3
0x4897 0x00 RW Bit[7:0]: r_mode3_progdat21
PROGDAT21
R MODE3
0x4898 0x00 RW Bit[7:0]: r_mode3_progdat22
PROGDAT22
R MODE3
0x4899 0x55 RW Bit[7:0]: r_mode3_progdat23
PROGDAT23
R MODE3
0x489A 0x15 RW Bit[7:0]: r_mode3_progdat24
PROGDAT24
R MODE3
0x489B 0xAA RW Bit[7:0]: r_mode3_progdat25
PROGDAT25
R MODE3
0x489C 0x2A RW Bit[7:0]: r_mode3_progdat26
PROGDAT26
default
address register name value R/W description
R MODE3
0x489D 0xFF RW Bit[7:0]: r_mode3_progdat27
PROGDAT27
R MODE3
0x489E 0x3F RW Bit[7:0]: r_mode3_progdat28
PROGDAT28
R MODE2
0x489F 0xFF RW Bit[7:0]: r_mode2_syncdat4
SYNCDAT4
R MODE2
0x48A0 0xFF RW Bit[7:0]: r_mode2_syncdat5
SYNCDAT5
R MODE2
C
default
address register name value R/W description
Bit[7:4]: Reserved
Bit[3]: sof_after_line0
tia y
Bit[0]: fcnt_reset
lf
Bit[7:4]: Reserved
0x4901 FC REG1 0x00 RW
Bit[3:0]: frame_on_number
or
Bit[7:4]: Reserved
0x4902 FC REG2 0x00 RW
Bit[3:0]: frame_off_number
Bit[7]: zero_line_mask_dis
Bit[6]: rblue_mask_dis
Bit[5]: data_mask_dis
Bit[4]: valid_mask_dis
0x4903 FC REG3 0x80 RW
Bit[3]: href_mask_dis
Bit[2]: eof_mask_dis
Bit[1]: sof_mask_dis
Bit[0]: all_mask_dis
default
address register name value R/W description
Bit[7]: Debug mode (always set to 1'b0)
Bit[6]: Use average method to do ULPM
1: Average mode
Bit[5]: r_opt
Bit[3]: r_ratio_man_en
0x4A00 ULPM CTRL00 0xA4 RW
Bit[1]: r_pol_inv_en
Bit[0]: r_abs_en
C
Bit[7:4]: Reserved
Bit[3]: gpio_auto_clear_en
0x4A01 ULPM CTRL01 0x0A RW Bit[2]: gpio_host_clear_en
fid C
Bit[1]: reg_auto_clear_en
Bit[0]: reg_host_clear_en
0x4A02~
RSVD – – Reserved
0x4A03
en nl
Bit[7:3]: Reserved
0x4A04 ULPM CTRL04 0x00 RW
Bit[2:0]: r_diff_ratio0
tia y
Bit[7:4]: r_diff_ratio1
0x4A05 ULPM CTRL05 0x00 RW
Bit[3:0]: r_diff_ratio2
o
Bit[7:4]: Reserved
0x4A06 ULPM CTRL06 0x04 RW
lf
Bit[7:6]: Reserved
0x4A07 ULPM CTRL07 0x10 RW
Bit[5:0]: r_no_intr_threshold
or
0x4A0E~
RSVD – – Reserved
0x4A0F
default
address register name value R/W description
Bit[7:2]: Reserved
Bit[1]: Host register clear
This bit is always kept high until it is
written to 0. After writing to zero
0x4A10 ULPM CTRL10 – W operation is finished, this bit will return
to high state.
0: reg_host_clear
Bit[0]: Host GPIO clear
0: gpio_host_clear
Bit[7:2]: Reserved
0x4A24 ULPM CTRL24 – R
Bit[1:0]: avg_y[9:8]
en nl
Bit[7:2]: Reserved
0x4A26 ULPM CTRL26 – R
Bit[1:0]: avg_r[9:8]
tia y
Bit[7:2]: Reserved
o
Bit[7:2]: Reserved
0x4A2A ULPM CTRL2A – R
Bit[1:0]: avg_b[9:8]
default
address register name value R/W description
Bit[7:1]: Not used
Bit[0]: x_start_avg[8]
0x4B00 AVG CTRL00 0x00 RW
AVG sub-window horizontal start
position
Bit[7:0]: x_start_avg[7:0]
0x4B01 AVG CTRL01 0x00 RW AVG sub-window horizontal start
C
position
Bit[7:0]: y_start_avg[7:0]
0x4B03 AVG CTRL03 0x00 RW
on SE
Bit[7:0]: window_width_avg[7:0]
0x4B05 AVG CTRL05 0x40 RW
Sub-window width
en nl
Bit[7:0]: window_height_avg[7:0]
0x4B07 AVG CTRL07 0xF0 RW
Sub-window height
Bit[7:4]: Weight01
Weight of zone01
tia y
Bit[7:4]: Weight03
lf
Weight of zone03
0x4B09 AVG CTRL09 0x11 RW
Bit[3:0]: Weight02
Weight of zone02
or
Bit[7:4]: Weight5
Weight of zone5
0x4B0A AVG CTRL0A 0x11 RW
Bit[3:0]: Weight4
Weight of zone4
Bit[7:4]: Weight7
Weight of zone7
0x4B0B AVG CTRL0B 0x11 RW
Bit[3:0]: Weight6
Weight of zone6
Bit[7:4]: Weight9
Weight of zone 9
0x4B0C AVG CTRL0C 0x11 RW
Bit[3:0]: Weight8
Weight of zone8
default
address register name value R/W description
Bit[7:4]: Weight11
Weight of zone11
0x4B0D AVG CTRL0D 0x11 RW
Bit[3:0]: Weight10
Weight of zone10
Bit[7:4]: Weight13
Weight of zone13
0x4B0E AVG CTRL0E 0x11 RW
Bit[3:0]: Weight12
Weight of zone12
Bit[7:4]: Weight15
Weight of zone15
0x4B0F AVG CTRL0F
C
0x11 RW
Bit[3:0]: Weight14
Weight of zone14
on SE
Bit[0]: avg_man_en
Bit[7:0]: weight-sum
0x4B11 AVG RO11 – R
Sum of weight
en nl
Bit[7:1]: Reserved
0x4B12 AVG RO12 – R Bit[0]: Average calculated indicating signal for
SCCB read
tia y
default
address register name value R/W description
0x4D00~ TPM_CTRL_
– – Temperature Sensor Control Registers
0x4D0F REG
default
address register name value R/W description
0x4D10 TPM_CTRL_10 0x00 RW Bit[7:0]: r_tpm_min
default
address register name value R/W description
Bit[7]: awb_en
en nl
Bit[1]: dpc_en
Bit[0]: Not used
or
Bit[7]: man_flip
Bit[6]: man_mirror
Bit[5]: man_hdr_ptn
Bit[4]: man_work_mode
0x5003 ISP CTRL 3 0x00 RW
Bit[3]: man_flip_en
Bit[2]: man_mirror_en
Bit[1]: man_hdr_ptn_en
Bit[0]: man_work_mode_en
default
address register name value R/W description
Bit[7]: sof_sel
Bit[6]: eof_sel
Bit[5:4]: man_cfa_ptn
0x5004 ISP CTRL 4 0x00 RW Bit[3]: man_expo_en
Bit[2]: man_real_gain_en
Bit[1]: man_blc_en
Bit[0]: man_cfa_ptn_en
Bit[7]: raw10_out_sel
Bit[6]: man_raw10_en_out_sel
Bit[5]: man_raw10_en
Bit[4]: pd_chk_l_man_en
C
Bit[1]: man_size_en
Bit[0]: man_pipe_en
Bit[3:0]: man_real_gain_1[11:8]
default
address register name value R/W description
0x5015 ISP CTRL 15 0xE0 RW Bit[7:0]: man_vsize[7:0]
Bit[3:0]: man_gain_1[11:8]
Bit[7]: dis_ck_gt_win
lf
Bit[6]: dis_ck_gt_dns
Bit[5]: dis_ck_gt_dpc
Bit[4]: dis_ck_gt_pd_byp
0x5022 ISP CTRL 22 0x00 RW
or
Bit[3]: dis_ck_gt_otp
Bit[2]: dis_ck_gt_awbg
Bit[1]: dis_ck_gt_lenc
Bit[0]: dis_ck_gt_top
default
address register name value R/W description
Bit[7]: test_en
Bit[6]: rolling
Bit[5]: trans
0x5081 ISP CTRL 1 0x04 RW
Bit[4]: squ_bw
Bit[3:2]: bar_style
Bit[1:0]: test_sel
C
Bit[4]: rnd_same
Bit[3:0]: rnd_seed
Bit[6]: end_man
Bit[5]: mirror_opt
Bit[4]: flip_opt
0x5083 ISP CTRL 3 0x30 RW
Bit[3]: mirror_bg
en nl
Bit[2]: flip_br
Bit[1]: offset_man
Bit[0]: scale_size_man
default
address register name value R/W description
Bit[7:4]: Not used
0x508E ISP CTRL E 0x00 RW
Bit[3:0]: man_y_offset[IV_SW-1:8]
default
address register name value R/W description
Bit[7:4]: Not used
0x5100 ISP CTRL 0 0x04 RW
Bit[3:0]: awb_gain_b[11:8]
default
address register name value R/W description
0x5180 ISP CTRL 0 0x00 RW Bit[7:0]: start_addr[15:8]
default
address register name value R/W description
0x5183 ISP CTRL 3 0xFF RW Bit[7:0]: end_addr[7:0]
Bit[1]: expo_en
Bit[0]: gain_en
default
address register name value R/W description
Bit[7]: Not used
Bit[6]: dis_proc_gate
Bit[5]: dis_mem_rd_gate
Bit[4]: dis_start_gate
0x5195 ISP CTRL 15 0x00 RW
Bit[3]: dis_buf3_gate
Bit[2]: dis_buf2_gate
Bit[1]: dis_buf1_gate
Bit[0]: dis_buf0_gate
Bit[4:0]: ro_x_offset[IH_SW-1:8]
default
address register name value R/W description
Bit[7]: Enable tail
Bit[6]: Enable general tail
Bit[5]: Enable 33 clusters
Bit[4]: Enable saturated cross cluster
0x5200 ISP CTRL 0 0x1B RW
Bit[3]: Enable cross cluster
Bit[2]: Manual mode
Bit[1]: Black pixel
C
Bit[7:6]: VNumList_2
on SE
Bit[5:4]: VNumList_1
0x5201 ISP CTRL 1 0x94 RW Bit[3:2]: VNumList_0
Bit[1]: Clip interp G
Bit[0]: Share buffer
fid C
Bit[7:4]: WThresList_2
0x5204 ISP CTRL 4 0x12 RW
Bit[3:0]: WThresList_1
o
lf
Bit[7:4]: BThresRatio
0x5205 ISP CTRL 5 0x41 RW
Bit[3:0]: WThresList_3
default
address register name value R/W description
0x520E ISP CTRL E 0xFD RW Bit[7:0]: DPCLevelList_1
Bit[7]: ClkGateDisRec2
Bit[6]: ClKGateDisRec1
Bit[5]: ClkGateDisRec0
Bit[4]: ClkGateDisSram
0x5214 ISP CTRL 14 0x00 RW
Bit[3]: ClKGateDisBuf
Bit[2]: ClkGateDisSF
C
Bit[1]: ClkGateDis
Bit[0]: ManPxOrder
on SE
Bit[4:0]: Thre1
Bit[6:0]: Thre3
Bit[6:0]: Thre4
lf
Bit[7:4]: Level
0x521E ISP CTRL 1E – R
Bit[3:0]: Pconnected
or
default
address register name value R/W description
Bit[7:4]: Not used
0x5800 ISP_CTRL_0 0x00 RW
Bit[3:0]: Window X start[11:8]
default
address register name value R/W description
0x5801 ISP_CTRL_1 0x00 RW Bit[7:0]: Window X start[7:0]
Bit[7:4]: emb_num
Bit[3]: Not used
Bit[2]: emb_flag_sel
fid C
0: Start line
0x5808 ISP_CTRL_8 0x00 RW 1: End line
Bit[1]: Not used
Bit[0]: win_man_en
en nl
Bit[7:0]: y_offset_minus[7:0]
o
default
address register name value R/W description
0x6000~
OTP_SRAM 0x00 RW Bit[7:0]: OTP buffer
0x63FF
C
on SE
fid C
en nl
tia y
o
lf
or
C
on SE
fid C
en nl
tia y
o
lf
or
7 operating specifications
7.1 absolute maximum ratings
VDD-A 4.5V
VDD-IO 4.5V
a. exceeding the absolute maximum ratings shown above invalidates all AC and DC electrical specifications and may
result in permanent damage to the device. Exposure to absolute maximum rated conditions for extended periods
en nl
parameter range
or
a. sensor functions but image quality may be noticeably different at temperatures outside of stable image range
b. image quality remains stable throughout this temperature range
7.3 DC characteristics
supply
VDD-A supply voltage (analog) 2.7 2.8 2.9 V
IDD-A 50 62 mA
C
b
IDD-IO active (operating) current 1.5 2.1 mA
on SE
IDDS-SCCB 4.5 15 mA
IDDS-XSHUTDOWN 1.5 10 µA
digital inputs (typical conditions: AVDD = 2.8V, DVDD = 1.2V, DOVDD = 1.8V)
en nl
THIGH
VIH
0.7 x VDOVDD
TLOW
C
on SE
VIL
0.3 x VDOVDD
fid C
TPERIOD
time
en nl
OS08A10_DS_7_1
a. for input clock range 6~27MHz, the OS08A10 can tolerate input clock period jitter up to 600ps peak-to-peak
C
on SE
fid C
en nl
tia y
o
lf
or
8 mechanical specifications
8.1 physical specifications
S2
1 2 3 4 5 6 7 8 9 10 11 11 10 9 8 7 6 5 4 3 2 1
A A
B W A B
C J2 X
Y
B
C C center of BGA (die) =
D Z D
D center of the package
B E E
F F
C
G G
H H
on SE
J J
J1 D
A
S1
top view bottom view
fid C
260.0 TP
240.0
tL
220.0
TL
note The
Tmax OS08A10 uses a
200.0 reflow lead-free package.
180.0
temperature (°C)
160.0 Tmin
cooling
140.0 soaking
note To reduce
C
120.0
100.0 image artifacts from
infrared light and to
on SE
Tf
20.0 T0
0.0
0
20
40
60
80
100
120
140
160
180
200
220
240
260
280
300
320
340
360
380
400
420
440
460
480
500
520
540
en nl
ramp up A (T0 to Tmin) heating from room temperature to 150°C temperature slope ≤ 3°C per second
ramp up B (tL to TP) heating from 217°C to 245°C temperature slope ≤ 3°C per second
peak temperature maximum temperature in SMT 245°C +0/-5° (duration max 30 sec)
ramp down A (TP to TL) cooling down from 245°C to 217°C temperature slope ≤ 3°C per second
ramp down B (TL to Tf) cooling down from 217°C to room temperature temperature slope ≤ 2°C per second
C
on SE
fid C
en nl
tia y
o
lf
or
9 optical specifications
9.1 sensor array center
7736.256 μm
C
array center
(0 μm, 49.5 μm)
4379.616 μm
on SE
package center
(0 μm, 0 μm)
fid C
sensor array
first pixel readout
A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1
OS08A10
en nl
top view
tia y
note 2 as most optical assemblies invert and mirror the image, the chip is typically mounted
o
F
figure 9-2 final image output
or
F sensor array
A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1
OS08A10
F
first pixel
pin #A1
OS08A10
12
10
8
CRA (degrees)
6
on SE
4
fid C
CRA
0
en nl
0.00
0.44
0.88
1.32
1.76
2.20
2.64
3.08
3.52
3.96
4.40
image height (mm) OS08A10_DS_9_3
tia y
1.00 4.4 11
revision history
• initial release
• in key specifications, changed active power requirements to 280mW, changed standby power
tia y
requirements to 1000 µA, changed max S/N ratio to 39 dB, changed dynamic range to 74 dB @
16x gain, and changed sensitivity to 13,000e-/Lux-sec
• in chapter 2, updated figure 2-2
o
lf
• in section 4.9, changed last sentence of first paragraph to "figure 4-16 shows a description of the
ULPM interrupt operations." and updated figure 4-16
• in section 4.9.1, changed second step to "...sensor operational in the high frame rate
or
QVGA/QQVGA mode. The following registers will need to be written: QVGA/QQVGA setting,
exposure/gain settings, window, and stable range.", changed fourth step to "...on ULPM pin and
0x4A20[0]. The values of gain, exposure, mean R, G, B, Y, are latched onto separate registers
(0x4A21 ~ 0x4A2B).", changed sixth step to "...trigger (rewrite 0x4A10 = 0) to go to step 2.", and
changed title of figure 4-17 to "stable range-1 diagram"
• in section 4.9.2, changed second step to "...new stable range-2 (0x4A08~0x4A0B) around...",
changed third step to "...and 0x4A20[1] latched the gain, exposure, mean (R, G, B, Y) values on
registers (0x4A21~0x4A2B).", changed fourth step to "...clear the interrupt (rewrite 0x4A10=0)...",
changed title of figure 4-18 to "stable range-2 diagram", and updated figure 4-18
• in section 4.10, changed section title to "stable range/window registers for ULPM interrupt and
changed title of table 4-9 to "stable range/window registers"
• in table 4-9, removed rows for registers 0x3504, 0x3A01, 0x3A04, 0x3A05, 0x3A07, and 0x3A0F,
changed register name for registers 0x3A02 and 0x3A03 to "EXP_CTRL02" and "EXP_CTRL03",
respectively, changed description for registers 0x3A02 and 0x3A03 to "Bit[7:0]: Top stable range-1"
and "Bit[7:0]: Bottom stable range-1", respectively, changed register address 0x4F04 to 0x4B04,
changed register address 0x4F05 to 0x4B05, changed register address 0x4F07 to 0x4B07, and
changed register address 0x4F10 to 0x4B10
• in table 4-10, changed all register addresses from 0x47xx to 0x4Axx
• in section 4.11.1, removed second code line of item 2, changed third and fourth code lines of item 2
to "...stable range-1 upper bound in high 8-bit format" and "...stable range-1 lower bound in high
8-bit format", respectively, removed fifth and sixth code lines of item 2, changed seventh to tenth
code lines of item 2 from "...4f04..." to "...4b04...", from "...4f05..." to "...4b05...", from "...4f07..." to
"...4b07...", and from "...4f10..." to "...4b10...", respectively, changed first code line of item 3 from
"...3010..." to "...3016...", changed second code line of item 3 from "...4700..." to "...4A00...",
changed third code line of item 3 from "...4701..." to "...4A01...", changed item 4 to "...via register
0x4A20 or ULPM pin.", changed item 5 to "...observed at 0x4A20 (=0x05) and ULPM pin.",
changed second to fifth code lines of item 6 to "6c 4a08 01; stable range-2 upper bound in 10-bit
format", "6c 4a09 e0; stable range-2 upper bound in 10-bit format", "6c 4a0a 01; stable range-2
lower bound in 10-bit format", and "6c 4a0b a0; stable range-2 upper bound in 10-bit format",
respectively, changed item 7 to "...register 0x4A10, and then monitor register 0x4A20 for step 2
flag. Once image Y value is outside stable range-2, ULPM interrupt can be observed at 0x4A20
C
(=0x06) and ULPM pin.", changed first code line of item 7 to "6c 4a10 00", and changed item 8 to
"...register 0x4A10, and then go back to step 1 again."
on SE
• in table 5-5, changed description of register bits 0x3503[7] and 0x3503[3] to "Not used"
• in table 6-3, changed description of register bits 0x3016[5] to "Bit[5]: ULPM clock enable" and
0x3016[1] to "Bit[1]: ULPM reset, 1: Reset"
fid C
• in table 6-7, changed description of register bits 0x3503[7] and 0x3503[3] to "Not used"
• in table 7-3, changed typ value of IDD-A to 50mA, changed typ value of IDD-IO to 2mA and changed
typ value of IDD-D to 117mA
en nl
• in table 7-4, changed max value for fXVCLK to 64MHz and changed min value for TPERIOD to 15.6ns
• in section 4.6.1.2, changed title to "LED 1 & 2 mode", changed first paragraph completely, changed
title of figure 4-9 to "LED 1 & 2 mode (part a)", moved figure 4-10 from section 4.6.1.3 to
tia y
section 4.6.1.2, and changed title of figure 4-10 to "LED 1 & 2 mode (part b)
• in chapter 4, removed section 4.6.1.3
• in table 6-19, changed description of register bits 0x4809[5:0] to dt_man1 and changed description
o
C
on SE
fid C
en nl
tia y
o
lf
or
website: www.ovt.com
Powered by TCPDF (www.tcpdf.org)