Example
AT89C51CC03 CAN Bootloader
Programming Data (write 55h from 0000h to 0008h in the flash)
identifier control
data
HOST
BOOTLOADER
Id_prog_start
Id_prog_start
05 00 00 00 00 08
00
HOST
BOOTLOADER
HOST
BOOTLOADER
Id_prog_data
Id_prog_data
Id_prog_data
Id_prog_data
08 55 55 55 55 55 55 55 55
01 02 // command_new_data
01 55
01 00 // command_ok
Programming Data (write 55h from 0000h to 0008h in the flash), with SSB i
identifier control
data
HOST
BOOTLOADER
Id_prog_start
Id_error
04 00 00 00 08
01 00 // error_security
Reading the Flash or
EEPROM Data
Requests from Host
Answers from
Bootloader
The flow described below allows the user to read data in the Flash memory or in the EEPROM
data memory. A blank check command on the Flash memory is possible with this flow.
This operation can be executed only with a device previously opened in communication.
To start the reading operation, the Host sends a “Display Data” CAN message (Id_display_data)
with the area memory selected, the start address and the end address passed in parameter.
The device splits into block of 8 bytes data to transfer to the Host if the number of data to display
is greater than 8 data bytes.
Note:
Identifier
Length data[0]
data[1]
data[2]
00h
ID_DISPLAY_DATA
5
01h
address_start
02h
1. Data[0] selects the area to read and the operation
- 00h: Display Flash
- 01h: Blank Check on the Flash
- 02h: Display EEPROM data
2. The address_start gives the start address to read.
3. The address_end gives the last address to read.
data[3]
data[4]
address_end
The device has two possible answers:
• If the chip is protected from read access a “Error” CAN message is sent (see Section “Error
Message Description”).
• Otherwise:
for a display command the device start to send the data up to 8 by frame to the host. for a
blank check command the device send a result ok or the first address not erased.
Answer to a read command:
Identifier
ID_DISPLAY_DATA
Length
n
data[n]
x
15
4251B–CAN–03/08