ADE3800_05 [STMICROELECTRONICS]
Analog LCD Display Engine for XGA and SXGA Resolutions with Embedded LVDS and RSDS Transmitters; 对XGA和SXGA分辨率的模拟液晶显示引擎与内置LVDS和RSDS变送器型号: | ADE3800_05 |
厂家: | ST |
描述: | Analog LCD Display Engine for XGA and SXGA Resolutions with Embedded LVDS and RSDS Transmitters |
文件: | 总138页 (文件大小:1878K) |
中文: | 中文翻译 | 下载: | 下载PDF数据表文档文件 |
ADE3800
Analog LCD Display Engine for XGA and SXGA Resolutions
with Embedded LVDS and RSDS Transmitters
■ Low power 0.15 µm process technology
Feature Overview
■ Low cost 100-pin LQFP and 128-pin LQFP packages
■ Lead-free versions available in 2005.
■ Programmable Context Sensitive™ Filtering
■ High-quality Up-scaling and Down-scaling
■ Integrated 10-bit Triple Channel ADC/PLL
■ IQSync™ AutoSetup
■ Integrated Programmable Timing Controller
■ Integrated LVDS Transmitters
■ Integrated Pattern Generator
■ Perfect Picture™ Technology
■ sRGB 3D Color Warp
General Description
ADE3800 devices are a family of highly-integrated
display engine ICs, enabling the most advanced, flexible,
and cost-effective system-on-chip solutions for analog-
only input LCD display applications.
The ADE3800 covers the full range of XGA and SXGA
analog-only monitor applications using LVDS or RSDS
interface.
■ High performance OSD supporting 1- to 4-bpp,
proportional fonts
The ADE3800 family is software compatible.
■ Advanced EMI reduction features
■ Serial I²C interface
ST7 Flash Microcontroller
I²C address = 0xA8
I²C
Line-Lock
PLL
On-Screen
Display Engine
Pattern
Generator
EMI Reduction
•Spread Spectrum
Analog
RGB
Video
Triple
10-bit
ADC
IQ Scaling™
Engine with
Context Sensitive™
Filtering
Signals
Fast and accurate
adjustments of:
•Phase
•Position
•Level
To TFT
LCD
Panel
sRGB 3D Color Warp
Temporal & Spatial
Dithering
•Clock
Programmable Timing Controller (TCON)
ADE3800
LCD Scaler Product Selector
Output Format Support
Product
Package
Resolution
RSDS/TCON
LVDS
ADE3800XL
100 LQFP
100 LQFP
100 LQFP
128 LQFP
Up to XGA 75 Hz
Up to XGA 75 Hz
Up to SXGA 75 Hz
Up to SXGA 75 Hz
Yes
ADE3800XT
ADE3800SXL
ADE3800SXT
Yes
Yes
Yes
Rev. 3.2
April 2005
1/138
ADE3800
■ Bordering, shadowing, transparency, fade-in
Context Sensitive™ Scaler
and fade-out effects
■ Sharper text with Edge Enhancement
■ Supports font rotation
■ Programmable coefficients for unique
■ Up to full screen size, multiple windows
■ 64-entry TrueColor LUT with alpha-blending
customization
■ From 5:1 upscale to 2:1 downscale
■ Independent X - Y axis zoom and shrink
Programmable Timing Controller
(TCON)
Analog RGB input
■ Highly programmable support for XGA and
■ 140 MHz 10-bit ADC
SXGA smart panels
■ Ultra low jitter digital Line Lock PLL
■ RSDS split line support for SXGA smart panels
■ Supports 18, 24, 36, and 48-bit RSDS outputs
■ Advanced Flicker Detection and Reduction
■ Composite Sync and Sync on Green built-in
support
■ 8 programmable timing signals for row/column
IQsync™ AutoSetup
control
■ AutoSetup configures phase, clock, level, and
■ Wide range of drivers & TCON compatibility
position
■ Automatically detects activity on input
Integrated LVDS Transmitters
■ Compatible with all standard VESA and GTF
■ Dual 4 channel 6/8 bit LVDS transmitters
■ Programmable channel swapping
■ Programmable channel polarity
modes
Perfect Picture™ Technology
■ Programmable group channel swapping for
■ Video & Picture highlight zone
flexibility in board layout
■ Supports up to 4 different windows
■ Programmable output swing control
■ Independent window controls for contrast,
brightness and color
Advanced EMI Reduction Features
■ Flexible data transition minimization, single and
Perfect Color™ Technology
dual
■ Programmable 3D Color Warp
■ Differential clock and signals
■ Digital brightness, contrast, hue, and saturation
■ Spread spectrum - programmable digital FM
modulation of the output clock with no external
components
gamma controls
■ Simple white point control
■ Compatible with sRGB standard
■ True color dithering for 18 and 24-bit panels
■ Temporal and spatial dithering
■ 30-bit programmable gamma table
Output Format
■ Supports resolutions up to SXGA @ 75Hz
■ Supports resolution above SXGA (1280x1024)
with convenient input and output pixel clocks
OSD Engine
■ Supports 6 or 8-bit Panels
■ Supports single or double pixel wide formats
■ 12 KB RAM based 12x18 characters
■ 1, 2, 3, 4-bit per pixel color characters
■ Multiple Windows
2/138
ADE3800
Table of Contents
Chapter 1
Chapter 2
Chapter 3
Important Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
General Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
Pin Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
Chapter 4
Register Description by Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
4.1
Global Control (GLBL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.2
Frequency Synthesizer (FSYN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Dotclock vs Outclock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.2.1
4.3
Analog-to-Digital Converter (ADC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
216MHz Frequency Synthesizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Sync-on-Green (SOG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.3.1
4.3.2
4.4
Analog Dithering (ADTH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Addressing Technique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Output Amplitude Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.4.1
4.4.2
4.4.3
4.4.4
4.5
Line Lock PLL (LLK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.6
Sync Retiming (SRT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Coast Signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.6.1
4.7
Input Sync Measurement (SMEAS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Input Sync - Activity Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Input Sync - Measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Fast Mute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.7.1
4.7.2
4.7.3
4.8
Sync Multiplexer (SMUX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.9
Data Measurement (DMEAS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Function Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Window Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Algorithm Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Mode Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Edge Intensity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Pixel Sum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Min / Max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Pixel Cumulative Distribution (PCD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.9.1
4.9.2
4.9.3
4.9.4
4.9.5
4.9.6
4.9.7
4.9.8
3/138
ADE3800
4.9.9
H Position Min / Max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.9.10 V Position Min / Max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.9.11 DE Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.10
Scale (SCL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.10.1 Frame Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.10.2 Context Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.10.3 Scale Kernel Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.11
Pattern Generator (PGEN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.11.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.11.2 Color Mask Sequencer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.11.3 8 x 8 Grid Layout with Optional Resets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.11.4 Borders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.11.5 TCON Window Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.12
sRGB (SRGB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.12.1 Parametric Gamma, Digital Contrast / Brightness on Multiple Windows . . . . . . . . . . . . . . . . . . . . . 68
4.12.2 Color Space Warp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.13
4.14
Gamma (GAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
On-Screen Display (OSD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.14.1 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.14.2 Color LUT Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.14.3 Alpha Blending . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.14.4 RAM Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.15
4.15.1 Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.16 Adaptive Phase Control (APC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Flicker (FLK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.16.1 Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.16.2 Addressing Technique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.16.3 Dither threshold Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.17
Output Mux (OMUX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.17.1 Output Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.17.2 Output Clocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.17.3 Clock Sources and Timing Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.18
4.19
Timing Controller (TCON) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
LVDS/RSDS Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
4.19.1 Output Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
4.20
4.21
Pulse Width Modulation (PWM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
I²C Block Transfer (I2CBKT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
4.21.1 Transfer Setup and Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
4/138
ADE3800
4.21.2 Transfer Progress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
4.21.3 Concurrent I2C Transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
4.22 I²C Registers and RAM Addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
4.22.1 I2C Transfer Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
4.22.2 Dedicated RAM Areas per Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
4.22.3 Multi-byte Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Chapter 5
Electrical Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124
Absolute Maximum Ratings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Nominal Operating Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Preliminary Thermal Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
5.1
5.2
5.3
5.4
Preliminary DC Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
LVTTL 5-Volt Tolerant Inputs with Hysteresis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
LVTTL 3-Volt Tolerant Inputs with Hysteresis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
LVTTL 5-Volt Tolerant I/O with Hysteresis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
LVTTL 3-Volt Tolerant I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
LVTTL 3-Volt Tolerant I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.4.1
5.4.2
5.4.3
5.4.4
5.4.5
5.5
5.6
5.7
LVDS Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
RSDS Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
ADC Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Chapter 6
Package Mechanical Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129
100 Pin LQFP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
128 Pin LQFP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
6.1
6.2
Chapter 7
Chapter 8
Chapter 9
Scaler Equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132
ADE3800 vs ADE3700 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133
Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136
Chapter 10 Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137
5/138
Important Information
ADE3800
1
Important Information
● XCLK: Crystal oscillator, usually 27 MHz.
● INCLK: ADC Sampling clock frequency, depends on input video mode pixel rate.
● DOTCLK and OUTCLK: Related to Panel Output Pixel Rate.
● SCLK: Scale Clock used for the line buffer Ram and picture zooming.
● If some bit fields are missing, these bits are marked as "reserved":
— return 0 when read, but it is also the user's duty to mask them upon readout, to ensure
compatibility with later device releases
— must be written to 0 when the whole register is written
in all cases, the default reset value always prevails
● An asterisk denotes the default reset value for the corresponding bit(s).
● Unless all addresses and registers values are in hexadecimal.
● “not sticky” means dynamically updated (set or reset) by hardware, not a static bit.
● A “sticky” bit, once set remains set until the user clears it.
● When a value is followed by “typ” this means it is a typical value and PVT dependent.
● If a time or delay value does not have “min/typ/max” information, it is proportional to the XCLK
frequency.
● Any register names containing HW are shadow registers: they report which value is currently
being used by the chip.
● When a register bit field list has one bold option, it is the only choice for normal mode of
operation.
● TCON must always be programmed for any panel type.
● Values spread out over several registers are organised as follows:
32-bit values
24-bit values
LSB _L or _0
16-bit values
LSB _L
_0
_1
_2
_3
LSB
USB
_M or _1
_U or _2
MSB _U
USB
USB
6/138
ADE3800
General Description
2
General Description
The ADE3800 family of devices is capable of implementing all of the advanced features of todays
LCD monitor products. For maximum flexibility, an external microcontroller (MCU) is used for
controlling the ADE3800 and other monitor functions.
Figure 1: ADE3800 Block Diagram
MCU (SCL, SDA)
ADE3800
PWM
Pulse Width
Modulation
SMEAS
Sync
Measure
I²C
GLBL
Global
Control
XCLK
Domain
SRT
Sync
Analog
H&V
Retiming
Syncs
FLK
Flicker
Detection
LLK
Line Lock
PLL
SMUX
Sync
Multiplexer
SCLK
Domain
DCLK
Domain
SCL
Scaler
Out Data
Syncs, &
Clock
ADC
(Digital)
ADC
(Analog)
Analog
R, G, B
Data
DMEAS
Data
Measure
TCON
Timing
Controller
SCLK
PLL
DCLK
PLL, FM
TCON
INCLK
Domain
The ADE3800 architecture unburdens the MCU from all data-intensive pixel manipulations,
providing an optimal blend of features and code customizing without incurring the cost of a 16-bit
processor or memory. The key interactions between the monitor MCU and the ADE3800 can be
broken down into the features shown in Table 1.
Table 1: ADE3800 Features (Sheet 1 of 2)
Feature
Description of ADE3800 Operation
Blocks Used Pages
Power-up / Initialize When power is first applied, the ADE3800 is asynchronously reset from a pin. GLBL
The MCU typically programs the ADE3800 with a number of default values and SMEAS
18
36
30
21
72
53
71
68
102
92
94
sets up the ADE3800 to identify activity on any of the input pins. All pre-
LLK
configured values and RAMs, such as line-lock PLL settings, OSD characters, ADC
LCD timing values (output sequencer), scale kernels, gamma curves, sRGB
color warp, APC dithering, output pin configuration (OMUX), etc. can be pre-
loaded into the ADE3800. The typical end state is that the ADE3800 is
OSD
SCALER
GAMMA
initialized into a low power mode, ready to turn active once the power button is SRGB
pressed.
TCON
APC
OMUX
Activity Detect
When the monitor has been powered on, the inputs can be monitored for active SMEAS
video sources. Based on the activity monitors, the MCU chooses an input or
power down state.
36
7/138
General Description
ADE3800
Table 1: ADE3800 Features (Sheet 2 of 2)
Description of ADE3800 Operation
Feature
Blocks Used Pages
Sync / Timing
Measurement
Once an input source is selected, all available information on frequencies and SMEAS
line/pixel counts is measured for the selected source and made available to the
MCU.
36
Mode Set
Autotune
Once the MCU has determined the matching video mode or calculated a video GLBL
18
30
33
43
53
mode using a GTF algorithm, the datapath is programmed to drive the flat
LLK
panel. Clock frequencies for the internal memory and datapath are also set at SRT
this time.
SMUX
SCALER
When the MCU calls for an autotune, the MCU sets up an iterative loop to
search for the best phase, gain, offset, etc. At each step of the loop, the MCU
DMEAS
LLK
47
30
21
43
33
kicks off a test in which the ADE3800 performs extensive statistical analysis of ADC
the incoming data stream. The results of the analysis are made available to the SMUX
MCU which is responsible for the optimization algorithm.
SRT
Digital Contrast /
Brightness
In response to user OSD control, the MCU can program single 8-bit registers
that set brightness and contrast for each color channel independently.
SRGB
68
68
71
68
59
White Point Control In response to user OSD control, the MCU can program three 8-bit registers
that set the white point for the output.
SRGB
GAMMA
Adjustment
The MCU can program the gamma RAMs to implement 10-bit accurate color
transformations to match the panel color characteristics.
GAMMA
SRGB
sRGB Control
Allows simple, intuitive color control for parametric gamma correction and 3D
color cube warping.
Pattern Generation For production testing, the ADE3800 can be programmed by the MCU to output PGEN
a wide set of test patterns.
Flicker Reduction
Backlight Control
Low Power State
For Smart Panel applications, the MCU can set up the flicker detection block to FLICKER
88
102
report any correlation with the polarity inversion signal. The MCU can then
change the polarity inversion to a non-correlating pattern to eliminate flicker.
TCON
The ADE3800 provides two PWM outputs for direct control of the power
components in a typical backlight. The MCU sets up the registers and enables
the function.
PWM
119
18
To enter a low power state, the MCU can gate off most of the clocks and put the GLBL
analog blocks into a low power standby state.
8/138
ADE3800
General Description
The following table gives a brief description of each block of the ADE3800:
Table 2: ADE3800 Block Descriptions
Block
Description
Global Control (GLBL)
Responsible for selecting clock sources, power control, I²C control and block by block
synchronous reset generation
Frequency Synthesizer (FSYN)
Analog-to-Digital Converter (ADC)
Generates the output clock (also known as the dot clock & DCLK) and the scaler clock
(SCLK). Frequency modulation, phase control, and pulse extension (duty cycle control) of
the output clock are also provided.
Has the following features:
- Supports input clocks up to 140MHz (SXGA 75Hz)
- Adjustable analog amplifier bandwidth
- Differential RGB input path for noise immunity
- Built-in Sync-on-Green support
- Individual RGB clock delay control
- Power down control
- Linear and independent Gain/Offset adjustment
Analog Dithering (ADTH)
Line Lock PLL (LLK)
Sync Retiming (SRT)
Generates a 3-bit dither pattern to tune the 10-bit resolution of the ADC block.
Generates the ADC sample clock from an incoming HSync source.
Retimes synchronization signals (e.g. HSync and VSync) into either the XCLK or in-clock
domains.
Input Sync Measurement (SMEAS) Monitors input port activity and measures input sync signals from all sources.
Sync Multiplexer (SMUX)
Synthesizes clamp and horizontal and vertical enable signals from input sync signals.
Selects which signals continue to the scaler block
Data Measurement (DMEAS)
Scale (SCL)
Measures several characteristics of the pixel data and sync signals.
Resizes images from one resolution to another.
Pattern Generator (PGEN)
Provides the ability of displaying a set of useful graphic patterns to help debugging and
testing LCD panels.
sRGB (SRGB)
Performs parametric gamma correction on multiple windows or full screen, used for video
enhancement in a window and digital contrast/brightness control.
Allows 3D color cube warping RGB color space.
Gamma (GAM)
Implements three independent 256 point gamma curves for each of R, G, and B channels.
On-Screen Display (OSD)
Has the following features:
- One RAM block 4096x24 is used for the full operation of the OSD.
- The characters can be displayed anywhere on the screen.
- Horizontal/Vertical Start location for each row in the OSD.
- Global Alpha blending for all the characters displayed as well as Alpha blending per color
with 16 levels.
- Horizontal/Vertical flip based per character.
- 1bpp/2bpp/3bpp/4bpp characters supported.
- Rotation supported by means of having a 18x12 pixel character or 12x18 pixel character.
- Color LUT of 64 colors (24bit RGB True Color)
Flicker (FLK)
Computes a nonlinear correlation of LCD polarity inversion patterns and the LCD output
data stream and provides the correlation results as scores to the microcontroller.
Adaptive Phase Control (APC)
Generates a 2-bit dither pattern for an 8-bit panel or a 4-bit dither pattern for a 6-bit panel to
visually improve the amplitude resolution of the 10-bit RGB output signal.
9/138
General Description
ADE3800
Table 2: ADE3800 Block Descriptions
Description
Block
Output Mux (OMUX)
An extension of the ADE3700 output mux block. The major changes are:
- LVDS controls
- RSDS split line buffer
Timing Controller (TCON)
LVDS/RSDS Features
Provides timing for Smart Panel applications and other applications that are sensitive to
output synchronization timing. The timing unit is based on horizontal and vertical counters,
which are locked with the output video stream.
Has the following features:
- Power down
- Output swing and common mode programmable
- Individual channel programmable delay
- Programmable LVDS clock output polarity
Pulse Width Modulation (PWM)
Generates two signals that can be used to control backlight inverter switching power
components directly. It is derived from XCLK and can be powered up independently of the
DOTCLK and INCLK domains.
Allows the internal I2C parallel bus to be driven by an xclk state machine to perform rapid
block transfers between internal addresses.
I²C Block Transfer (I2CBKT)
I²C Registers and RAM Addresses
Memory mapping of all RAM and register locations accessible by I²C.
10/138
ADE3800
Pin Descriptions
3
Pin Descriptions
Figure 2: LQFP100 Pinout Diagram
PLLVDD18
PLLVDD18
SGND
OVDD18
DVDD18
DVDD18
DGND
1
2
3
4
5
6
7
8
75
74
73
72
71
70
69
68
67
66
65
64
63
62
61
60
59
58
57
56
55
54
53
52
51
DVDD18
DVDD18
DGND
DGND
EPGND
DVDD18
DVDD18
DVDD18
DGND
DGND
RSDS7-
RSDS7+
RSDS5-
RSDS5+
OVDD18
VRH
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
DGND
TCON7
TCON6
TCON5
TCON4
TCON3
TCON2
TCON1
TCON0
DVDD33
SCL/CSYNC
DGND
100-Pin LQFP
VRL
RSDS3-
RSDS3+
DVDD18
DVDD18
DGND
DGND
DVDD33
SDA
RESETN
PGND
XCLK
TST_SCAN
RESETN2
PVDD18
11/138
Pin Descriptions
ADE3800
Figure 3: LQFP128 Pinout Diagram
PLLVDD18
SGND
OVDD18
DVDD18
DVDD18
DGND
1
2
3
4
5
6
7
8
102
101
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
82
81
80
79
78
77
76
75
74
73
72
71
70
69
68
67
66
65
RSDS15+
RSDS15-
RSDS14+
RSDS14-
RSDS13+
RSDS13-
DVDD18
DGND
DGND
RSDS7-
RSDS7+
RSDS6-
RSDS6+
RSDS5-
RSDS5+
RSDS4-
RSDS4+
OVDD18
VRH
9
DGND
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
RSDS12+
RSDS12-
OVDD18
VRH
VRL
RSDS11+
RSDS11-
RSDS10+
RSDS10-
RSDS9+
RSDS9-
RSDS8+
RSDS8-
DVDD18
DVDD18
DGND
TCON7
TCON6
TCON5
TCON4
TCON3
TCON2
TCON1
TCON0
DVDD33
SCL/CSYNC
DGND
VRL
RSDS3-
RSDS3+
RSDS2-
RSDS2+
RSDS1-
RSDS1+
RSDS0-
RSDS0+
DVDD18
DVDD18
DGND
DGND
DVDD33
XCLK
TST_SCAN
RESETN2
SDA2
128-Pin LQFP
SCL2/EXT_SOG/CSYNC
XCLK_EN
VSYNC
SDA
RESETN
Table 3: Analog Input Signals (Sheet 1 of 2)
Input/
LQFP100 LQFP128
Name
Description
Output
43
44
53
54
INR+
INR-
I
I
Positive ADC Red Channel Input
Negative ADC Red Channel Input
12/138
ADE3800
Pin Descriptions
Table 3: Analog Input Signals (Sheet 2 of 2)
Input/
LQFP100 LQFP128
Name
Description
Output
38
39
33
34
29
30
48
49
43
44
38
39
ING+
ING-
INB+
INB-
I
I
I
I
I
I
Positive ADC Green Channel Input
Negative ADC Green Channel Input
Positive ADC Blue Channel Input
Negative ADC Blue Channel Input
Vertical Sync Input Signal
VSYNC
HSYNC
Horizontal Sync or Composite Sync Input Signal
Table 4: Output Signals and TCON Signals (Sheet 1 of 2)
Input/
LQFP100 LQFP128
Name
Description
Output
25
26
23
24
21
22
RSDS0-
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
RSDS Channel 0 Data -
RSDS Channel 0 Data +
RSDS Channel 1 Data -
RSDS Channel 1 Data +
RSDS Channel 2 Data -
RSDS Channel 2 Data +
RSDS Channel 3 Data -
RSDS Channel 3 Data +
RSDS Channel 4 Data -
RSDS Channel 4 Data +
RSDS Channel 5 Data -
RSDS Channel 5 Data +
RSDS Channel 6 Data -
RSDS Channel 6 Data +
RSDS Channel 7 Data -
RSDS Channel 7 Data +
RSDS Channel 8 Data -
RSDS Channel 8 Data +
RSDS Channel 9 Data -
RSDS Channel 9 Data +
RSDS Channel 10 Data -
RSDS Channel 10 Data +
RSDS Channel 11 Data -
RSDS Channel 11 Data +
RSDS Front Side CLK-
RSDS Front Side CLK+
RSDS Channel 13 Data-
RSDS Channel 13 Data+
RSDS0+
RSDS1-
RSDS1+
RSDS2-
RSDS2+
RSDS3-
RSDS3+
RSDS4-
RSDS4+
RSDS5-
RSDS5+
RSDS6-
RSDS6+
RSDS7-
RSDS7+
RSDS8-
RSDS8+
RSDS9-
RSDS9+
RSDS10-
RSDS10+
RSDS11-
RSDS11+
RSDS12-
RSDS12+
RSDS13-
RSDS13+
16
17
19
20
14
15
12
13
10
11
8
11
12
9
10
9
81
82
83
84
85
86
87
88
92
93
97
98
13/138
Pin Descriptions
ADE3800
Table 4: Output Signals and TCON Signals (Sheet 2 of 2)
Input/
LQFP100 LQFP128
Name
Description
Output
99
RSDS14-
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
RSDS Channel 14 Data-
RSDS Channel 14 Data+
RSDS Channel 15 Data-
RSDS Channel 15 Data+
100
101
102
RSDS14+
RSDS15-
RSDS15+
OUT0+
OUT0-
98
99
96
97
94
95
90
91
85
86
83
84
81
82
77
78
92
93
79
80
58
59
60
61
62
63
64
65
125
126
123
124
121
122
117
118
112
113
110
111
108
109
104
105
119
120
106
107
70
+LVDS Channel 0 Differential Data Output or RSDS Channel 16 Data +
-LVDS Channel 0 Differential Data Output or RSDS Channel 16 Data -
+LVDS Channel 1 Differential Data Output or RSDS channel 17 Data +
-LVDS Channel 1 Differential Data Output or RSDS Channel 17 Data -
+LVDS Channel 2 Differential Data Output or RSDS Channel 18 Data +
-LVDS Channel 2 Differential Data Output or RSDS Channel 18 Data -
+LVDS Channel 3 Differential Data Output or RSDS Channel 19 Data +
-LVDS Channel 3 Differential Data Output or RSDS Channel 19 Data -
+LVDS Channel 4 Differential Data Output or RSDS Back Side CLK-
-LVDS Channel 4 Differential Data Output or RSDS Back Side CLK+
+LVDS Channel 5 Differential Data Output or RSDS Channel 22 Data +
-LVDS Channel 5 Differential Data Output or RSDS Channel 22 Data -
+LVDS Channel 6 Differential Data Output or RSDS Channel 23 Data +
-LVDS Channel 6 Differential Data Output or RSDS Channel 23 Data -
+LVDS Channel 7 Differential Data Output or RSDS Channel 24 Data +
-LVDS Channel 7 Differential Data Output or RSDS Channel 24 Data -
+LVDS Channel A Differential Clock Output or RSDS Channel 20 Data +
-LVDS Channel A Differential Clock Output or RSDS Channel 20 Data -
+LVDS Channel B Differential Clock Output or RSDS Channel 25 Data +
-LVDS Channel B Differential Clock Output or RSDS Channel 25 Data -
TCON Output 0 or PWM B Output
OUT1+
OUT1-
OUT2+
OUT2-
OUT3+
OUT3-
OUT4+
OUT4-
OUT5+
OUT5-
OUT6+
OUT6-
OUT7+
OUT7-
OUTCLK0+
OUTCLK0-
OUTCLK1+
OUTCLK1-
TCON0
TCON1
TCON2
TCON3
TCON4
TCON5
TCON6
TCON7
71
TCON Output 1 or PWM A Output
72
TCON Output 2
73
TCON Output 3
74
TCON Output 4
75
TCON Output 5
76
TCON Output 6
77
TCON Output 7
Table 5: System Controls (Sheet 1 of 2)
Input/
LQFP100 LQFP128
Name
Description
Output
47
48
59
60
XTAL_OUT
XTAL_IN
O
I
Crystal Oscillator output
Crystal Oscillator input
14/138
ADE3800
Pin Descriptions
Table 5: System Controls (Sheet 2 of 2)
Input/
LQFP100 LQFP128
Name
Description
Output
23
28
32
37
XCLK
I/O
I
Crystal clock buffered output. Controlled by XCLK_EN pin
XCLK_EN
Crystal clock output enable.
When connected to 3.3 V, the XCLK output is active
When connected to Ground, the XCLK output is disabled
Reset 2 inputa. Active Low
25
53
54
56
26
27
34
65
66
68
35
36
RESETN2
RESETN
SDA
I
Reset input1. Active Low
I
I/O
I
I2C Datab. Open drain
I2C Clockc or Composite Sync Input Signal
I2C 2 Data2. Open drain
SCL/CSYNC
SDA2
I/O
I
I2C 2 Clock3 or Composite Sync Input Signal
SCL2/EXT_SOG/
CSYNC
24
33
TST_SCAN
I
Reserved for test. Should be connected to Digital Ground
a. RESETN and RESETN2 pins are ORed together internally. The pin which is not used must be connected to
ground.
b. The SDA and SDA2 pins share the same internal bi-directional control. The pin that is not used reverts as
output and must be left floating or connected to a pull-up resistor.
c. This device has two RESET/I2C ports (RESETN/SCL/SDA or RESETN2/EXT_SOG/SDA2) to facilitate PCB
layout. The state of the two RESET pins determines which RESET/I2C port is active. The RESET pin that is
held in the low state disables that RESET/I2C port for normal RESET/I2C operations. However, the disabled
ports SCL input (either SCL or EXT_SOG) can be used as a CSYNC input from an external CSYNC extractor.
If this CSYNC input is not required, then the unused SCL pin should be connected to ground
Table 6: Digital Section Power Supply Pins (Sheet 1 of 2)
LQFP100 LQFP128
Name
Description
5
4
DVDD18
DVDD18
DGND
Digital 1.8V Supply
Digital 1.8V Supply
Digital Ground
6
5
7
6
8
7
DGND
Digital Ground
18
19
20
21
22
55
57
66
67
68
69
27
28
29
30
31
67
69
78
DVDD18
DVDD18
DGND
Digital 1.8V Supply
Digital 1.8V Supply
Digital Ground
DGND
Digital Ground
DVDD33
DGND
Digital 3.3V Supply
Digital Ground
DVDD33
DGND
Digital 3.3V Supply
Digital Ground
DGND
Digital Ground
79
80
DVDD18
DVDD18
Digital 1.8V Supply
Digital 1.8V Supply
15/138
Pin Descriptions
ADE3800
Table 6: Digital Section Power Supply Pins (Sheet 2 of 2)
Name Description
LQFP100 LQFP128
70
DVDD18
DGND
Digital 1.8V Supply
Digital Ground
72
73
74
75
94
95
96
DGND
Digital Ground
DVDD18
DVDD18
Digital 1.8V Supply
Digital 1.8V Supply
Table 7: Analog Section Power Supply Pins
Name Description
LQFP100 LQFP128
31
35
36
40
32
37
41
42
45
46
49
50
51
52
41
45
46
50
42
47
51
52
55
58
61
62
63
64
AVDD
AVDD
AVDD
AVDD
AGND
AGND
AGND
AGND
AVDD
XGND
XVDD18
PGND
PVDD18
PGND
Analog 1.8V Supply
Analog 1.8V Supply
Analog 1.8V Supply
Analog 1.8V Supply
Analog Ground
Analog Ground
Analog Ground
Analog Ground
Analog 1.8V Supply
Crystal Oscillator Ground
Crystal Oscillator 1.8V Supply
PLL Ground
PLL 1.8V Supply
PLL Ground
Table 8: Output Section Power Supply Pins (Sheet 1 of 2)
Name Description
LQFP100 LQFP128
2
3
1
PLLVDD18
SGND
Output PLL 1.8V Supply
2
Output PLL Ground. Should be connected to Output Ground
Output Multiplexer 1.8V Supply
4
3
OVDD18
OVDD18
VRH
13
14
15
16
17
18
40
56
57
Output Multiplexer 1.8V Supply
LVDS/RSDS reference voltage. Connect to external capacitor to ground
LVDS/RSDS reference voltage. Connect to external capacitor to ground
Exposed Pad Ground. Connect to Output Ground
VRL
EPGND
EPGND
EPGND
EPGND
OVDD18
VRL
Exposed Pad Ground. Connect to Output Ground
Exposed Pad Ground. Connect to Output Ground
71
76
87
88
Exposed Pad Ground. Connect to Output Ground
103
115
114
Output Multiplexer 1.8V Supply
LVDS/RSDS reference voltage. Connect to external capacitor to ground
LVDS/RSDS reference voltage. Connect to external capacitor to ground
VRH
16/138
ADE3800
Pin Descriptions
Table 8: Output Section Power Supply Pins (Sheet 2 of 2)
LQFP100 LQFP128
Name
Description
Output Multiplexer 1.8V Supply
Output Multiplexer 1.8V Supply
89
116
91
OVDD18
OVDD18
VRL
89
LVDS/RSDS reference voltage. Connect to external capacitor to ground
LVDS/RSDS reference voltage. Connect to external capacitor to ground
Output Multiplexer 1.8V Supply
90
VRH
100
1
127
128
OVDD18
PLLVDD18
Output PLL 1.8V Supply
17/138
Register Description by Block
ADE3800
4
Register Description by Block
4.1 Global Control (GLBL)
The Global Control block is responsible for:
● Selecting clock sources
● Power control
● I²C control
● Block by block synchronous reset generation.
The global control block runs in the crystal clock (XCLK) domain, which is required to be active for
programming. In general for all ADE3800 blocks, I²C register access operates in the XCLK domain;
exceptions are the internal RAMS which require the appropriate clock domain to be active (e.g.
dotclk for OSD RAMs), refer to Table 44.
Table 9: Global Control Registers (Sheet 1 of 3)
Register Name
GLBL_REV_ID
GLBL_CLK_SRC_SEL_0
Addr
0000
0001
Mode
Bits
[7:0]
Rst
Description
R
0x83 REV_ID: Chip Revision ID
R/W
[6:4]
00
DOTCLK_SRC_SEL: DOTCLK source select
0: Crystal Clock
1: XCLK pin (test only)
2: FM freq synth half speed (1 ppc) a
3: FM freq synth full speed (2 ppc) 1
4: SCLK frequency synthesizer
5-7: Reserved
[2:0]
[6:4]
INCLK_SRC_SEL: input clock source select
0: Crystal Clock
1: XCLK pin (test only)
2: LLPLL phase controlled SRC (normal)
3: LLPLL fixed phase clock (test only)
4: LLPLL control clock (test only)
5-7: Reserved
GLBL_CLK_SRC_SEL_1
0002
R/W
00
OUTCLK_SRC_SEL: panel output clock source select
0: Crystal Clock
1: XCLK pin (test only)
2: FM freq synth half speed (1 ppc) b
3: FM freq synth full speed (2 ppc) 1
4: SCLK frequency synthesizer
5-7: Reserved
[2:0]
SCLK_SRC_SEL: scaler clock source select
0: crystal clock
1: XCLK pin (test only)
2: FM freq synth half speed
3: FM freq synth full speed
4: Fixed freq synth (normal)
5: LVDS pll output (test only)
6: LVDS pll input (test only)
7: Reserved
18/138
ADE3800
Register Description by Block
Table 9: Global Control Registers (Sheet 2 of 3)
Register Name
Addr
0003
Mode
Bits
Rst
00
Description
GLBL_CLK_INV
R/W
[4]
[3]
[2]
[1]
[0]
[7]
[6]
[5]
[4]
AFE_CLK_INV: invert ADC sample clock
OUTCLK_INV: invert output clock
SCLK_INV: invert SCLK
DOTCLK_INV: invert DOTCLK
INCLK_INV: invert INCLK
GLBL_CLK_ENAB_0
0004
R/W
FF
DOTCLK_FLK_EN: enable DOTCLK to the FLK block
DOTCLK_OSD_EN: enable DOTCLK to the OSD block
DOTCLK_PGEN_EN: enable DOTCLK to the PGEN block
DOTCLK_EN: enable DOTCLK upstream of FLK, OSD, and
PGEN enable
[3]
[2]
[1]
INCLK_DFT_EN: enable INCLK to DFT test circuits
INCLK_DMEAS_EN: enable INCLK to DMEAS block
INCLK_EN: enable INCLK upstream of DMEAS and DFT
enable
[0]
ALL_VIDEO_CLK_EN: override block enable (FLK, OSD,
PGEN, DFT, DMEAS) for test
GLBL_CLK_ENAB_1
GLBL_SRST_0
0005
0006
R/W
R/W
[1]
[0]
[7]
[6]
[5]
[4]
[3]
[2]
[1]
[0]
[7]
[6]
[5]
[3]
[1]
[0]
[2]
[1]
03
00
OUTCLK_EN: enable output clock
SCLK_EN: enable scaler clock
TCON_SRST: reset the TCON block
SCL_SRST: reset the SCALER block
SMUX_SRST: reset the SMUX block
DMEAS_SRST: reset the DMEAS block
SMEAS_SRST: reset the SMEAS block
SRT_SRST: reset the SRT block
ADTH_SRST: reset the ADTH block
ADC_SRST: reset the digital logic in the ADC block
DFT_SRST: reset DFT (test) circuits
OMUX_SRST: reset the OMUX block
APC_SRST: reset the APC block
GLBL_SRST_1
0007
R/W
00
OSD_SRST: reset the OSD block
PGEN_SRST: reset the PGEN block
OSQ_SRST: reset the OSQ portion of the SCALER block
I2C_AUTO_INC_OFF: disable I2C autoincrement
GLBL_I2C_CTRL
0008
R/W
00
I2C_SDA_PMOS_ON: SDA PMOS enable c
BYPASS_I2C_FILTER: bypass antiglitch filter
Reserved
[0]
GLBL_BPAD_EN
0009
000A
000B
R/W
R/W
R/W
[7:0]
[0]
03
01
01
GLBL_COMP_CTRL
GLBL_XTAL_CTRL
COMPEN_EN: enable slew-rate compensation
I2C_MUXA_XTAL_EN: enable the crystal oscillator d
Reserved
[0]
GLBL_TST_CTRL
000C
R/W
[7:0]
00
19/138
Register Description by Block
ADE3800
Table 9: Global Control Registers (Sheet 3 of 3)
Register Name
Addr
000F
Mode
Bits
[7:2]
Rst
Description
GLBL_AZWC_CTRL
R/W
0
0
Reserved
[1]
Auto Zero Window Control and Clamp synchronization
0: Synchronization on INCLK
1: Synchronization on DOTCLK
[0]
0
Reserved
DFT_DEL_REF
0F0B
R
[7:0]
Returns chip speed and gate propagation delay (number of
gates propagation per XCLK period)
a. Refer to OMUX_CTRL0[0] and also to Table 12.
b. Refer to OMUX_CTRL0[0] and also to Table 12.
c. If set, this bit puts the SDA output in push-pull mode (instead of open drain) to achieve higher I²C speed.
d. If reset, the device is put in shutdown mode (lowest possible power consumption) but can only exit from that
mode with an external reset or a power on/off.
4.2 Frequency Synthesizer (FSYN)
The Frequency Synthesizer block generates the output clock, the dot clock and the scaler clock
(SCLK). Frequency modulation, phase control, and pulse extension (duty cycle control) of the
output clock are also provided.
For consistency and ease of use, both clocks are programmed by means of a single-parameter –
the phase rate value derived from the desired frequency.
4.2.1 Dotclock vs Outclock
Dot clock (also known as DOTCLK or DCLK) is an internal clock; there are no associated I2C
registers.
Out clock is the pixel clock that drives the LCD panel:
● When driving 2 pixels per clock, out clock and dot clock are identical
● When driving 1 pixel per clock the out clock frequency is half the dot clock frequency (phase
rate is proportional to clock period which is the inverse of frequency).
Refer to Table 12: Clock Relationship.
Table 10: FSYN Frequency Synthesizer Registers (Sheet 1 of 2)
Register Name
FSYN_CTRL
Addr
0850
Mode
R/W
Bits
[0]
Rst
00
Description
frequency modulation
0*: off
1: on
FSYN_PR_OTCLK_0
0851
R/W
[7:0]
00
output clock phase rate
= 2^21 * XCLK_FREQ / OUT_CLK_FREQ
FSYN_PR_OTCLK_1
FSYN_PR_OTCLK_2
0852
0853
R/W
R/W
[7:0]
[5:0]
00
00
FSYN_OFFSET
0854
R/W
[7:0]
00
RSDS clock-data skewcontrol (no meaning in LVDS)
LSB = 289ps
20/138
ADE3800
Register Description by Block
Table 10: FSYN Frequency Synthesizer Registers (Sheet 2 of 2)
Register Name
Addr
0855
Mode
R/W
Bits
[7:0]
Rst
00
Description
frequency modulation amplitude
FSYN_FM_AMPLITUDE
LSB = 4.5ps
FSYN_FM_PERIODX64
0856
R/W
R/W
[7:0]
[7]
80
00
frequency modulation period
LSB = 1.184us
FSYN_PULSE_HIGH_EXT 0857
enable pulse extend
0*: disabled
1: enabled
R/W
[2:0]
pulse extend value
LSB = 0.3ns (typ)
Table 11: FSYN_PR_SK Registers
Register Name
FSYN_PR_SK_0
Addr
Mode
R/W
Bits
[7:0]
Rst
00
Description
0860
sclk phase rate
= 2^15 * xclk_freq / sclk_freq
Set sclk = 140MHz
i.e. FSYN_PR_SK_1/0 = 18AFh @ xclk = 27MHz
FSYN_PR_SK_1
0861
R/W
[7:0]
00
Table 12: Clock Relationship
1 ppc
2 ppc
FSYN_OUTCLK_FREQ
DOTCLK SOURCE SEL
GLBL_CLK_SRC_SEL_0[6:4]
GLBL_CLK_SRC_SEL_1[6:4]
FSYN_PR_OTCLK
2x DOTCLK_FREQ
DOTCLK_FREQ
FSYN_OUTCLK_DIV2 (half speed)
FSYN_OUTCLK (full speed)
2
3
3
3
2^21 * XCLK_FREQ / 2x DOTCLK_FREQ
2^21 * XCLK_FREQ / DOTCLK_FREQ
4.3 Analog-to-Digital Converter (ADC)
The Analog-to-Digital block has the following features:
● Supports input clocks up to 140MHz (SXGA 75Hz)
● Adjustable analog amplifier bandwidth
● Differential RGB input path for noise immunity
● Built-in Sync-on-Green support
● Individual RGB clock delay control
● Power down control
● Linear and independent Gain/Offset adjustment.
GAIN CONTROL
Red, Green, and Blue channels have independent control registers: ANA_ADC_RED_0,
ANA_ADC_GRN_0, and ANA_ADC_BLU_0, respectively.
21/138
Register Description by Block
ADE3800
8-bit control covers amplitudes from 0.35V (00) to 1.05V (FF) in steps of 2.74mV.
OFFSET CONTROL
Red, Green, and Blue channels have independent control registers: ANA_ADC_RED_1,
ANA_ADC_GRN_1, and ANA_ADC_BLU_1, respectively.
6-bit control covers a range of 92.8mV in steps of 2.9mV.
4.3.1 216MHz Frequency Synthesizer
The FS216 (controlled by the ANA_FS216_CTRL register) is the system PLL that drives the SCLK
and DCLK frequency synthesizers (refer to Section 4.2: Frequency Synthesizer (FSYN)) and the
LLK, by generating two different reference clock frequencies, 216=27x8 MHz (FSYN) and 54=27x2
MHz (LLK), based on XCLK.
For normal operation with a 27 MHz crystal, this register should be programmed to 0A.
The control register also allows for different crystal frequencies, power down, and optional use of an
external PLL.
4.3.2 Sync-on-Green (SOG)
It is necessary to tune the analog SOG circuit in order to secure a valid HSync that can be used by
the Line Lock PLL; the LLK may then be programmed to generate an in-clock. The ADC clamp
relies on in-clock and may only be enabled once this step is complete. Clamp pulse is used to set
the ADC black level reference voltage. In normal operation, the SOG signal is clamped by the ADC
clamp, and this clamp is not available during the initial tuning. For the initial tuning phase, instead of
the ADC clamp, the SOG clamp (pull down current) is used to clamp the input SOG signal. Once the
tuning has been accomplished, and there is a valid reference HSync and in-clock, the SOG clamp
may be disabled and the ADC clamp may be enabled.
There are therefore 2 states of sync-on-green operation: the initial state, which employs the SOG
clamp, and the normal (or locked) state, which employs the ADC clamp.
4.3.2.1 Initial SOG Clamp State
At power up, set:
● ANA_ADC_SOG_1[0] = 0 (power down bit; apply power to SOG),
● ANA_ADC_SOG_1[3] = 1 (enable SOG clamp pull down current),
● ANA_ADC_GRN_2[1] = 1 (ADC clamp off; must be the same as ANA_ADC_SOG_1[3]),
and adjust ANA_ADC_SOG_0[4:0] & ANA_ADC_SOG_1[7:4] until one of the three comparators
detects a SOG signal. Select a SOG signal to be the reference HSync to which the Line Lock PLL
will lock.
The normal value of the pull down current is 1.1uA and can be adjusted with
ANA_ADC_SOG_1[2:1]. Either ANA_ADC_SOG_1[0] = 1 or ANA_ADC_SOG_1[3] = 0 will turn off
the pull down current.
22/138
ADE3800
Register Description by Block
The ADC clamp signal is generated in digital circuitry.
Figure 4: Initial SOG Clamp Phase
ADCSOG1[0] = 0 (pwdnSOG)
ADCSOG1[3] (enSOG) = ADCGRN2[1] = 1
4.3.2.2 SOG Lock State
Set:
● ANA_ADC_SOG_1[0] remains 0,
● ANA_ADC_GRN_2[1] = 0 (ADC clamp on; must be the same as ANA_ADC_SOG_1[3]).
● ANA_ADC_SOG_1[3] = 0 (disable SOG clamp pull down current),
This enables the ADC Clamp circuit and disables the SOG Clamp (this is the recommended order –
it is better to have overlap than no clamp at all). The comparators will continue to compare the input
signal with the reference voltages and provide a correct SOG signal. Comparator threshold voltages
can be adjusted to optimize noise immunity if necessary.
23/138
Register Description by Block
ADE3800
The ideal ADC clamp signal would be greater than 1us wide and placed precisely between the SOG
pulse and video data. Any overlap or misalignment will alter the Green offset level internally and
comparators may lose track of SOG signal.
Figure 5: SOG Lock Phase
Clamp Position
SOG output waveform has the same polarity as input
ADCSOG1[0] = 0 (pwdnSOG)
ADCSOG1[3] (enSOG) = ADCGRN2[1] = 0
Level Adjustment
All 3 comparator thresholds and clamp voltage are moved up or down together by changing
registers. These cannot be individually adjusted.
● To shift up:
— Set ANA_ADC_SOG_1[7:4] = 0F
— Adjust ANA_ADC_SOG_0[4:0] to a higher value. (The default is 0, ~8.8mV per increment.)
● To shift down:
— Set ANA_ADC_SOG_0[4:0] = 0b00000
— Adjust ANA_ADC_SOG_1[7:4] to a lower value. (The default is 0F, ~10mV per decrement; a
value of 00 is invalid.)
To power down SOG, set ANA_ADC_SOG_1[0] = 1.
Note: The SMEAS block can still detect SOG activity while the ADC is powered down.
There are three SOG analog voltage comparators that generate the SOG0, SOG1, and SOG2
digital signals. These signals are then sent to the LLK, SRT, SMEAS, and SMUX blocks.
For SOG support the SMEAS block has:
● Three 8-bit edge counters (used to detect activity)
● Four 4-bit delay counters (used to tune the comparator reference voltages)
24/138
ADE3800
Register Description by Block
The 4 delay counters measure the time (in XCLKs) between the leading and trail edges of the SOG
signals, as follows:
d1: delay count from SOG[2] falling edge to SOG[1] falling edge
d2: delay count from SOG[1] falling edge to SOG[0] falling edge
d3: delay count from SOG[0] rising edge to SOG[1] rising edge
d4: delay count from SOG[1] rising edge to SOG[2] rising edge
If there is no leading edge for a particular delay counter, the result is 0.
If both edges are within the same XCLK period, the result is 1.
When the counter reaches a value of 0F, it stops.
The delay and activity registers are used together to tune the SOG sampling level.
The delay measurements are controlled by the activity detection control registers which may be
used to select either:
● One-shot: one sync pulse measurement; when done, hold result until next measurement is
started; or
● Free-run: continuously measures, results are dynamically updated.
25/138
Register Description by Block
ADE3800
There are 8 possible cases as listed in the figure below.
The N is a whole number from 1 to E representing a stable delay. F/0 is a whole number between 0
and F representing a delay that varies in time (because Green data is being measured). 1 in the
activity column means stable activity is detected, 0 means permanent no activity, and X indicates
video dependence.
26/138
ADE3800
Register Description by Block
Table 13: ADC Registers (Sheet 1 of 2)
Register Name
Addr
0040
Mode
R/W
Bits
[4:3]
Rst
Description
ANA_FS216_CTRLa
01
xtal freq multiplier, ndiv
0: fxclk = 54 MHz b
1*: fxclk = 27 MHz (normal) 2
2: fxclk = 13.5 MHz 2
3: reserved
[2]
external pll
0*: internal
1: external
[1]
pll select
0*: disabled
1: enabled
[0]
disable FS216 analog VCO
0*: enabled
1: disabled
ANA_ADC_PWDN
ANA_ADC_SOG_0
0050
0051
R/W
R/W
[0]
01
00
AFE power control
0: on
1*: off
[4:0]
SOG level detection & clamp
Up when ADCSOG1[7:4]=1
0mV to +282mV, at ~8.8mV per step
00000*: 0mV
11111: +282mV
ANA_ADC_SOG_1
0052
R/W
[7:4]
01
SOG level detection & clamp
Down when ANA_ADC_SOG_0[4:0]=0
0mV to -340mV, 10mV per step
0*: disabled
1: -340mV
F: 0mV
[3]
Enable SOG clamp & pull down current
0*: off
1: on
[2:1]
SOG pull down current adjust
MAX/TYP/MIN
00*: 1.4/1.1/0.8 uA
01: 0.7/0.5/0.4 uA
10: 5.3/4.1/3.1 uA
11: 2.7/2.1/1.6 uA
[0]
SOG power control
0: on
1*: off
27/138
Register Description by Block
ADE3800
Table 13: ADC Registers (Sheet 2 of 2)
Register Name
Addr
0053
Mode
R/W
Bits
Rst
Description
ADC Band gap power control
ANA_ADC_BIAS
[5]
01
0*: on
1: off
[4:3]
IREF adjustment for internal bias,
when ADCBIAS[2:1]=01 (or 11)
00*: 600uA
01: 750uA
10: 300uA
11: 450uA
[2:1]
[0]
Must be set to 01
ADC power control
0: on
1*: off
ANA_ADC_RED_0
ANA_ADC_RED_1
0054
0055
R/W
R/W
[7:0]
[7]
7F
0F
GAIN CONTROL
2.74mV/step
00: 0.35V
FF: 1.05V
VREF
0*: internal
1: external
[5:0]
[6:4]
OFFSET CONTROL: 2.9mV/step
ANA_ADC_RED_2
0056
R/W
00
Channel Skew control
LSB = 200ps(typ)
[3:2]
Amp bandwidth adjust
00*: BW=250MHz (min)
01: BW=150MHz (min)
10: reserved
11: BW=40MHz (min)
[1]
[0]
Clamp Control
0*: enabled
1: disabled
ADC Dithering (ADTH block)
0*: disabled
1: enabled
ANA_ADC_GRN_0
ANA_ADC_GRN_1
ANA_ADC_GRN_2
ANA_ADC_BLU_0
ANA_ADC_BLU_1
ANA_ADC_BLU_2
0057
0058
0059
005A
005B
005C
See ANA_ADC_RED_0.
See ANA_ADC_RED_1.
See ANA_ADC_RED_2.
See ANA_ADC_RED_0.
See ANA_ADC_RED_1.
See ANA_ADC_RED_2.
a. Normal value for ANA_FS216_CTRL is 0Ah.
b. When xclk = 27MHz
28/138
ADE3800
Register Description by Block
4.4 Analog Dithering (ADTH)
The ADTH block generates a 3-bit dither pattern ADTH_OUT[2:0] to tune the 10-bit resolution of the
ADC block.
Note: ADTH_OUT[2:0] is not a register but the generated 3-bit dither output of the ADTH block.
4.4.1 Function
The ADTH block consists of a 32x32x3 bit look up table (LUT). It represents one dither matrix, which
can be read using a programmable addressing technique as well as a programmable output
amplitude control. When ADTH_MAT_CTRL[0] is zero or during the clamp pulse ADTH_OUT[2:0] =
3. During vertical blanking ADTH_OUT[2:0] is set to ADTH_TEST_DITHER[2:0] to provide a
feedback mechanism for calibration.
4.4.2 Addressing Technique
The ADTH block offers a programmable addressing technique to generate various temporal dither
patterns. ADTH_FRAME_CTRL [7:4] is a 4-bit increment value, which defines the horizontal/vertical
displacement of the dither matrix from frame to frame (precisely at rising edge of CLAMP_IN and at
falling edge of VENAB).
After (ADTH_FRAME_CTRL [3:0] + 1) number of frames the horizontal/vertical displacement position
will be reset to zero/zero, only when ADTH_FRAME_CTRL [3:0]> 0.
Note: To set the frame accumulator to zero, program ADTH_FRAME_CTRL [7:4] to zero and program
ADTH_FRAME_CTRL [3:0] to 1. ADTH_FRAME_CTRL [7:4] can be independently activated in the
horizontal and vertical dimensions using ADTH_MAT_CTRL [2] and ADTH_MAT_CTRL [3],
respectively.
4.4.3 Output Amplitude Control
The 3-bit LUT output value can be scaled to a reduced dither amplitude using ADTH_MAT_CTRL
[5:4]. After adding the ADTH_MAT_CTRL [7:6] to the (reduced) dither amplitude the final 3-bit
amplitude is output as ADTH_OUT[2:0].
4.4.4 Miscellaneous
During the ADC clamp pulse, the output of the ADTH block is muted; that is the output value is set
to 3 (ADTH_OUT[2:0] = 3). In addition, ADTH_CLAMP_CTRL[7:4] delays the clamp pulse by 0 to
15 clock cycles while muting, and ADTH_CLAMP_CTRL[3:0] adds 0 to 15 clock cycles of muting
after the falling edge of the clamp pulse.
For AFE dither calibration, ADTH_OUT[2:0] can be programmed via ADTH_TEST_DITHER to a
static value during vertical blanking.
29/138
Register Description by Block
ADE3800
Table 14: ADTH Registers
Register Name
Addr
03D0
Mode
R/W
Bits
[7:6]
Rst
01
Description
ADTH_MAT_CTRL
amplitude_offset
adth_out[2:0] = (dither_amplitude + amplitude_offset)
% 8
[5:4]
dither_amplitude
0*: dither amplitude range: 0-7
1: dither amplitude range: 0-6
2: dither amplitude range: 0-5
3: dither amplitude range: 0-4
[3]
[2]
1: vertical start position of dither matrix changes by
FRAME_OFFSET
1: horizontal start position of dither matrix changes by
FRAME_OFFSET
[1]
[0]
Clamp polarity. To be set to 1.
0: adth_out[2:0] = 3
1*: AFE dither amplitude enabled
ADTH_FRAME_CTRL
03D1
R/W
[7:4]
00
frame_offset
Offset the start position of the dither matrix from frame
to frame by frame_offset.
See frame_len.
frame_len
[3:0]
Reset dither matrix start position after frame_len +1
number of frames when frame_len > 0.
See frame_offset.
clamp_begin
ADTH_CLAMP_CTRL
ADTH_TEST_DITHER
03D2
03D3
R/W
R/W
[7:4]
[3:0]
[2:0]
00
00
Delay and mute the clamp pulse by 0-15 clock cycles
Note: adth_out[2:0] = 3 during clamping/muting
clamp_end
Mute after the end of clamp pulse for 0-15 clock cycles
Note: adth_out[2:0] = 3 during clamping/muting
For AFE dither amplitude (voltage) calibration.
During vertical blanking
adth_out[2:0] = test_dither
4.5 Line Lock PLL (LLK)
The LLK generates the ADC input pixel sampling clock from an incoming HSync source and a
multiplying factor (MFACTOR, aka Clock). The loop filter parameters and skew (aka Phase) can be
tuned. The phase can be adjusted in steps of 72ps. The minimum LLK generated clock frequency is
13.5 MHz.
The PLL filter has two states with independent filter parameters: Fast and Slow. If while in the Fast
state the phase detector error count remains below a programmable threshold (LLK_LOCK_TOL) for a
programmable number of input lines (LLK_LOCK_LINE_NB), the PLL changes to the Slow state. While
in this state, the Slow filter coefficients apply. In the event that phase detector errors should exceed
LLK_LOCK_TOLfor one or more lines, the PLL returns to the Fast state in one line, and Fast filter
coefficients again apply.
30/138
ADE3800
Register Description by Block
The digital loop filter is controlled by two parameters: A and B. The A and B parameters control the
response of the 2nd order digital filter. A and B are exponential coefficients. The relationship of
these numbers to the classic 2nd order damping and natural frequency are as follows:
● Damping = 2^(AE-8) * SQRT(5 * MFACTOR / (2^(BE+4)))
● Natural Frequency = SQRT(MFACTOR * 5 * 2^(BE-30))
Note: Typical value for the A and B parameters is 66h.
The synthesized HSync supplied to SMUX is 50% duty cycle.
Table 15: Line Lock PLL Registers (Sheet 1 of 2)
Register Name
LLK_CTRL
Addr
0800
Mode
Bits
Rst
00
Description
R/W
[6]
[5]
0*: use slow filter when coarse error is zero
1: use slow filter when lock condition is achieved
R/W
mfactor shadow control
0*: simple shadow. Apply new mfactor when mfactor_u
is written.
1: shadow transfer on in_venab falling edge.
R/W
R/W
[4]
0*: lock to rising edge of input HSync
1: lock to falling edge of input HSync
[3:1]
input HSync select
0*: HSYNC pin
1: SOG0
2: SOG1
3: SOG2
4: EXT_SOG
R/W
R/W
[0]
[3]
LLK pll free run enable
manual resync mode
LLK_SYNC_OFFSET_MODE
0801
06
The LLK pll requires a resync after any change of
mfactor or offset. Writing to this bit causes a one-time
resync of the PLL accumulator (cleared by H/W).
resync every frame modea
R/W
R/W
R/W
[2]
[1]
[0]
resync on in_venab falling edge1
resync on in_venab rising edge1
mfactor[7:0] = in_htotal
mfactor[11:8]
LLK_MFACTOR_L
0802
0803
0804
R/W
R/W
R/W
[7:0]
[3:0]
[7:0]
80
02
80
LLK_MFACTOR_U
LLK_PHASE_RATE_INIT
pll phase rate init
freq = xclk_freq * 128 / phase_rate_init.
LLK_TC_AEF
0805
0806
0807
0808
0809
080A
R/W
R/W
R/W
R/W
R/W
R/W
[3:0]
[3:0]
[3:0]
[3:0]
[7:0]
[7:0]
0A
0A
06
06
20
30
time constant A when out of lock
time constant B when out of lock
time constant A when in lock
LLK_TC_BEF
LLK_TC_AES
LLK_TC_BES
time constant B when in lock
LLK_LOCK_TOL
LLK_LOCK_LINE_NB
error limit for determining lock. LSB = 150ps (typ)
line count for determining lock.
- set when error is < lock_tol for lock_line_nb of lines.
- cleared if error exceeds lock_tol.
31/138
Register Description by Block
ADE3800
Table 15: Line Lock PLL Registers (Sheet 2 of 2)
Register Name
LLK_OFFSET_L
Addr
080B
Mode
Bits
[7:0]
Rst
00
Description
R/W
phase offset [7:0] of adc sample clock. LSB is
xclk_period/512 = 72ps.
LLK_OFFSET_U
080C
080D
R/W
R/W
R/W
R/W
[1:0]
[7]
00
00
phase offset
LLK_PULSE_HIGH_EXT
inclk pulse extend enable
[2:0]
[7:0]
inclk pulse extend value. LSB = 0.3ns (typ)
LLK_PHASE_RATE_MIN
080E
14
phase rate minimum. Sets the upper frequency limit of
the PLL.
phase_rate_min = xclk_freq * 128 / max_inclk_freq.
LLK_STAT_LINE_NB_L
LLK_STAT_LINE_NB_U
080F
0810
R/W
R/W
[7:0]
[7:0]
40
00
number of lines over which statistics are gathered
number of lines over which statistics are gathered
LLK_STAT_SUM_ABS_MAX_L
LLK_STAT_SUM_ABS_MAX_U
0811
0812
R/W
R/W
[7:0]
[7:0]
60
00
limit for sum of absolute errors
LLK_STAT_MAX_ABS_MAX
LLK_DEADZONE
0813
0814
0830
R/W
R/W
R
[7:0]
[3:0]
[4]
04
02
00
limit for absolute error
coarse error deadzone, normal operation = 2.
max absolute error exceeded limit, not sticky
sum of absolute errors exceeded limit, not sticky
pll filter overflow condition, not sticky
coarse error is zero status, not sticky
lock status, not sticky
LLK_STATUS
R
[3]
R
[2]
R
[1]
R
[0]
pll phase rate, free running readout.b
LLK_STATUS_PHASE_RATE_I_ 0831
0
R
[7:0]
00
00
00
00
LLK_STATUS_PHASE_RATE_I_ 0832
1
R/W
R/W
R/W
[7:0]
[7:0]
[5:0]
LLK_STATUS_PHASE_RATE_I_ 0833
2
LLK_STATUS_PHASE_RATE_I_ 0834
3
LLK_STATUS_SUM_ABS_L
LLK_STATUS_SUM_ABS_U
0835
0836
R
R
[7:0]
[7:0]
00
00
sum of absolute errors readout
LLK_STATUS_MAX_ABS
0837
R
[7:0]
00
max absolute error readout
mfactor shadow hw readout
LLK_MFACTOR_HW_L
LLK_MFACTOR_HW_U
0842
0843
R
R
[7:0]
[7:0]
80
02
LLK_TEST
084F
R/W
[7:0]
00
reserved
a. recommended setting for bits [2:0] = 110b
b. phase rate period (in picoseconds) is:
LlkStatusPhaseRate[28…0] × 2–21 × XTALperiod(ps
haseRate(ps)= ------------------------------------------------------------------------------------------------------------------------------------------------------
128
Example:
LLK_STATUS_PHASE_RATE_I_[28:0] = 03335BDF , XTAL = 27 MHz
phase rate period = 7.409 ns
frequency = 134.97 MHz
32/138
ADE3800
Register Description by Block
4.6 Sync Retiming (SRT)
The Sync Retiming block retimes synchronization signals (e.g. HSync and VSync) into either the
XCLK or in-clock domains.
SRT provides the following:
● Retimes all sync signals going to SMEAS into the xclk domain
● Extracts vertical sync from composite sync signals
● Divides sclk by up to 1024 for activity detection purposes (SMEAS)
● Generates a delayed version of vertical sync from a mux-selectable vertical sync source
● Generates a coast signal in the xclk domain for the LLPLL
● Measures the effect of the filter on marginal composite sync signals and returns a bad_filter
flag
● Retimes horizontal and vertical syncs into the inclk domain.
4.6.1 Coast Signal
In composite or SOG sync mode, HSYNC pulses may not exist during the VSYNC pulse signal and
will cause the LLK to unlock and loose track of HSYNC signal. Coarse signal (also known as LLK
Inhibit/Free Run signal) is used to generate a vertical pulse that wraps around the incoming
VSYNC.
Coast pulse reference (0) is either edge of VSYNC, and its set and reset values are expressed in
XCLK units.
Figure 6: Vertical sync extraction and filtering
srt_vsync_sel[2]
33/138
Register Description by Block
ADE3800
Table 16: Sync Retiming Registers (Sheet 1 of 2)
Register Name
SRT_CSYNC_INV
Addr
01E0
Mode
Bits
[2]
Rst
00
Description
R/W
R/W
R/W
invert vert sync signal extracted from internal SOG
comparator (sog_vs_inv)
[1]
invert vert sync extracted from composite sync signal on
HSync pin (csync_vs_inv)
R/W
R/W
[0]
invert filtered vert sync (filt_vs_inv)
SRT_CSYNC_THR_L
01E1
[7:0]
80
composite sync vertical sync extractor threshold
(this is the narrowest HSync signal sent +50% as a
safety margin) refer to Figure 7
SRT_CSYNC_THR_U
SRT_VSYNC_SEL
01E2
01E3
R/W
R/W
[3:0]
[2:0]
00
00
filtered vert sync source select
0*: VSYNC pin
1: vsync from composite HSYNC pin
2: vsync from composite SOG[0] comparator
3: vsync from composite SOG[1] comparator
4: vsync from composite SOG[2] comparator
5: vsync from alternate SOG source
6 - 7: Reserved
SRT_VSYNC_THR_L
SRT_VSYNC_THR_U
01E4
01E5
R/W
R/W
[7:0]
[3:0]
80
00
filtered vert sync delay
SRT_COAST_VS_SEL
01E6
R/W
[3]
00
coast signal trigger edge
0*: rising edge of selected VSync
1: falling edge of selected VSync
R/W
[2:0]
source selection for coast VSync trigger
0*: VSYNC pin
1: vsync from composite HSYNC pin
2: vsync from composite SOG[0] comparator
3: vsync from composite SOG[1] comparator
4: vsync from composite SOG[2] comparator
5: filtered and delayed vsync (normal)
6: vsync from alternate SOG source
7: Reserved
SRT_COAST_RISE_L
SRT_COAST_RISE_M
SRT_COAST_RISE_U
01E7
01E8
01E9
R/W
R/W
R/W
[7:0]
[7:0]
[7:0]
00
00
00
rising edge of coast, in XCLKs from vsync trigger
SRT_COAST_FALL_L
SRT_COAST_FALL_M
SRT_COAST_FALL_U
01EA
01EB
01EC
R/W
R/W
R/W
[7:0]
[7:0]
[7:0]
00
00
00
falling edge of coast, in XCLKs from vsync trigger
SRT_HS_CTRL
01EE
R/W
[4]
00
Edge of inclk on which to sample horizontal sync:
0*: rising edge
1: falling edge (normal)
R/W
[2:0]
HSync Sample Selection for SMUX
0*: reserved
1: llk_HSync (normal)
2: SOG0
3: SOG1
4: SOG2
5: EXT_SOG
34/138
ADE3800
Register Description by Block
Table 16: Sync Retiming Registers (Sheet 2 of 2)
Register Name
Addr
01EF
Mode
Bits
[5:4]
Rst
00
Description
sclk div prescaler for SMEAS:
SRT_VS_SEL
0*: 128
1: 256
2: 512
3: 1024
R
[3]
Bad csync threshold. Change SRT_CSYNC_THR until
this is stable low.
R/W
[2:0]
vert sync source select for re-sampling into inclk domain
for SMUX:
0*: VSYNC pin
1: vsync from composite HSYNC pin
2: vsync from composite SOG[0] comparator
3: vsync from composite SOG[1] comparator
4: vsync from composite SOG[2] comparator
5: filtered and delayed vsync (normal)
6: vsync from alt SOG source pin
7: reserved
SRT_COAST_RISE_HW_L
SRT_COAST_RISE_HW_M
SRT_COAST_RISE_HW_U
01F0
01F1
01F2
R
R
R
[7:0]
[7:0]
[7:0]
Shadow read back
SRT_COAST_FALL_HW_L
SRT_COAST_FALL_HW_M
SRT_COAST_FALL_HW_U
01F3
01F4
01F5
R
R
R
[7:0]
[7:0]
[7:0]
Note: All thresholds are in XCLK units.
35/138
Register Description by Block
ADE3800
Figure 7: VSync Up/Down Counter
V Pulse
H Pulse
Composite
Sync
up at 7/8
Extracted
VSync
down at 1/8
OK: good
threshold
Threshold
7/8
BAD SYNC AREA
3/4
error
1/4
1/8
0
UP DOWN
UP
DOWN
if V Pulse width was too short for the chosen threshold
(counter reaches 3/4th but goes down before 7/8th is reached):
Bad sync bit SRT_VS_SEL[3] would be set
4.7 Input Sync Measurement (SMEAS)
The SMEAS block monitors input activity and measures input sync signals from all sources. All
unused and reserved bits return as zero. SMEAS operates in the crystal clock (xclk) domain.
Input Sync Functions:
● Activity Detection: detects input activity
● Measurement: measures sync period and width
4.7.1 Input Sync - Activity Detection
The activity block measures all sync sources in parallel. An active channel is defined as having a
programmable number of rising edges within a programmable number of xclk cycles (= sample
period). Activity limits are set per channel class: clkdiv1k and HSync; vsync. The activity results are
updated each sample period.
Software can select either:
● One shot: one time measurement
● Free Run: continuously running measurements
36/138
ADE3800
Register Description by Block
4.7.2 Input Sync - Measurement
One set of (HSync, vsync) can be selected for measurement.
Software can request measurements in one of two ways:
● One shot – one time measurement
● Free Run – continuously running measurements.
The measurement block also compares the measured sync signals to programmable limits.
● Xclks per vsync different by more than +/- 2^(xclk_vtol_exp[3:0])
● Xclks per HSync different by more than +/- 2^(xclk_htol_exp[3:0])
● HSyncs per vsync different by more than +/- HSync_vtol[3:0]
● polarity.
Range check flags will be set when the measurements exceed the programmed tolerances. The
flags will be updated on the completion of each measurement in Free Run mode. The flags
maintain their state at the completion of a measurement while in One Shot mode. When a
measurement is started (asserting the Measurement Start bit) the range check flags are cleared.
There are timeout registers to detect the absence of sync signals.
The measurement block registers are grouped into four main categories:
● Timeouts & Tolerances
● Measurements (obtained by a one-shot or free-run mode of operation)
● Reference values
● Flags (indicators that measurements have timed out or measurements compared to reference
values exceed tolerances).
4.7.3 Fast Mute
The fast mute block continuously monitors one selected HSync signal and compares its period with
an independent reference value and tolerance. A fast mute flag is set as soon as the measured
period is outside the tolerance for more than 1, 2 or 3 times in a row.
The fastmute range check flag can be combined with other reference checking flags with a mask-or
function to make a sticky bit to mute the screen rapidly in the event of a mode change or dropped
signal.
37/138
Register Description by Block
ADE3800
Note: Timeout and Tolerance use Horizontal and Vertical measurements. These can either be the
Horizontal or Vertical syncs from an Analog input or the local generated Horizontal Enable and/or
Vertical Enable.
Table 17: SMEAS Register Definitions (Sheet 1 of 6)
Register Name
Addr
Mode
R/W
Bits
[3]
Rst
00
Description
SMEAS_ACT_CTRL
0100
Free-run enable
R/W
[2]
Freeze results during free run mode. No meaning in one shot
mode.
0*: Do not freeze. New result will be available on the next and
subsequent toggle of the polling bit.
1: Freeze the current results. The polling bit will still toggle
and the block continues to free run; however, results will not
update.
R/W
R/W
[1]
[0]
Activity detection start.
In one-shot mode setting this bit triggers the start of a
measurement. This bit is reset to zero when the
measurement is complete. No meaning in free run mode.
Activity detection mode.
0*: free-run mode
1: one-shot mode
SMEAS_ACT_H_SMPTM_L 0101
SMEAS_ACT_H_SMPTM_U 0102
R/W
R/W
[7:0]
[7:0]
00
00
Sample period value for clock or HSync activity. Xclks [7:0]
Sample period value for clock or HSync activity. Xclks [15:8]
SMEAS_ACT_V_SMPTM_L
0103
R/W
R/W
[7:0]
[7:0]
00
00
Sample period value for vsync activity. Xclks / 256 [7:0]
Sample period value for vsync activity. Xclks / 256 [15:8]
SMEAS_ACT_V_SMPTM_U 0104
SMEAS_ACT_H_MINEDGE
SMEAS_ACT_V_MINEDGE
SMEAS_H_TMOT_L
0105
0106
0107
R/W
R/W
R/W
[7:0]
[7:0]
[7:0]
00
00
00
Minimum edge count value for clk or HSync activity.
Minimum edge count value for vsync activity.
Timeout counter value for clk or horizontal measurement.
xclks [7:0]
Timeout counter value for clk or horizontal measurement.
xclks [15:8]
SMEAS_H_TMOT_U
SMEAS_V_TMOT_L
0108
0109
R/W
R/W
[7:0]
[7:0]
00
00
Timeout counter value for vertical measurement. xclks / 256
[7:0]
Timeout counter value for vertical measurement. xclks / 256
[15:8]
SMEAS_V_TMOT_U
SMEAS_CLEAR
010A
0110
R/W
R/W
[7:0]
[1]
00
00
clears SMEAS_STATUS_RANGE[7] sticky bit only.
Must be reset by software.
[0]
clears timeouts, measurements.
Must be reset by software.
38/138
ADE3800
Register Description by Block
Table 17: SMEAS Register Definitions (Sheet 2 of 6)
Register Name
SMEAS_H_CTRL
Addr
Mode
R/W
Bits
[5]
Rst
00
Description
0111
Measures HSync in the condition of no VSync
Free-run enable
R/W
R/W
[4]
[3]
Edge measurement selection for horizontal period events.
0*: rising edge.
1: negative edge.
R/W
[2]
Freeze results during free run mode. No meaning in one shot
mode.
0*: Do not freeze the results in free run mode. New results
will be available on the next and subsequent toggle of the
polling bit.
1: Freeze the current results in free run mode. The polling bit
will still toggle and the block continues to free run; however,
results will not update.
R/W
R/W
[1]
[0]
In free-run mode it enables measurements. In one-shot mode
it triggers the start of a measurement and is reset to zero
when the measurement is complete.
0*: free-run mode.
1: one-shot mode.
SMEAS_V_CTRL
0112
R/W
R/W
[4]
[3]
00
Free-run enable
Edge measurement selection for vertical period events.
0*: rising edge.
1: negative edge.
R/W
[2]
Freeze results during free run mode. No meaning in one shot
mode.
0*: Do not freeze the results in free run mode. New result will
be available on the next and subsequent toggle of the polling
bit.
1: Freeze the current results in free run mode. The polling bit
will still toggle and the block continues to free run; however,
results will not update.
R/W
R/W
[1]
[0]
In free-run mode it enables measurements. In one-shot mode
it triggers the start of a measurement and is reset to zero
when the measurement is complete.
0*: free-run mode.
1: one-shot mode.
39/138
Register Description by Block
ADE3800
Table 17: SMEAS Register Definitions (Sheet 3 of 6)
Register Name
SMEAS_H_SEL
Addr
Mode
R/W
Bits
[6:4]
Rst
00
Description
0113
Fastmute input select
0*: HSync
1: HSync generated from LLK
2: EXT_SOG
3: SOG[0]
4: SOG[1]
5: SOG[2]
6,7: reserved
R/W
[3:0]
H measurement input select
0*: HSync
1: HSync generated from LLK
2: EXT_SOG
3: SOG[0]
4: SOG[1]
5: SOG[2]
6-A: reserved
B: inclk / 1024 (for test only)
C: dotclk / 1024 (for test only)
D: TCON enab (for test only)
E: TCON HSync (for test only)
F: sclk_div (for test only)
SMEAS_V_SEL
0114
R/W
[7:4]
00
Vertical high level duration measurement input select
0*: VSYNC pin
1: extracted Vsync from HSYNC pin composite sync
2: extracted Vsync from EXT_SOG composite sync
3: filtered vsync from SRT block (normal condition)
4: SOG[0] extracted vsync
5: SOG[1] extracted vsync
6: SOG[2] extracted vsync
7-F: reserved
R/W
[3:0]
V measurement input select
0*: VSYNC pin
1: extracted Vsync from HSYNC pin composite sync
2: extracted Vsync from EXT_SOG composite sync
3: filtered vsync from SRT block (normal condition)
4: SOG[0] extracted vsync
5: SOG[1] extracted vsync
6: SOG[2] extracted vsync
7-F: reserved
40/138
ADE3800
Register Description by Block
Table 17: SMEAS Register Definitions (Sheet 4 of 6)
Register Name
Addr
Mode
R/W
Bits
[7]
Rst
00
Description
SMEAS_STATUS_MASKa
0119
Enable mute function to respond to
SMEAS_STATUS_RANGE[6] (hpol).
R/W
R/W
R/W
R/W
R/W
R/W
R/W
[6]
Enable mute function to respond to
SMEAS_STATUS_RANGE[5] (vpol).
[4]
Enable mute function to respond to
SMEAS_STATUS_RANGE[4] (fastmute).
[3]
Enable mute function to respond to
SMEAS_STATUS_RANGE[3] (xpervhi).
[2]
Enable mute function to respond to
SMEAS_STATUS_RANGE[2] (hperv).
[1]
Enable mute function to respond to
SMEAS_STATUS_RANGE[1] (xperh).
[0]
Enable mute function to respond to
SMEAS_STATUS_RANGE[0] (xperv).
SMEAS_H_NUM_LINES
SMEAS_H_SKIP_L
011A
011B
[7:0]
00
Number of lines to measure for Horizontal period per Xclks,
actual value = programmed value +1. Range 1 – 256.
Provides for a more accurate measurement.
R/W
[7:0]
00
00
Number of horizontal reference edges to skip from selected
vertical reference edge before starting horizontal
measurement.
SMEAS_H_SKIP_U
SMEAS_HV_SKEWb
011C
011D
R/W
R
[3:0]
[7:0]
Returns the minimum number of xclks between edges of the
selected hsync and vsync. Does not care about polarity.
Free running, updates once per frame.
SMEAS_XK_HTOL_EXP
SMEAS_XK_VTOL_EXP
012C
012D
R/W
R/W
[3:0]
[3:0]
00
00
Horizontal tolerance value. +/- 2^n xclks, n=[0..15]
Vertical tolerance value. +/- 2^n xclks, xk_v_high counter use
this tolerance value as well. n=[0..15]
SMEAS_HSYNC_VTOL
SMEAS_FASTMU_CTRL
012E
0130
R/W
R/W
[3:0]
[6:5]
00
00
Horizontal per Vertical tolerance value.
+/-n H(rising,falling) per V(rising,falling)
fastmute coast
0*: llk coast (normal)
1: inverted venab
2, 3: no coast (always active)
R/W
[2:1]
error count
0*: first error sets fastmute flag
1: two errors in a row needed to set fastmute
2: three errors in a row needed to set fastmute
3: reserved
R/W
R
[0]
[1]
fastmute enable
SMEAS_POL
0131
0134
Horizontal polarity
0: active low (-), 1 = active high (+)
R
[0]
Vertical polarity
0: active low (-), 1 = active high (+)
SMEAS_FASTMU_TOL
R/W
[3:0]
00
Tolerance for fast mute check +/-n xclks, n=[0..15]
41/138
Register Description by Block
ADE3800
Table 17: SMEAS Register Definitions (Sheet 5 of 6)
Register Name
Addr
Mode
R/W
Bits
[1]
Rst
00
Description
SMEAS_STATUS_MASK2
0135
Enable mute function to respond to
SMEAS_STATUS_RANGE2[1].
R/W
R
[0]
[0]
Enable mute function to respond to
SMEAS_STATUS_RANGE2[0].
SMEAS_ACT_POLLING
SMEAS_ANA_ACT
013F
0140
00
00
Activity detection polling bit.
Toggles when new results are ready in free-run. Undefined in
one-shot mode.
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
[7]
SOG2 is active
[6]
SOG1 is active
[5]
SOG0 is active
[4]
EXT_SOG pin is active
[3]
Comp vsync from EXT_SOG pin is active
Comp vsync from HSYNC pin is active
HSYNC pin is active
[2]
[1]
[0]
VSYNC pin is active
SMEAS_SOG_DLY12
SMEAS_SOG_DLY34
SMEAS_ANA_STUCK
0141
0142
0143
[7:4]
[3:0]
[7:4]
[3:0]
[4]
00
00
00
d2: delay in xclks between SOG1 & SOG2 falling edges
d1: delay in xclks between SOG0 & SOG1 falling edges
d4: delay in xclks between SOG1 & SOG0 rising edges
d3: delay in xclks between SOG2 & SOG1 rising edges
EXT_SOG is stuck at 1(high)/0(low)
Comp vsync from EXT_SOG is stuck at 1(high)/0(low)
Comp vsync from HSYNC pin is stuck at 1(high)/0(low)
HSYNC pin is stuck at 1(high)/0(low)
VSYNC pin is stuck at 1(high)/0(low)
[3]
[2]
[1]
[0]
SMEAS_XK_PER_H_L
SMEAS_XK_PER_H_M
SMEAS_XK_PER_H_U
0146
0147
0148
R
R
R
[7:0]
[7:0]
[7:0]
00
00
00
Xclks per Horizontal [7:0] (result = actual - 2)
Xclks per Horizontal [15:8]
Xclks per Horizontal [23:16]
SMEAS_XK_PER_V_L
SMEAS_XK_PER_V_M
SMEAS_XK_PER_V_U
0149
014A
014B
R
R
R
[7:0]
[7:0]
[7:0]
00
00
00
Xclks per Vertical [7:0]
Xclks per Vertical [15:8]
Xclks per Vertical [23:16]
SMEAS_H_PER_V_L
SMEAS_H_PER_V_U
014C
014D
R
R
[7:0]
[7:0]
00
00
Horizontal per Vertical [7:0]
Horizontal per Vertical [15:8]
SMEAS_XK_V_HI_L
SMEAS_XK_V_HI_M
SMEAS_XK_V_HI_U
014E
014F
0150
R
R
R
[7:0]
[7:0]
[7:0]
00
00
00
Xclks per V high
SMEAS_REF_FASTMU_L
SMEAS_REF_FASTMU_U
0132
0133
R/W
R/W
[7:0]
[3:0]
00
00
Fastmute reference, xclks per hsync, one line only
SMEAS_STATUS_TMOT
0151
R
[1]
00
Indicates that the horizontal measurement timed out. Can
only be cleared by sync reset or smeas all_clear.
R
[0]
Indicates that the vertical measurement timed out. Can only
be cleared by sync reset or smeas all_clear.
42/138
ADE3800
Register Description by Block
Table 17: SMEAS Register Definitions (Sheet 6 of 6)
Register Name
Addr
Mode
Bits
[7]
Rst
00
Description
SMEAS_STATUS_RANGE
0152
R
The meas_sticky_status bit is an OR of the STATUS_MASK
bits ANDed with their corresponding non-sticky range status
flags. This bit is sticky and can only be cleared by a write to
SMEAS_CLEAR[1]. The sticky bit goes to the scaler as a
signal to blank the output screen.
R
R
R
R
R
R
R
R
[6]
[5]
[4]
[3]
[2]
[1]
[0]
[1]
Indicates that the hpol measurement does not currently equal
the reference value. Not sticky.
Indicates that the vpol measurement does not currently equal
the reference value. Not sticky.
Indicates that the fastmute measurement is currently
exceeding the ref+tol. Not sticky.
Indicates that the xclks per vhi measurement is currently
exceeding the ref+tol. Not sticky.
Indicates that the horizontal per vertical measurement is
currently exceeding the ref+tol. Not sticky.
Indicates that the xclks per horizontal measurement is
currently exceeding the ref+tol. Not sticky.
Indicates that the xclks per vertical measurement is currently
exceeding the ref+tol. Not sticky.
SMEAS_MEAS_POLLING
0153
00
Horizontal measurement polling bit.
Toggles upon completion of each measurement in free-run
mode while SMEAS_H_CTRL[1] = 1. Undefined in one-shot
mode.
R
[0]
Vertical measurement polling bit.
Toggles upon completion of each measurement in free-run
mode while SMEAS_V_CTRL[1] = 1. Undefined in one-shot
mode.
SMEAS_STATUS_RANGE2
0155
R
R
[1]
[0]
indicates the current state of the line buffer pointer crossing
error check in the scaler.
indicates the current state of the output sequencer trigger-
out-of-range error check
a. The Mask can apply in any mode of operation, it does not need to only apply to the Sticky bit setting.
b. Adjust VSYNC delay and/or filtering in the SRT block to achieve an hv_skew >= 6 to prevent vsync jitter
sensitivity in the SMUX and SMEAS blocks.
4.8 Sync Multiplexer (SMUX)
The SMUX block provides the ability to:
● Clamp (ADC Black level capture) pulse generation.
● Generate Data Enable from incoming HSync/Vsync signals.
● Select which sync source is used as internal reference.
Vertical enable (venab) and clamp are always generated.
43/138
Register Description by Block
ADE3800
Synthesized signals are generated relative to the reference signal and selected edge.
Clean picture position wrap around is supported in both horizontal and vertical directions (+/- half a
line in horizontal and +/- half a frame in vertical).
Programmed position and size values must be less than the respective horizontal and vertical totals.
Figure 8: Block Diagram
input
signals
output
signals
internal
signal
output
signal
selector
selector
hcount
vcount
H,V
reference
signals
ctrl1[3:0]
in_sel
out_sel
Table 18: Sync Multiplexer Registers (Sheet 1 of 3)
Register Name
SMUX_CTRL_0
Addr Mode
Bits
[7]
Rst
Description
0200
R
00
toggle on vsync edge as programmed in bit 5
R/W
[6]
0*: clamp on all lines
1: clamp not during coast
R/W
R/W
R/W
[5]
v edge select
0*: falling
1: rising
[4]
h edge select
0*: falling
1: rising
[3:0]
input select
0*: llk_HSync, srt_vsync (normal)
1: HSYNC input signal, VSYNC input signal
2-E: reserved
F: HSync = TCON.SRTD6 output
VSync = TCON.SRTD7 output
44/138
ADE3800
Register Description by Block
Table 18: Sync Multiplexer Registers (Sheet 2 of 3)
Register Name
Addr Mode
Bits
[7]
Rst
Description
SMUX_CTRL_1
0201
R/W
R/W
00
shadow event edge select
0*: falling
1: rising
[6:4]
register shadow event
0*: no event (upper byte write)
1: in_venab
2: in_enab
3: vtrigger
4: vtrigger count ≠ 0
5-7: reserved
R/W
[3:0]
output select
Must be set to 0
SMUX_CLAMP_POS_L
SMUX_CLAMP_POS_U
0202
0203
R/W
R/W
[7:0]
[3:0]
00
00
clamp pulse position relative to HSync
reference edge
SMUX_CLAMP_WIDTH_L
SMUX_CLAMP_WIDTH_U
0204
0205
R/W
R/W
[7:0]
[3:0]
00
00
clamp width in inclks
SMUX_HPOS_L
SMUX_HPOS_U
0206
0207
R/W
R/W
[7:0]
[3:0]
00
00
horizontal data position relative to HSync
reference edge
SMUX_HPIX_L
SMUX_HPIX_U
0208
0209
R/W
R/W
[7:0]
[3:0]
00
00
horizontal data width
SMUX_VPOS_L
020A
R/W
[7:0]
00
vertical trigger position in lines relative to
vsync reference edge. Should be used for
changing position to minimize screen
glitches.
SMUX_VPOS_U
020B
R/W
[3:0]
00
SMUX_VPIX_L
SMUX_VPIX_U
020C
020D
R/W
R/W
[7:0]
[3:0]
00
00
vertical data height
SMUX_VTRIG_L
SMUX_VTRIG_U
020E
020F
R/W
R/W
[7:0]
[3:0]
00
00
delay in lines from smux_vpos to the first line
of a new frame
SMUX_CLAMP_POS_HW_L
SMUX_CLAMP_POS_HW_U
0210
0211
R
R
[7:0]
[3:0]
00
00
shadow readback
shadow readback
shadow readback
shadow readback
SMUX_CLAMP_WIDTH_HW_L
SMUX_CLAMP_WIDTH_HW_U
0212
0213
R
R
[7:0]
[3:0]
00
00
SMUX_HPOS_HW_L
SMUX_HPOS_HW_U
0214
0215
R
R
[7:0]
[3:0]
00
00
SMUX_HPIX_HW_L
SMUX_HPIX_HW_U
0216
0217
R
R
[7:0]
[3:0]
00
00
45/138
Register Description by Block
ADE3800
Table 18: Sync Multiplexer Registers (Sheet 3 of 3)
Register Name
Addr Mode
Bits
Rst
Description
shadow readback
SMUX_VPOS_HW_L
SMUX_VPOS_HW_U
0218
0219
R
R
[7:0]
[3:0]
00
00
SMUX_VPIX_HW_L
SMUX_VPIX_HW_U
021A
021B
R
R
[7:0]
[3:0]
00
00
shadow readback
shadow readback
SMUX_VTRIG_HW_L
SMUX_VTRIG_HW_U
021C
021D
R
R
[7:0]
[3:0]
00
00
Note: A shadow readback register retains the previously programmed value until the relevant event
occurs. There is one shadow readback register for each register in the SMUX block.
Table 19: Horizontal Parameters
h sync
width
h front
porch
h data
h total
LLK reference
edge
raw h sync
h total / 2
LLK h sync
(50% duty
cycle)
h back porch
h start
h position
h
blanking
SMUX
reference
Table 20: Vertical Parameters
v sync
v front
width
porch
v enable
v total
SMUX reference
edge
v sync
v position
SMUX_VTRIG
v back porch
v start
1
line
v trig
v
blanking
SMUX
reference
46/138
ADE3800
Register Description by Block
4.9 Data Measurement (DMEAS)
DMEAS provides a number of pixel measurement functions for autosetup (find the best phase, ADC
sampling clock, picture auto-position) and autocolor (autolevel, ADC analog range tuning for black
and white calibration).
Most DMEAS measurement functions are performed within a programmable input image boundary
defined by the top left and bottom right window coordinate registers. The image boundary can be
full screen.
DMEAS also includes an annex block called DE Size and is decribed at the end of this spec.
All unused or reserved bits will return as zero.
The DMEAS block only processes the 7 MSBs of the 10 bit ADC outputs. Consequently the
maximum pixel value seen by DMEAS is FE.
The horizontal and vertical position measurements are relative to the selected reference sync
edges and must be offset before programming SMUX image position, refer to Chapter 4.8: Sync
Multiplexer (SMUX) for more information.
4.9.1 Function Summary
The algorithms grouped together are executed simultaneously.
The Color, Threshold, Mode Control, Window Control, and Output registers are shared for all
measurements, and are used according to the algorithm selected to measure.
Algorithm
Mode Ctrl
Result
Color
Thresh Window Control
Edge Intensity 00
Pixel Sum 00
One Shot
One Shot
32 bit edge_out
32 bit psum_out
R/G/B/All
R/G/B/All
Yes
No
Yes
Yes
Min / Max 01
Pcd 01
One Shot
One Shot
8 bit min / 8 bit max 24
bit pcd_out
R/G/B/All
R/G/B/All
No
Yes
Yes
Yes
Hpos / Vpos 02
One Shot
12 bit Hpos_Min
12 bit Hpos_Max
12 bit Vpos_Min
12 bit Vpos_Max
All
Yes
No
Yes
No
De_Size 03
One Shot /
Free Run
16 bit De_Size_out
1 bit De_Mismatch
None
4.9.2 Window Control
All measurements occur within a window in a single frame. The window is defined by the upper left
(min_x, min_y) and lower right (max_x, max_y) corners (inclusive). Window coordinates are relative
to Sync pulses. A window defined from (0,0) – (FFF, FFF) would go from sync to sync (full screen).
The sync reference edge selection is programmable.
4.9.3 Algorithm Control
The available measurements are described in detail below. Most algorithms can be run over each or
all color channels. Most algorithms also contain a threshold value to zero out noise and / or amplify
edges.
47/138
Register Description by Block
ADE3800
Algorithm, Color, Threshold, or Window Control changes should be made at the end of a valid
measurement, otherwise they will corrupt the current measurement in progress:
● set DMEAS parameters for the desired measurement
● start the measurement (don’t change the parameters above)
● wait until measurement completion.
4.9.4 Mode Control
All measurements (except De_Size) are performed in One Shot mode. For De_Size measurement,
software can request measurements in one of two ways:
● One Shot – synchronous with respect to the Micro Controller
● Free Run – asynchronous with respect to the Micro Controller
Note: The block indicates when a measurement is valid.
● In One Shot mode the measurement is completed through an Auto Clear of the Start
condition.
● In Free Run mode when the measurement is completed a polling bit toggles. A freeze bit is
provided to freeze the results. Measurements still continue while result registers are frozen.
4.9.5 Edge Intensity
The Edge Intensity measurement is the sum of the absolute value of the delta between adjacent
pixels. A programmable threshold is applied to zero out noise and amplify edges.
Equation:
Delta_val = abs(pixelA – pixelB) – threshold;
Delta_val = Delta_val < 0 ? 0: Delta_val;
Sum += Delta_val;
For all 3 color channels:
Sum += Delta_val on Red channel + Delta_val on Green channel + Delta_val on Blue channel
The measurement includes all transitions inside the defined window.
Measurement Window: The Edge Intensity is computed over a defined window as described in
Window Control.
Color Channels: A specific color channel (R/G/B) or all color channels (All) can be applied to the
Edge Intensity.
Result: The output at the end of the measurement is a 32-bit number.
4.9.6 Pixel Sum
The Pixel Sum is the sum of all selected pixels for either a specific color channel or all color
channels.
Measurement Window: The Pixel sum is computed over a defined window as described in Window
Control.
Color Channels: A specific color channel (R/G/B) or all color channels (All) can be applied to the
Pixel Sum.
Result: The output at the end of the measurement is a 32 bit number.
4.9.7 Min / Max
The Min / Max reports the minimum and maximum pixel found.
48/138
ADE3800
Register Description by Block
Measurement Window: The Min / Max value is found over a defined window as described in
Window Control.
Color Channels: A specific color channel (R/G/B) or all color channels (All) can be applied to the
Min / Max value.
Result: The output at the end of the measurement is two 8 bit numbers, the Minimum Pixel value
and the Maximum Pixel value.
4.9.8 Pixel Cumulative Distribution (PCD)
PCD function reports the total number of pixels greater than (or less than) a programmable
threshold.
To switch between pixels greater than or pixel less than the threshold, a control bit is provided in the
Mode register when requesting a measurement.
Measurement Window: The PCD value is calculated over a defined window as described in
Window Control.
Color Channels: A specific color channel (R/G/B) or all color channels (All) can be applied to the
PCD function.
Result: The output at the end of the measurement is a 24 bit number.
4.9.9 H Position Min / Max
Horizontal position measures the start and end of video data in inclks relative to the reference edge
of HSync.
Data horizontal start is defined as the number of inclks between the selected edge of HSync and the
“first data pixel”.
First data pixel definition is either:
1. First pixel > a programmable threshold value (normal)
2. First pixel with the absolute value (current pixel – previous pixel) is > a programmable threshold
value
Data horizontal end is defined as the number of inclks between reference edge of HSync and the
“last data pixel plus one”. The search for the last pixel ends at the end of a window.
Last data pixel plus one is either:
1. Pixel after the last pixel that is > a programmable threshold value (normal)
2. Last pixel with the absolute value (current pixel – previous pixel) is > a programmable threshold
value
To switch between the two threshold methods used in the first and last pixel, a control bit is provided
in the DMEAS_MODE_CTRL register when requesting a measurement.
The first and last pixels are measured for each line, and the earliest first and latest last for the
selected pixel area are reported out at the end of the measurement.
Measurement Window: The First / Last pixel on a line is found over a defined window as described
in Window Control.
Color Channels: All color channels are used to find the First / Last pixel on a line.
Result: The output at the end of the measurement is two 12 bit numbers, H position Min and H
position Max.
49/138
Register Description by Block
4.9.10 V Position Min / Max
ADE3800
Vertical position measures the start and end of video data in lines relative to the reference edge of
vsync.
Data vertical start is defined as the number of lines between the selected edge of vsync and the
“first data pixel”.
First data pixel definition is either:
1. First pixel > a programmable threshold value (normal)
2. First pixel with the absolute value (current pixel – previous pixel) is > a programmable threshold
value
Data vertical end is defined as the number of lines between reference edge of vsync and the “last
data pixel plus one”. The search for the last pixel ends at the end of a window.
Last data pixel plus one is either:
1. Pixel after the last pixel that is > a programmable threshold value (normal)
2. Last pixel with the absolute value (current pixel – previous pixel) is > a programmable threshold
value
To switch between the two threshold methods used in the first and last pixel, a control bit is provided
in the DMEAS_MODE_CTRL register when requesting a measurement.
Measurement Window: The selected pixel area range for y the range is vsync to vsync. The
selected range for x is not applicable.
Color Channels: All color channels are used to find the First / Last line in a frame.
Result: The output at the end of the measurement is two 12 bit numbers, V position Min and V
position Max.
4.9.11 DE Size
DE Size measures the number of inclks per DE.
At the end of the measurement (DE falling edge), the measured value is compared to a
programmed expected value +/- a programmed threshold. If the expected value is within the
threshold the DE_size_mismatch flag is not set. If the measured size is outside of the threshold the
DE_size_mismatch flag is set.
In free run mode the results are updated every line. The DE_size_mismatch flag is set at DE falling
edge and reset at DE rising edge.
In One shot mode the results are updated once and stay that way until they are cleared by software.
The DE_size_mismatch flag can only be cleared when the reset flag bit is set by software.
Result: 16 bit measured value.
50/138
ADE3800
Register Description by Block
Table 21: DMEAS Registers (Sheet 1 of 3)
Register Name
DMEAS_AEC_CTRL
Addr
Mode
Bits
[7:6]
Rst
00
Description
0900
R/W
color selection
00*: All
01: Red
10: Green
11: Blue
[5]
[4]
vsync edge selection
0*: Rising edge
1: Falling edge
HSync edge selection
0*: Rising edge (normal)
1: Falling edge
[2]
must be programmed to 1
[1:0]
Algorithm Selection
00*: Edge Intensity & Pixel Sum
01: Min / Max & PCD
10: H position and V position
11: DE size
51/138
Register Description by Block
ADE3800
Table 21: DMEAS Registers (Sheet 2 of 3)
Register Name
Addr
Mode
Bits
[7]
Rst
00
Description
DMEAS_MODE_CTRL
0901
R/W
DE reset
0*: do not reset the de_mismatch_flag
1: reset the de_mismatch_flag
R/W
R/W
[6]
[5]
DE freeze
0*: update I2C registers after every measurement in free
run mode
1: freeze DE size results in I2C registers and do not
update while this bit is active
DE one shot
0*: free run mode.
1: one shot mode.
Applies only to DE_Size measurement. All other
measurements are always in One_shot mode.
R/W
[3]
h_v_pos_sel / pcd_sel
- if algorithm = 01 (pcd_sel)
0*: pixel < threshold
1: pixel >= threshold
- if algorithm = 10 (h_v_pos_sel)
0*: pixel > threshold (normal)
1: abs (pixel - previous pixel) > threshold
R/W
R
[2]
DMEAS all clear
All internal result registers are cleared when this bit is
set. This bit is self clearing.
[1]
DMEAS polling bit.
Toggles at the end of each measurement in free-run
mode. Undefined in one-shot mode.
R/W
R/W
[0]
DMEAS start
Data measurement start. This bit is auto-cleared by HW
when the measurement is completed.
DMEAS_THRESHOLD
0902
[7:0]
00
Threshold value to use for selected algorithm.
DMEAS_WIN_MIN_X_L
DMEAS_WIN_MIN_X_U
0903
0904
R/W
R/W
[7:0]
[3:0]
00
00
Minimum X for window control to use with all algorithms.
DMEAS_WIN_MAX_X_L
DMEAS_WIN_MAX_X_U
0905
0906
R/W
R/W
[7:0]
[3:0]
FF
00
Maximum X for window control to use with all algorithms.
Minimum Y for window control to use with all algorithms.
Maximum Y for window control to use with all algorithms.
DE size expected result
DMEAS_WIN_MIN_Y_L
DMEAS_WIN_MIN_Y_U
0907
0908
R/W
R/W
[7:0]
[3:0]
00
00
DMEAS_WIN_MAX_Y_L
DMEAS_WIN_MAX_Y_U
0909
090A
R/W
R/W
[7:0]
[3:0]
FF
00
DMEAS_DE_REF_L
DMEAS_DE_REF_H
090B
090C
R
R
[7:0]
[7:0]
00
00
DMEAS_DE_TOL
090D
R
[7:0]
00
DE tolerance value
52/138
ADE3800
Register Description by Block
Table 21: DMEAS Registers (Sheet 3 of 3)
Register Name
Addr
Mode
Bits
[7:0]
Rst
00
Description
DMEAS_DATA_0
DMEAS_DATA_1
DMEAS_DATA_2
DMEAS_DATA_3
DMEAS_DATA_4
DMEAS_DATA_5
DMEAS_DATA_6
DMEAS_DATA_7
090E
090F
0910
0911
0912
0913
0914
0915
R
R
R
R
R
R
R
R
Refer to Table 22 below
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
00
00
00
00
00
00
00
Table 22: DMEAS Output Registers Assignment
alg_sel = 00
alg_sel = 01
alg_sel = 10
alg_sel = 11
edge_out [7:0]
min_out [7:0]
hpos_min [7:0]
de_size_out [7:0]
DMEAS_DATA_0
DMEAS_DATA_1
DMEAS_DATA_2
DMEAS_DATA_3
DMEAS_DATA_4
DMEAS_DATA_5
DMEAS_DATA_6
DMEAS_DATA_7
edge_out [15:8]
edge_out [23:16]
edge_out [31:24]
psum_out [7:0]
max_out [7:0]
pcd_out [7:0]
pcd_out [15:8]
pcd_out [23:16]
N/A
hpos_min [11:8]
hpos_max [7:0]
hpos_max [11:8]
vpos_min [7:0]
vpos_min [11:8]
vpos_max [7:0]
vpos_max [11:8]
de_size_out [15:8]
de_mismatch_flag
N/A
N/A
N/A
N/A
N/A
psum_out [15:8]
psum_out [23:16]
psum_out [31:24]
N/A
N/A
4.10 Scale (SCL)
ADE scales input video to output panel resolution without external video frame memory. This
requires tuning of the panel timing parameters to make the vertical active time match the panel’s.
Features:
● Separable 3V x 4H polyphase filter:
— 3 line filter for H resolutions <= 1024
— 2 line filter for H resolutions > 1024
● independent H & V kernel register storage
— 64 phases are interpolated from 6V or 10H reference points
— symmetric kernels only
— coefficients range from –2 to +1 63/64
● Simple pointer collision feedback mechanism
rd
● 2-way 3 generation context sensitive filtering
53/138
Register Description by Block
ADE3800
● Background color management
For formulae to program the registers refer to Chapter 7: Scaler Equations on page 132.
4.10.1 Frame Synchronization
Due to the limited pixel memory of the chip, the output active video needs to be perfectly
synchronized with the input active video. This mode of operation is called Frame Lock.
Figure 9: Frame Lock Operation
Table 23: Scale Registers (Sheet 1 of 3)
Register Name
Addr
R/W
Bits
Rst
00
Description
input horizontal resolution
SCL_SRC_HPIX_L
SCL_SRC_HPIX_U
0A00
0A01
R/W
R/W
[7:0]
[3:0]
00
SCL_SRC_VPIX_L
SCL_SRC_VPIX_U
0A02
0A03
R/W
R/W
[7:0]
[3:0]
00
00
input vertical resolution
SCL_SCALEFACH_L
SCL_SCALEFACH_M
SCL_SCALEFACH_U
0A04
0A05
0A06
R/W
R/W
R/W
[7:0]
[7:0]
[0]
00
00
00
17-bit horizontal scale factor
SCL_SCALEFACV_L
SCL_SCALEFACV_M
SCL_SCALEFACV_U
0A07
0A08
0A09
R/W
R/W
R/W
[7:0]
[7:0]
[0]
00
00
00
17-bit vertical scale factor
SCL_ORIGHPOS_L
SCL_ORIGHPOS_U
0A0A
0A0B
R/W
R/W
[7:0]
[7:0]
00
00
2’s complement , signed number
27-bit horizontal position of the first output pixel
SCL_ORIGVPOS_L
SCL_ORIGVPOS_U
0A0C
0A0D
R/W
R/W
[7:0]
[7:0]
00
00
2’s complement , signed number
27-bit vertical position of the first output pixel
SCL_PIPE_RATE_L
0A0E
R/W
[7:0]
00
Programmable update rate, which controls when a new
pixel column is read out of the line buffer.
For (sclk==dotclk) && (dest_hpix == in_hpix), pipe_rate =
0.
SCL_PIPE_RATE_U
0A0F
R/W
[3:0]
00
54/138
ADE3800
Register Description by Block
Table 23: Scale Registers (Sheet 2 of 3)
Register Name
Addr
R/W
Bits
Rst
00
Description
SCL_H_KERNEL_0
SCL_H_KERNEL_1
SCL_H_KERNEL_2
SCL_H_KERNEL_3
SCL_H_KERNEL_4
SCL_H_KERNEL_5
SCL_H_KERNEL_6
SCL_H_KERNEL_7
SCL_H_KERNEL_8
SCL_H_KERNEL_NORM
0A10
0A11
0A12
0A13
0A14
0A15
0A16
0A17
0A18
0A19
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
Horizontal filter kernel
2’s complement, signed numbers ranging from –2 to +1
63/64
00
00
00
00
00
00
00
00
40
2’s complement, signed number used to normalize the H
filter kernel (usually 64)
SCL_V_KERNEL_0
SCL_V_KERNEL_1
SCL_V_KERNEL_2
SCL_V_KERNEL_3
SCL_V_KERNEL_4
SCL_V_KERNEL_NORM
0A1A
0A1B
0A1C
0A1D
0A1E
0A1F
R/W
R/W
R/W
R/W
R/W
R/W
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
00
00
00
00
00
40
Vertical filter kernel
2’s complement, signed numbers ranging from –2 to +1
63/64
Has a ½ line shift compared to hkernel and must be
programmed to a 2 line kernel when in_hpixel > 1024.
2’s complement, signed number used to normalize the V
filter kernels (usually 64)
SCL_BGCOLOR_B
SCL_BGCOLOR_G
SCL_BGCOLOR_R
SCL_BGCOLOR_CTRL
0A20
0A21
0A22
0A23
R/W
R/W
R/W
R/W
R/W
[7:0]
[7:0]
[7:0]
[7]
00
00
00
00
Blue component of background color, refer to Figure 21
Green component of background color, refer to Figure 21
Red component of background color, refer to Figure 21
1: force background color
[4]
Mute color select:
0*: black
1: use background color
when SMEAS_STATUS_RANGE[7] is high
R/W
R/W
[3:2]
[1:0]
0*: line replicate 1
1: line replicate 2
2: line replicate 3
3: vertical border blend
0*: pixel replicate 1
1: pixel replicate 2
2: pixel replicate 3
3: horizontal border blend
SCL_PTR_PRE_L
SCL_PTR_PRE_U
0A24
0A25
R
R
[7:0]
[3:0]
00
00
The minimum difference of the write pointer and the first
of three read pointers; updated every frame
LSB = 4 pixels
Not valid when SCL_CONTROL[3] = 1
55/138
Register Description by Block
ADE3800
Table 23: Scale Registers (Sheet 3 of 3)
Register Name
Addr
R/W
Bits
Rst
00
Description
SCL_PTR_POST_L
0A26
R
[7:0]
The minimum difference of the write pointer and the last
of three read pointers; updated every frame
LSB = 4 pixels
SCL_PTR_POST_U
SCL_CONTROL
0A27
0A28
R
[3:0]
[4]
00
00
R/W
allow trigger delay count to be retriggered by SMUX vtrig
(normal = 0)
R/W
[3]
use two tap vertical filter
0*: in hpixel <= 1024
1: in_hpixel > 1024
ptr_pre is invalid in this case
R/W
R/W
[2]
[1]
allow output sequencer to be retriggered before
vtotal_min (normal = 0)
completes the current frame then stops the sequencer.
Poll the vcount register to determine when frame has
stopped.
R/W
R
[0]
enable scaler timing engine (output sequencer)
output sequencer vertical counter >> 4
SCL_VCOUNT
SCL_HTOTAL_L
0A29
0A2A
[7:0]
[7:0]
R/W
00
00
desired output htotal - 1
out_htotal should be even
note: out_henab should be a multiple of 4 for RSDS dual
SCL_HTOTAL_U
0A2B
R/W
[3:0]
SCL_VTOTAL_MIN_L
SCL_VTOTAL_MIN_U
0A2C
0A2D
R/W
R/W
[7:0]
[3:0]
00
00
minimum vcount before a new frame can be started
SCL_VTOTAL_MAX_L
SCL_VTOTAL_MAX_U
0A2E
0A2F
R/W
R/W
[7:0]
[3:0]
00
00
vcount at which the output sequencer will self trigger to
maintain a minimum frame rate to the panel
SCL_TRIGGER_DLY_L
SCL_TRIGGER_DLY_M
SCL_TRIGGER_DLY_U
0A30
0A31
0A32
R/W
R/W
R/W
[7:0]
[7:0]
[3:0]
00
00
00
time in xclks from SMUX vtrig to when vcount/hcount of
the output sequencer are reset to 0,0.
SCL_LINE_START_L
0A33
R/W
[7:0]
pipe start value
= 4.5 -origin_hpos*4096/scale_factor_h -(21.5+5*4096/
pipe_rate)*sclk_period/dotclk_period
If pipe_rate = 0, use 4096.
SCL_LINE_START_U
SCL_CONTEXT_0
0A34
0A35
R/W
R/W
R/W
R/W
R/W
R/W
[3:0]
[6:1]
[0]
00
00
context sharp offset
enable context function (normal)
context smooth slope (recommended = 1, 2, 3)
context sharp slope
SCL_CONTEXT_1
0A36
[7:6]
[5:4]
[3:0]
context sharp clip
For proper scale operation, the SCLK frequency must be programmed so that:
56/138
ADE3800
Register Description by Block
1
SCLK_FREQ is greater than the max of DCLK_FREQ and (IN_HPIXEL x DCLK_FREQ) /
DEST_HPIXEL;
2
3
4
SCLK_FREQ < 140 MHz
SCL_LINE_START > 0; and
SCL_PIPE_RATE <= 4096
The frame synchronization between input and output can be fine tuned using the line buffer pointer
crossing feedback registers, SCL_PTR_PRE and SCL_PTR_POST. By adjusting the
SCL_TRIGGER_DLY, pointer crossing can be eliminated.
4.10.2 Context Description
The context function allows the scaler to mix the output of three filters (sharp, normal kernel and
smooth) on a per pixel basis depending on the local contrast in a 3Vx4H area. The sharpening
suppresses ringing / overshoots.
Those 3 kernels: Smooth, User (defined with H and V kernel coefficients) and Sharp run in parallel
and can be blended together to finally generate a panel pixel.
If Context is disabled, only User Kernel is used.
If Context is enabled, then the blending of the 3 kernels follows the diagram below. The horizontal
axis is the context:
● Context 0 = All neighbour pixels (3x3) have almost same RGB values (greyscale).
● Context F = All neighbour pixels (3x3) have very different RGB values (1x1 Black and White
checker pattern).
Context is used along with I2C programmable coefficients to make the kernel blending ratio, as the
drawing below shows.
Refer to the context mixing equations for more details. The vertical axis has 63 steps. (63 = 100%).
57/138
Register Description by Block
ADE3800
Only 2 kernels can be blended together. Smooth wins over Sharp.
100%
Normal
Kernel
Output Mix
Sharp Clip
Smooth
Slope
Sharp
Input Contrast
Sharp Slope
Sharp Offset
Context Mixing Equations:
contrast = max(max(R0,R1,..)-min(R0,R1,..), max(G0,G1,..)-min(G0,G1,..), max(B0,B1,..)-
min(B0,B1,..)), 6b value, [0..63]
sharp_mix = clip((contrast >> (3-sharp_slope)) – sharp_offset, 0 , sharp_clip), 4b value, [0..15]
smooth_mix = (sharp_mix == 0) * (15 – clip((contrast << smooth_slope), 0, 15)), 4b value, [0..15]
normal_mix = 16 – sharp_mix – smooth_mix, [1,,16]
Note: It is recommended to enable the context feature all the time with:
● SCL_CONTEXT_0 = 01
● SCL_CONTEXT_1 = 80
4.10.3 Scale Kernel Example
Recommended kernel is:
● Nearest Neighbor for 1X scale modes (no scaling)
● Cubic for > 1X scale modes (upscaling)
● Bilinear for < 1X scal modes (downscaling)
No Scaling
Down Scaling
Bilinear
Up Scaling
Register
Address
Nearest Neighbor
“-0.7” Cubic
00
“-0.5” Cubic
00
H_KERNEL_0
0A10
00
00
58/138
ADE3800
Register Description by Block
No Scaling
Down Scaling
Bilinear
Up Scaling
Register
Address
Nearest Neighbor
“-0.7” Cubic
FE
“-0.5” Cubic
H_KERNEL_1
H_KERNEL_2
H_KERNEL_3
H_KERNEL_4
H_KERNEL_5
H_KERNEL_6
H_KERNEL_7
H_KERNEL_8
H_KERNEL_NORM
V_KERNEL_0
V_KERNEL_1
V_KERNEL_2
V_KERNEL_3
V_KERNEL_4
V_KERNEL_NORM
0A11
00
00
00
00
00
20
40
40
40
00
00
00
00
00
40
00
00
00
00
10
20
30
40
40
00
00
00
10
20
40
FE
FC
FB
00
0F
24
38
40
40
FA
FA
FE
0D
22
40
0A12
0A13
0A14
0A15
0A16
0A17
0A18
0A19
0A1A
0A1B
0A1C
0A1D
0A1E
0A1F
FA
F9
FF
10
26
39
41
40
FB
F9
FF
10
23
40
Note: Upscaling and downscaling can be simultaneously combined horizontally and vertically.
4.11 Pattern Generator (PGEN)
The PGEN block can generate graphic patterns to support debug and test tasks for LCD panels
such as horizontal or vertical bicolor stripes, bicolor checkers, color bars, gray scales or color
scales. It is also possible to pass through the RGB signal coming from the SCL block.
Note: The PGEN block is located before the sRGB color management block.
4.11.1 Overview
The following features of the PGEN block overlap each other like layers, defining display priorities:
● Bars (lowest display priority)
● Cells and Grids
● Borders
● TCON Window Control (highest display priority)
Bars and cells are freely programmable in size and independently of each other.
A border is a horizontal or vertical borderline. If enabled, it has priority over the above settings.
Above all, aTCON window, if enabled, restrains all PGEN settings to a given display area.
59/138
Register Description by Block
ADE3800
4.11.2 Color Mask Sequencer
4.11.2.1 Bars and Groups
A bar is the basic graphic element of the PGEN. A bar group is based on two independently
programmable 24 bit RGB colors named C0 and C1 and programmed into:
● For C0: PGEN_P0_COLOR _R_C0, PGEN_P0_COLOR _G_C0, PGEN_P0_COLOR _B_C0
● For C1: PGEN_P0_COLOR _R_C1, PGEN_P0_COLOR _G_C1, PGEN_P0_COLOR _B_C1
Each color C0 and C1 is assigned to 1 to 8 consecutive bars. The number of bars minus 1 is
programmable in PGEN_P0_MODE, bits [7:5] for C0 and [4:2] for C1:
One group per colour
C0 and C1
Bar group
Bar 0
Bar 1
Bar 2
Bar 3
Bar 4
Bar 5
Bar 6
Bar 7
Up to 8 bars per colour
4.11.2.2 Bar Width, Height and Offset Control
Bar’s height and width are programmable, respectively in PGEN_P0_WDTH and PGEN_P0_HGHT
(16-bit wide).The actual number of displayed bars depends on the bar width, height and the panel
resolution. The bars are numbered in incremental fashion from left to right, top to bottom.
If the combined size of all bars in a group is smaller than the display area, each of the C0 and C1
bar groups is replicated across the display, as long as the bars still fit in the display area:
DISPLAY
AREA
last bar in C0:
proceed to 1st bar in C1
next
bar
in
C0
group
Bar 0 Bar 1 Bar 2 Bar 3 Bar 4 Bar 5 Bar 0 Bar 1 Bar 2 Bar 3
C0 C0 C0 C0 C0 C0 C1 C1 C1 C1
bar
6
part of bars
off screen:
not entirely
displayed
C0
Bar 1 Bar 2 Bar 3 Bar 4 Bar 5 Bar 0 Bar 1 Bar 2 Bar 3 Bar 0
C0
C0
C0
C0
C0
C1
C1
C1
C1
C0
bar
4
C1
Bar 2 Bar 3 Bar 4 Bar 5 Bar 0 Bar 1 Bar 2 Bar 3 Bar 0 Bar 1
C0 C0 C0 C0 C1 C1 C1 C1 C0 C0
The height and width of a bar can range anywhere from 1 pixel (checkerboard) to full screen.
Additionally, an offset in both directions can be programmed respectively in registers
PGEN_P0_WDTH_X_OFFSET and PGEN_P0_HGHT_Y_OFFSET. It shifts the top left corner (1st
bar of C0 group) off the display area.
Note: The offset value, for each direction, must be less than the corresponding bar size.
4.11.2.3 Color Masks
Each bar can filter any R G B component of its assigned C0 or C1 color, by means of 3 mask bits
per bar in registers PGEN_P0_SEQ_COL0_COL1 (bars 0 & 1) thru PGEN_P0_SEQ_COL6_COL7
(bars 6 & 7). The color is “ANDed” with the mask:
● if either R G B bit is reset, the corresponding colour component is blocked
● if set, the colour component is not blocked
Example:
PGEN_COLOR_C0_B = PGEN_COLOR _C0_G = PGEN_COLOR _C0_R = FF sets C0 to white
PGEN_P0_MODE is set to AC:
● Number of bars in C0 = PGEN_P0_MODE[7:5] +1 = 6 (bars 0 to 5)
60/138
ADE3800
Register Description by Block
● Number of bars in C1 = PGEN_P0_MODE[4:2] +1 = 4 (bars 0 to 3)
PGEN_P0_SEQ_COL0_COL1 = 42:
● Bar 0 filters G and B components but lets R pass: this 1st bar is displayed in red
● Bar 1 filters R and B components but lets G pass: this 2nd bar is displayed in green
PGEN_P0_SEQ_COL2_COL3 = 17:
● Bar 2 filters R and G components but lets B pass: this 3rd bar is displayed in blue
● Bar 3 does not filter any of the R G B components: this 4th bar is displayed in white
PGEN_P0_SEQ_COL4_COL5 = 77: bars 4 and 5 do not filter R G B and are displayed in white.
PGEN_P0_SEQ_COL6_COL7 is don’t care, since a maximum of 6 bars is used by C0 and C1.
Across the display, 6 bars [red] [green] [blue] [white] [white] [white] (from C0 group) are now
displayed, followed by 4 bars [red] [green] [blue] [white] (from C1 group), then again 6 bars from
C0 group etc.. until the right border of the display area is reached:
RGBcolors
(24 bit)
C0 C0 C0 C0 C0 C0 C0 C0
C1 C1 C1 C1 C1 C1 C1 C1
Identical mask sets
&
&
RGBmasks
(3 bit each)
RGB RGB RGB RGB RGB RGB RGB RGB
RGB RGB RGB RGB RGB RGB RGB RGB
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
seq_colx_colx
=
=
Col Sequence:
(‘bar0’ = 5,
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
’bar1’ = 3 )
disabled
disabled
Resulting pattern:
width
(in pix)
width
(in pix)
width
(in pix)
width
(in pix)
The bars also repeat vertically.
4.11.2.4 Gradient Control
The gradient control registers modify the colors C0 and C1 as follows:
● PGEN_P0_GRADDELTA_R: increment the Red value by this register value
● PGEN_P0_GRADDELTA_G: increment the Green value by this register value
● PGEN_P0_GRADDELTA_B: increment the Blue value by this register value
● PGEN_P0_GRADSTEP_X: apply the increment value to each color every X horizontal pixels
● PGEN_P0_GRADSTEP_Y: apply the increment value to each color every Y vertical lines
61/138
Register Description by Block
ADE3800
Note: The values wrap over FF: for example, a value of FF for GRADDELTA will decrease the color by 1 (if
GRADDELTA was 50: 50+FF=4F=GRADDELTA-1)
All kinds of color shades can be achieved by wisely using the above parameters.
4.11.3 8 x 8 Grid Layout with Optional Resets
A cell is a graphic element grouped by 8 in a grid. A set of 8 Grid Registers PGEN_GRID0 to
PGEN_GRID7 represents an 8x8 bitmap where each bit represents one rectangular cell: this
makes a total grid of 8x8 cells.
Each cell either displays the bar pattern defined above, or the input video signal, depending on the
value in its corresponding PGEN_GRID register:
Pixels by increasing numbers
Cell
Grid 0
PGEN or
video signal
Grid 1
Grid 2
Grid 3
Grid 4
Grid 5
Grid 6
Grid 7
MSB
LSB
All cells have the same size, defined by one horizontal and one vertical grid pitch registers
PGEN_GRID_X and PGEN_GRID_Y (16-bit wide).
Additionally, an offset in both directions can be programmed respectively in registers
PGEN_P0_WDTH_X_OFFSET and PGEN_P0_HGHT_Y_OFFSET. It shifts the top left corner (1st
cell of Grid 0) off the display area.
Note: The offset value, for each direction, must be less than the corresponding cell size.
The actual number of displayed cells depends on the programmed cell size:
● If it makes the complete 8x8 grid bigger than the total display area, only the cells or part of
cells that are included in the display area are displayed. Any cell (on the right and bottom
sides) outside the display area is ignored and not displayed
62/138
ADE3800
Register Description by Block
● If it makes the complete 8x8 grid smaller than the total display area, the 8x8 pattern repeats
itself across the entire display area, both vertically and horizontally
Figure 10: 8x8 Grip Mapping Example
DISPLAY
AREA
this last part of Grid 0
(cells 1 to 7)
01234567
01234567 01234567
is not displayed
grid’s width
and height
are smaller than
the display area:
grids repeat both
horizontally and
vertically
Grid
Grid
0
Grid
0
0
1 Cell
01234567 01234567 01234567
Grid
1
Grid
1
Grid
1
One Grid
with 8 Cells
this bottom part of Grid 1
(all cells) is not displayed
4.11.3.1 Cell Reset
When PGEN_P0_MODE[1] bit is set, the bar counters will be reset to bar 0, and gradients color
counters will be reset to the default color value C0, each time a new grid cell is reached.
This is to be combined with bar offset settings (refer to Section 4.11.2.2: Bar Width, Height and
Offset Control and the example provided hereafter). For example, this will affect all patterns with
non-zero values for PGEN_P0_GRADSTEP_X and/or PGEN_P0_GRADSTEP_Y.
4.11.3.2 Color C0 Replacement
When PGEN_P0_MODE[0] bit is set, the input video signal takes the place of color C0. In that case,
non-zero gradients will apply the increment value to each R G B color of the input signal, not C0.
Note: If the displayed picture has noticiable jitter, the input R G B values are not stable and may generate
heavy noise on screen when the gradient applied to R G B values rolls over from FF to 00.
4.11.4 Borders
The border generator adds a single pixel wide borderline to the panel area. There are 4 edges: top,
bottom, left and right. Each edge can be enabled independently, and programmed to one of 8 basic
colors using a 3-bit RGB mask:
Table 24: Borders Colors
Colour
Red
Green
Blue
Value
Black
Blue
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
2
3
4
5
6
Green
Cyan
Red
Magenta
Yellow
63/138
Register Description by Block
ADE3800
Table 24: Borders Colors
Colour
Red
Green
Blue
Value
7
White
1
1
1
The borders override the graphic pattern. In addition, the left and right edges override the top and
bottom ones: for example, when both left and top side borders are enabled, the upper left corner
has the color of the left side border.
Example:
PGEN_ENAB = 01 enables PGEN
PGEN_X_TOT_L = 00, PGEN_X_TOT_H = 05 considering that the panel is 1280 pixels wide
PGEN_Y_TOT_L = 00, PGEN_Y_TOT_H = 04 considering that the panel is 1024 pixels high
PGEN_B_TOP_BOT = EE adds a yellow horizontal borderline to top and bottom of display area
PGEN_B_LFT_RHT = 9A adds a blue vertical borderline to the left and a green one to the right
4.11.5 TCON Window Control
Normally, the whole PGEN block is enabled if its global enable bit PGEN_ENAB[0] is set.
If it is not set but the bit PGEN_ENAB[1] is set instead, the programmed pattern will show only
inside a rectangular window defined by the associated TCON signal TCON_X_PGEN. Outside this
window, the input video stream will be displayed as generated by the scaler.
Note: If the global enable bit PGEN_ENAB[0] is set, it has priority over PGEN_ENAB[1].
TCON window
input
video
signal
displayed
everywhere
PGEN pattern
displayed here
else
Table 25: Pattern Generator Registers (Sheet 1 of 3)
Register Name
PGEN_ENAB
Addr
Mode
Bits
[1]
Rst
00
Description
0600
R/W
Window control via TCON signal
0*: disable, use global enable bit 0 below
1: enable PGEN by TCON_X_PGEN
R/W
[0]
Global PGEN enable bit
0*: disable
1: enable
(this bit overrides bit 1 above)
PGEN_X_TOT_L
PGEN_X_TOT_U
0601
0602
R/W
R/W
[7:0]
[3:0]
00
00
screen total horizontal size in pixels
64/138
ADE3800
Register Description by Block
Table 25: Pattern Generator Registers (Sheet 2 of 3)
Register Name
Addr
Mode
Bits
Rst
00
Description
PGEN_Y_TOT_L
PGEN_Y_TOT_U
0603
0604
R/W
R/W
[7:0]
[3:0]
screen total vertical size in lines
00
00
PGEN_B_TOP_BOT
PGEN_B_LFT_RHT
PGEN_GRID0
0605
0606
0607
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
[7]
top border enable bit
[6:4]
[3]
top border R G B color enable bits
bottom border enable bit
[2:0]
[7]
bottom border R G B color enable bits
left border enable bit
00
00
[6:4]
[3]
left border R G B color enable bits
right border enable bit
[2:0]
[7:0]
right border R G B color enable bits
grid ‘s row 0
0: select P0 (bar pattern)
1: select input signal (from scaler)
PGEN_GRID1
PGEN_GRID2
PGEN_GRID3
PGEN_GRID4
PGEN_GRID5
PGEN_GRID6
PGEN_GRID7
0608
0609
060A
060B
060C
060D
060E
R/W
R/W
R/W
R/W
R/W
R/W
R/W
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
00
00
00
00
00
00
00
grid ‘s row 1
grid ‘s row 2
grid ‘s row 3
grid ‘s row 4
grid ‘s row 5
grid ‘s row 6
grid ‘s row 7
PGEN_GRID_X_L
PGEN_GRID_X_U
060F
0610
R/W
R/W
[7:0]
[3:0]
00
00
grid cells width, in pixels
PGEN_GRID_Y_L
PGEN_GRID_Y_U
0611
0612
R/W
R/W
[7:0]
[3:0]
00
00
grid cells height, in lines
PGEN_GRID_X_OFFSET_L
PGEN_GRID_X_OFFSET_U
0613
0614
R/W
R/W
[7:0]
[3:0]
00
00
grid’s horizontal offset, in pixels
grid’s vertical offset, in lines
PGEN_GRID_Y_OFFSET_L
PGEN_GRID_Y_OFFSET_U
0615
0616
R/W
R/W
[7:0]
[3:0]
00
00
PGEN_P0_MODE
0617
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
[7:5]
[4:2]
[1]
00
number of bars in C0 (actual number -1)
number of bars in C1 (actual number -1)
cell reset enable
[0]
video replaces C0 enable
color C0 – blue
PGEN_P0_COLOR_B_C0
PGEN_P0_COLOR_G_C0
PGEN_P0_COLOR_R_C0
PGEN_P0_COLOR_B_C1
PGEN_P0_COLOR_G_C1
0618
0619
061A
061B
061C
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
00
00
00
00
00
color C0 – green
color C0 – red
color C1 – blue
color C1 – green
65/138
Register Description by Block
ADE3800
Table 25: Pattern Generator Registers (Sheet 3 of 3)
Register Name
Addr
Mode
Bits
Rst
00
Description
PGEN_P0_COLOR_R_C1
061D
061E
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
[7:0]
[6:4]
[2:0]
[6:4]
[2:0]
[6:4]
[2:0]
[6:4]
[2:0]
color C1 – red
PGEN_P0_SEQ_COL0_COL1
00
00
00
00
bar 0: R G B color mask
bar 1: R G B color mask
bar 2: R G B color mask
bar 3: R G B color mask
bar 4: R G B color mask
bar 5: R G B color mask
bar 6: R G B color mask
bar 7: R G B color mask
bar width, in pixels
PGEN_P0_SEQ_COL2_COL3
PGEN_P0_SEQ_COL4_COL5
PGEN_P0_SEQ_COL6_COL7
061F
0620
0621
PGEN_P0_WDTH_L
PGEN_P0_WDTH_U
0622
0623
R/W
R/W
[7:0]
[3:0]
00
00
PGEN_P0_HGHT_L
PGEN_P0_HGHT_U
0624
0625
R/W
R/W
[7:0]
[3:0]
00
00
bar height, in lines
PGEN_P0_WDTH_X_OFFSET_L
PGEN_P0_WDTH_X_OFFSET_U
0626
0627
R/W
R/W
[7:0]
[3:0]
00
00
bar horizontal offset, in pixels
bar vertical offset, in lines
PGEN_P0_HGHT_Y_OFFSET_L
PGEN_P0_HGHT_Y_OFFSET_U
0628
0629
R/W
R/W
[7:0]
[3:0]
00
00
PGEN_P0_GRADDELTA_B
PGEN_P0_GRADDELTA_G
PGEN_P0_GRADDELTA_R
PGEN_P0_GRADSTEP_X
PGEN_P0_GRADSTEP_Y
062A
062B
062C
062D
062E
R/W
R/W
R/W
R/W
R/W
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
00
00
00
00
00
blue gradient delta
green gradient delta
red gradient delta
gradient horizontal step, in pixels
gradient vertical step, in lines
EXAMPLES
All examples assume that the display panel size is 1280x1024 and no pattern is preset, therefore:
● PGEN_X_TOT_L = 00, PGEN_X_TOT_H = 05
● PGEN_Y_TOT_L = 00, PGEN_Y_TOT_H = 04
● All other registers are 00
● A stable picture is being displayed
Example 1
PGEN_GRID0 = PGEN_GRID7 = 00 generated pattern is enabled on all 8 cells of grid 0 (top) and
grid 7 (bottom)
PGEN_GRID1..6 = 7E generated pattern is enabled on 1st and 8th cells only of grid 1 thru 6
PGEN_GRID_X_L = 1280 / 8 cells per grid across screen = A0, PGEN_GRID_X_H = 00
PGEN_GRID_Y_L = 1024 / 8 lines across screen = 80, PGEN_GRID_Y_H = 00
PGEN_P0_MODE = 00 color C0 uses 1 bar (bar 0) only
66/138
ADE3800
Register Description by Block
PGEN_P0_SEQ_COL0_COL1 = 70 bar 0 does not block any of the R G B colors
PGEN_P0_COLOR_B_C0 = 00
PGEN_P0_COLOR_G_C0 = FF define color C0 as light green
PGEN_P0_COLOR_B_C0 = 00
PGEN_ENABLE = 01 enable PGEN
This displays a thick green block that surrounds the original picture in the center.
Now, if PGEN_P0_GRADDELTA_G = FF and PGEN_P0_GRADSTEP_X = 05, the solid green is
turned into one linear horizontal shade of green, evenly spread over the horizontal axis from left
(light green) to right (black).
Additionally, if PGEN_P0_MODE = 02, the gradient registers are preset to color C0 each time a new
grid cell is displayed; this gives 8 distinct shades of green (1 per cell) across the display.
Example 2
PGEN_GRID0, 2, 4, 6 = 00 all cells of these grids display the pattern
PGEN_GRID1, 3, 5, 7= 80 1st cell of these grids displays the real picture
PGEN_GRID_X_L = 00, PGEN_GRID_X_H = 05 the 1st cell takes the entire display width
PGEN_GRID_Y_L = 1024 / 8 lines across screen = 80, PGEN_GRID_Y_H = 00 one cell takes 1/8th
of the display height, so that all 8 grids will be displayed
PGEN_P0_MODE = 80 color C0 uses 4 bars (bars 0 1 2 3)
PGEN_P0_SEQ_COL0_COL1 = 74
● bar 0 does not block any of the R G B colors (displays C0 as is)
● bar 1 blocks G and B colors (displays R only)
PGEN_P0_SEQ_COL2_COL3 = 21
● bar 2 blocks R and B colors (displays G only)
● bar 3 blocks R and G colors (displays B only)
PGEN_P0_COLOR_B_C0 = PGEN_P0_COLOR_G_C0 = PGEN_P0_COLOR_B_C0 = 00: C0 is
black
PGEN_P0_GRADDELTA_R = PGEN_P0_GRADDELTA_G = PGEN_P0_GRADDELTA_B = 01: R G
B color components of C0 gradually increase from left to right
PGEN_P0_GRADSTEP_X = 05: shade is evenly spread over the horizontal axis
PGEN_ENABLE = 01 enable PGEN
This displays a complex pattern made of 8 horizontal rows:
● 1st row (= bar 0) displays a shade of white, from left (black) to right (white)
● 3rd row (= bar 1) displays a shade of red, from left (black) to right (light red)
● 5th row (= bar 2) displays a shade of green, from left (black) to right (light green)
● 7th row (= bar 3) displays a shade of blue, from left (black) to right (light blue)
● 2nd, 4th, 6th and 8th rows display the original picture
When displaying the same pattern from an external pattern generator, since each row of each color
is displayed side by side with the same reference shade row generated by the PGEN, defects can
be spotted immediately. This is a very useful test to see possible ADC or panel defects.
67/138
Register Description by Block
ADE3800
4.12 sRGB (SRGB)
The sRGB block performs two primary functions:
1. Parametric gamma correction on multiple windows or full screen, used for video enhancement
in a window and digital contrast/brightness control. The window coordinates are set by TCON
registers.
2. 3D color cube warping RGB color space.
The entire backend of the ADE3800 (from Scaler output to the APC) has a 10 bit database including
the sRGB block. The sRGB controls correspond to the 8 MSBs of the data.
4.12.1 Parametric Gamma, Digital Contrast / Brightness on Multiple Windows
The function can be applied to the entire window by programming the window control to full screen.
Each color channel acts independently. Simple digital contrast and brightness can be programmed
using this hardware function. The desired window coordinates are programmed into the TCON.
Note: If both Gamma1 and Gamma2 are enabled, Gamma1 has priority over Gamma2.
4.12.2 Color Space Warp
The 8 corners of the color cube are independently controlled in 3D space with smooth interpolation
of intermediate colors. Registers are 2’s complement color deltas.
For example:
● to make WHITE more like RED, program SRGB_WHITE_R to a small positive value.
● to turn RED into GREEN, set Gain = 2 in SRGB_CTRL0[7:6], then SRGB_RED_R = 0x80
(-128) to block the red, and SRGB_RED_G=0x30 (the higher the value (up to 0x7F) the
brighter the green).
Figure 11: Color Space Warp
Color Space Warp
IN
OUT
The step value for each color delta depends on the gain setting in SRGB_CTRL0[7:6], as follows:
Table 26: Color Space Warp Gain Control
SRGB_CTRL0[7:6]
Gain
Step Size
Color Delta Range
0
1
2
1
2
4
0.5
1
[-64;+63]
[-128;+127]
[-256;+255]
2
68/138
ADE3800
Register Description by Block
Note: It is recommended to limit the range of all red/green/blue correction registers and black/red/green/
blue/yellow/cyan/magenta/white delta registers to [-64..+63] to avoid color overflow/underflow
computation.
Table 27: sRGB Registers (Sheet 1 of 2)
Register Name
SRGB_CTRL0
Addr Mode
Bits
Rst
00
Description
0D00
R/W
Gain control of sRGB coeff values
0*: gain = 1 (half step)
1: gain = 2 (single step)
[7:6]
2: gain = 4 (double step)
00*: gamma2 disabled
01: gamma2 full screen
10: gamma2 windowed
11: reserved
R/W
R/W
R/W
[5:4]
[3:2]
[1:0]
00*: gamma1 disabled
01: gamma1 full screen
10: gamma1 windowed
11: reserved
00*: srgb disabled
01: srgb full screen
10: srgb windowed
11: reserved
SRGB_CTRL1
SRGB_CTRL2
0D01
0D02
R/W
R/W
[4]
[3]
00
00
0*: dither pattern disabled (normal)
White point saturation inside gamma2 window
0*: disabled
1: enabled
White point saturation inside gamma1 window
R/W
R/W
R/W
[2]
[1]
[0]
0*: disabled
1: enabled
White point saturation inside srgb window
0*: disabled
1: enabled
White point saturation over full screen
0*: disabled
1: enabled
SRGB_BLACK_B
SRGB_BLACK_G
SRGB_BLACK_R
SRGB_RED_B
0D03
0D04
0D05
0D06
0D07
0D08
0D09
0D0A
0D0B
0D0C
0D0D
0D0E
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
00
00
00
00
00
00
00
00
00
00
00
00
black point bluedelta
black point green delta
black point red delta
red point blue delta
red point green delta
red point red delta
SRGB_RED_G
SRGB_RED_R
SRGB_GREEN_B
SRGB_GREEN_G
SRGB_GREEN_R
SRGB_BLUE_B
SRGB_BLUE_G
SRGB_BLUE_R
green point bluedeltablue
green point green delta
green point reddelta
blue point bluedelta
blue point green delta
blue point red delta
69/138
Register Description by Block
ADE3800
Table 27: sRGB Registers (Sheet 2 of 2)
Register Name
Addr Mode
Bits
Rst
00
Description
SRGB_YELLOW_B
SRGB_YELLOW_G
SRGB_YELLOW_R
SRGB_CYAN_B
0D0F
0D10
0D11
0D12
0D13
0D14
0D15
0D16
0D17
0D18
0D19
0D1A
0D1B
0D1C
0D1D
0D1E
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
yellow point bluedelta
yellow point green delta
yellow point red delta
cyan point bluedelta
cyan point green delta
cyan point red delta
00
00
00
00
00
00
00
00
00
00
00
FF
FF
FF
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
SRGB_CYAN_G
SRGB_CYAN_R
SRGB_MAGENTA_B
SRGB_MAGENTA_G
SRGB_MAGENTA_R
SRGB_WHITE_B
magenta point bluedelta
magenta point green delta
magenta point red delta
white point bluedelta
SRGB_WHITE_G
white point green delta
white point red delta
SRGB_WHITE_R
SRGB_WSAT_LIM_B
SRGB_WSAT_LIM_G
SRGB_WSAT_LIM_R
SRGB_GAMMA1_CON_B
White point saturation value for the bluecomponent
White point saturation value for the green component
White point saturation value for the red component
first parametric contrast correction, bluecomponent
first parametric contrast correction, green component
first parametric contrast correction, red component
first parametric brightness correction, bluecomponent
first parametric brightness correction, green component
first parametric brightness correction, red component
first parametric gamma correction, bluecomponent
first parametric gamma correction, green component
first parametric gamma correction, red component
second parametric contrast correction, bluecomponent
second parametric contrast correction, green component
second parametric contrast correction, red component
second parametric brightness correction, bluecomponent
second parametric brightness correction, green component
second parametric brightness correction, red component
second parametric gamma correction, bluecomponent
second parametric gamma correction, green component
second parametric gamma correction, red component
SRGB_GAMMA1_CON_G 0D1F
SRGB_GAMMA1_CON_R
SRGB_GAMMA1_BRI_B
SRGB_GAMMA1_BRI_G
SRGB_GAMMA1_BRI_R
SRGB_GAMMA1_GAM_B
0D20
0D21
0D22
0D23
0D24
SRGB_GAMMA1_GAM_G 0D25
SRGB_GAMMA1_GAM_R 0D26
SRGB_GAMMA2_CON_B
0D27
SRGB_GAMMA2_CON_G 0D28
SRGB_GAMMA2_CON_R
SRGB_GAMMA2_BRI_B
SRGB_GAMMA2_BRI_G
SRGB_GAMMA2_BRI_R
SRGB_GAMMA2_GAM_B
0D29
0D2A
0D2B
0D2C
0D2D
SRGB_GAMMA2_GAM_G 0D2E
SRGB_GAMMA2_GAM_R 0D2F
70/138
ADE3800
Register Description by Block
4.13 Gamma (GAM)
The Gamma block implements three independent 256 point gamma curves for each of R, G, and B
channels.
Its features are as follows:
● 256x8b table per color channel stores 2’s complement difference to straight line
th
● 10b input/output (0 to 1023), range of delta = -128 to +127 (+/- 1/8 full scale)
● double LUT amplitude control to change range to 2 x (delta = -256 to +254)
● fast write mode for loading 3 tables with the same data
● glitch free write mode
● clipping on output to [0,1023]
● programmable offset_value added from offset_position0 to offset_position1 (inclusive).
gamma_out_r = gamma_in_r + lut_r + (offset_position0 <= gamma_in_r <= offset_position1) ?
offset_value: 0
gamma_out_g = gamma_in_g + lut_g + (offset_position0 <= gamma_in_g <= offset_position1) ?
offset_value: 0
gamma_out_b = gamma_in_b + lut_b + (offset_position0 <= gamma_in_b <= offset_position1) ?
offset_value: 0
Table 28: Gamma Registers
I2C Address Label
Addr
Mode
Bits
[3]
Rst
Description
0*: delta range = -128 to +127
GAM_CTRL
0C00
R/W
00
1: delta range = -256 to +254
[2]
0*: i2c to RAM transfer at selected i2c address only
1: i2c to RAM transfer the same value to Red, Green, and Blue
RAMs when selecting Red RAM addresses
[1]
[0]
0*: Write i2c to RAM allowed during active video
1: Write i2c to RAM during video blanking only (shadowed)
0*: gamma bypassed
1: gamma enabled
GAM_POSITION0
0C01
R/W
[7:0]
00
IF (gamma_in/4 >= offset_position0 && gamma_in/4 <=
offset_position1)
THEN offset = offset_value * 16
ELSE offset = 0
(gamma_out = gamma_in + lut + offset)
GAM_POSITION1
GAM_OFFSET
0C02
0C03
R/W
R/W
[7:0]
[5:0]
00
00
See offset_position0 for details
Multipled by 16. 2’s complement number represents –512 to
+496 inclusive.
See offset_position0 for details
71/138
Register Description by Block
ADE3800
Table 29: Gamma LUT RAM addresses
I2C Address
Memory Contents
1000 – 10FF
1100 – 11FF
1200 – 12FF
Red RAM
Green RAM
Blue RAM
Note: RAM ACCESS REQUIRES DOTCLK >= XCLK (refer to Chapter 4.22: I²C Registers and RAM
Addresses)
4.14 On-Screen Display (OSD)
The On-Screen Display block has the following features:
● Registers 4900 – 4915 are shadowed and are updated on the falling edge of out_venab.
● Pointers for the global RAM refer to 24 bit word locations.
● Pointers for the color LUT RAM refer to 32 bit word locations.
● Write access to the RAMs is shadowed.
● Read access to the global RAM is shadowed.
● Display list must be in top to bottom order for consistent operation.One RAM block 4096x24 is
used for the full operation of the OSD, and is internally subdivided for character use or display
list with the ability to set up the pointers through I2C.
● The characters can be displayed anywhere on the screen.
● H/V position is programmable per row
● Global Alpha blending for all the characters displayed as well as Alpha blending per color with
16 levels
● H/V flip per character
● 1bpp/2bpp/3bpp/4bpp characters supported.
● Rotation support
● Color LUT of 64 colors (24bit RGB True Color + 4 bit alpha).
Table 30: OSD Registers (Sheet 1 of 3)
Register Name
OSD_RAM
Addr
Mode
Bits
Rst
Description
1700-
46FF
R/W
I2C address space allocated for OSD Ram
OSD_CLUT
4700-
47FF
R/W
I2C address space allocated for OSD CLUT
72/138
ADE3800
Register Description by Block
Table 30: OSD Registers (Sheet 2 of 3)
Register Name
OSD_CTRL0
Addr
Mode
Bits
Rst
00
Description
4900
R/W
[7:4]
Global Alpha
LSB = 1/15
R/W
[3]
Rotation
0*: 12H x 18V char
1: 18H x 12V char
R/W
R/W
R/W
R/W
R/W
[2]
TCON Highlight Window Palette Index
TCON Highlight Window Enable
OSD enable
[1]
[0]
OSD_CTRL1
4901
[7]
00
OSD List Pointer Select
Total OSD Rows
[6:0]
OSD_GLBL_X_OFFSET_L
OSD_GLBL_X_OFFSET_U
4902
4903
R/W
R/W
[7:0]
[3:0]
00
00
Global OSD Xpos offset in pixels
OSD_GLBL_Y_OFFSET_L
OSD_GLBL_Y_OFFSET_U
4904
4905
R/W
R/W
[7:0]
[3:0]
00
00
Global OSD Ypos offset in pixels
1bpp Char Pointer
OSD_CP_1BPP_L
OSD_CP_1BPP_U
4906
4907
R/W
R/W
[7:0]
[3:0]
00
00
OSD_CP_2BPP_L
OSD_CP_2BPP_U
4908
4909
R/W
R/W
[7:0]
[3:0]
00
00
2bpp Char Pointer
OSD_CP_3BPP_L
OSD_CP_3BPP_U
490A
490B
R/W
R/W
[7:0]
[3:0]
00
00
3bpp Char Pointer
OSD_CP_4BPP_L
OSD_CP_4BPP_U
490C
490D
R/W
R/W
[7:0]
[3:0]
00
00
4bpp Char Pointer
OSD_DLP0_L
OSD_DLP0_U
490E
490F
R/W
R/W
[7:0]
[3:0]
00
00
Display List Pointer0
Display List Pointer1
OSD_DLP1_L
OSD_DL1_U
4910
4911
R/W
R/W
[7:0]
[3:0]
00
00
OSD_CLUT_1BPP
OSD_CLUT_2BPP
OSD_CLUT_3BPP
OSD_CLUT_4BPP
4912
4913
4914
4915
R/W
R/W
R/W
R/W
[4:0]
[4:0]
[4:0]
[4:0]
00
00
00
00
Base Color LUT for 1bpp
Base Color LUT for 2bpp
Base Color LUT for 3bpp
Base Color LUT for 4bpp
73/138
Register Description by Block
ADE3800
Table 30: OSD Registers (Sheet 3 of 3)
Register Name
Addr
Mode
Bits
Rst
00
Description
HW Shadow Readback
OSD_OSD_CTRL0_HW
OSD_OSD_CTRL1_HW
OSD_GLBL_X_OFFSET_HW_L
OSD_GLBL_X_OFFSET_HW_U
OSD_GLBL_Y_OFFSET_HW_L
OSD_GLBL_Y_OFFSET_HW_U
OSD_CP_1BPP_HW_L
OSD_CP_1BPP_HW_U
OSD_CP_2BPP_HW_L
OSD_CP_2BPP_HW_U
OSD_CP_3BPP_HW_L
OSD_CP_3BPP_HW_U
OSD_CP_4BPP_HW_L
OSD_CP_4BPP_HW_U
OSD_DLP0_HW_L
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
492A
492B
492C
492D
492E
492F
4930
4931
4932
4933
4934
4935
R
[7:0]
[7:0]
[7:0]
[3:0]
[7:0]
[3:0]
[7:0]
[3:0]
[7:0]
[3:0]
[7:0]
[3:0]
[7:0]
[3:0]
[7:0]
[3:0]
[7:0]
[3:0]
[4:0]
[4:0]
[4:0]
[4:0]
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
HW Shadow Readback
OSD_DLP0_HW_U
OSD_DLP1_HW_L
OSD_DLP1_HW_U
OSD_CLUT_1BPP_HW
OSD_CLUT_2BPP_HW
OSD_CLUT_3BPP_HW
OSD_CLUT_4BPP_HW
74/138
ADE3800
Register Description by Block
Figure 12: OSD RAM
24 bits
OSD RAM address start (1700h)
Row 0
1 byte 1 byte
1 byte
1702
1701
1700
1705
1708
1704
1707
1703
1706
4096 Rows
46F9
46FC
46FF
46F8
46FB
46FE
46F7
46FA
46FD
Row 4095
I²C Address = OSD_DP address + (row x 3) + 0 ... 2
number of bytes in a row
75/138
Register Description by Block
4.14.1 Implementation
ADE3800
Row Type 0 Attributes: (total 48 bits)
[Y Position]
[X Position]
[Type of Row]
[Char/Row]
[Palette]
12 bits
12 bits
2 bits
7 bits
1 bits
2 bits
2 bits
2 bits
4 bits
4 bits
(HPOS)
(YPOS)
(TR)
(CR)
(PI)
[FlipHV]
(HVF)
(CD0)
(CD1)
(BG)
[CharDepth0]
[CharDepth1]
[BG]
NOT USED
[FG]
(FG)
Row Type 0 – Character Attributes: (total 8 bits)
[CharID]
8 bits
(CID)
Row Type 1 Attributes: (total 48 bits)
[Y Position]
[X Position]
[Type of Row]
[Char/Row]
[Palette]
12 bits
12 bits
2 bits
7 bits
1 bits
(HPOS)
(YPOS)
(TR)
(CR)
(PI)
NOT USED
NOT USED
[FlipHV]
[CharDepth0]
[CharDepth1]
[BG]
2 bits
2 bits
2 bits
4 bits
4 bits
(HVF)
(CD0)
(CD1)
(BG)
[FG]
(FG)
Row Type 1 – Character Attributes: (total 12 bits)
[CharID]
8 bits
2 bits
1 bits
1 bits
(CID)
(HVF)
(CD)
(PI)
[FlipHV]
[CharDepthIndex]
[PaletteIndex]
Note: The Character Attribute [CharDepthIndex] selects which of the 2 char depths will be used from
RowAttribute [CharDepth0] or RowAttribute [CharDepth1].
76/138
ADE3800
Register Description by Block
Note: Only two types of char depths can be used, and they are specified in RowAttribute [CharDepth0].
Row Type 2 Attributes: (total 48 bits)
[Y Position]
[X Position]
[Type of Row]
[Char/Row]
[Palette]
12 bits
12 bits
2 bits
7 bits
1 bits
(HPOS)
(YPOS)
(TR)
(CR)
(PI)
NOT USED
NOT USED
NOT USED
NOT USED
[FlipHV]
2 bits
2 bits
(HVF)
(CD0)
[CharDepth0]
[CharDepth1]
[BG]
2 bits
4 bits
4 bits
(CD1)
(BG)
(FG)
[FG]
Row Type 2 – Character Attributes: (total 16 bits)
[CharID]
8 bits
2 bits
2 bits
4 bits
(CID)
(HVF)
(CD)
(PI)
[FlipHV]
[CharDepth]
[PaletteIndex]
Figure 13: Display List Memory Structure (all the bits are packed)
ROW TYPE 0
ROW TYPE 1
ROW TYPE 2
77/138
Register Description by Block
ADE3800
Note: All Row Attributes are assigned as shown:
YPOS[23:12]
XPOS[11:0]
PI[9] CR[8:2]
FG[23:20]
BG[19:16]
CD1[15:14]
CD0[13:12]
HVF[11:10]
TR[1:0]
Note: Character Attributes for Row Type 0 are assigned as shown:
CID[7:0]
CID[7:0]
CID[7:0]
Note: Character Attributes for Row Type 1 are assigned as shown:
PI[11]
CD[10]
HF[9]
VF[8]
Note: Character Attributes for Row Type 2 are assigned as shown:
PI[15:12]
CD[11:10]
HF[9]
VF[8]
4.14.2 Color LUT Calculation
Color pointers in the CLUT [5:0], where:
PI = 4-bit Palette Index (RT0/RT1 have 1--bit PI; RT2 has 4bit PI) ;
P1, P2, P3, P4 = 5-bit programmable pointers, clut_1bpp, clut_2bpp, clut_3bpp, clut_4bpp,
respectively;
PixelData = 2-bit, 3-bit or 4-bit value depending on the character depth 2bpp, 3bpp or 4bpp,
respectively;
C = 4-bit background/foreground color (used only for 1bpp characters);
tcon = OSD_CTRL0[1] * tcon_window where tcon_window is a signal from the TCON block specifying the
window to be highlighted.
RowType0
RowType1
RowType2
(tcon*OSD_CTRL0[2]*32 +
!tcon*32*PI + P1 + BC) % 64
(tcon*OSD_CTRL0[2]*32 +
!tcon*32*PI + P1 + BC) % 64
(tcon*OSD_CTRL0[2]*(8 + PI%8)*4 +
!tcon*4*PI + P1 + BC) % 64
1bpp
2bpp
3bpp
4bpp
(tcon*OSD_CTRL0[2]*32 +
!tcon*32*PI + P2 + PixelData) % 64
(tcon*OSD_CTRL0[2]*32 +
!tcon*32*PI + P2 + PixelData) % 64
(tcon*OSD_CTRL0[2]*(8 + PI%8)*4 +
!tcon*4*PI + P2 + PixelData) % 64
(tcon*OSD_CTRL0[2]*32 +
!tcon*32*PI + P3 + PixelData) % 64
(tcon*OSD_CTRL0[2]*32 +
!tcon*32*PI + P3 + PixelData) % 64
(tcon*OSD_CTRL0[2]*(8 + PI%8)*4 +
!tcon*4*PI + P3 + PixelData) % 64
(tcon*OSD_CTRL0[2]*32 +
!tcon*32*PI + P4 + PixelData) % 64
(tcon*OSD_CTRL0[2]*32 +
!tcon*32*PI + P4 + PixelData) % 64
(tcon*OSD_CTRL0[2]*(8 + PI%8)*4 +
!tcon*4*PI + P4 + PixelData) % 64
4.14.3 Alpha Blending
4-bit Alpha is applied to the OSD providing 16 levels (6.25% steps) of blending.
Alpha = 0F:no blending at all (100% OSD data).
Alpha = 00:full blending (100% input video).
The OSD region has a 4-bit global alpha and each RGB has a 4-bit color alpha.
78/138
ADE3800
Register Description by Block
Total alpha is calculated as follows:
r_o = (r_i[9:0] + ( ({lut_data[23:16],lut_data[23:22]} - r_i[9:0]) * total_alpha) )
g_o = (g_i[9:0] + ( ({lut_data[15:8] ,lut_data[15:14]} - g_i[9:0]) * total_alpha) )
b_o = (b_i[9:0] + ( ({lut_data[7:0] ,lut_data[7:6]} - b_i[9:0]) * total_alpha) )
total_alpha_selector[7:0] = (glbl_alpha[3:0] * color_alpha[3:0])
The total alpha read from a LUT of 32 entries that are normalized, where the range is total_alpha =
0,1,2,3,4...16; and only the 5 msb’s of total_alpha_selector[7:3] are used as select.
i.e. 16 represents 1.0 "no alpha blending at all". Figure 14 shows how the Alpha Blending is
constructed:
Figure 14: OSD Alpha Blending
79/138
Register Description by Block
ADE3800
RAM address = 4700h
RAM address = 47FFh
80/138
ADE3800
Register Description by Block
Figure 15: Global Memory Assignment
RAM address = 1700h
RAM address = 46FFh
4.14.4 RAM Memory
Character Memory:
175 x 12 x 18 x 1 bpp = 37800 bits
42 x 12 x 18 x 4 bpp = 36288 bits
The total character storage RAM is estimated based on supporting 175 x 1bpp and 42 x 4bpp
characters.
Total RAM allocated for Character storage => 74088 bits
81/138
Register Description by Block
ADE3800
Display List:
Row Attr. 48 bits x 15 rows = 720 bits
Char Attr. 16 bits x 30 chars x 15 rows = 7200 bits
The total display list is estimated based on the current OSD size of 30x15 characters.
Total Display List Memory => 7920 bits
TOTAL OSD Estimated RAM Memory: 82008 bits (RAM selected 98304 bits)
Color LUT:
64 x 32 = 2048 bits
For a 30x15 character display the OSD block global RAM has room remaining for:
255 => 1bpp (room for 418 char, but only 255 can be addressed w/ 8bit CID) or,
209 => 2bpp or,
139 => 3bpp or,
104 => 4bpp
Global 24b RAM is programmed in the following order:
Example
WRITE 00 [Data] -> ram_addr 0 [23: 16]
WRITE 01 [Data] -> ram_addr 0 [15: 8]
WRITE 02 [Data] -> ram_addr 0 [ 7: 0]
WRITE 03 [Data] -> ram_addr 1 [23: 16]
WRITE 04 [Data] -> ram_addr 1 [15: 8]
... and so on …..
Similarly, the Color LUT 32b RAM, is programmed in the following order:
Example
WRITE 00 [Alpha] -> lut_addr 0 [27:24]
WRITE 01 [ R ] -> lut_addr 0 [23:16]
WRITE 02 [ G ] -> lut_addr 0 [15: 8]
WRITE 03 [ B ] -> lut_addr 0 [ 7: 0]
WRITE 04 [Alpha] -> lut_addr 1 [27:24]
... and so on …..
82/138
ADE3800
Register Description by Block
Each character is programmed into the RAM starting with the upper left pixel, and it continues going
to the right bottom. For example, programming of a 1bpp character “B” will be as follows:
i2c
i2c
comm. address data
WRITE 00
WRITE 01
WRITE 02
00 -> ram_address 0 [23:16]
12 bit wide
00 -> ram_address 0 [15 :8]
00 -> ram_address 0 [7 :0]
WRITE 03
WRITE 04
WRITE 05
7f -> ram_address 1 [23:16]
06 -> ram_address 1 [15 :8]
18 -> ram_address 1 [7 :0]
WRITE 06
WRITE 07
WRITE 08
60 -> ram_address 2 [23:16]
c6 -> ram_address 2 [15 :8]
0c -> ram_address 2 [7 :0]
18 bit wide
WRITE 09
WRITE 0a
WRITE 0b
61 -> ram_address 3 [23:16]
87 -> ram_address 3 [15 :8]
f0 -> ram_address 3 [7 :0]
WRITE 0c
WRITE 0d
WRITE 0e
61 -> ram_address 4 [23:16]
c6 -> ram_address 4 [15 :8]
06 -> ram_address 4 [7 :0]
WRITE 0f
WRITE 10
WRITE 11
60 -> ram_address 5 [23:16]
66 -> ram_address 5 [15 :8]
06 -> ram_address 5 [7 :0]
WRITE 12
WRITE 13
WRITE 14
61 -> ram_address 6 [23:16]
c7 -> ram_address 6 [15 :8]
f0 -> ram_address 6 [7 :0]
WRITE 15
WRITE 16
WRITE 17
00 -> ram_address 7 [23:16]
00 -> ram_address 7 [15 :8]
00 -> ram_address 7 [7 :0]
WRITE 18
WRITE 19
WRITE 1a
00 -> ram_address 8 [23:16]
00 -> ram_address 8 [15 :8]
00 -> ram_address 8 [7 :0]
83/138
Register Description by Block
ADE3800
Character Data RAM packing is done as follows:
1bpp NON ROTATED
1bpp ROTATED
23
16
Line 0
15
8
7
0
23
16
15
8
7
0
Line 1
Line 0
Line 2
Line 4
Line 3
Line 5
Line 1
Line 5
Line 9
Line 2
Line 6
Line 3
Line 7
Line 6
Line 7
Line 4
Line 8
Line 8
Line 9
Line 10
Line 12
Line 14
Line 16
Line 11
Line 13
Line 15
Line 17
Line 10
Line 11
2bpp ROTATED
2bpp NON ROTATED
23
16
15
Line 0
8
7
0
23
16
15
Line 0
8
7
0
Line 1
Line 2
Line 1
Line 2
Line 3
Line 4
Line 5
Line 3
Line 4
Line 6
Line 7
Line 8
Line 5
Line 6
Line 9
Line 10
Line 11
Line 12
Line 13
Line 14
Line 15
Line 16
Line 17
Line 7
Line 8
Line 9
Line 10
Line 11
84/138
ADE3800
Register Description by Block
3bpp NON ROTATED
3bpp ROTATED
23
16
15
Line 0
8
7
0
23
16
15
8
7
0
Line 0
Line 1
Line 1
Line 2
Line 3
Line 4
Line 2
Line 3
Line 5
Line 6
Line 7
Line 8
Line 4
Line 5
Line 9
Line 10
Line 6
Line 7
Line 11
Line 12
Line 13
Line 14
Line 8
Line 9
Line 15
Line 16
Line 17
Line 10
Line 11
bits [2:0] are NOT USED
85/138
Register Description by Block
ADE3800
86/138
ADE3800
Register Description by Block
4bpp NON ROTATED
4bpp ROTATED
23
16
15
8
7
0
23
16
15
Line 0
8
7
0
Line 0
Line 1
Line 2
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10
Line 11
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10
Line 11
Line 12
Line 13
Line 14
Line 15
Line 16
Line 17
87/138
Register Description by Block
ADE3800
4.15 Flicker (FLK)
The Flicker block computes a nonlinear correlation of LCD polarity inversion patterns and the LCD
output data stream and provides the correlation results as scores to the microcontroller via I2C.
The MCU polls this block regularly. In response to a high score, the MCU can adjust the polarity
signal generated in the TCON to cancel the visual flicker that arises from correlated pixel and
polarity patterns.
Figure 16 shows a block diagram of the flicker module and its connectivity with the neighboring
modules.
Figure 16: Block Diagram
OSD
TFT Panel
Output
APC
Formatter EMI
10 bit
Gamma
Flicker
Detector
TCON
4.15.1 Function
A Walsh 8x8 function is used to compare the detected pattern, where each one of the 8 functions
represents a pattern. All patterns are considered to be vertically, where horizontally the pixels are
assumed to be alternating its RGB components.
Only 4 of the patterns can be measured at one time, and they are selected by means of
WF_SHIFT[2:0] by programming the number of patterns shifted i.e.
● if WF_SHIFT = 00 then the 4 results are meas0, meas1, meas2, meas3;
● if WF_SHIFT = 01 then the 4 results are meas1, meas2, meas3, meas4;
● if WF_SHIFT = 05 then the 4 results are meas5, meas6, meas7, meas0; and so on.
The score that is registered at the end of a measurement is the delta intensity between the RGB
components on pixels that are alternating horizontally and match one or more of the defined 8
patterns. Since the flickering effect occurs most of the time around the 50% of the color intensity,
two functions are used to get the delta difference between the RGB components, one is normalized
at 50%, and the other is normalized at 100%. The selection between the two can be programmed by
the FLICKER_CTRL0[5] => 0/1 (100/50%) normalization.
The horizontal setting of the RGB component of each pixel is represented by the
FLICKER_CTRL0[2:0], and for any pattern, maximum scores are calculated by having the correct
88/138
ADE3800
Register Description by Block
distribution of the color components. By default, we assume the most frequent setting is +-+ or -+-,
which means FLICKER_CTRL0[2:0] are programmed to either 101 or 010.
A calculation is done after the number of frames programmed in FRAME_CNT_MAX have passed.
With each frame the calculation is performed only on a horizontal portion of the image on all lines.
The size of that horizontal portion (in pixels) is determined by the value programmed in the
HBLOCK_SIZE included in the following formula:
2 ^ (3 + hblock_size)
For calculation of flicker patterns on the whole image, the result of this formula multiplied by
FRAME_CNT_MAX should be equal to the line length (in pixels), although that is not a constraint.
By splitting the image calculation to smaller horizontal portions, the local scores are banked (saved)
at the end of each portion, hence enabling a reverse pattern within a line to be detected. The
smaller that horizontal portion is, the better chance of detecting pattern reversals within a line.
Taking that into account, the smaller the horizontal portion is, the more frames needed to finish the
full image pattern scan. The minimum horizontal portion can be 8 pixels, and the maximum can be
the size of the line. Vertically, the flicker block is defined to have a resolution of 8 lines, so no
programming is needed to define the vertical portion, it banks automatically every 8 lines, and it
goes through all lines every frame.
The free_run/freeze_scores bit FLICKER_CTRL0[4] enables the final calculation to be fed to the
I2C registers. This bit does not regulate all the internal flicker calculation, but only the update of the
I2C registers.
The output results are stored in four 32 bit registers with addresses described in the table. The
higher the score is, the more that pattern is present in the image (each 32 bit register represents 1
pattern). Whichever pattern is detected most, the TCON is advised to cancel the flicker by switching
the pixel polarity which is the opposite of the pattern detected.
The following figure shows all patterns that can be detected by this flicker block.
Figure 17: 8x8 Walsh basis function set
+
+
+
+
+
+
+
+
+
-
+
+
-
+
-
+
+
+
+
-
+
-
+
+
-
+
-
+
-
-
+
-
-
-
+
+
-
-
+
-
+
-
+
+
-
-
-
-
+
-
-
+
+
-
+
-
-
-
+
+
-
+
-
+
89/138
Register Description by Block
ADE3800
Figure 18 shows an overview of the scanning of the RGB and updating of the registers diagram:
Figure 18: Scanning Overview
90/138
ADE3800
Register Description by Block
The number of frames used to complete one full measurement and update the I2C registers is
programmed into FRAME_CNT_MAX as shown below.
Table 31: FLK Registers (Sheet 1 of 2)
Register Name
Addr
0CA1
Mode
Bits
[5]
Rst
Description
0: straight line uniform function
FLICKER_CTRL0
R/W
25
1*: straight line hill function (normal)
R/W
R/W
[4]
0*: free run
1: freeze scores
Set to a 1 when the micro controller is reading multibyte
scores to prevent update corruption.
[2:0]
-horizontal polarity pattern (even/odd pixels)
000: -R-G-B / +R+G+B
001: -R-G+B / +R+G-B
010: -R+G-B / +R-G+B
011: -R+G+B / +R-G-B
100: +R-G-B / -R+G+B
101*: +R-G+B / -R+G-B
110: +R+G-B / -R-G+B
111: +R+G+B / -R-G-B
-If input data is in RGB format program flicker_ctrl0 to 5 or 2
to get maximum score
91/138
Register Description by Block
ADE3800
Table 31: FLK Registers (Sheet 2 of 2)
HBLOCK_SIZE
0CA2
0CA3
R/W
R/W
[3:0]
[7:0]
00
08
Size in bits of horizontal window = 2 ^ (3+ hblock_size)
FRAME_CNT_MAX
-Number of frames to complete one measurement
-Total number of pixs in a line would be:
frame_cnt_max * (2 ^ (3+ hblock_size) )
-example: hblock_size = 0; frame_cnt_max = 8;
means that it will take 8 frames to finish the calculation. For
each frame only one portion of the image is being calculated
on. The size of that portion is 2 ^ (3 + hblock_size), in this
case 8 pixels. This means that the calculated line length = 8
pix window * 8 frames = 64 pixels
WF_SHIFT
0CA4
R/W
R/W
R/W
R/W
R/W
[2:0]
00
00
00
00
00
Selector of which 4 of the Walsh function is measuring
Score reg showing pattern matching pattern 0
Score reg showing pattern matching pattern 1
Score reg showing pattern matching pattern 2
Score reg showing pattern matching pattern 3
FLICKER_MEAS0
FLICKER_MEAS1
FLICKER_MEAS2
FLICKER_MEAS3
0CB1 – B4
0CB5 – B8
0CB9 – BC
0CBD – C0
[31:0]
[31:0]
[31:0]
[31:0]
4.16 Adaptive Phase Control (APC)
The APC block generates a 2-bit dither pattern for an 8-bit panel or a 4-bit dither pattern for a 6-bit
panel to visually improve the amplitude resolution of the 10-bit RGB output signal.
4.16.1 Function
The heart of the APC block consists of a 32x32x4 bit lookup table (LUT). It represents one threshold
matrix, which can be read using a programmable addressing technique as well as a programmable
dither threshold control. The panel depth APC_CTRL0[1] should match the bit depth of the panel
and is not masked by APC enable APC_CTRL0[0]. When APC_CTRL0[0] is cleared, the dither
pattern is set to zero.
4.16.2 Addressing Technique
2
The APC block offers an I C programmable addressing technique to generate various temporal
dither patterns. The frame offset APC_CTRL1[7:4] is a 4-bit increment value, which defines the
horizontal/vertical displacement of the dither matrix from frame to frame. After the frame length
APC_CTRL1[3:0] + 1 number of frames, both horizontal and vertical displacement positions will be
reset to zero, only when the frame length APC_CTRL1[3:0] > 0.
Note: To set the frame accumulator to zero, the frame offset APC_CTRL1[7:4] must be programmed to 0,
and the frame length APC_CTRL1[3:0] to 1.
The frame offset can be independently activated in the horizontal and vertical dimension using
respectively APC_CTRL0[5] and APC_CTRL0[6]. In addition, APC_CTRL0[7] enables a horizontal
displacement increment of the frame offset APC_CTRL1[7:4] per color component.
4.16.3 Dither threshold Control
When the panel depth APC_CTRL0[1] is set to 0, the 4-bit LUT output value maps to a 2-bit value
for 8-bit panels.
92/138
ADE3800
Register Description by Block
APC_CTRL0[4] enables symmetric clipping of white levels respectively black levels for 6-bit panels
as well as 8-bit panels.
RGB offset APC_CTRL0[3] enables a different dither amplitude offset for each color component.
When the frame inversion APC_CTRL0[2] is set to 1, the dither amplitude is inverted every other
frame.
A Matlab file is provided to generate a variety of different threshold matrices.
Table 32: APC Registers
Register Name
APC_CTRL0
Addr
Mode
Bits
[7]
Rst
Description
0C20
R/W
00
Horizontal displacement increment of (Frame Offset) per
color component
0*: disabled
1: enabled
[6]
[5]
Vertical start position of dither matrix changes by Frame
Offset
0*: disabled
1: enabled
Horizontal start position of dither matrix changes by Frame
Offset
0*: disabled
1: enabled
[4]
Symmetric clipping for white level and black level
0*: disabled
1: enabled (normal)
[3]
Dither amplitude offset per color component
0*: disabled
1: enabled
[2]
Invert dither amplitude every other frame
0*: disabled
1: enabled
[1]
Panel Depth
0*: for true 8 bit panels
1: for 6 bit panels/8bit panels with internal dithering
[0]
Dither amplitude
0*: amplitude set to 0
1: enabled (normal)
APC_CTRL1
0C21
R/W
[7:4]
[3:0]
00
Frame Offset
This value offsets the start position of the dither matrix from
frame to frame
Frame Length
The dither matrix start position is reset after (Frame Length
+1) number of frames, only if > 0
93/138
Register Description by Block
ADE3800
4.17 Output Mux (OMUX)
The OMUX block formats the 1 ppc 24bpp data stream from the data path into a single or 2 ppc pixel
stream for the flat panel using RSDS or LVDS signaling at the pins.
Table 33: OMUX Registers (Sheet 1 of 3)
Register Name
OMUX_CTRL0
Addr
Mode
Bits
Rst
00
Description
0C30
R/W
[7:4]
RGB data channel reordering:
0: no changes on RGB data
2: Right shift 2 bits
A: Right rotate 2 bits
C: Right rotate 4 bits
E: Right rotate 6 bits
All other values: reserved
R/W
R/W
R/W
[3]
[2]
[1]
1: flip MSB to LSB per color (8 bits)
1: swap R and B data
0*:
- in 1ppc, A channel active
- in 2ppc, Left on A, Right on B
1:
- in 1ppc, B channel active
- in 2ppc, Left on B, Right on A
R/W
[0]
0*: 1 ppc
1: 2 ppc
Forced to 1 ppc in LVDS debug or
RSDS mode (refer to OMUX_TEST
register)
OMUX_CTRL1
0C31
R/W
R/W
[7]
[6]
00
LVDS reserved bit
0*: previous bit
1: TCON[7]
1: LVDS channel 0 to channel 3 flip and
channel 4 to channel 7 flip
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
[0]
[7]
[6]
[5]
[4]
[3]
[2]
[1]
[0]
1: LVDS outputs active (see Table 34)
1: invert LVDS channel 7
1: invert LVDS channel 6
1: invert LVDS channel 5
1: invert LVDS channel 4
1: invert LVDS channel 3
1: invert LVDS channel 2
1: invert LVDS channel 1
1: invert LVDSchannel 0
OMUX_CTRL2
0C32
00
94/138
ADE3800
Register Description by Block
Table 33: OMUX Registers (Sheet 2 of 3)
Register Name
OMUX_CTRL3
Addr
Mode
Bits
[7]
Rst
00
Description
0C33
R/W
0*: select RSDS even bits first
(normal)
1: select RSDS odd bits first
R/W
R/W
[4]
[1]
1: RSDS split buffer enable
0*: 128 pin mapping
1: 100 pin mapping
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
[0]
[7]
[6]
[5]
[4]
[3]
[2]
[1]
[0]
1: RSDS outputs active (see Table 34)
1: invert RSDS data pair 4
1: invert RSDS data pair 5
1: invert RSDS data pair 6
1: invert RSDS data pair 7
1: invert RSDS data pair 16
1: invert RSDS data pair 17
1: invert RSDS data pair 18
1: invert RSDS data pair 20
OMUX_CTRL4
0C34
00
LVDS
Debug
Pattern
RSDS
Debug
Pattern
OMUX_CTRL5
0C35
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
[7]
[6]
[5]
[4]
[3]
[2]
[1]
[0]
[7]
[6]
[5]
[4]
[3]
[2]
[1]
[0]
00
1: invert RSDS data pair 11
1: invert RSDS data pair 10
1: invert RSDS data pair 9
1: invert RSDS data pair 8
1: invert RSDS data pair 0
1: invert RSDS data pair 1
1: invert RSDS data pair 2
1: invert RSDS data pair 3
1: invert RSDS data pair 19
1: invert RSDS data pair 22
1: invert RSDS data pair 23
1: invert RSDS data pair 25
1: invert RSDS data pair 24
1: invert RSDS data pair 15
1: invert RSDS data pair 14
1: invert RSDS data pair 13
OMUX_CTRL6
0C36
00
95/138
Register Description by Block
ADE3800
Table 33: OMUX Registers (Sheet 3 of 3)
Register Name
OMUX_CTRL7
Addr
Mode
Bits
[7]
Rst
00
Description
0C37
R/W
1: invert RSDS clock 1 (RSDS data pair
12)
R/W
[6]
[4]
0*: normal LVDS PLL clock if LVDS
mode (normal)
1: invert LVDS PLL clock if LVDS mode,
or invert RSDS clock 0 (RSDS data pair
21) if RSDS mode
R/W
R/W
1: invert LVDS output DE
TCON remapped to PWM
TCON[1] = pwm_a enable
TCON[0] = pwm_b enable
[1]
[0]
OMUX_HALF_LINE_L
0C38
R/W
[7:0]
00
RSDS split buffer half line address =
out_hpixel/2.
out_hpixel has to be multiples of 4.
E.g. for SXGA panel (1280) the value is
640
OMUX_HALF_LINE_U
OMUX_TEST
0C39
0C3A
R/W
R/W
R/W
[3:0]
[1]
00
00
1: enable RSDS debug mode
1: enable LVDS debug mode
[0]
Table 34: OMUX_CTRL Output Modes
OUTPUT MODE OMUX_CTRL1 [0] OMUX_CTRL3 [0]
idle
0
1
0
0
0
1
LVDS mode
RVDS mode
The omux architecture consists of 2 main blocks as shown in Figure 19.
Figure 19: OMUX Architecture
96/138
ADE3800
Register Description by Block
The split line buffer can delay and re-interleave the input pixel stream so that a 2 ppc output can
drive both the first and the half line pixels simultaneously. This is commonly used for TCON
applications where the column drivers are split into two groups (left and right halves of the screen)
and driven at ½ the pixel rate. Control signals need to be similarly delayed in the TCON to account
for the ½ line temporal shift. Latency is not important as long as the timing relationship between
HSync, vsync, enable and data is preserved at the output.
Figure 20: Mux block diagram
8
8
8
8
8
8
8
8
8
rin[7:0]
gin[7:0]
bin[7:0]
red &
blue
swap
right
shift
byte
flip
single to
double wide L
converter
F
LVDS data
swap &
inversion
48
24
O
P
S
right
shift
byte
flip
& RSDS
data pair
iinversion
RSDS
data pair
function
hclk
right
shift
byte
flip
24
56
enab_in
hsync_in
vsync_in
14
tci[13:0]
tcon_in[7:0]
pwm_a_in
pwm_b_in
2
dotclk
FLOPS
dotclkx2 (otclk)
8
56
24
tcon_out
[7:0]
lvds_out rsds_out
lvds_clk_out
rsds_clka_out
rsds_clkb_out
[55:0]
[23:0]
97/138
Register Description by Block
ADE3800
4.17.1 Output Data
LVDS
56 bits of LVDS data are arranged as shown in Table 35:
Table 35: LVDS output data
LVDS
LVDS Data
[6]
AR0
[5]
AR1
[4]
AR2
[3]
AR3
[2]
AR4
[1]
AR5
[0]
Output
OUT0
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
AG0
lvds_data_o[6:0]
lvds_data_o[13:7]
lvds_data_o[20:14]
lvds_data_o[27:21]
lvds_data_o[34:28]
lvds_data_o[41:35]
lvds_data_o[48:42]
lvds_data_o[55:49]
AG1
AB2
AR6
BR0
BAG1
BB2
BR6
AG2
AB3
AR7
BR1
BG2
BB3
BR7
AG3
AB4
AG6
BR2
BG3
BB4
BG6
AG4
AB5
AG7
BR3
BG4
BB5
BG7
AG5
HS
AB0
VS
AB1
DE
AB6
BR4
BG5
HS
AB7
BR5
BB0
VS
AReserved
BG0
BB1
DE
BB6
BB7
BReserved
MSB-LSB Flip
If omux_ctrl1[6] is equal to 1, data are flipped as follows:
lvds_data_out[27:0] =
{lvds_data_o[6:0],lvds_data_o[13:7],lvds_data_o[20:14],lvds_data_o[27:21]}
lvds_data_out[55:28] =
{lvds_data_o[34:28],lvds_data_o[41:35],lvds_data_o[48:42],lvds_data_o[55:49]}
RSDS 128 pin and 100 pin
In RSDS mode, 24/48 data bits are combined into 12/24 pairs for 1 ppc and 2 ppc modes,
respectively.
The split line buffer is to be run in 2 ppc RSDS mode 128 pin only.
98/138
ADE3800
Register Description by Block
OUTPUT INTERFACE
(RSDS
INPUT
NAME) PIN
NAME
OUTPUT MODE
PIN #
(LQFP
128)
PIN #
(LQFP
100)
LVDS
RSDS (LQFP-128)
RSDS (LQFP-100)
26
(RSDSIN0)
RSDS0+
0
NOT ACTIVE
rsds_b_3
BACK-SIDE
BLUE
25
24
RSDS0-
0
0
rsds_b_3b
rsds_b_2
(RSDSIN1)
RSDS1+
23
22
RSDS1-
0
0
rsds_b_2b
rsds_b_1
(RSDSIN2)
RSDS2+
21
RSDS2-
0
0
rsds_b_1b
rsds_b_0
20
17
(RSDSIN3)
rsds_b_3
BACK-SIDE
BLUE
RSDS3+
19
15
16
RSDS3-
0
0
rsds_b_0b
rsds_g_3
rsds_b_3b
(RSDSIN4)
RSDS4+
BACK-SIDE
GREEN
14
13
RSDS4-
0
0
rsds_g_3b
rsds_g_2
12
11
(RSDSIN5)
RSDS5+
rsds_b_2
BACK-SIDE
BLUE
12
11
RSDS5-
0
0
rsds_g_2b
rsds_g_1
rsds_b_2b
(RSDSIN6)
RSDS6+
10
9
RSDS6-
0
0
rsds_g_1b
rsds_g_0
10
9
(RSDSIN7)
RSDS7+
rsds_b_1
BACK-SIDE
BLUE
8
RSDS7-
0
0
rsds_g_0b
rsds_r_4
rsds_b_1b
82
(RSDSIN8)
RSDS8+
FRONT-SIDE
RED
81
84
RSDS8-
0
0
rsds_r_4b
rsds_r_5
(RSDSIN9)
RSDS9+
83
86
RSDS9-
0
0
rsds_r_5b
rsds_r_6
(RSDSIN10)
RSDS10+
85
88
RSDS10-
0
0
rsds_r_6b
rsds_r_7
(RSDSIN11)
RSDS11+
87
RSDS11-
0
rsds_r_7b
99/138
Register Description by Block
ADE3800
OUTPUT INTERFACE
(RSDS
INPUT
NAME) PIN
NAME
OUTPUT MODE
PIN #
(LQFP
128)
PIN #
(LQFP
100)
LVDS
RSDS (LQFP-128)
RSDS (LQFP-100)
93
(RSDSIN12)
RSDS12+
0
NOT ACTIVE
rsds_clk1
FRONT-SIDE
CLOCK
92
98
RSDS12-
0
0
rsds_clk1_b
rsds_g_4
(RSDSIN13)
RSDS13+
FRONT-SIDE
GREEN
97
RSDS13-
0
0
rsds_g_4b
rsds_g_5
100
(RSDSIN14)
RSDS14+
99
RSDS14-
0
0
rsds_g_5b
rsds_g_6
102
(RSDSIN15)
RSDS15+
101
126
125
RSDS15-
OUT0-
0
rsds_g_6b
rsds_r_3
99
lvds_0b
lvds_0
LVDS A
CHANNEL
(can be
swapped with B
Channel)
BACK-SIDE
CLOCK
rsds_b_0
BACK-SIDE
BLUE
98
(RSDSIN16)
OUT0+
rsds_r_3b
rsds_b_0b
124
123
97
96
OUT1-
lvds_1b
lvds_1
rsds_r_2
BACK-SIDE
RED
rsds_g_3
BACK-SIDE
GREEN
(RSDSIN17)
OUT1+
rsds_r_2b
rsds_g_3b
122
121
95
94
OUT2-
lvds_2b
lvds_2
rsds_r_1
rsds_g_2
(RSDSIN18)
OUT2+
rsds_r_1b
rsds_g_2b
120
119
93
92
OUTCLK0-
lvds_clk_0b
lvds_clk_0
rsds_r_0
rsds_g_1
(RSDSIN20)
OUTCLK0+
rsds_r_0b
rsds_g_1b
118
117
91
90
OUT3-
lvds_3b
lvds_3
rsds_b_7
rsds_g_0
(RSDSIN19)
OUT3+
rsds_b_7b
rsds_g_0b
113
112
86
85
OUT4-
lvds_4b
lvds_4
LVDS B
CHANNEL
(can be
swapped with A
Channel)
rsds_clk0
FRONT-SIDE
BLUE
rsds_clk0
BACK-SIDE
CLOCK
(RSDSIN21)
OUT4+
rsds_clk0_b
rsds_clk0_b
111
110
84
83
OUT5-
lvds_5b
lvds_5
rsds_b_6
rsds_r_3
BACK-SIDE
RED
(RSDSIN22)
OUT5+
rsds_b_6b
rsds_r_3b
109
108
82
81
OUT6-
lvds_6b
lvds_6
rsds_b_5
rsds_r_2
(RSDSIN23)
OUT6+
rsds_b_5b
rsds_r_2b
107
106
80
79
OUTCLK1-
lvds_clk_1b
lvds_clk_1
rsds_b_4
rsds_r_1
(RSDSIN25)
OUTCLK1+
rsds_b_4b
rsds_r_1b
105
104
78
77
OUT7-
lvds_7_b
lvds_7
rsds_g_7
FRONT-SIDE
GREEN
rsds_r_0
(RSDSIN24)
OUT7+
rsds_g_7b
rsds_r_0b
100/138
ADE3800
Register Description by Block
OUTPUT INTERFACE
(RSDS
INPUT
NAME) PIN
NAME
OUTPUT MODE
PIN #
(LQFP
128)
PIN #
(LQFP
100)
LVDS
RSDS (LQFP-128)
RSDS (LQFP-100)
70
71
58
TCON0
pwm_en ?
pwm_b: tcon0
TCON
SIGNALS
pwm_en ?
pwm_b: tcon0
TCON
SIGNALS
pwm_en ?
pwm_b: tcon0
TCON
SIGNALS
59
TCON1
pwm_en ?
pwm_a: tcon1
pwm_en ?
pwm_a: tcon1
pwm_en ?
pwm_a: tcon1
72
73
74
75
76
77
60
61
62
63
64
65
TCON2
TCON3
TCON4
TCON5
TCON6
TCON7
tcon2
tcon3
tcon4
tcon5
tcon6
tcon7
tcon2
tcon3
tcon4
tcon5
tcon6
tcon7
tcon2
tcon3
tcon4
tcon5
tcon6
tcon7
Debug Mode
If LVDS debug mode is enabled (omux_test[0] = 1), LVDS output data will be set to a static 7-bit
pattern which is programmed in omux_ctrl4[6:0]
If RSDS debug mode is enabled (omux_test[1] = 1), RSDS output data will be set to a static pattern
which is programmed in omux_ctrl4[1:0].
4.17.2 Output Clocks
Output clock (to LVDS PLL) for both functional and test modes is the divide-by-2 clock generated
inside omux. This clock is flopped on the falling edge of fsyn_outclk providing a ¼ phase offset
between clock and data.
RSDS output clocks 0 & 1 are set to fsyn_outclk_div2_dly for both functional and test modes. This
clock has a programmable delay offset from the fsyn_outclk_div2. This is to ensure that data will
meet the setup/hold requirements at the destination (panel.)
The out_enab signal (from the TCON block) must be programmed so that its left (rising) edge is odd
in 2 ppc RSDS mode.
4.17.3 Clock Sources and Timing Considerations
The omux block operates on dotclk with the exception of omux_mux which runs on fsyn_outclk.
Table 2.4 describes the relationship between fsyn_outclk, fsyn_outclk_div2 and dotclk.
Table 36: Clock relationship
1 ppc
2 ppc
dotclk_freq
2x dotclk_freq
fsyn_outclk_freq
dotclk source sel
fsyn_outclk_div2 half
speed
fsyn_outclk full speed
2
3
3
3
GLBL_CLK_SRC_SEL_0[6:4]
GLBL_CLK_SRC_SEL_1[6:4]
2^22 * xclk_freq /
dotclk_freq
2^21 * xclk_freq /
dotclk_freq
FSYN_PR_OTCLK
101/138
Register Description by Block
ADE3800
4.18 Timing Controller (TCON)
The Timing Controller block provides all output timing signals for panel applications.
Features include:
● comparator, pulse and window functions
● LC polarity inversion function generator
● separate logic and output crossbars
● out_HSync, out_vsync and out_enab generation
● register shadowing
Figure 21: Output timing
(hcount,vcount)
(0,0)
out_htotal
(out_henab_set,out_venab_set)
destination image controlled by
scaler phase generator
origin_h/vpos and h/v
scale_factor
min 32
SCALED
IMAGE
free run
sequencer
min 32
background color
(out_henab_reset,out_venab_reset)
blanking
out_vtotal_min
armed for
reset
variable length last line terminated by SMUX
vtrig delayed by SCL_TRIGGER_DLY
out_vtotal_max
102/138
ADE3800
Register Description by Block
Figure 22: TCON schematic
hcount
12
vcount
12
{1,0, polarity, vtoggle[2:0]}
4 comparators
6 pulses
4 windows
14
12
SRTD crossbar mux 32x32
32
A
B
A
B
A,B,0,0
A,B,0,0
A,0,B,0
0,A,B,0
A,0,B,0
0,A,B,0
x 16
0,0,A&B,0
0,0,0,A&B
0,0,0,A|B
0,0,0,A^B
0,0,0,!(A&B)
0,0,A&B,0
0,0,0,A&B
0,0,0,A|B
0,0,0,A^B
0,0,0,!(A&B)
S
R T D
S R T D
16
8
output crossbar mux 24x16
16
103/138
Register Description by Block
ADE3800
Figure 23: Toggle Generator
TCON_POLARITY_CTRL [7:6]
vlen, counter max
vtoggle 0
vtoggle 1
vtoggle 2
TCON_COMP_0
through
vtog_count
h
(2 bit)
TCON_COMP_3
en
vmask
TCON_POLARITY_CTRL [5:4]
TCON_POLARITY_CTRL [2:0]
vtoggle 0
href
TCON_PULSE_0
through
en
toggle
flop
v
polarity
TCON_PULSE_5
The toggle generator facilitates the synthesis of polarity signals from internal TCON signals; the
horizontal TCON_COMP and vertical TCON_PULSE signals. The selected inputs supply clock and
enable signals (resp.) for a 2-bit incrementing counter and a toggle flop that output 3 toggle and 1
polarity signals. The vlen variable sets the counter maximum, which controls the vertical sequence.
Input and vlen selection are all in the TCON_POLARITY_CTRL register.
Common types of polarity signals are given below. For synchronization of polarity and vtog_count,
a special sync mode should be entered for one frame to initialize the polarity pattern relative to the
first line of vmask.
counter, decoder
frame number
vlen
vtoggle
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
2
1
0
0
1
0
0
0
0
1
3
1
0
0
0
1
0
1
0
0
4
1
0
0
1
0
0
0
1
0
5
1
0
0
0
1
0
0
0
1
6
1
0
0
1
0
0
1
0
0
7
1
0
0
0
1
0
0
1
0
8
1
0
0
1
0
0
0
0
1
9
1
0
0
0
1
0
1
0
0
10
1
11
1
0
0
1
2
0
1
2
0
1
2
0
0
0
0
1
2
1
0
0
1
0
0
0
0
1
0
0
1
104/138
ADE3800
Register Description by Block
Table 37: Polarity programming examples.
polarity type
vmask pulse length
vlen
pol toggle every line, invert frame to frame, steady during vblank (2
frame sequence)
odd, usually vpixel+1 or vpixel-1
0
polarity toggle every other line, invert frame to frame, steady during
vblank (2 frame sequence)
odd*2, usually vpixel+2 or vpixel -2
odd*3
1
2
polarity toggle every 3rd line, invert frame to frame, steady during
vblank (2 frame sequence)
polarity toggle every other line, walking pattern (4 frame sequence)
odd, usually vpixel+1 or vpixel-1
1
Table 38: Video Pipeline Latency information
Output pixel video pipeline latency
(in per block dotclk units)
Block
PGEN (*)
SRGB (*)
+3 (+16 vs TCON window H values)
+6 (+13 vs TCON window H values)
GAMMA
+3
OSD (*)
+3 (+4 vs TCON window H values)
+1
APC
TCON
Zero Reference
LVDS (pixel delay up to LVDS Tx)
RSDS (delay up to the RSDS pads)
1ppc: 5 pixels, 2ppc 6 pixels
1ppc: 5 pixels,
2ppc w/ split line buffer=640:
640+12 pixels
(*): Block having a window control feature
105/138
Register Description by Block
ADE3800
Table 39: Register Map (Sheet 1 of 7)
Register Name
TCON_CTRL
Addr.
Bits
[6:4]
Mode
Rst
00
Description
0B00
0B01
0B02
R/W
out_venab source selection
0*: out_venab generated from
out_enab (normal)
1: tcon_pgen
2: window venab[0]
3: window venab[1]
4: window venab[2]
5: window venab[3]
6-7: reserved
[3:2]
R/W
i2c block transfer (not tcon) event selection
0*: (hcount == 0) && (vcount == 0)
1: (hcount == 0)
2: srtd0
3: srtd1
[0]
R/W
R/W
R/W
R/W
TCON[7:0] output enable. Internal signals
are always active.
TCON_POLARITY_CTRL
[7:6]
[5:4]
[2:0]
00
vlen = toggle/polarity line sequence length
(desired – 1)
vtoggle / polarity horizontal reference (1 of
4 comparators)
polarity vmask selection
0*: pulse 0
1: pulse 1
2: pulse 2
3: pulse 3
4: pulse 4
5: pulse 5
6: pulse 0, reset vtog_count to 0 at rising
edge of vmask, polarity reset to 0
7: pulse 0, resync vtog_count to 1 at ris-
ing edge of vmask, polarity reset to 0
Note: pulse type must be vertical
TCON_INV_0
[7]
[6]
[5]
[4]
[3]
[2]
[1]
[0]
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
00
invert output tcon7
invert output tcon6
invert output tcon5
invert output tcon4
invert output tcon3
invert output tcon2
invert output tcon1
invert output tcon0
106/138
ADE3800
Register Description by Block
Table 39: Register Map (Sheet 2 of 7)
Register Name
Addr.
Bits
[7]
Mode
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Rst
00
Description
TCON_INV_1
0B03
invert output osd_lut
[6]
[5]
[4]
[3]
[2]
[1]
[0]
invert output pgen
invert output gamma_2
invert output gamma_1
invert output srgb
invert output out_enab
invert output out_vsync
invert output out_HSync
TCON_SHADOW_CTRL
0B04
[7:4]
00
shadow target
00*: comp 0
01: comp 1
02: comp 2
03: comp 3
04: pulse 0
05: pulse 1
06: pulse 2
07: pulse 3
08: pulse 4
09: pulse 5
0A: window 0
0B: window 1
0C: window 2
0D: window 3
0E: polarity
0F: reserved
[3:2]
R/W
R/W
tcon shadow event selection
0*: (hcount == 0) && (vcount == 0)
1: (hcount == 0)
2: srtd0
3: srtd1
[1]
shadow transfer enable
- set to transfer at next event
- bit is automatically cleared when trans-
fer is complete
[0]
R/W
R/W
R/W
R/W
R/W
shadow enable
shadow buffer 0
shadow buffer 1
shadow buffer 2
shadow buffer 3
TCON_SHADOW_BUF_0
TCON_SHADOW_BUF_1
TCON_SHADOW_BUF_2
TCON_SHADOW_BUF_3
0B05
0B06
0B07
0B08
[7:0]
[4:0]
[7:0]
[7:0]
00
00
00
00
107/138
Register Description by Block
ADE3800
Table 39: Register Map (Sheet 3 of 7)
Register Name
TCON_SHADOW_BUF_4
TCON_SHADOW_BUF_5
TCON_SHADOW_BUF_6
TCON_SHADOW_BUF_7
Addr.
Bits
[7:0]
Mode
R/W
Rst
00
Description
shadow buffer 4
0B09
0B0A
0B0B
0B0C
[3:0]
[7:0]
[4:0]
R/W
00
00
00
shadow buffer 5
shadow buffer 6
shadow buffer 7
R/W
R/W
TCON_COMP_0_L
TCON_COMP_0_U
0B10
0B11
[7:0]
[4]
R/W
R/W
00
00
count comparison value
0*: horizontal count compare
1: vertical count compare
count comparison value
[3:0]
R/W
TCON_COMP_1_L
TCON_COMP_1_U
0B12
0B13
refer to TCON_COMP_0
refer to TCON_COMP_0
refer to TCON_COMP_0
TCON_COMP_2_L
TCON_COMP_2_U
0B14
0B15
TCON_COMP_3_L
TCON_COMP_3_U
0B16
0B17
TCON_PULSE_0_SET_L
TCON_PULSE_0_SET_U
0B18
0B19
[7:0]
[3:0]
R/W
R/W
00
00
set point compare value
set point compare value
TCON_PULSE_0_RST_L
TCON_PULSE_0_RST_U
0B1A
0B1B
[7:0]
[7:6]
R/W
R/W
00
00
reset point compare value
for vertical pulses, 1 of 4 comparators is
selected to define the horizontal change point
[5:4]
R/W
0*: horizontal pulse
1: vertical pulse
2,3: single point, set=h, rst=v
[3:0]
R/W
reset point compare value
TCON_PULSE_1_SET_L
TCON_PULSE_1_SET_U
0B1C
0B1D
refer to TCON_PULSE_0
refer to TCON_PULSE_0
refer to TCON_PULSE_0
TCON_PULSE_1_RST_L
TCON_PULSE_1_RST_U
0B1E
0B1F
TCON_PULSE_2_SET_L
TCON_PULSE_2_SET_U
0B20
0B21
TCON_PULSE_2_RST_L
TCON_PULSE_2_RST_U
0B22
0B23
TCON_PULSE_3_SET_L
TCON_PULSE_3_SET_U
0B24
0B25
TCON_PULSE_3_RST_L
TCON_PULSE_3_RST_U
0B26
0B27
108/138
ADE3800
Register Description by Block
Table 39: Register Map (Sheet 4 of 7)
Register Name
Addr.
Bits
Mode
Rst
Description
TCON_PULSE_4_SET_L
TCON_PULSE_4_SET_U
0B28
0B29
refer to TCON_PULSE_0
TCON_PULSE_4_RST_L
TCON_PULSE_4_RST_U
0B2A
0B2B
TCON_PULSE_5_SET_L
TCON_PULSE_5_SET_U
0B2C
0B2D
refer to TCON_PULSE_0
TCON_PULSE_5_RST_L
TCON_PULSE_5_RST_U
0B2E
0B2F
TCON_WINDOW_0_LEFT_L
TCON_WINDOW_0_LEFT_U
0B30
0B31
[7:0]
[3:0]
R/W
R/W
00
00
left edge compare count
left edge compare count
TCON_WINDOW_0_RIGHT_L
TCON_WINDOW_0_RIGHT_U
0B32
0B33
[7:0]
[3:0]
R/W
R/W
00
00
right edge compare count
right edge compare count
TCON_WINDOW_0_TOP_L
TCON_WINDOW_0_TOP_U
0B34
0B35
[7:0]
[3:0]
R/W
R/W
00
00
top edge compare count
top edge compare count
TCON_WINDOW_0_BOTTOM_L
TCON_WINDOW_0_BOTTOM_U
0B36
0B37
[7:0]
[4]
R/W
R/W
00
00
bottom edge compare count
0*: window
1: pulse start at (left, top), end at (right, bottom)
bottom edge compare count
[3:0]
R/W
TCON_WINDOW_1_LEFT_L
TCON_WINDOW_1_LEFT_U
0B38
0B39
refer to TCON_WINDOW_0
TCON_WINDOW_1_RIGHT_L
TCON_WINDOW_1_RIGHT_U
0B3A
0B3B
TCON_WINDOW_1_TOP_L
TCON_WINDOW_1_TOP_U
0B3C
0B3D
TCON_WINDOW_1_BOTTOM_L
TCON_WINDOW_1_BOTTOM_U
0B3E
0B3F
TCON_WINDOW_2_LEFT_L
TCON_WINDOW_2_LEFT_U
0B40
0B41
refer to TCON_WINDOW_0
TCON_WINDOW_2_RIGHT_L
TCON_WINDOW_2_RIGHT_U
0B42
0B43
TCON_WINDOW_2_TOP_L
TCON_WINDOW_2_TOP_U
0B44
0B45
TCON_WINDOW_2_BOTTOM_L
TCON_WINDOW_2_BOTTOM_U
0B46
0B47
109/138
Register Description by Block
ADE3800
Table 39: Register Map (Sheet 5 of 7)
Register Name
Addr.
Bits
Mode
Rst
Description
TCON_WINDOW_3_LEFT_L
TCON_WINDOW_3_LEFT_U
0B48
0B49
refer to TCON_WINDOW_0
TCON_WINDOW_3_RIGHT_L
TCON_WINDOW_3_RIGHT_U
0B4A
0B4B
TCON_WINDOW_3_TOP_L
TCON_WINDOW_3_TOP_U
0B4C
0B4D
TCON_WINDOW_3_BOTTOM_L
TCON_WINDOW_3_BOTTOM_U
0B4E
0B4F
TCON_SRTD_0
TCON_SRTD_1
TCON_SRTD_2
TCON_SRTD_3
TCON_SRTD_4
TCON_SRTD_5
TCON_SRTD_6
TCON_SRTD_7
TCON_SRTD_8
TCON_SRTD_9
TCON_SRTD_10
TCON_SRTD_11
TCON_SRTD_12
TCON_SRTD_13
TCON_SRTD_14
TCON_SRTD_15
0B50
0B51
0B52
0B53
0B54
0B55
0B56
0B57
0B58
0B59
0B5A
0B5B
0B5C
0B5D
0B5E
0B5F
[2:0]
R/W
00
SRTD logical function
0*: f(A,B,0,0)
1: f(A,0,B,0)
2: f(0,A,B,0)
3: f(0,0,A&B,0)
4: f(0,0,0,A&B)
5: f(0,0,0,A|B)
6: f(0,0,0,A^B)
7: f(0,0,0,!(A&B))
110/138
ADE3800
Register Description by Block
Table 39: Register Map (Sheet 6 of 7)
Register Name
Addr.
Bits
[4:0]
Mode
Rst
00
Description
TCON_X_SRTD_0_A
TCON_X_SRTD_0_B
TCON_X_SRTD_1_A
TCON_X_SRTD_1_B
TCON_X_SRTD_2_A
TCON_X_SRTD_2_B
TCON_X_SRTD_3_A
TCON_X_SRTD_3_B
TCON_X_SRTD_4_A
TCON_X_SRTD_4_B
TCON_X_SRTD_5_A
TCON_X_SRTD_5_B
TCON_X_SRTD_6_A
TCON_X_SRTD_6_B
TCON_X_SRTD_7_A
TCON_X_SRTD_7_B
TCON_X_SRTD_8_A
TCON_X_SRTD_8_B
TCON_X_SRTD_9_A
TCON_X_SRTD_9_B
TCON_X_SRTD_10_A
TCON_X_SRTD_10_B
TCON_X_SRTD_11_A
TCON_X_SRTD_11_B
TCON_X_SRTD_12_A
TCON_X_SRTD_12_B
TCON_X_SRTD_13_A
TCON_X_SRTD_13_B
TCON_X_SRTD_14_A
TCON_X_SRTD_14_B
TCON_X_SRTD_15_A
TCON_X_SRTD_15_B
0B80
0B81
0B82
0B83
0B84
0B85
0B86
0B87
0B88
0B89
0B8A
0B8B
0B8C
0B8D
0B8E
0B8F
0B90
0B91
0B92
0B93
0B94
0B95
0B96
0B97
0B98
0B99
0B9A
0B9B
0B9C
0B9D
0B9E
0B9F
R/W
srtd input A selection
00*: 0
01: 1
02: pulse0
03: pulse1
04: pulse2
05: pulse3
06: pulse4
07: pulse5
08: window0
09: window1
0A: window2
0B: window3
0C: vtoggle0
0D: vtoggle1
0E: vtoggle2
0F: polarity
10: srtd0
11: srtd1
12: srtd2
13: srtd3
14: srtd4
15: srtd5
16: srtd6
17: srtd7
18: srtd8
19: srtd9
1A: srtd10
1B: srtd11
1C: comp0
1D: comp1
1E: comp2
1F: comp3
111/138
Register Description by Block
ADE3800
Table 39: Register Map (Sheet 7 of 7)
Register Name
TCON_X_0
Addr.
Bits
[4:0]
Mode
Rst
00
Description
0BA0
0BA1
0BA2
0BA3
0BA4
0BA5
0BA6
0BA7
0BA8
0BA9
0BAA
0BAB
0BAC
0BAD
0BAE
0BAF
R/W
output selection for tcon pin 0
00*: 0
TCON_X_1
01: 1
TCON_X_2
02: pulse0
03: pulse1
04: pulse2
05: pulse3
06: pulse4
07: pulse5
08: window0
09: window1
0A: window2
0B: window3
0C: vtoggle0
0D: vtoggle1
0E: vtoggle2
0F: polarity
10: srtd8
TCON_X_3
TCON_X_4
TCON_X_5
TCON_X_6
TCON_X_7
TCON_X_OHSYNC
TCON_X_OVSYNC
TCON_X_OENAB
TCON_X_GAMMA_A
TCON_X_GAMMA_B
TCON_X_SRGB
TCON_X_PGEN
TCON_X_OSD_LUT
11: srtd9
12: srtd10
13: srtd11
14: srtd12
15: srtd13
16: srtd14
17: srtd15
18 – 1F: reserved
SCL_TCON_I2C_SPARE_REG
0x0A37 [0]
R/W
0
[7:1] - Reserved
[0] - LVDS_DE_SOURCE_SELECT
0: Use DE generated by TCON_OENAB
1: Use DE generated by TCON_OSD_LUT
(without 16 pixels latency)
I2C shadow mode is supported for individual comparators, pulses and windows. New values are loaded into
the shadow buffer area by slow I2C then the transfer command and shadow target are written into
tcon_shadow_ctrl. At the next event, the data is transferred in a single clock cycle.
Table 40: Shadow Mapping
source
comparator
pulse
window
tcon_shadow_buf_0[7:0]
tcon_shadow_buf_1[4:0]
tcon_shadow_buf_2[7:0]
tcon_shadow_buf_3[6:0]
tcon_shadow_buf_4[7:0]
tcon_shadow_buf_5[3:0]
tcon_shadow_buf_6[7:0]
tcon_shadow_buf_7[4:0]
tcon_comp_X[7:0]
tcon_pulse_X_set[7:0]
tcon_window_X_left[7:0]
tcon_window_X_left[11:8]
tcon_window_X_right[7:0]
tcon_window_X_right[11:8]
tcon_window_X_top[7:0]
tcon_window_X_top[11:8]
tcon_window_X_bottom[7:0]
tcon_window_X_bottom[12:8]
tcon_comp_X[12:8]
tcon_pulse_X_set[11:8]
NA
NA
NA
NA
NA
NA
tcon_pulse_X_rst[7:0]
tcon_pulse_X_rst[15:8]
NA
NA
NA
NA
112/138
ADE3800
Register Description by Block
TCON Example
The following is an example of a basic TCON script:
WriteByte (TCON_CTRL_EN, 0x01);// enable TCON output
// vsync start at vcount = 0, end at vcount = 1
WriteWord (TCON_PULSE_0_SET, 0x0000);// pulse 0 set = 0 (12 bit value)
WriteWord (TCON_PULSE_0_RST, 0x1001);// pulse 0 reset = 0x001 (12 bit),
// vertical pulse, comparator 0
// HSync start at hcount = 4, end at hcount = 6
WriteWord (TCON_PULSE_1_SET, 0x0004);// pulse 1 set = 0x004 (12 bit value)
WriteWord (TCON_PULSE_1_RST, 0x0006);// pulse 1 reset = 0x006, horiz pulse
// data enable start at upper left (31H,1V), ending at lower right (1311H, 1025V)
// for a 1280 x 1024 output enable
WriteWord (TCON_WINDOW_0_LEFT, 0x001F);// window 0 left edge comparison
// count = 0x01F (12 bit value)
WriteWord (TCON_WINDOW_0_RIGHT, 0x051F);// right edge count = 0x51F
WriteWord (TCON_WINDOW_0_TOP, 0x0001);// top edge count = 1
WriteWord (TCON_WINDOW_0_BOTTOM, 0x0400);// bottom edge = 0x400, window type
// select pulses and window for oHSync, ovsync, oenab
WriteByte (TCON_X_OHSYNC, 0x03);// HSync on TCON pin 0 is pulse 1
WriteByte (TCON_X_OVSYNC, 0x02);// vsync on TCON pin 0 is pulse 0
WriteByte (TCON_X_OENAB, 0x08);// out enable on pin 0 is window 0
4.19 LVDS/RSDS Features
The LVDS/RSDS block supports the following modes:
● LVDS 1 ppc
— 4 data channels + 1 clock channel – 40MHz - 85MHz
● LVDS 2 ppc
— 8 data channels + 2 clock channels – 40MHz - 70MHz
● RSDS 1 ppc
— 12 data channels + 1 clock channel – 13.5MHz - 85MHz
● RSDS 2 ppc (128 pin package only)
— 24 data channels + 2 clock channels – 13.5MHz - 70MHz
Its features are as follows:
● Power down modes
113/138
Register Description by Block
ADE3800
● Programmable output swing and common mode voltage
● Per channel programmable delay
● Programmable LVDS clock output polarity
4.19.1 Output Channels
128 Pin Package
● 16 channels dedicated RSDS;
● 10 channels shared by LVDS or RSDS
— LVDS (1ppc): 4 data + 1 clock = 5 (others are unused)
— LVDS (2ppc): 8 data + 2 clock = 10
— RSDS: 10 data (both 1ppc and 2ppc)
100 Pin Package
● 3 channels dedicated to RSDS,
● 10 channels shared by LVDS or RSDS
— LVDS (1ppc): 4 data + 1 clock = 5 (others are unused)
— LVDS (2ppc): 8 data + 2 clock = 10
— RSDS: 10 data (1ppc on channel A only)
Table 41: LVDS/RSDS Registers (Sheet 1 of 5)
Register Name
Address
Bits Mode
Rst
84
Description
PLL Manual/Auto Select
ANA_LVDSANA0
0060
[7]
R/W
R/W
R/W
0: manual (using ANA_LVDSANA0[1:0])
1*: auto
[6]
PLL Comparator Current Select
0*: 300uA (normal)
1: 200uA
[5:4]
PLL Charge Pump Current Select
0*: 10uA (normal)
1: 25uA
2: 50uA
3: 100uA (fast response)
[1:0]
R/W
PLL Manual Range Select
(enabled by ANA_LVDSANA0[7])
0*: 25uA (slowest)
1: 75uA
2: 125uA
3: 175uA (fastest)
114/138
ADE3800
Register Description by Block
Table 41: LVDS/RSDS Registers (Sheet 2 of 5)
Register Name
ANA_LVDSANA1
Address
Bits Mode
Rst
00
Description
0061
[7:6]
[5:4]
[3:2]
[1:0]
R/W
R/W
R/W
R/W
Bit 3 Data Interface Delay Adjustment, see Bit 0
Bit 2 Data Interface Delay Adjustment, see Bit 0
Bit 1 Data Interface Delay Adjustment, see Bit 0
Bit 0 Data Interface Delay Adjustment
0*: 0ps (normal)
1: 90ps
2: 210ps
3: 460ps
ANA_LVDSANA2
0062
[7]
[6]
C0
PLL power control
0: on
1*: off
PLL Global Data Interface Delay
0: no delay
1*: delay (normal)
[5:4]
[3:2]
[1:0]
[6:4]
R/W
R/W
R/W
R/W
Bit 6 Data Interface Delay Adjustment, see Bit 0
Bit 5 Data Interface Delay Adjustment, see Bit 0
Bit 4 Data Interface Delay Adjustment, see Bit 0
ANA_LVDSANA4
0064
01
LVDS Clock Skew
LSB = 135ps (typ)
[3]
[2]
[1]
[0]
LVDS Clock Skew Enable
0*: no delay (normal)
1: delay
LVDSclkout1 output polarity
0*: normal
1: invert
LVDSclkout0 output polarity
0*: normal
1: invert
LVDS & RSDS Master Power Control (Overrides
ANA_LVDSANA5[7], ANA_LVDSANA6[7], and
ANA_LVDSANA2[7])
115/138
Register Description by Block
ADE3800
Table 41: LVDS/RSDS Registers (Sheet 3 of 5)
Register Name
Address
Bits Mode
Rst
C0
Description
LVDS B power control
ANA_LVDSANA5
0065
[7]
R/W
(for LVDS Channel [7:4], LVDS clk 1)
0: on
1*: off
[6]
LVDS A power control
(for LVDS Channel [3:0], LVDS clk 0)
0: on
1*: off
[5]
Output mode select
0*: RSDS (also powers down PLL)
1: LVDS
[4:0]
LVDS Iref Bias current setting
10000: 420uA
00011: 168uA
00010: 178uA
00001: 189uA
00000*: 201uA (normal)
11111: 202uA
11110: 216.3uA
11101: 233uA
11100: 252uA
ANA_LVDSANA7
0067
[7]
[6]
[5]
[4]
R
00
LVDS Channel [7:4] power status
LVDS Channel [3:0] power status
LVDS/RSDS/PLL Global Power status
PLL powerdown status = [ANA_LVDSANA4[0] OR
ANA_LVDSANA2[7] OR (NOT ANA_LVDSANA5[5])]
[3]
PLL up status
[2]
PLL down status
PLL range status
[1:0]
116/138
ADE3800
Register Description by Block
Table 41: LVDS/RSDS Registers (Sheet 4 of 5)
Register Name
ANA_LVDSSW_VC
Address
Bits Mode
Rst
00
Description
0068
[6:4]
R/W
LVDS & RSDS Output Common Mode Adjustment
0*: 1.093V
1: 1.119V
2: 1.145V
3: 1.171V (normal)
4: 1.197V
5: 1.223V
6: 1.259V
7: 1.274V
[3:0]
[6:4]
LVDS & RSDS Swing Adjustment
0*: 170mV (normal)
F: 475mV
LSB = 20mV (typ)
ANA_LVDSCOMPV
0069
00
VRL regulator current adjust
0*: off
1: 18uA (normal)
2: 36uA
3: 54uA
4: 72uA
5: 90uA
6: 108uA
7: 126uA
[2:0]
VRH regulator current adjust
0*: off
1: 18uA (normal)
2: 36uA
3: 54uA
4: 72uA
5: 90uA
6: 108uA
7: 126uA
117/138
Register Description by Block
ADE3800
Table 41: LVDS/RSDS Registers (Sheet 5 of 5)
Register Name
Address
Bits Mode
Rst
33
Description
ANA_LVDS_DLY_0
006A
[6:4]
[2:0]
[6:4]
[2:0]
[6:4]
[2:0]
[6:4]
[2:0]
[6:4]
[2:0]
[6:4]
[2:0]
[6:4]
[2:0]
[6:4]
[2:0]
[6:4]
[2:0]
[6:4]
[2:0]
[6:4]
[2:0]
[6:4]
[2:0]
[6:4]
[2:0]
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
LVDSDLYCH1
LVDSDLYCH0
LVDSDLYCLK0
LVDSDLYCH2
LVDSDLYCH4
LVDSDLYCH3
LVDSDLYCH6
LVDSDLYCH5
LVDSDLYCH7
LVDSDLYCLK1
RSDSDLYCH1
RSDSDLYCH0
RSDSDLYCH3
RSDSDLYCH2
RSDSDLYCH5
RSDSDLYCH4
RSDSDLYCH7
RSDSDLYCH6
RSDSDLYCH9
RSDSDLYCH8
RSDSDLYCH11
RSDSDLYCH10
RSDSDLYCH13
RSDSDLYCH12
RSDSDLYCH15
RSDSDLYCH14
LVDS/RSDS
output skew
adjust
0: 176ps (typ)
1: 104ps (typ)
2: 73ps (typ)
3*: 50ps (typ)
4: 39ps (typ)
5: 18ps (typ)
6: 7ps (typ)
ANA_LVDS_DLY_1
ANA_LVDS_DLY_2
ANA_LVDS_DLY_3
ANA_LVDS_DLY_4
ANA_RSDS_DLY_0
ANA_RSDS_DLY_1
ANA_RSDS_DLY_2
ANA_RSDS_DLY_3
ANA_RSDS_DLY_4
ANA_RSDS_DLY_5
ANA_RSDS_DLY_6
ANA_RSDS_DLY_7
006B
006C
006D
006E
0070
0071
0072
0073
0074
0075
0076
0077
33
33
33
33
33
33
33
33
33
33
33
33
7: no delay
(normal)
Table 42: LVDS / RSDS Power Configurations
ANA_LVDSANA4[0] ANA_LVDSANA5[5] ANA_LVDSANA2[7]
Master Power Ctrl Output Mode Sel PLL Power Ctrl
LVDS
Output
RSDS
Output
State
All Off
PLL
off
off
on
off
off
off
on
1
0
0
X
1
0
X
0
LVDS On
RSDS On
on
off
X
118/138
ADE3800
Register Description by Block
4.20 Pulse Width Modulation (PWM)
The Pulse Width Modulation block generates two signals that can be used to control backlight
inverter switching power components directly. It is derived from XCLK and can be powered up
independently of the DOTCLK and INCLK domains. The frequency, duty cycle, polarity and overlap/
non-overlap are programmable. The output frequency can be free-running or locked to the output
vsync signal.
Table 43: PWM Registers (Sheet 1 of 2)
Register Name
PWM_CTRL0
Addr
01A0
Mode
Bits Default
[7] 00
Description
R
PWM status
0*: unlocked
1: locked
R/W
[6]
0*: lock to CYCLES_PER_FRAME from the
free-running state machine
1: lock to CYCLES_PER_FRAME register
setting
R/W
R/W
[5]
[4]
PWM_A polarity
0*: active low
1: active high
PWM_B polarity
0*: active low
1: active high
R/W
R/W
[3]
[2]
0*: normal operation
1: force both PWM outputs to polarity settings
of bits 5 and 4
0*: change period or duty cycle at the end of
the current cycle
1: smooth change, period or duty cycle
increment/decrement every
PWM_STEP_DELAY cycle
R/W
R/W
R/W
[1]
0*: free-running
1: lock to out_vsync
[0]
0*: disable PWM output
1: enable PWM output
nd
PWM_CTRL1
01A1
[7:4]
00
Lock 2 order gain (power of 2)
0*: max
3: typical
F: min.
R/W
[3:0]
Lock gain (power of 2)
0*: max
6: typical
F: min.
PWM_PERIOD_L
PWM_PERIOD_U
01A2
01A3
R/W
R/W
[7:0]
[7:0]
00
00
Period-2 in free-running mode, in XCLKs
Duty cycle of PWM in XCLKs
PWM_DUTY_L
PWM_DUTY_U
01A4
01A5
R/W
R/W
[7:0]
[7:0]
00
00
PWM_OVERLAP_L
PWM_OVERLAP_U
01A6
01A7
R/W
R/W
[7:0]
[7:0]
00
00
Non-overlap of PWMs in XCLKs
119/138
Register Description by Block
ADE3800
Table 43: PWM Registers (Sheet 2 of 2)
Register Name
Addr
01A8
Mode
R/W
Bits Default
Description
PWM_STEP_DELAY
[7:0]
00
In smooth change mode, the number of
cycles skipped before the period/duty
registers are incremented/decremented
PWM_CYCLES_PER_FRAME_L
PWM_CYCLES_PER_FRAME_U
01A9
01AA
R/W
R/W
[7:0]
[7:0]
00
00
The number of cycles per frame in frame lock
mode when not using the internally generated
cycles per frame from a previous free-running
mode
4.21 I²C Block Transfer (I2CBKT)
The block transfer function allows the internal I²C parallel bus to be driven by an xclk state machine
to perform fast block transfers between internal addresses without any MCU software overhead.
Transfer speed is approximately 2MByte per second under typical conditions.
4.21.1 Transfer Setup and Start
Writing the bit I2CBKT_CTRL[0] to 1 initiates the transfer, according to all source and destination
parameters (addresses, length):
● Length for source is programmable to allow repeated patterns/fills, such as filling an entire area
with the same byte(s)
th
● An increment register for the destination allows to fill it only every n byte
Depending on the increment value, the destination length must be programmed as follows:
● If I2CBKT_CTRL[3:2]=0 (or =1 with I2CBKT_INC=1): DESLEN = nb of bytes to transfer
● If I2CBKT_CTRL[3:2]=1 with I2CBKT_INC>1: DESLEN = (nb of bytes to transfer * INC) - 1
The transfer can either take place immediately, or be initiated by a number of selectable events
coming from SMUX or TCON, as programmed in I2CBKT_CTRL[6:4].
Transfers can occur between RAM or registers or both, but cannot take place in the own registers of
the I2CBKT block (refer to Section 4.21.3: Concurrent I2C Transfers below).
Source and destination addresses cannot overlap.
Data can be either transferred from source to destination (one way) or swapped between them,
depending on I2CBKT_CTRL[1].
4.21.2 Transfer Progress
The status bit I2CBKT_STATUS[0] is set to 1 by hardware as soon as the transfer actually starts,
and falls back to 0 when the transfer is completed.
Note: It is the software’s duty to write I2CBKT_CTRL[0] to 0 upon transfer completion, before preparing
any new subsequent I2CBKT transfer.
2
4.21.3 Concurrent I C Transfers
2
While the I2CBKT block is operating, only I C accesses from MCU to the I2CBKT registers listed
2
below are allowed: any I C access to other adresses will take priority and stop the I2CBKT transfer
in progress in an unknown state (there is no way to tell which bytes have been transferred up to that
point).
120/138
ADE3800
Register Description by Block
It is therefore strongly recommended to wait until the I2CBKT transfer in progress is completed,
2
before initiating any I C access other than polling the I2CBKT_STATUS register.
Note: In case of need, a clean way to stop the current I2CBKT transfer is to write I2CBKT_CTRL[0] to 0.
Table 44: I2C Block Transfer Registers
Register Name
Addr
Bits
[7:0]
Mode
Rst
00
Description
I2CBKT_INC
0021
0022
R/W
R/W
destination address increment, 1 to 255 allowed
I2CBKT_SRCLEN_L
[7:0]
00
length of source block, in bytes.
If source length < destination length, the source data is
repeated
I2CBKT_SRCLEN_U
I2CBKT_DESLEN_L
0023
0024
[7:0]
[7:0]
R/W
R/W
00
00
length of block transfer, in bytes.
Include effect of increment if I2CBKT_CTRL[3:2] = 1
I2CBKT_DESLEN_U
I2CBKT_SRC_L
I2CBKT_SRC_U
I2CBKT_DES_L
I2CBKT_DES_U
I2CBKT_CTRL
0025
0026
0027
0028
0029
002A
[7:0]
[7:0]
[7:0]
[7:0]
[7:0]
[6:4]
R/W
R/W
R/W
R/W
R/W
R/W
00
00
00
00
00
00
source starting address
destination starting address
transfer start condition select (level sensitive)
0*: immediate
1: when in_henab = 0
2: when out_henab = 0
3: when in_venab = 0
4: when out_venab = 0
5: tcon_i2c_transfer = 1 (refer to TCON_CTRL[3:2])
[3:2]
R/W
increment mode
0*: source + 1, dest + 1
1: source + 1, dest + inc (as set in I2CBKT_INC)
2: reserved
3: reserved
[1]
[0]
R/W
R/W
0*: one way transfer from source to destination
1: swap source and destination
0*: end of transfer, or stop transfer in progress
1: start transfer according to condition bits [6:4]
Must be set and cleared by software
I2CBKT_PULSE
I2CBKT_STATUS
002B
002C
[7:4]
[3:0]
[0]
R/W
R/W
R
31
00
read pulse width (reserved)
write pulse width (reserved)
Transfer status
0*: block transfer completed
1: block transfer in progress
EXAMPLE
Fill every other byte of the entire OSD_RAM with a byte previously stored at address 4700:
I2CBKT_SRC_L = 00, I2CBKT_SRC_U = 47: start address where the data is located
I2CBKT_SRCLEN_L = 01, I2CBKT_SRCLEN_U = 00: only 1 byte to transfer from source
121/138
Register Description by Block
ADE3800
I2CBKT_DES_L = 00, I2CBKT_DES_U = 17: destination start address (OSD_RAM) where the data
will be written
I2CBKT_INC = 02: skip every other byte
I2CBKT_DESLEN_L = FF, I2CBKT_DESLEN_U = 5F: (46FF-1700+1) = 12288 bytes to transfer
means destination length = (12288 x increment) - 1 = 5FFF
I2CBKT_CTRL = 05: immediate transfer with source+1 and destination+2
4.22 I²C Registers and RAM Addresses
2
The I C own address of the device (also called “ADE_ID”) is A8h.
2
4.22.1 I C Transfer Format
2
All I C addresses, registers and RAM, are 16-bit wide.
2
Address LSB must be transferred first, followed by MSB then the data, as in the following I C
write access example:
Register
Address
LSB
Register
Address
MSB
ADE_ID
(A8)
Acka
Start
Ack
Ack
Data 1
Ack ...further data... Stop
a. All Ack bits are returned by the device.
4.22.2 Dedicated RAM Areas per Block
Table 45: I²C RAM Addresses
Clock
Start
Addr
End
Addr
Sizein
Bytes
Name
GAM_R
Description
Block
Size
Conditiona
Gamma Red LUT
Gamma Green LUT
Gamma Blue LUT
GAMMA dotclk >= sclk
1000
10FF
256x8b
256
256
256
12288
256
n/a
GAM_G
1100
1200
1700
4700
9000
A800
E300
11FF
12FF
46FF
47FF
A700
BFFF
F1FF
256x8b
GAM_B
256x8b
OSD_RAM
OSD_CLUT
SCL_RAM_1
SCL_RAM_2
OMUX
Characters RAM Area OSD
Color LUT
4096x24b
64x32b
Line Buffers
SCL
sclk >= xclk
1024x42b
1024x42b
640x48b
n/a
In RSDS Mode onlyb
OMUX
dotclk >= sclk
3840
a. The relevant clock condition must be met to grant access to that block’s registers and RAM.
b. In RSDS mode: OMUX uses this RAM area for internal computation purposes, it should not be
otherwise modified by any means.
In LVDS mode, this RAM is free of use, and can be used as a temporary storage or working area for
example.
4.22.3 Multi-byte Registers
Data are read back in the order of how they were written.
All values spread out over several registers are organised as follows:
122/138
ADE3800
Register Description by Block
32-bit values
24-bit values
LSB _L or _0
16-bit values
_0
_1
_2
_3
LSB _L
MSB _U
USB
LSB
USB
_M or _1
_U or _2
USB
They are all LSB aligned, except for OMUX which is MSB aligned.
When the RAM width is not a multiple of 8, zeros will be returned for the non-meaningful bits.
Example of LSB aligned RAM
If addresses 9000-9005 are written with the values F0-F5, the contents of SCL_RAM_1 (at word
address 0) are as follows:
[41:40]
01
[39:32]
F4
[31:24]
F3
[23:16]
F2
[15:8]
F1
[7:0]
F0
A read from address 9000 will return F0; a read from address 9001 will return F1, etc.
Note: A read from 9005 returns the value 01 (as opposed to F5) since there are only 2 meaningful bits of
data at this address.
Example of MSB aligned RAM (OMUX only)
If addresses E300-E305 are written with the values F0-F5 respectively, the contents of the OMUX
RAM (at word address 0) are as follows:
[47:40]
F0
[39:32]
F1
[31:24]
F2
[23:16]
F3
[15:8]
F4
[7:0]
F5
A read from address E300 will return F0, a read from address E301 will return F1, and so on.
123/138
Electrical Specifications
ADE3800
5
Electrical Specifications
5.1 Absolute Maximum Ratings
Symbol
AVDD
Parameter
Min.
Typ.
Max.
Unit
DVDD18
XVDD18
OVDD18
PVDD18
PLLVDD18
1.8V Supply Voltages
3.3V Supply Voltages
1.95
V
DVDD33
VESD
3.6
2
V
kV
V
Electrostatic Protection (Human Body Model)
Max voltage on 5 volt tolerant input pins
Max voltage on 3.3 volt tolerant input pins
Storage temperature
VIN5VTOL
VIN3VTOL
TSTG
6.1
4.1
V
-40
0
+150
+70
+125
ºC
ºC
ºC
TOPER
TJ
Operating Temperature
Operating Junction Temperature
-40
5.2 Nominal Operating Conditions
Symbol
Parameter
Min.
Typ.
Max.
Unit
AVDD
DVDD18
XVDD18
OVDD18
PVDD18
PLLVDD18
1.8V Supply Voltages
1.71
1.8
1.89
V
DVDD33
fXTAL
3.3V Supply Voltages
Crystal Frequency
3.135
3.3
27
3.465
V
MHz
PXGA75LVDS
PXGA75RSDS
PSXGA75LVDS
PSXGA75RSDS
Power Consumption using XGA75Hz input and driving a XGA
LVDS panel (1 pixel per clock)
0.75
0.70
1.10
1.00
W
W
W
W
Power Consumption using XGA75Hz input and driving a XGA
RSDS panel (1 pixel per clock)
Power Consumption using SXGA75Hz input and driving a SXGA
LVDS panel (2 pixels per clock)
Power Consumption using SXGA75Hz input and driving a SXGA
RSDS panel (2 pixels per clock)
PPWRDN
Power Consumption in Power Down Mode
0.04
0.05
220
W
IAVDDX75LVDS
IDVDD18X75LVDS
AVDD Supply Current, (XGA75Hz input and XGA LVDS panel)
mA
DVDD18 Supply Current, (XGA75Hz input and XGA LVDS
panel)
150
2.5
35
mA
mA
mA
IXVDD18X75LVDS
IOVDD18X75LVDS
XVDD18 Supply Current, (XGA75Hz input and XGA LVDS
panel)
OVDD18 Supply Current, (XGA75Hz input and XGA LVDS
panel)
124/138
ADE3800
Electrical Specifications
Symbol
Parameter
Min.
Typ.
Max.
Unit
IPVDD18X75LVDS
PVDD18 Supply Current, (XGA75Hz input and XGA LVDS
panel)
5
mA
IPLLVDD18X75LVDS
IDVDD33X75LVDS
PLLVDD18 Supply Current, (XGA75Hz input and XGA LVDS
panel)
2.5
mA
DVDD33 Supply Current, (XGA75Hz input and XGA LVDS
panel)
2
mA
mA
mA
IAVDDX75RSDS
AVDD Supply Current, (XGA75Hz input and XGA RSDS panel)
220
150
IDVDD18X75RSDS
DVDD18 Supply Current, (XGA75Hz input and XGA RSDS
panel)
IXVDD18X75RSDS
IOVDD18X75RSDS
IPVDD18X75RSDS
XVDD18 Supply Current, (XGA75Hz input and XGA RSDS
panel)
2.5
10
mA
mA
mA
mA
mA
mA
mA
mA
mA
mA
mA
mA
mA
mA
mA
mA
mA
mA
mA
OVDD18 Supply Current, (XGA75Hz input and XGA RSDS
panel)
PVDD18 Supply Current, (XGA75Hz input and XGA RSDS
panel)
5
I
PLLVDD18 Supply Current, (XGA75Hz input and XGA RSDS
panel)
PLLVDD18X75RS
2.5
2
DS
IDVDD33X75RSDS
DVDD33 Supply Current, (XGA75Hz input and XGA RSDS
panel)
IAVDDSX75LVDS
AVDD Supply Current, (SXGA75Hz input and SXGA LVDS
panel)
225
260
2.5
70
IDVDD18SX75LVDS
IXVDD18SX75LVDS
IOVDD18SX75LVDS
IPVDD18SX75LVDS
DVDD18 Supply Current, (SXGA75Hz input and SXGA LVDS
panel)
XVDD18 Supply Current, (SXGA75Hz input and SXGA LVDS
panel)
OVDD18 Supply Current, (SXGA75Hz input and SXGA LVDS
panel)
PVDD18 Supply Current, (SXGA75Hz input and SXGA LVDS
panel)
5
I
PLLVDD18 Supply Current, (SXGA75Hz input and SXGA LVDS
panel)
PLLVDD18SX75LV
2.5
3.5
225
250
2.5
20
DS
IDVDD33SX75LVDS
DVDD33 Supply Current, (SXGA75Hz input and SXGA LVDS
panel)
IAVDDSX75RSDS
AVDD Supply Current, (SXGA75Hz input and SXGA RSDS
panel)
IDVDD18SX75RSDS
IXVDD18SX75RSDS
IOVDD18SX75RSDS
IPVDD18SX75RSDS
DVDD18 Supply Current, (SXGA75Hz input and SXGA RSDS
panel)
XVDD18 Supply Current, (SXGA75Hz input and SXGA RSDS
panel)
OVDD18 Supply Current, (SXGA75Hz input and SXGA RSDS
panel)
PVDD18 Supply Current, (SXGA75Hz input and SXGA RSDS
panel)
5
I
PLLVDD18 Supply Current, (SXGA75Hz input and SXGA RSDS
panel)
PLLVDD18SX75R
2.5
3.5
SDS
IDVDD33SX75RSDS
DVDD33 Supply Current, (SXGA75Hz input and SXGA RSDS
panel)
125/138
Electrical Specifications
ADE3800
5.3 Preliminary Thermal Data
Symbol
Parameter
Min.
Typ.
Max.
Unit
RthJA
Junction-to-Ambient Thermal Resistance (LQFP100):
ºC/W
Soldered exposed pad
Unsoldered exposed pad
20
29
RthJA
Junction-to-Ambient Thermal Resistance (LQFP128):
ºC/W
Soldered exposed pad
Unsoldered exposed pad
25.1
32.6
5.4 Preliminary DC Specifications
Test Conditions: DVDD33 = 3.3V, DVDD18 = AVDD = OVDD18 = PVDD18 = XVDD18 = PLLVDD18
= 1.8V and T = 25ºC
AMB
5.4.1 LVTTL 5-Volt Tolerant Inputs with Hysteresis
HSYNC, VSYNC, SCL, RESETN, EXT_SOG, RESETN2, XCLKEN
Symbol
VIH
Parameter
High Level Input Voltage
Low Level Input Voltage
Schmitt Trigger Hysteresis
Condition
Min.
Typ.
Typ.
Typ.
Max.
Unit
2.0
V
V
V
VIL
0.8
VHYST
0.4
5.4.2 LVTTL 3-Volt Tolerant Inputs with Hysteresis
TST_SCAN
Symbol
VIH
Parameter
High Level Input Voltage
Low Level Input Voltage
Schmitt Trigger Hysteresis
Condition
Min.
Max.
Unit
2.0
V
V
V
VIL
0.8
VHYST
0.4
5.4.3 LVTTL 5-Volt Tolerant I/O with Hysteresis
SDA, SDA2
Symbol
VIH
Parameter
High Level Input Voltage
Condition
Min.
Max.
Unit
2.0
V
V
VIL
Low Level Input Voltage
Schmitt Trigger Hysteresis
High Level Output Voltage
Low Level Output Voltage
Output Current
0.8
VHYST
VOH
VOL
0.4
V
3.15
V
0.15
8
V
IOUT
mA
126/138
ADE3800
Electrical Specifications
5.4.4 LVTTL 3-Volt Tolerant I/O
XCLK
Symbol
VIH
Parameter
High Level Input Voltage
Condition
Min.
Typ.
Max.
Unit
2.0
V
V
VIL
Low Level Input Voltage
0.8
VOH
VOL
IOUT
High Level Output Voltage
Low Level Output Voltage
Output Current
3.15
V
V
0.15
8
mA
5.4.5 LVTTL 3-Volt Tolerant I/O
TCON [7:0]
Symbol
VIH
Parameter
High Level Input Voltage
Condition
Min.
Typ.
Max.
Unit
2.0
V
V
VIL
Low Level Input Voltage
0.8
VOH
VOL
IOUT
High Level Output Voltage
Low Level Output Voltage
Output Current
3.15
V
V
0.15
2
mA
5.5 LVDS Outputs
OUT [7:0], OUT [7:0]b, OUTCLK [1:0], OUTCLK [1:0]b
Symbol
VLVDS-DIFF
VLVDS-CM
Parameter
LVDS Differential Output Voltages
LVDS Common Mode Output Voltage
Condition
Min.
Typ.
Max.
Unit
RL=100 ohm
RL=100 ohm
RL=100 ohm
250
345
450
mV
V
1.125
1.25
1.375
∆
Change in VLVDS-DIFF between complimentary output
states
LVDS-DIFF
35
35
mV
mV
∆
Change in VLVDS-CM between complimentary output
states
RL=100 ohm
LVDS-CM
5.6 RSDS Outputs
RSDS [7:0], RSDS [7:0]b, OUT [7:0], OUT [7:0]b, OUTCLK [1:0], OUTCLK [1:0]b,
RSDS [15:8], RSDS [15:8]b
Symbol
Parameter
Condition
Min.
Typ.
Max.
400
Unit
VRSDS-DIFF
RSDS Differential Output
Voltage
RSDS mode
100
200
mV
127/138
Electrical Specifications
ADE3800
Symbol
Parameter
Condition
Min.
Typ.
Max.
Unit
VRSDS-CM
RSDS Common Mode Output
Voltage
680 ohm + 50 ohm external
termination to 1.3V
1.1
1.3
1.5
3
V
Trise, Tfall
RSDS Transition Time to 90%
CL = 30pF
ns
5.7 ADC Characteristics
Symbol
Parameter
Condition
Min.
Typ.
Max.
Unit
INL
ADC Integral Nonlinearity (7-bit)
Without Dithering
Without Dithering
No missing codes
VINADC = 1MHz
0.6
1.0
1.5
LSB
DNL
ADC Differential Nonlinearity (7-
bit)
0.3
0.6
1.0
LSB
Effective Number of Bits
ΣNOB
sinusoidal, 0.5VPP - 1VPP
,
6.2
6.6
6.8
Bit
FSAMPLING = 20 MHz
THD
Total Harmonic Distortion
VINADC = 1MHz
sinusoidal, 0.5VPP - 1VPP
FSAMPLING = 20 MHz
-48
0.5
-44
-41
1
dB
VINADC
RINADC
CINADC
FADC
ADC Input Voltage Range
ADC Input Resistance
ADC Input Capacitance
ADC Sample Frequency
Vp-p
Kohms
pF
200
12
20
140
MHz
dB
ADC gain step
ADC offset step
ADC Gain Step Size
ADC Offset Step Size
0.05
2.9
mV
128/138
ADE3800
Package Mechanical Data
6
Package Mechanical Data
6.1 100 Pin LQFP
Note: The Pin 1 corner is at an angle, while the others are 90°.
Dimensions (mm)
Dimensions (inches)
Min.
Typ.
Max.
Min.
Typ.
Max.
A
A1
A2
b
1.60
0.15
0.063
0.006
0.057
0.011
0.008
0.638
0.559
0.05
1.35
0.002
0.053
0.007
0.004
0.622
0.543
0.079
1.40
0.22
1.45
0.055
0.009
0.17
0.27
c
0.09
0.20
D
15.80
13.80
2.00
16.00
14.00
3.9
16.20
14.20
0.63
0.551
0.154
0.472
0.63
D1
D2
D3
E
12.00
16.00
14.00
3.9
15.80
13.80
2.00
16.20
14.20
0.622
0.543
0.079
0.638
0.559
E1
E2
E3
e
0.551
0.154
0.472
0.02
12.00
0.50
L
0.45
0.60
0.75
0.018
0.024
0.03
129/138
Package Mechanical Data
ADE3800
Dimensions (mm)
Typ.
Dimensions (inches)
Typ.
Min.
Max.
Min.
Max.
L1
1.00
3.5
0.039
0.138
K
0
7
0
0.276
0.003
ccc
0.08
6.2 128 Pin LQFP
D
D1
11/13°
b
D2
E2
E
E1
e
Pin 1 Identification
A
0° Min.
0.08/0.20 R.
A2
A1
K
0.08 R. Min.
L
0.25 mm.
Gauge Plane
L1
Note: The Pin 1 corner is at an angle, while the others are 90°.
Dimensions (mm)
Dimensions (inches)
Typ.
Min.
Typ.
Max.
Min.
Max.
A
A1
A2
b
1.600
0.150
1.450
0.270
0.063
0.006
0.057
0.011
1.400
0.220
1.350
0.170
0.055
0.009
0.866
0.787
0.053
0.007
D
22.000
20.000
D1
D2
3.9
0.154
130/138
ADE3800
Package Mechanical Data
Dimensions (mm)
Typ.
Dimensions (inches)
Min.
Max.
Min.
Typ.
Max.
E
E1
E2
e
16.000
14.000
0.623
0.551
3.9
0.154
0.0178
0.000
0.500
0.600
1.000
0.020
0.024
0.040
L
0.450
0.000
0.750
7.000
0.030
0.275
L1
K
131/138
Scaler Equations
ADE3800
7
Scaler Equations
fSclk = 140 MHz, and Sclk_PR = 18AF
Dclk _ PR = FSYN _ PR _ OTCLK ⋅(3− NumPPC)
HP − dest _ hpixel
VP − dest _ vpixel
out
out
dest _ hpos =
dest _ vpos =
2
2
WinTop = 10
DE _ panels ⇒ 2,
⎧
⎨
WinBot =
WinTop +VP −1, _ otherwise
⎩
out
WinLeft = max(48, HTout − min HBout −8)
WinRight = WinLeft + HP
out
HP << 16
VP << 16
dest _ vpixel
in
in
ScaleFactorH =
dest _ hpixel
ScaleFactorV =
Sclk _ PR ⋅ ScaleFactorH
pipe _ rate =
Dclk _ PR >> 2
origin _ hpos = −(((WinLeft + dest _ hpos)⋅2 − 23)⋅ScaleFactorH + 24) >> 13
origin _ vpos = −(((WinTop + dest _ vpos)⋅2 −1)⋅ ScaleFactorV ) >> 13
⎛
⎞
(43 << 9)⋅Sclk _ PR
Dclk _ PR
1<< 21
ScaleFactorH
LineStart = ⎜(WinLeft + dest _ hpos) << 4 −
−
−136⎟ >> 4
⎜
⎟
⎝
⎠
(((HP > 1024)?5 : 9) + SMUX _VTRIG << 2)⋅ xclks _ per _ hsync
in
InitTrigDelay =
−
SMEAS _ H _ NUM _ LINES << 2
((WinTop + dest _ vpos)⋅ HTout ⋅(Dclk _ PR >> 6)) >> 15
SCL_TRIGGER_DLY = InitTrigDelay;// wait 3 frames
wPtrMinPost = SCL_PTR_POST;
// feedback loop to tune trigger delay:
while ( !(8 < wPtrMinPost < 16) ) {// landing zone is (8, 16) & mid point is 12
wDiff = wPtrMinPost > (512 + 12) ? wPtrMinPost – (1024 + 12): wPtrMinPost - 12;
dwTriggerDelay = dwTriggerDelay + ((((xclk_freq / inclk_freq) * 3) * wDiff) / 2);
SCL_TRIGGER_DLY = max (dwTriggerDelay, 1);
// wait 2 frames for new trigger delay to take effect
wPtrMinPost = SCL_PTR_POST;
}
132/138
ADE3800
ADE3800 vs ADE3700
8
ADE3800 vs ADE3700
The following gives an overview of the main differences between ADE3700 and ADE3800:
Package
● 100 pin LQFP for LVDS 1&2 channels and RSDS 1 channel application
● 128 pin LQFP for RSDS 2 pixel per clock support
● 5V tolerant inputs do not have internal pull-up resistors
I2C Interface
● Add Block Transfer for fast internal data move/swap/copy
Registers
● Now all registers runs on XCLK
● RGB register address ordering is reversed to BGR
Analog Front End (ADC & SOG)
● New ADC design with higher performances
● Add Internal SOG Sync Stripper with bypass option (external SOG TTL pin)
● SOG activity can operate while ADC Power is down (wakeup from DPMS by SOG support)
● Per channel skew control
● Analog Filter bandwidth programmable
● Gain and Offset independent and linear
● 10-bit ADC using Analog Dithering Technique (ADTH)
Line Lock PLL (LLK)
● Synthesized Internal HSync has 50% duty cycle
● Phase step is 4 times more precise
● Phase range can exceed one clock period delay
● Lock filter removed
● Fewer registers, simplifies some programming
● Clock and Phase are both shadowed
● FM Modulation amplitude step is 16 times more precise
Sync Measurement (SMEAS)
● Remove out of range register
● Add Fast Mute function
● Group all the fast mute flags in SMEAS with sticky bit and enable
133/138
ADE3800 vs ADE3700
ADE3800
Sync Mux (SMUX)
● Set/Reset replaced by Pos/Size references
● Add Vtrigger to make framelock reference in the center of the frame, allowing easier artifact
free implementation on wide picture position changes
Data Measurement (DMEAS)
● Scratch pad register removed
● DMEAS uses only the 7 MSB Color data information for processing
Scaler Zoom (SCALE)
● Simpler kernel programming, fewer registers
● New context sensitive scaler function
● H & V Sharpness control
● Includes former OSEQ functionality
● TCON generates the panel output and reference internal signals
Pattern Generator (PGEN)
● Only one pattern engine (P0); P1 is input video
● TCON Windowing control added
Color Transformations (SRGB)
● 2x and 4x Delta magnification options added
● RGB programmable max clipping function added
Gamma Correction (GAM)
● 10 bit input and 10 bit output with bypass option
● Relative 8 bit 2s-complement value delta tables (3x256)
● 2x Delta magnification option, with limiting
● RGB Offset within an input range option available
On Screen Display (OSD)
● New concept
● Support 1,2,3,4 bpp characters
● 64 True color palette with 4 bit alpha blending per color
● Common RAM shared between text and font
● Text can be displayed anywhere on the screen
● OSD Position is in pixel and line unit
● Per character H and V flip
134/138
ADE3800
ADE3800 vs ADE3700
● Up to 1024 character support
Flicker Detector (FLICKER)
● Only 4 of the 8 scores are measured in one shot
● Output Dithering (APC)
● New design
● Mode flexibility and performance improved
● LSB justified (for 6 bit output, MSBs are zero)
Output Mux (OMUX)
● Per Pin Delay removed
● Gate Speed monitoring register removed
● Bit rotate function added
Timing Controller (TCON)
● Simplified, easier programming
● Common functions hardcoded
● Easy to use LC Polarity Inversion signal generator
● 16 SRTD gates vs 32 in ADE 3700
● Scaler Output Data Enable signal must come from TCON (no OSEQ block anymore)
● No OCF control anymore
● Resync on H or V Sync edges no longer needed
● Comparator, Pulse and Window generators
LVDS/RSDS (new block added)
● Skew control
● 40-85 MHz clock range
● Flexible output mapping
● Pair swap, bit sequence reversing option
135/138
Glossary
ADE3800
9
Glossary
AFE
Analog Front End, this includes the ADC and SOG circuitries
see Smart Panel
Bare Panel
bpp
bit per pixels (OSD Font: 4bpp = 16 color characters)
DFT
design For Test block to output certain internal signals (otherwise not available)
in_henab & in_venab = Input active area signal*
input horizontal active pixel signal*
in_enab
in_henab
in_venab
LVDS
input vertical active line signal*
low voltage differential signaling video interface to LCD panel
out_henab & out_venab = Output panel active area signal*
output panel horizontal active pixel signal*
out_enab
out_henab
out_venab
ppc
output panel vertical active line signal*
pixels per clock (2 ppc = dual wide panel bus interface)
PVT
parameters that depend on Process (chip), Voltage (power) and Temperature
(board)
RSDS
reduced swing differential signaling video interface to LCD panel
see Smart Panel
SIP Panel
Smart Panel
panel without built-in TCON using TTL or RSDS input video interface, additional
timing signals must be provided for proper operation.
SOG
sync on Green type signal
sRGB
SRTD
standard RGB, color matching between display and real life
Set-Reset-Toggle-Delay programmable gate in TCON
Standard Panel panel with built-in TCON using LVDS or TTL input video interface
TCON
TMDS
timing controller function
transition minimized differential signaling video interface from DVI digital video
input
* All enab type signals are active high
136/138
ADE3800
Revision History
10 Revision History
Table 46: Summary of Modifications
Description
Date
Version
14 February 2003
03 June 2003
0.1
0.2
0.3
First Draft.
Second Draft.
05 September 2003
Major updates to Chapter 3: Pin Descriptions, Chapter 4: Register Description by Block and
Chapter 6: Package Mechanical Data.
24 October 2003
November 2003
January 2004
April 2004
0.4
1.0
1.1
1.3
Major updates to all chapters.
First Issue.
Document changed from target specification to datasheet.
Corrections to Figure 2: LQFP100 Pinout Diagram on page 11 and Figure 3: LQFP128 Pinout
Diagram on page 12 and to pin numbers in table on Chapter 4.17.1: Output Data.
May 2004
2.0
Major updates to Chapter 3: Pin Descriptions. New pin assignments impact on
Figure 2: LQFP100 Pinout Diagram on page 11, Figure 3: LQFP128 Pinout Diagram on page 12,
Table 3: Analog Input Signals on page 12 and Table 7: Analog Section Power Supply Pins on
page 16.
June 2004
2.1
3.0
Corrected TCON_INV_1 descriptions in Table 39: Register Map. Major updates to
Chapter 5: Electrical Specifications.
09 November 2004
Chapter 3: Pin Descriptions - Replaced pin 1 (QFP100) and pin 128 (QFP 128) name with
PLLVDD18 .
Chapter 4: Register Description by Block - Few changes applied in register description for GLBL,
OMUX, SMUX and TCON.
Chapter 5: Electrical Specifications - Many values modified following the device full
characterization.
February 2005
11 Apr 2005
3.1
3.2
Updated information in Table 7: Analog Section Power Supply Pins on page 16,
Chapter 4.12.1: Parametric Gamma, Digital Contrast / Brightness on Multiple Windows and
Chapter 4.12.2: Color Space Warp.
Updated Chip Revision ID and added GLBL_AZWC_CTRL register values in Table 9: Global
Control Registers on page 18.
137/138
ADE3800
Information furnished is believed to be accurate and reliable. However, STMicroelectronics assumes no responsibility for the consequences of use of
such information nor for any infringement of patents or other rights of third parties which may result from its use. No license is granted by implication
or otherwise under any patent or patent rights of STMicroelectronics. Specifications mentioned in this publication are subject to change without notice.
This publication supersedes and replaces all information previously supplied. STMicroelectronics products are not authorized for use as critical
components in life support devices or systems without the express written approval of STMicroelectronics.
The ST logo is a registered trademark of STMicroelectronics.
All other names are the property of their respective owners
© 2005 STMicroelectronics. All Rights Reserved.
STMicroelectronics Group of Companies
Australia - Belgium - Brazil - Canada - China - Czech Republic - Finland - France - Germany - Hong Kong - India - Israel - Italy - Japan -
Malaysia - Malta - Morocco - Singapore - Spain - Sweden - Switzerland - United Kingdom - United States of America
www.st.com
138/138
相关型号:
SI9130DB
5- and 3.3-V Step-Down Synchronous ConvertersWarning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 217
-
VISHAY
SI9135LG-T1
SMBus Multi-Output Power-Supply ControllerWarning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 217
-
VISHAY
SI9135LG-T1-E3
SMBus Multi-Output Power-Supply ControllerWarning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 217
-
VISHAY
SI9135_11
SMBus Multi-Output Power-Supply ControllerWarning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 217
-
VISHAY
SI9136_11
Multi-Output Power-Supply ControllerWarning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 217
-
VISHAY
SI9130CG-T1-E3
Pin-Programmable Dual Controller - Portable PCsWarning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 217
-
VISHAY
SI9130LG-T1-E3
Pin-Programmable Dual Controller - Portable PCsWarning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 217
-
VISHAY
SI9130_11
Pin-Programmable Dual Controller - Portable PCsWarning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 217
-
VISHAY
SI9137
Multi-Output, Sequence Selectable Power-Supply Controller for Mobile ApplicationsWarning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 217
-
VISHAY
SI9137DB
Multi-Output, Sequence Selectable Power-Supply Controller for Mobile ApplicationsWarning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 217
-
VISHAY
SI9137LG
Multi-Output, Sequence Selectable Power-Supply Controller for Mobile ApplicationsWarning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 217
-
VISHAY
SI9122E
500-kHz Half-Bridge DC/DC Controller with Integrated Secondary Synchronous Rectification DriversWarning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 217
-
VISHAY
©2020 ICPDF网 联系我们和版权申明