C8051F587-IMR Silicon Labs, C8051F587-IMR Datasheet - Page 138
![no-image](/images/no-image-200.jpg)
C8051F587-IMR
Manufacturer Part Number
C8051F587-IMR
Description
8-bit Microcontrollers - MCU 50 MIPS 96 kB 8 kB SPI 2xUART
Manufacturer
Silicon Labs
Datasheet
1.C8051F585-IQR.pdf
(356 pages)
Specifications of C8051F587-IMR
Rohs
yes
Core
8051
Data Bus Width
8 bit
Processor Series
C8051
- Current page: 138 of 356
- Download datasheet (3Mb)
C8051F58x/F59x
15. Flash Memory
On-chip, re-programmable Flash memory is included for program code and non-volatile data storage. The
Flash memory can be programmed in-system, a single byte at a time, through the C2 interface or by soft-
ware using the MOVX instruction. Once cleared to logic 0, a Flash bit must be erased to set it back to
logic 1. Flash bytes would typically be erased (set to 0xFF) before being reprogrammed. The write and
erase operations are automatically timed by hardware for proper execution; data polling to determine the
end of the write/erase operation is not required. Code execution is stalled during a Flash write/erase oper-
ation. Refer to Table 5.5 for complete Flash memory electrical characteristics.
15.1. Programming The Flash Memory
The simplest means of programming the Flash memory is through the C2 interface using programming
tools provided by Silicon Labs or a third party vendor. This is the only means for programming a non-initial-
ized device. For details on the C2 commands to program Flash memory, see Section “30. C2 Interface” on
page 349.
To ensure the integrity of Flash contents, the on-chip V
Monitor must be enabled and set to the high
DD
threshold when executing code that writes and/or erases Flash memory from software. See Section 15.4
for more details. Before performing any Flash write or erase procedure, set the FLEWT bit in Flash Scale
register (FLSCL) to 1. Also, note that 8-bit MOVX instructions cannot be used to erase or write to Flash
memory at addresses higher than 0x00FF.
15.1.1. Flash Lock and Key Functions
Flash writes and erases by user software are protected with a lock and key function. The Flash Lock and
Key Register (FLKEY) must be written with the correct key codes, in sequence, before Flash operations
may be performed. The key codes are: 0xA5, 0xF1. The timing does not matter, but the codes must be
written in order. If the key codes are written out of order, or the wrong codes are written, Flash writes and
erases will be disabled until the next system reset. Flash writes and erases will also be disabled if a Flash
write or erase is attempted before the key codes have been written properly. The Flash lock resets after
each write or erase; the key codes must be written again before a following Flash operation can be per-
formed. The FLKEY register is detailed in SFR Definition 15.2.
15.1.2. Flash Erase Procedure
The Flash memory can be programmed by software using the MOVX write instruction with the address and
data byte to be programmed provided as normal operands. Before writing to Flash memory using MOVX,
Flash write operations must be enabled by doing the following: (1) setting the PSWE Program Store Write
Enable bit (PSCTL.0) to logic 1 (this directs the MOVX writes to target Flash memory); and (2) Writing the
Flash key codes in sequence to the Flash Lock register (FLKEY). The PSWE bit remains set until cleared
by software.
A write to Flash memory can clear bits to logic 0 but cannot set them; only an erase operation can set bits
to logic 1 in Flash. A byte location to be programmed should be erased before a new value is written.
The Flash memory is organized in 512-byte pages. The erase operation applies to an entire page (setting
all bytes in the page to 0xFF). To erase an entire 512-byte page, perform the following steps:
1. Disable interrupts (recommended).
2. If erasing a page in Banks 1, 2, or 3, set the COBANK[1:0] bits (register PSBANK) for the appropriate
bank.
3. Set the PSEE bit (register PSCTL).
4. Set the PSWE bit (register PSCTL).
5. Write the first key code to FLKEY: 0xA5.
6. Write the second key code to FLKEY: 0xF1.
7. Using the MOVX instruction, write a data byte to any location within the 512-byte page to be erased.
138
Rev. 1.2
Related parts for C8051F587-IMR
Image
Part Number
Description
Manufacturer
Datasheet
Request
R
![CP2102EK](/photos/9/3/90395/cp2102ek_tmb.jpg)
Part Number:
Description:
KIT EVALUATION FOR CP2102
Manufacturer:
Silicon Laboratories Inc
Datasheet:
![CP2103EK](/photos/9/6/90669/cp2103ek_tmb.jpg)
Part Number:
Description:
KIT EVAL FOR CP2103 USB TO UART
Manufacturer:
Silicon Laboratories Inc
Datasheet:
![CP2201EK](/photos/9/9/90977/cp2201ek_tmb.jpg)
Part Number:
Description:
KIT EVAL FOR CP2201 ETH CTRLR
Manufacturer:
Silicon Laboratories Inc
Datasheet:
![CAPTOUCHSENSEDC](/photos/9/20/92001/captouchsensedc_tmb.jpg)
Part Number:
Description:
DAUGHTER CARD CAP TOUCH SENSE
Manufacturer:
Silicon Laboratories Inc
Datasheet:
![CAPTOUCHSENSESK](/photos/9/20/92002/captouchsensesk_tmb.jpg)
Part Number:
Description:
KIT STARTER CAP TOUCH SENSE
Manufacturer:
Silicon Laboratories Inc
Datasheet:
![C8051F320DK](/photos/9/20/92068/c8051f320dk_tmb.jpg)
Part Number:
Description:
DEV KIT FOR C8051F320/F321
Manufacturer:
Silicon Laboratories Inc
Datasheet:
![C8051F120DK](/photos/9/20/92070/c8051f120dk_tmb.jpg)
Part Number:
Description:
DEVKIT-F120/21/22/23/24/25/26/27
Manufacturer:
Silicon Laboratories Inc
Datasheet:
![C8051F310DK](/photos/9/23/92300/c8051f310dk_tmb.jpg)
Part Number:
Description:
DEV KIT FOR C8051F310/F311
Manufacturer:
Silicon Laboratories Inc
Datasheet:
![C8051F226DK](/photos/9/23/92302/c8051f226dk_tmb.jpg)
Part Number:
Description:
DEV KIT F220/221/226/230/231/236
Manufacturer:
Silicon Laboratories Inc
Datasheet:
![C8051F300DK](/photos/9/23/92305/c8051f300dk_tmb.jpg)
Part Number:
Description:
DEV KIT F300/301/302/303/304/305
Manufacturer:
Silicon Laboratories Inc
Datasheet:
![C8051F330DK](/photos/9/23/92306/c8051f330dk_tmb.jpg)
Part Number:
Description:
DEV KIT FOR C8051F330/F331
Manufacturer:
Silicon Laboratories Inc
Datasheet:
![C8051F005DK](/photos/9/23/92307/c8051f005dk_tmb.jpg)
Part Number:
Description:
DEV KIT FOR F005/006/007
Manufacturer:
Silicon Laboratories Inc
Datasheet:
![C8051F020DK](/photos/9/23/92314/c8051f020dk_tmb.jpg)
Part Number:
Description:
DEV KIT FOR F020/F021/F022/F023
Manufacturer:
Silicon Laboratories Inc
Datasheet:
![C8051F340DK](/photos/9/23/92323/c8051f340dk_tmb.jpg)
Part Number:
Description:
KIT DEV FOR C8051F34X
Manufacturer:
Silicon Laboratories Inc
Datasheet:
![C8051F410DK](/photos/9/23/92324/c8051f410dk_tmb.jpg)
Part Number:
Description:
KIT DEV FOR C8051F41X
Manufacturer:
Silicon Laboratories Inc
Datasheet: