Preparation
Baud rate auto-detection
Send command DOWNLOAD_INIT
Receive Flash_Size
Download ash driver
Send command FIRMWARE_VERSION
Receive name of current software version
Flash_Size = 0x00000000
Send command REMOVE_DRIVER
Create save le Curr_Vers
i = 0
Send command READ_BLOCK
(block_size = 256, address = i * 256
Receive block number i
Checksum received =
Checksum calculated
Write block in le Curr_Vers
i++
i < Flash_Size/256
Yes
No
Yes
No
Yes
No
Close le Curr_Vers
Open le New_Vers
Calculate File_Size (in bytes)
Send command ERASE_ALL
File_Size < = Flash_Size
Yes
No
i = 0
Send command REMOVE_DRIVER
i++
Send command WRITE_BLOCK
(block_size = 256, address = i * 256)
Send the 256 bytes of block i
Read the 256 bytes of block i in le New_Vers
Yes
Select new ash driver
Select ash driver
No
Delay 100ms
Yes
No
Want to save current rmware?
RTS / CTS supported?
(RS-232 interface)
Yes
No
Enable RTS / CTS protocol in host
Send command
PROTOCOL_MODE
i < File_Size/256