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