C8051F022 Silicon Laboratories Inc, C8051F022 Datasheet - Page 199
![no-image](/images/manufacturer_photos/0/6/609/silicon_laboratories_inc_sml.jpg)
C8051F022
Manufacturer Part Number
C8051F022
Description
IC 8051 MCU 64K FLASH 100TQFP
Manufacturer
Silicon Laboratories Inc
Series
C8051F02xr
Specifications of C8051F022
Core Processor
8051
Core Size
8-Bit
Speed
25MHz
Connectivity
EBI/EMI, SMBus (2-Wire/I²C), SPI, UART/USART
Peripherals
Brown-out Detect/Reset, POR, PWM, Temp Sensor, WDT
Number Of I /o
64
Program Memory Size
64KB (64K x 8)
Program Memory Type
FLASH
Ram Size
4.25K x 8
Voltage - Supply (vcc/vdd)
2.7 V ~ 3.6 V
Data Converters
A/D 8x8b, 8x10b; D/A 2x12b
Oscillator Type
Internal
Operating Temperature
-40°C ~ 85°C
Package / Case
100-TQFP, 100-VQFP
Lead Free Status / RoHS Status
Contains lead / RoHS non-compliant
Eeprom Size
-
Available stocks
Company
Part Number
Manufacturer
Quantity
Price
Company:
Part Number:
C8051F022
Manufacturer:
SILICON
Quantity:
513
Company:
Part Number:
C8051F022
Manufacturer:
Silicon Laboratories Inc
Quantity:
10 000
Company:
Part Number:
C8051F022-GQ
Manufacturer:
Silicon Laboratories Inc
Quantity:
10 000
Part Number:
C8051F022-GQ
Manufacturer:
SILICON LABS/芯科
Quantity:
20 000
Company:
Part Number:
C8051F022-GQR
Manufacturer:
Silicon Laboratories Inc
Quantity:
10 000
Company:
Part Number:
C8051F022R
Manufacturer:
Silicon Laboratories Inc
Quantity:
10 000
19.2. SPI0 Operation
Only a SPI master device can initiate a data transfer. SPI0 is placed in master mode by setting the Master Enable flag
(MSTEN, SPI0CN.1). Writing a byte of data to the SPI0 data register (SPI0DAT) when in Master Mode starts a data
transfer. The SPI0 master immediately shifts out the data serially on the MOSI line while providing the serial clock
on SCK. The SPIF (SPI0CN.7) flag is set to logic 1 at the end of the transfer. If interrupts are enabled, an interrupt
request is generated when the SPIF flag is set. The SPI0 master can be configured to shift in/out from one to eight bits
in a transfer operation in order to accommodate slave devices with different word lengths. The SPIFRS bits in the
SP0I Configuration Register (SPI0CFG.[2:0]) are used to select the number of bits to shift in/out in a transfer opera-
tion.
While the SPI0 master transfers data to a slave on the MOSI line, the addressed SPI slave device simultaneously
transfers the contents of its shift register to the SPI master on the MISO line in a full-duplex operation. The data byte
received from the slave replaces the data in the master's data register. Therefore, the SPIF flag serves as both a trans-
mit-complete and receive-data-ready flag. The data transfer in both directions is synchronized with the serial clock
generated by the master. Figure 19.3 illustrates the full-duplex operation of an SPI master and an addressed slave.
When SPI0 is enabled and not configured as a master, it will operate as an SPI slave. Another SPI device acting as a
master will initiate a transfer by driving the NSS input signal low. The master then shifts data out of the shift register
on the MOSI pin using the its serial clock. The SPIF flag is set to logic 1 when the NSS signal goes high, indicating
the end of a data transfer. Note that following a rising edge on NSS, the receive buffer will always contain the last
8 bits of data in the slave shift register. The slave can load its shift register for the next data transfer by writing to the
SPI0 data register. The slave must make the write to the data register at least one SPI serial clock cycle before the
master starts the next transmission. Otherwise, the byte of data already in the slave's shift register will be transferred.
Note that the NSS signal must be driven low at least 2 system clocks before the first active edge of SCK for each byte
transfer.
The SPI0 data register is double buffered on reads, but not on writes. If a write to SPI0DAT is attempted during a data
transfer, the WCOL flag (SPI0CN.6) will be set to logic 1 and the write will be ignored. The current data transfer will
continue uninterrupted. A read of the SPI0 data register by the system controller actually reads the receive buffer. The
receive overrun flag (RXOVRN in register SPI0CN) is set anytime a SPI0 slave detects a rising edge on NSS while
the receive buffer still holds unread data from a previous transfer. The new data is not transferred to the receive buf-
fer, allowing the previously received data byte to be read. The data byte causing the overrun is lost.
7
SPI SHIFT REGISTER
Receive Buffer
6
Baud Rate
Generator
5
MASTER DEVICE
4
3
2
1
0
Figure 19.3. Full Duplex Operation
MOSI
MISO
NSS
SCK
Px.y
VDD
Rev. 1.4
MOSI
MISO
NSS
SCK
C8051F020/1/2/3
SLAVE DEVICE
7
SPI SHIFT REGISTER
Receive Buffer
6
5
4
3
2
1
0
199