MT9J003 MT9J003 1/2.3Inch 10 Mp CMOS Digital Image Sensor General Description The ON Semiconductor MT9J003 is a 1/2.3-inch CMOS active-pixel digital imaging sensor with an active pixel array of 3856 (H) x 2764 (V) including border pixels. It can support 10 megapixel (3664 (H) x 2748 (V)) digital still images and a 1080 p (3840 (H) x 2160 (V)) digital video mode. It incorporates sophisticated on-chip camera functions such as windowing, mirroring, column and row skip modes, and snapshot mode. It is programmable through a simple two-wire serial interface and has very low power consumption. The MT9J003 digital image sensor features ON Semiconductor's breakthrough low-noise CMOS imaging technology that achieves near-CCD image quality (based on signal-to-noise ratio and low-light sensitivity) while maintaining the inherent size, cost, and integration advantages of CMOS. When operated in its default 4:3 still-mode, the sensor generates a full resolution image at 15 frames per second (fps) using the HiSPi serial interface. An on-chip analog-to-digital converter (ADC) generates a 12-bit value for each pixel. www.onsemi.com ILCC48 10x10 CASE 847AK ORDERING INFORMATION See detailed ordering and shipping information on page 3 of this data sheet. Features * * * * * * * * * * * * 1080p Digital Video Mode Simple Two-wire Serial Interface Auto Black Level Calibration Support for External Mechanical Shutter Support for External LED or Xenon Flash High Frame Rate Preview Mode with Arbitrary Down-size Scaling from Maximum Resolution Programmable Controls: Gain, Horizontal and Vertical Blanking, Auto Black Level Offset Correction, Frame Size/rate, Exposure, Left-right and Top-bottom Image Reversal, Window Size, and Panning Data Interfaces: Parallel or Four-lane Serial High-speed Pixel Interface (HiSPi) Differential Signaling (Sub-LVDS) On-die Phase-locked Loop (PLL) Oscillator Bayer Pattern Downsize Scaler Integrated Position-based Color and Lens Shading Correction One-time Programmable Memory (OTPM) for Storing Module Information Applications * Digital Video Cameras * Digital Still Cameras (c) Semiconductor Components Industries, LLC, 2009 February, 2017 - Rev. 5 1 Publication Order Number: MT9J003/D MT9J003 Table 1. KEY PARAMETERS Parameter Value Optical Format 1/2.3-inch (4:3) Active Imager Size 6.440 mm (H) x 4.616 mm (V), 7.923 mm Diagonal (Entire Sensor) 6.119 mm (H) x 4.589 mm (V), 7.649 mm Diagonal (Still Mode) 6.413 mm (H) x 3.607 mm (V), 7.358 mm Diagonal (Video Mode) Active Pixels 3856 (H) x 2764 (V) (Entire Sensor) 3664 (H) x 2748 (V) (4:3, Still Mode) 3840 (H) x 2160 (V) (16:9, Video Mode) Pixel Size 1.67 x 1.67 m Chief Ray Angle 0, 13.4 Color Filter Array RGB Bayer Pattern Shutter Type Electronic Rolling Shutter (ERS) with Global Reset Release (GRR) Maximum Data Rate 96 Mp/s Maximum Master Clock 60 MHz Input Clock Frequency 6-48 MHz Maximum Data Rate Frame Rate Parallel 80 Mp/s at 80 MHz PIXCLK HiSPi (4-lane) 2.8 Gbps Still Mode, 4:3 (3664 (H) x 2748 (V) Programmable up to 15 fps Serial I/F, 7.5 fps Parallel I/F Preview Mode VGA 30 fps with Binning 60 fps with Skip2bin2 1080p Mode (1920 H x 1080 V) 60 fps Using HiSPi I/F 30 fps Using Parallel I/F ADC Resolution 12-bit, On-die Responsivity 0.31 V/lux-sec (550 nm) Dynamic Range 65.2 dB SNRMAX Supply Voltage Power Consumption 34 dB I/O Digital 1.7-1.9 (V) (1.8 (V) Nominal) or 2.4-3.1 (V) (2.8 (V) Nominal) Digital 1.7-1.9 (V) (1.8 (V) Nominal) Analog 2.4-3.1 (V) (2.8 (V) Nominal) SLVS I/O 0.4-0.8 (V) (0.4 or 0.8 (V) Nominal) Still Mode at 15 fps w/ Serial I/F 638 mW Still Mode at 7.5 fps w/ Parallel I/F 388 mW Preview 250 mW Low Power VGA Standby 500 W (Typical, EXTCLK Disabled) Power Consumption TBD Package 48-pin iLCC (10 mm x 10 mm) Bare Die, 48pin Tiny PLCC (12 mm x 12 mm) Operating Temperature -30C to +70C (at Junction) www.onsemi.com 2 MT9J003 ORDERING INFORMATION Table 2. AVAILABLE PART NUMBERS Product Description Orderable Product Attribute Description 10 MP 1" CIS Die Sales, 200 m Thickness MT9J003I12STCU-DP 10 MP 1/2.3" CIS Dry Pack with Protective Film MT9J003I12STCU-DR 10 MP 1/2.3" CIS Dry Pack without Protective Film MT9J003I12STCV2-DP 10 MP 1/2.3" CIS Dry Pack with Protective Film MT9J003I12STCV2-TP 10 MP 1/2.3" CIS Tape & Reel with Protective Film MT9J003I12STMU-DP 10 MP 1/2.3" CIS Dry Pack with Protective Film Part Number MT9J003D00STMUC2CBC1-200 For information on tape and reel specifications, including part orientation and tape sizes, please refer to our Tape and Reel Packaging Specification Brochure, BRD8011/D. FUNCTIONAL OVERVIEW The MT9J003 is a progressive-scan sensor that generates a stream of pixel data at a constant frame rate. It uses an on-chip, phase-locked loop (PLL) to generate all internal clocks from a single master input clock running between Active-Pixel Sensor (APS) Array Analog Processing 6 and 48 MHz. The maximum output pixel rate is 80 Mp/s, corresponding to a pixel clock rate of 80 MHz. A block diagram of the sensor is shown in Figure 1. Sync Signals Timing Control ADC Shading Correction Scaler Control Registers Limiter FIFO Data Out Two-wire Serial Interface Figure 1. Block Diagram setting. These registers can be accessed through a two-wire serial interface. The output from the sensor is a Bayer pattern; alternate rows are a sequence of either green and red pixels or blue and green pixels. The offset and gain stages of the analog signal chain provide per-color control of the pixel data. The control registers, timing and control, and digital processing functions shown in Figure 1 are partitioned into three logical parts: * A sensor core that provides array control and data path corrections. The output of the sensor core is a 12-bit parallel pixel data stream qualified by an output data clock (PIXCLK), together with LINE_VALID (LV) and FRAME_VALID (FV) signals or a 4-lane serial high-speed pixel interface (HiSPi). * A digital shading correction block to compensate for color/brightness shading introduced by the lens or chief ray angle (CRA) curve mismatch. The core of the sensor is a 10 Mp active-pixel array. The timing and control circuitry sequences through the rows of the array, resetting and then reading each row in turn. In the time interval between resetting a row and reading that row, the pixels in the row integrate incident light. The exposure is controlled by varying the time interval between reset and readout. Once a row has been read, the data from the columns is sequenced through an analog signal chain (providing offset correction and gain), and then through an ADC. The output from the ADC is a 12-bit value for each pixel in the array. The ADC output passes through a digital processing signal chain (which provides further data path corrections and applies digital gain). The pixel array contains optically active and light-shielded ("dark") pixels. The dark pixels are used to provide data for on-chip offset-correction algorithms ("black level" control). The sensor contains a set of control and status registers that can be used to control many aspects of the sensor behavior including the frame size, exposure, and gain www.onsemi.com 3 MT9J003 * Additional functionality is provided. This includes a exposure time. Additional I/O signals support the provision of an external mechanical shutter. horizontal and vertical image scaler, a limiter, a data compressor, an output FIFO, and a serializer. Pixel Array The sensor core uses a Bayer color pattern, as shown in Figure 2. The even-numbered rows contain green and red pixels; odd-numbered rows contain blue and green pixels. Even-numbered columns contain green and blue pixels; odd-numbered columns contain red and green pixels. The output FIFO is present to prevent data bursts by keeping the data rate continuous. Programmable slew rates are also available to reduce the effect of electromagnetic interference from the output interface. A flash output signal is provided to allow an external xenon or LED light source to synchronize with the sensor Column Readout Direction .. . Black Pixels First Clear Active Pixel (100, 69) Row Readout Direction B G2 B G2 B ... G1 R G1 R G1 B G2 B G2 B G1 R G1 R G1 Figure 2. Block Diagram www.onsemi.com 4 MT9J003 OPERATING MODES By default, the MT9J003 powers up with the serial pixel data interface enabled. The sensor can operate in serial HiSPi or parallel mode For low-noise operation, the MT9J003 requires separate power supplies for analog and digital power. Incoming digital and analog ground conductors should be placed in such a way that coupling between the two are minimized. Both power supply rails should also be routed in such a way that noise coupling between the two supplies and ground is minimized. CAUTION: ON Semiconductor does not recommend the use of inductance filters on the power supplies or output signals. From Controller VDD_SLVS_TX Master clock (6-48 MHz) HiSPi Analog Analog PHY I/O PLL Power1 Power1 Power1 Power1 VDD_SLVS VDD_IO VDD 1.5 kW2, 3 1.5 kW2 Digital Digital I/0 Core Power1 Power1 EXTCLK VDD_PLL VAA VAA_PIX SLVS_0P SLVS_0N SLVS_1P SLVS_1N SLVS_2P SLVS_2N SLVS_3P SDATA SCLK GPI[3:0]4 SLVS_3N SLVSC_P SLVSC_N RESET_BAR SHUTTER FLASH TEST GND_PLL DGND VDD_IO VDD VDD_SLVS_TX VDD_PLL VAA 1. 2. 3. 4. 5. 6. 7. 8. 9. PIXGND AGND VAA_PIX Digital ground Notes: To Controller Analog ground All power supplies should be adequately decoupled. ON Semiconductor recommends a resistor value of 1.5 k, but it may be greater for slower two-wire speed. This pull-up resistor is not required if the controller drives a valid logic level on SCLK at all times. The GPI pins can be statically pulled HIGH or LOW to be used as module IDs, or they can be programmed to perform special functions (TRIGGER, OE_N, SADDR, STANDBY) to be dynamically controlled. VPP, which can be used during the module manufacturing process, is not shown in Figure 3. This pad is left unconnected during normal operation. The parallel interface output pads can be left unconnected if the serial output interface is used. ON Semiconductor recommends that 0.1 F and 10 F decoupling capacitors for each power supply are mounted as close as possible to the pad. Actual values and results may vary depending on layout and design considerations. Check the MT9J003 demo headboard schematics for circuit recommendations ON Semiconductor recommends that analog power planes are placed in a manner such that coupling with the digital power planes is minimized. The signal path between the HiSPi serial transmitter and receiver should be adequately designed to minimize any trans-impedance mismatch and/or reflections on the data path. Figure 3. Typical Configuration: Serial Four-Lane HiSPi Interface www.onsemi.com 5 MT9J003 Master clock (6-48 MHz) PLL Analog Analog Power1 Power1 Power1 VDD_IO VDD VDD_TX0 1.5k2, 3 1.5k2 Digital Digital I/0 Core Power1 Power1 VDD_PLL VAA VAA_PIX DOUT [11:0] EXTCLK PIXCLK LINE_VALID FRAME_VALID SDATA SCLK SHUTTER RESET_BAR FLASH GPI[3:0]4 TEST VDD_IO VDD VDD_PLL VAA GND_PLL DGND 1. 2. 3. 4. 5. 6. 7. 8. 9. PIX GND AGND VAA_PIX Digital ground Notes: To controller Analog ground All power supplies should be adequately decoupled. ON Semiconductor recommends a resistor value of 1.5 k, but it may be greater for slower two-wire speed. This pull-up resistor is not required if the controller drives a valid logic level on SCLK at all times. The GPI pins can be statically pulled HIGH or LOW to be used as module IDs, or they can be programmed to perform special functions (TRIGGER, OE_N, SADDR, STANDBY) to be dynamically controlled. VPP, which can be used during the module manufacturing process, is not shown in Figure 4. This pad is left unconnected during normal operation. The serial interface output pads can be left unconnected if the parallel output interface is used. ON Semiconductor recommends that 0.1 F and 10 F decoupling capacitors for each power supply are mounted as close as possible to the pad. Actual values and results may vary depending on layout and design considerations. Check the MT9J003 demo headboard schematics for circuit recommendations. ON Semiconductor recommends that analog power planes are placed in a manner such that coupling with the digital power planes is minimized. ON Semiconductor recommends that VDD_TX0 is tied to VDD when the sensor is using the parallel interface. Figure 4. Typical Configuration: Parallel Pixel Data Interface www.onsemi.com 6 MT9J003 SIGNAL DESCRIPTIONS Table 3 provides signal descriptions for MT9J003 die. For pad location and aperture information, refer to the MT9J003 die data sheet. Table 3. SIGNAL DESCRIPTIONS Pad Name Pad Type Description EXTCLK Input Master Clock Input, 6-48 MHz RESET_BAR (XSHUTDOWN) Input Asynchronous active LOW reset. When asserted, data output stops and all internal registers are restored to their factory default settings SCLK Input Serial clock for access to control and status registers GPI[3:0] Input General purpose inputs. After reset, these pads are powered-down by default; this means that it is not necessary to bond to these pads. Any of these pads can be configured to provide hardware control of the standby, output enable, SADDR select, and shutter trigger functions. Can be left floating if not used TEST Input Enable manufacturing test modes. It should not be left floating. It can be tied to ground or VDD_IO when used in parallel or HiSPi. It should be connected to DGND for normal operation of the CCP2 configured sensor, or connected to VDD_IO power for the MIPI[-configured sensor SDATA I/O LINE_VALID Output LINE_VALID (LV) output. Qualified by PIXCLK FRAME_VALID Output FRAME_VALID (FV) output. Qualified by PIXCLK DOUT[11:0] Output Parallel pixel data output. Qualified by PIXCLK PIXCLK Output Pixel clock. Used to qualify the LV, FV, and DOUT[11:0] outputs FLASH Output Flash output. Synchronization pulse for external light source. Can be left floating if not used SHUTTER Output Control for external mechanical shutter. Can be left floating if not used VPP Supply Power supply used to program one-time programmable (OTP) memory. Disconnect pad when not programming or when feature is not used VDD_TX0 Supply PHY power supply. Digital power supply for the MIPI or CCP2 serial data interface. ON Semiconductor recommends that VDD_TX0 is always tied to VDD when using an unpackaged sensor VDD_SLVS Supply HiSPi power supply for data and clock output. This should be tied to VDD VDD_SLVS_TX Supply Digital Power Supply for the HiSPi I/O VAA Supply Analog Power Supply VAA_PIX Supply Analog Power Supply for the Pixel Array AGND Supply Analog Ground Serial data from READs and WRITEs to control and status registers VDD Supply Digital Power Supply VDD_IO Supply I/O Power Supply DGND Supply Common Ground for Digital and I/O VDD_PLL Supply PLL Power Supply GND_PLL Supply PLL Ground PIXGND Supply Pixel Ground SLVS_0P Output Lane 1 Differential HiSPi (LVDS) Serial Data (positive). Qualified by the SLVS Serial Clock SLVS_0N Output Lane 1 Differential HiSPi (LVDS) Serial Data (negative). Qualified by the SLVS Serial Clock SLVS_1P Output Lane 2 Differential HiSPi (LVDS) Serial Data (positive). Qualified by the SLVS Serial Clock SLVS_1N Output Lane 2 Differential HiSPi (LVDS) Serial Data (negative). Qualified by the SLVS Serial Clock SLVS_2P Output Lane 3 Differential HiSPi (LVDS) Serial Data (positive). Qualified by the SLVS Serial Clock www.onsemi.com 7 MT9J003 Table 3. SIGNAL DESCRIPTIONS (continued) SLVS_CP Output Differential HiSPi (LVDS) Serial Clock (positive). Qualified by the SLVS Serial Clock SLVS_CN Output Differential HiSPi (LVDS) Serial Clock (positive). Qualified by the SLVS Serial Clock GND Lane 4 Differential HiSPi (LVDS) Serial Data (negative). Qualified by the SLVS Serial Clock SLVS3_P Output SLVS3_N SLVS_3N SLVS2_P Lane 4 Differential HiSPi (LVDS) Serial Data (positive). Qualified by the SLVS Serial Clock SLVS2_N Output SLVSC_P SLVS_3P SLVSC_N Lane 3 Differential HiSPi (LVDS) Serial Data (negative). Qualified by the SLVS Serial Clock SLVS1_P Output SLVS1_N SLVS_2N SLVS0_P Description SLVS0_N Pad Type VDD_SLVS_TX Pad Name 6 5 4 3 2 1 48 47 46 45 44 43 VDD_SLVS 7 42 AGND VDD_IO 8 41 VAA PIXGND GND 13 36 VAA_PIX VDD_IO 14 35 VAA_PIX SDATA 15 34 NC SCLK 16 33 NC TEST 17 32 VAA RESET_BAR 18 31 AGND 20 21 22 23 24 25 26 27 28 29 30 VPP VDD 19 VDD_PLL 37 GND 12 FLASH VDD SHUTTER VAA GPI3 38 GPI2 NC 11 GPI1 VDD EXTCLK GPI0 NC 39 VDD_IO 40 GND 9 10 GND Figure 5. HiSPi Package Pinout Diagram www.onsemi.com 8 1 48 47 46 45 44 NC DOUT2 2 GND DOUT1 3 DOUT6 DOUT0 4 DOUT4 VDD_PLL 5 DOUT5 EXTCLK 6 DOUT3 GND MT9J003 43 DOUT7 7 42 NC DOUT8 8 41 PIXGND VAA_PIX PIXCLK 13 36 VAA VDD 14 35 AGND SCLK 15 34 VAA SDATA 16 33 VPP RESET_BAR 17 32 NC VDD_IO 18 31 NC 19 20 21 22 23 24 25 26 27 28 29 30 GND 37 LINE_VALID 12 SHUTTER VDD_IO FRAME_VALID VAA_PIX FLASH 38 TEST 11 GND DOUT11 GPI3 AGND GPI2 DOUT10 GPI1 VAA 39 GPI0 40 VDD 9 10 DOUT9 Figure 6. 48-Pin iLCC Parallel Package Pinout Diagram www.onsemi.com 9 MT9J003 OUTPUT DATA FORMAT Serial Pixel Data Interface standard video application where each line of active or intra-frame blanking provided by the sensor is transmitted at the same length. The packetized protocol will transmit only the active data ignoring line-to-line and frame-to-frame blanking data. The HiSPi interface building block is a unidirectional differential serial interface with four data and one double data rate (DDR) clock lanes. One clock for every four serial data lanes is provided for phase alignment across multiple lanes. Figure 7 shows the configuration between the HiSPi transmitter and the receiver. The MT9J003 supports RAW8, RAW10, and RAW12 image data formats over a serial interface. The sensor supports a 1 and 2-lane MIPI as well as the HiSPi interface. These interfaces are not described in the data sheet. High Speed Serial Pixel Interface The High Speed Serial Pixel (HiSPi) interface uses four data and one clock low voltage differential signaling (LVDS) outputs. * SLVS_CP, SLVS_CN * SLVS_[0:3]P, SLVS_[0:3]N The HiSPi interface supports two protocols, streaming and packetized. The streaming protocol conforms to a A camera containing the HiSPi transmitter Tx PHY0 A host (DSP) containing the HiSPi receiver Dp0 Dp0 Dn0 Dn0 Dp1 Dp1 Dn1 Dn1 Dp2 Dp2 Dn2 Dn2 Dp3 Dp3 Dn3 Dn3 Cp0 Cp0 Cn0 Cn0 Rx PHY0 Figure 7. HiSPi Transmitter and Receiver Interface Block Diagram clock, the second on the following edge of clock. Figure 8 shows bit transmission. In this example, the word is transmitted in order of MSB to LSB. The receiver latches data at the rising and falling edge of the clock. HiSPi Physical Layer The HiSPi physical layer is partitioned into blocks of four data lanes and an associated clock lane. Any reference to the PHY in the remainder of this document is referring to this minimum building block. The PHY will serialize a 10-, 12-, 14- or 16-bit data word and transmit each bit of data centered on a rising edge of the TxPost cp ... cn TxPre dp dn ... MSB 1 UI Figure 8. Timing Diagram www.onsemi.com 10 LSB MT9J003 DLL Timing Adjustment data _lane 0 delay del 2[2: 0] delclock[2:0] del 1[2: 0] del 0[2: 0] delay delay data _lane 1 clock_lane0 del 3[2: 0] increase the setup or hold time at the receiver circuits and can be used to compensate for skew introduced in PCB design. If the DLL timing adjustment is not required, the data and clock lane delay settings should be set to a default code of 0x000 to reduce jitter, skew, and power dissipation. The specification includes a DLL to compensate for differences in group delay for each data lane. The DLL is connected to the clock lane and each data lane, which acts as a control master for the output delay buffers. Once the DLL has gained phase lock, each lane can be delayed in 1/8 unit interval (UI) steps. This additional delay allows the user to delay delay data_lane2 data_lane3 Figure 9. Block Diagram of DLL Timing Adjustment 1 UI dataN (de IN = 000) cp (delclock = 000) cp (delclock = 001) cp (delclock = 010) cp (delclock = 011) cp (delclock = 100) cp (delclock = 101) cp (delclock = 110) cp (delclock = 111) increasing delclock_[2:0] increases clock delay Figure 10. Delaying the clock_lane with Respect to data_lane cp (delclock = 000) dataN (delN = 000) dataN (delN = 001) dataN (delN = 010) dataN (delN = 011) dataN (delN = 100) dataN (delN = 101) dataN (delN = 110) dataN (delN = 111) increasing delN_[2:0] increases data delay t DLLSTEP 1 UI Figure 11. Delaying data_lane with Respect to the clock_lane www.onsemi.com 11 MT9J003 data. The streaming protocol will insert a SYNC code to transmit each active data line and vertical blanking lines. The packetized protocol will transmit a SYNC code to note the start and end of each row. The packetized protocol uses sync a "Start of Frame" (SOF) sync code at the start of a frame and a "Start of Line" (SOL) sync code at the start of a line within the frame. The protocol will also transmit an "End of Frame" (EOF) at the end of a frame and an "End of Line" (EOL) sync code at the end of a row within the frame HiSPi Streaming Mode Protocol Layer The protocol layer is positioned between the output data path of the sensor and the physical layer. The main functions of the protocol layer are generating sync codes, formatting pixel data, inserting horizontal/vertical blanking codes, and distributing pixel data over defined data lanes. The HiSPi interface can only be configured when the sensor is in standby. This includes configuring the interface to transmit across 1, 2, or all 4 data lanes. Protocol Fundamentals Referring to Figure 12, it can be seen that a SYNC code is inserted in the serial data stream prior to each line of image Figure 12. Steaming vs. Packetized Transmission www.onsemi.com 12 MT9J003 Parallel Pixel Data Interface horizontal blanking and vertical blanking is programmable; LV is HIGH during the shaded region of the figure. FV timing is described in the "Output Data Timing (Parallel Pixel Data Interface)". MT9J003 image data is read out in a progressive scan. Valid image data is surrounded by horizontal blanking and vertical blanking, as shown in Figure 13. The amount of 00 00 00 ..................................... 00 00 00 00 00 00 ..................................... 00 00 00 00 00 00 .................. 00 00 00 00 00 00 .................. 00 00 00 VERTICAL BLANKING VERTICAL/HORIZONTAL BLANKING 00 00 00 ..................................... 00 00 00 00 00 00 ..................................... 00 00 00 00 00 00 .................. 00 00 00 00 00 00 .................. 00 00 00 P0,0 P0,1 P0,2.....................................P0,n-1 P0,n P1,0 P1,1 P1,2..................................... P1,n-1 P1,n 00 00 00 .................. 00 00 00 00 00 00 .................. 00 00 00 HORIZONTAL BLANKING VALID IMAGE Pm-1,0 Pm-1,1................................. Pm-1,n-1 Pm-1,n 00 00 00 .................. 00 00 00 Pm,0 Pm,1................................. Pm,n-1 Pm,n 00 00 00 .................. 00 00 00 Figure 13. Spatial Illustration of Image Readout Output Data Timing (Parallel Pixel Data Interface) This allows PIXCLK to be used as a clock to sample the data. PIXCLK is continuously enabled, even during the blanking period. The MT9J003 can be programmed to delay the PIXCLK edge relative to the DOUT transitions. This can be achieved by programming the corresponding bits in the row_speed register. The parameters P, A, and Q in Figure 15 are defined in Table 4. MT9J003 output data is synchronized with the PIXCLK output. When LV is HIGH, one pixel value is output on the 12-bit DOUT output every PIXCLK period. The pixel clock frequency can be determined based on the sensor's master input clock and internal PLL configuration. The rising edges on the PIXCLK signal occurs one-half of a pixel clock period after transitions on LV, FV, and DOUT (see Figure 14). LV PIXCLK P0 [11:0] DOUT[11:0] Blanking P1 [11:0] P2 [11:0] P3 [11:0] P4 [11:0] P5 Pn-2 Pn-1[11:0] Valid Image Data Figure 14. Pixel Data Timing Example www.onsemi.com 13 Pn [11:0] Blanking MT9J003 FV LV Number of master clocks P A Q A Q A P Figure 15. Row Timing and FV/LV Signals The sensor timing (shown in Table 4) is shown in terms of pixel clock and master clock cycles (see Figure 14). The default settings for the on-chip PLL generate a pixel array clock (vt_pix_clk) of 160 MHz and an output clock (op_pix_clk) of 40 MHz given a 20 MHz input clock to the MT9J003. Equations for calculating the frame rate are given in "Frame Rate Control". Table 4. ROW TIMING WITH HiSPi INTERFACE Parameter Name Equation Default Timing PIXCLK_ PERIOD Pixel Clock Period 1/vt_pix_clk_freq_mhz 1 Pixel Clock = 6.25 ns S Skip (Subsampling) Factor For x_odd_inc = y_odd_inc = 3, S = 2. For x_odd_inc = y_odd_inc = 7, S = 4. otherwise, S = 1 For y_odd_inc = 3, S = 2 For y_odd_inc = 7, S = 4 For y_odd_inc = 15, S = 8 For y_odd_inc = 31, S = 16 For y_odd_inc = 63, S = 32 1 A Active Data Time (x_addr_end - x_addr_start + x_odd_inc) * 0.5 * PIXCLK_PERIOD/S = 3775 - 112 + 12 1832 Pixel Clock = 11.45 s P Frame Start/end Blanking 6 * PIXCLK_PERIOD 6 Pixel Clock = 37.5 ns Q Horizontal Blanking (line_length_pck - A) * PIXCLK_PERIOD = 3694 - 1832 1862 Pixel Clock = 11.63 s Row Time line_length_pck * PIXCLK_PERIOD 3694 Pixel Clock = 23.09 s N Number of Rows (y_addr_end - y_addr_start + y_odd_inc) / S = (2755 - 8 + 1)/1 2748 Rows V Vertical Blanking ((frame_length_lines - N) * (A + Q)) + Q - (2 * P) = (2891 - 2748) * 3694 + 1862 - 12 530092 Pixel Clock = 3.31 ms T Frame Valid Time (N * (A + Q)) - Q + (2 * P) = 2748*3694 - 1862 + 12 10149262 Pixel Clock = 63.42 ms F Total Frame Time line_length_pck * frame_length_lines * PIXCLK_PERIOD = 2891 * 3694 10679354 Pixel Clock = 66.75 ms A+Q www.onsemi.com 14 MT9J003 Table 5. ROW TIMING WITH PARALLEL INTERFACE Parameter Name Equation Default Timing PIXCLK_ PERIOD Pixel Clock Period 1/vt_pix_clk_freq_mhz 1 Pixel Clock = 6.25 ns S Skip (Subsampling) Factor For x_odd_inc = y_odd_inc = 3, S = 2. For x_odd_inc = y_odd_inc = 7, S = 4. otherwise, S = 1 For y_odd_inc = 3, S = 2 For y_odd_inc = 7, S = 4 For y_odd_inc = 15, S = 8 For y_odd_inc = 31, S = 16 For y_odd_inc = 63, S = 32 1 A Active Data Time (x_addr_end - x_addr_start + x_odd_inc) * 0.5 * PIXCLK_PERIOD/S = (3775 - 112+1)/2 1832 Pixel Clocks = 11.45 s P Frame Start/end Blanking 6 * PIXCLK_PERIOD 6 Pixel Clocks = 75 ns Q Array Horizontal Blanking (line_length_pck - A) * PIXCLK_PERIOD = 7358 - 1832 5526 Pixel Clocks = 34.5 s External horizontal blanking is 30 pixel clocks or 187 ns. Row Time Limited by Output Interface Speed x_output_size * clk_pixel/clk_op + 30 = 3664 * 160 MHz/80 MHz + 30 7358 Pixel Clocks = 46.1 s N Number of Rows (y_addr_end - y_addr_start + y_odd_inc) / S = (2755 - 8 + 1)/1 2748 rows V Vertical Blanking ((frame_length_lines - N) * (A + Q)) + Q - (2 * P) = (2891 - 2748)*7358 + 1862 - 12 1054044 Pixel Clocks = 6.59 ms T Frame Valid Time (N * (A + Q)) - Q + (2 * P) = 2748 * 7358 - 1862 + 12 20217934 Pixel Clocks = 126.36 ms F Total Frame Time line_length_pck * frame_length_lines * PIXCLK_PERIOD = 2891 * 37358 21271978 Pixel Clocks = 132.95 ms A+Q Table 6. ROW TIMING WITH PARALLEL INTERFACE USING LOW POWER MODE Parameter Name Equation Default Timing PIXCLK_ PERIOD Pixel Clock Period 1/vt_pix_clk_freq_mhz 1 Pixel Clock = 12.5 ns S Skip (Subsampling) Factor For x_odd_inc = y_odd_inc = 3, S = 2. For x_odd_inc = y_odd_inc = 7, S = 4. otherwise, S = 1 For y_odd_inc = 3, S = 2 For y_odd_inc = 7, S = 4 For y_odd_inc = 15, S = 8 For y_odd_inc = 31, S = 16 For y_odd_inc = 63, S = 32 1 A Active Data Time (x_addr_end - x_addr_start + x_odd_inc) * 0.5 * PIXCLK_PERIOD/S = (3775-112+1)/2 1832 Pixel Clocks = 22.9 s P Frame Start/end Blanking 6 * PIXCLK_PERIOD 6 Pixel Clocks = 75 ns www.onsemi.com 15 MT9J003 Table 6. ROW TIMING WITH PARALLEL INTERFACE USING LOW POWER MODE (continued) Parameter Q Name Equation Default Timing Array Horizontal Blanking (line_length_pck - A) * PIXCLK_PERIOD = 3694 - 1832 1862 Pixel Clocks = 23.2 s External horizontal blanking is 30 pixel clocks or 375 ns. Row Time Limited by Output Interface Speed x_output_size * clk_pixel/clk_op + 30 = 3664 * 80 MHz/80 MHz + 30 3694 Pixel Clocks = 46.1 s N Number of Rows (y_addr_end - y_addr_start + y_odd_inc) / S = (2755 - 8 + 1)/1 2748 Rows V Vertical Blanking ((frame_length_lines - N) * (A + Q)) + Q - (2 * P) = (2891 - 2748) * 7358 + 1862 - 12 530092 Pixel Clocks = 6.63 ms T Frame Valid Time (N * (A + Q)) - Q + (2 * P) = 2748 * 3694 - 1862 + 12 10149262 Pixel Clocks = 126.86 ms F Total Frame Time line_length_pck * frame_length_lines * PIXCLK_PERIOD = 2891 * 3694 10679354 Pixel Clocks = 133.5 ms A+Q www.onsemi.com 16 MT9J003 Frame Rates at Common Resolutions Table 7 shows examples of register settings to achieve common resolutions and their frame rates. Table 7. REGISTER SETTINGS FOR COMMON RESOLUTIONS Resolution 3664x2748 (Full Resolution) 1920x1080 (1080p HDTV) Interface Frame Rate Subsampling Mode x_addr_start x_addr_end y_addr_start y_addr_end HiSPi 14.7 fps N/A 112 3775 8 2755 Parallel 7.5 fps HiSPi 59.94 fps 2 x 2 Summing 32 3873 296 2453 Parallel 29.97 fps 1280x720 (720p HDTV) HiSPi and Parallel 59.94 fps 2 x 2 Summing 32 3873 296 2453 1408x792 + 10% EIS (720p HDTV + 10% EIS) HiSPi and Parallel 59.94 fps 2 x 2 Summing 624 3437 304 1885 640x480 (Low Power Monitor) HiSPi and Parallel 29.97 fps Sum2Skip2 112 3769 8 2753 TWO-WIRE SERIAL REGISTER INTERFACE The two-wire serial interface bus enables read/write access to control and status registers within the MT9J003. The interface protocol uses a master/slave model in which a master controls one or more slave devices. The sensor acts as a slave device. The master generates a clock (SCLK) that is an input to the sensor and is used to synchronize transfers. Data is transferred between the master and the slave on a bidirectional signal (SDATA). SDATA is pulled up to VDD off-chip by a 1.5 k resistor. Either the slave or master device can drive SDATA LOW-the interface protocol determines which device is allowed to drive SDATA at any given time. The protocols described in the two-wire serial interface specification allow the slave device to drive SCLKLOW; the MT9J003 uses SCLK as an input only and therefore never drives it LOW. generating a stop condition; this is known as a "repeated start" or "restart" condition. Stop Condition A stop condition is defined as a LOW-to-HIGH transition on SDATA while SCLK is HIGH. Data Transfer Data is transferred serially, 8 bits at a time, with the MSB transmitted first. Each byte of data is followed by an acknowledge bit or a no-acknowledge bit. This data transfer mechanism is used for the slave address/data direction byte and for message bytes. One data bit is transferred during each SCLK clock period. SDATA can change when SCLK is LOW and must be stable while SCLK is HIGH. Slave Address Bits [7:1] of this byte represent the device slave address and bit [0] indicates the data transfer direction. A "0" in bit [0] indicates a WRITE, and a "1" indicates a READ. The default slave addresses used by the MT9J003 for the MIPI configured sensor are 0x6C (write address) and 0x6D (read address) in accordance with the MIPI specification. Alternate slave addresses of 0x6E (write address) and 0x6F (read address) can be selected by enabling and asserting the SADDR signal through the GPI pad. But for the CCP2 configured sensor, the default slave addresses used are 0x20 (write address) and 0x21 (read address) in accordance with the SMIA specification. Also, alternate slave addresses of 0x30 (write address) and 0x31 (read address) can be selected by enabling and asserting the SADDR signal through the GPI pad. An alternate slave address can also be programmed through R0x31FC. Protocol Data transfers on the two-wire serial interface bus are performed by a sequence of low-level protocol elements: 1. a (repeated) start condition 2. a slave address/data direction byte 3. an (a no-) acknowledge bit 4. a message byte 5. a stop condition The bus is idle when both SCLK and SDATA are HIGH. Control of the bus is initiated with a start condition, and the bus is released with a stop condition. Only the master can generate the start and stop conditions. Start Condition A start condition is defined as a HIGH-to-LOW transition on SDATA while SCLK is HIGH. At the end of a transfer, the master can generate a start condition without previously www.onsemi.com 17 MT9J003 place. This transfer takes place as two 8-bit sequences and the slave sends an acknowledge bit after each sequence to indicate that the byte has been received. The master then transfers the data as an 8-bit sequence; the slave sends an acknowledge bit at the end of the sequence. The master stops writing by generating a (re)start or stop condition. If the request was a READ, the master sends the 8-bit write slave address/data direction byte and 16-bit register address, the same way as with a WRITE request. The master then generates a (re)start condition and the 8-bit read slave address/data direction byte, and clocks out the register data, eight bits at a time. The master generates an acknowledge bit after each 8-bit transfer. The slave's internal register address is automatically incremented after every 8 bits are transferred. The data transfer is stopped when the master sends a no-acknowledge bit. Message Byte Message bytes are used for sending register addresses and register write data to the slave device and for retrieving register read data. Acknowledge Bit Each 8-bit data transfer is followed by an acknowledge bit or a no-acknowledge bit in the SCLK clock period following the data transfer. The transmitter (which is the master when writing, or the slave when reading) releases SDATA. The receiver indicates an acknowledge bit by driving SDATA LOW. As for data transfers, SDATA can change when SCLK is LOW and must be stable while SCLK is HIGH. No-Acknowledge Bit The no-acknowledge bit is generated when the receiver does not drive SDATA LOW during the SCLK clock period following a data transfer. A no-acknowledge bit is used to terminate a read sequence. Single READ From Random Location This sequence (Figure 16) starts with a dummy WRITE to the 16-bit address that is to be used for the READ. The master terminates the WRITE by generating a restart condition. The master then sends the 8-bit read slave address/data direction byte and clocks out one byte of register data. The master terminates the READ by generating a no-acknowledge bit followed by a stop condition. Figure 16 shows how the internal register address maintained by the MT9J003 is loaded and incremented as the sequence proceeds. Typical Sequence A typical READ or WRITE sequence begins by the master generating a start condition on the bus. After the start condition, the master sends the 8-bit slave address/data direction byte. The last bit indicates whether the request is for a read or a write, where a "0" indicates a write and a "1" indicates a read. If the address matches the address of the slave device, the slave device acknowledges receipt of the address by generating an acknowledge bit on the bus. If the request was a WRITE, the master then transfers the 16-bit register address to which the WRITE should take Previous Reg Address, N S Slave Address 0 A S = Start Condition P = Stop Condition Sr = Restart Condition A = Acknowledge A = No-acknowledge Reg Address[15:8] A Reg Address, M Reg Address[7:0] A Sr Slave Address 1 A Read Data M+1 A P Slave to Master Master to Slave Figure 16. Single READ from Random Location Single READ From Current Location master terminates the READ by generating a no-acknowledge bit followed by a stop condition. The figure shows two independent READ sequences. This sequence (Figure 17) performs a read using the current value of the MT9J003 internal register address. The Previous Reg Address, N S Slave Address 1 A Read Data Reg Address, N+1 A P S Slave Address 1 A N+2 Read Data A P Figure 17. Single READ from Current Location Sequential READ, Start From Random Location has been transferred, the master generates an acknowledge bit and continues to perform byte READs until "L" bytes have been read. This sequence (Figure 18) starts in the same way as the single READ from random location (Figure 16). Instead of generating a no-acknowledge bit after the first byte of data www.onsemi.com 18 MT9J003 Previous Reg Address, N S Slave Address 0 A Reg Address[15:8] M+1 Read Data A Reg Address[7:0] M+2 A Read Data Reg Address, M A Sr M+3 Slave Address M+L-2 A 1 A M+1 Read Data M+L-1 Read Data A Read Data A M+L A P Figure 18. Sequential READ, Start from Random Location Sequential READ, Start From Current Location has been transferred, the master generates an acknowledge bit and continues to perform byte READs until "L" bytes have been read. This sequence (Figure 19) starts in the same way as the single READ from current location (Figure 17). Instead of generating a no-acknowledge bit after the first byte of data Previous Reg Address, N S Slave Address 1 A N+1 Read Data A N+2 Read Data A N+L-1 Read Data A N+L Read Data A P Figure 19. Sequential READ, Start from Current Location Single WRITE to Random Location then LOW bytes of the register address that is to be written. The master follows this with the byte of write data. The WRITE is terminated by the master generating a stop condition. This sequence (Figure 20) begins with the master generating a start condition. The slave address/data direction byte signals a WRITE and is followed by the HIGH Previous Reg Address, N S Slave Address 0 A Reg Address[15:8] Reg Address, M A A Reg Address[7:0] M+1 A A Write Data P Figure 20. Single WRITE to Random Location Sequential WRITE, Start at Random Location has been transferred, the master generates an acknowledge bit and continues to perform byte WRITEs until "L" bytes have been written. The WRITE is terminated by the master generating a stop condition. This sequence (Figure 21) starts in the same way as the single WRITE to random location (Figure 20). Instead of generating a no-acknowledge bit after the first byte of data Previous Reg Address, N S Slave Address 0 A M+1 Write Data Reg Address[15:8] A M+2 A Write Data Reg Address, M Reg Address[7:0] M+3 A Write Data M+L-2 A Write Data 19 A M+L-1 A Figure 21. Sequential WRITE, Start at Random Location www.onsemi.com M+1 Write Data M+L A A P MT9J003 PROGRAMMING RESTRICTIONS The following sections list programming rules that must be adhered to for correct operation of the MT9J003. Table 8. DEFINITIONS FOR PROGRAMMING RULES Definition Name xskip xskip = 1 if x_odd_inc = 1; xskip = 2 if x_odd_inc = 3; xskip = 4 if x_odd_inc = 7 yskip yskip = 1 if y_odd_inc = 1; yskip = 2 if y_odd_inc = 3; yskip = 4 if y_odd_inc = 7; yskip = 8 if y_odd_inc = 15; yskip = 16 if y_odd_inc = 31; yskip = 32 if y_odd_inc = 63 image size generated by the scaler. The MT9J003 will operate incorrectly if the x_output_size and y_output_size are significantly larger than the output image. To understand the reason for this, consider the situation where the sensor is operating at full resolution and the scaler is enabled with a scaling factor of 32 (half the number of pixels in each direction). This situation is shown in Figure 22. X Address Restrictions The minimum column address available for the sensor is 24. The maximum value is 3879. Effect of Scaler on Legal Range of Output Sizes When the scaler is enabled, it is necessary to adjust the values of x_output_size and y_output_size to match the Core output: full resolution, x_output_size = x_addr_end - x_addr_start + 1 LINE_VALID PIXEL_VALID Scaler output: scaled to half size LINE_VALID PIXEL_VALID Limiter output: scaled to half size, x_output_size = x_addr_end - x_addr_start + 1 LINE_VALID PIXEL_VALID Figure 22. Effect of Limiter on the Data Path Because the scaler has reduced the amount of valid pixel data without reducing the row time, the limiter attempts to pad the row with (N/2) additional pixels. If this has the effect of extending LV across the whole of the horizontal blanking time, the MT9J003 will cease to generate output frames. A correct configuration is shown in Figure 23, in addition to showing the x_output_size reduced to match the output size of the scaler. In this configuration, the output of the limiter does not extend LV. Figure 23 also shows the effect of the output FIFO, which forms the final stage in the data path. The output FIFO merges the intermittent pixel data back into a contiguous stream. Although not shown in this example, the output FIFO is also capable of operating with an output clock that is at a different frequency from its input clock. In Figure 22, three different stages in the data path (see "Timing Specifications") are shown. The first stage is the output of the sensor core. The core is running at full resolution and x_output_size is set to match the active array size. The LV signal is asserted once per row and remains asserted for N pixel times. The PIXEL_VALID signal toggles with the same timing as LV, indicating that all pixels in the row are valid. The second stage is the output of the scaler, when the scaler is set to reduce the image size by one-half in each dimension. The effect of the scaler is to combine groups of pixels. Therefore, the row time remains the same, but only half the pixels out of the scaler are valid. This is signaled by transitions in PIXEL_VALID. Overall, PIXEL_VALID is asserted for (N/2) pixel times per row. The third stage is the output of the limiter when the x_output_size is still set to match the active array size. www.onsemi.com 20 MT9J003 Core output: full resolution, x_output_size = x_addr_end - x_addr_start + 1 LINE_VALID PIXEL_VALID Scaler output: scaled to half size LINE_VALID PIXEL_VALID Limiter output: scaled to half size, x_output_size = (x_addr_end - x_addr_start + 1)/2 LINE_VALID PIXEL_VALID Output FIFO: scaled to half size, x_output_size = (x_addr_end - x_addr_start + 1)/2 LINE_VALID PIXEL_VALID Figure 23. Timing of Data Path Changing Registers While Streaming The following registers should only be reprogrammed while the sensor is in software standby: * vt_pix_clk_div * vt_sys_clk_div * pre_pll_clk_div * pll_multiplier * op_pix_clk_div * op_sys_clk_div Output Data Timing The output FIFO acts as a boundary between two clock domains. Data is written to the FIFO in the VT (video timing) clock domain. Data is read out of the FIFO in the OP (output) clock domain. When the scaler is disabled, the data rate in the VT clock domain is constant and uniform during the active period of each pixel array row readout. When the scaler is enabled, the data rate in the VT clock domain becomes intermittent, corresponding to the data reduction performed by the scaler. A key constraint when configuring the clock for the output FIFO is that the frame rate out of the FIFO must exactly match the frame rate into the FIFO. When the scaler is disabled, this constraint can be met by imposing the rule that the row time on the serial data stream must be greater than or equal to the row time at the pixel array. The row time on the serial data stream is calculated from the x_output_size and the data_format (8, 10, or 12 bits per pixel), and must include the time taken in the serial data stream for start of frame/row, end of row/frame and checksum symbols. CAUTION: If this constraint is not met, the FIFO will either underrun or overrun. FIFO underrun or overrun is a fatal error condition that is signalled through the data path_status register (R0x306A). Programming Restrictions When Using Global Reset Interactions between the registers that control the global reset imposes some programming restrictions on the way in which they are used; these are discussed in "Global Reset". www.onsemi.com 21 MT9J003 CONTROL OF THE SIGNAL INTERFACE This section describes the operation of the signal interface in all functional modes. Parallel Pixel Data Interface The parallel pixel data interface uses these output-only signals: * FV * LV * PIXCLK * DOUT[11:0] Serial Register Interface The serial register interface uses these signals: * SCLK * SDATA * SADDR (through the GPI pad) The parallel pixel data interface is disabled by default at power up and after reset. It can be enabled by programming R0x301A. Table 10 shows the recommended settings. When the parallel pixel data interface is in use, the serial data output signals can be left unconnected. Set reset_register[12] to disable the serializer while in parallel output mode. SCLK is an input-only signal and must always be driven to a valid logic level for correct operation; if the driving device can place this signal in High-Z, an external pull-up resistor should be connected on this signal. SDATA is a bidirectional signal. An external pull-up resistor should be connected on this signal. SADDR is a signal, which can be optionally enabled and controlled by a GPI pad, to select an alternate slave address. These slave addresses can also be programmed through R0x31FC. This interface is described in detail in "Two-Wire Serial Register Interface". Output Enable Control When the parallel pixel data interface is enabled, its signals can be switched asynchronously between the driven and High-Z under pin or register control, as shown in Table 9. Selection of a pin to use for the OE_N function is described in "General Purpose Inputs". Table 9. OUTPUT ENABLE CONTROL OE_N Pin Drive Signals R0x301A-B[6] Description Disabled 0 Interface High-Z Disabled 1 Interface Driven 1 0 Interface High-Z X 1 Interface Driven 0 X Interface Driven Configuration of the Pixel Data Interface Fields in R0x301A are used to configure the operation of the pixel data interface. The supported combinations are shown in Table 10. Table 10. CONFIGURATION OF THE PIXEL DATA INTERFACE Serializer Disable R0x301 A-B[12] Parallel Enable R0x301A-B[7] Standby End-of-Frame R0x301A-B[4] 0 0 1 Power up default. Serial pixel data interface and its clocks are enabled. Transitions to soft standby are synchronized to the end of frames on the serial pixel data interface 1 1 0 Parallel pixel data interface, sensor core data output. Serial pixel data interface and its clocks disabled to save power. Transitions to soft standby are synchronized to the end of the current row readout on the parallel pixel data interface 1 1 1 Parallel pixel data interface, sensor core data output. Serial pixel data interface and its clocks disabled to save power. Transitions to soft standby are synchronized to the end of frames in the parallel pixel data interface Description www.onsemi.com 22 MT9J003 System States The sensor's operation is broken down into three separate states: hardware standby, software standby, and streaming. The transition between these states might take a certain amount of clock cycles as outlined in Table 11. The system states of the MT9J003 are represented as a state diagram in Figure 24 and described in subsequent sections. The effect of RESET_BAR on the system state and the configuration of the PLL in the different states are shown in Table 11. Power supplies turned off (asychronous from any state) Powered Off Por active (only if POR is on sensor) POR = 0 RESET_BAR = 0 RESET _BAR transitions 1 -> 0 (asynchronous from any state ) Hardware Standby 2400 EXTCLK Cycles Two-wire Serial Interface Write software_reset = 1 RESET_BAR = 1 Software reset initiated (synchronous from any state) Internal Initialization Initialization Timeout Software Standby Two-wire Serial Interface Write mode_select = 1 PLL not locked PLL Lock Frame in progress PLL locked Wait for Frame End Streaming Two-wire Serial Interface Write mode_select = 0 Figure 24. MT9J003 System States Table 11. RESET_BAR AND PLL IN SYSTEM STATES State EXTCLKs PLL Powered Off - VCO Powered Down (Note 1) POR Active - Hardware Standby 0 Internal Initialization 1 Software Standby PLL Lock VCO Powering Up and Locking, PLL Output Bypassed Streaming VCO Running, PLL Output Active Wait for Frame End 1. VCO = voltage-controlled oscillator. www.onsemi.com 23 MT9J003 Power-On Reset Sequence the operational value for the register (0x2800 if R0x0000 is read). When the sensor leaves software standby mode and enables the VCO, an internal delay will keep the PLL disconnected for up to 1ms so that the PLL can lock. The VCO lock time is 200 s(typical), 1 ms (maximum). When power is applied to the MT9J003, it enters a low-power hardware standby state. Exit from this state is controlled by the later of two events: 1. The negation of the RESET_BAR input. 2. A timeout of the internal power-on reset circuit. It is possible to hold RESET_BAR permanently de-asserted and rely upon the internal power-on reset circuit. When RESET_BAR is asserted it asynchronously resets the sensor, truncating any frame that is in progress. When the sensor leaves the hardware standby state it performs an internal initialization sequence that takes 2400 EXTCLK cycles. After this, it enters a low-power software standby state. While the initialization sequence is in progress, the MT9J003 will not respond to READ transactions on its two-wire serial interface. Therefore, a method to determine when the initialization sequence has completed is to poll a sensor register; for example, R0x0000. While the initialization sequence is in progress, the sensor will not respond to its device address and READs from the sensor will result in a NACK on the two-wire serial interface bus. When the sequence has completed, READs will return Soft Reset Sequence The MT9J003 can be reset under software control by writing "1" to software_reset (R0x0103). A software reset asynchronously resets the sensor, truncating any frame that is in progress. The sensor starts the internal initialization sequence, while the PLL and analog blocks are turned off. At this point, the behavior is exactly the same as for the power-on reset sequence. Signal State During Reset Table 12 shows the state of the signal interface during hardware standby (RESET_BAR asserted) and the default state during software standby. After exit from hardware standby and before any registers within the sensor have been changed from their default power-up values. Table 12. SIGNAL STATE DURING RESET Pad Name Pad Type EXTCLK Input Enabled. Must be driven to a valid logic level RESET_BAR (XSHUTDOWN) Input Enabled. Must be driven to a valid logic level GPI[3:0] Hardware Standby Software Standby Powered down. Can be left disconnected/floating TEST Enabled. Must be driven to a logic 0 for a serial CCP2-configured sensor, or 1 for a serial MIPI-configured sensor SCLK Enabled. Must be pulled up or driven to a valid logic level SDATA I/O LINE_VALID Output Enabled as an input. Must be pulled up or driven to a valid logic level High-Z. Can be left disconnected or floating FRAME_VALID DOUT[11:0] PIXCLK SLVS0_P SLVS0_N SLVS1_P SLVS1_N SLVS2_P SLVS2_N SLVS3_P SLVS3_N CLK_P CLK_N High-Z. FLASH SHUTTER www.onsemi.com 24 Logic 0. MT9J003 General Purpose Inputs The gpi_status register is used to associate a function with a general purpose input. The MT9J003 provides four general purpose inputs. After reset, the input pads associated with these signals are powered down by default, allowing the pads to be left disconnected/floating. The general purpose inputs are enabled by setting reset_register[8] (R0x301A). Once enabled, all four inputs must be driven to valid logic levels by external signals. The state of the general purpose inputs can be read through gpi_status[3:0] (R0x3026). In addition, each of the following functions can be associated with none, one, or more of the general purpose inputs so that the function can be directly controlled by a hardware input: * Output enable (see "Output Enable Control") * Trigger (see the sections below) * Standby functions * SADDR selection (see "Serial Register Interface") Streaming/Standby Control The MT9J003 can be switched between its soft standby and streaming states under pin or register control, as shown in Table 13. Selection of a pin to use for the STANDBY function is described in "General Purpose Inputs". The state diagram for transitions between soft standby and streaming states is shown in Figure 24. Table 13. STREAMING/STANDBY Standby Streaming R0x301A-B[2] Description Disabled 0 Soft Standby Disabled 1 Streaming - 0 Soft Standby 0 1 Streaming 1 - Soft Standby Trigger Control as shown in Table 14. Selection of a pin to use for the TRIGGER function is described in "General Purpose Inputs". When the global reset feature is in use, the trigger for the sequence can be initiated either under pin or register control, Table 14. TRIGGER CONTROL Trigger Global Trigger R0x3160-1[0] Description Disabled 0 Idle Disabled 1 Trigger 0 0 Idle - 1 Trigger 1 - Trigger www.onsemi.com 25 MT9J003 PLL clock applied on EXTCLK, a VCO to multiply the prescaler output, and a set of dividers to generate the output clocks. The clocking structure is shown in Figure 25. The sensor contains a PLL for timing generation and control. The PLL contains a prescaler to divide the input External input clock ext_clk_freq_mhz EXTCLK row_speed [2:0] 1 (1, 2, 4) vt_pix_clk_div 3 (2, 3, 4, 5, 6,7, 8) PLL output clock clk_pixel clk_pixel 1(1, 2, 4, 6, 8) Divider PLL input clock vt pix PLL internal VCO pll_ip_clk_freq clk vt_pix_clk frequency Divider vt sys clk Divider PLL vt_sys_clk Pre PLL Multiplier Divider (m) op sys clk op_sys_clk Divider pre_pll_clk_div (n) 2 (1-64) pll_multiplier (m) 64 (32-128) op pix clk Divider 1(1, 2, 4, 6, 8) op_pix_clk clk_op Divider op_pix_clk_div 12 (8, 10, 12) clk_op row_speed [10:8] 1 (1, 2, 4) Figure 25. Clocking Structure Figure 25 shows the different clocks and the register names. It also shows the default setting for each divider/multiplier control register, and the range of legal values for each divider/multiplier control register. The vt and op sys clk Divider is hardwired in the design. The PLL default settings support the HiSPi interface. clk_pixel_freq_mhz + From the diagram, the clock frequencies can be calculated for the HiSPi interface using a 15 MHz input clock as follows: Internal pixel clock used to readout the pixel array: 15 MHz ext_clk_freq_mhz pll_multiplier + 2 3 pre_pll_clk_div vt_pix_clk_div row_speed [2 : 0] 64 + 160 MHz 1 (eq. 1) 64 + 40 MHz 1 (eq. 2) The external pixel clock used to output the data: clk_op_freq_mhz + 15 MHz ext_clk_freq_mhz pll_multiplier + 2 12 pre_pll_clk_div op_pix_clk_div row_speed [10 : 8] Internal master clock: vt_pix_clk_freq_mhz 2 (eq. 3) The parameter limit register space contains registers that declare the minimum and maximum allowable values for: * The frequency allowable on each clock. * The divisors that are used to control each clock. * The following factors determine what are valid values, or combinations of valid values, for the divider/multiplier control registers: * The minimum/maximum frequency limits for the associated clock must be met. pll_ip_clk_freq must be in the range 6-48 MHz. Higher frequencies are preferred. * PLL internal VCO frequency must be in the range 384-768 MHz. * * The minimum/maximum value for the divider/multiplier must be met. Range for m: 32-128. Range for (n): 1-64. The op_pix_clk must never run faster than the vt_pix_clk to ensure that the output data stream is contiguous. When using the HiSPi serial interface, the op_pix_clk must be 1/4 of the vt_pix_clk. The op_pix_clk_div divider must match the bit-depth of the image when using HiSPi. For example, op_pix_clk_div must be set to 12 for a 12-bit HiSPi output. The is not required when using the parallel interface. When using the parallel interface, the op_pix_clk must be half of the vt_pix_clk. www.onsemi.com 26 MT9J003 * The output line time (including the necessary blanking) * clk_op is used to load parallel pixel data from the Although the PLL VCO input frequency range is advertised as 6-48 MHz, superior performance is obtained by keeping the VCO input frequency as high as possible. The usage of the output clocks is shown below: * clk_pixel is used by the sensor core to control the timing of the pixel array. The sensor core produces one 12-bit pixel each vt_pix_clk period. The line length (line_length_pck) and fine integration time (fine_integration_time) are controlled in increments of the clk_pixel period. An example of the parallel configuration for the PLL will uses an input clock of 10 MHz, an internal pixel clock of 160 MHz, and an output clock of 80 MHz. In this configuration: * n=1 * m = 64 * vt_sys_clk_div = 2 * op_sys_clk_div = 1 * vt_pix_clk_div = 2 * op_pix_clk_div = 8 must be output in a time equal to or less than the time defined by line_length_pck. output FIFO. The output FIFO generates one pixel each op_pix_clk period. Internal pixel clock used to readout the pixel array: clk_pixel_freq_mhz + 10 MHz ext_clk_freq_mhz pll_multiplier + 1 2 pre_pll_clk_div vt_pix_clk_div row_speed [2 : 0] 64 + 160 MHz 2 (eq. 4) 64 + 80 MHz 8 (eq. 5) The external pixel clock used to output the data: clk_op_freq_mhz + 10 MHz ext_clk_freq_mhz pll_multiplier + 1 1 pre_pll_clk_div op_pix_clk_div row_speed [10 : 8] Programming the PLL Divisors Clock Control The PLL divisors must be programmed while the MT9J003 is in the software standby state. After programming the divisors, wait for the VCO lock time before enabling the PLL. The PLL is enabled by entering the streaming state. An external timer will need to delay the entrance of the streaming mode by 1 millisecond so that the PLL can lock. The effect of programming the PLL divisors while the MT9J003 is in the streaming state is undefined. The MT9J003 uses an aggressive clock-gating methodology to reduce power consumption. The clocked logic is divided into a number of separate domains, each of which is only clocked when required. When the MT9J003 enters a low-power state, almost all of the internal clocks are stopped. The only exception is that a small amount of logic is clocked so that the two-wire serial interface continues to respond to READ and WRITE requests. www.onsemi.com 27 MT9J003 FEATURES Scaler and distinguish various module types based on lens, IR-cut filter, or other properties. During the programming process, a dedicated pin for high voltage needs to be provided to perform the anti-fusing operation. This voltage (VPP) would need to be 8.5 V +3%. Instantaneous VPP cannot exceed 9 V at any time. The completion of the programming process will be communicated by a register through the two-wire serial interface. Because this programming pin needs to sustain a higher voltage than other input/output pins, having a dedicated high voltage pin (VPP) minimizes the design risk. If the module manufacturing process can probe the sensor at the die or PCB level (that is, supply all the power rails, clocks, two-wire serial interface signals), then this dedicated high voltage pin does not need to be assigned to the module connector pinout. However, if the VPP pin needs to be bonded out as a pin on the module, the trace for VPP needs to carry a maximum of 1mA is needed for programming only. This pin should be left floating once the module is integrated to a design. If the VPP pin does not need to be bonded-out as a pin on the module, it should be left floating inside the module. The programming of the OTP memory requires the sensor to be fully powered and remain in software standby with its clock input applied. The information will be programmed through the use of the two-wire serial interface, and once the data is written to an internal register, the programming host machine will apply a high voltage to the programming pin, and send a program command to initiate the anti-fusing process. After the sensor has finished programming the OTP memory, a status bit will be set to indicate the end of the programming cycle, and the host machine can poll the setting of the status bit through the two-wire serial interface. Only one programming cycle for the 16-bit word can be performed. Reading the OTP memory data requires the sensor to be fully powered and operational with its clock input applied. The data can be read through a register from the two-wire serial interface. The steps below describe the process to program and verify the programmed data in the OTP memory: 1. Apply power to all the power rails of the sensor (VDD, VDD_IO, VAA, VAA_PIX, VDD_PLL, and VDD_TX0). z Set VAA to 3.1 V during OTP memory programming phase. z VPP needs to be floated during this phase. z Other supplies at nominal. 2. Provide 24 MHz EXTCLK clock input. The PLL settings are discussed at the end of the document. 3. Perform the proper reset sequence to the sensor. 4. Place the sensor in soft standby (sensor default state upon power-up) or ensure the The MT9J003 sensor includes scaling capabilities. This allows the user to generate full field-of-view, low resolution images. Scaling is advantageous because it uses all pixel values to calculate the output image which helps to avoid aliasing. It is also more convenient than binning because the scale factor varies smoothly and the user is not limited to certain ratios of size resolution. The scaling factor is programmable in 1/16 steps. ScaleFactor + scale_n 16 + scale_m scale_m (eq. 6) scale_n is fixed at 16. scale_m is adjustable with R0x0404 Legal values for m are 16 through 128. The user has the ability to scale from 1:1 (m = 16) to 1:8 (m = 128). Shading Correction Lenses tend to produce images whose brightness is significantly attenuated near the edges. There are also other factors causing color plane nonuniformity in images captured by image sensors. The cumulative result of all these factors is known as image shading. The MT9J003 has an embedded shading correction module that can be programmed to counter the shading effects on each individual Red, GreenB, GreenR, and Blue color signal. The Correction Function Color-dependent solutions are calibrated using the sensor, lens system and an image of an evenly illuminated, featureless gray calibration field. From the resulting image, register values for the color correction function (coefficients) can be derived. The correction functions can then be applied to each pixel value to equalize the response across the image as follows: Pcorrected (row, col) + Psensor (row, col) f(row, col) (eq. 7) where P are the pixel values and f is the color dependent correction functions for each color channel. Each function includes a set of color-dependent coefficients defined by registers R0x3600-3726. The function's origin is the center point of the function used in the calculation of the coefficients. Using an origin near the central point of symmetry of the sensor response provides the best results. The center point of the function is determined by ORIGIN_C (R0x3782) and ORIGIN_R (R0x3784) and can be used to counter an offset in the system lens from the center of the sensor array. One-Time Programmable Memory The MT9J003 has a two-byte OTP memory that can be utilized during module manufacturing to store specific information about the module. This feature provides system integrators and module manufacturers the ability to label www.onsemi.com 28 MT9J003 12. Remove high voltage and float VPP pin. 13. Power down the sensor. 14. Apply nominal power to all the power rails of the sensor VDD, VDD_IO, VAA, VAA_PIX and VDD_PLL). VPP must be floated. 15. Set EXTCLK to normal or customer defined operating frequency. 16. Perform the proper reset sequence to the sensor. 17. Initiate the OTP memory reading process by setting R0x304A[4] to the value 0x0010. 18. Poll the register bit R0x304A[6] until bit set to "1" to check for read completion. 19. Read the 16 bit word data from the R0x304E. streaming is turned OFF when the part is in active mode. 5. VPP ramps to 8.5 V in preparation to program. Power supply (VPP) slew rate should be slower than 1 V/s. 6. Program R0x3052 to the value 0x045C. 7. Program R0x3054 to the value 0XEA99. 8. Write the 16 bit word data by programming R0x304C. 9. Initiate the OTP memory programming process by programming R0x304A[0] to the value 0x0001. 10. Check R0x304A [2] = 1, until bit is set to "1" to check for program completion. 11. Repeat steps 9 and 10 two more times. Power Supplies RESET_BAR EXTCLK SCLK/SDATA VPP Information to be programmed to the register. Initiate programming and poll status bit. Read programmed values for status. Figure 26. Sequence for Programming the MT9J003 SENSOR READOUT CONFIGURATION Image Acquisition Modes MT9J003 switches cleanly from the old integration time to the new while only generating frames with uniform integration. See "Changes to Integration Time" in the MT9J003 Register Reference. 2. Global reset mode: This mode can be used to acquire a single image at the current resolution. In this mode, the end point of the pixel integration time is controlled by an external electromechanical shutter, and the MT9J003 provides control signals to interface to that shutter. The operation of this mode is described in detail in "Global Reset". The MT9J003 supports two image acquisition modes: 1. Electronic rolling shutter (ERS) mode: This is the normal mode of operation. When the MT9J003 is streaming; it generates frames at a fixed rate, and each frame is integrated (exposed) using the ERS. When the ERS is in use, timing and control logic within the sensor sequences through the rows of the array, resetting and then reading each row in turn. In the time interval between resetting a row and subsequently reading that row, the pixels in the row integrate incident light. The integration (exposure) time is controlled by varying the time between row reset and row readout. For each row in a frame, the time between row reset and row readout is fixed, leading to a uniform integration time across the frame. When the integration time is changed (by using the two-wire serial interface to change register settings), the timing and control logic controls the transition from old to new integration time in such a way that the stream of output frames from the The benefit of using an external electromechanical shutter is that it eliminates the visual artifacts associated with ERS operation. Visual artifacts arise in ERS operation, particularly at low frame rates, because an ERS image effectively integrates each row of the pixel array at a different point in time. www.onsemi.com 29 MT9J003 Window Control Readout Modes The sequencing of the pixel array is controlled by the x_addr_start, y_addr_start, x_addr_end, and y_addr_end registers. For both parallel and serial interfaces, the output image size is controlled by the x_output_size and y_output_size registers. Horizontal Mirror When the horizontal_mirror bit is set in the image_orientation register, the order of pixel readout within a row is reversed, so that readout starts from x_addr_end and ends at x_addr_start. Figure 27 shows a sequence of 6 pixels being read out with horizontal_mirror = 0 and horizontal_mirror = 1. Changing horizontal_mirror causes the Bayer order of the output image to change; the new Bayer order is reflected in the value of the pixel_order register. Pixel Border The default settings of the sensor provide a 3840 (H) x 2748 (V) image. A border of up to 8 pixels (4 in binning) on each edge can be enabled by reprogramming the x_addr_start, y_addr_start, x_addr_end, y_addr_end, x_output_size, and y_output_size registers accordingly. This provides a total active pixel array of 3856 (H) x 2764 (V) including border pixels. LINE_VALID horizontal_mirror = 0 DOUT[11:0] G0[11:0] R0[11:0] G1[11:0] R1[11:0] G2[11:0] R2[11:0] horizontal_mirror = 1 DOUT[11:0] R2[11:0] G2[11:0] R1[11:0] G1[11:0] R0[11:0] G0[11:0] Figure 27. Effect of Horizontal Mirror on Readout Order being read out with vertical_flip = 0 and vertical_flip = 1. Changing vertical_flip causes the Bayer order of the output image to change; the new Bayer order is reflected in the value of the pixel_order register. Vertical Flip When the vertical_flip bit is set in the image_orientation register, the order in which pixel rows are read out is reversed, so that row readout starts from y_addr_end and ends at y_addr_start. Figure 28 shows a sequence of 6 rows FRAME_VALID vertical_flip = 0 DOUT[11:0] vertical_flip = 1 DOUT[11:0] Row0[11:0] Row1[11:0] Row2[11:0] Row3[11:0] Row4[11:0] Row5[11:0] Row5[11:0] Row4[11:0] Row3[11:0] Row2[11:0] Row1[11:0] Row0[11:0] Figure 28. Effect of Horizontal Mirror on Readout Order www.onsemi.com 30 MT9J003 array. The most common subsampling used is either a 2x2 or 4x4 where every 2nd or 4th pixel is read in the x and y direction. Subsampling The MT9J003 supports subsampling. This feature allows the sensor to read out a sample of pixels available on the 2 x 2 skipping Full Resolution Figure 29. Pixel Array Readout Without Subsampling and With 2x2 Skipping Pixel skipping can be configured up to 4x in the x-direction and 32x in the y-direction. Skipping pixels in the x-direction will reduce the row-time while skipping in the y-direction will reduce the number of rows readout from the sensor. Skipping in both directions will reduce the frame-time and is a common method used to increase the sensor frame-rate. Skipping will introduce image artifacts from aliasing. Skip 2x Skip 32x, 16x, or 8x Skip 4x Figure 30. Combinations of Pixel Skipping in the MT9J003 Sensor www.onsemi.com 31 MT9J003 The subsampling feature can also bin or sum the skipped pixels. Pixel binning will sample pixels and average the value together in the analog domain. Summing will add the charge or voltage values of the neighboring pixels together. 2 x 2 Binning or Summing Binning Summing v avg avg avg e- avg e- v Figure 31. Pixel Binning and Summing summing and skipping implementation will sum neighboring pixels on the same color plane and skip over the adjacent group of pixels. Figure 32 shows that neighboring pixels are summed together. In the case that a subsampling factor of 4x or greater is used with summing, the neighboring pixels will also be summed together. The pixel summing must be done with adjacent pixels within the same color plane. The pixel binning can be configured to combine adjacent pixels or to combine every other pixel. The pixel subsampling can be configured as a combination of skipping and binning or summing. This type of subsampling is typically used to achieve the best combination of pixel responsivity and frame rate. The Figure 32. Pixel Skipping Combined with Summing or Binning Table 15 shows the different combinations of subsampling available with the MT9J003 sensor. The sensor cannot combine pixels using two different methods in the same direction. This means that bin-xy and sum-y are not valid combinations with the sensor. As well, the bin-xy is limited to a skip of 4x in the vertical direction. www.onsemi.com 32 MT9J003 Table 15. SUBSAMPLING COMBINATIONS Skip Y Skip X 1 2 4 8 16 32 Bin X Bin XY Sum X Sum XY 1 - 2 Y - - - - Y - 4 Y - Y - 1 - - - Y 2 Y Y Y Y 4 Y Y Y Y 1 - - - Y 2 Y Y Y Y 4 Y Y Y Y 1 - - - Y 2 Y - Y Y 4 Y - Y Y 1 - - - Y 2 Y - Y Y 4 Y - Y Y 1 - - - Y 2 Y - Y Y 4 Y - Y Y Frame Rate Control can be determined as the largest value found in Equation 8. These are the required values for either the array readout or the bandwidth available to the parallel or serial interface. The frame-time is calculated as the row-time multiplied by the number of rows (frame_length_lines). The row-time is referred to in these calculations as the number of pixel clocks read per row (line_length_pck) multiplied by the vt_pix_clk frequency. The formulas for calculating the frame rate of the MT9J003 are shown below. The line length is programmed in pixel clock periods through the register line_length_pck. The minimum value Absolute Minimum Array Line Length Pck minimum line_length_pck = min_line_length_pck (see Table 16, "Minimum Row Time and Blanking Numbers") Array Readout Line Length Pck x_addr_end-x_addr_start ) x_odd_inc ) min_line_blanking_pck x_odd_inc)1 ) 2x( 2 Interface Line Length Pck x_output_size op_pix_clk ) 30 (For Parallel) vt_pix_clk x_output_size 4 determines the frame-rate of the output interface. The frame-rate using HiSPi will always be higher than using the parallel interface. Values for min_line_blanking_pck are provided in "Minimum Row Time". The frame length is programmed directly in number of lines in the register frame_line_length. For a specific window size, the minimum frame length is shown in Equation 11: (eq. 9) op_pix_clk ) 30 (ForHiSPi) (eq. 10) vt_pix_clk Note that line_length_pck will be the maximum of the three equations. The second equation describes the limitations from the readout of the pixel array while the third minimumframe_length_lines + (eq. 8) y_addr_end * y_addr_start ) 1 ) min_frame_blanking_lines subsampling factor www.onsemi.com 33 (eq. 11) MT9J003 The frame rate can be calculated from these variables and the pixel clock speed as shown in Equation 12: frame rate + vt_pixel_clock_mhz 1 10 6 (eq. 12) line_length_pck_xframe_length_lines If coarse_integration_time is set larger than frame_length_lines the frame size will be expanded to coarse_integration_time + 1. Minimum Row Time The minimum row time and blanking values with default register settings are shown in Table 16. Table 16. MINIMUM ROW TIME AND BLANKING NUMBERS No Row Binning Register row_speed[2:0] Row Binning 1 2 4 1 2 4 min_line_blanking_pck 0x046E 0x029A 0x01B0 0x0822 0x046C 0x0292 min_line_length_pck 0x0670 0x03E0 0x02F0 0x0CC0 0x0660 0x03D8 Parallel - line_length_pck > (x_output_size) * "vt_pix_clk period" / "op_pix_clk period" + 0x005E. HiSPi (4-lane) - line_length_pck > (1/4)*(x_output_size) * "vt_pix_clk period" / "op_pix_clk period" + 0x005E. In addition, enough time must be given to the output FIFO so it can output all data at the set frequency within one row time. There are therefore three checks that must all be met when programming line_length_pck: 1. line_length_pck> min_line_length_pck in Table 16. 2. line_length_pck > 0.5 * (x_addr_end - x_addr_start + x_odd_inc)/((1+x_odd_inc)/2) + min_line_blanking_pck in Table 16. 3. The row time must allow the FIFO to output all data during each row. Minimum Frame Time The minimum number of rows in the image is 2, so min_frame_length_lines will always equal (min_frame_blanking_lines + 2). Table 17. MINIMUM FRAME TIME AND BLANKING NUMBERS Register min_frame_blanking_lines 0x008F min_frame_length_lines 0x0091 time_max_margin. Values for different mode combinations are shown in Table 18. Fine Integration Time Limits The limits for the fine_integration_time can be found from fine_integration_time_min and fine_integration_ Table 18. FINE_INTEGRATION_TIME LIMITS No Row Binning Register row_speed[2:0] 1 2 fine_integration_time_min 0x03F2 fine_integration_time_max_margin 0x027E Row Binning 4 1 2 4 0x020A 0x094 0x07B2 0x03AE 0x010C 0x012E 0x0108 0x050E 0x0276 0x0224 www.onsemi.com 34 MT9J003 Fine Correction For the fine_integration_time limits, the fine_correction constant will change with the pixel clock speed and binning mode. These values are shown in Table 19. Table 19. FINE_CORECTION VALUES No Row Binning Register Row Binning row_speed[2:0] 1 2 4 1 2 4 fine_correction 0x09C 0x048 0x01E 0x0134 0x094 0x044 Low Power Mode achieved with low power mode are lower than in full power mode. Because only internal pixel clock speeds of 1, 2, and 4 are supported, low power mode combined with pc_speed[2:0] = 4 is an illegal combination. Any limitations related to changing the internal pixel clock speed will also apply to low power mode, because it automatically changes the pixel clock speed. Therefore, the limiter registers need to be reprogrammed to match the new internal pixel clock frequency. The MT9J003 sensor supports a low power mode, which can be entered by programming register bit read_mode[9]. Setting this bit will do the following: * Double the value of pc_speed[2:0] internally. This means halving the internal pixel clock frequency. * Lower currents in the analog domain. This can be done by setting a low power bit in the static control register. The current will be halved where appropriate in the analog domain. Integration Time Note that enabling the low power mode will not put the sensor in subsampling mode. This will have to be programmed separately as described earlier in this document. Low power is independent of the readout mode and can also be enabled in full resolution mode. Because the pixel clock speed is halved, the frame rates that can be The integration (exposure) time of the MT9J003 is controlled by the fine_integration_time and coarse_integration_time registers. The limits for the fine integration time are defined by: fine_integration_time_min fine_integration_time (line_length_pck-fine_integration_time_max_margin) (eq. 13) The limits for the coarse integration time are defined by: coarse_integration_time_min t coarse_integration_time (eq. 14) The actual integration time is given by: ((coarse_integration_time line_length_pck) ) fine_integration_time) (vt_pix_clk_freq_mhz 10 6) (eq. 15) coarse_integration_time t+ (frame_length_lines * coarse_integration_time_max_margin) (eq. 16) integration_time + It is required that: If this limit is exceeded, the frame time will automatically be extended to (coarse_integration_time + coarse_integartion_time_max_margin) to accommodate the larger integration time. www.onsemi.com 35 MT9J003 ON Semiconductor Gain Model The registers provide three 2x and one 4x analog gain stages. The first analog gain stage has a granularity of 64 steps over 2x gain. A digital gain from 1-7x can also be applied. The ON Semiconductor gain model uses color-specific registers to control both analog and digital gain to the sensor. These registers are: * global_gain * greenR_gain * red_gain * blue_gain * greenB_gain analog gain + (8(8 * g(colamp) t 11 : 9 u)x(1 ) color_gain[8])(1 ) color_gain[7])(color_gain[6 : 0]64) Bits 11 to 9 are also restricted to 0, 4, and 6. This limits the particular gain stage to 4x. (eq. 17) As a result of the different gain stages, analog gain levels can be achieved in different ways. The recommended gain sequence is shown below in Table 20. Table 20. RECOMMENDED GAIN STAGES Desired Gain Recommended Gain Register Setting 1-1.98 0x1040-0x107F 2-3.97 0x1840-0x187F 4-7.94 0x1C40-0x1C7F 8-15.875 0x1CC0-0x1CFF 16-31.75 0x1DC0-0x1DFF Flash Control integration time. This can be avoided either by first enabling mask bad frames (write reset_register[9] = 1) before the enabling the flash or by forcing a restart (write reset_register[1] = 1) immediately after enabling the flash; the first bad frame will then be masked out, as shown in Figure 35. Read-only bit flash[14] is set during frames that are correctly integrated; the state of this bit is shown in Figures 33, 34, and 35. The MT9J003 supports both xenon and LED flash through the FLASH output signal. The timing of the FLASH signal with the default settings is shown in Figure 33, and in Figure 34 and Figure 35. The flash and flash_count registers allow the timing of the flash to be changed. The flash can be programmed to fire only once, delayed by a few frames when asserted, and (for xenon flash) the flash duration can be programmed. Enabling the LED flash will cause one bad frame, where several of the rows only have the flash on for part of their FRAME_VALID Flash STROBE State of triggered bit (R0x3046-7[14]) Figure 33. Xenon Flash Enabled www.onsemi.com 36 MT9J003 FRAME_VALID Flash STROBE State of triggered bit (R0x3046-7[14]) Bad frame Flash enabled during this frame Bad frame Good frame Good frame Flash disabled during this frame Notes: 1. Integration time = number of rows in a frame. 2. Bad frames will be masked during LED flash operation when mask bad frames bit field is set (R0x301A[9] = 1). 3. An option to invert the flash output signal through R0x3046[7] is also available. Figure 34. LED Flash Enabled FRAME_VALID Flash STROBE State of triggered bit (R0x3046-7[14]) Masked out frame Flash enabled and a restart triggered Masked out frame Good frame Good frame Flash disabled and a restart triggered Figure 35. LED Flash Enabled Following Forced Restart Global Reset 4. All of the rows of the pixel array are taken out of reset simultaneously. All rows start to integrate incident light. The electromechanical shutter may be open or closed at this time. 5. If the electromechanical shutter has been closed, it is opened. 6. After the desired integration time (controlled internally or externally to the MT9J003), the electromechanical shutter is closed. 7. A single output frame is generated by the sensor with the usual LV, FV, PIXCLK, and DOUT timing. As soon as the output frame has completed (FV de-asserts), the electromechanical shutter may be opened again. 8. The sensor automatically resumes operation in ERS mode. Global reset mode allows the integration time of the MT9J003 to be controlled by an external electromechanical shutter. Global reset mode is generally used in conjunction with ERS mode. The ERS mode is used to provide viewfinder information, the sensor is switched into global reset mode to capture a single frame, and the sensor is then returned to ERS mode to restore viewfinder operation. Overview of Global Reset Sequence The basic elements of the global reset sequence are: 1. By default, the sensor operates in ERS mode and the SHUTTER output signal is LOW. The electromechanical shutter must be open to allow light to fall on the pixel array. Integration time is controlled by the coarse_integration_time and fine_integration_time registers. 2. A global reset sequence is triggered. 3. All of the rows of the pixel array are placed in reset. This sequence is shown in Figure 36. The following sections expand to show how the timing of this sequence is controlled. www.onsemi.com 37 MT9J003 ERS Row Reset Integration Readout ERS Figure 36. Overview of Global Reset Sequence automatically resumes operation in ERS mode. The first frame integrated with ERS will be generated after a delay of approximately: ((13 + coarse_integration_time) * line_length_pck) This sequence is shown in Figure 37. While operating in ERS mode, double-buffered registers are updated at the start of each frame in the usual way. During the global reset sequence, double-buffered registers are updated just before the start of the readout phase. Entering and Leaving the Global Reset Sequence A global reset sequence can be triggered by a register write to global_seq_trigger[0] (global trigger, to transition this bit from a 0 to a 1) or by a rising edge on a suitably-configured GPI input (see "Trigger Control"). When a global reset sequence is triggered, the sensor waits for the end of the current row. When LV de-asserts for that row, FV is de-asserted 6 PIXCLK periods later, potentially truncating the frame that was in progress. The global reset sequence completes with a frame readout. At the end of this readout phase, the sensor Trigger Wait for end of current row ERS Row Reset Automatic at end of frame readout Integration Readout ERS Figure 37. Entering and Leaving a Global Reset Sequence As soon as the global_rst_end count has expired, all rows in the pixel array are simultaneously taken out of reset and the pixel array begins to integrate incident light. Programmable Settings The registers global_rst_end and global_read_start allow the duration of the row reset phase and the integration phase to be controlled, as shown in Figure 38. The duration of the readout phase is determined by the active image size. Trigger Automatic at end of frame readout Wait for end of current row ERS Row Reset Integration Readout ERS global_rst_end global_read_start Figure 38. Controlling the Reset and Integration Phases of the Global Reset Sequence point at which the shutter closes. Finally, the shutter opens again after the end of the readout phase. In shutter example 2, the shutter is open during the initial ERS sequence and closes sometime during the row reset phase. The shutter both opens and closes during the integration phase. The pixel array is integrating incident light for the part of the integration phase during which the shutter is open. As for the previous example, the shutter opens again after the end of the readout phase. Control of the Electromechanical Shutter Figure 39 shows two different ways in which a shutter can be controlled during the global reset sequence. In both cases, the maximum integration time is set by the difference between global_read_start and global_rst_end. In shutter example 1, the shutter is open during the initial ERS sequence and during the row reset phase. The shutter closes during the integration phase. The pixel array is integrating incident light from the start of the integration phase to the www.onsemi.com 38 MT9J003 Trigger Wait for end of current row ERS Row Reset Automatic at end of frame readout Integration Readout ERS global_rst_end global_read_start maximum integration time actual integration time SHUTTER Example 1 shutter open shutter closed shutter open shutter closed shutter open actual integration time SHUTTER Example 2 shutter open closed shutter open Figure 39. Control of the Electromechanical Shutter The MT9J003 provides a SHUTTER output signal to control (or help the host system control) the electromechanical shutter. The timing of the SHUTTER output is shown in Figure 40. SHUTTER is de-asserted by default. The point at which it asserts is controlled by the programming of global_shutter_start. At the end of the global reset readout phase, SHUTTER de-asserts approximately 2 * line_length_pck after the de-assertion of FV. This programming restriction must be met for correct operation: global_read_start >global_shutter_start It is essential that the shutter remains closed during the entire row readout phase (that is, until FV has de-asserted for the frame readout); otherwise, some rows of data will be corrupted (over-integrated). It is essential that the shutter closes before the end of the integration phase. If the row readout phase is allowed to start before the shutter closes, each row in turn will be integrated for one row-time longer than the previous row. After FV de-asserts to signal the completion of the readout phase, there is a time delay of approximately 10 * line_length_pck before the sensor starts to integrate light-sensitive rows for the next ERS frame. It is essential that the shutter be opened at some point in this time window; otherwise, the first ERS frame will not be uniformly integrated. Trigger Automatic at end of frame readout Wait for end of current row ERS Row Reset Integration Readout ERS global_rst_end ~2*line_length_pck global_read_start global_shutter_start SHUTTER Figure 40. Controlling the SHUTTER Output global reset sequence. The FLASH output will assert a fixed number of cycles after the start of the integration phase and will remain asserted for a time that is controlled by the value of the flash_count register, as shown in Figure 41. Using FLASH with Global Reset If global_seq_trigger[2] = 1 (global flash enabled) when a global reset sequence is triggered, the FLASH output signal will be pulsed during the integration phase of the www.onsemi.com 39 MT9J003 Trigger Wait for end of current row ERS Row Reset Automatic at end of frame readout Integration Readout ERS global_rst_end (fixed) flash_count FLASH Figure 41. Using FLASH With Global Reset When the trigger is de-asserted to end integration, the integration phase is extended by a further time given by global_read_start - global_shutter_start. Usually this means that global_read_start should be set to global_shutter_start + 1. The operation of this mode is shown in Figure 42. The figure shows the global reset sequence being triggered by the GPI2 input, but it could be triggered by any of the GPI inputs or by the setting and subsequence clearing of the global_seq_trigger[0] under software control. The integration time of the GRR sequence is defined as: External Control of Integration Time If global_seq_trigger[1] = 1 (global bulb enabled) when a global reset sequence is triggered, the end of the integration phase is controlled by the level of trigger (global_seq_trigger[0] or the associated GPI input). This allows the integration time to be controlled directly by an input to the sensor. This operation corresponds to the shutter "B" setting on a traditional camera, where "B" originally stood for "Bulb" (the shutter setting used for synchronization with a magnesium foil flash bulb) and was later considered to stand for "Brief" (an exposure that was longer than the shutter could automatically accommodate). IntegrationTime + [global_read_start-global_shutter_start-global_rst_end] global_scale vt_pix_clk_freq_mhz (eq. 18) Where: global_read_start + (2 16 global_shutter_start + (2 16 (eq. 19) global_read_start2[7 : 0] ) global_read_start1[15 : 0] global_shutter_start2[7 : 0] ) global_shutter_start1[15 : 0] (eq. 20) These programming restrictions must be met for correct operation of bulb exposures: * global_read_start > global_shutter_start * global_shutter_start > global_rst_end * global_shutter_start must be smaller than the exposure time (that is, this counter must expire before the trigger is de-asserted) The integration equation allows for 24-bit precision when calculating both the shutter and readout of the image. The global_rst_end has only 16-bit as the array reset function and requires a short amount of time. The integration time can also be scaled using global_scale. The variable can be set to 0-512, 1-2048, 2-128, and 3-32. Trigger Wait for end of current row ERS Row Reset Automatic at end of frame readout Integration global_rst_end Readout ERS global_read_start - global_shutter_start GPI2 Figure 42. Global Reset Bulb www.onsemi.com 40 MT9J003 frame out of the serial pixel data interface, including the addition of two lines of embedded data. The values of the coarse_integration_time and fine_integration_time registers within the embedded data match the programmed values of those registers and do not reflect the integration time used during the global reset sequence. Retriggering the Global Reset Sequence The trigger for the global reset sequence is edge-sensitive; the global reset sequence cannot be retriggered until the global trigger bit (in the global_seq_trigger register) has been returned to "0," and the GPI (if any) associated with the trigger function has been de-asserted. The earliest time that the global reset sequence can be retriggered is the point at which the SHUTTER output de-asserts; this occurs approximately 2 * line_length_pck after the negation of FV for the global reset readout phase. The frame that is read out of the sensor during the global reset readout phase has exactly the same format as any other ERS Row Reset Global Reset and Soft Standby If the mode_select[stream] bit is cleared while a global reset sequence is in progress, the MT9J003 will remain in streaming state until the global reset sequence (including frame readout) has completed, as shown in Figure 43. Integration Readout ERS mode_select[streaming] system state Streaming Figure 43. Entering Soft Standby During a Global Reset Sequence www.onsemi.com 41 Software Standby MT9J003 SENSOR CORE DIGITAL DATA PATH Test Patterns test_pattern_mode (R0x0600-1). The test patterns are listed in Table 21. The MT9J003 supports a number of test patterns to facilitate system debug. Test patterns are enabled using Table 21. TEST PATTERNS test_pattern_mode Description 0 Normal operation: no test pattern 1 Solid color 2 100% color bars 3 Fade-to-gray color bars 4 PN9 link integrity pattern (only on sensors with serial interface) 256 Walking 1s (12-bit value) 257 Walking 1s (10-bit value) 258 Walking 1s (8-bit value) Test patterns 0-3 replace pixel data in the output image (the embedded data rows are still present). Test pattern 4 replaces all data in the output image (the embedded data rows are omitted and test pattern data replaces the pixel data). HiSPi Test Patterns Test patterns specific to the HiSPi are also generated. The test patterns are enabled by using test_enable (R0x31C6 - 7) and controlled by test_mode (R0x31C6[6:4]). Table 22. HiSPi TEST PATTERNS Description test_mode 0 Transmit a constant 0 on all enabled data lanes 1 Transmit a constant 1 on all enabled data lanes 2 Transmit a square wave at half the serial data rate on all enabled data lanes 3 Transmit a square wave at the pixel rate on all enabled data lanes 4 Transmit a continuous sequence of pseudo random data, with no SAV code, copied on all enabled data lanes 5 Replace data from the sensor with a known sequence copied on all enabled data lanes are programmable in R0x31E8-R0x31EE. Both even and odd cursor positions and widths are supported. Each cursor can be inhibited by setting its width to "0." The programmed cursor position corresponds to the x and y addresses of the pixel array. For example, setting horizontal_cursor_position to the same value as y_addr_start would result in a horizontal cursor being drawn starting on the first row of the image. The cursors are opaque (they replace data from the imaged scene or test pattern). The color of each cursor is set by the values of the Bayer components in the test_data_red, test_data_greenR, test_data_blue and test_data_greenB registers. As a consequence, the cursors are the same color as test pattern 1 and are therefore invisible when test pattern 1 is selected. When vertical_cursor_position = 0x0FFF, the vertical cursor operates in an automatic mode in which its position advances every frame. In this mode the cursor starts at the column associated with x_addr_start = 0 and advances by a For all of the test patterns, the MT9J003 registers must be set appropriately to control the frame rate and output timing. This includes: * All clock divisors * x_addr_start * x_addr_end * y_addr_start * y_addr_end * frame_length_lines * line_length_pck * x_output_size * y_output_size Test Cursors The MT9J003 supports one horizontal and one vertical cursor, allowing a crosshair to be superimposed on the image or on test patterns 1-3. The position and width of each cursor www.onsemi.com 42 MT9J003 the value of image_orientation can be understood from these implementation details: * The test cursors are inserted last in the data path, the cursor is applied with out any sensor corrections. * The drawing of a cursor starts when the pixel array row or column address is within the address range of cursor start to cursor start + width. * The cursor is independent of image orientation. step-size of 8 columns each frame, until it reaches the column associated with x_addr_start = 2040, after which it wraps (256 steps). The width and color of the cursor in this automatic mode are controlled in the usual way. The effect of enabling the test cursors when the image_orientation register is non-zero is not defined by the design specification. The behavior of the MT9J003 is shown in Figure 44 and the test cursors are shown as translucent, for clarity. In practice, they are opaque (they overlay the imaged scene). The manner in which the test cursors are affected by Horizontal mirror = 0, Vertical flip = 0 Vertical cursor start Horizontal mirror = 1, Vertical flip = 0 Readout Direction Vertical cursor start Readout Direction Horizontal mirror = 1, Vertical flip = 1 Horizontal cursor start Horizontal mirror = 0, Vertical flip = 1 Horizontal cursor start Readout Direction Horizontal cursor start Horizontal cursor start Readout Direction Vertical cursor start Vertical cursor start Figure 44. Test Cursor Behavior With Image Orientation www.onsemi.com 43 MT9J003 TIMING SPECIFICATIONS Power-Up Sequence 4. After the last power supply is stable, enable EXTCLK. 5. Assert RESET_BAR for at least 1ms. 6. Wait 2400 EXTCLKs for internal initialization into software standby. 7. Configure PLL, output, and image settings to desired values 8. Set mode_select = 1 (R0x0100). 9. Wait 1 ms for the PLL to lock before streaming state is reached. The recommended power-up sequence for the MT9J003 is shown in Figure 45. The available power supplies- VDD_IO, VDD, VDD_TX, VDD_PLL, VAA, VAA_PIX, VDD_SLVS, VDD_SLVS_TX- can be turned on at the same time or have the separation specified below. 1. Turn on VDD_IO power supply. 2. After 1-500 ms, turn on VDD and VDD_TX power supply. 3. After 1-500 ms, turn on VDD_PLL and VAA/VAA_PIX power supplies. VDD_IO t1 VDD, VDD_SLVS, VDD_TX t2 VDD_PLL VAA, VAA_PIX VDD_SLVS_TX t3 t4 EXTCLK t5 RESET_BAR t6 Hard Reset t7 Internal INIT Software Standby PLL Lock Streaming Figure 45. Power-Up Sequence Table 23. POWER-UP SEQUENCE Definition Symbol Min Typ Max Unit VDD_IO to VDD, VDD_TX Time t1 0 - 500 ms VDD, VDD_TX to VDD_PLL Time t2 0 - 500 ms VDD, VDD_TX to VAA/VAA_PIX Time t3 0 - 500 ms VAA, VAA_PIX to VDD_SLVS_TX t4 - - 500 ms Active Hard Reset t5 1 - - ms Internal Initialization t6 2400 - - EXTCLKs PLL Lock Time t7 1 - - ms 1. Digital supplies must be turned on before analog supplies. Power-Down Sequence 1. Disable streaming if output is active by setting mode_select = 0 (R0x0100). 2. The soft standby state is reached after the current row or frame, depending on configuration, has ended. The recommended power-down sequence for the MT9J003 is shown in Figure 46. The available power supplies- VDD_IO, VDD, VDD_TX0, VDD_PLL, VAA, VAA_PIX, VDD_SLVS, VDD_SLVS_TX- can be turned off at the same time or have the separation specified below. www.onsemi.com 44 MT9J003 3. Assert hard reset by setting RESET_BAR to a logic "0." 4. Turn off the VAA/VAA_PIX and VDD_PLL power supplies. 5. After 1-500 ms, turn off VDD and VDD_TX0 power supply. 6. After 1-500 ms, turn off VDD_IO power supply. t5 VDD_IO VDD, VDD_SLVS, VDD_TX VDD_PLL t4 VAA, VAA_PIX t3 VDD_SLVS_TX t2 EXTCLK RESET_BAR t1 Hard Reset Software Standby Streaming Turning Off Power Supplies Figure 46. Test Cursor Behavior With Image Orientation Table 24. POWER-DOWN SEQUENCE Definition Symbol Min Typ Max Unit Hard reset t1 1 - - ms VDD_SLVS_TX to VDD time t2 0 - 500 ms VDD/VAA/VAA_PIX to VDD time t3 0 - 500 ms VDD_PLL to VDD time t4 0 - 500 ms VDD to VDD_IO time t5 0 - 500 ms Hard Standby and Hard Reset 2. The soft standby state is reached after the current row or frame, depending on configuration, has ended. 3. Assert RESET_BAR (active LOW) to reset the sensor. 4. The sensor remains in hard standby state if RESET_BAR remains in the logic "0" state. The hard standby state is reached by the assertion of the RESET_BAR pad (hard reset). Register values are not retained by this action, and will be returned to their default values once hard reset is completed. The minimum power consumption is achieved by the hard standby state. The details of the sequence are described below and shown in Figure 47. 1. Disable streaming if output is active by setting mode_select = 0 (R0x0100). www.onsemi.com 45 MT9J003 EXTCLK mode_select R0x0100 next row/frame Logic "1" Logic "0" RESET_BAR Streaming Soft Standby Hard Standby from Hard Reset Figure 47. Hard Standby and Hard Reset Soft Standby and Soft Reset 2. The soft standby state is reached after the current row or frame, depending on configuration, has ended. The MT9J003 can reduce power consumption by switching to the soft standby state when the output is not needed. Register values are retained in the soft standby state. Once this state is reached, soft reset can be enabled optionally to return all register values back to the default. The details of the sequence are described below and shown in Figure 48. Soft Reset 1. Follow the soft standby sequence listed above. 2. Set software_reset = 1 (R0x0103) to start the internal initialization sequence. 3. After 2400 EXTCLKs, the internal initialization sequence is completed and the current state returns to soft standby automatically. All registers, including software_reset, return to their default values. Soft Standby 1. Disable streaming if output is active by setting mode_select = 0 (R0x0100). EXTCLK next row/frame mode_select R0x0100 Logic "1" Logic "0" Logic "0" Logic "0" software_reset R0x0103 Logic "0" Logic "0" Logic "1" Logic "0" 2400 EXTCLKs Streaming Soft Standby Soft Reset Soft Standby Figure 48. Soft Standby and Soft Reset www.onsemi.com 46 MT9J003 SPECTRAL CHARACTERISTICS 50 Blue 45 G re e n Red 40 Quantum Efficiency (%) 35 30 25 20 15 10 5 0 350 400 450 500 550 600 650 700 750 Wavelength (nm) Figure 49. Quantum Efficiency CRA vs. Image Height Plot Image Height 0 0 0 5 0.191 0.67 10 0.382 1.34 15 0.574 2.01 20 0.765 2.68 25 0.956 3.35 30 1.147 4.03 35 1.339 4.70 40 1.530 5.37 45 1.721 6.04 50 1.912 6.71 55 2.103 7.38 6 60 2.295 8.05 65 2.486 8.72 4 70 2.677 9.39 75 2.868 10.06 80 3.059 10.73 85 3.251 11.41 90 3.442 12.08 95 3.633 12.75 100 3.824 13.42 20 18 16 14 CRA (deg) CRA (deg) 12 10 8 2 0 0 10 20 30 40 50 60 Image Height (%) 70 80 Figure 50. CRA (13.45) www.onsemi.com 47 90 100 110 MT9J003 ELECTRICAL CHARACTERISTICS Table 25. DC ELECTRICAL DEFINITIONS AND CHARACTERISTICS (fEXTCLK = 15 MHz; VDD = 1.8 V; VDD_IO = 1.8 V; VAA = 2.8 V; VAA_PIX = 2.8 V; VDD_PLL = 2.8 V; VDD_SLVS = 1.8 V, VDD_SLVS_TX = 0.8 V; Output load = 68.5 pF; TJ = 60C; Data Rate = 480 MHz,; DLL set to 0, 10 Mp frame-rate at 14.7 fps) Condition Symbol Min Typ Max Unit Core Digital Voltage VDD 1.7 1.8 1.9 V Core Digital Voltage VDD 1.7 1.8 1.9 V VDD_IO 1.7 1.8 1.9 V VAA 2.4 2.8 3.1 V Pixel Supply Voltage VAA_PIX 2.4 2.8 3.1 V PLL Supply Voltage VDD_PLL 2.4 2.8 3.1 V HiSPi Digital Voltage VDD_SLVS 1.7 1.8 1.9 V VDD_SLVS_TX 0.3 0.4 0.9 V Definition I/O Digital Voltage Parallel Pixel Data Interface Analog Voltage HiSPi I/O Digital Voltage Digital Operating Current Streaming, Full Resolution 35 41 45 mA I/O Digital Operating Current Streaming, Full Resolution 0 0 0 mA Analog Operating Current Streaming, Full Resolution 132 169 190 mA Pixel Supply Current Streaming, Full Resolution 2.7 7.6 13.3 mA PLL Supply Current Streaming, Full Resolution 6.5 7 7.5 mA HiSPi Digital Operating Current Streaming, Full Resolution n/a 20 n/a mA HiSPi I/O Digital Operating Current Streaming, Full Resolution 13 13.5 14 mA 1.3 1.5 1.9 mW Soft Standby (Clock On) CAUTION: Stresses greater than those listed in Table 20 may cause permanent damage to the device. This is a stress rating only, and functional operation of the device at these or any other conditions above those indicated in the operational sections of this specification is not implied. Table 26. ABSOLUTE MAXIMUM RATINGS Symbol Definition VDD_MAX Condition Min Max Unit Core Digital Voltage -0.3 1.9 V VDD_IO_MAX I/O Digital Voltage -0.3 3.1 V VAA_MAX Analog Voltage -0.3 3.5 V VAA_PIX Pixel Supply Voltage -0.3 3.5 V VDD_PLL PLL Supply Voltage -0.3 3.5 V VDD_SLVS_MAX HiSPi Digital Voltage -0.3 1.9 V VDD_SLVS_TX_MAX HiSPi I/O Digital Voltage -0.3 1.2 V IDD Digital Operating Current - 90 mA IDD_IO I/O Digital Operating Current - 100 mA IAA_MAX Analog Operating Current - 225 mA IAA_PIX Pixel Supply Current -6 25 mA IDD_PLL PLL Supply Current - 25 mA tOP Operating Temperature -30 70 C tST Storage Temperature -40 85 C Measure at Junction Stresses exceeding those listed in the Maximum Ratings table may damage the device. If any of these limits are exceeded, device functionality should not be assumed, damage may occur and reliability may be affected. 1. Exposure to absolute maximum rating conditions for extended periods may affect reliability. 2. To keep dark current and shot noise artifacts from impacting image quality, care should be taken to keep tOP at a minimum. www.onsemi.com 48 MT9J003 Table 27. PARALLEL INTERFACE CONFIGURED TO USE LOW POWER MODE (fEXTCLK = 15 MHz; VDD = 1.8 V; VDD_IO = 1.8 V; VAA = 2.8 V; VAA_PIX = 2.8 V; VDD_PLL = 2.8 V; TJ = 60C; Parallel Data Rate = 80 Mp/s) Frame Rate IAA IDDPLL IDD IDDIO IAAPIX 10 MP 7.5 fps 103.29 10.26 23.93 11.53 2.33 388 mW 720p60 59.94 fps 122.78 10.25 23.85 11.21 5.39 451 mW 1080p30 29.97 fps 114.67 10.26 22.89 4.49 4.14 411 mW VGA60 59.94 fps 82.66 10.27 18.5 4.51 5.25 316 mW Monitor 29.97 fps 69.22 10.28 16.3 6.35 2.76 271 mW 1. Monitor is a low power VGA preview mode. The power consumption values in this table represent a small sample of MT9J003 sensors. The IDDIO current will double if the VDD_IO voltage is raised to 2.8V. tr_clk tSRTH SCLK tSDH tSDS tSCLK tSHAW tf_clk tr_sdat tf_sdat 90% 90% 10% 10% tSTPS tSTPH tAHSW SDATA Write Address Write Address Register Address Register Value Bit 7 Bit 0 Bit 7 Bit 0 ACK Write Start tSHAR SCLK Stop tAHSR tSDHR tSDSR SDATA Read Start Read Address Read Address Register Value Register Value Bit 7 Bit 0 Bit 7 Bit 0 ACK 1. Read sequence: For an 8-bit READ, read waveforms start after WRITE command and register address are issued. Figure 51. Two-Wire Serial Bus Timing Parameters Table 28. TWO-WIRE SERIAL REGISTER INTERFACE ELECTRICAL CHARACTERISTICS (fEXTCLK = 15 MHz; VDD = 1.8 V; VDD_IO = 1.8 V; VAA = 2.8 V; VAA_PIX = 2.8 V; VDD_PLL = 2.8 V; VDD_SLVS = 1.8 V, VDD_SLVS_TX = 0.4 V; Output load = 68.5 pF; TJ = 60C; Data Rate = 480 MHz; DLL set to 0) Symbol Parameter Condition VIL Input LOW voltage IIN Input leakage current No pull up resistor; VIN = VDD_IO or DGND VOL Output LOW voltage At specified 2 mA IOL Output LOW current At specified VOL 0.1 V CIN Input pad capacitance CLOAD Load capacitance Min Typ Max Unit -0.5 0.73 0.3 x VDD_IO V 2 A 0.035 V 3 mA 6 pF -2 0.031 0.032 pF www.onsemi.com 49 MT9J003 Table 29. TWO-WIRE SERIAL REGISTER INTERFACE TIMING SPECIFICATION (fEXTCLK = 15 MHz; VDD = 1.8 V; VDD_IO = 1.8 V; VAA = 2.8V; VAA_PIX = 2.8 V; VDD_PLL = 2.8 V; VDD_SLVS = 1.8 V, VDD_SLVS_TX = 0.4 V; Output load = 68.5 pF; TJ = 60C; Data Rate = 480 MHz,; DLL set to 0) Symbol Parameter Condition Min Typ Max Unit fSCLK Serial Interface Input Clock - 0 100 400 kHz SCLK Duty Cycle VOD 45 50 60 % 300 s tR SCLK/SDATA Rise Time tSRTS Start Setup Time Master WRITE to Slave 0.6 s tSRTH Start Hold Time Master WRITE to Slave 0.4 s tSDH SDATA Hold Master WRITE to Slave 0.3 tSDS SDATA Setup Master WRITE to Slave 0.3 tSHAW SDATA Hold to ACK Master READ to Slave 0.15 0.65 s tAHSW ACK Hold to SDATA Master WRITE to Slave 0.15 0.70 s 0.65 s s tSTPS Stop Setup Time Master WRITE to Slave 0.3 s tSTPH Stop Hold Time Master WRITE to Slave 0.6 s tSHAR SDATA Hold to ACK Master WRITE to Slave 0.3 1.65 s tAHSR ACK Hold to SDATA Master WRITE to Slave 0.3 0.65 s tSDHR SDATA Hold Master READ from Slave 012 0.70 s tSDSR SDATA Setup Master READ from Slave 0.3 tR tF s tRP tFP 90 % 90 % 10 % 10 % tEXTCLK EXTCLK tPD tPD tCP PIXCLK Data[11:0] Pxl_0 Pxl_1 Pxl_2 Pxl_n tPFH tPLH tPFL tPLL FRAME_VALID/ LINE_VALID FRAME_VALID leads LINE_VALID by 6 PIXCLKs. Figure 52. I/O Timing Diagram www.onsemi.com 50 FRAME_VALID trails LINE_VALID by 6 PIXCLKs. MT9J003 Table 30. I/O PARAMETERS (fEXTCLK = 15 MHz; VDD = 1.8 V; VAA = 2.8 V; VAA_PIX = 2.8 V; VDD_PLL = 2.8 V; VDD_SLVS = 1.8 V, VDD_SLVS_TX = 0.4 V; Output load = 68.5 pF; TJ = 60C; Data Rate = 480 MHz,; DLL set to 0) Symbol Definition Conditions Min Max Units VIH Input HIGH Voltage VDD_IO = 1.8V 1.4 V VDD_IO = 2.8V 2.4 VDD_IO + 0.3 VDD_IO = 1.8V GND - 0.3 0.4 VDD_IO = 2.8V GND - 0.3 0.8 VIL Input LOW Voltage IIN Input Leakage Current No Pull-up Resistor; VIN = VDD OR DGND - 20 20 A VOH Output HIGH Voltage At Specified IOH VDD_IO - 0.4V - V VOL Output LOW Voltage At Specified IOL - 0.4 V IOH Output HIGH Current At Specified VOH - -12 mA IOL Output LOW Current At Specified VOL - 9 mA IOZ Tri-state Output Leakage Current - 10 A Table 31. I/O TIMING (fEXTCLK = 15 MHz; VDD = 1.8 V; VDD_IO = 1.8 V; VAA = 2.8 V; VAA_PIX = 2.8 V; VDD_PLL = 2.8 V; VDD_SLVS = 1.8 V, VDD_SLVS_TX = 0.4 V; Output load = 68.5 pF; TJ = 60C; Data Rate = 480 MHz; DLL set to 0) Symbol Definition Conditions Min Typ Max Units fEXTCLK Input Clock Frequency PLL Enabled 6 24 48 MHz tEXTCLK Input Clock Period PLL Enabled 166 41 20 ns tR Input Clock Rise Time 0.1 - 1 V/ns tF Input Clock Fall Time 0.1 - 1 V/ns Clock Duty Cycle 45 50 55 % tJITTER Input Clock Jitter - - 0.3 ns Output Pin Slew Fastest CLOAD = 15 pF - 0.7 - V/ns fPIXCLK PIXCLK Frequency Default - 80 - MHz tPD PIXCLK to Data Valid Default - - 3 ns tPFH PIXCLK to FRAME_VALID HIGH Default - - 3 ns tPLH PIXCLK to LINE_VALID HIGH Default - - 3 ns tPFL PIXCLK to FRAME_VALID LOW Default - - 3 ns tPLL PIXCLK to LINE_VALID LOW Default - - 3 ns www.onsemi.com 51 MT9J003 tRISE 80% DATA MASK Vdiff 90% TxPre TxPost tFALL UI/2 Max Vdiff UI/2 Vdiff CLOCK MASK Trigger/Reference CLKJITTER Figure 53. HiSPi Eye Diagram for Both Clock and Data Signals Table 32. HiSPi RISE AND FALL TIMES AT 480 MHz (Measurement Conditions: PHY Supply 1.8 V, HiSPi Power Supply 0.8 V, Data Rate 480 MHz, DLL set to 0) Parameter Name Value Unit Max Setup Time from Transmitter TxPRE 0.44 UI Max Hold Time from Transmitter TxPost 0.44 UI Rise Time t tRISE 350 ps Fall Time t tFALL 350 ps 66 Output Impedance Table 33. HiSPi RISE AND FALL TIMES AT 360 MHz (Measurement Conditions: PHY Supply 1.8 V, HiSPi Power Supply 0.8 V, Data Rate 480 MHz, DLL set to 0) Parameter Name Value Unit Max Setup Time from Transmitter TxPRE 0.48 UI Max Hold Time from Transmitter TxPost 0.42 UI Rise Time t tRISE 350 ps Fall Time t tFALL 350 ps 66 Output Impedance www.onsemi.com 52 MT9J003 tCHSKEW1PHY Figure 54. HiSPi Skew Between Data Signals Within the PHY Table 34. CHANNEL, PHY AND INTRA-PHY SKEW (Measurement Conditions: PHY Supply 1.8 V, HiSPi Power Supply 0.8 V, Data Rate 480 MHz, DLL set to 0) tCHSKEW1PHY Data Lane Skew in Reference to Clock -150 ps Table 35. CLOCK DLL STEPS (Measurement Conditions: PHY Supply 1.8 V, HiSPi Power Supply 0.8 V, Data DLL set to 0) Clock DLL Step 1 2 3 4 5 Step Delay @ 480MHz 0.25 0.375 0.5 0.625 0.75 UI Eye_opening@ 480 MHz 0.85 0.78 0.71 0.71 0.69 UI Eye_opening@ 360 MHz 0.89 0.83 0.81 0.60 046 UI 1. The Clock DLL Steps 6 and 7 are not recommended by ON Semiconductor for the MT9J003 Rev. 2. Table 36. DATA DLL STEPS (Measurement Conditions: PHY Supply 1.8 V, HiSPi Power Supply 0.8 V, Clock DLL set to 0) Data DLL Step 1 2 4 6 Step Delay @ 480MHz 0.25 0.375 0.625 0.875 UI Eye_opening@ 480 MHz 0.79 0.84 0.71 0.61 UI Eye_opening@ 360 MHz 0.85 0.83 0.82 0.77 UI 1. The Data DLL Steps 3, 5, and 7 are not recommended by ON Semiconductor for the MT9J003 Rev. 2. www.onsemi.com 53 MT9J003 (0, 2) 0.1 A (1, 25) Seating plane A 0.1 A 100.075 7.7 0.7 Typ. 1.40.5 0.15 A B C 3.85 C 47X 0.80.05 0.15 A B C 4.2 4.5 100.075 7.7 3.85 0.7 Typ. 48X 0.40.05 0.15 A B C 4.5 9 0.7250.075 5.0140.075 Encapsulant2 First Clear Pixel Substrate3 5.0820.075 Lid4 Image sensor die6 (4.589 CTR) 7.50.10 CTR 7 Optical Area Optical Center8 0.5250.05 (0.125) (6.413 CTR) 80.10 CTR Section A - A Notes: 1. 2. 3. 4. 5. 6. 7. Dimensions in mm. Dimensions in () are for reference only. Encapsulant: Epoxy Substrate material: Plastic laminate 0.5 thickness List material: Borosilicate glass 0.4 thickness. Refractive index at 20C = 1.5255 @ 546 nm and 1.5231 @ 588 nm. Lead finish: Gold plating, 0.5 microns minimum thickness. Image sensor die 0.2 thickness. Maximum rotation of optical area relative to seating plane A: 25 microns. Maximum tilt of optical area relative to top of cover glass: 20 microns. Maximum tilt of optical area relative to top of cover glass: 50 microns. 8. Die center = package center; optical center offset from package center: X = 0.01356, Y = -0.081705 Figure 55. Package Mechanical Drawing (CASE 847AK) www.onsemi.com 54 MT9J003 ON Semiconductor and are trademarks of Semiconductor Components Industries, LLC dba ON Semiconductor or its subsidiaries in the United States and/or other countries. ON Semiconductor owns the rights to a number of patents, trademarks, copyrights, trade secrets, and other intellectual property. A listing of ON Semiconductor's product/patent coverage may be accessed at www.onsemi.com/site/pdf/Patent-Marking.pdf. ON Semiconductor reserves the right to make changes without further notice to any products herein. ON Semiconductor makes no warranty, representation or guarantee regarding the suitability of its products for any particular purpose, nor does ON Semiconductor assume any liability arising out of the application or use of any product or circuit, and specifically disclaims any and all liability, including without limitation special, consequential or incidental damages. Buyer is responsible for its products and applications using ON Semiconductor products, including compliance with all laws, regulations and safety requirements or standards, regardless of any support or applications information provided by ON Semiconductor. "Typical" parameters which may be provided in ON Semiconductor data sheets and/or specifications can and do vary in different applications and actual performance may vary over time. All operating parameters, including "Typicals" must be validated for each customer application by customer's technical experts. ON Semiconductor does not convey any license under its patent rights nor the rights of others. ON Semiconductor products are not designed, intended, or authorized for use as a critical component in life support systems or any FDA Class 3 medical devices or medical devices with a same or similar classification in a foreign jurisdiction or any devices intended for implantation in the human body. Should Buyer purchase or use ON Semiconductor products for any such unintended or unauthorized application, Buyer shall indemnify and hold ON Semiconductor and its officers, employees, subsidiaries, affiliates, and distributors harmless against all claims, costs, damages, and expenses, and reasonable attorney fees arising out of, directly or indirectly, any claim of personal injury or death associated with such unintended or unauthorized use, even if such claim alleges that ON Semiconductor was negligent regarding the design or manufacture of the part. ON Semiconductor is an Equal Opportunity/Affirmative Action Employer. This literature is subject to all applicable copyright laws and is not for resale in any manner. PUBLICATION ORDERING INFORMATION LITERATURE FULFILLMENT: Literature Distribution Center for ON Semiconductor 19521 E. 32nd Pkwy, Aurora, Colorado 80011 USA Phone: 303-675-2175 or 800-344-3860 Toll Free USA/Canada Fax: 303-675-2176 or 800-344-3867 Toll Free USA/Canada Email: orderlit@onsemi.com N. American Technical Support: 800-282-9855 Toll Free USA/Canada Europe, Middle East and Africa Technical Support: Phone: 421 33 790 2910 Japan Customer Focus Center Phone: 81-3-5817-1050 www.onsemi.com 55 ON Semiconductor Website: www.onsemi.com Order Literature: http://www.onsemi.com/orderlit For additional information, please contact your local Sales Representative MT9J003/D