SCP2207VMU [NXP]

32-bit MPU, Image Cognition Processor, Automotive Qualified, MAPBGA 236;
SCP2207VMU
型号: SCP2207VMU
厂家: NXP    NXP
描述:

32-bit MPU, Image Cognition Processor, Automotive Qualified, MAPBGA 236

文件: 总186页 (文件大小:1701K)
中文:  中文翻译
下载:  下载PDF数据表文档文件
Freescale Semiconductor  
Data Sheet: Product Preview  
Document Number: SCP220x  
Rev. 2.1, 06/2015  
SCP220x  
SCP220x ICP Family  
Data Sheet  
1
2
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1  
1
Introduction  
1.1  
1.2  
The SCP220x function blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2  
SCP220x Features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2  
The SCP220x is a family of highly-programmable Image  
Cognition Processors (ICP) enabling imaging and video  
applications for automotive smart cameras, video  
surveillance cameras and consumer devices such as  
personal media players. The ICPs of the SCP220x family  
are programmable system-on-chip (SoC) featuring  
CogniVue’s patented APEX™ technology providing high  
computing performance at low power in a small package  
size.  
SCP220x Architecture Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4  
2.1  
2.2  
2.3  
2.4  
Voltage islands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5  
Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5  
Buses and DMA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6  
Pin Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7  
3
4
System Design Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8  
3.1  
3.2  
3.3  
3.4  
3.5  
3.6  
3.7  
Core and I/O Power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8  
PLL and Timing Generation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10  
Clock Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12  
External Memory Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16  
Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16  
Boot-up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17  
Low Power Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20  
Interconnect and Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21  
4.1  
4.2  
4.3  
4.4  
4.5  
4.6  
4.7  
4.8  
4.9  
NAND Flash Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21  
UART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24  
SPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26  
Sensor Interface (SIF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29  
Display Sub-System (DSS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30  
USB 2.0 HIGH SPEED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35  
Audio Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36  
Media Storage MMC and MMCPlus blocks (compatible SD/SDHC) .42  
I2C Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45  
The SCP220x family comprises:  
SCP2201 – Equipped with 128 Mbit (16 MB) of  
stacked Mobile DDR SDRAM in package  
SCP2207 – Equipped with 512 Mbit (64 MB) of  
stacked Mobile DDR SDRAM in package  
4.10 Pulse Width Modulated Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . .50  
4.11 KeyPad Scan Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53  
4.12 GPIOs and Alternate Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . .54  
4.13 Production Test and System Signals . . . . . . . . . . . . . . . . . . . . . . . . .61  
Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61  
5
5.1  
5.2  
5.3  
5.4  
5.5  
5.6  
5.7  
5.8  
5.9  
Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61  
Clock Configuration Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64  
PAD and I/O registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71  
Reset and Clock Gating. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78  
Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82  
Memory Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83  
NAND Interface Registers Description. . . . . . . . . . . . . . . . . . . . . . . .95  
UART Control Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110  
SPI Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117  
5.10 Audio Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126  
5.11 MMC/SD Control Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136  
5.12 MMCPlus Control Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145  
5.13 I2C Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154  
5.14 PWM Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158  
5.15 KeyScan Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162  
5.16 GPIO Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165  
Packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168  
6
7
6.1  
6.2  
6.3  
SCP2201 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168  
SCP2207 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .169  
SCP220x Pinout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .170  
Electrical Specifications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .180  
7.1  
7.2  
7.3  
7.4  
Absolute Maximum Rating. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .180  
Recommended Operating Ranges . . . . . . . . . . . . . . . . . . . . . . . . .180  
Thermal Characteristics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181  
DC Characteristics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181  
8
Revision History. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183  
© Freescale Semiconductor, Inc., 2015  
Introduction  
1.1  
The SCP220x function blocks  
SCP220x  
APEX Core  
USB 2.0  
OTG  
Camera  
Sensor  
Interface  
APU (96 CU + 96 CMEM)  
...  
CU ...CU  
CU CU CU CU CU CU CU CU CU CU CU CU CU CU CU CU CU  
NAND or  
MoviNAND  
Interface  
Array Controller Processor  
Display  
Interface  
Multi  
Channel  
DMA  
Sequencer  
RISC  
Stream DMA  
MicroSD/  
SDHC  
TV Out  
Main Processor - ARM9  
Memory Controller  
Mobile DDR SDRAM  
(stacked)  
2
KeyPad  
I S / AC’97  
Power Manager  
SPI  
Master/  
Slave  
2
I C  
UART  
PWM  
GPIO  
Figure 1. SCP220x Image Cognition Processors  
1.2  
SCP220x Features  
1.2.1  
SCP220x General Features  
CogniVue APEX Processor – programmable 34Billion-Operations per second Vision Processor with patented  
massively parallel Array Processor Unit (APU) with 96 Computing Units (CUs) with dedicated memory, discreet  
RISC processor, H/W acceleration blocks, wide-bandwidth stream DMAs and internal 64-bit data buses  
ARM926EJ-S™ RISC processor with 16 KB of instruction cache (I-cache) and 16 KB of data cache (D-cache)  
Multiple power domains for different peripheral IOs  
1.2.2  
Interconnect and Communication  
Video Processing  
1.2.2.1  
Fully-programmable Array Processor (APEX) for running video/image processing algorithms  
Video codecs support diverse resolutions at 30 fps with 4 Mbps maximum bitrate  
Supported video decoding standards:  
MPEG-4 Simple Profile and Advanced Simple Profile supports 720x480 at 30 fps  
For other standards consult factory  
Supported video encoding standard is MPEG-4 Simple Profile, 720x480 at 30 fps  
SCP220x ICP Family, Rev.2.1  
2
Freescale Semiconductor  
Introduction  
1.2.2.2  
Audio Processing  
Directly connects to I2S or AC97 compliant audio device  
1.2.2.3  
Graphics  
True-color (24 bits per pixel) processing  
2D graphics functions including: Bitblt, overlay, pixel-based alpha-blending, rotation, scaling, color space conversion,  
color depth expansion and reduction  
1.2.2.4  
Image Sensor Interface  
Sensor Interface (SIF) supports 10-bit input, 8-bit YUV datapath up to 10 M-pixel resolution  
Integrated YUV image enhancement functions such as scale-down  
1.2.2.5  
Display Sub-System  
Independent dual output, one digital, one analog  
Digital:  
LCD interface supports both TFT and buffered (CPU) LCDs  
Supports up to four CPU-like devices (for example dual 8/9/16/18bit LCD modules and two other devices  
with CPU-like interfaces) or supports up to WVGA TFT LCD up to 24 bits/pixel  
ITU-R 601/656 compatible digital video output  
Analog: Integrated 10-bit DAC for analog composite video output to TV (PAL or NTSC)  
1.2.2.6  
USB 2.0 High Speed Controller  
USB 2.0 HIGH SPEED compliant  
USB 2.0 PHY integrated on-chip  
USB 2.0 On-The-Go  
1.2.2.7  
Audio Interface  
I2S and AC97 compliant Audio Interface  
1.2.2.8  
Media Storage Interface  
Supports SD/SDHC removable memory cards  
Compatible MMC Plus Interface  
Supports 8-bit NAND flash devices  
Supports FAT-16 and FAT-32 file system with long name support and international characters  
1.2.2.9  
Serial Interfaces  
Two UART (1x 4-pin, 1x 2-pin) interfaces and two SPIs  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
3
SCP220x Architecture Overview  
1.2.2.10 Other Interfaces  
General purpose I/O (GPIO) – selectable as alternative functions for various interface pins  
Two PWM (Pulse width modulated) outputs with programmable frequency and duty cycle  
JTAG test and debugging interface for the ARM926EJ-S processor  
1.2.3  
Reference Input Clock  
Input clocks:  
Clocks supplied by either a crystal or oscillator  
10-30 MHz (13 MHz, 19.5 MHz, 24 MHz or 27 MHz suggested).  
5 on-chip PLLs generate clocks for system, array processor, display interface, other interfaces and memory  
Programmable internal clock frequencies  
1.2.4  
Boot-Up Options  
Boot from either serial SPI or NAND Flash  
1.2.5  
Integrated Memory  
SCP2201 has 128 Mbit DDR SDRAM integrated in package  
SCP2207 has 512 Mbit DDR SDRAM integrated in package  
1.2.6  
Package  
SCP2201 and SCP2207 are both used in the 236 MAPBGA package (9 x 9 x 1.24 mm).  
1.2.7  
POWER Supply  
1.0V core and 3.0V I/O power (1.8V or 3.0V Sensor I/O power)  
1.8V memory power supply  
3.0V PLL power supply  
3.3V supplies for USB and internal DAC  
Multiple power domain within the core for power management  
1.2.8  
Ambient Operating Temperature  
SCP2201 and SCP2207 chips operate between -40°C to +105°C, Automotive Qualified  
2
SCP220x Architecture Overview  
The SCP220x are system-on-chip offering a large selection of computation and communication blocks in a single  
small form factor chip. The internal relationship between blocks within the chips can be represented by the following  
figure:  
SCP220x ICP Family, Rev.2.1  
4
Freescale Semiconductor  
 
SCP220x Architecture Overview  
AHB 1 (32-bit)  
Low Power  
.....................  
St ck  
Audio/Video  
Voltage Domain  
S
M/S  
M
M/S  
a
e
d
Memory  
Controller  
Bridges  
S
D
R
A
M
.....................  
S
Multi-DMA  
IC Core  
Voltage Domain  
JTAG  
Controller  
M
S
S
S
USB  
SIF  
M
S
Master  
Slave  
M/S Master/Slave  
S
Reset  
..... SCP2201/07 specific  
M
DSS  
S
M
M
S
ARM9  
APU  
96 CU+CMEM  
M/S  
S
M/S  
Codec HW  
Accerators  
Bridges  
S
S
S
Interrupt  
Controller  
M
RISC  
Boot  
Loader  
AHB 2 (32-bit)  
APEX  
NAND  
Crypto  
S
S
Smart  
Card  
Key  
Pad  
GPIO  
PWI  
PWM  
MP2TS  
S
APB  
Bridge  
APB (32-bit)  
S
SPI  
RTC  
Audio  
I2C  
UART  
S
S
MMC  
MMC plus  
Figure 2. SCP220x Internal Architecture  
2.1  
Voltage islands  
There are two voltage islands offering capabilities to lower power consumption when intensive computation is not  
required. The chip can boot in one or the other mode, through external configuration (see 3.6.2, Boot-up  
configuration), or can be switched by software. It is also possible to turn some blocks off for further power reduction  
(see 3.7, Low Power Configurations).  
2.2  
Blocks  
APEX  
2.2.1  
APEX is a programmable Vision Processor capable of 34 Billion-Operations per second.  
APEX is composed of:  
with patented massively parallel Array Processor Unit (APU) itself made of 96 Computing Units (CUs) with  
dedicated memory, wide-bandwidth stream DMAs and internal 64-bit data buses  
discreet RISC processor  
H/W acceleration blocks  
APEX is a Single Instruction Multiple Data (SIMD) type of parallel processor. It is normally programmed in a  
proprietary SIMD Engine Language (SEL) to generate APU kernels. Custom APU kernels can be written with the  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
5
 
SCP220x Architecture Overview  
additional APEX toolkit. Standard and custom kernels can be combined with the automated APEX usage  
optimization tool ACF (APEX Core Framework).  
APEX is then only used through supplied SDK, and no direct register accesses are required.  
For advanced optimization needs, contact factory.  
2.2.2  
ARM926EJ-S RISC processor  
The chip uses an ARM9 series as its main processor. It is a ARM926EJ-S™ RISC processor with 16 KB of  
instruction cache (I-cache) and 16 KB of data cache (D-cache).  
All the software runs on this processor and it sets up all the other blocks including the APEX.  
Operating Systems supported:  
Nucleus, embedded Real Time Operating System.  
2.2.3  
Reserved Use Blocks  
We reserve the use of several blocks in the chip: Crypto, MP2TS.  
2.2.4  
Interconnect and Communication Blocks  
Detailed description of the blocks can be found in 4, Interconnect and Communication.  
2.3  
Buses and DMA  
There are four main buses in the chip:  
AXI Fabric (64-bit)  
AHB 1 and AHB 2 (both 32-bit)  
APB (32-bit)  
2.3.1  
AXI Fabric  
The AXI fabric (Advanced eXtensible Interface) provides high performance data transfers. It is linked to the use of  
the APEX and so it is not recommended to access it directly. AXI provides an isolation from secondary data transfers  
from peripherals and offers maximized performance on the main data movements from and to memory, image input  
and output.  
For your information, AXI provides a partial connectivity between the connected masters and slaves. The following  
table illustrates what slaves each master can access. An “x” indicates connectivity between the master and slave.  
Table 1. AXI Master/Slave Connectivity  
Memory  
Controller  
AHB1  
(data)  
APEX  
CMEM  
apb3  
APEX  
SIF  
S1  
x
S2  
x
S3  
S4  
S5  
x
S6  
AHB 1 (primary data)  
USB  
M1  
M2  
M3  
M4  
x
x
AHB 1 (instructions)  
[reserved]  
x
x
x
x
x
SCP220x ICP Family, Rev.2.1  
6
Freescale Semiconductor  
SCP220x Architecture Overview  
Table 1. AXI Master/Slave Connectivity  
[reserved]  
DSS Bitblt  
M5  
M6  
M7  
M8  
x
x
x
x
x
x
x
x
x
x
DSS Bitblt_mini  
AHB 1 (secondary data)  
x
2.3.2  
AHB  
There are two AHB (Advanced High-performance Bus) in the Chip. The first is the link between all the blocks. The  
second is a dedicated bus for video codec operations.  
2.3.3  
APB  
APB (Advanced Peripheral Bus) provides connectivity to a large number of relatively slow peripheral interfaces  
blocs.  
2.3.4  
DMAs  
There is an extensive number of DMAs (Direct Memory Access) in the chip. They play an important role in reaching  
high computing performance in video/image processing.  
In general, the DMAs are handled directly through the SDK.  
2.4  
Pin Configuration  
The SCP220x are designed to be small chip and so have constrains on the number of pins available. To offer  
maximum flexibility, the pins can have multiple functions selectable via software.  
At most, a pin has a default function, a gpio use and an alternate function.  
Also, the pin can have an internal Pull-Up (PU) or Pull-Down (PD) capability that could be activated by default.  
Furthermore, the pin may have a direction and a configurable strength.  
To illustrate, here is an example for the pin named audio_fsr.  
4.12.1, GPIO and Alternate Function List tells us:  
the main function is audio_fsr (its name)  
if using as gpio it is the line 18  
the alternate function is pwm2_out  
the pin can have an internal Pull-Down  
the PAD type is A  
the power domain AUVDD  
GPIO  
Pin  
Alternate  
Power  
PAD Type  
A
PAD Resistor/Default  
PD/none  
gpio18  
audio_fsr_p  
pwm2_out  
AUVDD  
6.3, SCP220x Pinout tells us:  
Freescale Semiconductor  
SCP220x ICP Family, Rev.2.1  
7
 
System Design Considerations  
the pin belongs to the AUDIO power domain  
the pin is capable of being an input or and output (bi-directional)  
the pad strength can be configured for 2 mA or for 4 mA  
the pin does NOT have its Pull-Down activated  
the pin is at position M9 on SCP2201 and SCP2207  
Pin Name  
audio_fsr  
Power Domain  
AUDIO  
PAD Type  
Default PU/PD  
none  
SCP2201/0  
7 Ball  
Bi-dir. 2 mA / 4 mA  
M9  
A pin is configured as gpio when the corresponding gpio enable bit is active.  
A pin is configured as the alternate function when the gpio enable bit is inactive and that the alternate enable bit is  
active.  
So a pin is configured as the primary function when the gpio enable bit is inactive and that the alternate enable bit  
is also inactive.  
See 4.12.1, GPIO and Alternate Function List for details.  
Note: most pins will be in tri-state during and after reset. The pins will start their primary function during the boot.  
3
System Design Considerations  
3.1  
Core and I/O Power  
The SCP220x are low power system-on-chip with a power consumption generally under <250 mW (active image  
processing with APEX).  
They offer advanced power consumption reduction options see 3.7, Low Power Configurations.  
In any case, all power need to be present at all times even if the chip is in power saving mode, undefined behavior  
may happen if some powers are not present.  
The IO supply allows (3.0 V DC 10%).  
The Sensor Interface (SIF) allows for 3.0VDC 10%, or 1.8VDC -5%, +10%.  
The table below provides the SCP220x pin information for core and I/O power.  
Table 2. SCP220x Power Supply  
Power Supply  
Pin Names  
Pin Description  
1.0 V  
VDD_CORE  
VDD_LP  
Power supply for IC core  
Power supply for low power audio/video circuitry  
Analog supply voltage for PLL  
3.0 V  
*
VDDA_PLL  
VSSA_PLL  
VDD_SDRAM  
VDD_USB  
VDDA_DAC  
PLL power return (DO NOT CONNECT TO GROUND)  
SDRAM core power  
1.8 V  
3.3 V  
Power supply for USB  
Analog supply voltage for internal DAC  
SCP220x ICP Family, Rev.2.1  
8
Freescale Semiconductor  
System Design Considerations  
Table 2. SCP220x Power Supply  
IO supply for Sensor Interface block and I2C  
3.0 V or 1.8V  
3.0 V  
VDD_SENSOR  
VDD_OSC  
VDD_SCCARD  
VDD_GPIO  
VDD_DIP  
Power supply for crystal pad  
IO supply for Smart Card Interface  
IO supply for GPIOs and KeyScan  
IO supply for DIP block  
VDD_MISCIF  
VDD_SDMMC  
VDD_AUDIO  
VDD_NAND  
VSS  
IO supply for MP2TS, UART, SPI, and JTAG interfaces.  
IO supply for SD/SDHC/MMC Interface  
IO supply for Audio Interface block  
IO supply for NAND Interface block  
Common ground  
GND  
VSSA_DAC  
VSS_USB  
Ground for internal analog DAC  
Ground for USB  
VSS_OSC  
Ground for crystal pad  
* See Figure 4 for VSSA_PLL connectivity  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
9
System Design Considerations  
Figure 3. Powering the SCP220x  
3.2  
PLL and Timing Generation  
The timing generation block provides and manages the clocks required by the internal logic and IP blocks. The  
clocks are produced from internal PLLs. An external crystal oscillator or clock provides the input clock to the PLLs.  
The following figure shows the connection between a crystal oscillator and the SCP220x. If the clock source is an  
oscillator, the clock output signals (VDDA_PLL, VSSA_PLL) are not connected.  
SCP220x ICP Family, Rev.2.1  
10  
Freescale Semiconductor  
System Design Considerations  
xtal  
10 - 30 MHz  
1M ohm  
SCP220x  
15 pf  
clkin  
clkout  
15 pf  
3.0 V  
SYS_PLL  
AP_PLL  
DIP_PLL  
IF_PLL  
100 ohm  
100 µF  
VDDA_PLL  
100 nf  
VSSA_PLL  
(PLL return)  
MEM_PLL  
Figure 4. Crystal Connected to SCP220x  
The input clock drives the five internal PLLs:  
SYS_PLL: System  
AP_PLL: Array Processor Unit  
DIP_PLL: Display Interface Port  
IF_PLL: Interfaces  
MEM_PLL: Memory  
See 3.3, Clock Configuration for more details about the PLLs.  
The SCP220x has different level of clock controls depending on the input oscillator or clock frequency:  
Input is 24 MHz: this is the default, all the clocks are set automatically, no external clock setting  
Input is 13 MHz, 19.2 MHz or 27 MHz: this is a pre-set, all clocks are set automatically through  
an external clock setting, see 3.6.2, Boot-up configuration  
Input is between 10 MHz and 30 MHz: this is a custom clock setting and so an external clock setting should  
be chosen and then all the PLLs and clock configuration need to be managed, see 3.3, Clock Configuration  
and then 5.2, Clock Configuration Registers.  
t2  
Clkin  
t3  
t4  
Figure 5. Input Clock Timing  
Table 3. Input Clock Timing  
Parameter  
Symbol  
Min.  
Typ.  
Max.  
Unit  
Input clock period  
Input clock rise time  
Input clock fall time  
Input clock duty cycle  
t2  
t3  
t4  
10  
30  
4
MHz  
ns  
4
ns  
40  
50  
60  
%
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
11  
System Design Considerations  
3.3  
Clock Configuration  
3.3.1  
PLL configuration  
The SCP220x has five internal PLLs as clock sources; all have the input reference clock as input:  
SYS_PLL: System  
AP_PLL: Array Processor Unit  
DIP_PLL: Display Interface Port  
IF_PLL: Interfaces  
MEM_PLL: Memory  
These five configurable internal clock sources have three configurable aspects:  
PLL output frequency  
PLL clock source for divider  
Divider value  
REF  
IN  
/NR  
/NF  
VCO  
/2NO  
RESET  
PLL  
/2  
PLLOUT  
RESET  
Figure 6. PLL Programming Parameters  
Each PLL can be configured to a wide range of output frequencies based on its NF, NR and NO settings, where:  
NF (8-bit) ranges from 0 to 255  
NR (5-bit) ranges from 0 to 31  
NO (3-bit) ranges from 0 to 7; 2NO values: 1, 2, 4, 8, 16, 32, 64, 128  
The PLL output frequency is derived from the following equation:  
fOUT = (2 * fIN * (NF+1)) / (2NO * (NR+1))  
where fIN is the input clock frequency. The following constraints must be met when deriving fPLLOUT.  
fIN = input frequency must meet 10 Mhz < fIN < 30 Mhz  
fREF = comparison frequency = fIN / (NR+1) must meet 10 Mhz < fREF < 30 Mhz  
fVCO = VCO frequency = (2 * fIN * (NF+1)) / (NR+1) must meet 1000 Mhz < fVCO < 2000 Mhz  
fOUT = output frequency must meet 20 Mhz < fOUT < 1000 Mhz  
3.3.2  
Configuring the clocks  
There are two classes of clocks:  
The system clocks (cmem_clk, ac_clk, arm_clk, sys_clk, mem_clk2x, mem_clk) that have extra hardware  
controls so that changes are managed and they take default value from boot-up configuration; see 3.3.2.1,  
System Clocks  
The peripherals clocks are unmanaged. See 3.3.2.2, Peripheral Clocks  
The PLL power-up default settings are controlled by either the recommended boot-up configuration (see 3.6.2,  
Boot-up configuration) or software programmable registers (advanced use only).  
SCP220x ICP Family, Rev.2.1  
12  
Freescale Semiconductor  
 
System Design Considerations  
The SYS_PLL and AP_PLL settings are applied to the PLL when the appropriate configuration bit is set in the clock  
update register. The PLL has a “lock” time after the settings are applied. During this lock time, the timing_gen block  
will glitchlessly switch the ARM926EJ-S processor and system clocks. The “lock” time is approximately 520 input  
clock periods. It should be noted that if only the “NO” setting is changed the lock period is much shorter (9-10 input  
clock periods).  
The IF_PLL, DIP_PLL and MEM_PLL do not have any hardware ensuring clean transition. The appropriate software  
clock gating must be activated before updating these PLLs.  
The configuration of the ARM926EJ-S processor and system clocks is controlled by hardware mechanisms that are  
initiated by a software “kick”, whereas, the AP and peripheral clock configurations do not have any hardware control  
mechanisms. Software must manage all aspects of the clock configuration for the AP and peripherals.  
The registers are described at 5.2, Clock Configuration Registers.  
3.3.2.1  
System Clocks  
Three aspects of the ARM926EJ-S processor and system clocking can be individually updated:  
The PLL configuration.  
The output divider for the PLL.  
The PLL to be used for the clock generation.  
This allows a lot of flexibility during the overall clock configuration such as:  
Using the other PLL while one PLL is locking. This prevents a switch over to the external reference clock  
while the PLL is locking and may be required for performance reasons in some applications.  
Using a common PLL for both the system and AP so that one of the PLLs can be powered down for current  
savings.  
Care should be taken in the order of the configurations such that an invalid frequency is not generated for the clock  
domain.  
The figure below shows the system clocks diagram:  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
13  
System Design Considerations  
1
ap_ref_clk_sel  
timing_gen  
4
1
pll_divide  
SYS_PLL  
AP_PLL  
ap_clk_gate  
/
cmem_clk  
ac_clk  
IF_PLL  
CG  
1-64  
DIP_PLL  
MEM_PLL  
2
arm_clk_div  
/2  
/12, /10, /8,  
/6, /4, /2  
arm_clk  
sys_clk  
2
sys_clk_div  
2
2
pll_sel  
arm_clk2_div  
/4, /3, /2, /1  
SYS_PLL  
AP_PLL  
/12, /10, /8,  
/6, /4, /2  
arm2_clk  
2
arm2_clk_en_div  
3
mem_clk_div  
sys2_clk6  
/4, /3, /2, /1  
/12, /10, /8,  
/6, /4, /2  
mem_clk2x  
mem_clk  
/2  
/2  
1
mem_ref_clk_sel  
1
5
pll_divide  
Interface PLL Select Register  
2
1
SYS_PLL  
AP_PLL  
System Clock Configuration Register  
AP Clock Configuration Register  
AP PLL divide Register  
MEM PLL divide Register  
sys2_clk should match sys_clk  
State after Reset  
mem_clk_gate  
3
/
4
5
IF_PLL  
CG  
1-64  
DIP_PLL  
MEM_PLL  
6
.......  
Figure 7. System Clocks  
After reset, the system clocks are 96 MHz if the boot-up configuration matches the oscillator or crystal base  
frequency. DS-10163-00-08 32/234  
NOTE  
The software bootloader can change the clocks settings but it is important to know that the System initialization  
(Operating System and hardware subsystems) resets the clock setting as well.  
There are three types of clock dividers:  
The integer divider where is clock is divided by a integer value from 1 to 64. Shown as „/1-64. blocks in  
diagram  
Fixed divider by 2, shown as ‘/2’. block in diagram  
Multiple choice dividers where clock is divider by one of the choice offered. The diagram shows these blocks  
by their list of choices such as: ‘/4, /3, /2, /1’.  
To modify the value of SYS_PLL, AP_PLL, corresponding multiplexer and divider, it is required to use the Clock  
Update register to ensure proper transition, see.  
NOTE  
For advanced power saving mode, it is possible to gate clocks via the CG blocks. However, because of the reserved  
multiplexer (memory used with synchronized clock to the ARM926EJ-S processor or from independent clock), the  
mem_clk_gate should not be used.  
3.3.2.2  
Peripheral Clocks  
There are five peripheral reference clocks:  
if_ref_clock: interfaces reference clock  
SCP220x ICP Family, Rev.2.1  
14  
Freescale Semiconductor  
System Design Considerations  
xga_ref_clock: digital display reference clock  
sif_ref_clock: sensor interface reference clock  
usb_ref_clock: USB (Universal Serial Bus) reference clock  
tvout_ref_clock: analog display reference clock  
*_ref_clk_sel1  
pll_divide2  
*_clk_gate1  
SYS_PLL  
AP_PLL  
IF_PLL  
/
.......  
*_ref_clk  
CG  
1-64  
DIP_PLL  
MEM_PLL  
1 Interface PLL Select Register  
2 * PLL Divide Register  
.......  
State after Reset  
* TVOUT, USB, SIF, XGA, IF  
Figure 8. Peripherals Clocks  
This if_ref_clk is used as a clock source for the following interfaces so that their external timing is unchanged when  
the system clock frequency is adjusted.  
mmc. This PLL clock is used to drive the MMC clock generator. The MMC clock generator has its own  
configurable software divider. The target frequency for the MMC clock has a maximum of 20-25 Mhz so the  
PLL should be programmed for twice that frequency as a minimum.  
uart. The PLL clock is used in the baud rate generator and front end serializer/de-serializer.  
spi. This PLL is used to drive the SPI clock generator and the SPI frontend interface.  
Audio. This PLL clock is the clock source for the NCO in the audio block. The NCO is used to generate the  
audio master clock. The audio master clock or a clock source connected to the master clock input is used  
to derive the audio bit clocks and frame clocks. The NCO operates best at higher frequencies, so a 96 Mhz  
setting is best for this application.  
OS timer. This PLL clock is the clock source for the timer down counter. The timer has its own configurable  
divider so the PLL clock frequency for this application is very flexible. RTC. This PLL clock is the clock source  
for the NCO in the RTC timer. The NCO operates best at higher frequencies, so a 96 Mhz setting is best for  
this application.  
RTC. This PLL clock is the clock source for the NCO in the RTC timer. The NCO operates best at higher frequencies,  
so a 96 Mhz setting is best for this application.  
3.3.2.3  
Clock Restrictions  
System Clocking Restrictions:  
Maximum ARM926EJ-S processor clock is 347.5 Mhz.  
Maximum system clock is 120 Mhz.  
AP Clocking Restrictions:  
Maximum AP clock is 360 Mhz/180 Mhz (cmem_clk/ac_clk)  
Other Clocking Restrictions:  
Maximum SYS_PLL frequency is 719 Mhz  
Maximum AP_PLL frequency is 632 Mhz  
Maximum MEM_PLL frequency is 704 Mhz  
Maximum DIP_MEM, IF_PLL frequency is 724 Mhz  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
15  
System Design Considerations  
If_ref_clk, xga_ref_clk, sif_ref_clk, usb_ref_clk and tvout_ref_clk maximum frequency is 133 Mhz  
3.4  
External Memory Interface  
Memory Controller  
3.4.1  
The following diagram illustrates the system level architecture for the memory controller implementation.  
Memory Controller  
mem_clk  
dqs_in  
dqs_out  
clk_out  
apb  
axi  
DLL delay  
APB Bridge  
AXI Fabric  
sdram_dqs  
sdram_clkn  
sdram_clk  
Memory  
Controller  
data  
sdram_data  
sdram_ctrl  
PAD  
Muxing  
control  
pkg_opt  
aclk  
sys_clk  
mclk_2xn  
mclk_2x  
mclk_n  
mclk  
mem_clk_2x  
mem_clk  
fb_clk  
Figure 9. Memory Controller Architecture  
The memory controller is configured such that the external memory interface is asynchronous to the system bus.  
This allows the system to run at a faster speed than the external memory and also allows for dynamic system  
frequency changes. By default, mem_clk is derived from mem_ref_clk. Dynamically changing this clock frequency  
likely means that the memory controller cannot be used for the following reasons:  
For DDR applications, the DDL delay line has a lock time whenever the “mclk” frequency is changed. Proper  
read operation is not guaranteed during this lock time.  
The memory controller timing registers can only be updated when the memory controller is put into a  
configuration state. During this configuration state, external memory accesses are not allowed.  
Registers are described in 5.6, Memory Controller.  
3.5  
Reset  
A SCP220x chip becomes operational after a hardware reset through its reset pin (resetN). This pin, when asserted,  
keeps the entire chip in a reset state. After the power supply voltages have stabilized, the external reset must remain  
asserted for at least 1 sec. Then the chip waits for the PLLs lock for 500 input reference clock periods.  
Figure 10: Reset Timing below illustrates the time line of events that occur within the chip when the external reset  
is de-asserted.  
SCP220x ICP Family, Rev.2.1  
16  
Freescale Semiconductor  
System Design Considerations  
Power Supply  
External Reset  
PLL Locked  
1 µsec  
500 input reference clocks  
Delayed Reset  
Figure 10. Reset Timing  
As explained above, the internal reset architecture is controlled by an external reset pin but also by software initiated  
reset requests from boot loader, system registers and watchdog [see the Figure below].  
delayed reset  
Arm held in reset  
software block reset  
Watchdog expired  
Timing  
external reset  
Generation  
Bootloading  
enabled  
Boot  
Loader  
Reset Block  
ARM register  
write  
System  
Registers  
Watchdog  
Figure 11. Internal Reset Architecture  
NOTE  
Most pins are in tri-state during and after reset so no damage could happen.  
It is possible to reset the chip or a block through the system registers (See 5.4, Reset and Clock Gating).  
3.6  
Boot-up  
3.6.1  
Hardware Boot-up Configuration  
The SCP220x chips need some pins to be set appropriately to boot and function properly.  
hw_deep_secure = 0 (low)*  
bootmode = 1 (high)*  
*Suggestion: a 100 KOhms ( 5%, 1/16 W) can be use as pull-up or pull-down resistor.  
3.6.2  
Boot-up configuration  
The SCP220x chips have a configurable boot mechanism. They offer options depending of the connected hardware  
and boot configuration.  
To configure the boot-up configurable parameters, a subset of the Display Interface Port Data bus pins (dip_data)  
are sampled when reset is de-asserted. The dip_data pins are tri-stated by default; this allows the pull-up and  
pull-down values to be sampled. The SCP220x have internal a pull-up and pull-down configuration so a default  
behavior is available on some pin without requiring external pull-up or pull-down resistors.  
The following table describes the configurable options.  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
17  
System Design Considerations  
Configurable Feature  
Table 4. SCP220x Boot-up Configurable Options  
dip_data Pins  
(internal PU/PD)  
Operation  
Enables full-on power domain usage  
by default  
dip_data[7]  
PD  
0 = DISABLED*  
1 = ENABLED  
Enable ECC checking for NAND flash  
booting  
dip_data[6]  
PD  
0 = DISABLED*  
1 = ENABLED  
Boot Loader Mode  
NEED external resistor!  
See also section 3.6.4  
dip_data[5-3]  
PD PU PD  
000 = DRAM (debug only)  
001 = SPI port generic flash  
010 = Reserved*  
011 = SPI port ATMEL Dataflash  
100 = NAND flash  
Reserved  
dip_data[2]  
Reserved  
PLL configuration so that the internal  
clocks are 96 Mhz  
dip_data[1-0]  
PU PD  
00 – input clk = 13 Mhz  
01 – input clk = 19.2 Mhz  
10 – input clk = 24 Mhz*  
11 – input clk = 27 Mhz  
See Section 3.3  
* chip default  
PU / PD : Pull-Up / Pull-Down  
dip_data: Display Interface Port Data bus pins  
To set a level externally on the dip_data pins, you can use a 4.7 KOhm ( 5%, 1/16 W) resistor as pull-up or pull-down.  
3.6.3  
Boot-up Timeline  
The following timeline illustrates events that occur during a successful boot sequence. The internal configuration and  
software binary image must be resident in the SPI device or NAND flash prior to initiating the boot-up sequence.  
PLL lock time  
time  
Figure 12. Boot-up Sequence Timeline  
It is possible to skip some steps in the boot-up sequence. For instance, if the software image was previously  
downloaded and the DRAM was put into self refresh mode, then the DRAM initialization and code download steps  
would not be necessary.  
There are several possible ways to load the code into the SCP220x, they are presented in 3.6.4, Hardware Boot  
Load Modes.  
SCP220x ICP Family, Rev.2.1  
18  
Freescale Semiconductor  
System Design Considerations  
For all cases, the format of the downloaded data contains both the configuration information as well as the software  
image. The data format is as follows:  
4 bytes indicates the number of registers to configure. A value of “0”  
# of cfg registers  
will effectively bypass the configuration aspect.  
cfg register address  
4 bytes indicates register address. There is a special case. When this  
field is “0”, it means that the register data should be treated as a delay.  
cfg register data  
cfg register address  
cfg register data  
4 bytes of data to write to the register or to use as a delay count.  
cfg register address  
cfg register data  
4 bytes indicating the number of bytes of image data to follow.  
4 bytes indicating the start address for this image “chunk”.  
# of image bytes  
image start address  
image  
“x” bytes (multiple of 4 bytes) of image data.  
# of image bytes  
image start address  
image  
A byte count of “0” indicates the end of the boot loading process. The  
ARM is then taken out of reset.  
# of image bytes  
Figure 13. Hardware Boot Loader Load Description  
3.6.4  
Hardware Boot Load Modes  
The hardware boot loader block facilitates code loading from different external interfaces.The external interface gets  
data from an external device and the boot loader block moves the data from the receive FIFO to DRAM memory  
While the Hardware Boot Loader is operating, the ARM926EJ-S processor is held in reset so that it does not start  
executing code until the complete program store is in place. When the byte counter expires, indicating all code has  
been copied, the boot loader indicates to the reset block that the ARM926EJ-S processor can be removed from  
reset.  
Possible boot loader configurations, as specified by the downloaded configuration information, are identified in the  
table below.  
Table 5. Configuring Boot Load Using dip_data[5:3] Pins  
dip_data[5:3]  
Description  
b000  
This setting will not invoke the boot loader and the ARM926EJ-S processor will be removed from  
reset immediately. This is a debug mode of operation. Code must be written to memory through some  
other means (ie. JTAG Port).  
b011  
Code is resident in a serial NAND flash connected to the SPI port. The serial Flash Memory is an  
ATMEL DataFlash memory that supports the “continuous array read” command (0xe8).  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
19  
System Design Considerations  
Table 5. Configuring Boot Load Using dip_data[5:3] Pins  
b001  
Code is resident in a serial NAND flash connected to the SPI port. The serial Flash Memory is an  
industry standard memory that supports the “read data bytes” command (0x03).  
[b010]  
b100  
[RESERVED]  
Code is resident in NAND flash. The NAND flash block read sequence is:  
After reset is de-asserted, the bootloader will issue a “reset” command (“ff”) followed by a 25 µsec  
delay.  
The boot loader then issues the page read command (“00”) and 5 bytes of address (all “0”). This is  
followed by a read confirm command (“30”).  
Before proceeding further, a 50 µsec delay occurs.  
A 2 Kbyte page is then read. If ECC is enabled four 512 byte page reads are issued.  
If booting from NAND Flash, there is an optional ECC checking mode that may be enabled via a software register.  
If ECC checking is enabled, the boot_loader checks for errors after a block is read from the device. Upon error  
detection, the boot loader keeps the ARM926EJ-S processor in reset.  
For NAND Flash, the data must be organized in the 2K Flash sector as follows.  
7 spare bytes  
512 bytes chuck  
512 bytes chuck  
512 bytes chuck  
512 bytes chuck  
9 ECC bytes  
4x 512 bytes chucks = 2048 bytes image  
Figure 14. NAND Flash Data Organization  
3.7  
Low Power Configurations  
The SCP220x chips offer three power consumption reduction features described below: voltage islands, clock gating  
and processor standby. They can be implemented independently for maximum control.  
3.7.1  
Voltage Islands  
The SCP220x provides two voltage islands: Low Power Audio/Video domain and the IC Core domain (see Figure 2.,  
SCP220x Internal Architecture).  
The Low Power Audio/Video domain is powered through the VDD_LP pin. This domain allows for processing at  
reduced power consumption. The ARM926EJ-S processor runs along with some of the blocks offering some  
processing, audio and display capability (digital out only, see Figure 30., Display Sub-System (DSS) Internal  
Architecture). Apex is not running and there is no input of images.  
The IC Core domain is powered through the VDD_CORE pin. This domain contains the high performance blocks  
such as the APEX, SIF and USB.  
Low power consumption mode is achieved by removing power to the IC Core (VDD_CORE) by an external device  
(i.e. power MOSFET) optionally controlled via a SCP220x GPIO pin. CogniVue Reference Design Kit (RDK) has this  
low power option implemented. NOTE: it is recommended that all the other power lines be connected at all times  
even if the corresponding blocks are not active.  
SCP220x ICP Family, Rev.2.1  
20  
Freescale Semiconductor  
Interconnect and Communication  
3.7.2  
Clock gating  
It is possible to idle some blocks by gating their clocks. Clock gating is achieved through registers, see 5.4, Reset  
and Clock Gating. Note that this functionality is provided by the SDK, direct register setting is recommended only for  
custom bootloader code as SDK is not available at this stage.  
3.7.3  
Processor Standby  
Another way to save power is to place the ARM926EJ-S processor in standby when no processing is required before  
an event.  
4
Interconnect and Communication  
4.1  
NAND Flash Interface  
The SCP2201 and SCP2207 products have a NAND flash interface for connectivity to an external NAND flash  
device. The following list details specific NAND flash features:  
8-bit datapath  
Software configurable external control signal timing  
Incoming and outgoing datapath implemented using FIFOs  
Software controlled command and page address  
Read/Write datapath that bypasses the FIFO and allows direct access  
Configurable page size  
NAND flash read and write algorithms are software driven  
Optional hardware ECC support; a simple ECC (1bit correct, 2 bit detect) as well as a Reed Solomon ECC  
algorithm (4 bit correct)  
Supports up to 4 external chip selects  
4.1.1  
NAND Flash connection  
The following figure shows the connection between the SCP2201 or SCP2207 and a typical external NAND flash  
device. It should be noted that the „ry_by. signal is not a dedicated pin on the SCP2201 or SCP2207. Instead this  
connection, required for command status, is made to a GPIO. Alternatively, a software managed polling routing may  
be used to determine when various commands are completed.  
SCP2201  
or  
SCP2207  
data[7:0]  
data  
nand_cle  
nand_ale  
oen  
nand_D[7:0]  
nand_cle  
nand_ale  
nand_ren  
nand_wen  
NAND Flash  
wen  
csn  
nand_cen[3:0]  
ry_by  
GPIO  
Figure 15. NAND Flash Connectivity  
The following table describes the NAND Flash Interface pinout for the SCP220x  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
21  
Interconnect and Communication  
Table 6. NAND Flash Interface  
Pin Direction  
Signal  
Alternate Function  
gpio[81:74] or  
Pin Description  
nand_D[7:0]  
Bi-dir.  
NAND data bus or alternate function  
mmcplus_data[7:0]  
nand_cle  
nand_ale  
gpio[11]  
Bi-dir.  
Bi-dir.  
Bi-dir.  
Bi-dir.  
Bi-dir.  
Bi-dir.  
Bi-dir.  
Bi-dir.  
Command latch enable or alternate function  
Address latch enable or alternate function  
Chip select or alternate function  
Chip select or alternate function  
Chip select or alternate function  
Chip select or alternate function  
Read enable or alternate function  
Write enable or alternate function  
gpio[10]  
nand_cen[0]  
nand_cen[1]  
nand_cen[2]  
nand_cen[3]  
nand_ren  
gpio[12] or mmcplus_clk  
gpio[70] or mmcplus_cmd  
gpio[71] or spi_Rxd1  
gpio[72] or spi_Rxd2  
gpio[14]  
nand_wen  
gpio[13]  
4.1.2  
NAND Flash Hardware Description  
The hardware implementation for the NAND Flash block is as shown in the following diagram.  
NAND Flash Block  
AHB  
sys_clk domain if_ref_clk domain  
Registers  
TX  
FIFO  
DMA  
nand control  
nand data  
RX  
FIFO  
Interrupt  
Generation  
Interrupt  
Figure 16. NAND Flash Hardware Architecture  
The NAND Flash front-end contains a state machine that drives the external interface based on the configuration  
settings from the software interface.  
The front-end block issues commands, address and data as directed by the particular software configuration. The  
transmit and receive fifos provide buffer space such that the internal bus-bandwidth required to move data is  
minimized because AMBA AHB bursts can efficiently move data minimizing overall bus bandwidth usage.  
The following diagrams illustrate what the external waveforms look like and also illustrate any software configurable  
parameters that control the external signals.  
SCP220x ICP Family, Rev.2.1  
22  
Freescale Semiconductor  
Interconnect and Communication  
nand_csn  
nand_cle  
nand_ale  
nand_we  
nand_re  
ry_by  
t1  
t3  
t7  
t7  
t2 t4  
t5 t6  
cmd  
a1 a2 a3  
d1 d2 d3 d4 d5  
data  
Figure 17. NAND Flash Page Read Cycle  
nand_csn  
nand_cle  
nand_ale  
nand_we  
ry_by  
t1  
t3  
t7  
t7  
t2 t4  
cmd  
a1 a2 a3  
d1 d2 d3 d4 d5  
cmd  
data  
Figure 18. NAND Flash Page Write Cycle  
It should be noted that ry_by is not a dedicated pin. Instead it has to be connected to a GPIO or else software must  
poll the NAND Flash device to determine when various commands are completed.  
NAND Flash has a page and block structure as illustrated in the following diagram.  
IO width  
A page is composed of the data and spare  
Page  
area. It represents the granularity that can  
be read or written.  
A block is composed of multiple pages and  
represents the granularity that can be  
erased.  
The spare area is the location where  
information such as ECC and bad blocks is  
stored.  
data spare  
Figure 19. NAND Flash Page and Block Structure  
The software configurable parameters in the NAND configuration register allow for a lot of flexibility when  
programming and reading NAND Flash. There are two fields, page_size and spare size. As an example: lets say  
that the data space in the NAND is 512 bytes and the spare space is 16 bytes (this is the case Toshiba 128Mx8  
device).  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
23  
Interconnect and Communication  
Case 1 - ECC parity is enabled and only a single page is going to be written. In that case set page_size=512,  
ecc_ena = 1, spare_size=0. The interface will write the page of data as it fills into the FIFO, generate parity during  
this process and append the 6 bytes of ECC to the end of the data stream before interrupting indicating completion.  
If it was a read, the interface would have read 512 bytes of data and placed them in the FIFO re-generating a new  
ECC during this process. The interface would have then read the 6 bytes of ECC from the NAND and made the parity  
check available to software before interrupting indicating completion.  
Case 2 - ECC parity is enabled and multiple pages are read. In this case set page_size=512, ecc_ena = 1,  
spare_size=10. Operation will proceed as described above except after the ECC has been read, 10 dummy bytes  
are read effectively setting the address pointer to the beginning of the next block of data. The Flash will indicate it is  
ready for the next block via it.s RY/BY pin at which time another "kick" will initiate another read process. The  
"command" and "address" aspect of the cycle do not need to be repeated.  
Case 3 - ECC parity is not required and a single page is going to be written. In this case set page_size=512, ecc_ena  
= 0, spare_size=0. The interface will only write the page of data to NAND prior to interrupting.  
The description of the control registers for the NAND Flash interface can be found at 5.7, NAND Interface Registers  
Description.  
4.2  
UART  
The SCP220x has two UARTs, referred to as UART and UART1, used for incoming or outgoing data paths. Note  
that uart1_Rx and uart1_Tx signals of UART1 are available via shared I/Os and this UART does not support  
CTS/RTS modem signals.  
The UARTs have the following features:  
Asynchronous interface  
Programmable baud rate  
Parity and framing error detection with indication via interrupts  
Echo, local loopback and remote loopback diagnostic modes  
Single start bit, 8-bit character length, programmable stop bits (1 or 2), programmable parity (even, odd or  
none)  
Independent receive and transmit FIFOs  
The primary UART supports CTS/RTS modem signals for hardware flow control.  
The following table lists the SCP220x pin information for the UART Interface.  
Table 7. UART Interface  
Alternate  
Function  
Signal  
Pin Direction  
Pin Description  
uart_Rx  
uart_Tx  
uart_cts  
gpio[23]  
gpio[22]  
Bi-dir.  
Bi-dir.  
Bi-dir.  
UART serial receive data or alternate function  
UART serial transmit data or alternate function  
gpio[82] or spi_CS1  
Clear to send modem signal or alternate  
function  
uart_rts  
gpio[83] or spi_CS2  
Bi-dir.  
Request to send modem signal or alternate  
function  
UART1 signals are accessible only as alternate functions. These signals are listed in 4.12.1, GPIO and Alternate  
Function List.  
SCP220x ICP Family, Rev.2.1  
24  
Freescale Semiconductor  
Interconnect and Communication  
4.2.1  
UART Hardware Description  
The following diagrams illustrate the various loopback modes that are supported.  
RX  
FIFO  
RX  
FIFO  
RX  
FIFO  
RX  
TX  
RX  
TX  
RX  
TX  
TX  
FIFO  
TX  
FIFO  
TX  
FIFO  
Echo  
Local Loopback  
Remote Loopback  
Figure 20. Uart Diagnostic Loopbacks  
The following UART protocol is supported with configurability for the stop and parity bits.  
Start  
d7  
d6  
d5  
d4  
d3  
d2  
d1  
d0 Parity Stop Start  
d7  
Figure 21. Uart Protocol  
The hardware implementation for the UART block is as shown in the following diagram.  
UART Block  
sys_clk domain if_ref_clk domain  
Baud Rate  
Generator  
AHB  
DMA  
Registers  
RTS  
CTS  
TX  
TX  
FIFO  
RX  
FIFO  
Interrupt  
Generation  
Interrupt  
RX  
Figure 22. Uart Hardware Architecture  
The Baud rate generator uses the software configurable baud rate register as a divider to generate the receive and  
transmit clock enables.  
The FIFOs are identical async fifos. The frontend block reads 8 bit wide data out of the transmit fifo, serializes it,  
adds start,stop and parity bits and transmits it at the programmed baud rate. Similarily the frontend block receives  
serial data and forms an 8 bit word. Start,stop and parity bits are stripped off. Parity errors and frame errors are  
checked and generate interrupts.  
The modem signals, when enabled, provide flow control to the hardware. The Clear To Send (CTS) input modem  
signal indicates to the transmit state machine whether or not to send out a character. The receive state machine  
generates the ready to send output when there is an appropriate amount of space available in the fifo.  
The description of the control registers for the UART interface can be found at 5.8, UART Control Registers.  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
25  
Interconnect and Communication  
4.3  
SPI  
The Serial Peripheral Interface (SPI) provides an alternate data path to and from the SCP220x. The SCP220x device  
has two SPI blocks on board referred as SPI and SPI1. The SPI blocks in the SCP2201 and SCP2207 devices each  
have four chip selects (spi_CS, spi_CS1, spi_CS2, spi_CS3), four serial receive data signals (spi_Rx, spi_Rx1,  
spi_Rx2, spi_Rx3) and a serial transmit data signal (spi_Tx). (Note that three of the chip selects and three receive  
signals of SPI are accessible via shared I/Os). For more details, refer to 4.12.1, GPIO and Alternate Function List.  
SPI1 has a dedicated clock, a chip select, and transmit and receive I/Os as shown below in Table 8.  
This interface is compatible with the Motorola SPI specification and provides the following features:  
Four wire synchronous full duplex interface using a clock, chip select, serialized receive data and serialized  
transmit data  
Configurable as master or slave. The master sources the clock and chip select and the slave sinks these  
pins.  
128-byte transmit FIFO and 128-byte receive FIFO  
Programmable clock rate (master mode only)  
Programmable frame size  
Supports “continuous” mode of operation  
Programmable clock phase (SPH) and polarity (SPO)  
The following table lists the SCP220x pin information for the SPI.  
Table 8. SPI Signals  
Alternate  
Function  
Signal  
Pin Type  
Pin Description  
spi_Clk  
spi_CS  
spi_Tx  
gpio[29]  
gpio[28]  
Bi-dir.  
Bi-dir.  
Bi-dir.  
Bi-dir.  
Bi-dir.  
Bi-dir.  
Bi-dir.  
Bi-dir.  
SPI serial clock or alternate function  
SPI slave select or alternate function  
gpio[26]  
SPI serial transmit data or alternate function  
SPI serial receive data or alternate function  
SPI1 serial clock or alternate function  
spi_Rx  
gpio[27]  
spi1_Clk  
spi1_CS  
spi1_Tx  
spi1_Rx  
mp2ts1_clk  
mp2ts1_sync  
mp2ts1_valid  
mp2ts1_data  
SPI1 slave select or alternate function  
SPI1 serial transmit data or alternate function  
SPI1 serial receive data or alternate function  
The clock phase and clock polarity configurability allow for four modes of operation. The clock phase controls which  
edge of the clock that the transmitter transitions data and the receiver samples data. Transmission and reception of  
data operate on opposite edges of the clock. The polarity controls whether or not the clock is high or low during the  
inactive period. The following four diagrams illustrate the operation for these four modes for a byte length transaction.  
When SPH=0, data is transmitted on the falling edge and sampled on the rising edge. When SPH=1, data is  
transmitted on the rising edge and sampled on the falling edge.  
When SPO=0, the clock is low during inactivity (ie. chip select de-asserted). When SPO=1, the clock is high during  
inactivity.  
SCP220x ICP Family, Rev.2.1  
26  
Freescale Semiconductor  
Interconnect and Communication  
1
2
3
4
5
6
7
8
spi_sck  
spi_ssn  
d7  
d6  
d5  
d4  
d3  
d2  
d1  
d0  
spi_txd/rxd  
Figure 23. SPI Clock Phase/Polarity - SPH=0, SPO=0  
1
2
3
4
5
6
7
8
spi_sck  
spi_ssn  
d7  
d6  
d5  
d4  
d3  
d2  
d1  
d0  
spi_txd/rxd  
Figure 24. SPI Clock Phase/Polarity - SPH=1, SPO=0  
1
2
3
4
5
6
7
8
spi_sck  
spi_ssn  
d7  
d6  
d5  
d4  
d3  
d2  
d1  
d0  
spi_txd/rxd  
Figure 25. SPI Clock Phase/Polarity - SPH=0, SPO=1  
1
2
3
4
5
6
7
8
spi_sck  
spi_ssn  
d7  
d6  
d5  
d4  
d3  
d2  
d1  
d0  
spi_txd/rxd  
Figure 26. SPI Clock Phase/Polarity - SPH=1, SPO=1  
4.3.1  
SPI Hardware Description  
The hardware implementation for the SPI block is as shown in the following diagram.  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
27  
Interconnect and Communication  
SPI Block  
sys_clk domain  
if_ref_clk domain  
spi_clk domain  
spi_clk  
Master Clock  
Generator  
master/  
slave  
AHB  
DMA  
Registers  
spi_csn[3:0]  
TX  
FIFO  
TX  
RX  
RX  
FIFO  
Interrupt  
Generation  
Interrupt  
Figure 27. SPI Hardware Architecture  
The frontend sub-block is operating in the spi_clk domain whether or not the SPI interface is configured as a master  
or slave. The clock is tapped off the external pad so that the internal timing  
requirements within the frontend are identical for master and slave operation. The frontend block is primarily a  
serialization and de-serialization engine that pops and pushes data from/to the fifos. When the frontend gets a clock  
edge when selected, its starts serializing transmit data and de-serializing the receive data. When a “word” has gone  
through the serialization process, the frontend pushes the word into the receive fifo and pops the transmit fifo. The  
process then repeats until the chip select is de-asserted.  
The master clock generator is only used when the SPI block is configured as a master. The clock generator creates  
an external SPI clock that is a programmable divider of the interface PLL clock. The clock generator must also create  
the master chip select since it gets asserted before the external SPI clock starts wiggling. The chip select and  
external SPI clock start a transaction when a data event has occurred in the FIFOs. This most likely is the event of  
the transmit FIFO containing data. A FIFO not empty signal traverses clock domains and is used to kick activity within  
the clock generator. Similarily, when the transmit fifo becomes empty (and the last data has been transmit/received),  
the clock generator de-activates the external clock and chip select.  
The receive and transmit FIFOs are asynchronous with one side in the internal system clock domain and the other  
side in the interface reference clock domain. The read and write pointers cross clock domains through the technique  
of converting the pointer to a gray code, double sampling and converting back to a pointer. The limitation that this  
imposes is that the databus size must not be dynamic. The databus size is software configurable but cannot  
dynamically change while the fifo is in use.  
The description of the control registers for the SPI interface can be found at 5.9, SPI Registers.  
4.3.2  
SPI Port Timing  
t13  
spi_clk  
inputs  
t14 t16  
t15  
outputs  
Figure 28. SPI Port Timing  
SCP220x ICP Family, Rev.2.1  
28  
Freescale Semiconductor  
Interconnect and Communication  
Table 9. SPI Port Timing  
Symbol  
Parameter  
Min.  
Typ.  
Max.  
Unit  
SPI port clock frequency (master)  
SPI port input setup time (master)  
SPI port input hold time (master)  
SPI port output delay time (master)  
t13  
50  
MHz  
ns  
t14 (3.0 V)  
t16 (3.0 V)  
t15 (3.0 V)  
4.3  
0.25  
ns  
10.3  
ns  
4.4  
Sensor Interface (SIF)  
The Sensor Interface receives data from one of two sources – the external sensor or from memory. Supported  
format(s) of input data from the sensor:  
YUV422 stream  
NOTE  
The Sensor Interface block may be programmed to accept YUV422 data in UYVY,  
YUYV, VYUY and YVYU formats. Input image sizes up to 10M-pixels are supported  
at clock frequencies up to 160 MHz.  
Output image formats supported by the Sensor Interface block are:  
YUV422 Stream  
YUV420 Planar  
The Sensor Interface also provides the following functionality:  
scale down:  
average mode scaling by: 1, 1/2, 1/4 and 1/8  
decimation mode scaling by : horizontal and vertical decimation  
adaptive luminance using histogram table build or gamma correction  
image effects: grey scale, sepia, negative, emboss, sketch  
edge enhancement  
image smoothing using a LPF with 9 taps for luminance and 5 taps for chrominance coefficients  
WOI (window of interest) used for cropping the input images  
The SIF is controlled via the SDK under the Sensor Device Interface (SDI).  
The following table lists the SCP220x external pinout of the Sensor Interface (SIF).  
Table 10. Sensor Interface (SIF) External Pinout  
Signal  
Alternate Function  
Pin Direction  
Pin Description  
sensor_D[9:0]  
sensor_pclk  
sensor_rclk  
sensor_fclk  
sensor_clkout  
sensor_fodd  
-
Input  
Input  
Input  
Input  
Bi-dir.  
Bi-dir.  
Sensor data  
-
Sensor pixel clock  
-
Sensor horizontal sync signal  
Sensor vertical sync signal  
-
gpio[1]  
gpio[52]  
Sensor source clock or alternate function  
Field (odd, even) or alternate function  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
29  
Interconnect and Communication  
Table 10. Sensor Interface (SIF) External Pinout  
gpio[53] Bi-dir. Sensor GPIO or alternate function  
sensor_gpio  
t5  
sensor_pclk  
t6  
t7  
inputs  
Figure 29. Sensor Interface Timing  
Table 11. Sensor Interface Timing  
Parameter  
Symbol  
Min.  
Typ.  
Max.  
Unit  
Sensor pixel clock frequency  
Sensor input setup time  
t5  
160  
MHz  
nsec  
nsec  
nsec  
nsec  
t6(3.0V)  
t6(1.8V)  
t7(3.0V)  
t7(1.8V)  
3.2  
3.2  
Sensor input hold time  
0.75  
0.75  
4.5  
Display Sub-System (DSS)  
The Display Sub-System (DSS) has two types of outputs through the Display Interface Port:  
Digital, for LCD (1x) or CPU-like (x4) interfaces  
Analog, generates NTSC/PAL composite signal  
To minimize the load on the processor and APEX, there are two advanced resize/format blocks Bitblt and Bitblt mini.  
The DSS has mixed voltage islands; the figure below gives more precision about the correspondence:  
AHB 1 (32-bit)  
Low Power  
M
M
S
S
S
Audio/Video  
Voltage Domain  
Bitblt  
Bitblt mini  
Full Power  
Voltage Domain  
DIP  
M - Master  
S - Slave  
M/S - Master/Slave  
Internal  
DAC  
Figure 30. Display Sub-System (DSS) Internal Architecture  
SCP220x ICP Family, Rev.2.1  
30  
Freescale Semiconductor  
Interconnect and Communication  
4.5.1  
Display Interface Port (DIP) and TV Output  
The Display Interface Port (DIP) interfaces the SCP2201 or SCP2207 to an external video/display device such as  
an LCD or a television.  
The external display controller in the SCP2201 and SCP2207 devices may be a TFT LCD or four CPU-like interface  
devices  
The DIP has the following features:  
Color format resizing (RGB24 -> RGB666/RGB565; RGB666->RGB24/RGB565;  
RGB565->RGB24/RGB666, YUV422->YUV444)  
Display Bus Interface (DBI): Drives an LCD, LCD Controller or CPU-type interface. Four chip selects are  
available to support up to four devices including any combination of LCD Controllers and/or other devices  
with CPU-type interfaces.  
Timing Interface: Drives an external video device (RBG LCD) with hsync/vsync/blank signals; when this  
mode is enabled, only TFT LCD devices may be used. This interface supports up to WVGA resolution.  
TV Interface: This analog interface derives timing information from an internal NTSC/PAL video encoder to  
drive video data at correct intervals. Maximum resolution supported is 640x480 (VGA).  
The following figure shows a configuration with single TFT-RGB LCD and a TV connection to the DIP. In this case,  
the internal SCP220x video encoder and DAC are used to derive the analog TV signal.  
Figure 31. TFT-RGB LCD and TV Connected to DIP (Using Internal DAC)  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
31  
Interconnect and Communication  
Figure 32. RGB-type Display Waveform Diagram  
The following figure shows a configuration with dual LCDs and a TV connection to the DIP. In this case, the internal  
SCP220x video encoder and DAC are used to derive the analog TV signal.  
data  
cs  
Second LCD  
SCP220x  
data  
cs  
dip_D  
dip_CSn0  
dip_CSn1  
dip_CSn2  
dip_CSn3  
LCD  
oe  
rs  
we  
oe  
rs  
dip_OEn  
dip_RS  
we  
dip_Wrn  
3.3V  
DAC_AVDD  
DAC_AVSS  
0.1 µF  
DAC_vref_in  
DAC_rset  
10 µF  
1.02 KOhm  
(+/- 1%)  
DAC_vref_out  
TV  
DAC_comp  
DAC_io  
0.01 µF  
video_in  
75 Ohm  
Figure 33. CPU-Type LCD and TV Connected to DIP (Using Internal DAC)  
The figure below illustrates timing for DBI connectivity to a CPU-type interface.  
SCP220x ICP Family, Rev.2.1  
32  
Freescale Semiconductor  
Interconnect and Communication  
dip_RS  
dip_CSn  
dip_OEn  
dip_Wrn  
dip_D  
xxxxxx  
valid read data  
valid write data  
t0  
t1  
t2  
t3  
t4  
t1  
Timing parameters depend on CPU clock and modifying the CPU clock frequency  
will alter the duration of the data transfer.  
t0 - Width of the overall read cycle + 1  
t1 - Time between transactions + 1  
t2 - Time up to start of Wrn pulse and start of write data + 1  
t3 - Width of Wrn pulse + 1  
t4 - Extend write data after Wrn pulse + 1  
Figure 34. DBI to CPU-type Display Waveform Diagram  
The following table lists the SCP2201 and SCP2207 pin information for the DIP. The DAC signals correspond to the  
TV Output feature available for all SCP220x products.  
Table 12. Display Interface Pins  
SCP2201, SCP2207  
Signal  
Alternate  
Function  
Pin Direction  
Pin Description  
dip_data[23]  
dip_data[22]  
gpio[51] or  
uart1_txd  
Bi-dir.  
Digital video data or alternate function  
gpio[50] or  
uart1_rxd  
Bi-dir.  
Digital video data or alternate function  
dip_data[21]  
dip_data[20]  
dip_data[19]  
dip_data[18]  
dip_data[17]  
gpio[49]  
gpio[48]  
gpio[47]  
gpio[46]  
Bi-dir.  
Bi-dir.  
Bi-dir.  
Bi-dir.  
Bi-dir.  
Digital video data or alternate function  
Digital video data or alternate function  
Digital video data or alternate function  
Digital video data or alternate function  
Digital video data or alternate function  
gpio[3] or  
scl_sec  
dip_data[16]  
gpio[4] or  
sda_sec  
Bi-dir.  
Digital video data or alternate function  
dip_data[15:0]  
dip_pclk  
-
Bi-dir.  
Bi-dir.  
Bi-dir.  
Digital video data bus  
gpio[5]  
Digital video pixel clock or alternate function  
Digital video output enable or alternate function  
dip_OEn  
gpio[15] or  
dip_blank  
dip_RS  
dip_Wrn  
dip_CSn0  
dip_hsync  
dip_vsync  
-
Output  
Output  
Output  
Digital video register select or alternate function  
Digital video write enable or alternate function  
Digital video chip select 0  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
33  
Interconnect and Communication  
Table 12. Display Interface Pins  
dip_CSn1  
-
Output  
Bi-dir.  
Bi-dir.  
Bi-dir.  
Digital video chip select 1  
dip_CSn2  
dip_CSn3  
gpio[24]  
gpio[25]  
gpio[54]  
-
Digital video chip select 2 or alternate function  
Digital video chip select 3 or alternate function  
External synchronization frame pulse or alternate function  
dip_cpu_vsync  
DAC_comp  
Analog  
Output  
Analog output of the DAC; signal can drive 1.0 Vpp on 75  
ohm load  
DAC_vref_out  
DAC_rset  
-
-
Analog  
Output  
Voltage reference output. This output delivers 1.140 V  
reference voltage from cell. It is normally connected to the  
VREFIN pin.  
Analog In/Out An external resistor Rset connecting DAC_rset pin to AVSS  
adjusts the magnitude of the DAC full-scale output current.  
Recommended setting is 1.02 KOhm with 1% tolerance.  
DAC_vref_in  
DAC_io  
-
-
Analog Input  
Reference voltage input. It is suggested to place 0.1 µF  
ceramic capacitor between this pin and AVSS pin externally.  
Analog  
Output  
Analog output pin (with drive strength) to which a resistor  
and capacitor is attached to ground to set the output current  
of the DAC  
Figure 35. DIP (TFT-RGB-type) Port Timing  
Table 13. DIP (TFT-RGB-type) Port Timing  
Parameter  
Symbol  
Min.  
Typ.  
Max.  
Unit  
DIP port pixel clock frequency  
DIP port output delay time  
t10  
70  
MHz  
ns  
t11 (3.0 V)  
5.5  
NOTE  
DIP’s CPU-type protocol does not have a reference clock to determine setup/hold  
time for dip_data[17:0] (For CPU Read transaction). Timing, as shown in Figure 35,  
is dependent on individual CPU-type LCD, configurable within DIP.  
SCP220x ICP Family, Rev.2.1  
34  
Freescale Semiconductor  
 
Interconnect and Communication  
4.5.2  
Bitblt and Bitblt mini  
Bitblt and Bitblt mini are supported through the SDK under the Graphic Display Interface (GDI).  
4.6  
USB 2.0 HIGH SPEED  
The USB Interface has the following features:  
USB 2.0 HIGH SPEED compliant  
SCP2201 and SCP2207 devices support USB OTG  
USB 2.0 PHY is integrated on chip  
Supports high-speed (480 MHz), full speed (12 MHz), and low speed (1.5 MHz) operation  
Supports seven physical endpoints - one control and six endpoints configurable as IN or OUT. The IN/OUT  
endpoints are software configurable as bulk, isochronous, interrupt or control  
The following table lists the SCP220x pin information for the USB Interface.  
Table 14. USB Interface  
Alternate  
Function  
Signal  
Pin Direction  
Pin Description  
Indicates A or B cable  
usb_phy_id  
-
-
Analog USB pad  
Analog USB pad  
usb_phy_vbus  
Vbus power monitor input. This is a 5 V  
signal (+/-10%) with a max value of 5.5 V .  
usb_phy_Plus  
usb_phy_Minus  
usb_phy_res  
-
-
-
Analog USB pad  
Analog USB pad  
Analog USB pad  
USB data plus  
USB data minus  
External resistor of 8.2 K 1% should be  
connected from here to ground  
utmiotg_drvvbus  
gpio[73]  
Bi-dir.  
Externally controls power source for USB  
VBUS voltage or alternate function;  
The usb_phy_vbus signal monitors the 5.0 V VBus signals for USB 2.0 HIGH SPEED. The following figure illustrates  
USB interface connectivity with the host.  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
35  
Interconnect and Communication  
SCP220x  
usb_phy_id  
usb_phy_Plus  
usb_phy_Minus  
usb_phy_rext  
Host  
8.2KOhm  
(+/- 1%)  
VBUS  
usb_phy_vbus  
utmiotg_drvvbus  
out  
in  
Charge  
Pump  
Figure 36. USB/Host Connectivity  
4.7  
Audio Interface  
The Audio Interface provides a direct connection to either voice quality or high-quality audio ADC/DAC. The Audio  
Interface has the following features:  
Supports I2S or AC97 interface protocol  
Supports full duplex data path  
Separate receive and transmit FIFOs  
Software configurable hardware interface to support a variety of I2S and AC97 applications  
Figure 35 shows the SCP2201/SCP2207 audio interface connections to an audio DAC.  
SCP2201/  
SCP2207  
clkr  
clkx  
dr  
audio_clkr  
audio_clkx  
audio_dx  
audio_dr  
audio_fsr  
audio_fsx  
mclk  
Audio  
DAC  
dx  
fsr  
fsx  
clk  
Figure 37. Audio Interface  
The following lists the SCP2201 and SCP2207 pin information for the Audio Interface.  
Table 15. Audio Interface Pins  
Alternate  
Function  
Signal  
Pin Direction  
Pin Description  
audio_clkr  
audio_clkx  
gpio[16]  
gpio[19]  
Bi-dir.  
Bi-dir.  
Audio receive bit clock or alternate function  
Audio transmit bit clock or alternate function  
SCP220x ICP Family, Rev.2.1  
36  
Freescale Semiconductor  
Interconnect and Communication  
Table 15. Audio Interface Pins  
audio_dr  
audio_dx  
audio_fsr  
gpio[17]  
gpio[20]  
Bi-dir.  
Bi-dir.  
Bi-dir.  
Audio receive data or alternate function  
Audio transmit data or alternate function  
gpio[18] or  
pwm2_out  
Audio receive frame clock or alternate function  
audio_fsx  
mclk  
gpio[21]  
-
Bi-dir.  
Bi-dir.  
Audio transmit frame clock or alternate function  
Audio clock source from external audio DAC.  
There is a large degree of flexibility within this interface that allows support for the following applications:  
AC97 controller sourcing the bit clock  
AC97 controller sinking the bit clock  
I2S controller with a common clock and sync for both receive and transmit. Clock and sync are configurable  
as source or sink.  
I2S controller with a separate clock and sync for the receive and transmit. Clocks and syncs are configurable  
as source or sink.  
The following sample waveforms illustrate the configurability available within this interface. The waveforms also  
identify what timing aspects are software configurable.  
frame_period  
frame_width  
clk  
fs  
txd/rxd  
delay  
word_length  
Figure 38. I2S Stereo Transmission  
frame_period  
frame_width  
clk  
fs  
txd/rxd  
delay  
word_length  
Figure 39. I2S Mono Transmission  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
37  
Interconnect and Communication  
frame_period (48kHz)  
frame_width (1 channel)  
clk  
fs  
txd/rxd  
ch0 ch1 ch2 ch3 ch4 ch5 ch6 ch7 ch8 ch9 ch10 ch11 ch12 ch0  
16-bits 20-bits  
Figure 40. AC97 Mode of Operation  
4.7.1  
Audio Interface Hardware Description  
The hardware implementation for the Audio block is as shown in the following diagram.  
NCO  
mclk  
fsx  
fsr  
clkx  
clkr  
Clock  
Generator  
APB interface  
DMA sideband  
Registers  
TX1  
FIFO  
Frontend  
RX1  
FIFO  
txd  
rxd  
Interrupt  
Generation  
Interrupt  
Audio Block  
Figure 41. Audio Hardware Architecture  
The clock generator block takes the software configuration from the registers block and divides the master clock  
down appropriately to produce the bit clocks for the transmit and receive. Software configuration also controls the  
PAD enables at the top level. If the ASIC sources the bit clocks, the PADs are enabled otherwise the bit clocks are  
inputs and are driven by an external source. Irregardless of the bit clock source, the bit clocks re-enter the audio  
block and are used as clocks in the frontend block. Software configuration select either the positive edge or negative  
of the clock and also select whether the receive section has it.s own unique bit clock or uses the same bit clock as  
the transmit section.  
The frontend block primarily serializes and de-serializes the data form the receive and transmit fifos. The frame/sync  
pulses are also generated through a software configured divide of the bit clocks.  
The transmit and receive fifos are asynchronous fifos with the internal side residing in the system clock domain and  
the external side residing in the bit clock domains. This is the mechanism for crossing between the two clock  
domains.  
The frontend operates quite differently when running in the I2S mode than when running in the AC97 mode. The I2S  
mode operates in stereo or mono. The difference between the two is that the fifos are accessed twice for the stereo  
mode of operation and only once for mono mode. The stereo mode sends left/right channel data on one edge of the  
frame signal and sends right/left channel data on the other edge of the frame signal. The frame sync will typically be  
configured with a 50% duty cycle. Mono mode only sends data on the assertion of the frame signal. In this case the  
frame signal is typically a pulse that occurs at the beginning of the frame. Data is always sent MSB first. The fifo can  
SCP220x ICP Family, Rev.2.1  
38  
Freescale Semiconductor  
Interconnect and Communication  
only be accessed with width increments of 8,16 or 32 bits. If the actual word length is not on these boundaries, a  
larger data width is used with zeros padded in the extra bits (the data is right justified). The data organization in the  
fifo is dependant on the word length. Also, for stereo applications, the left and right channel data alternate. The  
following diagram illustrates some examples of fifo data organization.  
32-bit  
32-bit  
32-bit  
R
R
R
L
L
L
R
R
R
L
L
L
L
2
4
6
1
3
5
R
L
Stereo mode - 8-bit words Stereo mode - 20-bit words Mono mode - 16-bit words  
Figure 42. I2S FIFO Data Organization  
AC97 is comprised of 13 channels of which the first channel is 16 bits and the rest are 20 bits in length. The frame  
period is 48 Khz. The following diagram illustrates the channel organization.  
0
1
2
3
4
5
6
7
8
9
10  
11  
12  
slot #  
sync  
CMD  
ADDR  
CMD  
DATA  
PCM L PCM R LINE 1  
PCM  
PCM L PCM R  
PCM  
LFE  
LINE 2  
DAC  
HSET  
DAC  
TAG  
TAG  
IOCTRL  
sdata_out  
sdata_in  
FRONT FRONT  
DAC  
CENTER SURR SURR  
PCM L  
(n+1)  
PCM L PCM R PCM R PCM L PCM R PCM C  
(n+1)  
(n+1)  
(n+1)  
(n+1)  
(n+1)  
(n+1)  
STATUS STATUS  
ADDR DATA  
LINE 1  
ADC  
PCM  
MIC  
LINE 2  
ADC  
HSET STATUS  
ADC IOCTRL  
PCM L PCM R  
RSVRD RSVRD RSVRD  
Figure 43. AC97 AC Link Frame Organization  
The AC-link output slots are described below. Data for channels 3-12 come from the transmit fifo. If multiple channels  
are enabled it is assumed that the data is organized in the fifo in the order that the channel gets transmitted.  
Channels 0, 1, 2 and 12 are driven by software register configurations and accesses.  
Slot  
Name  
Description  
0
1
SDATA_OUT TAG  
Control CMD ADDR write port  
Control DATA write port  
PCM L&R DAC playback  
Modem line 1 DAC  
MSBs indicate which slots contain valid data. LSBs convey codec ID.  
Read/Write command bit plus 7 bit codec register address.  
16 bit command register write data.  
2
3,4  
5
16,18,20 bit PCM data for left and right channels.  
16 bit modem data for modem line 1 output.  
6,7,8,9  
10  
PCM center, surround L&R, LFE  
Modem Line 2 DAC  
16,18,20 bit PCM data for center, surround L&R, LFE channels.  
16 bit modem data for modem line 2 output.  
11  
Modem handset DAC  
Modem IO control  
16 bit modem data for modem handset output.  
GPIO write port for modem control.  
12  
10,11  
SPDIF Out  
Optional AC-link bandwidth for SPDIF output.  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
39  
Interconnect and Communication  
6-12  
Double rate audio  
Optional AC-link bandwidth for 88.2 or 96khz on L, C, R channels.  
The AC-link input slots are described below. Data from slots 3-11 (if valid) is written into the receive fifo in the order  
that the channel arrives. Valid data from channel 1,2 and 12 is presented in a software register. An interrupt/status  
indicator informs software that the register contains new data.  
Slot  
Name  
Description  
0
1
SDATA_IN TAG  
STATUS ADDR read port  
STATUS DATA read port  
PCM L&R ADC record  
Modem line 1 ADC  
MSBs indicate which slots contain valid data.  
MSBs echo register address. LSBs indicate which slots request data.  
16 bit command register read data.  
2
3,4  
5
16,18,20 bit PCM data from left and right channels.  
16 bit modem data for modem line 1 input.  
6
Dedicated Microphone ADC  
Vendor reserved  
16,18,20 bit PCM data from optional 3rd ADC input.  
Vendor specific (enhanced input for docking, array mic, etc.  
16 bit modem data for modem line 2 input.  
7,8,9  
10  
11  
12  
Modem Line 2 ADC  
Modem handset ADC  
Modem IO status  
16 bit modem data for modem handset input.  
GPIO read port for modem status.  
Channel 1&2 are used to read and write registers within the codec. The mechanism to utilize these channels is not  
through the fifo datapath. Instead software registers exist for the codec address, write data and read data.  
Configuration of these registers will enable channel 1&2 in the next audio frame. An interrupt/status indicator  
provides feedback on the completion of register writes or on the availability of register read data. More details of this  
operation is described in the register definitions. In a similar fashion, the modem IO control and status (channel 12)  
are also controlled by software registers.  
AC97 codecs have a reset input. It is assumed that this is a GPIO and under software control. Whether or not the  
codec sinks or sources the bit clock is determined by the conditions when the reset is removed. If the codec detects  
a bit clock present (minimum 5 clocks) while reset is asserted it will be configured to sink the bit clock, otherwise it  
will source the bit clock. Depending on the application (ASIC sinking or sourcing the bit clock) software must  
appropriately configure and enable the bit clock generation prior to releasing the codec reset if the application  
requires the ASIC to source the bit clock. This sequence of events must occur everytime the codec is reset.  
There are 3 types of codec resets. The external pin reset (as described above) is a “cold” reset. When a cold reset  
occurs all codec registers are reset and bit clock sourcing is re-determined. A “warm” reset will re-activate the  
AC-link without resetting the codec registers. A “warm” reset is indicated by a 1 µsec pulse on the sync line. Software  
can initiate this process through register configuration. The third reset mechanism is a register bit in the codec.  
Software has access to this mechanism through the regular codec register configuration process.  
The codec can also be placed in “power-down” mode. This is achieved by writing to a particular register in the codec.  
Since this mechanism requires the hardware to enter a particular state after channel 2 has been sent, in addition to  
the codec register configuration process, a software indicator bit must be set. To exit from this state a “warm” reset  
must be issued.  
The AC-link provides 12 channels (@ 20 bits) with a frame rate of 48 Khz. The interface also supports a mechanism  
that allows for sampling rates other than 48 Khz. Data rates of 44.1 Khz, 88.2 Khz and 96 Khz are also supported.  
The double-rate audio (88.2 Khz or 96 Khz) is supported by combining two slots per DAC channel. This would utilize  
the optional alternate channel source for channels 6-12.  
Up-sampling is not required to support the 44.1 Khz or 88.2 Khz data rates. Channel 0 (in both the incoming and  
outgoing data stream) contains valid channel flags. This provides the mechanism to send valid data in a sub-set of  
SCP220x ICP Family, Rev.2.1  
40  
Freescale Semiconductor  
Interconnect and Communication  
the frames being sent. A 44.1 Khz data rate needs valid data in only 441 frames for every 480 frames transferred at  
48 Khz. The codec determines when data is sent by setting the channel request bits in the incoming TAG  
information in channel 0. These are examined by hardware, and the appropriate channels are tagged as  
valid and filled with data. Since it is assumed that the fifo is filled with the appropriate sequence of data  
depending on which channels are enabled, the hardware must wait until all channel requests (for channels  
that are enabled) are requesting since it is not possible to send a channel data in a different sequence  
than that present in the fifo. Similarily it is assumed that the receive data remains in order (ie. All channels  
are valid or not valid) and the data is written to the fifo as it is received.  
A detailed view of the physical AC-link protocol is illustrated in the following diagrams.  
sync  
bit_clk  
Valid  
Frame  
sdata_out  
slot 1  
slot 12  
Time Slot “valid” bits  
End of previous audio frame  
0
ID1  
ID0  
19  
0
19  
0
19  
0
Codec ID  
slot 1  
slot 2  
slot 12  
Figure 44. AC97 AC-link Output Frame  
sync  
bit_clk  
codec  
ready  
sdata_in  
slot 1  
Time Slot “valid” bits  
End of previous audio frame  
slot 12  
0
0
0
19  
0
19  
0
19  
0
Codec ID  
slot 1  
slot 2  
slot 12  
Figure 45. Figure 44 AC97 AC-link Input Frame  
Control registers are described at 5.10, Audio Registers.  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
41  
Interconnect and Communication  
4.7.2  
Audio Port Timing  
audio_fs  
t22  
audio_clk  
audio_dr  
t23  
t24  
audio_dx  
t25  
Figure 46. Audio Port Timing  
Table 16. Audio Port Timing  
Parameter  
audio_clk frequency  
Symbol  
Min.  
Typ.  
Max.  
Unit  
t22  
50  
MHz  
ns  
Input data (audio_fs, audio_dr) setup time to the  
rising edge of audio_clk  
t23(3.0 V)  
2.9  
0.1  
Input data (audio_fs, audio_dr) hold time from the  
rising edge of audio_clk  
t24(3.0 V)  
t25(3.0 V)  
ns  
ns  
Output data (audio_fs, audio_dx) delay time from  
the rising edge of audio_clk  
13.25  
4.8  
Media Storage MMC and MMCPlus blocks (compatible SD/SDHC)  
The SCP220x has two MMC blocks both having identical characteristics except that MMCPlus is capable of 8-bit  
parallel data path:  
MMC: 1 or 4-bit data width  
MMCPlus: 1 or 4 or 8-bit data width  
Secure Digital and MMC are supported on both blocks; MMCPlus only on the MMCPlus block.  
The Media Storage Interfaces are compatible with the SD and SDHC memory card specifications. SDHC cards are  
supported up to 32 GB capacity, but only at SD card interface rates (i.e. clock is 25 MHz and not 50 MHz as SDHC  
allows).  
The Media Storage Interfaces have the following features:  
Software programmable external clock  
Support of a 48-bit command through a software accessible command buffer  
Support of both a 48 or 136-bit response through a response buffer  
Support of CRC generation and checking  
SCP220x ICP Family, Rev.2.1  
42  
Freescale Semiconductor  
Interconnect and Communication  
Software configurable data width of 1 (MMC mode) or 4 bits (SD/SDHC mode) [or 8 bits (MMCPlus) for the  
MMCPlus block]  
Incoming and outgoing datapath (implemented using FIFOs) driven by a DMA engine  
The interface does not manage the media card power supply. Figure 45 shows the connectivity between the  
SCP220x and an SD memory card.  
SCP220x  
clk  
cmd  
data  
sd_clk  
SD  
sd_cmd  
sd_data[3:0]  
Figure 47. Media Storage Interface to SD Card  
The following table lists the SCP220x pin information for the Media Storage Interfaces. Note that the MMCPlus is  
only accessible from alternate functions.  
Table 17. Media Storage Interfaces Pins  
Pin  
Type  
Signal  
Alternate Function  
Pin Description  
sd_clk  
gpio[35]  
gpio[34]  
Bi-dir.  
Bi-dir.  
SD/SDHC clock or alternate function  
sd_cmd  
SD/SDHC serial command/response or  
alternate function  
sd_D[3:0]  
gpio[33:30]  
Bi-dir.  
SD/SDHC serial data or alternate function  
nand_cen_p[0]  
nand_cen_p[1]  
nand_data_p[7:0]  
gpio[12] / mmcplus_clk  
Gpio[70] / mmcplus_cmd  
Bi-dir  
Bi-dir  
Bi-dir  
Clock  
Command  
Data  
gpio[81:74] /  
mmcplus_data[7:0]  
4.8.1  
Media Storage Interfaces Hardware Description  
The hardware implementation for the MMC and MMCPlus block are as shown in the following diagram.  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
43  
Interconnect and Communication  
Media Storage Block  
sys_clk domain mmc_clk / mmcp_clk domain  
Clock  
Generator  
mmc_clk/  
mmcp_clk  
AHB  
DMA  
Registers  
TX  
FIFO  
cmd/rsp  
data  
RX  
FIFO  
Interrupt  
Generation  
Interrupt  
Figure 48. Media Storage MMC/MMCPlus Hardware Architecture  
The hardware architecture of the MMC/MMCPlus blocks are similar to the other serial interface blocks. A register  
section contains the software interface and is read and written from the AMBA bus.  
The clock generator block, when enabled, divides the system clock down to create the external serial clock. To  
simplify timing constraints, the clock is brought back into the block from the outgoing PAD and is used as a clock for  
the front end interface block as well as the external side of the FIFOs.  
The RX/TX FIFOs are asynchronous FIFOs with the internal side driven by sys_clk and the external side driven by  
mmc_clk/mmcp_clk.  
The front-end block is a large state machine that deals with the commands initiated in the register block and  
generates the appropriate protocol on the external interface.  
MMC Control registers are described at 5.11, MMC/SD Control Registers  
MMCPlus Control registers are described at 5.12, MMCPlus Control Registers  
4.8.2  
Programming Model  
This section illustrates a number of example software flow diagrams to help illustrate how the interface is used from  
a software driver perspective. These flows are examples and by no means indicate that this is the only driver flow.  
Depending on the physical device attached variants of the basic examples shown may very well be required.  
The SD interface is based on a command and response architecture. The ASIC will issue the command written by  
software into the command buffer. The media device will generate a response and this will be capture in the  
response buffer for software viewing. Data is then read or written on a 4096bit block basis. Single or multiple data  
blocks can be accessed. Hardware strips off the start stop, transmitter and CRC fields prior to dumping the response  
or read data in the buffer space. The reverse process happens for the commands and write data blocks.  
The following steps illustrate an example media card data read.  
1. Initialize the interface pertinent for the media card installed. This would involve configuration of the clock rate  
and configuration register.  
2. Configure the datapath parameters in the data control register.  
3. Issue a command by writing the appropriate command and argument to the command and argument  
registers. The argument register should be written first since the act of writing to the command registers  
initiates the operation on the interface.  
4. If applicable, monitor for a response from the command and verify the response information.  
5. Drain the fifo as it fills up. This can be done directly by reading the fifo or a dma channel can be setup to  
drain the fifo.  
SCP220x ICP Family, Rev.2.1  
44  
Freescale Semiconductor  
Interconnect and Communication  
6. Continue the draining operation until the “sd_data_complete” interrupt occurs.  
7. Check whether or not any errors have occurred.  
The following steps illustrate an example media card data write:  
Initialize the interface pertinent for the media card installed. This would involve configuration of the clock rate  
and configuration register.  
Configure the datapath parameters in the data control register.  
Issue a command by writing the appropriate command and argument to the command and argument  
registers.  
If applicable, monitor for a response from the command and verify the response information.  
Fill the fifo. This can be done directly by writing to the fifo or a dma channel can be setup to fill the fifo.  
Continue the filling operation until the “sd_data_complete” interrupt occurs.  
Check whether or not any errors have occurred.  
4.8.3  
MMC/MMCPlus Port Timing  
t27  
sd_clk  
t28 t29  
inputs  
t30  
outputs  
Figure 49. MMC/MMCPlus Port Timing  
Table 18. MMC/MMCPlus Port Timing  
Parameter  
Symbol  
Min.  
Typ.  
Max.  
Unit  
MMC port clock frequency  
MMC port input setup time  
MMC port input hold time  
MMC port output delay time  
t27  
25  
MHz  
ns  
t28 (3.0 V)  
t29 (3.0 V)  
t30 (3.0 V)  
2.5  
5.0  
ns  
12.5  
ns  
4.9  
I2C Interface  
The I2C controller is a peripheral interface intended for configuring external devices such as sensors and audio  
DACs. The interface consists of the following signals:  
serial clock – This is a clock to sample an incoming serial data stream or to indicate when an outgoing serial  
stream has valid data. This serial clock pin will “float” high and “drive” low much like an open collector and  
requires an external pull-up resistor.  
serial data – This is a bi-directional IO that can be driven by either the SCP220x or the peripheral being  
configured. The serial data pin will “float” high and “drive” low much like an open collector and requires an  
external pull-up resistor.  
The SCP220x has two I2C interfaces on chip. One of these interfaces has primary functionality on dedicated I/Os.  
The other I2C interface has its serial clock and serial data accessible as alternate functions via shared I/Os as shown  
in the table below.  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
45  
Interconnect and Communication  
Table 19. I2C Interface  
Pin Direction  
Alternate  
Function  
Signal  
Pin Description  
scl  
gpio[36]  
gpio[37]  
Bi-dir.  
Bi-dir.  
Bi-dir.  
Bi-dir.  
Serial configuration clock  
Serial configuration data  
Serial configuration clock  
Serial configuration data  
sda  
dip_data[17]  
dip_data[16]  
gpio[3] / scl_sec  
gpio[4] / sda_sec  
Transactions on the serial interface follow a particular protocol.  
Transmission Start  
Peripheral Slave Address  
Peripheral Internal Address  
Data transfer  
Transmission Stop  
Transmission start and stop are indicated by sequencing the serial clock and data as illustrated in the following  
diagram. Transmission start occurs when serial data falls while serial clock is high and transmission stop occurs  
when serial data rises while serial clock is high.  
serial_clk  
T
T
susto  
hdsta  
serial_data  
T
buf  
Stop  
Start  
Figure 50. Transmission Stop and Start Conditions  
As illustrated there are a few timing parameters that must be satisfied for proper operation. Software configurable  
counters are used to generate these time intervals since the system clock rate is not fixed.  
There is also a software configurable delay parameter as illustrated below:  
Typical Write Sequence  
Tdelay  
Tdelay  
Tdelay  
R
S1  
SLAVE ID  
A
ADDRESS  
ADDRESS  
A
A
WRITE DATA  
A
S2  
W
Typical Read Sequence  
Tdelay  
Tdelay  
Tdelay  
Tdelay  
R
R
S1  
SLAVE ID  
A
S1  
SLAVE ID  
A
W
READ DATA  
A
S2  
W
S1 Start  
R
Indicates whether the data transaction is a Read (“1”) or a Write (“0”)  
Acknowledge  
W
A
S2 Stop  
Figure 51. I2C Configurable Delay  
SCP220x ICP Family, Rev.2.1  
46  
Freescale Semiconductor  
Interconnect and Communication  
The following diagram illustrates the address and data phases of the transaction cycle.  
Typical Write Sequence  
- - - -  
R
- - - - -  
- - - - -  
2
S1  
7
6
2
1
0
A
7
6
2
1
0
A
7
6
1
0
A S2  
W
Phase 1  
Phase 2  
Phase 3  
S1 Start  
R
Indicates whether the data transaction is a Read (“1”) or a Write (“0”)  
Acknowledge  
W
A
S2 Stop  
Figure 52. Serial Configuration Transaction Protocol  
A basic element of a transaction is called a phase. A transaction can contain either 2-phases or 3- phases depending  
on the peripheral. Usually a write transaction is a 3-phase transaction specifying the slave address, internal address  
and data. A read transaction is usually a 2-phase transaction comprised of a peripheral slave address phase and a  
data phase. The read transaction likely was preceded by a 2-phase write transaction that included a peripheral slave  
address phase and a peripheral internal address phase.  
A phase consists of sequential data transmission of 8-bits that followed by an acknowledge bit. The source of the  
acknowledge bit is the recipient of the previous 8 bits of data. The external peripheral will source the acknowledge  
bit for slave and internal address phases as well as write data phases. The controller sources the acknowledge for  
data read phases.  
The peripheral Slave address phase contains a 7 bit slave ID as well as a R/W bit. The R/W bit indicates to the  
peripheral whether or not the following phases are read or write transactions. R/W=1 indicates a read transaction  
and R/W=0 indicates a write transaction.  
The I2C Controller supports both the master arbitration protocol as well as the Slave stall protocol.  
The master arbitration protocol is utilized in systems that have multiple master controllers. The master controller  
monitors the input SDA line during the SCL high period to see if the data it sent is present on the external SDA line.  
The SDA line is open-collector, so if another master is driving the SDA line low the input SDA will not match the  
output SDA for a master that is floating SDA high. This master is deemed to have lost arbitration and will remove  
itself from the transaction. Master arbitration only occurs during the slave address phase and the write data phases  
(this is when the master drives the SDA line).  
The slave peripheral has a mechanism to stall any part of the I2C transaction. This is done by pulling the  
SCL line low. The master monitors the SCL input to see if it is held low after the master has driven SCL  
high. If it is still low, it knows that a slave is stalling the operation and the master pauses until the SCL line  
floats high (i.e. the slave releases SCL when it is ready for the next part of the transaction.  
4.9.1  
I2C Hardware Description  
The hardware implementation for the serial controller block is fairly simple and only has a few internal blocks as  
shown in the following diagram.  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
47  
Interconnect and Communication  
2
I C Block  
sys_clk domain  
Interrupt  
Generation  
Interrupt  
AHB  
State  
Machine  
scl  
Registers  
De-  
serializer  
Serializer  
sda  
Figure 53. I2C Hardware Architecture  
The serial controller is mostly a single state machine that gets initiated by software “kicks”. The various phases of  
the transaction are initiated by a software register access. The state machine initiates the appropriate hardware  
protocol at the interface as dictated by the register access.  
4.9.2  
Programming Model  
The serial controller will be used for two very common operations. Either the controller will be used to write to a  
peripheral to configure the setup of the peripheral or it may be used to read from a register within the peripheral. The  
following sections provide programming guidelines for these two scenarios.  
4.9.2.1  
Peripheral Write – Manual Mode  
The following steps suggest an algorithm for programming a peripheral configuration.  
Initialize the three configuration registers.  
Write the slave ID to the slave address register along with read_write=0.  
Write the peripheral address to the target address register.  
Write the peripheral data to the target data register.  
Set the start bit in the control register.  
Wait until the acknowledge interrupt occurs.  
Set the stop bit in the control register.  
Wait until the stop interrupt occurs.  
4.9.2.2  
Peripheral Write – Automatic Mode  
The following steps suggest an algorithm for programming a peripheral configuration. This mode of operation is  
enabled by setting the auto_mode_ena bit in the config1 register  
Initialize the three configuration registers.  
Write the slave ID to the slave address register along with read_write=0.  
Write the peripheral address to the target address register.  
Write the peripheral data to the target data register.  
Set the start bit in the control register.  
Wait until the stop interrupt occurs.  
SCP220x ICP Family, Rev.2.1  
48  
Freescale Semiconductor  
Interconnect and Communication  
4.9.2.3  
Peripheral Read – Manual Mode  
The following steps suggest an algorithm for programming a peripheral configuration.  
Initialize the three configuration registers.  
Write the slave ID to the slave address register along with read_write=0.  
Write the peripheral address to the target address register.  
Set the start bit in the control register.  
Wait until the acknowledge interrupt occurs.  
Write the slave ID to the slave address register along with read_write=1.  
Set the start bit in the control register.  
Wait until the acknowledge interrupt occurs.  
Set the stop bit in the control register.  
Wait until the stop interrupt occurs.  
Read the configuration data from the slave data register.  
4.9.2.4  
Peripheral Read – Auto Mode  
The following steps suggest an algorithm for programming a peripheral configuration. This mode of operation is  
enabled by setting the auto_mode_ena bit in the config1 register  
Initialize the three configuration registers.  
Write the slave ID to the slave address register along with read_write=1.  
Write the peripheral address to the target address register.  
Set the start bit in the control register.  
Wait until the stop interrupt occurs.  
Read the configuration data from the slave data register.  
I2C Control registers are described at 5.13, I2C Registers.  
4.9.3  
I2C Port Timing  
t34  
scl  
sda (in)  
t35 t36  
t37  
sda (out)  
Figure 54. I2C Port Timing  
Table 20. I2C Port Timing  
Parameter  
Symbol  
Min.  
Typ.  
Max.  
Unit  
I2C port clock frequency (fSCL  
)
t34  
t35  
t36  
400  
kHz  
ns  
I2C port input setup time (tSU;DAT  
I2C port input hold time (tHD;DAT  
)
1001  
0
)
ns  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
49  
Interconnect and Communication  
Table 20. I2C Port Timing  
I2C port output delay time (tVD;DAT  
)
t37  
9001  
ns  
1
The I2C Controller design transitions signals at ¼ period intervals of the scl_clk, additionally the I/O pads are designed for  
operating at >100 Mhz switching frequency, ensuring that the timing specifications of the I2C specification (NXP  
Semiconductors Document UM10204, I2C-bus specification and user manual, Rev 5 – 9 October 2012) are met.  
Example: fSCL = 400 kHZ , scl_clk period = 2500ns;  
t35 = ¼ scl_clk period = 625ns ;  
t37 = ¼ scl_clk period = 625ns  
4.10 Pulse Width Modulated Outputs  
Two pulse width modulated (PWM) outputs are available as alternate pin functions. As shown in the following table  
Table 21. PWM Function Pinout  
Signal  
Alternate Function  
Pin Direction  
Pin Description  
audio_fsr  
gpio[18] or pwm2  
Bi-dir.  
Audio receive frame clock, GPIO or PWM  
signal as alternate function;  
sc_fcb  
gpio[57] or pwm1  
Bi-dir.  
Smart card, GPIO or PWM signal as alternate  
function;  
4.10.1 PWM Hardware Description  
The Pulse Width Modulation block allows for generating digital signal with variable pulse width with the following  
features:  
Control of working frequency from system clock (sys_clk) to system clock divided by 4096 (8- bit divider  
followed by 1, 1/2, 1/4, 1/8 or 1/16)  
Control of period and pulse width through 16-bit registers (from 1 to 65536)  
One shot or free running with posted value updates  
Out signal inverter  
Out signal dead-zone generator through 8-bit register  
The following diagram illustrates the architecture of the Pulse Width Modulation (PWM).  
SCP220x ICP Family, Rev.2.1  
50  
Freescale Semiconductor  
Interconnect and Communication  
PWM Block  
t0_com_buffer  
t0_count_buffer  
t0_update  
sys_clk  
prescaler + 1  
t0_start  
/n  
t0_auto_reload  
/1  
/2  
t0 _clk_sel  
t0 _inverter  
dead_zone_en  
Control  
Logic 0  
tout0  
/4  
Dead-zone  
/8  
dead_zone_length  
t1 _inverter  
/16  
t1 _clk_sel  
Control  
Logic 1  
tout1  
t1_com_buffer  
t1_count_buffer  
t1_update  
Legend:  
Signal  
t1_start  
t1_auto_reload  
Register  
Figure 55. PWM Hardware Architecture  
The Tout0 frequency is determined by the following formula:  
For Tout1, just replace the t0 by t1.  
PWM Control registers are described at 5.14, PWM Registers.  
4.10.2 PWM Programming Notes  
4.10.2.1 Example  
The following section provides some details on appropriate programming of the PWM using an example. The  
following diagram illustrates a timeline for a particular PWM configuration.  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
51  
Interconnect and Communication  
start bit =1  
timer started  
count=com  
auto-reload  
count=com  
timer is stopped  
com_buffer  
1
0
count_buffer  
3
3
2
1
0
2
1
0
0
auto reload=0  
count=3  
cmp=1  
count=2  
cmp=0  
manual update = 1 manual update = 0  
interrupt request interrupt request  
auto reload = 1  
auto reload = 1  
TOUTn  
1
2
3
4
TOUTn  
30  
30  
20  
40  
10  
50  
60  
60  
60  
5
6
Interrupt  
The following events refer to the numbering in the above diagram  
1. count=60, cmp=30, update=1, auto_reload=1, update=0. The update must be toggled from “1” to “0”. The  
value of the next count and cmp can be set at step 3. In the case where these values have been set prior to  
step 1, the update should be disabled. If the next value is set in the enable state, this next value goes into  
the first value of count and cmp at the “start”.  
2. start=1.  
3. cmp=20. This can be set as soon as the start was issued in step 2. In the case where auto_reload is  
enabled, the count is updated when the interrupt occurs so count and cmp must be set prior to the interrupt  
event. If the cmp value is enough until the next reflection, it can be set after the interrupt.  
4. cmp=10.  
5. auto_reload=0.  
6. start=0.  
4.10.2.2 PWM as general timer  
Another use of the PWM is as a general timer. For this scenario, the cmp value is deducted from the PWM timer.  
The rest of the settings are identical to the PWM usage. For example to get an interrupt every 10msec (100hz) for  
a 24 Mhz clock source, the following settings are required.  
24 Mhz / 100hz = 240,000  
240,000 = (prescaler + 1) x (1/Tn_clk_sel) x (count + 1)  
Prescaler=99, 1/Tn_clk_sel=16, count=149  
4.10.2.3 PWM dead zones  
Another PWM usage is to have dead zones. A dead-zone delays the low to high transition point. The following  
diagram illustrates the concept.  
SCP220x ICP Family, Rev.2.1  
52  
Freescale Semiconductor  
Interconnect and Communication  
TOUT0  
TOUT0_DZ  
4.11 KeyPad Scan Interface  
The SCP220x has an optional keyscan capability. The keyscan processor has four output scan ports and four input  
scan ports to allow recognition of up to 16 keys.  
The Keyscan Interface provides the following features:  
Programmable key scan and sense polarity  
Programmable scan time  
Programmable scan matrix  
Auto clearing of the sense value after it has been read  
Supports typing mode and gaming mode  
Figure 54 shows the keyscan system implementation.  
scanout1  
scanout2  
scanout3  
scanout4  
pull-up  
sensein1  
sensein2  
sensein3  
sensein4  
scanout1  
scanout2  
scanout3  
Tscan Tscan Tscan  
sense value catch  
Figure 56. Keyscan Interface  
Table 22 lists the SCP220x pin information for the Keyscan Interface. To enable the keyscan interface, the Alternate  
Function register must be programmed accordingly.  
Table 22. Keyscan Interface  
Signal  
Keyscan Function  
Pin Direction  
Pin Description  
reserved_14  
gpio[45] or keyscan_out3  
Bi-dir.  
GPIO or alternate function  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
53  
Interconnect and Communication  
Table 22. Keyscan Interface  
reserved_13  
reserved_12  
reserved_11  
reserved_10  
reserved_9  
reserved_8  
reserved_7  
gpio[44] or keyscan_out2  
gpio[43] or keyscan_out1  
Bi-dir.  
GPIO or alternate function  
GPIO or alternate function  
GPIO or alternate function  
GPIO or alternate function  
GPIO or alternate function  
GPIO or alternate function  
GPIO or alternate function  
Bi-dir.  
Bi-dir.  
Bi-dir.  
Bi-dir.  
Bi-dir.  
Bi-dir.  
gpio[42] or keyscan_out0  
gpio[41] or keyscan_in3  
gpio[40] or keyscan_in2  
gpio[39] or keyscan_in1  
gpio[38] or keyscan_in0  
Keyscan control registers are described at 5.15, KeyScan Registers.  
4.12 GPIOs and Alternate Functions  
A number of external pins have additional GPIO functionality and possibly an alternate function as shown in GPIO  
and Alternate Function List.  
The “gpio enable” register controls whether the pin functions as a GPIO. For the pins that have also an alternate  
function, the “alternate function enable” register selects the alternate function if the GPIO enable bit for that pin is  
disabled.  
NOTE  
External pins labeled ‘reserved_#’ should only be used as GPIOs or as the  
alternate function as the primary functionality is reserved and not intended for use  
during normal operation. The SDK generates a firmware that handles the pin  
function already.  
The primary function, GPIO, alternate function is listed in 4.12.1, GPIO and Alternate Function List below.  
The pinout is listed in Table 88 (SCP220x Pinout)  
The GPIO control registers are described at 5.16, GPIO Registers  
The PAD and I/O control registers are described at 5.3, PAD and I/O registers  
The GPIO enable bits are listed in ,  
The Alternate function enable bits are listed in Table 40., Alternate Function Enable Register  
The PAD strength enable bits are listed in Table ,  
The PAD Types are described below 4.12.2, PAD Type description  
4.12.1 GPIO and Alternate Function List  
Table 23. GPIOs and Alternate Functions Shared with External Pins  
GPIO  
PIN - MAIN  
ALTERNATE  
POWER  
PAD TYPE  
PAD Resistor/Default  
-
-
-
-
dip_rs_p  
dip_wen_p  
spi1_sck_p  
spi1_rxd_p  
dip_hsync  
dip_vsync  
mp2ts1_clk  
mp2ts1_d  
LVDD  
LVDD  
JVDD  
JVDD  
B
B
A
A
PD/none  
PD/none  
PD/none  
PD/none  
SCP220x ICP Family, Rev.2.1  
54  
Freescale Semiconductor  
 
 
Interconnect and Communication  
Table 23. GPIOs and Alternate Functions Shared with External Pins  
-
spi1_ssn_p  
spi1_txd_p  
mp2ts1_sync  
mp2ts1_valid  
sdram_clk_fb  
JVDD  
JVDD  
C
A
B
A
B
A
B
B
B
A
A
A
A
A
A
C
A
A
B
A
A
A
A
A
A
A
A
D
D
A
A
C
PU/PU  
PD/none  
-
-
-
sdram_clkn_p  
Reserved_1  
sif_clkout_p  
Reserved_2  
dip_data_p[17]  
dip_data_p[16]  
dip_pclk_p  
RVDD  
MVDD  
SVDD  
MVDD  
LVDD  
gpio00  
gpio01  
gpio02  
gpio03  
gpio04  
gpio05  
gpio06  
gpio07  
gpio08  
gpio09  
gpio10  
gpio11  
gpio12  
gpio13  
gpio14  
gpio15  
gpio16  
gpio17  
gpio18  
gpio19  
gpio20  
gpio21  
gpio22  
gpio23  
gpio24  
gpio25  
gpio26  
gpio27  
gpio28  
PD/none  
PD/none  
PD/PD  
scl_sec  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PU/PU  
sda_sec  
LVDD  
LVDD  
Reserved_3  
Reserved_4  
Reserved_5  
Reserved_6  
nand_ale_p  
nand_cle_p  
nand_cen_p[0]  
nand_wen_p  
nand_ren_p  
dip_oen_p  
pwi_clk  
MVDD  
MVDD  
MVDD  
MVDD  
NVDD  
NVDD  
NVDD  
NVDD  
NVDD  
LVDD  
pwi_data  
mmcplus_clk  
dip_blank  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PU/PU  
audio_clkr_p  
audio_dr_p  
audio_fsr_p  
audio_clkx_p  
audio_dx_p  
audio_fsx_p  
uart_txd_p  
AUVDD  
AUVDD  
AUVDD  
AUVDD  
AUVDD  
AUVDD  
JVDD  
pwm2_out  
uart_rxd_p  
JVDD  
dip_csn2_p  
dip_csn3_p  
spi_txd_p  
LVDD  
LVDD  
PU/PU  
JVDD  
PD/none  
PD/none  
PU/PU  
spi_rxd_p  
JVDD  
spi_ssn_p  
JVDD  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
55  
Interconnect and Communication  
Table 23. GPIOs and Alternate Functions Shared with External Pins  
gpio29  
gpio30  
gpio31  
gpio32  
gpio33  
gpio34  
gpio35  
gpio36  
gpio37  
gpio38  
gpio39  
gpio40  
gpio41  
gpio42  
gpio43  
gpio44  
gpio45  
gpio46  
gpio47  
gpio48  
gpio49  
gpio50  
gpio51  
gpio52  
gpio53  
gpio54  
gpio55  
gpio56  
gpio57  
gpio58  
gpio59  
gpio60  
spi_sck_p  
mmc_data_p[0]  
mmc_data_p[1]  
mmc_data_p[2]  
mmc_data_p[3]  
mmc_cmd_p  
mmc_clk_p  
JVDD  
SDVDD  
SDVDD  
SDVDD  
SDVDD  
SDVDD  
SDVDD  
SVDD  
A
B
B
B
B
B
D
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
D
B
B
B
B
B
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PU/PU  
scl_p  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PU/PU  
sda_p  
SVDD  
Reserved_7  
Reserved_8  
Reserved_9  
Reserved_10  
Reserved_11  
Reserved_12  
Reserved_13  
Reserved_14  
dip_data_p[18]  
dip_data_p[19]  
dip_data_p[20]  
dip_data_p[21]  
dip_data_p[22]  
dip_data_p[23]  
fodd_p  
keyscan_in0  
keyscan_in1  
keyscan_in2  
keyscan_in3  
keyscan_out0  
keyscan_out1  
keyscan_out2  
keyscan_out3  
MVDD  
MVDD  
MVDD  
MVDD  
MVDD  
MVDD  
MVDD  
MVDD  
LVDD  
LVDD  
LVDD  
LVDD  
uart1_rxd  
uart1_txd  
LVDD  
LVDD  
SVDD  
sif_gpio_p  
SVDD  
dip_cpu_vsync_p  
sc_clk_p  
LVDD  
SMVDD  
SMVDD  
SMVDD  
SMVDD  
SMVDD  
SMVDD  
sc_rst_p  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
sc_fcb_p  
pwm1_out  
sc_io_p  
sc_card_detect_p  
sc_power_on_p  
SCP220x ICP Family, Rev.2.1  
56  
Freescale Semiconductor  
Interconnect and Communication  
Table 23. GPIOs and Alternate Functions Shared with External Pins  
gpio61  
gpio62  
gpio63  
gpio64  
gpio65  
gpio66  
gpio67  
gpio68  
gpio69  
gpio70  
gpio71  
gpio72  
gpio73  
gpio74  
gpio75  
gpio76  
gpio77  
gpio78  
gpio79  
gpio80  
gpio81  
gpio82  
gpio83  
gpio84  
gpio85  
gpio86  
gpio87  
gpio88  
gpio89  
gpio90  
gpio91  
gpio92  
sc_card_voltage_p  
-
spi_rxd3  
SMVDD  
-
B
-
PD/none  
-/-  
-
-
-
-/-  
-
-
-
-/-  
-
-
-
-/-  
-
-
-
-/-  
-
-
-
-/-  
-
-
-
-/-  
-
-
-
-/-  
nand_cen_p[1]  
nand_cen_p[2]  
nand_cen_p[3]  
utmiotg_drvvbus_p  
nand_data_p[0]  
nand_data_p[1]  
nand_data_p[2]  
nand_data_p[3]  
nand_data_p[4]  
nand_data_p[5]  
nand_data_p[6]  
nand_data_p[7]  
uart_cts_p  
uart_rts_p  
Reserved_15  
sdram_rdy_p  
dip_csn0_p  
dip_csn1_p  
mp2ts_d_p  
mp2ts_clk_p  
mp2ts_valid_p  
mp2ts_sync_p  
-
mmcplus_cmd  
spi_rxd1  
NVDD  
NVDD  
NVDD  
AUVDD  
NVDD  
NVDD  
NVDD  
NVDD  
NVDD  
NVDD  
NVDD  
NVDD  
JVDD  
JVDD  
MVDD  
RVDD  
LVDD  
LVDD  
JVDD  
JVDD  
JVDD  
JVDD  
-
C
C
C
D
A
A
A
A
A
A
A
A
A
A
A
B
D
D
A
-
PU/PU  
PU/PU  
PU/PU  
PU/PU  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PD/none  
PU/PU  
PU/PU  
PD/n.a.  
PD/n.a.  
PD/n.a.  
PD/n.a.  
-/-  
spi_rxd2  
mmcplus_data[0]  
mmcplus_data[1]  
mmcplus_data[2]  
mmcplus_data[3]  
mmcplus_data[4]  
mmcplus_data[5]  
mmcplus_data[6]  
mmcplus_data[7]  
spi_ssn1  
spi_ssn2  
spi_ssn3  
A
A
-
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
57  
Interconnect and Communication  
Table 23. GPIOs and Alternate Functions Shared with External Pins  
gpio93  
gpio94  
gpio95  
-
-
-
-
-
-
-
-
-
-/-  
-/-  
-/-  
4.12.2 PAD Type description  
There are four types of hardware PAD for the GPIOs: A, B, C, D. The correspondence with the pin is listed in the  
table above.  
Following are each GPIO PAD type specifications at 50% transition and the corresponding measurement illustration  
diagram.  
4.12.2.1 GPIO pad type A specifications  
Table 24. GPIO PAD type A specifications  
Pad Type  
Drive Strength  
Parameter  
Load (pF)  
Min  
Typ  
Max  
Unit  
A
Low-drive  
tpLH  
10  
25  
2
3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
5
7
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
100  
200  
10  
10  
18  
2
19  
35  
5
tpHL  
tpLH  
tpHL  
25  
4
8
100  
200  
10  
11  
20  
1
23  
42  
3
High-drive  
25  
2
4
100  
200  
10  
5
10  
16  
3
8
1
25  
2
5
100  
200  
6
12  
22  
11  
SCP220x ICP Family, Rev.2.1  
58  
Freescale Semiconductor  
Interconnect and Communication  
4.12.2.2  
GPIO PAD type B specifications  
Table 25. GPIO PAD type B specifications  
Pad Type  
Drive Strength  
Parameter  
Load (pF)  
Min  
Typ  
Max  
Unit  
B
Low-drive  
tpLH  
10  
25  
2
3
5
9
2
3
6
11  
2
2
4
7
2
2
5
8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
4
6
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
100  
200  
10  
11  
18  
5
tpHL  
tpLH  
tpHL  
25  
6
100  
200  
10  
14  
24  
4
High-drive  
25  
5
100  
200  
10  
8
13  
4
25  
5
100  
200  
10  
16  
4.12.2.3 GPIO PAD type C specifications  
Table 26. GPIO pad type C specificatiopns  
Pad Type  
Drive Strength  
Parameter  
Load (pF)  
Min  
Typ  
Max  
Unit  
C
Low-drive  
tpLH  
10  
25  
2
3
-
-
-
-
-
-
-
-
-
5
7
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
100  
200  
10  
10  
18  
2
19  
35  
5
tpHL  
25  
4
8
100  
200  
10  
11  
20  
1
23  
42  
3
High-drive  
tpLH  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
59  
Interconnect and Communication  
Table 26. GPIO pad type C specificatiopns  
25  
2
5
-
-
-
-
-
-
-
4
10  
16  
3
ns  
ns  
ns  
ns  
ns  
ns  
ns  
100  
200  
8
tpHL  
10  
25  
1
2
5
100  
200  
6
12  
22  
11  
4.12.2.4 GPIO PAD type D specifications  
Table 27. GPIO pad type D specificatiopns  
Pad Type  
Drive Strength  
Parameter  
Load (pF)  
Min  
Typ  
Max  
Unit  
D
Low-drive  
tpLH  
10  
25  
2
3
5
9
2
3
6
11  
2
2
4
7
2
2
5
8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
4
6
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
100  
200  
10  
11  
18  
5
tpHL  
tpLH  
tpHL  
25  
6
100  
200  
10  
14  
24  
4
High-drive  
25  
5
100  
200  
10  
8
13  
4
25  
5
100  
200  
10  
16  
SCP220x ICP Family, Rev.2.1  
60  
Freescale Semiconductor  
Registers  
4.12.2.5  
GPIO PAD Propagation Schematic  
V
/2  
DD  
tpLH  
tpHL  
Pad Output  
V
/2  
DD  
Propagation delays Low to High and High to Low  
Figure 57. GPIO PAD Propagation Schematic  
4.13 Production Test and System Signals  
The following table lists the SCP220x pin information for system and test signals.  
Table 28. Production Test and System Singlas  
Pad  
Resistor  
Pin  
Direction  
Signal  
Pin Description  
Clkin  
-
-
Input  
Clock input to SCP220x from crystal, oscillator or  
baseband processor  
Clkout  
Output  
Output for crystal connection or ground if Clkin is  
driven by oscillator  
resetN  
hw_deep_secure  
bootmode  
-
-
-
Input  
Input  
Input  
Chip reset  
set to ‘0’, reserved  
Selects how the part will startup after reset. Must  
be set to ‘1’.  
testmode  
tck  
PD  
PU  
-
Input  
Input  
Enable testmode (manufacture test only)  
JTAG test clock  
rtck  
Output  
Input  
JTAG return clock  
tdi  
PU  
-
JTAG test data input  
JTAG test data output  
JTAG test reset  
tdo  
Output  
Input  
Ntrst  
tms  
PD  
PU  
Input  
JTAG test mode  
5
Registers  
In general, an application should use the SDK to use the blocks available on the chips. Most of the low level inter-  
facing that requires register access is already available ready to use.  
In case it is required to act directly on the registers here is the list of the main register groups. It is recommended to  
use macro functions in the SDK to modify the values of the registers and in most cases the access is done through  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
61  
Registers  
the register/bit name rather than directly with the register value.  
When writing boot loader code however it is necessary to access the register directly.  
5.1  
Memory Map  
The following table describes the address map.  
Table 29. Memory Map  
Start Address  
End Address  
Peripheral  
ARM1 HSEL  
0x0000_0000  
0x0000_0000  
0x2000_0000  
0x3000_0000  
0x4000_0000  
0x4400_0000  
0x4800_0000  
0x5000_0000  
0x5400_0000  
0x5800_0000  
0x5c00_0000  
0x6000_0000  
0x0000_003f  
0x1fff_ffff  
0x2fff_ffff  
0x3fff_ffff  
0x43ff_ffff  
0x47ff_ffff  
0x4fff_ffff  
0x53ff_ffff  
0x57ff_ffff  
0x5Bff_ffff  
0x5fff_ffff  
0x67ff_ffff  
Reserved  
External Memory  
Section 5.6, Memory Controller  
Reserved  
Reserved  
21  
21  
Reserved  
DIP Port  
4
BitBlt  
23  
24  
BitBlt_mini  
USB OTG  
5
Reserved  
Reserved  
Reserved  
Reserved  
7
Reserved  
Reserved  
Section 5.7, NAND Interface  
Registers Description  
0x6800_0000  
0x6c00_0000  
0x6Bff_ffff  
0x6fff_ffff  
Section 5.11, MMC/SD Control  
Registers  
8
Section 5.12, MMCPlus Control  
Registers  
28  
0x7000_0000  
0x7400_0000  
0x7800_0000  
0x8000_0000  
0x8800_0000  
0x9000_0000  
0x9400_0000  
0x9800_0000  
0xA000_0000  
0xA400_0000  
0xA800_0000  
0x73ff_ffff  
0x77ff_ffff  
0x7fff_ffff  
0x87fff_ffff  
0x8fff_ffff  
0x9fff_ffff  
0x97ff_ffff  
0x9fff_ffff  
0xA3ff_ffff  
0xA7ff_ffff  
0xAfff_ffff  
Multi-channel DMA  
SPI1  
9
30  
Reserved  
Reserved  
Reserved  
Reserved  
Reserved  
Reserved  
Reserved  
14  
Reserved  
Reserved  
Reserved  
Reserved  
Reserved  
Section 5.9, SPI Registers  
Reserved  
Reserved  
Reserved  
Reserved  
SCP220x ICP Family, Rev.2.1  
62  
Freescale Semiconductor  
Registers  
Table 29. Memory Map  
0xBfff_ffff  
0xB000_0000  
0xC000_0000  
0xC400_0000  
0xc800_0000  
0xcc00_0000  
0xd000_0000  
0xe000_0000  
0xf000_0000  
0xffff_f000  
Sensor Interface  
Reserved  
Reserved  
Reserved  
Reserved  
APB bridge  
Reserved  
Reserved  
Reserved  
16  
0xC3ff_ffff  
0xC7ff_ffff  
0xcbff_ffff  
0xcfff_ffff  
0xdfff_ffff  
0xefff_ffff  
0xffff_efff  
0xffff_ffff  
Reserved  
Reserved  
Reserved  
Reserved  
19  
Reserved  
Reserved  
Reserved  
The following table decribes the memory mapping through the APB bridge containing most of the peripherals  
interfaces.  
Table 30. Sub-peripherals Memory Map  
Start Address  
End Address  
Sub-peripherals  
0xd000_0000  
0xd001_0000  
0xd002_0000  
0xd003_0000  
0xd004_0000  
0xd005_0000  
0xd006_0000  
0xd007_0000  
0xd008_0000  
0xd009_0000  
0xd00a_0000  
0xd00b_0000  
0xd00c_0000  
0xd00d_0000  
0xd00e_0000  
0xd00f_0000  
0xd000_ffff  
0xd001_ffff  
0xd002_ffff  
0xd003_ffff  
0xd004_ffff  
0xd005_ffff  
0xd006_ffff  
0xd007_ffff  
0xd008_ffff  
0xd009_ffff  
0xd00a_ffff  
0xd00b_ffff  
0xd00c_ffff  
0xd00d_ffff  
0xd00e_ffff  
0xd00f_ffff  
Section 5.10, Audio Registers  
Section 5.8, UART Control Registers  
Section 5.15, KeyScan Registers  
System Registers  
Section 5.13, I2C Registers  
OS Timer 1  
OS Timer 2  
OS Timer 3  
RTC Timer  
Section 5.14, PWM Registers  
Section 5.16, GPIO Registers  
Smart Card  
Reserved  
OS Timer 4  
Uart2  
Reserved  
The system register map is summarized below and described in the following sections.  
System registers are located from address: 0xd003_0000.  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
63  
Registers  
Table 31. System Registers  
Register  
Address Offset  
Mode  
Section 5.2.1, System Clock Configuration Register  
Section 5.2.2, AP Clock Configuration Register  
Section 5.2.3, Clock Update Register  
Section 5.4.3, System Reset Register  
Section 5.4.1, System Power Down  
Section 5.5.1, Chip ID Register  
Section 5.3.1, Alternate Function Enable Register  
Section 5.3.2, Drive Strength Register  
Drive strength2  
0x00  
0x04  
0x08  
0x18  
0x1c  
RW  
RW  
RW  
RW  
RW  
RO  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
0x28  
0x30  
0x80  
0x84  
0x88  
0x8C  
0x90  
0x94  
0x98  
0xCC  
0xd0  
0xF8  
0xFC  
0x100  
0x104  
0x108  
0x10C  
0x110  
0x114  
Drive strength3  
Section 5.3.3, PAD Resistor Enable  
PAD resistor enable2  
PAD resistor enable3  
PAD resistor enable4  
Section 5.4.2, System power down1  
Section 5.4.4, System Reset1 Register  
Section 5.2.7, Interface PLL Select Register  
IF PLL divide  
XGA PLL divide  
SIF PLL divide  
MEM PLL divide  
AP PLL divide  
USB PLL divide  
TVOUT PLL divide  
5.2  
Clock Configuration Registers  
If necessary, it is possible to change the clocks configuration, exercise caution doing so especially when modifying  
the system clocks. It is recommended in any case to change clocks configuration via the SDK.  
Here is the list of registers, please refer to 3.3, Clock Configuration for details:  
System Clock Configuration Register  
AP Clock Configuration Register  
Clock Update Register  
SCP220x ICP Family, Rev.2.1  
64  
Freescale Semiconductor  
Registers  
Interface Clock Configuration Register  
DIP Clock Configuration Register  
Memory Clock Configuration Register  
Interface PLL Select Register  
PLL Divide Register  
5.2.1  
System Clock Configuration Register  
Table 32. System Clock Configuration Register  
System Clock Configuration  
Address: 0x00  
Reset = 0xcc0_0000  
Function  
Type: RW  
Name  
Bit  
Reset  
arm2_clk_en_div  
31-30  
Both ARMs have a clock enable that effectively tells the ARM926EJ-S  
processor the frequency of the system bus. The primary ARM926EJ-S  
processor is able to get the appropriate divide value from the sys_clk_div  
field but the secondary ARM926EJ-S processor needs a separate field to  
define this value since it can operate at a different frequency than the  
primary ARM926EJ-S processor . This field is similar to the sys_clk_div  
field and must be programmed based on the difference between the ARM2  
clock and the system clock frequencies. Note: this field does not set the  
frequency of the system clock.  
0
11 : sys_clk = arm2_clk/4  
10 : sys_clk = arm2_clk/3  
01 : sys_clk = arm2_clk/2  
00 : sys_clk = arm2_clk  
tcm_clk_sel  
29  
The primary ARM926EJ-S processor TCM can be used as either TCM  
memory or system memory (connected to the bus). The clocking source  
and physical interface change for each application. This bit selects the  
application. The sys_clk_config makes the switch over occur.  
0 = system memory  
1 = tcm memory  
arm_clk2_div  
28-26  
This divide value is applied to the PLL output clock to generate the  
secondary ARM926EJ-S processor clock.  
0,7 : arm_clk = FPLLOUT /12  
3
6 : arm_clk = FPLLOUT /10  
5 : arm_clk = FPLLOUT /8  
4 : arm_clk = FPLLOUT /6  
3 : arm_clk = FPLLOUT /4  
2 : arm_clk = FPLLOUT /3  
1 : arm_clk = FPLLOUT /2  
pll_sel  
25  
This field selects the PLL source for the system clock generation.  
0
0 = sys pll  
1 = ap pll  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
65  
Registers  
Table 32. System Clock Configuration Register  
arm_clk_div  
24-22  
This divide value is applied to the PLL output clock to generate the primary  
ARM926EJ-S processor clock.  
0,7 : arm_clk = FPLLOUT /12  
3
6 : arm_clk = FPLLOUT /10  
5 : arm_clk = FPLLOUT /8  
4 : arm_clk = FPLLOUT /6  
3 : arm_clk = FPLLOUT /4  
2 : arm_clk = FPLLOUT /3  
1 : arm_clk = FPLLOUT /2  
sys_clk_div  
21-20  
This divide value is applied to the ARM926EJ-S processor clock to  
generate the system clock. The system clock runs all internal logic except  
the ARM926EJ-S processor and array processor.  
11 : sys_clk = arm_clk/4  
0
10 : sys_clk = arm_clk/3  
01 : sys_clk = arm_clk/2  
00 : sys_clk = arm_clk  
19  
Range  
18-16  
This field must be set according the configured post reference divide  
frequency.  
0
0=bypass, 1=10-16 Mhz, 2=16-26 Mhz, 3=26-42 Mhz, 4=42-65 Mhz,  
5=65-104 Mhz, 6=104-166 Mhz, 7=166 Mhz+  
NO  
NR  
15-13  
12-8  
PLL Output Divider value.  
0
0
PLL Input Divider value. Power-up default of this field is controlled by  
configuration settings on the EBI address bus.  
NF  
7-0  
PLL Feedback divider value.  
0
5.2.2  
AP Clock Configuration Register  
Table 33. AP Clock Configuration Register  
AP Clock Configuration  
Address: 0x04  
Reset = 0x2000_0000  
Function  
Type: RW  
Name  
Bit  
Reset  
SCP220x ICP Family, Rev.2.1  
66  
Freescale Semiconductor  
Registers  
Table 33. AP Clock Configuration Register  
mem_clk_div  
31-29  
This divide value is applied to the PLL output clock to generate the  
memory 2x clock. The “sys_clk_config” kicker applies the divide value.  
This is only pertinent if the power-up config of the memory clock source is  
the “sync” mode, otherwise the divide value defaults to /2 of the memory  
PLL. An additional /2 is also applied so that both a clk and clk_2x are  
generated. The clk frequency (not the clk_2x) must match the system  
clock frequency.  
1
0,7 : arm_clk = FPLLOUT /12  
6 : arm_clk = FPLLOUT /10  
5 : arm_clk = FPLLOUT /8  
4 : arm_clk = FPLLOUT /6  
3 : arm_clk = FPLLOUT /4  
2 : arm_clk = FPLLOUT /3  
1 : arm_clk = FPLLOUT /2  
28-23  
22  
ap_clock_disable  
Range  
1 = The AP PLL is powered down and put in bypass mode  
0 = The AP PLL is enabled  
0
0
21-19  
18-16  
This field must be set according the configured post reference divide  
frequency.  
0=bypass, 1=10-16 Mhz, 2=16-26 Mhz, 3=26-42 Mhz, 4=42-65 Mhz,  
5=65-104 Mhz, 6=104-166 Mhz, 7=166 Mhz+  
NO  
NR  
15-13  
12-8  
PLL Output Divider value.  
0
0
PLL Input Divider value. Power-up default of this field is controlled by  
configuration settings on the EBI address bus.  
NF  
7-0  
PLL Feedback divider value.  
0
5.2.3  
Clock Update Register  
Table 34. Clock Update Register  
Clock Update  
Address: 0x08  
Reset = 0x30  
Type: RW  
Name  
Bit  
Function  
Reset  
31-7  
6
sys_pll_select_cfg  
ap_pll_lock_status  
When a ’1’ is written to this bit, the PLL selection is applied to the system  
PLL. This bit is self clearing after the pll selection has been applied. When  
switching to a new PLL source, the new PLL must already be properly  
configured and locked.  
0x0  
5
This bit is a read only bit and reflects the "locking" status of the AP PLL. 0  
= no lock, 1 = lock.  
0x1  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
67  
Registers  
Table 34. Clock Update Register  
sys_pll_lock_status  
4
This bit is a read only bit and reflects the "locking" status of the system PLL.  
0 = no lock, 1 = lock.  
0x1  
0x0  
3
2
sys_clk_config  
ap_pll_config  
sys_pll_config  
When a ’1’ is written to this bit, the clock divide settings for the system,  
ARM926EJ-S processor and mem_clk_div are applied as well as the  
tcm_clk_sel setting. This bit is self clearing after the clock divide has been  
applied  
1
0
When a ’1’ is written to this bit, the AP PLL configuration process is initiated  
and the AP PLL is re-configured with the divider values programmed into  
the AP Clock configuration register. This bit is self clearing after the AP PLL  
has locked.  
0x0  
0x0  
When a ’1’ is written to this bit, the system PLL configuration process is  
initiated and the system PLL is re-configured with the divider values  
programmed into the system Clock configuration register. This bit is self  
clearing after the system PLL has locked.  
5.2.4  
Interface Clock Configuration Register  
Table 35. Interface Clock Configuration Register  
Interface Clock Configuration  
Address: 0x3C  
Name  
Reserved  
Reset = 0x10_0000  
Function  
Type: RW  
Bit  
Reset  
31-21  
20  
Reserved  
pll_lock_status  
clock_disable  
Range  
This bit is a read only bit and reflects the “locking” status of the PLL. 0 =  
no lock, 1 = lock.  
0
0
0
19  
1 = The PLL is powered down and put in bypass mode  
0 = The PLL is enabled  
18-16  
This field must be set according the configured post reference divide  
frequency.  
0=bypass, 1=10-16 Mhz, 2=16-26 Mhz, 3=26-42 Mhz, 4=42-65 Mhz,  
5=65-104 Mhz, 6=104-166 Mhz, 7=166 Mhz+  
NO  
NR  
NF  
15-13  
12-8  
7-0  
PLL Output Divider value.  
PLL Input Divider value.  
PLL Feedback divider value.  
0
0
0
SCP220x ICP Family, Rev.2.1  
68  
Freescale Semiconductor  
Registers  
5.2.5  
DIP Clock Configuration Register  
Table 36. DIP Clock Configuration Register  
DIP Clock Configuration  
Address: 0x38  
Name  
Reserved  
Reset = 0xa8147  
Function  
Type: RW  
Bit  
Reset  
31-22  
20  
Reserved  
pll_lock_status  
clock_disable  
Range  
This bit is a read only bit and reflects the “locking” status of the PLL. 0 =  
no lock, 1 = lock.  
0
1
19  
1 = The PLL is powered down and put in bypass mode  
0 = The PLL is enabled  
18-16  
This field must be set according the configured post reference divide  
frequency.  
d2  
0=bypass, 1=10-16 Mhz, 2=16-26 Mhz, 3=26-42 Mhz, 4=42-65 Mhz,  
5=65-104 Mhz, 6=104-166 Mhz, 7=166 Mhz+  
NO  
NR  
NF  
15-13  
12-8  
7-0  
PLL Output Divider value.  
PLL Input Divider value.  
PLL Feedback divider value.  
d4  
d1  
d71  
5.2.6  
Memory Clock Configuration Register  
Table 37. Memory Clock Configuration Register  
Memory Clock Configuration  
Address: 0x4C  
Name  
Reset = 0x10_0000  
Function  
Type: RW  
Bit  
Reset  
31-22  
21  
ddr_dll_disable  
Some applications may not require the DDR DLLs. This bit will put the  
DLLs in the powered down state.  
0
1 = The DLLs are powered down  
0 = The DLLs are enabled  
pll_lock_status  
clock_disable  
Range  
20  
19  
This bit is a read only bit and reflects the “locking” status of the PLL. 0 =  
no lock, 1 = lock.  
1
0
0
1 = The PLL is powered down and put in bypass mode  
0 = The PLL is enabled  
18-16  
This field must be set according the configured post reference divide  
frequency.  
0=bypass, 1=10-16 Mhz, 2=16-26 Mhz, 3=26-42 Mhz, 4=42-65 Mhz,  
5=65-104 Mhz, 6=104-166 Mhz, 7=166 Mhz+  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
69  
Registers  
Table 37. Memory Clock Configuration Register  
NO  
NR  
NF  
15-13  
PLL Output Divider value.  
PLL Input Divider value.  
PLL Feedback divider value.  
0
0
0
12-8  
7-0  
5.2.7  
Interface PLL Select Register  
Table 38. Interface PLL Select Register  
Interface PLL Select  
Address: 0xF8  
Reset = 0x1800  
Type: RW  
Name  
Bit  
Function  
Reset  
31-28  
27  
tvout_clk_gate  
This field controls the clock gating cell between the PLL clock source and the  
clock divide circuitry. If the PLL or ref_clk_sel is being updated, the clock  
gating cell must be activated first.  
0x0  
0 = normal operation. Clock output is not gated.  
1 = Clock output is gated.  
usb_clk_gate  
ap_clk_gate  
mem_clk_gate  
sif_clk_gate  
26  
25  
24  
23  
22  
This field controls the clock gating cell between the PLL clock source and the  
clock divide circuitry. If the PLL or ref_clk_sel is being updated, the clock  
gating cell must be activated first.  
0 = normal operation. Clock output is not gated.  
1 = Clock output is gated.  
0x0  
0x0  
0x0  
0x0  
0x0  
This field controls the clock gating cell between the PLL clock source and the  
clock divide circuitry. If the PLL or ref_clk_sel is being updated, the clock  
gating cell must be activated first.  
0 = normal operation. Clock output is not gated.  
1 = Clock output is gated.  
This field controls the clock gating cell between the PLL clock source and the  
clock divide circuitry. If the PLL or ref_clk_sel is being updated, the clock  
gating cell must be activated first.  
0 = normal operation. Clock output is not gated.  
1 = Clock output is gated.  
This field controls the clock gating cell between the PLL clock source and the  
clock divide circuitry. If the PLL or ref_clk_sel is being updated, the clock  
gating cell must be activated first.  
0 = normal operation. Clock output is not gated.  
1 = Clock output is gated.  
xga_clk_gate  
This field controls the clock gating cell between the PLL clock source and the  
clock divide circuitry. If the PLL or ref_clk_sel is being updated, the clock  
gating cell must be activated first.  
0 = normal operation. Clock output is not gated.  
1 = Clock output is gated.  
SCP220x ICP Family, Rev.2.1  
70  
Freescale Semiconductor  
Registers  
Table 38. Interface PLL Select Register  
if_clk_gate  
21  
This field controls the clock gating cell between the PLL clock source and the  
clock divide circuitry. If the PLL or ref_clk_sel is being updated, the clock  
gating cell must be activated first.  
0x0  
0 = normal operation. Clock output is not gated.  
1 = Clock output is gated.  
tvout_ref_clk_sel  
usb_ref_clk_sel  
ap_ref_clk_sel  
mem_ref_clk_sel  
sif_ref_clk_sel  
xga_ref_clk_sel  
if_ref_clk_sel  
20-18  
17-15  
14-12  
11-9  
8-6  
This field selects the PLL clock source.  
0 = IF PLL, 1 = AP PLL, 2 = SYS PLL, 3=DIP PLL, 4=MEM PLL  
0x0  
0x0  
0x1  
0x4  
0x0  
0x0  
0x0  
This field selects the PLL clock source.  
0 = IF PLL, 1 = AP PLL, 2 = SYS PLL, 3=DIP PLL, 4=MEM PLL  
This field selects the PLL clock source.  
0 = IF PLL, 1 = AP PLL, 2 = SYS PLL, 3= DIP PLL, 4=MEM PLL  
This field selects the PLL clock source.  
0 = IF PLL, 1 = AP PLL, 2 = SYS PLL, 3= DIP PLL, 4=MEM PLL  
This field selects the PLL clock source.  
0 = IF PLL, 1 = AP PLL, 2 = SYS PLL, 3= DIP PLL, 4=MEM PLL  
5-3  
This field selects the PLL clock source.  
0 = IF PLL, 1 = AP PLL, 2 = SYS PLL, 3= DIP PLL, 4=MEM PLL  
2-0  
This field selects the PLL clock source.  
0 = IF PLL, 1 = AP PLL, 2 = SYS PLL, 3= DIP PLL, 4=MEM PLL  
5.2.8  
PLL Divide Register  
Table 39. PLL Divide Register  
PLL Divide  
Address: 0xFC-114  
Reset = 0x0  
Type: RW  
Name  
Bit  
Function  
Reset  
Reserved  
31-9  
8
Reserved  
divide_status  
This is a read only field that provides an indicator as to when the programmed  
divide value has been applied. The divide value is applied when the “counter”  
passes through a “0” value so that the resultant output clock remains clean.  
Depending on the current count value and the previous clock frequency, there  
may be a delay before the new divide value gets applied to the output clock.  
This bit gets set when this register is written and slef clears after the new  
divide value has been applied.  
0x0  
Reserved  
7-6  
Reserved  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
71  
Registers  
Table 39. PLL Divide Register  
pll_divide  
5-0  
This field contains an integer divide that is applied to the selected ref_clk to  
0x0  
produce the appropriate peripheral clock.  
0 = div1  
1 = div2  
2 = div3  
63 = div64  
5.3  
PAD and I/O registers  
5.3.1  
Alternate Function Enable Register  
Table 40. Alternate Function Enable Register  
Alternate Function Enable  
Address: 0xd003_0030  
Reset = 0  
Type: RW  
Name  
Bit  
Function  
Reset  
reserved  
31-29  
28  
reserved  
gps_ena5  
0 = main function selected (mp2ts_clk)  
1 = alternate function selected (gps_clk)  
mp2ts_clk = gps_clk  
0
0
0
0
0
0
gps_ena4  
gps_ena3  
gps_ena2  
gps_ena1  
second_uart  
27  
26  
25  
24  
23  
0 = main function selected (uart_rts)  
1 = alternate function selected (gps_m2)  
uart_rts = gps_m2  
0 = main function selected (mp2ts_sync)  
1 = alternate function selected (gps_m1)  
mp2ts_sync = gps_m1  
0 = main function selected (mp2ts_valid)  
1 = alternate function selected (gps_m0)  
mp2ts_valid = gps_m0  
0 = main function selected (mp2ts_d)  
1 = alternate function selected (gps_s)  
mp2ts_d = gps_s  
0 = main function selected (dip_data[23:22])  
1 = alternate function selected (second uart)  
dip_data22 = uart1_rxd  
dip_data23 = uart1_txd  
spi_mp2ts  
22  
0 = main function selected (2nd spi interface)  
1 = alternate function selected (2nd mp2ts interface)  
spi1_sck = mp2ts_clk  
0
spi1_ssn = mp2ts_sync  
spi1_txd = mp2ts_valid  
spi1_rxd = mp2ts_d  
SCP220x ICP Family, Rev.2.1  
72  
Freescale Semiconductor  
Registers  
Table 40. Alternate Function Enable Register  
pwi interface  
spi_device3  
21  
20  
19  
18  
17  
0 = main function selected (bb_audio_fsx,bb_audio_clkx)  
1 = alternate function selected (pwi_clk,pwi_data)  
reserved_3 = pwi_clk  
0
reserved_4 = pwi_data  
0 = main function selected (nand)  
1 = alternate function selected (spi_device3)  
reserved_15 = spi_ssn3  
0
0
0
0
sc_card_voltage = spi_rxd3  
spi_device2  
0 = main function selected (nand)  
1 = alternate function selected (spi_device2)  
uart_rts = spi_ssn2  
nand_cen3 = spi_rxd2  
spi_device1  
0 = main function selected (nand)  
1 = alternate function selected (spi_device1)  
uart_cts = spi_ssn1  
nand_cen2 = spi_rxd1  
nand_or_mmc_plus  
0 = main function selected (nand)  
1 = alternate function selected (mmc_plus)  
mmc_plus _data[7:0] = nand_data[7:0]  
mmc_plus _clk = nand_cen0  
mmc_plus _cmd = nand_cen1  
uart_txd  
spi_sck  
16  
15  
14  
13  
12  
11  
10  
9
0 = main function selected (uart_txd)  
1 = alternate function selected (dip_ref_clk)  
0
0
0
0
0
0
0
0
0
0
0
0 = main function selected (mmc_data3)  
1 = alternate function selected (ac_clk)  
spi_ssn  
0 = main function selected (mmc_data2)  
1 = alternate function selected (sys_clk)  
spi_rxd  
0 = main function selected (mmc_data1)  
1 = alternate function selected (mem_ref_clk)  
spi_txd  
0 = main function selected (mmc_data0)  
1 = alternate function selected (if_ref_clk)  
reserved_14  
reserved_13  
reserved_12  
reserved_11  
reserved_10  
reserved_9  
0 = main function selected (reserved_14)  
1 = alternate function selected (keyscan3_out)  
0 = main function selected (reserved_13)  
1 = alternate function selected (keyscan2_out)  
0 = main function selected reserved_12)  
1 = alternate function selected (keyscan1_out)  
8
0 = main function selected (reserved_11)  
1 = alternate function selected (keyscan0_out)  
7
0 = main function selected (reserved_10)  
1 = alternate function selected (keyscan3_in)  
6
0 = main function selected (reserved_9)  
1 = alternate function selected (keyscan2_in)  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
73  
Registers  
Table 40. Alternate Function Enable Register  
reserved_8  
5
4
3
2
1
0
0 = main function selected (reserved_8)  
1 = alternate function selected (keyscan1_in)  
0
0
0
0
0
0
reserved_7  
dip_data17  
dip_data16  
audio_fsr  
sc_fcb  
0 = main function selected (reserved_7)  
1 = alternate function selected (keyscan0_in)  
0 = main function selected (dip_data17)  
1 = alternate function selected (scl_sec)  
0 = main function selected (dip_data16)  
1 = alternate function selected (sda_sec)  
0 = main function selected (audio_fsr)  
1 = alternate function selected (pwm_output2)  
0 = main function selected (sc_fcb)  
1 = alternate function selected (pwm_output1)  
5.3.2  
Drive Strength Register  
Table 41. Drive Strength Register  
Drive Strength 1  
Address: 0xd003_0080  
Reset = 0  
Type: RW  
Name  
drive_strength[31-0]  
Bit  
Function  
Reset  
31-0  
A number of the external PADs have configurable drive strength. This register  
allows software to configure the drive strength as low or as high. The  
following table maps the drive_strength bits to the corresponding PAD that  
they control.  
0
0 = low drive strength  
1 = high drive strength  
Drive Strength 2  
Address: 0xd003_0084  
Reset = 0  
Type: RW  
Name  
Bit  
Function  
Reset  
drive_strength[63-32]  
31-0  
A number of the external PADs have configurable drive strength. This register  
allows software to configure the drive strength as low or as high. The  
following table maps the drive_strength bits to the corresponding PAD that  
they control.  
0
0 = low drive strength  
1 = high drive strength  
Drive Strength 3  
Address: 0xd003_0088  
Name Bit  
Reset = 0  
Type: RW  
Function  
Reset  
SCP220x ICP Family, Rev.2.1  
74  
Freescale Semiconductor  
Registers  
Table 41. Drive Strength Register  
drive_strength[95-64]  
31-0  
A number of the external PADs have configurable drive strength. This register  
allows software to configure the drive strength as low or as high. The  
following table maps the drive_strength bits to the corresponding PAD that  
they control.  
0
0 = low drive strength  
1 = high drive strength  
The table below gives the correspondence Drive Strength register bit to pin.  
Table 42. Drive Strength register bit to pin correspondence  
Bit  
Pin  
scl_p  
Bit  
Pin  
Bit  
Pin  
Bit  
Pin  
0
1
24  
25  
mclk_p  
48  
49  
spi_sck_p  
spi_ssn_p  
72  
73  
sc_fcb_p  
sc_io_p  
sda_p  
audio_clkr  
_p  
2
3
sif_clkout_  
p
26  
27  
28  
29  
30  
31  
32  
33  
34  
audio_fsr_  
p
50  
51  
52  
53  
54  
55  
56  
57  
58  
spi_txd_p  
fodd_p  
74  
75  
76  
77  
78  
79  
80  
81  
82  
sc_card_d  
etect_p  
audio_clkx  
_p  
sc_power_  
on_p  
4
audio_dr_p  
sif_gpio_p  
sc_card_v  
oltage_p  
5
audio_dx_  
p
nand_ren_  
p
nand_cen_  
p1  
6
audio_fsx_  
p
nand_wen  
_p  
nand_cen_  
p2  
7
reserved_1  
reserved_7  
reserved_3  
reserved_4  
reserved_5  
reserved_6  
nand_ale_  
p
nand_cen_  
p3  
8
nand_cle_  
p
9
dip_data_p  
23  
10  
dip_data_p  
22  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
75  
Registers  
Table 42. Drive Strength register bit to pin correspondence  
Bit  
Pin  
Bit  
Pin  
Bit  
Pin  
Bit  
Pin  
11  
reserved_8  
35  
dip_data_p  
[15:0]  
59  
dip_data_p  
21  
83  
12  
Reserved_  
9
36  
dip_csn0_  
p
60  
dip_data_p  
20  
84  
dip_csn1_  
p
dip_wen_p  
dip_rs_p  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
reserved_1  
0
37  
38  
39  
40  
41  
42  
43  
44  
45  
46  
47  
mmc_clk_p  
61  
62  
63  
64  
65  
66  
67  
68  
69  
70  
71  
dip_data_p  
19  
85  
86  
87  
88  
89  
90  
91  
92  
93  
94  
95  
reserved_1  
1
mmc_cmd  
_p  
dip_data_p  
18  
reserved_1  
2
mmc_data  
_p3  
dip_data_p  
17  
reserved_1  
3
mmc_data  
_p2  
dip_data_p  
16  
Utmiotg_dr  
vvbus_p  
reserved_1  
4
mmc_data  
_p1  
dip_csn2_  
p
spi1_rxd_p  
spi1_sck_p  
spi1_ssn_p  
spi1_txd_p  
uart_cts_p  
uart_cts_p  
mmc_data  
_p0  
dip_csn3_  
p
reserved_2  
nand_cen_  
p0  
dip_oen_p  
sdram  
control  
nand_data  
_p[7:0]  
dip_pclk_p  
sdram_clk  
_p  
uart_rxd_p  
uart_txd_p  
spi_rxd_p  
dip_cpu_vs  
ync_p  
ebi_addr_p  
[12:0]  
sc_clk_p  
ebi_data_p  
31:0  
sc_rst_p  
reserved_1  
5
5.3.3  
PAD Resistor Enable  
Table 43. PAD Resistor Enable  
PAD Resistor Enable 1  
Address: 0xd003_008C  
Name Bit  
Reset = 0x0801_003c  
Function  
Type: RW  
Reset  
SCP220x ICP Family, Rev.2.1  
76  
Freescale Semiconductor  
Registers  
Table 43. PAD Resistor Enable  
pad_resistor_ena  
[31-0]  
31-0  
A number of the external PADs have configurable pull-up/pull-down  
resistors in the PAD. This register allows software to enable the  
resistor. The following table maps these register bits to the  
corresponding PADs that they control.  
0x0801_003c  
0 = PAD resistor disabled  
1 = PAD resistor enabled  
PAD Resistor Enable 2  
Address: 0xd003_0090  
Reset = 0x0008_4f02  
Function  
Type: RW  
Name  
Bit  
Reset  
pad_resistor_ena  
[63-32]  
31-0  
A number of the external PADs have configurable pull-up/pull-down  
resistors in the PAD. This register allows software to enable the  
resistor. The following table maps these register bits to the  
corresponding PADs that they control.  
0x0008_4f02  
0 = PAD resistor disabled  
1 = PAD resistor enabled  
PAD Resistor Enable 3  
Address: 0xd003_0094  
Reset = 0x01e7_f0d0  
Function  
Type: RW  
Name  
Bit  
Reset  
pad_resistor_ena  
[95-64]  
31-0  
A number of the external PADs have configurable pull-up/pull-down  
resistors in the PAD. This register allows software to enable the  
resistor. The following table maps these register bits to the  
corresponding PADs that they control.  
0x01e7_f0d0  
0 = PAD resistor disabled  
1 = PAD resistor enabled  
PAD Resistor Enable 4  
Address: 0xd003_0098  
Reset = 0x0000_00bf  
Function  
Type: RW  
Name  
Bit  
Reset  
pad_resistor_ena  
[117-96]  
31-0  
A number of the external PADs have configurable pull-up/pull-down  
resistors in the PAD. This register allows software to enable the  
resistor. The following table maps these register bits to the  
corresponding PADs that they control.  
0x0000_00bf  
0 = PAD resistor disabled  
1 = PAD resistor enabled  
The table indicates whether the PAD has a pull-up or pull-down with the PU/PD nomenclature in the bit location field.  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
77  
Registers  
Bit  
Table 44. PAD has a pull-up or pull-down  
Pin  
Bit  
Pin  
Bit  
Pin  
Bit  
Pin  
Bit  
Pin  
0-PD sda_p  
24  
reserved  
48-P fodd_p  
D
72  
reserved  
97-P dip_data_p  
U
4
1-PD sif_clkout_  
p
25  
26  
reserved  
reserved  
49-P mclk_p  
D
73  
74  
reserved  
reserved  
98-P dip_data_p  
D
3
2
reserved  
50-P sif_gpio_p  
D
99-P dip_data_p  
D
2
3
reserved  
27-P mmc_clk_p  
U
51-P fclk_p  
75-P scl_p  
D
100- dip_data_p  
PU  
D
rclk_p  
1
pclk_p  
sensor_dat  
a_p  
4-PU utmiotg_dr  
vvbus_p  
28-P mmc_cmd  
52  
reserved  
76-P ntrst_p  
D
101- dip_data_p  
PD  
D
_p  
0
5
reserved  
29-P mmc_data  
53-P nand_data[  
7:0]  
77-P tck_p  
U
102- dip_cpu_vs  
PD ync_p  
D
_p3  
D
6-PD sdram_rdy  
_p  
30-P mmc_data  
54-P dip_data_p  
23  
78-P tdi_p  
U
103- sc_clk_p  
PU  
D
_p2  
D
7
reserved  
reserved  
reserved  
reserved  
reserved  
reserved  
reserved  
reserved  
reserved  
reserved  
31-P mmc_data  
55-P dip_data_p  
22  
79-P tms_p  
U
104- sc_rst_p  
PD  
D
_p1  
D
8
32-P mmc_data  
56-P dip_data_p  
21  
80-P dip_data_p  
105- sc_fcb_p  
PD  
D
_p0  
D
D
6
9
33-P nand_cen_  
57-P dip_data_p  
20  
81-P dip_data_p  
106- sc_io_p  
PD  
U
p0  
D
D
7
10  
11  
12  
13  
14  
15  
16  
34-P nand_ren_  
58-P dip_data_p  
19  
82-P dip_data_p  
107- sc_card_d  
D
p
D
D
8
PD  
etect_p  
35-P nand_wen  
_p  
59-P dip_data_p  
18  
83-P dip_data_p  
108- sc_power_  
PD on_p  
D
D
D
9
36-P nand_ale_  
60-P dip_data_p  
17  
84-P dip_data_p  
10  
109- sc_card_v  
PD oltage_p  
D
p
D
D
37-P nand_cle_  
61-P dip_data_p  
16  
85-P nand_cen_  
p3  
110- dip_data_p  
D
p
D
U
PD  
11  
38-P uart_rxd_p  
D
62-P dip_data_p  
[15:12]  
86-P nand_cen_  
p2  
111  
reserved  
D
U
39-P uart_txd_p  
D
63-P dip_oen_p  
D
87-P nand_cen_  
p1  
U
40-P dip_csn0_  
64-P dip_pclk_p  
D
88-P spi1_ssn_p  
U
U
p
SCP220x ICP Family, Rev.2.1  
78  
Freescale Semiconductor  
Registers  
Table 44. PAD has a pull-up or pull-down  
41-P dip_csn1_ 65-P mp2ts_clk_ 89-P spi1_txd_p  
17-P audio_clkr  
_p  
D
U
p
D
p
D
mp2ts_d_p  
mp2ts_vali  
d_p  
mp2ts_syn  
c_p  
18-P audio_fsr_  
42-P dip_csn2_  
66  
67  
68  
69  
70  
71  
reserved  
reserved  
reserved  
reserved  
reserved  
reserved  
90-P spi1_rxd_p  
D
D
p
U
p
19-P audio_clkx  
_p  
43-P dip_csn3_  
91-P spi1_sck_p  
D
D
U
p
20-P audio_dr_p  
D
44-P spi_rxd_p  
D
92-P uart_cts_p  
D
21-P audio_dx_  
45-P spi_sck_p  
D
93-P uart_rts_p  
D
D
p
22-P audio_fsx_  
46-P spi_ssn_p  
U
94  
reserved  
D
p
23  
reserved  
47-P spi_txd_p  
D
95  
reserved  
5.4  
Reset and Clock Gating  
The system reset bits are spread out into two registers: System Reset and System Reset1.  
The system power down bits are spread out into two registers: System Power Down and System Power Down1.  
5.4.1  
System Power Down  
This timing generation block has clock gating logic for most of the internal blocks. This register provides software  
with a mechanism to gate the clock of any block that is not required for the application at hand. This will reduce power  
for certain applications. When a block has its clock gated the block is “disabled” and unusable.  
Table 45. System Power Down  
System Power Down  
Address: 0x d003_001c  
Reset = 0xffed_d5ff  
Function  
Type: RW  
Name  
Bit  
Reset  
Reserved  
mp2ts1_pdown  
spi1_pdown  
31  
30  
29  
28  
27  
Reserved  
1
1
1
1
1
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
Pwi_pdown  
Mmcplus_pdown  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
79  
Registers  
Table 45. System Power Down  
sequencer_pdown  
26  
When this bit is written “1” the peripheral has its clock gated. This powers  
down the GOC buffers and decoding” circuitry (VLD).  
1
crypto_pdown  
Smart_card_pdown  
Rotator_pdown  
H264_loop_pdown  
bitblt_mini_pdown  
ebi_pdown  
25  
24  
23  
22  
21  
20  
19  
18  
17  
16  
15  
14  
13  
12  
11  
10  
9
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the high speed cmem clock is gated.  
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
bitblt_pdown  
vld_pdown  
cmem_if_pdown  
ac_pdown  
mmc_pdown  
dip_pdown  
hpi_pdown  
usb_pdown  
nand_pdown  
sif_pdown  
spi_pdown  
cmem_dma_pdown  
entropy_pdown1  
bm_pdown  
8
7
6
When this bit is written “1” the peripheral has its clock gated. This powers  
down everything but the “decoding” circuitry (VLD).  
be_pdown  
multi_dma_pdown  
Mpeg2_ts_pdown  
uart_pdown  
5
4
3
2
1
0
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
1
1
1
1
1
1
audio_pdown  
i2c_pdown  
SCP220x ICP Family, Rev.2.1  
80  
Freescale Semiconductor  
Registers  
5.4.2  
System power down1  
Table 46. System Power Down1  
System Power Down1  
Address: 0xd003_00cc  
Reset = 0xffff_ff3e  
Function  
Type: RW  
Name  
Bit  
Reset  
Reserved  
31:8  
7
Reserved  
When this bit is written “1” the low speed cmem clock is gated.  
0xffff_ff  
Sys_cmem_if_pdown  
system_pdown  
0
0
6
When this bit is written “1” some of the system related blocks get their clock  
gated – boot_loader, keypad, pwm, gpio  
entropy_pdown2  
tcm_pdown  
5
4
3
2
1
0
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
Reserved  
1
1
1
1
1
0
Reserved  
sbist_pdown  
uart1_pdown  
arm2_pdown  
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
When this bit is written “1” the peripheral has its clock gated.  
5.4.3  
System Reset Register  
This register provides a mechanism for software to reset any or all of the internal hardware components. Software  
controls the assertion and de-assertion of the reset for all peripherals except the ARM926EJ-S processor and the EBI  
block.  
Table 47. System Reset Register  
System Reset  
Address: 0xd003_0018  
Reset = 0  
Type: RW  
Name  
Bit  
Function  
Reset  
suicide  
31  
Writing a “1” to this bit will pulse the internal global reset. The entire chip will  
be reset as if the external reset signal was asserted. The bit is self resetting  
and always returns “0” when read.  
0
mp2ts1_rst  
spi1_rst  
30  
29  
28  
27  
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
0
0
0
0
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
pwi_rst  
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
mmcplus_rst  
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
81  
Registers  
Table 47. System Reset Register  
sequencer_rst  
26  
25  
24  
23  
22  
21  
20  
19  
18  
17  
16  
15  
14  
13  
12  
11  
10  
9
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
crypto_rst  
Smart_card_rst  
Rotator_rst  
H264_loop_rst  
bitblt_mini_rst  
ebi_rst  
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
Writing a “1” to this bit will pulse the EBI block reset. The bit is self resetting  
and always returns “0” when read.  
bitblt_rst  
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
vld_rst  
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
cmem_if_rst  
ac_rst  
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
mmc_rst  
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
dip_rst  
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
hpi_rst  
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
usb_rst  
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
nand_rst  
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
sif_rst  
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
spi_rst  
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
cmem_dma_rst  
entropy_rst  
8
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
7
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
SCP220x ICP Family, Rev.2.1  
82  
Freescale Semiconductor  
Registers  
Table 47. System Reset Register  
bm_rst  
be_rst  
6
5
4
3
2
1
0
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
0
0
0
0
0
0
0
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
multi_dma_rst  
Mpeg2_ts_rst  
uart_rst  
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
audio_rst  
i2c_rst  
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
When this bit is written “1” the peripheral in held in reset until this bit is written  
“0”.  
5.4.4  
System Reset1 Register  
Table 48. System Reset1 Register  
System Reset1  
Address: 0xd003_00d0  
Reset = 0  
Type: RW  
Name  
Bit  
Function  
Reset  
Reserved  
31-4  
Reserved  
axi_fabric_rst  
sbist_rst  
3
2
1
0
When this bit is written “1” the peripheral is held in reset.  
When this bit is written “1” the peripheral is held in reset.  
When this bit is written “1” the peripheral is held in reset.  
When this bit is written “1” the peripheral is held in reset.  
0
0
0
0
uart1_rst  
arm2_rst  
5.5  
Miscellaneous  
5.5.1  
Chip ID Register  
Table 49. Chip ID Register  
Reset = 0  
chip ID  
Address: 0xd003_0028  
Type: RO  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
83  
Registers  
Table 49. Chip ID Register  
Function  
Name  
Bit  
Reset  
Reserved  
chip_id  
31-7  
6-4  
Reserved  
This field reflects the bond-out option for the jtag_sel_p PADs. It can be used  
by software to differentiate different chips for marketing purposes.  
0
0
chip_rev_num  
3-0  
This field reflects the silicon revision of the chip.  
Table 50.  
5.6  
Memory Controller  
5.6.1  
Memory Controller Register Description  
Register  
Address Offset  
0x000  
Mode  
memc_status  
memc_cmd  
direct_cmd  
memory_cfg  
refresh_prd  
cas_latency  
Tdqss  
RO  
WO  
WO  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
0x004  
0x008  
0x00C  
0x010  
0x014  
0x018  
0x01C  
0x020  
0x024  
0x028  
0x02C  
0x030  
0x034  
0x038  
0x03C  
0x040  
0x044  
0x048  
0x04C  
0x050  
0x054-0xFF  
Tmrd  
Tras  
Trc  
Trcd  
Trfc  
Trp  
Trrd  
Twr  
Twtr  
Txp  
Txsr  
Tesr  
memory_cfg2  
memory_cfg3  
reserved  
SCP220x ICP Family, Rev.2.1  
84  
Freescale Semiconductor  
Registers  
id_0_cfg  
0x100  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RO  
RO  
RO  
RO  
RO  
RO  
RO  
RO  
id_1_cfg  
0x104  
id_2_cfg  
0x108  
id_3_cfg  
0x10C  
0x110  
id_4_cfg  
id_5_cfg  
0x114  
id_6_cfg  
0x118  
id_7_cfg  
0x11C  
0x120  
id_8_cfg  
id_9_cfg  
0x124  
id_10_cfg  
id_11_cfg  
id_12_cfg  
id_13_cfg  
id_14_cfg  
id_15_cfg  
reserved  
0x128  
0x12C  
0x130  
0x134  
0x138  
0x13C  
0x140-0x1FF  
0x200  
chip_0_cfg  
reserved  
0x204-0xFDF  
0xFE0  
0xFE4  
0xFE8  
0xFEC  
0xFF0  
0xFF4  
0xFF8  
0xFFC  
Periph_id_0  
Periph_id_1  
Periph_id_2  
Periph_id_3  
Pcell_id_0  
Pcell_id_1  
Pcell_id_2  
Pcell_id_3  
5.6.2  
memc_status register  
This register provides information on the configuration of the memory controller and also on the state of the memory  
controller.  
memc_status  
Address: 0x000  
Reset = 0xe34  
Type: RO  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
85  
Registers  
Name  
Bit  
Function  
Reset  
Reserved  
31-13  
12  
Reserved  
See bit 9.  
Memory_banks1  
Exclusive_monitors  
d1  
d3  
11-10  
Returns the number of exclusive access monitor resources implemented in  
the controller.  
00=0 monitor, 01=1 monitor, 10=2 monitors , 11=4 monitors  
Memory_banks0  
9
This returns the maximum number of banks that the controller supports.  
d1  
00 = 2 banks  
01 = 4 banks  
10,11 = reserved  
Memory_chips  
Memory_ddr  
8-7  
6-4  
This returns the number of chip selects that the controller supports.  
00=1 chip, 01=2 chips, 10=3 chips, 11=4 chips  
d0  
This returns the type of memory controller.  
d11  
000=SDR sdram, 001=DDR sdram, 011=mobile DDR sdram  
If mobile DDR sdram or SDR sdram is supported, the cas_half_cycle bit at  
address offset 0x14 is ignored.  
Memory_width  
Memc_status  
3-2  
1-0  
This returns the width of the external memory.  
00=16bit, 01=32bit, 10=64bit  
d1  
This returns the state of the memory controller.  
00=config, 01=ready, 10=paused, 11=low power  
5.6.3  
memc_cmd register  
This registers controls the state of the FSM within the controller. By writing to this register the FSM can be traversed.  
If a new command is received to change state and a previous command has not be completed, the APB3 pready  
signal is held LOW (bus cycle is waited) until the new command can be carried out.  
Memc_cmd  
Address: 0x004  
Reset = 0x0  
Type: WO  
Name  
Bit  
Function  
Reset  
Reserved  
31-3  
2-0  
Reserved  
Changes the state of the memory controller.  
Memc_cmd  
d0  
000=go, 001=sleep, 010=wakeup, 011=pause, 100=configure, 111=active  
pause  
Active_pause puts the controller into a paused state without draining the arbiter  
queue. This enables you to enter low-power mode to change configuration  
settings such as memory frequency or timing register values without requiring  
co-ordination between masters in a multi-master system.  
If the controller is put into low-power mode after using the active_pause  
command, you may not remove power from the controller because this results in  
data loss and violation of the AXI protocol.  
The controller does not issue refreshes while in the config state. It is, therefore,  
recommended that you use the low-power mode to make register updates  
because this ensures that the memory is put into self-refresh rather than entering  
the config state when the memory contains valid data.  
SCP220x ICP Family, Rev.2.1  
86  
Freescale Semiconductor  
Registers  
5.6.4  
direct_cmd register  
This register passes commands to the external memory. The configuration of this register enables you to write to  
any type of mode register supported by the external memory device and also to generate NOP, prechargeall and  
auto refresh commands. This register therefore enables any initialization sequence that an external memory device  
might require. The only timing information associated with this register are the command delays defined in the timing  
registers. Therefore, if an initialization sequence requires additional delays between commands, they must be timed  
by the master driving the initialization sequence. The register can only be written to in the config or low-power state.  
Direct_cmd  
Address: 0x08  
Name  
Reset = 0c0  
Type: WO  
Bit  
Function  
Reset  
Reserved  
ext_memory_cmd  
Chip_number  
Memory_cmd  
31-23  
22  
Reserved  
See bit 19-18.  
d0  
d0  
d0  
21-20  
19-18  
Bits mapped to external memory chip address bits.  
Determines the command required.  
000=prechargeall, 001=auto-refresh, 010=modereg or extended modereg  
access, 011=NOP,100=deep power down  
Bank_addr  
17-16  
Bits mapped to external memory bank address bits when command is  
modereg access.  
d0  
d0  
Reserved  
15-14  
13-0  
Reserved  
Addr_13_to_0  
Bits mapped to external memory address bits [13:0] when command is  
modereg access.  
5.6.5  
memory_cfg register  
This register configures the memory. It can only be read/written in the config or low-power state.  
Memory_cfg  
Address: 0x0C  
Name  
Reset = 0x10020  
Type: RW  
Bit  
Function  
Reset  
sr_enable  
fp_time  
31  
30-24  
23  
Auto self refersh entry.  
d0  
d0  
d0  
d0  
Force precharge timeout count.  
Force precharge enable.  
fp_enable  
Active_chips  
22-21  
Enables the refresh command generation for the number of memory  
chips. It is only possible to generate commands up to and including the  
number of chips in the configuration that the memc_status register  
defines.  
00=1 chip, 01=2 chips, 10=3 chips, 11=4 chips  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
87  
Registers  
Qos_master_bits  
20-18  
17-15  
Encodes the 4 bits of the 8 bit AXI ARID that select one of the 16 QOS  
values.  
000=ARID[3:0], 001=ARID[4:1], 010=ARID[5:2], 011=ARID[6:3],  
100=ARID[7:4]  
d0  
d3  
Memory_burst  
Encodes the number of data accesses that are performed to the SDRAM  
for each read or write command.  
000=burst1, 001=burst2, 010=burst4, 011=burst8, 100=burst16  
The value must also be programmed into the SDRAM mode register  
using the direct_cmd register at offset 0x8 and must match it.  
Stop_mem_clk  
14  
13  
When enabled, the memory clock is dynamically stopped when not  
performing an access to the SDRAM.  
d0  
d0  
Auto_power_down  
When this is set, the memory interface automatically places the SDRAM  
into the power-down state by de-asserting CKE when the command FIFO  
has been empty for the PowerDownPrd memory clock cycles.  
Power_down_prd  
Ap_bit  
12-7  
6
Number of memory clock cycles for auto power-down of the SDRAM.  
d0  
d2  
Encodes the position of the auto-precharge bit in the memory address.  
0=addr10, 1=addr8  
Row_bits  
5-3  
Encodes the number of the AXI address that comprise the row address.  
000=11bits, 001=12bits, 010=13bits, 011=14bits, 100=15bits,  
101=16bits  
d0  
The combination of row size, column size, BRC/RBC and memory width  
must ensure that neither the MSB of the row address nor the MSB of the  
bank address exceed address range [27:0].  
Column_bits  
2-0  
Encodes the number of the AXI address that comprise the column  
address.  
d0  
000=8bits, 001=9bits, 010=10bits, 011=11bits, 100=12bits  
5.6.6  
refresh_prd register  
This sets the memory refresh period. It can only be read/written to in the config or low-power state.  
Refresh_prd  
Address: 0x10  
Name  
Reset = 0xa60  
Type: RW  
Bit  
Function  
Reset  
Reserved  
31-15  
14-0  
Reserved  
Refresh_prd  
Memory refresh period in memory clock cycles.  
0xa60  
5.6.7  
cas_latency register  
This sets the cas_latency in memory clock cycles. It can only be read/written to in the config or low-power state.  
Cas_latency  
Address: 0x14  
Reset = 0x6  
Type: RW  
SCP220x ICP Family, Rev.2.1  
88  
Freescale Semiconductor  
Registers  
Reset  
Name  
Bit  
Function  
Reserved  
Cas_latency  
Cas_half_cycle  
31-4  
3-1  
0
Reserved  
CAS latency in memory clock cycles.  
d3  
d0  
Encodes whether the CAS latency is half a memory clock cycle more than  
the value given in bite[3:1].  
0=zero cycle offset (is forced in MDDR and SDR mode)  
1=half cycle offset to value in [3:1]  
5.6.8  
Tdqss register  
It can only be read/written to in the config or low-power state.  
Tdqss  
Address: 0x18  
Name  
Reset = 0x1  
Type: RW  
Bit  
Function  
Reset  
Reserved  
Tdqss  
31-2  
1-0  
Reserved  
Write to DQS in memory clock cycles.  
0x1  
5.6.9  
Tmrd register  
It can only be read/written to in the config or low-power state.  
Tmrd  
Address: 0x1C  
Name  
Reset = 0x2  
Type: RW  
Bit  
Function  
Reset  
Reserved  
Tmrd  
31-7  
6-0  
Reserved  
Sets mode register command time in memory clock cycles.  
0x2  
5.6.10 Tras Register  
It can only be read/written to in the config or low-power state.  
Tras  
Address: 0x20  
Name  
Reset = 0x7  
Type: RW  
Bit  
Function  
Reset  
Reserved  
Tras  
31-4  
3-0  
Reserved  
Sets RAS to precharge delay in memory clock cycles.  
0x7  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
89  
Registers  
5.6.11 Trc Register  
It can only be read/written to in the config or low-power state.  
Tdqss  
Address: 0x24  
Name  
Reset = 0xB  
Type: RW  
Bit  
Function  
Reset  
Reserved  
Trc  
31-4  
3-0  
Reserved  
Sets active bank x to active bank x delay in memory clock cycles.  
0xB  
5.6.12 Trcd Register  
It can only be read/written to in the config or low-power state.  
Trcd  
Address: 0x28  
Name  
Reset = 0x1D  
Type: RW  
Bit  
Function  
Reset  
Reserved  
Schedule_Trcd  
Trcd  
31-6  
5-3  
Reserved  
Sets the RAS to CAS minimum delay in aclk cycles – 3.  
0x5  
0x5  
2-0  
Sets the RAS to CAS minimum delay in memory clock cycles.  
5.6.13 Trfc Register  
It can only be read/written to in the config or low-power state.  
Trfc  
Address: 0x2C  
Name  
Reset = 0x212  
Type: RW  
Bit  
Function  
Reset  
Reserved  
Schedule_Trfc  
Trfc  
31-10  
9-5  
Reserved  
Sets the auto-refresh command time in aclk cycles - 3.  
0x10  
0x12  
4-0  
Sets the auto-refresh command time in memory clock cycles.  
5.6.14 Trp Register  
It can only be read/written to in the config or low-power state.  
Trp  
Address: 0x30  
Name  
Reset = 0x1d  
Type: RW  
Bit  
Function  
Reset  
SCP220x ICP Family, Rev.2.1  
90  
Freescale Semiconductor  
Registers  
Reserved  
Schedule_Trp  
Trp  
31-6  
5-3  
Reserved  
Sets the precharge to RAS delay in aclk cycles - 3.  
Sets the precharge to RAS delay in memory clock cycles.  
0x5  
0x5  
2-0  
5.6.15 Trrd Register  
It can only be read/written to in the config or low-power state.  
Trrd  
Address: 0x34  
Name  
Reset = 0x2  
Type: RW  
Bit  
Function  
Reset  
Reserved  
Trrd  
31-4  
3-0  
Reserved  
Sets active bank x to active bank y delay in memory clock cycles.  
0x2  
5.6.16 Twr Register  
It can only be read/written to in the config or low-power state.  
Twr  
Address: 0x38  
Name  
Reset = 0x3  
Type: RW  
Bit  
Function  
Reset  
Reserved  
Twr  
31-3  
2-0  
Reserved  
Sets the write to precharge delay in memory clock cycles.  
0x3  
5.6.17 Twtr Register  
It can only be read/written to in the config or low-power state.  
Twtr  
Address: 0x3C  
Name  
Reset = 0x2  
Type: RW  
Bit  
Function  
Reset  
Reserved  
Twtr  
31-3  
2-0  
Reserved  
Sets the write to read delay in memory clock cycles.  
0x2  
5.6.18 TxP Register  
It can only be read/written to in the config or low-power state.  
Txp  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
91  
Registers  
Address: 0x40  
Name  
Reset = 0x1  
Type: RW  
Bit  
Function  
Reset  
Reserved  
Txp  
31-8  
7-0  
Reserved  
Sets the exit power-down command time in memory clock cycles.  
0x1  
5.6.19 Txsr Register  
It can only be read/written to in the config or low-power state.  
Txsr  
Address: 0x44  
Name  
Reset = 0xa  
Type: RW  
Bit  
Function  
Reset  
Reserved  
Txsr  
31-8  
7-0  
Reserved  
Sets the exit self-refresh command time in memory clock cycles.  
0xa  
5.6.20 Tesr Register  
It can only be read/written to in the config or low-power state.  
Tesr  
Address: 0x48  
Name  
Reset = 0x14  
Type: RW  
Bit  
Function  
Reset  
Reserved  
Tesr  
31-8  
7-0  
Reserved  
Sets the self-refresh command time in memory clock cycles.  
0x14  
5.6.21 Memory_cfg2 Register  
It can only be read/written to in the config or low-power state.  
Memory_cfg2  
Address: 0x4c  
Name  
Reset = 0x0  
Type: RW  
Bit  
Function  
Reset  
Reserved  
31-11  
10-9  
Reserved  
Read_delay  
Sets the latency in clocks cycles of the PAD interface.  
0x0  
SCP220x ICP Family, Rev.2.1  
92  
Freescale Semiconductor  
Registers  
memory_type  
memory width  
8-6  
5-4  
Sets the memory type.  
000 = SDR  
001 = DDR  
010 = eDRAM  
011 = LPDDR  
0x0  
Sets the width of the external memory.  
00 = 16 bit  
0x0  
01 = 32 bit  
10 = 64 bit  
11 = reserved  
cke_init  
dqm_init  
3
2
1
Sets the level of the cke output after reset.  
Sets the level of the dqm outputs after reset.  
0x0  
0x0  
0x0  
a_gt_m_sync  
Required to be set high when aclk and mclk are running synchronous but  
when aclk running faster than mclk.  
sync  
0
Set high when aclk and mclk are synchronous.  
0x0  
5.6.22 Memory_cfg3 Register  
It can only be read/written to in the config or low-power state.  
Memory_cfg3  
Address: 0x50  
Name  
Reset = 0x0  
Type: RW  
Bit  
Function  
Reset  
Reserved  
prescale  
31-12  
11-3  
2-0  
Reserved  
Prescaler counter value.  
Maximum number of outstanding refresh commands.  
0x0  
0x0  
max_outs_refs  
5.6.23 ld_x_cfg Registers  
It can only be read/written to in the config or low-power state. For reference, the Ids for the masters are as follows:  
Id = 0x00 – bridge from primary AHB control bus  
Id = 0x20 – bridge from USB master  
Id = 0x40 – bridge from ARM926EJ-S processor instruction bus  
Id = 0x60 – MC-dma  
Id = 0x80 – rotator  
Id = 0xa0 – bitblt  
Id = 0xc0 – bitblt_mini  
Id = 0xe0 – bridge from secondary AHB control bus  
Id_x_cfg  
Address: 0x100-0x13c  
Reset = 0x0  
Type: RW  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
93  
Registers  
Name  
Bit  
Function  
Reset  
Reserved  
Qos_max  
Qos_min  
31-10  
9-2  
1
Reserved  
Sets a maximum QoS.  
Sets a minimum Qos.  
0x0  
0x0  
0x0  
Qos_enable  
0
Enables a QoS value to be applied to memory reads from address IS x.  
5.6.24 chip_0_cfg Register  
It can only be read/written to in the config or low-power state.  
Chip_0_cfg  
Address: 0x200  
Name  
Reset = 0xff00  
Type: RW  
Reset  
0x0  
Bit  
Function  
Reserved  
Brc_n_rbc  
31-17  
16  
Reserved  
Selects the memory organization as decoded from the AXI address.  
0=row,bank,column organization  
1= bank,row,column organization  
Address_match  
Address_mask  
15-8  
7-0  
Comparison value for AXI address bits [31:24] to determine the chip that  
is selected.  
0xFF  
0x0  
The mask for the AXI address bite [31:24] to determine the chip that is  
selected.  
1=corresponding address bit is to be used for comparison.  
5.6.25 Peripheral Identification 0-3 registers  
Peripheral_id0  
Address: 0xfe0  
Name  
Reset = 0x40  
Type: RO  
Bit  
Function  
Reset  
Reserved  
31-8  
7-0  
Reserved  
Part_number  
Primecell part number.  
0x40  
Peripheral_id1  
Address: 0xfe4  
Name  
Reset = 0x13  
Type: RO  
Bit  
Function  
Reset  
Reserved  
designer  
31-8  
7-4  
Reserved  
Primecell designer.  
0x1  
SCP220x ICP Family, Rev.2.1  
94  
Freescale Semiconductor  
Registers  
Part_number  
3-0  
Primecell part number.  
0x3  
Peripheral_id2  
Address: 0xfe8  
Name  
Reset = 0x14  
Type: RO  
Type: RO  
Type: RO  
Bit  
Function  
Reset  
Reserved  
revision  
31-8  
7-4  
Reserved  
Primecell revision number.  
Primecell designer.  
0x1  
0x4  
designer  
3-0  
Peripheral_id3  
Address: 0xfec  
Name  
Reset = 0x0  
Bit  
Function  
Reset  
Reserved  
31-4  
3-0  
Reserved  
Customer_mod  
Customer Modified number.  
0x0  
5.6.26 Primecell Identification 0-3 registers  
Pcell_id0  
Address: 0xff0  
Name  
Reset = 0xD  
Bit  
Function  
Reset  
Reserved  
31-8  
7-0  
Reserved  
Id_number  
Id_number  
0xD  
Pcell_id1  
Address: 0xff4  
Name  
Reset = 0xF0  
Type: RO  
Bit  
Function  
Reset  
Reserved  
31-8  
7-0  
Reserved  
Id_number  
Id_number  
0xF0  
Pcell_id2  
Address: 0xff8  
Reset = 0x5  
Type: RO  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
95  
Registers  
Name  
Bit  
Function  
Reset  
Reserved  
31-8  
7-0  
Reserved  
Id_number  
Id_number  
0x5  
Pcell_id3  
Address: 0xffc  
Name  
Reset = 0xB1  
Type: RO  
Bit  
Function  
Reset  
Reserved  
31-8  
7-0  
Reserved  
Id_number  
Id_number  
0xB1  
5.7  
NAND Interface Registers Description  
NAND Register Map  
5.7.1  
The register map is summarized below and described in the following sections.  
Table 51. NAND Register Map  
Register  
Interrupt Source  
Address Offset  
0x00  
Mode  
RO  
RW  
WO  
RW  
RW  
RW  
RW  
RW  
RW  
RO  
WO  
RO  
RO  
RO  
Interrupt Mask  
0x04  
Interrupt Clear  
0x08  
Interface Timing  
0x0C  
0x10  
NAND Configuration  
NAND Action  
0x14  
NAND Command  
NAND Address  
0x18  
0x1C  
0x20  
NAND Address (extended)  
NAND Read  
0x24  
NAND Write  
0x28  
NAND Status  
0x2C  
0x30-0x3C  
0x40-0x5C  
0x60  
NAND Simple ECC result  
NAND Generated Simple ECC  
FIFO status  
RO/WO  
RW  
FIFO flag Configuration  
0x64  
SCP220x ICP Family, Rev.2.1  
96  
Freescale Semiconductor  
Registers  
Table 51. NAND Register Map  
RS ECC config  
0x68  
RW  
RW  
RW  
RW  
RO  
RO  
RO  
RO  
RS ECC Read Parity1  
RS ECC Read Parity2  
RS ECC Read Parity3  
RS ECC Write Parity1  
RS ECC Write Parity2  
RS ECC Write Parity3  
RS ECC Status  
0x6C  
0x70  
0x74  
0x78  
0x7C  
0x80  
0x84  
reserved  
0x88-0xfff  
0x1000-0x1fff  
0x2000-0x2fff  
transmit FIFO  
WO  
RO  
receive FIFO  
5.7.2  
Interrupt Source Register  
The interrupt source register contains the raw unmasked interrupts and can be used for polling purposes (instead  
of the external interrupt pin) or for determining which interrupt(s) have caused the external interrupt pin to assert.  
Table 52. Interrupt Source Register  
Interrupt Source Register  
Address: 0x00  
Name  
Reset = 0x0  
Type: RO  
Bit  
Function  
Reset  
Reserved  
31-15  
14  
Reserved  
corrected_data_done  
This interrupt is asserted (if using the Reed Solomon ECC) when the  
corrected data for a 512 byte block has been write to the input FIFO.  
0x0  
0x0  
read_ecc_complete  
write_par_complete  
13  
12  
Indicates that the Reed Solomon ECC engine has finished checking the  
last read 512 byte block. The RS ECC status register will now contain the  
ECC results for that read block.  
Indicates that the Reed Solomon ECC engine has generated the write  
parity and it is available in the write parity registers.  
0x0  
nand_block_write  
nand_block_read  
tx_pop_error  
11  
10  
9
Indicates that a NAND block write operation is completed  
Indicates that a NAND block read operation is completed  
0x0  
0x0  
0x0  
asserted when the transmit FIFO experiences an overrun condition or  
misaligned access. This error is from the perspective of the external  
interface.  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
97  
Registers  
Table 52. Interrupt Source Register  
rx_push_error  
8
7
6
asserted when the receive FIFO experiences an underrun condition or  
misaligned access. This error is from the perspective of the external  
interface.  
0x0  
0x0  
0x0  
dma_pop_error  
dma_push_error  
asserted when the receive FIFO experiences an underrun condition or  
misaligned access. This error is from the perspective of the internal APB  
bus.  
asserted when the transmit FIFO experiences an overrun condition or  
misaligned access. A misaligned access can occur if the width of the write  
has changed from a previous access. For example, if byte writes have  
previously been used, the number of writes may be non-multiples of 32 bits.  
If a 32 bit write now occurs, this is a misaligned access because the byte  
pointers in the FIFO are not pointing to byte ’0’. This error is from the  
perspective of the internal APB bus.  
rx_ff  
5
4
asserted when the receive FIFO has become full  
0x0  
0x0  
rx_hf  
asserted when the receive FIFO level (amount of bytes in the FIFO) is  
above the software configured “half” empty level.  
rx_fe  
tx_ff  
3
2
1
asserted when the receive FIFO has become NOT empty  
asserted when the transmit FIFO has become NOT full  
0x0  
0x0  
0x0  
tx_hf  
asserted when the transmit FIFO level (amount of space available) is above  
the software configured “half” full level.  
tx_fe  
0
asserted when the transmit FIFO has become empty  
0x0  
5.7.3  
Interrupt Mask Register  
The interrupt mask register provides a mechanism to individually mask one or more of the interrupt sources.  
Table 53. Interrupt Mask Register  
Interrupt Mask Register  
Address: 0x04  
Name  
Reset = 0xFFFF_FFFF  
Function  
Type: RW  
Bit  
Reset  
Reserved  
31-15  
14  
Reserved  
corrected_data_done  
read_ecc_complete  
write_par_complete  
nand_block_write  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
0x1  
0x1  
0x1  
0x1  
13  
12  
11  
SCP220x ICP Family, Rev.2.1  
98  
Freescale Semiconductor  
Registers  
Table 53. Interrupt Mask Register  
nand_block_read  
tx_pop_error  
rx_push_error  
dma_pop_error  
dma_push_error  
rx_ff  
10  
9
8
7
6
5
4
3
2
1
0
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
rx_hf  
rx_fe  
tx_ff  
tx_hf  
tx_fe  
5.7.4  
Interrupt Clear Register  
The interrupt clear register provides the mechanism for clearing the raw interrupt sources. Writing a „1. to the  
interrupt bit location will clear the interrupt.  
Table 54. Interrupt Clear Register  
Interrupt Clear Register  
Address: 0x08  
Name  
Reset = 0x0  
Type: WO  
Bit  
Function  
Reset  
Reserved  
corrected_data_done  
read_ecc_complete  
write_par_complete  
nand_block_write  
nand_block_read  
tx_pop_error  
31-15  
14  
13  
12  
11  
10  
9
Reserved  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
rx_push_error  
dma_pop_error  
dma_push_error  
rx_ff  
8
7
6
5
rx_hf  
4
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
99  
Registers  
Table 54. Interrupt Clear Register  
rx_fe  
tx_ff  
3
2
1
0
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
0x0  
0x0  
0x0  
0x0  
tx_hf  
tx_fe  
5.7.5  
Interface Timing  
All timing parameters refer to increments of the internal reference clock and a value of .0. means 1x refclk, a value  
of .1. means 2x refclk, etc.  
Table 55. Interface Timing  
Interface Timing  
Address: 0x0C  
Reset = 0x01001000  
Function  
Type: RW  
Name  
Chip_select_sel  
Bit  
Reset  
31-28  
The nand interface supports 4 external chip selects (of which only one can  
be active at any one time). This “one-hot” field indicates which external chip  
select is active. The chip select that is active is turned on and off by the  
controlling bits in the NAND Action register.  
0001 – chip select 0 selected  
0x0  
0010 – chip select 1 selected  
0100 – chip select 2 selected  
1000 – chip select 3 selected  
Any other value will disabled all chip selects.  
t7  
27-24  
Indicates the number of system clocks from NAND_CLE/NAND_ALE  
inactive to NAND_ALE/ NAND_CLE active. Also indicates the number of  
system clocks from NAND_ALE inactive to NAND_WE/NAND_RE active. A  
value of ‘0’ is invalid for this field.  
0x1  
t6  
t5  
t4  
23-20  
19-16  
15-12  
Indicates the number of system clocks for the NAND_RE inactive pulse width  
Indicates the number of system clocks for the NAND_RE active pulse width  
0x0  
0x0  
0x1  
Indicates the number of system clocks for the NAND_WE inactive pulse  
width. A value of ‘0’ is invalid for this field.  
t3  
11-8  
Indicates the number of system clocks from NAND_WE inactive to  
NAND_CLE inactive  
0x0  
t2  
t1  
7-4  
3-0  
Indicates the number of system clocks for the NAND_WE active pulse width  
0x0  
0x0  
Indicates the number of system clocks from NAND_CLE active to NAND_WE  
active  
SCP220x ICP Family, Rev.2.1  
100  
Freescale Semiconductor  
Registers  
5.7.6  
NAND configuration  
Table 56. NAND Configuration  
NAND Configuration  
Address: 0x10  
Reset = 0x0  
Type: RW  
Name  
Bit  
Function  
Reset  
nand_read_ena  
31  
The “NAND Read” register initiates an external access when the register is  
read. There may be circumstances where this is undesirable (i.e. debug).  
This bit will disable the operation of that register. When operation is disabled  
a read of the “NAND Read” register will complete but the data will be invalid.  
0 = “NAND Read” register accesses do not initiate external NAND cycles.  
1 = Normal operation for “NAND Read” register accesses.  
0x0  
nand_if_ena  
ecc_ena  
30  
Enables the internal state machine as well as the external PADs for the  
control signals.  
0 = interface disabled  
1 = interface enabled  
0x0  
0x0  
29  
28  
Enables the writing (for block writes) and checking (for block reads) of ECC.  
Refer to the hardware description for a more detailed explanation of ECC  
generation and checking. This enable bit is only pertinent to the “simple” ECC  
method.  
addr_size  
27-24  
23-16  
Indicates how many bytes are associated with an address transaction.  
0x0  
0x0  
spare_size  
Indicates the number of bytes in the spare or redundant area of the NAND  
Flash.  
page_size  
15-0  
Indicates the number of bytes in the page of data associated with the NAND  
flash.  
0x0  
5.7.7  
NAND Action  
Table 57. NAND Action  
NAND Action  
Address: 0x14  
Reset = 0x0  
Type: RW  
Name  
Bit  
Function  
Reset  
Reserved  
write_kick  
31-4  
3
Reserved  
Initiates a block write transaction. The NAND hardware interface will do a  
series of writes that totals the "page_size" + "ecc_size" + "spare_size". Once  
completed, the NAND_page_write interrupt is asserted. This action will  
commence after this bit is set and data is present in the transmit FIFO. The  
bit is self resetting and always returns 0 when read.  
0x0  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
101  
Registers  
Table 57. NAND Action  
read_kick  
2
Initiates a block read transaction. The NAND hardware interface will do a  
series of reads that totals the "page_size" + "ecc_size" + "spare_size". Once  
completed, the NAND_page_read interrupt is asserted. This action will  
commence immediately after this bit is set. Software must ensure that the  
NAND device is available for a page read operation prior to issuing the "kick".  
The bit is self resetting and always returns 0 when read.  
0x0  
ce_dis  
1
0
Setting this bit to ’1’ de-asserts the NAND Flash chip enable. This operation  
must be done after NAND accesses are completed and the NAND Flash is  
effectively idle. The bit is self resetting and always returns 0 when read.  
0x0  
0x0  
ce_ena  
Setting this bit to ’1’ asserts the NAND Flash chip enable. This operation  
must be done before any NAND Flash reading or writing is initiated. The bit  
is self resetting and always returns 0 when read.  
5.7.8  
NAND command  
Table 58. NAND command  
NAND Command  
Address: 0x18  
Reset = 0x0  
Function  
Type: RW  
Name  
Bit  
Reset  
Reserved  
command  
31-8  
7-0  
Reserved  
This register contains and initiates a command cycle to the NAND Flash.  
Writing a command to the register initiates an external command access.  
Reading the register will provide the value of the previous command that was  
issued.  
0x0  
SCP220x ICP Family, Rev.2.1  
102  
Freescale Semiconductor  
Registers  
5.7.9  
NAND address  
This register contains and initiates a series of address cycles to the NAND Flash. The number of address cycles  
initiated is controlled by the "addr_size" field in the NAND configuration register. If the number of address bytes is  
greater than 4, writing to this register does not initiate any external cycles. Instead the write to the extended NAND  
address register initiates the external address cycles. Reading the register will provide the value of the previous  
address that was issued.  
Table 59. NAND Address  
NAND Address  
Address: 0x1C  
Reset = 0x0  
Type: RW  
Type: RW  
Type: RO  
Name  
Bit  
Function  
Reset  
addr3  
addr2  
addr1  
addr0  
31-24  
23-16  
15-8  
7-0  
4th address byte  
rd address byte  
0x0  
0x0  
0x0  
0x0  
3
2nd address byte  
1st address byte  
5.7.10 NAND address (extended)  
Table 60. NAND address (extended)  
NAND Address (extended)  
Address: 0x20  
Reset = 0x0  
Function  
Name  
Bit  
Reset  
addr7  
addr6  
addr5  
addr4  
31-24  
23-16  
15-8  
7-0  
8th address byte  
th address byte  
0x0  
0x0  
0x0  
0x0  
7
6th address byte  
5th address byte  
5.7.11 NAND Read  
Table 61. NAND Read  
NAND Read  
Address: 0x24  
Reset = 0x0  
Name  
Bit  
Function  
Reset  
31-16  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
103  
Registers  
Table 61. NAND Read  
read_data  
15-0  
This register, when read will initiate a read cycle to the NAND Flash. It is  
intended as a status polling mechanism and must be used in conjunction with  
appropriate command and address sequencing. The MSB is only applicable  
if 16 bit NAND Flash is enabled.  
0x0  
5.7.12 NAND Write  
Table 62. NAND Write  
NAND Write  
Address: 0x28  
Reset = 0x0  
Type: WO  
Name  
Bit  
Function  
Reset  
31-16  
15-0  
write_data  
This register, when written will initiate a write cycle to the NAND Flash. It is  
intended as an alternative to a datapath driven by the FIFO. This register is  
probably only pertinent to debug or NAND maintenance operations. The  
MSB is only applicable if 16 bit NAND Flash is enabled.  
0x0  
5.7.13 NAND Status  
This register contains status information associated with NAND read activity. ECC generation and checking is done  
on 256 byte blocks. Error results are stored for each 256 byte block (for instance if the NAND page size is 2048 bytes  
then there are 8 result fields and error bits that are pertinent to this activity).  
Table 63. NAND Status  
NAND Status  
Address: 0x2C  
Name  
Reset = 0x0  
Type: RO  
Bit  
Function  
Reset  
Reserved  
31-19  
18  
Reserved  
Write_pending  
When ’1’, this bit indicates that a single write cycle is still in progress and  
is not yet completed. If back to back writes need to be issued this bit should  
be polled and the second write not written until the bit indicates a  
completion.  
0x0  
address_pending  
17  
When ’1’, this bit indicates that an address cycle is still in progress and is  
not yet completed. If back to back addresses need to be issued this bit  
should be polled and the second address not written until the bit indicates  
a completion.  
0x0  
SCP220x ICP Family, Rev.2.1  
104  
Freescale Semiconductor  
Registers  
Table 63. NAND Status  
command_pending  
16  
When ’1’, this bit indicates that a command is still in progress and is not  
yet completed. If back to back commands need to be issued this bit should  
be polled and the second command not written until the bit indicates a  
completion.  
0x0  
ecc_error  
data_error  
15-8  
7-0  
Indicates that there is an un-correctable error and the data is incorrect.  
There is one bit per 256 byte block read from memory. This is only  
pertinent to the “simple” ECC method.  
0x0  
0x0  
Indicates that there is a correctable data error. The ecc_result field  
registers provide enough information to correct the error. There is one bit  
per 256 byte block read from memory. This is only pertinent to the “simple”  
ECC method.  
5.7.14  
NAND Simple ECC result  
These registers contain the result fields from the NAND ECC checking. These fields are only applicable when ECC  
is enabled and a block read has taken place. There is a valid result field for every 256 byte block written to the NAND  
page.  
Table 64. NAND Simple ECC result  
NAND Simple ECC result  
Address: 0x30-3C  
Reset = 0x0  
Type: RO  
Name  
Bit  
Function  
Reset  
31-27  
26-16  
ecc_result2  
ecc_result4  
ecc_result6  
ecc_result8  
ecc result field for additional 256 byte blocks  
0x0  
15-11  
10-0  
ecc_result1  
ecc_result3  
ecc_result5  
ecc_result7  
The result field is pertinent when a correctable error has been detected. The  
NAND status register indicates whether an error has occurred and whether  
the error is correctable. When the error is correctable (a single bit error in the  
256 byte block) the result provides enough information so that it can be  
corrected. eccx_result[7:0] contains the byte address (within the 256 byte  
block) that has the bit error. eccx_result[10:8] indicates which bit within the  
byte is incorrect. To fix the error, software must invert the bit indicated by this  
result field.  
0x0  
5.7.15 NAND Generated Simple ECC  
These registers contain the generated ECC resulting from a block write or a block read. The registers contain  
generated ECC whether or not ECC has been enabled. The intent of these registers are to provide flexibility to  
software. If ECC is enabled, the contents of these registers are automatically written to flash (for a block write)  
immediately following the block of data. If the application requires the ECC to be in a location other than the first set  
of bytes in the redundant block, ECC should be disabled so that hardware does not automatically write the ECC.  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
105  
Registers  
Software can then read the generated ECC from these registers and write it to a different location in the redundant  
block. For a block read, the generated ECC and the stored ECC can be applied to the same validation algorithm that  
the hardware employs to determine how to correct bit errors.  
Table 65. NAND Generated Simple ECC  
NAND Generated Simple ECC  
Address: 0x40-5C  
Reset = 0x0  
Type: RO  
Name  
Bit  
Function  
Reset  
Reserved  
31-24  
23-0  
Reserved  
ecc_generated1  
ecc_generated2  
ecc_generated3  
ecc_generated4  
ecc_generated5  
ecc_generated6  
ecc_generated7  
ecc_generated8  
The result field contains the generated ECC for the appropriate 256 byte  
block. This is only pertinent to the “simple” ECC method.  
0x0  
5.7.16 FIFO Status  
Table 66. FIFO Status  
FIFO status  
Address: 0x60  
Reset = 0x80  
Type: RO/WO  
Name  
Bit  
Function  
Reset  
rx_flush  
31  
When this bit is written ‘1’, the receive FIFO is flushed.  
This bit is a write only bit.  
0x0  
tx_flush  
30  
When this bit is written ‘1’, the transmit FIFO is flushed.  
This bit is a write only bit.  
0x0  
Reserved  
29-14  
15-8  
Reserved  
rx_byte_count  
Indicates how many bytes of data is present in the receive FIFO. This is a read  
only field.  
0x0  
tx_byte_count  
7-0  
Indicates how many bytes of free space is available in the transmit FIFO. This  
is a read only field.  
0x80  
5.7.17 FIFO Flag Configuration  
Table 67. FIFO Flag Configuration  
FIFO flag Configuration  
SCP220x ICP Family, Rev.2.1  
106  
Freescale Semiconductor  
Registers  
Table 67. FIFO Flag Configuration  
Reset = 0x28_4040  
Address: 0x64  
Name  
Type: RW  
Bit  
Function  
Reset  
Reserved  
31-22  
21:20  
Reserved  
rx_FIFO_size  
Although the asynchronous FIFO supports reads of varying sizes (8,16,32 or  
0x10  
64) the size must be configured prior to using the FIFO. This size refers to the  
side of the FIFO that the internal bus or dma engine reads from. If this field  
is being updated, the FIFO must be flushed to ensure that the internal  
pointers are properly aligned.  
00 = 8 bit  
01 = 16 bit  
10 = 32 bit  
11 = 64 bit  
tx_FIFO_size  
19-18  
Although the asynchronous FIFO supports writes of varying sizes (8,16,32 or  
0x10  
64) the size must be configured prior to using the FIFO. This size refers to the  
side of the FIFO that the internal bus or dma engine writes to. If this field is  
being updated, the FIFO must be flushed to ensure that the internal pointers  
are properly aligned.  
00 = 8 bit  
01 = 16 bit  
10 = 32 bit  
11 = 64 bit  
Reserved  
17-16  
15-8  
Reserved  
rx_half_empty  
Sets the FIFO level (in bytes) that asserts the receive “half” empty flag. The  
level setting is associated with how much data is in the FIFO. i.e. if the setting  
is 0x20, then when the FIFO fills above 0x20 bytes of data available in the  
FIFO, the interrupt will be asserted.  
0x40  
0x40  
tx_half_full  
7-0  
Sets the FIFO level (in bytes) that asserts the transmit “half” full flag. The  
level setting is associated with how much space is available in the FIFO. i.e.  
if the setting is 0x20, then when the FIFO drains such that the amount of  
space available becomes 0x20 bytes, the interrupt will be asserted.  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
107  
Registers  
5.7.18 RS ECC config  
Table 68. RS ECC config  
Reset = 0x0  
RS ECC config  
Address: 0x68  
Type: RW  
Name  
Bit  
Function  
Reset  
Reserved  
31-3  
2
Reserved  
rs_ecc_writepar_go  
Some applications require the write parity before the write block is sent to  
the nand flash. This “kicking” signal allows the write block to pass through  
the RS ECC block to generate the write ECC bytes without sending the 512  
byte block to nand flash. This bit is self clearing, and when it is written the  
hardware will read 512 bytes from the transmit FIFO and pass it through the  
RS ECC block, After this process is complete, the 9 bytes of write ECC can  
be then be read from the “RS ECC write parity” registers and written to  
nand flash before the actual 512 byte block is written. After the parity is  
written, a block write can be configured and the 512 bytes of data can be  
written to the transmit FIFO again. This time the block will be written to the  
nand flash.  
0x0  
rs_ecc_correct_go  
rs_ecc_enable  
1
0
This is a self clearing bit that is used if the RS ECC engine indicates that  
correctable read errors have been detected. When this bit is written, the  
input FIFO is loaded up with the corrected data of the 512 byte block.  
0x0  
0x0  
This bit is set before any data operation occurs, if RS ECC operation is  
required.  
0 = RS ECC operation disabled.  
1 = RS ECC checking and generation is enabled.  
5.7.19 RS ECC read parity  
These registers are programmed with the 9 bytes of ECC for the next 512 byte block read. They must be  
programmed prior to initiating the block read.  
RS ECC read parity1  
Address: 0x6C  
Reset = 0x0  
Type: RW  
Name  
Read_parity  
Bit  
Function  
Reset  
31-0  
Bits 31:0 of the read parity  
0x0  
RS ECC read parity2  
Address: 0x70  
Reset = 0x0  
Type: RW  
Name  
Bit  
Function  
Reset  
SCP220x ICP Family, Rev.2.1  
108  
Freescale Semiconductor  
Registers  
Read_parity  
31-0  
Bits [63:32] of the read parity  
Table 69. RS ECC read parity  
0x0  
RS ECC read parity3  
Address: 0x74  
Reset = 0x0  
Type: RW  
Name  
Bit  
Function  
Reset  
Reserved  
31-8  
7-0  
Reserved  
Bits [71:64] of the read parity  
Read_parity  
0x0  
5.7.20 RS ECC write parity  
These registers contain the 9 bytes of generated parity that are generated by the RS ECC engine after a 512 bytes  
block is written to NAND flash. The 9 bytes can be read and then written to nand flash.  
RS ECC write parity1  
Address: 0x78  
Name  
Write_parity  
Reset = 0x0  
Type: RO  
Bit  
Function  
Reset  
31-0  
Bits 31:0 of the write parity  
0x0  
RS ECC write parity2  
Address: 0x7C  
Reset = 0x0  
Type: RO  
Name  
Bit  
Function  
Reset  
Write_parity  
31-0  
Bits [63:32] of the write parity  
0x0  
Table 70. RS ECC write parity  
RS ECC write parity3  
Address: 0x80  
Reset = 0x0  
Function  
Type: RO  
Name  
Bit  
Reset  
Reserved  
31-8  
7-0  
Reserved  
Bits [71:64] of the write parity  
Write_parity  
0x0  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
109  
Registers  
5.7.21 RS ECC Status  
Table 71. RS ECC Status  
Reset = 0x0  
RS ECC Status  
Address: 0x84  
Type: RO  
Name  
Bit  
Function  
Reset  
Reserved  
31-2  
1-0  
Reserved  
After the 512 byte read operation is completed and the  
rs_ecc_read_status  
0x0  
“read_ecc_complete” interrupt is asserted, this field indicates the status of  
the block read.  
00 = no errors  
01 = correctable errors  
1x = uncorrectable errors  
5.7.22 Transmit FIFO  
The Transmit FIFO operates as a FIFO even though it has a range of addresses. The wider range allows bus bursting  
to fill the FIFO.  
Table 72. Transmit FIFO  
Transmit FIFO  
Address: 0x1000-0x1fff  
Reset = 0x0  
Type: WO  
Name  
Bit  
Function  
Reset  
data  
31-0  
This field contains the data to be written to the FIFO. This register supports  
8,16 or 32 bit writes and pushes the appropriate amount of data into the  
FIFO.  
0x0  
5.7.23 Receive FIFO  
The Receive FIFO operates as a FIFO even though it has a range of addresses. The wider range allows bus bursting  
to drain the FIFO.  
Table 73. Receive FIFO  
Receive FIFO  
Address: 0x2000-0x2fff  
Reset = 0x0  
Type: WO  
Name  
Bit  
Function  
Reset  
data  
31-0  
This field contains the data to be read from the FIFO. This register supports  
8,16 or 32 bit reads and pops the appropriate amount of data from the FIFO.  
0x0  
SCP220x ICP Family, Rev.2.1  
110  
Freescale Semiconductor  
Registers  
5.8  
UART Control Registers  
UART Register Description  
5.8.1  
Table 74. UART Register Map  
Register Address Offset  
Interrupt Source 0x00  
Mode  
RO  
RW  
WO  
RW  
RW  
Interrupt Mask  
Interrupt Clear  
baud rate control  
Configuration  
fifo status  
0x04  
0x08  
0x0C  
0x10  
0x14  
RO/WO  
RW  
fifo flag Configuration  
reserved  
0x18  
0x1C-0xfff  
0x1000-0x1fff  
0x2000-0x2fff  
WO  
transmit fifo  
WO  
receive fifo  
RO  
The register map is summarized below and described in the following sections.  
5.8.2  
Interrupt Source Register  
Table 75. Interrupt Source Register  
Interrupt Source Register  
Address: 0x00  
Name  
Reset = 0x0  
Type: RO  
Bit  
Function  
Reset  
Reserved  
RTS_raw  
CTS_raw  
31-13  
12  
Reserved  
This bit reflects the state of the RTS modem signal.  
This bit reflects the state of the CTS modem signal.  
0x0  
0x0  
0x0  
11  
rx_push_error  
10  
asserted when the receive fifo experiences an overrun condition or  
mis-aligned access.This error is from the perspective of the external  
interface.  
parity_error  
frame_error  
9
8
asserted when the receive block detects a parity error  
0x0  
0x0  
asserted when the receive block has detected a frame error (missing stop  
bit(s))  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
111  
Registers  
Table 75. Interrupt Source Register  
bus_pop_error  
7
6
asserted when the transmit fifo experiences an underrun condition or  
mis-aligned access.This error is from the perspective of the internal APB  
bus.  
0x0  
0x0  
bus_push_error  
asserted when the receive fifo experiences an overrun condition or  
mis-aligned access. A mis-aligned access can occur if the width of the write  
has changed from a previous access. For example, if byte writes have  
previously been used, the number of writes may be non-multiples of 32 bits.  
If a 32 bit write now occurs, this is a misaligned access because the byte  
pointers in the fifo are not pointing to byte ’0’. This error is from the  
perspective of the internal APB bus.  
rx_ff  
5
4
asserted when the receive fifo has become full  
0x0  
0x0  
rx_hf  
asserted when the receive fifo level (amount of bytes in the fifo) has risen  
above the software configured “half” empty level.  
rx_fe  
tx_ff  
3
2
1
asserted when the receive fifo has become NOT empty  
asserted when the transmit fifo has become NOT full  
0x0  
0x0  
0x0  
tx_hf  
asserted when the transmit fifo level (amount of space available) has risen  
above the software configured “half” full level.  
tx_fe  
0
asserted when the transmit fifo has become empty  
0x0  
The interrupt source register contains the raw unmasked interrupts and can be used for polling purposes (instead  
of the external interrupt pin) or for determining which interrupt(s) have caused the external interrupt pin to assert.  
5.8.3  
Interrupt Mask Register  
The interrupt mask register provides a mechanism to individually mask one or more of the interrupt sources.  
Table 76. Interrupt Mask Register  
Interrupt Mask Register  
Address: 0x04  
Name  
Reset = 0x1FFF  
Function  
Type: RW  
Bit  
Reset  
Reserved  
RTS_raw  
31-13  
12  
11  
10  
9
Reserved  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
CTS_raw  
rx_push_error  
parity_error  
frame_error  
bus_pop_error  
bus_push_error  
8
7
6
SCP220x ICP Family, Rev.2.1  
112  
Freescale Semiconductor  
Registers  
Table 76. Interrupt Mask Register  
rx_ff  
rx_hf  
rx_fe  
tx_ff  
5
4
3
2
1
0
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
tx_hf  
tx_fe  
5.8.4  
Interrupt clear Register  
Table 77. Interrupt Clear Register  
• Interrupt Clear Register  
• Address: 0x08  
• Name  
• Reset = 0x0  
Type: WO  
• Bit  
• Function  
Reserved  
• Reset  
Reserved  
RTS_raw  
CTS_raw  
rx_push_error  
parity_error  
frame_error  
bus_pop_error  
bus_push_error  
rx_ff  
31-13  
12  
11  
10  
9
This interrupt can’t be cleared. It just reflects the state of the modem signal.  
This interrupt can’t be cleared. It just reflects the state of the modem signal.  
Clears the interrupt when written ‘1’.  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
Clears the interrupt when written ‘1’.  
8
Clears the interrupt when written ‘1’.  
7
Clears the interrupt when written ‘1’.  
6
Clears the interrupt when written ‘1’.  
5
Clears the interrupt when written ‘1’.  
rx_hf  
4
Clears the interrupt when written ‘1’.  
rx_fe  
3
Clears the interrupt when written ‘1’.  
tx_ff  
2
Clears the interrupt when written ‘1’.  
tx_hf  
1
Clears the interrupt when written ‘1’.  
tx_fe  
0
Clears the interrupt when written ‘1’.  
The interrupt clear register provides the mechanism for clearing the raw interrupt sources. Writing a „1. to the  
interrupt bit location will clear the interrupt.  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
113  
Registers  
5.8.5  
Baud Rate Control  
Table 78. Baud Rate Control  
Baud Rate Control  
Address: 0x0C  
Reset = 0x0  
Function  
Type: RW  
Name  
Bit  
Reset  
rx_baud_rate_div  
tx_baud_rate_div  
31-16  
The interface reference clock is divided by this value to produce the baud rate  
for the receive data. Minimum value is d16.  
0x0  
15-0  
The interface reference clock is divided by this value to produce the baud rate  
for the transmit data. Minimum value is d16. For IR mode, the  
tx_baud_rate_div must be the same as the rx_baud_rate_div.  
0x0  
5.8.6  
Configuration  
Table 79. UART Configuration  
Configuration  
Address: 0x10  
Reset = 0x14_0000  
Function  
Type: RW  
Name  
rts_fifo_level  
Bit  
Reset  
31-24  
This field sets the FIFO threshold as to when to de-assert the RTS modem  
signal. It represents the amount of empty space in the fifo in bytes. If the fifo  
goes below this amount of empty space, the RTS modem signal is  
de-asserted.  
0x0  
Reserved  
23  
22  
Reserved  
enable_CTS  
This field enables the use of the CTS signal. When enabled, the transmitter  
will only send characters when this signal is asserted.  
0 = modem signal not enable  
0x0  
0x0  
1 = modem signal enabled  
enable_RTS  
rx_fifo_size  
21  
This field enables the use of the RTS signal. When enabled, the receiver will  
assert/de-assert the signal depending on how much space is available in the  
fifo. If the modem signal is not enabled it will remain de-asserted.  
0 = modem signal not enable  
1 = modem signal enabled  
20-19  
The receive fifo is an async fifo that supports 8,16,32 or 64 bit wide reads.  
0x10  
The fifo access size must be set prior to using the fifo. If the fifo size is  
changed, the fifo must be flushed.  
00 = 8 bits  
01 = 16 bits  
10 = 32 bits  
11 = 64 bits  
SCP220x ICP Family, Rev.2.1  
114  
Freescale Semiconductor  
Registers  
Table 79. UART Configuration  
tx_fifo_size  
18-17  
The transmit fifo is an async fifo that supports 8,16,32 or 64 bit wide writes.  
0x10  
The fifo access size must be set prior to using the fifo. If the fifo size is  
changed, the fifo must be flushed.  
00 = 8 bits  
01 = 16 bits  
10 = 32 bits  
11 = 64 bits  
external_pad_ena  
rx_sampling_pos  
16  
This bit enables the external transmit data pad. It must be enabled before  
0x0  
0x0  
sending any data.  
0 = pad disabled  
1 = pad enabled  
15-12  
The rx_sampling_pos is internal sampling position in a bit and is usually set  
to 7 when normal mode and 0 when IR mode.  
Dn-1  
Dn  
Dn+1  
15  
0
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15  
0
1
RXGRIP_CNT = 7  
ir_tx_polarity  
ir_rx_polarity  
ir_mode  
10  
9
IR TX polarity in IR mode  
0 : Active High  
1 : Active Low  
0x0  
0x0  
0x0  
IR RX polarity in IR mode  
0 : Active High  
1 : Active Low  
8
When the ir_mode is enabled, signal format is followed by IR mode timing  
diagram.  
0 = normal mode  
1 = IR mode  
Bit  
Pulse width = 3/16 Bit Time  
Time  
IR Tx  
0
1
1
0
0
0
1
0
0
0/1  
1
1
Parity  
(Option)  
Stop2  
(Option)  
Start D0  
D1  
D2  
D3  
D4  
D5  
D6  
D7  
Stop  
IR mode TX timing diagram  
IR Rx  
IR_RxINV = 1  
IR_RxINV = 0  
0
1
1
0
0
0
1
0
0
0/1  
1
1
Parity Stop2  
Stop  
Start D0  
D1  
D2  
D3  
D4  
D5  
D6  
D7  
(Option)  
(Option)  
IR mode RX timing diagram  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
115  
Registers  
Table 79. UART Configuration  
echo  
7
6
5
4
When the echo is enabled, the incoming receive data is received internally  
but it is also looped back to the external transmit path.  
0 = loopback disabled  
0x0  
0x0  
0x0  
0x0  
1 = loopback enabled  
remote_loop  
local_loop  
rx_endian  
When a remote loopback is enabled, the incoming receive data is loopback  
to the outgoing transmit data. The internal receive path is disabled.  
0 = loopback disabled  
1 = loopback enabled  
When a local loopback is enabled, the transmit data is looped back to the  
receive data. The transmit data is still transmitted externally.  
0 = loopback disabled  
1 = loopback enabled  
This bit is used to modify the endianess of the data while it passes through  
the receive fifo. Data is written to the fifo a byte at a time. If data is read from  
the fifo 32 bits at a time, then an endianess swap can occur. LE data can be  
changed to BE data on 32 bit boundaries.  
0 = maintain endianess  
1 = change LE data to BE data  
tx_endian  
3
This bit is used to modify the endianess of the data while it passes through  
the transmit fifo. Data is read from the fifo a byte at a time. If data is written  
to the fifo 32 bits at a time, then an endianess swap can occur. LE data can  
be changed to BE data on 32 bit boundaries.  
0x0  
0 = maintain endianess  
1 = change LE data to BE data  
parity  
2:1  
This field indicates the parity type.  
00 = even parity  
01 = odd parity  
10 = no parity  
11 = reserved  
0x0  
0x0  
stop_bits  
0
This field indicates the number of stop bits.  
0 = 1 stop bit  
1 = 2 stop bits  
5.8.7  
FIFO Status  
Table 80. FIFO Status  
FIFO status  
Address: 0x14  
Reset = 0x40  
Type: RO/WO  
Name  
Bit  
Function  
Reset  
rx_flush  
tx_flush  
31  
30  
When this bit is written ‘1’, the receive fifo is flushed. This bit is a write only bit.  
0x0  
0x0  
When this bit is written ‘1’, the transmit fifo is flushed. This bit is a write only  
bit.  
SCP220x ICP Family, Rev.2.1  
116  
Freescale Semiconductor  
Registers  
Table 80. FIFO Status  
Reserved  
29-16  
15-8  
Reserved  
rx_byte_count  
Indicates how many bytes of data is present in the receive fifo. This is a read  
only field.  
0x0  
tx_byte_count  
7-0  
Indicates how many bytes of free space is available in the transmit fifo. This  
is a read only field.  
0x40  
5.8.8  
FIFO flag configuration  
Table 81. FIFO Flag Configuration  
FIFO flag Configuration  
Address: 0x18  
Reset = 0x4040  
Function  
Type: RW  
Name  
Bit  
Reset  
Reserved  
31-16  
15-8  
Reserved  
rx_half_empty  
Sets the FIFO level (in bytes) that asserts the receive “half” empty flag. The  
level setting is associated with how much data is in the FIFO. i.e if the setting  
is 0x20, then when there is 0x20 bytes (or more) of data available in the FIFO,  
the interrupt will be asserted.  
0x40  
tx_half_full  
7-0  
Sets the FIFO level (in bytes) that asserts the transmit “half” full flag. The  
level setting is associated with how much space is available in the FIFO. i.e  
if the setting is 0x20, then when there is 0x20 bytes (or more) of space  
available in the FIFO, the interrupt will be asserted.  
0x40  
5.8.9  
Transmit FIFO  
The Transmit FIFO operates as a fifo even though it has a range of addresses. The wider range allows bus bursting  
to fill the fifo.  
Table 82. Transmit FIFO  
Transmit FIFO  
Address: 0x1000-0x1fff  
Reset = 0x0  
Type: WO  
Name  
Bit  
Function  
Reset  
data  
31-0  
This field contains the data to be written to the fifo. This register supports 8,16  
or 32 bit writes and pushes the appropriate amount of data into the fifo.  
0x0  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
117  
Registers  
5.8.10 Receive FIFO  
The Receive FIFO operates as a fifo even though it has a range of addresses. The wider range allows bus bursting  
to drain the fifo.  
Table 83. Receive FIFO  
Receive FIFO  
Address: 0x2000-0x2fff  
Reset = 0x0  
Type: WO  
Name  
Bit  
Function  
Reset  
data  
31-0  
0x0  
This field contains the data to be read from the fifo. This register  
supports 8,16 or 32 bit reads and pops the appropriate amount of data  
from the fifo.  
5.9  
SPI Registers  
The register map is summarized below and described in the following sections.  
Register Address Offset  
Interrupt Source  
Mode  
0x00  
0x04  
0x08  
0x0C  
0x10  
0x14  
0x18  
0x1C  
0x20  
0x24  
0x28  
0x2C  
RO  
RW  
WO  
RW  
RW  
RW  
RO  
Interrupt Mask  
Interrupt Clear  
clock rate control  
Configuration1  
Configuration2  
read_status  
fifo status  
RO/WO  
RW  
fifo flag Configuration  
GPS Configuration  
GPS Counter 1  
GPS Counter 2  
reserved  
RW  
RW  
RO  
0x30-0xfff  
WO  
WO  
RO  
transmit fifo  
0x1000-0x1fff  
0x2000-0x2fff  
receive fifo  
5.9.1  
Interrupt Source Register  
The interrupt source register contains the raw unmasked interrupts and can be used for polling purposes (instead  
of the external interrupt pin) or for determining which interrupt(s) have caused the external interrupt pin to assert.  
SCP220x ICP Family, Rev.2.1  
118  
Freescale Semiconductor  
Registers  
Interrupt Source Register  
Address: 0x00  
Name  
Reset = 0x0  
Type: RO  
Bit  
Function  
Reset  
Reserved  
rxdata_fall  
31-11  
10  
Reserved  
This interrupt source is specific to a SPI application involving MMC cards.  
When reading or writing blocks of data from an MMC card, there is a period  
of time after the command has been issued before the card is ready to  
issue or accept data. During this period the MMC card must be polled to  
determine when it is ready for the block transaction. It will issue “FF” until  
its ready and then it issues “FE”. This interrupt eases the software  
overhead when looking for the “FE”. Software can let the FIFO fill and  
instead of reading all the data out looking for the “FE” it can continue to  
flush the fifo until this interrupt occurs.  
0x0  
tx_pop_error  
rx_push_error  
dma_pop_error  
dma_push_error  
9
8
7
6
asserted when the receive fifo experiences an overrun condition or  
mis-aligned access.This error is from the perspective of the external  
interface.  
0x0  
0x0  
0x0  
0x0  
asserted when the transmit fifo experiences an underrun condition or  
mis-aligned access.This error is from the perspective of the external  
interface.  
asserted when the transmit fifo experiences an underrun condition or  
mis-aligned access.This error is from the perspective of the internal APB  
bus.  
asserted when the receive fifo experiences an overrun condition or  
mis-aligned access. A mis-aligned access can occur if the width of the write  
has changed from a previous access. For example, if byte writes have  
previously been used, the number of writes may be non-multiples of 32 bits.  
If a 32 bit write now occurs, this is a misaligned access because the byte  
pointers in the fifo are not pointing to byte ’0’. This error is from the  
perspective of the internal APB bus.  
rx_ff  
5
4
asserted when the receive fifo has become full  
0x0  
0x0  
rx_hf  
asserted when the receive fifo level is above the software configured “half”  
empty level.  
rx_fe  
tx_ff  
3
2
1
asserted when the receive fifo has become NOT empty  
asserted when the transmit fifo has become NOT full  
0x0  
0x0  
0x0  
tx_hf  
asserted when the transmit fifo level is below the software configured “half”  
full level.  
tx_fe  
0
asserted when the transmit fifo has become empty  
0x0  
5.9.2  
Interrupt Mask Register  
The interrupt mask register provides a mechanism to individually mask one or more of the interrupt sources.  
Interrupt Mask Register  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
119  
Registers  
Address: 0x04  
Reset = 0x7FF  
Type: RW  
Name  
Bit  
Function  
Reset  
Reserved  
rxdata_fall  
tx_pop_error  
rx_push_error  
dma_pop_error  
dma_push_error  
rx_ff  
31-11  
Reserved  
10  
9
8
7
6
5
4
3
2
1
0
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
rx_hf  
rx_fe  
tx_ff  
tx_hf  
tx_fe  
5.9.3  
Interrupt Clear Register  
The interrupt clear register provides the mechanism for clearing the raw interrupt sources. Writing a „1. to the  
interrupt bit location will clear the interrupt.  
Interrupt Clear Register  
Address: 0x08  
Name  
Reset = 0x0  
Type: WO  
Bit  
Function  
Reset  
Reserved  
rxdata_fall  
tx_pop_error  
rx_push_error  
dma_pop_error  
dma_push_error  
rx_ff  
31-11  
Reserved  
10  
9
8
7
6
5
4
3
2
1
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
rx_hf  
rx_fe  
tx_ff  
tx_hf  
SCP220x ICP Family, Rev.2.1  
120  
Freescale Semiconductor  
Registers  
tx_fe  
0
Clears the interrupt when written ‘1’.  
0x0  
5.9.4  
Clock Rate Control  
Clock Rate Control  
Address: 0x0C  
Reset = 0x2  
Type: RW  
Name  
Bit  
31-0  
Function  
Reset  
clock_div  
The interface PLL clock is divided by this value to produce the clock rate for  
the external SPI clock. This register is only applicable for master mode of  
operation. Values of “0” or “1” are invalid.  
0x2  
5.9.5  
Configuration1  
Configuration1  
Address: 0x10  
Reset = 0x108100  
Type: RW  
Name  
Bit  
Function  
Reset  
Reserved  
31  
Reserved  
device_select  
30-29  
When the SPI interface is configured as a master it can support up to four  
0x0  
slave devices. Only one slave device at a time can be accessed, but muxing  
control allows communication with four different devices (there are 4 chip  
selects and 4 receive data, the clock and transmit data is common for all 4  
devices). This field controls the muxing logic.  
0 = device 0  
1 = device 1  
2 = device 2  
3 = device 3  
spi_clkgen_disable  
transaction_cnt  
28  
This field disables the SPI clock generator. Slave applications do not require  
the clock generator so it is recommended that this be disabled to minimize  
power.  
0 = SPI clock generator enabled  
1 = SPI clock generator disabled  
0x0  
0x1  
27-20  
This field dictates the number of transactions that occur during a chip select  
assertion for fixed length transactions. The transactions are of a length  
defined by the "length" field. This field is intended to allow for continuous  
streams of data. Operation does not begin until the data is in the fifo. Care  
should be taken in how the fifo is filled. The fifo should be filled with  
increments (8,16 or 32) that is equal or greater than the “length” field for the  
SPI transaction.  
This field is only applicable to master mode of operation. Continuos mode is  
also supported in slave mode but the chip select duration is controlled  
externally.  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
121  
Registers  
var_length_start  
19  
This field is used in conjunction with the var_length_ena field. When “1”, the  
SPI serial stream will begin once data is in the fifo. The fifo should be filled  
with increments (8,16 or 32) that is equal or greater than the “length” field for  
the SPI transaction. The stream will continue as long as data is in the fifo and  
as long as this bit is asserted.  
0x0  
Writing a “0” to this field will de-activate the chip select and stop the serial  
stream. The fifo should be empty when this mode is stopped.  
var_length_ena  
length  
18  
When “1”, the variable length continuos stream mode is enabled. This is very  
similar to the mode enabled by the transaction_cnt field except the start and  
end are controlled by the toggling the var_length_start field.  
0x0  
0x8  
17-12  
This field dictates the number of bits that are transmitted per transaction on  
the SPI interface. Valid values range from d3-d32.  
If the length is not 8,16 or 32 the following characteristics apply.  
When the de-serialized data is pushed into the fifo it is padded with “0” to  
align with 8,16 or 32 bits.  
When data is being serialized and transmitted, data is popped out of the fifo  
as an 8,16 or 32 bit word and the extra bits up to the 8,16 or 32 bit boundary  
are dropped.  
Reserved  
tx_dis  
11-9  
8
Reserved  
transmit datapath disable. Since the SPI interface transmits data coincidently  
with the reception of data, this bit provides some flexibility to software. If the  
application is only reading and transmit data is non-exisitant, the receive path  
can be disabled. This will prevent the transmit fifo from underrunning.  
0=transmit datapath enable  
0x1  
0x0  
0x0  
1=transmit datapath disable.  
rx_endian  
tx_endian  
7
6
This bit is used to modify the endianess of the data while it passes through  
the receive fifo. Data is written to the fifo a byte at a time. If data is read from  
the fifo 32 bits at a time, then an endianess swap can occur. LE data can be  
changed to BE data on 32 bit boundaries.  
0 = maintain endianess  
1 = change LE data to BE data  
This bit is used to modify the endianess of the data while it passes through  
the transmit fifo. Data is read from the fifo a byte at a time. If data is written  
to the fifo 32 bits at a time, then an endianess swap can occur. LE data can  
be changed to BE data on 32 bit boundaries.  
0 = maintain endianess  
1 = change LE data to BE data  
LSB_first  
loopback  
5
4
Depending on the setting, the LSB or MSB of the transaction will be  
transmitted or received first.  
0=MSB first  
0x0  
0x0  
1=LSB first  
When loopback is enabled, the transmit data is looped back into the receive  
data path.  
0=no loopback  
1=loopback  
SCP220x ICP Family, Rev.2.1  
122  
Freescale Semiconductor  
Registers  
rx_dis  
3
Receive datapath disable. Since the SPI interface receives data coincidently  
with the transmission of data, this bit provides some flexibility to software. If  
the application is only writing and receive data is non-exisitant, the receive  
path can be disabled. This will prevent the receive fifo from filling up with  
garbage. Alternatively, the receive path can remain enabled and the receive  
fifo can be flushed.  
0x0  
0=receive datapath enable  
1=receive datapath disable  
ms  
2
1
master/slave select. This bit configures the interface as a slave or a master.  
0=slave mode  
1=master mode  
0x0  
0x0  
spo  
This field sets the inactive clock polarity. Inactivity is associated with the chip  
select being de-asserted.  
0 = clock low during inactivity  
1 = clock high during inactivity  
sph  
0
This field sets the SPI clock phase.  
0x0  
0 = transmit on falling edge, receive on rising edge  
1 = transmit on rising edge, receive on falling edge  
5.9.6  
Configuration2  
This register is used to enable a burst of "reads" on the SPI interface. It is only applicable to the master mode of  
operation.  
Configuration2  
Address: 0x14  
Reset = 0x0  
Type: RW  
Name  
Bit  
Function  
Reset  
ena  
31  
This bit acts as a kickoff. When written ’1’ the SPI will perform the number of  
transactions specified in the read_length field and write the received data to  
the receive fifo. This bit is self clearing.  
0x0  
Reserved  
30-16  
15-0  
Reserved  
read_length  
These bits dictate the number of transactions that will occur. The transaction  
width is dictated by the length field in Configuration1.  
0x0  
5.9.7  
Read Status  
Read Status  
Address: 0x18  
Reset = 0x0  
Type: RO  
Name  
Bit  
Function  
Reset  
Reserved  
31-16  
Reserved  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
123  
Registers  
read_length  
15-0  
This field is pertinent only if burst read transactions have been configured  
and enabled via the Configuration2 register.  
0x0  
When this field is read, it will reflect the current decremented value of the  
read transaction counter.  
5.9.8  
FIFO Status  
FIFO status  
Address: 0x1C  
Reset = 0x80  
Type: RO/WO  
Name  
Bit  
Function  
Reset  
rx_flush  
31  
When this bit is written ‘1’, the receive fifo is flushed.  
This bit is a write only bit.  
0x0  
tx_flush  
30  
When this bit is written ‘1’, the transmit fifo is flushed.  
This bit is a write only bit.  
0x0  
Reserved  
29-16  
15-8  
Reserved  
rx_byte_count  
Indicates how many bytes of data is present in the receive fifo.  
This is a read only field.  
0x0  
tx_byte_count  
7-0  
Indicates how many bytes of free space is available in the transmit fifo.  
This is a read only field.  
0x80  
5.9.9  
FIFO Flag Configuration  
FIFO flag Configuration  
Address: 0x20  
Reset = 0x28_4040  
Type: RW  
Name  
Bit  
Function  
Reset  
Reserved  
31-22  
21-20  
Reserved  
rx_fifo_size  
tx_fifo_size  
Reserved  
The receive fifo is an async fifo that supports 8,16,32 or 64 bit wide reads.  
The fifo access size must be set prior to using the fifo. If the fifo size is  
changed, the fifo must be flushed.  
00 = 8 bits  
01 = 16 bits  
0x10  
10 = 32 bits  
11 = 64 bits  
19-18  
17-16  
The transmit fifo is an async fifo that supports 8,16,32 or 64 bit wide writes.  
The fifo access size must be set prior to using the fifo. If the fifo size is  
changed, the fifo must be flushed.  
00 = 8 bits  
01 = 16 bits  
0x10  
10 = 32 bits  
11 = 64 bits  
Reserved  
SCP220x ICP Family, Rev.2.1  
124  
Freescale Semiconductor  
Registers  
rx_half_empty  
tx_half_full  
15-8  
7-0  
Sets the FIFO level (in bytes) that asserts the receive “half” empty flag. The  
level setting is associated with how much data is in the FIFO. i.e if the setting  
is 0x20, then when there is 0x20 bytes of data available in the FIFO, the  
interrupt will be asserted.  
0x40  
Sets the FIFO level (in bytes) that asserts the transmit “half” full flag. The  
level setting is associated with how much space is available in the FIFO. i.e  
if the setting is 0x20, then when there is 0x20 bytes of space available in the  
FIFO, the interrupt will be asserted.  
0x40  
5.9.10 GPS Configuration and Control  
The SPI block has an embedded alternate GPS function that stores data from a GPS source into the receive fifo.  
When this mode is enabled the SPI function can no longer use the receive fifo (the transmit fifo is still available for  
SPI transmit functions). The GPS interface is a very simple serial interface as shown below:  
Error! Objects cannot be created from editing field codes.  
The Data format stored in the FIFO is software configurable and can be one of the following:  
Error! Objects cannot be created from editing field codes.  
GPS Configuration  
Address: 0x24  
Name  
Reset = 0x0  
Type: RW  
Bit  
Function  
Reset  
Reserved  
31-6  
5
Reserved  
enter_track_mode  
During tracking mode, continuous data acquisition is not required. Instead,  
just the number of samples needs to be stored.  
0 – normal acquisition mode (all data is sent to the fifo)  
1 – tracking mode (data is no longer stored but a sample counter is  
incremented).  
0x0  
invert_clk  
mode  
4
3
This field will invert the clock before it is used by the internal hardware.  
0 – no inversion  
1 – gps_clk is inverted  
0x0  
0x0  
0x0  
Indicates how many magnitude bits are associated with the interface.  
0 – 1 magnitude bit  
1 – 3 magnitude bits  
format  
2-1  
Sets the serialization format as illustrated above.  
00 – unpacked  
01 – packed  
10 – super packed  
11 - reserved  
enable_gps  
0
As soon as this mode is enabled, any activity on the GPS interface is  
0x0  
de-serialized and pushed into the receive fifo.  
0 – disabled  
1 - enabled  
GPS Counter 1  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
125  
Registers  
Address: 0x28  
Reset = 0x0  
Type: RW  
Name  
Bit  
Function  
Reset  
switch_over_cnt  
31-0  
This register is used to set the start value of a count down register. The count  
down register is used when switching from acquisition mode to tracking  
mode. It’s count is used to synchronize when the switch over from storing  
data to just counting samples (data is thrown away) occurs. Usually it will  
lineup with a completed DMA transaction.  
0x0  
If enter_track_mode is set, and the count down register is “0” data will no  
longer be stored in the fifo. Instead the sample_cnt will be incremented.  
When enter_track_mode is cleared, the data is once again stored in the fifo  
and the down counter starts decrementing from its programmed start value.  
GPS Counter 2  
Address: 0x2C  
Reset = 0x0  
Type: RO  
Name  
Bit  
Function  
Reset  
sample_cnt  
31-0  
This field contains the current sample count when the GPS is in the tracking  
mode of operation.  
0x0  
It is cleared when the following event occurs – the enter_track_mode is set  
and the count down register is “0”.  
When enter_track_mode becomes “0”, the sample_cnt holds its current  
value.  
The following sequence is a typical use of the GPS registers.  
Initially the acquisition mode is entered. The GPS interface is enabled and the data is moved by the mc-dma  
to a storage buffer. The switch_over_cnt is programmed with a sample number that matches the chunk size  
that the mc-dma is programmed with.  
After acquisition, the tracking mode is entered. During this mode, most of the data is not required but the  
number of samples that have been received needs to be saved. To enter this mode, the “enter_track_mode”  
field is asserted. When this is asserted, the hardware will wait until the down counter expires (so that a  
known amount of data is received) and then just counts the number of samples that occur. The incoming  
data is discarded.  
When additional data samples are required, the “enter_track_mode” field is de-asserted. This will re-enable  
the data path to the fifo and hold the sample count until the next time the tracking mode is entered.  
5.9.11 Transmit FIFO  
The Transmit FIFO operates as a fifo even though it has a range of addresses. The wider range allows bus bursting  
to fill the fifo.  
Transmit FIFO  
Address: 0x1000-0x1fff  
Name  
Reset = 0x0  
Type: WO  
Bit  
Function  
Reset  
SCP220x ICP Family, Rev.2.1  
126  
Freescale Semiconductor  
Registers  
data  
31-0  
This field contains the data to be written to the fifo. This register supports 8,16  
or 32 bit writes and pushes the appropriate amount of data into the fifo. The  
size of the access must match the size that is programmed into the  
tx_fifo_size field in the Configuration1 register.  
0x0  
5.9.12 Receive FIFO  
The Receive FIFO operates as a fifo even though it has a range of addresses. The wider range allows bus bursting  
to drain the fifo.  
Receive FIFO  
Address: 0x2000-0x2fff  
Name  
Reset = 0x0  
Type: WO  
Bit  
31-0  
Function  
Reset  
data  
This field contains the data to be read from the fifo. This register supports  
8,16 or 32 bit reads and pops the appropriate amount of data from the fifo.  
The size of the access must match the size that is programmed into the  
rx_fifo_size field in the Configuration1 register.  
0x0  
5.10 Audio Registers  
The Audio register map is summarized below and described in the following sections. All register support 32 bit  
accesses only. The FIFOs are the exception and they support 8,16 or 32 bit accesses.  
Register  
Address Offset  
0x00  
Mode  
Interrupt Source  
Interrupt Mask  
Interrupt Clear  
RO  
RW  
WO  
RW  
RW  
RW  
RW  
RW  
RW  
RO  
RW  
RO  
0x04  
0x08  
0x0C  
0x10  
0x14  
0x18  
0x1C  
0x20  
0x24  
0x28  
0x2C  
0x30  
0x34  
0x38  
0x3c-0xfff  
Interface Configuration  
Bit Clock Configuration  
Receive Frame Clock Configuration  
Transmit Frame Clock Configuration  
AC97 Configuration  
AC97 Command  
AC97 Status  
AC97 Modem Control  
AC97 Modem Status  
fifo status  
RO/WO  
RW  
fifo flag Configuration  
NCO Configuration  
reserved  
RW  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
127  
Registers  
tx fifo  
rx fifo  
0x1000-0x1fff  
0x2000-0x2fff  
WO  
RO  
5.10.1 Interrupt Source Register  
The interrupt source register contains the raw unmasked interrupts and can be used for polling purposes (instead  
of the external interrupt pin) or for determining which interrupt(s) have caused the external interrupt pin to assert.  
Interrupt Source Register  
Address: 0x00  
Name  
Reset = 0x2  
Type: RO  
Bit  
Function  
Reset  
Reserved  
31-14  
13  
Reserved  
modem_status  
This interrupt is only applicable for the AC97 mode of operation. It is  
asserted after the modem status field is valid.  
0x0  
0x0  
cmd_read_complete  
12  
This interrupt is only applicable for the AC97 mode of operation. It is  
asserted after a requested read command (slot 1 & 2) has completed and  
valid data is now available in the AC97 status register.  
cmd_write_complete  
codec_ready  
11  
10  
This interrupt is only applicable for the AC97 mode of operation. It is  
asserted after a requested write command (slot 1 & 2) has completed.  
0x0  
0x0  
This interrupt is only applicable for the AC97 mode of operation. It is  
asserted when the “codec ready” bit in the incoming TAG channel has  
transitioned from “0” to “1” indicating that the codec is now ready for  
operation.  
tx_pop_error  
rx_push_error  
bus_pop_error  
bus_push_error  
9
8
7
6
asserted when the receive fifo experiences an overrun condition or  
mis-aligned access.This error is from the perspective of the external  
interface.  
0x0  
0x0  
0x0  
0x0  
asserted when the transmit fifo experiences an underrun condition or  
mis-aligned access.This error is from the perspective of the external  
interface.  
asserted when the receive fifo experiences an underrun condition or  
mis-aligned access.This error is from the perspective of the internal APB  
bus.  
asserted when the transmit fifo experiences an overrun condition or  
mis-aligned access. A mis-aligned access can occur if the width of the  
write has changed from a previous access. For example, if byte writes  
have previously been used, the number of writes may be non-multiples of  
32 bits. If a 32 bit write now occurs, this is a misaligned access because  
the byte pointers in the fifo are not pointing to byte ’0’. This error is from  
the perspective of the internal APB bus.  
rx_ff  
5
4
asserted when the receive fifo has become full  
0x0  
0x0  
rx_hf  
asserted when the receive fifo level has risen above the software  
configured “half” empty level.  
rx_fe  
3
asserted when the receive fifo has become NOT empty  
0x0  
SCP220x ICP Family, Rev.2.1  
128  
Freescale Semiconductor  
Registers  
tx_ff  
2
1
asserted when the transmit fifo has become NOT full  
0x0  
0x0  
tx_hf  
asserted when the transmit fifo level has dropped below the software  
configured “half” full level.  
tx_fe  
0
asserted when the transmit fifo has become empty  
0x0  
5.10.2 Interrupt Mask Register  
The interrupt mask register provides a mechanism to individually mask one or more of the interrupt sources.  
Interrupt Mask Register  
Address: 0x04  
Name  
Reset = 0xFFFF_FFFF  
Type: RW  
Bit  
Function  
Reset  
Reserved  
modem_status  
cmd_read_complete  
cmd_write_complete  
codec_ready  
tx_pop_error  
rx_push_error  
bus_pop_error  
bus_push_error  
rx_ff  
31-14  
13  
12  
11  
10  
9
Reserved  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
8
7
6
5
rx_hf  
4
rx_fe  
3
tx_ff  
2
tx_hf  
1
tx_fe  
0
5.10.3 Interrupt Clear Register  
The interrupt clear register provides the mechanism for clearing the raw interrupt sources. Writing a „1. to the  
interrupt bit location will clear the interrupt.  
Interrupt Clear Register  
Address: 0x08  
Name  
Reset = 0x0  
Type: WO  
Bit  
Function  
Reset  
31-14  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
129  
Registers  
modem_status  
13  
12  
11  
10  
9
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
cmd_read_complete  
cmd_write_complete  
codec_ready  
tx_pop_error  
rx_push_error  
bus_pop_error  
bus_push_error  
rx_ff  
8
7
6
5
rx_hf  
4
rx_fe  
3
tx_ff  
2
tx_hf  
1
tx_fe  
0
5.10.4 Interface Configuration  
Interface Configuration  
Address: 0x0C  
Reset = 0x8080_0000  
Type: RW  
Name  
Bit  
Function  
Reset  
tx_fifo_size  
31-30  
The transmit fifo is an async fifo that supports 8,16,32 or 64 bit wide writes.  
0x2  
The fifo access size must be set prior to using the fifo. If the fifo size is  
changed, the fifo must first be flushed.  
00 = 8 bits  
01 = 16 bits  
10 = 32 bits  
11 = 64 bits  
rxd_word_length  
rx_fifo_size  
29-24  
23-22  
Number of bits de-serialized in each active channel on the receive interface.  
Maximum value is 32 for the I2S mode of operation and 20 bits for the AC97  
mode of operation. If this field has been changed after the fifos have been  
used, the fifo must be flushed for proper operation.  
0x0  
0x2  
The receive fifo is an async fifo that supports 8,16,32 or 64 bit wide reads.  
The fifo access size must be set prior to using the fifo. If the fifo size is  
changed, the fifo must first be flushed.  
00 = 8 bits  
01 = 16 bits  
10 = 32 bits  
11 = 64 bits  
SCP220x ICP Family, Rev.2.1  
130  
Freescale Semiconductor  
Registers  
txd_word_length  
rx_stereo  
21-16  
15  
Number of bits serialized in each active channel on the transmit interface.  
Maximum value is 32 for the I2S mode of operation and 20 bits for the AC97  
mode of operation. If this field has been changed after the fifos have been  
used, the fifo must be flushed for proper operation.  
0x0  
This field enables whether or not the stereo mode is enabled for the receive  
path. When the stereo mode is enabled the frame is organized as a left and  
right channel where one channel is transmitted during the first half of frame  
period and the second channel is transmitted during the second half of the  
frame period. This setting is only applicable when the interface operates in  
the I2S mode.  
0x0  
0 = mono operation (single channel)  
1 = stereo operation (two channels)  
loop_back  
14  
13  
When “1” the transmit data is looped back to the receive data.  
0x0  
0x0  
common_sync  
The audio interface can utilize a common frame synchronization signal for  
both the transmit and receive datapath or can use separate synchronization  
signals. If a common synchronization signal is selected, then the bit clocks  
must also be configured as common. The transmit frame signal (fsx) is used  
if common_sync is enabled  
1 = receive frame sync is shared with the transmit.  
0 = receive frame sync is separate and unique from the transmit.  
rx_bitclk_src  
fsx_polarity  
12  
11  
The receive interface can operate with its own bit clock or it can share the  
transmit bit clock. For applications that have a single bit clock, the receive bit  
clock must be shared with the transmit bit clock. When the receive and  
transmit share a bit clock, that bit clock is the transmit bit clock.  
0 = receive bit clock is shared with the transmit.  
0x0  
0x0  
1 = receive bit clock is separate and unique from the transmit.  
This bit sets the polarity of the transmit frame clock. If the external device  
sources the frame sync, this bit should be set such that the asic receives an  
active high frame sync.  
0 = internally generated frame sync is active high or external frame sync is  
NOT inverted.  
1 = internally generated frame sync is active low or external frame sync is  
inverted.  
fsr_polarity  
10  
This bit sets the polarity of the receive frame clock. . If the external device  
sources the frame sync, this bit should be set such that the asic receives an  
active high frame sync.  
0x0  
0 = internally generated frame sync is active high or external frame sync is  
NOT inverted.  
1 = internally generated frame sync is active low or external frame sync is  
inverted.  
clkx_polarity  
clkr_polarity  
9
8
This bit is used to determine which edge of the bit clock is used to transition  
the transmit data and frame signal.  
0 = transmit signaling transitions on the rising edge of the bit clock.  
1 = transmit signaling transitions on the falling edge of the bit clock.  
0x0  
0x0  
This bit is used to determine which edge of the bit clock is used to transition  
the frame signal and sample the receive data.  
0 = receive signaling transitions/sampled on the rising edge of the bit clock.  
1 = receive signaling transitions/sampled on the falling edge of the bit clock.  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
131  
Registers  
fsx_src  
7
6
5
4
3
This bit reflects whether or not the asic sources the frame synchronization or  
whether the codec is the source.  
0 = pad is disabled and an external device sources the frame sync.  
1 = pad is enabled and the asic sources the frame sync. Prior to enabling the  
frame sync timing must be properly setup.  
0x0  
0x0  
0x0  
fsr_src  
clkx_src  
This bit reflects whether or not the asic sources the frame synchronization or  
whether the codec is the source.  
0 = pad is disabled and an external device sources the frame sync.  
1 = pad is enabled and the asic sources the frame sync. Prior to enabling the  
frame sync timing must be properly setup.  
This bit reflects whether or not the asic sources the bit clock or whether the  
codec is the source.  
0 = pad is disabled and an external device sources the bit clock  
1 = pad is enabled and the asic sources the bit clock. Prior to enabling the bit  
clock timing must be properly setup.  
clkr_src  
This bit reflects whether or not the asic sources the bit clock or whether the  
codec is the source.  
0 = pad is disabled and an external device sources the bit clock  
1 = pad is enabled and the asic sources the bit clock. Prior to enabling the bit  
clock timing must be properly setup.  
ena_transmit  
This bit enables the datapath for the transmit direction. This allows the sync  
and bit clocks to be setup and enabled prior to having a datapath enabled in  
the transmit direction. The transmit data will be tri-stated until this bit is set  
and then data will be popped from the fifo and serialized.  
0 = transmit datapath is disabled  
0x0  
0x0  
0x0  
1 = transmit datapath is enabled  
ena_receive  
tx_stereo  
2
1
This bit enables the datapath for the receive direction. This allows the sync  
and bit clocks to be setup and enabled prior to having a datapath enabled in  
the receive direction. The receive data is ignored until this bit is set and then  
data will be de-serialized and pushed into the fifo.  
0 = receive datapath is disabled  
1 = receive datapath is enabled  
This field enables whether or not the stereo mode is enabled for the transmit  
path. When the stereo mode is enabled the frame is organized as a left and  
right channel where one channel is transmitted during the first half of frame  
period and the second channel is transmitted during the second half of the  
frame period. This setting is only applicable when the interface operates in  
the I2S mode.  
0 = mono operation (single channel)  
1 = stereo operation (two channels)  
mode  
0
This field indicates to the hardware which mode of operation the interface will  
0x0  
operate.  
0 = I2S mode of operation  
1 = AC97 mode of operation  
The interface configuration register allows pretty much any possible configuration of external signals and sources of  
these signals. The following table provides some typical example settings.  
Mode of  
operation  
mclk  
fsx  
clkx  
fsr  
clkr  
SCP220x ICP Family, Rev.2.1  
132  
Freescale Semiconductor  
Registers  
I2S master  
I2S slave  
18.432 Mhz  
Not used  
ASIC sourced  
Codec sourced  
ASIC sourced  
ASIC sourced  
ASIC sourced  
Codec sourced  
ASIC sourced  
Codec sourced  
optional  
optional  
Not used  
Not used  
optional  
optional  
Not used  
Not used  
AC97 master  
AC97 slave  
24.576 Mhz  
Not used  
5.10.5 Bit clock Configuration  
Bit Clock Configuration  
Address: 0x10  
Reset = 0x0  
Type: RW  
Name  
Bit  
Function  
Reset  
rx_clk_div  
31-16  
This field contains the divider value applied to the master audio clock (mclk)  
to produce the receive bit clock (clkr). Values of 2 or greater are valid. This  
field is only applicable when the receive clock source is the asic as  
0x0  
configured in the interface configuration register. The resultant clock will have  
a 50% duty cycle for even divides and a non-50% duty cycle for odd divides.  
tx_clk_div  
15-0  
This field contains the divider value applied to the master audio clock (mclk)  
to produce the transmit bit clock (clkx). Values of 2 or greater are valid. This  
field is only applicable when the transmit clock source is the asic as  
configured in the interface configuration register. The resultant clock will have  
a 50% duty cycle for even divides and a non-50% duty cycle for odd divides.  
0x0  
5.10.6 Receive Frame Clock Configuration  
Receive Frame Clock Configuration  
Address: 0x14  
Name  
Reset = 0x0  
Type: RW  
Bit  
Function  
Reset  
Reserved  
rx_dly  
31  
Reserved  
0x0  
0x0  
30-24  
This field provides the capability to delay the first bit period of valid data from  
the assertion of the receive frame clock. This field contains the number of  
receive bit clocks from the active edge of the frame clock to the first valid bit  
of received data.  
rx_frame_width  
rx_frame_period  
23-16  
15-0  
This field controls the active width of the receive frame clock. The field  
represents the number of receive bit clocks and has a minimum value of 1.  
0x0  
0x0  
This field contains the divider value applied to the receive bit clock to produce  
the receive frame clock. Values of 2 or greater are valid.  
5.10.7 Transmit Frame Clock Configuration  
Transmit Frame Clock Configuration  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
133  
Registers  
Address: 0x18  
Reset = 0x0  
Type: RW  
Name  
Bit  
Function  
Reset  
Reserved  
tx_dly  
31  
Reserved  
0x0  
0x0  
30-24  
This field provides the capability to delay the first bit period of valid data from  
the assertion of the transmit frame clock. This field contains the number of  
transmit bit clocks from the active edge of the frame clock to the first valid bit  
of transmitted data.  
tx_frame_width  
tx_frame_period  
23-16  
15-0  
This field controls the active width of the transmit frame clock. The field  
represents the number of transmit bit clocks and has a minimum value of 1.  
0x0  
0x0  
This field contains the divider value applied to the transmit bit clock to produce  
the transmit frame clock. Values of 2 or greater are valid.  
5.10.8 C97 Configuration  
AC97 Configuration  
Address: 0x1C  
Name  
Reset = 0x0  
Type: RW  
Bit  
Function  
Reset  
Reserved  
codec_id  
31-16  
15-14  
Reserved  
0x0  
0x0  
This field contains the codec ID that will be transmitted during slot 0. Multiple  
codecs are not supported so the ID will probably always be ‘0’ for a primary  
codec. The field has been made configurable just in case the flexibility is  
required.  
warm_reset  
13  
Writing a ‘1’ to this bit will initiate a “warm” reset on the AC-link interface. This  
should only be initiated if the codec is in the power-down mode. This bit will  
cause the hardware to assert the sync signal for 1µsec initiating a warm reset  
within the codec. The bit is self resetting after the reset activity is complete.  
Prior to writing to this bit initiate a warm reset, the codec_pdown bit must be  
cleared in the AC97 command register.  
0x0  
0 = no action  
1 = hardware initiates a warm reset  
tx_slot_ena  
Reserved  
12 -3  
2-1  
Enables the transmit channel for slots 3 to 12. If variable sampling rates are  
enabled, this bit is ignored and the slot enable information is obtained from  
the received TAG slot information.  
0 = disable slot  
1 = enable slot  
0x0  
0x0  
Reserved  
SCP220x ICP Family, Rev.2.1  
134  
Freescale Semiconductor  
Registers  
variable_rate_ena  
0
An AC97 frame is based on a 48 Khz period. If the application is using a 48  
Khz sampling rate, this bit should remain disabled and the enabled channels  
will be transmitted/received in every frame. If the application is utilizing a  
non-48 Khz period and the codec supports variable sampling rates, then this  
bit should be set. When this bit is set, the hardware looks at the channel  
request bits in the received TAG channel. When the channel request bits  
match the enabled slots as configured in tx_slot_ena, the channels that are  
requesting data are sent data. The hardware assumes that the data in the fifo  
matches the channel requests (i.e. the hardware assumes that the requests  
will maintain their channel order). Data is not sent until all channels are  
requesting so that the channel order within the frame is maintained.  
0x0  
5.10.9 AC97 Command  
This register provides the mechanism for read and writing the command registers in the codec. This operation  
occurs in slot 1 and 2 during the AC97 frame. If a command write or status read are initiated, they will occur during  
the next AC97 frame. Status and interrupt information is provided to indicate the completion of the command write  
or the availability of the status information.  
AC97 Command  
Address: 0x20  
Name  
Reset = 0x0  
Type: RW  
Bit  
Function  
Reset  
Reserved  
31-26  
25  
Reserved  
0x0  
0x0  
codec_pdown  
The Codec can be placed in a power down state by writing to its power down  
register. This operation is accomplished the same as any other register write  
but the hardware needs to know that this register is being written to power  
down the codec. If this is the case, all outputs are zeroed after slot 2 has been  
transmitted. The codec is removed from this state by issuing a warm reset.  
This bit must be cleared prior to requesting a warm reset.  
0 = no action  
1 = interface activity ends after valid slot 2 data has been sent.  
control_reg_ena  
24  
To enable activity in slot 1 and 2, this bit must be set. Once the bit is set, when  
the next frame occurs address and write data (if applicable) is serialized out in  
the next frame. This bit is self resetting once this action occurs. The address  
and write data must be valid when this bit is set.  
0x0  
0 = no action  
1 = enable slot 1 or 2 (iff applicable) during the next frame.  
write_data  
read_write  
23-8  
7
This field contains the write data if the register access is a write. This field is  
serialized out during slot 2 (command data port) if read_write=0.  
0x0  
0x0  
This is the read/write bit that is serialized out in the read/write command bit  
field of slot 1 (command address port).  
0 = write  
1 = read  
control_reg_index  
6-0  
When enabled, this field will be serialized out in the address field of slot 1  
(command address port). It is the address within the codec of the register  
being written or read.  
0x0  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
135  
Registers  
5.10.10 AC97 Status  
AC97 Status  
Address: 0x24  
Reset = 0x0  
Type: RO  
Name  
Bit  
Function  
Reset  
Reserved  
31-25  
24  
Reserved  
0x0  
0x0  
codec_ready  
This bit reflects the status of the “Codec Ready” bit in the slot 0 TAG  
information for the most recently received frame. The codec is not ready for  
operation until this bit gets set. The condition is normal following the  
de-assertion of power on reset.  
read_data_valid  
23  
This bit is asserted if the read_data is valid. The bit is self clearing when a  
new codec register read is requested (as configured in the AC97 command  
register). It is re-asserted once the codec has returned valid data.  
0 = read_data is invalid  
0x0  
1 = read_data is valid  
echoed_index  
read_data  
22-16  
15-0  
This is the register index that has been echoed back by the codec and  
reflects the register address that was read.  
0x0  
0x0  
This field contains the last valid read data from a register access. Data is valid  
as long as the read_data_valid flag is set.  
5.10.11 AC97 Modem Control  
This register provides the mechanism for writing to slot 12 when the slot operates as the Modem GPIO control  
channel.  
AC97 Modem Control  
Address: 0x28  
Name  
Reset = 0x0  
Type: RW  
Bit  
Function  
Reset  
Reserved  
31-21  
20  
Reserved  
0x0  
0x0  
modem_ena  
To enable activity in slot 12 (for modem control purposes), this bit must be  
set. Once the bit is set, when the next frame occurs the modem_control field  
is serialized out in the next frame. This bit is self resetting once this action  
occurs. . The modem control data must be valid when this bit is set.  
0 = no action  
1 = enable slot 12 during the next frame.  
modem_control  
19-0  
When enabled, this field will be serialized out in slot 12.  
0x0  
5.10.12 AC97 Modem Status  
AC97 Modem Status  
Address: 0x2C  
Reset = 0x0  
Type: RO  
SCP220x ICP Family, Rev.2.1  
136  
Freescale Semiconductor  
Registers  
Reset  
Name  
Bit  
Function  
Reserved  
31-20  
19-0  
Reserved  
0x0  
0x0  
modem_control  
This field contains the last valid modem GPIO status from slot 12. An  
interrupt is raised when the data has been updated.  
5.10.13 FIFO Status  
FIFO status1  
Address: 0x30  
Reset = 0x80  
Type: RO/WO  
Name  
Bit  
Function  
Reset  
rx_flush  
31  
When this bit is written ‘1’, the receive fifo is flushed. This bit is a write only  
self clearing bit.  
0x0  
tx_flush  
30  
When this bit is written ‘1’, the transmit fifo is flushed. This bit is a write only  
self clearing bit.  
0x0  
Reserved  
29-16  
15-8  
Reserved  
0x0  
0x0  
rx_byte_count  
Indicates how many bytes of data is present in the receive fifo. This is a read  
only field.  
tx_byte_count  
7-0  
Indicates how many bytes of free space is available in the transmit fifo. This  
is a read only field.  
0x80  
5.10.14 FIFO Flag Configuration  
FIFO flag Configuration  
Address: 0x34  
Name  
Reset = 0x4040  
Type: RW  
Bit  
Function  
Reset  
Reserved  
31-16  
15-8  
Reserved  
rx_half_empty  
Sets the FIFO level (in bytes) that asserts the receive “half” empty flag. The  
level setting is associated with how much data is in the FIFO. i.e if the setting  
is 0x20, then when there is 0x20 bytes of data available in the FIFO, the  
interrupt will be asserted.  
0x40  
tx_half_full  
7-0  
Sets the FIFO level (in bytes) that asserts the transmit “half” full flag. The  
level setting is associated with how much data is in the FIFO. i.e if the setting  
is 0x20, then when there is 0x20 bytes of data available in the FIFO, the  
interrupt will be asserted.  
0x40  
5.10.15 NCO Configuration  
NCO Configuration  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
137  
Registers  
Address: 0x38  
Reset = 0x0  
Type: RW  
Name  
Bit  
Function  
Reset  
audio_nco_enable  
31  
Enables the NCO as the source of MCLK. Also enables the MCLK PAD to  
drive out the NCO derived clock.  
0x0  
Reserved  
30-20  
19-0  
Reserved  
audio_nco_value  
NCO value.  
0x0  
NCO value = round ((2^21 x mclk_freq) / SYS_freq)  
5.11 MMC/SD Control Registers  
The register map is summarized below and described in the following sections.  
Register  
Interrupt Source  
Address Offset  
0x00  
Mode  
RO  
RW  
WO  
RW  
RW  
RW  
RW  
RW  
RO  
RO  
Interrupt Mask  
0x04  
Interrupt Clear  
0x08  
MMC/SD clock rate  
MMC/SD Configuration  
MMC/SD Data Control  
MMC/SD argument  
MMC/SD command  
MMC/SD command response  
MMC/SD response  
fifo status  
0x0C  
0x10  
0x14  
0x18  
0x1C  
0x20  
0x24-0x30  
0x34  
RO/WO  
RW  
fifo flag Configuration  
reserved  
0x38  
0x3C-0xfff  
0x1000-0x1fff  
0x2000-0x2fff  
transmit fifo  
WO  
RO  
receive fifo  
5.11.1 Interrupt Source Register  
The interrupt source register contains the raw unmasked interrupts and can be used for polling purposes (instead  
of the external interrupt pin) or for determining which interrupt(s) have caused the external interrupt pin to assert.  
Interrupt Source Register  
Address: 0x00  
Name  
Reset = 0x0  
Type: RO  
Bit  
Function  
Reset  
SCP220x ICP Family, Rev.2.1  
138  
Freescale Semiconductor  
Registers  
Reserved  
dat3  
31-20  
19  
Reserved  
This is not an interrupt but reflects the current state of the mmc_data3 signal.  
0x0  
0x0  
sdio_interrupt  
18  
SDIO cards have a card interrupt mechanism. This bit is the indicator for that  
interrupt and is only applicable to SDIO cards. This interrupt source can be  
masked but not cleared by the interrupt clear register. It must be cleared  
within the SDIO card itself.  
data_complete  
data_crc  
17  
16  
15  
Indicates that an MMC/SD data operation (read or write) is complete.  
Indicates that for an MMC/SD data operation, the CRC check failed.  
0x0  
0x0  
0x0  
response  
Indicates that for MMC/SD operation, an MMC/SD response is available in  
the response buffer.  
response_crc  
dat3_low  
14  
13  
Indicates that the received MMC/SD response has a CRC check failure.  
0x0  
0x0  
This interrupt is asserted when the data state machine is idle and the  
mmc_data3 is low.  
dat3_high  
12  
This interrupt is asserted when the data state machine is idle and the  
mmc_data3 is high.  
0x0  
cmd_complete  
busy  
11  
10  
Indicates that the current MMC/SD command has been sent.  
0x0  
0x0  
Indicates that an MMC/SD card "busy" condition is no longer present. i.e. the  
card is no longer busy.  
tx_pop_error  
rx_push_error  
dma_pop_error  
dma_push_error  
9
8
7
6
asserted when the transmit fifo experiences an overrun condition or  
misaligned access. This error is from the perspective of the external  
interface.  
0x0  
0x0  
0x0  
0x0  
asserted when the receive fifo experiences an underrun condition or  
misaligned access. This error is from the perspective of the external  
interface.  
asserted when the receive fifo experiences an underrun condition or  
misaligned access. This error is from the perspective of the internal APB  
bus.  
asserted when the transmit fifo experiences an overrun condition or  
misaligned access. A misaligned access can occur if the width of the write  
has changed from a previous access. For example, if byte writes have  
previously been used, the number of writes may be non-multiples of 32 bits.  
If a 32 bit write now occurs, this is a misaligned access because the byte  
pointers in the fifo are not pointing to byte ’0’. This error is from the  
perspective of the internal APB bus.  
rx_ff  
5
4
asserted when the receive fifo has become full  
0x0  
0x0  
rx_hf  
asserted when the receive fifo level (amount of bytes in the fifo) is above the  
software configured “half” empty level.  
rx_fe  
tx_ff  
3
2
1
asserted when the receive fifo has become NOT empty  
asserted when the transmit fifo has become NOT full  
0x0  
0x0  
0x0  
tx_hf  
asserted when the transmit fifo level (amount of space available) is above the  
software configured “half” full level.  
tx_fe  
0
asserted when the transmit fifo has become empty  
0x0  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
139  
Registers  
5.11.2 Interrupt Mask Register  
The interrupt mask register provides a mechanism to individually mask one or more of the interrupt sources.  
Interrupt Mask Register  
Address: 0x04  
Name  
Reset = 0x7_FFFF  
Type: RW  
Bit  
Function  
Reset  
31-19  
18  
17  
16  
15  
14  
13  
12  
11  
10  
9
sdio_interrupt  
data_complete  
data_crc  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
response  
response_crc  
dat3_low  
dat3_high  
cmd_complete  
busy  
tx_pop_error  
rx_push_error  
dma_pop_error  
dma_push_error  
rx_ff  
8
7
6
5
rx_hf  
4
rx_fe  
3
tx_ff  
2
tx_hf  
1
tx_fe  
0
5.11.3 Interrupt Clear Register  
The interrupt clear register provides the mechanism for clearing the raw interrupt sources. Writing a „1. to the  
interrupt bit location will clear the interrupt.  
Interrupt Clear Register  
Address: 0x08  
Name  
Reset = 0x0  
Type: WO  
Bit  
Function  
Reset  
SCP220x ICP Family, Rev.2.1  
140  
Freescale Semiconductor  
Registers  
31-18  
17  
16  
15  
14  
13  
12  
11  
10  
9
data_complete  
data_crc  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
response  
response_crc  
dat3_low  
dat3_high  
cmd_complete  
busy  
tx_pop_error  
rx_push_error  
dma_pop_error  
dma_push_error  
rx_ff  
8
7
6
5
rx_hf  
4
rx_fe  
3
tx_ff  
2
tx_hf  
1
tx_fe  
0
5.11.4 MMC/SD Clock Rate  
MMC/SD clock rate  
Address: 0x0C  
Reset = 0x80000000  
Type: RW  
Name  
Bit  
Function  
Reset  
disable  
31  
This bit provides a lower power standby condition when the SD interface is in  
use. Setting this bit will halt the clock such that the external serial clock is low.  
Power-up default is a disabled clock. Software must ensure that the proper  
divide is programmed prior to enabling the clock. Also, it is recommended to  
disable the clock whenever a clock_rate_divider change is required so that  
spurious clock pulses do not occur.  
0x1  
Reserved  
30-16  
15-0  
Reserved  
clock_divider  
The interface PLL clock is divided by the contents of this field to produce the  
serial clock. A divider of 2 or greater is valid.  
0x0  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
141  
Registers  
5.11.5 MMC/SD configuration  
MMC/SD Configuration  
Address: 0x10  
Name  
Reset = 0x0  
Type: RW  
Bit  
Function  
Reset  
Reserved  
31-10  
13:12  
Reserved  
data_width  
Configures the width of the external data bus.  
00 = 1-bit data  
0x0  
01 = 4-bit data  
10,11 = reserved  
Reserved  
11-10  
9-8  
Reserved  
tx_fifo_size  
Although the asynchronous fifo supports writes of varying sizes (8,16,32 or  
0x0  
64) the size must be configured prior to using the fifo. This size refers to the  
side of the fifo that the internal bus or dma engine writes to. If this field is being  
updated, the fifo must be flushed to ensure that the internal pointers are  
properly aligned.  
00 = 8 bit  
01 = 16 bit  
10 = 32 bit  
11 = 64 bit  
rx_fifo_size  
7-6  
Although the asynchronous fifo supports reads of varying sizes (8,16,32 or 64)  
0x0  
the size must be configured prior to using the fifo. This size refers to the side  
of the fifo that the internal bus or dma engine reads from. If this field is being  
updated, the fifo must be flushed to ensure that the internal pointers are  
properly aligned.  
00 = 8 bit  
01 = 16 bit  
10 = 32 bit  
11 = 64 bit  
enable  
5
This allows the media interface to function or holds it in an in-operative state.  
0=disable  
1=enable.  
0x0  
0x0  
Reserved  
block_size  
4
Reserved  
3-0  
This field indicates how many bytes are associated with a block for any read  
or write transaction. The hardware uses this field to break larger data lengths  
into block size chunks. The block size is defined as 2block_size  
.
0=reserved, 1=2bytes, 2=4bytes, 3=8bytes, 4=16bytes, 5=32bytes,  
6=64bytes, 7=128bytes, 8=256bytes, 9=512bytes, 10=1Kbytes, 11=2Kbytes,  
12=4Kbytes, 13=8Kbytes, 14=16Kbytes, 15=32Kbytes  
5.11.6 MMC/SD Data Control  
This register is used to indicate to hardware the data path activity associated with a particular command. This  
register must be configured prior to writing to the command register.  
MMC/SD Data Control  
SCP220x ICP Family, Rev.2.1  
142  
Freescale Semiconductor  
Registers  
Address: 0x14  
Reset = 0x0  
Type: RW  
Name  
Bit  
Function  
Reset  
data_size  
31-16  
This field indicates how many bytes are transferred before signaling a  
completion interrupt. This field must be an integer multiple of the configured  
block size. When this register is read, the data_size field will reflect how many  
bytes of data remain to be transferred.  
0x0  
Reserved  
data_ena  
15-2  
1
Reserved  
Data path operation will not commence until this bit is enabled.  
0=disable  
1=enable.  
0x0  
0x0  
data_direction  
0
0=read  
1=write.  
5.11.7 MMC/SD Argument  
MMC/SD Argument  
Address: 0x18  
Reset = 0x0  
Type: RW  
Name  
Bit  
Function  
Reset  
cmd_argument  
31-0  
This contains the argument for the command to be sent to the SD card. A read  
of the register will provide the previous command argument that was written  
0x0  
5.11.8 MMC/SD Argument  
MMC/SD Command  
Address: 0x1C  
Name  
Reset = 0x0  
Type: RW  
Bit  
Function  
Reset  
Reserved  
31-11  
10-8  
Reserved  
response_type  
This field indicates to the hardware the type of response that is expected for  
the particular command issued.  
000=response type R1 or R6  
0x0  
001=rsponse type R1b  
010=response type R2  
011=response type R3 or R4  
100=no response.  
Reserved  
7
Reserved  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
143  
Registers  
data_command  
6
This bit is only applicable to SDIO cards that make use of the interrupt feature  
on mmc_data1. Also it is only applicable when the interface is configured for  
the 4 bit mode of operation which will use mmc_data1 as a data line. Under  
this scenario the SDIO interrupt has a window of opportunity that it is valid. For  
hardware to understand that window of opportunity it must know whether the  
command that is being issued is associated with data or not.  
0x0  
1 = command is a data related command (read or write operation)  
0 = command is not data related.  
command_index  
5-0  
This is the command index to be sent to the SD card. The action of writing to  
this register initiates the command transfer process. A read of the register will  
provide the previous command index that was written.  
0x0  
5.11.9 MMC/SD Command Response  
MMC/SD command response  
Address: 0x20  
Name  
Reset = 0x0  
Type: RO  
Bit  
Function  
Reset  
Reserved  
31-6  
5-0  
Reserved  
command_index  
Contains the command index field of the last received response. If the  
response is type R2 or R3 the field will be ’111111’.  
0x0  
5.11.10 MMC/SD Response  
MMC/SD response  
Address: 0x24  
Name  
Reset = 0x0  
Type: RO  
Bit  
Function  
Reset  
card_status  
CID/CSD[39:8]  
31-0  
These registers are used to store the current SD response. If the response is  
type R1, R1b or R6 only the first 32 bits of the response field are valid  
Contains the card status field of the response or contains either the CID fields  
or CSD fields if a command is issued that queries this information.  
0x0  
MMC/SD response  
Address: 0x28  
Reset = 0x0  
Type: RO  
Name  
Bit  
31-0  
Function  
Reset  
CID/CSD[71:40]  
Contains either the CID fields or CSD fields if a command is issued that  
queries this information.  
0x0  
MMC/SD response  
SCP220x ICP Family, Rev.2.1  
144  
Freescale Semiconductor  
Registers  
Address: 0x2C  
Reset = 0x0  
Type: RO  
Name  
Bit  
Function  
Reset  
CID/CSD[103:72]  
31-0  
Contains either the CID fields or CSD fields if a command is issued that  
queries this information.  
0x0  
MMC/SD response  
Address: 0x30  
Name  
Reset = 0x0  
Type: RO  
Bit  
Function  
Reset  
Reserved  
31-24  
23-0  
Reserved  
CID/CSD[127:104]  
Contains either the CID fields or CSD fields if a command is issued that  
queries this information.  
0x0  
5.11.11 FIFO Status  
FIFO status  
Address: 0x34  
Reset = 0x80  
Type: RO/WO  
Name  
Bit  
Function  
Reset  
rx_flush  
31  
When this bit is written ‘1’, the receive fifo is flushed.  
This bit is a write only bit.  
0x0  
tx_flush  
30  
When this bit is written ‘1’, the transmit fifo is flushed.  
This bit is a write only bit.  
0x0  
29-16  
15-8  
rx_byte_count  
tx_byte_count  
Indicates how many bytes of data is present in the receive fifo.  
This is a read only field.  
0x0  
7-0  
Indicates how many bytes of free space is available in the transmit fifo.  
This is a read only field.  
0x80  
5.11.12 FIFO Flag Configuration  
FIFO flag Configuration  
Address: 0x38  
Reset = 0x4040  
Type: RW  
Name  
Bit  
Function  
Reset  
Reserved  
31-16  
Reserved  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
145  
Registers  
rx_half_empty  
15-8  
7-0  
Sets the FIFO level (in bytes) that asserts the receive “half” empty flag. The  
level setting is associated with how much data is in the FIFO. i.e if the setting  
is 0x20, then when there is 0x20 bytes of data available in the FIFO, the  
interrupt will be asserted.  
0x40  
0x40  
tx_half_full  
Sets the FIFO level (in bytes) that asserts the transmit “half” full flag. The level  
setting is associated with how much data is in the FIFO. i.e if the setting is  
0x20, then when there is 0x20 bytes of data available in the FIFO, the interrupt  
will be asserted.  
5.11.13 Transmit FIFO  
The Transmit FIFO operates as a fifo even though it has a range of addresses. The wider range allows bus bursting  
to fill the fifo.  
Transmit FIFO  
Address: 0x1000-0x1fff  
Name  
Reset = 0x0  
Type: WO  
Bit  
31-0  
Function  
Reset  
data  
This field contains the data to be written to the fifo. This register supports 8,16  
or 32 bit writes and pushes the appropriate amount of data into the fifo. The  
size of the access must match the size that is programmed into the tx_fifo_size  
field in the Configuration1 register.  
0x0  
5.11.14 Receive FIFO  
The Receive FIFO operates as a fifo even though it has a range of addresses. The wider range allows bus bursting  
to drain the fifo.  
Receive FIFO  
Address: 0x2000-0x2fff  
Name  
Reset = 0x0  
Type: WO  
Bit  
31-0  
Function  
Reset  
data  
This field contains the data to be read from the fifo. This register supports  
8,16 or 32 bit reads and pops the appropriate amount of data from the fifo.  
The size of the access must match the size that is programmed into the  
rx_fifo_size field in the Configuration1 register.  
0x0  
5.12 MMCPlus Control Registers  
The MMCPLUS register map is summarized below and described in the following sections.  
Register  
Interrupt Source  
Address Offset  
0x00  
Mode  
RO  
RW  
WO  
Interrupt Mask  
Interrupt Clear  
0x04  
0x08  
SCP220x ICP Family, Rev.2.1  
146  
Freescale Semiconductor  
Registers  
MMCPLUS clock rate  
MMCPLUS Configuration  
MMCPLUS Data Control  
MMCPLUS argument  
MMCPLUS command  
MMCPLUS command response  
MMCPLUS response  
fifo status  
0x0C  
RW  
RW  
0x10  
0x14  
RW  
0x18  
RW  
0x1C  
RW  
0x20  
RO  
0x24-0x30  
0x34  
RO  
RO/WO  
RW  
fifo flag Configuration  
reserved  
0x38  
0x3C-0xfff  
0x1000-0x1fff  
0x2000-0x2fff  
transmit fifo  
WO  
RO  
receive fifo  
5.12.1 Interrupt Source Register  
The interrupt source register contains the raw unmasked interrupts and can be used for polling purposes (instead  
of the external interrupt pin) or for determining which interrupt(s) have caused the external interrupt pin to assert.  
Interrupt Source Register  
Address: 0x00  
Name  
Reset = 0x0  
Type: RO  
Bit  
Function  
Reset  
Reserved  
dat3  
31-20  
19  
Reserved  
This is not an interrupt but reflects the current state of the mmc_data3 signal.  
0x0  
0x0  
sdio_interrupt  
18  
SDIO cards have a card interrupt mechanism. This bit is the indicator for that  
interrupt and is only applicable to SDIO cards. This interrupt source can be  
masked but not cleared by the interrupt clear register. It must be cleared  
within the SDIO card itself.  
data_complete  
data_crc  
17  
16  
15  
Indicates that an MMCPLUS data operation (read or write) is complete.  
Indicates that for an MMCPLUS data operation, the CRC check failed.  
0x0  
0x0  
0x0  
response  
Indicates that for MMCPLUS operation, an MMCPLUS response is available  
in the response buffer.  
response_crc  
dat3_low  
14  
13  
Indicates that the received MMCPLUS response has a CRC check failure.  
0x0  
0x0  
This interrupt is asserted when the data state machine is idle and the  
mmc_data3 is low.  
dat3_high  
12  
11  
This interrupt is asserted when the data state machine is idle and the  
mmc_data3 is high.  
0x0  
0x0  
cmd_complete  
Indicates that the current MMCPLUS command has been sent.  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
147  
Registers  
busy  
10  
9
Indicates that an MMCPLUS card "busy" condition is no longer present. i.e.  
the card is no longer busy.  
0x0  
0x0  
tx_pop_error  
rx_push_error  
dma_pop_error  
dma_push_error  
asserted when the transmit fifo experiences an overrun condition or  
misaligned access. This error is from the perspective of the external  
interface.  
8
7
6
asserted when the receive fifo experiences an underrun condition or  
misaligned access. This error is from the perspective of the external  
interface.  
0x0  
0x0  
0x0  
asserted when the receive fifo experiences an underrun condition or  
misaligned access. This error is from the perspective of the internal APB  
bus.  
asserted when the transmit fifo experiences an overrun condition or  
misaligned access. A misaligned access can occur if the width of the write  
has changed from a previous access. For example, if byte writes have  
previously been used, the number of writes may be non-multiples of 32 bits.  
If a 32 bit write now occurs, this is a misaligned access because the byte  
pointers in the fifo are not pointing to byte ’0’. This error is from the  
perspective of the internal APB bus.  
rx_ff  
5
4
asserted when the receive fifo has become full  
0x0  
0x0  
rx_hf  
asserted when the receive fifo level (amount of bytes in the fifo) has risen  
above the software configured “half” empty level.  
rx_fe  
tx_ff  
3
2
1
asserted when the receive fifo has become NOT empty  
asserted when the transmit fifo has become NOT full  
0x0  
0x0  
0x0  
tx_hf  
asserted when the transmit fifo level (amount of space available) has risen  
above the software configured “half” full level.  
tx_fe  
0
asserted when the transmit fifo has become empty  
0x0  
5.12.2 Interrupt Mask Register  
The interrupt mask register provides a mechanism to individually mask one or more of the interrupt sources.  
Interrupt Mask Register  
Address: 0x04  
Name  
Reset = 0x7FFFF  
Type: RW  
Bit  
Function  
Reset  
Reserved  
sdio_interrupt  
data_complete  
data_crc  
31-19  
18  
Reserved  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
17  
16  
response  
15  
response_crc  
dat3_low  
14  
13  
SCP220x ICP Family, Rev.2.1  
148  
Freescale Semiconductor  
Registers  
dat3_high  
cmd_complete  
busy  
12  
11  
10  
9
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
0x1  
tx_pop_error  
rx_push_error  
dma_pop_error  
dma_push_error  
rx_ff  
8
7
6
5
rx_hf  
4
rx_fe  
3
tx_ff  
2
tx_hf  
1
tx_fe  
0
5.12.3 Interrupt Clear Register  
The interrupt clear register provides the mechanism for clearing the raw interrupt sources. Writing a „1. to the  
interrupt bit location will clear the interrupt.  
Interrupt Clear Register  
Address: 0x08  
Name  
Reset = 0x0  
Type: WO  
Bit  
Function  
Reset  
31-18  
17  
16  
15  
14  
13  
12  
11  
10  
9
data_complete  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
data_crc  
response  
response_crc  
dat3_low  
dat3_high  
cmd_complete  
busy  
tx_pop_error  
rx_push_error  
dma_pop_error  
dma_push_error  
8
7
6
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
149  
Registers  
rx_ff  
5
4
3
2
1
0
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
0x0  
0x0  
0x0  
0x0  
0x0  
0x0  
rx_hf  
rx_fe  
tx_ff  
tx_hf  
tx_fe  
5.12.4 MMC PLUS Clock Rate  
MMCPLUS clock rate  
Address: 0x0C  
Reset = 0x80000000  
Type: RW  
Name  
Bit  
Function  
Reset  
disable  
31  
This bit provides a lower power standby condition when the SD interface is in  
use. Setting this bit will halt the clock such that the external serial clock is low.  
Power-up default is a disabled clock. Software must ensure that the proper  
divide is programmed prior to enabling the clock. Also, it is recommended to  
disable the clock whenever a clock_rate_divider change is required so that  
spurious clock pulses do not occur.  
0x1  
30-20  
19-16  
reserved  
ext_clock_delay  
mmcplus external clock delay  
mmc_clock_out is delayed in proportion to this value.  
0x0  
0x0  
clock_divider  
15-0  
The interface PLL clock is divided by the contents of this field to produce the  
serial clock. A divider of 2 or greater is valid.  
5.12.5 MMCPLUS Configuration  
MMCPLUS Configuration  
Address: 0x10  
Name  
Reset = 0x0  
Type: RW  
Bit  
Function  
Reset  
Reserved  
31-14  
Reserved  
data_width  
13:12  
Configures the width of the external data bus.  
00 = 1-bit data  
0x0  
01 = 4-bit data  
10 = 8-bit data  
11 = reserved  
reserved  
11:10  
Reserved  
SCP220x ICP Family, Rev.2.1  
150  
Freescale Semiconductor  
Registers  
tx_fifo_size  
rx_fifo_size  
enable  
9-8  
7-6  
5
Although the asynchronous fifo supports writes of varying sizes (8,16,32 or  
64) the size must be configured prior to using the fifo. This size refers to the  
side of the fifo that the internal bus or dma engine writes to. If this field is being  
updated, the fifo must be flushed to ensure that the internal pointers are  
properly aligned.  
00 = 8 bit  
01 = 16 bit  
10 = 32 bit  
11 = 64 bit  
0x0  
Although the asynchronous fifo supports reads of varying sizes (8,16,32 or 64)  
the size must be configured prior to using the fifo. This size refers to the side  
of the fifo that the internal bus or dma engine reads from. If this field is being  
updated, the fifo must be flushed to ensure that the internal pointers are  
properly aligned.  
00 = 8 bit  
01 = 16 bit  
10 = 32 bit  
11 = 64 bit  
0x0  
This allows the media interface to function or holds it in an in-operative state.  
0x0  
0=disable  
1=enable.  
reserved  
4
reserved  
0x0  
0x0  
block_size  
3-0  
This field indicates how many bytes are associated with a block for any read  
or write transaction. The hardware uses this field to break larger data lengths  
into block size chunks. The block size is defined as 2block_size.  
0=reserved, 1=2bytes, 2=4bytes, 3=8bytes, 4=16bytes, 5=32bytes,  
6=64bytes, 7=128bytes, 8=256bytes, 9=512bytes, 10=1Kbytes, 11=2Kbytes,  
12=4Kbytes, 13=8Kbytes, 14=16Kbytes, 15=32Kbytes  
5.12.6 MMCPLUS Data Control  
This register is used to indicate to hardware the data path activity associated with a particular command. This  
register must be configured prior to writing to the command register.  
MMCPLUS Data Control  
Address: 0x14  
Reset = 0x0  
Type: RW  
Name  
Bit  
Function  
Reset  
data_size  
31-16  
This field indicates how many bytes are transferred before signaling a  
completion interrupt. This field must be an integer multiple of the configured  
block size. When this register is read, the data_size field will reflect how many  
bytes of data remain to be transferred.  
0x0  
15-2  
1
data_ena  
Data path operation will not commence until this bit is enabled.  
0=disable  
1=enable.  
0x0  
0x0  
data_direction  
0
0=read  
1=write.  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
151  
Registers  
5.12.7 MMCPLUS Agreement  
MMCPLUS Argument  
Address: 0x18  
Reset = 0x0  
Type: RW  
Name  
Bit  
Function  
Reset  
cmd_argument  
31-0  
This contains the argument for the command to be sent to the SD card. A read  
of the register will provide the previous command argument that was written  
0x0  
5.12.8 MMCPLUS Command  
MMCPLUS Command  
Address: 0x1C  
Name  
Reset = 0x0  
Type: RW  
Bit  
Function  
Reset  
Reserved  
31-11  
10-8  
Reserved  
response_type  
This field indicates to the hardware the type of response that is expected for  
the particular command issued.  
000=response type R1 or R6  
0x0  
001=rsponse type R1b  
010=response type R2  
011=response type R3 or R4  
100=no response.  
7
6
data_command  
This bit is only applicable to SDIO cards that make use of the interrupt feature  
on mmc_data1. Also it is only applicable when the interface is configured for  
the 4 bit mode of operation which will use mmc_data1 as a data line. Under  
this scenario the SDIO interrupt has a window of opportunity that it is valid. For  
hardware to understand that window of opportunity it must know whether the  
command that is being issued is associated with data or not.  
0x0  
1 = command is a data related command (read or write operation)  
0 = command is not data related.  
command_index  
5-0  
This is the command index to be sent to the SD card. The action of writing to  
this register initiates the command transfer process. A read of the register will  
provide the previous command index that was written.  
0x0  
5.12.9 MMCPLUS Command Response  
MMCPLUS command response  
Address: 0x20  
Reset = 0x0  
Type: RO  
Name  
Bit  
Function  
Reset  
Reserved  
31-6  
Reserved  
SCP220x ICP Family, Rev.2.1  
152  
Freescale Semiconductor  
Registers  
command_index  
5-0  
Contains the command index field of the last received response. If the  
response is type R2 or R3 the field will be ’111111’.  
0x0  
5.12.10 MMCPLUS Response  
MMCPLUS response  
Address: 0x24  
Name  
Reset = 0x0  
Type: RO  
Bit  
Function  
Reset  
card_status  
CID/CSD[39:8]  
31-0  
These registers are used to store the current SD response. If the response is  
type R1, R1b or R6 only the first 32 bits of the response field are valid  
Contains the card status field of the response or contains either the CID fields  
or CSD fields if a command is issued that queries this information.  
0x0  
MMCPLUS response  
Address: 0x28  
Reset = 0x0  
Type: RO  
Name  
Bit  
31-0  
Function  
Reset  
CID/CSD[71:40]  
Contains either the CID fields or CSD fields if a command is issued that  
queries this information.  
0x0  
MMCPLUS response  
Address: 0x2C  
Reset = 0x0  
Type: RO  
Name  
Bit  
Function  
Reset  
CID/CSD[103:72]  
31-0  
Contains either the CID fields or CSD fields if a command is issued that  
queries this information.  
0x0  
MMCPLUS response  
Address: 0x30  
Name  
Reset = 0x0  
Type: RO  
Bit  
Function  
Reset  
Reserved  
31-24  
23-0  
Reserved  
CID/CSD[127:104]  
Contains either the CID fields or CSD fields if a command is issued that  
queries this information.  
0x0  
5.12.11 FIFO Status  
FIFO status  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
153  
Registers  
Address: 0x34  
Reset = 0x80  
Type: RO/WO  
Name  
Bit  
Function  
Reset  
rx_flush  
31  
When this bit is written ‘1’, the receive fifo is flushed.  
This bit is a write only bit.  
0x0  
tx_flush  
30  
When this bit is written ‘1’, the transmit fifo is flushed.  
This bit is a write only bit.  
0x0  
Reserved  
29-16  
15-8  
Reserved  
rx_byte_count  
Indicates how many bytes of data is present in the receive fifo.  
This is a read only field.  
0x0  
tx_byte_count  
7-0  
Indicates how many bytes of free space is available in the transmit fifo.  
This is a read only field.  
0x80  
5.12.12 FIFO Flag Configuration  
FIFO flag Configuration  
Address: 0x38  
Name  
Reset = 0x4040  
Type: RW  
Bit  
Function  
Reset  
Reserved  
31-16  
15-8  
Reserved  
rx_half_empty  
Sets the FIFO level (in bytes) that asserts the receive “half” empty flag. The  
level setting is associated with how much data is in the FIFO. i.e if the setting  
is 0x20, then when there is 0x20 bytes of data available in the FIFO, the  
interrupt will be asserted.  
0x40  
tx_half_full  
7-0  
Sets the FIFO level (in bytes) that asserts the transmit “half” full flag. The level  
setting is associated with how much data is in the FIFO. i.e if the setting is  
0x20, then when there is 0x20 bytes of data available in the FIFO, the interrupt  
will be asserted.  
0x40  
5.12.13 Transmit FIFO  
The Transmit FIFO operates as a fifo even though it has a range of addresses. The wider range allows bus bursting  
to fill the fifo.  
Transmit FIFO  
Address: 0x1000-0x1fff  
Name  
Reset = 0x0  
Type: WO  
Bit  
31-0  
Function  
Reset  
data  
This field contains the data to be written to the fifo. This register supports 8,16  
or 32 bit writes and pushes the appropriate amount of data into the fifo. The  
size of the access must match the size that is programmed into the tx_fifo_size  
field in the Configuration1 register.  
0x0  
SCP220x ICP Family, Rev.2.1  
154  
Freescale Semiconductor  
Registers  
5.12.14 Receive FIFO  
The Receive FIFO operates as a fifo even though it has a range of addresses. The wider range allows bus bursting  
to drain the fifo.  
Receive FIFO  
Address: 0x2000-0x2fff  
Name  
Reset = 0x0  
Type: WO  
Bit  
31-0  
Function  
Reset  
data  
This field contains the data to be read from the fifo. This register supports 8,16  
or 32 bit reads and pops the appropriate amount of data from the fifo. The size  
of the access must match the size that is programmed into the rx_fifo_size  
field in the Configuration1 register.  
0x0  
5.13 I2C Registers  
The register map is summarized below and described in the following sections.  
Register Address Offset Mode  
Interrupt Source 0x00  
RO  
Interrupt Mask  
Interrupt Clear  
Configuration1  
Configuration2  
Configuration3  
Slave Address  
Target Data  
0x04  
0x08  
0x0C  
0x10  
0x14  
0x18  
0x1C  
0x20  
0x24  
RW  
WO  
RW  
RW  
RW  
RW  
RW  
RW  
WO  
Target Address  
Control  
5.13.1 Interrupt Source Register  
The interrupt source register contains the raw unmasked interrupts and can be used for polling purposes (instead  
of the external interrupt pin) or for determining which interrupt(s) have caused the external interrupt pin to assert.  
Interrupt Source Register  
Address: 0x00  
Name  
Reset = 0x0  
Type: RO  
Bit  
Function  
Reset  
Reserved  
arb_lost  
31-4  
3
Reserved  
Indicates that arbitration has been lost to another I2C master.  
0x0  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
155  
Registers  
no_acknowledge  
2
1
0
Indicates that an acknowledge was not received when the Slave ID was  
sent or that an acknowledge was not received during the data phase  
of a write transaction.  
0x0  
0x0  
0x0  
stop  
Indicates that the “transaction stop” is complete. The serial interface  
runs at a very slow rate and a stop indication must be completed before  
software initiates a new “transaction start”.  
acknowledge_complete  
Indicates that the peripheral has acknowledged the transaction phase.  
5.13.2 Interrupt Mask Register  
The interrupt mask register provides a mechanism to individually mask one or more of the interrupt sources.  
Interrupt Mask Register  
Address: 0x04  
Reset = 0xf  
Type: RW  
Name  
Bit  
Function  
Reset  
Reserved  
31- Reserved  
4
arb_lost_mask  
no_acknowledge_mask  
stop_mask  
3
2
1
0
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
Masks the interrupt. 1=mask, 0=unmask.  
0x1  
0x1  
0x1  
0x1  
acknowledge_mask  
5.13.3 Interrupt Clear Register  
The interrupt clear register provides the mechanism for clearing the raw interrupt sources. Writing a „1. to the  
interrupt bit location will clear the interrupt.  
Interrupt Clear Register  
Address: 0x08  
Name  
Reset = 0x0  
Type: WO  
Bit  
Function  
Reset  
Reserved  
arb_lost_clr  
31-4  
Reserved  
3
2
1
0
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
Clears the interrupt when written ‘1’.  
0x0  
0x0  
0x0  
0x0  
no_acknowledge_clr  
stop_clr  
acknowledge_clr  
5.13.4 Configuration1  
Configuration1  
SCP220x ICP Family, Rev.2.1  
156  
Freescale Semiconductor  
Registers  
Address: 0x0C  
Reset = 0x0  
Type: RW  
Name  
Bit  
Function  
Reset  
master_ack  
31  
This bit provides the flexibility to allow or not allow the master to source an  
acknowledge for read transactions. When ‘1’, the master will source an  
acknowledge for read transactions. When ‘0’, the serial data line is not driven  
during the acknowledge bit period.  
0x0  
prim_sec  
30  
The I2C block is physically connected to two sets of IO pins. The primary pins  
do not have any sharing but the secondary pins are shared with  
dip_data[17:16]. The duplication of I2C pins is required in some  
circumstances because of the IO voltage selections. The DIP IOs can be  
powered with a different IO voltage than the primary I2C IOs. If the I2C is  
required to configure a DAC, them the secondary I2C port will have to be  
used if the DIP IOs are not compatible with the I2C IOs. This bit selects which  
set of IOs that the I2C communicates with. It is possible to have devices  
connected to both primary and secondary IOs as long as this selector is  
properly configured for the duration of the I2C communication. When set to  
the primary I2C, the secondary I2C sees no activity and vice versa.  
0 = I2C connected to primary I2C IOs.  
0x0  
1 = I2C connected to secondary I2C IOs.  
auto_mode_ena  
master_arb_ena  
29  
28  
When this bit is set a more auto-mated mode of the I2C interface is  
enabled and results in less interrupt over-head. Refer to  
Programming Model 4.9.2 for a detailed decription of manual and  
automatic modes.  
0 = manual mode  
1 = auto-matic mode  
When this bit is set the arbitration logic for multiple master systems is  
enabled.  
0 = arbitration logic is disabled.  
1 = arbitration logic is enabled.  
Reserved  
27-16  
15-0  
Reserved  
clock_divider  
This field contains the clock divider that is applied to the system clock to  
generate the serial data clock. The clock divide ratio applied to the system  
clock is this field plus one.  
0x0  
5.13.5 Configuration2  
Configuration2  
Address: 0x10  
Reset = 0x0  
Type: RW  
Name  
Bit  
Function  
Reset  
TSUSTO  
31-16  
This field contains the count value that is applied to the system clock to  
generate the TSUSTO timing parameter. This parameter is the minimum time  
from serial_clock rising to serial_data rising during a “stop” indication. This is  
typically 4.0 µsec.  
0x0  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
157  
Registers  
THDSTA  
15-0  
This field contains the count value that is applied to the system clock to  
generate the THDSTA timing parameter. This parameter is the minimum time  
from serial_data falling to serial_clock falling during a “start” indication. This is  
typically 4.0 µsec.  
0x0  
5.13.6 Configuration3  
Configuration3  
Address: 0x14  
Reset = 0x0  
Type: RW  
Name  
Bit  
Function  
Reset  
TDELAY  
31-16  
This field contains the count value that is applied to the system clock to  
generate the TDELAY timing parameter. This parameter is the delay time  
between a slave address byte transmission and the next byte (read or write),  
the time between consecutive bytes (read or write), as well as the time  
between the last byte (read or write) and the stop condition. It should be  
noted that the hardware also automatically checks for the I2C slave stall  
indicator (SCL held low) and will stall its activity until the stall condition is  
removed.  
0x0  
TBUF  
15-0  
This field contains the count value that is applied to the system clock to  
generate the TBUF timing parameter. This parameter is the minimum idle  
time between a start and stop condition. This is typically 4.7 µsec.  
0x0  
5.13.7 Slave Address  
Slave Address  
Address: 0x18  
Reset = 0x0  
Type: RW  
Name  
Bit  
Function  
Reset  
Reserved  
slave_id  
31-8  
7-1  
Reserved  
This field contains the slave id of the peripheral being accessed. It should be  
programmed prior to initiating any transactions.  
0x0  
0x0  
read_write  
0
This is the R/W field for the Peripheral slave address. 1=read, 0=write.  
5.13.8 Target Data  
Target Data  
Address: 0x1C  
Reset = 0x0  
Type: RW  
Name  
Bit  
Function  
Reset  
Reserved  
31-8  
Reserved  
SCP220x ICP Family, Rev.2.1  
158  
Freescale Semiconductor  
Registers  
data  
7-0  
For I2C write transactions, the target data field is the third byte of data transmitted after  
the target address and is the data to be written to that target address. If the interface is  
operating in manual mode, new data can be written after the “acknowledge” interrupt is  
received.  
0x0  
For read transactions, this register will not provide valid information until a transaction  
is started. Once a transaction is started, when an acknowledge interrupt has been  
received, valid read data will be present in this register. If the register is read prior to  
issuing a stop command, another read will occur on the serial control bus. If a stop has  
been issued, valid data from the read is present and no further action results.  
5.13.9 Target Address  
Target Address  
Address: 0x20  
Reset = 0x0  
Type: RW  
Name  
Bit  
Function  
Reset  
Reserved  
address  
31-8  
7-0  
Reserved  
The first byte of an I2C write transaction (after the slave address byte) is the  
address of the register that is being accessed. This field is programmed with  
that device address.  
0x0  
5.13.10 Control  
Control  
Address: 0x24  
Name  
Reset = 0x0  
Type: WO  
Bit  
Function  
Reset  
Reserved  
stop  
31-2  
1
Reserved  
When this bit is written “1”, the serial control interface will create a stop  
condition.  
0x0  
0x0  
start  
0
When this bit is written “1”, the serial control interface will create a start  
condition, serialize out the data in the slave address register and either  
serialize out the data in the data register for a write or de-serialize the  
incoming data for a read.  
5.14 PWM Registers  
The register map is summarized below and described in the following sections.  
Register  
Address Offset  
0x00  
Mode  
pwm config  
pwm control  
RW  
RW  
RW  
0x04  
0x08  
compare buffer 0  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
159  
Registers  
count buffer 0  
status 0  
0x0C  
0x10  
0x14  
0x18  
0x1C  
0x20  
RW  
RO  
RW  
RW  
RO  
RO  
compare buffer 1  
count buffer 1  
status 1  
raw interrupt  
5.14.1 PWM Config  
PWM Config  
Address: 0x00  
Reset = 0xc0_0000  
Type: RW  
Name  
Bit  
Function  
Reset  
Reserved  
31-26  
25  
Reserved  
0x0  
0x0  
t1_timeout_clr  
Clears the timer 1 timeout interrupt. This bit is self-clearing.  
1 = clear interrupt.  
t0_timeout_clr  
int_mask  
24  
Clears the timer 0 timeout interrupt. This bit is self-clearing.  
1 = clear interrupt.  
0x0  
0x3  
23-22  
Mask for the two timer interrupts.  
1 = interrupt is masked  
0 = interrupt is not masked  
t1_clk_sel  
21-19  
18-16  
Mux selector for the PWM timer1.  
000: ½  
001: ¼  
010: 1/8  
011: 1/16  
1xx: TCLK0  
0x0  
t0_clk_sel  
Mux selector for the PWM timer0.  
0x0  
000: ½  
001: ¼  
010: 1/8  
011: 1/16  
1xx: TCLK0  
dead_zone_length  
prescaler  
15-8  
7-0  
Specifies the dead zone length  
Specifies the pre-scaler value  
0x0  
0x0  
5.14.2 PWM Control  
PWM Control  
Address: 0x04  
Reset = 0x0  
Type: RW  
SCP220x ICP Family, Rev.2.1  
160  
Freescale Semiconductor  
Registers  
Reset  
Name  
Bit  
Function  
Reserved  
31-9  
8
Reserved  
0x0  
0x0  
t1_auto_reload  
Controls the auto reload function of timer 1.  
0 = one shot  
1 = interval mode (auto reload)  
t1_inverter  
t1_update  
7
6
5
4
3
2
1
0
Controls the output inverter for timer 1.  
0 = inverter off  
1 = inverter on  
0x0  
0x0  
0x0  
0x3  
0x0  
0x0  
0x0  
0x0  
Controls the manual update for timer 1.  
0 = no operation  
1 = the timer is updated with the count buffer value.  
t1_start  
Controls the operation of timer 1.  
0 = timer stopped  
1 = timer started  
dead_zone_en  
t0_auto_reload  
t0_inverter  
t0_update  
Controls the dead zone operation  
0 = disabled  
1 = enabled  
Controls the auto reload function of timer 0.  
0 = one shot  
1 = interval mode (auto reload)  
Controls the output inverter for timer 0.  
0 = inverter off  
1 = inverter on  
Controls the manual update for timer 0.  
0 = no operation  
1 = the timer is updated with the count buffer value.  
t0_start  
Controls the operation of timer 0.  
0 = timer stopped  
1 = timer started  
5.14.3 Compare Buffer 0  
Compare buffer 0  
Address: 0x08  
Name  
Reset = 0x0  
Type: RW  
Bit  
Function  
Reset  
Reserved  
31-16  
15-0  
Reserved  
0x0  
0x0  
t0_com_buffer  
Timer 0 compare buffer.  
5.14.4 Count Buffer 0  
Count buffer 0  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
161  
Registers  
Address: 0x0C  
Reset = 0x0  
Type: RW  
Type: RO  
Type: RW  
Type: RW  
Type: RO  
Name  
Bit  
Function  
Reset  
Reserved  
31-16  
15-0  
Reserved  
0x0  
0x0  
t0_count_buffer  
Timer 0 count buffer.  
5.14.5 Status 0  
Status 0  
Address: 0x10  
Name  
Reset = 0x0  
Bit  
Function  
Reset  
Reserved  
31-16  
15-0  
Reserved  
0x0  
0x0  
t0_timer_cnt  
Timer 0 count observation register.  
5.14.6 Compare Buffer 1  
Compare buffer 1  
Address: 0x14  
Name  
Reset = 0x0  
Bit  
Function  
Reset  
Reserved  
31-16  
15-0  
Reserved  
0x0  
0x0  
t1_com_buffer  
Timer 1 compare buffer.  
5.14.7 Count Buffer 1  
Count buffer 1  
Address: 0x18  
Reset = 0x0  
Name  
Bit  
Function  
Reset  
Reserved  
31-16  
15-0  
Reserved  
0x0  
0x0  
t1_count_buffer  
Timer 1 count buffer.  
5.14.8 Status 1  
Status 1  
Address: 0x1C  
Reset = 0x0  
SCP220x ICP Family, Rev.2.1  
162  
Freescale Semiconductor  
Registers  
Reset  
Name  
Bit  
Function  
Reserved  
31-16  
15-0  
Reserved  
0x0  
0x0  
t1_timer_cnt  
Timer 1 count observation register.  
5.14.9 Raw Interrupt  
Raw Interrupt  
Address: 0x20  
Reset = 0x0  
Type: RO  
Name  
Bit  
Function  
Reset  
Reserved  
t1_timeout  
t0_timeout  
31-2  
Reserved  
0x0  
0x0  
0x0  
1
0
Timer 1 timeout interrupt.  
Timer 0 timeout interrupt.  
5.15 KeyScan Registers  
The register map is summarized below and described in the following sections.  
Register Address Offset Mode  
Interrupt Mask 0x00  
RW  
RO  
RW  
RW  
RW  
RW  
RO  
Interrupt Source  
Interrupt Clear  
Keypad control0  
Keypad control1  
Keypad time  
0x04  
0x08  
0x0C  
0x10  
0x14  
0x18  
Keypad value  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
163  
Registers  
5.15.1 Interrupt Mask Register  
The interrupt mask register provides a mechanism to individually mask one or more of the interrupt sources.  
Interrupt Mask Register  
Address: 0x00  
Name  
Reset = 0xFFFF  
Type: RW  
Bit  
Function  
Reset  
Reserved  
31-16  
Reserved  
Key sensing  
15-0  
Masks the interrupt. 1=mask, 0=unmask.  
0xFFFF  
5.15.2 Interrupt Source Register  
The interrupt source register contains the masked interrupts and can be used for polling purposes (instead of the  
external interrupt pin) or for determining which interrupt(s) have caused the external interrupt pin to assert.  
Interrupt Source Register  
Address: 0x01  
Reset = 0x0  
Type: RO  
Name  
Bit  
Function  
Reset  
Reserved  
31-16  
Reserved  
Key sensing  
15-0  
Each key sense is detected by hardware.  
0x0000  
5.15.3 Interrupt Clear Register  
The interrupt clear register provides the mechanism for clearing the interrupt sources. Writing a „1. to the interrupt  
bit location will clear the interrupt.  
Reading this register returns unmasked interrupt source that is interrupt source pending register.  
Interrupt Clear Register  
Address: 0x08  
Name  
Reset = 0x0  
Type: RW  
Bit  
Function  
Reset  
Reserved  
31-16  
Reserved  
Key sensing  
15-0  
Writing a 1: relative interrupt source will be cleared.  
0x0000  
Reading : returns unmasked interrupt source  
5.15.4 Keypad Control0  
Keypad control0  
Address: 0x0C  
Name  
Reset = 0x0  
Type: RW  
Bit  
Function  
Reset  
SCP220x ICP Family, Rev.2.1  
164  
Freescale Semiconductor  
Registers  
Reserved  
31-6  
5
Reserved  
0x0  
0x0  
keypad_enable  
Keypad operation enable  
1 = enable  
0 = disable  
polarity  
4
3
Keyscan output and key sense polarity  
1 = active high (external pull-down)  
0 = active low (external pull-up)  
0x0  
0x0  
mode_sel  
1 = single input mode. When in this mode, keypad module will sense only one  
button at a time. It is used in typing mode.  
0 = multi input mode. When in this mode, keypad module will sense  
multi-button at a time. It is useful in gaming mode that requires moving  
diagonal and shooting with moving.  
Reserved  
auto_clr  
2
1
Reserved  
0
Keypad auto clear enable. When enabled, the keypad value register is  
0x0  
cleared after it is read.  
1 = enabled  
0 = disabled  
value_clr  
0
keypad register clear. This bit is self resetting  
1 = the keypad value register is cleared.  
0 = no action  
0x3  
5.15.5 Keypad Control1  
Keypad Control 1  
Address: 0x10  
Name  
Reset = 0x0  
Type: RW  
Bit  
Function  
Reset  
0x0  
Reserved  
31-8  
7
Reserved  
keysense3_en  
Keysense3 enable  
1 : enable  
0 : disable  
keysense2_en  
keysense1_en  
keysense0_en  
keyscan3_en  
6
5
4
3
Keysense2 enable  
1 : enable  
0 : disable  
0x0  
Keysense1 enable  
1 : enable  
0 : disable  
0x0  
Keysense0 enable  
1 : enable  
0 : disable  
0x0  
Keyscan3 enable  
1 : enable  
0x0  
0 : disable  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
165  
Registers  
keyscan2_en  
2
1
0
Keyscan2 enable  
1 : enable  
0 : disable  
0x0  
0x0  
0x0  
keyscan1_en  
keyscan0_en  
Keyscan1 enable  
1 : enable  
0 : disable  
Keyscan0 enable  
1 : enable  
0 : disable  
5.15.6 Keypad Time  
Keypad time  
Address: 0x14  
Reset = 0x1FFF  
Type: RW  
Name  
Bit  
Function  
Reset  
Reserved  
scan_time  
31-13  
12-0  
Reserved  
0x0  
Key scan driving time. Scan_time_freq = sys_freq / (scan_time+1)  
0x1FFF  
5.15.7 Keypad Value  
Keypad value  
Address: 0x18  
Reset = 0x0  
Reserved  
Type: RO  
Name  
Bit  
Function  
Reset  
0x0  
Reserved  
sense_value  
31-16  
15-0  
Contains the sense value vector. This vector is a dynamic view of the key  
sense information and will change for every key scan interval. If a latched  
version of this field is desired, please read the interrupt source register.  
0x0  
The following table illustrates the sense_value vector.  
key_sense3  
sense_value15  
sense_value11  
sense_value7  
sense_value3  
key_sense2  
key_sense1  
sense_value13  
sense_value9  
sense_value5  
sense_value1  
key_sense0  
sense_value12  
sense_value8  
sense_value4  
sense_value0  
key_scan3  
key_scan2  
key_scan1  
key_scan0  
sense_value14  
sense_value10  
sense_value6  
sense_value2  
5.16 GPIO Registers  
The General Purpose Input Output (GPIO) pins are controlled with several registers.  
GPIO Enable Registers activate the pin for GPIO use, otherwise the pin has its primary or alternate function.  
GPIO Direction Registers determine the GPIO as input or output.  
SCP220x ICP Family, Rev.2.1  
166  
Freescale Semiconductor  
Registers  
GPIO OutData Registers determine the level of the GPIO when configured as output.  
GPIO InData Registers read the level of GPIO when configured as input.  
In case a GPIO pin is used as output, it is preferable to activate the enable bit once the direction and OutData have  
been set.  
See also Section 2.4, Pin Configuration and Section 4.12, GPIOs and Alternate Functions.  
5.16.1 GPIO Enable Registers  
Table 84. GPIO Enable Registers  
GPIO Enable 1  
Address: 0xd00a_0000  
Reset = 0  
Function  
Type: RW  
Name  
Bit  
Reset  
Reset  
Reset  
These bits are used to enable the alternate GPIO functionality for the  
external pins listed in the preceding table.  
0 = GPIO disabled  
gpio_enable[31-0]  
31-0  
0
1 = GPIO enabled  
GPIO Enable 2  
Address: 0xd00a_0004  
Reset = 0  
Function  
Type: RW  
Name  
Bit  
These bits are used to enable the alternate GPIO functionality for the  
external pins listed in the preceding table.  
0 = GPIO disabled  
gpio_enable[63-32]]  
31-0  
0
1 = GPIO enabled  
GPIO Enable 3  
Address: 0xd00a_0008  
Reset = 0  
Function  
Type: RW  
Name  
Bit  
These bits are used to enable the alternate GPIO functionality for the  
external pins listed in the preceding table.  
0 = GPIO disabled  
gpio_enable[95-64]  
31-0  
0
1 = GPIO enabled  
5.16.2 GPIO Direction Registers  
Table 85. GPIO direction Registers  
GPIO Direction 1  
Address: 0xd00a_000C  
Reset = 0xffff_ffff  
Function  
Type: RW  
Name  
Bit  
Reset  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
167  
Registers  
Table 85. GPIO direction Registers  
gpio_dir[31-0]  
31-0  
If a GPIO has been enabled these bits configure the GPIO as either  
0xffff_ffff  
an input or output.  
0 = output  
1 = input  
GPIO Direction 2  
Address: 0xd00a_0010  
Reset = 0xffff_ffff  
Function  
Type: RW  
Name  
Bit  
Reset  
gpio_dir[63-32]  
31-0  
If a GPIO has been enabled these bits configure the GPIO as either  
0xffff_ffff  
an input or output.  
0 = output  
1 = input  
GPIO Direction 3  
Address: 0xd00a_0014  
Reset = 0xffff_ffff  
Function  
Type: RW  
Name  
Bit  
Reset  
gpio_dir[95-64]  
31-0  
If a GPIO has been enabled these bits configure the GPIO as either  
0xffff_ffff  
an input or output.  
0 = output  
1 = input  
5.16.3 GPIO OutData Registers  
Table 86. GPIO OutData Registers  
GPIO OutData 1  
Address: 0xd00a_0018  
Reset = 0  
Function  
Type: RW  
Name  
Bit  
Reset  
gpio_out[31-0]  
31-0  
When the register is written, the GPIO will latch the written value if  
the GPIO is an output. For an input the write is ignored. When read,  
it will reflect what was previously written (whether or not the GPIO is  
configured as an input or output).  
0
GPIO OutData 2  
Address: 0xd00a_001c  
Reset = 0  
Function  
Type: RW  
Name  
Bit  
Reset  
gpio_out[63-32]  
31-0  
When the register is written, the GPIO will latch the written value if  
the GPIO is an output. For an input the write is ignored. When read,  
it will reflect what was previously written (whether or not the GPIO is  
configured as an input or output).  
0
SCP220x ICP Family, Rev.2.1  
168  
Freescale Semiconductor  
Registers  
Table 86. GPIO OutData Registers  
GPIO OutData 3  
Address: 0xd00a_0020  
Reset = 0  
Function  
Type: RW  
Name  
Bit  
Reset  
gpio_out[95-64]  
31-0  
When the register is written, the GPIO will latch the written value if  
the GPIO is an output. For an input the write is ignored. When read,  
it will reflect what was previously written (whether or not the GPIO is  
configured as an input or output).  
0
5.16.4 GPIO InData Registers  
Table 87. GPIO InData Registers  
GPIO InData 1  
Address: 0xd00a_0024  
Reset = 0  
Function  
When this register is read, the bits reflect the level of the external  
Type: RO  
Name  
Bit  
Reset  
gpio_in[31-0]  
31-0  
0
signal if the GPIO is an input or reflects the previously written value  
if the GPIO is an output.  
GPIO InData 2  
Address: 0xd00a_0028  
Reset = 0  
Function  
Type: RO  
Name  
Bit  
Reset  
gpio_in[63-32]  
31-0  
When this register is read, the bits reflect the level of the external  
signal if the GPIO is an input or reflects the previously written value  
if the GPIO is an output.  
0
GPIO InData 3  
Address: 0xd00a_002c  
Reset = 0  
Function  
Type: RO  
Name  
Bit  
Reset  
gpio_in[95-64]  
31-0  
When this register is read, the bits reflect the level of the external  
signal if the GPIO is an input or reflects the previously written value  
if the GPIO is an output.  
0
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
169  
Packaging  
6
Packaging  
6.1  
SCP2201  
The SCP2201 is available in a 236-ball BGA package of size 9 mm x 9 mm x 1.34 mm. Figure 57 contains SCP220x  
packaging information. All dimensions are in mm.  
0.10  
C
0.08  
C
A1 BALL PAD CORNER  
C
16 14 12 10  
15 13 11  
8
6
4
2
9
7
5
3
1
A
C
E
G
J
B
D
F
_
0.30+0.05  
5.  
6.  
0.50  
M
M
0.15  
0.05  
C
C
A B  
H
K
M
P
T
SEATING PLANE  
L
N
R
(0.75)  
_
0.23 +0.05  
(0.75)  
0.50  
_
0.80 +0.05  
_
1.24 +0.10  
BOTTOM VIEW  
0.10 (4X)  
236 SOLDER BALLS  
SIDE VIEW  
9.00  
A
A1 BALL PAD CORNER  
9.00  
TOP VIEW  
B
Figure 58. SCP2201 Package  
6.2  
SCP2207  
The SCP2207 is available in a 236-ball BGA package of size 9 mm x 9 mm x 1.34 mm. The following figure contains  
SCP220x packaging information. All dimensions are in mm.  
SCP220x ICP Family, Rev.2.1  
170  
Freescale Semiconductor  
Packaging  
Figure 59. SCP2207 Package  
6.3  
SCP220x Pinout  
The following table describes the physical pins of the devices belonging to the SCP220x series. The pins are  
organized into functional groups. External interfaces are grouped together on the IO voltage banks that can be  
powered by either 3.0 V DC 10%. Many outputs may be configured as having low or high output drive strength by  
programming the device. The output drive capability is indicated in the PAD type column.  
Note that ‘-’. indicates the pin does not apply to the device as the signal is not balled out on the package. Pins in the  
‘No Connect’ section of the table are used solely for test purposes and should not be used in normal operating mode.  
Some pins are designated ‘reserved_#’. These pins may only be used as the corresponding GPIOs or alternate  
functionality as defined in section 4.11. Primary functionality of these pins is reserved and not intended for use.  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
171  
Packaging  
Table 88. SCP220x Pinout  
SCP2201  
and  
SCP2207  
Ball  
Pin Name  
Power Domain  
PAD Type  
Default PU/PD  
Sensor  
sensor_D[0]  
sensor_D[1]  
sensor_D[2]  
sensor_D[3]  
sensor_D[4]  
sensor_D[5]  
sensor_D[6]  
sensor_D[7]  
sensor_D[8]  
sensor_D[9]  
sensor_fclk  
sensor_pclk  
sensor_rclk  
sensor_fodd  
sensor_gpio  
sensor_clkout  
SIF  
SIF  
SIF  
SIF  
SIF  
SIF  
SIF  
SIF  
SIF  
SIF  
SIF  
SIF  
SIF  
SIF  
SIF  
SIF  
Input  
PD  
PD  
PD  
PD  
PD  
PD  
PD  
PD  
PD  
PD  
PD  
PD  
PD  
-
C6  
C7  
D7  
E7  
Input  
Input  
Input  
Input  
B8  
Input  
Input  
C8  
D8  
E8  
Input  
Input  
B9  
Input  
C9  
B11  
E9  
Input  
Input  
Input  
D9  
C10  
B7  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
-
-
B10  
I2C  
scl  
SIF  
SIF  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
-
-
E10  
D10  
sda  
NAND  
nand_wen  
nand_ren  
NAND  
NAND  
NAND  
NAND  
NAND  
NAND  
NAND  
NAND  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
-
-
R1  
T1  
K3  
T2  
R2  
P2  
L3  
nand_cen[3]  
nand_cen[2]  
nand_cen[1]  
nand_cen[0]  
nand_ale  
PU  
PU  
PU  
PU  
-
nand_cle  
-
M3  
SCP220x ICP Family, Rev.2.1  
172  
Freescale Semiconductor  
Packaging  
Table 88. SCP220x Pinout  
nand_D[0]  
nand_D[1]  
nand_D[2]  
nand_D[3]  
nand_D[4]  
nand_D[5]  
nand_D[6]  
nand_D[7]  
wp_N  
NAND  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Input  
-
-
-
-
-
-
-
-
-
N3  
P3  
K4  
N4  
P4  
K5  
N5  
N6  
-
NAND  
NAND  
NAND  
NAND  
NAND  
NAND  
NAND  
NAND  
DAC  
DAC_comp  
DAC_vref_out  
DAC_rset  
DAC  
DAC  
DAC  
DAC  
DAC  
Analog I/O  
Analog I/O  
Analog I/O  
Analog I/O  
Analog I/O  
-
-
-
-
-
L2  
M1  
M2  
N2  
L1  
DAC_vref_in  
DAC_io  
Display Interface Port  
dip_data[0]  
dip_data[1]  
dip_data[2]  
dip_data[3]  
dip_data[4]  
dip_data[5]  
dip_data[6]  
dip_data[7]  
dip_data[8]  
dip_data[9]  
dip_data10]  
dip_data[11]  
dip_data[12]  
dip_data[13]  
dip_data[14]  
dip_data[15]  
DIP  
DIP  
DIP  
DIP  
DIP  
DIP  
DIP  
DIP  
DIP  
DIP  
DIP  
DIP  
DIP  
DIP  
DIP  
DIP  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
PD  
PU  
PD  
PD  
PU  
PD  
PD  
PD  
PD  
-
K16  
K15  
K14  
K13  
J13  
L16  
L15  
L14  
L13  
M16  
M15  
M14  
M13  
N16  
N15  
N14  
-
-
-
-
-
-
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
173  
Packaging  
Table 88. SCP220x Pinout  
DIP  
dip_data[16]  
dip_data[17]  
dip_data[18]  
dip_data[19]  
dip_data[20]  
dip_data[21]  
dip_data[22]  
dip_data[23]  
dip_RS  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Output 4 mA / 8 mA  
Output 4 mA / 8 mA  
Output 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Output 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
-
N13  
P16  
P15  
R16  
R15  
T16  
T15  
T14  
R14  
R13  
T13  
R12  
P12  
N12  
R11  
N11  
P11  
DIP  
DIP  
DIP  
DIP  
DIP  
DIP  
DIP  
DIP  
DIP  
DIP  
DIP  
DIP  
DIP  
DIP  
DIP  
DIP  
-
-
-
-
-
-
-
-
dip_CSn0  
PU  
PU  
PU  
PU  
-
dip_CSn1  
dip_CSn2  
dip_CSn3  
dip_Wrn  
dip_OEn  
-
dip_pclk  
-
dip_cpu_vsync  
-
UART  
uart_Rx  
uart_Tx  
uart_cts  
uart_rts  
MISCIF  
MISCIF  
MISCIF  
MISCIF  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
-
-
-
-
A2  
B1  
B2  
C1  
SPI  
spi_Clk  
spi_CS  
spi_Tx  
MISCIF  
MISCIF  
MISCIF  
MISCIF  
MISCIF  
MISCIF  
MISCIF  
MISCIF  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
-
C2  
C3  
C4  
C5  
D1  
D2  
D3  
D4  
PU  
-
spi_Rx  
-
spi1_Clk  
spi1_CS  
spi1_Tx  
spi1_Rx  
-
PU  
-
-
Media Storage  
SCP220x ICP Family, Rev.2.1  
174  
Freescale Semiconductor  
Packaging  
Table 88. SCP220x Pinout  
sd_clk  
sd_cmd  
sd_D[0]  
sd_D[1]  
sd_D[2]  
sd_D[3]  
SDMMC  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
-
-
-
-
-
-
F1  
F2  
F3  
G1  
G2  
G3  
SDMMC  
SDMMC  
SDMMC  
SDMMC  
SDMMC  
Audio  
audio_clkr  
audio_clkx  
audio_dr  
audio_dx  
audio_fsr  
audio_fsx  
mclk  
AUDIO  
AUDIO  
AUDIO  
AUDIO  
AUDIO  
AUDIO  
AUDIO  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
-
-
-
-
-
-
-
P10  
N10  
M10  
N9  
M9  
N8  
M8  
MP2TS  
mp2ts_clk  
MISCIF  
MISCIF  
MISCIF  
MISCIF  
Input  
Input  
Input  
Input  
n.a.  
n.a.  
n.a.  
n.a.  
E1  
E2  
E3  
E4  
mp2ts_valid  
mp2ts_sync  
mp2ts_data  
USB  
usb_phy_id  
usb_phy_vbus  
usb_phy_Plus  
USB  
USB  
USB PAD  
USB PAD  
n.a.  
n.a.  
n.a.  
n.a.  
n.a.  
PU  
J5  
J4  
USB  
USB PAD  
K1  
J1  
usb_phy_Minus  
usb_phy_res  
USB  
USB PAD  
USB  
USB PAD  
J3  
utmiotg_drvvbus  
AUDIO  
Bi-dir. 4 mA / 8 mA  
R10  
Smart Card  
sc_io  
sc_card_detect  
sc_card_voltage  
sc_fcb  
SCCARD  
SCCARD  
SCCARD  
SCCARD  
SCCARD  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
-
-
H1  
H2  
H3  
H4  
H5  
-
-
sc_clk  
PU  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
175  
Packaging  
Table 88. SCP220x Pinout  
sc_power_on  
sc_rst  
SCCARD  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
-
-
H6  
J6  
SCCARD  
SDRAM  
DMCLK  
DMCLKn  
A[0]  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
Output 4 mA / 8 mA  
Output 4 mA / 8 mA  
Output 4 mA / 8 mA  
Output 4 mA / 8 mA  
Output 4 mA / 8 mA  
Output 4 mA / 8 mA  
Output. 4 mA / 8 mA  
Output 4 mA / 8 mA  
Output 4 mA / 8 mA  
Output 4 mA / 8 mA  
Output 4 mA / 8 mA  
Output 4 mA / 8 mA  
Output 4 mA / 8 mA  
Output 4 mA / 8 mA  
Output 4 mA / 8 mA  
Output. 4 mA / 8 mA  
Output 4 mA / 8 mA  
Output 4 mA / 8 mA  
Output 4 mA / 8 mA  
Output 4 mA / 8 mA  
Output 4 mA / 8 mA  
Output 4 mA / 8 mA  
Output 4 mA / 8 mA  
Output 4 mA / 8 mA  
Output 4 mA / 8 mA  
Output 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
A[1]  
A[2]  
A[3]  
A[4]  
A[5]  
A[6]  
A[7]  
A[8]  
A[9]  
A[10]  
A[11]  
A[12]  
CKE  
WEn  
CASn  
RASn  
CSn  
BA[0]  
BA[1]  
DM[0]  
DM[1]  
DM[2]  
DM[3]  
DQS[0]  
DQS[1]  
DQS[2]  
SCP220x ICP Family, Rev.2.1  
176  
Freescale Semiconductor  
Packaging  
Table 88. SCP220x Pinout  
SDRAM  
DQS[3]  
DQ[0]  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
SDRAM  
DQ[1]  
DQ[2]  
DQ[3]  
DQ[4]  
DQ[5]  
DQ[6]  
DQ[7]  
DQ[8]  
DQ[9]  
DQ[10]  
DQ[11]  
DQ[12]  
DQ[13]  
DQ[14]  
DQ[15]  
DQ[16]  
DQ[17]  
DQ[18]  
DQ[19]  
DQ[20]  
DQ[21]  
DQ[22]  
DQ[23]  
DQ[24]  
DQ[25]  
DQ[26]  
DQ[27]  
DQ[28]  
DQ[29]  
DQ[30]  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
177  
Packaging  
Table 88. SCP220x Pinout  
DQ[31]  
System Signals & JTAG  
Clkin  
SDRAM  
Bi-dir. 4 mA / 8 mA  
-
-
OSC  
OSC  
Oscillator pad  
n.a.  
H16  
J16  
H11  
P13  
A3  
A4  
B5  
B6  
B3  
B4  
A1  
P14  
-
Clkout  
Oscillator pad  
n.a.  
resetN  
HPI  
Input  
-
hw_deep_secure  
rtck  
DIP  
Input  
-
MISCIF  
MISCIF  
MISCIF  
MISCIF  
MISCIF  
MISCIF  
MISCIF  
DIP  
Output 4 mA / 8 mA  
-
tck  
Input  
Input  
PU  
Ntrst  
PD  
tdi  
Input  
PU  
tdo  
Output 4 mA / 8 mA  
Input  
-
tms  
PU  
testmode  
bootmode (1)  
pkg_opt0 (2)  
pkg_opt1 (2)  
pkg_opt2 (2)  
jtag_sel_p0 (2)  
jtag_sel_p1 (2)  
jtag_sel_p2 (2)  
No Connects  
Input  
PD  
Input  
-
-
-
-
-
-
-
SDRAM  
SDRAM  
SDRAM  
MISCIF  
MISCIF  
MISCIF  
Input  
Input  
-
Input  
-
Input  
-
Input  
-
Input  
-
SCP220x ICP Family, Rev.2.1  
178  
Freescale Semiconductor  
Packaging  
Table 88. SCP220x Pinout  
NC  
-
-
-
A5, A6, A7,  
A8, A9,  
A10, A11,  
A12, A13,  
A14, A15,  
M7, N7, P5,  
P6, P7, P8,  
P9, R4, R5,  
R6, R7, R8,  
R9, T3, T4,  
T5, T6, T7,  
T8,T9,T10,  
T11, T12,  
A16, B16,  
B15, B14,  
B12, C16,  
B13, C13,  
D16, D15,  
D14, D13,  
E16, E15,  
E14  
Reserved Pins  
reserved_1  
HPI  
HPI  
HPI  
HPI  
HPI  
HPI  
HPI  
HPI  
HPI  
HPI  
HPI  
HPI  
HPI  
HPI  
HPI  
NAND  
DIP  
DIP  
NAND  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 2 mA / 4 mA  
Input  
-
C14  
C15  
G11  
H13  
G12  
H12  
G14  
G15  
G16  
F13  
F14  
F15  
F16  
E13  
G13  
-
reserved_2  
reserved_3  
reserved_4  
reserved_5  
reserved_6  
reserved_7  
reserved_8  
reserved_9  
reserved_10  
reserved_11  
reserved_12  
reserved_13  
reserved_14  
reserved_15  
reserved_16  
reserved_17  
reserved_18  
reserved_19  
PD  
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 2 mA / 4 mA  
-
-
-
-
PU  
-
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
179  
Packaging  
Table 88. SCP220x Pinout  
reserved_20  
reserved_21  
reserved_22  
reserved_23  
reserved_24  
reserved_25  
reserved_26  
reserved_27  
reserved_28  
reserved_29  
NAND  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 2 mA / 4 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
Bi-dir. 4 mA / 8 mA  
PU  
-
-
-
-
-
-
-
-
-
-
NAND  
NAND  
DIP  
PU  
PU  
-
-
-
-
-
-
-
DIP  
NAND  
DIP  
DIP  
DIP  
DIP  
Notes:  
(1) Must be pulled-up to VDD_DIP (100 KOhms 1/16 W 5% suggested) for correct operation on SCP2201  
and SCP2207.  
(2) Software queries the SCP2207 pkg_opt[2:0] and jtag_sel_p[2:0] pins to determine the SDRAM used  
in the system. Currently CogniVue supports a 128 MB Micron mobile DDR SDRAM, and the pkg_opt[2:0]  
and jtag_sel_p[2:0] must both be set to binary ‘101’ (decimal value 5). Consult the factory for interfacing  
to any other memory.  
Table 89. SCP220x Power Pin  
Power Pin Name  
Description  
SCP2201 and  
SCP2207  
Ball #  
G8, G9, H8, H9  
J7, J10, K11, K12  
J14  
VDD_CORE  
VDD_LP  
Core supply  
Low-power audio/video supply  
Analog PLL supply  
VDDA_PLL  
VSSA_PLL  
Return for PLL VDD  
H14  
(DO NOT CONNECT TO GROUND)  
SDRAM core and EBI/SDRAM IO supply  
Analog supply for crystal pad  
Analog supply for USB  
VDD_SDRAM  
VDD_OSC  
F7,L7  
J15  
K2  
VDD_USB  
VDDL_USB  
VDDA_DAC  
VDD_SENSOR  
VDD_GPIO  
USB core supply  
-
Analog supply for internal DAC  
Sensor Interface (SIF) and I2C IO supply  
GPIO and keyscan supply  
P1  
F10  
D12  
SCP220x ICP Family, Rev.2.1  
180  
Freescale Semiconductor  
Electrical Specifications  
Table 89. SCP220x Power Pin  
DIP IO supply  
VDD_DIP  
L10  
D5  
F4  
VDD_MISCIF  
VDD_SDMMC  
VDD_AUDIO  
VDD_SCCARD  
VDD_NAND  
VSS  
MP2TS, JTAG, SPI, UART IO supply  
SD/MMC IO supply  
Audio IO supply  
K9  
G5  
L4  
Smart Card power supply  
NAND Flash IO supply  
Common ground  
C11, C12, D6, D11,  
F8, F9, G4, G6, H7,  
H10, J8, J9, J11,  
J12, K6, K8, L8, L9,  
M4, R3  
VSS_DAC  
VSS_USB  
VSSL_USB  
VSS_OSC  
Analog ground for internal DAC  
Analog ground for USB  
USB core ground  
N1  
J2  
-
Analog ground for crystal pad  
H15  
7
Electrical Specifications  
7.1  
Absolute Maximum Rating  
The following table describes the absolute maximum ratings for the SCP220x.  
Table 90. SCP220x Absolute Maximum Rating  
Item  
Rating  
Unit  
I/O supply voltage  
Core supply voltage  
-0.2 to +3.3  
-0.2 to +1.2  
-0.3 to +3.3  
-40 to +150  
1
V
V
Input voltage for a signal pin  
Storage temperature  
V
°C  
Short circuit duration (single output in high state to GND)  
second  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
181  
Electrical Specifications  
7.2  
Recommended Operating Ranges  
The following table describes the recommended operating ranges for the SCP220x. Note that IO_VDD refers to the  
subset of power supplies for the device I/Os as specified in Table 89. These supplies must be powered up before  
VDD_CORE is powered up.  
Table 91. SCP220x Recommended Operating Range  
Item  
Symbol  
Min.  
Typ.  
Max.  
Unit  
Core supply voltage  
Low power voltage  
VDD_CORE  
VDD_LP  
0.9  
1.0  
1.1  
V
I/O Supply Voltage  
IO_VDD  
2.7  
2.7  
3.0  
3.0  
1.8  
3.0  
1.8  
3.3  
3.3  
3.3  
3.3  
V
V
Sensor Interface (SIF)  
VDD_SENSOR  
1.71  
2.7  
1.98  
3.3  
V
Analog PLL supply  
SDRAM memory supply  
Analog supply for USB  
VDDA_PLL  
VDD_SDRAM  
VDD_USB  
V
1.7  
1.98  
3.6  
V
3.0  
V
Analog supply for internal DAC  
Operating temperature  
VDDA_DAC  
2.97  
-40  
3.63  
105  
V
Toperating  
(Industrial  
°C  
Qualified Parts)  
Notes:  
1. IO_VDD = VDD_GPIO, VDD_DIP, VDD_AUDIO, VDD_NAND, VDD_SENSOR, VDD_SDMMC, VDD_MISCIF,  
VDD_SCCARD, VDD_OSC  
2.Sensor Interface supply (VDD_SENSOR) shall be part of the IO_VDD group when powered at 3.0V.  
3.IO_VDD must always be on.  
4. VDDA_PLL, VDD_LP must always be on.  
5. VDD_DAC and VDD_USB must be turned on/off when VDD_CORE supply is turned on/off.  
7.3  
Thermal Characteristics  
Table 92. SCP220x Thermal Characteristics  
Air Velocity (m/s)  
JA  
JB  
JC  
0
25.5 °C/W  
19.9 °C/W  
8.5 °C/W  
SCP220x ICP Family, Rev.2.1  
182  
Freescale Semiconductor  
Electrical Specifications  
7.4  
DC Characteristics  
The following table describes the DC characteristics of the SCP220x.  
Table 93. SCP220x DC Characteristics  
Item  
Symbol  
Min.  
Typ.  
Max.  
Unit  
Input Voltage, high  
Input Voltage, low  
V
IH 3.0  
IL 3.0  
VIH 1.8  
IL 1.8  
IH 3.0  
2
-0.3  
3.3  
0.8  
V
V
V
Input Voltage, high (VDD_SENSOR at 1.8V)  
Input Voltage, low (VDD_SENSOR at 1.8V)  
Sensor Voltage, high (VDD_SENSOR at 3.0V)  
Sensor Voltage, low (VDD_SENSOR at 3.0V)  
Output Voltage, high  
1.17  
1.98  
0.63  
3.3  
V
V
-0.3  
V
V
2.7  
3.0  
1.8  
V
VIL 3.0  
VOH  
1.71  
1.98  
V
IO_VDD* 0.8  
V
Output Voltage, low  
VOL  
0.4  
11.9  
27.8  
39.6  
7.8  
V
Output Current High (VDD=3.0V)  
IOH_2ma  
IOH_4ma  
IOH_8ma  
IOL_2ma  
IOL_4ma  
IOL_8ma  
CI  
2.2  
5.1  
7.3  
2.8  
5.6  
8.4  
6.1  
14.4  
20.5  
5
mA  
mA  
mA  
mA  
mA  
mA  
pF  
Output Current Low (VDD=3.0V)  
Input Capacitance  
9.5  
15  
15.5  
23.5  
4
The following table describes the typical and maximum current consumption of the SCP220x.  
Table 94. SCP220x Power Consumption  
Description  
Supply  
Typ. (25°C)  
Max. (105°C)  
Unit  
Core supply voltage + Low power voltage  
VDD_CORE +  
VDD_LP  
300  
520  
mA  
I/O Supply  
IO_VDD1  
VDDA_PLL  
VDD_SDRAM  
VDD_USB  
18  
9
30  
20  
mA  
mA  
mA  
mA  
Analog PLL supply  
SDRAM memory supply  
Analog supply for USB  
222  
1803  
6 disabled  
8 enabled  
11 disabled  
17 enabled  
Analog supply for internal DAC (TVOut)  
VDDA_DAC  
0.6 disabled  
39 enabled  
1.0 disabled  
55 enabled  
mA  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
183  
Electrical Specifications  
Table 94. SCP220x Power Consumption  
Notes:  
1. IO_VDD is a combined total reading of VDD_GPIO, VDD_DIP, VDD_AUDIO, VDD_NAND, VDD_SENSOR, VDD_SDMMC,  
VDD_MISCIF, VDD_SCCARD, VDD_OSC measured at 3.0 V, with no IO activity  
2. Measured with an application dewarping a VGA image utilizing a 180° field of view lens.  
3. Condition where SDRAM is continuously burst written or read.  
SCP220x ICP Family, Rev.2.1  
184  
Freescale Semiconductor  
Revision History  
8
Revision History  
Revision  
Details of Change  
Date  
1
2
Initial Release  
04/2014  
03/2015  
In Section 1.2.7, POWER Supply  
• “1.0V core...I/O” changed to “1.8V...I/O Power.  
In Table 2 (SCP220x Power Supply), Added one row for Pin name  
VDD_SENSOR.  
In Table 11 (Sensor Interface Timing), Added rows for symbol t6(1.8V)  
and t7(1.8V).  
In Table 91 (SCP220x Recommended Operating Range), Added row  
for item Sensor Interface (1.8V) and also updated footnote 2.  
In Table 93 (SCP220x DC Characteristics), Added two for item Input  
Voltage, high (SIF 1.8V) and Input Voltage, low (SIF 1.8V).  
2.1  
• Editorial Changes  
06/2015  
Table Caption moved to top for all tables.  
SCP220x ICP Family, Rev.2.1  
Freescale Semiconductor  
185  
Information in this document is provided solely to enable system and software  
implementers to use Freescale products. There are no express or implied copyright  
licenses granted hereunder to design or fabricate any integrated circuits based on the  
information in this document.  
How to Reach Us:  
Home Page:  
freescale.com  
Web Support:  
freescale.com/support  
Freescale reserves the right to make changes without further notice to any products  
herein. Freescale makes no warranty, representation, or guarantee regarding the  
suitability of its products for any particular purpose, nor does Freescale assume any  
liability arising out of the application or use of any product or circuit, and specifically  
disclaims any and all liability, including without limitation consequential or incidental  
damages. “Typical” parameters that may be provided in Freescale data sheets and/or  
specifications can and do vary in different applications, and actual performance may  
vary over time. All operating parameters, including “typicals,must be validated for each  
customer application by customer’s technical experts. Freescale does not convey any  
license under its patent rights nor the rights of others. Freescale sells products  
pursuant to standard terms and conditions of sale, which can be found at the following  
address:freescale.com/SalesTermsandConditions.  
Freescale and the Freescale logo are trademarks of Freescale Semiconductor, Inc.,  
Reg. U.S. Pat. & Tm. Off. The Power Architecture and Power.org word marks and the  
Power and Power.org logos and related marks are trademarks and service marks  
licensed by Power.org. All other product or service names are the property of their  
respective owners.  
© 2015 Freescale Semiconductor, Inc.  
Document Number: SCP220x  
Rev.2.1  
06/2015  

相关型号:

SCP22A0601

Fiber Optic SC Connector, 126um, Single Mode, Duplex, Plug
AMPHENOL

SCP22A0604

Fiber Optic SC Connector, 126um, Single Mode, Duplex, Plug
AMPHENOL

SCP22M0601

Fiber Optic SC Connector, 126um, Multi Mode, Duplex, Plug
AMPHENOL

SCP22M0604

Fiber Optic SC Connector, 126um, Multi Mode, Duplex, Plug
AMPHENOL

SCP22S0601

Fiber Optic SC Connector, 126um, Single Mode, Duplex, Plug
AMPHENOL

SCP22S0604

Fiber Optic SC Connector, 126um, Single Mode, Duplex, Plug
AMPHENOL

SCP23A0601

Fiber Optic SC Connector, 126um, Single Mode, Duplex, Plug
AMPHENOL

SCP23A0604

Fiber Optic SC Connector, 126um, Single Mode, Duplex, Plug
AMPHENOL

SCP23M0601

Fiber Optic SC Connector, 126um, Multi Mode, Duplex, Plug
AMPHENOL

SCP23M0604

Fiber Optic SC Connector, 126um, Multi Mode, Duplex, Plug
AMPHENOL

SCP23S0601

Fiber Optic SC Connector, 126um, Single Mode, Duplex, Plug
AMPHENOL

SCP23S0604

Fiber Optic SC Connector, 126um, Single Mode, Duplex, Plug
AMPHENOL