It is our intention to provide our valued customers with the best documentation possible to ensure successful use of your Microchip
products. To this end, we will continue to improve our publications to better suit your needs. Our publications will be refined and
enhanced as new volumes and updates are introduced.
If you have any questions or comments regarding this publication, please contact the Marketing Communications Department via
E-mail at docerrors@microchip.com. We welcome your feedback.
Most Current Data Sheet
To obtain the most up-to-date version of this data sheet, please register at our Worldwide Web site at:
http://www.microchip.com
You can determine the version of a data sheet by examining its literature number found on the bottom outside corner of any page.
The last character of the literature number is the version number, (e.g., DS30000000A is version A of document DS30000000).
Errata
An errata sheet, describing minor operational differences from the data sheet and recommended workarounds, may exist for current devices. As device/documentation issues become known to us, we will publish an errata sheet. The errata will specify the
revision of silicon and revision of document to which it applies.
To determine if an errata sheet exists for a particular device, please check with one of the following:
• Microchip’s Worldwide Web site; http://www.microchip.com
• Your local Microchip sales office (see last page)
When contacting a sales office, please specify which device, revision of silicon and data sheet (include -literature number) you are
using.
Customer Notification System
Register on our web site at www.microchip.com to receive the most current information on all of our products.
DS00003416B-page 4 2020 Microchip Technology Inc.
Page 5
CEC1712
Table Of Contents
1.0 General Description ........................................................................................................................................................................ 6
4.0 Power, Clocks, and Resets ........................................................................................................................................................... 65
5.0 ARM M4 Based Embedded Controller .......................................................................................................................................... 80
6.0 RAM and ROM ..............................................................................................................................................................................90
17.0 Real Time Clock ........................................................................................................................................................................ 189
21.0 Analog to Digital Converter ....................................................................................................................................................... 223
22.0 Blinking/Breathing LED ............................................................................................................................................................. 235
30.0 Security Features ...................................................................................................................................................................... 301
32.0 Test Mechanisms ...................................................................................................................................................................... 308
Appendix A: Data Sheet Revision History ......................................................................................................................................... 335
The Microchip Web Site .................................................................................................................................................................... 336
Customer Change Notification Service ............................................................................................................................................. 336
Customer Support ............................................................................................................................................................................. 336
Product Identification System ........................................................................................................................................................... 337
The CEC1712 device is a low power integrated embedded controller designed with strong cryptographic support . The
CEC1712 is a highly-configurable, mixed-signal, advanced I/O controller architecture. It contains a 32-bit ARM® CortexM4 processor core with closely-coupled memory for optimal code execution and data access. An internal ROM, embedded in the design, is used to store the power on/boot sequence and APIs available during run time. When VTR_CORE
is applied to the device, the secure boot loader API is used to download the custom firmware image from the system’s
shared SPI Flash device, thereby allowing system designers to customize the device’s behavior.
The CEC1712 device is directly powered by a minimum of two separate suspend supply planes (VBAT and VTR). The
CEC1712 has two banks of I/O pins that are able to operate at either 3.3 V or 1.8 V. Operating at 1.8V allows the
CEC1712 to interface with the latest platform controller hubs and will lower the overall power consumed by the device,
Whereas 3.3V allows this device to be integrated into legacy platforms that require 3.3V operation.
The CEC1712 secure boot loader authenticates and optionally decrypts the SPI Flash OEM boot image using the AES256, ECDSA P-384, SHA-384 cryptographic hardware accelerators. The CEC1712 hardware accelerators support 128bit and 256-bit AES encryption, ECDSA and EC_KCDSA signing algorithms, 1024-bits to 4096-bits RSA and Elliptic
asymmetric public key algorithms, and a True Random Number Generator (TRNG). Runtime APIs are provided in the
ROM for customer application code to use the cryptographic hardware. Additionally, the device offers lockable OTP storage for private keys and IDs. Additional features supported include Key Revocation, Roll back protection and DICE.
CEC1712 offers a software development system interface that includes a Trace FIFO debug port and a 2-pin Serail wire
debug (SWD)/ JTAG interface
1.1Family Features
TABLE 1-1:CEC1712 FEATURE LIST
FeaturesCEC1712 -84 WFBGA
Package84 pin WFBGA
Device ID0023_A2
Boundary Scan JTAG ID0223_2445
CPU32-bit ARM
SRAM256 kB
Code/Data Options (Primary use)224kB/32kB
Battery Backed SRAM64 bytes
Trace FIFO Debug PortYes
Internal DMA Channels12
32-bit Timer2
16-bit Timer2
Capture Timer Registers6
ICT Channels11
Compare TimerYes
Watchdog Timer (WDT)1
Hibernation Timer2
Week Timer1
Sub Week Timer1
RTC1
RTOS Timer1
Keyboard Matrix scan supportNo
SMBus 2.0 Host Controllers5
®
Cortex-M4
DS00003416B-page 6 2020 Microchip Technology Inc.
Note 1: Please refer to Boot ROM document for below set of optional OTP selectable feature.
1.2Boot ROM
Following the release of the RESET_EC signal, the processor will start executing code in the Boot ROM. The B oot ROM
executes the SPI Flash Loader, which downloads User Code from SPI Flash and stores it in the internal Code RAM.
Refer to CEC1712 Boot ROM document for further details.
1.3System Block Diagram
1.4CEC1712 Internal Address Spaces
The Internal Embedded Controller can access any register in the EC Address Space or Host Address Space.
DS00003416B-page 8 2020 Microchip Technology Inc.
The Pin Configuration chapter includes Pin List, Pin Multiplexing.
2.2Terminology and Symbols for Pins/Buffers
2.2.1BUFFER TERMINOLOGY
TermDefinition
#The ‘#’ sign at the end of a signal name indicates an active-low signal
nThe lowercase ‘n’ preceding a signal name indicates an active-low signal
PWRPower
Programmable as Input, Output, Open Drain Output, Bi-directional or Bi-directional with Open
Drain Output. Configurable drive strength from 2ma to12ma.
PIO
InI Type Input Buffer.
O2O-2 mA Type Buffer.
PECIPECI Input/Output. These pins operate at the processor voltage level (VREF_VTT)
SB-TSISB-TSI Input/Output. These pins operate at the processor voltage level (VREF_VTT)
Note:All GPIOs have programmable drive strength options of 2ma, 4ma, 8ma and 12ma.
GPIO pin drive strength is determined by the Pin Control Register Defaults field in
the Pin Control Register 2.
2.2.2PIN NAMING CONVENTIONS
• Pin Name is composed of the multiplexed options separated by ‘/’. E.g., GPIOxxxx/SignalA/SignalB.
• The first signal shown in a pin name is the default signal. E.g., GPIOxxxx/SignalA/SignalB means the GPIO is the
default signal.
• Parenthesis ‘()’ are used to list aliases or alternate functionality for a single mux option.
• Square brackets ‘[ ]’ are used to indicate there is a Strap Option on a pin. This is always shown as the last signal
on the Pin Name.
• Signal Names appended with a numeric value indicates the Instance Number. E.g., PWM0, PWM1, etc. indicates
that PWM0 is the PWM output for PWM Instance 0, PWM1 is the PWM output for PWM Instance 1, etc. The
instance number may be omitted if there in only one instance of the IP block implemented.
2.3Pin List
TABLE 2-1:CEC1712 PIN MAP
Ball mapSignal
D2nRESET_IN
F3GPIO057/VCC_PWRGD
E2GPIO106/PWROK
B2GPIO051/ICT1_TACH1
A3GPIO050/ICT0_TACH0
F2GPIO200/ADC00/TRACEDAT0
G2GPIO201/ADC01/TRACEDAT1
H2GPIO202/ADC02/TRACEDAT2
G1GPIO203/ADC03/TRACEDAT3
H1GPIO204/ADC04
DS00003416B-page 10 2020 Microchip Technology Inc.
Note:GPIO055/PWM2/SHD_CS0# should be pulled up for proper boot up of the chip.
2.4Pin Multiplexing
2.4.1DEFAULT STATE
The default state for analog pins is Input. The default state for all pins that default to a GPIO function is input/output/interrupt disabled. The default state for pins that differ is shown in the Section 3.5, "GPIO Register Assignments". Entries for
the Default State column are
The Power Rail column defines the power pin that provides I/O power for the signal pin.
DS00003416B-page 12 2020 Microchip Technology Inc.
Page 13
CEC1712
2.4.3BUFFER TYPES
The Buffer Type column defines the type of Buffer associated with each signal. Some pins have signals with two different
buffer types sharing the pin; in this case, table shows the buffer type for each of the signals that share the pin.
Input signals muxed with GPIOs are marked as “I”
Output signals muxed with GPIOs are marked as “PIO”, because the GPIO input path is always active even when the
alternate function selected is “output only”. So the GPIO input can be read to see the level of the output signal.
Pad Types are defined in the Section 33.0, "Electrical Specifications," on page 310.
• I/O Pad Types are defined in Section 33.2.4, "DC Electrical Characteristics for I/O Buffers," on page 312.
• The abbreviation “PWR” is used to denote power pins. The power supplies are defined in Section 33.2.1, "Power
Supply Operational Characteristics," on page 310.
2.4.4GLITCH PROTECTION
Pins with glitch protection are glitch-free tristate pins and will not drive out while their associated power rail is rising.
These glitch-free tristate pins require either an external pull-up or pull-down to set the state of the pin high or low.
Note:If the pin needs to default low, a 1M ohm (max) external pull-down is required.
All pins are glitch protected.
Note:The power rail must rise monotonically in order for glitch protection to operate.
2.4.5OVER-VOLTAGE PROTECTION
If a pin is over-voltage protected (over-voltage protection = YES) then the following is true: If the pad is powered by 1.8V
+/- 5% (operational) it can tolerate up to 3.63V on the pad. This allows for a pull-up to 3.3V power rail +/- 10%. If the
pad is powered by 3.3V +/- 5% (operational) it can tolerate up to 5.5V on the pad. This allows for a pull-up to 5.0V power
rail +/- 10%.
If a pin is not over-voltage protected (over-voltage protection = NO) then the following is true: If the pad is powered by
1.8V +/- 5% (operational), it can tolerate up to 1.8V +10% (i.e., +1.98V max). If the pad is powered by 3.3V +/- 5% (oper-
ational) it can tolerate up to 3.3V +10% (i.e., +3.63V max).
2.4.6UNDER-VOLTAGE PROTECTION
Pins that are identified as having Under-voltage PROTECTION may be configured so they will not sink excess current
if powered by 3.3V and externally pulled up to 1.8V. The following configuration requirements must be met.
• If the pad is an output only pad type and it is configured as either open drain or the output is disabled.
• If the pin is a GPIO pin with a PIO pad type then is must be configured as open drain output with the input disabled. The input is disabled by setting the GPIO Power Gating Signals (PGS) bits to 11b.
All pins are under voltage protected.
2.4.7BACKDRIVE PROTECTION
Assuming that the external voltage on the pin is within the parameters defined for the specific pad type, the backdrive
protected pin will not sink excess current when it is at a lower potential than the external circuit. There are two cases
where this occurs:
• The pad power is off and the external circuit is powered
• The pad power is on and the external circuitry is pulled to a higher potential than the pad power. This may occur
on 3.3V powered pads that are 5V tolerant or on 1.8V powered pads that are 3.6V tolerant.
2.4.8EMULATED POWER WELL
Power well emulation for GPIOs and for signals that are multiplexed with GPIO signals is controlled by the Power Gating
Signals (PGS) option in the GPIO Pin Control Register. The Emulated Power Well column in the Pin Multiplexing table
defines the power gating programming options supported for each signal.
Note:VBAT powered signals do not support power emulation and must program the PGS bit field to 00b (VTR)
2.4.9GATED STATE
This column defines the internal value of an input signal when either its emulated power well is inactive or it is not
selected by the GPIO alternate function MUX. A value of “No Gate” means that the internal signal always follows the
pin even when the emulated power well is inactive.
Note:Gated state is only meaningful to the operation of input signals. A gated state on an output pin defines the
internal behavior of the GPIO MUX and does not imply pin behavior.
Note:Only the pins that are 5V tolerant have an entry in the 5VT column in the Pin Description Table.
2.4.10NOTES
The below notes are for all tables in this chapter.
TABLE 2-2:NUMBERED NOTES
NOTEDescription
Note 1An external cap must be connected as close to the VR_CAP pin/ball as possible with a routing resistance
and CAP ESR of less than 100mohms. The capacitor value is 1uF and must be ceramic with X5R or X7R
dielectric. The cap pin/ball should remain on the top layer of the PCB and traced to the CAP. Avoid adding
vias to other layers to minimize inductance.
Note 2This SMBus ports supports 1 Mbps operation as defined by I2C. For 1 Mbps I2C recommended capaci-
tance/pull-up relationships from Intel, refer to the Shark Bay platform guide, Intel ref number 486714. Refer
to the PCH - SMBus 2.0/SMLink Interface Design Guidelines, Bus Capacitance/Pull-Up Resistor Relationship.
Note 4The voltage on the ADC pins must not exceed 3.6 V or damage to the device will occur.
Note 5The VCI pins may be used as GPIOs. The VCI input signals are not gated by selecting the GPIO alternate
function. Firmware must disable (i.e., gate) these inputs by writing the bits in the VCI Input Enable Register
when the GPIO function is enabled.
Note 6The Over voltage protected GPIO pins will not support the Repeater mode mentioned in the GPIO pin con-
figuration register
Note 7Refer Configurable Signal Routing section under Pin Configuration chapter for details on using the <signal>
and <signal>_ALT. Both <signal> and <signal>_ALT cannot be enabled simultaneously.
Note 8 <Signal> with ‘#’ as suffix will be shown as <Signal>_n in MPLab Tools
Note 932kHz_IN is named CLK32kHz_IN in MPLab Tools
Note 10 Clock Enable Register Bits [3:2] should be configured to be driven by single ended 32Khz source. Connect
the pin to SUSCLK from PCH.
Note 11 When the JTAG_RST# pin is not asserted (logic'1'), the JTAG or ARM SWJ signal functions in the JTAG
interface are unconditionally routed to the GPIO interface; the Pin Control register for these GPIO pins has
no effect.When the JTAG_RST# pin is asserted (logic'0'), the signal functions in the JTAG interface are not
routed to the interface and the Pin Control Register for these GPIO pins controls the muxing. The pin control registers can not route the JTAG interface to the pins. System Board Designer should terminate this pin
in all functional state using jumpers and pull-up or pull down resistors, etc.
Note 12 The JTAG signals TDI,TDO,TMS,TCK are muxed with GPIO pins. Routing of JTAG signals to these pins
are dependent on DEBUG ENABLE REGISTER bits [2:0] and JTAG_RST# pin (Note . To configure these
GPIO pins for non JTAG functions, pull JTAG_RST# low externally and select the appropriate alternate
function in the Pin Control Register
Note 13 The BGPO pins may be used as GPIO. For this the BGPO power control register and GPIO pin control reg-
ister needs to be configured
Note 14 GPIO000/VCI_IN3#, if not used must be connected to VBAT through a high impedance resistor of the order
of 100k
DS00003416B-page 14 2020 Microchip Technology Inc.
Page 15
TABLE 2-2:NUMBERED NOTES
NOTEDescription
Note 15 External pull up should be added on GPIO055/SHD_CS0# pin for proper booting
To accommodate the signal routing across packages, some Signals are routed to more than one GPIO. At any given
time, only the <Signal> or <Signal>_ALT can be selected. Both cannot be selected at the same time.
2.5.1SIGNAL DESCRIPTION BY INTERFACE
TABLE 2-4:SIGNAL DESCRIPTION BY INTERFACE
SIG_NAMEDescriptionNotes
ADC
ADCxxADC channel inputNote 5
‘xx’ is the index of the ADC input. Refer Family
features table to find the number of ADC
inputs supported in the package
Miscellaneous
I2C/SMBus Controller
I2Cxx_SDAI2C/SMBus Controller Port 0 DataNote 2
‘xx’ is the index of the I2C port. Refer Family
features table to find the number of I2C ports
supported in the package
I2Cxx_SCLI2C/SMBus Controller Port 0 ClockNote 2
GPIO
GPIOxGeneral Purpose Input Output Pins
PCR Interface
32KHZ_OUT32.768 KHz Digital Output
32KHZ_IN32.768 KHz Digital Input
nRESET_INExternal System Reset Input
PECI
PECI_DATPECI Bus
VREF_VTTProcessor Interface Voltage Reference
Quad Mode SPI Controller ports
PVT_CS#Private SPI Chip Select SPI_CS0# of QMSPI Controller
PVT_IO0Private SPI Data 0SPI_IO0 of QMSPI Controller
PVT_IO1Private SPI Data 1 SPI_IO1 of QMSPI Controller
PVT_IO2Private SPI Data 2 SPI_IO2 of QMSPI Controller
PVT_IO3Private SPI Data 3 SPI_IO3 of QMSPI Controller
PVT_CLKPrivate SPI Clock SPI_CLK of QMSPI Controller
SHD_CS1#Shared SPI Chip Select1 SPI_CS1# of QMSPI Controlelr
SHD_CS0#Shared SPI Chip Select SPI_CS0# of QMSPI Controller
SHD_IO0Shared SPI Data 0 SPI_IO0 of QMSPI Controller
SHD_IO1Shared SPI Data 1 SPI_IO1 of QMSPI Controller
SHD_IO2Shared SPI Data 2 SPI_IO2 of QMSPI Controller
SHD_IO3Shared SPI Data 3SPI_IO3 of QMSPI Controller
SHD_CLKShared SPI Clock SPI_CLK of QMSPI Controller
DS00003416B-page 26 2020 Microchip Technology Inc.
Page 27
CEC1712
TABLE 2-4:SIGNAL DESCRIPTION BY INTERFACE (CONTINUED)
SIG_NAMEDescriptionNotes
FAN PWM and Tachometer
ICT0_TACH0Fan Tachometer Input 0
ICT1_TACH1Fan Tachometer Input 1
ICT2_TACH2Fan Tachometer Input 2
TACH3Fan Tachometer Input 3
PWMxPulse Width Modulator Output ‘x’ is the index of the PWM output. Refer Fam-
ily features table to find the number of PWM
outputs supported in the package
Input Capture/Compare timer
ICTxInput capture timer input ‘x’ is the index of the PWM output. Refer Fam-
ily features table to find the number of ICT
inputs supported in the package
CTOUT0Compare timer 0 toggle output
CTOUT1Compare timer 1 toggle output
Serial ports
UART_CLKUART Baud Clock Input
UART0_RXUART Receive Data (RXD)
UART0_TXUART Transmit Data (TXD)
UART0_CTS#Clear to Send Input
UART0_RTS#Request to Send Output
UART0_RI#Ring Indicator Input
UART0_DCD#Data Carrier Detect Input
UART0_DSR#Data Set Ready Input
UART0_DTR#Data Terminal Ready Output
JTAG
JTAG_RST#JTAG test active low resetNote 11,12
JTAG_TDIJTAG test data inNote 11,12
JTAG_TDOJTAG test data outNote 11,12
JTAG_CLKJTAG test clk; SWDCLKNote 11,12
JTAG_TMSJTAG test mode select; SWDIONote 11,12
TFDP_DATATrace FIFO debug port - data
TFDP_CLKTrace FIFO debug port - clock
TRACECLKARM Embedded Trace Macro ClockTrace Port is enabled by setting TRACE_EN
bit of ETM Trace enable register in EC Register Bank
TABLE 2-4:SIGNAL DESCRIPTION BY INTERFACE (CONTINUED)
SIG_NAMEDescriptionNotes
VSSVTR associated ground
VSS_VBATVBAT associated ground
VTR1VTR Suspend Power Supply
VTR2Peripheral Power Supply
VTR_PLLPLL power supply
VTR_REGMain Regulator Power supply
2.5.2STRAPPING OPTIONS
GPIO170 is used for the TAP Controller select strap. If any of the JTAG TAP controllers are used, GPIO170 must only
be configured as an output to a VTRx powered external function. GPIO170 may only be configured as an input when
the JTAG TAP controllers are not needed or when an external driver does not violate the Slave Select Timing.See Sec-
Note:For the most current package drawings, see the Microchip Packaging Specification at http://www.micro-
chip.com/packaging.
DS00003416B-page 30 2020 Microchip Technology Inc.
Page 31
CEC1712
3.0DEVICE INVENTORY
3.1Conventions
TermDefi nition
BlockUsed to identify or describe the logic or IP Blocks implemented in the device.
ReservedReserved registers and bits defined in the following table are read only values that
return 0 when read. Writes to these reserved registers have no effect.
TESTMicrochip Reserved locations which should not be modified from their default value.
Changing a TEST register or a TEST field within a register may cause unwanted
results.
bThe letter ‘b’ following a number denotes a binary number.
hThe letter ‘h’ following a number denotes a hexadecimal number.
Register access notation is in the form “Read / Write”. A Read term without a Write term means that the bit is read-only
and writing has no effect. A Write term without a Read term means that the bit is write-only, and assumes that reading
returns all zeros.
Register Field
Type
RRead: A register or bit with this attribute can be read.
WWrite: A register or bit with this attribute can be written.
RSRead to Set: This bit is set on read.
RCRead to Clear: Content is cleared after the read. Writes have no effect.
WC or W1CWrite One to Clear: writing a one clears the value. Writing a zero has no effect.
WZCWrite Zero to Clear: writing a zero clears the value. Writing a one has no effect.
WS or W1SWrite One to Set: writing a one sets the value to 1. Writing a zero has no effect.
WZSWrite Zero to Set: writing a zero sets the value to 1. Writing a one has no effect.
Table 3-1, "Base address" lists all the IP components, referred to as Blocks, implemented in the design. The registers
implemented in each block are accessible by the embedded controller (EC) at an offset from the Base Address shown
in Table 3-1, "Base address". The registers can also be accessed by various hosts in the system as below
1.I2C : I2C host access is handled by firmware
2.JTAG : JTAG port has access to all the registers defined in Table 3-1, "Base address".
TABLE 3-1:BASE ADDRESS
FeatureInstanceLogical Device NumberBase Address
Watchdog Timer4000_0400h
16-bit Basic Timer04000_0C00h
16-bit Basic Timer14000_0C20h
32-bit Basic Timer04000_0C80h
32-bit Basic Timer14000_0CA0h
Capture-Compare Timers4000_1000h
DMA Controller4000_2400h
SMB-I2C Controller04000_4000h
SMB-I2C Controller14000_4400h
SMB-I2C Controller24000_4800h
SMB-I2C Controller34000_4C00h
SMB-I2C Controller44000_5000h
I2C Controller54000_5100h
I2C Controller64000_5200h
I2C Controller74000_5300h
Quad Master SPI4007_0000h
16-bit PWM04000_5800h
16-bit PWM24000_5820h
16-bit PWM34000_5830h
16-bit PWM54000_5850h
16-bit PWM64000_5860h
16-bit PWM74000_5870h
16-bit Tach04000_6000h
16-bit Tach14000_6010h
RTOS Timer4000_7400h
ADC4000_7C00h
Trace FIFO 4000_8C00h
Hibernation Timer04000_9800h
Hibernation Timer14000_9820h
VBAT Register Bank4000_A400h
VBAT Powered RAM4000_A800h
Week Timer4000_AC80h
VBAT-Powered Control Interface4000_AE00h
Blinking-Breathing LED04000_B800h
Blinking-Breathing LED14000_B900h
Interrupt Aggregator4000_E000h
DS00003416B-page 32 2020 Microchip Technology Inc.
DS00003416B-page 64 2020 Microchip Technology Inc.
Page 65
CEC1712
4.0POWER, CLOCKS, AND RESETS
4.1Introduction
The Power, Clocks, and Resets (PCR) chapter identifies all the power supplies, clock sources, and reset inputs to the
chip and defines all the derived power, clock, and reset signals. In addition, this section identifies Power, Clock, and
Reset events that may be used to generate an interrupt event, as well as, the Chip Power Management Features.
4.2References
No references have been cited for this chapter.
4.3Interrupts
The Power, Clocks, and Resets logic generates no events
4.4Power
TABLE 4-1:POWER SOURCE DEFINITIONS
Power Well
VTR_REG1.8V - 3.3VThis supply is used to derive the chip’s
VTR_ANALOG3.3V3.3V Analog Power Supply.
Nominal
Vol tage
DescriptionSource
Pin Interface
core power.
VTR_PLL3.3V3.3V Power Supply for the 48MHz PLL.
This must be connected to the same
supply as VTR_ANALOG.
VTR13.3V3.3V System Power Supply.
This is typically connected to the
“Always-on” or “Suspend” supply rails
in system. This supply must be on prior
to the system RSMRST# signal being
deasserted
VTR23.3V or 1.8V3.3V or 1.8V System Power Supply.
This supply is used to power one bank
of I/O pins. See Note 1.
VTR_CORE1.2VThe main power well for internal logicInternal regulator
VBAT3.0V - 3.3VSystem Battery Back-up Power Well.
This is the “coin-cell” battery.
GPIOs that share pins with VBAT signals are powered by this supply.
VSS0VDigital GroundPin Interface
Note 1: See Section 4.4.1, "I/O Rail Requirements" for connection requirements for VTRx.
2: The source for the Internal regulator is VTR_REG.
All pins are powered by the power supply pins: VBAT, VTR1, VTR2. The VBAT supply must be 3V to 3.6V maximum,
as shown in the following section. The VTR1 is fixed 3.3V and VTR2 pins may be connected to either a 3.3V or a 1.8V
power supply as configured by the firmware.
If a power rail is not powered and stable when RESET_SYS is de-asserted and is not required for booting, software can
configure the pins on that bank appropriately by setting the corresponding bit in the GPIO Bank Power Register, once
software can determine that the power supply is up and stable. All GPIOs in the bank must be left in their default state
and not modified until the Bank Power is configured properly.
4.4.2BATTERY CIRCUIT REQUIREMENTS
VBAT must always be present if VTR_ANALOG is present.
Microchip recommends removing all power sources to the device defined in Table 4-1, "Power Source Definitions" and
all external voltage references defined in Table 4-2, "Voltage Reference Definitions" before removing and replacing the
battery. In addition, upon removing the battery, discharge the battery pin before replacing the battery.
The following external circuit is recommended to fulfill this requirement:
FIGURE 4-1:RECOMMENDED BATTERY CIRCUIT
4.4.3VOLTAGE REFERENCES
Table 4-2 lists the External Voltage References to which the CEC1712 provides high impedance interfaces.
Note:In order to achieve the lowest leakage current when both PECI and SB TSI are not used, set the
Nominal Input
Voltag e
VREF_VTT Disable bit to 1. This bit is defined in PECI Disable Register bit 0.
Scaling Ratio
Nominal
Monitored
Volt age
DescriptionSource
Pin Interface
External Voltage Reference
Used to scale Processor
Interface signals. (See Note)
DS00003416B-page 66 2020 Microchip Technology Inc.
Page 67
CEC1712
4.4.4SYSTEM POWER SEQUENCING
The following table defines the behavior of the main power rails in each of the defined ACPI power states.
TABLE 4-3:TYPICAL POWER SUPPLIES VS. ACPI POWER STATES
ACPI Power State
Supply
Name
VTR1ONONONONONOFF“Always-on” Supply
VTR2ONONONONONOFF3.3V/1.8V Power Supply
VBATONONONON
Note:This device requires that the VBAT power is on when the VTR(Note 3) power supply is on. External circuitry,
a diode isolation circuit, is implemented on the motherboard to extend the battery life. This external circuitry
ensures the VBAT pin will derive power from the VTR power well when it is on. Therefore, the VBAT supply
will never appear to be off when the VTR rail is on.
4.5Clocks
S0
(FULL
ON)
S1
(POS)S3(STR)
S4
(STD)
Note
S5
(Soft Off)G3(MECH Off)
ON
Note
ON
Note
Description
for Bank 2
Battery Back-up Supply
The following section defines the clocks that are generated and derived.
Pin Interface (XTAL1 and XTAL2)
connected between the XTAL1 and
XTAL2 pins. The accuracy of the
clock depends on the accuracy of the
crystal and the characteristics of the
analog components used as part of
the oscillator
The crystal oscillator source can
bypass the crystal with a singleended clock input. This option is configured with the Clock Enable Regis-
ter.
lator. The frequency is 32.768KHz
±2%.
supply a clock for the 48MHz main
clock domain while the 48MHz PLL is
not locked. Its frequency can range
from 12Mhz to 46MHz.
VBAT 32KHz Clock The clock source used as reference for PLL lock and System Clock
controls.
32KHzThe clock source used by internal blocks that require an always-on
low speed clock
48MHzThe main clock source used by most internal blocks
100KHzA low-speed clock derived from the 48MHz clock domain. Used as
a time base for PWMs and Tachs.
EC_CLKThe clock used by the EC processor. The frequency is determined
by the Processor Clock Control Register.
4.5.348MHZ PLL
The 48MHz clock domain is primarily driven by a 48MHz PLL, which derives 48MHz from the VBAT 32KHz Clock
domain. In Heavy Sleep mode, the 48MHz PLL is shut off. When the PLL is started, either from waking from the Heavy
Sleep mode, or after a Power On Reset, the 32MHz ring oscillator becomes the clock source for the 48MHz clock
domain until the PLL is stable. The PLL becomes stable after about 3ms after the VBAT 32KHz Clock is stable; until that
time, the 48MHz clock domain may range from 16MHz to 48MHz, as this is the accuracy range of the 32MHz ring.
The PLL requires its own power 3.3V power supply, VTR_PLL. This power rail must be active and stable no later than
the latest of VTR_REG and VTR_ANALOG. There is no hardware detection of VTR_PLL power good in the reset generator.
4.5.432KHZ CLOCK
The 32kHz Clock Domain may be sourced from a crystal oscillator, using an external crystal, by an internal 32kHz oscillator, or from a single-ended clock input. The external single-ended clock source can itself be sourced from the
32KHZ_IN signal that is a GPIO alternate function or from the XTAL2 crystal pin. The Clock Enable Register is used to
configure the source for the 32 kHz clock domain.
When VTR_CORE is off, the 32 kHz clock domain can be disabled, for lowest standby power, or it can be kept running
in order to provide a clock for the Real Time Clock or the Week Timer.
An external single-ended clock input for 32KHZ_IN may be supplied by any accurate 32KHz clock source in the system.
The SUSCLK output from the chipset may be used as the 32KHz source. SUSCLK must be present when VTR is on.
See chipset documentation for details on the use of SUSCLK.
If firmware switches the 32KHz clock source, the 48MHz PLL will be shut off and then restarted. The 48MHz clock
domain will become unlocked and be sourced from the 32 MHz Ring Oscillator until the 48MHz PLL is on and locked.
4.5.4.1VBAT 32KHz Clock
This clock source is used to drive the 48MHz PLL. VBAT 32KHz Clock should remain on while the 48Mhz PLL is ON.
The internal source provides a reference for the Activity Detect that monitors the external clock input, as well as providing a low latency backup clock source when the Activity Detector cannot detect a clock on the external input.
The VBAT 32KHz Clock Internal Clock Source can be driven either by the 32.768 kHz Silicon Oscillator or the 32.768
kHz Crystal Oscillator.
4.5.4.2External 32KHz Clock Activity Detector
When the EXT_32K field in the Clock Enable Register is set for an external clock source an Activity Detector monitors
the external 32KHz signal at all times. If there is no clock detected on the pin, the 32KHZ clock domain is switched to
the internal 32KHz silicon oscillator. If a clock is again detected on the pin, the 32KHz clock domain is switched to the pin
The following figure illustrates the 32KHz clock domain sourcing.
DS00003416B-page 68 2020 Microchip Technology Inc.
Page 69
FIGURE 4-2:32KHZ ACTIVITY DETECTOR
A ctivity
Detector
32 KHz Clock Do m a in
32 KHz
C r yst a l O sc illa to r
0
1
32 KHz
S ilico n O scilla to r
1
0
32 KHz (X TA L2)
XOSEL
0
1
32K_S O URC E
32 KH z (32KH Z_IN)
EX T_32K
Always-on
CEC1712
4.5.4.332KHz Crystal Oscillator
If the 32KHz source will never be the crystal oscillator, then the XTAL2 pin should be grounded. The XTAL1 pin should
be left unconnected.
4.6Resets
TABLE 4-6:DEFINITION OF RESET SIGNALS
RESET_VBATInternal VBAT Reset signal. This signal is used
RESET_VTRInternal VTR Reset signal.This internal reset signal is asserted as long as
ResetDescriptionSource
RESET_VBAT is a pulse that is asserted at the
to reset VBAT powered registers.
rising edge of VTR power if the VBAT voltage is
below a nominal 1.25V. RESET_VBAT is also
asserted as a level if, while VTR power is not
present, the coin cell is replaced with a new cell
that delivers at least a nominal 1.25V. In this latter case RESET_VBAT is de-asserted when
VTR power is applied. No action is taken if the
coin cell is replaced, or if the VBAT voltage falls
below 1.25 V nominal, while VTR power is present.
the reset generator determines that the output of
the internal regulator is stable at its target voltage and that the voltage rail supplying the main
clock PLL is at 3.3V.
Although most VTR_CORE-powered registers
are reset on RESET_SYS, some registers are
only reset on this reset.
RESET_SYSInternal Reset signal. This signal is used to reset
VTR_CORE powered registers.
RESET_VCCPerforms a reset when Host power (VCC) is
turned off
RESET_HOSTPerforms a reset when VCC_PWRGD is low This signal is asserted if
WDT EventA WDT Event generates the RESET_SYS
event. This signal resets VTR_CORE powered
registers with the exception of the WDT Event
Count Register register. Note that the glitch pro-
tect circuits do not activate on a WDT reset.
WDT Event does not reset VBAT registers or
logic.
RESET_SYS_n
WDT
Internal Reset signal. This signal is used to reset
VTR_CORE powered registers not effected by a
WDT Event
RESET_SYS is the main global reset signal.
This reset signal will be asserted if:
• RESET_VTR is asserted
• The nRESET_IN pin asserted
•A WDT Event event is asserted
• A soft reset is asserted by the SOFT_SYS-
_RESET bit in the System Reset Register
• ARM M4 SYSRESETREQ
This signal is asserted if
Note:RESET_SYS is asserted
• RESET_SYS is asserted
• VCC_PWRGD is low
•The PWR_INV bit in the Power Reset Con-
trol Register is ‘1b’1
This reset signal will be asserted if:
•A WDT Event event is asserted
This event is indicated by the WDT bit in the
Power-Fail and Reset Status Register
This reset signal will be asserted if:
• RESET_VTR is asserted
• The nRESET_IN pin asserted
A RESET_SYS_nWDT is used to reset registers
that need to be preserved through a WDT Event
like a WDT Event Count Register.
RESET_ECInternal reset signal to reset the processor in the
EC Subsystem.
RESET_BLOCK
_N
Each IP block in the device may be configured to
be reset by setting the RESET_ENABLE register.
This reset is a stretched version of
RESET_SYS. This reset asserts at the same
time that RESET_SYS asserts and is held
asserted for 1ms after
This reset signal will be asserted if Block N
RESET_ENABLE is set to 1 and Peripheral
Reset Enable n Register is unlocked.
RESET_SYS deasserts.
DS00003416B-page 70 2020 Microchip Technology Inc.
Page 71
FIGURE 4-3:RESETS BLOCK DIAGRAM
RESET_VTR
SOFT_SYS_RESET
1
TEST_VTR_RESET
3
RESET_SYS
VCC_PWRGD
RESET_HOST
Note1:SOFT_SYS_RESETisimplementedinbit[8]oftheSystemResetRegist er
Note2:PWR_INVisimplementedinbit[0]ofthePowerResetControlRegister
Note3:TEST_VTR_RESETisimplementedinbit[1]oftheHostGlo balTes t R egi s ter
1ms
Delay
RESET_EC
RESETI
PWROK
PWR_INV
2
RESET_VCC
PWR_INV
2
WDT
CORTEXM4_RESET
Reset
Enable
Register
RESET_SYS_nWDT
E.g.WDTEventCount
RESET_BLOCK_N
WDT_Even t
CEC1712
4.7Chip Power Management Features
This device is designed to always operate in its lowest power state during normal operation. In addition, this device
offers additional programmable options to put individual logical blocks to sleep as defined in the following section,
Section 4.7.1.
4.7.1BLOCK LOW POWER MODES
All power related control signals are generated and monitored centrally in the chip’s Power, Clocks, and Resets (PCR)
block. The power manager of the PCR block uses a sleep interface to communicate with all the blocks. The sleep interface consists of three signals:
• SLEEP_ENABLE (request to sleep the block)
nals are generated for every clock segment. Each group consists of a SLEEP_ENABLE signal for every block in
that clock segment.
• CLOCK_REQUIRED (request clock on)
is generated by the PCR block. A group of SLEEP_ENABLE sig-
is generated by every block. They are grouped by blocks on the same
clock segment. The PCR monitors these signals to see when it can gate off clocks.
A block can always drive CLOCK_REQUIRED low synchronously, but it must
nal clocks are gated and it has to assume that the clock input itself is gated. Therefore the block can only drive
CLOCK_REQUIRED high as a result of a register access or some other input signal.
The following table defines a block’s power management protocol:
TABLE 4-7:POWER MANAGEMENT PROTOCOL
Power StateSLEEP_ENABLE CLOCK_REQUIREDDescription
Normal operationLowLowBlock is idle and NOT requesting clocks. The block
gates its own internal clock.
Normal operationLowHighBlock is NOT idle and requests clocks.
Request sleepRising EdgeLowBlock is IDLE and enters sleep mode immediately. The
block gates its own internal clock. The block cannot
request clocks again until SLEEP_ENABLE goes low.
Request sleepRising EdgeHigh then LowBlock is not IDLE and will stop requesting clocks and
enter sleep when it finishes what it is doing. This delay
is block specific, but should be less than 1 ms. The
block gates its own internal clock. After driving
CLOCK_REQUIRED low, the block cannot request
clocks again until SLEEP_ENABLE goes low.
Register AccessXHighRegister access to a block is always available regard-
less of SLEEP_ENABLE. Therefore the block ungates
its internal clock and drives CLOCK_REQUIRED high
during the access. The block will regate its internal
clock and drive CLOCK_REQUIRED low when the
access is done.
A wake event clears all SLEEP_ENABLE bits momentarily, and then returns the SLEEP_ENABLE bits back to their original state. The block that needs to respond to the wake event will do so.
The Sleep Enable, Clock Required and Reset Enable Registers are defined in Section 4.8.
4.7.2CONFIGURING THE CHIP’S SLEEP STATES
The chip supports two sleep states: LIGHT SLEEP and HEAVY SLEEP. The chip will enter one of these two sleep states
only when all the blocks have been commanded to sleep and none of them require a 48MHz clock source (i.e., all
CLOCK_REQUIRED status bits are 0), and the processor has executed its sleep instruction. These sleep states must
be selected by firmware via the System Sleep Control bits implemented in the System Sleep Control Register prior to
issuing the sleep instruction. Table 4-9, "System Sleep Modes" defines each of these sleep states.
There are two ways to command the chip blocks to enter sleep.
1.Assert the SLEEP_ALL bit located in the System Sleep Control Register
2.Assert all the individual block sleep enable bits
Blocks will only enter sleep after their sleep signal is asserted and they no longer require the 48MHz source. Each block
has a corresponding clock required status bit indicating when the block has entered sleep. The general operation is that
a block will keep the 48MHz clock source on until it completes its current transaction. Once the block has completed its
work, it deasserts its clock required signal. Blocks like timers, PWMs, etc. will de-assert their clock required signals
immediately. See the individual block Low Power Mode sections to determine how each individual block enters sleep.
4.7.3DETERMINING WHEN THE CHIP IS SLEEPING
The TST_CLK_OUT pin can be used to verify the chip’s clock has stopped, which indicates the device is in LIGHT
SLEEP or HEAVY SLEEP, as determined by the System Sleep Control Register. If the clock is toggling the chip is in the
full on running state. if the clock is not toggling the chip has entered the programmed sleep state.
4.7.4WAKING THE CHIP FROM SLEEPING STATE
The chip will remain in the configured sleep state until it detects either a wake event or a full VTR_CORE POR. A wake
event occurs when a wake-capable interrupt is enabled and triggered. Interrupts that are not wake-capable cannot occur
while the system is in LIGHT SLEEP or HEAVY SLEEP.
In LIGHT SLEEP, the 48MHz clock domain is gated off, but the 48 MHz PLL remains operational and locked to the
32KHz clock domain. On wake, the PLL output is ungated and the 48MHz clock domain starts immediately, with the
PLL_LOCK bit in the Oscillator ID Register set to ‘1’. Any device that requires an accurate clock, such as a UART, may
be used immediately on wake.
DS00003416B-page 72 2020 Microchip Technology Inc.
Page 73
CEC1712
In HEAVY SLEEP, the 48 MHz PLL is shut down. On wake, the 32 MHz Ring Oscillator is used to provide a clock so urce
for the 48MHz clock domain until the PLL locks to the 32KHz clock domain. The ring oscillator starts immediately on
wake, so there is no latency for the EC to start after a wake, However, the ring oscillator is only accurate to ±50%, so
any device that requires an accurate 48MHz clock will not operate correctly until the PLL locks.The time to lock latency
for the PLL is shown in Table 4-9, "System Sleep Modes".
The SLEEP_ALL bit is automatically cleared when the processor responds to an interrupt. This applies to non-wake
interrupts as well as wake interrupts, in the event an interrupt occurs between the time the processor issued a WAIT
FOR INTERRUPT instruction and the time the system completely enters the sleep state.
Any JTAG access to the ARM/STAP will cause a pseudo-wake event where the clocks are turned on, but the CHip is
still in sleep (SLEEP_EN's and SLEEP_ALL stay in the same state).This way the access can occur over JTAG, without
changing the parts state, and the part can go back to sleep once the JTAG access is over.
4.7.4.1Wake-Only Events
Some devices which respond to an external master require the 48MHz clock domain to operate but do not necessarily
require and immediate processing by the EC. Wake-only events provide the means to start the 48MHz clock domain
without triggering an EC interrupt service routine. This events are grouped into a single GIRQ, GIRQ22. Events that are
enabled in that GIRQ will start the clock domain when the event occurs, but will not invoke an EC interrupt. The
SLEEP_ENABLE flags all remain asserted. If the activity for the event does not in turn trigger another EC interrupt, the
CLOCK_REQUIRED for the block will re-assert and the configured sleep state will be re-entered.
4.8EC Registers
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding
the offset to the Base Address for the Power, Clocks, and Resets Block in the Block Overview and Base Address Table
in Section 3.0, "Device Inventory".
TABLE 4-8:REGISTER SUMMARY
OffsetName
0hSystem Sleep Control Register
4hProcessor Clock Control Register
8hSlow Clock Control Register
All register addresses are naturally aligned on 32-bit boundaries. Offsets for registers that are smaller than 32 bits are
reserved and must not be used for any other purpose.
The bit definitions for the Sleep Enable, Clock Required and Reset Enable Registers are defined in the Sleep Enable
Register Assignments Table in Section 3.0, "Device Inventory".
4.9Sleep Enable n Registers
4.9.1SLEEP ENABLE N REGISTER
Offset
BitsDescriptionTypeDefault
31:0SLEEP_ENABLE
See Sleep Enable Register Assignments Table in Section 3.0, "Device Inventory"
R/W0hRESET
1=Block is commanded to sleep at next available moment
0=Block is free to use clocks as necessary
Unassigned bits are reserved. They must be set to ‘1b’ when written. When read, unassigned bits return the last value written.
4.9.2CLOCK REQUIRED N REGISTER
Offset
BitsDescriptionTypeDefault
31:0CLOCK_REQUIRED
See Sleep Enable Register Assignments Table in Section 3.0, "Device Inventory"
R0hRESET
1=Bock requires clocks
0=Block does not require clocks
Reset
Event
_SYS
Reset
Event
_SYS
Unassigned bits are reserved and always return 0 when read.
4.9.3PERIPHERAL RESET ENABLE N REGISTER
Offset
BitsDescriptionTypeDefault
31:0PERIPHERAL_RESET_ENABLE
DS00003416B-page 74 2020 Microchip Technology Inc.
See Sleep Enable Register Assignments Table in Section 3.0, "Device Inventory"
Reset
Event
W0hRESET
_SYS
1= Will allow issue parallel reset to the peripherals. This is self
clearing bit.
Page 75
4.9.4SYSTEM SLEEP CONTROL REGISTER
CEC1712
Offset
BitsDescriptionTypeDefault
0h
31:9ReservedRES--
8SLEEP_IMMEDIATE
0 = System will only allow entry into sleep after PLL locks.
1 = System will allow entry into Heavy Sleep before PLL locks.
Heavy Sleep : Any sleep state where the PLL is OFF.
Light Sleep : Any sleep state where the PLL is ON.
7:4ReservedRES--
3SLEEP_ALL
By setting this bit to ‘1b’ and then issuing a WAIT FOR INTERRUPT instruction, the EC can initiate the System Sleep mode.
When no device requires the main system clock, the system enters
the sleep mode defined by the field SLEEP_MODE.
This bit is automatically cleared when the processor vectors to an
interrupt.
1=Assert all sleep enables
0=Do not sleep all
R/W0hRESET
R/W0hRESET
Reset
Event
_SYS
_SYS
2TEST
Test bit. Should always be written with a ‘0b’.
1ReservedRES--
0SLEEP_MODE
Sleep modes differ only in the time it takes for the 48MHz clock
domain to lock to 48MHz. The wake latency in all sleep modes is
0ms. Table 4-9 shows the time to lock latency for the different sleep
modes.
1=Heavy Sleep
0=Light Sleep
TABLE 4-9:SYSTEM SLEEP MODES
SLEEP_MODESleep State
0LIGHT SLEEP0Output of the PLL is gated in sleep. The PLL remains on.
1HEAVY SLEEP3msThe PLL is shut down while in sleep.
The following list shows examples of settings for this field and the
resulting EC clock rate.
48=divide the 48MHz clock by 48 (1MHz processor clock)
16=divide the 48MHz clock by 16 (4MHz processor clock)
4=divide the 48MHz clock by 4 (12MHz processor clock)
3=divide the 48MHz clock by 3 (16MHz processor clock)
1=divide the 48MHz clock by 1 (48MHz processor clock)
No other values are supported.
R/W4hRESET
4.9.6SLOW CLOCK CONTROL REGISTER
Offset
BitsDescriptionTypeDefault
08h
Reset
Event
_SYS
Reset
Event
31:10ReservedRES--
9:0SLOW_CLOCK_DIVIDE
Configures the 100KHz clock domain.
n=Divide by n
0=Clock off
The default setting is for 100KHz.
R/W1E0hRESET
4.9.7OSCILLATOR ID REGISTER
Offset
BitsDescriptionTypeDefault
31:9ReservedRES--
0Ch
8PLL_LOCK
Phase Lock Loop Lock Status
7:0TESTRN/ARESET
R0hRESET
_SYS
Reset
Event
_SYS
_SYS
DS00003416B-page 76 2020 Microchip Technology Inc.
Page 77
4.9.8PCR POWER RESET STATUS REGISTER
CEC1712
Offset
BitsDescriptionTypeDefault
31:12ReservedRES--
10h
1032K_ACTIVE
1=The 32K clock input is present. The internal 32K clock is derived
from the pin and the ring oscillator is synchronized to the external 32K clock
0=The 32K clock input is not present. The internal 32K clock is
derived from the ring oscillator
9ReservedRES--
8WDT_EVENT
This bit allows the application code to determine WDT_EVENT
against RESET_VTR
7JTAG_RST#
Indicates the JTAG_RST# pin status.
The JTAG TRST# input is gated off low when Boundary scan mode
is enabled and will not be set in this mode.
R-RESET
R/W1C0hRESET
R-RESET
Reset
Event
_SYS
_SYS-
_nWDT
_SYS
6RESET_SYS_STATUS
Indicates the status of RESET_SYS.
The bit will not clear if a write 1 is attempted at the same time that a
RESET_VTR occurs; this way a reset event is never missed.
1=A reset occurred
0=No reset occurred since the last time this bit was cleared
5VBAT_RESET_STATUS
Indicates the status of RESET_VBAT.
The bit will not clear if a write of ‘1’b is attempted at the same time
that a VBAT_RST_N occurs, this way a reset event is never
missed.
1=A reset occurred
0=No reset occurred while VTR_CORE was off or since the last
time this bit was cleared
4RESET_VTR_STATUS
Indicates the status of RESET_VTR event.
Note 1: This read-only status bit always reflects the current status of the event and is not affected by any Reset
Note 1: This read-only status bit always reflects the current status of the event and is not affected by any Reset
10h
3RESET_HOST_STATUS
Indicates the status of RESET_HOST.
1=Reset not active
0=Reset active
1:0ReservedRES--
events.
R-Note 1
4.9.9POWER RESET CONTROL REGISTER
Offset
BitsDescriptionTypeDefault
14h
31:ReservedRES--
Reset
Event
Reset
Event
7:ReservedRES--
0PWR_INV
This bit allows firmware to control when the Host receives an indication that the VCC power is valid, by controlling the state of the
PWROK pin.
R /
R/W
4.9.10SYSTEM RESET REGISTER
Offset
BitsDescriptionTypeDefault
31:9ReservedRES--
18h
8SOFT_SYS_RESET
A write of a ‘1’ to this bit will force an assertion of the RESET_SYS
reset signal, resetting the device. A write of a ‘0’ has no effect.
Reads always return ‘0’.
7:0ReservedRES--
W- -
1hRESET
_SYS
Reset
Event
DS00003416B-page 78 2020 Microchip Technology Inc.
Page 79
4.9.11PERIPHERAL RESET LOCK REGISTER
CEC1712
Offset
BitsDescriptionTypeDefault
84h
31:0PCR_RST_EN _LOCK
If the lock is enabled, the peripherals cannot be reset by writing to
the Reset enable register. Once Unlocked the Registers remain in
the unlocked state until FW re-locks it with the Lock pattern
This chapter contains a description of the ARM M4 Embedded Controller (EC).
®
The EC is built around an ARM
M4 is a full-featured 32-bit embedded processor, implementing the ARMv7-M THUMB instruction set in hardware.
The ARM M4 IP is configured as a Von Neumann, Byte-Addressable, Little-Endian architecture. It provides a single unified 32-bit byte-level address, for a total direct addressing space of 4GByte. It has multiple bus interfaces, but these
express priorities of access to the chip-level resources (Instruction Fetch vs. Data RAM vs. others), and they do not
represent separate addressing spaces.
The ARM M4 is configured as follows.
• Little-Endian byte ordering is selected at all times
• Bit Banding is included for efficient bit-level access
• Debug features are included at “Ex+” level, defined as follows:
- DWT Unit provides 4 Data Watchpoint comparators and Execution Monitoring
• Trace features are included at “Full” level, defined as follows:
- DWT for reporting breakpoints and watchpoints
- ITM for profiling and to timestamp and output messages from instrumented firmware builds
- ETM for instruction tracing, and for enhanced reporting of Core and DWT events
- The ARM-defined HTM trace feature is not included
• NVIC Interrupt controller with 8 priority levels and up to 240 individually-vectored interrupt inputs
- A Microchip-defined Interrupt Aggregator function (at chip level) may be used to group multiple interrupts onto
single NVIC inputs
- The ARM-defined WIC feature is not included. The Microchip Interrupt Aggregator function (at chip level)
provides Wake control
• Single entry Write Buffer is incorporated
Cortex®-M4 Processor provided by Arm Ltd. (the “ARM M4 IP”). The ARM Cortex®
5.2References
1.ARM Limited: Cortex®-M4 Technical Reference Manual, DDI0439C, 29 June 2010
2.ARM Limited: ARM®v7-M Architecture Reference Manual, DDI0403D, November 2010
8.ARM Limited: Cortex-M™ System Design Kit Technical Reference Manual, DDI0479B, 16 June 2011
9.ARM Limited: CoreSight™ v1.0 Architecture Specification, IHI0029B, 24 March 2005
10. ARM Limited: CoreSight™ Components Technical Reference Manual, DDI0314H, 10 July 2009
11. ARM Limited: ARM® Debug Interface v5 Architecture Specification, IHI0031A, 8 February 2006
12. ARM Limited: ARM® Debug Interface v5 Architecture Specification ADIv5.1 Supplement, DSA09-PRDC-008772,
17 August 2009
13. ARM Limited: Embedded Trace Macrocell™ (ETMv1.0 to ETMv3.5) Architecture Specification, IHI0014Q, 23
September 2011
14. ARM Limited: CoreSight™ ETM™-M4 Technical Reference Manual, DDI0440C, 29 June 2010
DS00003416B-page 80 2020 Microchip Technology Inc.
Page 81
CEC1712
5.3Terminology
5.3.1ARM IP TERMS AND ACRONYMS
•AHB
Advanced High-Performance Bus, a system-level on-chip AMBA 2 bus standard. See Reference[5], ARM Lim-
ited: AMBA® Specification (Rev 2.0), IHI0011A, 13 May 1999.
•AHB-AP
AHB Access Port, the AP option selected by Microchip for the DAP
• AHB-Lite
A Single-Master subset of the AHB bus standard: defined in the AMBA 3 bus standard. See Reference[6], ARM
Limited: AMBA® 3 AHB-Lite Protocol Specification, IHI0033A, 6 June 2006.
•AMBA
The collective term for bus standards originated by ARM Limited.
AMBA 3 defines the IP’s AHB-Lite and ATB bus interfaces.
AMBA 2 (AMBA Rev. 2.0) defines the EC’s AHB bus interface.
•AP
Any of the ports on the DAP subblock for accessing on-chip resources on behalf of the Debugger, independent
of processor operations. A single AHB-AP option is currently selected for this function.
• APB
Advanced Peripheral Bus, a limited 32-bit-only bus defined in AMBA 2 for I/O register accesses. This term is
relevant only to describe the PPB bus internal to the EC core. See Reference [5], ARM Limited: AMBA® Speci-
fication (Rev 2.0), IHI0011A, 13 May 1999.
• ARMv7
The identifying name for the general architecture implemented by the Cortex-M family of IP products.
The ARMv7 architecture has no relationship to the older “ARM 7” product line, which is classified as an “ARMv3”
architecture, and is very different.
•ATB
Interface standard for Trace data to the TPIU from ETM and/or ITM blocks, Defined in AMBA 3. See Reference[7], ARM Limited: AMBA® 3 ATB Protocol Specification, IHI0032A, 19 June 2006.
• Cortex-M4
The ARM designation for the specific IP selected for this product: a Cortex M4 processor core
•DAP
Debug Access Port, a subblock consisting of
•DP
Any of the ports in the DAP subblock for connection to an off-chip Debugger. A single SWJ-DP option is currently
selected for this function, providing JTAG connectivity.
•DWT
Data Watchdog and Trace subblock. This contains comparators and counters used for data watchpoints and
Core activity tracing.
•ETM
Embedded Trace Macrocell subblock. Provides enhancements for Trace output reporting, mostly from the DWT
subblock. It adds enhanced instruction tracing, filtering, triggering and timestamping.
•FPB
FLASH Patch Breakpoint subblock. Provides either Remapping (Address substitution) or Breakpointing (Exception or Halt) for a set of Instruction addresses and Data addresses. See Section 8.3 of Reference [1], ARM Lim-
ited: Cortex®-M4 Technical Reference Manual, DDI0439C, 29 June 2010.
AHB Trace Macrocell. This is an optional subblock that is not included.
•ITM
Instrumentation Trace Macrocell subblock. Provides a HW Trace interface for “printf”-style reports from instrumented firmware builds, with timestamping also provided.
• MEM-AP
A generic term for an AP that connects to a memory-mapped bus on-chip. For this product, this term is synonymous with the AHB Access Port, AHB-AP.
•NVIC
Nested Vectored Interrupt Controller subblock. Accepts external interrupt inputs. See References [2], ARM Lim-
ited: ARM®v7-M Architecture Reference Manual, DDI0403D, November 2010 and [4], ARM® Generic Interrupt
Controller Architecture version 1.0 Architecture Specification, IHI0048A, September 2008.
• PPB
Private Peripheral Bus: A specific APB bus with local connectivity within the EC.
•ROM Table
A ROM-based data structure in the Debug section that allows an external Debugger and/or a FW monitor to
determine which of the Debug features are present.
•SWJ-DP
Serial Wire / JTAG Debug Port, the DP option selected by Microchip for the DAP.
•TPA
Trace Port Analyzer: any off-chip device that uses the TPIU output.
•TPIU
Trace Port Interface Unit subblock. Multiplexes and buffers Trace reports from the ETM and ITM subblocks.
•WIC
Wake-Up Interrupt Controller. This is an optional subblock that is not included.
5.3.2MICROCHIP TERMS AND ACRONYMS
• Interrupt Aggregator
This is a module that may be present at the chip level, which can combine multiple interrupt sources onto single
interrupt inputs at the EC, causing them to share a vector.
•PMU
Processor Memory Unit, this is a module that may be present at the chip level containing any memory resources
that are closely-coupled to the CEC1712 EC. It manages accesses from both the EC processor and chip-level
bus masters.
5.4ARM M4 IP Interfaces
This section defines only the interfaces to the ARM IP itself. For the interfaces of the entire block, see Section 5.5, "Block
External Interfaces".
The CEC1712 IP has the following major external interfaces, as shown in Figure 5-1, "ARM M4 Based Embedded Con-
troller I/O Block Diagram":
• ICode AHB-Lite Interface
• DCode AHB-Lite Interface
• System AHB-Lite Interface
• Debug (JTAG) Interface
• Trace Port Interface
• Interrupt Interface
DS00003416B-page 82 2020 Microchip Technology Inc.
Page 83
CEC1712
The EC operates on the model of a single 32-bit addressing space of byte addresses (4Gbytes, Von Neumann architecture) with Little-Endian byte ordering. On the basis of an internal decoder (part of the Bus Matrix shown in Figure 5-
1), it routes Read/Write/Fetch accesses to one of three external interfaces, or in some cases internally (shown as the
PPB interface).
The EC executes instructions out of closely-coupled memory via the ICode Interface. Data accesses to closely-coupled
memory are handled via the DCode Interface. The EC accesses the rest of the on-chip address space via the System
AHB-Lite interface. The Debugger program in the host can probe the EC and all EC addressable memory via the JTAG
debug interface.
Aliased addressing spaces are provided at the chip level so that specific bus interfaces can be selected explicitly where
needed. For example, the EC’s Bit Banding feature uses the System AHB-Lite bus to access resources normally
accessed via the DCode or ICode interface.
Note:The EC executes most instructions in one clock cycle. If an instruction accesses code and data that are in
different RAM blocks, then it takes one clock cycle to access both code and data (done in
parallel). However, if the code and data blocks are in the same RAM block, then it takes two clock cycles
(one clock for code access and one clock for data access) since it must do it sequentially.
FIGURE 5-1:ARM M4 BASED EMBEDDED CONTROLLER I/O BLOCK DIAGRAM
DS00003416B-page 84 2020 Microchip Technology Inc.
Page 85
CEC1712
5.6Power, Clocks and Reset
This section defines the Power, Clock, and Reset parameters of the block.
5.6.1POWER DOMAINS
TABLE 5-1:POWER SOURCES
NameDescription
VTR_COREThe ARM M4 Based Embedded Controller is powered by VTR_CORE.
5.6.2CLOCK INPUTS
5.6.2.1Basic Clocking
The basic clocking comes from a free-running Clock signal provided from the chip level.
TABLE 5-2:CLOCK INPUTS
NameDescription
48MHzThe clock source to the EC. Division of the clock rate is determined by
the PROCESSOR_CLOCK_DIVIDE field in the Processor Clock Control
Register.
5.6.2.2System Tick Clocking
The System Tick clocking is controlled by a signal from chip-level logic. It is the 48MHz divided by the following:
-((PROCESSOR_CLOCK_DIVIDE)x2)+1
5.6.2.3Debug JTAG Clocking
The Debug JTAG clocking comes from chip-level logic, which may multiplex or gate this clock. See Section 5.10,
"Debugger Access Support".
5.6.2.4Trace Clocking
The Clock for the Trace interface is identical to the 48MHz input.
5.6.3RESETS
The reset interface from the chip level is given below.
TABLE 5-3:RESET SIGNALS
NameDescription
RESET_ECThe ARM M4 Based Embedded Controller is reset by RESET_EC.
5.7Interrupts
The ARM M4 Based Embedded Controller is equipped with an Interrupt Interface to respond to interrupts. These inputs
go to the IP’s NVIC block after a small amount of hardware processing to ensure their detection at varying clock rates.
See Figure 5-1, "ARM M4 Based Embedded Controller I/O Block Diagram".
As shown in Figure 5-1, an Interrupt Aggregator block may exist at the chip level, to allow multiple related interrupts to
be grouped onto the same NVIC input, and so allowing them to be serviced using the same vector. This may allow the
same interrupt handler to be invoked for a group of related interrupt inputs. It may also be used to expand the total number of interrupt inputs that can be serviced.
The NMI (Non-Maskable Interrupt) connection is tied off and not used.
5.7.1NVIC INTERRUPT INTERFACE
The NVIC interrupt unit can be wired to up to 240 interrupt inputs from the chip level. The interrupts that are actually
connected from the chip level are defined in the Interrupt section.
All NVIC interrupt inputs can be programmed as either pulse or level triggered. They can also be individually masked,
and individually assigned to their own hardware-managed priority level.
5.7.2NVIC RELATIONSHIP TO EXCEPTION VECTOR TABLE ENTRIES
The Vector Table consists of 4-byte entries, one per vector. Entry 0 is not a vector, but provides an initial Reset value
for the Main Stack Pointer. Vectors start with the Reset vector, at Entry #1. Entries up through #15 are dedicated for
internal exceptions, and do not involve the NVIC.
NVIC entries in the Vector Table start with Entry #16, so that NVIC Interrupt #0 is at Entry #16, and all NVIC interrupt
numbers are incremented by 16 before accessing the Vector Table.
The number of connections to the NVIC determines the necessary minimum size of the Vector Table, as shown below.
It can extend as far as 256 entries (255 vectors, plus the non-vector entry #0).
A Vector entry is used to load the Program Counter (PC) and the EPSR.T bit. Since the Program Counter only expresses
code addresses in units of two-byte Halfwords, bit[0] of the vector location is used to load the EPSR.T bit instead, selecting THUMB mode for exception handling. Bit[0] must be ‘1’ in all vectors, otherwise a UsageFault exception will be
posted (INVSTATE, unimplemented instruction set). If the Reset vector is at fault, the exception posted will be HardFault
instead.
TABLE 5-4:EXCEPTION AND INTERRUPT VECTOR TABLE LAYOUT
Tab le Ent ry
0(none)Holds Reset Value for the Main Stack Pointer. Not a Vector.
11Reset Vector (PC + EPSR.T bit)
22NMI (Non-Maskable Interrupt) Vector
33HardFault Vector
44MemManage Vector
55BusFault Vector
66UsageFault Vector
7 (none)(Reserved by ARM Ltd.)
8 (none)(Reserved by ARM Ltd.)
9 (none)(Reserved by ARM Ltd.)
10 (none)(Reserved by ARM Ltd.)
1111SVCal l Vector
1212Debug Monitor Vector
13(none)(Reserved by ARM Ltd.)
1414PendSV Vector
1515SysTick Vector
1616NVIC Interrupt #0 Vector
.
.
.
n + 16n + 16NVIC Interrupt #n Vector
.
.
.
max + 16 max + 16NVIC Interrupt #max Vector (Highest-numbered NVIC connection.)
.
.
.
255 255NVIC Interrupt #239 (Architectural Limit of Exception Table)
Exception
Number
.
.
.
.
.
.
.
.
.
Exception
Special Entry for Reset Stack Pointer
Core Internal Exception Vectors start here
NVIC Interrupt Vectors start here
.
.
.
.
.
.
. Table size may (but need not) extend further.
.
.
DS00003416B-page 86 2020 Microchip Technology Inc.
Page 87
CEC1712
5.8Low Power Modes
The ARM processor can enter Sleep or Deep Sleep modes internally. This action will cause an output signal Clock
Required to be turned off, allowing clocks to be stopped from the chip level. However, Clock Required will still be held
active, or set to active, unless all of the following conditions exist:
• No interrupt is pending.
• An input signal Sleep Enable from the chip level is active.
• The Debug JTAG port is inactive (reset or configured not present).
In addition, regardless of the above conditions, a chip-level input signal Force Halt may halt the processor and remove
Clock Required.
5.9Description
5.9.1BUS CONNECTIONS
There are three bus connections used from CEC1712 EC block, which are directly related to the IP bus ports. See
Figure 5-1, "ARM M4 Based Embedded Controller I/O Block Diagram".
For the mapping of addresses at the chip level, see Section 3.0, "Device Inventory".
5.9.1.1Closely Coupled Instruction Fetch Bus
As shown in Figure 5-1, the AHB-Lite ICode port from the IP is converted to a more conventional SRAM memory-style
bus and connected to the on-chip memory resources with routing priority appropriate to Instruction Fetches.
5.9.1.2Closely Coupled Data Bus
As shown in Figure 5-1, the AHB-Lite DCode port from the IP is converted to a more conventional SRAM memory-style
bus and connected to the on-chip memory resources with routing priority appropriate to fast Data Read/Write accesses.
5.9.1.3Chip-Level System Bus
As shown in Figure 5-1, the AHB-Lite System port from the IP is converted from AHB-Lite to fully arbitrated multi-master
capability (the AMBA 2 defined AHB bus: see Reference [5], ARM Limited: AMBA® Specification (Rev 2.0), IHI0011A,
13 May 1999). Using this bus, all addressable on-chip resources are available. The multi-mastering capability supports
the Microchip DMA and EMI features if present, as well as the Bit-Banding feature of the IP itself.
As also shown in Figure 5-1, the Closely-Coupled memory resources are also available through this bus connection
using aliased addresses. This is required in order to allow Bit Banding to be used in these regions, but it also allows
them to be accessed by DMA and other bus masters at the chip level.
Note:Registers with properties such as Write-1-to-Clear (W1C), Read-to-Clear and FIFOs need to be handled
with appropriate care when being used with the bit band alias addressing scheme. Accessing such a register through a bit band alias address will cause the hardware to perform a read-modify-write, and if a W1Ctype bit is set, it will get cleared with such an access. For example, using a bit band access to the Interrupt
Aggregator, including the Interrupt Enables and Block Interrupt Status to clear an IRQ will clear all active
IRQs.
5.9.2INSTRUCTION PIPELINING
There are no special considerations except as defined by ARM documentation.
5.10Debugger Access Support
An external Debugger accesses the chip through a JTAG standard interface. The ARM Debug Access Port supports
both the 2-pin SWD (Serial Wire Debug) interface and the 4-pin JTAG interface.
As shown in Figure 5-1, "ARM M4 Based Embedded Controller I/O Block Diagram", other resources at the chip level
that share the JTAG port pins; for example chip-level Boundary Scan.
By default, debug access is disabled when the EC begins executing code. EC code enables debugging by writing the
Debug Enable Register in the EC Subsystem Registers block.
5.10.1DEBUG AND ACCESS PORTS (SWJ-DP AND AHB-AP SUBBLOCKS)
These two subblocks work together to provide access to the chip for the Debugger using the Debug JTAG connection,
as described in Chapter 4 of the ARM Limited: ARM® Debug Interface v5 Architecture Specification, IHI0031A, 8 Feb-
ruary 2006.
5.10.2BREAKPOINT, WATCHPOINT AND TRACE SUPPORT
See References [11], ARM Limited: ARM® Debug Interface v5 Architecture Specification, IHI0031A, 8 February 2006
and [12], ARM Limited: ARM® Debug Interface v5 Architecture Specification ADIv5.1 Supplement, DSA09-PRDC-
008772, 17 August 2009. A summary of functionality follows.
Breakpoint and Watchpoint facilities can be programmed to do one of the following:
• Halt the processor. This means that the external Debugger will detect the event by periodically polling the state of
the EC.
• Transfer control to an internal Debug Monitor firmware routine, by triggering the Debug Monitor exception (see
Table 5-4, "Exception and Interrupt Vector Table Layout").
5.10.2.1Instrumentation Support (ITM Subblock)
The Instrumentation Trace Macrocell (ITM) is for profiling software. This uses non-blocking register accesses, with a
fixed low-intrusion overhead, and can be added to a Real-Time Operating System (RTOS), application, or exception
handler. If necessary, product code can retain the register access instructions, avoiding probe effects.
5.10.2.2HW Breakpoints and ROM Patching (FPB Subblock)
The Flash Patch and Breakpoint (FPB) block. This block can remap sections of ROM, typically Flash memory, to regions
of RAM, and can set breakpoints on code in ROM. This block can be used for debug, and to provide a code or data
patch to an application that requires field updates to a product in ROM.
5.10.2.3Data Watchpoints and Trace (DWT Subblock)
The Debug Watchpoint and Trace (DWT) block provides watchpoint support, program counter sampling for performance
monitoring, and embedded trace trigger control.
5.10.2.4Trace Interface (ETM and TPIU)
The Embedded Trace Macrocell (ETM) provides instruction tracing capability. For details of functionality and usage, see
References [13], ARM Limited: Embedded Trace Macrocell™ (ETMv1.0 to ETMv3.5) Architecture Specification,
IHI0014Q, 23 September 2011 and [14], ARM Limited: CoreSight™ ETM™-M4 Technical Reference Manual,
DDI0440C, 29 June 2010.
The Trace Port Interface Unit (TPIU) provides the external interface for the ITM, DWT and ETM.
DS00003416B-page 88 2020 Microchip Technology Inc.
Page 89
5.11Delay Register
5.11.1DELAY REGISTER
CEC1712
Offset
BitsDescriptionTypeDefault
1000_0000h
31:5 ReservedRES--
4:0 DELAY
Writing a value n, from 0h to 31h, to this register will cause the ARM
processor to stall for (n+1) microseconds (that is, from 1µS to 32µS).
Reads will return the last value read immediately. There is no delay.
The CEC1712 contains two blocks of SRAM. The two SRAM blocks in the CEC1712 total 256KB. Both SRAM blocks
can be used for either program or data accesses. Performance is enhanced when program fetches and data accesses
are to different SRAM blocks, but a program will operate correctly even if both program and data accesses are targeting
the same block simultaneously.
• The first SRAM, which is optimized for code access, is 224KB
• The second SRAM, which is optimized for data access, is32KB
6.2ROM
The CEC1712 contains a 64KB block of ROM, located at address 00000000h in the ARM address space. The ROM
contains boot code that is executed after the de-assertion of RESET_SYS. The boot code loads an executable code
image into SRAM. The ROM also includes a set of API functions that can be used for cryptographic functions, as well
as loading SRAM with programs or data.
6.3Additional Memory Regions
6.3.1ALIAS RAM
The Alias RAM region, starting at address 20000000h, is an alias of the SRAM located at 118000h, and is the same
size as that SRAM block. EC software can access memory in either the primary address or in the alias region; however,
access is considerably slower to the alias region. The alias region exists in order to enable the ARM bit-band region
located at address 20000000h.
6.3.2RAM BIT-BAND REGION
The RAM bit-band region is an alias of the SRAM located at 118000h, except that each bit is aliased to bit 0 of a 32-bit
doubleword in the bit-band region. The upper 31 bits in each doubleword of the bit-band region are always 0. The bitband region is therefore 32 times the size of the SRAM region. It can be used for atomic updates of individual bits of the
SRAM, and is a feature of the ARM architecture.
The bit-band region can only be accessed by the ARM processor. Accesses by any other bus master will cause a memory fault.
6.3.3CRYPTOGRAPHIC RAM
The cryptographic RAM is used by the cryptographic API functions in the ROM
6.3.4REGISTER BIT-BAND REGION
The Register bit-band region is an 32-to-1 alias of the device register space starting at address 40000000h and ending
with the Host register space at 400FFFFF. Every bit in the register space is aliased to a byte in the Register bit-band
region, and like the RAM bit-band region, can be used by EC software to read and write individual register bits. Only the
EC Device Registers and the GPIO Registers can be accessed via the bit-band region.
A one bit write operation to a register bit in the bit-band region is implemented by the ARM processor by performing a
read, a bit modification, followed by a write back to the same register. Software must be careful when using bit-banding
if a register contains bits have side effects triggered by a read.
The bit-band region can only be accessed by the ARM processor. Accesses by any other bus master will cause a memory fault.
DS00003416B-page 90 2020 Microchip Technology Inc.
Page 91
6.4Memory Map
32KB RAM
224KB RAM
64KB Boot ROM
0x0000_0000
0x0011_8000
0x0000_FFFF
0x2000_0000
0x4000_0000
0x4001_FFFF
32KB Alias RAM
EC Device
Registers
1MB
ARM Bit Band
Alias RAM Region
0x2200_0000
Crypto RAM
0x4010_0000
0x4010_57FF
0x000E_0000
25 6 KB mo d el sta rt ad d re s s
0x0011_FFFF
256KB end address
0x4008_0000
0x4008_FFFF
GPIO Registers
0x400F_0000
0x400F_FFFF
Host Device
Registers
32MB
ARM Bit Band
Register Space
0x4200_0000
0x43FF_FFFF
0x2000_7FFF
256KB end address
0x220F_FFFF
256KB model end address
0x4007_0000
0x4007_1FFF
ESPI Protected
Segment
The memory map of the RAM and ROM is represented as follows:
The Internal DMA Controller transfers data to/from the source from/to the destination. The firmware is responsible for
setting up each channel. Afterwards either the firmware or the hardware may perform the flow control. The hardware
flow control exists entirely inside the source device. Each transfer may be 1, 2, or 4 bytes in size, so long as the device
supports a transfer of that size. Every device must be on the internal 32-bit address space.
7.2References
No references have been cited for this chapter.
7.3Terminology
TABLE 7-1:TERMINOLOGY
TermDefinition
DMA TransferThis is a complete DMA Transfer which is done after the Master Device
terminates the transfer, the Firmware Aborts the transfer or the DMA
reaches its transfer limit.
A DMA Transfer may consist of one or more data packets.
Data PacketEach data packet may be composed of 1, 2, or 4 bytes. The size of the data
packet is limited by the max size supported by both the source and the destination. Both source and destination will transfer the same number of bytes
per packet.
ChannelThe Channel is responsible for end-to-end (source-to-destination) Data
Packet delivery.
DeviceA Device may refer to a Master or Slave connected to the DMA Channel.
Each DMA Channel may be assigned one or more devices.
Master DeviceThis is the master of the DMA, which determines when it is active.
The Firmware is the master while operating in Firmware Flow Control.
The Hardware is the master while operating in Hardware Flow Control.
The Master Device in Hardware Mode is selected by DMA Channel Con-trol:Hardware Flow Control Device. It is the index of the Flow Control
Port.
Slave DeviceThe Slave Device is defined as the device associated with the targeted
Memory Address.
SourceThe DMA Controller moves data from the Source to the Destination. The
Source provides the data. The Source may be either the Master or Slave
Controller.
DestinationThe DMA Controller moves data from the Source to the Destination. The
Destination receives the data. The Destination may be either the Master or
Slave Controller.
DS00003416B-page 92 2020 Microchip Technology Inc.
Page 93
7.4Interface
Internal DMA Controller
Power, Clocks and Reset
Interrupts
DMA Interface
Host Interface
Signal interface
This block is designed to be accessed internally via a registered host interface.
FIGURE 7-1:INTERNAL DMA CONTROLLER I/O DIAGRAM
CEC1712
7.5Signal interface
This block doesn’t have any external signals that may be routed to the pin interface. This DMA Controller is intended to
be used internally to transfer large amounts of data without the embedded controller being actively involved in the transfer.
7.6Host Interface
The registers defined for the Internal DMA Controller are accessible by the various hosts as indicated in Section 3.2,
"Block Overview and Base Addresses".
7.7DMA Interface
Each DMA Master Device that may engage in a DMA transfer must have a compliant DMA interface. The following table
lists the DMA Devices in the CEC1712.
TABLE 7-2:DMA CONTROLLER DEVICE SELECTION
SMB-I2C 0 Controller0Slave
SMB-I2C 1 Controller2Slave
SMB-I2C 2 Controller4Slave
SMB-I2C 3 Controller6Slave
SMB-I2C 4Controller8Transmit
Note 1:The Device Number is programmed into field HARDWARE_FLOW_CONTROL_DEVICE of the DMA
This section defines the Power, Clock, and Reset parameters of the block.
7.8.1POWER DOMAINS
TABLE 7-4:POWER SOURCES
NameDescription
VTR_COREThis power well sources the registers and logic in this block.
7.8.2CLOCK INPUTS
TABLE 7-5:CLOCK INPUTS
NameDescription
48MHzThis clock signal drives selected logic (e.g., counters).
7.8.3RESETS
TABLE 7-6:RESET SIGNALS
NameDescription
RESET_SYSThis reset signal resets all of the registers and logic in this block.
RESETThis reset is generated if either the RESET_SYS is asserted or the
SOFT_RESET bit is asserted.
7.9Interrupts
This section defines the Interrupt Sources generated from this block.
TABLE 7-7:INTERRUPTS
SourceDescription
DMAxDirect Memory Access Channel x
This signal is generated by the STATUS_DONE bit.
7.10Low Power Modes
The Internal DMA Controller may be put into a low power state by the chip’s Power, Clocks, and Reset (PCR) circuitry.
When the block is commanded to go to sleep it will place the DMA block into sleep mode only after all transactions on
the DMA have been completed. For Firmware Flow Controlled transactions, the DMA will wait until it hits its terminal
count and clears the Go control bit. For Hardware Flow Control, the DMA will go to sleep after either the terminal count
is hit, or the Master device flags the terminate signal.
7.11Description
The CEC1712 features a 12 channel DMA controller. The DMA controller can autonomously move data from/to any
DMA capable master device to/from any populated memory location. This mechanism allows hardware IP blocks to
transfer large amounts of data into or out of memory without EC intervention.
The DMA has the following characteristics:
• Data is only moved 1 Data Packet at a time
• Data only moves between devices that are accessible via the internal 32-bit address space
• The DMA Controller has 12 DMA Channels
• Each DMA Channel may be configured to communicate with any DMA capable device on the 32-bit internal
address space. Each device has been assigned a device number. See Section 7.7, "DMA Interface".
The controller will access SRAM buffers only with incrementing addresses (that is, it cannot start at the top of a buffer,
nor does it handle circular buffers automatically). The controller does not handle chaining (that is, automatically starting
a new DMA transfer when one finishes).
DS00003416B-page 96 2020 Microchip Technology Inc.
Page 97
CEC1712
7.11.1CONFIGURATION
The DMA Controller is enabled via the AC TIVATE bit in DMA Main Control Register register.
Each DMA Channel must also be individually enabled via the CHANNEL_ACTIVATE bit in the DMA Channel N Activate
Register to be operational.
Before starting a DMA transaction on a DMA Channel the host must assign a DMA Master to the channel via HARD-
WARE_FLOW_CONTROL_DEVICE. The host must not configure two different channels to the same DMA Master at
the same time.
Data will be transfered between the DMA Master, starting at the programmed DEVICE_ADDRESS, and the targeted
memory location, starting at the MEMORY_START_ADDRESS. The address for either the DMA Master or the targeted
memory location may remain static or it may increment. To enable the DMA Master to increment its address set the
INCREMENT_DEVICE_ADDRESS bit. To enable the targeted memory location to increment its addresses set the
INCREMENT_MEMORY_ADDRESS. The DMA transfer will continue as long as the target memory address being
accessed is less than the MEMORY_END_ADDRESS. If the DMA Controller detects that the memory location it is
attempting to access on the Target is equal to the MEMORY_END_ADDRESS it will notify the DMA Master that the
transaction is done. Otherwise the Data will be transferred in packets. The size of the packet is determined by the
TRANSFER_SIZE.
7.11.2OPERATION
The DMA Controller is designed to move data from one memory location to another.
7.11.2.1Establishing a Connection
A DMA Master will initiate a DMA Transaction by requesting access to a channel. The DMA arbiter, which evaluates
each channel request using a basic round robin algorithm, will grant access to the DMA master. Once granted, the channel will hold the grant until it decides to release it, by notifying the DMA Controller that it is done.
If Firmware wants to prevent any other channels from being granted while it is active it can set the LOCK_CHANNEL bit.
7.11.2.2Initiating a Transfer
Once a connection is established the DMA Master will issue a DMA request to start a DMA transfer. If Firmware wants
to have a transfer request serviced it must set the RUN bit to have its transfer requests serviced.
Firmware can initiate a transaction by setting the TRANSFER_GO bit. The DMA transfer will remain active until either
the Master issues a Terminate or the DMA Controller signals that the transfer is DONE. Firmware may terminate a trans-
action by setting the TRANSFER_ABORT bit.
Note:Before initiating a DMA transaction via firmware the hardware flow control must be disabled via the DIS-
ABLE_HARDWARE_FLOW_CONTROL bit.
Data may be moved from the DMA Master to the targeted Memory address or from the targeted Memory Address to the
DMA Master. The direction of the transfer is determined by the TRANSFER_DIRECTION bit.
Once a transaction has been initiated firmware can use the STATUS_DONE bit to determine when the transaction is
completed. This status bit is routed to the interrupt interface. In the same register there are additional status bits that
indicate if the transaction completed successfully or with errors. These bits are OR’d together with the STATUS_DONE
bit to generate the interrupt event. Each status be may be individually enabled/disabled from generating this event.
7.11.2.3Reusing a DMA Channel
After a DMA Channel controller has completed, firmware must clear both the DMA Channel N Control Register and the
DMA Channel N Interrupt Status Register. After both have been cleared to 0, the Channel Control Register can then be
configured for the next transaction.
7.11.2.4CRC Generation
A CRC generator can be attached to a DMA channel in order to generate a CRC on the data as it is transfered from the
source to the destination. The CRC used is the CRC-32 algorithm used in IEEE 802.3 and many other protocols, using
the polynomial x
place in parallel with the data transfer; enabling CRC will not increase the time to complete a DMA transaction. The CRC
generator has the optional ability to automatically transfer the generated CRC to the destination after the data transfer
has completed.
CRC generation is subject to a number of restrictions:
• The CRC is only generated on channels that have the CRC hardware. See Table 7-10, "Channel Register Sum-
mary" for a definition of which channels have the ability to generate a CRC
• The DMA transfer must be 32-bits
• If CRC is enabled, DMA interrupts are inhibited until the CRC is completed, including the optional post-transfer
copy of it is enabled
• The CRC must be initialized by firmware. The value FFFFFFFFh must be written to the Data Register in order to
initialize the generator for the standard CRC-32-IEEE algorithm
• The CRC will
7.11.2.5Block Fill Option
A Fill engine can be attached to a DMA channel in order to provide a fast mechanism to set a block of memory to a fixed
value (for example, clearing a block of memory to zero). The block fill operation runs approximately twice as fast as a
memory-to-memory copy.
In order to fill memory with a constant value, firmware must configure the channel in the following order:
1.Set the DMA Channel N Fill Data Register to the desired fill value
2.Set the DMA Channel N Fill Enable Register to ‘1b’, enabling the Fill engine
3.Set the DMA Channel N Control Register to the following values:
- RUN = 0
- TRANSFER_DIRECTION = 0 (memory destination)
- INCREMENT_MEMORY_ADDRESS = 1 (increment memory address after each transfer)
- INCREMENT_DEVICE_ADDRESS = 1
- DISABLE_HARDWARE_FLOW_CONTROL = 1 (no hardware flow control)
- TRANSFER_SIZE = 1, 2 or 4 (as required)
- TRANSFER_ABORT = 0
- TRANSFER_GO = 1 (this starts the transfer)
bebit‐orderreversedandinvertedas required by the CRC algorithm
7.12EC Registers
The DMA Controller consists of a Main Block and a number of Channels. Table 7-9, "Main Register Summary" lists the
registers in the Main Block and Table 7-10, "Channel Register Summary" lists the registers in each channel. Addresses
for each register are determined by adding the offset to the Base Address for the DMA Controller Block in the Block
Overview and Base Address Table in Section 3.0, "Device Inventory".
Registers are listed separately for the Main Block of the DMA Controller and for a DMA Channel. Each Channel has the
same set of registers. The absolute register address for registers in each channel are defined by adding the Base
Address for the DMA Controller Block, the Offset for the Channel shown in Table 7-8, "DMA Channel Offsets" to the
offsets listed in Table 7-9, "Main Register Summary" or Table 7-10, "Channel Register Summary".
:
TABLE 7-8:DMA CHANNEL OFFSETS
Instance NameChannel NumberOffset
DMA ControllerMain Block000h
DMA Controller0040h
DMA Controller1080h
DMA Controller20C0h
DMA Controller3100h
DMA Controller4140h
DMA Controller5180h
DMA Controller61C0h
DMA Controller7200h
DMA Controller8240h
DMA Controller9280h
DS00003416B-page 98 2020 Microchip Technology Inc.
Page 99
TABLE 7-8:DMA CHANNEL OFFSETS (CONTINUED)
Instance NameChannel NumberOffset
DMA Controller102C0h
DMA Controller11300h
TABLE 7-9:MAIN REGISTER SUMMARY
OffsetRegister Name
00hDMA Main Control Register
04hDMA Data Packet Register
7.12.1DMA MAIN CONTROL REGISTER
CEC1712
Offset
BitsDescriptionTypeDefault
00h
7:2 ReservedRES--
1 SOFT_RESET
Soft reset the entire module.
This bit is self-clearing.
0 ACTI VATE
Enable the blocks operation.
1=Enable block. Each individual channel must be enabled separately.
0=Disable all channels.
W0b -
R/WS0bRESET
7.12.2DMA DATA PACKET REGISTER
Offset
BitsDescriptionTypeDefault
04h
31:0 DATA_PACKET
Debug register that has the data that is stored in the Data Packet.
This data is read data from the currently active transfer source.
R0000h-
Reset
Event
Reset
Event
TABLE 7-10:CHANNEL REGISTER SUMMARY
Offset
00hDMA Channel N Activate Register
04hDMA Channel N Memory Start Address Register
08hDMA Channel N Memory End Address Register
0ChDMA Channel N Device Address
10hDMA Channel N Control Register
14hDMA Channel N Interrupt Status Register
Note 1:The letter ‘N’ following DMA Channel indicates the Channel Number. Each Channel
implemented will have these registers to determine that channel’s operation.
2: These registers are only present on DMA Channel 0. They are reserved on all other
channels.
3: These registers are only present on DMA Channel 1. They are reserved on all other