Smart LCD serial command is for real-time control and access. Host machine get the data which input through the Smart LCD interface or provide the data for display.
Hardware connection
Smart LCDs serial interface are base on RS232-C standard by default config as 8N1 115200bps.
Communication Packet Structure
Commands and Response Packet should be format as follow (host ⇒ module):
| Seq
|
Code
|
Code type
|
Descriptions
|
| 1
|
0xAA
|
Packet header
|
1byte
|
| 2
|
Cmd-code
|
Command code
|
1byte
|
| 3
|
parm/data
|
Parameter or Data
|
(*1)
|
| ...
|
...
|
-
|
-
|
| ...
|
...
|
-
|
-
|
| (N-3)th
|
0xCC
|
Packet tail
|
4byte
|
| (N-2)th
|
0x33
|
| (N-1)th
|
0xC3
|
| (N-0)th
|
0x33
|
Note.
*1. Unless otherwise specified, all the multi-byte values, data, address’ byte sequence are MSB first, LSB last.
e.g. 0x12345678 should send as following sequency, 0x12(first), 0x34, 0x56, 0x78(last)
Packet Acknowledgment
Packet Acknowledgment is two byte in ASCII (module ⇒ host):
| Response
|
code
|
Descriptions
|
| Command (in packet) executed and wait for next Command
|
":>"
|
In ASCII (0x3a, 0x3e)
|
| Command (in packet) error and wait for next Command
|
":!>"
|
In ASCII (0x21,0x3e)
|
| Invalid Packet
|
null
|
No response
|
Note.
*1. Packet Acknowledgement response to a valid packet only.
*2. Acknowledgement could be disable in Editor option (Manual ⇒ Tools ⇒ Project Setting ⇒ RS232 ⇒ Enable ACK)
Color Data Value Configuration
16 bit color value
| R4
|
R3
|
R2
|
R1
|
R0
|
G5
|
G4
|
G3
|
G2
|
G1
|
G0
|
B4
|
B3
|
B2
|
B1
|
B0
|
| High byte (MSB)
|
Low byte (LSB)
|
| D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
Data / Address / Page_ID / Location Values Configuration
64bit number value
| D63...D56
|
D55...D48
|
D47...D40
|
D39...D32
|
D31...D24
|
D23...D16
|
D15...D8
|
D7...D0
|
| Byte7 (MSB)
|
|
|
|
|
|
|
Byte0 (LSB)
|
| D7...D0
|
D7...D0
|
D7...D0
|
D7...D0
|
D7...D0
|
D7...D0
|
D7...D0
|
D7...D0
|
32bit number value
| D31...D24
|
D23...D16
|
D15...D8
|
D7...D0
|
| Byte3 (MSB)
|
|
|
Byte0 (LSB)
|
| D7...D0
|
D7...D0
|
D7...D0
|
D7...D0
|
16bit number value
| D15...D8
|
D7...D0
|
| High Byte (MSB)
|
Low Byte (LSB)
|
| D7...D0
|
D7...D0
|
String value
| D7...D0
|
D7...D0
|
| Strings are stored Byte by Byte starting from the lower address.
The terminator (0x00) is placed at the highest address.
The start address of a string is always even and aligned to a 128 Byte boundary.
|
Commands Summary
| Functions
|
Command Name
|
Code
|
Description
|
| Config / Status Commands
|
hand_shake
|
0x30
|
Read a Hand Shake
|
| read_ver
|
0x31
|
Read firmware version
|
| read_pg_id
|
0x32
|
Read Current page ID
|
| touch_response
|
0x72 / 0x73 / 0x77 / 0x78 / 0x79
|
see also set_sys_config
|
| set_sys_config
|
0xE0
|
System parameter configuration and Baud Rate
|
| sel_project
|
0xE1
|
Specify operating project folder
|
| touch_calib
|
0xE4
|
Touch panel calibration
|
| screen_saver
|
0x5E
|
Screen saver (backlight dim down time out)
|
| backlight_ctrl
|
0x5F
|
backlight brightness control (64 levels)
|
| buzzer_touch_sound
|
0x79
|
buzzer enable time length (in 10ms step)
|
| Buzzer_ctrl
|
0x7A
|
Buzzer control
|
| Flash_write
|
0x90
|
Write data to the flash
|
| Flash_read
|
0x91
|
Read data from the flash
|
| RTC_set
|
0x9C
|
Set the RTC
|
| RTC_read
|
0x9B
|
Read the RTC values
|
| USR_bin_read
|
0x93
|
Read data from the USR_bin
|
| Ymodem_mode
|
0x96
|
Enter Ymodem Transfer mode
|
| Checksum_calculate
|
0x97
|
Calculate the file Checksum by filename and path
|
| u_drv_format
|
0xE2
|
Format the u_drive
|
| u_drv_unlock
|
0xE3
|
Unlock the u_drive with pre-stored password
|
| Display Control / Draw Commands
|
disp_page
|
0x70
|
Display a pre-stored TML file (page)
|
| set_element_fg
|
0x7E
|
Set the foreground color of STR, N16, N32 or N64
|
| set_element_bg
|
0x7F
|
Set the background color of STR, N16, N32 or N64
|
| set_codepage
|
0xE7
|
Sets country character set and code-page character set
|
| suspend_vp_fresh
|
0xE8
|
Set the screen to pause the refresh and deactivate the touchkey or release the pause to refresh and enable the touchkey
|
| VP Commands
|
Successive_write
|
0x82
|
Write successive value to VP_N16, VP_N32, VP_N64
|
| Successive_read
|
0x83
|
Read successive value from VP_N16, VP_N32, VP_N64
|
| STR_write
|
0x42
|
Write string to VP_STR
|
| STR_read
|
0x43
|
Read string form VP_STR
|
| STR_fill
|
0x46
|
Fill strings to the VP_STR
|
| N16_write
|
0x3D
|
Write 16bit (signed integer) value to VP_N16
|
| N16_read
|
0x3E
|
Read 16bit (signed integer) value from VP_N16
|
| N16_fill
|
0x3F
|
Fill numbers to the VP_N16
|
| N32_write
|
0x44
|
Write 32bit (signed integer) value to VP_N32
|
| N32_read
|
0x45
|
Read 32bit (signed integer) value from VP_N32
|
| N32_fill
|
0x47
|
Fill numbers to the VP_N32
|
| N64_write
|
0x48
|
Write 64bit (signed integer) value to VP_N64
|
| N64_read
|
0x49
|
Read 64bit (signed integer) value from VP_N64
|
| N64_fill
|
0x4A
|
Fill numbers to the VP_N64
|
| BP1_write
|
0x4B
|
Write bit-map (1bpp) data to VP_BP1
|
| BP1_write_comp
|
0x4C
|
Write compressed bit-map (1bpp) data to VP_BP1
|
| G16_write
|
0x4D
|
Write 16bit (signed integer) graphic array to VP_G16
|
| G16_write_rotate
|
0x4E
|
Rotate the VP_G16 array data inside the module and write a 16bit (signed integer) value into end-of-array
|
| System Register Write
|
0x3B
|
Write System Register
|
| System Register Read
|
0x3C
|
Read System Register
|
| VP_Backup
|
0x94
|
VP Backup to Flash space or VP Restore form Flash space
|
| VP_Preload
|
0x95
|
VP value preload from usr.bin
|
Commands Details
Config / Status Commands
hand_shake (0x30)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
30
|
--
|
CC 33 C3 3C
|
e.g. [host]: AA 30 CC 33 C3 3C
e.g. [LCM]: AA 30 54 6F 70 77 61 79 20 48 4D 54 20 52 65 61 64 79 00 CC 33 C3 3C (return "Topway HMT Ready" in ASCII)
read_ver (0x31)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
31
|
--
|
CC 33 C3 3C
|
e.g. [host]: AA 31 CC 33 C3 3C
e.g. [LCM]: AA 31 31 2E 31 32 CC 33 C3 3C (return "1.12" in ASCII)
read_pg_id (0x32)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
32
|
Nil or ID:2
|
CC 33 C3 3C
|
e.g. [host]: AA 32 CC 33 C3 3C
e.g. [LCM]: AA 32 00 01 CC 33 C3 3C (current page's ID is 0x0001)
touch_response (0x72/0x73)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
72/73
|
X:2 Y:2
|
CC 33 C3 3C
|
e.g. [LCM]: AA 72 00 32 00 64 CC 33 C3 3C (touch release coordinate is(50,100))
e.g. [LCM]: AA 73 00 32 00 64 CC 33 C3 3C (touch down coordinate is(50,100))
data_entered (0x77)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
77
|
Addr_ID:4 Data:2/4/8/n
|
CC 33 C3 3C
|
e.g. [LCM]: AA 77 00 02 00 00 00 00 00 32 CC 33 C3 3C (Addr_ID 0x020000's 32bit data is 0x0000 0032)
note. please refer to Editor description about Addr_ID and Data size
touch_response (0x78/79)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
78/79
|
Page_ID:2 TPK_ID:1
|
CC 33 C3 3C
|
e.g. [LCM]: AA 78 00 02 01 CC 33 C3 3C (PAGE:0x0002 TPK:0x01 key up)
e.g. [LCM]: AA 79 00 02 01 CC 33 C3 3C (PAGE:0x0002 TPK:0x01 key down)
set_sys_config (0xE0)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
E0 55 AA 5A A5
|
BaudRate:1 sys_par1:1 sys_par2:1
|
CC 33 C3 3C
|
e.g. [host]:AA E0 55 AA 5A A5 07 83 00 CC 33 C3 3C (config baud rate to 152000, and enable TPK response (the most common setting))
note. Baud rate will back to project default setting after next power on
Set_project (0xE1)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
E1
|
Prj_ID:1
|
CC 33 C3 3C
|
e.g. [host]: AA E1 01 CC 33 C3 3C (switch to project 0x01, (THMT01 folder))
Touch_calib (0xE4)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
E4 55 AA 5A A5
|
--
|
CC 33 C3 3C
|
e.g. [host]: AA E4 55 AA 5A A5 CC 33 C3 3C (start touch calibration)
screen_saver (0x5E)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
5E
|
Time:2 Level:1
|
CC 33 C3 3C
|
e.g. [host]: AA 5E 00 0A 00 CC 33 C3 3C (after 10sec of idel, backlight down to 0)
Backlight_ctrl (0x5F)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
5F
|
Level:1
|
CC 33 C3 3C
|
e.g. [host]: AA 5F 3F CC 33 C3 3C (adjust the backlight to highest level 0x3f)
Buzzer_touch_sound (0x79)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
79
|
Time(in10ms):1
|
CC 33 C3 3C
|
e.g. [host]: AA 79 01 CC 33 C3 3C (adjust the buzzer beeping duration to 0x01= 1x10ms)
Buzzer_ctrl (0x7A)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
7A
|
Loops:1 T1:1 T2:1 Freq1:1 Freq2:1
|
CC 33 C3 3C
|
e.g. [host] : AA 7A 10 0A 08 05 32 CC 33 C3 3C (sound the buzzer beeping 16loops of 1sec 500Hz ⇒ 0.8sec 5kHz
Flash_write (0x90)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
90
|
ADDR:4 Len:2 Data:n
|
CC 33 C3 3C
|
e.g. [host]: AA 90 00 00 00 00 00 02 30 31 CC 33 C3 3C (start form user flash area address 0x0000000 write 2bye of data 0x30 & 0x31)
note. it is a must to ensure the power supply during the write process
Flash_read (0x91)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
91
|
DDR:4 Len:2 or Data:n
|
CC 33 C3 3C
|
e.g. [host]: AA 91 00 00 00 00 00 02 CC 33 C3 3C (read 2byte start form address 0x0000000)
e.g. [LCM]: AA 91 30 31 CC 33 C3 3C (return of two byte data 0x30 0x31)
RTC_set (0x9C)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
9C
|
YYMMDDHHMMSS:6
|
CC 33 C3 3C
|
e.g. [host]: AA 9C 0E 07 0A 17 3B 30 CC 33 C3 3C (set the real time clock to 2014 - 07- 10 23:59:48)
RTC_read (0x9B)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
9B
|
-- or YYMMDDHHMMSS:6
|
CC 33 C3 3C
|
e.g. [host]: AA 9B CC 33 C3 3C (ask for full data time)
e.g. [LCM]: AA 9B 0E 07 0B 00 01 12 CC 33 C3 3C (return the day and time 2014-07-11 00:01:18)
Usr_bin_read (0x93)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
93
|
ADDR:4 Len:2 or Data:n
|
CC 33 C3 3C
|
e.g. [host]: AA 93 00 00 00 00 00 02 CC 33 C3 3C (request for 2 byte of data form the preloaded usr.bin file at address 0x0000 0000)
e.g. [LCM]: AA 93 30 31 CC 33 C3 3C (return 2byte of requested data 0x30 0x31)
Ymodem_transmit (0x96)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
96
|
55 AA 5A A5
|
CC 33 C3 3C
|
e.g. [host]: AA 96 55 AA 5A A5 CC 33 C3 3C (Enter the Ymodem Transfer mode)
note. Screen display "Ymodem start" and serial port will start to receive.
note. Transmission waiting time <200s, overtime display "End / Please reset the System"
Checksum_calculate (0x97)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
97
|
FileName(w_path):32 or FileName(w_path):32 checksum:4
|
CC 33 C3 3C
|
e.g. [host]: AA 97 FileName(w_path) CC 33 C3 3C (Calculates the checksum of a specified file)
e.g. [LCM]: AA 97 FileName(w_path) 87 65 43 21 CC 33 C3 3C (response the checksum of a specified file)
note. FileName(w_path) is case insensitive; FileName(w_path) less than 32bytes should fill 00
note. 1st character = 1st char of the FileName(w_path)
U_drv_format (0xE2)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
E2
|
55 AA 5A A5
|
CC 33 C3 3C
|
e.g. [host]: AA E2 55 AA 5A A5 CC 33 C3 3C (format the whole internal flash memory space)
U_drv_unlock (0xE3)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
E3
|
PWD:n
|
CC 33 C3 3C
|
e.g. [host]: AA E3 30 31 32 33 34 35 36 00 CC 33 C3 3C (send a password "0123456" to un-lock the USB interface for file access)
note: password defined in the display project by using editor, where password string should end with "\0"
Display Control / Draw Commands
Disp_page (0x70)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
70
|
Page_id:2
|
CC 33 C3 3C
|
e.g. [host]: AA 70 00 01 CC 33 C3 3C (show page 0x0001)
Set_element_fg (0x7E)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
7E
|
Element_type:1 Page_ID:2 Element_ID:1 color:2 0x00
|
CC 33 C3 3C
|
e.g. [host]: AA 7E 00 00 03 05 FF FF 00 CC 33 C3 3C (change the STR_ID=0x05's foreground to white in Page_ID=0x0003)
Set_element_bg (0x7F)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
7F
|
Element_type:1 Page_ID:2 Element_ID:1 color:2 0x00
|
CC 33 C3 3C
|
e.g. [host]: AA 7F 00 00 03 05 00 00 00 CC 33 C3 3C (change the STR_ID=0x05's foreground to (non-transparent) black in Page_ID=0x0003)
Set_codepage (0xE7)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
E7
|
Country:1 Codepage:1
|
CC 33 C3 3C
|
e.g. [host]: AA E5 03 07 CC 33 C3 3C switch the ASCII to German, Extended Codepage as 866 (OEM - Russian)
Suspend_vp_reflesh (0xE8)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
E8
|
55 AA 5A A5 mode:1
|
CC 33 C3 3C
|
e.g. [host]: AA E8 55 AA 5A A5 01 CC 33 C3 3C (pause the refresh and deactivate the touch key; mode=00 for release the pause)
VP Commands
Successive_write (0x82)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
82
|
VP_Add:4 Len:1 Value:n
|
CC 33 C3 3C
|
e.g. [host]: AA 82 00 08 00 00 03 00 00 11 11 22 22 CC 33 C3 3C (Write 3 successive 16bit value to VP_N16 address 0x0008 0000)
e.g. [host]: AA 82 00 02 00 00 02 55 55 55 55 66 66 66 66 CC 33 C3 3C (Write 2 successive 32bit value to VP_N32 address 0x0002 0000)
Successive_read (0x83)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
83
|
VP_Add:4 Len:1 or Value:n
|
CC 33 C3 3C
|
e.g. [host]: AA 83 00 08 00 00 03 CC 33 C3 3C (Read 3 sucessive 16bit value from VP_N16 address start at 0x0008 0000)
e.g. [host]: AA 83 00 02 00 00 02 CC 33 C3 3C (Read 2 sucessive 32bit value from VP_N32 address start at 0x0002 0000)
STR_write (0x42)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
42
|
VP_Add:4 Text:n
|
CC 33 C3 3C
|
e.g. [host]: AA 42 00 00 00 80 54 4F 50 57 41 59 00 CC 33 C3 3C (write string “TOPWAY“ to VP_STR address 0x0000 0080)
note. string should end with "\0"
STR_write (0x43)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
43
|
VP_Add:4 or Text:n
|
CC 33 C3 3C
|
e.g. [host]: AA 43 00 00 00 80 CC 33 C3 3C (request for VP_STR address 0x0000 0080 content value)
e.g. [LCM]: AA 43 54 4F 50 57 41 59 00 CC 33 C3 3C (the feedback content value is "TOPWAY")
note. string should end with "\0"
STR_fill (0x46)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
46
|
VP_Add:4 Len:2 Text:n
|
CC 33 C3 3C
|
e.g. [host]: AA 46 00 00 00 80 00 03 54 4F 50 57 41 59 00 CC 33 C3 3C (fill 0x0003 VP_STR as "TOPWAY" Start form the VP_STR address 0x00000080)
note. string should end with "\0"
N16_write (0x3D)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
3D
|
VP_Add:4 Value:2
|
CC 33 C3 3C
|
e.g. [host]: AA 3D 00 08 00 00 00 32 CC 33 C3 3C (write a 16bit value 0x0032 into VP_N16 address 0x0008 00000)
N16_read (0x3E)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
3E
|
VP_Add:4 Value:2
|
CC 33 C3 3C
|
e.g. [host]: AA 3E 00 08 00 00 CC 33 C3 3C (read VP_N16 address 0x0008 0000's 16bit data content)
e.g. [LCM]: AA 3E 00 32 CC 33 C3 3C (feed back the VP_N16 content value 0x0032)
N16_fill (0x3F)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
3F
|
VP_Add:4 Len:2 Value:2
|
CC 33 C3 3C
|
e.g. [host]: AA 3F 00 08 00 00 00 03 00 32 CC 33 C3 3C (fill 0x0003 VP_N16 with 0x0032 start form VP_N16 address 0x0008 0000)
N32_write (0x44)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
44
|
VP_Add:4 Value:4
|
CC 33 C3 3C
|
e.g. [host]: AA 44 00 02 00 00 00 00 00 32 CC 33 C3 3C (write a 32bit value 0x0000 0032 into VP_N32 address 0x0002 0000)
N32_read (0x45)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
45
|
VP_Add:4 or Value:4
|
CC 33 C3 3C
|
e.g. [host]: AA 45 00 02 00 00 CC 33 C3 3C (read VP_N32 address 0x0002 0000's 32bit data content)
e.g. [LCM]: AA 45 00 00 00 32 CC 33 C3 3C (feed back the VP_N32 content value 0x0000 0032)
N32_fill (0x47)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
47
|
VP_Add:4 Len:2 Value:2
|
CC 33 C3 3C
|
e.g. [host]: AA 47 00 02 00 00 00 03 00 00 00 32 CC 33 C3 3C (fill 0x0003 VP_N32 with 0x0000 0032 start form VP_N32 address 0x0002 0000)
N64_write (0x48)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
48
|
VP_Add:4 Value:8
|
CC 33 C3 3C
|
e.g. [host]: AA 48 00 03 00 00 00 00 00 00 00 00 00 32 CC 33 C3 3C (write a 64bit value 0x0000 0000 0000 0032 into VP_N64 address 0x0003 0000)
N64_read (0x49)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
49
|
VP_Add:4 or Value:8
|
CC 33 C3 3C
|
e.g. [host]: AA 49 00 03 00 00 CC 33 C3 3C (read VP_N64 address 0x0003 0000's 64bit data content)
e.g. [LCM]: AA 49 00 00 00 00 00 00 00 32 CC 33 C3 3C (feed back the VP_N64 content value 0x0000 0000 0000 0032)
N64_fill (0x4A)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
4A
|
VP_Add:4 Len:2 Value:8
|
CC 33 C3 3C
|
e.g. [host]: AA 4A 00 03 00 00 00 03 00 00 00 00 00 00 00 32 CC 33 C3 3C (fill 0x0003 VP_N64 with 0x0000 0000 0000 0032 start form VP_N64 address 0x0003 0000)
BP1_write (0x4B)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
4B
|
VP_Add:4 Len:4
|
CC 33 C3 3C
|
e.g. [host]: AA 4B 00 04 00 00 00 00 02 00 CC 33 C3 3C + 512byte data... (fill 512 byte of graphics data (1bpp) in to BP1 address 0x0004 0000)
BP1_write_comp (0x4C)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
4C
|
VP_Add:4 Len:4
|
CC 33 C3 3C
|
e.g. [host]: AA 4C 00 04 00 00 00 00 02 00 CC 33 C3 3C +512byte data... (fill 512 byte of compressed graphics data (1bpp) in to BP1 address 0x0004 0000)
G16_write (0x4D)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
4D
|
VP_Add:4 Len:2 Value:2n
|
CC 33 C3 3C
|
e.g. [host]: AA 4D 00 06 00 00 00 02 00 32 00 33 CC 33 C3 3C (fill 0x0002 16bit graph data(0x0032, 0x0033) into G16 address 0x0006 0000)
G16_write_rotate (0x4E)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
4E
|
VP_Add:4 Size:2 Data:2
|
CC 33 C3 3C
|
e.g. [host]: AA 4E 00 06 00 00 00 32 00 33 CC 33 C3 3C (place rotate 0x0032 of G16 forward which address 0x0006 0000 and place 0x0033 at the last)
System_register_write (0x3B)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
3B
|
VP_Add:4 Data:1
|
CC 33 C3 3C
|
e.g. [host]: AA 3B 00 FF FF 00 01 CC 33 C3 3C (start the timer_ctrl0 as count down mode)
System_register_read (0x3C)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
3C
|
VP_Add:4
|
CC 33 C3 3C
|
e.g. [host]: AA 3C 00 FF FF 00 CC 33 C3 3C (read the timer_ctrl status value)
VP_Backup (0x94)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
94
|
Dir:1 FlashAdd:4 VP_Add:4 LEN:2
|
CC 33 C3 3C
|
e.g. [host]: AA 94 01 00 00 00 00 00 08 00 00 00 06 CC 33 C3 3C (restore 6xVP_N16 form the backuped value located at Flash Address 0x000000 to VP_N16 start from 0x080000)
note. Dir=1(VP Restore); Dir=0(VP Backup); FlashAdd=0x000000~0x3FFFFF; LEN=0x0001~0x8000
note. Random data may be restore, before the first time VP backup operation
VP_Preload (0x95)
| Header
|
Command
|
Data:no_of_byte
|
Tail
|
| AA
|
95
|
Dir:1 FileAdd:4 VP_Add:4 LEN:2
|
CC 33 C3 3C
|
e.g. [host]: AA 95 01 00 00 00 00 08 00 00 00 06 CC 33 C3 3C (preload 6xVP_N16 form the usr.bin located at File Address start at 0x000000 to VP_N16 start from 0x080000)
note. Dir=01(dummyvalue); FileAdd=0x000000~0x3FFFFF; LEN=0x0001~0x8000
note. If usr.bin is invalid, VP may not be update correctly