C8051F986-GM Silicon Laboratories Inc, C8051F986-GM Datasheet - Page 3
![IC MCU 8BIT 8KB FLASH 24QFN](/photos/12/15/121587/c8051f9xx_24-qfn_sml.jpg)
C8051F986-GM
Manufacturer Part Number
C8051F986-GM
Description
IC MCU 8BIT 8KB FLASH 24QFN
Manufacturer
Silicon Laboratories Inc
Series
C8051F9xxr
Specifications of C8051F986-GM
Program Memory Type
FLASH
Program Memory Size
8KB (8K x 8)
Package / Case
24-UQFN Exposed Pad, 24-HUQFN
Core Processor
8051
Core Size
8-Bit
Speed
25MHz
Connectivity
SMBus (2-Wire/I²C), SPI, UART/USART
Peripherals
Brown-out Detect/Reset, POR, PWM, Temp Sensor, WDT
Number Of I /o
17
Ram Size
512 x 8
Voltage - Supply (vcc/vdd)
1.8 V ~ 3.6 V
Data Converters
A/D 10x12b
Oscillator Type
Internal
Operating Temperature
-40°C ~ 85°C
Processor Series
C8051F9x
Core
8051
Data Ram Size
512 B
Interface Type
I2C, SMBus, Enhanced UART, Enhanced SPI
Maximum Clock Frequency
7 KHz
Number Of Programmable I/os
17
Number Of Timers
4
Operating Supply Voltage
2.4 V
Maximum Operating Temperature
+ 85 C
Mounting Style
SMD/SMT
3rd Party Development Tools
PK51, CA51, A51, ULINK2
Development Tools By Supplier
C8051F996DK
Minimum Operating Temperature
- 40 C
On-chip Adc
12 bit, 10 Channel
On-chip Dac
10 bit, 4 Channel
Lead Free Status / RoHS Status
Lead free / RoHS Compliant
Eeprom Size
-
Lead Free Status / Rohs Status
Lead free / RoHS Compliant
Other names
336-1952-5
6. Writes to CRC0CN that Initiate a CRC0 Operation
7. Address 0x0000 of XRAM
Description: The third op-code byte fetched from program memory following a write to CRC0CN that initiates
a CRC0 operation is indeterminate.
Impacts: If the indeterminate op-code byte is the first or second byte in an instruction, improper code
execution may result.
Workaround: Writes to CRC0CN that initiate a CRC0 operation must be immediately followed by a benign 3-
byte instruction whose third byte is a “don’t care.” An example of such an instruction is the write of a dummy
value to the CRC0FLIP register using a 3-byte MOV instruction. The value written to CRC0FLIP will be
indeterminate, but this should have no effect on the system. To ensure that both instructions are executed
without interruption, global interrupts should be disabled.
Note: When programming in C, the dummy value written to CRC0FLIP should be a non-zero value. This
prevents the compiler from generating the following instruction sequence:
When programming in C, the disassembly should be checked to ensure the compiler generated the following
instruction sequence:
Resolution: Fixed in Rev B and later.
Description: On device reset, or upon waking up from Sleep mode, address 0x0000 of external memory
may be overwritten by an indeterminate value. The indeterminate value is 0x00 in most situations.
Impacts: Application data stored at 0x0000 in external memory may be overwritten upon reset or waking up
from sleep mode.
Workaround: A dummy variable should be placed at address 0x0000 in external memory to ensure that the
application software does not store any data that needs to be retained during sleep or reset at this memory
location. The compiler-independent example below shows how to locate a dummy variable at address
0x0000 in external memory.
LOCATED_VARIABLE_NO_INIT (reserved, U8, SEG_XDATA, 0x0000);
Compiler-independent code requires the use of the compiler_defs.h and c8051F990_defs.h header files
supplied in the C:\Silabs\MCU\INC folder after installation of the Silicon Laboratories IDE.
Resolution: This information will be added to the device data sheet.
CLR A
MOV CRC0FLIP, A
MOV CRC0FLIP, #AAh where #AAh is the non-zero dummy value.
400 West Cesar Chavez, Austin, TX 78701 www.silabs.com