C8051F700 EEPROM Module Overview

C8051F700 EEPROM Module Overview
Agenda
 C8051F700 block diagram
 C8051F700 device features
 EEPROM module overview
 Where to learn more
2
Introducing The C8051F700
 New patented capacitive touch sense
 True capacitance-to-digital converter
 Robust and responsive
 Easy to use
 High performance MCU




25 MHz 8051 CPU
Best in class ADC
16 kB flash
32 B data-EEPROM
 54 multi-function GPIO




3
User configured as digital or analog
Digital crossbar assigns pins
Up to 32 capacitive touch sense inputs
Available in TQFP64, TQFP48, and
QFN48 (7x7 mm) packages
C8051F700 Product Family Selection
25
FLASH
Memory
(bytes)
15kB
Data
EEPROM
(bytes)
32
25
15kB
32
25
16kB
-
Part Number
MIPS
(peak)
C8051F700-GQ
C8051F701-GQ
C8051F702-GQ
Serial Buses
Timers
(16-bit)
PCA
Chnls
Internal
Osc
512
Digital
Port I/O
Pins
54
UART, I2C, SPI
4
3
2%
Cap
Touch
Sense
Y
512
54
UART, I2C, SPI
4
3
2%
Y
-
512
54
UART, I2C, SPI
4
3
2%
Y
10-Bit
RAM
(bytes)
ADC0
Temp
Sensor
VREF
Comp.
Package
10-Bit
Y
Y
1
QFP64
QFP64
QFP64
Y
Y
1
C8051F703-GQ
25
16kB
-
512
54
UART, I2C, SPI
4
3
2%
Y
-
1
QFP64
C8051F704-GQ
25
15kB
32
512
39
UART, I2C, SPI
4
3
2%
Y
10-Bit
Y
Y
1
QFP48
C8051F704-GM
25
15kB
32
512
39
UART, I2C, SPI
4
3
2%
Y
10-Bit
Y
Y
1
QFN48
C8051F705-GQ
25
15kB
32
512
39
UART, I2C, SPI
4
3
2%
Y
-
1
QFP48
C8051F705-GM
25
15kB
32
512
39
UART, I2C, SPI
4
3
2%
Y
-
1
QFN48
C8051F706-GQ
25
16kB
-
512
39
UART, I2C, SPI
4
3
2%
Y
10-Bit
Y
Y
1
QFP48
C8051F706-GM
25
16kB
-
512
39
UART, I2C, SPI
4
3
2%
Y
10-Bit
Y
Y
1
QFN48
C8051F707-GQ
25
16kB
-
512
39
UART, I2C, SPI
4
3
2%
Y
-
1
QFP48
C8051F707-GM
25
16kB
-
512
39
UART, I2C, SPI
4
3
2%
Y
-
1
QFN48
C8051F708-GQ
25
8kB
32
512
54
UART, I2C, SPI
4
3
2%
Y
10-Bit
C8051F709-GQ
25
8kB
32
512
54
UART, I2C, SPI
4
3
2%
Y
-
Y
Y
Y
Y
1
QFP64
1
QFP64
1
QFP64
C8051F710-GQ
25
8kB
-
512
54
UART, I2C, SPI
4
3
2%
Y
10-Bit
C8051F711-GQ
25
8kB
-
512
54
UART, I2C, SPI
4
3
2%
Y
-
C8051F712-GQ
25
8kB
32
512
39
UART, I2C, SPI
4
3
2%
Y
10-Bit
Y
C8051F712-GM
25
8kB
32
512
39
UART, I2C, SPI
4
3
2%
Y
10-Bit
Y
C8051F713-GQ
25
8kB
32
512
39
UART, I2C, SPI
4
3
2%
Y
-
1
QFP48
C8051F713-GM
25
8kB
32
512
39
UART, I2C, SPI
4
3
2%
Y
-
1
QFN48
1
QFP64
Y
1
QFP48
Y
1
QFN48
C8051F714-GQ
25
8kB
-
512
39
UART, I2C, SPI
4
3
2%
Y
10-Bit
Y
Y
1
QFP48
C8051F714-GM
25
8kB
-
512
39
UART, I2C, SPI
4
3
2%
Y
10-Bit
Y
Y
1
QFN48
C8051F715-GQ
25
8kB
-
512
39
UART, I2C, SPI
4
3
2%
Y
-
1
QFP48
C8051F715-GM
25
8kB
-
512
39
UART, I2C, SPI
4
3
2%
Y
-
1
QFN48
 24 unique part numbers




4
1
Choice flash size
Can select EEPROM (in larger flash size, EEPROM is traded for 1 kB flash)
ADC or no-ADC
Capacitive touch sense option
EEPROM
EEPROM Example
 Electrically Erasable Programmable Read-Only Memory
 Non-volatile program memory
 Retains contents when power is removed
 Byte erasable and byte writable memory
 Used for data storage vs. code storage found in flash memory
 Need a solution to store and update calibration parameters
 Integrated EEPROM interface alleviates the need to have an external device
 MCU can retrieve calibration constants on start up
 MCU can store real time information such as user data
EEPROM
Serial
Flash
UART
SMBus
SPI
CPU
PWM
Y Axis Motor
PWM
MCU
Example EEPROM Application
6
X Axis Motor
PWM
PCA
Motor parameters
Optics constants
Patient data
Serial Numbers
Calibration coefficients
Z Axis Motor
EEPROM Features
 32 bytes of non-volatile, erasable EEPROM data space
 Byte-programmable — byte reads and writes
 100,000 cycle endurance
 Accessed via two SFRs — EEADDR and EEDATA
 Can copy the complete 32-byte image between EEPROM space and volatile
space
 Provides hardware to avoid data corruption
 Auto-increment addressing
7
EEPROM RAM Access
 The EEPROM has a 32 byte RAM area to store the EEPROM contents.
 Step 1: Enable the EEPROM by setting EEEN bit in the EECNTL register
 Step 2: Write desired address to EEADDR register
 Step 3a (Read): Reading EEDATA gets the data from the RAM at the
address specified
 Step 3b (Write): Writing to EEDATA stores the data to the RAM at the
address specified
8
EEPROM Access
 The 32 byte RAM can be copied to the EEPROM or loaded from the EEPROM
 Step 1: Enable the EEPROM by setting EEEN bit in the EECNTL register
 Step 2: Read the EEPROM Protection State using EEPSTATE in the EEKEY register and verify
the security of the EEPROM
 Step 3: Write the EEKEY with the first value of 0x55
 Step 3: Write the EEKEY with the second value of 0xAA
 Step 4a (Read): Transfer EEPROM data to RAM using the EEREAD bit in the EECNTL register
 Step 4b (Write): Transfer the RAM data to the EEPROM using the EEWRITE bit in the EECNTL
register
9
EEPROM Address and Data Registers
 Indirect data access using the EEPROM address and data registers
 EEADDR[4:0] points to one of the 32 bytes of data stored in the nonvolatile memory
Bit
7
6
5
4
3
2
1
EEPROM Address Register
Name
EEADDR[4:0]
Description EEPROM Byte Address
Selects one of 32 EEPROM bytes to read/write.
EEPROM Data Register
Name
EEDATA[7:0]
Description EEPROM Data
Data to read and write to the EEPROM
10
0
EEPROM Control: EECNTL Register
 Enables the EEPROM
 Controls the transfer of data to the RAM array from the non-volatile memory
 Controls the transfer of data to the non-volatile memory to the RAM array
Bits
7
Name
Function
EEEN
EEPROM Enable
0: EEPROM control logic disabled.
1: EEPROM control logic enabled. Reads and writes can be performed.
6:4
Reserved
Reserved. Read = variable; Write = Don’t Care
3
Reserved
Reserved. Read = 0; Write = 0
2
EEREAD
EEPROM 32 Byte Read
0: Does nothing
1: 32 bytes of EEPROM data are read into the RAM
1
EEWRITE
EEPROM 32 Byte Write
0: Does nothing
1: 32 bytes of the RAM are written to the EEPROM
0
AUTOINC
Auto-Increment
0: Disable auto-increment
1: Enable auto-increment
11
EEPROM Protection: EEKEY Register
 RAM can only be downloaded to EEPROM after firmware writes a
sequence of two bytes to EEKEY
 Write the first EEPROM key code byte to EEKEY: 0x55
 Write the second EEPROM key code byte to EEKEY: 0xAA
12
EEPROM RAM Read/Write Code Example
 Step 1: Enable the EEPROM by
setting EEEN bit in the EECNTL
register and optionally can set the
auto-increment bit.
 Step 2: Write desired address to
EEADDR register
 Step 3a (Write): Writing to EEDATA
stores the data to the RAM at the
address specified
 Step 3b (Read): Reading EEDATA
gets the data from the RAM at the
address specified
Code examples can be found in the tools directory:
Silabs/MCU/examples\C8051F70x_71x
13
EEPROM NVRAM Read/Write Code Example
 The 32 byte RAM can be copied to
the EEPROM loaded from the
EEPROM
 Step 1: Enable the EEPROM by
setting EEEN bit in the EECNTL
register
 Step 2: Read the EEPROM
Protection State using EEPSTATE
in the EEKEY register and verify the
security of the EEPROM
 Step 3: Write the EEKEY with the
first value of 0x55
 Step 3: Write the EEKEY with the
second value of 0xAA
 Step 4a (Read): Transfer EEPROM
data to RAM using the EEREAD bit
in the EECNTL register
 Step 4b (Write): Transfer the RAM
data to the EEPROM using the
EEWRITE bit in the EECNTL
register
14
Learn More at the Education Resource Center
 Visit the Silicon Labs website to get more information on Silicon Labs
products, technologies and tools
 The Education Resource Center training modules are designed to get
designers up and running quickly on the peripherals and tools needed
to get the design done
 http://www.silabs.com/ERC
 http://www.silabs.com/mcu
 To provide feedback on this or any other training go to:
http://www.silabs.com/ERC and click the link for feedback
15
www.silabs.com/MCU