Datasheet
Table Of Contents
- 1/3.2-Inch System-On-A-Chip (SOC) CMOS Digital Image Sensor
- Features
- Applications
- Ordering Information
- General Description
- Feature Overview
- Typical Connection
- Ballout and Interface
- Architecture Overview
- Registers and Variables
- Registers
- Registers
- IFP Registers, Page 1
- IFP Registers, Page 2
- JPEG Indirect Registers
- Table 8: JPEG Indirect Registers (See Registers 30 and 31, Page 2)
- Firmware Driver Variables
- Table 9: Drivers IDs
- Table 10: Driver Variables-Monitor Driver (ID = 0)
- Table 11: Driver Variables-Sequencer Driver (ID = 1)
- Table 12: Driver Variables-Auto Exposure Driver (ID = 2)
- Table 13: Driver Variables-Auto White Balance (ID = 3)
- Table 14: Driver Variables-Flicker Detection Driver (ID = 4)
- Table 15: Driver Variables-Auto Focus Driver (ID = 5)
- Table 16: Driver Variables-Auto Focus Mechanics Driver (ID = 6)
- Table 17: Driver Variables-Mode/Context Driver (ID = 7)
- Table 18: Driver Variables-JPEG Driver (ID = 9)
- Table 19: Driver Variables-Histogram Driver (ID = 11)
- MCU Register List and Memory Map
- JPEG Indirect Registers
- Output Format and Timing
- Sensor Core
- Feature Description
- PLL Generated Master Clock
- PLL Setup
- Window Control
- Pixel Border
- Readout Modes
- Figure 20: 6 Pixels in Normal and Column Mirror Readout Modes
- Figure 21: 6 Rows in Normal and Row Mirror Readout Modes
- Table 30: Skip Values
- Figure 22: 8 Pixels in Normal and Column Skip 2x Readout Modes
- Figure 23: 16 Pixels in Normal and Column Skip 4x Readout Modes
- Figure 24: 32 Pixels in Normal and Column Skip 8x Readout Modes
- Figure 25: 64 Pixels in Normal and Column Skip 16x Readout Modes
- Table 31: Row Addressing
- Table 32: Column Addressing
- Frame Rate Control
- Context Switching
- Integration Time
- Flash STROBE
- Global Reset
- Analog Signal Path
- Analog Inputs AIN1-AIN3
- Firmware
- Firmware
- Start-Up and Usage
- General Purpose I/O
- Introduction
- GPIO Output Control Overview
- Waveform Programming
- Notification Signals
- Digital and Analog Inputs
- GPIO Software Drivers
- Auto Focus
- Figure 42: Search for Best Focus
- Figure 43: Scene with Two Potential Focus Targets at Different Distances from Camera
- Figure 44: Dependence of Luminance-Normalized Local Sharpness Scores on Lens Position
- Figure 45: Example of Position Weight Histogram Created by AF Driver
- Figure 46: Auto Focus Windows
- Figure 47: Computation of Sharpness Scores and Luminance Average for an AF Window
- Table 41: Examples of AF Filters that can be Programmed into the MT9D111
- Spectral Characteristics
- Electrical Specifications
- Packaging
- Appendix A: Two-Wire Serial Register Interface
- Protocol
- Sequence
- Bus Idle State
- Start Bit
- Stop Bit
- Slave Address
- Data Bit Transfer
- Acknowledge Bit
- No-Acknowledge Bit
- Page Register
- Sample Write and Read Sequences
- Figure 52: WRITE Timing to R0x09:0-Value 0x0284
- Figure 53: READ Timing from R0x09:0; Returned Value 0x0284
- Figure 54: WRITE Timing to R0x09:0-Value 0x0284
- Figure 55: READ Timing from R0x09:0; Returned Value 0x0284
- Figure 56: Two-Wire Serial Bus Timing Parameters
- Table 46: Two-wire Serial Bus Characteristics
- Revision History
PDF: 09005aef8202ec2e/Source: 09005aef8202ebf7 Micron Technology, Inc., reserves the right to change products or specifications without notice.
MT9D111__7_REV5.fm - Rev. B 2/06 EN
144 ©2004 Micron Technology, Inc. All rights reserved.
MT9D111 - 1/3.2-Inch 2-Megapixel SOC Digital Image Sensor
Firmware
Micron Confidential and Proprietary
For example, cool-white office illumination tends to have a position near 64. Variables
awb.CCMpositionMin, awb.CCMpositionMax, awb.GainMin, awb.GainMax specify
CCM position and digital RGB gain limits. When changing these settings, issue a
REFRESH command to put new values into effect.
AWB speed is controlled by awb.JumpDivisor and awb.GainBufferSpeed. AWB statistics
window typically covers the entire image. Its size is set by awb.windowPos and awb.win-
dowSize. Issue a REFRESH_MODE command for settings to take effect. AWB can be
forced to daylight when AE detects outdoor condition, see seq.mode[5].
AWB can be operated manually in two ways:
1. Set awb.mode[5] = 1. This forces digital RGB gains to unity. Program desired CCM
position into awb.CCMposition.
2. Set awb.CCMpositionMin and awb.CCMpositionMax limits to desired position. Issue
REFRESH command. CCM moves into specified position. To fix gains to unity, set
awb.GainMin and awb.GainMax to 128. Otherwise digital gains continue changing
automatically.
Auto Focus Driver
The AF driver works to find best lens position providing maximal image sharpness. The
driver operates in two modes: manual and auto mode. In manual mode (af.mode[7] = 1)
focus position is defined by variable af.bestPosition. User can change lens position from
af.posMin to af.posMax.
Automatic mode is started by af.mode=1, The driver automatically scans af.numSteps
focal zones to find best position. AF driver makes search of the best focus position based
on average sharpness and luma information received from 16 programmable windows.
Each filter kernel has seven user-programmable elements specified in registers R75:2,
R75:2, R85:2 and R86:2. User can specify window size and position (af.windowPos,
af.windowSize), number of the focal zones to scan (af.numSteps), weight for each win-
dow (af.zoneWeights).
Public variables of the AF driver listed in Table 15, "Driver Variables-Auto Focus Driver
(ID = 5)," on page 82 and register settings defining the AF filters (see page 14) are all the
parameters that one needs to pay attention to when customizing the built-in AF algo-
rithm. The AF driver variables include two unsigned characters (bytes) named af.win-
dowPos and af.windowSize that should be used to adjust position and size of the AF
windows instead of direct writes to registers R[64:66]:2. It is certainly possible to access
these registers directly, and new values written to them have immediate effect. However,
these values remain in effect only as long as Sequencer driver, the master firmware
driver continuously running on MT9D111 microcontroller unit (MCU), does not call AF
driver function AF_SetSize (or its user-supplied substitute). The Sequencer calls this
function at its initialization, at every change of sensor operation mode (e.g. from pre-
view mode to capture mode), and also whenever sq.cmd variable is set to 6 in the pre-
view mode. The function AF_SetSize translates the current settings of af.windowPos and
af.windowSize to corresponding settings of registers R[64:66]:2 and writes these settings
over the previous values of the registers. There is no way to change the precedence of
af.windowPos and af.windowSize over the register settings other than by overriding the
function AF_SetSize.
In addition to programming the registers R[64:66]:2, the function AF_SetSize automati-
cally sets af.wakeUpLine in accordance with af.windowPos and af.windowSize, so that
during every frame readout the AF driver is activated 2 rows below the bottom of the 4x4
array of AF windows. If af.windowPos and af.windowSize are such that the bottom of the










