3/104
TABLE OF CONTENTS
ST52F510/F513/F514
1 GENERAL DESCRIPTION .... . . .. .... ... .. . . .. .. . . . ... ... .. . . .. ... 7
1.1 Introduction . . . . . . . . . . .... . . . . .. . . . . . . . . . . . . . ... ... . ... ... . ... .. . . ... .. . .... . . .7
1.2 Functional Description . . .... . . .. .. .. .. . . . . . . . ... .... .... ... . ... .. . . . . . . . . . . . . . . .8
1.2.1 Memory Programming Mode . . . . . . . . . . . . . . . . . .... . . . .... .... .. . . . . . . . . . . . . . . 8
1.2.2 Working Mode. .... ... . . . . . . . . ... .. . . ... . ... .. . . . . .... . . . ... .. .. . . . . . ... . . 8
1.3Pin Description. . . . . . . . .... .... .. . . . . . . . . .... . ... ... . . . . . . . . . . . . . . . ... .. . .... . .14
2 INTERNAL ARCHITECTURE. . . . . . . . . . . . . .... . ... . . .... ... .. . . .. .. 15
2.1 Control Unit and Data Processing Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . .15
2.1.1 Program Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . . . ... .. .. . . . . . ... . 16
2.1.2 Flags. . . . . . . . . . . .... . . . . .. . . . . . . . . . . . . . ... ... . ... ... . ... .. . . ... .. . .... . 16
2.2 Arithmetic Logic Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . . . .... . . . . .. . . . . . . . . . . . . . .17
2.3 Register Description . . . . .... . . .. .. .. .. . . . . . . . ... .... .... ... . ... .. . . . . . . . . . . . . . .18
3 ADDRESSING SPACES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . ... 19
3.1Memory Interface. . . . . . .... .... .. . . . . . . . . .... . ... ... . . . . . . . . . . . . . . . ... .. . .... . .19
3.2 Register File . . . . . . . . . .... .... .. . . . . . . . . .... . ... ... . ... .. .. .. . . . . . ... .. . .... . .19
3.3 Program/Data Memory . . . . . . . . . . . . . . . . . . . . . . . . . . .... . . . .... .... .. . . . . . . . . . . . . . .19
3.4 System and User Stacks.... . . . . .. . . . . . . . . .... . ... ... . ... ... . . . . . . . . ... .. . .... . .21
3.5 Input Registers . . . . . . . . .... . . .. .. .. .. . . . . . . . ... .... .... ... . ... .. . . . . . . . . . . . . . .22
3.6 Output registers . . . . . . .... .... .. . . . . . . . . .... . ... ... . ... .. .. .. . . . . . ... .. . .... . .22
3.7 Configuration Registers & Option Bytes . . . . . . . .... . . . ... . . . . . . . . . . . . . . . .... . ... ... .22
4 MEMORY PROGRAMMING . . . . . . . . . . . . . .... .. . . ... . . . .... ... .. . . . 29
4.1Program/Data Memory Organization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . .29
4.2Memory Programming . . .... .... .. . .... .. . .... . ... .. .. .. . . . . . . . . . . . . ... .. . . ... . .30
4.2.1Programming Mode start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . 30
4.2.2Fast Programming procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . 31
4.2.3Random data writing . . . .... .. . . . . . . . . .... . ... ... . . . . . . . . . . . . . . . ... .. . .... . 31
4.2.4Option Bytes Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . .... ... . . . . . . . ... .. . . . 32
4.3Memory Verify . . . . . . . . .... .... .. . . . . . . . . .... . ... ... . . . . . . . . . . . . . . . ... .. . .... . .33
4.3.1Fast read procedure . . . . . . . . . . . . . . . . . . . . ... . . . . . . . . . .... ... . . . . . . . ... .. . . . 33
4.3.2Random data reading . . . . . . . . . . . . . . . . . . . ... . . . . . . . . . .... ... . . . . . . . ... .. . . . 34
4.4Memory Lock . . . . . . . . . .... . . . . .. . . . . . . . . . . . . . ... ... . ... ... . ... .. . . ... .. . .... . .34
4.5ID Code . . . .... . . ... . . . . . . . . . ... .. .. ... .. . ... .. .... .. .... . . . ... .. .. . . . . . ... . .35
4.6Error cases. . . . .... . ... ... . . . . . . . . . . . . . . . ... . ... .. . . . . .... . . . ... .. .. . . . . . ... . .35
4.7In-Situ Programming (ISP). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . .36
4.8In-Application Programming (IAP) . . . . . . . . . . . . . . ... . . . . . . . . . ... .. .. ... .. .. ... .. . ...36
4.8.1Single byte write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.8.2Block write . . . . . . . . . . . . . . . . . . . . . . . . . . . .... ... . . . . . . . ... .. . ... .. ... . . . . . . . 36
4.8.3Memory Corruption Prevention . . . . . . . . . . . . . . . . . . . . . .... .. . . . . . . ... ... . . . . . . . 36
4.8.4Option Bytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . . . .... .... .. . . . . . . . . . . . . . 37
4.8.5Input Register . . . . . . . . . . . . . . . . .... . ... ... . . . . . . . . ... .. . . . . . . ... ... . . . .... 37
TABLE OF
CONTENTS