| 数据搜索系统,热门电子元器件搜索 |
|
PM0051 数据表(PDF) 21 Page - STMicroelectronics |
|
|
|||||||||||||||||||||||||||||
PM0051 数据表(HTML) 21 Page - STMicroelectronics |
|
21 / 27 page ![]() PM0051 Programming STM8 Flash microcontrollers Doc ID 14614 Rev 3 21/27 The following sequence is required to perform a word program operation: 1. Unlock the memory if not already done. The UBC option byte can be read to check if the word you want to program is not in the UBC area. If necessary, reprogram it to allow programming the targeted word. 2. Write 0x40 in FLASH_CR2 (WP bit active), and 0xBF in FLASH_NCR2 (NWP bit active). 3. Write the 4 data bytes to the memory starting with the very first address of the word to be programmed. The programming cycle starts automatically when the 4 bytes have been written. 4. Check the WR_PG_DIS bit in FLASH_IAPSR to verify if the word you attempted to program was not write-protected (optional). 5. To check if the program operation is complete, poll the EOP bit in FLASH_IAPSR register for the end of operations. EOP is set to ‘1’ when the word program operation has completed. To avoid polling the EOP bit, an interrupt can be generated when EOP is set. Caution: FLASH_CR2 and FLASH_NCR2 must be written consecutively to be taken into account. If only one register is set, both are forced to their reset values, causing the program operation to be performed at byte level. Caution: EOP and WR_PG_DIS bits are cleared by reading the FLASH_IAPSR register. It is consequently strongly recommended to perform one single read operation to the FLASH_IAPSR register to check the values of these bits. Caution: If a word program operation is interrupted by a reset, the data programmed in the memory may be corrupted. 4.4 Byte programming Both main program memory and data EEPROM can be programmed and erased at byte level. Byte programming is performed by executing a write instruction (ld, mov...) to an address in main program memory when the memory is unlocked. The write instruction initiates the erase/program cycle and any core access to the memory is blocked until the cycle has completed. This means that program execution from the Flash program memory is stopped until the end of the erase/program cycle. When a new byte program operation starts, EOP and WR_PG_DIS bits of FLASH_IAPSR register are automatically cleared. At the end of the program operation, the EOP bit in the FLASH_IAPSR register is set and the program execution restarts from the instruction following the write/erase instruction. Contrary to byte programming of the Flash program memory, the byte programming of data EEPROM with RWW feature (when available) does not stop program execution. The EOP bit can then be used in order to know if the previous operation has completed. To avoid polling the EOP bit, an interrupt can be generated when EOP is set. This bit is automatically reset when reading FLASH_IAPSR. The erase/program cycle lasts longer if the whole word containing the byte to be programmed is not empty because in this case an erase operation is performed automatically. If the word is empty, the erase operation is not performed. However, if a defined programming time is wanted, the FIX bit in the FLASH_CR1 register forces the |
|
|
链接网址 |
| ALLDATASHEET是否为您带来帮助? [ DONATE ] |
关于 Alldatasheet | 广告服务 | 联系我们 | 隐私政策 | 数据表链接 | 链接交换 | 制造商名单 All Rights Reserved©Alldatasheet.com |
| Russian : Alldatasheetru.com | Korean : Alldatasheet.co.kr | Spanish : Alldatasheet.es | French : Alldatasheet.fr | Italian : Alldatasheetit.com Portuguese : Alldatasheetpt.com | Polish : Alldatasheet.pl | Vietnamese : Alldatasheet.vn Indian : Alldatasheet.in | Mexican : Alldatasheet.com.mx | British : Alldatasheet.co.uk | New Zealand : Alldatasheet.co.nz |
|
Family Site : ic2ic.com |
icmetro.com |