including ISO compliant MPEG 1 & 2 layer 3 support for
all standard sample rates and bit rates
— Supports bit streams with adaptive bit rates
— DAI (Digital Audio Interface) providing glueless interface
to low power DACs, ADCs, and Codecs
■
Ultra low power consumption for MP3 playback
— 87 mW (typical) for 44.1 kHz samples/sec,
128 kbits/s econd
— 50 mW for 22.05 kHz samples/s ec, 64kbits/second
— <1 mW in St andb y State
■
ARM720T processor
— ARM7TDMI CPU
— 8 kbytes of four-way set-associative cache
— MMU with 64-entry TLB (transition look-aside buffer)
— Write Buffer
— Windows
CE enabled
— Thumb code support enabled
Functional Block Diagram
13-MHZ INPUT
3.6864 MHZ
32.768 KHZ
NPOR, RUN,
RESET, WAKEUP
BAT OK, NEXTPWR
PWRFL, BATCHG
EINT[1:3], FIQ,
MEDCHG
FLASHING LED DRIVE
PORTS A, B, D (8-BIT)
PORT E (3-BIT)
KEYBD DRIVERS (0:7)
BUZZER DRIVE
DC-TO-DC
ADCCLK, ADCIN,
ADCOUT, SMPCLK,
SSICLK, SSITXFR,
SSITXDA, SSIRXDA,
ADCCS
SSIRSFR
PLL
32.768-KHZ
OSCILLA TOR
STATE CONTROL
POWER
MANAGEMENT
INTERRUPT
CONTROLLER
RTC
GPIO
PWM
SSI1 (ADC)
DAI
SSI2
CODEC
Ultra-Low-Power Audio Decoder
System-on-Chip
OVERVIEW
The EP7209 is a complete integrated system on a
chip for enabli ng per sonal di gi tal audio solutions. It
is designed specifica lly for implementing audio
processing algorithms in power sensitive applications. The core-logic functionality of the device is
built around an ARM7 20T embedd ed p r ocessor.
The EP7209 also i ncludes a 32- bit Y2K-comp liant
Real-Time Clock ( RTC) and comp ar ator.
Dynamically programmable clock speeds of 18,
36, 49, and 74 MHz at 2.5 V
■
Performance matching 100 MHz Intel
Pentium-based PC
■
OEM customization
— Integrated ARM720T RISC processor
— Up to 25 MHz of CPU processing power avai lable (after
digital audio decoding) for custom features such as soft-
ware EQ or tone control, volume control, spectrum
analyzer, random play order, etc.
— Allows for control of digital voice recorder function
■
LCD controller
— Interfaces directly to a single-scan panel monochrome
LCD
— Panel width is programmable from 32 to 1024 pixels in
16-pixel increments
— Video frame buffer size programmable up to 128kbytes
— Bits per pixel of 1, 2, or 4 bits
■
Memory co nt r oller
— Decodes up to 6 separate memory segments of up to
256 Mbytes each
— Each segment can be configured as 8, 16, or 32 bits
wide and supports page-mode access
(cont.)
— Programmable access time for conventional
ROM/SRAM/FLASH memory
— Supports Removable FLASH card interface
— Enables connection to removable FLASH card for addi-
tion of expansion FLASH memory modules
■
38,400 bytes ( 0x9 60 0) of on -ch i p SRA M fo r fast
program execution and/or as a frame buffer
■
On-chip boot ROM for manufacturing support
■
Integrated D AI in te rf ac e
— Connects directly to a Crystal® audio DAC
■
27-bits of general-purpose I/O
— Three 8-bit and one 3-bit GPIO port
— Supports scanning keyboard matrix
■
SIR (up to 115.2 kbps) infrared encoder/decoder
— IrDA (Infrared Data Association) SIR protocol
encoder/decoder
■
DC-to-DC converter interface (PWM)
— Provides two 96 kHz clock outputs with programmable
duty ratio (from 1-in-16 to 15-in-16) that can be used to
drive a DC to DC converter
■
208-pin LQFP or 256-ball PBGA p a ck ag e s
■
Full JTAG boundary scan and Embedded ICE
support
OVERVIEW
(cont.)
The EP7209 also includes a comprehensive set of
integrated peripherals such as an LCD display controller , an audio DAC inter face, and a FLASH memory
interface. Using the EP7209, a portable audio
decoder solution can be built with the addition of an
LCD display, an audio DAC, a FL ASH memo ry subsystem, and a small number of additional low cost
components.
The EP7209 uses its powerful 32-bit RISC processing engine to implement audio decompression algorithms in software. The nature of the on-board RISC
processor and th e avai labi lity of ef fic ient C-comp iler s
and other software dev elopme nt too ls ensure s that a
wide range of audio decompression algorithms can
easily be ported t o an d run o n t he EP 720 9.
The EP7209 uses external memory for storing application code. The use of external memory to support
software audio decompression algorithms ensures
that the audio deco mpression system so lution can be
tailored to the requirements of the application. Software can be place d in a low cost mask ROM f or pri ce
sensitive applicati ons, or can be plac ed in external
FLASH memory to enabl e upgradeable systems. The
EP7209’s 8 kbyte on-board cache and programmable wait state generator ensure that a wide range of
memory options can be uti lize d.
The EP7209 runs a full ISO-compliant MPEG 1, 2, &
2.5 layer 3 audio decompre ssion engine with less
than 50% of its availab le proces sing capab ility. This
leaves significant processin g power available for
product differentiation.
MPEG 1, 2, & 2.5 Layer 3 Object Code Library
Cirrus Logic provides an object code library for
enabling MPEG 1, 2, & 2 .5 layer 3 aud io decomp ression. This library supports the MPEG 1 sample rates
of 48 k, 44.1 k and 32 k bits per second; the MPEG 2
sample rates of 24 k, 22.05 k and 16 k bits per second; and the MPEG 2.5 s ample rates of 12 k,
11.025 k and 8 k bits per second. In addition to all
standard fixed compressed data rates, the MPEG
layer 3 object co de library also supports de compression of variabl e bi t- ra te data streams.
2DS453PP2
EP7209
OVERVIEW
(cont.)
Power Management
The EP7209 is designed for ultra-low-power operation. Its core ope rat es at only 2.5 V, while its I/O has
an operation range of 2.5 V-3.3 V. Through careful
design, Cirrus Logic h as achieved extremely low
power consumption with the EP7209. This is
achieved by using a combination of dynamically
adjustable core clock frequencies, low power states
utilized during periods of inactivity, and fully static
design principles. For example, when decompressing
MPEG 1 layer 3 music data with sample rates of
44.1 kHz and 128 kbits/sec, the EP7209 consumes
less than 87 mW. At sampling frequencies of
22.05 kHz and 64 kbits/sec, power consumption falls
to 50 mW.
Audio Data Memory Interfaces
The EP7209 connects directly to both on-system
FLASH memory and to re movable FLASH m emorycards. The generality of the external interface on the
EP7209 allows for the use of a wide variety of additional memory type s for com press ed audi o dat a storage.
downloading of compressed music or data from a PC
to an EP7209-ba sed po rtable digital aud io p la yer.
The EP7209 can also be connected to industry standard USB slave devices through an external interface. The power of the EP720 9 coupled with the
36 MHz external data bus ensures that the EP7209
can support rapid transfer of compressed audio data
over a USB interface .
The EP7209 also includes a built-in 115.2 kbps IrDA
SIR protocol encoder/decoder that can be used to
drive an infrared communication interface to download the dat a.
Digital Audio Interface
The EP7209 integrates an DAI interface to enable a
direct connection to many low cost, low power, high
quality audio converters. In particular, the DAI interface can be used to drive the Crystal CS43L41 / 42 /
43 low power audio DACs and the Crystal CS53L32
low power audio A DC. Some of t hese devices f eature
digital bass and treble boost, digital volume control
and compressor-l imi ter fu ncti ons .
LCD Interface
The EP7209 int erfaces directl y to a singl e-scan pane l
monochrome LCD display. For portable digital audio
Packaging
The EP7209 is available in a 208-pin LQFP package
and a 256-ball PBGA pa cka ge.
player applications that require LCDs, a 128 kbyte
display buf fer is pr ovi ded .
Data Download
System Design
As shown in the system block diagram, simply adding
FLASH memory, an LCD, an audio DAC, and some
The EP7209 along with minimal glue logic can connect to a PC through the parallel port. This enables
discrete components, a complete low power digital
audio player syst em can be made . (See the f ollowing
illustration).
Contacting Cirrus Logic Support
For a complete listing of Direct Sales, Distributor, and Sales Representative contacts, visit the Cirrus Logic web site at:
http://www.cirrus.com/corporate/contacts/
Preliminary product inf o rmation describes product s whi ch are in production, b ut f or which full character iza t i on da t a i s not yet available. Advance p rodu ct i nformation describes products which are in development and subject to development changes. Cirrus Logic, Inc. has made best efforts to ensure that the information
contained in this document i s accurat e and reli able. However , t he infor mation is subje ct to chang e without noti ce and is provi d ed “AS IS” without warrant y of
any kind (express or implied). No responsibility is assumed by Cirrus Logic, Inc. for the use of this information, nor for infringements of patents or other rights
of third parties. This document is the pro perty of Cirrus Logi c, Inc. and i mplie s no licen se under patents, copyrights, tr ademarks, or trade secre ts. No part of
this publication may be copied, reproduced , stored in a retrieval system, or transmitted, in any form or by any means (electro nic, mechanical, photographic, or
otherwise) without the pr i or writ ten consent of Cirrus Logic, Inc. It e ms f rom any Ci rrus Logic website or disk may be printed for use by the user. However, no
part of the printout or electronic files may be copied, reproduced, stored in a retrieval system, or transmitted, in any form or by any means (electronic, mechanical,
photographic, or otherwise) without the prior written consent of Cirrus Logic, Inc.Furthermore, no part of this publication may be used as a basis for manufacture
or sale of any items without the prior written consent of Cirrus Logic, Inc. The names of products of Cirrus Logic, Inc. or other vendors and suppliers appearing
in this document may be trademarks or service marks of their respective owners which may be registered in some jurisdictions. A list of Cirrus Logic, Inc. trademarks and service marks can be found at http://www.cirrus.com.
DS453PP23
EP7209
OVERVIEW
CRYSTAL
CRYSTAL
FLASH MEMORY
PC PARALLEL PORT
SMART MEDIA
INTERFACE
(cont.)
LCD
FLASH CARD/
CARD
NOR
FLASH
× 16
NAND
FLASH
× 8
MOSCIN
RTCIN
D[31:0]
A[27:0]
NMOE
NMWE
EINT[X]
CS[3]
CS[0]
CS[1]
PB[6:7]
NEXTPWR
EP7209
NBATCHG
COL[7:0]
PA[7:0]
PE[2:0]
NPOR
NPWRFL
NBATOK
RUN
WAKEUP
SSICLK
SSITXFR
SSITXDA
SSIRXDA
KEYBOARD/
PUSH BUTTONS
POWER
SUPPLY UNIT
AND
COMPARATORS
STEREO DAC
CS43L41 / 42 /
43
STEREO ADC
CS53L32
BATTERY
HEADPHONES
MIC
USB
CS[4]
Figure 1. A Typical EP7209-Based Digital Audio Player Reference
MSBmost significant bit.
PBGAplastic ball grid array.
PCBprinted circuit board.
PDApersonal digital assistant.
PIAperipheral inter face a dapt er.
PLLphase locked loop.
PSUpower supply unit.
p/upull-up resistor.
RAMrandom access memory.
RISC
ROMread-only memory.
RTCReal Time Clock.
SIRslow (9600–115.2 kbps) infrared.
SRAMstatic random access memory.
SSIsynchronous serial interface.
TAPte st acces s port.
TLBtran slati on loo ka side buffer.
UART
millions of instructions per second.
reduced instruction set computer.
universal asynchro n ous
receiver.
Definition
Table 1. Acronyms and Abbreviations
10DS453PP2
Table 1. Acronyms and Abbreviations (cont.)
1.2Units of Measurement 1.3General Conventions
EP7209
SymbolUnit of Measure
°C
Hzhertz (cycle per second)
kbits/skilobits per second
kbytekilobyte (1,024 bytes)
kHzkilohertz
Ωkilohm
k
Mbpsmegabits (1,048,576 bits) per second
Mbytemegabyte (1,048,576 bytes)
MHzmegahertz (1,000 kilohertz)
Hexadecimal numbers are presen ted with all l etters
in uppercase and a lowercase ‘h’ appended or with
a 0x at the beginning. For example, 0x14 and
03CAh are hexadecimal numbers. Binary numbers
are enclosed in single quotation marks when in text
(for example, ‘11’ designates a binary number).
Numbers not indicated by an ‘h’, 0x or quotation
marks are decimal.
Registers are referred to by acronym, as listed in
the tables on the previous page, with bits listed in
brackets MSB-to-LSB separated by a colon (:) (for
example, CODR[7:0]), or LSB-to-MSB separated
by a hyphen (for example, CODR[0–2]).
The use of ‘tbd’ indicates values that are ‘to be determined’, ‘n/a’ designates ‘not available’, and
‘n/c’ indicates a pin that is a ‘no connect’.
1.4Pin Description Conventions
Abbreviations used for signal directions are listed
in Table 3.
Table 4 describes the function of all the external signals to the EP7209. Note that all output signals are tri-
stateable to enable the Hi-Z test modes to be supported.
2.2.1External Signal Functions
FunctionSignal
SignalDescription
Name
Data busD[0:31]I/O32-bit system data bus for memory and I/O interface
A[0:27]O28 bits of system byte address during memory and expansion cycles
Whenever the EP7209 is in the Standby State, the external address and data
Address bus
nMOEOMemory output enable, active low
nMWEOMemory write enable, active low
nCS[0:3]OChip select; active low, SRAM-like chip selects for expansion
nCS[4:5]OChip select; active low, CS for expansion or for CL-PS6700 select
EXPRDYI
WRITEOWrite strobe, low during reads, high during writes from the EP7209
buses are driven low. The RUN signal is used internally to force these buses to
be driven low. This is done to p reve nt perip herals that are powe red-d own from
draining current. Also, the internal peripheral’s signals get set to their Reset
State.
Expansion port ready; external expansion devices drive this low to extend the
bus cycle. This is used to insert wait states for an external bus cycle.
To do write accesses of dif fere nt siz es W ord and Hal f-W ord mus t be extern ally
decoded. The encoding of these signals is as follows:
Access SizeWordHalf-Word
Word10
Memory
Interface
Half-Word*1
Byte00
DS453PP2
WORD/
HALFWORD
EXPCLKI/O
O
The core will generate an address. When doing a read, the ARM core will
select the appropriate byte channels. When doing a write, the correct bytes
will have to be enabled depending on the above signals and the least significant bits of the address bus.
The ARM architecture does no t sup port un ali gne d ac ces s es. For a read using
x 32 memory, it is assumed tha t y ou w ill i gno re b it s 1 an d 0 of the address bus
and perform a word rea d (or i n po wer c ritical systems decode the relevan t bits
depending on the size of the access). If an unaligned read takes place, the
core will rotate the resulting data in the register. For more information on this
behavior see the LDR instruction in the ARM7TDMI data sheet.
Expansion cl oc k ra te i s t he s am e a s the CP U clock for 13 MHz and 18MHz. It
runs at 36.864 MHz for 36,49 and 74 MHz modes; in 13 MHz mode this pin is
used as the clock input.
Table 4. External Signal Functions
13
EP7209
FunctionSignal
Name
nMEDCHG/
nBROM
Interrupts
Power
Management
nEXTFIQIExternal active low fast interrupt request input
EINT[3]IExternal active high interrupt request input
nEINT[1:2]ITwo general purpose, active low interrupt inputs
nPWRFL
BATOK
nEXTPWRI
nBATCHG
nPORI
SignalDescription
Media changed input; active low, deglitched. Used as a general purpose FIQ
interrupt during normal ope r ati on. It is also us ed on pow er up to co nfi gure the
I
processor to either boot from the internal Boot ROM, or from external memory.
When low, the chip will boot from the internal Boot ROM.
1
1
1
Power fail input; active low, deglitched input to force system into the Standby
I
State
Main battery OK input; fallin g edge gen erates a FIQ, a low lev el in th e Standby
I
State inhibits system start up; deglitched input
External power sense; must be driven low if the system is powered by an
external source
New battery sense; driven low if battery voltage falls below the "no-battery"
I
threshold; it is a deglitched input
Power-on reset input. This signal is not deglitched. When active it completely
resets the entire system, including all the RTC registers. Upon power-up, the
signal must be held active low for a minimum of 100 µsec after Vdd has settled. During normal operation, nPOR needs to be held low for at least one
clock cycle of the selected clock speed (i.e., when running at 13 MHz, the
pulse width of nPOR needs to be > 77 nsec).
State Control
DAI, Codec or
SSI2
Interface
(See Table 5 for
SSI2/Codec/DAI
Pin Multiplexing)
Note that nURESET, RUN/CLKEN, TEST(0), TEST(1), PE(0), PE(1), PE(2),
DRIVE(0), DRIVE(1), DD(0), DD(1), DD(2), and DD(3) are al l latched on rising
edge of nPOR.
This pin is programmed to either output the RUN signal or the CLKEN signal.
The CLKENSL bit is used to configure this pin. When RUN is selected, the pin
RUN/CLKENI/O
WAKEUP
nURESET
SSICLKI/ODAI/Codec/SSI2 clock signal
SSITXFRI/ODAI/Codec/SSI2 serial data output frame/synchronization pulse output
SSITXDAODAI/Codec/SSI2 serial data output
SSIRXDAI
SSIRXFRI/O
1
1
will be high when the system is active or idle, low while in the Standby State.
When CLKEN is selected, the pin will only be driven low when in the Standby
State (For RUN, see Table 6).
Wake up deglitched input signal; rising edge forces system into the Operating
State from the Standby State; active after an nPOR reset. The wakeup signa l
can not be used to exit Idle, only Standby. Wakeup must wait at least 2 sec-
I
onds before it goes high for it to be detected by the CPU. It must also be held
high for at least 125
first detection has no effect (i.e., it is ignored).
User reset input; active low deglitched input from user reset button.
This pin is also latched upon the rising edge of nPOR and read along with the
I
input pins nTEST[0:1] to force the device into special test modes. nURESET
does not reset the RTC.
DAI/Codec/SSI2 seri al data input
SSI2 serial data input frame/synchronizati on pulse
DAI external clock input
µsec to guarantee its detection. Toggling wakeup after its
Table 4. External Signal Functions (cont.)
14DS453PP2
EP7209
FunctionSignal
Name
ADCCLKOSerial clock output
ADC
Interface
(SSI1)
IrDA and
RS232
Interfaces
LCD
Keyboard &
Buzzer drive
LED Flasher
General
Purpose I/O
PWM
Drives
nADCCSOChip select for ADC interface
ADCOUTOSeria l data output
ADCINISerial data input
SMPCLKOSample cloc k output
LEDDRVOInfrared LED drive output (UART1)
LCD serial display data; pins can be used on power up to read the ID of some
LCD modules (See Table 6).
LED flasher driver — multiplexed with Port D bit 0. This pin can provide up to
O
4 mA of drive current.
Port A I/O (bit 6 for boot clock option, bit 7 for CL-PS6700 PRDY input); also
used as keyboard row inputs
Port B I/O. All eight Port B bits can be used as GPIOs.
When the PC CARD1 or 2 control bits in the SYSCON2 register are de-
I/O
asserted, PB[0] and PB[1] are available for GPIO. When asserted, these port
bits are used as the PRDY signals for connected CL-PS6700 PC Card Host
Adapter devices.
Port E I/O (3 bits only). Can be used as general purpose I/O during normal
I/O
operation.
During power-on reset, PE[0] and PE[1] are inputs and are latched by the ris-
I/O
ing edge of nPOR to s el ect the me mo ry wi d th tha t th e EP7209 will use to read
from the boot code storage device (i.e., external 8-bit-wide FLASH bank).
During power-on reset, PE[2] is latched by the rising edge of nPOR to select
I/O
the clock mode of operation (i.e., either the PLL or external 13 MHz clock
mode).
PWM drive ou tputs. These pins are inputs on power up to determine what
polarity the output of the PWM should be when active. Otherwise, these pins
are always an output (See Table 6).
DS453PP2
Table 4. External Signal Functions (cont.)
15
EP7209
FunctionSignal
SignalDescription
Name
TDIIJTAG data in
Boundary
Scan
TestnTEST[0:1]I
Oscillators
No connectsN/CNo connects should be left as no connects; do not connect to ground
TDOOJTAG data out
TMSIJTAG mode select
TCLKIJTAG clock
nTRSTIJTAG async reset
Test mode select input s. Th ese pi ns are u sed in conju nction with t he power-o n
latched state of nURESET to select between the various device test models.
MOSCIN
MOSCOUT
RTCIN
RTCOUT
I
Main 3.6864 MHz oscillator for 18.432 MHz–73.728 MHz PLL
O
I
Real Time Clock 32.768 kHz oscillator
O
Table 4. External Signal Functions (cont.)
1. All deglitched inputs are via the 16.384 kHz clock. Each deglitched signal must be held active for at least two clock periods. Therefore, the
input signal must be active for at least ~125
µs to be detected cleanly.
NOTE:The RTC crystal must be populated for the device to function properly.
The selection between SSI2 and the codec is controlled by the state of the SERSEL bit in SYSCON2 (See
SYSCON2 System Control Register 2). The choice between the SSI2, codec, and the DAI is controlled by
the DAISEL bit in SYSCON3 (See SYSCON3 System Control Register 3).
Table 5. SSI/Codec/DAI Pin Multiplex ing
16DS453PP2
EP7209
2.2.3Output Bi-Directional Pins
RUNThe RUN pin is looped back in to skew the address and data bus from each other.
Drive [0:1]Drive 0 and 1 are looped back in on power up to determine what polarity the output of the PWM should be
when active.
DD[3:0]DD[3:0] are looped back in on power up to enable the reading of the ID of some LCD modules.
NOTE:The above output pins ar e implemen ted as b i-direction al pins to enable the out put side of the pad to
be monitored and hence provide more accurate control of timing or duration:
Table 6. Output Bi-Directional Pins
DS453PP2
17
EP7209
3. FUNCTIONAL DESCRIPTION
The EP7209 device is a single-chip embedded controller designed to be used in low cost and ultralow-power digital audio players. Operating at
74 MHz, the EP7209 delivers approximately
66 Dhrystone 2.1 MIPS of sustained performance
(74 MIPS peak). This is approximately the same as
a 100 MHz Pentium-based PC.
The EP7209 contains the following functional
blocks:
•ARM720T processor which consists of the fol-
lowing functional sub-blocks:
-ARM7TDMI CPU core (which supports
the logic for the Thumb instruction set, core
debug, enhanced multiplier, JTAG, and the
Embedded ICE) running at a dynamically
programmable clock speed of 18 MHz,
36 MHz, 49 MHz, or 74 MHz.
-Memory Management Unit (MMU) compatible with the ARM710 core (providing
address translation and a 64 entry translation lookaside buffer) with added support
for Windows CE.
-8 kbytes of unified instruction and data
cache with a four-way set associative cache
controller.
-Write buffer
•38,400 bytes (0x9600) of on-chip SRAM that
can be shared between the LCD controller and
general application use.
•Memory interfaces for up to 6 independent
256 Mbyte expansion segments with programming wait states.
•27 bits of general purpose I/O - multiplexed to
provide additional functionality where necessary.
•Digital Audio Interface (DAI) for connection to
CD-quality DACs and codecs.
•Interrupt controller
•Advanced system state control and power man-
agement.
•Two full-duplex 16550A compatible UARTs
with 16-byte transmit and receive FIFOs.
•IrDA SIR protocol controller capable of speeds
up to 115.2 kbps.
•Programmable 1-, 2-, or 4-bit-per-pixel LCD
controller with 16-level gray scaler.
•Programmable frame buffer start address, allowing a system to be built using only internal
SRAM for memory.
•On-chip boot ROM programmed with serial
load boot sequence.
•Two 16-bit general purpose timer counters.
•A 32-bit Real Time Clock (RTC) and compar-
ator.
•Dedicated LED flasher pin driven from the
RTC with programmable duty ratio (multiplexed with a GPIO pin).
•Two synchronous serial interfaces for Microwire or SPI peripherals such as ADCs, one supporting both the master and slave mode and the
other supporting only the master mode.
•Full JTAG boundary scan and Embedded ICE
support.
•An interface to one or two Cirrus Logic CLPS6700 PC Card controller devices to support
two PC Card slots.
18DS453PP2
EP7209
•Oscillator and phase locked loop (PLL) to generate the core clock speeds of 18.432 MHz,
36.864 MHz, 49.152 MHz, and 73.728 MHz
from an external 3.6864 MHz crystal, with an
alternative external clock input (used in
13 MHz mode).
•A low power 32.768 kHz oscillator.
The EP7209 design is optimized for low power dissipation and is fabricated on a fully static
0.25 micron CMOS process. It is available in a
256-ball PBGA or a 208-pin LQFP package.
Figure 2 shows a simplified block diagram of the
EP7209. All external memory and peripheral devices are connected to the 32-bit data bus using the
external 28-bit address bus and control signals.
3.1CPU Core
The ARM720T consists of an ARM7TDMI 32-bit
RISC processor, a unified cache, and a memory
management unit (MMU). The cache is four-way
set associative with 8-kbytes organized as 512 lines
of 4 words. The cache is directly connected to the
ARM7TDMI, and therefore caches the virtual address from the CPU. When the cache misses, the
MMU translates the virtual address into a physical
address. A 64-entry translation lookaside buffer
(TLB) is utilized to speed the address translation
process and reduce bus traffic necessary to read the
page table. The MMU saves power by only translating the cache misses.
See the ARM720T Data sheet for a complete description of the various logic blocks that make up
the processor, as well as all internal registe r information.
13-MHZ INPUT
3.6864 MHZ
32.768 KHZ
NPOR, RUN,
RESET, WAKEUP
BAT OK, NEXTPWR
PWRFL, BATCHG
EINT[1:3], FIQ,
MEDCHG
FLASHING LED DRIVE
PORTS A, B, D (8-B IT)
PORT E (3-BIT)
KEYBD DRIVERS (0:7)
BUZZER DRIVE
DC-TO-DC
ADCCLK, ADCIN,
ADCOUT, SMPCLK,
SSICLK, SSITXFR,
SSITXDA, SSIRXDA,
ADCCS
SSIRSFR
PLL
32.768-KHZ
OSCILLATOR
STATE CONTRO L
POWER
MANAGEMENT
INTERRUPT
CONTROLLER
RTC
GPIO
PWM
SSI1 (ADC)
DAI
SSI2
CODEC
INTERNAL DATA BUS
ARM720T
ARM7TDMI
CPU CORE
8-KBYTE
CACHE
MMU
WRITE
BUFFER
TIMER
COUNTERS (2)
ON-CHIP
BOOT ROM
EPB BRIDGE
EPB BUS
MEMORY CONTROLLER
CL-PS6700
INTFC.
EXPANSION
CONTROL
INTERNAL ADDRESS BUS
LCD
DMA
LCD
CONTROLLER
ON-CHIP SRAM
38,400 BYTES
UART1
UART2
Figure 2. EP7209 Block Diagram
ICE-JTAG
IrDA
D[0:31]
PB[0:1], NCS[4:5]
EXPCLK, WORD, NCS[0:3],
EXPRDY, WRITE
A[0:27],
DRA[0:12]
TEST AND
DEVELOPMENT
LCD DRIVE
LED AND
PHOTODIODE
ASYNC
INTERFACE 1
ASYNC
INTERFACE 2
DS453PP2
19
EP7209
Figure 3. State Diagram
Standby
Operating
Idle
Interrupt or r ising wakeup
Write to standby location,
power fail, or user reset
I
n
t
e
r
r
u
p
t
Write to halt location
nPOR, power fail,
or user reset
3.2State Control
The EP7209 supports the following Power Management States: Operating, Idle, and Standby (see
Figure 3). The normal program execution state is
the Operating State; this is a full performance state
where all of the clocks and peripheral logic are enabled. The Idle State is the same as the Operating
State with the exception of the CPU clock being
halted, and an interrupt or wakeup will return it
back to the Operating State. The Standby State has
the lowest power consumption, selecting this mode
shuts down the main oscillator, leaving only the
Real Time Clock and its associated logic powered.
It is important when the EP7209 is in Standby that
all power and ground pins remain connected to
power and ground in order to have a proper system
wake-up. The only state that Standby can transition
to is the Operating State.
3.2.1Standby State
The Standby State equates to the system being
switched "off" (i.e., no display, and the main oscillator is shut down). When the 18.432–73.72 MHz
mode is selected, the PLL will be shut down. In the
13 MHz mode, if the CLKENSL bit is set low, then
the CLKEN signal will be forced low and can, if required, be used to disable an external oscillator.
In the Standby State, all the system memory and
state is maintained and the system time is kept upto-date. The PLL/on-chip oscillator or external oscillator is disabled and the system is static, except
for the low power watch crystal (32 kHz) oscillator
and divider chain to the RTC and LED flasher. The
RUN signal is driven low and this signal can be
used externally in the system to power down other
system modules.
Whenever the EP7209 is in the Standby State, the
external address and data buses are forced low internally by the RUN signal. Thi s i s do ne to preve nt
peripherals that are powered-down from draining
current. Also, the internal peripheral’s signals get
set to their Reset State.
In the description below, the RUN/CLKEN pin can
be used either for the RUN functionality, or the
CLKEN functionality to allow an external oscillator to be disabled in the 13 MHz mode. Either RUN
or CLKEN functionality can be selected according
to the state of the CLKENSL bit in the SYSCON2
register. Table 7 on the following page shows peripheral status in various power management
states.
When first powered, or reset by the nPOR (Power
On Reset, active low) signal, the EP7209 is forced
into the Standby State. This is known as a cold reset, and when leaving the Standby State after a cold
reset, external wake up is the only way to wake up
the device. When leaving the Standby State after
non-cold reset conditions (i.e., the software has
forced the device into the Standby State), the transition to the Operating State can be caused by a rising edge on the WAKEUP input signal or by an
enabled interrupt. Normally, when entering the
Standby State from the Operating State, the software will leave some interrupt sources enabled.
NOTE:The CPU cannot be awakened by the T INT,
WEINT, and BLINT interrupts when in the
Standby State.
20DS453PP2
EP7209
Address (W/B)OperatingIdleStandbynPOR
UARTs
LCD FIFO
LCD
ADC Interface
SSI2 Interface
DAI Interface
Codec
Timers
RTC
LED Flasher
DC-to-DC
CPU
Interrupt Control
PLL/CLKEN Signal
Table 7. Peripheral Status in Different Power Management States
Typically, software writes to the Standby internal
memory location to cause the transition from the
Operating State to the Standby State. Before entering the Standby State, if external I/O devices (such
as the CL-PS6700s connected to nCS[4] or nCS[5])
are in use, the software must c heck to ensure that
they are idle before issuing the write to the Standby
State location.
Before entering the Standby State, the software
must properly disable the DAI. Failing to do so will
result in higher than expected power consumption
in the Standby State, as well as unpredictable operation of the DAI. The DAI ca n be r e-enabled afte r
transitioning back to the Operating State.
nURESET
RESET
RESET
and either the nEXTPWR input pin is low or the
BATOK input pin is high. This prevents the system
from starting when the power supply is inadequate
(i.e., the main batteries are low), corresponding to
a low level on nPWRFL or BATOK.
From the Standby State, if the WAKEUP signal is
applied with no clock except the 32 kHz clock running, the EP7209 will be initialized into a state
where it is ready to start and is waiting for the CPU
to start receiving its clock. The CPU will still be
held in reset at this point. After the first clock is applied, there will be a delay of about eight clock cycles before the CPU is enabled. This delay is to
allow the clock to the CPU time to settle.
The system can also be forced into the Standby
State by hardware if the nPWRFL or nURESET inputs are forced low. The only exit from the Standby
State is to the Operating State.
The system will only transition to the Operating
State from the Standby State under the following
conditions: when the nPWRFL input pin is high
DS453PP2
3.2.1.1UART in Standby State
During the Standby State, the UARTs are disabled
and cannot detect any activity (i.e., start bit) on the
receiver. If this functionality is required then this
can be accomplished in software by the following
method:
21
EP7209
1) Permanently connect the RX pin to one of t he
active low external interrupt pins.
2) Ensure that on entry to the Standby State, t he
chosen interrupt source is not masked, and
the UART is enabled.
3) Send a preamble that consists of one start bit,
8 bits of zero, and one stop bit. This will
cause the EP7209 to wake and execute the
enabled interrupt vector.
The UART will automatically be re-enabled
when the processor re-enters the Operating State,
and the preamble will be received. Since the
UART was not awake at the star t of the preamble, the timing of the sample point will be offcenter during the preamble byte. However, the
next byte transmitted will be correctly aligned.
Thus, the actual first real byte to be received by
the UART will get captured correctly.
3.2.2Idle State
If in the Operating State, the Idle State can be entered by writing to a special internal memory location (HALT) in the EP7209. If an interrupt
occurs, the EP7209 will return immediately back
to the Operating State and execute the next instruction. The WAKEUP signal can not be used
to exit the Idle State. It is only used to exit the
Standby State.
In the Idle State, the device functions just like it
does when in the Operating State. However, the
CPU clock is halted while it waits for an event
such as a key press to generate an interrupt. The
PLL (in 18.432–73.728 MHz mode) or the external 13 MHz clock source always remains active
in the Idle State.
3.2.3Keyboard Interrupt
For the case of the keyboard interr upt, the following options are available and are selectable
according to bits 1 and 3 of the SYSCON2 regis-
ter (refer to the SYSCON2 Register Description
for details).
•If the KBWEN bit (SYSCON2 bit 3) is set
low, then a keypress will cause a transition
from a power saving state only if the keyboard interrupt is non-masked (i.e., the interrupt mask register 2 (INTMR2 bit 0) is high).
•When KBWEN is high, a keypress will cause
the device to wake up regardless of the state
of the interrupt mask register. This is called
the “Keyboard Direct Wakeup’ mode. In this
mode, the interrupt request may not get serviced. If the interrupt is masked (i.e., the interrupt mask register 2 (INTMR2 bit 0) is
low), the processor simply starts re-executing code from where it left off before it entered the power saving state. If the interrupt
is non-masked, then the processor will service the interrupt.
•When the KBD6 bit (SYSCON2 bit 1) is low,
all 8 of Port A inputs are OR’ed together to
produce the internal wakeup signal and keyboard interrupt request. This is the default reset state.
•When the KBD6 bit (SYSCON2 bit 1) is
high, only the lowest 6 bits of Port A are
OR’ed together to produce the internal wakeup signal and keyboard interrupt request. The
two most significant bits of Port A are available as GPIO when this bit is set high.
In the case where KBWEN is low and the
INTMR2 bit 0 is low, it will only be possible to
wakeup the device by using the external WAKEUP pin or another enabled interrupt source. The
keyboard interrupt capability allows an OS to use
either a polled or interrupt-driven keyboard routine, or a combination of both.
22DS453PP2
EP7209
NOTE:The keyboard interrupt is NOT deglitched.
3.3Resets
There are three asynchronous resets to the EP7209:
nPOR, nPWRFL and nURESET. If any of these are
active, a system reset is generated internally. This
will reset all internal registers in the EP7209 except
the RTC data and match registers. These registers
are only cleared by nPOR allowing the system time
to be preserved through a user reset or power fail
condition.
Any reset will also reset the CPU and cause it to
start execution at the reset vector when the EP7209
returns to the Operating State.
Internal to the EP7209, three different signals are
used to reset storage elements. These are nPOR,
nSYSRES and nSTBY. nPOR is an external signal.
nSTBY is equivalent to the external RUN signal.
nPOR (Power On Reset, active low) is the highest
priority reset signal. When active (low), it will reset
all storage elements in the EP7209. nPOR active
forces nSYSRES and nSTBY active. nPOR will
only be active after the EP7209 is first powered up
and not during any other resets. nPOR active will
clear all flags in the status register except for the
cold reset flag (CLDFLG) bit, which is set.
nSYSRES (System Reset, active low) is generated
internally to the EP7209 if nPOR, nPWRFL or
nURESET are active. It is the second highest priority reset signal, used to asynchronously reset most
internal registers in the EP7209. nSYSRES active
forces nSTBY and RUN low. nSYSRES is used to
reset the EP7209 and force it into the Standby State
with no co-operation from software. The CPU is
also reset.
The nSTBY and RUN signals are high when the
EP7209 is in the Operating or Idle States and low
when in the Standby State . The ma in syst em c lock
is valid when nSTBY is high. The nSTBY signal
will disable any peripheral block that is clocked
from the master clock source (i.e., everything ex-
cept for the RTC). In general, a system reset will
clear all registers and nSTBY will disable all peripherals that require a main clock. The following
peripherals are always disabled by a low level on
nSTBY: two UARTs and IrDA SIR encoder, timer
counters, telephony codec, and the two SSI interfaces. In addition, when in the Standby State, the
LCD controller and PWM drive are also disabled.
When operating from an external 13 MHz oscilla tor which has become disabled in the Standby State
by using the CLKEN signal (i.e., with CLKENSL
= 0), the oscillator must be stable within 0.125 sec
from the rising edge of the CLKEN signal.
3.4Clocks
There are two clocking modes for the EP7209. Either an external clock input can be used or the onchip PLL. The clock source is selected by a strapping option on Port E, pin 2 (PE[2]). If PE[2] is
high at the rising edge of nPOR (i.e., upon power up), the external clock mode is selected. If PE[2] is
low, then the on-chip PLL mode is selected. After
power-up, PE[2] can be used as a GPIO.
The EP7209 device contains several separate sections of logic, each clocked according to its own
clock frequency requirements. When the EP7209 is
in external clock mode, the actual frequencies at
the peripherals will be different than when in PLL
mode. See each peripheral device section for more
details. The section below describes the clocking
for both the ARM720T and address/data bus.
3.4.1On-Chip PLL
The ARM720T clock can be programmed to
18.432 MHz, 36.864 MHz, 49.152 MHz or
73.728 MHz with the PLL running at twice the
highest possible CPU clock frequency
(147.456 MHz). The PLL uses an external
3.6864 MHz crystal. By chip default, the on-chip
PLL is used and configured such that the
ARM720T and address/data buses run at
18.432 MHz.
DS453PP2
23
EP7209
When the clock frequency is selected to be
36 MHz, both the ARM720T and the address/data
buses are clocked at 36 MHz. When t he clock frequency is selected higher than 36 MHz, only the
ARM720T gets clocked at this higher speed. The
address/data will be fixed at 36 MHz. The clock
frequency used is selected by programming the
CLKCTL[1:0] bits in the SYSCON3 register. The
clock frequency selection does not effect the EPB.
Therefore, all the peripheral clocks are fixed, regardless of the clock speed selected for the
ARM720T.
NOTE:After modifying the CLKCTL[1:0] bits, the
next instruction should always be a ‘NOP’.
3.4.1.1Characteristics of the PLL Interface
When connecting a crystal to the on-chip PLL interface pins (i.e. MOSCIN and MOSCOUT), the
crystal and circuit should conform to the following
requirements:
•The 3.6864 MHz frequency should be created
by the crystals fundamental tone (i.e., it should
be a fundamental mode crystal).
•A start-up resistor is not necessary, since one is
provided internally.
•Start-up loading capacitors may be placed on
each side of the external crystal and ground.
Their value should be in the range of 10 pF.
However, their values should be selected based
upon the crystal specifications. The total sum of
the capacitance of the traces between the
EP7209’s clock pins, the capacitors, and the
crystal leads should be subtracted from the
crystal’s specifications when determining the
values for the loading capacitors.
•The crystal should have a maximum 100 ppm
frequency drift over the chip’s operating temperature range.
Alternatively, a digital clock source can be used to
drive the MOSCIN pin of the EP7209. With this
approach, the voltage levels of the clock source
should match that of the Vdd supply for the
EP7209’s pads (i.e. the supply voltage level used to
drive all of the non-Vdd core pins on the EP7209).
The output clock pin (i.e., MOSCOUT) should be
left floating.
3.4.2External Clock Input (13 MHz)
An external 13 MHz crystal oscillator can be used
to drive all of the EP7209. When selected the
ARM720T and the address/data buses both get
clocked at 13 MHz. The fixed clock sources to the
various peripherals will have different frequencies
than in the PLL mode. In this configuration, the
PLL will not be used at all.
NOTE:When operating at 13 MHz, the
CLKCTL[1:0] bits should not be changed
from their default value of ‘00’.
24DS453PP2
EP7209
13 MHz
CLKEN
Figure 4. CLKEN Timing Entering the St andby State
EXPCLK
(internal)
RUN
CLKEN
Interrupt /
WAKEUP
DS453PP2
Figure 5. CLKEN Timing Entering the Standby State
25
EP7209
3.4.3Dynamic Clock Switching When in the
PLL Clocking Mode
The clock frequency used for the CPU and the buses is controlled by programming the CLKC TL[1:0]
bits in the SYSCON3 register. When this occurs,
the state controller switches from the current to th e
new clock frequency as soon as possible without
causing a glitch on the clock signals. The glitchfree clock switching logic waits until the clock that
is currently in use and the newly programmed clock
source are both low, and then switches from the
previous clock to the new clock without a glitch on
the clocks.
3.5Interrupt Controller
When unexpected events arise during the execution
of a program (i.e., interrupt or memory fault) an exception is usually generated. When these exceptions occur at the same time, a fixed priority system
determines the order in which they are handled.
Table 8 shows the priority order of all the excep-
tions.
PriorityException
HighestReset
.Data Abort
.FIQ
.IRQ
.Prefetch Abort
Lowest
Table 8. Exception Priority Handling
The EP7209 interrupt controller has two interrupt
types: interrupt request (IRQ) and fast interrupt request (FIQ). The interrupt controller has the ability
to control interrupts from 22 different FIQ and IRQ
sources. Of these, seventeen are mapped to the IRQ
input and five sources are mapped to the FIQ input.
Undefined Instruction,
Software Interrupt
FIQs have a higher priority than IRQs. If two interrupts are received from within the same group (IRQ
or FIQ), the order in which they are serviced must
be resolved in software. The priorities are listed in
Table 9. All interrupts are level sensitive; that is,
they must conform to the following sequence.
1) The interrupting device (either external or internal) asserts the appropriate interrupt.
2) If the appropriate bit is se t in the interrupt mask
register, then either a FIQ or an IRQ will be asserted by the interrupt controller. (A description for each bit in this register can be found in
INTSR1 Interrupt Status Register 1).
3) If interrupts are enabled the processor will
jump to the appropriate address.
4) Interrupt dispatch software reads the interrupt
status register to establish the source(s) of the
interrupt and calls the appropriate interrupt service routine(s).
5) Software in the interrupt service routine will
clear the interrupt source by some action specific to the device requesting the interrupt (i.e.,
reading the UART RX register).
The interrupt service routine may then re-enable interrupts, and any other pending interrupts will be
serviced in a similar way. Alternately, it may re turn
to the interrupt dispatch code, which can check for
any more pending interrupts and dispatch them accordingly. The “End of Interrupt” type interrupts
are latched. All other interrupt sources (i.e., external interrupt source) must be held active until its respective service routine starts executing. See ‘Endof Interrupt’ Locations for more details.
The ARM720T processor checks for a low level on
its FIQ and IRQ inputs at the end of each instruction. The interrupt latency is therefore directly related to the amount of time it takes to complete
execution of the current inst ruction whe n the interrupt condition is detected. First, there is a one to
two clock cycle synchronization penalty. For the
case where the EP7209 is operating at 13 MHz
with a 16-bit external me mory system, and instruction sequence stored in one wait state FLASH
memory, the worst case interrupt latency is
251 clock cycles. This includes a delay for cache
line fills for instruction prefetches, and a data abort
occurring at the end of the LDM instruction, and
the LDM being non-quad word aligned. In addition, the worst-case interrupt latency assumes that
LCD DMA cycles to support a panel size of 320 x
240 at 4 bits-per-pixel, 60 Hz refresh rate, is in
progress.
This would give a worst-case interrupt latency of
about 19.3 µs for the ARM720T processor operating at 13 MHz in this system. For those interrupt
inputs which have de-glitching, this figure is increased by the maximum time required to pass
through the deglitcher, which is approximately 125
µs (2 cycle of the 16.384 kHz clock derived from
the RTC oscillator). This would create an absolute
worst case latency of approximately 141 µs. If the
ARM720T is run at 36 MHz or greater and/or
32 bit wide external memory, the 19.3 µs value will
be reduced.
All the serial data transfer peripherals included in
the EP7209 (except for the master-only SSI1) have
local buffering to ensure a reasonable interrupt latency response requirement for the OS of 1 ms or
less. This assumes that the maximum data rates described in this specification are complied with. If
the OS cannot meet this requirement, there will be
a risk of data over/underflow occurring. Idle State
When leaving the Idle State as a result of an interrupt, the CPU clock is restarted after approximately
two clock cycles. However, there is still potentia lly
up to 20 µsec latency as described in the first section above, unless the code is written to include at
least two single cycle instructions immediately after the write to the IDLE register (in which c ase the
latency drops to a few microseconds). This is important, as the Idle State can only be left because of
a pending interrupt, which has to be synchronized
by the processor before it can be serviced.
3.5.1.2Standby State
In the Standby State, the latency will depend on
whether the system clock is shut down and if the
FASTWAKE bit in the SYSCON3 register is set. If
the system is configured to run from the internal
PLL clock, then the PLL will always be shut down
when in the Standby State. In this case, if the
FASTWAKE bit is cleared, then there will be a latency of between 0.125 sec to 0.25 sec. If the
FASTWAKE bit is set, then there will be a latency
of between 250 µsec to 500 µsec. If the system is
running from the external clock (at 13 MHz), with
the CLKENSL bit in SYSCON2 set to 0, then the
latency will also be between 0.125 sec and 0.25 sec
to allow an external oscillator to stabilize. In the
case of a 13 MHz system where the clock is not disabled during the Standby State (CLKENSL = 1),
then the latency will be the same as descri bed in the
Idle State section above.
Whenever the EP7209 is in the Standby State, the
external address and data buses are driven low. The
RUN signal is used internally to force these buses
to be driven low. This is done to prevent peripherals that are power-down from draining current. Also, the internal peripheral’s signals get set to their
Reset State.
28DS453PP2
EP7209
Table 12 summarizes the five external interrupt
sources and the effect they have on the processor
interrupts.
3.6 EP7209 Boot ROM
The 128 bytes of on-chip Boot ROM contain a instruction sequence that initializes the device and
then configures UART1 to receive 2048 bytes of
serial data that will then be placed in the on-chip
SRAM. Once the download is complete, execution
jumps to the start of the on-chip SRAM. This
would allow, for example, code to be downloaded
to program system FLASH during a product’s
manufacturing process. See Appendix A: BootCode for details of the ROM Boot Code with com-
ments to describe the stages of execution.
Selection of the Boot ROM option is determined by
the state of the nMEDCHG pin during a power on
reset. If nMEDCHG is high while nPOR is active,
then the EP7209 will boot from an external memory device connected to CS[0] (normal boot mode).
If nMEDCHG is low, then the boot will be from the
on-chip ROM. Note that in both cases, following
the de-assertion of power on reset, the EP7209 will
be in the Standby State and requires a low-to-high
transition on the external WAKEUP pin in order to
actually start the boot sequence.
The effect of booting from the on-chip Boot ROM
is to reverse the decoding for all chip selects internally. Table 13 shows this decoding. The control
signal for the boot option is latched by nPOR,
which means that the remapping of addresses and
bus widths will continue to apply until nPOR is asserted again. After booting from the Boot ROM,
the contents of the Boot ROM can be read back
from address 0x00000000 onwards, and in normal
state of operation the Boot ROM contents can be
read back from address range 0x70000000.
Address Range Chip Select
0000.0000–0FFF.FFFFCS[7]
(Internal only)
1000.0000–1FFF.FFFFCS[6]
(Internal only)
2000.0000–2FFF.FFFFnCS[5]
3000.0000–3FFF.FFFFnCS[4]
4000.0000–4FFF.FFFFnCS[3]
5000.0000–5FFF.FFFFnCS[2]
6000.0000–6FFF.FFFFnCS[1]
7000.0000–7FFF.FFFFnCS[0]
Table 13. Chip Select Address Ranges After Boot From
On-Chip Boot ROM
Interrupt
Pin
nEXTFIQNot deglitched; must be
nEINT1–2N ot degl itc hedWorst case latency
EINT3Not deglitchedWorst case latency
nMEDCHGDeglitched by 16 kHz
DS453PP2
Input StateOperating State
Worst case latency
active for 20 µs to be
detected
clock; must be active
for at least 125 µs to be
detected
of 20 µsec
of 20 µsec
of 20 µsec
Worst case latency
of 141 µsec
Table 12. External Interrupt Source Latencies
Latency
Idle State
Latency
Worst case
20 µsec: if only
single cycle
instructio ns, less
than 1 µsec
As aboveAs above
As aboveAs above
Worst case
80 µsec: if only
single cycle
instructions,
125 µsec
Including PLL/osc. settling time, approx.
0.25 sec when FASTWAKE = 0, or
approx. 500 µsec when F ASTWAKE = 1,
or = Idle State if in 13 MHz mode with
CLKENSL set
As above (note difference if in 13 MHz
mode with CLKENSL set)
Standby State Latency
29
EP7209
3.7Memory and I/O Expansion Interface
Six separate linear memory or expansion segments
are decoded by the EP7209, two of which can be reserved for two PC Card cards, each interfacing to a
separate single CL-PS6700 device. Each segment
is 256 Mbytes in size. Two additional segments
(i.e., in addition to these six) are dedicated to the
on-chip SRAM and the on-chip ROM. The on-chip
ROM space is fully decoded, and the SRAM space
is fully decoded up to the maximum size of the video frame buffer programmed in the LCDCON register (128 kbytes). Beyond this address range the
SRAM space is not fully decoded (i.e., any accesses beyond 128 kbyte range get wrapped around to
within 128 kbyte range). Any of the six segments
are configured to interface to a conventional
SRAM-like interface, and can be individually programmed to be 8-, 16-, or 32-bits wide, to support
page mode access, and to execute f rom 1 to 8 wait
states for non-sequential accesses and 0 to 3 for
burst mode accesses. The zero wait state sequential
access feature is designed to support burst mode
ROMs. For writable memory devices which use the
nMWE pin, zero wait state sequential accesses are
not permitted and one wait state is the minimum
which should be programmed in the sequential
field of the appropriate MEMCFG register. Bus cycles can also be extended using the EXPRDY input
signal.
Page mode access is accomplished by setting
SQAEN = 1, which enables accesse s of the form
one random address followed by three sequential
addresses, etc., while keeping nCS asserted. These
sequential bursts can be up to four words long be-
fore nCS is released to allow DMA and refreshes to
take place. This can significantly improve bus
bandwidth to devices such as ROMs which support
page mode. When SQAEN = 0, all accesses to
memory are by random access without nCS being
de-asserted between accesses. Again nCS is de-asserted after four consecutive accesses to allow
DMAS.
Bits 5 and 6 of the SYSCON2 register independently enable the interfaces to the CL-PS6700 (PC Card
slot drivers). When either of these interfaces are enabled, the corresponding chip select (nCS4 and/or
nCS5) becomes dedicated to that CL-PS6700 interface. The state of SYSCON2 bit 5 determines the
function of chip select nCS4 (i.e., CL-PS6700 interface or standard chip select functionality); bit 6
controls nCS5 in a similar way. There is no interaction between these bits.
For applications that require a display buffer smaller than 38,400 bytes, the on-chip SRAM can be
used as the frame buffer.
The width of the boot device can be chosen by selecting values of PE[1] and PE[0] during power on
reset. These inputs are latched by the rising edge of
nPOR to select the boot option.
PE[1]PE[0]Boot Block
(nCS0)
0032-bit
018-bit
1016-bit
11Undefined
Table 14. Boot Options
30DS453PP2
EP7209
3.8CL-PS6700 PC Card Controller
Interface
Two of the expansion memory areas are dedicated
to supporting up to two CL-PS6700 PC Card controller devices. These are selected by nCS4 and
nCS5 (once enabled by bits 5 and 6 of SYSCON2).
For efficient, low power operation, both address
and data are carried on the lower 16 bits of the
EP7209 data bus. Accesses are initiated by a write
or read from the area of memory allocated for nCS4
or nCS5. The memory map within each of these areas is segmented to allow different types of PC
Card accesses to take place, for att ribute, I/O, and
common memory space. The CL-PS6700 int ernal
registers are memory mapped within the address
space as shown in Table 15.
NOTE:It must be noted that, due to the operating
speed of the CL-PS6700, this interface is
supported only for processor speeds of
13 and 18 MHz.
A complete description of the protocol a nd AC timing characteristics can be found in the CL-PS6700
data sheet. A transaction is initiated by an ac cess to
the nCS4 or nCS5 area. The chip select is asserted,
and on the first clock, the upper 10 bits of the PC
Card address, along with 6 bits of size, space, and
slot information are put out onto the lower 16 bits
of the EP7209’s data bus. Only word (i.e., 4-byte)
and single-byte accesses are supported, and the slot
field is hardcoded to 11, since the slot field is defined as a ‘Reserved field’ by the CL-PS6700. The
chip selects are used to select the device to be accessed. The space field is made directly from the
A26 and A27 CPU address bits, according to the
decode shown in Table 16. The size field is forced
to 11 if a word access is required, or to 00 if a byte
access is required. This avoids the need to configure the interface after a reset. On the second clock
cycle, the remaining 16 bits of the PC Card address
are multiplexed out onto the lower 16 bits of the
data bus. If the transaction selected is a CL-PS6700
register transaction, or a write to the PC Card (assuming there is space available in the CL-PS6700’s
internal write buffer) then the access will continue
on the following two clock cycles. During these
following two clock cycles the upper and lower
halves of the word to be read or written will be put
onto the lower 16 bits of the main data bus.
The ‘ptype’ signal on the CL-PS6700s should be
connected to the EP7209’s WRITE output pin.
During PC Card accesses, the polarity of this pin
changes and it becomes low to signify a write and
high to signify a read. It is valid with the first half
word of the address. During the second half word
of the address it is always forced high to indicate to
the CL-PS6700 that the EP7209 has initiated either
the write or read.
The PRDY signals from each of the two CLPS6700 devices are connected to Port B bits 0 and
1, respectively. When the PC CARD1 or PC
CARD2 control bits in the SYSCON2 register are
Access TypeAddresses for CL-PS6700 Interface 1Addresses for CL-PS6700 Interface 2
Attribute0x40000000–0x43FFFFFF0x50000000– 0x53FFFFFF
I/O0x44000000–0x47FFFFFF0x54000000–0x57FFFFFF
Common memory0x48000000–0x4BFFFFFF0x58000000–0x5BFFFFFF
CL-PS6700 registers0x4C000000–0x4FFFFFFF0x5C000000–0x5FFFFFFF
Table 15. CL-PS6700 Memory Map
DS453PP2
31
EP7209
de-asserted, these port bits are available for GPIO.
When asserted, these port bits are used as the
PRDY signals. When the PRDY signal is de-asserted (i.e., low), it indicates that the CL-PS6700 is
busy accessing its card. If a PC CARD access is attempted while the device is busy, the PRDY signal
will cause the EP7209’s CPU to be stalled. The
EP7209’s CPU will have to wait for the card to become available. DMA transfers to the LCD can still
continue in the background during this period of
time (as described below). The EP7209 can access
the registers in the CL-PS6700, regardless of the
state of the PRDY signal. If the EP7209 needs to
access the PC CARD via the CL-PS6700, it waits
until the PRDY signal is high before initiating a
transfer request. Once a request is sent, the PRDY
signal indicates if data is available.
In the case of a PC Card write, writes can be posted
to the CL-PS6700 device, with the same timing as
CL-PS6700 internal register writes. Writes will
normally be completed by the CL-PS6700 device
independent of the EP7209 processor activity. If a
posted write times out, or fails to complete for any
other reason, then the CL-PS6700 will issue an interrupt (i.e., a WR_FAIL interrupt). In the case
where the CL-PS6700 write buffer is already full,
the PRDY signal will be de-asserted (i.e., driven
low) and the transaction will be stalled pending an
available slot in the buffer. In this case, the
EP7209’s CPU will be stalled until the write can be
posted successfully. While the PRDY signal is deasserted, the chip select to the CL-PS6700 will be
de-asserted and the main bus will be released so
that DMA transfers to the LCD controller can continue in the background.
In the case of a PC Card read, the PRDY signal
from the CL-PS6700 will be de-asserted until the
read data is ready. At this point, it will be reasserted
and the access will be completed in the same way
as for a register ac cess. In the ca se of a byte ac cess,
only one 16-bit data transfer will be required to
complete the access. While the PRDY signal is deasserted, the chip select to the CL-PS6700 will be
de-asserted and the main bus will be released so
that DMA transfers to the LCD controller can continue in the background.
The EP7209 will re-arbitrate for control of the bus
when the PRDY signal is reasserted to indicate tha t
the read or write transaction can be completed. The
CPU will always be stalled until the PC Card access is completed.
A card read operation may be split into a request
cycle and a data cycle, or it may be combined into
a single request/data transfer cycle. This depends
on whether the data requested from the card is
available in the prefetch buffer (internal to the CLPS6700).
The request portion of the cycle, for a card read, is
similar to the request phase for a card write (described above). If the requested data is available in
the prefetch buffer, the CL-PS6700 asserts the
PRDY signal before the rising edge of the third
clock and the EP7209 continues the cycle to read
the data. Otherwise, the PRDY signal is de-asserted
and the request cycle is stalled. The EP7209 may
Space Field ValuePC CARD Memory Space
00Attribute
01I/O
10Common memory
11CL-PS6700 registers
Table 16. Space Field Decoding
32DS453PP2
EP7209
then allow the DMA address generator to gain control of the bus, to allow LCD refreshes to continu e.
When the CL-PS6700 is ready with the data, it asserts the PRDY signal. The EP7209 then arbitrates
for the bus and, once the request is granted, the suspended read cycle is resumed. The EP7209 resumes the cycle by asserting the appropriate chip
select, and data is transferred on the next two
clocks if a word read (one clock if a byte read).
There is no support within the EP7209 for detecting
time-outs. The CL-PS6700 device must be programmed to force the cycle to be completed (with
invalid data for a read) and then generate an interrupt if a read or write access has timed out (i.e.,
RD_FAIL or WR_FAIL interrupt). The system
software can then determine which access was not
successfully completed by reading the status registers within the CL-PS6700.
The CL-PS6700 has support for DMA data transfers. However, DMA is supported only by software
emulation because the DMA address generator
built into the EP7209 is dedicated to the LCD controller interface. If DMA is enabled within the CLPS6700, it will assert its PDREQ signal to make a
DMA request. This can be connected to one of the
EP7209’s external interrupts and be used to interrupt the CPU so that the software can service the
DMA request under program control.
Each of the CL-PS6700 devices can generate an interrupt PIRQ. The PIRQ output is open drain on the
CL-PS6700 devices, so if there are two CL-PS6700
devices they may be wire OR’ed to the same interrupt which can be connected to one of the
EP7209’s active low external interrupt sources. On
the receipt of an interrupt, the CPU can re ad the interrupt status registers on the CL-PS6700 devices
to determine the cause of the interrupt.
All transactions are synchronized to the EXPCLK
output from the EP7209 in 18.432 MHz mode or
the external 13 MHz clock. The EXPCLK should
be permanently enabled, by setting the EXCKEN
bit in the SYSCON1 register, when the CL-PS6700
is used. The reason for this is that the PC Card interface and CL-PS6700 internal write buffers need
to be clocked after the EP7209 has completed its
bus cycles.
A GPIO signal from the EP7209 can be connected
to the PSLEEP pin of the CL-PS6700 devices to allow them to be put into a power saving state before
the EP7209 enters the Standby State. It is essential
that the software monitor the appropriate status
registers within the CL-PS6700s to ensure that
there are no pending posted bus transactions before
the Standby State is entered. Failure to do this will
result in incomplete PC Card accesses.
3.9Endianness
The EP7209 uses a Little Endian configuration for
internal registers. However, it is possible to connect the device to a Big Endian external memory
system. The Big-endian/Little-endian bit in the
ARM720T control register sets whether the
EP7209 treats words in memory as being stored in
Big Endian or Little Endian format. Memory is
viewed as a linear collection of bytes numbered upwards from zero. Bytes 0 to 3 hold the first stored
word, bytes 4 to 7 the second, and so on. In the Little Endian scheme, the lowest numbered byte in a
word is considered to be the least significant byte
of the word and the highest numbered byte is the
most significant. Byte 0 of the memory system
should be connected to data lines 7 through 0
(D[7:0]) in this scheme. In the Big Endian scheme
the most significant byte of a word is stored at the
lowest numbered byte, and the least significant
byte is stored at the highest numbered byte. Therefore, Byte 0 of the memory system should be c onnected to data lines 31 through 24 (D[31:24]). Load
and store are the only instructions affected by the
Endianness.
Tables 17 and 18 demonstrate the behavior of the
EP7209 in Big and Little Endian mode, including
the effect of performing non-aligned word access-
DS453PP2
33
EP7209
es. The register definition section of this specification defines the behavior of the internal EP7209
registers in the Big Endian mode in more de tail. For
further information, refer to ARM Application Note61, Big and Little Endian Byte Addressing.
3.10Internal UARTs (Two) and SIR
Encoder
The EP7209 contains two built-in UARTs that offers similar functionality to National Semiconductor’s 16C550A device. Both UARTs can support
bit rates of up to 115.2 kbits/s and include two 16byte FIFOs: one for receive and one for transmit.
One of the UARTs (UART1) supports the three
modem control input signals CTS, DSR and DCD.
The additional RI input, and RTS and DTR output
modem control lines are not explicitly supported
but can be implemented using GPIO ports in the
EP7209. UART2 has only the RX and TX pins.
UART operation and line speeds are controlled by
the UBLCR1 (UART bit rate and line control).
Three interrupts can be generated by UART1: RX,
TX, and modem status interrupts. Only two can be
generated by UART2: RX and TX. The RX interrupt is asserted when the RX FIFO becomes half
full or if the FIFO is non-empty for longer than
three character length times with no more characters being received. The TX interrupt is asserted if
the TX FIFO buffer reaches half empty. The modem status interrupt for UART1 is generated if any
of the modem status bits change state. Framing and
parity errors are detected as ea ch byte is received
and pushed onto the RX FIFO. An overrun error
generates an RX interrupt immediately. All error
bits can be read from the 11-bit wide da ta re gister.
The FIFOs can also be programmed to be one byte
depth only (i.e., like a conventional 16450 UART
with double buffering).
The EP7209 also contains an IrDA (Infrared Data
Association) SIR protocol encoder as a post-processing stage on the output of UART1. This encod-
er can be optionally switched in to the TX and RX
signals of UART1, so that these can be used to
drive an infrared interface dire ctly. If the SIR pr otocol encoder is enabled, the UART TXD1 line is
held in the passive state and transitions of the
RXD1 line will have no effect. The IrDA output pin
is LEDDRV, and the input from the photodiode is
PHDIN. Modem status lines will cause an interrupt
(which can be masked) irrespective of whether the
SIR interface is being used.
Both the UARTs operate in a similar manner to the
industry standard 16C550A. When CTS is deasserted on the UART, the UART does not stop shifting the data. It relies on software to take
appropriate action in response to the interrupt generated.
Baud rates supported for both the UARTs are dependent on frequency of operation. When operating from the internal PLL, the interface supports
various baud rates from 115.2 kbps downwards.
The master clock frequency is chosen so that most
of the required data rates are obtainable exactly.
When operating with a 13.0 MHz external clock
source, the baud rates generated will have a slight
error, which is less than or equal to 0.75%. The
rates obtainable from the 13 MHz clock include
9.6 k, 19.2 k, 38 k, 58 k and 115.2 kbps. See
UBRLCR1-2 UART1-2 Bit Rate and Line Control
Registers for full details of the available bit rates in
the 13 MHz mode.
3.11Serial Interfaces
In addition to the two UARTs, the EP7209 offers
the following serial interfaces shown in Table 19.
The inputs/outputs of three of the serial interfaces
(DAI, codec, and SSI2) are multiplexed onto a single set of external interface pins. If the DAISEL bit
of SYSCON3 is low, then either SSI2 or the codec
interface will be selected to connect to the external
pins. When bit 0 of SYSCON2 (SERSEL) is high,
then the codec is connected to the external pins,
when low the master/slave SSI2 is connected to
34DS453PP2
EP7209
these pins. When the DAISEL bit is set high, the
DAI interface is connected to the external pins. On
power up, both the DAISEL and SERSEL bits are
reset low, thus the master/slave SSI2 will be connected to these pins (and configured for slave mode
operation to avoid external drive clashes).
T y peComments Referred To As Max. Transfer Speed
SPI/Microwire 1Master mode only
SPI/Microwire 2Master/slav e mode
DAI InterfaceCD quality DACs and ADCs
Codec InterfaceOnly for use in the PLL clock mode
Table 19. Serial Interface Options
Table 20 contains pin definition information for the
three multiplexed interfaces.
The internal names given to each of the t hree inter-
faces are unique to help differentiate them from
each other. The sections below that describe each
of the three interfaces will use their respective
unique internal pin names for clarity.
The codec interface allows direct connection of a
telephony type codec to the EP7209. It provides all
the necessary clocks and timing pulses and performs a parallel to serial conversion or vice versa
on the data stream to or from the external codec device. The interface is full duplex and contains two
separate data FIFOs (16 deep by 8-bits wide, one
for the receive data, another for the transmit data).
Data is transferred to or from the codec at
64 kbits/s. The data is either written to or read from
the appropriate 16 byte FIFO. If enabled, a codec
interrupt (CSINT) will be generated after every
8 bytes are transferred (FIFO half full/empty). This
means the interrupt rate will be every 1 msec, with
a latency of 1 msec.
Transmit and receive modes are enabled by asserting high both the CDENRX and CDENTX codec
enable bits in the SYSCON1 register.
NOTE:Both the CDENRX and CDENTX enable bits
should be asserted in tandem for data to be
transmitted or received. The reason for this
is that the interrupt generation will occur
1 msec after on e of the FIFOs is ena bled.
For example: If the receive FIFO gets
enabled first and the transmit FIFO at a later
time, the interrupt will occur 1 msec after the
receive FIFO is enabled. After the first interrupt occurs, the receive FIFO will be half full.
However, it will not be possible to know how
full the transmit FIF O will be since it was
enabled at a later time. Thus, it is possible to
unintentionally overwrite data already in the
transmit FIFO (See Figure 6).
After the CDENRX and CDENTX enable bits get
asserted, the corresponding FIFOs become enabled. When both FIFOs are disabled, the FIFO status flag CRXFE is set and CT XFF is clea red so that
the FIFOs appear empty. Additionally, if the
CDENTX bit is low, the PCMOUT output is disabled. Asserting either of the two enable bits causes
the sync and interrupt generation logic to become
active; otherwise they are disabled to conserve
power.
CDENRX
CDENTX
CSINT
1 ms
Interrupt occurs
Figure 6. Codec Interrupt Timing
36DS453PP2
1 ms
Interrupt occurs
1 ms
Interrupt occurs
EP7209
Data is loaded into the transmit FIFO by writing to
the CODR register. At the beginning of a transmit
cycle, this data is loaded into a shift/load register.
Just prior to the byte being transferred out, PCMSYNC goes high for one PCMCLK cycle. Then the
data is shifted out serially to PCMOUT, MSB first,
(with the MSB valid at the same time PCMSYNC
is asserted). Data is shifted on the rising edge of the
PCMCLK output.
Receiving of data is performed by taking data in serially through PCMIN, again MSB first, shifting it
through the shift/load register and loading the complete byte into the receive FIFO. If there is no data
available in the transmit FIFO, then a zero will be
loaded into the shift/load register. Input data is
sampled on the falling edge of PCMCLK. Data is
read from the CODR register.
3.11.2Digital Audio Interface
The DAI interface provides a high quality digital
audio connection to DAI compatible audio devices.
The DAI is a subset of I2S audio format that is supported by a number of manufacturers.
The DAI interface produces one 128-bit frame at
the audio sample frequency using a bit clock and
frame sync signal. Digital audio data is transferred,
full duplex, via separate transmit and receive data
lines. The bit clock frequency is either fixed at
9.216 MHz or set via an externally supplied MCLK
signal.
The DAI interface contains separat e transmit and
receive FIFO’s. The transmit FIFO’s are 8 audio
samples deep and the receive FIFO’s are 12 audio
samples deep.
7209
SDIN
SCLK
LRCK
SDOUT
MCLK
DAI ADC
SCLK
LRCK
SDATA
MCLK
DAI DAC
SCLK
LRCK
SDATA
MCLK
CLOCK
GEN
DS453PP2
Figure 7. DAI Interface
37
EP7209
3.11.2.1DAI Operation
Following reset, the DAI logic is disabled. To enable the DAI, the applications program should first
clear the emergency underflow and overflow status
bits, which are set following the reset, by writing a
1 to these register bits (in the DAISR register).
Next, the DAI control register should be programmed with the desired mode of operation using
a word write. The transmit FIFOs can either be
“primed” by writing up to eight 16-bit values each,
or can be filled by the normal interrupt service routine which handles the DAI FIFOs. Finally, the
FIFOs for each channel must be enabled via writes
to DAIDR2. At this point, transmission/reception
of data begins on the transmit (SDOUT) and receive (SDIN) pins. This is synchronously controlled by the 9.216 MHz (6.5 MHz in 13 MHz
mode) internal clock or the externally supplied bit
clock (SCLK), and the serial frame clock (LRCK).
3.11.2.2DAI Frame Format
Each DAI frame is 128 bits long and is comprises
one audio sample. Of this 128-bit frame, only
32 bits are actually used for digital audio data. The
remaining bits are output as zeros. The LRCK signal is used as a frame synchronization signal. Each
transition of LRCK delineates the left and right
halves of an audio sample. When LRCK transitions from high to low the next 16-bits make up the
left side of an audio sample. When LRCK transi-
tions from low to high the next 16-bits m ake up the
right side of an audio sample.
3.11.2.3DAI Signals
MCLKoversampled clock. Used as a n in-
put to the EP7209 for generating the
DAI timing. This signal is also usually used as an input to a DAC/ADC
as an oversampled clock. This signal is fixed at 256 times the audio
sample frequency.
SCLKbit clock. Used as the bit clock input
into the DAC/ADC. This signal is
fixed at 128 times the audio sample
frequency.
LRCKframe sync. Used as a frame syn-
chronization input to the
DAC/ADC. This signal is fixed at
the audio sample frequency. This
signal is clocked out on the negative
going edge of SCLK.
SDOUTdigital audio data out. Used for
sending playback data to a DAC.
This signal is clocked out on the
negative going edge of the SCLK
output.
SDINdigital audio input. Used for receiv-
ing record data from an ADC. This
signal is latched by the EP7209 on
the positive going edge of SCLK.
Figure 8. EP7 209 Rev C - Digital Audio Interface Timing – MSB/Left Justified format
Left Channel
LSB
LSB
MSB
MSB
-1 -2 -3 -4
RightChannel
+3 +2 +1+5 +4
LSB
LSB
EP7209
3.1 1.3ADC Interface — Master Mode Only
SSI1 (Synchronous Serial Interface)
The first synchronous serial interface allows interfacing to the following peripheral devices:
•In the default mode, the device is compatible
with the MAXIM MAX148/9 in external clock
mode. Similar SPI or Microwire compatible devices can be connected directly to the EP7209.
•In the extended mode and with negative-edge
triggering selected (the ADCCON and ADCCKNSEN bits are set, respectively, in the
SYSCON3 register), this device can be interfaced to Analog Devices’ AD7811/12 chip using nADCCS as a common RFS/TFS line.
•Other features of the devices, including power
management, can be utilized by software and
the use of the GPIO pins.
The clock output frequency is programmable and
only active during data transmissions to save power. There are four output frequencies selectable,
which will be slightly different depending whether
the device is operating in a 13 MHz mode or a
18.432 MHz–73.728 MHz mode (see Table 21).
The required frequency is selected by programming the corresponding bits 16 and 17 in the
SYSCON1 register. The sample clock (SMPCLK)
always runs at twice the frequency of the shift
clock (ADCCLK). The output channel is fed by an
8-bit shift register when the ADCCON bit of
SYSCON3 is clear. When ADCCON is set, up to
16 bits of configuration command can be sent, as
specified in the SYNCIO register. The input channel is captured by a 16-bit shift register. The clock
and synchronization pulses are activated by a write
to the output shift register. During transfers the
SSIBUSY (synchronous serial interface busy) bit
in the system status flags register is set. When the
transfer is complete and valid data is in the 16-bit
read shift register, the SSEOTI inte rrupt is a sserted
and the SSIBUSY bit is cleared.
An additional sample clock (SMPCLK) can be enabled independently and is set at twice the transfer
clock frequency.
This interface has no local buffering capability and
is only intended to be used with low bandwidth interfaces, such as for a touch-screen ADC interface.
3.11.4Master/Slave SSI2 (Synchronous
Serial Interface 2)
A second SPI/Microwire interface with full master/slave capability is provided by the EP7209.
Data rates in slave mode are theoretically up to
512 kbits/s, full duplex, although continuous operation at this data rate will give an interrupt rate of
2 kHz, which is too fast for many operating systems. This would require a worst case interrupt response time of less than 0.5 msec and would cause
loss of data through TX underruns and RX overruns.
SYSCON1
bit 17
DS453PP2
SYSCON1
bit 16
004.24
0116.916
1067.764
11135.4128
Table 21. ADC Interface Operation Frequencies
13.0 MHz Operation ADCCLK
Frequency (kHz)
18.432–73.728 MHz Operation
ADCCLK Frequency (kHz)
39
EP7209
The interface is fully capable of being clocked at
512 kHz when in slave mode. However, it is anticipated that external hardware will be used to frame
the data into packets. Therefore, although the data
would be transmitted at a rate of 512 kbits/s, the
sustained data rate would in fact only be
85.3 kbits/s (i.e., 1 byte every 750 µsec). At this
data rate, the required interrupt rate will be greater
than 1 msec, which is acceptable.
There are separate half-word-wide RX and TX
FIFOs (16 half-words each) and corresponding interrupts which are generated when the FIFO’s are
half-full or half-empty as appropriate. The interrupts are called SS2RX and SS2TX, respectively.
Register SS2DR is used to access the FIFOs.
There are five pins to support this SSI port: SSIRXDA, SSITXFR, SSICLK, SSITXDA, and SSIRX FR. The SSICLK, SSIRXDA, SSIRXFR, and
SSITXFR signals are inputs and the SSITXDA signal is an output in slave mode. In the master mode,
SSICLK, SSITXDA, SSITXFR, and SSIRXFR are
outputs and SSIRXDA is an input. Master mode is
enabled by writing a one to the SS2MAEN bit
(SYSCON2[9]). When the mast er/slave SSI is not
required, it can be disabled to save power by writing a zero to the SS2TXEN and the SS2RXEN bits
(SYSCON2[4] [7]). When set, these two bits inde-
pendently enable the transmit and receive sides of
the interface.
The master/slave SSI is synchronous, full duplex,
and capable of supporting serial data transfers between two nodes. Although the interface is byteoriented, data is loaded in blocks of two bytes at a
time. Each data byte to be transferred is marked by
a frame sync pulse, lasting one clock period, and
located one clock prior to the first bit being transferred. Direction of the SSI2 ports, in slave and
master mode, is shown in Figure 9.
Data on the link is sent MSB first and coincides
with an appropriate frame sync pulse, of one clock
in duration, located one clock prior to the first data
bit sent (i.e., MSB). It is not possible to send data
LSB first.
When operating in master mode, the clock frequency is selected to be the same as the ADC interface’s
(master mode only SSI1) — that is, the frequencies
are selected by the same bits 16 and 17 of the
SYSCON1 register (i.e., the ADCKSEL bits).
Thus, the maximum frequency in master mode is
128 kbits/s. The interface will support continuous
transmission at this rate assuming that the OS can
respond to the interrupts within 1 msec to prevent
over/underruns.
Slave 7209
SSIRXFR
SSITXFR
SSICLK
SSIRXDA
SSITXDA
Figure 9. SSI2 Port Directions in Slave and Master Mode
40DS453PP2
Master 7209
SSIRXFR
SSITXFR
SSICLK
SSITXDA
SSIRXDA
EP7209
Address
(W/B)
Data in
Memory
(as seen
by the
EP7209)
Word + 0 (W) 11223344
Word + 1 (W) 11223344
Word + 2 (W) 11223344
Word + 3 (W) 11223344
Word + 0 (H) 11223344
Word + 1 (H) 11223344
Word + 2 (H) 11223344
Word + 3 (H) 11223344
Word + 0 (B) 11223344
Word + 1 (B) 11223344
Word + 2 (B) 11223344
Word + 3 (B) 11223344
Word + 0 (W)11223344
Word + 1 (W)11223344
Word + 2 (W)11223344
Word + 3 (W)11223344
Word + 0 (H)11223344
Word + 1 (H)11223344
Word + 2 (H)11223344
Word + 3 (H)11223344
Word + 0 (B)11223344
Word + 1 (B)11223344
Word + 2 (B)11223344
Word + 3 (B)11223344
Table 18. Effect of Endianness on Write Operations
Byte Lanes to Memory/Ports/Registers
Big Endian MemoryLittle Endian Memory
DS453PP2
41
EP7209
NOTE:To allow synchronization to the incoming
slave clock, the interface enable bits will not
take effect until one SSICLK cycle after they
are written a nd the value read back from
SYSCON2. The enable bits reflect the real
status of the enables internally. Hence, there
will be a delay b efore the new value programmed to the enable bits can be read
back.
The timing diagram for this interface can be found
in the AC Characteristics section of this document.
3.11.4.1Read Back of Residual Data
All writes to the transmit FIFO must be in halfwords (i.e., in units of two bytes at a time). On the
receive side, it is possible that an odd number of
bytes will be received. Bytes are always loaded into
the receive FIFO in pairs, so in the case of a single
residual byte remaining at the end of a transmission, it will be necessary for the software to read the
byte separately. This is done by reading the status
of two bits in the SYSFLG2 register to determine
the validity of the residual data. These two bits
(RESVAL, RESFRM) are both set high when a residual is valid; RESVAL is cleared on either a new
transmission or on reading of the residual bit by
software. RESFRM is cleared only on a new transmission. By popping the residual byte into the RX
FIFO and then reading the status of these bits it is
possible to determine if a residual bit has been correctly read.
will have been stored in the most significant byte of
the next half-word to be clocked into the FIFO.
NOTE:All the writes/reads to the FIFO are done
word at a time (data on the lower 16 bits is
valid and upper 16 bits are ignored).
Software manually pops the residual byte into the
RX FIFO by writing to the SS2POP location (the
value written is ignored). This write will strobe the
RX FIFO write signal, causing the residual byte to
be written into the FIFO.
3.11.4.2Support for Asymmetric Traffic
The interface supports asymmetric traffic (i.e., unbalanced data flow). This is accomplished through
separate transmit and receive frame sync control
lines. In operation, the receiving node receives a
byte of data on the eight clocks following the assertion of the receive frame sync c ontrol line. In a similar fashion, the sending node can transmit a byte of
data on the eight clocks following the assertion of
the transmit frame sync pulse. There is no correlation in the frequency of assertions of the RX and
TX frame sync control lines (SSITXFR and
SSIRXFR). Hence, the RX path may bear a greater
data throughput than the TX path, or vice versa.
Both directions, however, have an absolute maximum data throughput rate determined by the maxi-
Figure 10 illustrates this procedure. The sequence
is as follows: read the RESVAL bit, if this is a 0, no
action needs to be taken. If this is a 1, then pop the
residual byte into the FIFO by writing to the
00
Residual b it val id
11
New RX byte received
SS2POP location. Then read back the two status
bits RESVAL and RESFRM. If these bits read back
01, then the residual byte popped into the FIFO is
valid and can be read back from the SS2DR regis-
New RX byte
received
01
Pop FIFO
ter. If the bits are not 01, then there has been another transmission received since the residual read
procedure has been started. The data item that has
been popped to the top of the FIFO will be invalid
Figure 10. Residual Byte Reading
and should be ignored. In this case, the correct byte
42DS453PP2
EP7209
mum possible clock frequency, assuming that the
interrupt response of the target OS is sufficiently
quick.
3.11.4.3Continuous Data Transfer
Data bytes may be sent/received in a contiguous
manner without interleaving clocks between bytes.
The frame sync control line(s) are eight clocks
apart and aligned with the clock representing bit D0
of the preceding byte (i.e., one bit in advance of the
MSB).
3.11.4.4Discontinuous Clock
In order to save power during the idle times, the
clock line is put into a static low state. The master
is responsible for putting the link into the Idle State.
The Idle State will begin one clock, or more, after
the last byte transferred and wil l resume at least o ne
clock prior to the first frame sync assertion. To disable the clock, the TX section is turned off.
In Master mode, the EP7209 does not support the
discontinuous clock.
3.11.4.5Error Conditions
RX FIFO overflows are detected and conveyed via
a status bit in the SYSFLG2 register. This register
should be accessed at periodic intervals by the application software. The status register should be
read each time the RX FIFO interrupts are generated. At this time the error condition (i.e., overrun
flag) will indicate that an error has occurred but
cannot convey which byte contains the error. Writing to the SRXEOF register location clears the
overrun flag. TX FIFO underflow condition is detected and conveyed via a bit in the SYSFLG2 register, which is accessed by the application software.
A TX underflow error is cleared by writing data to
be transmitted to the TX FIFO.
3.11.4.6Clock Polarity
Clock polarity is fixed. TX data is presented on the
bus on the rising edge of the clock. Data is latched
into the receiving device on the falling edge of the
clock. The TX pin is held in a tristate condition
when not transmitting.
3.12LCD Controller with Support for OnChip Frame Buffer
The LCD controller provides all the necessary control signals to interface directly to a single panel
multiplexed LCD. The panel size is programmable
and can be any width (line length) from 32 to
1024 pixels in 16 pixel increments. The total video
frame buffer size is programmable up to 128
kbytes. This equates to a theoretical maximum panel size of 1024 x 256 pixels in 4-bits-per-pixel
mode. The video frame buffer can be located in any
portion of memory controlled by the chip selects.
Its start address will be fixed at address 0x0000000
within each chip select. The start address of the
LCD video frame buffer is defined in the FBADDR[3:0] register. These bits become the most significant nibble of the external address bus. The
default start address is 0xC000 0000 (FBADDR =
0xC). A system built using the on-chip SRAM
(OCSR), will then serve as the LCD video frame
buffer and miscellaneous data store. The LCD video frame buffer start address should be set to 0x6 in
this option. Programming of the register FBADDR
is only permitted when the LCD is disabled (this is
to avoid possible cycle corruption when changing
the register cont en t s while a LCD DMA cycle is in
progress). There is no hardware protection to prevent this. It is necessary for the software to disable
the LCD controller before reprogramming the
FBADDR register. Full address decoding is provided for the OCSR, up to the maximum video
frame buffer size programmable into the LCDCON
register. Beyond this, the address is wrapped
around. The frame buffer start address must not be
programmed to 0x4 or 0x5 if either CL-PS6700 in-
DS453PP2
43
EP7209
terface is in use (PCMEN1 or PCMEN2 bits in the
SYSCON2 register are enabled). FBADDR should
never be programmed to 0x7 or 0x8, as these are
the locations for the on-chip Boot ROM and internal registers.
The screen is mapped to the video frame buffer as
one contiguous block where each horizontal line of
pixels is mapped to a set of consecutive bytes or
words in the video RAM. The video frame buffer
can be accessed word wide as pixel 0 is mapped to
the LSB in the buffer such that the pixels are arranged in a Little Endian manner.
The pixel bit rate, and hence the LCD refresh rate,
can be programmed from 18.432 MHz to 576 kHz
when operating in 18.432–73.728 MHz mode, or
13 MHz to 203 kHz when operating from a
13 MHz clock. The LCD controller is programmed
by writing to the LCD control register (LCDCON).
The LCDCON register should not be reprogrammed while the LCD controller is enabled.
The LCD controller also contains two 32-bit palette
registers, which allow any 4-, 2-, or 1-bit pixel value to be mapped to any of the 15 gray scale values
available. The required DMA bandwidth to support
a ½ VGA panel displaying 4-bits-per-pixel data at
an 80 Hz refresh rate is approximately
6.2 Mbytes/sec. Assuming the frame buffer is
stored in a 32-bit wide the maximum theoretical
bandwidth available is 86 Mbytes/sec at
36.864 MHz, or 29.7 Mbytes/sec at 13 MHz.
The LCD controller uses a nine stage 32-bit wide
FIFO to buffer display data. The LCD controller requests new data when there are five words remaining in the FIFO. This means that for a ½ VGA
display at 4-bits-per-pixel and 80 Hz refresh rate,
the maximum allowable DMA latency is approximately 3.25 µsec ((5 words
x 8 bits/byte)/(640 x
240 x 4bpp x 80 Hz)) = 3.25 µsec). The worst-case
latency is the total number of cycles from when the
DMA request appears to when the first DMA data
word actually becomes available at the FIFO.
DMA has the highest priority, so it will always happen next in the system. The maximum number of
cycles required is 36 from the point at which the
DMA request occurs to the point at which the STM
is complete, then another 6 cycles before the data
actually arrives at the FIFO from the first DMA
read. This creates a total of 42 cycles. Assuming
the frame buffer is located in 32-bit wide, the worst
case latency is almost exactly 3.2 µs, with 13 MHz
page mode cycles. With each cycle consuming
~77 ns (i.e., 1/1 MHz), the value of 3.2 µs comes
from 42 cycles x 77 ns/cycle = ~3.23 µsec. If 16-bit
wide, then the worst case latency will double. In
this case, the maximum permissible display size
will be halved, to approx. 320 x 240 pixels, assuming the same pixel depth and refresh rate has to be
maintained. If the frame buffer is to be stored in
static memory, then further calculations must be
performed. If 18 MHz mode is selected, and 32-bit
wide, then the worst case latency will be 2.26 µsec
(i.e., 42 cycles x 54 nsec/cycle). If 36 MHz mode is
selected, and 32-bit wide, then the worst case latency drops down to 1.49 µs. This calculation is a little
more complex for 36 MHz mode of operation. The
total number of cycles = (12 x 4) + 7 = 55. Thus, 55
x 27 ns = ~1.49 µsec.
Figure 11 shows the organization of the video map
for all combinations of bits per pixel.
The refresh rate is not affected by the number of
bits per pixel; however the LCD controller fetches
twice the data per refresh for 4-bits-per-pixel compared to 2-bits-per-pixel. The main reason for reducing the number of bits per pixel is to reduce the
power consumption of the memory where the video
frame buffer is mapped.
44DS453PP2
EP7209
3.13Timer Counters
Two identical timer coun ters are integrated into t he
EP7209. These are referred to as TC1 and TC2.
Each timer counter has an associated 16-bit
read/write data register and some cont rol bits in t he
system control register. Each counter is loaded with
the value written to the data register immediately.
This value will then be decremented on the second
active clock edge to arrive after the write (i.e., after
the first complete period of the clock). When the
Pixel 1 Pixel 2 Pixel 3 Pixel 4
Gray scale
Bit 0 Bit 1Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7
4 Bits per pixel
timer counter under flows (i.e., reaches 0), it w ill
assert its appropriate interrupt. The timer counters
can be read at any time. The clock source and mode
are selectable by writing to various bits in the system control register. When run from the internal
PLL, 512 kHz and 2 kHz rates are provided. When
using the 13 MHz external source, the default frequencies will be 541 kHz and 2.115 kHz, respectively. However, only in non-PLL mode, an
optional divide by 26 frequency can be generated
Gray scale
Pixel 1 Pixel 2 Pixel 3 Pixel 4
Gray scale Gray scale
Bit 0Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7
2 Bits per pixel
Pixel 1 Pixel 2 Pixel 3 Pixel 4
Gray scaleGray scale
Bit 0 Bit 1 Bit 2 Bit 3 Bit 4Bit 5 Bit 6 Bit 7
Figure 11. Video Buffer Mapping
Gray scaleGray scale
Gray scale Gray scale
1 Bit per pixel
DS453PP2
45
EP7209
(thus generating a 500 kHz frequency w hen using
the 13 MHz source). This divider is enabled by setting the OSTB (Operating System Timing Bit) in
the SYSCON2 register (bit 12). When this bit is set
high to select the 500 kHz mode, the 500 kHz frequency is routed to the timers instead of the
541 kHz clock. This does not affect the frequencies
derived for any of the other internal peripherals.
The timer counters can operate in two modes: free
running or pre-scale.
3.13.1Free Running Mode
In the free running mode, the counter will wrap
around to 0xFFFF when it under flows and it will
continue to count down. Any value written to TC1
or TC2 will be decremented on the second edge of
the selected clock.
3.13.2Prescale Mode
In the prescale mode, the value written to TC1 or
TC2 is automatically re-loaded when the counter
under flows. Any value written to TC1 or TC2 will
be decremented on the second edge of the selected
clock. This mode can be used to produce a programmable frequency to drive the buzzer (i.e., with
TC1) or generate a periodic interrupt.
3.14Real Time Clock
The EP7209 contains a 32-bit Real Time Clock
(RTC). This can be written to and read from in the
same way as the timer counters, but it is 32 bits
wide. The RTC is always clocked at 1 Hz, generated from the 32.768 kHz oscillator. It also contains
a 32-bit output match register, this can be programmed to generate an interrupt when the time in
the RTC matches a specific time written t o this register. The RTC can only be reset by an nPOR cold
reset. Because the RTC data register is updated
from the 1 Hz clock derived from the 32 kHz
source, which is asynchronous to the main memory
system clock, the data register should always be
read twice to ensure a valid and stable reading. This
also applies when reading back the RTCDIV field
of the SYSCON1 register, which reflects the status
of the six LSBs of the RTC counter.
3.14.1Characteristics of the Real Time
Clock Interface
When connecting a crystal to the RTC interface
pins (i.e., RTCIN and RTCOUT), the crystal and
circuit should conform to the following requirements:
•The 32.768 kHz frequency should be created
by the crystals fundamental tone (i.e., it should
be a fundamental mode crystal)
•A start-up resistor is not necessary, since one is
provided internally.
•Start-up loading capacitors may be placed on
each side of the external crystal and ground.
Their value should be in the range of 10 pF.
However, their values should be selected based
upon the crystal specifications. The total sum of
the capacitance of the traces between the
EP7209’s clock pins, the capacitors, and the
crystal leads should be subtracted from the
crystal’s specifications when determining the
values for the loading capacitors.
•The crystal should have a maximum 5 ppm fre-
quency drift over the chip’s operating temperature range.
•The voltage for the crystal must be 2.5 V + 0.2 V.
Alternatively, a digital clock source can be used to
drive the RTCIN pin of the EP7209. With this approach, the voltage levels of the clock source
should match that of the Vdd supply for the
EP7209’s pads (i.e., the supply voltage level used
to drive all of the non-Vdd core pins on the
EP7209) (i.e., RTCOUT). The output clock pin
should be left floating.
46DS453PP2
EP7209
3.15Dedicated LED Flasher
The LED flasher feature enables an external pin
(PD[0]/LEDFLSH) to be toggled at a programmable rate and duty ratio, with the intention that the
external pin is connected to an LED. This module
is driven from the RTCs 32.768 kHz oscillator and
works in all running modes because no CPU intervention is needed once its rate and duty ratio have
been configured (via th e LEDFLSH regist er). The
LED flash rate period can be programmed for 1, 2,
3, or 4 seconds. The duty ratio can be programmed
such that the mark portion can be 1/16, 2/16, 3/16,
…, 16/16 of the full cycle. The external pin can
provide up to 4 mA of drive current.
3.16Two PWM Interfaces
Two Pulse Width Modulator (PWM) duty ratio
clock outputs are provided by the EP7209. When
the device is operating from the internal PLL, the
PWM will run at a frequency of 96 kHz. These signals are intended for use as drives for external DCto-DC converters in the Power Supply Unit (PSU)
subsystem. External input pins that would normally
be connected to the output from comparators monitoring the external DC-to-DC converter output are
also used to enable these clocks. These are the
FB[0:1] pins. The duty ratio (and hence PWMs on
time) can be programmed from 1 in 16 to 15 in 16.
The sense of the PWM drive signal (active high or
low) is determined by latching the state of this
drive signal during power on reset (i.e., a pull-up on
the drive signal will result in a active low drive output, and visa versa). This allows either positive or
negative voltages to be generated by the external
DC-to-DC converter. PWMs are disabled by writing zeros into the drive ratio fields in the PMPCON
Pump Control register.
NOTE:To maximize po wer savings, the d rive ratio
fields should be used to disable the PWMs,
instead of the FB pins. The clocks that
source the PWMs are disabled when the
drive ratio fields are zeroed.
3.17Boundary Scan
IEEE 1149.1 compliant JTAG is provided with the
EP7209. Table 22 shows what instructions are supported in the EP7209.
InstructionCodeDescription
EXTEST
0000
SCAN_N
0010
SAMPLE/PRELOAD
0011
IDCODE
1110
BYPASS
1111
Table 22. Instructions Supported in JTAG Mode
The INTEST function will not be supported for the
EP7209.
Additional user-defined instructions exist, but
these are not relevant to board-level testing. For
further information please refer to the ARM DDI0087E ARM720TData Sheet.
As there are additional scan-chains within the
ARM720T processor, it is necessary to include a
scan-chain select function — shown as SCAN_N
in Table 22. To select a pa rticular scan chain, this
function must be input to the TAP controller, followed by the 4-bit scan-chain identification code.
The identification code for the boundary scan chain
is 0011.
Note that it is only necessary to issue the SCAN_N
instruction if the device is already in the JTAG
mode. The boundary scan chain is selected as the
Places the selected
scan chain in test
mode.
Connects the Scan
Path Register between
TDI and TDO
NOTE: This instruction is included for
product testing only
and should never be
used.
Connects the ID register between TDI and
TDO
Connects a 1-bit shift
register bit TDI and
TDO
DS453PP2
47
EP7209
default on test-logic reset and any of the system resets.
The contents of the device ID-register for the
EP7209 are shown in Table 23. This is equivalent
to 0x0F0F0F0F. Note this is the ID-code for the
ARM720T processor.
3.18In-Circuit Emulation
3.18.1Introduction
EmbeddedICE is an extension to the architecture of
the ARM family of processors, and provides the
ability to debug cores that are deeply embedded
into systems. It consists of three parts:
1) A set of extensions to the ARM core
2) The EmbeddedICE macrocell, to provide access the extensions from the outside world
3) The EmbeddedICE interface to provide communication from the EmbeddedICE macrocell
and the host computer
The EmbeddedICE macrocell is programmed, in a
serial fashion, through the TAP controller on the
ARM via the JTAG interface. The EmbeddedICE
macrocell is by default disabled to minimize power
usage, and must be enabled at boot-up to support
this functionality.
3.18.2Functionality
The ICEBreaker module consists of two real-time
watchpoint units together with a control and status
register. One or both of the units can be programmed to halt the execution of the instructions
by the ARM processor. Execution is halted when
either a match occurs between the values programmed into the ICEBreaker and the values cur rently appearing on the address bus, data bus, and
the various control signals. Any bit can be masked
to remove it from the comparison. Either unit can
be programmed as a watchpoint (monitoring data
accesses) or a breakpoint (monitoring instruction
fetches).
Using one of these watchpoint units, an unlimited
number of software breakpoints (in RAM) can be
supported by substitution of the actual code.
NOTE:The EXTERN[1:0] signals from the ICE-
Breaker module are not wired out in this
device. This mechanism is used to allow
watchpoints to be dependent on an exter nal
event. This behavior can be emulated in
software via the ICEBreaker c ontrol registers.
A more detailed description is available in the
ARM Software Development Toolkit User Guide
and Reference Manual. The ICEBreaker module
and its registers are fully described in the
ARM7TDMI Data Sheet.
3.19Maximum EP7209-Based System
A maximum configured system using the EP7209
is shown in Figure 12. This system assumes the
ROMs are 16-bit wide devices. The keyboard may
be connected to more GPIO bits than shown to allow greater than 64 keys, however these extra pins
will not be wired into the WAKEUP pin functionality.
VersionPart numberManufacturer ID
00001111000011110000111100001111
Table 23. Device ID Register
48DS453PP2
EP7209
CRYSTAL
CRYSTAL
PC CARD
SOCKET
EXTERNAL MEMORY-
MAPPED EXPANSION
ADDITIONAL I/O
CL-PS6700
PC CARD
CONTROLLER
×16
FLASH
×16
FLASH
BUFFERS
BUFFERS
LATCHES
×16
FLASH
×16
FLASH
AND
MOSCIN
RTCIN
nCS[4]
PB0
EXPCLK
D[31:0]
A[27:0]
nMOE
WRITE
nCS[0]
nCS[1]
CS[n]
WORD
NCS[2]
NCS[3]
LEDFLSH
nEXTPWR
EP7209
nBATCHG
DRIVE[1:0]
DD[3:0]
CL1
CL2
FM
COL[7:0]
PA[7:0]
PB[7:0]
PD[7:0]
PE[2:0]
nPOR
nPWRFL
BATOK
RUN
WAKEUP
FB[1:0]
DAISSI-
CLK
SSITXFR
SSITXDA
SSIRXDA
LEDDRV
PHDIN
RXD1/2
TXD1/2
DSR
CTS
DCD
ADCCLK
nADCCS
ADCOUT
ADCIN
SMPCLK
LCD
M
KEYBOARD
POWER
SUPPLY UNIT
DC
INPUT
AND
COMPARATORS
BATTERY
DC-TO-DC
CONVERTERS
CODEC/SSI2/
DAI
IR LED AND
PHOTODIODE
2× RS-232
TRANSCEIVERS
ADC
DIGITIZER
NOTE:A system can only use one of the following
peripheral interfa ces at any given time:
SSI2, codec, or
DAI.
Figure 12. A Maximum EP7209 Based System
DS453PP2
49
EP7209
4. MEMORY MAP
The lower 2 GByte of the address space is allocated
to memory. The 2 GByte less 8 k for internal registers is not accessible in the EP7209. The MMU in
the EP7209 should be programmed to generate an
abort exception for access to this area.
Internal peripherals are addressed through a set of
internal memory locations from hex address
8000.0000 to 8000.3FFF. These are known as the
internal registers in the EP7209. In Table 24, the
memory map from 0x8000.000 to 0x8000.1FFF
contains registers that are compatible with th e CL PS7111 (see Table 24). These were included for
backward compatibility and are referred to as old
internal registers.
the ARM720T processor (as configured within this
chip) is mapped in the EP7209. The memory map
shown assumes that two CL-PS6700 PC Card controllers are connected. If this func tionality is not required, then the nCS[4] and nCS[5] memory is
available. The external boot ROM is not fully decoded (i.e., the boot code will repeat within the
256-Mbyte space from 0x70000000 to
0x80000000). See Table 13 on page 29 for the
memory map when booted from on chip boot
ROM. The SRAM is fully decoded up to a maximum size of 128 kbytes. Access to any location
above this range will be wrapped to within the
range.
8 kbytes
8 kbytes
Table 24. EP7209 Memory Map in External Boot Mode
50DS453PP2
EP7209
5. REGISTER DESCRIPTIONS
5.1Internal Registers
Table 25 shows the Internal Registers of the
EP7209 that are compatible with the CL-PS7111
when the CPU is configured to a Little Endian
Memory System. Table 26 shows the differences
that occur when the CPU is configured to a Big Endian Memory System for byte-wide access to Ports
A, B, and D. All the internal registers are inherently
Little Endian (i.e., the least significant byte is attached to bits 7 to 0 of the data bus). Hence, the system Endianness affects the addresses required f or
byte accesses to the internal registers, resulting in a
reversal of the byte address required to read/write a
particular byte within a register. Note that the internal registers have been split into two groups – the
“old” and the “new”. The old ones are the same as
that used in CL-PS7111 and are there for compatibility. The new registers are for accessing the additional functionality of the DAI interface and the
LED flasher.
There is no effect on the register addresses for word
accesses. Bits A[0:1] of the internal address bus are
only decoded for Ports A, B, and D (to allow
read/write to individual ports). For all other registers, bits A[0:1] are not decoded, so that byte reads
will return the whole register contents onto the
EP7209’s internal bus, from where the appropriate
byte (according to the Endianness) will be read by
the CPU. To avoid the additional complexity, it is
preferable to perform al l internal register a ccesses
as word operations, except for ports A to D which
are explicitly designed to operate with byte ac cesses, as well as with word accesses.
An 8 k segment of memory in the range
0x8000.0000 to 0x8000.3FFF is reserved for internal use in the EP7209. Accesses in this range will
not cause any external bus activity unless debug
mode is enabled. Writes to bits that are not explic-
itly defined in the internal area are legal and will
have no effect. Reads from bits not explicitly defined in the internal area are legal but will read undefined values. All the internal addresses should
only be accessed as 32-bit words and are always on
a word boundary, except for the PIO port registers,
which can be accessed as bytes. Address bits in the
range A[0:5] are not decoded (except for Ports
A–D), this means each internal register is valid for
64 bytes (i.e., the SYSFLG1 register appears at locations 0x8000.0140 to 0x8000.017C). There are
some gaps in the register map for backward compatibility reasons, but registers located next to a
gap are still only decoded for 64 bytes.
The GPIO port registers are byte-wide and can be
accessed as a word but not as a half-word. These
registers additionally decode A[0:1]. All addresses
are in hexadecimal notation.
NOTE:All byte-wide re gisters should be accessed
as words (except Port A to Port D registers,
which are designed to work in both word and
byte modes).
All registers bit alignment starts from the
LSB of the register (i.e., they are all right shift
justified).
The registers whic h i nte ra ct with the 32 kHz
clock or which could change during readback (i.e., RTC data registers, SYSFLG1
register (lower 6-bits only), the TC1D and
TC2D data registers, port registers, and
interrupt status registers), should be read
twice and compared to ens ure that a stable
value has been read back.
All internal registers in the EP7209 are reset
(cleared to zero) by a system reset (i.e., nPOR,
nRESET, or nPWRFL signals becoming active),
and the Real Time Clock data register (RTCDR)
and match register (RTCMR), which are only reset
by nPOR becoming active. This ensures that the
system time preserved through a user reset or power fail condition. In the following register descriptions, Little Endian is assumed.
Port A data register
Port B data register
Reserved
Port D data register
Port A data direction register
Port B data direction register
Reserved
Port D data direction register
Port E data register
Port E data direction register
System control register 1
System status flags register 1
Expansion memory configuration register 1
Expansion memory configuration register 2
Interrupt status register 1
Interrupt mask register 1
LCD control register
Read/Write register sets and reads data to
TC1
Read/Write register sets and reads data to
TC2
Real Time Clock data register
Real Time Clock match register
PWM pump control register
CODEC data I/O register
UART1 FIFO data register
UART1 bit rate and line control register
Synchronous serial I/O data register for mas-
ter only SSI
Least significant 32-bit word of LCD palette
register
Most significant 32-bit word of LCD palette
register
Write to clear all start up reason flags
Write to clear battery low interrupt
Write to clear media changed interrupt
Write to clear tick and watchdog interrupt
Write to clear TC1 interrupt
Write to clear TC2 interrupt
Write to clear RTC match interrupt
Write to clear UART modem status changed
interrupt
Write to clear CODEC sound interrupt
Write to enter the Idle State
Write to enter the Standby State
Write will have no effect, read is undefined
LCD frame buffer start address
System control register 2
System status register 2
Interrupt status register 2
Interrupt mask register 2
Write will have no effect, read is undefined
UART2 Data Register
UART2 bit rate and line control register
Master/slave SSI2 data Register
Write to clear RX FIFO overflow flag
Write to pop SSI2 residual byte into RX FIFO
Write to clear keyboard interrupt
Do not write to this location. A write will
0x8000.1800Reserved—WR—
cause the processor to go into an unsupported power savings state.
NOTE:The following Register Descriptions refer t o Little Endian M ode Only
Port A Data Register
Port B Data Register
Reserved
Port D Data Register
Port A data Direction Register
Port B Data Direction Register
Reserved
Port D Data Direction Register
Port E Data Register
Port E Data Direction Register
5.1.1PADR Port A Data Register
EP7209
ADDRESS: 0x8000.0000
Values written to this 8-bit read/write register will be output on Port A pins if the corresponding data
direction bits are set high (port output). Values read from this register reflect the external state of Port
A, not necessarily the value written to it. All bits are cleared by a system reset.
5.1.2PBDR Port B Data Register
ADDRESS: 0x8000.0001
Values written to this 8-bit read/write register will be output on Port B pins if the corresponding data
direction bits are set high (port output). Values read from this register reflect the external state of Port
B, not necessarily the value written to it. All bits are cleared by a system reset.
5.1.3PDDR Port D Data Register
ADDRESS: 0x8000.0003
Values written to this 8-bit read/write register will be output on Port D pins if the corresponding data
direction bits are set low (port output). Values read from this register reflect the external state of Port
D, not necessarily the value written to it. All bits are cleared by a system reset.
5.1.4PADDR Port A Data Direction Register
ADDRESS: 0x8000.0040
Bits set in this 8-bit read/write register will select the corresponding pin in Port A to become an output,
clearing a bit sets the pin to input. All bits are cleared by a system reset.
5.1.5PBDDR Port B Data Direction Register
ADDRESS: 0x8000.0041
Bits set in this 8-bit read/write register will select the corresponding pin in Port B to become an output,
clearing a bit sets the pin to input. All bits are cleared by a system reset.
54DS453PP2
5.1.6PDDDR Port D Data Direction Register
ADDRESS: 0x8000.0043
Bits cleared in this 8-bit read/write register will select the corresponding pin in Port D to become an
output, setting a bit sets the pin to input. All bits are cleared by a system reset so that Port D is output
by default.
5.1.7PEDR Port E Data Register
ADDRESS: 0x8000.0080
Values written to this 3-bit read/write register will be output on Port E pins if the corresponding data
direction bits are set high (port output). Values read from this register reflect the external state of Port
E, not necessarily the value written to it. All bits are cleared by a system reset.
5.1.8PEDDR Port E Data Direction Register
ADDRESS: 0x8000.00C0
Bits set in this 3-bit read/write register will select the corresponding pin in Port E to become an output,
clearing bit sets the pin to input. All bits are cleared by a system reset so that Port E is input by default.
EP7209
DS453PP2
55
EP7209
5.2SYSTEM Control Registers
5.2.1SYSCON1 The System Control Register 1
ADDRESS: 0x8000.0100
2322212019
IRTXMWAKEDIS
1514131211
SIRENCDENRXCDENTXLCDENDBGEN
76543:0
TC2STC2MTC1STC1MKeyboard scan
The system control register is a 21-bit read/write register which controls all the general configuration
of the EP7209, as well as modes etc. for peripheral devices. All bits in this register are cleared by a
system reset. The bits in the system control register SYSCON1 are defined in Table 27.
BitDescription
0:3Keyboard scan: This 4-bit field defines the state of the keyboard column drives. The following
table defines these states.
Keyboard ScanColumn
0
1
2–7
8
9
10
11
12
13
14
15
All driven high
All driven low
All high impedance (tristate)
Column 0 only driven high all others high impedance
Column 1 only driven high all others high impedance
Column 2 only driven high all others high impedance
Column 3 only driven high all others high impedance
Column 4 only driven high all others high impedance
Column 5 only driven high all others high impedance
Column 6 only driven high all others high impedance
Column 7 only driven high all others high impedance
4TC1M: Timer counter 1 mode. Setting this bit sets TC1 to prescale mode, clearing it sets free run-
ning mode.
5TC1S: Timer counter 1 clock source. Setting this bit sets the TC1 clock source to 512 kHz, clear-
ing it sets the clock source to 2 kHz.
6TC2M: Timer counter 2 mode. Setting this bit sets TC2 to prescale mode, clearing it sets free run-
ning mode.
7TC2S: Timer counter 2 clock source. Setting this bit sets the TC2 clock source to 512 kHz, clear-
ing it sets the clock source to 2 kHz.
8UART1EN: Internal UART enable bit. Setting this bit enables the internal UART.
Table 27. SYSCON1
56DS453PP2
EP7209
BitDescription
9BZTOG: Bit to drive (i.e., toggle) the buzzer output directly when software mode of operation is
selected (i.e., bit BZMOD = 0). See the BZMOD and BUZFREQ (SYSCON1) bits for more
details.
10BZMOD: This bit selects the buzzer drive mode. When BZMOD = 0, the buzzer drive output pin
is connected directly to the BZTOG bit. This is the software mode. When BZMOD = 1, the buzzer
drive is in the hardware mode. Two hardware sources are available to drive the pin. They are the
TC1 or a fixed internally generated clock source. The selection of which source is used to drive
the pin is determined by the state of the BUZFREQ bit in the SYSCON2 register. If the TC1 is
selected, then the buzzer output pin is connected to the TC1 under flow bit. The buzzer output
pin changes every time the timer wraps around. The frequency depends on what was programmed into the timer. See the description of the BUZFREQ and BZTOG bits (SYSCON2) for
more details.
11DBGEN: Setting this bit will enable the debug mode. In this mode, all internal accesses are out-
put as if they were reads or writes to the expansion memory addressed by nCS5. nCS5 will still
be active in its standard address range. In addition the internal interrupt request and fast interrupt
request signals to the ARM720T processor are output on Port E, bits 1 and 2. Note that these bits
must be programmed to be outputs before this functionality can be observed. The clock to the
CPU is output on Port E, Bit 0 to enable individual accesses to be distinguished. For example, in
debug mode:
nCS5 = nCS5 or internal I/O strobe
PE0 = CLK
PE1 = nIRQ
PE2 = nFIQ
12LCDEN: LCD enable bit. Setting this bit enables the LCD controller.
13CDENTX: Codec interface enable TX bit. Setting this bit enables the codec interface for data
transmission to an external codec device.
14CDENRX: Codec interface enable RX bit. Setting this bit enables the codec interface for data
reception from an external codec device.
NOTE:Both CDENRX and CDENTX need to be enabled/disabled in tandem, otherwise data may
be lost.
15SIREN: HP SIR protocol encoding enable bit. This bit will have no effect if the UART is not
enabled.
16:17ADCKSEL: Microwire / SPI peripheral clock speed select. This two bit field selects the frequency
of the ADC sample clock; this is twice the frequency of the synchronous serial ADC interface
clock. The table below shows the available frequencies for operation when in PLL mode. These
bits are also used to select the shift clock frequency for the SSI2 interface when set into master
mode. The frequencies obtained in 13.0 MHz mode can be found in Table 21.
ADCKSELADC Sample Frequency
(kHz) — SMPCLK
0084
013216
1012864
11256128
Table 27. SYSCON1 (cont.)
ADC Clock Frequency
(kHz) — ADCCLK
DS453PP2
57
EP7209
BitDescription
18EXCKEN: External expansion clock enable. If this bit is set, the EXPCLK is enabled continu-
ously; it is the same speed and phase as the CPU clock and will free run all the time the main
oscillator is running if this bit is set. This bit should not be left set all the time for power consumption reasons. If the system enters the Standby State, the EXPCLK will become undefined. If this
bit is clear, EXPCLK will be active during memory cycles to expansion slots that have external
wait state generation enabled only.
19WAKEDIS: Setting this bit disables waking up from the Standby State, via the wakeup input.
20IRTXM: IrDA TX mode bit. This bit controls the IrDA encoding strategy. Clearing this bit means
each zero bit transmitted is represented as a pulse of width 3/16th of the bit rate period. Setting
this bit means each zero bit is represented as a pulse of width 3/16th of the period of 115,200-bit
rate clock (i.e., 1.6
but will probably reduce transmission distances.
µsec regardless of the selected bit rate). Setting this bit will use less power,
Table 27. SYSCON1 (cont.)
58DS453PP2
EP7209
5.2.2SYSCON2 System Control Register 2
ADDRESS: 0x8000.1100
1514131211:1098
ReservedBUZFREQCLKENSLOSTBReservedSS2MAENUART2EN
7 6543210
SS2RXEN PC CARD2PC CARD1SS2TXENKBWENReservedKBD6SERSEL
This register is an extension of SYSCON1, containing additional control for the EP7209, for compatibility with CL-PS7111. The bits of this second system control register are defined below. The
SYSCON2 register is reset to all 0s on power up.
BitDescription
0SERSEL:The only affect of this bit is to select either SSI2 or the codec to interface to the external
pins. See the table below for the selection options.
NOTE: If the DAISEL bit of SYSCON3 is set, then it overrides the state of the SERSEL
bit, and thus the external pins are connected to the DAI interface.
SERSEL ValueSelected Serial Devic e to
External Pins
0Master/slave SSI2
1Codec
1KBD6: The state of this bit determines how many of the Port A inputs are OR’ed together to cre-
ate the keyboard interrupt. When zero (the reset state), all eight of the Port A inputs will generate
a keyboard interrupt. When set high, only Port A bits 0 to 5 will generate an interrupt from the
keyboard. It is assumed that the keyboard row lines are connected into Port A.
3KBWEN: When the KBWEN bit is high, the EP7209 will awaken from a power saving state into
the Operating State when a high signal is on one of Port A’s inputs (irrespective of the state of the
interrupt mask register). This is called the Keyboard Direct Wakeup mode. In this mode, the interrupt request does not have to get serviced. If the interrupt is masked (i.e., the interrupt mask register 2 (INTMR2) bit 0 is low), the processor simply starts re-executing code from where it left off
before it entered the power saving state. If the interrupt is non-masked, then the processor will
service the interrupt.
4SS2TXEN: Transmit enable for the synchronous serial interface 2. The transmit side of SSI2 will
be disabled until this bit is set. When set low, this bit also disables the SSICLK pin (to save
power) in master mode, if the receive side is low.
5PCCARD1: Enable for the interface to the CL-PS6700 device for PC Card slot 1. The main effect
of this bit is to reassign the functionality of Port B, bit 0 to the PRDY input from the CL-PS6700
devices, and to ensure that any access to the nCS4 address space will be according to the
CL-PS6700 interface protocol.
6PCCARD2: Enable for the interface to the CL-PS6700 device for PC Card slot 2. The main effect
of this bit is to reassign the functionality of Port B, bit 1 to the PRDY input from the CL-PS6700
devices, and to ensure that any access to the nCS5 address space will be according to the
CL-PS6700 interface protocol.
DS453PP2
Table 28. SYSCON2
59
EP7209
BitDescription
7SS2RXEN: Receive enable for the synchronous serial interface 2. The receive side of SSI2 will
be disabled until this bit is set. When both SSI2TXEN and SSI2RXEN are disabled, the SSI2
interface will be in a power saving state.
8UART2EN: Internal UART2 enable bit. Setting this bit enables the internal UART2.
9SS2MAEN: Master mode enable for the synchronous serial interface 2. When low, SSI2 will be
configured for slave mode operation. When high, SSI2 will be configured for master mode opera-
tion. This bit also controls the directionality of the interface pins.
12OSTB: This bit (operating system timing bit) is for use only with the 13 MHz clock source mode.
Normally it will be set low, however when set high it will cause a 500 kHz clock to be generated
for the timers instead of the 541 kHz which would normally be available. The divider to generate
this frequency is not clocked when this bit is set low.
13CLKENSL: CLKEN select. When low, the CLKEN signal will be output on the RUN/CLKEN pin.
When high, the RUN signal will be output on RUN/CLKEN.
14BUZFREQ: The BUZFREQ bit is used to select which hardware source will be used as the
source to drive the buzzer output pin. When BUZFREQ = 0, the buzzer signal generated from the
on-chip timer (TC1) is output. When BUZFREQ = 1, a fixed frequency clock is output (500 Hz
when running from the PLL, 528 Hz in the 13 MHz external clock mode). See the BZMOD and
0ADCCON: Determines whether the ADC Configuration Extension field SYNCIO(31:16) is to be
1:2CLKCTL(1:0): Determines the frequency of operation of the processor and Wait State scaling.
VERSN[1]
Reserved
VERSN[0]
Reserved
ADCCKNSENDAISELCLKCTL1CLKCTL0ADCCON
This register is an extension of SYSCON1 and SYSCON2, containing additional control for the
EP7209. The bits of this third system control register are defined in Table 29.
used for ADC configuration data. When this bit = 0 (default state) the ADC Configuration Byte
SYNCIO(7:0) only is used for compatibility with the CL-PS7111. When this bit = 1, the ADC Con-
figuration Extension field in the SYNCIO register is used for ADC Configuration data and the
value in the ADC Configuration Byte (SYNCIO(6:0)) selects the length of the data (8-bit to 16-bit).
NOTE:To determine the number of wait stat es programmed ref er to Table 36 and Table 37.
When operating at 13 MHz, the CLKCTL[1:0] bits should not be c hanged from the
default value of ‘00’. Under no circumstances should the CLKCTL bits be changed
using a buffered write.
3DAIPSEL: When set selects the DAI Interface. This defaults to either the SSI (i.e., DAISEL bit is
low).
4ADCCKNSEN: When set, configuration data is transmitted on ADCOUT at the rising edge of the
ADCCLK, and data is read back on the falling edge on the ADCIN pin. When clear (default), the
opposite edges are used.
5:7VERSN[0:2]: Additional read-only version bits — will read ‘000’.
8FASTWAKE: When set, the device will wake from the Standby State within one to two cycles of a
4 kHz clock. This bit is cleared at power up, and thus the device first starts using the default one
to two cycles of the 8 Hz clock.
9DAIEN: This bit enables the Digital Audio Interface when set (i.e., when DAIEN is high).
Table 29. SYSCON3
DS453PP2
61
EP7209
5.2.4SYSFLG1 — The System Status Flags Register
ADDRESS: 0x8000.0140
31:30 29282726
VERIDIDBOOTBIT1BOOTBIT0SSIBUSY
232221:162322
UTXFF1URXFE1RTCDIVUTXFF1URXFE1
1514131211
CLDFLGPFFLGRSTFLGNBFLGUBUSY1
7:43210
DIDWUONWUDRDCDETMCDR
The system status flags register is a 32-bit read only register, which indicates various system information. The bits in the system status flags register SYSFLG1 are defined in Table 30.
BitDescription
0MCDR: Media changed direct read. This bit reflects the INVERTED non-latched status of the
media changed input.
1DCDET: This bit will be set if a non-battery operated power supply is powering the system (it is
the inverted state of the nEXTPWR input pin).
2WUDR: Wake up direct read. This bit reflects the non-latched state of the wakeup signal.
3WUON: This bit will be set if the system has been brought out of the Standby State by a rising
edge on the wakeup signal. It is cleared by a system reset or by writing to the HAL T or STDBY
locations.
4:7DID: Display ID nibble. This 4-bit nibble reflects the latched state of the four LCD data lines. The
state of the four LCD data lines is latched by the LCDEN bit, and so it will always reflect the last
state of these lines before the LCD controller was enabled. These bits identify the LCD display
panel fitted.
8CTS: This bit reflects the current status of the clear to send (CTS) modem control input to
UART1.
9DSR: This bit reflects the current status of the data set ready (DSR) modem control input to
UART1.
10DCD: This bit reflects the current status of the data carrier detect (DCD) modem control input to
UART1.
11UBUSY1: UART1 transmitter busy. This bit is set while UART1 is busy transmitting data, it is
guaranteed to remain set until the complete byte has been sent, including all stop bits.
12NBFLG: New battery flag. This bit will be set if a low to high transition has occurred on the
nBATCHG input, it is cleared by writing to the STFCLR location.
13RSTFLG: Reset flag. This bit will be set if the RESET button has been pressed, forcing the
nURESET input low. It is cleared by writing to the STFCLR location.
14PFFLG: Power Fail Flag. This bit will be set if the system has been reset by the nPWRFL input
pin, it is cleared by writing to the STFCLR location.
Table 30. SYSFLG
62DS453PP2
EP7209
BitDescription
15CLDFLG: Cold start flag. This bit will be set if the EP7209 has been reset with a power on reset,
it is cleared by writing to the STFCLR location.
16:21RTCDIV: This 6-bit field reflects the number of 64 Hz ticks that have passed since the last incre-
ment of the RTC. It is the output of the divide by 64 chain that divides the 64 Hz tick clock down
to 1 Hz for the RTC. The MSB is the 32 Hz output, the LSB is the 1 Hz output.
22URXFE1: UART1 receiver FIFO empty. The meaning of this bit depends on the state of the UFI-
FOEN bit in the UART1 bit rate and line control register. If the FIFO is disabled, this bit will be set
when the RX holding register is empty. If the FIFO is enabled the URXFE bit will be set when the
RX FIFO is empty.
23UTXFF1: UART1 transmit FIFO full. The meaning of this bit depends on the state of the UFI-
FOEN bit in the UART1 bit rate and line control register. If the FIFO is disabled, this bit will be set
when the TX holding register is full. If the FIFO is enabled the UTXFF bit will be set when the TX
FIFO is full.
24CRXFE: Codec RX FIFO empty bit. This will be set if the 16-byte codec RX FIFO is empty.
25CTXFF: Codec TX FIFO full bit. This will be set if the 16-byte codec TX FIFO is full.
26SSIBUSY: Synchronous serial interface busy bit. This bit will be set while data is being shifted in
or out of the synchronous serial interface, when clear data is valid to read.
27:28BOOTBIT0–1: These bits indicate the default (power-on reset) bus width of the ROM interface.
See Memory Configuration Registers for more details on the ROM interface bus width. The state
of these bits reflect the state of Port E[0:1] during power on reset, as shown in the table below.
PE[1]
(BOOTBIT1)
0032-bit
018-bit
1016-bit
11Reserved
29ID: Will always read ‘1’ for the EP7209 device.
30:31VERID: Version ID bits. These 2 bits determine the version id for the EP7209. Will read ‘10’ for
the initial version.
Table 30. SYSFLG (cont.)
PE[0]
(BOOTBIT0)
Boot option
DS453PP2
63
EP7209
5.2.5SYSFLG2 System Status Register 2
ADDRESS: 0x8000.1140
232221:121110:76
UTXFF2URXFE2ReservedUBUSY2ReservedCKMODE
543210
SS2TXUFSS2TXFFSS2RXFERESFRMRESVALSS2RXOF
This register is an extension of SYSFLG1, containing status bits for backward compatibility with CLPS7111. The bits of the second system status register are defined in Table 31.
BitDescription
0SS2RXOF: Master/slave SSI2 RX FIFO overflow. This bit is set when a write is attempted to a full
RX FIFO (i.e., when RX is still receiving data and the FIFO is full). This can be cleared in one of
two ways:
1. Empty the FIFO (remove data from FIFO) and then write to SRXEOF location.
2. Disable the RX (affects of disabling the RX will not take place until a full SSI2 clock
cycle after it is disabled)
1RESVAL: Master/slave SSI2 RX FIFO residual byte present, cleared by popping the residual
byte into the SSI2 RX FIFO or by a new RX frame sync pulse.
2RESFRM: Master/slave SSI2 RX FIFO residual byte present, cleared only by a new RX frame
sync pulse.
3SS2RXFE: Master/slave SSI2 RX FIFO empty bit. This will be set if the 16 x 16 RX FIFO is
empty.
4SS2TXFF: Master/slave SSI2 TX FIFO full bit. This will be set if the 16 x 16 TX FIFO is full. This
will get cleared when data is removed from the FIFO or the EP7209 is reset.
5SS2TXUF: Master/slave SSI2 TX FIFO Underflow bit. This will be set if there is attempt to trans-
mit when TX FIFO is empty. This will be cleared when FIFO gets loaded with data.
6CKMODE: This bit reflects the status of the CLKSEL (PE[2]) input, latched during nPOR. When
low, the PLL is running and the chip is operating in 18.432–73.728 MHz mode. When high the
chip is operating from an external 13 MHz clock.
11UBUSY2: UART2 transmitter busy. This bit is set while UART2 is busy transmitting data; it is
guaranteed to remain set until the complete byte has been sent, including all stop bits.
22URXFE2: UART2 receiver FIFO empty. The meaning of this bit depends on the state of the UFI-
FOEN bit in the UART2 bit rate and line control register. If the FIFO is disabled, this bit will be set
when the RX holding register contains is empty. If the FIFO is enabled the URXFE bit will be set
when the RX FIFO is empty.
23UTXFF2: UART2 transmit FIFO full. The meaning of this bit depends on the state of the UFI-
FOEN bit in the UART2 bit rate and line control register. If the FIFO is disabled, this bit will be set
when the TX holding register is full. If the FIFO is enabled the UTXFF bit will be set when the TX
FIFO is full.
Table 31. SYSFLG2
64DS453PP2
EP7209
5.3Interrupt Registers
5.3.1INTSR1 Interrupt Status Register 1
ADDRESS: 0x8000.0240
15141312111098
SSEOTIUMSINTURXINT1UTXINT1TINTRTCMITC2OITC1OI
7 6543210
EINT3EINT2EINT1CSINT
The interrupt status register is a 32-bit read only register. The interrupt status register reflects the current state of the first 16 interrupt sources within the EP7209. Each bit is set if the appropriate interrupt
is active. The interrupt assignment is given in Table 32.
BitDescription
0EXTFIQ: External fast interrupt. This interrupt will be active if the nEXTFIQ input pin is forced low
and is mapped to the FIQ input on the ARM720T processor.
1BLINT: Battery low interrupt. This interrupt will be active if no external supply is present (nEXT-
PWR is high) and the battery OK input pin BATOK is forced low. This interrupt is de-glitched with
a 16 kHz clock, so it will only generate an interrupt if it is active for longer than 125
mapped to the FIQ input on the ARM720T processor and is cleared by writing to the BLEOI loca-
tion.
NOTE:BLINT is disabled during the Standby State.
2WEINT: T ick Watch dog expired interrupt. This interrupt will become active on a rising edge of the
periodic 64 Hz tick interrupt clock if the tick interrupt is still active (i.e., if a tick interrupt has not
been serviced for a complete tick period). It is mapped to the FIQ input on the ARM720T proces-
sor and the TEOI location
NOTE:WEINT is disabled during the Standby State.
Watch dog timer tick rate is 64 Hz (in 13 MHz and 73.728–18.432 MHz modes).
Watchdog timer is turned off during the Standby S tate.
3MCINT: Media changed interrupt. This interrupt will be active after a rising edge on the nMED-
CHG input pin has been detected, This input is de-glitched with a 16 kHz clock so it will only gen-
erate an interrupt if it is active for longer than 125
ARM7TDMI processor and is cleared by writing to the MCEOI location. On power-up, the Media
change pin (nMEDCHG) is used as an input to force the processor to either boot from the internal
Boot ROM, or from external memory. After power-up, the pin can be used as a general purpose
FIQ interrupt pin.
4CSINT: Codec sound interrupt, generated when the data FIFO has reached half full or empty
(depending on the interface direction). It is cleared by writing to the COEOI location.
5EINT1: External interrupt input 1. This interrupt will be active if the nEINT1 input is active (low) it
is cleared by returning nEINT1 to the passive (high) state.
6EINT2: External interrupt input 2. This interrupt will be active if the nEINT2 input is active (low) it
is cleared by returning nEINT2 to the passive (high) state.
7EINT3: External interrupt input 3. This interrupt will be active if the EINT3 input is active (high) it
is cleared by returning EINT3 to the passive (low) state.
MCINTWEINTBLINTEXTFIQ
µsec. It is
µsec. It is mapped to the FIQ input on the
DS453PP2
Table 32. INTSR1
65
EP7209
BitDescription
8TC1OI: TC1 under flow interrupt. This interrupt becomes active on the next falling edge of the
timer counter 1 clock after the timer counter has under flowed (reached zero). It is cleared by
writing to the TC1EOI location.
9TC2OI: TC2 under flow interrupt. This interrupt becomes active on the next falling edge of the
timer counter 2 clock after the timer counter has under flowed (reached zero). It is cleared by
writing to the TC2EOI location.
10RTCMI: RTC compare match interrupt. This interrupt becomes active on the next rising edge of
the 1 Hz Real Time Clock (one second later) after the 32-bit time written to the Real Time Clock
match register exactly matches the current time in the RTC. It is cleared by writing to the RTCEOI
location.
11TINT: 64 Hz tick interrupt. This interrupt becomes active on every rising edge of the internal
64 Hz clock signal. This 64 Hz clock is derived from the 15-stage ripple counter that divides the
32.768 kHz oscillator input down to 1 Hz for the Real Time Clock. This interrupt is cleared by writ-
ing to the TEOI location.
NOTE:TINT is disabled/turned off during the Standby State.
12UTXINT1: Internal UART1 transmit FIFO half-empty interrupt. The function of this interrupt
source depends on whether the UART1 FIFO is enabled. If the FIFO is disabled (FIFOEN bit is
clear in the UART1 bit rate and line control register), this interrupt will be active when there is no
data in the UART1 TX data holding register and be cleared by writing to the UART1 data register.
If the FIFO is enabled this interrupt will be active when the UART1 TX FIFO is half or more empty,
and is cleared by filling the FIFO to at least half full.
13URXINT1: Internal UART1 receive FIFO half full interrupt. The function of this interrupt source
depends on whether the UART1 FIFO is enabled. If the FIFO is disabled this interrupt will be
active when there is valid RX data in the UART1 RX data holding register and be cleared by
reading this data. If the FIFO is enabled this interrupt will be active when the UART1 RX FIFO is
half or more full or if the FIFO is non empty and no more characters have been received for a
three character time out period. It is cleared by reading all the data from the RX FIFO.
14UMSINT: Internal UART1 modem status changed interrupt. This interrupt will be active if either of
the two modem status lines (CTS or DSR) change state. It is cleared by writing to the UMSEOI
location.
15SSEOTI: Synchronous serial interface end of transfer interrupt. This interrupt will be active after a
complete data transfer to and from the external ADC has been completed. It is cleared by read-
ing the ADC data from the SYNCIO register.
Table 32. INTSR1 (cont.)
66DS453PP2
5.3.2INTMR1 Interrupt Mask Register 1
ADDRESS: 0x8000.0280
15141312111098
SSEOTIUMSINTURXINTUTXINTTINTRTCMITC2OITC1OI
7 6543210
EINT3EINT2EINT1CSINT
This interrupt mask register is a 32-bit read/write register, which is used to selectively enable any of
the first 16 interrupt sources within the EP7209. The four shaded interrupts all generate a fast interrupt
request to the ARM720T processor (FIQ), this will cause a jump to processor virtual address
0000.0001C. All other interrupts will generate a standard interrupt request (IRQ), this will cause a
jump to processor virtual address 0000.00018. Setting the appropriate bit in this register enables the
corresponding interrupt. All bits are cleared by a system reset. Please refer to INTSR1 Interrupt Sta-tus Register 1 for individual bit details.
MCINTWEINTBLINTEXTFIQ
5.3.3INTSR2 Interrupt Status Register 2
ADDRESS: 0x8000.1240
EP7209
15:14131211:3210
ReservedURXINT2UTXINT2ReservedSS2TXSS2RXKBDINT
This register is an extension of INTSR1, containing status bits for backward compatibility with CLPS7111. The interrupt status register also reflects the current state of the new interrupt sources within
the EP7209. Each bit is set if the appropriate interrupt is active. The interrupt assignment is given in
Table 33.
BitDescription
0KBDINT: Keyboard interrupt. This interrupt is generated whenever a key is pressed, from the log-
ical OR of the first 6 or all 8 of the Port A inputs (depending on the state of the KBD6 bit in the
SYSCON2 register. The interrupt request is latched, and can be de-asserted by writing to the
KBDEOI location.
NOTE:KBDINT is not deglitched.
1SS2RX: Synchronous serial interface 2 receive FIFO half or greater full interrupt. This is gener-
ated when RX FIFO contains 8 or more half-words. This interrupt is cleared only when the RX
FIFO is emptied or one SSI2 clock after RX is disabled.
2SS2TX: Synchronous serial interface 2 transmit FIFO less than half empty interrupt. This is gen-
erated when TX FIFO contains fewer than 8 byte pairs. This interrupt gets cleared by loading the
FIFO with more data or disabling the TX. One synchronization clock required when disabling the
TX side before it takes effect.
12UTXINT2: UART2 transmit FIFO half empty interrupt. The function of this interrupt source
depends on whether the UART2 FIFO is enabled. If the FIFO is disabled (FIFOEN bit is clear in
the UART2 bit rate and line control register), this interrupt will be active when there is no data in
the UART2 TX data holding register and be cleared by writing to the UART2 data register. If the
FIFO is enabled this interrupt will be active when the UART2 TX FIFO is half or more empty, and
is cleared by filling the FIFO to at least half full.
DS453PP2
67
EP7209
BitDescription
13URXINT2: UART2 receive FIFO half full interrupt. The function of this interrupt source depends
on whether the UART2 FIFO is enabled. If the FIFO is disabled this interrupt will be active when
there is valid RX data in the UART2 RX data holding register and be cleared by reading this data.
If the FIFO is enabled this interrupt will be active when the UART2 RX FIFO is half or more full or
if the FIFO is non empty and no more characters have been received for a three character time
out period. It is cleared by reading all the data from the RX FIFO.
Table 33. INSTR2 (cont.)
5.3.4INTMR2 Interrupt Mask Register 2
ADDRESS: 0x8000.1280
15:14131211:3210
ReservedURXINT2UTXINT2ReservedSS2TXSS2RXKBDINT
This register is an extension of INTMR1, containing interrupt mask bits for the backward compatibility
with the CL-PS7111. Please refer to INTSR2 for individual bit details.
5.3.5INTSR3 Interrupt Status Register 3
ADDRESS: 0x8000.2240
7:10
ReservedDAIINT
This register is an extension of INTSR1 and INTSR2 containing status bits for the new features of the
EP7209. Each bit is set if the appropriate interrupt is active. The interrupt assignment is given in
Table 34.
BitDescription
0MCPINT: DAI interface interrupt. The cause must be determined by reading the DAI status regis-
ter. It is mapped to the FIQ interrupt on the ARM720T processor
Table 34. INTSR3
5.3.6INTMR3 Interrupt Mask Register 3
ADDRESS: 0x8000.2280
7:10
ReservedDAIINT
This register is an extension of INTMR1 and INTMR2, containing interrupt mask bits for the new features of the EP7209. Please refer to INTSR3 for individual bit details.
Expansion and ROM space is selected by one of eight chip selects. One of the chip selects (nCS[6])
is used internally for the on-chip SRAM, and the configuration is hardwired for 32-bit wide, minimum
wait state operation. nCS[7] is used for the on-chip Boot ROM and the configuration field is hardwired
for 8-bit wide, minimum wait state operation. Data written to the configuration fields for either nCS[6]
or nCS7 will be ignored. Two of the chip selects (nCS[4:5]) can be used to access two CL-PS6700
PC CARD controller devices, and when either of these interfaces is enabled, the configuration field
for the appropriate chip select in the MEMCFG2 register is ignored. When the PC CARD1 or 2 control
bit in the SYSCON2 register is disabled, then nCS[4] and nCS[5] are active as normal and can be
programmed using the relevant fields of MEMCFG2, as for the other four chip selects. All of the six
external chip selects are active for 256 Mbytes and the timing and bus transfer width can be programmed individually. This is accomplished by programming the six byte-wide fields contained in two
32-bit registers, MEMCFG1 and MEMCFG2. All bits in these registers are cleared by a system reset
(except for the nCS[6] and nCS[7] configurations).
EP7209
The Memory Configuration Register 1 is a 32-bit read/write register which sets the configuration of
the four expansion and ROM selects nCS[0:3]. Each select is configured with a 1-byte field starting
with expansion select 0.
The Memory Configuration Register 2 is a 32-bit read/write register which sets the configuration of
the two expansion and ROM selects nCS[4:5]. Each select is configured with a 1-byte field starting
with expansion select 4.
Each of the six non-reserved byte fields for chip select configuration in the memory configuration registers are identical and define the number of wait states, the bus width, enable EXPCLK output during
accesses and enable sequential mode access. This byte field is defined below. This arrangement applies to nCS[0:3], and nCS[4:5] when the PC CARD enable bits in the SYSCON2 register are not set.
The state of these bits is ignored for the Boot ROM and local SRAM fields in the MEMCFG2 register.
Table 35 defines the bus width field. Note that the effect of this field is dependent on the two BOOTBIT
bits that can be read in the SYSFLG1 register. All bits in the memory configuration register are cleared
by a system reset and the state of the BOOTBIT bits are determined by Port E bits 0 and 1 on the
EP7209 during power-on reset. The state of PE[1] and PE[0] determine whether the EP7209 is going
to boot from either 32-bit wide, 16-bit wide or 8-bit wide ROMs.
DS453PP2
Table 36 shows the values for the wait states for random and sequential wait states at 13 and 18 MHz
bus rates. At 36 MHz bus rate, the encoding becomes more complex. Table 37 preserve s com pati bility with the previous devices, while allowing the previously unused bit combinations to specify more
variations of random and sequential wait states.
69
EP7209
Bus Width FieldBOOTBIT1BOOTBIT0Expansion Transfer ModePort E bits 1,0 during
NPOR reset
000032-bit wide bus accessLow, Low
010016-bit wide bus accessLow, Low
10008-bit wide bus accessLow, Low
1100ReservedLow, Low
00018-bit wide bus accessLow, High
0101R eservedLow, High
100132-bit wide bus accessLow, High
110116-bit wide bus accessLow, High
001016-bit wide bus accessHigh, Low
011032-bit wide bus accessHigh, Low
1010ReservedHigh, Low
11108-bit wide bus accessHigh, Low
Table 35. Values of the Bus Width Field
ValueNo. of Wait States
Random
0043
0132
1021
1110
No. of Wait States
Sequential
Table 36. Values of the Wait State Field at 13 MHz and 18 MHz
Table 37. Values of the Wait State Field at 36 MHz
70DS453PP2
EP7209
BitDescription
6SQAEN: Sequential access enable. Setting this bit will enable sequential accesses that are on a
quad word boundary to take advantage of faster access times from devices that support page
mode. The sequential access will be faulted after four words (to allow video refresh cycles to
occur), even if the access is part of a longer sequential access. In addition, when this bit is not
set, non-sequential accesses will have a single idle cycle inserted at least every four cycles so
that the chip select is de-asserted periodically between accesses for easier debug.
7CLKENB: Expansion clock enable. Setting this bit enables the EXPCLK to be active during
accesses to the selected expansion device. This will provide a timing reference for devices that
need to extend bus cycles using the EXPRDY input. Back to back (but not necessarily page
mode) accesses will result in a continuous clock. This bit will only affect EXPCLK when the PLL
is being used (i.e., in 73.728–18.432 MHz mode). When operating in 13 MHz mode, the EXPCLK
pin is an input so it is not affected by this register bit. To save power internally, it should always be
set to zero when operating in 13 MHz mode.
Table 38. MEMCFG
See the AC Electrical Specification section for more detail on bus timing.
The memory area decoded by CS[6] is reserved for the on-chip SRAM, hence this does not require
a configuration field in MEMCFG2. It is automatically set up for 32-bit wide, no wait state accesses.
For the Boot ROM, it is automatically set up for 8-bit, no wait state accesses.
Chip selects nCS[4] and nCS[5] are used to select two CL-PS6700 PC CARD controller devices.
These have a multiplexed 16-bit wide address/data interface, and the configuration bytes in the
MEMCFG2 register have no meaning when these interfaces are enabled.
5.5Timer/Counter Registers
5.5.1TC1D Timer Counter 1 Data Register
ADDRESS: 0x8000.0300
The timer counter 1 data register is a 16-bit read/write register which sets and reads data to TC1. Any
value written will be decremented on the next rising edge of the clock.
5.5.2TC2D Timer Counter 2 Data Register
ADDRESS: 0x8000.0340
The timer counter 2 data register is a 16-bit read/write register which sets and reads data to TC2. Any
value written will be decremented on the next rising edge of the clock.
5.5.3RTCDR Real Time Clock Data Register
ADDRESS: 0x8000.0380
The Real Time Clock data register is a 32-bit read/write register, which sets and reads the binary time
in the RTC. Any value written will be incremented on the next rising edge of the 1 Hz clock. This register is reset only by nPOR.
5.5.4RTCMR Real Time Clock Match Register
ADDRESS: 0x8000.03C0
The Real Time Clock match register is a 32-bit read/write register, which sets and reads the binary
match time to RTC. Any value written will be compared to the current binary time in the RTC, if they
match it will assert the RTCMI interrupt source. This register is reset only by nPOR.
DS453PP2
71
5.6LEDFLSH Register
ADDRESS: 0x8000.22C0
65:21:0
EnableDuty ratioFlash rate
The output is enabled whenever LEDFLSH[6] = 1. When enabled, PDDDR[0] needs to be configured
as an output pin and the bit cleared to ‘0’ (See PDDDR Port D Data Direction Register). When the
LED Flasher is disabled, the pin defaults to being used as Port D bit 0. Thus, this will ensure that the
LED will be off when disabled.
The flash rate is determined by the LEDFLSH[1:0] bits, in the following way:
Drive 1 pump ratioDrive 0 from AC source ratioDrive 0 from battery ratio
The Pulse Width Modulator (PWM) pump control register is a 16-bit read/write register which sets and
controls the variable mark space ratio drives for the two PWMs. All bits in this register are cleared by
a system reset. (The top four bits are unused. They should be written as zeroes, and will read as undefined).
BitDescription
0:3Drive 0 from battery: This 4-bit field controls the ‘on’ time for the Drive 0 PWM pump while the
system is powered from batteries. Setting these bits to 0 disables this pump, setting these bits to
1 allows the pump to be driven in a 1:16 duty ratio, 2 in a 2:16 duty ratio etc. up to a 15:16 duty
ratio. An 8:16 duty ratio results in a square wave of 96 kHz when operating with an 18.432 MHz
master clock, or 101.6 kHz when operating from the 13 MHz source.
4:7Drive 0 from AC: This 4-bit field controls the ‘on’ time for the Drive 0 DC to DC pump while the
system is powered from a non-battery type power source. Setting these bits to 0 disables this
pump, setting these bits to 1 allows the pump to be driven in a 1:16 duty ratio, 2 in a 2:16 duty
ratio, etc. up to a 15:16 duty ratio. An 8:16 duty ratio results in a square wave of 96 kHz when
operating with an 18.432 MHz master clock, or 101.6 kHz when operating from the 13 MHz
source.
NOTE:The EP7209 monitor s the power supply input pi ns (i.e., BATOK and NEXT PWR) to
determine which of the above fields to use.
8:11Drive 1 pump ratio: This 4-bit field controls the ‘on’ time for the drive1 PWM pump. Setting these
bits to 0 disables this pump, setting these bits to 1 allows the pump to be driven in a 1:16 duty
ratio, 2 in a 2:16 duty ratio, etc. up to a 15:16 duty ratio. An 8:16 duty ratio results in a square
wave of 96 kHz when operating with an 18.432 MHz master clock, or 101.6 kHz when operating
from the 13 MHz source.
DS453PP2
Table 41. PMPCON
The state of the output drive pins is latched during power on reset, this latched value is used to determine the polarity of the drive output. The sense of the PWM control lines is summarized in
Table 42.
Initial State of Drive 0 or
Drive 1 During Power on Reset
LowActive high+ve
HighActive low-ve
Table 42. Sense of PWM control lines
External input pins that would normally be connected to the output from comparators monitoring the
PWM output are also used to enable these clocks. These are the FB[0:1] pins.When FB[0] is high,
the PWM is disabled. The same applies to FB[1]. They are read upon power-up.
NOTE:To maximize power sa vings, the drive ratio fields should be used to disable the PWMs,
instead of the FB pins. The clocks that source the PWMs are disabled when the drive ratio
fields are zeroed.
Sense of Drive 0
or Drive 1
Polarity of Bias
Voltage
73
5.8CODR — The CODEC Interface Data Register
ADDRESS: 0x8000.0440
The CODR register is an 8-bit read/write register, to be used with the codec interface. This is selected
by the appropriate setting of bit 0 (SERSEL) of the SYSCON2 register. Data written to or read from
this register is pushed or popped onto the appropriate 16-byte FIFO buffer. Data from this buffer is
then serialized and sent to or received from the codec sound device. When the codec is enabled, the
codec interrupt CSINT is generated repetitively at 1/8th of the byte transfer rate and the state of the
FIFOs can be read in the system flags register. The net data transfer rate to/from the codec device is
8 kBytes/s, giving an interrupt rate of 1 kHz.
5.9UART Registers
5.9.1UARTDR1–2 UART1–2 Data Registers
ADDRESS: 0x8000.0480 and 0x8000.1480
10987:0
OVERRPARERRFRMERRRX data
The UARTDR registers are 11-bit read and 8-bit write registers for all data transfers to or from the
internal UARTs 1 and 2.
EP7209
Data written to these registers is pushed onto the 16-byte data TX holding FIFO if the FIFO is enabled.
If not it is stored in a one byte holding register. This write will initiate transmission from the UART.
The UART data read registers are made up of the 8-bit data byte received from the UART together
with three bits of error status. If the FIFO is enabled, data read from this register is popped from the
16 byte data RX FIFO. If the FIFO is not enabled, it is read from a one byte buffer register containing
the last byte received by the UART. If it is enabled, data received and error status is automatically
pushed onto the RX FIFO. The RX FIFO is 10-bits wide by 16 deep.
NOTE:These registers should be accessed as words.
BitDescription
8FRMERR: UART framing error. This bit is set if the UART detected a framing error while receiv-
ing the associated data byte. Framing errors are caused by non-matching word lengths or bit
rates.
9PARERR: UART parity error. This bit is set if the UART detected a parity error while receiving the
data byte.
10OVERR: UART over-run error. This bit is set if more data is received by the UART and the FIFO
is full. The overrun error bit is not associated with any single character, and so is not stored in the
FIFO, if this bit is set the entire contents of the FIFO is invalid and should be cleared. This error
bit is cleared by reading the UARTDR register.
Table 43. UARTDR1-2 UART1-2
74DS453PP2
EP7209
5.9.2UBRLCR1–2 UART1–2 Bit Rate and Line Control Registers
The bit rate divisor and line control register is a 19-bit read / write register. Writing to these registers
sets the bit rate and mode of operation for the internal UARTs.
BitDescription
0:11Bit rate divisor: This 12-bit field sets the bit rate. If the system is operating from the PLL clock,
then the bit rate divider is fed by a clock frequency of 3.6864 MHz, which is then further divided
internally by 16 to give the bit rate. The formula to give the divisor value for any bit rate when
operating from the PLL clock is: Divisor = (230400/bit rate divisor) – 1. A value of zero in this field
is illegal when running from the PLL clock. The tables below show some example bit rates with
the corresponding divisor value. In 13 MHz mode, the clock frequency fed to the UART is
1.8571 MHz. In this mode, zero is a legal divisor value, and will generate the maximum possible
bit rate. The tables below show the bit rates available for both 18.432 MHz and 13 MHz opera-
12BREAK: Setting this bit will drive the TX output active (high) to generate a break.
13PRTEN: Parity enable bit. Setting this bit enables parity detection and generation
14EVENPRT: Even parity bit. Setting this bit sets parity generation and checking to even parity,
clearing it sets odd parity. This bit has no effect if the PRTEN bit is clear.
15XSTOP: Extra stop bit. Setting this bit will cause the UART to transmit two stop bits after each
data byte, clearing it will transmit one stop bit after each data byte.
DS453PP2
Table 44. UBRLCR1-2 UART1-2
75
EP7209
BitDescription
16FIFOEN: Set to enable FIFO buffering of RX and TX data. Clear to disable the FIFO (i.e., set its
depth to one byte).
17:18WRDLEN: This two bit field selects the word length according to the table below.
The LCD control register is a 32-bit read/write register that controls the size of the LCD screen and
the operating mode of the LCD controller. Refer to the system description of the LCD controller for
more information on video buffer mapping.
The LCDCON register should only be reprogrammed when the LCD controller is disabled.
BitDescription
0:12Video buffer size: The video buffer size field is a 13-bit field that sets the total number of bits x
128 (quad words) in the video display buffer. This is calculated from the formula:
Video buffer size = (Total bits in video buffer / 128) – 1
i.e., for a 640 x 240 LCD and 4-bits per pixel, the size of the video buffer is equal to
614400 bits.
Video buffer = 640 x 240 x 4=614400 bits
Video buffer size field = (614400 / 128) – 1 = 4799 or 0x12BF hex.
The minimum value allowed is 3 for this bit field.
13:18Line length: The line length field is a 6-bit field that sets the number of pixels in one complete
line. This field is calculated from the formula:
line length = (Number of pixels in line / 16) – 1
i.e., for 640 x 240 LCD Line length = (640 / 16) – 1 = 39 or 0x27 hex.
The minimum value that can be programmed into this register is a 1 (i.e., 0 is not a legal value).
19:24Pixel prescale: The pixel prescale field is a 6-bit field that sets the pixel rate prescale. The pixel
rate is always derived from a 36.864 MHz clock when in PLL mode, and is calculated from the
formula: Pixel rate (MHz) = 36.864 / (Pixel prescale + 1)
When the EP7209 is operating at 13 MHz, pixel rate is given by the formula:
Pixel rate (MHz) = 13 / (Pixel prescale + 1)
The pixel prescale value can be expressed in terms of the LCD size by the formula:
When the EP7209 is operating @ 18.432 MHz:
Pixel prescale = (36864000 / (Refresh Rate x Total pixels in display)) – 1
When the EP7209 is operating @ 13 MHz:
Pixel prescale = (13000000 / (Refresh Rate x Total pixels in display)) – 1
Refresh Rate is the screen refresh frequency (70 Hz to avoid flicker)
The value should be rounded down to the nearest whole number and zero is illegal and will result
in no pixel clock.
EXAMPLE: For a system being operated in the 18.432–73.728 MHz mode, with a 640 x 240
screen size, and 70 Hz screen refresh rate desired, the LCD Pixel prescale equals
36.864E6/(70 x 640x240) – 1 = 2.428
Rounding 2.428 down to the nearest whole number equals 2.
This gives an actual pixel rate of 36.864E6 / (2+1) = 12.288 MHz
Which gives an actual refresh frequency of 12.288E6/(640x240) = 80 Hz.
NOTE:As the CL[2] low pulse ti me is doubled after every CL[1 ] high pulse this refresh fre-
quency is only an approximation, the accurate formula is 12.288E6/((640x240)+120) =
79.937 Hz.
DS453PP2
Table 45. LCDCON
77
EP7209
BitDescription
25:29AC prescale: The AC prescale field is a 5-bit number that sets the LCD AC bias frequency. This
frequency is the required AC bias frequency for a given manufacturer’s LCD plate. This frequency is derived from the frequency of the line clock (CL[1]). The LCD M signal will toggle after
n+1 counts of the line clock (CL[1]) where n is the number programmed into the AC prescale
field. This number must be chosen to match the manufacturer’s recommendation. This is normally 13, but must not be exactly divisible by the number of lines in the display.
30GSEN: Gray scale enable bit. Setting this bit enables gray scale output to the LCD. When this bit
is cleared each bit in the video map directly corresponds to a pixel in the display.
31GSMD: Gray sc ale m ode bit . Cl earing this bit se ts t he cont rol ler to 2-bit s pe r pix el (4 g ray sc ales),
setting it sets it to 4 bits per pixel (16 gray scales). This bit has no effect if GSEN is cleared.
Table 45. LCDCON (cont.)
5.10.2PALLSW Least Significant Word — LCD Palette Register
ADDRESS: 0x8000.0580
31:2827:2423:2019:1615:1211:87:43:0
Gray scale
value for pixel
value 7
Gray scale
value for pixel
value 6
Gray scale
value for pixel
value 5
Gray scale
value for pixel
value 4
Gray scale
value for pixel
value 3
Gray scale
value for pixel
value 2
Gray scale
value for pixel
value 1
Gray scale
value for pixel
value 0
The least and most significant word LCD palette registers make up a 64-bit read/write register which
maps the logical pixel value to a physical gray scale level. The 64-bit register is made up of 16 x 4-bit
nibbles, each nibble defines the gray scale level associated with the appropriate pixel value. If the
LCD controller is operating in two bits per pixel, only the lower 4 nibbles are valid (D[15:0] in the least
significant word). Similarly, one bit per pixel means only the lower 2 nibbles are valid (D[7:0]) in the
least significant word.
5.10.3PALMSW Most Significant Word — LCD Palette Register
ADDRESS: 0x8000.0540
31:2827:2423:2019:1615:1211:87:43:0
Gray scale
value for pixel
value 15
Gray scale
value for pixel
value 14
Gray scale
value for pixel
value 13
Gray scale
value for pixel
value 12
Gray scale
value for pixel
value 11
Gray scale
value for pixel
value 10
Gray scale
value for pixel
value 9
The pixel to gray scale level assignments and the actual physical color and pixel duty ratio for the gray
scale values are shown in Table 46. Note that colors 8–15 are the inverse o f color s 7–0 respectively.
This means that colors 7 and 8 are identical. Therefore, in reality only 15 gray scales available, not
16. The steps in the gray scale are non-linear, but have been chosen to give a close approximation
to perceived linear gray scales. The is due to the eye being more sensitive to changes in gray level
close to 50% gray (See PALLSW description).
This register contains the start address for the LCD Frame Buffer. It is assumed that the frame buffer
starts at location 0x0000000 within each chip select memory region. Therefore, the value stored within the FBADDR register is only the value of the chip select where the frame buffer is located. On reset,
this will be set to 0xC. The register is 4 bits wide (bits [3:0]). This register must only be reprogrammed
when the LCD is disabled (i.e., setting the LCDEN bit within SYSCON2 low).
5.11SSI Register
5.11.1SYNCIO Synchronous Serial ADC Interface Data Register
ADDRESS: a0x8000.0500
In the default mode, the bits in SYNCIO have the following meaning:
NOTE:The frame length in extended mode is 6 bits wide to allow up to 16 write bits, 1 null bit and 16 read bits
(= 33 cycles).
DS453PP2
79
EP7209
SYNCIO is a 32-bit read/write register. The data written to the SYNCIO register configures the master
only SSI. In default mode, the least significant byte is serialized and transmitted out of the synchronous serial interface1 (i.e., SSI1) to configure an external ADC, MSB first. In extended mode, a variable number of bits are sent from SYNCIO[16:31] as determined by the ADC Configuration Length.
The transfer clock will automatically be started at the programmed frequency and a synchronization
pulse will be issued. The ADCIN pin is sampled on every positive going clock edge (or the falling clock
edge, if ADCCKNSEN in SYSCON3 is set) and the result is shifted in to the SYNCIO read register.
During data transfer, the SSIBUSY bit is set high; at the end of a transfer the SSEOTI interrupt will be
asserted. In order to clear the interrupt the SYNCIO register must be read. The data read from the
SYNCIO register is the last sixteen bits shifted out of the ADC.
The length of the data frame can be programmed by writing to the SYNCIO register. This allows many
different ADCs to be accommodated. The device is SPI/Microwire compatible (transfers are in multiples of 8 bits). However, to be compatible with some non-SPI/Microwire devices, the data written to
the ADC device can be anything between 8 to 16 bits. This is user-definable as defined in the ADC
Configuration Extension section of the SYNCIO register.
BitDescription
0:7 or 0:6ADC Configuration Byte: When the ADCCON control bit in the SYSCON3 register = 0, this is
the 8-bit configuration data to be sent to the ADC. When the ADCCON control bit in the
SYSCON3 register = 1, this field determines the length of the ADC configuration data held in the
ADC Configuration Extension field for sending to the ADC.
8:12 or 7:12Frame length: The Frame Length Field is the total number of shift clocks required to complete a
data transfer.
In default mode, MAX148/9 (and for many ADCs), this is 25 = (8 for configuration byte + 1 null bit
+ 16 bits result).
In extended mode, AD7811/12, this is 23 = (10 for configuration byte + 3 null + 10 bits result).
13SMCKEN: Setting this bit will enable a free running sample clock at twice the programmed ADC
clock frequency to be output on the SMPLCK pin.
14TXFRMEN: Setting this bit will cause an ADC data transfer to be initiated. The value in the ADC
configuration field will be shifted out to the ADC and depending on the frame length programmed,
a number of bits will be captured from the ADC. If the SYNCIO register is written to with the
TXFRMEN bit low, no ADC transfer will take place, but the Frame length and SMCKEN bits will
be affected.
16:31ADC Configuration Extension: When the ADCCON control bit in the SYSCON3 register = 0
this field is ignored for compatibility with the CL-PS7111. When the ADCCON control bit in the
SYSCON3 register = 1, this field is the configuration data to be sent to the ADC. The ADC Configuration Extension field length is determined by the value held in the ADC Configuration Length
field (SYNCIO[6:0]).
Table 47. SYNCIO
5.12STFCLR Clear all ‘Start Up Reason’ flags location
ADDRESS: 0x8000.05C0
A write to this location will clear all the ‘Start Up Reason’ flags in the system flag s status reg ister SYS FLG. The ‘Start Up Reason’ flags should first read to determine the reason why the chip was started
(i.e., a new battery was installed). Any value may be written to this location.
80DS453PP2
5.13‘End Of Interrupt’ Locations
These locations are written to after the appropriate interrupt has been serviced. The write is performed to clear the interrupt status bit, so that other interrupts can be serviced. Any value may be written to these locations.
5.13.1BLEOI Battery Low End of Interrupt
ADDRESS: 0x8000.0600
A write to this location will clear the interrupt generated by a low battery (falling edge of BATOK with
nEXTPWR high).
5.13.2MCEOI Media Changed End of Interrupt
ADDRESS: 0x8000.0640
A write to this location will clear the interrupt generated by a falling edge of the nMEDCHG input pin.
5.13.3TEOI Tick End of Interrupt Location
ADDRESS: 0x8000.0680
A write to this location will clear the current pending tick interrupt and tick watch dog interrupt.
EP7209
5.13.4TC1EOI TC1 End of Interrupt Location
ADDRESS: 0x8000.06C0
A write to this location will clear the under flow interrupt generated by TC1.
DS453PP2
81
5.13.5TC2EOI TC2 End of Interrupt Location
ADDRESS: 0x8000.0700
A write to this location will clear the under flow interrupt generated by TC2.
5.13.6RTCEOI RTC Match End of Interrupt
ADDRESS: 0x8000.0740
A write to this location will clear the RTC match interrupt
5.13.7UMSEOI UART1 Modem Status Changed End of Interrupt
ADDRESS: 0x8000.0780
A write to this location will clear the modem status changed interrupt.
5.13.8COEOI Codec End of Interrupt Location
ADDRESS: 0x8000.07C0
A write to this location clears the sound interrupt (CSINT).
EP7209
5.13.9KBDEOI Keyboard End of Interrupt Location
ADDRESS: 0x8000.1700
A write to this location clears the KBDINT keyboard interrupt.
5.13.10 SRXEOF End of Interrupt Location
ADDRESS: 0x8000.1600
A write to this location clears the SSI2 RX FIFO overflow status bit.
5.14State Control Registers
5.14.1STDBY Enter the Standby State Location
ADDRESS: 0x8000.0840
A write to this location will put the system into the Standby State by halting the main oscillator. A write
to this location while there is an active interrupt will have no effect.
NOTES: 1) Before entering the Standby State, the LCD Controller should be disabled. The LCD
controller should be enabled on exit from the Standby State.
2) If the EP7209 is attempti ng to get into the Standby State when there is a pending
interrupt request, it will not enter into the low power mode. The instruction will get
executed, but the processor will ignore the command.
5.14.2HALT Enter the Idle State Location
ADDRESS: 0x8000.0800
A write to this location will put the system into the Idle State by halting the clock to the processor until
an interrupt is generated. A write to this location while there is an active interrupt will have no effect.
82DS453PP2
5.15SS2 Registers
5.15.1SS2DR Synchronous Serial Interface 2 Data Register
ADDRESS: 0x8000.1500
This is the 16-bit wide data register for the full-duplex master/slave SSI2 synchronous serial interface.
Writing data to this register will initiate a transfer. Writes need to be word writes and the bottom 16
bits are transferred to the TX FIFO. Reads will be 32 bits as well; the low 16 bits contain RX data and
the upper 16-bits should be ignored. Although the interface is byte-oriented, data is written in two
bytes at a time to allow higher bandwidth transfer. It is up to the software to assemble the bytes for
the data stream in an appropriate manner.
All reads/writes to this register must be word reads/writes.
5.15.2SS2POP Synchronous Serial Interface 2 Pop Residual Byte
ADDRESS: 0x8000.16C0
This is a write-only location which will cause the contents of the RX shift register to be popped into
the RX FIFO, thus enabling a residual byte to be read. The data value written to this register is ignored. This location should be used in conjunction with the RESVAL and RESFRM bits in the
SYSFLG2 register.
EP7209
5.16DAI Register Definitions
There are five registers within the DAI Interface, one control register, three data registers, and one
status register. The control register is used to mask or unmask interrupt requests to service the DAI’s
FIFOs, and to select whether an on-chip or off-chip clock is used to drive the bit rate, and to enable/disable operation. The first pair of data register addresses the top of the right channel transmit
FIFO and the bottom of the right channel receive FIFO. A read accesses the receive FIFOs, and a
write the transmit FIFOs. Note that these are four physically separate FIFOs to allow full-duplex transmission. The status register contains bits which signal FIFO overrun and underrun errors and transmit
and receive FIFO service requests. Each of these status conditions signal an interrupt request to the
interrupt controller. The status register also flags when the transmit FIFOs are not full when the receive FIFOs are not empty.
The DAI control register (DAIR) contains eight different bit fields that control various functions within
the DAI interface.
BitDescription
0:15
7
15
16
17
18
19
20
21
22
Reserved
Must be set to 0x0404
Reserved
Reserved
DAIEN: DAI Interface Enable
0 — DAI operation disabled, control of the SDIN, SDOUT, SCLKLRCK, and LRCK pins given to
the SSI2/codec/DAI pin mulitiplexing logic to assign I/O pins 60-64 to another block.
1 — DAI operation enabled
Note that by default, the SSI/CODEC have precedence over the DAI interface in regard to the
use of the I/O pins. Nevertheless, when Bit 3 (MCPSEL) of register SYSCON3 is set to 1, then
the above mentioned DAI ports are connected to I/O pins 60–64.
Must be 0.
LCTM: Left Channel Transmit FIFO Interrupt Mask
0 — Left Channel transmit FIFO half-full or less condition does not generate an interrupt (LCTS
bit ignored).
1 — Left Channel transmit FIFO half-full or less condition generates an interrupt (state of LCTS
sent to interrupt controller).
LCRM: Left Channel Receive FIFO Interrupt Mask
0 — Left Channel receive FIFO half-full or more condition does not generate an interrupt (LCRS
bit ignored).
1 — Left Channel receive FIFO half-full or more condition generates an interrupt (state of LCRS
sent to interrupt controller).
RCTM: Right Channel Transmit FIFO Interrupt Mask
0 — Right channel transmit FIFO half-full or less condition does not generate an interrupt (RCTS
bit ignored).
1 — Right channel transmit FIFO half-full or less condition generates an interrupt (state of RCTS
sent to interrupt controller).
RCRM: Right Channel Receive FIFO Interrupt Mask
0 — Right Channel receive FIFO half-full or more condition does not generate an interrupt
(RCRS bit ignored).
1 — Right Channel receive FIFO half-full or more condition generates an interrupt (state of RCRS
sent to interrupt controller).
Table 48. DAI Control Register
84DS453PP2
BitDescription
LBM: Loop Back Mode
23
24:31
0 — Normal serial port operation enabled
1 — Output of serial shifter is connected to input of serial shifter internally and control of SDIN,
SDOUT, SCLK, and LRCK pins is given to the PPC unit.
Reserved
Table 48. DAI Control Register (cont.)
5.16.1.1DAI Enable (DAIEN)
The DAI enable (DAIEN) bit is used to enable and disable all DAI operation.
When the DAI is disabled, all of its clocks are powered down to minimize power consumption. Note
that DAIEN is the only control bit within the DAI interface that is reset to a known state. It is cleared
to zero to ensure the DAI timing is disabled following a reset of the device.
When the DAI timing is enabled, SCLK begins to transition and the start of the first frame is signaled
by driving the LRCK pin low. The rising and falling-edge of LRCK coincides with the rising and fallingedge of SCLK. As long as the DAIEN bit is set, the DAI interface operates continuously, transmitting
and receiving 128 bit data frames. When the DAIEN bit is cleared, the DAI interface is disabled immediately, causing the current frame which is being transmitted to be terminated. Clearing DAIEN resets the DAI’s interface FIFOs. However DAI data register 3, the control register and the status
register are not reset. Therefore, the user must ensure these registers are properly reconfigured before re-enabling the DAI interface.
EP7209
5.16.1.2DAI Interrupt Generation
The DAI interface can generate four maskable interrupts and four non-maskable interrupts, as described in the sections below. Only one interrupt line is wired into the interrupt controller for the whole
DAI interface. This interrupt is the wired OR of all eight interrupts (after masking where appropriate).
The software servicing the interrupts must read the status register in the DAI to determine which
source(s) caused the interrupt. It is possible to prevent any DAI sources causing an interrupt by masking the DAI interrupt in the interrupt controller register.
The left channel sample transmit FIFO interrupt mask (LCTM) bit is used to mask or enable the left
channel sample transmit FIFO service request interrupt. When LATM = 0, the interrupt is masked and
the state of the left channel transmit FIFO service request (LCTS) bit within the DAI status register is
ignored by the interrupt controller. When LCTM = 1, the interrupt is enabled and whenever LCTS is
set (one) an interrupt request is made to the interrupt controller. Note that programming LCTM = 0
does not affect the current state of LCTS or the left channel transmit FIFO logic’s ability to set and
clear LCTS; it only blocks the generation of the interrupt request.
The left channel sample receive FIFO interrupt mask (LCRM) bit is used to mask or enable the left
channel receive FIFO service request interrupt. When LCRM = 0, the interrupt is masked and the
state of the left channel sample receive FIFO service request (LCRS) bit within the DAI status register
is ignored by the interrupt controller. When LCRM = 1, the interrupt is enabled and whenever LCRS
is set (one) an interrupt request is made to the interrupt controller. Note that programming LCRM = 0
does not affect the current state of LCRS or the left channel receive FIFO logic’s ability to set and
clear LCRS, it only blocks the generation of the interrupt request.
The right channel transmit FIFO interrupt mask (RCTM) bit is used to mask or enable the right channel
transmit FIFO service request interrupt. When RCTM = 0, the interrupt is masked and the state of the
right channel transmit FIFO service request (RCTS) bit within the DAI status register is ignored by the
interrupt controller. When RCTM = 1, the interrupt is enabled and whenever RCTS is set (one) an interrupt request is made to the interrupt controller. Note that programming RCTM = 0 does not affect
the current state of RCTS or the right channel transmit FIFO logic’s ability to set and clear RCTS; it
only blocks the generation of the interrupt request.
The right channel receive FIFO interrupt mask (RCRM) bit is used to mask or enable the right channel
receive FIFO service request interrupt. When RCRM = 0, the interrupt is masked and the state of the
right channel receive FIFO service request (RCRS) bit within the DAI status register is ignored by the
interrupt controller. When RCRM = 1, the interrupt is enabled and whenever RCRS is set (one) an
interrupt request is made to the interrupt controller. Note that programming RCRM = 0 does not affect
the current state of RCRS or the right channel receive FIFO logic’s ability to set and clear RCRS; it
only blocks the generation of the interrupt request.
5.16.1.7Loop Back Mode (LBM)
The loop back mode (LBM) bit is used to enable and disable the ability of the DAI’s transmit and receive logic to communicate. When LBM = 0, the DAI operates normally. The transmit and receive data
paths are independent and communicate via their respective pins. When LBM = 1, the output of the
serial shifter (MSB) is directly connected to the input of the serial shifter (LSB) internally and control
of the SDOUT, SDIN, SCLK, and LRCK pins are given to the peripheral pin control (PPC) unit.
EP7209
Table 48 shows the bit locations corresponding to the ten different control bit fields within the DAI con-
trol register. Note that the DAIEN bit is the only control bit which is reset to a known state to ensure
the DAI is disabled following a reset of the device. The reset state of all other control bits is unknown
and must be initialized before enabling the DAI. Writes to reserved bits are ignored and reads return
zeros.
86DS453PP2
EP7209
5.16.2DAI Data Registers
The DAI contains three data registers: DAIDR0 addresses the top entry of the right channel transmit FIFO
and bottom entry of the right channel receive FIFO; DAIDR1 addresses the top and bottom entry of the
left channel transmit and receive FIF Os, respecti vel y; and DAIDR2 is used to perform enable and dis able
the DAI FIFOs.
5.16.2.1DAI Data Register 0
ADDRESS: 0x8000.2040
31:1615:0
ReservedBottom of Right Channel Receive FIFO
Read Access
31:1615:0
ReservedTop of Right Channel Transmit FIFO
Write Access
When DAI Data Register 0 (DAIDR0) is read, the bottom entry of the right channel receive FIFO is
accessed. As data is removed by the DAI’s receive logic from the incoming data frame, it is placed
into the top entry of the right channel receive FIFO and is transferred down an entry at a time until it
reaches the last empty location within the FIFO. Data is removed by reading DAIDR0, which accesses
the bottom entry of the right channel FIFO. After DAIDR0 is read, the bottom entry is invalidated, and
all remaining values within the FIFO automatically transfer down one location.
When DAIDR0 is written, the top-most entry of the right channel transmit FIFO is accessed. After a
write, data is automatically transferred down to the lowest location within the transmit FIFO which
does not already contain valid data. Data is removed from the bottom of the FIFO one value at a time
by the transmit logic, loaded into the correct position within the 64-bit transmit serial shifter, then serially shifted out onto the SDOUT pin.
Table 49 shows DAIDR0. Note that the transmit and receive right channel FIFOs are cleared when
the device is reset, or by writing a zero to DAIEN (DAI disabled). Also, note that writes to reserved
bits are ignored and reads return zeros.
BitDescription
RIGHT CHANNEL DATA: Transmit/Receive right channel FIFO Data
0:15
16:31
Read — Bottom of Right Channel Receive FIFO data
Write — Top of Right Channel Transmit FIFO data
Reserved
Table 49. DAI Data Register 0
DS453PP2
87
5.16.2.2DAI Data Register 1
ADDRESS: 0x8000.2080
31:1615:0
ReservedBottom of Left Channel Receive FIFO
31:1615:0
ReservedTop of Left Channel Transmit FIFO
When DAI Data Register 1 (DAIDR1) is read, the bottom entry of the left channel receive FIFO is accessed. As data is removed by the DAI’s receive logic from the incoming data frame, it is placed into
the top entry of the left channel receive FIFO and is transferred down an entry at a time until it reaches
the last empty location within the FIFO. Data is removed by reading DAIDR1, which accesses the bottom entry of the left channel FIFO. After DAIDR1 is read, the bottom entry is invalidated, and all remaining values within the FIFO automatically transfer down one location.
When DAIDR1 is written, the top-most entry of the left channel transmit FIFO is accessed. After a
write, data is automatically transferred down to the lowest location within the transmit FIFO which
does not already contain valid data. Data is removed from the bottom of the FIFO one value at a time
by the transmit logic. It is then loaded into the correct position within the 64-bit transmit serial shifter
then serially shifted out onto the SDOUT pin.
EP7209
Read Access
Write Access
Table 50 shows DAIDR1. Note that the transmit and receive left channel FIFOs are cleared when the
device is reset, or by writing a zero to DAIEN (DAI disabled). Also, note that writes to reserved bits
are ignored and reads return zeros
BitDescription
LEFT CHANNEL DATA: Transmit/Receive left channel FIFO Data
0:15
16:31
Read — Bottom of Left Channel Receive FIFO data
Write — Top of Left Channel Transmit FIFO data
Reserved
5.16.2.3DAI Data Register 2
ADDRESS: 0x8000.20C0
DAIDR2 contains 21 bits and is used to enable and disable the FIFOs for the left and right channels
of the DAI data stream. The left channel FIFO is enabled by writing 0x000D.C000 and disabled by
writing 0x000D.0000. The right channel FIFO is enabled by writing 0x0011.C000 and disabled by writing 0x0011.0000. After writing a value to this register, wait until the FIFO operation complete bit
(FIFO) is set in the DAI status register before writing another value to this register.
.
Table 50. DAI Data Register 1
88DS453PP2
5.16.3DAI Status Register
ADDRESS: 0x8000.2100
The DAI Status Register (DAISR) contains bits which signal FIFO overrun and underrun errors and
FIFO service requests. Each of these conditions signal an interrupt request to the interrupt controller.
The status register also flags when transmit FIFOs are not full, when the receive FIFOs are not empty,
when a FIFO operation is complete, and when the right channel or left channel portion of the codec
is enabled (no interrupt generated).
Bits which cause an interrupt signal the interrupt request as long as the bit is set. Once the bit is
cleared, the interrupt is cleared. Read/write bits are called status bits, read-only bits are called flags.
Status bi ts ar e re ferr ed to as “sticky” (once set by hardware, they must be cleared by software). Writing a one to a sticky status bit clears it, writing a zero has no effect. Read-only flags are set and
cleared by hardware, and writes have no effect. Additionally some bits which cause interrupts have
corresponding mask bits in the control register and are indicated in the section headings below. Note
that the user has the ability to mask all DAI interrupts by clearing the DAI bit within the interrupt controller mask register INTMR3.
5.16.3.1Right Channel Transmit FIFO Service Request Flag (RCTS)
The right channel transmit FIFO service request flag (RCTS) is a read-only bit which is set when the
right channel transmit FIFO is nearly empty and requires service to prevent an underrun. RCTS is set
any time the right channel transmit FIFO has four or fewer entries of valid data (half full or less), and
is cleared when it has five or more entries of valid data. When the RCTS bit is set, an interrupt request
is made unless the right channel transmit FIFO interrupt request mask (RCTM) bit is cleared. After
the CPU fills the FIFO such that four or more locations are filled within the right channel transmit FIFO,
the RCTS flag (and the service request and/or interrupt) is automatically cleared.
EP7209
5.16.3.2Right Channel Receive FIFO Service Request Flag (RCRS)
The right channel receive FIFO service request flag (RCRS) is a read-only bit which is set when the
right channel receive FIFO is nearly filled and requires service to prevent an overrun. RCRS is set
any time the right channel receive FIFO has six or more entries of valid data (half full or more), and
cleared when it has five or fewer (less than half full) entries of data. When the RCRS bit is set, an
interrupt request is made unless the right channel receive FIFO interrupt request mask (RCRM) bit is
cleared. After six or more entries are removed from the receive FIFO, the LCRS flag (and the service
request and/or interrupt) is automatically cleared.
5.16.3.3Left Channel Transmit FIFO Service Request Flag (LCTS)
The left channel transmit FIFO service request flag (LCTS) is a read-only bit which is set when the
left channel transmit FIFO is nearly empty and requires service to prevent an underrun. LCTS is set
any time the left channel transmit FIFO has four or fewer entries of valid data (half full or less), and is
cleared when it has five or more entries of valid data. When the LCTS bit is set, an interrupt request
is made unless the left channel transmit FIFO interrupt request mask (LCTM) bit is cleared. After the
CPU fills the FIFO such that four or more locations are filled within the left channel transmit FIFO, the
LCTS flag (and the service request and/or interrupt) is automatically cleared.
DS453PP2
89
5.16.3.4Left Channel Receive FIFO Service Request Flag (LCRS)
The left channel receive FIFO service request flag (LCRS) is a read-only bit which is set when the left
channel receive FIFO is nearly filled and requires service to prevent an overrun. LCRS is set any time
the left channel receive FIFO has six or more entries of valid data (half full or more), and cleared when
it has five or fewer (less than half full) entries of data. When the LCRS bit is set, an interrupt request
is made unless the left channel receive FIFO interrupt request mask (LCRM) bit is cleared. After six
or more entries are removed from the receive FIFO, the LCRS flag (and the service request and/or
interrupt) is automatically cleared.
5.16.3.5Right Channel Transmit FIFO Underrun Status (RCTU)
The right channel transmit FIFO underrun status bit (RCTU) is set when the right channel transmit
logic attempts to fetch data from the FIFO after it has been completely emptied. When an underrun
occurs, the right channel transmit logic continuously transmits the last valid right channel value which
was transmitted before the underrun occurred. Once data is placed in the FIFO and it is transferred
down to the bottom, the right channel transmit logic uses the new value within the FIFO for transmission. When the RCTU bit is set, an interrupt request is made.
5.16.3.6Right Channel Receive FIFO Overrun Status (RCRO)
The right channel receive FIFO overrun status bit (RCRO) is set when the right channel receive logic
attempts to place data into the right channel receive FIFO after it has been completely filled. Each
time a new piece of data is received, the set signal to the RCRO status bit is asserted, and the newly
received data is discarded. This process is repeated for each new sample received until at least one
empty FIFO entry exists. When the RCRO bit is set, an interrupt request is made.
EP7209
5.16.3.7Left Channel Transmit FIFO Underrun Status (LCTU)
The left channel transmit FIFO underrun status bit (LCTU) is set when the left channel transmit logic
attempts to fetch data from the FIFO after it has been completely emptied. When an underrun occurs,
the left channel transmit logic continuously transmits the last valid left channel value which was transmitted before the underrun occurred. Once data is placed in the FIFO and it is transferred down to the
bottom, the left channel transmit logic uses the new value within the FIFO for transmission. When the
LCTU bit is set, an interrupt request is made.
5.16.3.8Left Channel Receive FIFO Overrun Status (LCRO)
The left channel receive FIFO overrun status bit (LCRO) is set when the left channel receive logic
places data into the left channel receive FIFO after it has been completely filled. Each time a new
piece of data is received, the set signal to the LCRO status bit is asserted, and the newly received
sample is discarded. This process is repeated for each new piece of data received until at least one
empty FIFO entry exists. When the LCRO bit is set, an interrupt request is made.
5.16.3.9Right Channel Transmit FIFO Not Full Flag (RCNF)
The right channel transmit FIFO not full flag (RCNF) is a read-only bit which is set whenever the right
channel transmit FIFO contains one or more entries which do not contain valid data and is cleared
when the FIFO is completely full. This bit can be polled when using programmed I/O to fill the right
channel transmit FIFO. This bit does not request an interrupt.
5.16.3.10 Right Channel Receive FIFO Not Empty Flag (RCNE)
The right channel receive FIFO not empty flag (RCNELCNF) is a read-only bit which is set when ever
the right channel receive FIFO contains one or more entries of valid data and is cleared when it no
longer contains any valid data. This bit can be polled when using programmed I/O to remove remaining data from the receive FIFO. This bit does not request an interrupt.
90DS453PP2
5.16.3.11 Left Channel Transmit FIFO Not Full Flag (LCNF)
The left channel transmit FIFO not full flag (LCNF) is a read-only bit which is set when ever the left
channel transmit FIFO contains one or more entries which do not contain valid data. It is cleared when
the FIFO is completely full. This bit can be polled when using programmed I/O to fill the left channel
transmit FIFO. This bit does not request an interrupt.
5.16.3.12 Left Channel Receive FIFO Not Empty Flag (LCNE)
The left channel receive FIFO not empty flag (LCNE) is a read-only bit which is set when ever the left
channel receive FIFO contains one or more entries of valid data and is cleared when it no longer contains any valid data. This bit can be polled when using programmed I/O to remove remaining data
from the receive FIFO. This bit does not request an interrupt.
5.16.3.13 FIFO Operation Completed Flag (FIFO)
The FIFO operation completed (FIFO) flag is set after the FIFO operation requested by writing to
DAIDR2 as completed.
FIFO is automatically cleared when DAIDR2 is read or written. This bit does not request an interrupt.
31:13121110987
ReservedFIFOLCNELCNFRCNERCNFRCCELCRO
6543210
RCNFLCTULCRORCROLCTURCTULCRSLCTSLCRSRCRSLCTSRCTS
EP7209
BitDescription
RCTS: Right Channel Transmit FIFO Service Request Flag (read-only)
0 — right channel transmit FIFO is more than half full (five or more entries filled) or DAI disabled
0
1
2
3
1 — right channel transmit FIFO is half full or less (four or fewer entries filled) and DAI operation
is enabled, interrupt request signaled if not masked
(if RCTM = 1)
RCRS: Right Channel Receive FIFO Service Request (read-only)
0 — right channel receive FIFO is less than half full (five or fewer entries filled) or DAI disabled
1 — right channel receive FIFO is half full or more (six or more entries filled) and DAI operation
is enabled, interrupt request signaled if not masked (if RCRM = 1)
LCTS: Left Channel Transmit FIFO Service Request Flag (read-only)
0 — Left Channel transmit FIFO is more than half full or less (four or fewer entries filled) or DAI
disabled.
1 — Left Channel transmit FIFO is half full or less (four or fewer entries filled) and DAI operation
is enabled, interrupt request signaled if not masked
(if LCTM = 1)
LCRS: 0 — Left Channel receive FIFO is less than half full (five or fewer entries filled) or DAI
disabled.
1 — Left Channel receive FIFO is half full or more (six or more entries filled) and DAI operation
is enabled, interrupt request signalled if not masked (if LCRM = 1)
Table 51. DAI Control, Data and Status Register Locations
DS453PP2
91
BitDescription
Right Channel Transmit FIFO Underrun
4
0 — Right Channel transmit FIFO has not experienced an underrun
1 — Right Channel transmit logic attempted to fetch data from transmit FIFO while it was empty,
request interrupt
RCRO: Right Channel Receive FIFO Overrun
5
0 — Right Channel receive FIFO has not experienced an overrun
1 — Right Channel receive logic attempted to place data into receive FIFO while it was full,
request interrupt
LCTU: Left Channel Transmit FIFO Underrun
6
0 — Left Channel transmit FIFO has not experienced an underrun
1 — Left Channel transmit logic attempted to fetch data from transmit FIFO while it was empty,
request interrupt
LCRO: Left Channel Receive FIFO Overrun
7
0 — Left Channel receive FIFO has not experienced an overrun
1 — Left Channel receive logic attempted to place data into receive FIFO while it was full,
request interrupt
RCNF: Right Channel Transmit FIFO Not Full (read-only)
8
0 — Right Channel transmit FIFO is full
1 — Right Channel transmit FIFO is not full
RCNE: Right Channel Receive FIFO Not Empty (read-only)
9
0 — Right Channel receive FIFO is empty
1 — Right Channel receive FIFO is not empty
LCNF: LCNETelecom Transmit FIFO Not Full (read-only)
10
0 — Left Channel transmit FIFO is full
1 — Left Channel transmit FIFO is not full
LCNE: Left Channel Receive FIFO Not Empty (read-only)
11
0 — Left Channel receive FIFO is empty
1 — Left Channel receive FIFO is not empty
FIFO: FIFO Operation Completed (read-only)
12
0 — A FIFO Operation has not completed since the last time this bit was cleared
1 — THe FIFO Operation was completed
13
14
15
16:31
Reserved
Reserved
Reserved
Reserved
EP7209
Table 51. DAI Control, Data and Status Register Locations (cont.)
92DS453PP2
6. ELECTRICAL SPECIFICATIONS
6.1Absolute Maximum Ratings
DC Core, PLL, and RTC Supply Voltage2.9 V
DC I/O Supply Voltage (Pad Ring)3.6 V
DC Pad Input Current
±10 mA/pin; ±100 mA cumulative
Storage Temperature, No Power–40°C to +125°C
Table 52. absolute Maximum Ratings
6.2Recommended Operating Conditions
DC core, PLL, and RTC Supply Voltage2.5 V ± 0.2 V
DC I/O Supply Voltage (Pad Ring)2.3V - 3.6V
DC Input/Output VoltageO–I/O supply voltage
Operating Temperature0
Table 53. Recommended Operating Conditions
°C to +70°C
EP7209
6.3DC Characteristics
All characteristics are specified at VDD = 2.5 volts and VSS = 0 volts over an operating temperature of 0°C
to +70°C for all frequencies of operation. The current consumption figures relate to typical conditions at
2.5 V, 18.432 MHz operation with the PLL switched ‘on.’
SymbolParameterMinMaxUnitConditions
VIH
VIL
VT+
VT-
Vhst
VOH
VOL
IIN
CMOS input high voltage
CMOS input low voltage
Schmitt trigger positive going
threshold
Schmitt trigger negative going
threshold
Schmitt trigger hysteresis
CMOS output high voltage
Output drive 1
Output drive 2
CMOS output low voltage
Output drive 1
Output drive 2
Input leakage current
1.7
-0.30.8V
1.6 (Typ)2.0V
0.81.2 (Typ)V
0.10.4V
VDD – 0.2
2.5
2.5
V
+ 0.3
DD
0.3
0.5
0.5
1µA
V
V
V
V
V
V
V
V
= 2.5 V
DD
V
= 2.5 V
DD
VIL to VIH
IOH = 0.1 mA
OH = 4 mA
OH = 12 mA
IOL = –0.1 mA
OL = –4 mA
OL = –12 mA
VIN = VDD or GND
IOZ
CIN
DS453PP2
Output tri-state leakage current*
Input capacitance
25100µA
810pF
Table 54. DC Characteristics
VOUT = VDD or GND
93
SymbolParameterMinMaxUnitConditions
COUT
CI/O
Output capacitance
Transceiver capacitance
Startup current consumption
810pF
810pF
Initial 100 ms from power up,
32 kHz oscillator not stable,
IDD
startup
POR signal at VIL, all other
µA
I/O static, VIH = V
VIL = GND ± 0.1 V
IDD
standby
Standby current consumption
4µA
Just 32 kHz oscillator running,
all other I/O static, VIH = V
± 0.1V, VIL = GND ± 0.1 V
IDD
IDD
operating
V
DDstandby
idle
Idle current consumption
At 13 MHz
At 18 MHz
At 36 MHz
Operating current consumption
At 13 MHz
At 18 MHz
At 36 MHz
At 49 MHz
At 74 MHz
Standby supply voltage
4.2
6
12
14
20
40
50
68
TBDV
Both oscillators running, CPU
static, LCD refresh active, VIH
mA
= V
± 0.1 V, VIL = GND ±
DD
0.1 V
All system active, running typ-
ical program
mA
Minimum standby voltage for
state retention and RTC operation only
EP7209
± 0.1 V,
DD
DD
NOTE:All power diss ipation values can be der ived from taking the particul ar IDD current and mult iplying by
2.5 V.
The RTC of the EP7209 should be brought up at room temperature. This is required because the RTC
OSC will NOT function properly if it is brought up at –40
down to –40
°C.
°C. Once operational, it will continue to operate
A typical design will provide 3.3 V to the I/O supply (i.e., VDDIO), and 2.5 V to the remaining logic. This
is to allow the I/O to be compatible with 3.3 V powered external logic (i.e., 3.3 V DRAMs).
Pull-up current = 50 µA typical at V
= 3.3 volts.
DD
Table 54. DC Characteristics (cont.)
94DS453PP2
EP7209
6.4AC Characteristics
All characteristics are spec ified a t VDD = 2.3 to 2.7 volts and VSS = 0 volts over an operating temperature
of 0°C to +70°C. Those characteristics marked with a # will be significantly different for 13 MHz mode
because the EXPCLK is provided as an input rather than generated internally. These timings are estimated
at present. The timing values are referenced to 1/2 V
SymbolParameter13 MHz18/36 MHzUnits
t1Falling CS to data bus Hi-Z0 350 25ns
t2Address change to valid write data0 45035ns
t3DATA in to falling EXPCLK setup time0 #—18—ns
t4DATA in to falling EXPCLK hold time10 #—0—ns
t5EXPRDY to falling EXPCLK setup time0 #—18—ns
t6Falling EXPCLK to EXPRDY hold time10 # 50050ns
t7Rising nMWE to data invalid hold time10—5—ns
t8Sequential data valid to falling NMWE setup time–1010–1010ns
t15LCD CL2 low time803,475803,475ns
t16LCD CL2 high time803,475803,475ns
t17LCD falling CL[2] to rising CL[1] delay025025ns
t18L CD falling CL[1] to rising CL[2]803,475803,475ns
t19LCD CL[1] high time803,475803,475ns
t20LCD falling CL[1] to falling CL[2]2006,9502006,950ns
t21LCD falling CL[1] to FRM toggle30010,42530010,425ns
t22LCD falling CL[1] to M toggle–1020–1020ns
t23LCD rising CL[2] to display data change–1020–1020ns
t24Falling EXPCLK to address valid—33 #—5ns
t25Data valid to falling nMWE for non sequential access only5—5—ns
t31SSICLK period (slave mode)05120512kHz
t32SSICLK high92510259251025ns
t33SSICLK low92510259251025ns
t34SSICLK rise/fall time77ns
t35SSICLK rising to RX and/or TX frame sync528528ns
t36SSICLK rising edge to frame sync low448448ns
t37SSICLK rising edge to TX data valid8080ns
t38SSIRXDA data set-up time3030ns
t39SSIRXDA data hold time4040ns
t40SSITXFR and/or SSIRXFR period750750ns
The values for 36 MHz include 1 wait state, the 18 MHz values have 0 wait states.
DD
.
MinMaxMinMax
DS453PP2
Table 55. AC Timing Characteristics
95
EP7209
SymbolCharacteristics13 MHz18 MHz36 MHzUnits
MinMaxMinMaxMinMax
t
nCSRD
t
nCSWR
t
EXBST
Negative strobe (nCS[0:5]) zero
wait state read access time
Negative strobe (nCS[0:5]) zero
wait state write access time
Sequential expansion burst mode
read access time
1207035ns
1207035ns
553535ns
The values for 36 MHz include 1 wait state, the 18 MHz values have 0 waits
tates.
Table 56. Timing Characteristics
96DS453PP2
t3
eXPCLK
nCS[5:0]
nMOE
A[27:0]
WORD
EP7209
tNCSRD
t1
tPCSRD
D[31:0]
t5t6
eXPRDY
NOTES:1) tnCSR D = 50 ns at 36.86 4 MH z
70 ns at 18.432 MHz
120 ns at 13.0 MHz
Maximum values for minimum wait states. This time can be extended by integer multiples of the
clock period (27 ns at 36 MHz, 54 ns at 18.432 MHz, and 77 ns at 1 MHz), by either driving
EXPRDY low and/or by programming a number of wait states. EXPRDY is sampled on the falling
edge of EXPCLK before the data transfer. If low at this point, the transfer is delayed by one clock
period where EXPRDY is sampled again. EXPCLK need not be referenced when driving
EXPRDY, but is shown for clarity.
2) Consecutive reads with sequential access enabled are identical except that the sequential
access wait s tate field is used to determine the nu mber of wait states, and no idle cycles are
inserted between successive non-sequential ROM/expansion cycles. This improves performance so the SQAEN bit should always be set where possible.
3) tnCSRD = tADRD = tPCSRD
Figure 13. Consecutive Memory Read Cycles with Minimum Wait States
tADRD
t4t3
Data inBus heldData in
t4
DS453PP2
97
EXPCLK
nCS[5:0]
nMOE
A[27:4]
WORD
EP7209
tEXBSTtEXBST
048
t1
tEXRD
D[31:0]
t5t6
EXPRDY
NOTES:1) tEXBST = 35 ns at 36.864 MHz
35 ns at 18.432 MHz
55 ns at 13.0 MHz
(Value for 36.864 MHz assumes 1 wait state.)
Maximum values for minimum wait states. This time can be extended by integer multiples of the
clock period (27 nsec at 36 MHz, 54 nsec at 18.432 MHz and 77 ns at 13 MHz), by either driving
EXPRDY low and/or by programming a number of wait states. EXPRDY is sampled on the falling
edge of EXPCLK before the data transfer. If low at this point, the transfer is delayed by one clock
period where EXPR DY is sampled again. EXPCLK need not be re ferenced when driving
EXPRDY, but is shown for clarity.
2) Consecutive reads with sequential access enabled are identical except that the sequential
access wait state field is used to de termine the number of wait states, and no idle cycles are
inserted betwee n successive non- sequential ROM/ex pansion cycles. Thi s improves performance so the SQAEN bit should always be set where possible.
Figure 14. Sequential Page Mode Read Cycles with Minimum Wait States
t3
t4
Data inBus heldData inData in
t4t3t4
t3
98DS453PP2
eXPCLK
EP7209
nCS[5:0]
nMWE
A[27:0]
WORD
D[31:0]
EXPRDY
t2t7
Bus heldWrite data
tnCSWR
t8
Write data
t5
NOTES:1) tnCSWR = 35 nsec at 36.864 MHz
70 ns at 18.432 MHz
120 ns at 13.0 MHz
tADWR
t2
t6
DS453PP2
Maximum values for minimum wait states. This time can be extended by integer multiples of the
clock period (27 nse c at 36 MHz, 54 ns ec at 18.432 MHz, a nd 77 nsec at 13 MHz) , by either
driving EXPRDY low and/or by programming a number of wait states. EXPRDY is sampled on
the falling edge of EXPCLK before the data transfer. If low at this point, the transfer is delayed
by one clock period where EXPRDY is sampled again. EXPCLK need not be referenced when
driving EXPRDY, but is shown for clarity.
2) Consecutive reads with sequential access enabled are identical except that the sequential
access wait state field is us ed to determin e the number of wa it states, and no idle c ycles are
inserted between successive non-sequential ROM/expansion cycles. This improves performance so the SQAEN bit should always be set where possible.
3) Zero wait states for sequential writes is not permitted for memory devices which use nMWE pin,
as this cannot be driven with valid timing under zero wait state conditions.
Figure 15. Consecutive Memory Write Cycles with Minimum Wait States
99
CL[2]
EP7209
t15t20t16
CL[1]
FRM
DD[3:0]
NOTES:
t17
t19
M
t23
t18
t21
t22
1) The figure shows the end of a line.
2) If FRM is high during the CL[1] pulse, this marks the first line in the display.
3) CL[2] low time is doubled during the CL[1] high pulse
Figure 16. LCD Controller Timings
ADCCLK
(SCLK)
nADCCS
(nRFS/TFS)
ADCIN
(Din)
ADCOUT
(Dout)
1
DI9DI8DI7DI6
3
2
4
57
6
DI5DI4DI3 DI2DI1DI0
8
10
9
Figure 17. SSI Interface for AD7811/2
11
12
13
14
15
23
22
DO1 DO0DO9 DO8
100DS453PP2
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.