2 Overview
eCOG1X is a member of the Cyan
Technology eCOG1 family of low cost, low power microcontrollers
targeting embedded communications applications. It shares the
16-bit processor core with the eCOG1k devices and offers higher
performance, more memory and a number of new peripherals.
Development of application software
for eCOG1X is supported by a comprehensive software toolkit called
CyanIDE that includes:
- Project tools
- Source code editor
- ANSI C compiler
- Macro assembler
- eICE debugger
- Simulator
2.1 eCOG1X Block Diagram
2.2 Feature List
- 70 MHz, 16 bit Harvard
architecture CPU with 16 bit address range in data space and
24 bit address range in code space, vectored interrupts,
interrupt register set, most instructions complete in one
cycle, low power sleep mode.
- Powerful instruction set
including arithmetic operations, flexible addressing modes and
register to register moves.
- Embedded debug via eICE
interface, allows code download, stop, run, step operations
and multiple break points. JTAG port provides access for test,
boundary scan and fast flash memory programming.
- Memory management unit combines
internal and external memories transparently into single
memory map, allowing memories to be mapped into both code and
data space.
- 512K bytes (256K x 16
bits) of embedded flash memory, page erase, word programmable
by eICE or application.
- 24K bytes (12K x 16 bits) of
internal high-speed SRAM.
- External memory interface
supporting a variety of standard SRAM and SDRAM devices,
available to both code and data spaces. Two external chip
select outputs.
- External Host Interface
supporting DMA transfers, 16/32-bit data bus with handshaking
and circular buffers.
- 10/100 Mbits/s Ethernet MAC
with standard MII interface to external PHY device. Fast,
efficient DMA to internal memory, supporting chained or ring
based buffer descriptors.
- USB 2.0 compatible peripheral
supporting low speed, high speed and On-The-Go modes. Internal
PHY supports both low speed and high speed modes. Optional
support for external PHY and ULPI.
- 2 x dual UARTs giving a total
of four asynchronous serial ports with programmable baud rate,
start, stop and parity generation, double buffered interface
and received frame error detection.
- Dual independent
synchronous/asynchronous multi-protocol serial ports
supporting any two of I2C, SPI, smart card, infra-red and user
defined serial protocols.
- Dedicated dual smart card
interface supporting ISO-7816 and EMV 2000 standards.
- I2S interface for digital audio
data streams.
- Enhanced SPI peripheral with up
to four chip select signals in both master and slave modes.
Supports multiple data transfers with programmable delay
times.
- LCD controller supporting
direct drive and multiplexed displays with up to four
backplane and 32 segment outputs.
- 120 GPIO bits individually
configurable as input, output, normal or open drain, and can
generate interrupts on defined level or edge.
- Two 8/16 bit parallel ports
configured as input or output, normal or open drain, for
connection to external parallel devices.
- Seven 16 bit timer/counters and
one 24 bit long interval timer. Timers generate interrupts
which can be used to wake up the CPU.
- Six-channel MCPWM timer block
for motor control applications.
- Two channel 12-bit successive
approximation ADC with simultaneous sampling at up to 200 kHz.
Differential or single ended inputs with seven-way analogue
multiplexer. Internal or external reference voltage.
Selectable resolution, sample rate and conversion start.
- Two channel 12-bit DAC with
software or hardware triggered updates.
- Integrated temperature sensor
and supply voltage measurement.
- 32.768 kHz and 8.0 MHz crystal
oscillators with phase locked loop multiplier/dividers.
Additional low power relaxation oscillator, with frequency set
by an external resistor (on the 208BGA package only).
Automatic clock source selection at power on.
- Extensive power control
features with separate clock and reset signals to peripherals
and processor core.
- Individual peripherals can
remain powered up and active while the CPU is in Sleep
Mode.
- Industrial operating
temperature range: -40°C to +85°C.
The device pins are connected to
19 I/O ports labelled A to T, of which 8 ports are 4 bits wide
and 11 ports are 8 bits wide. Different peripheral functions can
be mapped to these ports to define the operation of each pin.
The method for configuring the ports is described in Section 8, Port Configurator, and the
relationship between ports and pins is described in See Port Select Options.
2.3 eCOG1X Options
The eCOG1X is available in a
range of packages and functional options. The following table
summarises the different devices available and gives their part
numbers.
Table 2: eCOG1X variants
|
Product no.
|
Flash
|
ETH
|
USB
|
ADC
|
DAC
|
I/Os
|
Package
|
|
eCOG1X0A5
|
512K
|
|
|
|
|
44
|
68QFN
|
|
eCOG1X1A5
|
512K
|
|
|
4
|
2
|
36
|
68QFN
|
|
eCOG1X4A5
|
512K
|
|
Y
|
|
|
40
|
68QFN
|
|
eCOG1X5A5
|
512K
|
|
Y
|
4
|
2
|
32
|
68QFN
|
|
eCOG1X8A5
|
512K
|
Y
|
|
|
|
44
|
68QFN
|
|
eCOG1X9A5
|
512K
|
Y
|
|
4
|
2
|
36
|
68QFN
|
|
|
|
eCOG1X10B5
|
512K
|
Y
|
|
11
|
2
|
60
|
100QFN
|
|
eCOG1X14B5
|
512K
|
Y
|
Y
|
11
|
2
|
56
|
100QFN
|
|
|
|
eCOG1X10Z5
|
512K
|
Y
|
|
14
|
2
|
120
|
208BGA
|
|
eCOG1X14Z5
|
512K
|
Y
|
Y
|
14
|
2
|
120
|
208BGA
|
Package diagrams and pin
descriptions for the eCOG1X device variants are given in
Appendix A.
2.4 Pin Functions
The following table lists eCOG1X
pin names and functions. Note that not all pins are present on
all devices, depending on package or functional options.
Table 3: eCOG1X pin
functions
|
Label
|
Function
|
I/O
|
|
ADC1_Vin1-7
|
ADC1 analogue inputs
|
I
|
|
ADC2_Vin1-7
|
ADC2 analogue inputs
|
I
|
|
AGND
|
Analogue GND
|
PWR
|
|
AVDD
|
Analogue power supply
1.8V
|
PWR
|
|
DAC1
|
DAC1 analogue output
|
O
|
|
DAC2
|
DAC2 analogue output
|
O
|
|
eICE_CLOCK
|
eICE clock input
|
I
|
|
eICE_LOADB 1
|
eICE Load Byte handshake
signal
|
I/O
|
|
eICE_MISO
|
eICE Master In Slave
Out
|
O
|
|
eICE_MOSI
|
eICE Master Out Slave
In
|
I
|
|
EMAC_TXD0-3
|
Ethernet MAC Transmit
Data
|
O
|
|
EMAC_RXD0-3
|
Ethernet MAC Received
Data
|
I
|
|
EMAC_CLKT
|
Ethernet MAC Transmit
Clock
|
I
|
|
EMAC_CLKR
|
Ethernet MAC Receive
Clock
|
I
|
|
EMAC_RXER
|
Ethernet MAC Receive
Error
|
I
|
|
EMAC_RXDV
|
Ethernet MAC Received Data
Valid
|
I
|
|
EMAC_COL
|
Ethernet MAC Collision
Detect
|
I
|
|
EMAC_CRS
|
Ethernet MAC Carrier
Sense
|
I
|
|
EMAC_TXEN
|
Ethernet MAC Transmit
Enable
|
O
|
|
EMAC_TXER
|
Ethernet MAC Transmit
Error
|
O
|
|
FIL 2
|
External low PLL
filter
|
|
|
GND 3
|
Digital GND
|
PWR
|
|
High_XTAL_In 4
|
High frequency crystal
oscillator input
|
I
|
|
High_XTAL_Out 4
|
High frequency crystal
oscillator output
|
O
|
|
IVDD
|
Internal core logic power
supply 1.8V
|
PWR
|
|
JTCLK
|
JTAG Test Clock input
|
I
|
|
JTDI
|
JTAG Test Data Input
|
I
|
|
JTDO
|
JTAG Test Data Output
|
O
|
|
JTMS
|
JTAG Test Mode Select
|
I
|
|
Low_XTAL_In 5
|
Low frequency crystal
oscillator input
|
I
|
|
Low_XTAL_Out 5
|
Low frequency crystal
oscillator output
|
O
|
|
NC 6
|
No Connect
|
|
|
nRESET 7
|
Power-on reset
(bidirectional, open-drain)
|
I/O
|
|
nRESET_IN 8
|
Power-on reset input
|
I
|
|
nRESET_OUT 8
|
Power-on reset sense
output
|
O
|
|
nTEST 9
|
Test select input
|
I
|
|
PortA_0-7
|
Port A pins 0-7
|
I/O
|
|
PortB_0-7
|
Port B pins 0-7
|
I/O
|
|
PortC_0-3
|
Port C pins 0-3
|
I/O
|
|
PortD_0-3
|
Port D pins 0-3
|
I/O
|
|
PortE_0-7
|
Port E pins 0-7
|
I/O
|
|
PortF_0-3
|
Port F pins 0-3
|
I/O
|
|
PortG_0-3
|
Port G pins 0-3
|
I/O
|
|
PortH_0-7
|
Port H pins 0-7
|
I/O
|
|
PortI_0-7
|
Port I pins 0-7
|
I/O
|
|
PortJ_0-3
|
Port J pins 0-3
|
I/O
|
|
PortK_0-3
|
Port K pins 0-3
|
I/O
|
|
PortL_0-3
|
Port L pins 0-3
|
I/O
|
|
PortM_0-7
|
Port M pins 0-7
|
I/O
|
|
PortN_07
|
Port N pins 0-7
|
I/O
|
|
PortP_0-7
|
Port P pins 0-7
|
I/O
|
|
PortQ_0-7
|
Port Q pins 0-7
|
I/O
|
|
PortR_0-7
|
Port R pins 0-7
|
I/O
|
|
PortS_0-7
|
Port S pins 0-7
|
I/O
|
|
PortT_0-3
|
Port T pins 0-3
|
I/O
|
|
Rext 10
|
External resistor to set
relaxation oscillator frequency
|
|
|
ULPI_CLK 11
|
USB ULPI Clock input
|
I
|
|
ULPI_DATA0-7
|
USB ULPI Data bus
|
I/O
|
|
USB_n
|
USB negative
|
I/O
|
|
USB_p
|
USB positive
|
I/O
|
|
USBVDD
|
USB power supply 3.3V
|
PWR
|
|
ULPI_STOP
|
USB ULPI Stop
|
O
|
|
ULPI_NXT
|
USB ULPI Next
|
I
|
|
ULPI_DIR
|
USB ULPI Direction
|
I
|
|
ULPI_RST
|
USB ULPI Reset
|
|
|
VDD
|
Digital power supply
3.3V
|
PWR
|
|
VPP 12
|
Flash memory high speed
programming power supply
|
PWR
|
|
Vref 13
|
Analogue reference
voltage
|
|
Notes:
2.5 CPU
The eCOG1X flash based
microcontroller contains a 16-bit RISC processor with powerful
mathematical instructions. An instruction cache offers improved
power consumption over traditional flash based microcontrollers
as well as substantial speed benefits. The chip has support for
two external 16M-word memories and includes an SDRAM
controller.
eCOG1X has a flexible on-chip
instruction cache. The cache can be used in multiple
configurations or as additional on-chip data RAM if necessary.
The instruction cache may be used to increase execution speed
and reduce power consumption, by caching instructions fetched
from the flash.
A sophisticated clocking scheme
allows users to control which parts of the chip are enabled in
order to satisfy the demands of low power consumption
applications.
2.6 Memory
There are 512Kbytes (256K x 16
bits) of embedded flash memory available on-chip, which can be
used for both code and data storage. The flash memory may be
programmed one word at a time, and erased in pages of 512 bytes
or mass erased all in one go. Blocks of 8Kbytes may be read or
write protected.
In addition to the main flash memory
block, there are two 4K word (x 16 bits) flash blocks that may be used
to store information such as configuration data or serial numbers.
There are 24Kbytes (12K x 16
bits) of internal SRAM which can be used as data or code memory.
There is also a 8 byte x 256 line instruction cache which may be
disabled and used as an additional 2560 bytes (1280 x 16 bits)
of SRAM.
The external memory interface
allows connection to a wide range of memory devices including
SDRAM, flash, ROM, SRAM and memory mapped peripherals. The chip
contains an SDRAM controller that supports a wide range of
common SDRAMs and includes automatic refresh hardware.
The internal Memory Management
Unit (MMU) maps both internal and external physical memories
into the code and data space address maps of the CPU. There are
separate address translators for code and data space, meaning
that the same physical memory can appear in both sides of the
memory map. There are 20 address translators in total for the
following memories:
- Internal peripheral
registers
- Internal ROM
- Internal RAM
- Internal Cache RAM
- External Memory on CS0
- External Memory on CS1
2.7 Interrupts
A hardware interrupt structure
provides vectored interrupts for all eCOG1X peripherals, timers
and I/O. A set of 64 vectors is available; many of these vectors
have more than one source. However, user software can determine
from interrupt status registers the precise source of any
interrupt.
A hardware interrupt priority
scheme handles multiple, simultaneous interrupts. All interrupt
sources may be selectively enabled or disabled to provide a high
level of configurability for the user application.
2.8 Serial Peripherals
The eCOG1X has a rich set of
serial peripherals, including UARTs, I2C, SPI, smart card and
infra-red protocol engines. In addition, there is a customisable
protocol engine for user defined serial protocols.
The peripherals are implemented
as two separate dual UARTs and a hardware dual USART. The DUSART
is a multi-protocol peripheral and can be configured to use any
two of the protocols listed below:
- I2C
- SPI
- UART
- Infra-red (consumer and
IrDA)
- Smart Card Interface
- User Serial Port
Each of these peripheral
functions has its own clock, reset and interrupt signals, and
all can be independently enabled and disabled.
Each UART and USART channel has
selectable guard times and timeouts, frame sizes, parity and
data rates. They also have power saving features which allow
their clocks to be enabled only during reception and
transmission. The CPU may also be put to sleep whilst the serial
ports are active and woken up on an interrupt.
2.9 Timers
A full set of hardware timer
functions is available in eCOG1X, providing eight independent
timers capable of performing functions such as clock generation,
PWM generation and infra-red signal modulation, in addition to
normal timer/counter functions. The user can configure many
parameters for each timer, including its clock rate, period or
reload value and interrupt enable/disable. Two timers can be
configured as counters with an external clock signal. The
available timers include:
- 16 bit clock timer.
- 16 bit timer/counters
(x2).
- 16 bit PWM timers (x2).
- 16 bit capture timer.
- 16 bit watchdog timer.
- 24 bit long interval
timer.
- 8 bit sleep timeout
counter.
2.10 Port Configurator
The eCOG1X device contains many
more peripherals than can be routed simultaneously to the
physical port pins. It contains a flexible port configurator
which allows users to choose how the peripheral blocks are
connected to the external pins. The result is that the chip has
a low pin count for the number of available peripherals and
users can select the peripherals they need for their
application.
2.11 External Host
Interface
The external host interface
(EHI) enables fast data transfer between eCOG1X and an external
microprocessing device. 16 or 32 bit parallel data can be
transferred between eCOG1X and an external host in either Memory
Mapped Peripheral (MMP) or Direct Memory Access (DMA) modes.
In MMP mode, the EHI allows
random access to the eCOG1X internal SRAM. In DMA mode, rapid
data transfer can be achieved using flow control
handshaking.
2.12 Analogue Voltage and
Temperature Sensors
The internal 12 bit ADCs can be
used to measure external voltages in either single ended or
differential mode. In addition, two internal sensors allow the
ADCs to measure the device temperature and the analogue supply
voltage.
2.13 eICE Debugger
The eCOG1X has an embedded In
Circuit Emulator (eICE) that allows access to the CPU and the
entire register/memory space of the eCOG1X.
The eICE command set has been
designed to support interactive debugging of eCOG1 applications.
This powerful debugger allows users to develop code and system
integrators to debug target systems.
2.14 Recommended Approach for
This Document
For users new to the eCOG1X, the
following sections describe the essential functions which must
be configured to start working with the device:
Users wishing to develop typical
embedded applications using eCOG1X should refer to the following
sections:
- Digital I/O, see Section 8, Port Configurator, Section 10, Parallel I/O, and Section 9, General Purpose I/O.
- Interrupts, see Section 6.
- Timers and counters, see
Section 11.
- Serial ports, see Section 12, DUARTs and Section 13, DUSART.
- Embedded Flash Memory, see
Section 22.
- Analogue inputs and outputs,
see Section 23.
- The following sections
describe some of the more powerful features of the
eCOG1X:
- Instruction Cache for higher
performance and low power, see Section 5.
- To connect external memory
devices to the eCOG1X, see Section 20, External Memory Interface.
- To connect the eCOG1X to a
host processor, see Section 21, External Host Interface.
Contents
Previous Chapter
Next Chapter