Projects/ES600/AUOK190x
Collection of command functions of the AUOK190x epaper controllers.
Update modes - K1900
bits | Mode |
---|
000 | Mode 0: gray refresh with flash, 4bit gray |
001 | Mode 1: gray refresh without flash, 4bit gray |
010 | Mode 2: text mode, 2bit gray |
011 | Mode 3: highlight mode, 1bit gray |
100 | Mode 4: handwriting mode, 1bit gray |
101 | Mode 5: auto select mode
|
Update modes - K1901
bits | Mode |
---|
000 | Mode 0: gray refresh with flash, 16bit gray |
001 | Mode 1: gray refresh without flash, 16bit gray |
010 | Mode 2: text mode without flash, 4bit gray |
011 | Mode 3: text mode with flash, 4bit gray |
100 | Mode 4: high-speed mode without flash, 2bit gray, without LUT |
101 | Mode 5: high-speed mode with flash, 2bit gray |
111 | Mode 7: auto select mode
|
AUOK190X_CMD_INIT
- command: 0x0000
- write-params: 1
- read-params: 0
param 1 - K1900
- bit13: temperature average function
- bit12: data_filter_n for mode 2 and 3 (1: bypass data, 0: filter input data)
- bit[11:10]: rotation setting
- bit09: data inverse function (0: 0000 = black, 1111 = white; 1: 0000 = white, 1111 = black)
- bit [8:6]: input data format
- bit5: output data format
- bit [4:2]: RES[2:0]
- bit01: scan up/down (0: scan down, first line=Gm => Gm-1 => ... => G2 => G1=last line, 1: scan up, inverted)
- bit00: shift left/right (0: shift left, first=Sn => Sn-1 => ... => S2 => S1=last, 1: shift right, inverted)
param 1 - K 1901
- bit14: OEINV function (gate pulse, 0:low, 1:high)
- bit13: CHDS function (0: single gate driver, 1: double gate driver)
- bit12: data_filter_n (1: bypass data, 0: filter input data)
- bit11: FIXME, seems to be used in conjunction with bit10 for rotation stuff, K1901 does not declare it
- bit10: RES[4] - resolution setting
- bit09: data inverse function (0: 0000 = black, 1111 = white; 1: 0000 = white, 1111 = black)
- bit [8:6]: input data format
- bit [5:2]: RES[3:0]
- bit01: scan up/down (0: scan down, first line=Gm => Gm-1 => ... => G2 => G1=last line, 1: scan up, inverted)
- bit00: shift left/right (0: shift left, first=Sn => Sn-1 => ... => S2 => S1=last, 1: shift right, inverted)
data filtering K1900
- modes 2: 16-step gray to 4 step gray
- modes 3: 16-step gray to 2-step gray
data filtering K1901
- modes 2+3: 16-step gray to 4 step gray
- modes 4+5: 16-step and 4-step gray to 2-step gray
rotation on K1900
value | rotation |
---|
00 | normal |
01 | 90deg |
10 | 180deg |
11 | 270deg
|
For mode 01 (90degree) screen resolution is 600x800 and trasmitted as such
(i.e. all commands send use this dimension). The epd controller transforms
everything to the real dimension of the display (i.e. 800x600).
data input format - K1900
format | D[15:12] | D[11:08] | D[07:04] | D[03:00] |
---|
0 | P4 | P3 | P2 | P1 |
1 | P3 | P4 | P1 | P2
|
data output format - K1900
format | D[7:6] | D[5:4] | D[3:2] | D[1:0] |
---|
0 | P4 | P3 | P2 | P1 |
1 | P3 | P4 | P1 | P2
|
data input format - K1901
format | D[15:12] | D[11:08] | D[07:04] | D[03:00] |
---|
0 | P4 | P3 | P2 | P1 |
1 | P3 | P4 | P1 | P2 |
2 | P2 | dummy | P1 | dummy |
3 | P1 | dummy | P2 | dummy |
4 | dummy | P2 | dummy | P1 |
5 | dummy | P1 | dummy | P2 |
6 | P2[15:12] | P2[11:8] | P1[7:4] | P1[3:0] |
7 | P1[15:12] | P1[11:8] | P2[7:4] | P2[3:0]
|
resolution - K1900
RES[2:0] | resolution | orientation |
---|
000 | 800 x 600 | landscape |
001 | 1024 x 768 | landscape |
100 | 600 x 800 | portrait |
101 | 768 x 1024 | portrait |
everything else | 800 x 600 | landscape
|
resolution - K1901
RES[4]+RES[3:0] | resolution | orientation | IPL |
---|
11000 | 600 x 800 | portrait | 1 |
11001 | 768 x 1024 | portrait | 1 |
11010 | reserved |
11011 | 600 x 1024 | portrait | 1 |
11100 | 825 x 1200 | portrait | 1 |
11101 | 1024 x 1280 | portrait | 1 |
11110 | 1200 x 1600 | portrait | 1 |
10000 | 800 x 1024 | portrait | 1 |
10001 | 825 x 1280 | portrait | 1 |
10010 | 800 x 1280 | portrait | 1 |
10011 | 768 x 1280 | portrait | 1 |
10100 | 960 x 1280 | portrait | 1 |
00000 | 800 x 600 | landscape | 1 |
00001 | 1024 x 768 | landscape | 0 |
00010 | reserved |
00011 | 1024 x 600 | landscape | 0 |
00100 | 1200 x 825 | landscape | 0 |
00101 | 1280 x 1024 | landscape | 0 |
00110 | 1600 x 1200 | landscape | 0 |
00111 | 1024 x 800 | landscape | 0 |
01000 | 1280 x 825 | landscape | 0 |
01001 | 1280 x 800 | landscape | 0 |
01010 | 1280 x 768 | landscape | 0 |
01011 | 1280 x 960 | landscape | 0 |
everything else | 800 x 600 | landscape | 0
|
AUOK190X_CMD_STANDBY
- command: 0x0001
- write param: 0
- read param: 0
- enter standby mode
AUOK190X_CMD_WAKEUP
- command: 0x0002
- write param: 0
- read param: 0
- exit standby mode
- busy_n must be 0 and standby mode must be active
AUOK190X_CMD_TCON_RESET
- command: 0x0003
- write param: 1
- read param: 0
param 1
- bit1: is power-on reset (0 / 1)
- bit0: tcon reset (0: tcon reset, 1: normal reset)
- MISSING additional documentation on the purpose of each option
AUOK1900_CMD_LUT_FREQUENCY
- command: 0x0004
- undocumented
AUOK1901_CMD_LUT_INTERFACE
- command: 0x0005
- undocumented
AUOK1900_CMD_FULLDISP
- command: 0x1000
- undocumented
AUOK1900_CMD_PARTIALDISP and AUOK1901_CMD_DMA_START
Update a region of the display area.
- command: 0x1001
- write param: 4 + pixel data
- read param: 0
param 1 on K1900
- bit15: 0 = flash / 1 = erase
- bit[14:12]: update mode
- bit[11:0]: x coordinate of start position - must be 2n + 1
Partial update mode could be the same as the mode selection for AUOK1901_DDMA_START.
param 1 on K1901
- bit13: host-side orientation of image data (0: landscape, 1: portrait)
- bit12: manual (K1901) says: 0 = keep foreground data in overlap area, 1 = keep background data in overlap area
- bit[11:0]: x coordinate of start position
param 2
- bit[11:0]: y coordiante of start position - must be 2n + 1
param 3
- bit[11:0]: width of update region must be 4n with n > 2
param 4
- bit[11:0]: height of update region - must be 2n
param above 4
Pixel data according to the format selection set during init.
AUOK190X_CMD_DATA_STOP
Stop receiving pixel data and start transmitting data to the panel.
- command: 0x1002
- write param: 0
- read param: 0
AUOK190X_CMD_LUT_START
AUOK190X_CMD_DISP_REFRESH
Refresh display from sdram data and mode 0 waveform.
- command: 0x1004
- write param: 0
- read param: 0
AUOK190X_CMD_DISP_RESET
Reset display based on ResetLut (LUT24 ??) and update sdram data automatically.
AUOK1900_CMD_ROTATION
- command: 0x1006
- undocumented
AUOK1901_CMD_CURSOR_START
AUOK1900_CMD_LUT_STOP
Stop transmitting data to LUT.
AUOK1901_CMD_DDMA_START
- command: 0x1009
- write param: 5
- read para: 0
param 1
- bit15: 0: non-flash, 1:flash
- bit[14:12]: mode selection
- bit11: rotation function for display (0: 180deg, 1: 0deg)
Modes
bits | Mode |
---|
000 | Mode 0: gray refresh with flash, 16bit gray |
001 | Mode 1: gray refresh without flash, 16bit gray |
010 | Mode 2: text mode without flash, 4bit gray |
011 | Mode 3: text mode with flash, 4bit gray |
100 | Mode 4: high-speed mode without flash, 2bit gray, without LUT |
101 | Mode 5: high-speed mode with flash, 2bit gray |
111 | Mode 7: auto select mode
|
param 2
X coordinate
param 3
X coordinate
param 4
Width
param 5
Height
AUOK1901_CMD_DCURSOR_START
- write param: 3
- read para: 0
param 1
- bit15: rotation function, 0: 180deg, 1: 0deg
- bit[14:12]: mode selection
- bit[11:0]: X coordiante
param 2
- bit15: 1: flash, 0: non-flash
- bit[13:12]: CS[5:4] cursor frame number
- bit[11:0]: Y coordinate
param 3
- bit[15:12]: CS[3:0] cursor frame number
- bit[11:10]: CSR_IPROT[1:0] cursor rotation in place
AUOK190X_CMD_PRE_DISPLAY_START
AUOK190X_CMD_PRE_DISPLAY_STOP
AUOK190X_CMD_FLASH_W
AUOK190X_CMD_FLASH_E
AUOK190X_CMD_FLASH_STS
AUOK190X_CMD_FRAMERATE
AUOK190X_CMD_READ_VERSION
- command: 0x4000
- write-params: 0
- read-params: 4
param 1 - temperature information
- bits [8:0] = mask 0xff
- move >> 1 to get positive int degree
- bit 0 denotes half degree
- 110010010 - -55
- ...
- 111111110 - -1
- 111111111 - -0.5
- 000000000 - 0
- 000000001 - 0.5
- 000000010 - 1
- ...
- 001111111 - 63.5
- ...
param 2 - epd type
- bits [7:0]
- 000 00000 - ESK 1.2.3
- 000 00001 - ESK 2.0.6
- 000 00000 - reserved
- 001 00000 - ERK 1.0
- 001 00001 - ERK 1.0.7
- 001 00010 - ERK 1.1.X
- 001 00011 - ERK 1.1.Y
- 001 00100 - ERK 1.2
- 001 00101 - ERK 1.4.A01
param 3 - panel size and model name/version
- bits [15:10] - panel size in inch (i.e. 6 or 9)
- bits [9:6] - panel size float part (i.e. 5 for x.5 inch)
- bits [5:0] - model name or version
- 000110 0000 000000 - Z060S / U-cronix IC
- 000110 0000 000001 - A060SE02 / AUO-K7900
- 001001 0000 000000 - A090XE01 / AUO-K7900
- 000010 0000 000000 - A020AE01 / AUO-K0200
- 000010 0001 000000 - A021AE01 / AUO-K0200
param 4 - version information
- bits [15:8] - TCON version
- 00000000 -
- 00000010 -
- 00000011 -
- 00000100 -
- 00000101 -
- bits [7:0] - LUT version
- 00000000 -
- 00000010 -
- 00000011 -
- 00000100 -
- 00000101 -
AUOK190X_CMD_READ_STATUS
- command: 0x4001
- write params: 0
- read params: 1
param 1 - K1900
- bit[1:0]: power status (0 .. normal, 1 .. standby)
- bit2: aging mode (0 .. normal, 1 .. aging)
- bit3: busy (0.. busy, 1 .. not busy)
- bit4: reset (0 .. reset, 1 .. normal)
param 1 - K1901
- bit0: power status (0 .. normal, 1 .. standby)
- bit1: aging mode (0 .. normal, 1 .. aging)
- bit3: busy (0.. busy, 1 .. not busy)
- bit4: reset (0 .. reset, 1 .. normal)
- bit5: black/white (0 .. gray, 1 .. real black/white)
AUOK190?_CMD_READ_DATA
- command: 0x4002
- check if also available on K1900
AUOK190X_CMD_READ_LUT
AUOK190X_CMD_DRIVERTIMING
AUOK190X_CMD_LBALANCE
AUOK190X_CMD_AGINGMODE
AUOK190X_CMD_AGINGEXIT