
ST52F510/F513/F514
32/106
Figure 4.1 Commands and Data Communication Sequences
Programming mode start sequence
The generic procedure of commands execution,
with the data communication in both directions is
displayed in Figure 4.1.
Remark:
the Slave Address1010000 mustbe sent
after a Stop (i.e. each time the data direction
changes, to specifythe R/W bit). For example: if a
command to send data to the device has been
executed, a command for receiving data must be
followed bythe slaveaddress and theR/W bit must
be set to 1. The Programming Mode code doesn’t
need to be specified again .
Warning:
After entering the Programming Mode,
the currentlypointed address is the Page 48, Block
3, byte 0 (Lock Byte).
The
Programming Mode is showed in Table 4.2
list
of
the
available
commands
in
4.2.2 Fast Programming procedure.
The
fastest way to program the device memory is the
use ofthe FastBlockWritecommand. Thefollowing
procedure can be used to writethe memory with a
new program and new data, starting from the first
memory location:
1.
The Programming Mode is entered with the
sequence described above
2.
The memory is erased (all bits are put to 0)
with the GlobalErase command. The device
holds the SCL line low, releasing it after the
command is completed (about 2 ms). This
command also unlocks the device if locked.
3.
The FastBlockWrite command is sent and the
device acknowledges it
4.
The 32 bytes of data to be written in the first
memory Block are sent in a sequence. The
device acknowledges each of them
5.
After the device acknowledges the32nd byte,
it holds the SCL line until theparallel writing of
the 32 byte is completed (about 2.5 ms)
The Block Pointer is incremented by sending
the IncBlock command
The procedure is repeated from point 3 until
there is data to be sent to the memory
6.
7.
Note:
the Block Pointer assumes values between
0 to 7 (there are 8 blocks in a page). When the
Block Pointer is equal to 7, the IncBlock command
puts this pointer to 0 and increments the Page
Pointer. The Page Pointer, after page writing is
completed, does’t have to be incremented in the
procedure above described.
4.2.3 Random data writing.
A single byte can be
written in a specified memory location by using the
following procedure:
1.
The Programming Mode is entered with the
sequence described in Section 4.2.1
2.
The SetPage command is sent, followed by
the page number where the data should be
written
3.
The ByteWrite command is sent followed by
two bytes
4.
The firstbytes that follows the ByteWrite com-
mand is the address inside the pointed page
where the data must be written.
5.
The second byte is the data to be written
6.
The deviceheld theSCL line low until thedata
is not stored in the memory (about 4.5 ms: 2
ms for erasing and 2.5 for writing)
Execution of commands for writing data:
Execution of commands for reading data:
S=Start, P=Stop, A=Acknowledge, NA=Non-acknowledge
From Slave to Master
From Master to Slave
S
1010000
0
A
00000000
A
Command
A
Data1
A
.....
DataN
A
P
Command
A
Data1
A
.....
DataN
A
Command
A
Data1
A
.....
DataN
A
P
Command
A
Address
A
P
S
1010000
1
A
Data read NA
P