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
● 10b input/output (0 to 1023), range of delta = -128 to +127 (+/- 1/8th 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 Rst
Description
GAM_CTRL
0C00 R/W
[3]
[2]
[1]
00 0*: delta range = -128 to +127
1: delta range = -256 to +254
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
0*: Write i2c to RAM allowed during active video
1: Write i2c to RAM during video blanking only (shadowed)
GAM_POSITION0
GAM_POSITION1
GAM_OFFSET
0C01 R/W
0C02 R/W
0C03 R/W
[0]
[7:0] 00
[7:0] 00
[5:0] 00
0*: gamma bypassed
1: gamma enabled
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)
See offset_position0 for details
Multipled by 16. 2’s complement number represents –512 to
+496 inclusive.
See offset_position0 for details
71/138