MEC1703-Q-C-I-TN [MICROCHIP]

Keyboard and Embedded Controller for Notebook PC;
MEC1703-Q-C-I-TN
型号: MEC1703-Q-C-I-TN
厂家: MICROCHIP    MICROCHIP
描述:

Keyboard and Embedded Controller for Notebook PC

PC
文件: 总662页 (文件大小:6373K)
中文:  中文翻译
下载:  下载PDF数据表文档文件
MEC170x  
Keyboard and Embedded Controller for Notebook PC  
- Single byte read/write access  
- 32 Byte page size  
- 1,000,000 write cycle endurance  
• GPIO and Core Logic supports 3.3V and 1.8V  
Operation.  
• Analog and PLL are 3.3V Operation only.  
• ACPI Compliant  
• LPC Interface  
- Supports LPC Bus frequencies of 19MHz to  
33MHz  
• VTR (standby) and VBAT Power Planes  
-
Low Standby Current in Sleep Mode  
- 1.8V and 3.3V Support  
• Configuration Register Set  
- LPC I/O Cycles Decoded  
- LPC Memory Cycles Decoded  
- Clock Run Support  
- Serial IRQ  
- ACPI SCI interface  
- Compatible with ISA Plug-and-Play Standard  
- EC-Programmable Base Address  
• ARM® Cortex®-M4 Processor Core  
- 32-Bit ARM v7-M Instruction Set Architecture  
- Hardware Floating Point Unit (FPU)  
- Single 4GByte Addressing Space (Von Neu-  
mann Model)  
- SMI# output  
• Enhanced Serial Peripheral Interface (eSPI)  
- Intel eSPI Specification compliant  
- Supports four channels/interfaces:  
- Peripheral channel Interface  
- Virtual Wire Interface  
- Out of Band Channel Interface  
- Flash Channel Interface  
- Supports EC Bus Master to Host Memory  
• Legacy Support  
- Fast GATEA20 and Fast CPU_RESET  
• System to EC Message Interface  
- 8042 Style Host Interface  
- ACPI Embedded Controller Interface  
- Five Instances  
- 1 or 4 Byte Data transfer capable  
- Full-duplex Register Access  
- ACPI Power Management Interface  
- SCI Event-Generating Functions  
- Mailbox Registers Interface  
- Thirty-two 8-Bit Scratch Registers  
- Two Register Mailbox Command Interface  
- Two Register SMI Source Interface  
- Three Embedded Memory Interface  
Instances  
- Little-Endian Byte Ordering  
- Bit-Banding Feature Included  
- NVIC Nested Vectored Interrupt Controller  
- Up to 240 Individually-Vectored Interrupt Sources  
Supported  
- 8 Levels of Priority, Individually Assignable By Vector  
- Chip-Level Interrupt Aggregator supported, to  
expand number of interrupt sources or reduce  
number of vectors  
- System Tick Timer  
- Complete ARM-Standard Debug Support  
- JTAG-Based DAP Port, Comprised of SWJ-DP and  
AHB-AP Debugger Access Functions  
- Full DWT Hardware Functionality: 4 Data  
Watchpoints and Execution Monitoring  
- Full FPB Hardware Breakpoint Functionality: 6  
Execution Breakpoints and 2 Literal (Data)  
Breakpoints  
- Comprehensive ARM-Standard Trace Sup-  
port  
- Full DWT Hardware Trace Functionality for  
Watchpoint and Performance Monitoring  
- Full ITM Hardware Trace Functionality for  
Instrumented Firmware Support and Profiling  
- Full ETM Hardware Trace Functionality for  
Instruction Trace  
- Host Serial or Parallel IRQ Source  
- Provides Two Windows to On-Chip SRAM for Host  
Access  
- Full TPIU Functionality for Trace Output  
Communication  
- MPU Feature  
- Two Register Mailbox Command Interface  
- Host Access of Virtual Registers Without EC  
Intervention  
- 1µS Delay Register  
• Internal Memory  
- 64k Boot ROM  
- Two blocks of SRAM, totaling 256KB, 320KB  
• Battery Backed Resources  
- Power-Fail Status Register  
- 32 KHz Clock Generator  
- Week Alarm Timer Interface  
- Real Time Clock  
or 480KB  
- Each block can be used for either program or data  
- One block 32KB or 64KB  
- One block 224KB, 288KB or 416KB  
- 128 Bytes Battery Powered SRAM  
- Non-volatile Read/Write Memory  
- 2KB of EEPROM  
- VBAT-Powered Control Interface  
- Five Wake-up Input Signals  
- Optional Latching of Wake-up Inputs  
- VBAT-Backed 128 Byte Memory  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 1  
MEC170x  
• Four EC-based SMBus 2.0 Host Controllers  
- Allows Master or Dual Slave Operation  
- Fully Operational on Standby Power  
- DMA-driven I2C Network Layer Hardware  
- I2C Datalink Compatibility Mode  
- Multi-Master Capable  
- Up to 148 GPIOs  
- 8 GPIO Pass-Through Port (GPTP)  
- Glitch protection on most GPIO pins  
- 6 Battery-powered General Purpose Outputs  
- All GPIOs can be powered by 1.8V  
- Programmable Drive Strength and Slew Rate  
on all GPIOs  
- Supports Clock Stretching  
- Programmable Bus Speed up to 1MHz  
- Hardware Bus Access “Fairness” Interface  
- SMBus Time-outs Interface  
- AMD-TSI Port  
- 12 Ports Assignable to Any Controller  
- All ports 1.8V-capable  
• Five independent Hardware Driven PS/2 Ports  
- Three controllers  
- Fully functional on Main and/or Suspend Power  
- PS/2 Edge Wake Capable  
- Two ports 5V tolerant  
• Two General Purpose Serial Peripheral Interface  
Controllers (ECGP-SPI)  
- One 3-pin EC-driven Full Duplex Serial Com-  
munication Interface  
- Flexible Clock Rates  
- SPI Burst Capable  
• One Quad Serial Peripheral Interface (SPI) Control-  
ler  
- Master Only SPI Controller  
- Mappable to two ports (only 1 port active at a  
time)  
- Dual and Quad I/O Support  
- Flexible Clock Rates  
- SPI Burst Capable  
- SPI Controller Operates with Internal DMA  
Controller with CRC Generation  
• 18 x 8 Interrupt Capable Multiplexed Keyboard Scan  
Matrix  
- Optional Push-Pull Drive for Fast Signal Switch-  
ing  
• Programmable 16-bit Counter/Timer Interface  
- Four 16-bit Auto-reloading Counter/Timer  
Instances  
- Four Operating Modes per Instance: Timer,  
One-shot, Event and Measurement  
- 4 External Inputs, 4 External Outputs  
• Hibernation Timer Interface  
- Two 32.768 KHz Driven 16-bit Timers  
- Programmable Wake-up from 0.5ms to 128 Minutes  
- One 32.768 KHz Driven 32-bit RTOS Timer  
- Programmable Wake-up from 30μS to 35 Hours  
- Auto Reload Option  
• System Watch Dog Timer (WDT)  
• Input Capture and Compare Timer  
- 32-bit Free-running timer  
- Six 32-bit Capture Registers  
- Two 32-bit Compare Registers  
- Capture, Compare and Overflow Interrupts  
- Toggle Output on Compare Timers  
• Week Timer  
- Power-up Event Output  
- Week Alarm Interrupt with 1 Second to 8.5 Year  
Time-out  
- Sub-Week Alarm Interrupt with 0.50 Seconds -  
72.67 hours time-out  
- 1 Second and Sub-second Interrupts  
• Real Time Clock (RTC)  
- VBAT Powered  
- 32KHz Crystal Oscillator  
- Time-of-Day and Calendar Registers  
- Programmable Alarms  
- Supports Leap Year and Daylight Savings Time  
• Two Microchip BC-Link Interconnection Bus  
- Programmable Bus Clock Rate  
• PECI Interface 3.0  
• Four Breathing/Blinking LED Interfaces  
- Supports three modes of operation:  
- Blinking Mode with Programmable Blink Rates  
- Breathing LED Output  
• FAN Support  
- 8-bit PWM  
- Eleven Programmable Pulse-Width Modulator  
(PWM) Outputs  
- Breathing LED Supports Piecewise-linear  
Brightness Curves, Symmetric or Asymmetric  
- Supports Low Power Operation in Blinking and  
Breathing Modes  
- Multiple Clock Rates  
- 16-Bit ‘On’ and 16-Bit ‘Off’ Counters  
- Three Fan Tachometer Inputs  
- Two RPM-Based Fan Speed Controllers  
- Each includes one Tach input and one PWM output  
- 3% accurate from 500 RPM to 16k RPM  
- Automatic Tachometer feedback  
- Aging Fan or Invalid Drive Detection  
- Spin Up Routine  
- Ramp Rate Control  
- RPM-based Fan Speed Control Algorithm  
• ADC Interface  
- 10-bit Conversion in 1s  
- 16 Channels  
- Operates on Standby Power  
- Operates in Chip's Heavy Sleep State on 32kHz  
standby clock  
- Operational in EC Sleep State  
- Pin buffers capable of sinking up to 12 mA  
• Three Resistor/Capacitor Identification Detection  
(RC_ID) ports  
- Single Pin Interface to External Inexpensive RC  
Circuit  
- Replacement for Multiple GPIO’s  
- Provides 8 Quantized States on One Pin  
• General Purpose I/O Pins  
DS00002206H-page 2  
2016-2020 Microchip Technology Inc.  
MEC170x  
- Integral Non-Linearity of ±1.5 LSB; Differential  
Non-Linearity of ±1.0 LSB  
- Support for 128-bit, 192-bit and 256-bit key  
length  
• Two Standard 16C550 UARTs  
- Accessible from Host and EC  
- One UART with full 8-pin Modem Control  
- One UART with 4-pin Interface  
- Programmable Input/output Pin Polarity Inver-  
sion  
- Programmable Main Power or Standby Power  
Functionality  
• Two Port 80h Debug Ports for BIOS Debug  
- Ports, Assignable to Any LPC IO Address  
- 24-bit Timestamp with Adjustable Timebase  
- 16-Entry FIFO  
- DMA interface to SRAM, shared with Hash  
engine  
• Cryptographic Hash Engine  
- Support for SHA-1, SHA-256, SHA-384, SHA-  
512  
- DMA interface to SRAM, shared with AES  
engine  
• Public Key Cryptographic Engine  
- Hardware support for RSA and Elliptic Curve  
public key algorithms  
- RSA keys length of 1024 or 2048 bis  
- ECC Prime Field and Binary Field keys up to  
640 bits  
- Microcoded support for standard public key  
algorithms  
• Cryptographic Features  
- True Random Number Generator  
- 1K bit FIFO  
• Trace FIFO Debug Port (TFDP)  
• Integrated Standby Power Reset Generator  
- Reset Input Pin  
- Reset Output Pin  
• Clock Generator  
- 32.768KHz Clock Source  
- Low power 32KHz crystal oscillator  
- Optional use of a crystal-free silicon oscillator with ±2%  
Accuracy  
- Optional use of 32.768 KHz input Clock  
- Operational on Suspend Power  
- Programmable Clock Power Management Con-  
trol and Distribution  
- Monotonic Counter  
• Boot ROM Secure Boot Loader  
- Hardware Root of Trust (RoT) using Secure  
Boot and Immutable Code  
- Supports 2 Code Images in external SPI  
• Flash (Primary and Fallback image)  
- Authenticates SPI Flash image before loading  
- Support AES-256 Encrypted SPI Flash images  
• Packages  
- 48 MHz PLL  
• Multi-purpose AES Cryptographic Engine  
- Hardware support for ECB, CTR, CBC and  
OFB AES modes  
- 144 Pin WFBGA RoHS Compliant package  
- 169 Pin WFBGA RoHS Compliant package  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 3  
MEC170x  
TO OUR VALUED CUSTOMERS  
It is our intention to provide our valued customers with the best documentation possible to ensure successful use of your Micro-  
chip 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 cur-  
rent 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.  
DS00002206H-page 4  
2016-2020 Microchip Technology Inc.  
MEC170x  
Table of Contents  
1.0 General Description ........................................................................................................................................................................ 6  
2.0 Pin Configuration .......................................................................................................................................................................... 12  
3.0 Device Inventory ........................................................................................................................................................................... 83  
4.0 Power, Clocks, and Resets ......................................................................................................................................................... 148  
5.0 ARM M4F Based Embedded Controller ...................................................................................................................................... 166  
6.0 RAM and ROM ............................................................................................................................................................................ 176  
7.0 Internal DMA Controller .............................................................................................................................................................. 178  
8.0 EC Interrupt Aggregator .............................................................................................................................................................. 194  
9.0 LPC Interface .............................................................................................................................................................................. 204  
10.0 Enhanced Serial Peripheral Interface (eSPI) ............................................................................................................................ 230  
11.0 Chip Configuration .................................................................................................................................................................... 244  
12.0 8042 Emulated Keyboard Controller ......................................................................................................................................... 249  
13.0 ACPI Embedded Controller Interface (ACPI-ECI) ..................................................................................................................... 267  
14.0 ACPI PM1 Block ....................................................................................................................................................................... 287  
15.0 Embedded Memory Interface (EMI) .......................................................................................................................................... 294  
16.0 Mailbox Interface ....................................................................................................................................................................... 308  
17.0 UART ........................................................................................................................................................................................ 316  
18.0 GPIO Interface .......................................................................................................................................................................... 334  
19.0 Watchdog Timer (WDT) ............................................................................................................................................................ 347  
20.0 Basic Timer ............................................................................................................................................................................... 352  
21.0 16-Bit Counter-Timer Interface ................................................................................................................................................. 359  
22.0 Input Capture and Compare Timer ........................................................................................................................................... 374  
23.0 Hibernation Timer ..................................................................................................................................................................... 387  
24.0 RTOS Timer .............................................................................................................................................................................. 390  
25.0 Real Time Clock ........................................................................................................................................................................ 395  
26.0 Week Timer ............................................................................................................................................................................... 407  
27.0 TACH ........................................................................................................................................................................................ 419  
28.0 PWM ......................................................................................................................................................................................... 426  
29.0 PECI Interface ........................................................................................................................................................................... 431  
30.0 Analog to Digital Converter ....................................................................................................................................................... 434  
31.0 RPM-PWM Interface ................................................................................................................................................................. 442  
32.0 EEPROM .................................................................................................................................................................................. 460  
33.0 Blinking/Breathing PWM ........................................................................................................................................................... 469  
34.0 RC Identification Detection (RC_ID) ......................................................................................................................................... 485  
35.0 Keyboard Scan Interface .......................................................................................................................................................... 492  
36.0 I2C/SMBus Interface ................................................................................................................................................................. 499  
37.0 General Purpose Serial Peripheral Interface ............................................................................................................................ 503  
38.0 Quad SPI Master Controller ...................................................................................................................................................... 522  
39.0 PS/2 Interface ........................................................................................................................................................................... 539  
40.0 BC-Link Master ......................................................................................................................................................................... 547  
41.0 Trace FIFO Debug Port (TFDP) ................................................................................................................................................ 554  
42.0 Port 80 BIOS Debug Port .......................................................................................................................................................... 558  
43.0 VBAT-Powered Control Interface .............................................................................................................................................. 564  
44.0 VBAT-Powered RAM ................................................................................................................................................................ 574  
45.0 VBAT Register Bank ................................................................................................................................................................. 576  
46.0 EC Subsystem Registers .......................................................................................................................................................... 580  
47.0 Security Features ...................................................................................................................................................................... 591  
48.0 Test Mechanisms ...................................................................................................................................................................... 595  
49.0 eFUSE Block ............................................................................................................................................................................. 597  
50.0 Electrical Specifications ............................................................................................................................................................ 605  
51.0 Timing Diagrams ....................................................................................................................................................................... 618  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 5  
MEC170x  
1.0  
GENERAL DESCRIPTION  
The MEC170x is a family of keyboard and embedded controller designs customized for notebooks and tablet platforms.  
The family is a highly-configurable, mixed signal, advanced I/O controller architecture. Every device in the family incor-  
porates a 32-bit ARM Cortex M4F Microcontroller core with a closely-coupled SRAM for code and data. A secure boot-  
loader 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 MEC170x products may be configured to communicate with the system host through one of three host interfaces:  
Intel Low Pin Count (LPC), eSPI, or I2C. Note that this functionality is product dependent. To see which features apply  
to a specific part in the family see Table 1-1, "MEC170x Feature List by Package". The document defines the features  
for all devices in the family.  
The MEC170x products are designed to operate as either a stand-alone I/O device or as an EC Base Component of a  
split-architecture Advanced I/O Controller system which uses BC-Link communication protocol to access up to two BC  
bus companion components. The BC-Link protocol is peer-to-peer providing communication between the MEC170x  
embedded controller and registers located in a companion device.  
The MEC170x is directly powered by a minimum of two separate suspend supply planes (VBAT and VTR) and senses  
a third runtime power plane (VCC) to provide “instant on’ and system power management functions. There are three  
voltage supply regions for all GPIO pins. Each region may be either 3.3V or 1.8V. The LPC interface may be operated  
at either 1.8V or 3.3V; the eSPI interface operates at 1.8V. All the devices are equipped with a Power Management Inter-  
face that supports low-power states and are capable of operating in a Connected Standby system.  
The MEC170x family of devices offer a software development system interface that includes a Trace FIFO Debug port,  
a host accessible serial debug port with a 16C550A register interface, a Port 80 BIOS Debug Port, and a JTAG/SWD  
debug interface.  
1.1  
Family Features  
TABLE 1-1:  
MEC170X FEATURE LIST BY PACKAGE  
MEC170x Product  
Family  
MEC1701 MEC1701 MEC1701 MEC1703 MEC1703 MEC1703 MEC1703 MEC1704 MEC1705  
Package  
128  
144  
169  
128  
144 WFB- 169  
169  
144  
144  
WFBGA-  
TF  
WFBGA-  
SZ  
WFBGA-  
TN  
WFBGA-  
TF  
GA_SZ  
WFBGA-  
TN  
WFBGA-  
XY  
WFBGA-  
SZ  
WFBGA-  
SZ  
Device ID  
2Dh  
2Dh  
2Dh  
2Eh  
2Eh  
2Eh  
2Eh  
33h  
32h  
Boundary Scan JTAG ID 021B2445 021B2445 021B2445 021B2445 021C2445 021B2445 021C2445 02202445h 02202445h  
h
h
h
h
h
h
h
SRAM Block (Primary  
use: code)  
224KB/  
288KB/  
416KB  
224KB/  
288KB/  
416KB  
224KB/  
288KB/  
416KB  
224KB/  
288KB/  
416KB  
224KB/  
288KB/  
416KB  
224KB/  
288KB/  
416KB  
224KB/  
288KB/  
416KB  
224KB/  
288KB/  
416KB  
224KB/  
288KB/  
416KB  
SRAM Block (Primary  
use: data)  
32KB/64K 32KB/64K 32KB/64K 32KB/64K 32KB/64K 32KB/64K 32KB/64K 32KB/64K 32KB/64K  
B
B
B
B
B
B
B
B
B
Battery Backed SRAM  
EEPROM  
128 bytes 128 bytes 128 bytes 128 bytes 128 bytes 128 bytes 128 bytes 128 bytes 128 bytes  
0
0
0
2K bytes  
Yes  
2K bytes  
Yes  
2K bytes  
Yes  
2K bytes  
Yes  
0
2K bytes  
Yes  
LPC Host Interface  
eSPI Host Interface  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
8042 Emulated Key-  
board Controller  
Yes  
Yes  
Yes  
Yes  
Yes  
Embedded Memory  
Interface (EMI)  
3
3
3
3
3
3
3
3
3
Mailbox Register Inter-  
face  
1
1
1
1
1
1
1
1
1
ACPI Embedded Con-  
troller Interface  
5
5
5
5
5
5
5
5
5
ACPI PM1 Block Inter-  
face  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Trace FIFO Debug Port Yes  
Internal DMA Channels 14  
Yes  
14  
Yes  
14  
Yes  
14  
Yes  
14  
Yes  
14  
Yes  
14  
Yes  
14  
Yes  
14  
DS00002206H-page 6  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 1-1:  
MEC170X FEATURE LIST BY PACKAGE (CONTINUED)  
MEC170x Product  
Family  
MEC1701 MEC1701 MEC1701 MEC1703 MEC1703 MEC1703 MEC1703 MEC1704 MEC1705  
Package  
128  
144  
169  
128  
144 WFB- 169  
169  
144  
144  
WFBGA-  
TF  
WFBGA-  
SZ  
WFBGA-  
TN  
WFBGA-  
TF  
GA_SZ  
WFBGA-  
TN  
WFBGA-  
XY  
WFBGA-  
SZ  
WFBGA-  
SZ  
16-bit Basic Timer  
32-bit Basic Timer  
16-bit Counter/Timer  
Capture Timer  
4
2
4
6
2
1
2
1
1
1
4
2
4
6
2
1
2
1
1
4
4
2
4
6
2
1
2
1
1
6
4
2
4
6
2
1
2
1
1
1
4
2
4
6
2
1
2
1
1
4
4
4
2
4
6
2
1
2
1
1
6
4
2
4
6
2
1
2
1
1
4
4
2
4
6
2
1
2
1
1
4
2
4
6
Compare Timer  
Watchdog Timer (WDT)  
Hibernation Timer  
Week Timer  
2
1
2
1
RTC  
1
Battery-Powered Gen-  
eral Purpose Output  
(BGPO)  
6
Active Low VBAT-Pow-  
ered Control Interface  
(VCI)  
4
4
6
4
4
6
6
4
4
Keyboard Matrix Scan  
Support  
Yes  
2
Yes  
2
Yes  
2
Yes  
2
Yes  
2
Yes  
2
Yes  
2
Yes  
2
Yes  
2
Port 80 BIOS Debug  
Port  
I2C Host Controllers  
I2C Ports  
4
4
4
4
4
4
4
4
4
10  
Yes  
10  
Yes  
11  
Yes  
10  
Yes  
10  
Yes  
11  
Yes  
11  
Yes  
10  
Yes  
10  
Yes  
PECI 3.1 Interface  
PS/2 Device Interface  
3 control-  
ler/  
3 control-  
ler/  
3 control-  
ler/  
3 control-  
ler/  
3 control-  
ler/  
3 control-  
ler/  
3 control-  
ler/  
3 control-  
ler/  
3 control-  
ler/  
4 ports  
4 ports  
5 ports  
4 ports  
4 ports  
5 ports  
5 ports  
4 ports  
4 ports  
GPIOs  
107  
6
123  
6
148  
8
107  
6
123  
6
148  
8
148  
8
123  
6
123  
6
Pass-through GPIOs  
Blinking/Breathing PWM  
3
4
4
3
4
4
4
4
4
General Purpose SPI  
Master Controller  
1
2
2
1
2
2
2
2
2
Quad SPI Master Con-  
troller  
1 control-  
ler/  
1 control-  
ler/  
1 control-  
ler/  
1 control-  
ler/  
1 control-  
ler/  
1 control-  
ler/  
1 control-  
ler/  
1 control-  
ler/  
1 control-  
ler/  
1 port  
2 ports  
2 ports  
1 port  
2 ports  
2 ports  
2 ports  
2 ports  
2 ports  
10-bit ADC Channels  
16-bit PWMs  
16-bit TACHs  
UARTs  
8
8
3
2
8
8
3
2
16  
11  
3
8
8
3
2
8
8
3
2
16  
11  
3
16  
11  
3
8
8
3
2
8
8
3
2
2
2
2
UART0: 2- UART0: 2- UART0: 8- UART0: 2- UART0: 2- UART0: 8- UART0: 8- UART0: 8- UART0: 8-  
pin pin pin pin pin pin pin pin pin  
UART1: 2- UART1: 2- UART1: 4- UART1: 2- UART1: 2- UART1: 4- UART1: 4- UART1: 4- UART1: 4-  
pin  
pin  
pin  
pin  
pin  
pin  
pin  
pin  
pin  
BC-Link  
2
2
2
2
2
2
2
2
2
AES Hardware Support 128-256 bit 128-256 bit 128-256 bit 128-256 bit 128-256 bit 128-256 bit 128-256 bit 128-256 bit 128-256 bit  
SHA Hashing Support  
SHA-1 to  
SHA-512  
SHA-1 to  
SHA-512  
SHA-1 to  
SHA-512  
SHA-1 to  
SHA-512  
SHA-1 to  
SHA-512  
SHA-1 to  
SHA-512  
SHA-1 to  
SHA-512  
SHA-1 to  
SHA-512  
SHA-1 to  
SHA-512  
Public Key Cryptogra-  
phy Support  
RSA: 4K  
bit  
RSA: 4K  
bit  
RSA: 4K  
bit  
RSA: 4K  
bit  
RSA: 4K  
bit  
RSA: 4K  
bit  
RSA: 4K  
bit  
RSA: 4K  
bit  
RSA: 4K  
bit  
ECC: 640 ECC: 640 ECC: 640 ECC: 640 ECC: 640 ECC: 640 ECC: 640 ECC: 640 ECC: 640  
bit  
bit  
bit  
bit  
bit  
bit  
bit  
bit  
bit  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 7  
MEC170x  
TABLE 1-1:  
MEC170X FEATURE LIST BY PACKAGE (CONTINUED)  
MEC170x Product  
Family  
MEC1701 MEC1701 MEC1701 MEC1703 MEC1703 MEC1703 MEC1703 MEC1704 MEC1705  
Package  
128  
144  
169  
128  
144 WFB- 169  
169  
144  
144  
WFBGA-  
TF  
WFBGA-  
SZ  
WFBGA-  
TN  
WFBGA-  
TF  
GA_SZ  
1K bit  
No  
WFBGA-  
TN  
WFBGA-  
XY  
WFBGA-  
SZ  
WFBGA-  
SZ  
True Random Number  
Generator  
1K bit  
1K bit  
1K bit  
1K bit  
1K bit  
1K bit  
1K bit  
1K bit  
UPD Dead Battery  
Support  
No  
No  
Yes  
No  
Yes  
Yes  
No  
No  
Root Of Trust  
Secure Boot  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Immutable code  
1.2  
Boot ROM  
Following the release of the RESET_EC signal, the processor will start executing code in the Boot ROM. The Boot ROM  
executes the SPI Flash Loader, which downloads User Code from an external SPI Flash and stores it in the internal  
Code RAM. Upon completion, the Boot ROM jumps into the User Code and starts executing as defined in the Boot  
Loader document.  
The Boot ROM call load code from an external SPI Flash device via the Shared Flash Interface, the Private Flash Inter-  
face or via the eSPI Flash Channel. The downloaded code must configure the device’s pins according to the platform’s  
needs. If the Boot ROM loads code via the eSPI Flash Channel, the pins that constitute the eSPI interface are left in the  
eSPI state; otherwise, the Boot ROM leaves all pins in their default initial state.  
DS00002206H-page 8  
2016-2020 Microchip Technology Inc.  
MEC170x  
1.3  
System Block Diagrams  
1.3.1  
LPC HOST SYSTEM BLOCK DIAGRAM  
CPU  
PCH  
PECI 3.0  
Interface  
Shared  
Flash  
S0 (Main)  
Power  
SPI Inteface  
Supply  
VCC_PWRGD  
A20M, KBRST,  
nRESET_OUT, SMBus  
nRESET_IN,  
SMI, SCI, SIRQ  
Voltage Monitoring  
(e.g., Thermistors,  
Power Supplies)  
TACHs (3)  
Fans or  
ADCs (16)  
General  
Use  
PWMs (11)  
UPD  
I2C (2)  
Analog Front End  
32Khz  
VCI_OUT  
S5 (Suspend)  
Power Supply  
8/4-pin UART  
UART  
MEC170x  
Embedded Controller  
JTAG/SWD  
Debug Port  
SWD or JTAG  
Trace FIFO  
Debug Port  
VCI_IN[ϰ:0]#  
TFDP  
Power Button(s)  
BGPO  
Breathing PWM  
Battery Powered  
GPIO  
BC-Link (2x)  
LEDs  
(4x)  
PS/2  
SMBus  
SMBus/I2C  
KeyScan  
PS/2  
SPI I/F  
BC-Link  
Companion  
Chip(s)  
Battery  
Pack  
SMBus/I2C  
Device(s)  
PS/2  
Mouse  
PS/2  
Keyboard  
GPIOs  
Keyboard  
Private SPI Flash  
(accessible on  
KeyScan pins)  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 9  
MEC170x  
1.3.2  
ESPI HOST SYSTEM BLOCK DIAGRAM  
CPU  
PECI 3.0  
Interface  
Shared  
Flash  
S0 (Main)  
Power  
PCH  
Supply  
VCC_PWRGD  
RSMRST#  
Voltage Monitoring  
(e.g., Thermistors,  
Power Supplies)  
TACHs (3)  
ADCs (16)  
Fans or  
General  
Use  
PWMs (11)  
UPD  
I2C (2)  
Analog Front End  
32Khz  
VCI_OUT  
S5 (Suspend)  
Power Supply  
8/4-pin UART  
UART  
MEC170x  
Embedded Controller  
JTAG/SWD  
Debug Port  
SWD or JTAG  
Trace FIFO  
Debug Port  
VCI_IN[5:0]#  
BGPO  
TFDP  
Power Button(s)  
Breathing PWM  
Battery Powered  
GPIO  
BC-Link (2x)  
LEDs  
(4x)  
PS/2  
SMBus  
SMBus/I2C  
KeyScan  
PS/2  
SPI I/F  
BC-Link  
Companion  
Chip(s)  
Battery  
Pack  
SMBus/I2C  
Device(s)  
PS/2  
Mouse  
PS/2  
Keyboard  
GPIOs  
Keyboard  
Private SPI Flash  
(accessible on  
KeyScan pins)  
DS00002206H-page 10  
2016-2020 Microchip Technology Inc.  
MEC170x  
1.4  
MEC170x Block Diagram  
Note:  
Not all features shown are available on all devices. Refer to Table 1-1, "MEC170x Feature List by Package"  
for a list of the features by device.  
Bus Switch  
MASTER  
MASTER  
SLAVE  
MASTER  
SLAVE  
SLAVE  
MASTER  
LPC  
SLAVE  
MASTER  
eSPI  
Internal  
DMA  
Controller  
HASH/AES  
Engine  
Mailbox  
Memory  
Controller  
8042  
Emulation  
DTCM  
ITCM  
Public Key  
Engine  
Crypto  
RAM  
ARM M4F  
Boot ROM  
SRAM  
ACPI‐EC I/F  
(x5)  
Random  
Number  
Generator  
GPIOs  
eFuse  
ACPI PM1  
Port‐92  
SRAM  
Power,  
Clocks,  
Resets  
RC_ID  
(x3)  
Interrupt  
Aggregator  
UART  
(x2)  
SMB/I2C  
Controller  
(x4)  
Watchdog  
Timer  
Port 80  
(x2)  
16‐bit Basic  
Timer  
Quad SPI  
Master  
EMI  
(x3)  
(x4)  
32‐bit Basic  
Timer  
GP‐SPI  
(x2)  
Real Time  
Clock  
(x2)  
Capture/  
Compare  
Timer  
PWM  
(x11)  
16‐bit  
Timer/Counter  
(x4)  
Tach  
(x3)  
Hibernation  
Timer  
RPM2PWM  
(x2)  
(x2)  
PECI  
ADC  
RTOS Timer  
Week Timer  
128 Byte  
VBAT RAM  
Trace FIFO  
Blink/  
Breathe LED  
(x4)  
EEPROM  
BC‐Link  
Master  
(x2)  
VBAT  
Control  
Interface  
Key Scan  
18 x 8  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 11  
MEC170x  
2.0  
2.1  
PIN CONFIGURATION  
Description  
The Pin Configuration chapter includes Pin List By Pin Name, Signal Description by Signal, Notes for Tables in this  
Chapter, Pin Default State Through Power Transitions, and Packages.  
2.2  
Terminology and Symbols for Pins/Buffers  
2.2.1  
BUFFER TERMINOLOGY  
Term  
Definition  
#
n
The ‘#’ sign at the end of a signal name indicates an active-low signal  
The lowercase ‘n’ preceding a signal name indicates an active-low signal  
Power  
PWR  
Programmable as Input, Output, Open Drain Output, Bi-directional or Bi-directional with Open  
Drain Output. Configurable drive strength from 2ma to12ma.  
PIO  
Note:  
All GPIOs have programmable drive strength options of 2ma, 4ma, 8ma and 12ma.  
GPIO pin drive strength is determined by the DRIVE_STRENGTH field in the Pin  
Control 2 Register.  
In  
I Type Input Buffer.  
O2ma  
PCI  
O-2 mA Type Buffer.  
PCI pin. These pins meet the PCI 3.3V AC and DC Characteristics. (Note 1)  
PECI Input/Output. These pins operate at the processor voltage level (VREF_VTT)  
SB-TSI Input/Output. These pins operate at the processor voltage level (VREF_VTT)  
PECI  
SB-TSI  
Note 1: See the “PCI Local Bus Specification,” Revision 2.1, Section 4.2.2.  
2: See the “PCI Local Bus Specification,” Revision 2.1, Section 4.2.2 and 4.2.3.  
2.2.2  
PIN NAMING CONVENTIONS  
• Pin Name is composed of the multiplexed options separated by ‘/’. E.g., GPIOxxxx/SignalA/SignalB.  
• Parenthesis ‘()’ are used to list aliases or alternate functionality for a single mux option. For example,  
GPIO062/(RESETO#) has only a single mux option, GPIO062, but the signal GPIO062 can also be used or inter-  
preted as RESETO#.  
• 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. Note that  
this same instance number is shown in the Register Base Address tables linking the specific PWM block instance  
to a specific signal on the pinout. The instance number may be omitted if there in only one instance of the IP block  
implemented.  
2.3  
Notes for Tables in this Chapter  
Note  
Description  
The nEC_SCI pin can be controlled by hardware and EC firmware. The nEC_SCI pin  
can drive either the ACPI Run-time GPE Chipset input or the Wake GPE Chipset input.  
Depending how the nEC_SCI pin is used, other ACPI-related SCI functions may be best  
supplied by other general purpose outputs that can be configured as open-drain drivers.  
Note 1  
Note 2  
Note 3  
These pins require an external weak pull-up resistors of 10k-100k ohms.  
A weak pull-up resistor is recommended on the BC-Link data line (100K).  
The UARTs can be used by the Host or EC. This pin can be VCC protected or not VCC protected under  
program control by the POWER bit in the Configuration Select Register in Host configuration space (also  
accessible by the EC).  
Note 4  
DS00002206H-page 12  
2016-2020 Microchip Technology Inc.  
MEC170x  
Note  
Description  
When the JTAG_RST# pin is not asserted (logic'1'), the pins for the signal functions in the JTAG/SWD  
interface are unconditionally routed to the interface; the Pin Control register for these pins has no effect.  
When the JTAG_RST# pin is asserted (logic'0'), the signal functions in the JTAG/SWD interface are not  
routed to the interface and the Pin Control Register for these 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 5  
PS/2 ports ending with signal functions ending with "A" or "B" are muxed to a single controller. Only one  
set of clock and data are intended to used at a time (either "A" or "B" not both. The unused port segment  
should have its associated pin control register's, Mux Control Field programmed away from the PS2 con-  
troller.  
Note 6  
Note 7  
Note 8  
The GPIO062 pin defaults to output 'low' on RESET_SYS to support the firmware controlled RESETO#  
feature. RESETO# is not a GPIO alternate function; it is controlled by firmware as a GPIO function.  
The BGPO pins have a GPIO signal for interrupt/wake-only signal functions. The BGPO alternate func-  
tion is not selected through the GPIO Pin Control register. Instead, the BGPO alternate function is config-  
ured by programming the Week Timer Control register. When configured as the BGPO function the pad  
is powered by VBAT.  
The VREF_VTT pin should be disabled by the PECI Disable Register if PECI or SB-TSI are not used.  
Note 9  
Note 10  
Note 11  
The UART_CLK external baud clock input is connected to all the UARTs in the design. Each UART may  
select either the external UART_CLK baud clock or the internally generated baud clock.  
The nEM_INT signal is asserted low if any of the EMI blocks have their nEM_INT signal asserted low.  
This signal can be routed to nSMI and nPME inputs in the system as required.  
The Private SPI Interface may be used for Crisis Recovery. Crisis Recovery offers a way to load a SPI  
Flash image from an external SPI Flash device connected via the Keyboard Scan Interface pins. The  
GPIO045/KSO01 pin requires a weak external pull-up for normal operation. If this pin is not detected as  
a high input following a POR the device could enter Crisis Recovery mode in error and fail to boot.  
Note 12  
VCI_IN# function works even when configured as GPIO.  
Note 13  
Note 14  
I2C/SMBus Port pins can be mapped to any SMB-I2C Controller. The number in the I2C/SMBus signal  
names (I2Cxx_DATA) indicates the port value. E.g. I2C01_DATA represents I2C/SMBus Data Port 1  
Note 15 The Voltage Regulator Capacitor (VR_CAP) pin requires an external 1uF capacitor.  
The GPTP-OUT always drives at the level of the output buffer regardless of the voltage at the GPTP-IN  
pin. If GPTP-OUT buffer is powered by 1.8V the signal out will be 1.8V regardless of the voltage on the  
Note 16 GPTP-IN pin. So, if GPTP-IN pin is 3.3V then the output essentially level-shifts the voltage down to 1.8V.  
Similarly if GPTP-OUT is 3.3V then the signal will be 3.3V regardless of the voltage on the GPTP-IN pin.  
If the GPTP-IN pin is 1.8V the output essentially level-shifts the voltage up to 3.3V.  
2.4  
Pin List By Pin Name  
2.4.1  
DEFAULT STATE  
The default state for analog pins is Input. The default state for all pins that default to a GPIO function is also input, with  
pull-up and pull-down resistors disabled. The default state for pins that differ is shown in the following table. Entries for  
the Default State column are  
• O2ma-Low:  
• O2ma-High  
• In-PU  
Push-Pull output, Slow slew rate, 2ma drive strength, grounded  
Push-Pull output, Slow slew rate, 2ma drive strength, high output  
Input, with pull-up resistor enabled  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 13  
MEC170x  
Default  
State  
(if not In)  
Default  
(if not GPIO)  
Pin Name  
BGPO0  
A3 A5 A5 A5 B4 C6 D6  
D2 B3 B3 B3 C2 D4 C3  
N11 M9 R12  
BGPO0  
O2ma-Low  
GPIO000/VCI_IN3#  
VCI_IN3#  
GPIO001/PWM4  
GPIO002/PWM5  
K8 M8 M8 M8 N13 L8  
L9  
GPIO003/I2C00_SDA/SPI0_CS#  
GPIO004/I2C00_SCL/SPI0_MOSI  
GPIO005/I2C01_SDA/GPTP-OUT4  
GPIO006/I2C01_SCL/GPTP-OUT7  
GPIO007/I2C03_SDA/PS2_CLK0B  
GPIO010/I2C03_SCL/PS2_DAT0B  
GPIO011/nSMI  
B5 F5 F5 F5 C6 D7 B7  
D7 C6 C6 C6 B5 B6 D7  
A5 B4 E7  
B6 A6 A7  
B11 B12 B12 B12 B10 A13 A14  
B10 C10 C10 C10 C10 B11 D11  
J4  
J6  
J6  
J6  
L5 K6 K6  
GPIO012/I2C07_SDA/TOUT3  
GPIO013/I2C07_SCL/TOUT2  
GPIO014/PWM6/GPTP-IN6  
GPIO015/PWM7  
M8 N6 N6 N6 L7 N3 P8  
K5 M7 M7 M7 H7 N4 R8  
M10 M9 M9 M9 M10 N9 P11  
K7  
J7  
J7  
J7 M12 L9  
J9  
GPIO016/GPTP-IN7/SHD_IO3/ICT3  
GPIO017/GPTP-IN5/KSI0  
GPIO020/KSI1  
N6 N3 N3 N3 N8 M5 M7  
H9  
K6  
J8  
L7  
J8  
L7  
J8  
L7  
J9 N10 K11  
L9 M6 R9  
GPIO021/LPCPD#/KSI2  
GPIO022/GPTP-IN0  
N9 N9 N9 N9 M9 M8 P10  
C2 E2 E2 E2 D2 F2 D2  
F2 C3 C3 C3 F4 E5 F5  
B1 C2 C2 C2 E2 E2 G4  
L13 M12 M12 M12 K12 L11 H11  
N13 N13 N13 N13 L11 M12 P12  
K13 K11 K11 K11 F13 L13 P15  
GPIO023/GPTP-IN1  
GPIO024/GPTP-IN2  
GPIO025/TIN0/nEM_INT/UART_CLK  
GPIO026/TIN1/KSI3  
GPIO027/TIN2/KSI4  
GPIO030/TIN3/KSI5  
J9 J13 J9 N14  
K12 J9  
J9  
GPIO031/GPTP-OUT1/KSI6  
GPIO032/GPTP-OUT0/KSI7  
GPIO033/RC_ID0  
N11 M11 M11 M11 M13 M11 M11  
J9 L10 L10 L10 K9 L10 M10  
E2 B2 B2 B2 C1 E4 B1  
H12 H12 H12 E13 H12 H15  
GPIO034/RC_ID1/SPI0_CLK  
GPIO035/PWM8/CTOUT1  
GPIO036/RC_ID2/SPI0_MISO  
GPIO040/GPTP-OUT2/KSO00  
GPIO041  
G12  
E13 G11 G12 G15  
H13 H13 H13 F12 H13 J12  
M11 M10 M10 M10 M11 N11 L11  
F2 C1 H4  
DS00002206H-page 14  
2016-2020 Microchip Technology Inc.  
MEC170x  
Default  
State  
(if not In)  
Default  
(if not GPIO)  
Pin Name  
GPIO042/PECI_DAT/SB-TSI_DAT  
GPIO043/SB-TSI_CLK  
J10 J12 J12 J12 H10 H9 J15  
H10 J13 J13 J13 H11 H10 J14  
H12 H11 H11 H11 G9 H11 K12  
A9 E8 E8 E8 E8 E8 A11  
E10 E9 E9 E9 E10 F11 F10  
B13 F13 F13 F13 A12 D13 E15  
G4 F3 F3 F3 G2 G4 H5  
F1 B1 B1 B1 F3 B1 F2  
GPIO044/VREF_VTT  
GPIO045/KSO01  
GPIO046/BCM1_DAT/KSO02  
GPIO047/BCM1_CLK/KSO03  
GPIO050/FAN_TACH0/GTACH0  
GPIO051/FAN_TACH1/GTACH1  
GPIO052/FAN_TACH2/LRESET#  
GPIO053/PWM0/GPWM0  
GPIO054/PWM1/GPWM1  
GPIO055/PWM2/SHD_CS#/(RSMRST#)  
GPIO056/PWM3/SHD_CLK  
GPIO057/VCC_PWRGD  
GPIO060/KBRST/48MHZ_OUT  
GPIO061/LPCPD#/ESPI_RESET#  
GPIO062/(RESETO#)  
H4 L8  
L8  
L8 K8 N6 L8  
L12 M13 M13 M13 K11 L12 P14  
K9 L12 L12 L12 K10 K10 N15  
N8 N4 N4 N4 M8 L7 M8  
N7 N5 N5 N5 N9  
J7 M9  
B2 D1 D1 D1 F1 D2 G2  
F4 D2 D2 D2 G5 F5 H7  
N1 N1 N1 N1 M1 L3 M6  
D4 A2 A2 A2 D3 E3 C2  
O2ma-Low  
GPIO063/SER_IRQ/ESPI_ALERT#  
GPIO064/LRESET#  
M5 M4 M4 M4 N5  
J6  
P6  
M1 J5 J5 J5 M3 L2 M5  
LRESET#  
GPIO065/PCI_CLK/ESPI_CLK  
GPIO066/LFRAME#/ESPI_CS#  
GPIO067/CLKRUN#  
M3 M2 M2 M2 N2 K5 R2  
M2 M1 M1 M1 N1 L4 P3  
L2  
L2  
L3  
L2 M5 L1 K5  
L3 M4 L5 R3  
GPIO070/LAD0/ESPI_IO0  
GPIO071/LAD1/ESPI_IO1  
GPIO072/LAD2/ESPI_IO2  
GPIO073/LAD3/ESPI_IO3  
GPIO100/nEC_SCI  
M4 L3  
N2 N2 N2 N2 N3 M1 R4  
N3 M3 M3 M3 N4 N1 P5  
N4 L4  
L4  
L4 M6 M2 R5  
K4 H7 H7 H7 L4 N2 L6  
A4 A4 A4 C5 E6 F6  
GPIO101/BGPO1  
GPIO102/BGPO2  
B5 B5 B5 B3 C5 A5  
GPIO104/UART0_TX  
F13 F11 F11 F11 A13 E12 F15  
GPIO105/UART0_RX  
F9 F13 F11  
F10 F9 F9 F9  
GPIO106/PWROK  
E4 E3 E3 E3 H6 F3 G7  
K10 L13 L13 L13 H13 J10 M14  
G13 J11 L15  
GPIO107/nSMI/KSO04  
GPIO110/PS2_CLK2  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 15  
MEC170x  
Default  
State  
(if not In)  
Default  
(if not GPIO)  
Pin Name  
GPIO111/PS2_DAT2  
G12 K12 L12  
GPIO112/PS2_CLK1A/KSO05  
GPIO113/PS2_DAT1A/KSO06  
GPIO114/PS2_CLK0A/nEC_SCI  
GPIO115/PS2_DAT0A  
J12 K13 K13 K13 J12 J12 K15  
H13 J11 J11 J11 J11 K13 L14  
G13 H9 H9 H9 J10 J13 K14  
M12 N12 N12 N12 L13 N13 P13  
J13 K12 K12 K12 H12 K11 M15  
E12 F12 F12 F12 D13 F10 F12  
E13 E11 E11 E11 D12 D12 F14  
D12 E12 E12 E12 C13 F9 G12  
C12 C11 C11 C11 B13 E11 E12  
D13 D11 D11 D11 B12 C12 D14  
C13 D12 D12 D12 C12 C13 E14  
A13 D13 D13 D13 A11 B13 D15  
GPIO120/KSO07  
GPIO121/PVT_IO0/KSO08  
GPIO122/BCM0_DAT/PVT_IO1/KSO09  
GPIO123/BCM0_CLK/PVT_IO2/KSO10  
GPIO124/GPTP-OUT6/PVT_CS#/KSO11  
GPIO125/GPTP-OUT5/PVT_CLK/KSO12  
GPIO126/PVT_IO3/KSO13  
GPIO127/A20M/UART0_CTS#  
GPIO130/I2C10_SDA/TOUT1  
GPIO131/I2C10_SCL/TOUT0  
GPIO132/I2C06_SDA/KSO14  
GPIO133/PWM9  
J6 N8 N8 N8  
J8 N5 P9  
M9 N7 N7 N7 N10 N7 R10  
N12 N11 N11 N11 L10 N12 R14  
C11 C11 C14  
GPIO134/PWM10/UART1_RTS#  
GPIO135/UART1_CTS#  
E13 E13  
G9 G9  
D11 E13 G14  
E12 G13 G9  
GPIO140/I2C06_SCL/ICT5  
M13 L11 L11 L11 K13 M13 J11  
GPIO141/I2C05_SDA/SPI1_-  
CLK/UART0_DCD#/TRACEDAT0  
A6 B7 B7 B7 A7 A7 B8  
GPIO142/I2C05_SCL/SPI1_-  
MOSI/UART0_DSR#/TRACEDAT1  
B6 F7 F7 F7  
F7 A5 D8  
GPIO143/I2C04_SDA/SPI1_MISO/UART0_DT  
R#/TRACEDAT2  
A5 A7 A7 A7 A6 B7 A8  
D8 E7 E7 E7 D4 B5 E8  
GPIO144/I2C04_SCL/SPI1_CS#/UART0_RI#/T  
RACEDAT3  
GPIO145/I2C09_SDA/JTAG_TDI  
GPIO146/I2C09_SCL/JTAG_TDO  
GPIO147/I2C08_SDA/JTAG_CLK  
GPIO150/I2C08_SCL/JTAG_TMS  
GPIO151/ICT4/KSO15  
L9 H9 K9 K10  
A8 A8 A8 A8 D7 C8 G8  
A7 G8 G8 G8 F8 D8 B9  
B7 C7 C7 C7 C7 B8 D9  
D9 F8 F8 F8 E7 E7 A9  
J7  
N10 N10 N10 N10 N12 M10 R13  
A11 C12 E9 D10 B14  
L9  
L9  
GPIO152/GPTP-OUT3/KSO16  
GPIO153/LED2  
DS00002206H-page 16  
2016-2020 Microchip Technology Inc.  
MEC170x  
Default  
State  
(if not In)  
Default  
(if not GPIO)  
Pin Name  
GPIO154/I2C02_SDA/PS2_CLK1B  
GPIO155/I2C02_SCL/PS2_DAT1B  
GPIO156/LED0  
A10 A12 A12 A12 A9 A12 B13  
B9 C9 C9 C9 C9 A11 E10  
B12 C12 C12 A13 D9 D11 B15  
A12 B13 B13 B13 B11 B12 C15  
B3 C4 C4 C4 C3 D5 E5  
D5 A6 A6 A6 A4 C4 A6  
D6 E6 E6 E6 F6 C7 B6  
B8 A9 A9 A9 B7 A8 A10  
G1 B2 E2  
GPIO157/LED1  
GPIO161/VCI_IN2#  
GPIO162/VCI_IN1#  
GPIO163/VCI_IN0#  
GPIO165/32KHZ_IN/CTOUT0/TRACECLK  
GPIO166  
VCI_IN2#  
VCI_IN1#  
VCI_IN0#  
GPIO170/TFCLK/UART1_TX  
GPIO171/TFDATA/UART1_RX/(JTAG_STRAP)  
GPIO172/BGPO3  
G10 G13 G13 G12 F11 G11 H12  
G9 G12 G12 G9 E11 G9 H9  
B6 B6 B6 F5 D6 E6  
A2 C3 B5  
In-PU  
GPIO173/BGPO4  
GPIO174/BGPO5  
E4 A3 B3  
GPIO175/KSO17  
D10 C13 C13 C13 D10 E10 E11  
H2 H3 H3 H3 G3 G3 J2  
GPIO200/ADC00  
ADC00  
ADC01  
ADC02  
ADC03  
ADC04  
ADC05  
ADC06  
ADC07  
ADC08  
ADC09  
ADC10  
ADC11  
ADC12  
ADC13  
ADC14  
ADC15  
GPIO201/ADC01  
H1  
J2  
J1  
J3  
J2  
J1  
J3  
J2  
J1  
J3 H4 G2 K4  
J2 H3 H4 L4  
GPIO202/ADC02  
GPIO203/ADC03  
J1  
K2  
J3  
L2  
J1  
J2  
K2  
L1  
GPIO204/ADC04  
K1 H2 H2 H2  
K2 K3 K3 K3  
GPIO205/ADC05  
J4 M2  
GPIO206/ADC06  
L2  
L1  
L1  
L1 M2 K2 P1  
L3 K1 N3  
H2 H3 J4  
J2 H2 H1  
K1 H1 J1  
J4 H5 K1  
GPIO207/ADC07  
L1 K2 K2 K2  
GPIO210/ADC08  
GPIO211/ADC09  
GPIO212/ADC10  
GPIO213/ADC11  
GPIO214/ADC12  
J5  
J3  
L2  
GPIO215/ADC13  
K3  
J5 N1  
GPIO216/ADC14  
K4 K3 N2  
K5 K4 P2  
GPIO217/ADC15  
GPIO221/GPTP-IN3/32KHZ_OUT  
GPIO222/SER_IRQ  
GPIO223/SHD_IO0  
C1 C1 C1 C1 G7 D3 E1  
L5 L5 L5 L6 L6 L7  
N5 M6 M6 M6 M7 K7 R7  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 17  
MEC170x  
Default  
State  
(if not In)  
Default  
(if not GPIO)  
Pin Name  
GPIO224/GPTP-IN4/SHD_IO1  
GPIO225/UART0_RTS#  
GPIO226/LED3  
GPIO227/SHD_IO2  
GPIO230  
M7 M5 M5 M5 N6 M3 R6  
A13 A13  
A10 E9 C13  
F2 F2 F2 E3 C2 F1  
M6 L6  
L6  
L6 N7 M4 P7  
L8 N8 R11  
GPIO231  
K7 M7 J8  
GPIO233  
G8 K8 L10  
GPIO234/VCI_IN4#  
GPIO240  
B1 A1 E4  
G13 G10 G10 H14  
GPIO241  
B8 B8 B8 D6 D9 B10  
A10 A10 A10 D5 A9 A12  
C8 C8 C8 D8 C9 E9  
GPIO242  
GPIO243  
GPIO244  
A11 A11 A11 B8 B10 A13  
B11 B11 B11 C8 A10 B12  
B10 B10 B10 B9 C10 D10  
B9 B9 B9 A8 B9 B11  
F12 G11 G11 G11 F10 F12 G11  
A1 D3 D3 D3 G6 F4 G5  
E5 E5 E5 E5 E6 F7 D5  
B4 C5 C5 C5 B2 B3 B4  
D1 F1 F1 F1 E1 E1 D1  
GPIO245  
GPIO246  
GPIO254  
JTAG_RST#  
RESETI#  
JTAG_RST#  
RESETI#  
VBAT  
VBAT  
VCI_OUT  
VCI_OUT  
VFLT_PLL  
VR_CAP  
VREF_ADC  
VSS1  
O2ma-High  
VFLT_PLL  
VR_CAP  
G1 H1 H1 H1  
J1  
F1 G1  
VREF_ADC  
VSS1  
G2 G2 G2 G2 H5 G1 J5  
E7 F6 F6 F6 E5 H8 B2  
F9 G3 G3 G3 J7 G7 H8  
E8 H5 H5 H5 K6 G6 J7  
VSS2  
VSS2  
VSS3  
VSS3  
VSS_ADC  
H5 K1 K1 K1  
L1 H6 M1  
VSS_ADC  
VSS_ANALOG  
VSS_ANA-  
LOG  
E6 B4 B4 B4 C4 F6 A3  
VTR1  
E9 G5 G5 G5 G4 F8 F4  
J8 H8 H8 H8 L12 J8 N13  
VTR1  
VTR2  
VTR3  
VTR2  
VTR3  
J5 H6 H6 H6  
J6 H7 P4  
VTR_ANALOG  
VTR_ANA-  
LOG  
F5 G6 G6 G6 H8 G8 L5  
DS00002206H-page 18  
2016-2020 Microchip Technology Inc.  
MEC170x  
Default  
State  
(if not In)  
Default  
(if not GPIO)  
Pin Name  
VTR_PLL  
VTR_REG  
XTAL1  
E1 E1 E1 E1 D1 D1 C1  
G5 G1 G1 G1 H1 G5 H2  
A4 A3 A3 A3 A3 A2 A4  
A2 A1 A1 A1 A1 A4 A2  
VTR_PLL  
VTR_REG  
XTAL1  
XTAL2  
XTAL2  
2.5  
Pin List by Pin Number  
2.5.1  
POWER RAIL  
The Power Rail column defines the power pin that provides I/O power for the signal pin.  
2.5.2 PAD TYPES  
The Pad Type column defines the type of pad associated with each signal. Some pins have signals with two different  
pad types sharing the pin; in this case, the pin is shown with the Pin Name but no pad type, followed by rows showing  
the pad type for each of the signals that share the pin. Pad Types are defined in the Section 50.0, "Electrical Specifica-  
tions," on page 605.  
• I/O Pad Types are defined in Section 50.2.4, "DC Electrical Characteristics for I/O Buffers," on page 608.  
• The abbreviation “PWR” is used to denote power pins. The power supplies are defined in Section 50.2.1, "Power  
Supply Operational Characteristics," on page 606.  
2.5.3  
GLITCH 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.  
Pins without glitch protection may be susceptible to transitory changes as the power rail is rising.  
Note: The power rail must rise monotonically in order for glitch protection to operate.  
BGPO GLITCH PROTECTION  
All BGPO pins are glitch protected while VBAT power is applied.  
The BGPO outputs are glitch protected on VBAT power as well as VTR power. As VBAT rises from ground, the BGPOx  
output are not driven until the VBAT power rail reaches approximately 1V. Once the VBAT power rail reaches approxi-  
mately 1V, the BGPO outputs drive low.  
Note:  
It is recommended that a pull-down resistor be added to the BGPO pins.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 19  
MEC170x  
2.5.4  
OVER-VOLTAGE PROTECTION  
For pins that have Over-voltage protection and the VTRx power rail that is supplying the pin is 3.3V, the pin can tolerate  
an input voltage of up to 5.5V without causing an error.  
Note:  
Pins with over-voltage protection may be pulled up externally to 5V supply. It is recommended to select  
strong pull-up resistor values (less than 10k ohms) that keep the pull-up voltage on the pin less than 3.8V  
and above 4.5V. If the voltage is 3.8V < x < 4.5V the pad current will be higher (65ua -nominal).  
For pins with Over-voltage protection and the VTRx power rail that is supplying the pin is 1.8V, the pin can tolerate an  
input voltage of up to 3.6V without causing an error.  
An input level that exceeds 105% of the power rail on a pin without Over-voltage protection may cause errors in the logic  
and may additionally damage internal circuitry.  
2.5.5  
UNDER-VOLTAGE PROTECTION  
Pins that are identified as having Under-voltage PROTECTION may be configured so the 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 dis-  
abled. The input is disabled by setting the GPIO POWER_GATING bits to 11b.  
2.5.6  
BACKDRIVE 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.5.7  
CONFIGURABLE SIGNAL ROUTING  
Several sideband signals associated with the LPC bus are routed on two pins, one that is powered by VTR3 and the  
second powered by VTR2. By connecting VTR3 to 3.3V, VTR2 to 1.8V and using the sideband signals in the VTR2  
region, the LPC bus can operate at 3.3V while sideband signals can operate at 1.8V. This configuration corresponds to  
Intel Atom platforms where the LPC bus can operate at 3.3V, but the sideband signals must be powered at 1.8V. If the  
sideband signals operate at the same voltage level as the LPC bus, then the VTR3 powered sideband signals should  
be used and the alternatives in the VTR2 region can be used as GPIOs or other functions.  
The signal routing is determined by the alternate function multiplexer programmed in the pin’s GPIO Pin Control Reg-  
ister. Software should not enabled signals on more than one pin.  
The signals are:  
• SER_IRQ  
• LRESET#  
• LPCPD#  
• nSMI  
• nEC_SCI  
DS00002206H-page 20  
2016-2020 Microchip Technology Inc.  
MEC170x  
2.5.8  
MEC1701/MEC1703-128 WFBGA-TF  
Power  
Rail  
Pad  
Type  
Signal  
RESETI#  
A1  
A2  
A3  
A4  
A5  
A6  
A7  
A8  
A9  
A1  
A2  
A3  
A4  
A5  
A6  
A7  
A8  
A9  
VTR1  
VBAT  
VBAT  
VBAT  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VBAT  
VBAT  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
In  
I_AN  
O2ma  
I_AN  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
O2ma  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PWR  
PIO  
PIO  
PIO  
PIO  
X
X
X
X
X
X
XTAL2  
BGPO0  
XTAL1  
GPIO143/I2C04_SDA/SPI1_MISO/UART0_DTR#/TRACEDAT2  
GPIO141/I2C05_SDA/SPI1_CLK/UART0_DCD#/TRACEDAT0  
GPIO146/I2C09_SCL/JTAG_TDO  
GPIO145/I2C09_SDA/JTAG_TDI  
GPIO045/KSO01  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO154/I2C02_SDA/PS2_CLK1B  
GPIO153/LED2  
A10 A10  
A11 A11  
A12 A12  
A13 A13  
X
X
X
GPIO157/LED1  
GPIO127/A20M/UART0_CTS#  
GPIO024/GPTP-IN2  
B1  
B2  
B3  
B4  
B5  
B6  
B7  
B8  
B9  
B1  
B2  
B3  
B4  
B5  
B6  
B7  
B8  
B9  
GPIO057/VCC_PWRGD  
GPIO161/VCI_IN2#  
VCI_OUT  
GPIO003/I2C00_SDA/SPI0_CS#  
GPIO142/I2C05_SCL/SPI1_MOSI/UART0_DSR#/TRACEDAT1  
GPIO147/I2C08_SDA/JTAG_CLK  
GPIO165/32KHZ_IN/CTOUT0/TRACECLK  
GPIO155/I2C02_SCL/PS2_DAT1B  
GPIO010/I2C03_SCL/PS2_DAT0B  
GPIO007/I2C03_SDA/PS2_CLK0B  
GPIO156/LED0  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
B10 B10  
B11 B11  
B12 B12  
B13 B13  
GPIO047/BCM1_CLK/KSO03  
GPIO221/GPTP-IN3/32KHZ_OUT  
GPIO022/GPTP-IN0  
C1  
C2  
C1  
C2  
GPIO124/GPTP-OUT6/PVT_CS#/KSO11  
GPIO126/PVT_IO3/KSO13  
VFLT_PLL  
C12 C12  
C13 C13  
D1  
D2  
D4  
D5  
D6  
D1  
D2  
D4  
D5  
D6  
GPIO000/VCI_IN3#  
VBAT  
VTR1  
VBAT  
VBAT  
X
X
X
X
X
X
X
X
X
GPIO062/(RESETO#)  
GPIO162/VCI_IN1#  
X
X
GPIO163/VCI_IN0#  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 21  
MEC170x  
Power  
Rail  
Pad  
Type  
Signal  
GPIO004/I2C00_SCL/SPI0_MOSI  
D7  
D8  
D9  
D7  
D8  
D9  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PWR  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO144/I2C04_SCL/SPI1_CS#/UART0_RI#/TRACEDAT3  
GPIO150/I2C08_SCL/JTAG_TMS  
GPIO175/KSO17  
D10 D10  
D12 D12  
D13 D13  
GPIO123/BCM0_CLK/PVT_IO2/KSO10  
GPIO125/GPTP-OUT5/PVT_CLK/KSO12  
VTR_PLL  
E1  
E2  
E4  
E5  
E6  
E7  
E8  
E9  
E1  
E2  
E4  
E5  
E6  
E7  
E8  
E9  
GPIO033/RC_ID0  
VTR1  
VTR1  
GPIO106/PWROK  
PIO  
PWR  
PWR  
PWR  
PWR  
PWR  
PIO  
X
X
X
VBAT  
VSS_ANALOG  
VSS1  
VSS3  
VTR1  
GPIO046/BCM1_DAT/KSO02  
GPIO121/PVT_IO0/KSO08  
GPIO122/BCM0_DAT/PVT_IO1/KSO09  
GPIO051/FAN_TACH1/GTACH1  
GPIO023/GPTP-IN1  
GPIO060/KBRST/48MHZ_OUT  
VTR_ANALOG  
E10 E10  
E12 E12  
E13 E13  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
PIO  
PIO  
F1  
F2  
F4  
F5  
F9  
F1  
F2  
F4  
F5  
F9  
PIO  
X
PIO  
PIO  
PWR  
PWR  
PIO  
VSS2  
GPIO105/UART0_RX  
JTAG_RST#  
F10 F10  
F12 F12  
F13 F13  
VTR1  
VTR1  
VTR1  
X
X
X
X
X
X
X
X
X
In  
GPIO104/UART0_TX  
VR_CAP  
PIO  
G1  
G2  
G4  
G5  
G9  
G1  
G2  
G4  
G5  
G9  
PWR  
PWR  
PIO  
VREF_ADC  
X
X
GPIO050/FAN_TACH0/GTACH0  
VTR_REG  
VTR1  
X
X
X
X
PWR  
PIO  
GPIO171/TFDATA/UART1_RX/(JTAG_STRAP)  
GPIO170/TFCLK/UART1_TX  
GPIO035/PWM8/CTOUT1  
GPIO114/PS2_CLK0A/nEC_SCI  
GPIO201/ADC01  
VTR1  
VTR1  
VTR1  
VTR2  
X
X
X
X
X
X
X
X
X
X
X
X
G10 G10  
G12 G12  
G13 G13  
PIO  
PIO  
PIO  
GPIO201  
H1  
H1  
VTR1  
PIO  
X
X
X
X
ADC01  
I_AN  
DS00002206H-page 22  
2016-2020 Microchip Technology Inc.  
MEC170x  
Power  
Rail  
Pad  
Type  
Signal  
GPIO200/ADC00  
GPIO200  
H2  
H2  
VTR1  
VTR2  
VTR2  
VTR1  
PIO  
I_AN  
PIO  
X
X
X
X
X
X
ADC00  
GPIO052/FAN_TACH2/LRESET#  
VSS_ADC  
H4  
H5  
H9  
H4  
H5  
H9  
X
X
PWR  
PIO  
GPIO017/GPTP-IN5/KSI0  
GPIO043/SB-TSI_CLK  
GPIO043  
X
X
H10 H10  
PIO  
X
X
X
X
SB-TSI_CLK  
PECI  
GPIO044/VREF_VTT  
GPIO044  
H12 H12  
H13 H13  
VTR1  
VTR2  
VTR1  
PIO  
I_AN  
PIO  
X
X
X
X
X
X
VREF_VTT  
GPIO113/PS2_DAT1A/KSO06  
GPIO203/ADC03  
GPIO203  
X
J1  
J2  
J1  
J2  
PIO  
X
X
X
X
ADC03  
I_AN  
GPIO202/ADC02  
GPIO202  
VTR1  
VTR3  
PIO  
I_AN  
PIO  
X
X
X
X
X
X
ADC02  
GPIO011/nSMI  
J4  
J5  
J6  
J7  
J8  
J9  
J4  
J5  
J6  
J7  
J8  
J9  
X
VTR3  
PWR  
PIO  
GPIO130/I2C10_SDA/TOUT1  
GPIO151/ICT4/KSO15  
VTR2  
VTR2  
VTR2  
X
X
X
X
X
X
PIO  
PWR  
PIO  
GPIO032/GPTP-OUT0/KSI7  
GPIO042/PECI_DAT/SB-TSI_DAT  
GPIO042  
VTR2  
VTR1  
X
X
X
J10 J10  
PIO  
PECI  
PIO  
X
X
X
X
X
X
X
X
PECI_DAT/SB-TSI_DAT  
GPIO112/PS2_CLK1A/KSO05  
GPIO120/KSO07  
GPIO204/ADC04  
GPIO204  
J12 J12  
J13 J13  
VTR2  
VTR2  
X
X
PIO  
K1  
K1  
VTR1  
PIO  
X
X
X
X
ADC04  
I_AN  
GPIO205/ADC05  
GPIO205  
K2  
K4  
K2  
K4  
VTR1  
VTR3  
PIO  
I_AN  
PIO  
X
X
X
X
X
X
ADC05  
GPIO100/nEC_SCI  
X
2016-2020 Microchip Technology Inc.  
DS00002206H-page 23  
MEC170x  
Power  
Rail  
Pad  
Type  
Signal  
GPIO013/I2C07_SCL/TOUT2  
GPIO020/KSI1  
K5  
K6  
K7  
K8  
K9  
K5  
K6  
K7  
K8  
K9  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO015/PWM7  
GPIO002/PWM5  
GPIO054/PWM1/GPWM1  
GPIO107/nSMI/KSO04  
GPIO030/TIN3/KSI5  
GPIO027/TIN2/KSI4  
GPIO207/ADC07  
GPIO207  
X
K10 K10  
K12 K12  
K13 K13  
L1  
L2  
L1  
L2  
VTR1  
VTR1  
PIO  
X
X
X
X
ADC07  
I_AN  
GPIO206/ADC06  
GPIO206  
PIO  
I_AN  
PIO  
PIO  
PIO  
PIO  
PIO  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
ADC06  
GPIO053/PWM0/GPWM0  
L12 L12  
L13 L13  
M1 M1  
M2 M2  
M3 M3  
VTR2  
VTR2  
VTR3  
VTR3  
VTR3  
X
X
X
X
X
X
GPIO025/TIN0/nEM_INT/UART_CLK  
GPIO064/LRESET#  
GPIO066/LFRAME#/ESPI_CS#  
GPIO065/PCI_CLK/ESPI_CLK  
GPIO070/LAD0/ESPI_IO0  
GPIO070/ESPI_IO0  
M4 M4  
M5 M5  
VTR3  
VTR3  
PIO  
PCI  
LAD0  
GPIO063/SER_IRQ/ESPI_ALERT#  
GPIO063/ESPI_ALERT#  
SER_IRQ  
PIO  
PCI  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
GPIO227/SHD_IO2  
M6 M6  
M7 M7  
M8 M8  
M9 M9  
M10 M10  
M11 M11  
M12 M12  
M13 M13  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR3  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO224/GPTP-IN4/SHD_IO1  
GPIO012/I2C07_SDA/TOUT3  
GPIO131/I2C10_SCL/TOUT0  
GPIO014/PWM6/GPTP-IN6  
GPIO040/GPTP-OUT2/KSO00  
GPIO115/PS2_DAT0A  
GPIO140/I2C06_SCL/ICT5  
GPIO061/LPCPD#/ESPI_RESET#  
GPIO071/LAD1/ESPI_IO1  
GPIO071/ESPI_IO1  
N1  
N1  
N2  
N2  
VTR3  
PIO  
PCI  
LAD1  
DS00002206H-page 24  
2016-2020 Microchip Technology Inc.  
MEC170x  
Power  
Rail  
Pad  
Type  
Signal  
GPIO072/LAD2/ESPI_IO2  
GPIO072/ESPI_IO2  
LAD2  
N3  
N4  
N3  
N4  
VTR3  
VTR3  
PIO  
PCI  
GPIO073/LAD3/ESPI_IO3  
GPIO073/ESPI_IO3  
LAD3  
PIO  
PCI  
GPIO223/SHD_IO0  
N5  
N6  
N7  
N8  
N9  
N5  
N6  
N7  
N8  
N9  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO016/GPTP-IN7/SHD_IO3/ICT3  
GPIO056/PWM3/SHD_CLK  
GPIO055/PWM2/SHD_CS#/(RSMRST#)  
GPIO021/LPCPD#/KSI2  
GPIO152/GPTP-OUT3/KSO16  
GPIO031/GPTP-OUT1/KSI6  
GPIO132/I2C06_SDA/KSO14  
GPIO026/TIN1/KSI3  
N10 N10  
N11 N11  
N12 N12  
N13 N13  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 25  
MEC170x  
2.5.9  
MEC1705/MEC1704/MEC1701/MEC1703 144 WFBGA-SZ  
Power  
Rail  
Pad  
Type  
Pin Name  
XTAL2  
A1  
A2  
A3  
A4  
A5  
A6  
A7  
A8  
A9  
A1  
A2  
A3  
A4  
A5  
A6  
A7  
A8  
A9  
VBAT  
VTR1  
VBAT  
VBAT  
VBAT  
VBAT  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
I_AN  
PIO  
I_AN  
PIO  
O2ma  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
GPIO062/RESETO#  
XTAL1  
X
X
GPIO101/BGPO1  
BGPO0  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO162/VCI_IN1#  
GPIO143/I2C04_SDA/SPI1_MISO/UART0_DTR#/TRACEDAT2  
GPIO145/I2C09_SDA/JTAG_TDI  
GPIO165/32KHZ_IN/CTOUT0/TRACECLK  
GPIO242  
A10 A10  
A11 A11  
A12 A12  
A13  
GPIO244  
GPIO154/I2C02_SDA/PS2_CLK1B  
GPIO225/UART0_RTS#  
GPIO156/LED0  
X
A13  
X
X
GPIO051/FAN_TACH1/GTACH1  
GPIO033/RC_ID0  
B1  
B2  
B1  
B2  
GPIO033  
VTR1  
VBAT  
PIO  
I_AN  
PIO  
PWR  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
O2ma  
PIO  
X
X
X
X
X
X
RC_ID0  
GPIO000/VCI_IN3#  
B3  
B4  
B5  
B6  
B7  
B8  
B9  
B3  
B4  
B5  
B6  
B7  
B8  
B9  
X
VSS_ANALOG  
GPIO102/BGPO2  
VBAT  
VBAT  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VBAT  
VBAT  
VTR1  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO172/BGPO3  
GPIO141/I2C05_SDA/SPI1_CLK/UART0_DCD#/TRACEDAT0  
GPIO241  
GPIO254  
GPIO246  
B10 B10  
B11 B11  
B12 B12  
B13 B13  
GPIO245  
GPIO007/I2C03_SDA/PS2_CLK0B  
GPIO157/LED1  
X
X
GPIO221/GPTP-IN3/32KHZ_OUT  
GPIO024/GPTP-IN2  
C1  
C2  
C3  
C4  
C5  
C6  
C1  
C2  
C3  
C4  
C5  
C6  
GPIO023/GPTP-IN1  
GPIO161/VCI_IN2#  
VCI_OUT  
GPIO004/I2C00_SCL/SPI0_MOSI  
X
DS00002206H-page 26  
2016-2020 Microchip Technology Inc.  
MEC170x  
Power  
Rail  
Pad  
Type  
Pin Name  
GPIO147/I2C08_SDA/JTAG_CLK  
C7  
C8  
C9  
C7  
C8  
C9  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
In  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO243  
GPIO155/I2C02_SCL/PS2_DAT1B  
GPIO010/I2C03_SCL/PS2_DAT0B  
GPIO124/GPTP-OUT6/PVT_CS#/KSO11  
GPIO156/LED0  
X
X
C10 C10  
C11 C11  
C12  
X
X
GPIO153/LED2  
C12  
GPIO175/KSO17  
C13 C13  
GPIO057/VCC_PWRGD  
GPIO060/KBRST/48MHZ_OUT  
RESETI#  
D1  
D2  
D3  
D1  
D2  
D3  
GPIO125/GPTP-OUT5/PVT_CLK/KSO12  
GPIO126/PVT_IO3/KSO13  
GPIO127/A20M/UART0_CTS#  
VTR_PLL  
D11 D11  
D12 D12  
D13 D13  
PIO  
PIO  
PIO  
PWR  
PIO  
PIO  
PWR  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PWR  
PIO  
PIO  
PIO  
PWR  
PIO  
PIO  
PIO  
PIO  
PIO  
E1  
E2  
E3  
E5  
E6  
E7  
E8  
E9  
E1  
E2  
E3  
E5  
E6  
E7  
E8  
E9  
GPIO022/GPTP-IN0  
VTR1  
VTR1  
X
X
X
X
X
X
GPIO106/PWROK  
VBAT  
GPIO163/VCI_IN0#  
VBAT  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO144/I2C04_SCL/SPI1_CS#/UART0_RI#/TRACEDAT3  
GPIO045/KSO01  
GPIO046/BCM1_DAT/KSO02  
GPIO122/BCM0_DAT/PVT_IO1/KSO09  
GPIO123/BCM0_CLK/PVT_IO2/KSO10  
GPIO134/PWM10/UART1_RTS#  
GPIO035/PWM8/CTOUT1  
VFLT_PLL  
E11 E11  
E12 E12  
E13  
E13  
X
F1  
F2  
F3  
F5  
F6  
F7  
F8  
F9  
F1  
F2  
F3  
F5  
F6  
F7  
F8  
F9  
GPIO226/LED3  
VTR1  
VTR1  
VTR1  
X
X
X
X
X
X
X
X
X
X
X
GPIO050/FAN_TACH0/GTACH0  
GPIO003/I2C00_SDA/SPI0_CS#  
VSS1  
GPIO142/I2C05_SCL/SPI1_MOSI/UART0_DSR#/TRACEDAT1  
GPIO150/I2C08_SCL/JTAG_TMS  
GPIO105/UART0_RX  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO104/UART0_TX  
F11 F11  
F12 F12  
GPIO121/PVT_IO0/KSO08  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 27  
MEC170x  
Power  
Rail  
Pad  
Type  
Pin Name  
GPIO047/BCM1_CLK/KSO03  
F13 F13  
VTR1  
PIO  
PWR  
PWR  
PWR  
PWR  
PWR  
PIO  
X
X
X
X
VTR_REG  
VREF_ADC  
VSS2  
G1  
G2  
G3  
G5  
G6  
G8  
G9  
G1  
G2  
G3  
G5  
G6  
G8  
VTR1  
VTR_ANALOG  
GPIO146/I2C09_SCL/JTAG_TDO  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO135/UART1_CTS#  
PIO  
GPIO171/TFDATA/UART1_RX/(JTAG_STRAP)  
G9  
PIO  
JTAG_RST#  
G11 G11  
G12  
In  
GPIO171/TFDATA/UART1_RX/(JTAG_STRAP)  
GPIO170/TFCLK/UART1_TX  
GPIO240  
PIO  
G13 G12  
G13  
PIO  
PIO  
VR_CAP  
H1  
H1  
PWR  
GPIO204/ADC04  
GPIO204  
H2  
H2  
VTR1  
VTR1  
PIO  
X
X
X
X
ADC04  
I_AN  
GPIO200/ADC00  
GPIO200  
H3  
H3  
PIO  
I_AN  
PWR  
PWR  
PIO  
X
X
X
X
ADC00  
VSS3  
H5  
H6  
H7  
H8  
H9  
H5  
H6  
H7  
H8  
H9  
VTR3  
GPIO100/nEC_SCI  
VTR2  
VTR3  
VTR2  
VTR1  
X
X
X
X
X
X
PWR  
PIO  
GPIO114/PS2_CLK0A/nEC_SCI  
GPIO044/VREF_VTT  
GPIO044  
H11 H11  
H12 H12  
H13 H13  
PIO  
X
X
X
X
VREF_VTT  
I_AN  
GPIO034/RC_ID1/SPI0_CLK  
GPIO034,SPI0_CLK  
RC_ID1  
VTR1  
VTR1  
PIO  
X
X
X
X
I_AN  
GPIO036/RC_ID2/SPI0_MISO  
GPIO036,SPI0_MISO  
RC_ID2  
PIO  
X
X
X
X
I_AN  
DS00002206H-page 28  
2016-2020 Microchip Technology Inc.  
MEC170x  
Power  
Rail  
Pad  
Type  
Pin Name  
GPIO203/ADC03  
GPIO203  
J1  
J2  
J3  
J1  
J2  
J3  
VTR1  
VTR1  
VTR1  
PIO  
X
X
X
X
ADC03  
I_AN  
GPIO202/ADC02  
GPIO202  
PIO  
X
X
X
X
ADC02  
I_AN  
GPIO201/ADC01  
GPIO201  
PIO  
I_AN  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
ADC01  
GPIO064/LRESET#  
GPIO011/nSMI  
GPIO015/PWM7  
GPIO017/GPTP-IN5/KSI0  
GPIO030/TIN3/KSI5  
GPIO113/PS2_DAT1A/KSO06  
J5  
J6  
J7  
J8  
J9  
J5  
J6  
J7  
J8  
J9  
VTR3  
VTR3  
VTR2  
VTR2  
VTR2  
VTR2  
X
X
X
X
X
X
J11 J11  
GPIO042/PECI_DAT/SB-TSI_DAT  
GPIO042  
J12 J12  
VTR1  
VTR1  
PIO  
X
X
X
X
PECI_DAT/SB-TSI_DAT  
GPIO043/SB-TSI_CLK  
GPIO043  
PECI  
J13 J13  
PIO  
PECI  
PWR  
X
X
X
X
SB-TSI_CLK  
VSS_ADC  
K1  
K2  
K1  
K2  
GPIO207/ADC07  
GPIO207  
VTR1  
VTR1  
PIO  
X
X
X
X
ADC07  
I_AN  
GPIO205/ADC05  
GPIO205  
K3  
K3  
PIO  
I_AN  
PIO  
PIO  
PIO  
X
X
X
X
X
X
X
X
X
X
ADC05  
GPIO027/TIN2/KSI4  
GPIO120/KSO07  
GPIO112/PS2_CLK1A/KSO05  
GPIO206/ADC06  
GPIO206  
K11 K11  
K12 K12  
K13 K13  
VTR2  
VTR2  
VTR2  
X
X
X
L1  
L2  
L1  
L2  
VTR1  
VTR3  
PIO  
I_AN  
PIO  
X
X
X
X
X
X
ADC06  
GPIO067/CLKRUN#  
X
2016-2020 Microchip Technology Inc.  
DS00002206H-page 29  
MEC170x  
Power  
Rail  
Pad  
Type  
Pin Name  
GPIO070/LAD0/ESPI_IO0  
GPIO070/ESPI_IO0  
LAD0  
L3  
L4  
L5  
L3  
L4  
L5  
VTR3  
VTR3  
VTR2  
PIO  
PCI  
GPIO073/LAD3/ESPI_IO3  
GPIO073,ESPI_IO3  
LAD3  
PIO  
PCI  
GPIO222/SER_IRQ  
GPIO222  
PIO  
PCI  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
SER_IRQ  
GPIO227/SHD_IO2  
GPIO020/KSI1  
L6  
L7  
L8  
L9  
L6  
L7  
L8  
L9  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR3  
VTR3  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO052/FAN_TACH2/LRESET#  
GPIO151/ICT4/KSO15  
GPIO032/GPTP-OUT0/KSI7  
GPIO140/I2C06_SCL/ICT5  
GPIO054/PWM1/GPWM1  
GPIO107/nSMI/KSO04  
L10 L10  
L11 L11  
L12 L12  
L13 L13  
M1 M1  
M2 M2  
X
GPIO066/LFRAME#/ESPI_CS#  
GPIO065/PCI_CLK/ESPI_CLK  
GPIO072/LAD2/ESPI_IO2  
GPIO072/ESPI_IO2  
M3 M3  
M4 M4  
VTR3  
VTR3  
PIO  
PCI  
LAD2  
GPIO063/SER_IRQ/ESPI_ALERT#  
GPIO063/ESPI_ALERT#  
SER_IRQ  
PIO  
PCI  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
GPIO224/GPTP-IN4/SHD_IO1  
GPIO223/SHD_IO0  
M5 M5  
M6 M6  
M7 M7  
M8 M8  
M9 M9  
M10 M10  
M11 M11  
M12 M12  
M13 M13  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR3  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO013/I2C07_SCL/TOUT2  
GPIO002/PWM5  
GPIO014/PWM6/GPTP-IN6  
GPIO040/GPTP-OUT2/KSO00  
GPIO031/GPTP-OUT1/KSI6  
GPIO025/TIN0/nEM_INT/UART_CLK  
GPIO053/PWM0/GPWM0  
GPIO061/LPCPD#/ESPI_RESET#  
X
N1  
N1  
DS00002206H-page 30  
2016-2020 Microchip Technology Inc.  
MEC170x  
Power  
Rail  
Pad  
Type  
Pin Name  
GPIO071/LAD1/ESPI_IO1  
GPIO071/ESPI_IO1  
LAD1  
N2  
N2  
VTR3  
PIO  
PCI  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
GPIO016/GPTP-IN7/SHD_IO3/ICT3  
GPIO055/PWM2/SHD_CS#/RSMRST#  
GPIO056/PWM3/SHD_CLK  
GPIO012/I2C07_SDA/TOUT3  
GPIO131/I2C10_SCL/TOUT0  
GPIO130/I2C10_SDA/TOUT1  
GPIO021/LPCPD#/KSI2  
N3  
N4  
N5  
N6  
N7  
N8  
N9  
N3  
N4  
N5  
N6  
N7  
N8  
N9  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO152/GPTP-OUT3/KSO16  
GPIO132/I2C06_SDA/KSO14  
GPIO115/PS2_DAT0A  
N10 N10  
N11 N11  
N12 N12  
N13 N13  
GPIO026/TIN1/KSI3  
2.5.10  
MEC1701 169 WFBGA-TN  
Power  
Rail  
Pad  
Type  
Signal  
XTAL2  
A1  
A2  
A3  
A4  
A5  
A6  
A7  
A8  
A9  
A10  
A11  
VBAT  
VBAT  
VBAT  
VBAT  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
I_AN  
PIO  
I_AN  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
GPIO173/BGPO4  
X
X
X
XTAL1  
GPIO162/VCI_IN1#  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO005/I2C01_SDA/GPTP-OUT4  
GPIO143/I2C04_SDA/SPI1_MISO/UART0_DTR#/TRACEDAT2  
GPIO141/I2C05_SDA/SPI1_CLK/UART0_DCD#/TRACEDAT0  
GPIO254  
GPIO154/I2C02_SDA/PS2_CLK1B  
GPIO225/UART0_RTS#  
X
GPIO127/A20M/UART0_CTS#  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 31  
MEC170x  
Power  
Rail  
Pad  
Type  
Signal  
GPIO047/BCM1_CLK/KSO03  
A12  
A13  
B1  
VTR1  
VTR1  
VBAT  
VBAT  
VBAT  
VBAT  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
PIO  
PIO  
PIO  
O2ma  
PIO  
O2ma  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO104/UART0_TX  
GPIO234/VCI_IN4#  
VCI_OUT  
B2  
GPIO102/BGPO2  
BGPO0  
B3  
X
X
X
X
X
X
X
X
X
X
X
B4  
GPIO004/I2C00_SCL/SPI0_MOSI  
GPIO006/I2C01_SCL/GPTP-OUT7  
GPIO165/32KHZ_IN/CTOUT0/TRACECLK  
GPIO244  
B5  
B6  
B7  
B8  
GPIO246  
B9  
GPIO007/I2C03_SDA/PS2_CLK0B  
GPIO157/LED1  
B10  
B11  
B12  
B13  
X
X
GPIO125/GPTP-OUT5/PVT_CLK/KSO12  
GPIO124/GPTP-OUT6/PVT_CS#/KSO11  
GPIO033/RC_ID0  
GPIO033  
C1  
VTR1  
PIO  
I_AN  
PIO  
PIO  
PWR  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PWR  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
X
X
X
X
X
X
X
X
RC_ID0  
GPIO000/VCI_IN3#  
C2  
C3  
C4  
C5  
C6  
C7  
C8  
C9  
C10  
C11  
C12  
C13  
D1  
D2  
D3  
D4  
D5  
D6  
D7  
VBAT  
VBAT  
X
X
GPIO161/VCI_IN2#  
VSS_ANALOG  
GPIO101/BGPO1  
VBAT  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO003/I2C00_SDA/SPI0_CS#  
GPIO147/I2C08_SDA/JTAG_CLK  
GPIO245  
GPIO155/I2C02_SCL/PS2_DAT1B  
GPIO010/I2C03_SCL/PS2_DAT0B  
GPIO133/PWM9  
X
X
X
GPIO126/PVT_IO3/KSO13  
GPIO123/BCM0_CLK/PVT_IO2/KSO10  
VTR_PLL  
GPIO022/GPTP-IN0  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO062/(RESETO#)  
GPIO144/I2C04_SCL/SPI1_CS#/UART0_RI#/TRACEDAT3  
GPIO242  
X
X
X
X
GPIO241  
GPIO145/I2C09_SDA/JTAG_TDI  
DS00002206H-page 32  
2016-2020 Microchip Technology Inc.  
MEC170x  
Power  
Rail  
Pad  
Type  
Signal  
GPIO243  
D8  
D9  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PWR  
PIO  
PIO  
PIO  
PWR  
PWR  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO156/LED0  
GPIO175/KSO17  
X
D10  
D11  
D12  
D13  
E1  
GPIO134/PWM10/UART1_RTS#  
GPIO122/BCM0_DAT/PVT_IO1/KSO09  
GPIO121/PVT_IO0/KSO08  
VFLT_PLL  
GPIO024/GPTP-IN2  
E2  
VTR1  
VTR1  
VBAT  
X
X
X
X
X
X
X
X
X
GPIO226/LED3  
E3  
X
X
GPIO174/BGPO5  
E4  
VSS1  
E5  
VBAT  
E6  
GPIO150/I2C08_SCL/JTAG_TMS  
GPIO045/KSO01  
E7  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
E8  
GPIO153/LED2  
E9  
GPIO046/BCM1_DAT/KSO02  
GPIO171/TFDATA/UART1_RX/(JTAG_STRAP)  
GPIO135/UART1_CTS#  
GPIO034/RC_ID1/SPI0_CLK  
GPIO034/SPI0_CLK  
E10  
E11  
E12  
E13  
VTR1  
PIO  
I_AN  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
In  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
RC_ID1  
GPIO057/VCC_PWRGD  
GPIO041  
F1  
F2  
VTR1  
VTR1  
VTR1  
VTR1  
VBAT  
VBAT  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
X
X
X
X
X
X
X
X
X
X
X
GPIO051/FAN_TACH1/GTACH1  
GPIO023/GPTP-IN1  
F3  
X
F4  
GPIO172/BGPO3  
F5  
GPIO163/VCI_IN0#  
F6  
GPIO142/I2C05_SCL/SPI1_MOSI/UART0_DSR#/TRACEDAT1  
GPIO146/I2C09_SCL/JTAG_TDO  
GPIO105/UART0_RX  
JTAG_RST#  
F7  
F8  
F9  
F10  
F11  
GPIO170/TFCLK/UART1_TX  
GPIO036/RC_ID2/SPI0_MISO  
GPIO036/SPI0_MISO  
RC_ID2  
PIO  
F12  
VTR1  
PIO  
I_AN  
PIO  
X
X
X
X
X
X
X
X
GPIO027/TIN2/KSI4  
F13  
G1  
VTR2  
VTR1  
X
X
GPIO166  
PIO  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 33  
MEC170x  
Power  
Rail  
Pad  
Type  
Signal  
GPIO050/FAN_TACH0/GTACH0  
G2  
G3  
VTR1  
VTR1  
PIO  
X
X
X
X
GPIO200/ADC00  
GPIO200  
PIO  
I_AN  
PWR  
PIO  
In  
X
X
X
X
ADC00  
VTR1  
G4  
G5  
G6  
G7  
G8  
GPIO060/KBRST/48MHZ_OUT  
RESETI#  
VTR1  
VTR1  
VTR1  
VTR2  
X
X
X
X
X
X
X
X
X
X
X
X
GPIO221/GPTP-IN3/32KHZ_OUT  
GPIO233  
PIO  
PIO  
GPIO044/VREF_VTT  
GPIO044  
G9  
VTR1  
PIO  
I_AN  
PIO  
X
X
X
X
X
X
X
X
X
X
X
X
VREF_VTT  
GPIO240  
G10  
G11  
G12  
G13  
H1  
VTR1  
VTR1  
VTR2  
VTR2  
X
X
X
X
GPIO035/PWM8/CTOUT1  
GPIO111/PS2_DAT2  
GPIO110/PS2_CLK2  
VTR_REG  
PIO  
X
PIO  
PIO  
PWR  
GPIO210/ADC08  
GPIO210  
H2  
H3  
H4  
VTR1  
VTR1  
VTR1  
PIO  
X
X
X
X
ADC08  
I_AN  
GPIO202/ADC02  
GPIO202  
PIO  
X
X
X
X
ADC02  
I_AN  
GPIO201/ADC01  
GPIO201  
PIO  
I_AN  
PWR  
PIO  
X
X
X
X
X
X
X
ADC01  
VREF_ADC  
H5  
H6  
H7  
H8  
H9  
GPIO106/PWROK  
GPIO013/I2C07_SCL/TOUT2  
VTR_ANALOG  
GPIO151/ICT4/KSO15  
GPIO042/PECI_DAT/SB-TSI_DAT  
GPIO042  
VTR1  
VTR2  
X
X
X
X
PIO  
PWR  
PIO  
VTR2  
VTR1  
X
X
X
H10  
H11  
PIO  
X
X
X
X
PECI_DAT/SB-TSI_DAT  
GPIO043/SB-TSI_CLK  
GPIO043  
PECI  
VTR1  
PIO  
X
X
X
X
SB-TSI_CLK  
PECI  
DS00002206H-page 34  
2016-2020 Microchip Technology Inc.  
MEC170x  
Power  
Rail  
Pad  
Type  
Signal  
GPIO120/KSO07  
GPIO107/nSMI/KSO04  
VR_CAP  
H12  
H13  
J1  
VTR2  
VTR2  
PIO  
PIO  
X
X
X
X
X
X
PWR  
GPIO211/ADC09  
GPIO211  
J2  
J3  
J4  
J5  
VTR1  
VTR1  
VTR1  
VTR1  
PIO  
X
X
X
X
ADC09  
I_AN  
GPIO204/ADC04  
GPIO204  
PIO  
X
X
X
X
ADC04  
I_AN  
GPIO213/ADC11  
GPIO213  
PIO  
X
X
X
X
ADC11  
I_AN  
GPIO214/ADC12  
GPIO214  
PIO  
I_AN  
PWR  
PWR  
PIO  
X
X
X
X
ADC12  
VTR3  
J6  
J7  
VSS2  
GPIO130/I2C10_SDA/TOUT1  
GPIO017/GPTP-IN5/KSI0  
J8  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
J9  
PIO  
GPIO114/PS2_CLK0A/nEC_SCI  
GPIO113/PS2_DAT1A/KSO06  
GPIO112/PS2_CLK1A/KSO05  
GPIO030/TIN3/KSI5  
GPIO212/ADC10  
GPIO212  
J10  
J11  
J12  
J13  
PIO  
PIO  
PIO  
PIO  
K1  
K2  
K3  
K4  
VTR1  
VTR1  
VTR1  
VTR1  
PIO  
X
X
X
X
ADC10  
I_AN  
GPIO203/ADC03  
GPIO203  
PIO  
X
X
X
X
ADC03  
I_AN  
GPIO215/ADC13  
GPIO215  
PIO  
X
X
X
X
ADC13  
I_AN  
GPIO216/ADC14  
GPIO216  
PIO  
X
X
X
X
ADC14  
I_AN  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 35  
MEC170x  
Power  
Rail  
Pad  
Type  
Signal  
GPIO217/ADC15  
GPIO217  
ADC15  
VSS3  
K5  
VTR1  
PIO  
I_AN  
PWR  
PIO  
X
X
X
X
K6  
K7  
GPIO231  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO052/FAN_TACH2/LRESET#  
GPIO032/GPTP-OUT0/KSI7  
GPIO054/PWM1/GPWM1  
GPIO053/PWM0/GPWM0  
GPIO025/TIN0/nEM_INT/UART_CLK  
GPIO140/I2C06_SCL/ICT5  
VSS_ADC  
K8  
PIO  
K9  
PIO  
K10  
K11  
K12  
K13  
L1  
PIO  
X
X
PIO  
PIO  
PIO  
PWR  
GPIO205/ADC05  
GPIO205  
L2  
L3  
VTR1  
VTR1  
PIO  
X
X
X
X
ADC05  
I_AN  
GPIO207/ADC07  
GPIO207  
PIO  
I_AN  
PIO  
X
X
X
X
X
X
X
X
ADC07  
GPIO100/nEC_SCI  
GPIO011/nSMI  
L4  
L5  
VTR3  
VTR3  
X
X
PIO  
GPIO222/SER_IRQ  
GPIO222  
L6  
VTR2  
PIO  
PCI  
PIO  
PIO  
PIO  
PIO  
PIO  
PWR  
PIO  
PIO  
SER_IRQ  
GPIO012/I2C07_SDA/TOUT3  
GPIO230  
L7  
L8  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO020/KSI1  
L9  
GPIO132/I2C06_SDA/KSO14  
GPIO026/TIN1/KSI3  
VTR2  
L10  
L11  
L12  
L13  
M1  
GPIO115/PS2_DAT0A  
GPIO061/LPCPD#/ESPI_RESET#  
GPIO206/ADC06  
GPIO206  
VTR2  
VTR3  
X
X
X
X
X
X
M2  
M3  
VTR1  
VTR3  
PIO  
I_AN  
PIO  
X
X
X
X
X
X
ADC06  
GPIO064/LRESET#  
X
DS00002206H-page 36  
2016-2020 Microchip Technology Inc.  
MEC170x  
Power  
Rail  
Pad  
Type  
Signal  
GPIO070/LAD0/ESPI_IO0  
GPIO070/ESPI_IO0  
LAD0  
M4  
M5  
M6  
VTR3  
VTR3  
VTR3  
PIO  
PCI  
PIO  
GPIO067/CLKRUN#  
GPIO073/LAD3/ESPI_IO3  
GPIO073/ESPI_IO3  
LAD3  
X
X
X
PIO  
PCI  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
GPIO223/SHD_IO0  
M7  
M8  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR3  
VTR3  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO055/PWM2/SHD_CS#/(RSMRST#)  
GPIO021/LPCPD#/KSI2  
GPIO014/PWM6/GPTP-IN6  
GPIO040/GPTP-OUT2/KSO00  
GPIO015/PWM7  
M9  
M10  
M11  
M12  
M13  
N1  
GPIO031/GPTP-OUT1/KSI6  
GPIO066/LFRAME#/ESPI_CS#  
GPIO065/PCI_CLK/ESPI_CLK  
GPIO071/LAD1/ESPI_IO1  
GPIO071/ESPI_IO1  
N2  
N3  
N4  
N5  
VTR3  
VTR3  
VTR3  
PIO  
PCI  
LAD1  
GPIO072/LAD2/ESPI_IO2  
GPIO072/ESPI_IO2  
PIO  
PCI  
LAD2  
GPIO063/SER_IRQ/ESPI_ALERT#  
GPIO063/ESPI_ALERT#  
SER_IRQ  
PIO  
PCI  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
GPIO224/GPTP-IN4/SHD_IO1  
GPIO227/SHD_IO2  
N6  
N7  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO016/GPTP-IN7/SHD_IO3/ICT3  
GPIO056/PWM3/SHD_CLK  
GPIO131/I2C10_SCL/TOUT0  
GPIO001/PWM4  
N8  
N9  
N10  
N11  
N12  
N13  
GPIO152/GPTP-OUT3/KSO16  
GPIO002/PWM5  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 37  
MEC170x  
2.5.11  
MEC1703 169 WFBGA-TN  
Power  
Rail  
Pad  
Type  
Signal  
GPIO234/VCI_IN4#  
XTAL1  
A1  
A2  
VBAT  
VBAT  
VBAT  
VBAT  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VBAT  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VBAT  
VBAT  
VBAT  
VBAT  
VBAT  
VTR1  
PIO  
I_AN  
PIO  
I_AN  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
O2ma  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
O2ma  
PIO  
PIO  
X
X
X
X
X
X
GPIO174/BGPO5  
XTAL2  
A3  
A4  
GPIO142/I2C05_SCL/SPI1_MOSI/UART0_DSR#/TRACEDAT1  
GPIO006/I2C01_SCL/GPTP-OUT7  
GPIO141/I2C05_SDA/SPI1_CLK/UART0_DCD#/TRACEDAT0  
GPIO165/32KHZ_IN/CTOUT0/TRACECLK  
GPIO242  
A5  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
A6  
A7  
A8  
A9  
GPIO245  
A10  
A11  
A12  
A13  
B1  
GPIO155/I2C02_SCL/PS2_DAT1B  
GPIO154/I2C02_SDA/PS2_CLK1B  
GPIO007/I2C03_SDA/PS2_CLK0B  
GPIO051/FAN_TACH1/GTACH1  
GPIO166  
X
X
X
X
B2  
VCI_OUT  
B3  
GPIO005/I2C01_SDA/GPTP-OUT4  
GPIO144/I2C04_SCL/SPI1_CS#/UART0_RI#/TRACEDAT3  
GPIO004/I2C00_SCL/SPI0_MOSI  
GPIO143/I2C04_SDA/SPI1_MISO/UART0_DTR#/TRACEDAT2  
GPIO147/I2C08_SDA/JTAG_CLK  
GPIO254  
B4  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
B5  
B6  
B7  
B8  
B9  
GPIO244  
B10  
B11  
B12  
B13  
C1  
C2  
C3  
C4  
C5  
C6  
C7  
C8  
GPIO010/I2C03_SCL/PS2_DAT0B  
GPIO157/LED1  
X
X
GPIO127/A20M/UART0_CTS#  
GPIO041  
GPIO226/LED3  
X
GPIO173/BGPO4  
GPIO162/VCI_IN1#  
GPIO102/BGPO2  
BGPO0  
GPIO163/VCI_IN0#  
GPIO145/I2C09_SDA/JTAG_TDI  
DS00002206H-page 38  
2016-2020 Microchip Technology Inc.  
MEC170x  
Power  
Rail  
Pad  
Type  
Signal  
GPIO243  
C9  
C10  
C11  
C12  
C13  
D1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
PIO  
PIO  
PIO  
PIO  
PIO  
PWR  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PWR  
PIO  
PIO  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO246  
GPIO133/PWM9  
X
GPIO125/GPTP-OUT5/PVT_CLK/KSO12  
GPIO126/PVT_IO3/KSO13  
VTR_PLL  
GPIO057/VCC_PWRGD  
GPIO221/GPTP-IN3/32KHZ_OUT  
GPIO000/VCI_IN3#  
D2  
VTR1  
VTR1  
VBAT  
VBAT  
VBAT  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
D3  
D4  
GPIO161/VCI_IN2#  
D5  
GPIO172/BGPO3  
D6  
GPIO003/I2C00_SDA/SPI0_CS#  
GPIO146/I2C09_SCL/JTAG_TDO  
GPIO241  
D7  
D8  
D9  
GPIO153/LED2  
D10  
D11  
D12  
D13  
E1  
X
X
GPIO156/LED0  
GPIO122/BCM0_DAT/PVT_IO1/KSO09  
GPIO047/BCM1_CLK/KSO03  
VFLT_PLL  
GPIO024/GPTP-IN2  
GPIO062/(RESETO#)  
GPIO033/RC_ID0  
E2  
VTR1  
VTR1  
X
X
X
X
X
E3  
GPIO033  
E4  
VTR1  
PIO  
I_AN  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PWR  
PIO  
PIO  
In  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
RC_ID0  
GPIO023/GPTP-IN1  
GPIO101/BGPO1  
E5  
E6  
VTR1  
VBAT  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
X
X
X
X
X
X
X
X
X
GPIO150/I2C08_SCL/JTAG_TMS  
GPIO045/KSO01  
E7  
E8  
GPIO225/UART0_RTS#  
GPIO175/KSO17  
E9  
E10  
E11  
E12  
E13  
F1  
GPIO124/GPTP-OUT6/PVT_CS#/KSO11  
GPIO104/UART0_TX  
GPIO134/PWM10/UART1_RTS#  
VR_CAP  
GPIO022/GPTP-IN0  
GPIO106/PWROK  
F2  
VTR1  
VTR1  
VTR1  
X
X
X
X
X
X
X
X
X
F3  
RESETI#  
F4  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 39  
MEC170x  
Power  
Rail  
Pad  
Type  
Signal  
GPIO060/KBRST/48MHZ_OUT  
F5  
F6  
VTR1  
PIO  
PWR  
PWR  
PWR  
PIO  
X
X
X
VSS_ANALOG  
VBAT  
F7  
VTR1  
F8  
GPIO123/BCM0_CLK/PVT_IO2/KSO10  
GPIO121/PVT_IO0/KSO08  
GPIO046/BCM1_DAT/KSO02  
JTAG_RST#  
F9  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
F10  
F11  
F12  
F13  
G1  
PIO  
PIO  
In  
GPIO105/UART0_RX  
VREF_ADC  
PIO  
PWR  
GPIO201/ADC01  
GPIO201  
G2  
G3  
VTR1  
PIO  
X
X
X
X
ADC01  
I_AN  
GPIO200/ADC00  
GPIO200  
VTR1  
VTR1  
PIO  
I_AN  
PIO  
X
X
X
X
X
X
ADC00  
GPIO050/FAN_TACH0/GTACH0  
VTR_REG  
G4  
G5  
X
X
PWR  
PWR  
PWR  
PWR  
PIO  
VSS3  
G6  
VSS2  
G7  
VTR_ANALOG  
G8  
GPIO171/TFDATA/UART1_RX/(JTAG_STRAP)  
GPIO240  
G9  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
G10  
G11  
G12  
G13  
PIO  
GPIO170/TFCLK/UART1_TX  
GPIO035/PWM8/CTOUT1  
GPIO135/UART1_CTS#  
GPIO212/ADC10  
GPIO212  
PIO  
PIO  
X
PIO  
H1  
H2  
H3  
VTR1  
VTR1  
VTR1  
PIO  
X
X
X
X
ADC10  
I_AN  
GPIO211/ADC09  
GPIO211  
PIO  
X
X
X
X
ADC09  
I_AN  
GPIO210/ADC08  
GPIO210  
PIO  
X
X
X
X
ADC08  
I_AN  
DS00002206H-page 40  
2016-2020 Microchip Technology Inc.  
MEC170x  
Power  
Rail  
Pad  
Type  
Signal  
GPIO202/ADC02  
GPIO202  
ADC02  
H4  
H5  
VTR1  
VTR1  
PIO  
X
X
X
X
I_AN  
GPIO213/ADC11  
GPIO213  
ADC11  
PIO  
X
X
X
X
I_AN  
PWR  
PWR  
PWR  
VSS_ADC  
VTR3  
H6  
H7  
H8  
VSS1  
GPIO042/PECI_DAT/SB-TSI_DAT  
GPIO042  
H9  
H10  
H11  
H12  
H13  
J1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
PIO  
X
X
X
X
PECI_DAT/SB-TSI_DAT  
GPIO043/SB-TSI_CLK  
GPIO043  
PECI  
PIO  
X
X
X
X
SB-TSI_CLK  
PECI  
GPIO044/VREF_VTT  
GPIO044  
PIO  
X
X
X
X
VREF_VTT  
I_AN  
GPIO034/RC_ID1/SPI0_CLK  
GPIO034/SPI0_CLK  
RC_ID1  
PIO  
X
X
X
X
I_AN  
GPIO036/RC_ID2/SPI0_MISO  
GPIO036/SPI0_MISO  
RC_ID2  
PIO  
X
X
X
X
I_AN  
GPIO203/ADC03  
GPIO203  
PIO  
X
X
X
X
ADC03  
I_AN  
GPIO204/ADC04  
GPIO204  
J2  
PIO  
X
X
X
X
ADC04  
I_AN  
GPIO214/ADC12  
GPIO214  
J3  
PIO  
X
X
X
X
ADC12  
I_AN  
GPIO205/ADC05  
GPIO205  
J4  
PIO  
X
X
X
X
ADC05  
I_AN  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 41  
MEC170x  
Power  
Rail  
Pad  
Type  
Signal  
GPIO215/ADC13  
GPIO215  
ADC13  
J5  
J6  
VTR1  
PIO  
X
X
X
X
I_AN  
GPIO063/SER_IRQ/ESPI_ALERT#  
GPIO063/ESPI_ALERT#  
SER_IRQ  
VTR3  
VTR2  
PIO  
PCI  
PIO  
PWR  
PIO  
PIO  
PIO  
PIO  
PIO  
GPIO056/PWM3/SHD_CLK  
VTR2  
J7  
J8  
X
X
X
GPIO030/TIN3/KSI5  
GPIO107/nSMI/KSO04  
GPIO110/PS2_CLK2  
GPIO112/PS2_CLK1A/KSO05  
GPIO114/PS2_CLK0A/nEC_SCI  
GPIO207/ADC07  
GPIO207  
J9  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
J10  
J11  
J12  
J13  
K1  
K2  
K3  
K4  
VTR1  
VTR1  
VTR1  
VTR1  
PIO  
X
X
X
X
ADC07  
I_AN  
GPIO206/ADC06  
GPIO206  
PIO  
X
X
X
X
ADC06  
I_AN  
GPIO216/ADC14  
GPIO216  
PIO  
X
X
X
X
ADC14  
I_AN  
GPIO217/ADC15  
GPIO217  
PIO  
I_AN  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
ADC15  
GPIO065/PCI_CLK/ESPI_CLK  
GPIO011/nSMI  
K5  
K6  
VTR3  
VTR3  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR3  
VTR3  
VTR3  
X
X
X
X
X
X
X
X
X
X
X
X
GPIO223/SHD_IO0  
GPIO233  
K7  
K8  
GPIO151/ICT4/KSO15  
GPIO054/PWM1/GPWM1  
GPIO120/KSO07  
GPIO111/PS2_DAT2  
GPIO113/PS2_DAT1A/KSO06  
GPIO067/CLKRUN#  
GPIO064/LRESET#  
GPIO061/LPCPD#/ESPI_RESET#  
K9  
K10  
K11  
K12  
K13  
L1  
X
L2  
L3  
DS00002206H-page 42  
2016-2020 Microchip Technology Inc.  
MEC170x  
Power  
Rail  
Pad  
Type  
Signal  
GPIO066/LFRAME#/ESPI_CS#  
GPIO070/LAD0/ESPI_IO0  
GPIO070/ESPI_IO0  
LAD0  
L4  
L5  
VTR3  
VTR3  
PIO  
X
X
X
PIO  
PCI  
GPIO222/SER_IRQ  
GPIO222  
L6  
VTR2  
PIO  
PCI  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
SER_IRQ  
GPIO055/PWM2/SHD_CS#/(RSMRST#)  
GPIO002/PWM5  
L7  
L8  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO015/PWM7  
L9  
GPIO032/GPTP-OUT0/KSI7  
GPIO025/TIN0/nEM_INT/UART_CLK  
GPIO053/PWM0/GPWM0  
GPIO027/TIN2/KSI4  
L10  
L11  
L12  
L13  
X
GPIO071/LAD1/ESPI_IO1  
GPIO071/ESPI_IO1  
M1  
M2  
VTR3  
VTR3  
PIO  
PCI  
LAD1  
GPIO073/LAD3/ESPI_IO3  
GPIO073/ESPI_IO3  
PIO  
PCI  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
LAD3  
GPIO224/GPTP-IN4/SHD_IO1  
GPIO227/SHD_IO2  
M3  
M4  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO016/GPTP-IN7/SHD_IO3/ICT3  
GPIO020/KSI1  
M5  
M6  
GPIO231  
M7  
GPIO021/LPCPD#/KSI2  
GPIO001/PWM4  
M8  
M9  
GPIO152/GPTP-OUT3/KSO16  
GPIO031/GPTP-OUT1/KSI6  
GPIO026/TIN1/KSI3  
M10  
M11  
M12  
M13  
GPIO140/I2C06_SCL/ICT5  
GPIO072/LAD2/ESPI_IO2  
GPIO072/ESPI_IO2  
N1  
VTR3  
PIO  
PCI  
PIO  
PIO  
PIO  
LAD2  
GPIO100/nEC_SCI  
N2  
N3  
N4  
VTR3  
VTR2  
VTR2  
X
X
X
X
X
X
X
X
X
GPIO012/I2C07_SDA/TOUT3  
GPIO013/I2C07_SCL/TOUT2  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 43  
MEC170x  
Power  
Rail  
Pad  
Type  
Signal  
GPIO130/I2C10_SDA/TOUT1  
GPIO052/FAN_TACH2/LRESET#  
N5  
N6  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO131/I2C10_SCL/TOUT0  
GPIO230  
N7  
N8  
GPIO014/PWM6/GPTP-IN6  
GPIO017/GPTP-IN5/KSI0  
GPIO040/GPTP-OUT2/KSO00  
GPIO132/I2C06_SDA/KSO14  
GPIO115/PS2_DAT0A  
N9  
N10  
N11  
N12  
N13  
2.5.12  
MEC1703 169 WFBGA-XY  
Power  
Rail  
Pad  
Type  
Signal  
XTAL2  
A2  
A3  
VBAT  
I_AN  
PWR  
I_AN  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
VSS_ANALOG  
XTAL1  
A4  
VBAT  
VBAT  
VBAT  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
GPIO102/BGPO2  
A5  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO162/VCI_IN1#  
A6  
GPIO006/I2C01_SCL/GPTP-OUT7  
GPIO143/I2C04_SDA/SPI1_MISO/UART0_DTR#/TRACEDAT2  
GPIO150/I2C08_SCL/JTAG_TMS  
GPIO165/32KHZ_IN/CTOUT0/TRACECLK  
GPIO045/KSO01  
A7  
A8  
A9  
A10  
A11  
A12  
A13  
A14  
GPIO242  
GPIO244  
GPIO007/I2C03_SDA/PS2_CLK0B  
GPIO033/RC_ID0  
X
GPIO033  
B1  
VTR1  
PIO  
X
X
X
X
RC_ID0  
I_AN  
DS00002206H-page 44  
2016-2020 Microchip Technology Inc.  
MEC170x  
Power  
Rail  
Pad  
Type  
Signal  
VSS1  
B2  
B3  
PWR  
PIO  
O2ma  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PWR  
PIO  
PIO  
PIO  
PIO  
PIO  
PWR  
PIO  
PWR  
O2ma  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
GPIO174/BGPO5  
VCI_OUT  
VBAT  
VBAT  
VBAT  
VBAT  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
B4  
GPIO173/BGPO4  
GPIO163/VCI_IN0#  
B5  
X
X
X
X
X
X
X
X
X
X
X
B6  
GPIO003/I2C00_SDA/SPI0_CS#  
GPIO141/I2C05_SDA/SPI1_CLK/UART0_DCD#/TRACEDAT0  
GPIO146/I2C09_SCL/JTAG_TDO  
GPIO241  
B7  
B8  
B9  
B10  
B11  
B12  
B13  
B14  
B15  
C1  
GPIO254  
GPIO245  
GPIO154/I2C02_SDA/PS2_CLK1B  
GPIO153/LED2  
X
X
X
GPIO156/LED0  
VTR_PLL  
GPIO062/(RESETO#)  
GPIO000/VCI_IN3#  
C2  
VTR1  
VBAT  
VTR1  
VTR1  
VTR1  
X
X
X
X
X
X
X
X
X
X
C3  
X
X
X
X
GPIO225/UART0_RTS#  
GPIO133/PWM9  
C13  
C14  
C15  
D1  
X
X
GPIO157/LED1  
VFLT_PLL  
GPIO022/GPTP-IN0  
D2  
VTR1  
X
X
X
VBAT  
D5  
BGPO0  
D6  
VBAT  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VBAT  
VBAT  
VBAT  
VTR1  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO004/I2C00_SCL/SPI0_MOSI  
GPIO142/I2C05_SCL/SPI1_MOSI/UART0_DSR#/TRACEDAT1  
GPIO147/I2C08_SDA/JTAG_CLK  
GPIO246  
D7  
D8  
D9  
D10  
D11  
D14  
D15  
E1  
GPIO010/I2C03_SCL/PS2_DAT0B  
GPIO125/GPTP-OUT5/PVT_CLK/KSO12  
GPIO127/A20M/UART0_CTS#  
GPIO221/GPTP-IN3/32KHZ_OUT  
GPIO166  
X
E2  
GPIO234/VCI_IN4#  
E4  
GPIO161/VCI_IN2#  
E5  
GPIO172/BGPO3  
E6  
GPIO005/I2C01_SDA/GPTP-OUT4  
E7  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 45  
MEC170x  
Power  
Rail  
Pad  
Type  
Signal  
GPIO144/I2C04_SCL/SPI1_CS#/UART0_RI#/TRACEDAT3  
GPIO243  
E8  
E9  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PWR  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PWR  
PIO  
PIO  
In  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO155/I2C02_SCL/PS2_DAT1B  
GPIO175/KSO17  
E10  
E11  
E12  
E14  
E15  
F1  
X
GPIO124/GPTP-OUT6/PVT_CS#/KSO11  
GPIO126/PVT_IO3/KSO13  
GPIO047/BCM1_CLK/KSO03  
GPIO226/LED3  
X
X
GPIO051/FAN_TACH1/GTACH1  
VTR1  
F2  
F4  
GPIO023/GPTP-IN1  
F5  
VTR1  
VBAT  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO101/BGPO1  
F6  
GPIO046/BCM1_DAT/KSO02  
GPIO105/UART0_RX  
GPIO121/PVT_IO0/KSO08  
GPIO122/BCM0_DAT/PVT_IO1/KSO09  
GPIO104/UART0_TX  
VR_CAP  
F10  
F11  
F12  
F14  
F15  
G1  
GPIO057/VCC_PWRGD  
GPIO024/GPTP-IN2  
G2  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
G4  
RESETI#  
G5  
GPIO106/PWROK  
G7  
PIO  
PIO  
PIO  
In  
GPIO145/I2C09_SDA/JTAG_TDI  
GPIO135/UART1_CTS#  
JTAG_RST#  
G8  
G9  
G11  
G12  
G14  
G15  
GPIO123/BCM0_CLK/PVT_IO2/KSO10  
GPIO134/PWM10/UART1_RTS#  
GPIO035/PWM8/CTOUT1  
GPIO211/ADC09  
PIO  
PIO  
PIO  
X
X
GPIO211  
H1  
VTR1  
PIO  
I_AN  
PWR  
PIO  
X
X
X
X
ADC09  
VTR_REG  
H2  
H4  
H5  
H7  
H8  
H9  
GPIO041  
VTR1  
VTR1  
VTR1  
X
X
X
X
X
X
X
X
X
GPIO050/FAN_TACH0/GTACH0  
GPIO060/KBRST/48MHZ_OUT  
VSS2  
PIO  
PIO  
PWR  
PIO  
GPIO171/TFDATA/UART1_RX/(JTAG_STRAP)  
VTR1  
X
X
X
DS00002206H-page 46  
2016-2020 Microchip Technology Inc.  
MEC170x  
Power  
Rail  
Pad  
Type  
Signal  
GPIO025/TIN0/nEM_INT/UART_CLK  
GPIO170/TFCLK/UART1_TX  
GPIO240  
H11  
H12  
H14  
VTR2  
VTR1  
VTR1  
PIO  
PIO  
PIO  
X
X
X
X
X
X
X
X
X
GPIO034/RC_ID1/SPI0_CLK  
GPIO034/SPI0_CLK  
RC_ID1  
H15  
J1  
VTR1  
VTR1  
VTR1  
VTR1  
PIO  
X
X
X
X
I_AN  
GPIO212/ADC10  
GPIO212  
PIO  
X
X
X
X
ADC10  
I_AN  
GPIO200/ADC00  
GPIO200  
J2  
PIO  
X
X
X
X
ADC00  
I_AN  
GPIO210/ADC08  
GPIO210  
J4  
PIO  
I_AN  
PWR  
PWR  
PIO  
X
X
X
X
X
ADC08  
VREF_ADC  
J5  
J7  
VSS3  
GPIO231  
J8  
VTR2  
VTR2  
VTR2  
X
X
X
X
X
X
X
X
X
GPIO015/PWM7  
GPIO140/I2C06_SCL/ICT5  
GPIO036/RC_ID2/SPI0_MISO  
GPIO036/SPI0_MISO  
RC_ID2  
J9  
PIO  
J11  
PIO  
J12  
J14  
J15  
K1  
VTR1  
VTR1  
VTR1  
VTR1  
VTR1  
PIO  
X
X
X
X
I_AN  
GPIO043/SB-TSI_CLK  
GPIO043  
PIO  
X
X
X
X
SB-TSI_CLK  
PECI  
GPIO042/PECI_DAT/SB-TSI_DAT  
GPIO042  
PIO  
X
X
X
X
PECI_DAT/SB-TSI_DAT  
GPIO213/ADC11  
GPIO213  
PECI  
PIO  
X
X
X
X
ADC11  
I_AN  
GPIO203/ADC03  
GPIO203  
K2  
PIO  
X
X
X
X
ADC03  
I_AN  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 47  
MEC170x  
Power  
Rail  
Pad  
Type  
Signal  
GPIO201/ADC01  
GPIO201  
K4  
VTR1  
PIO  
I_AN  
PIO  
PIO  
PIO  
PIO  
X
X
X
X
X
X
X
X
X
X
X
X
ADC01  
GPIO067/CLKRUN#  
GPIO011/nSMI  
GPIO151/ICT4/KSO15  
GPIO017/GPTP-IN5/KSI0  
GPIO044/VREF_VTT  
GPIO044  
K5  
K6  
VTR3  
VTR3  
VTR2  
VTR2  
X
X
X
X
K10  
K11  
K12  
VTR1  
PIO  
I_AN  
PIO  
X
X
X
X
X
X
X
X
VREF_VTT  
GPIO114/PS2_CLK0A/nEC_SCI  
GPIO112/PS2_CLK1A/KSO05  
GPIO204/ADC04  
GPIO204  
K14  
K15  
VTR2  
VTR2  
X
X
PIO  
L1  
L2  
L4  
VTR1  
VTR1  
VTR1  
PIO  
X
X
X
X
ADC04  
I_AN  
GPIO214/ADC12  
GPIO214  
PIO  
X
X
X
X
ADC12  
I_AN  
GPIO202/ADC02  
GPIO202  
PIO  
I_AN  
PWR  
PIO  
X
X
X
X
ADC02  
VTR_ANALOG  
GPIO100/nEC_SCI  
GPIO222/SER_IRQ  
GPIO222  
L5  
L6  
VTR3  
VTR2  
X
X
X
L7  
PIO  
PCI  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PWR  
SER_IRQ  
GPIO052/FAN_TACH2/LRESET#  
GPIO002/PWM5  
GPIO233  
L8  
L9  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
L10  
L11  
L12  
L14  
L15  
M1  
GPIO040/GPTP-OUT2/KSO00  
GPIO111/PS2_DAT2  
GPIO113/PS2_DAT1A/KSO06  
GPIO110/PS2_CLK2  
VSS_ADC  
GPIO205/ADC05  
GPIO205  
M2  
VTR1  
PIO  
X
X
X
X
ADC05  
I_AN  
DS00002206H-page 48  
2016-2020 Microchip Technology Inc.  
MEC170x  
Power  
Rail  
Pad  
Type  
Signal  
GPIO064/LRESET#  
M5  
M6  
VTR3  
VTR3  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO061/LPCPD#/ESPI_RESET#  
GPIO016/GPTP-IN7/SHD_IO3/ICT3  
GPIO055/PWM2/SHD_CS#/(RSMRST#)  
GPIO056/PWM3/SHD_CLK  
GPIO032/GPTP-OUT0/KSI7  
GPIO031/GPTP-OUT1/KSI6  
GPIO107/nSMI/KSO04  
GPIO120/KSO07  
GPIO215/ADC13  
GPIO215  
M7  
M8  
M9  
M10  
M11  
M14  
M15  
N1  
N2  
N3  
VTR1  
VTR1  
VTR1  
PIO  
X
X
X
X
ADC13  
I_AN  
GPIO216/ADC14  
GPIO216  
PIO  
X
X
X
X
ADC14  
I_AN  
GPIO207/ADC07  
GPIO207  
PIO  
I_AN  
PWR  
PIO  
X
X
X
X
ADC07  
VTR2  
N13  
N14  
N15  
GPIO030/TIN3/KSI5  
GPIO054/PWM1/GPWM1  
GPIO206/ADC06  
GPIO206  
VTR2  
VTR2  
X
X
X
X
X
X
PIO  
X
P1  
P2  
VTR1  
PIO  
X
X
X
X
ADC06  
I_AN  
GPIO217/ADC15  
GPIO217  
VTR1  
VTR3  
PIO  
I_AN  
PIO  
X
X
X
X
X
X
ADC15  
GPIO066/LFRAME#/ESPI_CS#  
VTR3  
P3  
P4  
X
PWR  
GPIO072/LAD2/ESPI_IO2  
GPIO072/ESPI_IO2  
LAD2  
P5  
P6  
VTR3  
VTR3  
PIO  
PCI  
GPIO063/SER_IRQ/ESPI_ALERT#  
GPIO063/ESPI_ALERT#  
SER_IRQ  
PIO  
PCI  
PIO  
PIO  
GPIO227/SHD_IO2  
GPIO012/I2C07_SDA/TOUT3  
P7  
P8  
VTR2  
VTR2  
X
X
X
X
X
X
2016-2020 Microchip Technology Inc.  
DS00002206H-page 49  
MEC170x  
Power  
Rail  
Pad  
Type  
Signal  
GPIO130/I2C10_SDA/TOUT1  
P9  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR3  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
GPIO021/LPCPD#/KSI2  
GPIO014/PWM6/GPTP-IN6  
GPIO026/TIN1/KSI3  
GPIO115/PS2_DAT0A  
GPIO053/PWM0/GPWM0  
GPIO027/TIN2/KSI4  
GPIO065/PCI_CLK/ESPI_CLK  
GPIO070/LAD0/ESPI_IO0  
GPIO070/ESPI_IO0  
LAD0  
P10  
P11  
P12  
P13  
P14  
P15  
R2  
X
R3  
R4  
R5  
VTR3  
VTR3  
VTR3  
PIO  
PCI  
GPIO071/LAD1/ESPI_IO1  
GPIO071/ESPI_IO1  
LAD1  
PIO  
PCI  
GPIO073/LAD3/ESPI_IO3  
GPIO073/ESPI_IO3  
LAD3  
PIO  
PCI  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
PIO  
GPIO224/GPTP-IN4/SHD_IO1  
GPIO223/SHD_IO0  
GPIO013/I2C07_SCL/TOUT2  
GPIO020/KSI1  
R6  
R7  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
VTR2  
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
R8  
R9  
GPIO131/I2C10_SCL/TOUT0  
GPIO230  
R10  
R11  
R12  
R13  
R14  
GPIO001/PWM4  
GPIO152/GPTP-OUT3/KSO16  
GPIO132/I2C06_SDA/KSO14  
2.6  
Signal Description by Signal  
EMULATED POWER WELL  
Power well emulation for GPIOs and for signals that are multiplexed with GPIO signals is controlled by the POWER_-  
GATING field in the GPIO Pin Control Register. Power well emulation for signals that are not multiplexed with GPIO  
signals is defined by the entries in this column.  
GATED 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.  
DS00002206H-page 50  
2016-2020 Microchip Technology Inc.  
MEC170x  
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.  
Emulated  
Power Rail  
Gated  
State  
Signal  
Notes  
32KHZ_IN  
32KHZ_OUT  
48MHZ_OUT  
A20M  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
High  
Low  
Low  
High  
Low  
High  
Low  
Low  
Low  
ADC00  
ADC01  
ADC02  
ADC03  
ADC04  
ADC05  
ADC06  
ADC07  
ADC08  
ADC09  
ADC10  
ADC11  
ADC12  
ADC13  
ADC14  
ADC15  
BCM0_CLK  
BCM0_DAT  
BCM1_CLK  
BCM1_DAT  
BGPO0  
Note 3  
Note 3  
BGPO1  
Note 8  
Note 8  
Note 8  
Note 8  
Note 8  
BGPO2  
BGPO3  
BGPO4  
BGPO5  
CLKRUN#  
CTOUT0  
CTOUT1  
ESPI_ALERT#  
ESPI_CLK  
ESPI_CS#  
ESPI_IO0  
ESPI_IO1  
ESPI_IO2  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 51  
MEC170x  
Emulated  
Power Rail  
Gated  
State  
Signal  
Notes  
ESPI_IO3  
ESPI_RESET#  
FAN_TACH0  
FAN_TACH1  
FAN_TACH2  
GPIO000  
GPIO001  
GPIO002  
GPIO003  
GPIO004  
GPIO005  
GPIO006  
GPIO007  
GPIO010  
GPIO011  
GPIO012  
GPIO013  
GPIO014  
GPIO015  
GPIO016  
GPIO017  
GPIO020  
GPIO021  
GPIO022  
GPIO023  
GPIO024  
GPIO025  
GPIO026  
GPIO027  
GPIO030  
GPIO031  
GPIO032  
GPIO033  
GPIO034  
GPIO035  
GPIO036  
GPIO040  
GPIO041  
GPIO042  
GPIO043  
GPIO044  
GPIO045  
GPIO046  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
Low  
High  
Low  
Low  
Low  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
DS00002206H-page 52  
2016-2020 Microchip Technology Inc.  
MEC170x  
Emulated  
Power Rail  
Gated  
State  
Signal  
Notes  
GPIO047  
GPIO050  
GPIO051  
GPIO052  
GPIO053  
GPIO054  
GPIO055  
GPIO056  
GPIO057  
GPIO060  
GPIO061  
GPIO062  
GPIO063  
GPIO064  
GPIO065  
GPIO066  
GPIO067  
GPIO070  
GPIO071  
GPIO072  
GPIO073  
GPIO100  
GPIO101  
GPIO102  
GPIO104  
GPIO105  
GPIO106  
GPIO107  
GPIO110  
GPIO111  
GPIO112  
GPIO113  
GPIO114  
GPIO115  
GPIO120  
GPIO121  
GPIO122  
GPIO123  
GPIO124  
GPIO125  
GPIO126  
GPIO127  
GPIO130  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
Note 7  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 53  
MEC170x  
Emulated  
Power Rail  
Gated  
State  
Signal  
Notes  
GPIO131  
GPIO132  
GPIO133  
GPIO134  
GPIO135  
GPIO140  
GPIO141  
GPIO142  
GPIO143  
GPIO144  
GPIO145  
GPIO146  
GPIO147  
GPIO150  
GPIO151  
GPIO152  
GPIO153  
GPIO154  
GPIO155  
GPIO156  
GPIO157  
GPIO160  
GPIO161  
GPIO162  
GPIO163  
GPIO165  
GPIO166  
GPIO170  
GPIO171  
GPIO172  
GPIO173  
GPIO174  
GPIO175  
GPIO200  
GPIO201  
GPIO202  
GPIO203  
GPIO204  
GPIO205  
GPIO206  
GPIO207  
GPIO210  
GPIO211  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
DS00002206H-page 54  
2016-2020 Microchip Technology Inc.  
MEC170x  
Emulated  
Power Rail  
Gated  
State  
Signal  
Notes  
GPIO212  
GPIO213  
GPIO214  
GPIO215  
GPIO216  
GPIO217  
GPIO221  
GPIO222  
GPIO223  
GPIO224  
GPIO225  
GPIO226  
GPIO227  
GPIO230  
GPIO231  
GPIO233  
GPIO234  
GPIO240  
GPIO241  
GPIO242  
GPIO243  
GPIO244  
GPIO245  
GPIO246  
GPIO254  
GPTP-IN0  
GPTP-IN1  
GPTP-IN2  
GPTP-IN3  
GPTP-IN4  
GPTP-IN5  
GPTP-IN6  
GPTP-IN7  
GPTP-OUT0  
GPTP-OUT1  
GPTP-OUT2  
GPTP-OUT3  
GPTP-OUT4  
GPTP-OUT5  
GPTP-OUT6  
GPTP-OUT7  
GPWM0  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
Low  
Note 16  
Note 16  
Note 16  
Note 16  
Note 16  
Note 16  
Note 16  
Note 16  
GPWM1  
Low  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 55  
MEC170x  
Emulated  
Power Rail  
Gated  
State  
Signal  
Notes  
GTACH0  
GTACH1  
I2C00_SCL  
I2C00_SDA  
I2C01_SCL  
I2C01_SDA  
I2C02_SCL  
I2C02_SDA  
I2C03_SCL  
I2C03_SDA  
I2C04_SCL  
I2C04_SDA  
I2C05_SCL  
I2C05_SDA  
I2C06_SCL  
I2C06_SDA  
I2C07_SCL  
I2C07_SDA  
I2C08_SCL  
I2C08_SDA  
I2C09_SCL  
I2C09_SDA  
I2C10_SCL  
I2C10_SDA  
ICT3  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
Low  
Low  
High  
High  
High  
High  
High  
High  
High  
High  
High  
High  
High  
High  
High  
High  
High  
High  
High  
High  
High  
High  
High  
High  
Low  
Low  
Low  
Low  
High  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
ICT4  
ICT5  
JTAG_CLK  
JTAG_RST#  
JTAG_TDI  
JTAG_TDO  
JTAG_TMS  
KBRST  
Note 5  
KSI0  
KSI1  
KSI2  
KSI3  
KSI4  
KSI5  
KSI6  
KSI7  
KSO00  
KSO01  
DS00002206H-page 56  
2016-2020 Microchip Technology Inc.  
MEC170x  
Emulated  
Power Rail  
Gated  
State  
Signal  
Notes  
KSO02  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VCC  
VCC  
VCC  
VCC  
VTR  
VTR  
VTR  
VTR  
VCC  
VCC  
VTR  
VTR  
VTR  
VTR  
VCC  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
Low  
Low  
KSO03  
KSO04  
Low  
KSO05  
Low  
KSO06  
Low  
KSO07  
Low  
KSO08  
Low  
KSO09  
Low  
KSO10  
Low  
KSO11  
Low  
KSO12  
Low  
KSO13  
Low  
KSO14  
Low  
KSO15  
Low  
KSO16  
Low  
KSO17  
Low  
LAD0  
No Gate  
No Gate  
No Gate  
No Gate  
Low  
Note 2  
Note 2  
Note 2  
Note 2  
LAD1  
LAD2  
LAD3  
LED0  
LED1  
Low  
LED2  
Low  
LED3  
Low  
LFRAME#  
LPCPD#  
LRESET#  
nEC_SCI  
nEM_INT  
nSMI  
High  
High  
High  
High  
High  
High  
Low  
Note 1  
PCI_CLK  
PECI_DAT  
PS2_CLK0A  
PS2_CLK0B  
PS2_CLK1A  
PS2_CLK1B  
PS2_CLK2  
PS2_DAT0A  
PS2_DAT0B  
PS2_DAT1A  
PS2_DAT1B  
PS2_DAT2  
PVT_CLK  
Low  
High  
High  
High  
High  
High  
High  
High  
High  
High  
High  
Low  
Note 6  
Note 6  
Note 6  
Note 6  
Note 6  
Note 6  
Note 6  
Note 6  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 57  
MEC170x  
Emulated  
Power Rail  
Gated  
State  
Signal  
Notes  
PVT_CS#  
PVT_IO0  
PVT_IO1  
PVT_IO2  
PVT_IO3  
PWM0  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
High  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
High  
Low  
Low  
Low  
High  
High  
High  
High  
Low  
Low  
High  
Low  
Low  
Low  
Low  
Low  
High  
Low  
Low  
Low  
High  
Low  
Low  
Low  
Low  
Low  
Low  
PWM1  
PWM2  
PWM3  
PWM4  
PWM5  
PWM6  
PWM7  
PWM8  
PWM9  
PWM10  
PWROK  
RC_ID0  
RC_ID1  
RC_ID2  
RESETI#  
RESETO#  
SB-TSI_CLK  
SB-TSI_DAT  
SER_IRQ  
SHD_CLK  
SHD_CS#  
SHD_IO0  
SHD_IO1  
SHD_IO2  
SHD_IO3  
SPI0_CLK  
SPI0_CS#  
SPI0_MISO  
SPI0_MOSI  
SPI1_CLK  
SPI1_CS#  
SPI1_MOSI  
SPI1_MSIO  
TFCLK  
Note 2  
TFDATA  
TIN0  
TIN1  
DS00002206H-page 58  
2016-2020 Microchip Technology Inc.  
MEC170x  
Emulated  
Power Rail  
Gated  
State  
Signal  
Notes  
TIN2  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
High  
High  
High  
High  
Low  
Low  
Low  
Low  
Low  
Low  
Low  
TIN3  
TOUT0  
TOUT1  
TOUT2  
TOUT3  
TRACECLK  
TRACEDAT0  
TRACEDAT1  
TRACEDAT2  
TRACEDAT3  
UART_CLK  
UART0_CTS#  
UART0_DCD#  
UART0_DSR#  
UART0_DTR#  
UART0_RI#  
UART0_RTS#  
UART0_RX  
UART0_TX  
UART1_CTS#  
UART1_RTS#  
UART1_RX  
UART1_TX  
VBAT  
Note 4  
Note 4  
Note 4  
Note 4  
Note 4  
Note 4  
Note 4  
Note 4  
Note 4  
Note 4  
Note 4  
Note 4  
VCC_PWRGD  
VCI_IN0#  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
VTR  
High  
No Gate  
No Gate  
No Gate  
No Gate  
No Gate  
Low  
Note 13  
Note 13  
Note 13  
Note 13  
Note 13  
VCI_IN1#  
VCI_IN2#  
VCI_IN3#  
VCI_IN4#  
VCI_OUT  
VFLT_PLL  
VR_CAP  
Note 15  
VREF_ADC  
VREF_VTT  
VSS_ADC  
VSS_ANALOG  
VSS_REG  
VSS1  
VSS2  
VSS3  
VTR_ANALOG  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 59  
MEC170x  
Emulated  
Power Rail  
Gated  
State  
Signal  
Notes  
VTR_PLL  
VTR_REG  
VTR1  
VTR2  
VTR3  
XTAL1  
XTAL2  
2.7  
Signal Description by Interface  
Interface  
Notes  
16-Bit Counter/Timer Interface  
L13 M12 M12 M12 K12 L11 H11 TIN0  
N13 N13 N13 N13 L11 M12 P12 TIN1  
K13 K11 K11 K11 F13 M13 P15 TIN2  
16-Bit Counter/Timer Input 1  
16-Bit Counter/Timer Input 2  
16-Bit Counter/Timer Input 3  
16-Bit Counter/Timer Input 4  
16-Bit Counter/Timer Output 1  
16-Bit Counter/Timer Output 2  
16-Bit Counter/Timer Output 3  
16-Bit Counter/Timer Output 4  
K12 J9  
J9  
J9  
J13 J9  
N14 TIN3  
M9 N7 N7 N7 N10 N7  
R10 TOUT0  
J6  
N8 N8 N8 J8  
M7 M7 M7 H7  
N5  
N4  
N3  
P9  
R8  
P8  
TOUT1  
TOUT2  
TOUT3  
K5  
M8 N6 N6 N6 L7  
Analog Data Acquisition Interface  
H2 H3 H3 H3 G3  
G3  
G2  
H4  
J1  
J2  
K4  
L4  
K2  
L1  
ADC00  
ADC01  
ADC02  
ADC03  
ADC04  
ADC Channel 0  
ADC Channel 1  
ADC Channel 2  
ADC Channel 3  
ADC Channel 4  
ADC Channel 5  
ADC Channel 6  
ADC Channel 7  
ADC Channel 8  
ADC Channel 9  
ADC Channel 10  
H1 J3  
J3  
J2  
J1  
J3  
J2  
J1  
H4  
H3  
K2  
J2  
J1  
K1  
K2  
L2  
L1  
J2  
J1  
H2 H2 H2 J3  
J2  
K3  
L1  
K2  
K3  
L1  
K2  
K3  
L1  
K2  
L2  
J4  
M2 ADC05  
M2 K2  
P1  
N3  
J4  
ADC06  
ADC07  
ADC08  
ADC09  
ADC10  
L3  
H2  
J2  
K1  
H3  
H2  
H1  
H1  
J1  
K1  
DS00002206H-page 60  
2016-2020 Microchip Technology Inc.  
MEC170x  
Interface  
Notes  
J4  
H5  
J3  
K1  
L2  
N1  
N2  
P2  
J5  
ADC11  
ADC Channel 11  
J5  
ADC12  
ADC Channel 12  
ADC Channel 13  
ADC Channel 14  
ADC Channel 15  
ADC Voltage Reference  
K3  
J5  
ADC13  
K4  
K5  
K3  
K4  
G1  
ADC14  
ADC15  
G2 G2 G2 G2 H5  
VREF_ADC  
BC-Link Interface  
D12 E12 E12 E12 C13 F9  
G12 BCM0_CLK  
BC-Link Master clock  
BC-Link Master data I/O  
BC-Link Master clock  
BC-Link Master data I/O  
E13 E11 E11 E11 D12 D12 F14 BCM0_DAT  
B13 F13 F13 F13 A12 D13 E15 BCM1_CLK  
E10 E9  
E9  
E9  
E10 F11 F10 BCM1_DAT  
Capture/Compare Timer Interface  
B8  
A9  
A9  
A9  
B7  
A8  
A10 CTOUT0  
Compare Timer 0 Toggle Output  
Compare Timer 1 Toggle Output  
Input Capture Timer Input 3  
Input Capture Timer Input 4  
Input Capture Timer Input 5  
G12  
E13 G11 G12 G15 CTOUT1  
M5 M7 ICT3  
K9 K10 ICT4  
M13 L11 L11 L11 K13 M13 J11 ICT5  
N6 N3 N3 N3 N8  
J7 L9 L9 L9 H9  
eSPI Host Interface  
ESPI_ALERT#  
M5 M4 M4 M4 N5  
M3 M2 M2 M2 N2  
M2 M1 M1 M1 N1  
J6  
K5  
L4  
P6  
R2  
P3  
R3  
ESPI_CLK  
ESPI_CS#  
ESPI_IO0  
ESPI_IO1  
ESPI_IO2  
ESPI_IO3  
M4 L3  
L3  
L3  
M4 L5  
N2 N2 N2 N2 N3  
M1 R4  
N1 P5  
M6 M2 R5  
N1 N1 N1 N1 M1 L3  
N3 M3 M3 M3 N4  
N4 L4  
L4  
L4  
M6 ESPI_RESET#  
Fan PWM and Tachometer Interface  
G4 F3  
F1 B1  
H4 L8  
F3  
B1  
L8  
F3  
B1  
L8  
G2  
F3  
K8  
G4  
B1  
N6  
H5  
F2  
L8  
FAN_TACH0  
FAN_TACH1  
FAN_TACH2  
Fan Tachometer Input 0/Input Capture Timer  
Input 0  
Fan Tachometer Input 1/Input Capture Timer  
Input 1  
Fan Tachometer Input 2/Input Capture Timer  
Input 2  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 61  
MEC170x  
Interface  
Notes  
L12 M13 M13 M13 K11 L12 P14 GPWM0  
PWM Output from RPM-based Fan Speed Con-  
trol Algorithm, PWM 0  
K9  
G4 F3  
F1 B1  
L12 L12 L12 K10 K10 N15 GPWM1  
PWM Output from RPM-based Fan Speed Con-  
trol Algorithm, PWM 1  
F3  
B1  
F3  
B1  
G2  
F3  
G4  
B1  
H5  
F2  
GTACH0  
GTACH1  
Tach Input to RPM-based Fan Speed Control  
Algorithm, Tach 0  
Tach Input to RPM-based Fan Speed Control  
Algorithm, Tach 1  
L12 M13 M13 M13 K11 L12 P14 PWM0  
K9 L12 L12 L12 K10 K10 N15 PWM1  
N8 N4 N4 N4 M8 L7  
N7 N5 N5 N5 N9 J7  
Pulse Width Modulator Output 0  
Pulse Width Modulator Output 1  
Pulse Width Modulator Output 2  
Pulse Width Modulator Output 3  
Pulse Width Modulator Output 4  
Pulse Width Modulator Output 5  
Pulse Width Modulator Output 6  
Pulse Width Modulator Output 7  
Pulse Width Modulator Output 8  
Pulse Width Modulator Output 9  
Pulse Width Modulator Output 10  
M8 PWM2  
M9 PWM3  
N11 M9 R12 PWM4  
M8 M8 M8 N13 L8 L9 PWM5  
M10 M9 M9 M9 M10 N9 P11 PWM6  
J9 PWM7  
K8  
K7  
J7  
J7  
J7  
M12 L9  
G12  
E13 G11 G12 G15 PWM8  
C11 C11 C14 PWM9  
D11 E13 G14 PWM10  
E13 E13  
General Purpose Input/Outputs  
GPIO000  
N11 M9 R12 GPIO001  
D2 B3  
B3  
B3  
C2  
D4  
C3  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
K8  
B5  
M8 M8 M8 N13 L8  
L9  
B7  
D7  
E7  
A7  
GPIO002  
GPIO003  
GPIO004  
GPIO005  
GPIO006  
F5  
F5  
F5  
C6  
G7  
B6  
B4  
A6  
D7 C6 C6 C6 B5  
A5  
B6  
B11 B12 B12 B12 B10 A13 A14 GPIO007  
B10 C10 C10 C10 C10 B11 D11 GPIO010  
J4  
M8 N6 N6 N6 L7  
K5 M7 M7 M7 H7  
J6  
J6  
J6  
L5  
K6  
N3  
N4  
K6  
P8  
R8  
GPIO011  
GPIO012  
GPIO013  
M10 M9 M9 M9 M10 N9  
K7 J7 J7 J7 M12 L9  
M5 M7 GPIO016  
P11 GPIO014  
J9 GPIO015  
N6 N3 N3 N3 N8  
DS00002206H-page 62  
2016-2020 Microchip Technology Inc.  
MEC170x  
Interface  
Notes  
H9 J8  
K6 L7  
J8  
L7  
J8  
L7  
J9  
L9  
N10 K11 GPIO017  
M6 R9 GPIO020  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
N9 N9 N9 N9 M9 M8 P10 GPIO021  
C2 E2  
E2  
E2  
D2  
F2  
E5  
E2  
D2  
F5  
GPIO022  
GPIO023  
F2  
B1  
C3 C3 C3 F4  
C2 C2 C2 E2  
G4 GPIO024  
L13 M12 M12 M12 K12 L11 H11 GPIO025  
N13 N13 N13 N13 L11 M12 P12 GPIO026  
K13 K11 K11 K11 F13 L13 P15 GPIO027  
K12 J9  
J9  
J9  
J13 J9  
N14 GPIO030  
N11 M11 M11 M11 M13 M11 M11 GPIO031  
J9  
L10 L10 L10 K9  
B2 B2 B2 C1  
L10 M10 GPIO032  
E4 B1 GPIO033  
E2  
H12 H12 H12 E13 H12 H15 GPIO034  
E13 G11 G12 G15 GPIO035  
G12  
H13 H13 H13 F12 H13 J12 GPIO036  
M11 M10 M10 M10 M11 N11 L11 GPIO040  
F2 C1 H4 GPIO041  
J10 J12 J12 J12 H10 H9 J15 GPIO042  
H10 J13 J13 J13 H11 H10 J14 GPIO043  
H12 H11 H11 H11 G9 H11 K12 GPIO044  
E8 A11 GPIO045  
E10 F11 F10 GPIO046  
A9  
E8  
E8  
E9  
E8  
E9  
E8  
E10 E9  
B13 F13 F13 F13 A12 D13 E15 GPIO047  
G4 F3  
F1 B1  
H4 L8  
F3  
B1  
L8  
F3  
B1  
L8  
G2  
F3  
K8  
G4  
B1  
N6  
H5  
F2  
L8  
GPIO050  
GPIO051  
GPIO052  
L12 M13 M13 M13 K11 L12 P14 GPIO053  
K9 L12 L12 L12 K10 K10 N15 GPIO054  
N8 N4 N4 N4 M8 L7  
M8 GPIO055  
M9 GPIO056  
G2 GPIO057  
N7 N5 N5 N5 N9  
J7  
B2  
F4  
D1 D1 D1 F1  
D2 D2 D2 G5  
D2  
F5  
H7  
GPIO060  
N1 N1 N1 N1 M1 L3  
M6 GPIO061  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 63  
MEC170x  
Interface  
Notes  
D4 A2  
M5 M4 M4 M4 N5  
M1 J5 J5 J5  
A2  
A2  
D3  
E3  
J6  
C2  
P6  
GPIO062  
GPIO063  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
Note 7  
M3 L2  
M5 GPIO064  
M3 M2 M2 M2 N2  
M2 M1 M1 M1 N1  
K5  
L4  
R2  
P3  
K5  
R3  
GPIO065  
GPIO066  
GPIO067  
GPIO070  
GPIO071  
GPIO072  
GPIO073  
GPIO100  
GPIO101  
GPIO102  
L2  
L2  
L3  
L2  
L3  
M5 L1  
M4 L5  
M4 L3  
N2 N2 N2 N2 N3  
M1 R4  
N1 P5  
M6 M2 R5  
N3 M3 M3 M3 N4  
N4 L4  
L4  
L4  
K4 H7 H7 H7 L4  
N2  
E6  
C5  
L6  
F6  
A5  
A4  
B5  
A4  
B5  
A4  
B5  
C5  
B3  
F13 F11 F11 F11 A13 E12 F15 GPIO104  
F10 F9  
E4 E3  
F9  
E3  
F9  
E3  
F9  
H6  
F13 F11 GPIO105  
F3 G7 GPIO106  
K10 L13 L13 L13 H13 J10 M14 GPIO107  
G13 J11 L15 GPIO110  
G12 K12 L12 GPIO111  
J12 K13 K13 K13 J12 J12 K15 GPIO112  
H13 J11 J11 J11 J11 K13 L14 GPIO113  
G13 H9 H9 H9 J10 J13 K14 GPIO114  
M12 N12 N12 N12 L13 N13 P13 GPIO115  
J13 K12 K12 K12 H12 K11 M15 GPIO120  
E12 F12 F12 F12 D13 F10 F12 GPIO121  
E13 E11 E11 E11 D12 D12 F14 GPIO122  
D12 E12 E12 E12 C13 F9  
G12 GPIO123  
C12 C11 C11 C11 B13 E11 E12 GPIO124  
D13 D11 D11 D11 B12 C12 D14 GPIO125  
C13 D12 D12 D12 C12 C13 E14 GPIO126  
A13 D13 D13 D13 A11 B13 D15 GPIO127  
J6  
N8 N8 N8 J8  
N5  
P9  
GPIO130  
M9 N7 N7 N7 N10 N7  
R10 GPIO131  
N12 N11 N11 N11 L10 N12 R14 GPIO132  
DS00002206H-page 64  
2016-2020 Microchip Technology Inc.  
MEC170x  
Interface  
Notes  
C11 C11 C14 GPIO133  
D11 E13 G14 GPIO134  
E12 G13 G9 GPIO135  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
E13 E13  
G9 G9  
M13 L11 L11 L11 K13 M13 J11 GPIO140  
A6  
B6  
A5  
B7  
F7  
A7  
B7  
F7  
A7  
E7  
A8  
B7  
F7  
A7  
E7  
A8  
A7  
F7  
A6  
D4  
D7  
A7  
A5  
B7  
B5  
C8  
D8  
B8  
E7  
K9  
B8  
D8  
A8  
E8  
GPIO141  
GPIO142  
GPIO143  
GPIO144  
D8 E7  
A8  
A7  
B7  
A8  
G8 GPIO145  
G8 G8 G8 F8  
C7 C7 C7 C7  
B9  
D9  
A9  
GPIO146  
GPIO147  
GPIO150  
D9 F8  
J7 L9  
F8  
L9  
F8  
L9  
E7  
H9  
K10 GPIO151  
N10 N10 N10 N10 N12 M10 R13 GPIO152  
A11  
A10 A12 A12 A12 A9  
B9 C9 C9 C9 C9  
B12 C12 C12 A13 D9  
C12 E9  
D10 B14 GPIO153  
A12 B13 GPIO154  
A11 E10 GPIO155  
D11 B15 GPIO156  
A12 B13 B13 B13 B11 B12 C15 GPIO157  
B3  
C4 C4 C4 C3  
D5  
C4  
C7  
A8  
B2  
E5  
A6  
B6  
GPIO161  
GPIO162  
GPIO163  
D5 A6  
D6 E6  
A6  
E6  
A9  
A6  
E6  
A9  
A4  
F6  
B7  
G1  
B8  
A9  
A10 GPIO165  
E2 GPIO166  
G10 G13 G13 G12 F11 G11 H12 GPIO170  
G9 G12 G12 G9 E11 G9  
H9  
E6  
B5  
B3  
GPIO171  
GPIO172  
GPIO173  
GPIO174  
B6  
B6  
B6  
F5  
A2  
E4  
D6  
C3  
A3  
D10 C13 C13 C13 D10 E10 E11 GPIO175  
H2 H3 H3 H3 G3  
G3  
G2  
H4  
J1  
J2  
K4  
L4  
K2  
GPIO200  
GPIO201  
GPIO202  
GPIO203  
H1 J3  
J3  
J2  
J1  
J3  
J2  
J1  
H4  
H3  
K2  
J2  
J1  
J2  
J1  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 65  
MEC170x  
Interface  
Notes  
K1  
K2  
L2  
L1  
H2 H2 H2 J3  
J2  
J4  
L1  
GPIO204  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
General Purpose Input/Output Port  
K3  
L1  
K2  
K3  
L1  
K2  
K3  
L1  
K2  
L2  
M2 GPIO205  
M2 K2  
P1  
N3  
J4  
GPIO206  
GPIO207  
GPIO210  
GPIO211  
GPIO212  
GPIO213  
GPIO214  
GPIO215  
GPIO216  
GPIO217  
GPIO221  
GPIO222  
GPIO223  
GPIO224  
L3  
H2  
J2  
K1  
H3  
H2  
H1  
H5  
J3  
H1  
J1  
K1  
J4  
K1  
L2  
N1  
N2  
P2  
E1  
L7  
R7  
R6  
J5  
K3  
K4  
K5  
J5  
K3  
K4  
D3  
L6  
C1 C1 C1 C1 G7  
L5 L5 L5 L6  
N5 M6 M6 M6 M7 K7  
M7 M5 M5 M5 N6 N3  
A13 A13 A10 E9  
C13 GPIO225  
F2  
F2  
L6  
F2  
L6  
E3  
N7  
L8  
C2  
M4 P7  
N8  
M7 J8  
F1  
GPIO226  
GPIO227  
M6 L6  
R11 GPIO230  
GPIO231  
L10 GPIO233  
E4 GPIO234  
K7  
G8  
B1  
K8  
A1  
G13 G10 G10 H14 GPIO240  
B8  
B8  
B8  
D6  
D9  
A9  
C9  
B10 GPIO241  
A12 GPIO242  
A10 A10 A10 D5  
C8 C8 C8 D8  
A11 A11 A11 B8  
B11 B11 B11 C8  
B10 B10 B10 B9  
E9  
GPIO243  
B10 A13 GPIO244  
A10 B12 GPIO245  
C10 D10 GPIO246  
B9  
B9  
B9  
A8  
B9  
B11 GPIO254  
General Purpose Pass-Through Ports  
E2  
E2  
E2  
D2  
F1  
E5  
D2  
F5  
GPTP-IN0  
GPTP-IN1  
General Purpose Pass Through Port Input 0  
General Purpose Pass Through Port Input 1  
C3 C3 C3 F4  
DS00002206H-page 66  
2016-2020 Microchip Technology Inc.  
MEC170x  
Interface  
Notes  
C2 C2 C2 E2  
C1 C1 C1 G7  
M5 M5 M5 N6  
E2  
D3  
N3  
G4 GPTP-IN2  
General Purpose Pass Through Port Input 2  
General Purpose Pass Through Port Input 3  
General Purpose Pass Through Port Input 4  
General Purpose Pass Through Port Input 5  
General Purpose Pass Through Port Input 6  
General Purpose Pass Through Port Input 7  
General Purpose Pass Through Port Output 0  
General Purpose Pass Through Port Output 1  
General Purpose Pass Through Port Output 2  
General Purpose Pass Through Port Output 3  
General Purpose Pass Through Port Output 4  
General Purpose Pass Through Port Output 5  
General Purpose Pass Through Port Output 6  
General Purpose Pass Through Port Output 7  
E1  
R6  
GPTP-IN3  
GPTP-IN4  
J8  
J8  
J8  
J9  
N10 K11 GPTP-IN5  
P11 GPTP-IN6  
M9 M9 M9 M10 N9  
N3 N3 N3 N8  
L10 L10 L10 K9  
M5 M7 GPTP-IN7  
L10 M10 GPTP-OUT0  
M11 M11 M11 M13 M11 M11 GPTP-OUT1  
M10 M10 M10 M11 N11 L11 GPTP-OUT2  
N10 N10 N10 N12 M10 R13 GPTP-OUT3  
A5  
B4  
E7  
GPTP-OUT4  
D11 D11 D11 B12 C12 D14 GPTP-OUT5  
C11 C11 C11 B13 E11 E12 GPTP-OUT6  
B6  
A6  
A7  
GPTP-OUT7  
I2C/SMBus Interface  
D7 C6 C6 C6 B5  
B6  
D7  
A6  
B4  
D7  
B7  
A7  
E7  
I2C00_SCL  
I2C00_SDA  
I2C01_SCL  
I2C01_SDA  
SMB-I2C Controller Port 0 Clock  
SMB-I2C Controller Port 0 Data  
SMB-I2C Controller Port 1 Clock  
SMB-I2C Controller Port 1 Data  
SMB-I2C Controller Port 2 Clock  
SMB-I2C Controller Port 2 Data  
SMB-I2C Controller Port 3 Clock  
SMB-I2C Controller Port 3 Data  
SMB-I2C Controller Port 4 Clock  
SMB-I2C Controller Port 4 Data  
SMB-I2C Controller Port 5 Clock  
SMB-I2C Controller Port 5 Data  
SMB-I2C Controller Port 6 Clock  
SMB-I2C Controller Port 6 Data  
SMB-I2C Controller Port 7 Clock  
SMB-I2C Controller Port 7 Data  
SMB-I2C Controller Port 8 Clock  
SMB-I2C Controller Port 8 Data  
SMB-I2C Controller Port 9 Clock  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
Note 14  
B5  
F5  
F5  
F5  
C6  
B6  
A5  
B9  
C9 C9 C9 C9  
A11 E10 I2C02_SCL  
A12 B13 I2C02_SDA  
A10 A12 A12 A12 A9  
B10 C10 C10 C10 C10 B11 D11 I2C03_SCL  
B11 B12 B12 B12 B10 A13 A14 I2C03_SDA  
D8 E7  
E7  
A7  
F7  
B7  
E7  
A7  
F7  
B7  
D4  
A6  
F7  
A7  
B5  
B7  
A5  
A7  
E8  
A8  
D8  
B8  
I2C04_SCL  
I2C04_SDA  
I2C05_SCL  
I2C05_SDA  
A5  
B6  
A6  
A7  
F7  
B7  
M13 L11 L11 L11 K13 M13 J11 I2C06_SCL  
N12 N11 N11 N11 L10 N12 R14 I2C06_SDA  
K5  
M8 N6 N6 N6 L7  
D9 F8 F8 F8 E7  
M7 M7 M7 H7  
N4  
N3  
E7  
B8  
D8  
R8  
P8  
A9  
D9  
B9  
I2C07_SCL  
I2C07_SDA  
I2C08_SCL  
I2C08_SDA  
I2C09_SCL  
B7  
A7  
C7 C7 C7 C7  
G8 G8 G8 F8  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 67  
MEC170x  
Interface  
Notes  
A8  
M9 N7 N7 N7 N10 N7  
J6 N8 N8 N8 J8 N5  
H10 J13 J13 J13 H11 H10 J14 SB-TSI_CLK  
J10 J12 J12 J12 H10 H9 J15 SB-TSI_DAT  
A8  
A8  
A8  
D7  
C8  
G8 I2C09_SDA  
SMB-I2C Controller Port 9 Data  
Note 14  
Note 14  
Note 14  
R10 I2C10_SCL  
SMB-I2C Controller Port 10 Clock  
SMB-I2C Controller Port 10 Data  
SMB-I2C Controller AMD-TSI Port Clock  
SMB-I2C Controller AMD-TSI Port Data  
P9  
I2C10_SDA  
JTAG and Debug Interface  
B7  
C7 C7 C7 C7  
B8  
D9  
JTAG_CLK  
JTAG Test Clock. Also ARM SWDCLK  
JTAG Test Reset (active low)  
F12 G11 G11 G11 F10 F12 G11 JTAG_RST#  
Note 5  
A8  
A7  
A8  
G8 G8 G8 F8  
F8 F8 E7  
A8  
A8  
D7  
C8  
D8  
E7  
G8 JTAG_TDI  
JTAG Test Data In  
B9  
A9  
JTAG_TDO  
JTAG_TMS  
JTAG Test Data Out. Also ARM SWO  
JTAG Test Mode Select. Also ARM SWDIO  
Trace FIFO debug port - clock  
D9 F8  
G10 G13 G13 G12 F11 G11 H12 TFCLK  
G9 G12 G12 G9 E11 G9  
H9  
TFDATA  
Trace FIFO debug port - data  
B8  
A6  
B6  
A5  
A9  
B7  
F7  
A7  
A9  
B7  
F7  
A7  
E7  
A9  
B7  
F7  
A7  
E7  
B7  
A7  
F7  
A6  
D4  
A8  
A7  
A5  
B7  
B5  
A10 TRACECLK  
ARM Embedded Trace Macro Clock  
ARM Embedded Trace Macro Data 0  
ARM Embedded Trace Macro Data 1  
ARM Embedded Trace Macro Data 2  
ARM Embedded Trace Macro Data 3  
B8  
D8  
A8  
E8  
TRACEDAT0  
TRACEDAT1  
TRACEDAT2  
TRACEDAT3  
D8 E7  
Keyboard Scan Interface  
N10 K11 KSI0  
M6 R9 KSI1  
H9 J8  
J8  
L7  
J8  
L7  
J9  
L9  
Keyboard Scan Matrix Input 0  
Keyboard Scan Matrix Input 1  
Keyboard Scan Matrix Input 2  
Keyboard Scan Matrix Input 3  
Keyboard Scan Matrix Input 4  
Keyboard Scan Matrix Input 5  
Keyboard Scan Matrix Input 6  
Keyboard Scan Matrix Input 7  
Keyboard Scan Matrix Output 0  
Keyboard Scan Matrix Output 1  
Keyboard Scan Matrix Output 2  
Keyboard Scan Matrix Output 3  
Keyboard Scan Matrix Output 4  
Keyboard Scan Matrix Output 5  
K6  
L7  
N9 N9 N9 N9 M9 M8 P10 KSI2  
N13 N13 N13 N13 L11 M12 P12 KSI3  
K13 K11 K11 K11 F13 L13 P15 KSI4  
K12 J9  
N11 M11 M11 M11 M13 M11 M11 KSI6  
J9 L10 L10 L10 K9 L10 M10 KSI7  
M11 M10 M10 M10 M11 N11 L11 KSO00  
J9  
J9  
J13 J9  
N14 KSI5  
A9  
E8  
E8  
E9  
E8  
E9  
E8  
E8  
A11 KSO01  
E10 E9  
E10 F11 F10 KSO02  
B13 F13 F13 F13 A12 D13 E15 KSO03  
K10 L13 L13 L13 H13 J10 M14 KSO04  
J12 K13 K13 K13 J12 J12 K15 KSO05  
DS00002206H-page 68  
2016-2020 Microchip Technology Inc.  
MEC170x  
Interface  
Notes  
H13 J11 J11 J11 J11 K13 L14 KSO06  
J13 K12 K12 K12 H12 K11 M15 KSO07  
E12 F12 F12 F12 D13 F10 F12 KSO08  
E13 E11 E11 E11 D12 D12 F14 KSO09  
Keyboard Scan Matrix Output 6  
Keyboard Scan Matrix Output 7  
Keyboard Scan Matrix Output 8  
Keyboard Scan Matrix Output 9  
Keyboard Scan Matrix Output 10  
Keyboard Scan Matrix Output 11  
Keyboard Scan Matrix Output 12  
Keyboard Scan Matrix Output 13  
Keyboard Scan Matrix Output 14  
Keyboard Scan Matrix Output 15  
Keyboard Scan Matrix Output 16  
Keyboard Scan Matrix Output 17  
D12 E12 E12 E12 C13 F9  
G12 KSO10  
C12 C11 C11 C11 B13 E11 E12 KSO11  
D13 D11 D11 D11 B12 C12 D14 KSO12  
C13 D12 D12 D12 C12 C13 E14 KSO13  
N12 N11 N11 N11 L10 N12 R14 KSO14  
J7  
L9  
L9  
L9  
H9  
K9  
K10 KSO15  
N10 N10 N10 N10 N12 M10 R13 KSO16  
D10 C13 C13 C13 D10 E10 E11 KSO17  
LPC Host Interface  
A13 D13 D13 D13 A11 B13 D15 A20M  
Keyboard GATEA20 Output  
PCI Clock Control  
L2  
D2 D2 D2 G5  
M4 L3 L3 L3 M4 L5  
L2  
L2  
M5 L1  
K5  
H7  
R3  
CLKRUN#  
KBRST  
LAD0  
F4  
F5  
Keyboard CPU Reset  
LPC Multiplexed command, address and data  
bus Bit 0.  
N2 N2 N2 N2 N3  
N3 M3 M3 M3 N4  
M1 R4  
LAD1  
LPC Multiplexed command, address and data  
bus Bit 1.  
N1  
M6 N2  
M2 M1 M1 M1 N1 L4  
P5  
R5  
P3  
LAD2  
LPC Multiplexed command, address and data  
bus Bit 2.  
N4 L4  
L4  
L4  
LAD3  
LPC Multiplexed command, address and data  
bus Bit 3.  
LFRAME#  
Frame signal. Indicates start of new cycle and  
termination of broken cycle  
N1 N1, N1, N1, M1, L3  
N9 N9 N9 M9  
M6, LPCPD#  
P10  
LPC Bus Powerdown Signal.  
H4 J5, J5, J5, K8, N6  
L8, LRESET#  
M5  
LPC Reset. Same as the system PCI reset,  
PCIRST#  
L8  
L8  
L8  
M3  
K4  
H7, H7, H7, J10, N2  
H9 H9 H9 L4  
K14, nEC_SCI  
L6  
Power Management Event  
Note 1  
L13 M12 M12 M12 K12 L11 H11 nEM_INT  
EM Interface Interrupt Output  
SMI Output  
J4  
L13, L13, L13, H13, K6  
J6 J6 J6 L5  
M3 M2 M2 M2 N2  
K6, nSMI  
M14  
K5  
R2  
PCI_CLK  
LPC Clock  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 69  
MEC170x  
Interface  
Notes  
M5 L5, L5, L5, L6, J6  
M4 M4 M4 N5  
L7, SER_IRQ  
P6  
Serial IRQ  
Master Clock Interface  
B8  
A9  
A9  
A9  
B7  
A8  
D3  
F5  
A2  
A4  
A10 32KHZ_IN  
32.768 KHz Digital Input  
32.768 KHz Digital Output  
Main System Clock Output  
32.768 KHz Crystal Input  
C1 C1 C1 C1 G7  
E1  
H7  
A4  
A2  
32KHZ_OUT  
48MHZ_OUT  
XTAL1  
F4  
A4  
A2  
D2 D2 D2 G5  
A3  
A1  
A3  
A1  
A3  
A1  
A3  
A1  
XTAL2  
32.768 KHz Crystal Output (single-ended clock  
input)  
Miscellaneous Functions  
B12 C12 C12 A13 D9  
D11 B15 LED0  
LED Output 0  
A12 B13 B13 B13 B11 B12 C15 LED1  
LED Output 1  
A11  
C12 E9  
D10 B14 LED2  
LED Output 2  
F2  
E3  
B2  
F2  
E3  
B2  
F2  
E3  
B2  
E3  
H6  
C1  
C2  
F3  
E4  
F1  
G7 PWROK  
B1 RC_ID0  
LED3  
LED Output 3  
E4  
E2  
VCC, Main Power Rail, Powered  
RC Identification Detection 0  
RC Identification Detection 1  
RC Identification Detection 2  
System Reset Input  
H12 H12 H12 E13 H12 H15 RC_ID1  
H13 H13 H13 F12 H13 J12 RC_ID2  
A1  
D3 D3 D3 G6  
A2 A2 D3  
F4  
E3  
G5 RESETI#  
C2 (RESETO#)  
D4 A2  
System Reset Output  
N8 N4 N4 N4 M8 L7  
B2 D1 D1 D1 F1 D2  
M8 (RSMRST#)  
Core logic RSMRST# input; re-balled GPIO  
System Main Power Indication  
G2 VCC_PWRGD  
PECI Interface  
J10 J12 J12 J12 H10 H9  
H12 H11 H11 H11 G9  
J15 PECI_DAT  
PECI Bus  
H11 K12 VREF_VTT  
Processor Interface Voltage Reference  
Power  
E5  
E5  
E5  
F1  
E5  
F1  
E6  
E1  
F7  
E1  
F1  
D5  
D1  
VBAT  
VBAT supply  
D1 F1  
VFLT_PLL  
Filtered for PLL  
G1 H1 H1 H1 J1  
G1 VR_CAP  
Internal Voltage Regulator Output (Capacitor  
Required)  
Note 15  
H5 K1  
K1  
B4  
F6  
K1  
B4  
F6  
L1  
C4  
E5  
H6  
F6  
H8  
G7  
M1 VSS_ADC  
Analog ADC VTR associated ground  
E6  
E7  
F9  
B4  
F6  
A3  
B2  
H8  
VSS_ANALOG VTR associated ground for Internal Analog Logic  
VSS1  
VSS2  
VTR I/O Ground pin region 1  
VTR I/O Ground pin region 2  
G3 G3 G3 J7  
DS00002206H-page 70  
2016-2020 Microchip Technology Inc.  
MEC170x  
Interface  
Notes  
E8  
F5  
E1  
H5 H5 H5 K6  
G6 G6 G6 H8  
G6  
G8  
D1  
G8  
F8  
J7  
VSS3  
VTR I/O Ground pin region 3  
L5  
C1  
H2  
F4  
VTR_ANALOG VTR Power Supply for Internal Analog Logic  
E1  
E1  
E1  
D1  
VTR_PLL  
VTR_REG  
VTR1  
VTR associated power used for PLL  
VTR Internal Voltage Regulator Power Supply  
VTR I/O Power, pin region 1  
G5 G1 G1 G1 H1  
E9  
J8  
J5  
G5 G5 G5 G4  
H8 H8 H8 L12 J8  
H6 H6 H6 J6 H7  
N13 VTR2  
P4 VTR3  
VTR I/O Power, pin region 2  
VTR I/O Power, pin region 3  
PS/2 Interface  
G13 H9 H9 H9 J10 J13 K14 PS2_CLK0A  
B11 B12 B12 B12 B10 A13 A14 PS2_CLK0B  
J12 K13 K13 K13 J12 J12 K15 PS2_CLK1A  
PS/2 Controller 0, Port A, Clock output  
PS/2 Controller 0, Port B, Clock output  
PS/2 Controller 1, Port A, Clock output  
PS/2 Controller 1, Port B, Clock output  
PS/2 Controller 2, Clock output  
PS/2 Controller 0, Port A, Data  
PS/2 Controller 0, Port B, Data  
PS/2 Controller 1, Port A, Data  
PS/2 Controller 1, Port B, Data  
PS/2 Controller 2, Data  
Note 6  
Note 6  
Note 6  
Note 6  
A10 A12 A12 A12 A9  
A12 B13 PS2_CLK1B  
G13 J11 L15 PS2_CLK2  
M12 N12 N12 N12 L13 N13 P13 PS2_DAT0A  
B10 C10 C10 C10 C10 B11 D11 PS2_DAT0B  
H13 J11 J11 J11 J11 K13 L14 PS2_DAT1A  
Note 6  
Note 6  
Note 6  
Note 6  
B9  
C9 C9 C9 C9  
A11 E10 PS2_DAT1B  
G12 K12 L12 PS2_DAT2  
Serial Ports  
L13 M12 M12 M12 K12 L11 H11 UART_CLK  
A13 D13 D13 D13 A11 B13 D15 UART0_CTS#  
External Baud Clock for UARTs  
UART 0, Clear to Send Input  
UART 0, Data Carrier Detect Input  
UART 0, Data Set Ready Input  
UART 0, Data Terminal Ready Output  
UART 0, Ring Indicator  
Note 4  
Note 4  
Note 4  
Note 4  
Note 4  
Note 4  
Note 4  
Note 4  
Note 4  
Note 4  
Note 4  
Note 4  
A6  
B6  
A5  
B7  
F7  
A7  
B7  
F7  
A7  
E7  
B7  
F7  
A7  
E7  
A7  
F7  
A6  
D4  
A7  
A5  
B7  
B5  
B8  
D8  
A8  
E8  
UART0_DCD#  
UART0_DSR#  
UART0_DTR#  
UART0_RI#  
D8 E7  
A13 A13  
F10 F9 F9  
A10 E9  
C13 UART0_RTS#  
UART 0, Request to Send Output  
UART 0, Receive Data  
F9  
F9 F13 F11 UART0_RX  
F13 F11 F11 F11 A13 E12 F15 UART0_TX  
UART 0, Transmit Data  
G9 G9  
E12 G13 G9 UART1_CTS#  
D11 E13 G14 UART1_RTS#  
UART 1, Clear to Send Input  
UART 1, Request to Send Output  
UART 1, Receive Data  
E13 E13  
G9 G12 G12 G9 E11 G9  
H9  
UART1_RX  
G10 G13 G13 G12 F11 G11 H12 UART1_TX  
UART 1, Transmit Data  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 71  
MEC170x  
Interface  
Notes  
SPI Controllers  
D13 D11 D11 D11 B12 C12 D14 PVT_CLK  
C12 C11 C11 C11 B13 E11 E12 PVT_CS#  
E12 F12 F12 F12 D13 F10 F12 PVT_IO0  
E13 E11 E11 E11 D12 D12 F14 PVT_IO1  
Quad SPI Controller Clock, Private SPI port  
Quad SPI Controller Chip Select, Private SPI port  
Quad SPI Controller Data 0, Private SPI port  
Quad SPI Controller Data 1, Private SPI port  
Quad SPI Controller Data 2, Private SPI port  
Quad SPI Controller Data 3, Private SPI port  
Quad SPI Controller Clock, Shared SPI port  
D12 E12 E12 E12 C13 F9  
G12 PVT_IO2  
C13 D12 D12 D12 C12 C13 E14 PVT_IO3  
N7 N5 N5 N5 N9  
J7  
M9 SHD_CLK  
M8 SHD_CS#  
N8 N4 N4 N4 M8 L7  
Quad SPI Controller Chip Select, Shared SPI  
port  
N5 M6 M6 M6 M7 K7  
R7  
SHD_IO0  
SHD_IO1  
SHD_IO2  
Quad SPI Controller Data 0, Shared SPI port  
Quad SPI Controller Data 1, Shared SPI port  
Quad SPI Controller Data 2, Shared SPI port  
Quad SPI Controller Data 3, Shared SPI port  
GP-SPI SPI Clock  
M7 M5 M5 M5 N6  
M6 L6 L6 L6 N7  
N6 N3 N3 N3 N8  
H12 H12 H12 E13 H12 H15 SPI0_CLK  
F5 F5 F5 C6 D7 B7 SPI0_CS#  
H13 H13 H13 F12 H13 J12 SPI0_MISO  
M3 R6  
M4 P7  
M5 M7 SHD_IO3  
B5  
GP-SPI Chip Select  
GP-SPI SPI Output  
D7 C6 C6 C6 B5  
B6  
A7  
B5  
A5  
B7  
D7  
B8  
E8  
D8  
A8  
SPI0_MOSI  
SPI1_CLK  
SPI1_CS#  
SPI1_MOSI  
SPI1_MISO  
GP-SPI SPI Input  
A6  
B7  
B7  
E7  
F7  
A7  
B7  
E7  
F7  
A7  
A7  
D4  
F7  
A6  
GP-SPI SPI Clock  
D8 E7  
GP-SPI Chip Select  
B6  
A5  
F7  
A7  
GP-SPI SPI Output  
GP-SPI SPI Input  
VBAT-Powered Control Interface  
A3  
A5  
A4  
B5  
B6  
A5  
A4  
B5  
B6  
A5  
A4  
B5  
B6  
B4  
C5  
B3  
F5  
A2  
E4  
F6  
C6  
E6  
C5  
D6  
C3  
A3  
C7  
D6  
F6  
A5  
E6  
B5  
B3  
B6  
BGPO0  
BGPO1  
BGPO2  
BGPO3  
BGPO4  
BGPO5  
VCI_IN0#  
VBAT driven GPO  
VBAT driven GPO  
VBAT driven GPO  
VBAT driven GPO  
VBAT driven GPO  
VBAT driven GPO  
Note 8  
Note 8  
Note 8  
Note 8  
Note 8  
D6 E6  
D5 A6  
E6  
A6  
E6  
A6  
Input can cause wakeup or interrupt event, active  
low  
Note 13  
Note 13  
Note 13  
A4  
C4  
D5  
A6  
E5  
VCI_IN1#  
VCI_IN2#  
Input can cause wakeup or interrupt event, active  
low  
B3  
C4 C4 C4 C3  
Input can cause wakeup or interrupt event, active  
low  
DS00002206H-page 72  
2016-2020 Microchip Technology Inc.  
MEC170x  
Interface  
Notes  
D2 B3  
B3  
B3  
C2  
B1  
D4  
A1  
B3  
C3  
E4  
B4  
VCI_IN3#  
VCI_IN4#  
VCI_OUT  
Input can cause wakeup or interrupt event, active  
low  
Note 13  
Note 13  
Input can cause wakeup or interrupt event, active  
low  
B4  
C5 C5 C5 B2  
Output from combinational logic and/or EC  
2.8  
UPD Dead Battery Interface Pins  
TABLE 2-1: “UPD Dead Battery Support Pins” lists the pins and interfaces used for UPD dead battery interface.  
Note: For more details about dead battery changing interface and usage, please refer to MEC170X_ROM_De-  
scription.pdf.  
TABLE 2-1:  
Signal  
UPD DEAD BATTERY SUPPORT PINS  
Interface  
I2C  
Pin Name  
Default Pin State  
I2C10_SCL  
GPIO131/I2C10_SCL/TOUT0  
Tristate Input. Pulled High externally to VTR2  
power supply.  
I2C10_SDA  
I2C  
GPIO130/I2C10_SDA/TOUT1  
Tristate Input. Pulled High externally to VTR2  
power supply.  
UPD_Alert1#  
UPD_Alert2#  
UPD_RST1#  
UPD_RST2#  
I2C  
I2C  
GPIO001/PWM4  
GPIO002/PWM5  
Tristate Input. Pulled High externally to VTR2  
power supply.  
Tristate Input. Pulled High externally to VTR2  
power supply.  
RESET_N for GPIO231  
UPD[1]  
Tristate Input. Pulled High externally to VTR2  
power supply.  
RESET_N for GPIO233  
UPD[2]  
Tristate Input. Pulled High externally to VTR2  
power supply.  
2.9  
Strapping Options  
GPIO171 is used for the TAP Controller select strap. If any of the JTAG TAP controllers are used, GPIO171 must only  
be configured as an output to a VTR powered external function. GPIO171 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.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 73  
MEC170x  
TABLE 2-2:  
Pin  
STRAPS AND MEANING  
Function  
UPD[2] RESET_N  
Definition  
GPIO233  
Pull-down (0) = UPD Port 2 Not Present  
Pull-up (1) = UPD Port 2 Present  
Note:  
10k to 100k ohm pull-up or pull-down  
required.  
GPIO246  
UPD_Enable  
Pull-down (0) = No UPD devices are connected  
Pull-up (1) = One or more UPD devices are  
connected  
Note:  
10k to 100k ohm pull-up or pull-down  
required.  
GPIO045/KSO1  
Private SPI Selection  
1=Use GPIO055 to select between the Shared  
SPI pins and the eSPI Flash Channel for  
Boot  
0=Use the Private SPI pins for Boot  
Note:  
This pin requires an external pull-up  
for normal operation.  
GPIO055/SHD_CS#  
Shared SPI vs. eSPI Selection  
1=Use the Shared SPI pins for Boot  
0=Use the eSPI Flash Channel for Boot  
Note:  
See application specific recommen-  
dation in Section 2.9.1, "Shared SPI  
Flash Chip Select Pull-up Resistor  
Recommendation " after this table.  
GPIO171/TFDATA/  
UART1_RX  
JTAG Boundary Scan  
1=Use the JAG TAP Controller for Boundary Scan  
0=The JTAG TAP Controller is used for debug  
Note:  
Please refer to MEC170X_ROM_Description.pdf for more details about UPD strap pins and there function-  
ing.  
2.9.1  
SHARED SPI FLASH CHIP SELECT PULL-UP RESISTOR RECOMMENDATION  
GPIO055/PWM2/SHD_CS#/RSMRST# pin is used to determine the boot source (eSPI Flash channel or shared SPI).  
In addition, the GPIO055/PWM2/SHD_CS#/RSMRST# pin is used as an indication that the Shared SPI is powered.  
This pin must be at a high level for the device to load code from the SPI Flash device.  
There is presently a requirement for a pull-up resistor on the SHD_CS# pin on the board if the Shared SPI flash interface  
is used so that the SPI_CS# is detected high while RSMRST# is low.  
The recommended value of the pull-up resistor on the SHD_CS# pin may vary depending on the version of the Intel  
PCH that is used.  
This is based on information in the current Intel PCH device specifications regarding the SPI0_CS0# pin. This informa-  
tion, as well as the information regarding other PCH devices, must be verified with Intel:  
Skylake PCH LP: the signal is tri-stated with no pull-up or pull-down  
- Use a resistor in the 4.7K-100K range (pulled-up to the 3.3V rail that powers the SPI device)  
Skylake PCH H: the signal is tri-stated with a weak pull down (~ 20K)  
- Use a resistor in the 4.7K-8K range (pulled-up to the 3.3V rail that powers the SPI device).  
These pull-up values must ensure the voltage on the pin is detected as a high (i.e., VTR*0.7).  
DS00002206H-page 74  
2016-2020 Microchip Technology Inc.  
MEC170x  
2.10 Pin Default State Through Power Transitions  
The power state and power state transitions illustrated in the following tables are defined in Section 4.0, "Power,  
Clocks, and Resets". Pin behavior in this table assumes no specific programming to change the pin state. All GPIO  
default pins that have the same behavior are described in the table generically as GPIOXXX.  
TABLE 2-3:  
PIN DEFAULT STATE THROUGH POWER TRANSITIONS  
RESET_  
SYS  
De-  
asserted  
VCC_  
PWRGD  
De-  
VCC_  
PWRGD  
Asserted  
RESET_  
SYS  
Asserted powered powered  
VTR  
Un-  
VBAT  
Un-  
VBAT  
VBAT  
VTR  
Signal  
Note  
Applied Stable Applied  
asserted  
un-  
powered powered  
un- un-  
powered powered  
un- un-  
powered powered  
un- un-  
powered powered  
un- un-  
powered powered  
un- un-  
powered powered  
un- un-  
powered powered  
un- un-  
powered powered  
un- un-  
powered powered  
un- un-  
powered powered  
un- un-  
powered powered  
un- un-  
powered powered  
un- un-  
powered powered  
un-  
un-  
powered  
GPIO042  
GPIO043  
GPIO062  
GPIOXXX  
SER_IRQ  
LRESET#  
PCI_CLK  
LFRAME#  
LAD0  
low  
low  
In  
In  
In  
In  
In  
In  
Z
glitch  
glitch  
glitch  
glitch  
glitch  
glitch  
glitch  
glitch  
glitch  
glitch  
glitch  
glitch  
glitch  
Retain  
In  
un-  
powered  
Z
un-  
powered  
low  
Out=0  
In  
Out  
In  
Out  
In  
Out  
un-  
powered  
Note  
E
In  
Z
Z>I/O  
(P)>Z  
un-  
powered  
Note  
A
glitch  
glitch  
glitch  
glitch  
glitch  
glitch  
glitch  
glitch  
glitch  
Retain  
In  
In  
In  
In  
un-  
powered  
Note  
A
In  
In  
In  
In  
In  
Z
un-  
powered  
In  
In  
Z
un-  
powered  
In  
In  
Z
In>I/O  
(P)>In  
un-  
powered  
In  
In  
Z
In>I/O  
(P)>In  
un-  
powered  
LAD1  
In  
In  
Z
In>I/O  
(P)>In  
un-  
powered  
LAD2  
In  
In  
Z
In>I/O  
(P)>In  
un-  
powered  
LAD3  
In  
In  
Z
Z
Z>I/O  
(P)>Z  
un-  
powered  
CLKRUN#  
BGPOx  
In  
In  
un-  
powered  
Note  
B
Out=0  
In  
Out=0  
In  
Retain  
In  
Retain  
In  
Retain  
In  
Retain  
In  
un-  
powered  
VCI_INx#  
VCI_OUT  
XTAL1  
Out  
Out  
Out  
logic  
Out  
logic  
Out  
logic  
Out  
logic  
Out  
logic  
Out  
logic  
un-  
powered  
Note  
C
logic  
logic  
Crystal  
In  
Crystal  
In  
Crystal  
In  
Crystal  
In  
Crystal  
In  
Crystal  
In  
Crystal  
In  
Crystal  
In  
Crystal  
In  
Crystal  
Out  
Crystal  
Out  
Crystal  
Out  
Crystal  
Out  
Crystal  
Out  
Crystal  
Out  
Crystal  
Out  
Crystal  
Out  
Crystal  
Out  
XTAL2  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 75  
MEC170x  
Legend  
Notes  
(P) = I/O state is driven by proto-  
col while power is applied.  
Note A: Pin exhibits "VCC" power domain emulation.  
Note B: Pin is programmable by the EC and retains its value through a  
VTR power cycle.  
Z = Tristate  
In = Input  
Note C: Pin is programmable by the EC and affected by other VBAT  
inputs pins.  
Note D: Pin exhibits "VTR" power domain emulation.  
Note E: Does not include GPIO042, GPIO043, and GPIO062  
TABLE 2-4:  
Signal  
PIN DEFAULT STATE THROUGH POWER TRANSITIONS  
nSYS _  
RST  
VCC_  
PWRGD  
De-  
VCC_  
PWRGD  
Asserted  
RESET_  
SYS  
VTR  
Un-  
VBAT  
Un-  
VBAT  
VBAT  
VTR  
Note  
Applied Stable Applied  
De-  
asserted  
Asserted powered powered  
asserted  
1>  
OD(P)>  
1
nSMI  
N/A  
N/A  
N/A  
N/A  
N/A  
N/A  
N/A  
N/A  
OD(1)  
Z
In  
glitch  
glitch  
N/A  
N/A  
1>  
OD(P)>  
1
Note  
F
KBRST  
Z>In  
1>  
OD(P)>  
1
Note  
F
A20M  
N/A  
N/A  
N/A  
N/A  
N/A  
N/A  
N/A  
N/A  
Z
Z
Z
Z
glitch  
glitch  
N/A  
N/A  
Note  
F
LPCPD#  
In  
Legend  
Notes  
(P) = I/O state is driven by proto-  
col while power is applied.  
Note F: Pin is programmable by the EC and retains its value through a  
VTR power cycle  
Z = Tristate  
In = Input  
OD = Open Drain Output  
Undriven (1) or driven (0)  
DS00002206H-page 76  
2016-2020 Microchip Technology Inc.  
MEC170x  
2.11 Packages  
2.11.1  
128 PIN WFBGA-TF PACKAGE  
Note:  
For the most current package drawings, see the Microchip Packaging Specification at http://www.micro-  
chip.com/packaging.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 77  
MEC170x  
2.11.2  
144 PIN WFBGA-SZ PACKAGE  
Note:  
For the most current package drawings, see the Microchip Packaging Specification at http://www.micro-  
chip.com/packaging.  
DS00002206H-page 78  
2016-2020 Microchip Technology Inc.  
MEC170x  
2.11.3  
169 PIN WFBGA-TN PACKAGE  
Note:  
For the most current package drawings, see the Microchip Packaging Specification at http://www.micro-  
chip.com/packaging.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 79  
MEC170x  
2.11.4  
169 PIN WFBGA-XY PACKAGE  
Note:  
For the most current package drawings, see the Microchip Packaging Specification at http://www.micro-  
chip.com/packaging.  
ꢁꢂꢃꢄ%DOOꢅ9HU\ꢅ9HU\ꢅ7KLQꢅ)LQHꢅ3LWFKꢅ%DOOꢅ*ULGꢅ$UUD\ꢅꢆ;<;ꢇꢅꢄꢅꢈ[ꢈꢅPPꢅ%RG\ꢅ>:)%*$@  
1RWHꢀ )RUꢄWKHꢄPRVWꢄFXUUHQWꢄSDFNDJHꢄGUDZLQJVꢉꢄSOHDVHꢄVHHꢄWKHꢄ0LFURFKLSꢄ3DFNDJLQJꢄ6SHFLILFDWLRQꢄORFDWHGꢄDW  
KWWSꢊꢋꢋZZZꢁPLFURFKLSꢁFRPꢋSDFNDJLQJ  
'
$
%
(
127(ꢄꢂ  
ꢂꢀ ꢂꢅ ꢂꢆ  
ꢏ ꢂꢂ ꢂꢌ ꢂꢃ  
$
%
&
'
(
ꢐ'$780ꢄ%ꢑ  
)
*
+
ꢐ'$780ꢄ$ꢑ  
-
.
/
0
1
ꢅ;  
3
5
ꢀꢁꢂꢃ &  
ꢅ;  
ꢀꢁꢂꢃ &  
723ꢄ9,(:  
6((ꢄ'(7$,/ꢄ$  
6+((7ꢄꢅ  
&
$
6($7,1*  
3/$1(  
6,'(ꢄ9,(:  
'ꢂ  
ꢂꢀ ꢂꢅ ꢂꢆ  
ꢂꢂ ꢂꢌ ꢂꢃ  
5
3
1
0
/
H
.
-
+
*
)
(ꢂ  
(
'
&
%
$
127(ꢄꢂ  
H
%27720ꢄ9,(:  
0LFURFKLSꢄ7HFKQRORJ\ꢄ'UDZLQJꢄꢄ&ꢀꢆꢇꢆꢈꢀꢄ5HYꢁꢄ$ꢄ6KHHWꢄꢂꢄRIꢄꢅ  
‹ꢄꢅꢀꢂꢈꢄ0LFURFKLSꢄ7HFKQRORJ\ꢄ,QFꢁ  
DS00002206H-page 80  
2016-2020 Microchip Technology Inc.  
MEC170x  
ꢁꢂꢃꢄ%DOOꢅ9HU\ꢅ9HU\ꢅ7KLQꢅ)LQHꢅ3LWFKꢅ%DOOꢅ*ULGꢅ$UUD\ꢅꢆ;<;ꢇꢅꢄꢅꢈ[ꢈꢅPPꢅ%RG\ꢅ>:)%*$@  
1RWHꢀ )RUꢄWKHꢄPRVWꢄFXUUHQWꢄSDFNDJHꢄGUDZLQJVꢉꢄSOHDVHꢄVHHꢄWKHꢄ0LFURFKLSꢄ3DFNDJLQJꢄ6SHFLILFDWLRQꢄORFDWHGꢄDW  
KWWSꢊꢋꢋZZZꢁPLFURFKLSꢁFRPꢋSDFNDJLQJ  
ꢀꢁꢂꢀ &  
$ꢅ  
$ꢂ  
ꢂꢍꢏ;  
ꢀꢁꢀꢎ &  
'(7$,/ꢄ$  
8QLWV  
'LPHQVLRQꢄ/LPLWV  
0,//,0(7(56  
120  
0,1  
0$;  
1XPEHUꢄRIꢄ7HUPLQDOV  
3LWFK  
2YHUDOOꢄ+HLJKW  
6WDQGRII  
0ROGꢄ7KLFNQHVV  
2YHUDOOꢄ/HQJWK  
2YHUDOOꢄ7HUPLQDOꢄ6SDFLQJ  
2YHUDOOꢄ:LGWK  
2YHUDOOꢄ7HUPLQDOꢄ6SDFLQJ  
7HUPLQDOꢄ'LDPHWHU  
1
ꢂꢍꢏ  
ꢀꢁꢃꢀꢄ%6&  
ꢀꢁꢂꢏ  
ꢀꢁꢆꢀ  
ꢎꢁꢀꢀꢄ%6&  
ꢈꢁꢀꢀꢄ%6&  
ꢎꢁꢀꢀꢄ%6&  
ꢈꢁꢀꢀꢄ%6&  
ꢀꢁꢅꢃ  
H
$
$ꢂ  
$ꢅ  
'
'ꢂ  
(
ꢀꢁꢎꢀ  
ꢀꢁꢅꢆ  
ꢀꢁꢆꢃ  
ꢀꢁꢂꢆ  
ꢀꢁꢌꢃ  
(ꢂ  
E
ꢀꢁꢅꢀ  
ꢀꢁꢌꢀ  
Notes:  
ꢂꢁ 3LQꢄꢂꢄYLVXDOꢄLQGH[ꢄIHDWXUHꢄPD\ꢄYDU\ꢉꢄEXWꢄPXVWꢄEHꢄORFDWHGꢄZLWKLQꢄWKHꢄKDWFKHGꢄDUHDꢁ  
ꢅꢁ 3DFNDJHꢄLVꢄVDZꢄVLQJXODWHG  
ꢌꢁ 'LPHQVLRQLQJꢄDQGꢄWROHUDQFLQJꢄSHUꢄ$60(ꢄ<ꢂꢆꢁꢃ0  
%6&ꢊꢄ%DVLFꢄ'LPHQVLRQꢁꢄ7KHRUHWLFDOO\ꢄH[DFWꢄYDOXHꢄVKRZQꢄZLWKRXWꢄWROHUDQFHVꢁ  
5()ꢊꢄ5HIHUHQFHꢄ'LPHQVLRQꢉꢄXVXDOO\ꢄZLWKRXWꢄWROHUDQFHꢉꢄIRUꢄLQIRUPDWLRQꢄSXUSRVHVꢄRQO\ꢁ  
0LFURFKLSꢄ7HFKQRORJ\ꢄ'UDZLQJꢄꢄ&ꢀꢆꢇꢆꢈꢀꢄ5HYꢁꢄ$ꢄ6KHHWꢄꢅꢄRIꢄꢅ  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 81  
MEC170x  
ꢁꢂꢃꢄ%DOOꢅ9HU\ꢅ9HU\ꢅ7KLQꢅ)LQHꢅ3LWFKꢅ%DOOꢅ*ULGꢅ$UUD\ꢅꢆ;<;ꢇꢅꢄꢅꢈ[ꢈꢅPPꢅ%RG\ꢅ>:)%*$@  
1RWHꢀ )RUꢄWKHꢄPRVWꢄFXUUHQWꢄSDFNDJHꢄGUDZLQJVꢉꢄSOHDVHꢄVHHꢄWKHꢄ0LFURFKLSꢄ3DFNDJLQJꢄ6SHFLILFDWLRQꢄORFDWHGꢄDW  
KWWSꢊꢋꢋZZZꢁPLFURFKLSꢁFRPꢋSDFNDJLQJ  
ꢂꢀ  
ꢂꢅ  
ꢂꢆ  
ꢂꢂ  
ꢂꢌ  
ꢂꢃ  
$
%
&
'
(
(
)
*
+
&ꢅ  
-
.
/
0
1
3
*
5
‘;  
(
6,/.ꢄ6&5((1  
&ꢂ  
5(&200(1'('ꢄ/$1'ꢄ3$77(51  
8QLWV  
'LPHQVLRQꢄ/LPLWV  
(
0,//,0(7(56  
0,1  
ꢀꢁꢅꢀ  
120  
ꢀꢁꢃꢀꢄ%6&  
ꢈꢁꢀꢀ  
0$;  
ꢀꢁꢅꢀ  
&RQWDFWꢄ3LWFK  
2YHUDOOꢄ&RQWDFWꢄ3DGꢄ6SDFLQJ  
2YHUDOOꢄ&RQWDFWꢄ3DGꢄ6SDFLQJ  
&RQWDFWꢄ3DGꢄ:LGWKꢄꢐ;ꢂꢍꢏꢑ  
&RQWDFWꢄ3DGꢄWRꢄ&RQWDFWꢄ3DG  
&ꢂ  
&ꢅ  
;
ꢈꢁꢀꢀ  
*
1RWHVꢊ  
ꢂꢁ 'LPHQVLRQLQJꢄDQGꢄWROHUDQFLQJꢄSHUꢄ$60(ꢄ<ꢂꢆꢁꢃ0  
%6&ꢊꢄ%DVLFꢄ'LPHQVLRQꢁꢄ7KHRUHWLFDOO\ꢄH[DFWꢄYDOXHꢄVKRZQꢄZLWKRXWꢄWROHUDQFHVꢁ  
ꢅꢁ )RUꢄEHVWꢄVROGHULQJꢄUHVXOWVꢉꢄWKHUPDOꢄYLDVꢉꢄLIꢄXVHGꢉꢄVKRXOGꢄEHꢄILOOHGꢄRUꢄWHQWHGꢄWRꢄDYRLGꢄVROGHUꢄORVVꢄGXULQJ  
UHIORZꢄSURFHVV  
0LFURFKLSꢄ7HFKQRORJ\ꢄ'UDZLQJꢄ&ꢀꢆꢇꢅꢆꢈꢀꢄ5HYꢁꢄ$  
‹ꢄꢅꢀꢂꢈꢄ0LFURFKLSꢄ7HFKQRORJ\ꢄ,QFꢁ  
DS00002206H-page 82  
2016-2020 Microchip Technology Inc.  
MEC170x  
3.0  
3.1  
DEVICE INVENTORY  
Conventions  
Term  
Definition  
Block  
Used to identify or describe the logic or IP Blocks implemented in the device.  
Reserved  
Reserved 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.  
TEST  
Microchip 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.  
b
h
The letter ‘b’ following a number denotes a binary number.  
The 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  
Field Description  
Type  
R
W
Read: A register or bit with this attribute can be read.  
Write: A register or bit with this attribute can be written.  
RS  
Read to Set: This bit is set on read.  
RC  
Read to Clear: Content is cleared after the read. Writes have no effect.  
Write One to Clear: writing a one clears the value. Writing a zero has no effect.  
Write Zero to Clear: writing a zero clears the value. Writing a one has no effect.  
Write One to Set: writing a one sets the value to 1. Writing a zero has no effect.  
Write Zero to Set: writing a zero sets the value to 1. Writing a one has no effect.  
WC  
WZC  
WS  
WZS  
3.2  
GPIO Documentation Conventions  
The GPIO registers and bits are allocated for the full GPIO complement. Therefore, even GPIOs that are not imple-  
mented in the package will appear in the GPIO register lists. Please refer to the pinout to determine which GPIOs are  
bonded out in the package. GPIOs that are not available in the package should not have their configuration register  
altered.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 83  
MEC170x  
3.3  
Block Overview and Base Addresses  
Logical  
Device  
Number  
(LDN)  
Base  
Address  
Feature  
Instance  
Watchdog Timer  
4000_0000h  
4000_0C00h  
4000_0C20h  
4000_0C40h  
4000_0C60h  
4000_0C80h  
4000_0CA0h  
4000_0D00h  
4000_0D20h  
4000_0D40h  
4000_0D60h  
4000_1000h  
4000_1400h  
4000_1480h  
4000_1500h  
4000_2400h  
4000_2C00h  
4000_4000h  
4000_4400h  
4000_4800h  
4000_4C00h  
4000_5400h  
4000_5800h  
4000_5810h  
4000_5820h  
4000_5830h  
4000_5840h  
4000_5850h  
4000_5860h  
4000_5870h  
4000_5880h  
4000_5890h  
4000_58A0h  
4000_6000h  
4000_6010h  
4000_6020h  
4000_6400h  
4000_7400h  
4000_7C00h  
4000_8C00h  
16-bit Basic Timer  
16-bit Basic Timer  
16-bit Basic Timer  
16-bit Basic Timer  
32-bit Basic Timer  
32-bit Basic Timer  
16-bit Timer-Counter  
16-bit Timer-Counter  
16-bit Timer-Counter  
16-bit Timer-Counter  
0
1
2
3
0
1
0
1
2
3
Capture-Compare Timers  
RC-ID  
0
1
2
RC-ID  
RC-ID  
DMA Controller  
EEPROM Controller  
SMB-I2C Controller  
SMB-I2C Controller  
SMB-I2C Controller  
SMB-I2C Controller  
Quad Master SPI  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit Tach  
0
1
2
3
0
1
2
3
4
5
6
7
8
9
10  
0
16-bit Tach  
1
16-bit Tach  
2
PECI  
RTOS Timer  
ADC  
Trace FIFO  
Note 1: The eSPI block occupies two logical devices, Dh and Eh  
DS00002206H-page 84  
2016-2020 Microchip Technology Inc.  
MEC170x  
Logical  
Device  
Number  
(LDN)  
Base  
Address  
Feature  
Instance  
PS-2  
0
1
2
0
1
0
1
4000_9000h  
4000_9040h  
4000_9080h  
4000_9400h  
4000_9480h  
4000_9800h  
4000_9820h  
4000_9C00h  
4000_A000h  
4000_A080h  
4000_A400h  
4000_A800h  
4000_AC80h  
4000_AE00h  
4000_B800h  
4000_B900h  
4000_BA00h  
4000_BB00h  
4000_CD00h  
4000_CD20h  
4000_E000h  
4000_FC00h  
4008_0000h  
4008_0100h  
4008_1000h  
4008_2000h  
400F_0000h  
400F_0400h  
400F_0800h  
400F_0C00h  
400F_1000h  
400F_1400h  
400F_1800h  
400F_1C00h  
400F_2000h  
400F_2400h  
400F_2800h  
400F_3000h  
400F_3400h  
400F_3800h  
400F_4000h  
400F_4400h  
PS-2  
PS-2  
GP-SPI  
GP-SPI  
Hibernation Timer  
Hibernation Timer  
Keyboard Matrix Scan  
RPM to PWM Fan Controller  
RPM to PWM Fan Controller  
VBAT Register Bank  
VBAT Powered RAM  
Week Timer  
0
1
VBAT-Powered Control Interface  
Blinking-Breathing LED  
Blinking-Breathing LED  
Blinking-Breathing LED  
Blinking-Breathing LED  
BC-Link Master  
0
1
2
3
0
1
BC-Link Master  
Interrupt Aggregator  
EC Subsystem Registers  
JTAG  
Power, Clocks and Resets  
GPIOs  
eFuse  
Mailbox  
0h  
1h  
8042 Emulated Keyboard Controller  
ACPI EC Channel  
0
1
2
3
4
2h  
ACPI EC Channel  
3h  
ACPI EC Channel  
4h  
ACPI EC Channel  
5h  
ACPI EC Channel  
6h  
ACPI PM1  
7h  
Port 92-Legacy  
8h  
UART  
0
1
9h  
UART  
Ah  
Ch  
Dh  
Eh  
10h  
11h  
LPC Interface  
eSPI Interface IO Component  
eSPI Interface Memory Component  
Embedded Memory Interface (EMI)  
Embedded Memory Interface (EMI)  
Note 1  
Note 1  
0
1
Note 1: The eSPI block occupies two logical devices, Dh and Eh  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 85  
MEC170x  
Logical  
Device  
Number  
(LDN)  
Base  
Address  
Feature  
Instance  
Embedded Memory Interface (EMI)  
Real Time Clock  
2
12h  
14h  
20h  
21h  
400F_4800h  
400F_5000h  
400F_8000h  
400F_8400h  
400F_9C00h  
400F_FF00h  
BIOS Debug Port (Port 80)  
BIOS Debug Port (Port 80)  
eSPI Virtual Wires  
0
1
Global Configuration  
3Fh  
Note 1: The eSPI block occupies two logical devices, Dh and Eh  
DS00002206H-page 86  
2016-2020 Microchip Technology Inc.  
MEC170x  
3.4  
Sleep Enable Register Assignments  
Bit  
Position  
Sleep Enable  
Register  
Clock Required  
Reset Enable  
Register  
Block  
Instance  
Register  
TEST  
eFuse  
ISPI  
0
1
Sleep Enable 0  
Sleep Enable 0  
Sleep Enable 0  
Sleep Enable 1  
Sleep Enable 1  
Sleep Enable 1  
Sleep Enable 1  
Sleep Enable 1  
Sleep Enable 1  
Sleep Enable 1  
Sleep Enable 1  
Sleep Enable 1  
Sleep Enable 1  
Sleep Enable 1  
Sleep Enable 1  
Sleep Enable 1  
Sleep Enable 1  
Sleep Enable 1  
Sleep Enable 1  
Sleep Enable 1  
Sleep Enable 1  
Sleep Enable 1  
Sleep Enable 1  
Sleep Enable 1  
Sleep Enable 1  
Sleep Enable 1  
Sleep Enable 2  
Sleep Enable 2  
Sleep Enable 2  
Sleep Enable 2  
Sleep Enable 2  
Sleep Enable 2  
Sleep Enable 2  
Sleep Enable 2  
Sleep Enable 2  
Sleep Enable 2  
Sleep Enable 2  
Clock Required 0  
Clock Required 0  
Clock Required 0  
Clock Required 1  
Clock Required 1  
Clock Required 1  
Clock Required 1  
Clock Required 1  
Clock Required 1  
Clock Required 1  
Clock Required 1  
Clock Required 1  
Clock Required 1  
Clock Required 1  
Clock Required 1  
Clock Required 1  
Clock Required 1  
Clock Required 1  
Clock Required 1  
Clock Required 1  
Clock Required 1  
Clock Required 1  
Clock Required 1  
Clock Required 1  
Clock Required 1  
Clock Required 1  
Clock Required 2  
Clock Required 2  
Clock Required 2  
Clock Required 2  
Clock Required 2  
Clock Required 2  
Clock Required 2  
Clock Required 2  
Clock Required 2  
Clock Required 2  
Clock Required 2  
Reset Enable 0  
Reset Enable 0  
Reset Enable 0  
Reset Enable 1  
Reset Enable 1  
Reset Enable 1  
Reset Enable 1  
Reset Enable 1  
Reset Enable 1  
Reset Enable 1  
Reset Enable 1  
Reset Enable 1  
Reset Enable 1  
Reset Enable 1  
Reset Enable 1  
Reset Enable 1  
Reset Enable 1  
Reset Enable 1  
Reset Enable 1  
Reset Enable 1  
Reset Enable 1  
Reset Enable 1  
Reset Enable 1  
Reset Enable 1  
Reset Enable 1  
Reset Enable 1  
Reset Enable 2  
Reset Enable 2  
Reset Enable 2  
Reset Enable 2  
Reset Enable 2  
Reset Enable 2  
Reset Enable 2  
Reset Enable 2  
Reset Enable 2  
Reset Enable 2  
2
Interrupt  
PECI  
Tach  
0
1
0
0
2
PWM  
PMC  
4
5
DMA  
6
TFDP  
7
PROCESSOR  
WDT  
8
9
SMB-I2C  
Tach  
0
1
2
1
2
3
4
5
6
7
8
10  
11  
12  
20  
21  
22  
23  
24  
25  
26  
27  
29  
30  
31  
0
Tach  
PWM  
PWM  
PWM  
PWM  
PWM  
PWM  
PWM  
PWM  
EC Register Bank  
Basic Timer 16  
Basic Timer 16  
LPC  
0
1
UART  
0
1
1
UART  
2
Global Configuration  
ACPI EC  
ACPI EC  
ACPI PM1  
8042 Emulation  
Mailbox  
12  
13  
14  
15  
16  
17  
18  
19  
19  
21  
21  
22  
22  
23  
0
1
RTC  
eSPI  
Reserved  
ACPI EC  
Reserved  
ACPI EC  
Reserved  
ACPI EC  
Reset Enable 2  
Reset Enable 2  
Reset Enable 2  
2
3
4
Sleep Enable 2  
Sleep Enable 2  
Sleep Enable 2  
Clock Required 2  
Clock Required 2  
Clock Required 2  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 87  
MEC170x  
Bit  
Position  
Sleep Enable  
Register  
Clock Required  
Register  
Reset Enable  
Register  
Block  
Instance  
Reserved  
Port 80  
23  
25  
25  
26  
26  
3
Reset Enable 2  
0
1
Sleep Enable 2  
Sleep Enable 2  
Clock Required 2  
Clock Required 2  
Reserved  
Port 80  
Reset Enable 2  
Reserved  
ADC  
Reset Enable 2  
Reset Enable 3  
Reset Enable 3  
Reset Enable 3  
Reset Enable 3  
Reset Enable 3  
Reset Enable 3  
Reset Enable 3  
Reset Enable 3  
Reset Enable 3  
Reset Enable 3  
Reset Enable 3  
Reset Enable 3  
Reset Enable 3  
Reset Enable 3  
Reset Enable 3  
Reset Enable 3  
Reset Enable 3  
Reset Enable 3  
Reset Enable 3  
Reset Enable 3  
Reset Enable 3  
Reset Enable 3  
Reset Enable 3  
Reset Enable 3  
Reset Enable 4  
Reset Enable 4  
Reset Enable 4  
Reset Enable 4  
Reset Enable 4  
Reset Enable 4  
Reset Enable 4  
Reset Enable 4  
Reset Enable 4  
Reset Enable 4  
Reset Enable 4  
Reset Enable 4  
Reset Enable 4  
Reset Enable 4  
Sleep Enable 3  
Sleep Enable 3  
Sleep Enable 3  
Sleep Enable 3  
Sleep Enable 3  
Sleep Enable 3  
Sleep Enable 3  
Sleep Enable 3  
Sleep Enable 3  
Sleep Enable 3  
Sleep Enable 3  
Sleep Enable 3  
Sleep Enable 3  
Sleep Enable 3  
Sleep Enable 3  
Sleep Enable 3  
Sleep Enable 3  
Sleep Enable 3  
Sleep Enable 3  
Sleep Enable 3  
Sleep Enable 3  
Sleep Enable 3  
Sleep Enable 3  
Sleep Enable 3  
Sleep Enable 4  
Sleep Enable 4  
Sleep Enable 4  
Sleep Enable 4  
Sleep Enable 4  
Sleep Enable 4  
Sleep Enable 4  
Sleep Enable 4  
Sleep Enable 4  
Sleep Enable 4  
Sleep Enable 4  
Sleep Enable 4  
Sleep Enable 4  
Sleep Enable 4  
Clock Required 3  
Clock Required 3  
Clock Required 3  
Clock Required 3  
Clock Required 3  
Clock Required 3  
Clock Required 3  
Clock Required 3  
Clock Required 3  
Clock Required 3  
Clock Required 3  
Clock Required 3  
Clock Required 3  
Clock Required 3  
Clock Required 3  
Clock Required 3  
Clock Required 3  
Clock Required 3  
Clock Required 3  
Clock Required 3  
Clock Required 3  
Clock Required 3  
Clock Required 3  
Clock Required 3  
Clock Required 4  
Clock Required 4  
Clock Required 4  
Clock Required 4  
Clock Required 4  
Clock Required 4  
Clock Required 4  
Clock Required 4  
Clock Required 4  
Clock Required 4  
Clock Required 4  
Clock Required 4  
Clock Required 4  
Clock Required 4  
PS2  
0
1
2
0
0
5
PS2  
6
PS2  
7
GP-SPI  
9
Hibernation Timer  
Keyscan  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
29  
30  
31  
0
RPM2PWM  
SMB-I2C  
0
1
2
3
0
1
2
0
1
2
3
0
1
3
1
SMB-I2C  
SMB-I2C  
LED  
LED  
LED  
BC Master  
GP-SPI  
Basic Timer 16  
Basic Timer 16  
Basic Timer 32  
Basic Timer 32  
LED  
Hibernation Timer  
Capture Compare Timer  
PWM  
9
10  
11  
0
PWM  
PWM  
1
16-bit Counter/Timer  
16-bit Counter/Timer  
16-bit Counter/Timer  
16-bit Counter/Timer  
RTOS Timer  
RPM2PWM  
Quad SPI Master  
BC Master  
RC_ID  
2
1
3
2
4
3
5
6
1
7
8
1
0
1
2
9
10  
11  
12  
14  
RC_ID  
RC_ID  
EEPROM  
DS00002206H-page 88  
2016-2020 Microchip Technology Inc.  
MEC170x  
3.5  
Interrupt Aggregator Bit Assignments  
Note:  
Interrupt Aggregator bits associated with GPIOs not present in the pinout for a particular device are  
Reserved.  
Agg  
IRQ  
Agg  
Bit  
HWB Instance  
Name  
Wake  
Event  
Agg Direct  
NVIC NVIC  
Interrupt Event  
Source Description  
GIRQ8  
0
GPIO140  
GPIO141  
GPIO142  
GPIO143  
GPIO144  
GPIO145  
GPIO146  
GPIO147  
GPIO150  
GPIO151  
GPIO152  
GPIO153  
GPIO154  
GPIO155  
GPIO156  
GPIO157  
GPIO160  
GPIO161  
GPIO162  
GPIO163  
GPIO164  
GPIO165  
GPIO166  
Reserved  
GPIO170  
GPIO171  
GPIO172  
GPIO173  
GPIO174  
GPIO175  
Reserved  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
-
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
-
0
N/A  
1
2
3
4
5
6
7
8
9
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
-
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
-
Reserved  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 89  
MEC170x  
Agg  
IRQ  
Agg  
Bit  
HWB Instance  
Name  
Wake  
Event  
Agg Direct  
NVIC NVIC  
Interrupt Event  
Source Description  
GIRQ9  
0
GPIO100  
GPIO101  
GPIO102  
Reserved  
GPIO104  
GPIO105  
GPIO106  
GPIO107  
GPIO110  
GPIO111  
GPIO112  
GPIO113  
GPIO114  
GPIO115  
Reserved  
Reserved  
GPIO120  
GPIO121  
GPIO122  
GPIO123  
GPIO124  
GPIO125  
GPIO126  
GPIO127  
GPIO130  
GPIO131  
GPIO132  
GPIO133  
GPIO134  
GPIO135  
Reserved  
GPIO Event  
GPIO Event  
GPIO Event  
-
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
-
1
N/A  
1
2
3
4
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
-
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
-
5
6
7
8
9
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
-
-
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
-
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
-
Reserved  
DS00002206H-page 90  
2016-2020 Microchip Technology Inc.  
MEC170x  
Agg  
IRQ  
Agg  
Bit  
HWB Instance  
Name  
Wake  
Event  
Agg Direct  
NVIC NVIC  
Interrupt Event  
Source Description  
GIRQ10  
0
GPIO040  
GPIO041  
GPIO042  
GPIO043  
GPIO044  
GPIO045  
GPIO046  
GPIO047  
GPIO050  
GPIO051  
GPIO052  
GPIO053  
GPIO054  
GPIO055  
GPIO056  
GPIO057  
GPIO060  
GPIO061  
GPIO062  
GPIO063  
GPIO064  
GPIO065  
GPIO066  
GPIO067  
GPIO070  
GPIO071  
GPIO072  
GPIO073  
Reserved  
Reserved  
Reserved  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
-
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
-
2
N/A  
1
2
3
4
5
6
7
8
9
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
-
-
-
-
Reserved  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 91  
MEC170x  
Agg  
IRQ  
Agg  
Bit  
HWB Instance  
Name  
Wake  
Event  
Agg Direct  
NVIC NVIC  
Interrupt Event  
Source Description  
GIRQ11  
0
GPIO000  
GPIO001  
GPIO002  
GPIO003  
GPIO004  
GPIO005  
GPIO006  
GPIO007  
GPIO010  
GPIO011  
GPIO012  
GPIO013  
GPIO014  
GPIO015  
GPIO016  
GPIO017  
GPIO020  
GPIO021  
GPIO022  
GPIO023  
GPIO024  
GPIO025  
GPIO026  
GPIO027  
GPIO030  
GPIO031  
GPIO032  
GPIO033  
GPIO034  
GPIO035  
GPIO036  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
3
N/A  
1
2
3
4
5
6
7
8
9
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
Reserved  
DS00002206H-page 92  
2016-2020 Microchip Technology Inc.  
MEC170x  
Agg  
IRQ  
Agg  
Bit  
HWB Instance  
Name  
Wake  
Event  
Agg Direct  
NVIC NVIC  
Interrupt Event  
Source Description  
GIRQ12  
0
GPIO200  
GPIO201  
GPIO202  
GPIO203  
GPIO204  
GPIO205  
GPIO206  
GPIO207  
GPIO210  
GPIO211  
GPIO212  
GPIO213  
GPIO214  
GPIO215  
GPIO216  
GPIO217  
Reserved  
GPIO221  
GPIO222  
GPIO223  
GPIO224  
GPIO225  
GPIO226  
GPIO227  
GPIO230  
GPIO231  
Reserved  
GPIO233  
GPIO234  
Reserved  
Reserved  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
-
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
-
4
N/A  
1
2
3
4
5
6
7
8
9
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
0
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
-
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
-
GPIO Event  
GPIO Event  
-
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
-
-
-
Reserved  
GIRQ13  
SMB-I2C Controller  
0
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
No SMB-I2C Controller 0 Interrupt  
Event  
5
20  
21  
22  
23  
1
2
SMB-I2C Controller  
1
No SMB-I2C Controller 1 Interrupt  
Event  
SMB-I2C Controller  
2
No SMB-I2C Controller 2 Interrupt  
Event  
3
SMB-I2C Controller  
3
No SMB-I2C Controller 3 Interrupt  
Event  
4-31  
Reserved  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 93  
MEC170x  
Agg  
IRQ  
Agg  
Bit  
HWB Instance  
Name  
Wake  
Event  
Agg Direct  
NVIC NVIC  
Interrupt Event  
Source Description  
GIRQ14  
0
DMA Controller  
DMA Controller  
DMA Controller  
DMA Controller  
DMA Controller  
DMA Controller  
DMA Controller  
DMA Controller  
DMA Controller  
DMA Controller  
DMA Controller  
DMA Controller  
DMA Controller  
DMA Controller  
DMA0  
No DMA Controller - Channel 0  
Interrupt Event  
6
24  
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
35  
36  
37  
1
DMA1  
DMA2  
DMA3  
DMA4  
DMA5  
DMA6  
DMA7  
DMA8  
DMA9  
DMA10  
DMA11  
DMA12  
DMA13  
No DMA Controller - Channel 1  
Interrupt Event  
2
No DMA Controller - Channel 2  
Interrupt Event  
3
No DMA Controller - Channel 3  
Interrupt Event  
4
No DMA Controller - Channel 4  
Interrupt Event  
5
No DMA Controller - Channel 5  
Interrupt Event  
6
No DMA Controller - Channel 6  
Interrupt Event  
7
No DMA Controller - Channel 7  
Interrupt Event  
8
No DMA Controller - Channel 8  
Interrupt Event  
9
No DMA Controller - Channel 9  
Interrupt Event  
10  
11  
12  
13  
No DMA Controller - Channel 10  
Interrupt Event  
No DMA Controller - Channel 11  
Interrupt Event  
No DMA Controller - Channel 12  
Interrupt Event  
No DMA Controller - Channel 13  
Interrupt Event  
14-  
31  
Reserved  
DS00002206H-page 94  
2016-2020 Microchip Technology Inc.  
MEC170x  
Agg  
IRQ  
Agg  
Bit  
HWB Instance  
Name  
Wake  
Event  
Agg Direct  
NVIC NVIC  
Interrupt Event  
Source Description  
GIRQ15  
0
1
2
UART 0  
UART 1  
EMI 0  
UART  
UART  
No UART Interrupt Event  
7
40  
41  
42  
No UART Interrupt Event  
Host-to-EC  
No Embedded Memory Interface 0 -  
Host-to-EC Interrupt  
3
4
5
6
EMI 1  
EMI 2  
Host-to-EC  
Host-to-EC  
IBF  
No Embedded Memory Interface 1 -  
Host-to-EC Interrupt  
43  
44  
45  
46  
No Embedded Memory Interface 2-  
Host-to-EC Interrupt  
ACPI EC  
Interface 0  
No ACPI EC Interface 0 - Input Buf-  
fer Full Event  
ACPI EC  
Interface 0  
OBE  
No ACPI EC Interface 0 - Output  
Buffer Empty Event, asserted  
when OBE flag goes to 1  
7
8
ACPI EC  
Interface 1  
IBF  
No ACPI EC Interface 1 - Input Buf-  
fer Full Event  
47  
48  
ACPI EC  
Interface 1  
OBE  
No ACPI EC Interface 1 - Output  
Buffer Empty Event, asserted  
when OBE flag goes to 1  
9
ACPI EC  
Interface 2  
IBF  
No ACPI EC Interface 2 - Input Buf-  
fer Full Event  
49  
50  
10  
ACPI EC  
Interface 2  
OBE  
No ACPI EC Interface 2 - Output  
Buffer Empty Event, asserted  
when OBE flag goes to 1  
11  
12  
ACPI EC  
Interface 3  
IBF  
No ACPI EC Interface 3 - Input Buf-  
fer Full Event  
51  
52  
ACPI EC  
Interface 3  
OBE  
No ACPI EC Interface 3 - Output  
Buffer Empty Event, asserted  
when OBE flag goes to 1  
13  
14  
ACPI EC  
Interface 4  
IBF  
No ACPI EC Interface 4 - Input Buf-  
fer Full Event  
53  
54  
ACPI EC  
Interface 4  
OBE  
No ACPI EC Interface 4- Output Buf-  
fer Empty Event, asserted when  
OBE flag goes to 1  
15  
16  
17  
18  
ACPI_PM1  
Interface  
PM1_CTL  
PM1_EN  
PM1_STS  
OBE  
No ACPI_PM1 Interface -  
PM1_CTL2 Interrupt Event  
55  
56  
57  
58  
ACPI_PM1  
Interface  
No ACPI_PM1 Interface - PM1_EN2  
Interrupt Event  
ACPI_PM1  
Interface  
No ACPI_PM1 Interface -  
PM1_STS2 Interrupt Event  
8042 Keyboard  
Controller  
No 8042 Keyboard Controller - Out-  
put Buffer Empty Event, asserted  
when OBE flag goes to 1  
19  
20  
8042 Keyboard  
Controller  
IBF  
No 8042 Keyboard Controller - Input  
Buffer Full Event  
59  
60  
Mailbox  
Interface  
MBX  
No Mailbox Interface - Host-to-EC  
Interrupt Event  
21  
22  
23  
24  
Reserved  
Port 80 Debug 0  
Port 80 Debug 1  
Test  
BDP_INT  
BDP_INT  
Test  
No Port 80h BIOS Debug Port Event  
No Port 80h BIOS Debug Port Event  
62  
63  
64  
-
-
2016-2020 Microchip Technology Inc.  
DS00002206H-page 95  
MEC170x  
Agg  
IRQ  
Agg  
Bit  
HWB Instance  
Name  
Wake  
Event  
Agg Direct  
NVIC NVIC  
Interrupt Event  
Source Description  
GIRQ16  
0
1
2
Public Key Engine  
Public Key Engine  
PKE ERROR  
PKE END  
RNG  
No PKE core error detected  
No PKE completed processing  
No RNG completed processing  
8
65  
66  
67  
Random Number  
Generator  
3
4
AES  
AES  
No Interrupt from AES block  
No Interrupt from SHA block  
68  
69  
Hash  
HASH  
5-31  
0
Reserved  
GIRQ17  
PECI  
PECI_INT  
TACH  
No PECI Host Event  
9
70  
71  
72  
73  
74  
75  
76  
77  
78  
1
TACH 0  
No Tachometer 0 Interrupt Event  
No Tachometer 1 Interrupt Event  
No Tachometer 2 Interrupt Event  
No Failure to achieve target RPM  
No Fan stall condition  
2
TACH 1  
TACH  
3
TACH 2  
TACH  
4
RPM2PWM 0  
RPM2PWM 0  
RPM2PWM 1  
RPM2PWM 1  
ADC Controller  
FAN_FAIL  
FAN_STALL  
FAN_FAIL  
FAN_STALL  
ADC_Single_Int  
5
6
No Failure to achieve target RPM  
No Fan stall condition  
7
8
No ADC Controller - Single-Sample  
ADC Conversion Event  
9
ADC Controller  
ADC_Repeat_Int  
No ADC Controller - Repeat-Sam-  
ple ADC Conversion Event  
79  
10  
11  
12  
13  
14  
15  
16  
RC-ID 0  
RC-ID 1  
RCID  
No 0-1 transition of RC-ID done flag  
No 0-1 transition of RC-ID done flag  
No 0-1 transition of RC-ID done flag  
No Blinking LED 0 Watchdog Event  
No Blinking LED 1 Watchdog Event  
No Blinking LED 2 Watchdog Event  
No Blinking LED 3 Watchdog Event  
Reserved  
80  
81  
82  
83  
84  
85  
86  
RCID  
RC-ID 2  
RCID  
Breathing LED 0  
Breathing LED 1  
Breathing LED 2  
Breathing LED 3  
17-24  
PWM_WDT  
PWM_WDT  
PWM_WDT  
PWM_WDT  
25  
26  
27  
28  
RTOS Timer  
RTOS Timer  
RTOS Timer  
RTOS Timer  
SWI_0  
SWI_1  
SWI_2  
SWI_3  
No Soft Interrupt request 0  
No Soft Interrupt request 1  
No Soft Interrupt request 2  
No Soft Interrupt request 3  
29-  
31  
Reserved  
DS00002206H-page 96  
2016-2020 Microchip Technology Inc.  
MEC170x  
Agg  
IRQ  
Agg  
Bit  
HWB Instance  
Name  
Wake  
Event  
Agg Direct  
NVIC NVIC  
Interrupt Event  
Source Description  
GIRQ18  
0
LPC  
LPC_INTERNAL_  
ERROR  
No LPC BAR conflict or internal bus  
10  
90  
error  
1
Quad Master  
SPI Controller  
QMSPI_INT  
No Master SPI Controller Requires  
Servicing  
91  
2
3
GP-SPI 0  
GP-SPI 0  
TXBE_STS  
RXBF_STS  
No SPI TX buffer empty  
No SPI RX buffer full  
92  
93  
94  
95  
97  
96  
99  
98  
100  
4
GP-SPI 1  
TXBE_STS  
No SPI TX buffer empty  
No SPI RX buffer full  
5
GP-SPI 1  
RXBF_STS  
6
BC-Link 0  
BC-Link 0  
BC-Link 1  
BC-Link 1  
PS2 Interface 0  
BCM_BUSY_CLR  
BCM_ERR  
No BC-Link Busy Clear Flag  
No BC-Link Error Flag Interrupt  
No BC-Link Busy Clear Flag  
No BC-Link Error Flag Interrupt  
7
8
BCM_BUSY_CLR  
BCM_ERR  
9
10  
PS2_ACT  
No PS/2 Device Interface 0 - Activity  
Interrupt Event  
11  
12  
13  
PS2 Interface 1  
PS2 Interface 2  
EEPROM  
PS2_ACT  
PS2_ACT  
EEPROM  
No PS/2 Device Interface 1 - Activity  
Interrupt Event  
101  
102  
155  
No PS/2 Device Interface 2 - Activity  
Interrupt Event  
No EEPROM Transfer Complete  
No Peripheral Channel Interrupt  
14-  
31  
Reserved  
GIRQ19  
0
1
eSPI_Slave  
eSPI_Slave  
INTR_PC  
11  
103  
104  
INTR_BM1  
No Bus Mastering Channel 1 Inter-  
rupt  
2
3
4
5
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
INTR_BM2  
INTR_LTR  
No Bus Mastering Channel 2 Inter-  
rupt  
105  
106  
107  
108  
No Peripheral Message (LTR) Inter-  
rupt  
INTR_OOB_  
UP  
No Out of Band Channel Up Inter-  
rupt  
INTR_OOB_  
DOWN  
No Out of Band Channel Down Inter-  
rupt  
6
7
8
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
INTR_FLASH  
eSPI_RESET  
No Flash Channel Interrupt  
No eSPI_RESET  
109  
110  
156  
VWIRE_ENABLE  
No Virtual Wire Channel Enable  
Asserted  
9-31  
Reserved  
GIRQ20 0-8  
9-31  
Test  
Test  
-
-
12  
N/A  
Reserved  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 97  
MEC170x  
Agg  
IRQ  
Agg  
Bit  
HWB Instance  
Name  
Wake  
Event  
Agg Direct  
NVIC NVIC  
Interrupt Event  
Source Description  
GIRQ21  
0
1
RTOS Timer  
RTOS_TIMER  
HTIMER  
Yes 32-bit RTOS Timer Event  
Yes Hibernation Timer Event  
13  
111  
112  
Hibernation Timer  
0
2
Hibernation Timer  
1
HTIMER  
Yes Hibernation Timer Event  
113  
3
4
Week Alarm  
Week Alarm  
WEEK_ALARM_INT Yes Week Alarm Interrupt.  
114  
115  
SUB_WEEK_  
ALARM_INT  
Yes Sub-Week Alarm Interrupt  
5
6
Week Alarm  
Week Alarm  
ONE_SECOND  
Yes Week Alarm - One Second Inter-  
rupt  
116  
117  
SUB_SECOND  
Yes Week Alarm - Sub-second Inter-  
rupt  
7
8
9
Reserved  
-
RTC  
RTC  
RTC  
Yes Real Time Clock Interrupt  
119  
120  
RTC ALARM  
Yes Real Time Clock Alarm  
Interrupt  
10  
11  
Reserved  
-
VBAT-Powered  
Control Interface  
VCI_IN0  
VCI_IN1  
VCI_IN2  
VCI_IN3  
VCI_IN4  
VCI_IN5  
VCI_IN6  
Yes VCI_IN0 Active-low Input Pin  
Interrupt  
122  
12  
13  
14  
15  
16  
17  
VBAT-Powered  
Control Interface  
Yes VCI_IN1 Active-low Input Pin  
Interrupt  
123  
124  
125  
126  
127  
128  
VBAT-Powered  
Control Interface  
Yes VCI_IN2 Active-low Input Pin  
Interrupt  
VBAT-Powered  
Control Interface  
Yes VCI_IN3 Active-low Input Pin  
Interrupt  
VBAT-Powered  
Control Interface  
Yes VCI_IN4 Active-low Input Pin  
Interrupt  
VBAT-Powered  
Control Interface  
Yes VCI_IN5 Active-low Input Pin  
Interrupt  
VBAT-Powered  
Control Interface  
Yes VCI_IN6 Active-low Input Pin  
Interrupt  
18  
19  
20  
21  
22  
PS2 Port  
PS2 Port  
PS2 Port  
PS2 Port  
PS2 Port  
PS2_0A_WK  
PS2_0B_WK  
PS2_1A_WK  
PS2_1B_WK  
PS2_2_WK  
Yes PS2 Wake Event. Start bit detect.  
Yes PS2 Wake Event. Start bit detect.  
Yes PS2 Wake Event. Start bit detect.  
Yes PS2 Wake Event. Start bit detect.  
Yes PS2 Wake Event. Start bit detect.  
129  
130  
131  
132  
133  
23-  
24  
Reserved  
25  
Keyscan  
KSC_INT  
Yes Keyboard Scan Interface Run-  
time Interrupt  
135  
26-  
31  
Reserved  
DS00002206H-page 98  
2016-2020 Microchip Technology Inc.  
MEC170x  
Agg  
IRQ  
Agg  
Bit  
HWB Instance  
Name  
Wake  
Event  
Agg Direct  
NVIC NVIC  
Interrupt Event  
Source Description  
GIRQ22  
0
1
2
3
4
LPC Interface  
LPC_WAKE_ONLY Yes Wake-Only Event (No Interrupt  
N/A N/A  
Generated) - LPC Traffic  
Detected  
SMB-I2C Controller  
0
SMB-I2C  
_WAKE_ONLY  
Yes Wake-Only Event (No Interrupt  
Generated) - SMB-I2C.0 START  
Detected  
SMB-I2C Controller  
1
SMB-I2C  
_WAKE_ONLY  
Yes Wake-Only Event (No Interrupt  
Generated) - SMB-I2C.1 START  
Detected  
SMB-I2C Controller  
2
SMB-I2C  
_WAKE_ONLY  
Yes Wake-Only Event (No Interrupt  
Generated) - SMB-I2C.2 START  
Detected  
SMB-I2C Controller  
3
SMB-I2C  
_WAKE_ONLY  
Yes Wake-Only Event (No Interrupt  
Generated) - SMB-I2C.3 START  
Detected  
5-8  
9
Reserved  
ESPI Interface  
ESPI_WAKE_ONLY Yes Wake-Only Event (No Interrupt  
Generated) - ESPI Traffic  
Detected  
10-  
31  
Reserved  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 99  
MEC170x  
Agg  
IRQ  
Agg  
Bit  
HWB Instance  
Name  
Wake  
Event  
Agg Direct  
NVIC NVIC  
Interrupt Event  
Source Description  
GIRQ23  
0
16-Bit  
Basic Timer 0  
Timer_Event  
No Basic Timer Event  
14  
136  
137  
138  
139  
140  
141  
142  
143  
144  
145  
146  
147  
148  
149  
150  
151  
152  
153  
154  
1
16-Bit  
Basic Timer 1  
Timer_Event  
Timer_Event  
Timer_Event  
Timer_Event  
Timer_Event  
Timer_Event  
Timer_Event  
Timer_Event  
Timer_Event  
No Basic Timer Event  
2
16-Bit  
Basic Timer 2  
No Basic Timer Event  
3
16-Bit  
Basic Timer 3  
No Basic Timer Event  
4
32-Bit  
Basic Timer 0  
No Basic Timer Event  
5
32-Bit  
Basic Timer 1  
No Basic Timer Event  
6
Counter/Timer  
0
No 16-bit Timer/Counter Event  
No 16-bit Timer/Counter Event  
No 16-bit Timer/Counter Event  
No 16-bit Timer/Counter Event  
No CCT Counter Event  
No CCT Capture 0 Event  
No CCT Capture 1 Event  
No CCT Capture 2 Event  
No CCT Capture 3 Event  
No CCT Capture 4 Event  
No CCT Capture 5 Event  
No CCT Compare 0 Event  
No CCT Compare 1 Event  
7
Counter/Timer  
1
8
Counter/Timer  
2
9
Counter/Timer  
3
10  
11  
12  
13  
14  
15  
16  
17  
18  
Capture Compare  
Timer  
CAPTURE  
TIMER  
Capture Compare  
Timer  
CAPTURE 0  
CAPTURE 1  
CAPTURE 2  
CAPTURE 3  
CAPTURE 4  
CAPTURE 5  
COMPARE 0  
COMPARE 1  
Capture Compare  
Timer  
Capture Compare  
Timer  
Capture Compare  
Timer  
Capture Compare  
Timer  
Capture Compare  
Timer  
Capture Compare  
Timer  
Capture Compare  
Timer  
19-  
31  
Reserved  
DS00002206H-page 100  
2016-2020 Microchip Technology Inc.  
MEC170x  
Agg  
IRQ  
Agg  
Bit  
HWB Instance  
Name  
Wake  
Event  
Agg Direct  
NVIC NVIC  
Interrupt Event  
Source Description  
GIRQ24  
0
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
MSVW00_SRC0  
MSVW00_SRC1  
MSVW00_SRC2  
MSVW00_SRC3  
MSVW01_SRC0  
MSVW01_SRC1  
MSVW01_SRC2  
MSVW01_SRC3  
MSVW02_SRC0  
MSVW02_SRC1  
MSVW02_SRC2  
MSVW02_SRC3  
MSVW03_SRC0  
MSVW03_SRC1  
MSVW03_SRC2  
MSVW03_SRC3  
MSVW04_SRC0  
MSVW04_SRC1  
MSVW04_SRC2  
MSVW04_SRC3  
MSVW05_SRC0  
MSVW05_SRC1  
MSVW05_SRC2  
MSVW05_SRC3  
MSVW06_SRC0  
MSVW06_SRC1  
MSVW06_SRC2  
MSVW06_SRC3  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
15 N/A  
1
2
3
4
5
6
7
8
9
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28-  
31  
Reserved  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 101  
MEC170x  
Agg  
IRQ  
Agg  
Bit  
HWB Instance  
Name  
Wake  
Event  
Agg Direct  
NVIC NVIC  
Interrupt Event  
Source Description  
GIRQ25  
0
1
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
eSPI_Slave  
MSVW07_SRC0  
MSVW07_SRC1  
MSVW07_SRC2  
MSVW07_SRC3  
MSVW08_SRC0  
MSVW08_SRC1  
MSVW08_SRC2  
MSVW08_SRC3  
MSVW09_SRC0  
MSVW09_SRC1  
MSVW09_SRC2  
MSVW09_SRC3  
MSVW10_SRC0  
MSVW10_SRC1  
MSVW10_SRC2  
MSVW10_SRC3  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
Yes M-to-S VW Interrupt Event  
16  
N/A  
2
3
4
5
6
7
8
9
10  
11  
12  
13  
14  
15  
16-  
31  
Reserved  
DS00002206H-page 102  
2016-2020 Microchip Technology Inc.  
MEC170x  
Agg  
IRQ  
Agg  
Bit  
HWB Instance  
Name  
Wake  
Event  
Agg Direct  
NVIC NVIC  
Interrupt Event  
Source Description  
GIRQ26  
0
GPIO240  
GPIO241  
GPIO242  
GPIO243  
GPIO244  
GPIO245  
GPIO246  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
17 N/A  
1
2
3
4
5
6
7
Reserved  
8
GPIO250  
GPIO Event  
Yes GPIO Interrupt Event  
9
Reserved  
Reserved  
GPIO Event  
GPIO Event  
Reserved  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
GPIO253  
GPIO254  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Reserved  
Reserved  
GPIO260  
GPIO261  
GPIO262  
GPIO263  
GPIO264  
GPIO265  
GPIO266  
GPIO267  
GPIO270  
GPIO271  
GPIO272  
GPIO273  
GPIO274  
GPIO275  
GPIO276  
GPIO Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
Yes GPIO Interrupt Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
GPIO Event  
Reserved  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 103  
MEC170x  
3.6  
GPIO Register Assignments  
TABLE 3-1:  
GPIO  
GPIO MULTIPLEXING  
MUX_CONTROL=  
00b  
MUX_CONTROL=  
01b  
MUX_CONTROL=  
10b  
MUX_CONTROL =  
11b  
GPIO000  
GPIO001  
GPIO002  
GPIO003  
GPIO004  
GPIO005  
GPIO006  
GPIO007  
GPIO010  
GPIO011  
GPIO012  
GPIO013  
GPIO014  
GPIO015  
GPIO016  
GPIO017  
GPIO020  
GPIO021  
GPIO022  
GPIO023  
GPIO024  
GPIO025  
GPIO026  
GPIO027  
GPIO030  
GPIO031  
GPIO032  
GPIO033  
GPIO034  
GPIO035  
GPIO036  
GPIO040  
GPIO041  
GPIO042  
GPIO043  
GPIO044  
GPIO045  
GPIO046  
GPIO047  
GPIO050  
GPIO000  
GPIO001  
GPIO002  
GPIO003  
GPIO004  
GPIO005  
GPIO006  
GPIO007  
GPIO010  
GPIO011  
GPIO012  
GPIO013  
GPIO014  
GPIO015  
GPIO016  
GPIO017  
GPIO020  
GPIO021  
GPIO022  
GPIO023  
GPIO024  
GPIO025  
GPIO026  
GPIO027  
GPIO030  
GPIO031  
GPIO032  
GPIO033  
GPIO034  
GPIO035  
GPIO036  
GPIO040  
GPIO041  
GPIO042  
GPIO043  
GPIO044  
GPIO045  
GPIO046  
GPIO047  
GPIO050  
VCI_IN3#  
PWM4  
PWM5  
I2C00_SDA  
I2C00_SCL  
I2C01_SDA  
I2C01_SCL  
I2C03_SDA  
I2C03_SCL  
nSMI  
SPI0_CS#  
SPI0_MOSI  
GPTP-OUT4  
GPTP-OUT7  
PS2_CLK0B  
PS2_DAT0B  
I2C07_SDA  
I2C07_SCL  
PWM6  
TOUT3  
TOUT2  
GPTP-IN6  
PWM7  
GPTP-IN7  
GPTP-IN5  
SHD_IO3  
ICT3  
KSI0  
KSI1  
KSI2  
LPCPD#  
GPTP-IN0  
GPTP-IN1  
GPTP-IN2  
TIN0  
nEM_INT  
UART_CLK  
KSI3  
TIN1  
TIN2  
KSI4  
TIN3  
KSI5  
GPTP-OUT1  
GPTP-OUT0  
RC_ID0  
RC_ID1  
PWM8  
KSI6  
KSI7  
SPI0_CLK  
CTOUT1  
RC_ID2  
GPTP-OUT2  
SPI0_MISO  
KSO0  
PECI_DAT  
SB-TSI_DAT  
SB-TSI_CLK  
VREF_VTT  
KSO1  
KSO2  
KSO3  
BCM1_DAT  
BCM1_CLK  
FAN_TACH0  
GTACH0  
DS00002206H-page 104  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 3-1:  
GPIO  
GPIO MULTIPLEXING (CONTINUED)  
MUX_CONTROL=  
00b  
MUX_CONTROL=  
MUX_CONTROL=  
10b  
MUX_CONTROL =  
11b  
01b  
GPIO051  
GPIO052  
GPIO053  
GPIO054  
GPIO055  
GPIO056  
GPIO057  
GPIO060  
GPIO061  
GPIO062  
GPIO063  
GPIO064  
GPIO065  
GPIO066  
GPIO067  
GPIO070  
GPIO071  
GPIO072  
GPIO073  
GPIO100  
GPIO101  
GPIO102  
GPIO104  
GPIO105  
GPIO106  
GPIO107  
GPIO110  
GPIO111  
GPIO112  
GPIO113  
GPIO114  
GPIO115  
GPIO120  
GPIO121  
GPIO122  
GPIO123  
GPIO124  
GPIO125  
GPIO126  
GPIO127  
GPIO130  
GPIO131  
GPIO051  
GPIO052  
GPIO053  
GPIO054  
GPIO055  
GPIO056  
GPIO057  
GPIO060  
GPIO061  
GPIO062  
GPIO063  
GPIO064  
GPIO065  
GPIO066  
GPIO067  
GPIO070  
GPIO071  
GPIO072  
GPIO073  
GPIO100  
GPIO101  
GPIO102  
GPIO104  
GPIO105  
GPIO106  
GPIO107  
GPIO110  
GPIO111  
GPIO112  
GPIO113  
GPIO114  
GPIO115  
GPIO120  
GPIO121  
GPIO122  
GPIO123  
GPIO124  
GPIO125  
GPIO126  
GPIO127  
GPIO130  
GPIO131  
FAN_TACH1  
FAN_TACH2  
PWM0  
GTACH1  
LRESET#  
GPWM0  
PWM1  
GPWM1  
PWM2  
SHD_CS#  
SHD_CLK  
PWM3  
VCC_PWRGD  
KBRST  
48MHZ_OUT  
LPCPD#  
ESPI_RESET#  
SER_IRQ  
LRESET#  
PCI_CLK  
LFRAME#  
CLKRUN#  
LAD0  
ESPI_ALERT#  
ESPI_CLK  
ESPI_CS#  
ESPI_IO0  
ESPI_IO1  
ESPI_IO2  
ESPI_IO3  
LAD1  
LAD2  
LAD3  
nEC_SCI  
UART0_TX  
UART0_RX  
PWROK  
nSMI  
KSO4  
PS2_CLK2  
PS2_DAT2  
PS2_CLK1A  
PS2_DAT1A  
PS2_CLK0A  
PS2_DAT0A  
KSO5  
KSO6  
nEC_SCI  
KSO7  
PVT_IO0  
PVT_IO1  
PVT_IO2  
PVT_CS#  
PVT_CLK  
PVT_IO3  
UART0_CTS  
TOUT1  
KSO8  
BCM0_DAT  
BCM0_CLK  
GPTP-OUT6  
GPTP-OUT5  
KSO9  
KSO10  
KSO11  
KSO12  
KSO13  
A20M  
I2C10_SDA  
I2C10_SCL  
TOUT0  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 105  
MEC170x  
TABLE 3-1:  
GPIO  
GPIO MULTIPLEXING (CONTINUED)  
MUX_CONTROL=  
00b  
MUX_CONTROL=  
01b  
MUX_CONTROL=  
10b  
MUX_CONTROL =  
11b  
GPIO132  
GPIO133  
GPIO134  
GPIO135  
GPIO140  
GPIO141  
GPIO142  
GPIO143  
GPIO144  
GPIO145  
GPIO146  
GPIO147  
GPIO150  
GPIO151  
GPIO152  
GPIO153  
GPIO154  
GPIO155  
GPIO156  
GPIO157  
GPIO160  
GPIO161  
GPIO162  
GPIO163  
GPIO165  
GPIO166  
GPIO170  
GPIO171  
GPIO172  
GPIO173  
GPIO174  
GPIO175  
GPIO200  
GPIO201  
GPIO202  
GPIO203  
GPIO204  
GPIO205  
GPIO206  
GPIO207  
GPIO210  
GPIO211  
GPIO132  
GPIO133  
GPIO134  
GPIO135  
GPIO140  
GPIO141  
GPIO142  
GPIO143  
GPIO144  
GPIO145  
GPIO146  
GPIO147  
GPIO150  
GPIO151  
GPIO152  
GPIO153  
GPIO154  
GPIO155  
GPIO156  
GPIO157  
GPIO160  
GPIO161  
GPIO162  
GPIO163  
GPIO165  
GPIO166  
GPIO170  
GPIO171  
GPIO172  
GPIO173  
GPIO174  
GPIO175  
GPIO200  
GPIO201  
GPIO202  
GPIO203  
GPIO204  
GPIO205  
GPIO206  
GPIO207  
GPIO210  
GPIO211  
I2C06_SDA  
PWM9  
KSO14  
PWM10  
UART1_RTS  
UART1_CTS  
ICT5  
I2C06_SCL  
I2C05_SDA  
I2C05_SCL  
I2C04_SDA  
I2C04_SCL  
I2C09_SDA  
I2C09_SCL  
I2C08_SDA  
I2C08_SCL  
ICT4  
SPI1_CLK  
SPI1_MOSI  
SPI1_MSIO  
SPI1_CS#  
UART0_DCD#  
UART0_DSR#  
UART0_DTR#  
UART0_RI#  
KSO15  
KSO16  
GPTP-OUT3  
LED2  
I2C02_SDA  
I2C02_SCL  
LED0  
PS2_CLK1B  
PS2_DAT1B  
LED1  
VCI_IN2#  
VCI_IN1#  
VCI_IN0#  
32KHZ_IN  
CTOUT0  
TFCLK  
UART1_TX  
UART1_RX  
TFDATA  
KSO17  
ADC00  
ADC01  
ADC02  
ADC03  
ADC04  
ADC05  
ADC06  
ADC07  
ADC08  
ADC09  
DS00002206H-page 106  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 3-1:  
GPIO  
GPIO MULTIPLEXING (CONTINUED)  
MUX_CONTROL=  
00b  
MUX_CONTROL=  
01b  
MUX_CONTROL=  
10b  
MUX_CONTROL =  
11b  
GPIO212  
GPIO213  
GPIO214  
GPIO215  
GPIO216  
GPIO217  
GPIO221  
GPIO222  
GPIO223  
GPIO224  
GPIO225  
GPIO226  
GPIO227  
GPIO230  
GPIO231  
GPIO233  
GPIO234  
GPIO240  
GPIO241  
GPIO242  
GPIO243  
GPIO244  
GPIO245  
GPIO246  
GPIO250  
GPIO253  
GPIO254  
GPIO212  
GPIO213  
GPIO214  
GPIO215  
GPIO216  
GPIO217  
GPIO221  
GPIO222  
GPIO223  
GPIO224  
GPIO225  
GPIO226  
GPIO227  
GPIO230  
GPIO231  
GPIO233  
GPIO234  
GPIO240  
GPIO241  
GPIO242  
GPIO243  
GPIO244  
GPIO245  
GPIO246  
GPIO250  
GPIO253  
GPIO254  
ADC10  
ADC11  
ADC12  
ADC13  
ADC14  
ADC15  
GPTP-IN3  
SER_IRQ  
32KHZ_OUT  
SHD_IO0  
SHD_IO1  
GPTP-IN4  
UART0_RTS  
LED3  
SHD_IO2  
VCI_IN4#  
TABLE 3-2:  
GPIO PIN CONTROL REGISTERS DEFAULTS  
Pin Control  
Pin Control 2  
Register  
Default Value  
(Hex)  
Pin Control  
Register  
Pin Control  
Register  
Pin Control 2  
Register  
Offset (Hex)  
GPIO  
Name  
Register  
Default Value  
(Hex)  
Offset (Hex)  
Default Function  
GPIO000  
GPIO001  
GPIO002  
GPIO003  
GPIO004  
GPIO005  
GPIO006  
GPIO007  
GPIO010  
GPIO011  
0000  
0004  
0008  
000C  
0010  
0014  
0018  
001C  
0020  
0024  
00001040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
VCI_IN3#  
GPIO001  
GPIO002  
GPIO003  
GPIO004  
GPIO005  
GPIO006  
GPIO007  
GPIO010  
GPIO011  
500  
504  
508  
50C  
510  
514  
518  
51C  
520  
524  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 107  
MEC170x  
TABLE 3-2:  
GPIO PIN CONTROL REGISTERS DEFAULTS (CONTINUED)  
Pin Control  
Register  
Default Value  
(Hex)  
Pin Control 2  
Register  
Default Value  
(Hex)  
Pin Control  
Register  
Offset (Hex)  
Pin Control  
Register  
Default Function  
Pin Control 2  
Register  
Offset (Hex)  
GPIO  
Name  
GPIO012  
GPIO013  
GPIO014  
GPIO015  
GPIO016  
GPIO017  
GPIO020  
GPIO021  
GPIO022  
GPIO023  
GPIO024  
GPIO025  
GPIO026  
GPIO027  
GPIO030  
GPIO031  
GPIO032  
GPIO033  
GPIO034  
GPIO035  
GPIO036  
GPIO040  
GPIO041  
GPIO042  
GPIO043  
GPIO044  
GPIO045  
GPIO046  
GPIO047  
GPIO050  
GPIO051  
GPIO052  
GPIO053  
GPIO054  
GPIO055  
GPIO056  
(GPIO057)  
GPIO060  
GPIO061  
GPIO062  
GPIO063  
GPIO064  
0028  
002C  
0030  
0034  
0038  
003C  
0040  
0044  
0048  
004C  
0050  
0054  
0058  
005C  
0060  
0064  
0068  
006C  
0070  
0074  
0078  
0080  
0084  
0088  
008C  
0090  
0094  
0098  
009C  
00A0  
00A4  
00A8  
00AC  
00B0  
00B4  
00B8  
00BC  
00C0  
00C4  
00C8  
00CC  
00D0  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00001040  
00000040  
00000040  
00000240  
00000040  
00001000  
GPIO012  
GPIO013  
GPIO014  
GPIO015  
GPIO016  
GPIO017  
GPIO020  
GPIO021  
GPIO022  
GPIO023  
GPIO024  
GPIO025  
GPIO026  
GPIO027  
GPIO030  
GPIO031  
GPIO032  
GPIO033  
GPIO034  
GPIO035  
GPIO036  
GPIO040  
GPIO041  
GPIO042  
GPIO043  
GPIO044  
GPIO045  
GPIO046  
GPIO047  
GPIO050  
GPIO051  
GPIO052  
GPIO053  
GPIO054  
GPIO055  
GPIO056  
VCC_PWRGD  
GPIO060  
GPIO061  
GPIO062  
GPIO063  
LRESET#  
528  
52C  
530  
534  
538  
53C  
540  
544  
548  
54C  
550  
554  
558  
55C  
560  
564  
568  
56C  
570  
574  
578  
580  
584  
588  
58C  
590  
594  
598  
59C  
5A0  
5A4  
5A8  
5AC  
5B0  
5B4  
5B8  
5BC  
5C0  
5C4  
5C8  
5CC  
5D0  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
DS00002206H-page 108  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 3-2:  
GPIO PIN CONTROL REGISTERS DEFAULTS (CONTINUED)  
Pin Control  
Pin Control 2  
Register  
Default Value  
(Hex)  
Pin Control  
Register  
Pin Control  
Register  
Pin Control 2  
Register  
GPIO  
Name  
Register  
Default Value  
(Hex)  
Offset (Hex)  
Default Function  
Offset (Hex)  
GPIO065  
GPIO066  
GPIO067  
GPIO070  
GPIO071  
GPIO072  
GPIO073  
GPIO100  
GPIO101  
GPIO102  
GPIO104  
GPIO105  
GPIO106  
GPIO107  
GPIO110  
GPIO111  
GPIO112  
GPIO113  
GPIO114  
GPIO115  
GPIO120  
GPIO121  
GPIO122  
GPIO123  
GPIO124  
GPIO125  
GPIO126  
GPIO127  
GPIO130  
GPIO131  
GPIO132  
GPIO133  
GPIO134  
GPIO135  
GPIO140  
GPIO141  
GPIO142  
GPIO143  
GPIO144  
GPIO145  
GPIO146  
GPIO147  
00D4  
00D8  
00DC  
00E0  
00E4  
00E8  
00EC  
0100  
0104  
0108  
0110  
0114  
0118  
011C  
0120  
0124  
0128  
012C  
0130  
0134  
0140  
0144  
0148  
014C  
0150  
0154  
0158  
015C  
0160  
0164  
0168  
016C  
0170  
0174  
0180  
0184  
0188  
018C  
0190  
0194  
0198  
019C  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
GPIO065  
GPIO066  
GPIO067  
GPIO070  
GPIO071  
GPIO072  
GPIO073  
GPIO100  
GPIO101  
GPIO102  
GPIO104  
GPIO105  
GPIO106  
GPIO107  
GPIO110  
GPIO111  
GPIO112  
GPIO113  
GPIO114  
GPIO115  
GPIO120  
GPIO121  
GPIO122  
GPIO123  
GPIO124  
GPIO125  
GPIO126  
GPIO127  
GPIO130  
GPIO131  
GPIO132  
GPIO133  
GPIO134  
GPIO135  
GPIO140  
GPIO141  
GPIO142  
GPIO143  
GPIO144  
GPIO145  
GPIO146  
GPIO147  
5D4  
5D8  
5DC  
5E0  
5E4  
5E8  
5EC  
600  
604  
608  
610  
614  
618  
61C  
620  
624  
628  
62C  
630  
634  
640  
644  
648  
64C  
650  
654  
658  
65C  
660  
664  
668  
66C  
670  
674  
680  
684  
688  
68C  
690  
694  
698  
69C  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 109  
MEC170x  
TABLE 3-2:  
GPIO PIN CONTROL REGISTERS DEFAULTS (CONTINUED)  
Pin Control  
Register  
Default Value  
(Hex)  
Pin Control 2  
Register  
Default Value  
(Hex)  
Pin Control  
Register  
Offset (Hex)  
Pin Control  
Register  
Default Function  
Pin Control 2  
Register  
Offset (Hex)  
GPIO  
Name  
GPIO150  
GPIO151  
GPIO152  
GPIO153  
GPIO154  
GPIO155  
GPIO156  
GPIO157  
GPIO160  
GPIO161  
GPIO162  
GPIO163  
GPIO165  
GPIO166  
GPIO170  
GPIO171  
GPIO172  
GPIO173  
GPIO174  
GPIO175  
GPIO200  
GPIO201  
GPIO202  
GPIO203  
GPIO204  
GPIO205  
GPIO206  
GPIO207  
GPIO210  
GPIO211  
GPIO212  
GPIO213  
GPIO214  
GPIO215  
GPIO216  
GPIO217  
GPIO221  
GPIO222  
GPIO223  
GPIO224  
GPIO225  
GPIO226  
01A0  
01A4  
01A8  
01AC  
01B0  
01B4  
01B8  
01BC  
01C0  
01C4  
01C8  
01CC  
01D4  
01D8  
01E0  
01E4  
01E8  
01EC  
01F0  
01F4  
0200  
0204  
0208  
020C  
0210  
0214  
0218  
021C  
0220  
0224  
0228  
022C  
0230  
0234  
0238  
023C  
0244  
0248  
024C  
0250  
0254  
0258  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00001040  
00001040  
00001040  
00000040  
00000040  
00000040  
00000041  
00000040  
00000040  
00000040  
00000040  
00001040  
00001040  
00001040  
00001040  
00001040  
00001040  
00001040  
00001040  
00001040  
00001040  
00001040  
00001040  
00001040  
00001040  
00001040  
00001040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
GPIO150  
GPIO151  
GPIO152  
GPIO153  
GPIO154  
GPIO155  
GPIO156  
GPIO157  
GPIO160  
VCI_IN2#  
VCI_IN1#  
VCI_IN0#  
GPIO165  
GPIO166  
GPIO170  
GPIO171  
GPIO172  
GPIO173  
GPIO174  
GPIO175  
ADC00  
6A0  
6A4  
6A8  
6AC  
6B0  
6B4  
6B8  
6BC  
6C0  
6C4  
6C8  
6CC  
6D4  
6D8  
6E0  
6E4  
6E8  
6EC  
6F0  
6F4  
700  
704  
708  
70C  
710  
714  
718  
71C  
720  
724  
728  
72C  
730  
734  
738  
73C  
744  
748  
74C  
750  
754  
758  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
ADC01  
ADC02  
ADC03  
ADC04  
ADC05  
ADC06  
ADC07  
ADC08  
ADC09  
ADC10  
ADC11  
ADC12  
ADC13  
ADC14  
ADC15  
GPIO221  
GPIO222  
GPIO223  
GPIO224  
GPIO225  
GPIO226  
DS00002206H-page 110  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 3-2:  
GPIO PIN CONTROL REGISTERS DEFAULTS (CONTINUED)  
Pin Control  
Pin Control 2  
Register  
Default Value  
(Hex)  
Pin Control  
Register  
Pin Control  
Register  
Pin Control 2  
Register  
GPIO  
Name  
Register  
Default Value  
(Hex)  
Offset (Hex)  
Default Function  
Offset (Hex)  
GPIO227  
GPIO230  
GPIO231  
GPIO233  
GPIO234  
GPIO240  
GPIO241  
GPIO242  
GPIO243  
GPIO244  
GPIO245  
GPIO246  
GPIO250  
GPIO253  
GPIO254  
025C  
0260  
0264  
026C  
0270  
0280  
0284  
0288  
028C  
0290  
0294  
0298  
02A0  
02AC  
02B0  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
00000040  
GPIO227  
GPIO230  
GPIO231  
GPIO233  
VCI_IN4#  
GPIO240  
GPIO241  
GPIO242  
GPIO243  
GPIO244  
GPIO245  
GPIO246  
GPIO250  
GPIO253  
GPIO254  
75C  
760  
764  
76C  
770  
780  
784  
788  
78C  
790  
794  
798  
7A0  
7AC  
7B0  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
000  
TABLE 3-3:  
Offset  
GPIO INPUT AND OUTPUT REGISTERS  
Register Name  
300h  
304h  
308h  
30Ch  
310h  
314h  
380h  
384h  
388h  
38Ch  
390h  
394h  
Input GPIO[036:000] Register  
Input GPIO[076:040] Register  
Input GPIO[136:100] Register  
Input GPIO[176:140] Register  
Input GPIO[236:200] Register  
Input GPIO[276:240] Register  
Output GPIO[036:000] Register  
Output GPIO[076:040] Register  
Output GPIO[136:100] Register  
Output GPIO[176:140] Register  
Output GPIO[236:200] Register  
Output GPIO[276:240] Register  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 111  
MEC170x  
3.7  
Register Map  
Register  
Address  
Block  
Instance  
Register  
Watchdog Timer  
0
0
0
0
0
0
0
0
0
1
1
1
1
1
2
2
2
2
2
3
3
3
3
3
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
WDT Load Register  
40000000h  
40000004h  
40000008h  
4000000Ch  
40000C00h  
40000C04h  
40000C08h  
40000C0Ch  
40000C10h  
40000C20h  
40000C24h  
40000C28h  
40000C2Ch  
40000C30h  
40000C40h  
40000C44h  
40000C48h  
40000C4Ch  
40000C50h  
40000C60h  
40000C64h  
40000C68h  
40000C6Ch  
40000C70h  
40000C80h  
40000C84h  
40000C88h  
40000C8Ch  
40000C90h  
40000CA0h  
40000CA4h  
40000CA8h  
40000CACh  
40000CB0h  
40000D00h  
40000D04h  
40000D08h  
40000D0Ch  
40000D20h  
40000D24h  
40000D28h  
Watchdog Timer  
WDT Control Register  
WDT Kick Register  
Watchdog Timer  
Watchdog Timer  
WDT Count Register  
16-bit Basic Timer  
16-bit Basic Timer  
16-bit Basic Timer  
16-bit Basic Timer  
16-bit Basic Timer  
16-bit Basic Timer  
16-bit Basic Timer  
16-bit Basic Timer  
16-bit Basic Timer  
16-bit Basic Timer  
16-bit Basic Timer  
16-bit Basic Timer  
16-bit Basic Timer  
16-bit Basic Timer  
16-bit Basic Timer  
16-bit Basic Timer  
16-bit Basic Timer  
16-bit Basic Timer  
16-bit Basic Timer  
16-bit Basic Timer  
32-bit Basic Timer  
32-bit Basic Timer  
32-bit Basic Timer  
32-bit Basic Timer  
32-bit Basic Timer  
32-bit Basic Timer  
32-bit Basic Timer  
32-bit Basic Timer  
32-bit Basic Timer  
32-bit Basic Timer  
16-bit Counter Timer  
16-bit Counter Timer  
16-bit Counter Timer  
16-bit Counter Timer  
16-bit Counter Timer  
16-bit Counter Timer  
16-bit Counter Timer  
Timer Count Register  
Timer Preload Register  
Timer Status Register  
Timer Int Enable Register  
Timer Control Register  
Timer Count Register  
Timer Preload Register  
Timer Status Register  
Timer Int Enable Register  
Timer Control Register  
Timer Count Register  
Timer Preload Register  
Timer Status Register  
Timer Int Enable Register  
Timer Control Register  
Timer Count Register  
Timer Preload Register  
Timer Status Register  
Timer Int Enable Register  
Timer Control Register  
Timer Count Register  
Timer Preload Register  
Timer Status Register  
Timer Int Enable Register  
Timer Control Register  
Timer Count Register  
Timer Preload Register  
Timer Status Register  
Timer Int Enable Register  
Timer Control Register  
Timer x Control Register  
Timer x Clock and Event Control Register  
Timer x Reload Register  
Timer x Count Register  
Timer x Control Register  
Timer x Clock and Event Control Register  
Timer x Reload Register  
DS00002206H-page 112  
2016-2020 Microchip Technology Inc.  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
Timer x Count Register  
16-bit Counter Timer  
16-bit Counter Timer  
16-bit Counter Timer  
16-bit Counter Timer  
16-bit Counter Timer  
16-bit Counter Timer  
16-bit Counter Timer  
16-bit Counter Timer  
16-bit Counter Timer  
Capture Compare Timer  
Capture Compare Timer  
Capture Compare Timer  
Capture Compare Timer  
Capture Compare Timer  
Capture Compare Timer  
Capture Compare Timer  
Capture Compare Timer  
Capture Compare Timer  
Capture Compare Timer  
Capture Compare Timer  
Capture Compare Timer  
RC-ID  
1
2
2
2
2
3
3
3
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
2
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
40000D2Ch  
40000D40h  
40000D44h  
40000D48h  
40000D4Ch  
40000D60h  
40000D64h  
40000D68h  
40000D6Ch  
Timer x Control Register  
Timer x Clock and Event Control Register  
Timer x Reload Register  
Timer x Count Register  
Timer x Control Register  
Timer x Clock and Event Control Register  
Timer x Reload Register  
Timer x Count Register  
Capture and Compare Timer Control Register  
Capture Control 0 Register  
Capture Control 1 Register  
Free Running Timer Register  
Capture 0 Register  
40001000h  
40001004h  
40001008h  
4000100Ch  
40001010h  
40001014h  
40001018h  
4000101Ch  
40001020h  
40001024h  
40001028h  
4000102Ch  
40001400h  
40001404h  
40001480h  
40001484h  
40001500h  
40001504h  
40002400h  
40002404h  
40002408h  
40002440h  
40002444h  
40002448h  
4000244Ch  
40002450h  
40002454h  
40002458h  
4000245Ch  
40002460h  
40002464h  
40002468h  
4000246Ch  
40002480h  
Capture 1 Register  
Capture 2 Register  
Capture 3 Register  
Capture 4 Register  
Capture 5 Register  
Compare 0 Register  
Compare 1 Register  
RC_ID Control Register  
RC-ID  
RC_ID Data Register  
RC-ID  
RC_ID Control Register  
RC-ID  
RC_ID Data Register  
RC-ID  
RC_ID Control Register  
RC-ID  
RC_ID Data Register  
DMA Controller  
DMA Main Control Register  
DMA Data Packet Register  
TEST  
DMA Controller  
DMA Controller  
DMA Channel  
DMA Channel N Activate Register  
DMA Channel N Memory Start Address Register  
DMA Channel N Memory End Address Register  
DMA Channel N Device Address  
DMA Channel N Control Register  
DMA Channel N Interrupt Status Register  
DMA Channel N Interrupt Enable Register  
TEST  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
Channel N CRC Enable Register  
Channel N CRC Data Register  
Channel N CRC Post Status Register  
TEST  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel N Activate Register  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 113  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
DMA Channel N Memory Start Address Register  
DMA Channel N Memory End Address Register  
DMA Channel N Device Address  
DMA Channel N Control Register  
DMA Channel N Interrupt Status Register  
DMA Channel N Interrupt Enable Register  
TEST  
40002484h  
40002488h  
4000248Ch  
40002490h  
40002494h  
40002498h  
4000249Ch  
400024A0h  
400024A4h  
400024A8h  
400024ACh  
400024C0h  
400024C4h  
400024C8h  
400024CCh  
400024D0h  
400024D4h  
400024D8h  
400024DCh  
40002500h  
40002504h  
40002508h  
4000250Ch  
40002510h  
40002514h  
40002518h  
4000251Ch  
40002540h  
40002544h  
40002548h  
4000254Ch  
40002550h  
40002554h  
40002558h  
4000255Ch  
40002580h  
40002584h  
40002588h  
4000258Ch  
40002590h  
40002594h  
40002598h  
4000259Ch  
Channel N Fill Enable Register  
Channel N Fill Data Register  
Channel N Fill Status Register  
TEST  
DMA Channel N Activate Register  
DMA Channel N Memory Start Address Register  
DMA Channel N Memory End Address Register  
DMA Channel N Device Address  
DMA Channel N Control Register  
DMA Channel N Interrupt Status Register  
DMA Channel N Interrupt Enable Register  
TEST  
DMA Channel N Activate Register  
DMA Channel N Memory Start Address Register  
DMA Channel N Memory End Address Register  
DMA Channel N Device Address  
DMA Channel N Control Register  
DMA Channel N Interrupt Status Register  
DMA Channel N Interrupt Enable Register  
TEST  
DMA Channel N Activate Register  
DMA Channel N Memory Start Address Register  
DMA Channel N Memory End Address Register  
DMA Channel N Device Address  
DMA Channel N Control Register  
DMA Channel N Interrupt Status Register  
DMA Channel N Interrupt Enable Register  
TEST  
DMA Channel N Activate Register  
DMA Channel N Memory Start Address Register  
DMA Channel N Memory End Address Register  
DMA Channel N Device Address  
DMA Channel N Control Register  
DMA Channel N Interrupt Status Register  
DMA Channel N Interrupt Enable Register  
TEST  
DS00002206H-page 114  
2016-2020 Microchip Technology Inc.  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
6
6
DMA Channel N Activate Register  
400025C0h  
DMA Channel N Memory Start Address Register  
DMA Channel N Memory End Address Register  
DMA Channel N Device Address  
400025C4h  
400025C8h  
400025CCh  
400025D0h  
400025D4h  
400025D8h  
400025DCh  
40002600h  
40002604h  
40002608h  
4000260Ch  
40002610h  
40002614h  
40002618h  
4000261Ch  
40002640h  
40002644h  
40002648h  
4000264Ch  
40002650h  
40002654h  
40002658h  
4000265Ch  
40002680h  
40002684h  
40002688h  
4000268Ch  
40002690h  
40002694h  
40002698h  
4000269Ch  
400026C0h  
400026C4h  
400026C8h  
400026CCh  
400026D0h  
400026D4h  
400026D8h  
400026DCh  
40002700h  
40002704h  
40002708h  
6
6
6
DMA Channel N Control Register  
DMA Channel N Interrupt Status Register  
DMA Channel N Interrupt Enable Register  
TEST  
6
6
6
7
DMA Channel N Activate Register  
DMA Channel N Memory Start Address Register  
DMA Channel N Memory End Address Register  
DMA Channel N Device Address  
7
7
7
7
DMA Channel N Control Register  
DMA Channel N Interrupt Status Register  
DMA Channel N Interrupt Enable Register  
TEST  
7
7
7
8
DMA Channel N Activate Register  
DMA Channel N Memory Start Address Register  
DMA Channel N Memory End Address Register  
DMA Channel N Device Address  
8
8
8
8
DMA Channel N Control Register  
DMA Channel N Interrupt Status Register  
DMA Channel N Interrupt Enable Register  
TEST  
8
8
8
9
DMA Channel N Activate Register  
DMA Channel N Memory Start Address Register  
DMA Channel N Memory End Address Register  
DMA Channel N Device Address  
9
9
9
9
DMA Channel N Control Register  
DMA Channel N Interrupt Status Register  
DMA Channel N Interrupt Enable Register  
TEST  
9
9
9
10  
10  
10  
10  
10  
10  
10  
10  
11  
11  
11  
DMA Channel N Activate Register  
DMA Channel N Memory Start Address Register  
DMA Channel N Memory End Address Register  
DMA Channel N Device Address  
DMA Channel N Control Register  
DMA Channel N Interrupt Status Register  
DMA Channel N Interrupt Enable Register  
TEST  
DMA Channel N Activate Register  
DMA Channel N Memory Start Address Register  
DMA Channel N Memory End Address Register  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 115  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
DMA Channel  
EEPROM Controller  
EEPROM Controller  
EEPROM Controller  
EEPROM Controller  
EEPROM Controller  
EEPROM Controller  
EEPROM Controller  
EEPROM Controller  
EEPROM Controller  
SMB-I2C  
11  
11  
11  
11  
11  
12  
12  
12  
12  
12  
12  
12  
12  
13  
13  
13  
13  
13  
13  
13  
13  
0
DMA Channel N Device Address  
DMA Channel N Control Register  
DMA Channel N Interrupt Status Register  
DMA Channel N Interrupt Enable Register  
TEST  
4000270Ch  
40002710h  
40002714h  
40002718h  
4000271Ch  
40002740h  
40002744h  
40002748h  
4000274Ch  
40002750h  
40002754h  
40002758h  
4000275Ch  
40002780h  
40002784h  
40002788h  
4000278Ch  
40002790h  
40002794h  
40002798h  
4000279Ch  
40002C00h  
40002C04h  
40002C08h  
40002C0Ch  
40002C10h  
40002C14h  
40002C18h  
40002C1Ch  
40002C20h  
40004000h  
40004000h  
40004004h  
40004008h  
4000400Ch  
40004010h  
40004014h  
40004018h  
40004020h  
40004024h  
40004028h  
4000402Ch  
40004030h  
DMA Channel N Activate Register  
DMA Channel N Memory Start Address Register  
DMA Channel N Memory End Address Register  
DMA Channel N Device Address  
DMA Channel N Control Register  
DMA Channel N Interrupt Status Register  
DMA Channel N Interrupt Enable Register  
TEST  
DMA Channel N Activate Register  
DMA Channel N Memory Start Address Register  
DMA Channel N Memory End Address Register  
DMA Channel N Device Address  
DMA Channel N Control Register  
DMA Channel N Interrupt Status Register  
DMA Channel N Interrupt Enable Register  
TEST  
EEPROM Mode Register  
0
EEPROM Execute Register  
EEPROM Status Register  
EEPROM Interrupt Enable Register  
EEPROM Password Register  
EEPROM Unlock Register  
EEPROM lock Register  
0
0
0
0
0
0
TEST  
0
EEPROM Buffer Register  
0
Control Register  
SMB-I2C  
0
Status Register  
SMB-I2C  
0
Own Address Register  
SMB-I2C  
0
Data Register  
SMB-I2C  
0
Master Command Register  
Slave Command Register  
SMB-I2C  
0
SMB-I2C  
0
PEC Register  
SMB-I2C  
0
Repeated START Hold Time Register  
Completion Register  
SMB-I2C  
0
SMB-I2C  
0
Idle Scaling Register  
SMB-I2C  
0
Configuration Register  
SMB-I2C  
0
Bus Clock Register  
SMB-I2C  
0
Block ID Register  
DS00002206H-page 116  
2016-2020 Microchip Technology Inc.  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
Revision Register  
40004034h  
40004038h  
4000403Ch  
40004040h  
40004044h  
40004048h  
4000404Ch  
40004050h  
40004054h  
40004058h  
4000405Ch  
40004060h  
40004064h  
40004068h  
40004400h  
40004400h  
40004404h  
40004408h  
4000440Ch  
40004410h  
40004414h  
40004418h  
40004420h  
40004424h  
40004428h  
4000442Ch  
40004430h  
40004434h  
40004438h  
4000443Ch  
40004440h  
40004444h  
40004448h  
4000444Ch  
40004450h  
40004454h  
40004458h  
4000445Ch  
40004460h  
40004464h  
40004468h  
40004800h  
40004800h  
Bit-Bang Control Register  
TEST  
Data Timing Register  
Time-Out Scaling Register  
Slave Transmit Buffer Register  
Slave Receive Buffer Register  
Master Transmit Buffer Register  
Master Receive Buffer Register  
TEST  
TEST  
Wake Status Register  
Wake Enable Register  
TEST  
Control Register  
Status Register  
Own Address Register  
Data Register  
Master Command Register  
Slave Command Register  
PEC Register  
Repeated START Hold Time Register  
Completion Register  
Idle Scaling Register  
Configuration Register  
Bus Clock Register  
Block ID Register  
Revision Register  
Bit-Bang Control Register  
TEST  
Data Timing Register  
Time-Out Scaling Register  
Slave Transmit Buffer Register  
Slave Receive Buffer Register  
Master Transmit Buffer Register  
Master Receive Buffer Register  
TEST  
TEST  
Wake Status Register  
Wake Enable Register  
TEST  
Control Register  
Status Register  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 117  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
Own Address Register  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
40004804h  
40004808h  
4000480Ch  
40004810h  
40004814h  
40004818h  
40004820h  
40004824h  
40004828h  
4000482Ch  
40004830h  
40004834h  
40004838h  
4000483Ch  
40004840h  
40004844h  
40004848h  
4000484Ch  
40004850h  
40004854h  
40004858h  
4000485Ch  
40004860h  
40004864h  
40004868h  
40004C00h  
40004C00h  
40004C04h  
40004C08h  
40004C0Ch  
40004C10h  
40004C14h  
40004C18h  
40004C20h  
40004C24h  
40004C28h  
40004C2Ch  
40004C30h  
40004C34h  
40004C38h  
40004C3Ch  
40004C40h  
40004C44h  
Data Register  
Master Command Register  
Slave Command Register  
PEC Register  
Repeated START Hold Time Register  
Completion Register  
Idle Scaling Register  
Configuration Register  
Bus Clock Register  
Block ID Register  
Revision Register  
Bit-Bang Control Register  
TEST  
Data Timing Register  
Time-Out Scaling Register  
Slave Transmit Buffer Register  
Slave Receive Buffer Register  
Master Transmit Buffer Register  
Master Receive Buffer Register  
TEST  
TEST  
Wake Status Register  
Wake Enable Register  
TEST  
Control Register  
Status Register  
Own Address Register  
Data Register  
Master Command Register  
Slave Command Register  
PEC Register  
Repeated START Hold Time Register  
Completion Register  
Idle Scaling Register  
Configuration Register  
Bus Clock Register  
Block ID Register  
Revision Register  
Bit-Bang Control Register  
TEST  
Data Timing Register  
Time-Out Scaling Register  
DS00002206H-page 118  
2016-2020 Microchip Technology Inc.  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
SMB-I2C  
QMSPI  
3
3
3
3
3
3
3
3
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
2
2
2
2
3
3
3
3
4
4
Slave Transmit Buffer Register  
Slave Receive Buffer Register  
Master Transmit Buffer Register  
Master Receive Buffer Register  
TEST  
40004C48h  
40004C4Ch  
40004C50h  
40004C54h  
40004C58h  
40004C5Ch  
40004C60h  
40004C64h  
40004C68h  
40005400h  
40005404h  
40005408h  
4000540Ch  
40005410h  
40005414h  
40005418h  
4000541Ch  
40005420h  
40005424h  
40005428h  
40005430h  
40005434h  
40005438h  
4000543Ch  
40005440h  
40005800h  
40005804h  
40005808h  
4000580Ch  
40005810h  
40005814h  
40005818h  
4000581Ch  
40005820h  
40005824h  
40005828h  
4000582Ch  
40005830h  
40005834h  
40005838h  
4000583Ch  
40005840h  
40005844h  
TEST  
Wake Status Register  
Wake Enable Register  
TEST  
QMSPI Mode Register  
QMSPI  
QMSPI Control Register  
QMSPI  
QMSPI Execute Register  
QMSPI  
QMSPI Interface Control Register  
QMSPI Status Register  
QMSPI  
QMSPI  
QMSPI Buffer Count Status Register  
QMSPI Interrupt Enable Register  
QMSPI Buffer Count Trigger Register  
QMSPI Transmit Buffer Register  
QMSPI Receive Buffer Register  
QMSPI Chip Select Timing Register  
QMSPI Description Buffer 0 Register  
QMSPI Description Buffer 1 Register  
QMSPI Description Buffer 2 Register  
QMSPI Description Buffer 3 Register  
QMSPI Description Buffer 4 Register  
PWMx Counter ON Time Register  
PWMx Counter OFF Time Register  
PWMx Configuration Register  
TEST  
QMSPI  
QMSPI  
QMSPI  
QMSPI  
QMSPI  
QMSPI  
QMSPI  
QMSPI  
QMSPI  
QMSPI  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
PWMx Counter ON Time Register  
PWMx Counter OFF Time Register  
PWMx Configuration Register  
TEST  
PWMx Counter ON Time Register  
PWMx Counter OFF Time Register  
PWMx Configuration Register  
TEST  
PWMx Counter ON Time Register  
PWMx Counter OFF Time Register  
PWMx Configuration Register  
TEST  
PWMx Counter ON Time Register  
PWMx Counter OFF Time Register  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 119  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit PWM  
16-bit Tach  
16-bit Tach  
16-bit Tach  
16-bit Tach  
16-bit Tach  
16-bit Tach  
16-bit Tach  
16-bit Tach  
16-bit Tach  
16-bit Tach  
16-bit Tach  
16-bit Tach  
PECI  
4
4
PWMx Configuration Register  
TEST  
40005848h  
4000584Ch  
40005850h  
40005854h  
40005858h  
4000585Ch  
40005860h  
40005864h  
40005868h  
4000586Ch  
40005870h  
40005874h  
40005878h  
4000587Ch  
40005880h  
40005884h  
40005888h  
4000588Ch  
40005890h  
40005894h  
40005898h  
4000589Ch  
400058A0h  
400058A4h  
400058A8h  
400058ACh  
40006000h  
40006004h  
40006008h  
4000600Ch  
40006010h  
40006014h  
40006018h  
4000601Ch  
40006020h  
40006024h  
40006028h  
4000602Ch  
40006400h  
40006404h  
40006408h  
4000640Ch  
40006410h  
5
PWMx Counter ON Time Register  
PWMx Counter OFF Time Register  
PWMx Configuration Register  
TEST  
5
5
5
6
PWMx Counter ON Time Register  
PWMx Counter OFF Time Register  
PWMx Configuration Register  
TEST  
6
6
6
7
PWMx Counter ON Time Register  
PWMx Counter OFF Time Register  
PWMx Configuration Register  
TEST  
7
7
7
8
PWMx Counter ON Time Register  
PWMx Counter OFF Time Register  
PWMx Configuration Register  
TEST  
8
8
8
9
PWMx Counter ON Time Register  
PWMx Counter OFF Time Register  
PWMx Configuration Register  
TEST  
9
9
9
10  
10  
10  
10  
0
PWMx Counter ON Time Register  
PWMx Counter OFF Time Register  
PWMx Configuration Register  
TEST  
TACHx Control Register  
TACHx Status Register  
TACHx High Limit Register  
TACHx Low Limit Register  
TACHx Control Register  
TACHx Status Register  
TACHx High Limit Register  
TACHx Low Limit Register  
TACHx Control Register  
TACHx Status Register  
TACHx High Limit Register  
TACHx Low Limit Register  
Write Data Register  
0
0
0
1
1
1
1
2
2
2
2
0
PECI  
0
Read Data Register  
PECI  
0
Control Register  
PECI  
0
Status Register 1  
PECI  
0
Status Register 2  
DS00002206H-page 120  
2016-2020 Microchip Technology Inc.  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
PECI  
PECI  
PECI  
PECI  
PECI  
PECI  
PECI  
PECI  
PECI  
RTOS Timer  
RTOS Timer  
RTOS Timer  
RTOS Timer  
ADC  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
Error Register  
40006414h  
40006418h  
4000641Ch  
40006420h  
40006424h  
40006428h  
4000642Ch  
40006440h  
40006444h  
40007400h  
40007404h  
40007408h  
4000740Ch  
40007C00h  
40007C04h  
40007C08h  
40007C0Ch  
40007C10h  
40007C14h  
40007C18h  
40007C1Ch  
40007C20h  
40007C24h  
40007C28h  
40007C2Ch  
40007C30h  
40007C34h  
40007C38h  
40007C3Ch  
40007C40h  
40007C44h  
40007C48h  
40007C4Ch  
40007C50h  
40007C78h  
40007C7Ch  
40008C00h  
40008C04h  
40009000h  
40009000h  
40009004h  
40009008h  
40009040h  
Interrupt Enable 1 Register  
Interrupt Enable 2 Register  
Optimal Bit Time Register (Low Byte)  
Optimal Bit Time Register (High Byte)  
TEST  
TEST  
Block ID Register  
Revision Register  
RTOS Timer Count Register  
RTOS Timer Preload Register  
RTOS Timer Control Register  
Soft Interrupt Register  
ADC Control Register  
ADC  
ADC Delay Register  
ADC  
ADC Status Register  
ADC  
ADC Single Register  
ADC  
ADC Repeat Register  
ADC  
ADC Channel 0 Reading Register  
ADC Channel 1 Reading Register  
ADC Channel 2 Reading Register  
ADC Channel 3 Reading Register  
ADC Channel 4 Reading Register  
ADC Channel 5 Reading Register  
ADC Channel 6 Reading Register  
ADC Channel 7 Reading Register  
ADC Channel 8 Reading Register  
ADC Channel 9 Reading Register  
ADC Channel 10 Reading Register  
ADC Channel 11 Reading Register  
ADC Channel 12 Reading Register  
ADC Channel 13 Reading Register  
ADC Channel 14 Reading Register  
ADC Channel 15 Reading Register  
ADC Test Register  
ADC  
ADC  
ADC  
ADC  
ADC  
ADC  
ADC  
ADC  
ADC  
ADC  
ADC  
ADC  
ADC  
ADC  
ADC  
ADC  
ADC  
ADC Configuration Register  
Debug Data Register  
TFDP  
TFDP  
PS2  
Debug Control Register  
PS2 Transmit Buffer Register  
PS2 Receive Buffer Register  
PS2 Control Register  
PS2  
PS2  
PS2  
PS2 Status Register  
PS2  
PS2 Transmit Buffer Register  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 121  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
PS2  
1
1
1
2
2
2
2
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
PS2 Receive Buffer Register  
PS2 Control Register  
PS2 Status Register  
40009040h  
40009044h  
40009048h  
40009080h  
40009080h  
40009084h  
40009088h  
40009400h  
40009404h  
40009408h  
4000940Ch  
40009410h  
40009414h  
40009418h  
40009420h  
40009480h  
40009484h  
40009488h  
4000948Ch  
40009490h  
40009494h  
40009498h  
400094A0h  
40009800h  
40009804h  
40009808h  
40009820h  
40009824h  
40009828h  
40009C04h  
40009C08h  
40009C0Ch  
40009C10h  
40009C14h  
4000A000h  
4000A001h  
4000A002h  
4000A003h  
4000A004h  
4000A005h  
4000A006h  
4000A007h  
4000A008h  
PS2  
PS2  
PS2  
PS2 Transmit Buffer Register  
PS2 Receive Buffer Register  
PS2 Control Register  
PS2 Status Register  
PS2  
PS2  
PS2  
GP-SPI  
SPI Enable Register  
GP-SPI  
SPI Control Register  
GP-SPI  
SPI Status Register  
GP-SPI  
SPI TX_Data Register  
SPI RX_Data Register  
SPI Clock Control Register  
SPI Clock Generator Register  
TESET  
GP-SPI  
GP-SPI  
GP-SPI  
GP-SPI  
GP-SPI  
SPI Enable Register  
GP-SPI  
SPI Control Register  
GP-SPI  
SPI Status Register  
GP-SPI  
SPI TX_Data Register  
SPI RX_Data Register  
SPI Clock Control Register  
SPI Clock Generator Register  
TESET  
GP-SPI  
GP-SPI  
GP-SPI  
GP-SPI  
Hibernation Timer  
Hibernation Timer  
Hibernation Timer  
Hibernation Timer  
Hibernation Timer  
Hibernation Timer  
Keyscan  
Keyscan  
Keyscan  
Keyscan  
Keyscan  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
HTimer Preload Register  
HTimer Control Register  
HTimer Count Register  
HTimer Preload Register  
HTimer Control Register  
HTimer Count Register  
KSO Select Register  
KSI INPUT Register  
KSI STATUS Register  
KSI INTERRUPT ENABLE Register  
Keyscan Extended Control Register  
Fan Setting Register  
Reserved  
Fan Configuration 1 Register  
Fan Configuration 2 Register  
PWM Divide Register  
Gain Register  
Fan Spin Up Configuration Register  
Fan Step Register  
Fan Minimum Drive Register  
DS00002206H-page 122  
2016-2020 Microchip Technology Inc.  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
RPM2PWM  
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
Valid TACH Count Register  
Fan Drive Fail Band Register  
TACH Target Register  
TACH Reading Register  
PWM Driver Base Frequency Register  
Fan Status Register  
TEST  
4000A009h  
4000A00Ah  
4000A00Ch  
4000A00Eh  
4000A010h  
4000A011h  
4000A012h  
4000A014h  
4000A015h  
4000A016h  
4000A017h  
4000A080h  
4000A081h  
4000A082h  
4000A083h  
4000A084h  
4000A085h  
4000A086h  
4000A087h  
4000A088h  
4000A089h  
4000A08Ah  
4000A08Ch  
4000A08Eh  
4000A090h  
4000A091h  
4000A092h  
4000A094h  
4000A095h  
4000A096h  
4000A097h  
4000A400h  
4000A404h  
4000A408h  
4000A40Ch  
4000A410h  
4000A414h  
4000A418h  
4000A41Ch  
4000A420h  
4000A424h  
4000A428h  
4000A42Ch  
TEST  
TEST  
TEST  
TEST  
Fan Setting Register  
PWM Divide Register  
Fan Configuration 1 Register  
Fan Configuration 2 Register  
Reserved  
Gain Register  
Fan Spin Up Configuration Register  
Fan Step Register  
Fan Minimum Drive Register  
Valid TACH Count Register  
Fan Drive Fail Band Register  
TACH Target Register  
TACH Reading Register  
PWM Driver Base Frequency Register  
Fan Status Register  
TEST  
TEST  
TEST  
TEST  
TEST  
VBAT Register Bank  
VBAT Register Bank  
VBAT Register Bank  
VBAT Register Bank  
VBAT Register Bank  
VBAT Register Bank  
VBAT Register Bank  
VBAT Register Bank  
VBAT Register Bank  
VBAT Register Bank  
VBAT Register Bank  
VBAT Register Bank  
Power-Fail and Reset Status Register  
TEST  
Clock Enable Register  
TEST  
TEST  
TEST  
TEST  
TEST  
Monotonic Counter Register  
Counter HiWord Register  
VWire Backup Register  
TEST  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 123  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
VBAT Powered RAM  
Week Timer  
0
0
0
0
0
0
Registers  
4000A800h  
4000AC80h  
4000AC84h  
4000AC88h  
4000AC8Ch  
Control Register  
Week Timer  
Week Alarm Counter Register  
Week Timer Compare Register  
Clock Divider Register  
Week Timer  
Week Timer  
Week Timer  
Sub-Second Programmable Interrupt Select Reg- 4000AC90h  
ister  
Week Timer  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
2
2
2
2
2
2
3
3
3
3
Sub-Week Control Register  
Sub-Week Alarm Counter Register  
BGPO Data Register  
4000AC94h  
4000AC98h  
4000AC9Ch  
4000ACA0h  
4000ACA4h  
4000AE00h  
4000AE04h  
4000AE08h  
4000AE0Ch  
4000AE10h  
4000AE14h  
4000AE18h  
4000AE1Ch  
4000AE20h  
4000B800h  
4000B804h  
4000B808h  
4000B80Ch  
4000B810h  
4000B814h  
4000B900h  
4000B904h  
4000B908h  
4000B90Ch  
4000B910h  
4000B914h  
4000BA00h  
4000BA04h  
4000BA08h  
4000BA0Ch  
4000BA10h  
4000BA14h  
4000BB00h  
4000BB04h  
4000BB08h  
4000BB0Ch  
Week Timer  
Week Timer  
Week Timer  
BGPO Power Register  
BGPO Reset Register  
Week Timer  
VBAT-Powered Control Interface  
VBAT-Powered Control Interface  
VBAT-Powered Control Interface  
VBAT-Powered Control Interface  
VBAT-Powered Control Interface  
VBAT-Powered Control Interface  
VBAT-Powered Control Interface  
VBAT-Powered Control Interface  
VBAT-Powered Control Interface  
Blinking-Breathing PWM  
Blinking-Breathing PWM  
Blinking-Breathing PWM  
Blinking-Breathing PWM  
Blinking-Breathing PWM  
Blinking-Breathing PWM  
Blinking-Breathing PWM  
Blinking-Breathing PWM  
Blinking-Breathing PWM  
Blinking-Breathing PWM  
Blinking-Breathing PWM  
Blinking-Breathing PWM  
Blinking-Breathing PWM  
Blinking-Breathing PWM  
Blinking-Breathing PWM  
Blinking-Breathing PWM  
Blinking-Breathing PWM  
Blinking-Breathing PWM  
Blinking-Breathing PWM  
Blinking-Breathing PWM  
Blinking-Breathing PWM  
Blinking-Breathing PWM  
VCI Register  
Latch Enable Register  
Latch Resets Register  
VCI Input Enable Register  
Holdoff Count Register  
VCI Polarity Register  
VCI Posedge Detect Register  
VCI Negedge Detect Register  
VCI Buffer Enable Register  
LED Configuration Register  
LED Limits Register  
LED Delay Register  
LED Update Stepsize Register  
LED Update Interval Register  
LED Output Delay  
LED Configuration Register  
LED Limits Register  
LED Delay Register  
LED Update Stepsize Register  
LED Update Interval Register  
LED Output Delay  
LED Configuration Register  
LED Limits Register  
LED Delay Register  
LED Update Stepsize Register  
LED Update Interval Register  
LED Output Delay  
LED Configuration Register  
LED Limits Register  
LED Delay Register  
LED Update Stepsize Register  
DS00002206H-page 124  
2016-2020 Microchip Technology Inc.  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
Blinking-Breathing PWM  
Blinking-Breathing PWM  
BC-Link Master  
3
3
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
LED Update Interval Register  
LED Output Delay  
4000BB10h  
4000BB14h  
4000CD00h  
4000CD04h  
4000CD08h  
4000CD0Ch  
4000CD20h  
4000CD24h  
4000CD28h  
4000CD2Ch  
4000E000h  
4000E004h  
4000E008h  
4000E00Ch  
4000E014h  
4000E018h  
4000E01Ch  
4000E020h  
4000E028h  
4000E02Ch  
4000E030h  
4000E034h  
4000E03Ch  
4000E040h  
4000E044h  
4000E048h  
4000E050h  
4000E054h  
4000E058h  
4000E05Ch  
4000E064h  
4000E068h  
4000E06Ch  
4000E070h  
4000E078h  
4000E07Ch  
4000E080h  
4000E084h  
4000E08Ch  
4000E090h  
4000E094h  
4000E098h  
4000E0A0h  
BC-Link Status Register  
BC-Link Master  
BC-Link Address Register  
BC-Link Data Register  
BC-Link Master  
BC-Link Master  
BC-Link Clock Select Register  
BC-Link Status Register  
BC-Link Master  
BC-Link Master  
BC-Link Address Register  
BC-Link Data Register  
BC-Link Master  
BC-Link Master  
BC-Link Clock Select Register  
GIRQ8 Source Register  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
GIRQ8 Enable Set Register  
GIRQ8 Result Register  
GIRQ8 Enable Clear Register  
GIRQ9 Source Register  
GIRQ9 Enable Set Register  
GIRQ9 Result Register  
GIRQ9 Enable Clear Register  
GIRQ10 Source Register  
GIRQ10 Enable Set Register  
GIRQ10 Result Register  
GIRQ10 Enable Clear Register  
GIRQ11 Source Register  
GIRQ11 Enable Set Register  
GIRQ11 Result Register  
GIRQ11 Enable Clear Register  
GIRQ12 Source Register  
GIRQ12 Enable Set Register  
GIRQ12 Result Register  
GIRQ12 Enable Clear Register  
GIRQ13 Source Register  
GIRQ13 Enable Set Register  
GIRQ13 Result Register  
GIRQ13 Enable Clear Register  
GIRQ14 Source Register  
GIRQ14 Enable Set Register  
GIRQ14 Result Register  
GIRQ14 Enable Clear Register  
GIRQ15 Source Register  
GIRQ15 Enable Set Register  
GIRQ15 Result Register  
GIRQ15 Enable Clear Register  
GIRQ16 Source Register  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 125  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
GIRQ16 Enable Set Register  
GIRQ16 Result Register  
4000E0A4h  
4000E0A8h  
4000E0ACh  
4000E0B4h  
4000E0B8h  
4000E0BCh  
4000E0C0h  
4000E0C8h  
4000E0CCh  
4000E0D0h  
4000E0D4h  
4000E0DCh  
4000E0E0h  
4000E0E4h  
4000E0E8h  
4000E0F0h  
4000E0F4h  
4000E0F8h  
4000E0FCh  
4000E104h  
4000E108h  
4000E10Ch  
4000E110h  
4000E118h  
4000E11Ch  
4000E120h  
4000E124h  
4000E12Ch  
4000E130h  
4000E134h  
4000E138h  
4000E140h  
4000E144h  
4000E148h  
4000E14Ch  
4000E154h  
4000E158h  
4000E15Ch  
4000E160h  
4000E168h  
4000E16Ch  
4000E170h  
4000E174h  
GIRQ16 Enable Clear Register  
GIRQ17 Source Register  
GIRQ17 Enable Set Register  
GIRQ17 Result Register  
GIRQ17 Enable Clear Register  
GIRQ18 Source Register  
GIRQ18 Enable Set Register  
GIRQ18 Result Register  
GIRQ18 Enable Clear Register  
GIRQ19 Source Register  
GIRQ19 Enable Set Register  
GIRQ19 Result Register  
GIRQ19 Enable Clear Register  
GIRQ20 Source Register  
GIRQ20 Enable Set Register  
GIRQ20 Result Register  
GIRQ20 Enable Clear Register  
GIRQ21 Source Register  
GIRQ21 Enable Set Register  
GIRQ21 Result Register  
GIRQ21 Enable Clear Register  
GIRQ22 Source Register  
GIRQ22 Enable Set Register  
GIRQ22 Result Register  
GIRQ22 Enable Clear Register  
GIRQ23 Source Register  
GIRQ23 Enable Set Register  
GIRQ23 Result Register  
GIRQ23 Enable Clear Register  
GIRQ24 Source Register  
GIRQ24 Enable Set Register  
GIRQ24 Result Register  
GIRQ24 Enable Clear Register  
GIRQ25 Source Register  
GIRQ25 Enable Set Register  
GIRQ25 Result Register  
GIRQ25 Enable Clear Register  
GIRQ26 Source Register  
GIRQ26 Enable Set Register  
GIRQ26 Result Register  
GIRQ26 Enable Clear Register  
DS00002206H-page 126  
2016-2020 Microchip Technology Inc.  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
Block Enable Set Register  
Interrupt Aggregator  
Interrupt Aggregator  
Interrupt Aggregator  
EC Register Bank  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4000E200h  
4000E204h  
4000E208h  
4000FC00h  
4000FC04h  
4000FC08h  
4000FC0Ch  
4000FC10h  
4000FC14h  
4000FC18h  
4000FC1Ch  
4000FC20h  
4000FC24h  
4000FC28h  
4000FC2Ch  
4000FC30h  
4000FC34h  
4000FC38h  
4000FC3Ch  
4000FC40h  
4000FC44h  
4000FC48h  
4000FC5Ch  
4000FC60h  
4000FC64h  
4000FC68h  
4000FC6Ch  
4000FC70h  
4000FC74h  
4000FC78h  
4000FC7Ch  
4000FC80h  
4000FC84h  
40080100h  
40080104h  
40080108h  
4008010Ch  
40080110h  
40080114h  
40080118h  
4008011Ch  
40080120h  
40080130h  
Block Enable Clear Register  
Block IRQ Vector Register  
SRAM Configuration Register  
AHB Error Address Register  
TEST  
EC Register Bank  
EC Register Bank  
EC Register Bank  
TEST  
EC Register Bank  
TEST  
EC Register Bank  
AHB Error Control Register  
Interrupt Control Register  
ETM TRACE Enable Register  
Debug Enable Register  
OTP Lock Register  
WDT Event Count Register  
TEST  
EC Register Bank  
EC Register Bank  
EC Register Bank  
EC Register Bank  
EC Register Bank  
EC Register Bank  
EC Register Bank  
TEST  
EC Register Bank  
TEST  
EC Register Bank  
Reserved  
EC Register Bank  
TEST  
EC Register Bank  
PECI Disable Register  
TEST  
EC Register Bank  
EC Register Bank  
TEST  
EC Register Bank  
TEST  
EC Register Bank  
TEST  
EC Register Bank  
GPIO Bank Power Register  
TEST  
EC Register Bank  
EC Register Bank  
TEST  
EC Register Bank  
JTAG Master Configuration Register  
JTAG Master Status Register  
JTAG Master TDO Register  
JTAG Master TDI Register  
JTAG Master TMS Register  
JTAG Master Command Register  
System Sleep Control Register  
Processor Clock Control Register  
Slow Clock Control Register  
Oscillator ID Register  
PCR Power Reset Status Register  
Power Reset Control Register  
System Reset Register  
TEST  
EC Register Bank  
EC Register Bank  
EC Register Bank  
EC Register Bank  
EC Register Bank  
Power Clocks and Resets  
Power Clocks and Resets  
Power Clocks and Resets  
Power Clocks and Resets  
Power Clocks and Resets  
Power Clocks and Resets  
Power Clocks and Resets  
Power Clocks and Resets  
Power Clocks and Resets  
Power Clocks and Resets  
TEST  
Sleep Enable 0 Register  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 127  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
Sleep Enable 1 Register  
Power Clocks and Resets  
0
0
0
0
0
0
0
0
0
0
40080134h  
40080138h  
4008013Ch  
40080140h  
40080150h  
40080154h  
40080158h  
4008015Ch  
40080160h  
40080170h  
40080174h  
40080178h  
4008017Ch  
40080180h  
40081000h  
40081004h  
40081008h  
4008100Ch  
40081010h  
40081014h  
40081018h  
4008101Ch  
40081020h  
40081024h  
40081028h  
4008102Ch  
40081030h  
40081034h  
40081038h  
4008103Ch  
40081040h  
40081044h  
40081048h  
4008104Ch  
40081050h  
40081054h  
40081058h  
4008105Ch  
40081060h  
40081064h  
40081068h  
4008106Ch  
40081070h  
Power Clocks and Resets  
Sleep Enable 2 Register  
Power Clocks and Resets  
Sleep Enable 3 Register  
Power Clocks and Resets  
Sleep Enable 4 Register  
Power Clocks and Resets  
Clock Required 0 Register  
Clock Required 1 Register  
Clock Required 2 Register  
Clock Required 3 Register  
Clock Required 4 Register  
Reset Enable 0 Register  
Power Clocks and Resets  
Power Clocks and Resets  
Power Clocks and Resets  
Power Clocks and Resets  
Power Clocks and Resets  
Power Clocks and Resets  
Reset Enable 1 Register  
Power Clocks and Resets  
Reset Enable 2 Register  
Power Clocks and Resets  
Reset Enable 3 Register  
Power Clocks and Resets  
GPIO  
Reset Enable 4 Register  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
GPIO000 Pin Control Register  
GPIO001 Pin Control Register  
GPIO002 Pin Control Register  
GPIO003 Pin Control Register  
GPIO004 Pin Control Register  
GPIO005 Pin Control Register  
GPIO006 Pin Control Register  
GPIO007 Pin Control Register  
GPIO010 Pin Control Register  
GPIO011 Pin Control Register  
GPIO012 Pin Control Register  
GPIO013 Pin Control Register  
GPIO014 Pin Control Register  
GPIO015 Pin Control Register  
GPIO016 Pin Control Register  
GPIO017 Pin Control Register  
GPIO020 Pin Control Register  
GPIO021 Pin Control Register  
GPIO022 Pin Control Register  
GPIO023 Pin Control Register  
GPIO024 Pin Control Register  
GPIO025 Pin Control Register  
GPIO026 Pin Control Register  
GPIO027 Pin Control Register  
GPIO030 Pin Control Register  
GPIO031 Pin Control Register  
GPIO032 Pin Control Register  
GPIO033 Pin Control Register  
GPIO034 Pin Control Register  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
DS00002206H-page 128  
2016-2020 Microchip Technology Inc.  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
GPIO035 Pin Control Register  
GPIO036 Pin Control Register  
GPIO040 Pin Control Register  
GPIO041 Pin Control Register  
GPIO042 Pin Control Register  
GPIO043 Pin Control Register  
GPIO044 Pin Control Register  
GPIO045 Pin Control Register  
GPIO046 Pin Control Register  
GPIO047 Pin Control Register  
GPIO050 Pin Control Register  
GPIO051 Pin Control Register  
GPIO052 Pin Control Register  
GPIO053 Pin Control Register  
GPIO054 Pin Control Register  
GPIO055 Pin Control Register  
GPIO056 Pin Control Register  
(GPIO057) Pin Control Register  
GPIO060 Pin Control Register  
GPIO061 Pin Control Register  
GPIO062 Pin Control Register  
GPIO063 Pin Control Register  
GPIO064 Pin Control Register  
GPIO065 Pin Control Register  
GPIO066 Pin Control Register  
GPIO067 Pin Control Register  
GPIO070 Pin Control Register  
GPIO071 Pin Control Register  
GPIO072 Pin Control Register  
GPIO073 Pin Control Register  
GPIO100 Pin Control Register  
GPIO101 Pin Control Register  
GPIO102 Pin Control Register  
GPIO104 Pin Control Register  
GPIO105 Pin Control Register  
GPIO106 Pin Control Register  
GPIO107 Pin Control Register  
GPIO110 Pin Control Register  
GPIO111 Pin Control Register  
GPIO112 Pin Control Register  
GPIO113 Pin Control Register  
GPIO114 Pin Control Register  
GPIO115 Pin Control Register  
40081074h  
40081078h  
40081080h  
40081084h  
40081088h  
4008108Ch  
40081090h  
40081094h  
40081098h  
4008109Ch  
400810A0h  
400810A4h  
400810A8h  
400810ACh  
400810B0h  
400810B4h  
400810B8h  
400810BCh  
400810C0h  
400810C4h  
400810C8h  
400810CCh  
400810D0h  
400810D4h  
400810D8h  
400810DCh  
400810E0h  
400810E4h  
400810E8h  
400810ECh  
40081100h  
40081104h  
40081108h  
40081110h  
40081114h  
40081118h  
4008111Ch  
40081120h  
40081124h  
40081128h  
4008112Ch  
40081130h  
40081134h  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 129  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
GPIO120 Pin Control Register  
GPIO121 Pin Control Register  
GPIO122 Pin Control Register  
GPIO123 Pin Control Register  
GPIO124 Pin Control Register  
GPIO125 Pin Control Register  
GPIO126 Pin Control Register  
GPIO127 Pin Control Register  
GPIO130 Pin Control Register  
GPIO131 Pin Control Register  
GPIO132 Pin Control Register  
GPIO133 Pin Control Register  
GPIO134 Pin Control Register  
GPIO135 Pin Control Register  
GPIO140 Pin Control Register  
GPIO141 Pin Control Register  
GPIO142 Pin Control Register  
GPIO143 Pin Control Register  
GPIO144 Pin Control Register  
GPIO145 Pin Control Register  
GPIO146 Pin Control Register  
GPIO147 Pin Control Register  
GPIO150 Pin Control Register  
GPIO151 Pin Control Register  
GPIO152 Pin Control Register  
GPIO153 Pin Control Register  
GPIO154 Pin Control Register  
GPIO155 Pin Control Register  
GPIO156 Pin Control Register  
GPIO157 Pin Control Register  
GPIO160 Pin Control Register  
GPIO161 Pin Control Register  
GPIO162 Pin Control Register  
GPIO163 Pin Control Register  
GPIO165 Pin Control Register  
GPIO166 Pin Control Register  
GPIO170 Pin Control Register  
GPIO171 Pin Control Register  
GPIO172 Pin Control Register  
GPIO173 Pin Control Register  
GPIO174 Pin Control Register  
GPIO175 Pin Control Register  
GPIO200 Pin Control Register  
40081140h  
40081144h  
40081148h  
4008114Ch  
40081150h  
40081154h  
40081158h  
4008115Ch  
40081160h  
40081164h  
40081168h  
4008116Ch  
40081170h  
40081174h  
40081180h  
40081184h  
40081188h  
4008118Ch  
40081190h  
40081194h  
40081198h  
4008119Ch  
400811A0h  
400811A4h  
400811A8h  
400811ACh  
400811B0h  
400811B4h  
400811B8h  
400811BCh  
400811C0h  
400811C4h  
400811C8h  
400811CCh  
400811D4h  
400811D8h  
400811E0h  
400811E4h  
400811E8h  
400811ECh  
400811F0h  
400811F4h  
40081200h  
DS00002206H-page 130  
2016-2020 Microchip Technology Inc.  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
GPIO201 Pin Control Register  
GPIO202 Pin Control Register  
GPIO203 Pin Control Register  
GPIO204 Pin Control Register  
GPIO205 Pin Control Register  
GPIO206 Pin Control Register  
GPIO207 Pin Control Register  
GPIO210 Pin Control Register  
GPIO211 Pin Control Register  
GPIO212 Pin Control Register  
GPIO213 Pin Control Register  
GPIO214 Pin Control Register  
GPIO215 Pin Control Register  
GPIO216 Pin Control Register  
GPIO217 Pin Control Register  
GPIO221 Pin Control Register  
GPIO222 Pin Control Register  
GPIO223 Pin Control Register  
GPIO224 Pin Control Register  
GPIO225 Pin Control Register  
GPIO226 Pin Control Register  
GPIO227 Pin Control Register  
GPIO230 Pin Control Register  
GPIO231 Pin Control Register  
GPIO233 Pin Control Register  
GPIO234 Pin Control Register  
GPIO240 Pin Control Register  
GPIO241 Pin Control Register  
GPIO242 Pin Control Register  
GPIO243 Pin Control Register  
GPIO244 Pin Control Register  
GPIO245 Pin Control Register  
GPIO246 Pin Control Register  
GPIO250 Pin Control Register  
GPIO253 Pin Control Register  
GPIO254 Pin Control Register  
Input GPIO[000:036]  
40081204h  
40081208h  
4008120Ch  
40081210h  
40081214h  
40081218h  
4008121Ch  
40081220h  
40081224h  
40081228h  
4008122Ch  
40081230h  
40081234h  
40081238h  
4008123Ch  
40081244h  
40081248h  
4008124Ch  
40081250h  
40081254h  
40081258h  
4008125Ch  
40081260h  
40081264h  
4008126Ch  
40081270h  
40081280h  
40081284h  
40081288h  
4008128Ch  
40081290h  
40081294h  
40081298h  
400812A0h  
400812ACh  
400812B0h  
40081300h  
40081304h  
40081308h  
4008130Ch  
40081310h  
40081314h  
40081380h  
Input GPIO[040:076]  
Input GPIO[100:127]  
Input GPIO[140:176]  
Input GPIO[200:236]  
Input GPIO[240:276]  
Output GPIO[000:036]  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 131  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
Output GPIO[040:076]  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
40081384h  
40081388h  
4008138Ch  
40081390h  
40081394h  
40081500h  
40081504h  
40081508h  
4008150Ch  
40081510h  
40081514h  
40081518h  
4008151Ch  
40081520h  
40081524h  
40081528h  
4008152Ch  
40081530h  
40081534h  
40081538h  
4008153Ch  
40081540h  
40081544h  
40081548h  
4008154Ch  
40081550h  
40081554h  
40081558h  
4008155Ch  
40081560h  
40081564h  
40081568h  
4008156Ch  
40081570h  
40081574h  
40081578h  
40081580h  
40081584h  
40081588h  
4008158Ch  
40081590h  
40081594h  
40081598h  
Output GPIO[100:127]  
Output GPIO[140:176]  
Output GPIO[200:236]  
Output GPIO[240:276]  
GPIO000 Pin Control 2 Register  
GPIO001 Pin Control 2 Register  
GPIO002 Pin Control 2 Register  
GPIO003 Pin Control 2 Register  
GPIO004 Pin Control 2 Register  
GPIO005 Pin Control 2 Register  
GPIO006 Pin Control 2 Register  
GPIO007 Pin Control 2 Register  
GPIO010 Pin Control 2 Register  
GPIO011 Pin Control 2 Register  
GPIO012 Pin Control 2 Register  
GPIO013 Pin Control 2 Register  
GPIO014 Pin Control 2 Register  
GPIO015 Pin Control 2 Register  
GPIO016 Pin Control 2 Register  
GPIO017 Pin Control 2 Register  
GPIO020 Pin Control 2 Register  
GPIO021 Pin Control 2 Register  
GPIO022 Pin Control 2 Register  
GPIO023 Pin Control 2 Register  
GPIO024 Pin Control 2 Register  
GPIO025 Pin Control 2 Register  
GPIO026 Pin Control 2 Register  
GPIO027 Pin Control 2 Register  
GPIO030 Pin Control 2 Register  
GPIO031 Pin Control 2 Register  
GPIO032 Pin Control 2 Register  
GPIO033 Pin Control 2 Register  
GPIO034 Pin Control 2 Register  
GPIO035 Pin Control 2 Register  
GPIO036 Pin Control 2 Register  
GPIO040 Pin Control 2 Register  
GPIO041 Pin Control 2 Register  
GPIO042 Pin Control 2 Register  
GPIO043 Pin Control 2 Register  
GPIO044 Pin Control 2 Register  
GPIO045 Pin Control 2 Register  
GPIO046 Pin Control 2 Register  
DS00002206H-page 132  
2016-2020 Microchip Technology Inc.  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
GPIO047 Pin Control 2 Register  
GPIO050 Pin Control 2 Register  
GPIO051 Pin Control 2 Register  
GPIO052 Pin Control 2 Register  
GPIO053 Pin Control 2 Register  
GPIO054 Pin Control 2 Register  
GPIO055 Pin Control 2 Register  
GPIO056 Pin Control 2 Register  
(GPIO057) Pin Control 2 Register  
GPIO060 Pin Control 2 Register  
GPIO061 Pin Control 2 Register  
GPIO062 Pin Control 2 Register  
GPIO063 Pin Control 2 Register  
GPIO064 Pin Control 2 Register  
GPIO065 Pin Control 2 Register  
GPIO066 Pin Control 2 Register  
GPIO067 Pin Control 2 Register  
GPIO070 Pin Control 2 Register  
GPIO071 Pin Control 2 Register  
GPIO072 Pin Control 2 Register  
GPIO073 Pin Control 2 Register  
GPIO100 Pin Control 2 Register  
GPIO101 Pin Control 2 Register  
GPIO102 Pin Control 2 Register  
GPIO104 Pin Control 2 Register  
GPIO105 Pin Control 2 Register  
GPIO106 Pin Control 2 Register  
GPIO107 Pin Control 2 Register  
GPIO110 Pin Control 2 Register  
GPIO111 Pin Control 2 Register  
GPIO112 Pin Control 2 Register  
GPIO113 Pin Control 2 Register  
GPIO114 Pin Control 2 Register  
GPIO115 Pin Control 2 Register  
GPIO120 Pin Control 2 Register  
GPIO121 Pin Control 2 Register  
GPIO122 Pin Control 2 Register  
GPIO123 Pin Control 2 Register  
GPIO124 Pin Control 2 Register  
GPIO125 Pin Control 2 Register  
GPIO126 Pin Control 2 Register  
GPIO127 Pin Control 2 Register  
GPIO130 Pin Control 2 Register  
4008159Ch  
400815A0h  
400815A4h  
400815A8h  
400815ACh  
400815B0h  
400815B4h  
400815B8h  
400815BCh  
400815C0h  
400815C4h  
400815C8h  
400815CCh  
400815D0h  
400815D4h  
400815D8h  
400815DCh  
400815E0h  
400815E4h  
400815E8h  
400815ECh  
40081600h  
40081604h  
40081608h  
40081610h  
40081614h  
40081618h  
4008161Ch  
40081620h  
40081624h  
40081628h  
4008162Ch  
40081630h  
40081634h  
40081640h  
40081644h  
40081648h  
4008164Ch  
40081650h  
40081654h  
40081658h  
4008165Ch  
40081660h  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 133  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
GPIO131 Pin Control 2 Register  
GPIO132 Pin Control 2 Register  
GPIO133 Pin Control 2 Register  
GPIO134 Pin Control 2 Register  
GPIO135 Pin Control 2 Register  
GPIO140 Pin Control 2 Register  
GPIO141 Pin Control 2 Register  
GPIO142 Pin Control 2 Register  
GPIO143 Pin Control 2 Register  
GPIO144 Pin Control 2 Register  
GPIO145 Pin Control 2 Register  
GPIO146 Pin Control 2 Register  
GPIO147 Pin Control 2 Register  
GPIO150 Pin Control 2 Register  
GPIO151 Pin Control 2 Register  
GPIO152 Pin Control 2 Register  
GPIO153 Pin Control 2 Register  
GPIO154 Pin Control 2 Register  
GPIO155 Pin Control 2 Register  
GPIO156 Pin Control 2 Register  
GPIO157 Pin Control 2 Register  
GPIO160 Pin Control 2 Register  
GPIO161 Pin Control 2 Register  
GPIO162 Pin Control 2 Register  
GPIO163 Pin Control 2 Register  
GPIO165 Pin Control 2 Register  
GPIO166 Pin Control 2 Register  
GPIO170 Pin Control 2 Register  
GPIO171 Pin Control 2 Register  
GPIO172 Pin Control 2 Register  
GPIO173 Pin Control 2 Register  
GPIO174 Pin Control 2 Register  
GPIO175 Pin Control 2 Register  
GPIO200 Pin Control 2 Register  
GPIO201 Pin Control 2 Register  
GPIO202 Pin Control 2 Register  
GPIO203 Pin Control 2 Register  
GPIO204 Pin Control 2 Register  
GPIO205 Pin Control 2 Register  
GPIO206 Pin Control 2 Register  
GPIO207 Pin Control 2 Register  
GPIO210 Pin Control 2 Register  
GPIO211 Pin Control 2 Register  
40081664h  
40081668h  
4008166Ch  
40081670h  
40081674h  
40081680h  
40081684h  
40081688h  
4008168Ch  
40081690h  
40081694h  
40081698h  
4008169Ch  
400816A0h  
400816A4h  
400816A8h  
400816ACh  
400816B0h  
400816B4h  
400816B8h  
400816BCh  
400816C0h  
400816C4h  
400816C8h  
400816CCh  
400816D4h  
400816D8h  
400816E0h  
400816E4h  
400816E8h  
400816ECh  
400816F0h  
400816F4h  
40081700h  
40081704h  
40081708h  
4008170Ch  
40081710h  
40081714h  
40081718h  
4008171Ch  
40081720h  
40081724h  
DS00002206H-page 134  
2016-2020 Microchip Technology Inc.  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
GPIO  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
GPIO212 Pin Control 2 Register  
GPIO213 Pin Control 2 Register  
GPIO214 Pin Control 2 Register  
GPIO215 Pin Control 2 Register  
GPIO216 Pin Control 2 Register  
GPIO217 Pin Control 2 Register  
GPIO221 Pin Control 2 Register  
GPIO222 Pin Control 2 Register  
GPIO223 Pin Control 2 Register  
GPIO224 Pin Control 2 Register  
GPIO225 Pin Control 2 Register  
GPIO226 Pin Control 2 Register  
GPIO227 Pin Control 2 Register  
GPIO230 Pin Control 2 Register  
GPIO231 Pin Control 2 Register  
GPIO233 Pin Control 2 Register  
GPIO234 Pin Control 2 Register  
GPIO240 Pin Control 2 Register  
GPIO241 Pin Control 2 Register  
GPIO242 Pin Control 2 Register  
GPIO243 Pin Control 2 Register  
GPIO244 Pin Control 2 Register  
GPIO245 Pin Control 2 Register  
GPIO246 Pin Control 2 Register  
GPIO250 Pin Control 2 Register  
GPIO253 Pin Control 2 Register  
GPIO254 Pin Control 2 Register  
Control Register  
40081728h  
4008172Ch  
40081730h  
40081734h  
40081738h  
4008173Ch  
40081744h  
40081748h  
4008174Ch  
40081750h  
40081754h  
40081758h  
4008175Ch  
40081760h  
40081764h  
4008176Ch  
40081770h  
40081800h  
40081804h  
40081808h  
4008180Ch  
40081810h  
40081814h  
40081818h  
40081820h  
4008182Ch  
40081830h  
40082000h  
40082004h  
40082006h  
4008200Ch  
40082010h  
400F0000h  
400F0001h  
400F0100h  
400F0104h  
400F0108h  
400F010Ch  
400F0110h  
400F0114h  
400F0118h  
400F011Ch  
400F0120h  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
eFuse  
eFuse  
eFuse  
eFuse  
eFuse  
Mailbox  
Mailbox  
Mailbox  
Mailbox  
Mailbox  
Mailbox  
Mailbox  
Mailbox  
Mailbox  
Mailbox  
Mailbox  
Manual Control Register  
Manual Mode Address Register  
Manual Mode Data Register  
eFUSE Memory  
MBX_INDEX Register  
MBX_DATA Register  
HOST-to-EC Mailbox Register  
EC-to-Host Mailbox Register  
SMI Interrupt Source Register  
SMI Interrupt Mask Register  
Mailbox register [3:0]  
Mailbox register [7:4]  
Mailbox register [B:8]  
Mailbox register [F:C]  
Mailbox register [13:10]  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 135  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
Mailbox register [17:14]  
Mailbox  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
400F0124h  
400F0128h  
400F012Ch  
400F0400h  
400F0404h  
400F0500h  
400F0500h  
400F0504h  
400F0508h  
400F050Ch  
400F0514h  
400F0730h  
400F0800h  
400F0801h  
400F0802h  
400F0803h  
400F0804h  
400F0804h  
400F0805h  
400F0806h  
400F0807h  
400F0900h  
400F0901h  
400F0902h  
400F0903h  
400F0904h  
400F0905h  
400F0906h  
400F0907h  
400F0908h  
400F0909h  
400F090Ah  
400F090Bh  
400F0C00h  
400F0C01h  
400F0C02h  
400F0C03h  
400F0C04h  
400F0C04h  
400F0C05h  
400F0C06h  
400F0C07h  
400F0D00h  
Mailbox  
Mailbox register [1B:18]  
Mailbox  
Mailbox register [1F:1C]  
8042  
EC_HOST Data / AUX Data Register  
Keyboard Status Read Register  
HOST2EC Data Register  
EC Data Register  
8042  
8042  
8042  
8042  
EC Keyboard Status Register  
Keyboard Control Register  
EC AUX Data Register  
8042  
8042  
8042  
PCOBF Register  
8042  
Activate Register  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI OS Data Register Byte 0 Register  
ACPI OS Data Register Byte 1 Register  
ACPI OS Data Register Byte 2 Register  
ACPI OS Data Register Byte 3 Register  
ACPI OS COMMAND Register  
OS STATUS OS Register  
OS Byte Control Register  
Reserved  
Reserved  
EC2OS Data EC Byte 0 Register  
EC2OS Data EC Byte 1 Register  
EC2OS Data EC Byte 2 Register  
EC2OS Data EC Byte 3 Register  
EC STATUS Register  
EC Byte Control Register  
Reserved  
Reserved  
OS2EC Data EC Byte 0 Register  
OS2EC Data EC Byte 1 Register  
OS2EC Data EC Byte 2 Register  
OS2EC Data EC Byte 3 Register  
ACPI OS Data Register Byte 0 Register  
ACPI OS Data Register Byte 1 Register  
ACPI OS Data Register Byte 2 Register  
ACPI OS Data Register Byte 3 Register  
ACPI OS COMMAND Register  
OS STATUS OS Register  
OS Byte Control Register  
Reserved  
Reserved  
EC2OS Data EC Byte 0 Register  
DS00002206H-page 136  
2016-2020 Microchip Technology Inc.  
MEC170x  
Register  
Address  
Block  
ACPI EC Channel  
Instance  
Register  
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
3
EC2OS Data EC Byte 1 Register  
EC2OS Data EC Byte 2 Register  
EC2OS Data EC Byte 3 Register  
EC STATUS Register  
400F0D01h  
400F0D02h  
400F0D03h  
400F0D04h  
400F0D05h  
400F0D06h  
400F0D07h  
400F0D08h  
400F0D09h  
400F0D0Ah  
400F0D0Bh  
400F1000h  
400F1001h  
400F1002h  
400F1003h  
400F1004h  
400F1004h  
400F1005h  
400F1006h  
400F1007h  
400F1100h  
400F1101h  
400F1102h  
400F1103h  
400F1104h  
400F1105h  
400F1106h  
400F1107h  
400F1108h  
400F1109h  
400F110Ah  
400F110Bh  
400F1400h  
400F1401h  
400F1402h  
400F1403h  
400F1404h  
400F1404h  
400F1405h  
400F1406h  
400F1407h  
400F1500h  
400F1501h  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
EC Byte Control Register  
Reserved  
Reserved  
OS2EC Data EC Byte 0 Register  
OS2EC Data EC Byte 1 Register  
OS2EC Data EC Byte 2 Register  
OS2EC Data EC Byte 3 Register  
ACPI OS Data Register Byte 0 Register  
ACPI OS Data Register Byte 1 Register  
ACPI OS Data Register Byte 2 Register  
ACPI OS Data Register Byte 3 Register  
ACPI OS COMMAND Register  
OS STATUS OS Register  
OS Byte Control Register  
Reserved  
Reserved  
EC2OS Data EC Byte 0 Register  
EC2OS Data EC Byte 1 Register  
EC2OS Data EC Byte 2 Register  
EC2OS Data EC Byte 3 Register  
EC STATUS Register  
EC Byte Control Register  
Reserved  
Reserved  
OS2EC Data EC Byte 0 Register  
OS2EC Data EC Byte 1 Register  
OS2EC Data EC Byte 2 Register  
OS2EC Data EC Byte 3 Register  
ACPI OS Data Register Byte 0 Register  
ACPI OS Data Register Byte 1 Register  
ACPI OS Data Register Byte 2 Register  
ACPI OS Data Register Byte 3 Register  
ACPI OS COMMAND Register  
OS STATUS OS Register  
OS Byte Control Register  
Reserved  
Reserved  
EC2OS Data EC Byte 0 Register  
EC2OS Data EC Byte 1 Register  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 137  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI EC Channel  
ACPI PM1  
3
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
0
0
0
0
0
0
0
0
0
0
0
0
EC2OS Data EC Byte 2 Register  
EC2OS Data EC Byte 3 Register  
EC STATUS Register  
400F1502h  
400F1503h  
400F1504h  
400F1505h  
400F1506h  
400F1507h  
400F1508h  
400F1509h  
400F150Ah  
400F150Bh  
400F1800h  
400F1801h  
400F1802h  
400F1803h  
400F1804h  
400F1804h  
400F1805h  
400F1806h  
400F1807h  
400F1900h  
400F1901h  
400F1902h  
400F1903h  
400F1904h  
400F1905h  
400F1906h  
400F1907h  
400F1908h  
400F1909h  
400F190Ah  
400F190Bh  
400F1C00h  
400F1C01h  
400F1C02h  
400F1C03h  
400F1C04h  
400F1C05h  
400F1C06h  
400F1C07h  
400F1D00h  
400F1D01h  
400F1D02h  
400F1D03h  
EC Byte Control Register  
Reserved  
Reserved  
OS2EC Data EC Byte 0 Register  
OS2EC Data EC Byte 1 Register  
OS2EC Data EC Byte 2 Register  
OS2EC Data EC Byte 3 Register  
ACPI OS Data Register Byte 0 Register  
ACPI OS Data Register Byte 1 Register  
ACPI OS Data Register Byte 2 Register  
ACPI OS Data Register Byte 3 Register  
ACPI OS COMMAND Register  
OS STATUS OS Register  
OS Byte Control Register  
Reserved  
Reserved  
EC2OS Data EC Byte 0 Register  
EC2OS Data EC Byte 1 Register  
EC2OS Data EC Byte 2 Register  
EC2OS Data EC Byte 3 Register  
EC STATUS Register  
EC Byte Control Register  
Reserved  
Reserved  
OS2EC Data EC Byte 0 Register  
OS2EC Data EC Byte 1 Register  
OS2EC Data EC Byte 2 Register  
OS2EC Data EC Byte 3 Register  
Power Management 1 Status 1 Register  
Power Management 1 Status 2 Register  
Power Management 1 Enable 1 Register  
Power Management 1 Enable 2 Register  
Power Management 1 Control 1 Register  
Power Management 1 Control 2 Register  
Power Management 2 Control 1 Register  
Power Management 2 Control 2 Register  
Power Management 1 Status 1 Register  
Power Management 1 Status 2 Register  
Power Management 1 Enable 1 Register  
Power Management 1 Enable 2 Register  
ACPI PM1  
ACPI PM1  
ACPI PM1  
ACPI PM1  
ACPI PM1  
ACPI PM1  
ACPI PM1  
ACPI PM1  
ACPI PM1  
ACPI PM1  
ACPI PM1  
DS00002206H-page 138  
2016-2020 Microchip Technology Inc.  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
ACPI PM1  
ACPI PM1  
ACPI PM1  
ACPI PM1  
ACPI PM1  
Port92-Legacy  
Port92-Legacy  
Port92-Legacy  
Port92-Legacy  
Port92-Legacy  
UART  
0
0
0
0
0
0
0
0
0
0
0
0
0
Power Management 1 Control 1 Register  
Power Management 1 Control 2 Register  
Power Management 2 Control 1 Register  
Power Management 2 Control 2 Register  
EC_PM_STS Register  
400F1D04h  
400F1D05h  
400F1D06h  
400F1D07h  
400F1D10h  
400F2000h  
400F2100h  
400F2108h  
400F210Ch  
400F2330h  
400F2400h  
400F2400h  
Port 92 Register  
GATEA20 Control Register  
SETGA20L Register  
RSTGA20L Register  
Port 92 Enable  
Receive Buffer Register  
UART  
Transmit Buffer Register  
UART  
Programmable Baud Rate Generator LSB Regis-  
ter  
400F2400h  
UART  
0
Programmable Baud Rate Generator MSB Regis- 400F2401h  
ter  
UART  
UART  
UART  
UART  
UART  
UART  
UART  
UART  
UART  
UART  
UART  
UART  
UART  
0
0
0
0
0
0
0
0
0
0
1
1
1
Interrupt Enable Register  
FIFO Control Register  
Interrupt Identification Register  
Line Control Register  
400F2401h  
400F2402h  
400F2402h  
400F2403h  
400F2404h  
400F2405h  
400F2406h  
400F2407h  
400F2730h  
400F27F0h  
400F2800h  
400F2800h  
400F2800h  
Modem Control Register  
Line Status Register  
Modem Status Register  
Scratchpad Register  
Activate Register  
Configuration Select Register  
Receive Buffer Register  
Transmit Buffer Register  
Programmable Baud Rate Generator LSB Regis-  
ter  
UART  
1
Programmable Baud Rate Generator MSB Regis- 400F2801h  
ter  
UART  
1
1
1
1
1
1
1
1
1
1
0
0
Interrupt Enable Register  
FIFO Control Register  
Interrupt Identification Register  
Line Control Register  
400F2801h  
400F2802h  
400F2802h  
400F2803h  
400F2804h  
400F2805h  
400F2806h  
400F2807h  
400F2B30h  
400F2BF0h  
400F3104h  
400F3108h  
UART  
UART  
UART  
UART  
Modem Control Register  
Line Status Register  
UART  
UART  
Modem Status Register  
Scratchpad Register  
UART  
UART  
Activate Register  
UART  
Configuration Select Register  
LPC Bus Monitor Register  
Host Bus Error Register  
LPC Interface  
LPC Interface  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 139  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
EC SERIRQ Register  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
400F310Ch  
400F3110h  
400F3114h  
400F3118h  
400F3120h  
400F3124h  
400F3128h  
400F312Ch  
400F3130h  
400F31F8h  
400F31FCh  
400F3330h  
400F3340h  
400F3341h  
400F3342h  
400F3343h  
400F3344h  
400F3345h  
400F3346h  
400F3347h  
400F3348h  
400F3349h  
400F334Ah  
400F334Bh  
400F334Ch  
400F334Dh  
400F334Eh  
400F334Fh  
400F3360h  
400F3364h  
400F3368h  
400F336Ch  
400F3370h  
400F3374h  
400F3378h  
400F337Ch  
400F3380h  
400F3384h  
400F3388h  
400F338Ch  
400F3390h  
400F3394h  
400F3398h  
EC Clock Control Register  
MCHP Test Register  
MCHP Test Register  
BAR Inhibit Register  
TEST  
TEST  
TEST  
LPC BAR Init Register  
SRAM 0 BAR  
SRAM 1 BAR  
LPC Activate Register  
SERIRQ IRQ0 Configuration  
SERIRQ IRQ1 Configuration  
SERIRQ IRQ2 Configuration  
SERIRQ IRQ3 Configuration  
SERIRQ IRQ4 Configuration  
SERIRQ IRQ5 Configuration  
SERIRQ IRQ6 Configuration  
SERIRQ IRQ7 Configuration  
SERIRQ IRQ8 Configuration  
SERIRQ IRQ9 Configuration  
SERIRQ IRQ10 Configuration  
SERIRQ IRQ11 Configuration  
SERIRQ IRQ12 Configuration  
SERIRQ IRQ13 Configuration  
SERIRQ IRQ14 Configuration  
SERIRQ IRQ15 Configuration  
LPC Interface BAR  
Mailbox BAR  
8042 Emulated Keyboard Controller BAR  
ACPI EC Channel 0 BAR  
ACPI EC Channel 1 BAR  
ACPI EC Channel 2 BAR  
ACPI EC Channel 3 BAR  
ACPI EC Channel 4 BAR  
ACPI PM1 BAR  
Legacy (Fast Keyboard) BAR  
UART 0 BAR  
UART 1 BAR  
EMI 0 BAR  
EMI 1 BAR  
EMI 2 BAR  
DS00002206H-page 140  
2016-2020 Microchip Technology Inc.  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
LPC Interface  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
BIOS Debug Port (Port 80) 0 BAR  
BIOS Debug Port (Port 80) 1 BAR  
RTC BAR  
400F339Ch  
400F33A0h  
400F33A4h  
400F33B0h  
400F33B8h  
400F33C0h  
400F33C6h  
400F33CCh  
400F33D2h  
400F33D8h  
400F33DEh  
400F33E4h  
400F33EAh  
400F33F0h  
400F3400h  
400F3401h  
400F3500h  
400F350Ch  
400F3514h  
SRAM BAR 0  
SRAM BAR 1  
Mailbox  
ACPI EC Channel 0  
ACPI EC Channel 1  
ACPI EC Channel 2  
ACPI EC Channel 3  
ACPI EC Channel 4  
Embedded Memory Interface (EMI) 0  
Embedded Memory Interface (EMI) 1  
Embedded Memory Interface (EMI) 2  
Index Register  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
Data Register  
Peripheral Channel Last Cycle Register  
Peripheral Channel Error Address Register  
Peripheral Channel Status Register  
Peripheral Channel Interrupt Enable Register  
Reserved  
400F3518h  
400F351Ch  
400F3520h  
400F3528h  
400F352Ch  
400F3530h  
400F3534h  
400F3538h  
400F353Ch  
400F3540h  
400F3544h  
400F3548h  
400F354Ch  
400F3550h  
400F3554h  
400F3558h  
400F355Ch  
400F3560h  
400F3564h  
400F3568h  
400F356Ch  
400F3570h  
400F3574h  
400F3578h  
BAR Inhibit Register  
eSPI BAR Init Register  
EC IRQ Register  
TEST  
eSPI IO Component BAR  
eSPI Memory Component BAR  
Mailbox BAR  
8042 Emulated Keyboard Controller BAR  
ACPI EC Channel 0 BAR  
ACPI EC Channel 1 BAR  
ACPI EC Channel 2 BAR  
ACPI EC Channel 3 BAR  
ACPI EC Channel 4 BAR  
ACPI PM1 BAR  
Legacy (Fast Keyboard) BAR  
UART 0 BAR  
UART 1 BAR  
Embedded Memory Interface (EMI) 0 BAR  
Embedded Memory Interface (EMI) 1 BAR  
Embedded Memory Interface (EMI) 2 BAR  
BIOS Debug Port (Port 80) 0 BAR  
BIOS Debug Port (Port 80) 1 BAR  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 141  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
RTC BAR  
400F357Ch  
400F3620h  
400F3624h  
400F3628h  
400F362Ch  
400F3640h  
400F3648h  
400F3650h  
400F3654h  
400F3658h  
400F365Ch  
400F3660h  
400F3664h  
LTR Peripheral Status Register  
LTR Peripheral Enable Register  
LTR Peripheral Control Register  
LTR Peripheral Message Register  
OOB Channel Receive Address Register  
OOB Channel Transmit Address Register  
OOB Channel Receive Length Register  
OOB Channel Transmit Length Register  
OOB Channel Receive Control Register  
OOB Channel Receive Interrupt Enable Register  
OOB Channel Receive Status Register  
OOB Channel Transmit Control Register  
OOB Channel Transmit Interrupt Enable Register 400F3668h  
OOB Channel Transmit Status Register  
Flash Access Channel Flash Address Register  
Flash Access Channel Buffer Address Register  
Flash Access Channel Transfer Length Register  
Flash Access Channel Control Register  
Flash Access Channel Interrupt Enable Register  
Flash Access Channel Configuration Register  
Flash Access Channel Status Register  
Virtual Wire Status  
400F366Ch  
400F3680h  
400F3688h  
400F3690h  
400F3694h  
400F3698h  
400F369Ch  
400F36A0h  
400F36B0h  
400F36E0h  
400F36E1h  
400F36E2h  
400F36E3h  
400F36E4h  
400F36E5h  
400F36E6h  
400F36E7h  
400F36E8h  
400F36E9h  
400F36EAh  
400F36EBh  
400F36ECh  
400F36EDh  
400F3730h  
400F3734h  
400F3738h  
400F373Ch  
400F3740h  
400F3744h  
eSPI Capabilities ID Register  
eSPI Capabilities Global Capabilities 0 Register  
eSPI Capabilities Global Capabilities 1 Register  
eSPI Peripheral Channel Capabilities Register  
eSPI Virtual Wire Channel Capabilities Register  
eSPI OOB Channel Capabilities Register  
eSPI Flash Channel Capabilities Register  
eSPI Peripheral Channel Ready Register  
eSPI OOB Channel Ready Register  
eSPI Flash Channel Ready Register  
eSPI Reset Interrupt Status Register  
eSPI Reset Interrupt Enable Register  
PLTRST Source Register  
eSPI Virtual Wire Channel Ready Register  
eSPI Activate Register  
eSPI IO Component BAR  
eSPI Memory Component BAR  
Mailbox BAR  
8042 Emulated Keyboard Controller BAR  
ACPI EC Channel 0 BAR  
DS00002206H-page 142  
2016-2020 Microchip Technology Inc.  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
ACPI EC Channel 1 BAR  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI IO Component  
eSPI Memory Component  
eSPI Memory Component  
eSPI Memory Component  
eSPI Memory Component  
eSPI Memory Component  
eSPI Memory Component  
eSPI Memory Component  
eSPI Memory Component  
eSPI Memory Component  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
400F3748h  
400F374Ch  
400F3750h  
400F3754h  
400F3758h  
400F375Ch  
400F3760h  
400F3764h  
400F3768h  
400F376Ch  
400F3770h  
400F3774h  
400F3778h  
400F3778h  
400F37ACh  
400F37ADh  
400F37AEh  
400F37AFh  
400F37B0h  
400F37B1h  
400F37B2h  
400F37B3h  
400F37B4h  
400F37B5h  
400F37B6h  
400F37B7h  
400F37B8h  
400F37B9h  
400F37BAh  
400F37BBh  
400F37BCh  
400F37BDh  
400F37BEh  
400F37F0h  
400F3930h  
400F393Ah  
400F3944h  
400F394Eh  
400F3958h  
400F3962h  
400F396Ch  
400F3976h  
400F3980h  
ACPI EC Channel 2 BAR  
ACPI EC Channel 3 BAR  
ACPI EC Channel 4 BAR  
ACPI PM1 BAR  
Legacy (Fast Keyboard) BAR  
UART 0 BAR  
UART 1 BAR  
Embedded Memory Interface (EMI) 0 BAR  
Embedded Memory Interface (EMI) 1 BAR  
Embedded Memory Interface (EMI) 2 BAR  
BIOS Debug Port (Port 80) 0 BAR  
BIOS Debug Port (Port 80) 1 BAR  
RTC BAR  
Mailbox SERIRQ 0  
Mailbox SERIRQ 1  
8042 SERIRQ 0  
8042 SERIRQ 1  
ACPI EC 0 SERIRQ  
ACPI EC 1 SERIRQ  
ACPI EC 2 SERIRQ  
ACPI EC 3 SERIRQ  
ACPI EC 4 SERIRQ  
UART 0 SERIRQ  
UART 1 SERIRQ  
EMI 0 SERIRQ 0  
EMI 0 SERIRQ 1  
EMI 1 SERIRQ 0  
EMI 1 SERIRQ 1  
EMI 2 SERIRQ 0  
EMI 2 SERIRQ 1  
RTC SERIRQ  
EC SERIRQ  
eSPI Virtual Wire Error  
Mailbox BAR  
ACPI EC Channel 0 BAR  
ACPI EC Channel 1 BAR  
ACPI EC Channel 2 BAR  
ACPI EC Channel 3 BAR  
ACPI EC Channel 4 BAR  
Embedded Memory Interface (EMI) 0 BAR  
Embedded Memory Interface (EMI) 1 BAR  
Embedded Memory Interface (EMI) 2 BAR  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 143  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
eSPI Memory Component  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
SRAM BAR 0  
SRAM BAR 1  
400F39ACh  
400F39B6h  
400F3A00h  
400F3A04h  
400F3A08h  
400F3A10h  
400F3A14h  
400F3A1Ch  
400F3A24h  
400F3A28h  
400F3A30h  
400F3B30h  
400F3B3Ah  
400F3B44h  
400F3B4Eh  
400F3B58h  
400F3B62h  
400F3B6Ch  
400F3B76h  
400F3B80h  
400F3BACh  
400F3BB6h  
400F4000h  
400F4001h  
400F4002h  
400F4003h  
400F4004h  
400F4005h  
400F4006h  
400F4007h  
400F4008h  
400F4009h  
400F400Ah  
400F400Bh  
400F400Ch  
400F4100h  
400F4101h  
400F4104h  
400F4108h  
400F410Ah  
400F410Ch  
400F4110h  
400F4112h  
eSPI Memory Component  
eSPI Memory Component  
Bus Master Status Register  
Bus Master Interrupt Enable Register  
Bus Master Configuration Register  
Bus Master 1 Control Register  
Bus Master 1 Host Address Register  
Bus Master 1 Internal Address Register  
Bus Master 2 Control Register  
Bus Master 2 Host Address Register  
Bus Master 2 Internal Address Register  
Mailbox BAR  
eSPI Memory Component  
eSPI Memory Component  
eSPI Memory Component  
eSPI Memory Component  
eSPI Memory Component  
eSPI Memory Component  
eSPI Memory Component  
eSPI Memory Component  
eSPI Memory Component  
eSPI Memory Component  
ACPI EC Channel 0 BAR  
eSPI Memory Component  
ACPI EC Channel 1 BAR  
eSPI Memory Component  
ACPI EC Channel 2 BAR  
eSPI Memory Component  
ACPI EC Channel 3 BAR  
eSPI Memory Component  
ACPI EC Channel 4 BAR  
eSPI Memory Component  
Embedded Memory Interface (EMI) 0 BAR  
Embedded Memory Interface (EMI) 1 BAR  
Embedded Memory Interface (EMI) 2 BAR  
SRAM BAR 0  
eSPI Memory Component  
eSPI Memory Component  
eSPI Memory Component  
eSPI Memory Component  
SRAM BAR 1  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
HOST-to-EC Mailbox Register  
EC-to-HOST Mailbox Register  
EC Address LSB Register  
EC Address MSB Register  
EC Data Byte 0 Register  
EC Data Byte 1 Register  
EC Data Byte 2 Register  
EC Data Byte 3 Register  
Interrupt Source LSB Register  
Interrupt Source MSB Register  
Interrupt Mask LSB Register  
Interrupt Mask MSB Register  
Application ID Register  
HOST-to-EC Mailbox Register  
EC-to-HOST Mailbox Register  
Memory Base Address 0 Register  
Memory Read Limit 0 Register  
Memory Write Limit 0 Register  
Memory Base Address 1 Register  
Memory Read Limit 1 Register  
Memory Write Limit 1 Register  
DS00002206H-page 144  
2016-2020 Microchip Technology Inc.  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
Interrupt Set Register  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
EMI  
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
400F4114h  
400F4116h  
400F4400h  
400F4401h  
400F4402h  
400F4403h  
400F4404h  
400F4405h  
400F4406h  
400F4407h  
400F4408h  
400F4409h  
400F440Ah  
400F440Bh  
400F440Ch  
400F4500h  
400F4501h  
400F4504h  
400F4508h  
400F450Ah  
400F450Ch  
400F4510h  
400F4512h  
400F4514h  
400F4516h  
400F4800h  
400F4801h  
400F4802h  
400F4803h  
400F4804h  
400F4805h  
400F4806h  
400F4807h  
400F4808h  
400F4809h  
400F480Ah  
400F480Bh  
400F480Ch  
400F4900h  
400F4901h  
400F4904h  
400F4908h  
400F490Ah  
Host Clear Enable Register  
HOST-to-EC Mailbox Register  
EC-to-HOST Mailbox Register  
EC Address LSB Register  
EC Address MSB Register  
EC Data Byte 0 Register  
EC Data Byte 1 Register  
EC Data Byte 2 Register  
EC Data Byte 3 Register  
Interrupt Source LSB Register  
Interrupt Source MSB Register  
Interrupt Mask LSB Register  
Interrupt Mask MSB Register  
Application ID Register  
HOST-to-EC Mailbox Register  
EC-to-HOST Mailbox Register  
Memory Base Address 0 Register  
Memory Read Limit 0 Register  
Memory Write Limit 0 Register  
Memory Base Address 1 Register  
Memory Read Limit 1 Register  
Memory Write Limit 1 Register  
Interrupt Set Register  
Host Clear Enable Register  
HOST-to-EC Mailbox Register  
EC-to-HOST Mailbox Register  
EC Address LSB Register  
EC Address MSB Register  
EC Data Byte 0 Register  
EC Data Byte 1 Register  
EC Data Byte 2 Register  
EC Data Byte 3 Register  
Interrupt Source LSB Register  
Interrupt Source MSB Register  
Interrupt Mask LSB Register  
Interrupt Mask MSB Register  
Application ID Register  
HOST-to-EC Mailbox Register  
EC-to-HOST Mailbox Register  
Memory Base Address 0 Register  
Memory Read Limit 0 Register  
Memory Write Limit 0 Register  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 145  
MEC170x  
Register  
Address  
Block  
Instance  
Register  
EMI  
2
2
2
2
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
Memory Base Address 1 Register  
Memory Read Limit 1 Register  
Memory Write Limit 1 Register  
Interrupt Set Register  
Host Clear Enable Register  
Seconds Register  
Seconds Alarm Register  
Minutes Register  
400F490Ch  
400F4910h  
400F4912h  
400F4914h  
400F4916h  
400F5000h  
400F5001h  
400F5002h  
400F5003h  
400F5004h  
400F5005h  
400F5006h  
400F5007h  
400F5008h  
400F5009h  
400F500Ah  
400F500Bh  
400F500Ch  
400F500Dh  
400F500Eh  
400F500Fh  
400F5010h  
400F5014h  
400F5018h  
400F501Ch  
400F5020h  
400F8000h  
400F8100h  
400F8104h  
400F8108h  
400F810Ch  
400F8330h  
400F8400h  
400F8500h  
400F8504h  
400F8508h  
400F850Ch  
400F8730h  
400F9C00h  
400F9C0Ch  
400F9C18h  
400F9C24h  
400F9C30h  
EMI  
EMI  
EMI  
EMI  
Real Time Clock  
Real Time Clock  
Real Time Clock  
Real Time Clock  
Real Time Clock  
Real Time Clock  
Real Time Clock  
Real Time Clock  
Real Time Clock  
Real Time Clock  
Real Time Clock  
Real Time Clock  
Real Time Clock  
Real Time Clock  
Real Time Clock  
Real Time Clock  
Real Time Clock  
Real Time Clock  
Real Time Clock  
Real Time Clock  
Real Time Clock  
Port 80  
Minutes Alarm Register  
Hours Register  
Hours Alarm Register  
Day of Week Register  
Day of Month Register  
Month Register  
Year Register  
Register A  
Register B  
Register C  
Register D  
Reserved  
Reserved  
RTC Control Register  
Week Alarm Register  
Daylight Savings Forward Register  
Daylight Savings Backward Register  
TEST  
Host Data Register  
EC Data Register  
Configuration Register  
Status Register  
Port 80  
Port 80  
Port 80  
Port 80  
Count Register  
Port 80  
Activate Register  
Port 80  
Host Data Register  
EC Data Register  
Configuration Register  
Status Register  
Port 80  
Port 80  
Port 80  
Port 80  
Count Register  
Port 80  
Activate Register  
eSPI Virtual Wires  
eSPI Virtual Wires  
eSPI Virtual Wires  
eSPI Virtual Wires  
eSPI Virtual Wires  
MSVW00 Register  
MSVW01 Register  
MSVW02 Register  
MSVW03 Register  
MSVW04 Register  
DS00002206H-page 146  
2016-2020 Microchip Technology Inc.  
MEC170x  
Register  
Address  
Block  
eSPI Virtual Wires  
Instance  
Register  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
MSVW05 Register  
MSVW06 Register  
MSVW07 Register  
MSVW08 Register  
MSVW09 Register  
MSVW10 Register  
SMVW00 Register  
SMVW01 Register  
SMVW02 Register  
SMVW03 Register  
SMVW04 Register  
SMVW05 Register  
SMVW06 Register  
SMVW07 Register  
TEST  
400F9C3Ch  
400F9C48h  
400F9C54h  
400F9C60h  
400F9C6Ch  
400F9C78h  
400F9E00h  
400F9E08h  
400F9E10h  
400F9E18h  
400F9E20h  
400F9E28h  
400F9E30h  
400F9E38h  
400F9FF0h  
400F9FF2h  
400F9FF8h  
400F9FFAh  
400FFF00h  
400FFF07h  
400FFF20h  
400FFF21h  
400FFF24h  
400FFF28h  
400FFF29h  
400FFF2Ch  
eSPI Virtual Wires  
eSPI Virtual Wires  
eSPI Virtual Wires  
eSPI Virtual Wires  
eSPI Virtual Wires  
eSPI Virtual Wires  
eSPI Virtual Wires  
eSPI Virtual Wires  
eSPI Virtual Wires  
eSPI Virtual Wires  
eSPI Virtual Wires  
eSPI Virtual Wires  
eSPI Virtual Wires  
eSPI Virtual Wires  
eSPI Virtual Wires  
eSPI Virtual Wires  
eSPI Virtual Wires  
Global Configuration  
Global Configuration  
Global Configuration  
Global Configuration  
Global Configuration  
Global Configuration  
Global Configuration  
Global Configuration  
TEST  
TEST  
TEST  
Global Configuration Reserved  
Logical Device Number  
Device ID  
Revision  
TEST  
TEST  
TEST  
TEST  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 147  
MEC170x  
4.0  
4.1  
POWER, CLOCKS, AND RESETS  
Introduction  
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.2  
References  
No references have been cited for this chapter.  
4.3  
Interrupts  
The Power, Clocks, and Resets logic generates no events  
4.4  
Power  
TABLE 4-1:  
Power Well  
VTR_REG  
POWER SOURCE DEFINITIONS  
Nominal  
Description  
Source  
Voltage  
1.8V - 3.3V  
This supply is used to derive the chip’s Pin Interface  
core power.  
VTR_ANALOG  
VTR_PLL  
3.3V  
3.3V  
3.3V Analog Power Supply.  
Pin Interface  
3.3V Power Supply for the 48MHz PLL. Pin Interface  
This must be connected to the same  
supply as VTR_ANALOG.  
VTR1  
3.3V or 1.8V Variable voltage I/O Power Supply.  
Pin Interface  
Power supply for a bank of I/O pins.  
See Note 1.  
This supply must be 3.3V if an internal  
EEPROM is included.  
VTR2  
VTR3  
3.3V or 1.8V Variable voltage I/O Power Supply.  
Pin Interface  
Pin Interface  
Power supply for a bank of I/O pins.  
See Note 1.  
3.3V or 1.8V Variable voltage I/O Power Supply.  
Power supply for a bank of I/O pins.  
See Note 1.  
VTR  
1.2V  
The main power well for internal logic  
Internal regulator  
VBAT  
3.0V - 3.3V  
System Battery Back-up Power Well.  
This is the “coin-cell” battery.  
Pin Interface  
VBAT  
GPIOs that share pins with VBAT sig-  
nals are powered by this supply.  
VSS  
0V  
Digital Ground  
Pin Interface  
Note 1: See Section 4.4.1, "I/O Rail Requirements" for connection requirements for VTRx  
4.4.1  
I/O RAIL REQUIREMENTS  
All pins are powered by four power supply pins: VBAT, VTR1, VTR2 and VTR3. The VBAT supply must be 3V to 3.6V  
maximum, as shown in the following section. The VTRx pins, however, may be connected to either a 3.3V or a 1.8V  
power supply. The device must be able to determine the voltage when the internal RESET_SYS is de-asserted in order  
to configure the pins properly. The device remains in reset until VTR_ANALOG has ramped to 3.3V and VTR_REG has  
DS00002206H-page 148  
2016-2020 Microchip Technology Inc.  
MEC170x  
ramped to at least 1.6V. In addition, VTR1 must ramp to its desired voltage, 1.8V or 3.3V, in order for the Boundary Scan  
strap to be detected properly, and VTR2 must ramp to its desired voltage, 1.8V or 3.3V, in order for the Shared SPI/eSPI  
strap to be detected properly, or for booting from a Shared SPI Flash. VTR3 must ramp to 1.8V before booting of the  
eSPI Flash Channel can be executed.  
Software can determine whether a VTRx region is 1.8V or 3.3V by examining the GPIO Bank Power Register.  
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.2  
BATTERY 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  
3.3V nom,  
from AC Source  
or Battery Pack  
To EC as  
VTR  
(Schottky Diode)  
“RTC” Rail (PCH, System)  
VBAT  
to EC  
(
)
3.3V max with  
VTR = 0V,  
3.6V max with  
VTR = VBAT  
Possible  
+
3.0V nom  
Coin Cell  
Current Limiter  
(1K typ.)  
(Schottky  
Diode)  
4.4.3  
VOLTAGE REFERENCES  
Table 4-2 lists the External Voltage References to which the MEC170x provides high impedance interfaces.  
TABLE 4-2:  
Power Well  
VREF_VTT  
VOLTAGE REFERENCE DEFINITIONS  
Nominal  
Monitored  
Voltage  
Nominal Input  
Scaling Ratio  
Description  
Source  
Voltage  
Variable  
n/a  
Variable  
Processor Voltage  
Pin Interface  
External Voltage Reference  
Used to scale Processor  
Interface signals. (See  
Note 1.)  
VREF_ADC  
Variable  
n/a  
Variable  
ADC Reference Voltage  
Pin Interface  
Note 1: The MUX_CONTROL field for GPIO044 should be set to GPIO in order to minimize leakage current when  
VREF_VTT is not required (e.g., when neither PECI nor AMD-TSI are active).  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 149  
MEC170x  
4.4.4  
POWER GOOD SIGNALS  
The power good timing and thresholds are defined in the Section 51.9, "VCC_PWRGD Timing".  
TABLE 4-3:  
POWER GOOD SIGNAL DEFINITIONS  
Description  
Power Good  
Signal  
Source  
VCC_PWRGD VCC_PWRGD is an input signal used to indicate VCC_PWRGD Input pin  
when the main system power rail voltage is on  
and stable.  
PWROK  
PWROK is an output signal used to indicate that The PWROK pin is asserted high whenever both  
the main system power rail voltage is on and the the VCC_PWRGD input is asserted high and the  
Host may access Host devices in the EC.  
PWR_INV bit in the Power Reset Control Regis-  
ter is de-asserted low.  
PRIMPWROK PRIMPWROK is an input signal that is asserted GPIO227/SHD_IO2 pin. There is no special  
when the four Primary power rails in an Intel sys- hardware associated with this signal.  
tem (VCC_Prim 1.8V, VCC_Prim 3.3V,  
VCCPRIM_CORE and VCC_Prim 1.0V) are up.  
It is only used by Boot ROM code when booting  
over the eSPI Flash Channel.  
4.4.5  
SYSTEM POWER SEQUENCING  
The following table defines the behavior of the main power rails in each of the defined ACPI power states.  
TABLE 4-4:  
TYPICAL POWER SUPPLIES VS. ACPI POWER STATES  
ACPI Power State  
Supply  
Name  
S0  
(FULL  
ON)  
Description  
S1  
(POS)  
S3  
(STR)  
S4  
(STD)  
S5  
G3  
(Soft Off) (MECH Off)  
VTR  
ON  
ON  
ON  
ON  
ON  
ON  
ON  
ON  
ON  
ON  
OFF  
ON  
“Always-on” Supply  
VBAT  
Battery Back-up Supply  
4.5  
Clocks  
The following section defines the clocks that are generated and derived.  
4.5.1  
RAW CLOCK SOURCES  
The table defines raw clocks that are either generated externally or via an internal oscillator.  
DS00002206H-page 150  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 4-5:  
Clock Name  
SOURCE CLOCK DEFINITIONS  
Frequency  
Description  
Single-ended external clock input pin 32KHZ_IN pin  
Source  
32KHZ_IN  
32.768 kHz  
(nominal)  
32.768 kHz Crystal  
Oscillator  
32.768 kHz  
A32.768 kHz parallel resonant crystal 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.  
When used singled-ended, pin XTAL2  
The crystal oscillator source can  
bypass the crystal with a single-  
ended clock input. This option is con-  
figured with the Clock Enable Regis-  
ter.  
32.768 kHz Silicon  
Oscillator  
32.768 kHz  
32MHz  
32.768 kHz low power Internal Oscil- Internal Oscillator powered by VBAT  
lator. The frequency is 32.768KHz  
±2%.  
32 MHz Ring  
Oscillator  
The 32MHz Ring Oscillator is used to Powered by VTR.  
supply a clock for the 48MHz main  
clock domain while the 48MHz PLL is  
not locked. Its frequency can range  
from 16Mhz to 48MHz.  
48 MHz PLL  
LPC Clock  
eSPI Clock  
48MHz  
The 48 MHz Phase Locked Loop gen- Powered by VTR.  
erates a 48MHz clock locked to the  
Always-on Internal 32KHz Clock  
Source.  
May be stopped by Chip Power Man-  
agement Features.  
18MHz to  
33MHz  
LPC bus clock  
PCI_CLK pin  
This clock is only used in the LPC  
interface.  
20MHz to  
50MHz  
eSPI bus clock  
ESPI_CLK pin  
This clock is only used in the eSPI  
interface.  
4.5.2  
CLOCK DOMAINS  
TABLE 4-6:  
CLOCK DOMAIN DEFINITIONS  
Description  
Clock Domain  
32KHz  
The clock source used by internal blocks that require an always-on  
low speed clock.  
48MHz  
96MHz  
The main clock source used by most internal blocks.  
The clock source used by the Public Key Cryptographic Engine. It  
is derived from the same PLL as the 48MHz clock source.  
100KHz  
EC_CLK  
A low-speed clock derived from the 48MHz clock domain. Used as  
a time base for PWMs and Tachs.  
The clock used by the EC processor. The frequency is determined  
by the Processor Clock Control Register.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 151  
MEC170x  
4.5.3  
48MHZ PLL  
The 48MHz clock domain is primarily driven by a 48MHz PLL, which derives 48MHz from the 32KHz always-on 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; 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 gen-  
erator. The VTR_PLL supply must be filtered, as shown in Figure 4-2, "Power Supply Filtering for PLL". There is no spe-  
cial ground connection required for the PLL.  
FIGURE 4-2:  
POWER SUPPLY FILTERING FOR PLL  
R = 100 ohms  
+3.3V  
VTR_PLL  
C = 22µF  
(Optional)  
C = 0.1µF  
EC  
VFLT_PLL  
4.5.4  
32KHZ CLOCK SWITCHING  
The 32KHz Clock Domain may be sourced by a crystal oscillator, using an external crystal, by an internal 32KHz oscil-  
lator, or from a single-ended clock input. The external single-ended clock source can itself be sourced either 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 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 whenever RSMRST# is de-asserted. 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.1  
Always-on Internal 32KHz Clock Source  
The 32Khz clock domain can be driven from an internal 32KHz clock source that is always on. This clock source is used  
to drive the 48MHz PLL and remains on at all times, even when an external input is selected as the source. 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 Always-on 32KHz Internal Clock Source can be driven either by the 32.768 kHz Silicon Oscillator or the 32.768 kHz  
Crystal Oscillator.  
Note:  
If the 32KHZ_SOURCE field in the Clock Enable Register selects the crystal oscillator as the source for the  
always-on clock source, and the XOSEL field selects a single-ended input for the crystal oscillator, the sys-  
tem must ensure that the single-ended input remains on at all times. The Activity Detector will not monitor  
the single-ended input to the crystal oscillator.  
DS00002206H-page 152  
2016-2020 Microchip Technology Inc.  
MEC170x  
4.5.4.2  
External 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.  
FIGURE 4-3:  
32KHZ ACTIVITY DETECTOR  
3 2 K H z  
S ilic o n O s c illa to r  
0
“ A lw a y s -o n ”  
0
3 2 K H z  
C r y s ta l O s c illa to r  
1
3 2 K H z C lo c k D o m a in  
1
3 2 K H z (X T A L 2 )  
0
1
X O S E L  
3 2 K _ S O U R C E  
3 2 K H z ( 3 2 K H Z _ I N )  
A c tiv ity  
D e te c t o r  
E X T _ 3 2 K  
Note:  
Once the internal 32KHz clock domain switches to an external single-ended clock source, the external  
source must remain active until VTR power is removed, or internal clocking may not function correctly.  
4.5.4.3  
32KHz 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.6  
Resets  
TABLE 4-7:  
Reset  
DEFINITION OF RESET SIGNALS  
Description  
Source  
RESET_VBAT  
Internal VBAT Reset signal. This signal is used 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 lat-  
ter 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 pres-  
ent.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 153  
MEC170x  
TABLE 4-7:  
Reset  
DEFINITION OF RESET SIGNALS (CONTINUED)  
Description  
Internal VTR Reset signal.  
Source  
RESET_VTR  
This internal reset signal is asserted as long as  
the reset generator determines that the output of  
the internal regulator is stable at its target volt-  
age and that the voltage rail supplying the main  
clock PLL is at 3.3V.  
Although most VTR-powered registers are reset  
on RESET_SYS, some registers are only reset  
on this reset.  
RESET_SYS  
Internal Reset signal. This signal is used to reset RESET_SYS is the main global reset signal.  
VTR powered registers.  
This reset signal will be asserted if:  
RESET_VTR is asserted  
• The RESETI# 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  
RESET_eSPI  
RESET_VCC  
System reset signal connected to the eSPI  
ESPI_RESET# pin.  
Pin Interface, ESPI_RESET# pin.  
Performs a reset when Host power (VCC) is  
turned off  
This signal is asserted if  
RESET_SYS is asserted  
VCC_PWRGD is low  
• The PWR_INV bit in the Power Reset Con-  
trol Register is ‘1b’  
The PWROK output pin is an inverted version of  
this reset; it is asserted when VCC_PWRGD is  
high and the PWR_INV bit is ‘0b’.  
Note:  
This reset is referred to as RESET_-  
SIO in the eSPI Block Specification.  
RESET_HOST Performs a reset when VCC_PWRGD is low or This signal is asserted if  
when the system host resets the Host Interface.  
RESET_SYS is asserted  
VCC_PWRGD is low  
• The PWR_INV bit in the Power Reset Con-  
trol Register is ‘1b’  
• The HOST_RESET_SELECT bit in the  
Power Reset Control Register is configured  
for LRESET# and the LRESET# signal is  
asserted  
• The HOST_RESET_SELECT bit in the  
Power Reset Control Register is configured  
for eSPI_PLTRST# and the eSPI_PLTRST#  
signal from the eSPI block is asserted.  
WDT Event  
A WDT Event generates the RESET_SYS  
event. This signal resets VTR powered registers  
with the exception of the WDT Event Count Reg-  
ister register. Note that the glitch protect circuits  
do not activate on a WDT reset. WDT Event  
does not reset VBAT registers or logic.  
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  
DS00002206H-page 154  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 4-7:  
Reset  
DEFINITION OF RESET SIGNALS (CONTINUED)  
Description  
Source  
RESET_SYS_n Internal Reset signal. This signal is used to reset This reset signal will be asserted if:  
WDT  
VTR powered registers not effected by a WDT  
Event  
RESET_VTR is asserted  
• The RESETI# 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_EC  
Internal reset signal to reset the processor in the This reset is a stretched version of  
EC Subsystem.  
RESET_SYS. This reset asserts at the same  
time that RESET_SYS asserts and is held  
asserted for 1ms after RESET_SYS deasserts.  
RESET_BLOCK_N Each IP block in the device may be configured to This reset signal will be asserted if Block N  
be reset when it enters the Low Power Mode  
referred to as SLEEP.  
SLEEP_ENABLE and Block N RESET_ENABLE  
are all set to 1, Block N CLOCK_REQUIRED  
signal is low, and Block N Enters Sleep.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 155  
MEC170x  
FIGURE 4-4:  
RESETS BLOCK DIAGRAM  
RESET_VTR  
E.g. WDT Event Count  
RESET_SYS_nWDT  
RESETI  
WDT  
WDT_Event  
RESET_SYS  
1ms  
RESET_EC  
PWROK  
Delay  
CORTEXM4_RESET  
SOFT_SYS_RESET1  
PWR_INV2  
RESET_VCC  
PWR_INV2  
RESET_HOST  
VCC_PWRGD  
LRESET#  
Host_Reset_Select  
eSPI Controller  
PC_Channel_Disable  
eSPI_PLTRST#  
host_slp_rst#3  
GPIO062  
Data Ouput  
RESETO#  
ESPI_RESET#  
VTR  
PLTRST# Virtual Wire  
PLTRST_SRC  
RESET_HOST4  
BLOCK N Sleep Event  
RESET_BLOCK_N  
Sleep  
Control  
Note: PC_Channel_Disable, PLTRST#  
Virtual Wire, and PLTRST_SRC are defined  
in eSPI Controller Specification.  
BLOCK N RESET ENABLE  
Note 1: SOFT_SYS_RESET is implemented in bit[8] of the System Reset Register  
Note 2: PWR_INV is implemented in bit[0] of the Power Reset Control Register  
Note 3: host_slp_rst# is asserted if the Host Sleep Enable bit and Host Reset Enable bit are set and the eSPI Controller is put to sleep  
Note 4: RESET_HOST is fed back into the eSPI Controller to reset select registers/bits  
DS00002206H-page 156  
2016-2020 Microchip Technology Inc.  
MEC170x  
4.7  
Chip 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.1  
BLOCK 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 inter-  
face consists of three signals:  
SLEEP_ENABLE (request to sleep the block) is generated by the PCR block. A group of SLEEP_ENABLE sig-  
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 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.  
RESET_ENABLE (reset on sleep) bits determine if the block (including registers) will be reset when it enters  
sleep mode.  
Ablock can always drive CLOCK_REQUIRED low synchronously, but it must drive it high asynchronously since its inter-  
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-8:  
Power State  
POWER MANAGEMENT PROTOCOL  
SLEEP_ENABLE CLOCK_REQUIRED  
Description  
Normal operation  
Low  
Low  
Block is idle and NOT requesting clocks. The block  
gates its own internal clock.  
Normal operation  
Request sleep  
Low  
High  
Low  
Block is NOT idle and requests clocks.  
Rising Edge  
Block 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 sleep  
Rising Edge  
High then Low  
Block 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 Access  
X
High  
Register 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.  
Awake event clears all SLEEP_ENABLE bits momentarily, and then returns the SLEEP_ENABLE bits back to their orig-  
inal 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.2  
CONFIGURING 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-10, "System Sleep Modes" defines each of these sleep states.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 157  
MEC170x  
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.3  
DETERMINING WHEN THE CHIP IS SLEEPING  
The 48MHZ_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.4  
WAKING 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 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, me  
be used immediately on wake.  
In HEAVY SLEEP, the 48 MHz PLL is shut down. On wake, the 32 MHz Ring Oscillator is used to provide a clock source  
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-10, "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.  
4.7.4.1  
Wake-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. For example, an LPC Host may read a register in an LPC logical device,  
with no side effects. 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.  
The Wake-Only Events and interrupts are responsible for waking up the respective blocks from where the Event or  
interrupt becomes active, but will not enable the clock to the processor.  
For example, when RSMRST is high and there is a desire to wake from an ESPI cycle, GIRQ22[9] is the correct wake  
source to use. When Chip is asleep and there is a ESPI cycle, the falling edge of the CS will cause the chips clock to  
turn on the ESPI block, but not the processor itself. Upon conclusion of the ESPI cycle, if no ESPI interrupt was gen-  
erated (i.e. most cycles), then the clock to the ESPI block will go off, and the chip will go back to sleep. If the ESPI  
cycle creates an interrupt to the processor (i.e. downstream wire or downstream OOB packet for example), then an  
processor interrupt will be generated if enabled and the clock will remain on and the processor can service the interrupt  
and the processor can put the chip back to sleep when it has completed its work.  
Note:  
The ESPI Reset itself is NOT a wake event. If wake from ESPI reset is required, then the GPIO interrupt  
for the ESPI reset pin can be used as a wake event.  
Example: LPC I/O Traffic targeting EMI block.  
DS00002206H-page 158  
2016-2020 Microchip Technology Inc.  
MEC170x  
The LPC Interface detects traffic on the bus and requires the clock to be on to process the incoming data. If the  
LPC_WAKE_ONLY interrupt in GIRQ22 is enabled, the LPC block will be able to autonomously receive data for the pro-  
grammed I/O ranges without processor intervention. Once the data is loaded into the HOST-to-EC Mailbox Register the  
Host-to-EC IRQ will trigger an interrupt to the embedded controller to service this command.  
4.8  
EC 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-9:  
Offset  
REGISTER SUMMARY  
Name  
0h  
System Sleep Control Register  
Processor Clock Control Register  
Slow Clock Control Register  
Oscillator ID Register  
4h  
8h  
Ch  
10h  
14h  
18h  
1Ch  
20h  
30h  
34h  
38h  
3Ch  
40h  
50h  
54h  
58h  
5Ch  
60h  
70h  
74h  
78h  
7Ch  
80h  
PCR Power Reset Status Register  
Power Reset Control Register  
System Reset Register  
TEST  
TEST  
Sleep Enable 0 Register  
Sleep Enable 1 Register  
Sleep Enable 2 Register  
Sleep Enable 3 Register  
Sleep Enable 4 Register  
Clock Required 0 Register  
Clock Required 1 Register  
Clock Required 2 Register  
Clock Required 3 Register  
Clock Required 4 Register  
Reset Enable 0 Register  
Reset Enable 1 Register  
Reset Enable 2 Register  
Reset Enable 3 Register  
Reset Enable 4 Register  
Note:  
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".  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 159  
MEC170x  
4.9  
Sleep Enable n Registers  
4.9.1  
SLEEP ENABLE N REGISTER FORMAT  
See Sleep Enable Register Assignments Table in Section 3.0, "Device Inventory"  
Offset  
Reset  
Event  
Bits  
31:0 SLEEP_ENABLE  
Description  
Type  
Default  
R/W  
0h  
RESET  
_SYS  
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 writ-  
ten. When read, unassigned bits return the last value written.  
4.9.2  
CLOCK REQUIRED N REGISTER FORMAT  
See Sleep Enable Register Assignments Table in Section 3.0, "Device Inventory"  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:0 CLOCK_REQUIRED  
1=Bock requires clocks  
R
0h  
RESET  
_SYS  
0=Block does not require clocks  
Unassigned bits are reserved and always return 0 when read.  
4.9.3  
RESET ENABLE N REGISTER FORMAT  
Note:  
If a block is configured such that it is to be reset when it goes to sleep, then registers within the block may  
not be writable when the block is asleep.  
See Sleep Enable Register Assignments Table in Section 3.0, "Device Inventory"  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:0 RESET_ENABLE  
1=Bock will reset on sleep  
R/W  
0h  
RESET  
_SYS  
0=Block will not reset on sleep  
Unassigned bits are reserved and always return 0 when read.  
DS00002206H-page 160  
2016-2020 Microchip Technology Inc.  
MEC170x  
4.9.4  
SYSTEM SLEEP CONTROL REGISTER  
0h  
Offset  
Reset  
Default  
Bits  
31:4 Reserved  
Description  
Type  
Event  
R
-
-
3
SLEEP_ALL  
R/W  
0h  
RESET  
_SYS  
By setting this bit to ‘1b’ and then issuing a WAIT FOR INTER-  
RUPT 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  
2
TEST  
R/W  
0h  
RESET  
_SYS  
Test bit. Should always be written with a ‘0b’.  
1
0
Reserved  
R
-
-
SLEEP_MODE  
R/W  
0h  
RESET  
_SYS  
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-10 shows the time to lock latency for the different  
sleep modes.  
1=Heavy Sleep  
0=Light Sleep  
TABLE 4-10: SYSTEM SLEEP MODES  
Latency to  
SLEEP_MODE  
Sleep State  
Description  
Lock  
0
1
LIGHT SLEEP  
HEAVY SLEEP  
0
Output of the PLL is gated in sleep. The PLL remains on.  
The PLL is shut down while in sleep.  
3ms  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 161  
MEC170x  
4.9.5  
PROCESSOR CLOCK CONTROL REGISTER  
04h  
Offset  
Reset  
Event  
Bits  
31:8 Reserved  
Description  
Type  
Default  
R
-
-
7:0 PROCESSOR_CLOCK_DIVIDE  
R/W  
4h  
RESET  
_SYS  
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.  
4.9.6  
SLOW CLOCK CONTROL REGISTER  
08h  
Offset  
Reset  
Event  
Bits  
Description  
Type  
Default  
31:10 Reserved  
R
-
-
9:0 SLOW_CLOCK_DIVIDE  
R/W  
1E0h  
RESET  
_SYS  
Configures the 100KHz clock domain.  
n=Divide by n  
0=Clock off  
The default setting is for 100KHz.  
4.9.7  
OSCILLATOR ID REGISTER  
0Ch  
Offset  
Reset  
Event  
Bits  
31:9 Reserved  
Description  
Type  
Default  
R
R
-
-
8
PLL_LOCK  
0h  
RESET  
_SYS  
Phase Lock Loop Lock Status  
7:0 TEST  
R
N/A  
RESET  
_SYS  
DS00002206H-page 162  
2016-2020 Microchip Technology Inc.  
MEC170x  
4.9.8  
PCR POWER RESET STATUS REGISTER  
10h  
Offset  
Reset  
Default  
Bits  
31:12 Reserved  
Description  
Type  
Event  
R
R
-
-
-
11 ESPI_CLK_ACTIVE  
RESET  
_SYS  
This bit monitors the state of the eSPI clock input. This status bit  
detects edges on the clock input but does not validate the fre-  
quency.  
1=The eSPI clock is present.  
0=The eSPI clock input is not present.  
11 PCICLK_ACTIVE  
R
R
-
-
RESET  
_SYS  
This bit monitors the state of the PCI clock input. This status bit  
detects edges on the clock input but does not validate the fre-  
quency.  
1=The PCI clock is present.  
0=The PCI clock input is not present.  
10 32K_ACTIVE  
RESET  
_SYS  
This bit monitors the state of the 32K clock input. This status bit  
detects edges on the clock input but does not validate the fre-  
quency.  
1=The 32K clock input is present. The internal 32K clock is derived  
from the pin and the ring oscillator is synchronized to the exter-  
nal 32K clock  
0=The 32K clock input is not present. The internal 32K clock is  
derived from the ring oscillator  
9:8 Reserved  
R
R
-
-
7
JTAG_RST#  
1h  
RESET  
_SYS  
Indicates the status of JTAG_RST# pin.  
0 = JTAG_RST# pin is low  
1 = JTAG_RST# pin is high  
6
RESET_SYS_STATUS  
R/WC  
1h  
RESET  
_SYS  
Indicates the current value of RESET_SYS.  
The bit will not clear if a write 1 is attempted at the same time that a  
RESET_SYS 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  
Note 1: This read-only status bit always reflects the current status of the event and is not affected by any Reset  
events.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 163  
MEC170x  
10h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
5
VBAT_RESET_STATUS  
R/WC  
-
RESET  
_SYS  
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 was off or since the last time this bit  
was cleared  
4
3
Reserved  
R
R
-
-
-
RESET_HOST_STATUS  
Note 1  
Indicates the status of RESET_VCC.  
1=Reset not active  
0=Reset active  
2
VCC_PWRGD_STATUS  
R
R
xh  
Note 1  
Indicates the status of VCC_PWRGD.  
1=VCC_PWRGD asserted  
0=VCC_PWRGD not asserted  
1:0 Reserved  
-
-
Note 1: This read-only status bit always reflects the current status of the event and is not affected by any Reset  
events.  
4.9.9  
POWER RESET CONTROL REGISTER  
14h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:9 Reserved  
R
-
-
8
HOST_RESET_SELECT  
R/W  
1h  
RESET  
_SYS  
This bit determines the platform reset signal. It should be set to ‘0b’  
if the eSPI interface is in use.  
1=The LRESET# pin is used to generate the internal Platform Reset  
0=The eSPI_PLTRST# signal from the eSPI block is used to gener-  
ate the internal Platform Reset  
DS00002206H-page 164  
2016-2020 Microchip Technology Inc.  
MEC170x  
14h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
7:1 Reserved  
PWR_INV  
R
-
-
0
R /  
R/W  
1h  
RESET  
_SYS  
This bit allows firmware to control when the Host receives an indi-  
cation that the VCC power is valid, by controlling the state of the  
PWROK pin. This bit is used by firmware to control the internal  
RESET_VCC signal function and the external PWROK pin.  
This bit is read-write when VCC_PWRGD is de-asserted low.  
This bit does not effect RESET_VCC signal  
4.9.10  
SYSTEM RESET REGISTER  
18h  
Offset  
Reset  
Event  
Bits  
Description  
Type  
Default  
31:9 Reserved  
SOFT_SYS_RESET  
R
-
-
-
-
8
W
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:0 Reserved  
R
-
-
2016-2020 Microchip Technology Inc.  
DS00002206H-page 165  
MEC170x  
5.0  
5.1  
ARM M4F BASED EMBEDDED CONTROLLER  
Introduction  
This chapter contains a description of the ARM M4F Embedded Controller (EC).  
The EC is built around an ARM® Cortex®-M4F Processor provided by Arm Ltd. (the “ARM M4F IP”). The ARM Cortex®  
M4F is a full-featured 32-bit embedded processor, implementing the ARMv7-M THUMB instruction set and FPU instruc-  
tion set in hardware.  
The ARM M4F 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 M4F is configured as follows.  
Little-Endian byte ordering is selected at all times  
Bit Banding is included for efficient bit-level access  
Floating-Point Unit (FPU) is included, to implement the Floating-Point instruction set in hardware  
Debug features are included at “Ex+” level, defined as follows:  
- DWT Unit provides 4 Data Watchpoint comparators and Execution Monitoring  
- FPB Unit provides HW Breakpointing with 6 Instruction and 2 Literal (Read-Only Data) address comparators.  
The FPB comparators are also available for Patching: remapping Instruction and Literal Data addresses.  
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  
MPU (Memory Protection Unit) is included for memory access control  
• Single entry Write Buffer is incorporated  
5.2  
References  
1. ARM Limited: Cortex®-M4 Technical Reference Manual, DDI0439C, 29 June 2010  
2. ARM Limited: ARM®v7-M Architecture Reference Manual, DDI0403D, November 2010  
3. NOTE: Filename DDI0403D_arm_architecture_v7m_reference_manual_errata_markup_1_0.pdf  
4. ARM® Generic Interrupt Controller Architecture version 1.0 Architecture Specification, IHI0048A, September  
2008  
5. ARM Limited: AMBA® Specification (Rev 2.0), IHI0011A, 13 May 1999  
6. ARM Limited: AMBA® 3 AHB-Lite Protocol Specification, IHI0033A, 6 June 2006  
7. ARM Limited: AMBA® 3 ATB Protocol Specification, IHI0032A, 19 June 2006  
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  
DS00002206H-page 166  
2016-2020 Microchip Technology Inc.  
MEC170x  
5.3  
Terminology  
5.3.1  
ARM 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 Refer-  
ence[7], ARM Limited: AMBA® 3 ATB Protocol Specification, IHI0032A, 19 June 2006.  
• Cortex-M4F  
The ARM designation for the specific IP selected for this product: a Cortex M4 processor core containing a hard-  
ware Floating Point Unit (FPU).  
• DAP  
Debug Access Port, a subblock consisting of DP and AP subblocks.  
• 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 (Excep-  
tion 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.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 167  
MEC170x  
• FPU  
Floating-Point Unit: a subblock included in the Core for implementing the Floating Point instruction set in hard-  
ware.  
• HTM  
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 instru-  
mented 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 synony-  
mous with the AHB Access Port, AHB-AP.  
• MPU  
Memory Protection Unit.  
• 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.2  
MICROCHIP 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 MEC170x EC. It manages accesses from both the EC processor and chip-level  
bus masters.  
5.4  
ARM M4F 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 MEC170x IP has the following major external interfaces, as shown in Figure 5-1, "ARM M4F Based Embedded  
Controller I/O Block Diagram":  
• ICode AHB-Lite Interface  
• DCode AHB-Lite Interface  
• System AHB-Lite Interface  
DS00002206H-page 168  
2016-2020 Microchip Technology Inc.  
MEC170x  
• Debug (JTAG) Interface  
• Trace Port Interface  
• Interrupt Interface  
The EC operates on the model of a single 32-bit addressing space of byte addresses (4Gbytes, Von Neumann archi-  
tecture) 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 1 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.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 169  
MEC170x  
5.5  
Block External Interfaces  
FIGURE 5-1:  
ARM M4F BASED EMBEDDED CONTROLLER I/O BLOCK DIAGRAM  
Chip-level JTAG TAP  
ARM_M4F EC Block  
DAP  
Debug  
Host  
Mux  
Debug Access Port  
TPIU  
Trace Port Interface  
ETM / ITM  
Trace Outputs  
Optionally  
Grouped  
Inputs  
Directly Vectored  
Connections  
Pulse  
Sync &  
Stretch  
ARM_M4F IP  
NVIC  
Nested  
Vectored  
Interrupt  
Controller  
Processor  
Core w/ FPU  
Grouped  
(Summary)  
Interrupts  
Unconditionally  
Grouped Inputs  
Clock  
Gate  
Chip-Level  
Clock  
Processor  
Clock  
Divider  
ICode  
DCode  
Interface  
(AHB-Lite)  
System  
Interface  
(AHB-Lite)  
Interface  
(AHB-Lite)  
Processor Reset  
Core Reset (POR)  
AMBA 2  
AHB Adapt  
Memory  
Memory  
Bus Adapt Bus Adapt  
Misc. Sideband  
Data  
Port  
Code  
Port  
AHB  
Port  
Chip-Level  
System Bus  
(AMBA 2 AHB)  
PMC Block  
(RAM / ROM)  
DS00002206H-page 170  
2016-2020 Microchip Technology Inc.  
MEC170x  
5.6  
Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
5.6.1  
POWER DOMAINS  
TABLE 5-1:  
POWER SOURCES  
Name  
Description  
The ARM M4F Based Embedded Controller is powered by VTR.  
VTR  
5.6.2  
CLOCK INPUTS  
5.6.2.1  
Basic Clocking  
The basic clocking comes from a free-running Clock signal provided from the chip level.  
TABLE 5-2:  
CLOCK INPUTS  
Name  
Description  
48MHz  
The 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.2  
System 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.3  
Debug 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.4  
Trace Clocking  
The Clock for the Trace interface is identical to the 48MHz input.  
5.6.3  
RESETS  
The reset interface from the chip level is given below.  
TABLE 5-3:  
RESET SIGNALS  
Name  
Description  
RESET_EC  
The ARM M4F Based Embedded Controller is reset by RESET_EC.  
5.7  
Interrupts  
The ARM M4F 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 M4F 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 num-  
ber of interrupt inputs that can be serviced.  
The NMI (Non-Maskable Interrupt) connection is tied off and not used.  
5.7.1  
NVIC 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.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 171  
MEC170x  
5.7.2  
NVIC 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).  
AVector 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, select-  
ing 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:  
Table Entry  
EXCEPTION AND INTERRUPT VECTOR TABLE LAYOUT  
Exception  
Exception  
Number  
Special Entry for Reset Stack Pointer  
0
(none)  
Holds Reset Value for the Main Stack Pointer. Not a Vector.  
Core Internal Exception Vectors start here  
Reset Vector (PC + EPSR.T bit)  
NMI (Non-Maskable Interrupt) Vector  
HardFault Vector  
1
2
1
2
3
3
4
4
MemManage Vector  
5
5
BusFault Vector  
6
6
UsageFault Vector  
7
(none)  
(none)  
(none)  
(none)  
11  
(Reserved by ARM Ltd.)  
(Reserved by ARM Ltd.)  
(Reserved by ARM Ltd.)  
(Reserved by ARM Ltd.)  
SVCall Vector  
8
9
10  
11  
12  
13  
14  
15  
12  
Debug Monitor Vector  
(none)  
14  
(Reserved by ARM Ltd.)  
PendSV Vector  
15  
SysTick Vector  
NVIC Interrupt Vectors start here  
NVIC Interrupt #0 Vector  
16  
16  
.
.
.
.
.
.
.
.
.
n + 16  
n + 16  
NVIC Interrupt #n Vector  
.
.
.
.
.
.
.
.
.
max + 16  
max + 16  
NVIC Interrupt #max Vector (Highest-numbered NVIC connection.)  
.
.
.
.
.
.
. Table size may (but need not) extend further.  
.
.
255  
255  
NVIC Interrupt #239 (Architectural Limit of Exception Table)  
DS00002206H-page 172  
2016-2020 Microchip Technology Inc.  
MEC170x  
5.8  
Low 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.9  
Description  
5.9.1  
BUS CONNECTIONS  
There are three bus connections used from MEC170x EC block, which are directly related to the IP bus ports. See  
Figure 5-1, "ARM M4F 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.1  
Closely 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.2  
Closely 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.3  
Chip-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 reg-  
ister through a bit band alias address will cause the hardware to perform a read-modify-write, and if a W1C-  
type 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.2  
INSTRUCTION PIPELINING  
There are no special considerations except as defined by ARM documentation.  
5.10 Debugger 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 M4F 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.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 173  
MEC170x  
TABLE 5-5:  
ARM JTAG ID  
ARM Debug Mode  
JTAG ID  
SW-DP (2-wire)  
JTAG (4-wire)  
0x2BA01477  
0x4BA00477  
5.10.1  
DEBUG 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.2  
BREAKPOINT, 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.1  
Instrumentation 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.2  
HW 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.3  
Data 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.4  
Trace 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.  
DS00002206H-page 174  
2016-2020 Microchip Technology Inc.  
MEC170x  
5.11 Delay Register  
5.11.1  
DELAY REGISTER  
1000_0000h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
31:5 Reserved  
4:0 DELAY  
R
-
-
R/W  
0h  
RESET_  
SYS  
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.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 175  
MEC170x  
6.0  
RAM AND ROM  
6.1  
References  
None.  
6.2  
SRAM  
The MEC170x contains two blocks of SRAM. he two SRAM blocks in the MEC170x total 480KB. 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 416KB  
• The second SRAM, which is optimized for data access, is 64KB  
6.3  
ROM  
The MEC170x 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.4  
Additional Memory Regions  
6.4.1  
ALIAS 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.4.2  
RAM 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 bit-  
band 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 mem-  
ory fault.  
6.4.3  
CRYPTOGRAPHIC RAM  
The cryptographic RAM is used by the cryptographic API functions in the ROM  
6.4.4  
REGISTER 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 mem-  
ory fault.  
6.5  
Memory Map  
The memory map of the RAM and ROM is represented as follows:  
DS00002206H-page 176  
2016-2020 Microchip Technology Inc.  
MEC170x  
FIGURE 6-1:  
MEMORY LAYOUT  
0x43FF_FFFF  
0x4200_0000  
0x4010_3FFF  
32MB  
ARM Bit Band  
Register Space  
Crypto RAM  
0x4010_0000  
0x400F_FFFF  
Host Device  
Registers  
0x400F_0000  
0x4008_FFFF  
GPIO Registers  
0x4008_0000  
0x4000_FFFF  
EC Device  
Registers  
0x4000_0000  
0x221F_FFFF  
480KB model end address  
2MB  
ARM Bit Band  
256KB, 320KB model end address  
0x220F_FFFF  
Alias RAM Region  
64KB Alias RAM  
64KB RAM  
0x2200_0000  
0x2000_FFFF  
0x2000_7FFF  
0x2000_0000  
480KB model end address  
256KB, 320KB model end address  
480KB model end address  
0x0012_7FFF  
0x0011_FFFF  
0x0011_8000  
256KB, 320KB model end address  
416KB RAM  
256KB model start address  
320KB model start address  
0x000E_0000  
0x000D_0000  
480KB model start address  
0x000B_0000  
0x0000_FFFF  
0x0000_0000  
64KB Boot ROM  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 177  
MEC170x  
7.0  
7.1  
INTERNAL DMA CONTROLLER  
Introduction  
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.2  
References  
No references have been cited for this chapter.  
7.3  
Terminology  
TABLE 7-1:  
TERMINOLOGY  
Term  
Definition  
DMA Transfer  
This 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 Packet  
Each 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 des-  
tination. Both source and destination will transfer the same number of bytes  
per packet.  
Channel  
The Channel is responsible for end-to-end (source-to-destination) Data  
Packet delivery.  
Device  
A Device may refer to a Master or Slave connected to the DMA Channel.  
Each DMA Channel may be assigned one or more devices.  
Master Device  
This 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 Device  
Source  
The Slave Device is defined as the device associated with the targeted  
Memory Address.  
The 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.  
Destination  
The 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.  
DS00002206H-page 178  
2016-2020 Microchip Technology Inc.  
MEC170x  
7.4  
Interface  
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.  
FIGURE 7-1:  
INTERNAL DMA CONTROLLER I/O DIAGRAM  
Internal DMA Controller  
Host Interface  
DMA Interface  
Power, Clocks and Reset  
Interrupts  
7.4.1  
SIGNAL DESCRIPTION  
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 trans-  
fer.  
7.4.2  
HOST INTERFACE  
The registers defined for the Internal DMA Controller are accessible by the various hosts as indicated in Section 7.9,  
"EC Registers".  
7.4.3  
DMA 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 MEC170x.  
TABLE 7-2:  
DMA CONTROLLER DEVICE SELECTION  
Device Number  
Device Name  
(Note 1)  
Controller Source  
SMB-I2C 0 Controller  
SMB-I2C 1 Controller  
SMB-I2C 2 Controller  
SMB-I2C 3 Controller  
SPI 0 Controller  
0
1
Slave  
Master  
Slave  
2
3
Master  
Slave  
4
5
Master  
Slave  
6
7
Master  
Transmit  
Receive  
Transmit  
Receive  
8
9
SPI 1 Controller  
10  
11  
Note 1: The Device Number is programmed into field HARDWARE_FLOW_CONTROL_DEVICE of the DMA  
Channel N Control Register register.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 179  
MEC170x  
TABLE 7-3:  
DMA CONTROLLER MASTER DEVICES SIGNAL LIST  
Dev  
Num  
Device Name  
Device Signal Name  
Direction  
Description  
SMB-I2C 0 Controller  
SMB-I2C 1 Controller  
SMB-I2C 2 Controller  
0
1
2
3
4
5
SMB-I2C_SD-  
MA_Req  
INPUT  
DMA request control from SMB-I2C Slave  
channel.  
SMB-I2C_SD-  
MA_Term  
INPUT  
OUTPUT  
INPUT  
DMA termination control from SMB-I2C  
Slave channel.  
SMB-I2C_SDMA_-  
Done  
DMA termination control from DMA Con-  
troller to Slave channel.  
SMB-I2C_MD-  
MA_Req  
DMA request control from SMB-I2C Mas-  
ter channel.  
SMB-I2C_MD-  
MA_Term  
INPUT  
DMA termination control from SMB-I2C  
Master channel.  
SMB-I2C_MDMA_-  
Done  
OUTPUT  
INPUT  
DMA termination control from DMA Con-  
troller to Master channel.  
SMB-I2C_SD-  
MA_Req  
DMA request control from SMB-I2C Slave  
channel.  
SMB-I2C_SD-  
MA_Term  
INPUT  
DMA termination control from SMB-I2C  
Slave channel.  
SMB-I2C_SDMA_-  
Done  
OUTPUT  
INPUT  
DMA termination control from DMA Con-  
troller to Slave channel.  
SMB-I2C_MD-  
MA_Req  
DMA request control from SMB-I2C Mas-  
ter channel.  
SMB-I2C_MD-  
MA_Term  
INPUT  
DMA termination control from SMB-I2C  
Master channel.  
SMB-I2C_MDMA_-  
Done  
OUTPUT  
INPUT  
DMA termination control from DMA Con-  
troller to Master channel.  
SMB-I2C_SD-  
MA_Req  
DMA request control from SMB-I2C Slave  
channel.  
SMB-I2C_SD-  
MA_Term  
INPUT  
DMA termination control from SMB-I2C  
Slave channel.  
SMB-I2C_SDMA_-  
Done  
OUTPUT  
INPUT  
DMA termination control from DMA Con-  
troller to Slave channel.  
SMB-I2C_MD-  
MA_Req  
DMA request control from SMB-I2C Mas-  
ter channel.  
SMB-I2C_MD-  
MA_Term  
INPUT  
DMA termination control from SMB-I2C  
Master channel.  
SMB-I2C_MDMA_-  
Done  
OUTPUT  
DMA termination control from DMA Con-  
troller to Master channel.  
DS00002206H-page 180  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 7-3:  
DMA CONTROLLER MASTER DEVICES SIGNAL LIST (CONTINUED)  
Dev  
Num  
Device Name  
Device Signal Name  
Direction  
Description  
SMB-I2C 3 Controller  
6
SMB-I2C_SD-  
MA_Req  
INPUT  
DMA request control from SMB-I2C Slave  
channel.  
SMB-I2C_SD-  
MA_Term  
INPUT  
OUTPUT  
INPUT  
INPUT  
OUTPUT  
INPUT  
INPUT  
INPUT  
INPUT  
INPUT  
INPUT  
DMA termination control from SMB-I2C  
Slave channel.  
SMB-I2C_SDMA_-  
Done  
DMA termination control from DMA Con-  
troller to Slave channel.  
7
SMB-I2C_MD-  
MA_Req  
DMA request control from SMB-I2C Mas-  
ter channel.  
SMB-I2C_MD-  
MA_Term  
DMA termination control from SMB-I2C  
Master channel.  
SMB-I2C_MDMA_-  
Done  
DMA termination control from DMA Con-  
troller to Master channel.  
SPI 0 Controller  
SPI 1 Controller  
Quad SPI Controller  
8
SPI_TDMA_Req  
SPI_RDMA_Req  
SPI_TDMA_Req  
SPI_RDMA_Req  
QSPI_TDMA_Req  
QSPI_RDMA_Req  
DMA request control from GP-SPI TX  
channel.  
9
DMA request control from GP-SPI RX  
channel.  
10  
11  
12  
13  
DMA request control from GP-SPI TX  
channel.  
DMA request control from GP-SPI RX  
channel.  
DMA request control from Quad SPI TX  
channel.  
DMA request control from Quad SPI RX  
channel.  
7.5  
Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
7.5.1  
POWER DOMAINS  
TABLE 7-4:  
POWER SOURCES  
Name  
Description  
VTR  
This power well sources the registers and logic in this block.  
7.5.2  
CLOCK INPUTS  
TABLE 7-5:  
CLOCK INPUTS  
Name  
Description  
48MHz  
This clock signal drives selected logic (e.g., counters).  
7.5.3  
RESETS  
TABLE 7-6:  
RESET SIGNALS  
Name  
Description  
RESET_SYS  
RESET  
This reset signal resets all of the registers and logic in this block.  
This reset is generated if either the RESET_SYS is asserted or the  
SOFT_RESET bit is asserted.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 181  
MEC170x  
7.6  
Interrupts  
This section defines the Interrupt Sources generated from this block.  
TABLE 7-7:  
INTERRUPTS  
Source  
Description  
Direct Memory Access Channel 0  
DMA0  
This signal is generated by the STATUS_DONE bit.  
DMA1  
DMA2  
DMA3  
DMA4  
DMA5  
DMA6  
DMA7  
DMA8  
DMA9  
DMA10  
DMA11  
DMA12  
DMA13  
Direct Memory Access Channel 1  
This signal is generated by the STATUS_DONE bit.  
Direct Memory Access Channel 2  
This signal is generated by the STATUS_DONE bit.  
Direct Memory Access Channel 3  
This signal is generated by the STATUS_DONE bit.  
Direct Memory Access Channel 4  
This signal is generated by the STATUS_DONE bit.  
Direct Memory Access Channel 5  
This signal is generated by the STATUS_DONE bit.  
Direct Memory Access Channel 6  
This signal is generated by the STATUS_DONE bit.  
Direct Memory Access Channel 7  
This signal is generated by the STATUS_DONE bit.  
Direct Memory Access Channel 8  
This signal is generated by the STATUS_DONE bit.  
Direct Memory Access Channel 9  
This signal is generated by the STATUS_DONE bit.  
Direct Memory Access Channel 10  
This signal is generated by the STATUS_DONE bit.  
Direct Memory Access Channel 11  
This signal is generated by the STATUS_DONE bit.  
Direct Memory Access Channel 12  
This signal is generated by the STATUS_DONE bit.  
Direct Memory Access Channel 13  
This signal is generated by the STATUS_DONE bit.  
7.7  
Low 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.8  
Description  
The MEC170x features a 14 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 on the accessible via the internal 32-bit address space  
• The DMA Controller has 14 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.4.3, "DMA Interface".  
DS00002206H-page 182  
2016-2020 Microchip Technology Inc.  
MEC170x  
The controller will accesses 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).  
7.8.1  
CONFIGURATION  
The DMA Controller is enabled via the ACTIVATE 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.8.2  
OPERATION  
The DMA Controller is designed to move data from one memory location to another.  
7.8.2.1  
Establishing 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 chan-  
nel 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.8.2.2  
Initiating 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.8.2.3  
Reusing 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.8.2.4  
CRC 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 x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1. The CRC generation takes  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 183  
MEC170x  
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 bit-order reverse In and Out, and Invert Out, as required by the CRC algorithm  
7.8.2.5  
Block 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)  
7.9  
EC 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 Name  
Channel Number  
Offset  
DMA Controller  
DMA Controller  
DMA Controller  
DMA Controller  
DMA Controller  
DMA Controller  
DMA Controller  
DMA Controller  
DMA Controller  
Main Block  
000h  
040h  
080h  
0C0h  
100h  
140h  
180h  
1C0h  
200h  
0
1
2
3
4
5
6
7
DS00002206H-page 184  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 7-8:  
Instance Name  
DMA Controller  
DMA CHANNEL OFFSETS (CONTINUED)  
Channel Number  
Offset  
8
240h  
28h  
DMA Controller  
DMA Controller  
DMA Controller  
DMA Controller  
DMA Controller  
9
10  
11  
12  
13  
2C0h  
300h  
340h  
380h  
TABLE 7-9:  
MAIN REGISTER SUMMARY  
Register Name  
DMA Main Control Register  
Offset  
00h  
04h  
DMA Data Packet Register  
7.9.1  
DMA MAIN CONTROL REGISTER  
00h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
7:2 Reserved  
R
-
-
-
1 SOFT_RESET  
W
0b  
Soft reset the entire module.  
This bit is self-clearing.  
0 ACTIVATE  
R/WS  
0b  
RESET  
Enable the blocks operation.  
1=Enable block. Each individual channel must be enabled separately.  
0=Disable all channels.  
7.9.2  
DMA DATA PACKET REGISTER  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:0 DATA_PACKET  
R
0000h  
-
Debug register that has the data that is stored in the Data Packet.  
This data is read data from the currently active transfer source.  
TABLE 7-10: CHANNEL REGISTER SUMMARY  
Register Name  
Offset  
(Note 1)  
00h  
DMA Channel N Activate 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  
channels.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 185  
MEC170x  
TABLE 7-10: CHANNEL REGISTER SUMMARY (CONTINUED)  
Register Name  
Offset  
(Note 1)  
04h  
08h  
0Ch  
10h  
14h  
18h  
1Ch  
DMA Channel N Memory Start Address Register  
DMA Channel N Memory End Address Register  
DMA Channel N Device Address  
DMA Channel N Control Register  
DMA Channel N Interrupt Status Register  
DMA Channel N Interrupt Enable Register  
TEST  
20h  
DMA Channel N CRC Enable Register  
(Note 2)  
24h  
(Note 2)  
DMA Channel N CRC Data Register  
DMA Channel N CRC Post Status Register  
TEST  
28h  
(Note 2)  
2Ch  
(Note 2)  
20h  
(Note 3)  
DMA Channel N Fill Enable Register  
DMA Channel N Fill Data Register  
DMA Channel N Fill Status Register  
TEST  
24h  
(Note 3)  
28h  
(Note 3)  
2Ch  
(Note 3)  
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  
channels.  
7.9.3  
DMA CHANNEL N ACTIVATE REGISTER  
00h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:1 Reserved  
R
-
-
0 CHANNEL_ACTIVATE  
R/W  
0h  
RESET  
Enable this channel for operation.  
The DMA Main Control:Activate must also be enabled for this chan-  
nel to be operational.  
DS00002206H-page 186  
2016-2020 Microchip Technology Inc.  
MEC170x  
7.9.4  
DMA CHANNEL N MEMORY START ADDRESS REGISTER  
04h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
31:0 MEMORY_START_ADDRESS  
R/W  
0000h  
RESET  
This is the starting address for the Memory device.  
This field is updated by Hardware after every packet transfer by the  
size of the transfer, as defined by DMA Channel Control:Channel  
Transfer Size while the DMA Channel Control:Increment Memory  
Address is Enabled.  
The Memory device is defined as the device that is the slave device  
in the transfer. With Hardware Flow Control, the Memory device is  
the device that is not connected to the Hardware Flow Controlling  
device.  
7.9.5  
DMA CHANNEL N MEMORY END ADDRESS REGISTER  
08h  
Offset  
Bits  
31:0 MEMORY_END_ADDRESS  
Reset  
Event  
Description  
Type  
Default  
R/W  
0000h  
RESET  
This is the ending address for the Memory device.  
This will define the limit of the transfer, so long as DMA Channel  
Control:Increment Memory Address is Enabled. When the Memory  
Start Address is equal to this value, the DMA will terminate the trans-  
fer and flag the status DMA Channel Interrupt:Status Done.  
Note:  
If the TRANSFER_SIZE field in the DMA Channel N Con-  
trol Register is set to 2 (for 2-byte transfers, this address  
must be evenly divisible by 2 or the transfer will not ter-  
minate properly. If the TRANSFER_SIZE field is set to 4  
(for 4-byte transfers, this address must be evenly divisi-  
ble by 4 or the transfer will not terminate properly.  
7.9.6  
DMA CHANNEL N DEVICE ADDRESS  
0Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:0 DEVICE_ADDRESS  
R/W  
0000h  
RESET  
This is the Master Device address.  
This is used as the address that will access the Device on the DMA.  
The Device is defined as the Master of the DMA transfer; as in the  
device that is controlling the Hardware Flow Control.  
This field is updated by Hardware after every Data Packet transfer  
by the size of the transfer, as defined by DMA Channel Con-  
trol:Transfer Size while the DMA Channel Control:Increment Device  
Address is Enabled.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 187  
MEC170x  
7.9.7  
DMA CHANNEL N CONTROL REGISTER  
10h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:26 Reserved  
R
-
-
25 TRANSFER_ABORT  
R/W  
0h  
RESET  
This is used to abort the current transfer on this DMA Channel. The  
aborted transfer will be forced to terminate immediately.  
24 TRANSFER_GO  
R/W  
0h  
RESET  
This is used for the Firmware Flow Control DMA transfer.  
This is used to start a transfer under the Firmware Flow Control.  
Do not use this in conjunction with the Hardware Flow Control;  
DISABLE_HARDWARE_FLOW_CONTROL must be set in order for  
this field to function correctly.  
23 Reserved  
R
-
-
22:20 TRANSFER_SIZE  
R/W  
0h  
RESET  
This is the transfer size in Bytes of each Data Packet transfer.  
The transfer size must be a legal transfer size. Valid sizes are 1, 2  
and 4 Bytes.  
19 DISABLE_HARDWARE_FLOW_CONTROL  
R/W  
R/W  
0h  
0h  
RESET  
RESET  
Setting this bit to ‘1’b will Disable Hardware Flow Control. When  
disabled, any DMA Master device attempting to communicate to the  
DMA over the DMA Flow Control Interface will be ignored.  
This should be set before using the DMA channel in Firmware Flow  
Control mode.  
18 LOCK_CHANNEL  
This is used to lock the arbitration of the Channel Arbiter on this  
channel once this channel is granted.  
Once this is locked, it will remain on the arbiter until it has completed  
it transfer (either the Transfer Aborted, Transfer Done or Transfer  
Terminated conditions).  
Note:  
This setting may starve other channels if the locked chan-  
nel takes an excessive period of time to complete.  
17 INCREMENT_DEVICE_ADDRESS  
R/W  
R/W  
0h  
0h  
RESET  
RESET  
If this bit is ‘1’b, the DEVICE_ADDRESS will be incremented by  
TRANSFER_SIZE after every Data Packet transfer  
16 INCREMENT_MEMORY_ADDRESS  
If this bit is ‘1’b, the MEMORY_START_ADDRESS will be incre-  
mented by TRANSFER_SIZE after every Data Packet transfer  
Note:  
If this is not set, the DMA will never terminate the transfer  
on its own. It will have to be terminated through the Hard-  
ware Flow Control or through a DMA Channel Con-  
trol:Transfer Abort.  
DS00002206H-page 188  
2016-2020 Microchip Technology Inc.  
MEC170x  
10h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
15:9 HARDWARE_FLOW_CONTROL_DEVICE  
R/W  
0h  
RESET  
This is the device that is connected to this channel as its Hardware  
Flow Control master.  
The Flow Control Interface is a bus with each master concatenated  
onto it. This selects which bus index of the concatenated Flow Con-  
trol Interface bus is targeted towards this channel.  
8 TRANSFER_DIRECTION  
R/W  
0h  
RESET  
This determines the direction of the DMA Transfer.  
1=Data Packet Read from MEMORY_START_ADDRESS followed  
by Data Packet Write to DEVICE_ADDRESS  
0=Data Packet Read from DEVICE_ADDRESS followed by Data  
Packet Write to MEMORY_START_ADDRESS  
7:6 Reserved  
5 BUSY  
R
R
-
-
0h  
RESET  
This is a status signal.  
1=The DMA Channel is busy (FSM is not IDLE)  
0=The DMA Channel is not busy (FSM is IDLE)  
4:3 TEST  
R
R
0h  
0h  
RESET  
RESET  
2 DONE  
This is a status signal. It is only valid while RUN is Enabled. This is  
the inverse of the DMA Channel Control:Busy field, except this is  
qualified with the DMA Channel Control:Run field.  
1=Channel is done  
0=Channel is not done or it is OFF  
1 REQUEST  
R
0h  
0h  
RESET  
RESET  
This is a status field.  
1=There is a transfer request from the Master Device  
0=There is no transfer request from the Master Device  
0 RUN  
R/W  
This is a control field. It only applies to Hardware Flow Control  
mode.  
1=This channel is enabled and will service transfer requests  
0=This channel is disabled. All transfer requests are ignored  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 189  
MEC170x  
7.9.8  
DMA CHANNEL N INTERRUPT STATUS REGISTER  
14h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:3 Reserved  
R
-
-
2 STATUS_DONE  
R/WC  
0h  
RESET  
This is an interrupt source register.  
This flags when the DMA Channel has completed a transfer suc-  
cessfully on its side.  
A completed transfer is defined as when the DMA Channel reaches  
its limit; Memory Start Address equals Memory End Address.  
A completion due to a Hardware Flow Control Terminate will not  
flag this interrupt.  
1=MEMORY_START_ADDRESS  
DRESS  
equals  
MEMORY_END_AD-  
0=MEMORY_START_ADDRESS does not equal MEMO-  
RY_END_ADDRESS  
1 STATUS_FLOW_CONTROL  
R/WC  
0h  
RESET  
This is an interrupt source register.  
This flags when the DMA Channel has encountered a Hardware  
Flow Control Request after the DMA Channel has completed the  
transfer. This means the Master Device is attempting to overflow the  
DMA.  
1=Hardware Flow Control is requesting after the transfer has com-  
pleted  
0=No Hardware Flow Control event  
0 STATUS_BUS_ERROR  
R/WC  
0h  
RESET  
This is an interrupt source register.  
This flags when there is an Error detected over the internal 32-bit  
Bus.  
1=Error detected.  
7.9.9  
DMA CHANNEL N INTERRUPT ENABLE REGISTER  
18h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:3 Reserved  
R
-
-
2 STATUS_ENABLE_DONE  
This is an interrupt enable for STATUS_DONE.  
R/W  
0h  
RESET  
1=Enable Interrupt  
0=Disable Interrupt  
1 STATUS_ENABLE_FLOW_CONTROL_ERROR  
R/W  
0h  
RESET  
This is an interrupt enable for STATUS_FLOW_CONTROL.  
1=Enable Interrupt  
0=Disable Interrupt  
DS00002206H-page 190  
2016-2020 Microchip Technology Inc.  
MEC170x  
18h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
0 STATUS_ENABLE_BUS_ERROR  
R/W  
0h  
RESET  
This is an interrupt enable for STATUS_BUS_ERROR.  
1=Enable Interrupt  
0=Disable Interrupt  
7.9.10  
DMA CHANNEL N CRC ENABLE REGISTER  
20h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:2 Reserved  
1 CRC_POST_TRANSFER_ENABLE  
R
-
-
R/W  
0h  
RESET  
The bit enables the transfer of the calculated CRC-32 after the  
completion of the DMA transaction. If the DMA transaction is  
aborted by either firmware or an internal bus error, the transfer will  
not occur. If the target of the DMA transfer is a device and the  
device signaled the termination of the DMA transaction, the CRC  
post transfer will not occur.  
1=Enable the transfer of CRC-32 for DMA Channel N after the DMA  
transaction completes  
0=Disable the automatic transfer of the CRC  
0
CRC_MODE_ENABLE  
R/W  
0h  
RESET  
1=Enable the calculation of CRC-32 for DMA Channel N  
0=Disable the calculation of CRC-32 for DMA Channel N  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 191  
MEC170x  
7.9.11  
DMA CHANNEL N CRC DATA REGISTER  
24h  
Offset  
Reset  
Event  
Bits  
31:0 CRC  
Description  
Type  
Default  
R/W  
0h  
RESET  
Writes to this register initialize the CRC generator. Reads from this  
register return the output of the CRC that is calculated from the  
data transfered by DMA Channel N. The output of the CRC gener-  
ator is bit-reversed and inverted on reads, as required by the CRC-  
32-IEEE definition.  
A CRC can be accumulated across multiple DMA transactions on  
Channel N. If it is necessary to save the intermediate CRC value,  
the result of the read of this register must be bit-reversed and  
inverted before being written back to this register.  
7.9.12  
DMA CHANNEL N CRC POST STATUS REGISTER  
28h  
Offset  
Reset  
Event  
Bits  
31:4 Reserved  
Description  
Type  
Default  
R
R
-
-
3
2
1
CRC_DATA_READY  
0h  
RESET  
This bit is set to ‘1b’ when the DMA controller is processing the  
post-transfer of the CRC data. This bit is cleared to ‘0b’ when the  
post-transfer completes.  
CRC_DATA_DONE  
R
R
0h  
0h  
RESET  
RESET  
This bit is set to ‘1b’ when the DMA controller has completed the  
post-transfer of the CRC data. This bit is cleared to ‘0b’ when the a  
new DMA transfer starts.  
CRC_RUNNING  
This bit is set to ‘1b’ when the DMA controller starts the post-trans-  
fer transmission of the CRC. It is only set when the post-transfer is  
enabled by the CRC_POST_TRANSFER_ENABLE field. This bit is  
cleared to ‘0b’ when the post-transfer completes.  
0
CRC_DONE  
R
0h  
RESET  
This bit is set to ‘1b’ when the CRC calculation has completed from  
either normal or forced termination. It is cleared to ‘0b’ when the  
DMA controller starts a new transfer on the channel.  
DS00002206H-page 192  
2016-2020 Microchip Technology Inc.  
MEC170x  
7.9.13  
DMA CHANNEL N FILL ENABLE REGISTER  
20h  
Offset  
Reset  
Default  
Bits  
31:1 Reserved  
Description  
Type  
Event  
R
-
-
0
FILL_MODE_ENABLE  
R/W  
0h  
RESET  
1=Enable the calculation of CRC-32 for DMA Channel N  
0=Disable the calculation of CRC-32 for DMA Channel N  
7.9.14  
DMA CHANNEL N FILL DATA REGISTER  
24h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:0 DATA  
This is the data pattern used to fill memory.  
R/W  
0h  
RESET  
7.9.15  
DMA CHANNEL N FILL STATUS REGISTER  
28h  
Offset  
Reset  
Event  
Bits  
31:2 Reserved  
Description  
Type  
Default  
R
R
-
-
1
FILL_RUNNING  
0h  
RESET  
This bit is ‘1b’ when the Fill operation starts and is cleared to ‘0b’  
when the Fill operation completes.  
0
FILL_DONE  
R
0h  
RESET  
This bit is set to ‘1b’ when the Fill operation has completed from  
either normal or forced termination. It is cleared to ‘0b’ when the  
DMA controller starts a new transfer on the channel.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 193  
MEC170x  
8.0  
EC INTERRUPT AGGREGATOR  
8.1  
Introduction  
The EC Interrupt Aggregator works in conjunction with the processor’s interrupt interface to handle hardware interrupts  
and exceptions.  
Exceptions are synchronous to instructions, are not maskable, and have higher priority than interrupts. All three excep-  
tions - reset, memory error, and instruction error - are hardwired directly to the processor. Interrupts are typically asyn-  
chronous and are maskable.  
Interrupts classified as wake events can be recognized without a running clock, e.g., while the MEC170x is in sleep  
state.  
This chapter focuses on the EC Interrupt Aggregator. Please refer to embedded controller’s documentation for more  
information on interrupt and exception handling.  
8.2  
References  
Terminology  
Interface  
None  
8.3  
None  
8.4  
This block is an IP block designed to be incorporated into a chip. It is designed to be accessed externally via the pin  
interface and internally via a registered host interface. The following diagram illustrates the various interfaces to the  
block.  
FIGURE 8-1:  
EC INTERRUPT AGGREGATOR INTERFACE DIAGRAM  
EC Interrupt Aggregator  
Signal Interface  
Signal Interface  
Power, Clocks and Reset  
DS00002206H-page 194  
2016-2020 Microchip Technology Inc.  
MEC170x  
8.5  
Signal Description  
8.5.1  
SIGNAL INTERFACE  
There are no external signals for this block.  
8.6  
Host Interface  
The registers defined for the EC Interrupt Aggregator are only accessible by the embedded controller via the EC Reg-  
isters.  
8.7  
Power, Clocks and Reset  
8.7.1  
BLOCK POWER DOMAIN  
TABLE 8-1:  
BLOCK POWER  
Power Well Source  
Effect on Block  
VTR  
The EC Interrupt Aggregator block and registers operate on  
this single power well.  
8.7.2  
None  
BLOCK CLOCKS  
8.7.3  
BLOCK RESET  
TABLE 8-2:  
BLOCK RESETS  
Reset Name  
Reset Description  
RESET_SYS  
This signal is used to indicate when the VTR logic and registers  
in this block are reset.  
8.8  
Interrupts  
This block aggregates all the interrupts targeted for the embedded controller into the Source Registers defined in Sec-  
tion 8.11, "EC Registers". The unmasked bits of each source register are then OR’d together and routed to the embed-  
ded controller’s interrupt interface. The name of each Source Register identifies the IRQ number of the interrupt port on  
the embedded controller.  
8.9  
Low Power Modes  
This block always automatically adjusts to operate in the lowest power mode.  
8.10 Description  
The interrupt generation logic is made of groups of signals, each of which consist of a Status register, a Enable Set reg-  
ister, and Enable Clear register and a Result register.  
The Status and Enable are latched registers. There is one set of Enable register bits; both the Enable Set and Enable  
Clear registers return the same result when read. The Enable Set interface is used to set individual bits in the Enable  
register, and the Enable Clear is used to clear individual bits. The Result register is a bit by bit AND function of the  
Source and Enable registers. All the bits of the Result register are OR’ed together and AND’ed with the corresponding  
bit in the Block Select register to form the interrupt signal that is routed to the ARM interrupt controller.  
The Result register bits may also be enabled to the NVIC block via the NVIC_EN bit in the Interrupt Control Register  
register. See Chapter 46.0, "EC Subsystem Registers"  
Section 8.10.1 shows a representation of the interrupt structure.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 195  
MEC170x  
FIGURE 8-2:  
INTERRUPT STRUCTURE  
NVIC_EN  
NVIC  
Inputs for  
blocks  
GIRQx  
Int source  
result  
Interrupt  
from block  
SOURCE0  
Interrupt  
from block  
SOURCE1  
NVIC  
Input for  
GIRQx  
.
.
.
.
.
.
.
.
.
Interrupt  
from block  
SOURCEn  
Block Enable  
Int enable  
ENABLE0  
.
.
.
ENABLE1  
.
.
.
Bit x  
.
.
.
ENABLEn  
To Wake  
Interface  
8.10.1  
AGGREGATED INTERRUPTS  
All interrupts are routed to the ARM processor through the ARM Nested Vectored Interrupt Controller (NVIC). As shown  
in Figure 8-2, "Interrupt Structure", all interrupt sources are aggregated into the GIRQx Source registers. In many cases,  
the Result bit for an individual interrupt source is tied directly to the NVIC. These interrupts are shown in the “Direct  
NVIC” column in the Interrupt Bit Assignments table. In addition, all GIRQx can also generate an interrupt to the NVIC  
when any of the enabled interrupts in its group is asserted. The NVIC vectors for the aggregated GIRQ interrupts are  
shown tin the “Agg NVIC” column.  
Firmware should not enable the group GIRQ NVIC interrupt at the same time individual direct interrupts for members of  
the group are enabled. If both are enabled, the processor will receive two interrupts for an event, one from the GIRQ  
and one from the direct interrupt.  
Note:  
The four Soft Interrupts that are defined by the RTOS Timer do not have individual NVIC vectors. If the use  
of the SWI interrupts is required, then all interrupts in the GIRQ must disable the individual NVIC vectors.  
8.10.2  
WAKE GENERATION  
The EC Interrupt Aggregator notifies the Chip Power Management Features to wake the system when it detects a wake  
capable event has occurred. This logic requires no clocks.  
The interrupt sources AND’ed with the corresponding Enable bit will be OR’ed to produce a wake event  
DS00002206H-page 196  
2016-2020 Microchip Technology Inc.  
MEC170x  
The wake up sources are identified with a “Y” in the “WAKE” column of the Bit definitions table for each IRQ’s Source  
Register.  
8.10.2.1  
Configuring Wake Interrupts  
All GPIO inputs are wake-capable. In order for a GPIO input to wake the MEC170x from a sleep state, the Interrupt  
Detection field of the GPIO Pin Control Register must be set to Rising Edge Triggered, Falling Edge Triggered, or Either  
Edge Triggered. If the Interrupt Detection field is set to any other value, a GPIO input will not trigger a wake interrupt.  
Some of the Wake Capable Interrupts are triggered by activity on pins that are shared with a GPIO. These interrupts will  
only trigger a wake if the Interrupt Detection field of the corresponding GPIO Pin Control Register is set to Rising Edge  
Triggered, Falling Edge Triggered, or Either Edge Triggered.  
8.10.3  
INTERRUPT SUMMARY  
Interrupt bit assignments, including wake capabilities and NVIC vector locations, are shown in the Interrupt Aggregator  
Bit Assignments Table in Section 3.0, "Device Inventory". The table lists all possible interrupt sources; the register bits  
for any interrupt source, such as a GPIO, that is not implemented in a particular part are reserved.  
8.10.4  
DISABLING INTERRUPTS  
The Block Enable Clear Register and Block Enable Set Register should not be used for disabling and enabling interrupts  
for software operations i.e., critical sections. The ARM enable disable mechanisms should be used.  
8.11 EC 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 of the EC Interrupt Aggregator Block in the Block Overview and Base Address Table  
in Section 3.0, "Device Inventory".  
TABLE 8-3:  
Offset  
REGISTER SUMMARY  
Register Name  
00h  
04h  
08h  
0Ch  
10h  
14h  
18h  
1Ch  
20h  
24h  
28h  
2Ch  
30h  
34h  
38h  
3Ch  
40h  
44h  
48h  
4Ch  
50h  
54h  
58h  
GIRQ8 Source Register  
GIRQ8 Enable Set Register  
GIRQ8 Result Register  
GIRQ8 Enable Clear Register  
Reserved  
GIRQ9 Source Register  
GIRQ9 Enable Set Register  
GIRQ9 Result Register  
GIRQ9 Enable Clear Register  
Reserved  
GIRQ10 Source Register  
GIRQ10 Enable Set Register  
GIRQ10 Result Register  
GIRQ10 Enable Clear Register  
Reserved  
GIRQ11 Source Register  
GIRQ11 Enable Set Register  
GIRQ11 Result Register  
GIRQ11 Enable Clear Register  
Reserved  
GIRQ12 Source Register  
GIRQ12 Enable Set Register  
GIRQ12 Result Register  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 197  
MEC170x  
TABLE 8-3:  
Offset  
REGISTER SUMMARY (CONTINUED)  
Register Name  
GIRQ12 Enable Clear Register  
5Ch  
60h  
64h  
68h  
6Ch  
70h  
74h  
78h  
7Ch  
80h  
84h  
88h  
8Ch  
90h  
94h  
98h  
9Ch  
A0h  
A4h  
A8h  
ACh  
B0h  
B4h  
B8h  
BCh  
C0h  
C4h  
C8h  
CCh  
D0h  
D4h  
D8h  
DCh  
E0h  
E4h  
E8h  
ECh  
F0h  
F4h  
F8h  
FCh  
100h  
104h  
108h  
Reserved  
GIRQ13 Source Register  
GIRQ13 Enable Set Register  
GIRQ13 Result Register  
GIRQ13 Enable Clear Register  
Reserved  
GIRQ14 Source Register  
GIRQ14 Enable Set Register  
GIRQ14 Result Register  
GIRQ14 Enable Clear Register  
Reserved  
GIRQ15 Source Register  
GIRQ15 Enable Set Register  
GIRQ15 Result Register  
GIRQ15 Enable Clear Register  
Reserved  
GIRQ16 Source Register  
GIRQ16 Enable Set Register  
GIRQ16 Result Register  
GIRQ16 Enable Clear Register  
Reserved  
GIRQ17 Source Register  
GIRQ17 Enable Set Register  
GIRQ17 Result Register  
GIRQ17 Enable Clear Register  
Reserved  
GIRQ18 Source Register  
GIRQ18 Enable Set Register  
GIRQ18 Result Register  
GIRQ18 Enable Clear Register  
Reserved  
GIRQ19 Source Register  
GIRQ19 Enable Set Register  
GIRQ19 Result Register  
GIRQ19 Enable Clear Register  
Reserved  
GIRQ20 Source Register  
GIRQ20 Enable Set Register  
GIRQ20 Result Register  
GIRQ20 Enable Clear Register  
Reserved  
GIRQ21 Source Register  
GIRQ21 Enable Set Register  
DS00002206H-page 198  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 8-3:  
Offset  
REGISTER SUMMARY (CONTINUED)  
Register Name  
10Ch  
110h  
114h  
118h  
11Ch  
120h  
124h  
128h  
12Ch  
130h  
134h  
138h  
13Ch  
140h  
144h  
148h  
14Ch  
150h  
154h  
158h  
15Ch  
160h  
164h  
168h  
16Ch  
170h  
174h  
200h  
204h  
208h  
GIRQ21 Result Register  
GIRQ21 Enable Clear Register  
Reserved  
GIRQ22 Source Register  
GIRQ22 Enable Set Register  
GIRQ22 Result Register  
GIRQ22 Enable Clear Register  
Reserved  
GIRQ23 Source Register  
GIRQ23 Enable Set Register  
GIRQ23 Result Register  
GIRQ23 Enable Clear Register  
Reserved  
GIRQ24 Source Register  
GIRQ24 Enable Set Register  
GIRQ24 Result Register  
GIRQ24 Enable Clear Register  
Reserved  
GIRQ25 Source Register  
GIRQ25 Enable Set Register  
GIRQ25 Result Register  
GIRQ25 Enable Clear Register  
Reserved  
GIRQ26 Source Register  
GIRQ26 Enable Set Register  
GIRQ26 Result Register  
GIRQ26 Enable Clear Register  
Block Enable Set Register  
Block Enable Clear Register  
Block IRQ Vector Register  
All of the GIRQx Source, Enable Set, Enable Clear and Result registers have the same format. The following tables  
define the generic format for each of these registers. The bit definitions are defined in the sections that follow.  
The behavior of the enable bit controlled by the GIRQx Enable Set and GIRQx Enable Clear Registers, the GIRQx  
Source bit, and the GIRQx Result bit is illustrated in Section 8.10.1, "Aggregated Interrupts".  
8.11.1  
GIRQ SOURCE REGISTERS  
All of the GIRQx Source registers have the same format. The following table defines the generic format for each of these  
registers. The bit definitions are defined in the Interrupt Aggregator Bit Assignments Table in Section 3.0, "Device Inven-  
tory". Unassigned bits are Reserved and return 0.  
Note:  
If a GPIO listed in the tables does not appear in the pin list of a particular device, then the bits for that GPIO  
in the GIRQx Source, GIRQx Enable Clear, GIRQx Enable Set and GIRQx Result are reserved.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 199  
MEC170x  
See Section 3.0, "Device Inventory"  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31 Reserved  
30:0 GIRQX_SOURCE  
R
-
-
R/WC  
0h  
RESET  
_SYS  
The GIRQx Source bits are R/WC sticky status bits indicating the  
state of interrupt before the interrupt enable bit.  
8.11.2  
GIRQ ENABLE SET REGISTERS  
All of the GIRQx Enable Set registers have the same format. The following table defines the generic format for each of  
these registers. Unassigned bits are Reserved and return 0.  
See Section 3.0, "Device Inventory"  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31 Reserved  
R
-
-
30:0 GIRQX_ENABLE_SET  
R/WS  
0h  
RESET  
_SYS  
Each GIRQx bit can be individually enabled to assert an interrupt  
event.  
Reads always return the current value of the internal GIRQX_EN-  
ABLE bit. The state of the GIRQX_ENABLE bit is determined by  
the corresponding GIRQX_ENABLE_SET bit and the GIRQX_EN-  
ABLE_CLEAR bit. (0=disabled, 1-enabled)  
1=The corresponding interrupt in the GIRQx Source Register is  
enabled  
0=No effect  
DS00002206H-page 200  
2016-2020 Microchip Technology Inc.  
MEC170x  
8.11.3  
GIRQ ENABLE CLEAR REGISTERS  
All of the GIRQx Enable Clear registers have the same format. The following table defines the generic format for each  
of these registers. Unassigned bits are Reserved and return 0.  
See Section 3.0, "Device Inventory"  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31 Reserved  
R
-
-
30:0 GIRQX_ENABLE_CLEAR  
R/WC  
0h  
RESET  
_SYS  
Each GIRQx bit can be individually enabled to assert an interrupt  
event.  
Reads always return the current value of the internal GIRQX_EN-  
ABLE bit. The state of the GIRQX_ENABLE bit is determined by  
the corresponding GIRQX_ENABLE_SET bit and the GIRQX_EN-  
ABLE_CLEAR bit. (0=disabled, 1-enabled)  
1=The corresponding interrupt in the GIRQx Source Register is dis-  
abled  
0=No effect  
8.11.4  
GIRQ RESULT REGISTERS  
See Section 3.0, "Device Inventory"  
Offset  
Reset  
Event  
Bits  
Description  
Type  
Default  
31 Reserved  
30:0 GIRQX_RESULT  
R
R
1h  
0h  
-
RESET  
_SYS  
The GIRQX_RESULT bits are Read-Only status bits indicating the  
state of an interrupt. The RESULT is asserted ‘1’b when both the  
GIRQX_SOURCE bit and the corresponding GIRQX_ENABLE bit  
are ‘1’b.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 201  
MEC170x  
8.11.5  
BLOCK ENABLE SET REGISTER  
200h  
Offset  
Reset  
Event  
Bits  
31:27 Reserved  
Description  
Type  
Default  
R
-
-
26:8 IRQ_VECTOR_ENABLE_SET  
R/WS  
0h  
RESET  
_SYS  
Each GIRQx register can be individually enabled to assert an inter-  
rupt event.  
Reads always return the current value of the enable bits for each of  
the GIRQs. The state of the GIRQX_ENABLE bit is determined by  
the corresponding GIRQX_ENABLE_SET bit and the GIRQX_EN-  
ABLE_CLEAR bit. (0=disabled, 1-enabled)  
1=Interrupts in the GIRQx Source Register may be enabled  
0=No effect  
7:0 Reserved  
R
-
-
8.11.6  
BLOCK ENABLE CLEAR REGISTER  
204h  
Offset  
Reset  
Event  
Bits  
31:27 Reserved  
Description  
Type  
Default  
R
-
-
26:8 IRQ_VECTOR_ENABLE_CLEAR  
R/WC  
0h  
RESET  
_SYS  
Each GIRQx register can be individually disabled to inhibit interrupt  
events.  
Reads always return the current value of the internal GIRQX_EN-  
ABLE bit. The state of the GIRQX_ENABLE bit is determined by  
the corresponding GIRQX_ENABLE_SET bit and the GIRQX_EN-  
ABLE_CLEAR bit. (0=disabled, 1-enabled)  
1=All interrupts in the GIRQx Source Register are disabled  
0=No effect  
7:0 Reserved  
R
-
-
DS00002206H-page 202  
2016-2020 Microchip Technology Inc.  
MEC170x  
8.11.7  
BLOCK IRQ VECTOR REGISTER  
208h  
Offset  
Reset  
Default  
Bits  
Description  
Type  
Event  
31:27 Reserved  
26:8 IRQ_VECTOR  
Each bit in this field reports the status of the group GIRQ interrupt  
R
R
0h  
0h  
-
RESET  
_SYS  
assertion to the NVIC. If the GIRQx interrupt is disabled as a group,  
by the Block Enable Clear Register, then the corresponding bit will  
be ‘0’b and no interrupt will be asserted.  
7:0 Reserved  
R
0h  
-
2016-2020 Microchip Technology Inc.  
DS00002206H-page 203  
MEC170x  
9.0  
9.1  
LPC INTERFACE  
Introduction  
The Intel® Low Pin Count (LPC) Interface is the LPC Interface used by the system host to configure the chip and com-  
municate with the logical devices implemented in the design through a series of read/write registers. Register access is  
accomplished through the LPC transfer cycles defined in Table 9-6, "LPC Cycle Types Supported".  
The Logical Devices implemented in the design are identified in Table 9-10, "I/O Base Address Register Default Values".  
The Base Address Registers allow any logical device’s runtime registers to be relocated in LPC I/O space. All chip con-  
figuration registers for the device are accessed indirectly through the LPC I/O Configuration Port (see Section 9.8.6,  
"Configuration Port").  
LPC memory cycles may also be used to access the Base Address Registers of certain devices.  
9.2  
References  
• Intel® Low Pin Count (LPC) Interface Specification, v1.1  
• PCI Local Bus Specification, Rev. 2.2  
• Serial IRQ Specification for PCI Systems Version 6.0.  
• PCI Mobile Design Guide Rev 1.0  
9.3  
Terminology  
This table defines specialized terms localized to this feature.  
TABLE 9-1:  
Term  
TERMINOLOGY  
Definition  
System Host  
Refers to the external CPU that communicates with this device via the LPC Interface.  
Logical Devices  
Logical Devices are LPC accessible features that are allocated a Base Address and  
range in LPC I/O address space  
Runtime Register  
Runtime Registers are register that are directly I/O accessible by the System Host via  
the LPC interface. These registers are defined in Section 9.10, "Runtime Registers".  
Configuration Registers  
EC_Only Registers  
Registers that are only accessible in CONFIG_MODE. These registers are defined in  
Section 9.9, "Configuration Registers".  
Registers that are not accessible by the System Host. They are only accessible by an  
internal embedded controller. These registers are defined in Section 9.11, "EC Regis-  
ters".  
DS00002206H-page 204  
2016-2020 Microchip Technology Inc.  
MEC170x  
9.4  
Interface  
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.  
FIGURE 9-1:  
BLOCK DIAGRAM OF LPC INTERFACE CONTROLLER WITH CLKRUN#  
SUPPORT  
LPC Interface  
(Logical Device Ch)  
Serial IRQ  
LAD0  
Interface to  
State Machine  
Configuration  
Registers  
LAD1  
LAD2  
LAD3  
LFRAME#  
LRESET#  
LCLK  
LPC Config  
Registers  
Interface to Logical  
Device Register  
SERIRQ  
LPC Controller  
CLKRUN#  
LPC Regis-  
ters  
(Runtime,  
EC-Only)  
9.4.1  
SIGNAL DESCRIPTION  
TABLE 9-2:  
SIGNAL DESCRIPTION  
Direction  
Name  
Description  
LAD0  
LAD1  
LAD2  
LAD3  
Input/Output  
Bit[0] of the LPC multiplexed command, address, and data  
bus.  
Input/Output  
Input/Output  
Input/Output  
Bit[1] of the LPC multiplexed command, address, and data  
bus.  
Bit[2] of the LPC multiplexed command, address, and data  
bus.  
Bit[3] of the LPC multiplexed command, address, and data  
bus.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 205  
MEC170x  
TABLE 9-2:  
Name  
SIGNAL DESCRIPTION (CONTINUED)  
Direction  
Description  
LFRAME#  
Input  
Active low signal indicates start of new cycle and termina-  
tion of broken cycle.  
LRESET#  
Input  
Active low signal used as LPC Interface Reset. Same as  
PCI Reset on host. This signal can be monitored using  
the LPC Bus Monitor Register.  
Note:  
LRESET# is typically connected to the host  
PCI RESET (PCIRST#) signal.  
LCLK  
Input  
PCI clock input (PCI_CLK)  
SERIRQ  
Input/Output  
Serial IRQ pin used with the LCLK signal to transfer inter-  
rupts to the host.  
CLKRUN#  
LPCPD#  
Open-Drain Output  
Input  
Clock Control for LCLK  
Power Down: Indicates that the device should prepare for  
power to be removed from the LPC I/F.  
9.5  
Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
9.5.1  
TABLE 9-3:  
Name  
VTR_PLL  
POWER DOMAINS  
POWER SOURCES  
Description  
Registers and control logic for this block are  
powered by this rail.  
9.5.2  
TABLE 9-4:  
Name  
CLOCK INPUTS  
CLOCK INPUTS  
Description  
48MHz  
Control logic for the internal logic in this  
block is clocked by the main clock domain.  
LCLK  
Host-facing logic for the LPC Interface is  
clocked on the LPC clock  
9.5.3  
RESETS  
Name  
Description  
RESET_SYS  
RESET_VCC  
Reset signal used to indicate when the main internal power rail is applied.  
This reset is also asserted on a Watchdog Timer timeout.  
This signal is used to indicate when the main power rail in the system is  
reset. It is asserted when:  
• The internal RESET_SYS reset signal is asserted  
• The external VCC_PWRGD signal indicates the main system power  
rail is unpowered  
RESET_HOST  
This signal is used to indicate when the main power rail in the system is  
reset. It is asserted when:  
• The RESET_VCC is asserted  
• The LPC interface is enabled and the external LRESET# reset signal  
is asserted  
DS00002206H-page 206  
2016-2020 Microchip Technology Inc.  
MEC170x  
In system, the LPC Interface is required to be operational in ACPI Sleep States S0 - S2. When the system enters Sleep  
States S3 - S5 the LPC interface must tristate its outputs. The following table shows the behavior of LPC output and  
input/output signals under reset conditions.  
TABLE 9-5:  
Pins  
LPC INTERFACE SIGNALS BEHAVIOR ON RESET  
RESET_SYS  
Tri-state  
RESET_VCC  
Tri-state  
LRESET#  
Tri-State  
LAD[3:0]  
SERIRQ  
Tri-state  
Tri-state  
Tri-state  
Tri-state  
Tri-State  
Tri-State  
CLKRUN#  
9.6  
Interrupts  
This section defines the Interrupt Sources generated from this block.  
Source  
Description  
LPC_INTERNAL_ERR  
The LPC_INTERNAL_ERR event is sourced by bit D0 of the Host Bus  
Error Register.  
LPC_WAKE  
This interrupt event is triggered when the Host initiates an LPC  
transaction targeting the EC. The EC interrupt handler for this event only  
needs to clear the interrupt SOURCE bit and return; if the transaction  
results in an action that requires EC processing, that action will trigger  
its own interrupt.  
9.7  
Low Power Modes  
The LPC Controller may be put into a low power state by the chip’s Power, Clocks, and Reset (PCR) circuitry.  
The LPC Block has implemented an EC Clock Control Register to determine how the internal clocks are effected by the  
supported low power modes. See Section 9.11.4, "EC Clock Control Register" for a description of these options.  
9.8  
Description  
This LPC Controller is compliant with the Intel® Low Pin Count (LPC) Interface Specification, v1.1. The LPC Controller  
claims only LPC transactions targeted for one of its peripherals, either via LPC I/O Cycles or LPC Memory Cycles. LPC  
transactions may be used to communicate directly with logical devices on the device using Runtime Registers. LPC  
transactions can also be used to configure the Host logical devices. The mechanism to configure the chip is described  
in Section 9.8.6, "Configuration Port". Once a logical device is configured, it may use Serial Interrupt Requests to notify  
the host of an event.  
Note:  
In order to use the LPC bus, software must individually configure the mux control for every GPIO associated  
with an LPC bus signal to the LPC function. Pins are not automatically configured for LPC operation when  
the LPC Controller is enabled.  
9.8.1  
CYCLE TYPES SUPPORTED  
The following cycle types are supported by the LPC Interface Controller. All cycles that are not supported are ignored.  
TABLE 9-6:  
LPC CYCLE TYPES SUPPORTED  
Cycle Type  
Transfer Size  
I/O Read  
I/O Write  
1 byte  
1 byte  
1 byte  
1 byte  
Memory Read  
Memory Write  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 207  
MEC170x  
9.8.1.1  
LPC I/O Cycles  
The system host may use LPC I/O cycles to read/write the I/O mapped configuration and runtime registers implemented  
in this device. See the Intel® Low Pin Count (LPC) Interface Specification, v1.1, Section 5.2 for definition of LPC I/O  
Cycles.  
9.8.1.2  
LPC Memory Cycles  
The system host may use LPC memory cycles to access memory mapped registers and internal RAMs implemented in  
this device. See the Intel® Low Pin Count (LPC) Interface Specification, v1.1, Section 5.1 for definition of LPC Memory  
Cycles.  
9.8.1.3  
LAD[3:0] Fields  
The LAD[3:0] signals support multiple fields for each protocol as defined in section 4.2.1 LAD[3:0] of the Intel® Low Pin  
Count (LPC) Interface Specification, v1.1. The following sections further qualify the fields supported.  
9.8.1.4  
SYNCs on LPC  
LPC transactions that access registers located on the device will require a minimum of two wait SYNCs on the LPC bus.  
The number of SYNCs may be larger if the internal bus is in use by the embedded controller, of if the data referenced  
by the host is not present in a register. The device always uses Long Wait SYNCs, rather than Short Wait SYNCs, when  
responding to an LPC bus request.  
Note:  
All LPC transactions are synchronized to the LCLK and will complete with a maximum of 8 wait states,  
unless otherwise noted.  
The device does not issue ERROR SYNC cycles.  
9.8.2  
LPC POWER DOWN  
The MEC170x tolerates the LPCPD# signal going active and then inactive again without LRESET# going active. This  
is a requirement for notebook power management functions.  
The Intel® Low Pin Count (LPC) Interface Specification, v1.1, Section 8.2 states that “After LPCPD# goes back inactive,  
the LPC interface will always be reset using LRESET#”. This text must be qualified for mobile systems where it is pos-  
sible that when exiting a “light” sleep state (ACPI S1, APM POS), LPCPD# may be asserted but the LPC Bus power  
may not be removed, in which case LRESET# will not occur. When exiting a “deeper” sleep state (ACPI S3-S5, APM  
STR, STD, soft-off), LRESET# will occur.  
The LPCPD# pin is implemented as a “local” powergood for the LPC bus. It is not to be used as a global powergood for  
the chip. It is used to minimize the LPC power dissipation.  
Prior to going to a low-power state, the system asserts the LPCPD# signal. LPCPD# goes active at least 30 microsec-  
onds prior to the LCLK signal stopping low and power being shut to the other LPC interface signals. Upon recognizing  
LPCPD# active, there are no further transactions on the LPC interface.  
9.8.3  
LPC CLOCK RUN  
The CLKRUN# pin is an open drain output and input. The CLKRUN# function is described in the PCI Mobile Design  
Guide Rev 1.0. CLKRUN# is used to indicate the status of the LPC bus clock LCLK, as well as to request that LCLK be  
started if it is stopped. The following figure shows a typical system implementation incorporating CLKRUN#.  
DS00002206H-page 208  
2016-2020 Microchip Technology Inc.  
MEC170x  
FIGURE 9-2:  
CLKRUN# SYSTEM IMPLEMENTATION EXAMPLE  
Target  
Master  
PCI CLOCK  
GENERATOR  
(Central Resource)  
LCLK  
EC Device  
CLKRUN#  
If CLKRUN# is sampled “high”, LCLK is stopped or stopping. If CLKRUN# is sampled “low”, LCLK is starting or started  
(running).  
If the MEC170x needs to send a Serial Interrupt Request to the Host while the LPC bus clock it stopped, it can assert  
CLKRUN# in order to start the idle LCLK. The MEC170x will only assert CLKRUN# under the following conditions:  
• Serial IRQ support is enabled. This occurs when the SerIRQ Mode bit in the DEVICE Global Configuration Regis-  
ter is set to ‘1’.  
• The assertion level changes on at least one SERIRQ Host interrupt signal from any enabled Host Logical Device  
in the MEC170x.  
• The CLKRUN# pin is high (i.e., the LPC clock is stopped or will stop soon).  
The LPC Controller does not assert CLKRUN# until the CLKRUN# has been de-asserted for a minimum of two succes-  
sive clocks. The Controller holds CLKRUN# low until it detects two rising edges of the clock. After the second clock  
edge, the controller disables the open drain driver for the CLKRUN# pin. The following figure illustrates the mechanism  
for asserting CLKRUN#. In the figure, “ANY CHANGE” means that there is either a high-to-low or a low-to-high edge on  
any of the SERIRQ interrupt signals from any of the internal Host Logical Devices:  
FIGURE 9-3:  
CLOCK START ILLUSTRATION  
SerIRQ MODE BIT  
CLKRUN#  
DRIVEN BY  
MEC Device  
MEC Device STOPS  
DRIVING CLKRUN#  
(after two rising edges of  
LCLK)  
ANY CHANGE  
CLKRUN#  
LCLK  
2 CLKS MIN.  
9.8.4  
CLAIMING I/O TRANSACTIONS  
The system host will generate I/O commands to communicate with I/O peripherals, such as Keyboard Controller, UART,  
etc. The LPC Controller will claim only I/O transactions targeted to it and it will ignore all others. The following sections  
describe how I/O transactions are claimed and forwarded to access the Runtime and Configuration registers.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 209  
MEC170x  
The LPC Controller will claim an I/O transaction that is targeted for one of its peripherals (also referred to as logical  
devices). A Base Address Register has been implemented for each logical device. See Section 9.9.3, "I/O Base Address  
Registers". If one of the addresses programmed in the Logical Device Base Address Registers matches an LPC I/O  
address using the following relationship, the LPC Controller will claim the LPC bus cycle:  
(LPC Address & ~BAR.MASK) == (BAR.LPC_Address & ~BAR.MASK) && (BAR.Valid == 1)  
Note:  
The LPC Controller’s Base Address register is used to define the Base I/O Address of the Configuration  
Port.  
To access the Runtime registers with I/O cycles, the Host must configure the I/O Base Address Registers, which are  
accessible via the Configuration Port. The Configuration Port, Logical Device Ch, is located at the Base I/O Address  
programmed in the BAR Configuration register located at offset 60h.  
If the I/O transaction matches the BAR of Logical Device Ch, the transaction will be forwarded to the Configuration Port,  
otherwise the transaction will be forwarded to the Runtime Registers of the targeted logical device.  
Each Logical Device may have up to 256 Contiguous Runtime Registers. The Runtime Registers are located at a  
defined offset from the Logical Device’s base address. The host can directly access these registers with a standard LPC  
I/O command.  
The Logical Device number for the matching device is located in the Frame field of the BAR.  
When matching LPC I/O addresses, the LPC Controller ignores address bits that correspond to ‘1b’ bits in the MASK  
field.  
LPC I/O address matching is illustrated in the following two examples:  
Example 1:  
The Keyboard Controller (8042 Interface) Base Address Register has 60h in the LPC Address field, the Frame field is  
01h, and the MASK field is 04h. Because of the single ‘1b’ bit in MASK, the BAR will match LPC I/O patterns in the form  
‘0000_0000_0110_0x00b’, so both 60h and 64h will be matched and claimed by the LPC Controller.  
Example 2:  
If a standard 16550 UART was located at LPC I/O address 238h, then the UART Receive buffer would appear at  
address 238h and the Line Status register at 23Dh. If the BAR for the UART was set to 0238_7047h, then the UART  
will be matched at I/O address 238h and the example registers will be claimed by the LPC Controller.  
9.8.5  
CLAIMING MEMORY TRANSACTIONS  
LPC Memory cycles are single byte read or writes that occur in a 32-bit address range. The LPC block will claim a mem-  
ory transaction that is targeted for a Logical Device in the MEC170x. Table 9-13, "Memory Base Address Register  
Default Values" lists the Logical Devices that can be accessed by the Host using LPC Memory cycles.  
On every LPC bus Memory access all of the Memory Base Address Registers are checked in parallel and if any matches  
the LPC memory address the LPC Interface claims the bus cycle. The memory address is claimed as described in Sec-  
tion 9.8.4, "Claiming I/O Transactions" except that the LPC memory cycle address is 32 bits instead of the 16 bit I/O  
cycle address.  
Software should insure that no two BARs map the same LPC memory address. If two BARs do map to the same  
address, the BAR_CONFLICT bit in the Host Bus Error Register is set when an LPC access targeting the BAR Conflict  
address. An EC interrupt can be generated.  
Each Memory BAR is 48 bits wide. The format of each Device Memory BAR is summarized in Memory Base Address  
Register Format. An LPC memory request is translated by the Device Memory BAR into an 8-bit read or write transac-  
tion on the internal bus.  
To access the Runtime registers with Memory cycles, the Host must configure the Memory Base Address Registers,  
which are accessible via the Configuration Port. The Configuration Port, Logical Device Ch, is located at the Base I/O  
Address programmed in the I/O BAR Configuration register located at offset 60h.  
DS00002206H-page 210  
2016-2020 Microchip Technology Inc.  
MEC170x  
9.8.5.1  
SRAM Memory Transactions  
In addition to mapping LPC Memory transactions into Logical Devices, Memory transactions can be mapped into inter-  
nal address space, as configured by the SRAM Memory BARs. LPC Memory cycles are single byte read or writes that  
occur in a 32-bit address range. The LPC block will claim LPC memory cycles that match the programmed Host SRAM  
Base Address Registers address if the VALID in the SRAM BAR is set to 1. No memory cycles will be claimed if this bit  
is cleared.  
The LPC interface can claim two blocks of memory addresses, each up to a 4 KB, and map them to the internal address  
space. The location of the block of memory in the 32-bit internal space, as well as access to it, is controlled by the EC,  
using the EC-OnlySRAM Base Address Registers.  
The block of memory in the internal 32-bit address space must start on any size-byte address boundary. For example,  
if the memory is 4k bytes than it is only relocatable on 4k byte boundaries.  
CLAIMING LPC MEMORY TRANSACTIONS  
A Base Address Register will match an LPC Memory address, and thus the device will claim the LPC bus cycle, if the  
following relation holds:  
(LPC Address & ~(BAR.2SIZE-1) == (BAR.Host_Address & ~(BAR.2SIZE-1)) && (BAR.Valid == 1)  
If the BAR matches, the LPC cycle will be claimed by the device. The LPC request will be translated to an AHB address  
according to the following formula:  
AHB Address = (BAR.AHB_Base & ~(BAR.2SIZE-1)) | (LPC_Address & (BAR.2SIZE-1))  
The mapping is also illustrated in Figure 9-4.  
FIGURE 9-4:  
AHB ADDRESS BIT MAPPING  
31  
23  
0
LPC Address  
31  
23  
12  
0
0
0
0
0
0
0
0
0
0
AHB Base  
Size (1 to 12) address  
bits passed through  
from LPC Address to  
AHB address  
31  
23  
0
12  
AHB Address  
FORWARDING SRAM MEMORY TRANSACTIONS  
For each SRAM BAR, the LPC interface can claim up to a 4 KB block of memory addresses and map them to the internal  
address space.  
The firmware programs the base address of the internal memory space in the EC-Only SRAM Base Address Registers,  
which is mapped to the LPC memory address programmed by the host in the Host SRAM Base Address Registers. The  
firmware also programs the size of the memory to be accessed. The LPC block uses the size field to determine which  
memory addresses to claim (see Section , "Claiming LPC Memory Transactions"), as well as to prevent reading/writing  
an unmapped internal memory location.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 211  
MEC170x  
9.8.6  
CONFIGURATION PORT  
The LPC Host can access the Chip’s Configuration Registers through the Configuration Port when CONFIG MODE is  
enabled. The device defaults to CONFIG MODE being disabled.  
Note:  
The data read from the Configuration Port Data register is undefined when CONFIG MODE is not enabled.  
The Configuration Port is composed of an INDEX and DATA Register. The INDEX register is used as an address pointer  
to an 8-bit configuration register and the DATA register is used to read or write the data value from the indexed config-  
uration register. Once CONFIG MODE is enabled, reading the Configuration Port Data register will return the data value  
that is in the indexed Configuration Register.  
If no value was written to the INDEX register, reading the Data Register in the Configuration Port will return the value in  
Configuration Address location 00h (default).  
The Configuration Port registers are defined in Section 9.10, "Runtime Registers".  
9.8.6.1  
Enable CONFIG MODE  
The INDEX and DATA registers are effective only when the chip is in CONFIG MODE. CONFIG MODE is enabled when  
the Config Entry Key is successfully written to the I/O address of the INDEX register of the CONFIG PORT while the  
CONFIG MODE is disabled (see Section 9.8.6.2, "Disable CONFIG MODE").  
Config Entry Key = < 55h>  
9.8.6.2  
Disable CONFIG MODE  
CONFIG MODE defaults to disabled on a RESET_SYS, RESET_VCC, and when LRESET# is asserted. CONFIG  
MODE is also disabled when the following Config Exit Key is successfully written to the I/O address of the INDEX PORT  
of the CONFIG PORT while CONFIG MODE is enabled.  
Config Exit Key = < AAh>  
9.8.6.3  
Configuration Sequence Example  
To program the configuration registers, the following sequence must be followed:  
1. Enable Configuration State  
2. Program the Configuration Registers  
3. Disable Configuration State.  
The following is an example of a configuration program in Intel 8086 assembly language.  
;----------------------------.  
; ENABLE CONFIGURATION STATE  
;----------------------------'  
MOV  
MOV  
OUT  
DX,CONFIG_PORT_BASE_ADDRESS  
AX,055H; Config Entry Key  
DX,AL  
;----------------------------.  
; CONFIGURE BASE ADDRESS,  
; LOGICAL DEVICE 8  
|
|
;----------------------------'  
MOV  
MOV  
OUT  
MOV  
MOV  
DX,CONFIG_PORT_BASE_ADDRESS  
AL,07H  
DX,AL; Point to LD# Config Reg  
DX,CONFIG_PORT_BASE_ADDRESS+1  
AL, 08H  
OUT DX,AL; Point to Logical Device 8  
;
MOV  
MOV  
OUT  
MOV  
MOV  
OUT  
DX,CONFIG_PORT_BASE_ADDRESS  
AL,60H  
DX,AL  
; Point to BASE ADDRESS REGISTER  
DX,CONFIG_PORT_BASE_ADDRESS+1  
AL,02H  
DX,AL  
; Update BASE ADDRESS REGISTER  
;-----------------------------.  
DS00002206H-page 212  
2016-2020 Microchip Technology Inc.  
MEC170x  
; DISABLE CONFIGURATION STATE  
;-----------------------------'  
MOV  
MOV  
OUT  
DX,CONFIG_PORT_BASE_ADDRESS  
AX,0AAH; Config Exit Key  
DX,AL.  
9.8.7  
SERIAL INTERRUPT REQUESTS  
The device supports the Serial Interrupt Request (SERIRQ or SIRQ) scheme, which is adopted by several companies,  
to transmit interrupt information to the system. The serial interrupt scheme adheres to the Serial IRQ Specification for  
PCI Systems Version 6.0.  
Each Serial IRQ channel defaults to disabled. To enable a Serial IRQ channel the host must program the Serial IRQ  
Configuration Registers.  
9.8.7.1  
TIMING DIAGRAMS for SERIRQ CYCLE  
LCLK = LCLK pin  
SERIRQ = Serial IRQ pin  
Start Frame timing with source sampled a low pulse on IRQ1.  
FIGURE 9-5:  
SERIAL INTERRUPTS WAVEFORM “START FRAME”  
START FRAME  
IRQ0 FRAME  
IRQ1 FRAME  
IRQ2 FRAME  
SL  
or  
H
H
R
T
S
R
T
S
R
T
S
R
T
LCLK  
SERIRQ  
START  
Host Controller  
None  
IRQ1  
None  
Drive Source  
IRQ1  
H=Host Control  
SL=Slave Control  
R=Recovery  
T=Turn-around  
S=Sample  
Start Frame pulse can be 4-8 clocks wide.  
Stop Frame Timing with Host using 17 SERIRQ sampling period.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 213  
MEC170x  
FIGURE 9-6:  
SERIAL INTERRUPT WAVEFORM “STOP FRAME”  
IRQ14  
FRAME  
IRQ15  
FRAME  
IOCHCK#  
FRAME  
STOP FRAME  
NEXT CYCLE  
START  
S
R
T
S
R
T
S
R
T
H
R
T
I
LCLK  
SERIRQ  
Driver  
STOP  
None  
IRQ15  
None  
Host Controller  
H=Host Control  
R=Recovery  
T=Turn-around  
S=Sample  
I= Idle  
Stop pulse is two clocks wide for Quiet mode, three clocks wide for Continuous mode.  
There may be none, one, or more Idle states during the Stop Frame.  
The next SERIRQ cycle’s Start Frame pulse may or may not start immediately after the turn-around clock of the Stop  
Frame.  
9.8.7.2  
SERIRQ Cycle Control  
SERIRQ START FRAME  
There are two modes of operation for the SERIRQ Start Frame.  
Quiet (Active) Mode  
Any device may initiate a Start Frame by driving the SERIRQ low for one clock, while the SERIRQ is Idle. After driving  
low for one clock, the SERIRQ must immediately be tri-stated without at any time driving high. A Start Frame may not  
be initiated while the SERIRQ is active. The SERIRQ is Idle between Stop and Start Frames. The SERIRQ is active  
between Start and Stop Frames. This mode of operation allows the SERIRQ to be Idle when there are no IRQ/Data  
transitions, which is typically the most common case.  
Once a Start Frame has been initiated, the host controller will take over driving the SERIRQ low in the next clock and  
will continue driving the SERIRQ low for a programmable period of three to seven clocks. This makes a total low pulse  
width of four to eight clocks. Finally, the host controller will drive the SERIRQ back high for one clock then tri-state.  
Any SERIRQ Device which detects any transition on an IRQ/Data line for which it is responsible must initiate a Start  
Frame in order to update the host controller unless the SERIRQ is already in an SERIRQ Cycle and the IRQ/Data tran-  
sition can be delivered in that SERIRQ Cycle.  
Continuous (Idle) Mode  
Only the Host controller can initiate a Start Frame to update IRQ/Data line information. All other SERIRQ agents become  
passive and may not initiate a Start Frame. SERIRQ will be driven low for four to eight clocks by host controller. This  
mode has two functions. It can be used to stop or idle the SERIRQ or the host controller can operate SERIRQ in a con-  
tinuous mode by initiating a Start Frame at the end of every Stop Frame.  
An SERIRQ mode transition can only occur during the Stop Frame. Upon reset, SERIRQ bus is defaulted to continuous  
mode, therefore only the host controller can initiate the first Start Frame. Slaves must continuously sample the Stop  
Frames pulse width to determine the next SERIRQ Cycle’s mode.  
SERIRQ DATA FRAME  
Once a Start Frame has been initiated, the LPC Controller will watch for the rising edge of the Start Pulse and start count-  
ing IRQ/Data Frames from there. Each IRQ/Data Frame is three clocks: Sample phase, Recovery phase, and Turn-  
around phase. During the sample phase, the LPC Controller must drive the SERIRQ (SIRQ pin) low, if and only if, its  
DS00002206H-page 214  
2016-2020 Microchip Technology Inc.  
MEC170x  
last detected IRQ/Data value was low. If its detected IRQ/Data value is high, SERIRQ must be left tri-stated. During the  
recovery phase, the LPC Controller must drive the SERIRQ high, if and only if, it had driven the SERIRQ low during the  
previous sample phase. During the turn-around phase, the controller must tri-state the SERIRQ. The device drives the  
SERIRQ line low at the appropriate sample point if its associated IRQ/Data line is low, regardless of which device initi-  
ated the start frame.  
The Sample phase for each IRQ/Data follows the low to high transition of the Start Frame pulse by a number of clocks  
equal to the IRQ/Data Frame times three, minus one e.g. The IRQ5 Sample clock is the sixth IRQ/Data Frame, then the  
sample phase is {(6 x 3) - 1 = 17} the seventeenth clock after the rising edge of the Start Pulse.  
TABLE 9-7:  
SERIRQ SAMPLING PERIODS  
SERIRQ Period  
Signal Sampled  
# of Clocks Past Start  
1
2
Not Used  
IRQ1  
2
5
3
IRQ2  
8
4
IRQ3  
11  
14  
17  
20  
23  
26  
29  
32  
35  
38  
41  
44  
47  
5
IRQ4  
6
IRQ5  
7
IRQ6  
8
IRQ7  
9
IRQ8  
10  
11  
12  
13  
14  
15  
16  
IRQ9  
IRQ10  
IRQ11  
IRQ12  
IRQ13  
IRQ14  
IRQ15  
The SIRQ data frame will now support IRQ2 from a logical device; previously SERIRQ Period 3 was reserved for use  
by the System Management Interrupt (LSMI#). When using Period 3 for IRQ2, the user should mask off the SMI via the  
ESMI Mask Register. Likewise, when using Period 3 for LSMI#, the user should not configure any logical devices as  
using IRQ2.  
SERIRQ Period 14 is used to transfer IRQ13. Each Logical devices will have IRQ13 as a choice for their primary inter-  
rupt.  
STOP CYCLE CONTROL  
Once all IRQ/Data Frames have completed, the host controller will terminate SERIRQ activity by initiating a Stop Frame.  
Only the host controller can initiate the Stop Frame. A Stop Frame is indicated when the SERIRQ is low for two or three  
clocks. If the Stop Frame’s low time is two clocks, then the next SERIRQ cycle’s sampled mode is the Quiet mode; and  
any SERIRQ device may initiate a Start Frame in the second clock or more after the rising edge of the Stop Frame’s  
pulse. If the Stop Frame’s low time is three clocks, then the next SERIRQ cycle’s sampled mode is the continuous mode,  
and only the host controller may initiate a Start Frame in the second clock or more after the rising edge of the Stop  
Frame’s pulse.  
9.8.7.3  
Latency  
Latency for IRQ/Data updates over the SERIRQ bus in bridge-less systems with the minimum IRQ/Data Frames of 17  
will range up to 96 clocks (3.84S with a 25 MHz LCLK or 2.88s with a 33 MHz LCLK).  
Note:  
If one or more PCI to PCI Bridge is added to a system, the latency for IRQ/Data updates from the secondary  
or tertiary buses will be a few clocks longer for synchronous buses, and approximately double for asyn-  
chronous buses.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 215  
MEC170x  
9.8.7.4  
EOI/ISR Read Latency  
Any serialized IRQ scheme has a potential implementation issue related to IRQ latency. IRQ latency could cause an  
EOI or ISR Read to precede an IRQ transition that it should have followed. This could cause a system fault. The host  
interrupt controller is responsible for ensuring that these latency issues are mitigated. The recommended solution is to  
delay EOIs and ISR Reads to the interrupt controller by the same amount as the SERIRQ Cycle latency in order to  
ensure that these events do not occur out of order.  
9.8.7.5  
AC/DC Specification Issue  
All Serial IRQ agents must drive/sample SERIRQ synchronously related to the rising edge of LCLK. The SERIRQ pin  
uses the electrical specification of the PCI bus. Electrical parameters will follow the PCI Local Bus Specification, Rev.  
2.2 definition of “sustained tri-state.”  
9.8.7.6  
Reset and Initialization  
The SERIRQ bus uses LRESET# as its reset signal and follows the PCI bus reset mechanism. The SERIRQ pin is tri-  
stated by all agents while LRESET# is active. With reset, SERIRQ slaves and bridges are put into the (continuous) Idle  
mode. The host controller is responsible for starting the initial SERIRQ cycle to collect system’s IRQ/Data default values.  
The system then follows with the Continuous/Quiet mode protocol (Stop Frame pulse width) for subsequent SERIRQ  
cycles. It is the host controller’s responsibility to provide the default values to the 8259’s and other system logic before  
the first SERIRQ cycle is performed. For SERIRQ system suspend, insertion, or removal application, the host controller  
should be programmed into Continuous (IDLE) mode first. This is to ensure the SERIRQ bus is in Idle state before the  
system configuration changes.  
9.8.7.7  
SERIRQ Interrupts  
The LPC Controller routes Logical Device interrupts onto SIRQ stream frames IRQ[0:15]. Routing is controlled by the  
SIRQ Interrupt Configuration Registers. There is one SIRQ Interrupt Configuration Register for each accessible SIRQ  
Frame (IRQ); all 16 registers are listed in Table 9-9, "Configuration Register Summary".  
The format for each SIRQ Interrupt Configuration Register is described in Section 9.9.2.1, "SIRQ Configuration Register  
Format". Each Logical Device can have up to two LPC SERIRQ interrupts. When the device is polled by the host, each  
SIRQ frame routes the level of the Logical Device interrupt (selected by the corresponding SIRQ Interrupt Configuration  
Register) to the SIRQ stream.  
Each SIRQ Interrupt Configuration Register controls a series of multiplexers which route to a single Logical Device inter-  
rupt as illustrated in Figure 9-7, "SIRQ Routing Internal Logical Devices". The following table defines the Serial IRQ rout-  
ing for each logical device implemented in the chip.  
TABLE 9-8:  
SIRQ Interrupt  
Configuration Register  
LOGICAL DEVICE SIRQ ROUTING  
Logical Device Interrupt Source  
Logical Device  
(Block Instance)  
Select  
Frame  
Interrupt Source  
0h  
1h  
0h  
1h  
0h  
0h  
0h  
0h  
0h  
0h  
0h  
0h  
0h  
0h  
0h  
1h  
1h  
2h  
3h  
4h  
5h  
6h  
9h  
Ah  
Ch  
10h  
Mailbox  
Mailbox  
MBX_Host_SIRQ  
MBX_Host_SMI  
KIRQ  
Keyboard Controller (8042)  
Keyboard Controller (8042)  
ACPI-EC 0  
MIRQ  
EC_OBE  
EC_OBE  
EC_OBE  
EC_OBE  
EC_OBE  
UART  
ACPI-EC 1  
ACPI-EC 2  
ACPI-EC 3  
ACPI-EC 4  
UART 0  
UART 1  
UART  
LPC Interface 0  
EM Interface 0  
EC_IRQ  
EC-to-Host  
DS00002206H-page 216  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 9-8:  
SIRQ Interrupt  
Configuration Register  
LOGICAL DEVICE SIRQ ROUTING (CONTINUED)  
Logical Device Interrupt Source  
Logical Device  
(Block Instance)  
Select  
Frame  
Interrupt Source  
1h  
0h  
1h  
0h  
1h  
0h  
10h  
11h  
11h  
12h  
12h  
14h  
EM Interface 0  
EM Interface 1  
EM Interface 1  
EM Interface 2  
EM Interface 2  
RTC  
Host Event  
EC-to-Host  
Host Event  
EC-to-Host  
Host Event  
RTC  
FIGURE 9-7:  
SIRQ ROUTING INTERNAL LOGICAL DEVICES  
LD 00h-Int0 0  
LD 00h- Int  
LD 00h-Int1 1  
LD 3Fh-Int0 0  
LD 3Fh- Int  
SERIRQi  
Source  
LD 3Fh-Int1 1  
0
1
SIRQi Conguration Register[7:0]  
Frame  
8
7
6
Device  
Note:  
Two Logical Devices cannot share a Serial IRQ.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 217  
MEC170x  
9.9  
Configuration Registers  
Configuration Registers for the LPC Interface are listed in Table 9-9, "Configuration Register Summary". Host access to  
Configuration Registers is through the Configuration Port using the Logical Device Number of the LPC Interface and the  
Index shown in the “Host Index” column of the table. The EC can access Configuration Registers directly. The EC  
address for each register is formed by adding the Base Address for the LPC Interface shown in the Block Overview and  
Base Address Table in Section 3.0, "Device Inventory" to the offset shown in the “EC Offset” column.  
TABLE 9-9:  
EC Offset  
CONFIGURATION REGISTER SUMMARY  
Host Index  
Register Name  
330h  
340h  
30h  
40h  
LPC Activate Register  
Serial IRQ Configuration Registers -- IRQ0  
Serial IRQ Configuration Registers -- IRQ1  
Serial IRQ Configuration Registers -- IRQ2  
Serial IRQ Configuration Registers -- IRQ3  
Serial IRQ Configuration Registers -- IRQ4  
Serial IRQ Configuration Registers -- IRQ5  
Serial IRQ Configuration Registers -- IRQ6  
Serial IRQ Configuration Registers -- IRQ7  
Serial IRQ Configuration Registers -- IRQ8  
Serial IRQ Configuration Registers -- IRQ9  
Serial IRQ Configuration Registers -- IRQ10  
Serial IRQ Configuration Registers -- IRQ11  
Serial IRQ Configuration Registers -- IRQ12  
Serial IRQ Configuration Registers -- IRQ13  
Serial IRQ Configuration Registers -- IRQ14  
Serial IRQ Configuration Registers -- IRQ15  
See Table 9-10, "I/O Base Address Register Default Values"  
See Table 9-11, "SRAM Base Address Register Default Values, LPC Config"  
See Table 9-13, "Memory Base Address Register Default Values"  
341h  
41h  
342h  
42h  
343h  
43h  
344h  
44h  
345h  
45h  
346h  
46h  
347h  
47h  
348h  
48h  
349h  
49h  
34Ah  
4Ah  
34Bh  
4Bh  
34Ch  
4Ch  
34Dh  
4Dh  
34Eh  
4Eh  
34Fh  
4Fh  
360h - 3AF  
3B0h - 3BFh  
3C0h - 3FFh  
60h -AFh  
B0h - BFh  
C0h - FFh  
DS00002206H-page 218  
2016-2020 Microchip Technology Inc.  
MEC170x  
9.9.1  
LPC ACTIVATE REGISTER  
The LPC Activate Register controls the LPC device itself. The Host can shut down the LPC Logical Device by clearing  
the Activate bit, but it cannot restart the LPC interface, since once the LPC interface is inactive the Host has no access  
to any registers on the device. The Embedded Controller can set or clear the Activate bit at any time.  
30h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:1 Reserved  
ACTIVATE  
R
-
-
0
R/W  
0b  
RESET  
_SYS  
When this bit is 0, the logical device is powered down and inactive.  
Except for the LPC Activate Register itself, clocks to the block are  
gated and the LPC Logical Device will permit the ring oscillator to  
be shut down (see Section 9.11.4, "EC Clock Control Register").  
LPC bus output pads will be tri-stated.  
The Host should not write this bit to ‘0’ over the LPC bus.  
1=Activated. The LPC Logical Device is powered and functional  
0=Deactivated  
9.9.2  
SERIAL IRQ CONFIGURATION REGISTERS  
The LPC Controller implements 16 IRQ channels that may be configured to be asserted by any logical device.  
For a list of the SIRQ sources see Table 9-8, "Logical Device SIRQ Routing".  
9.9.2.1  
SIRQ Configuration Register Format  
See Table 9-9, "Configuration Register Summary".  
Offset  
Reset  
Event  
Bits  
Description  
Type  
Default  
7
SELECT  
R/W  
FFh  
RESET  
_HOST  
If this bit is 0, the first interrupt signal from the Logical Device is  
selected for the SERIRQ vector. If this bit is 1, the second interrupt  
signal from the Logical Device is selected.  
The Keyboard Controller is an example of a Logical Devices that  
requires a second interrupt signal. Most Logical Devices require  
only a single interrupt and ignore this field as result.  
6
DEVICE  
R/W  
R/W  
FFh  
FFh  
RESET  
_HOST  
This field should always be set to 0 in order to enable a SERIRQ.  
5:0 FRAME  
These six bits select the Logical Device for on-chip devices as the  
RESET  
_HOST  
source for the interrupt.  
The LPC Logical Device (Logical Device Number 0Ch) can be  
used by the Embedded Controller to generate a Serial Interrupt  
Request to the Host under software control.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 219  
MEC170x  
Note:  
A SERIRQ interrupt is deactivated by setting the SERIRQ Configuration Register for the SERIRQ channel  
to FFh, which is the default reset value.  
9.9.3  
I/O BASE ADDRESS REGISTERS  
The LPC Controller has implemented an I/O Base Address Register (BAR) for each Logical Device in the LPC Config-  
uration space.  
• For a description of the I/O Base Address Register format see Section 9.9.3.1, "I/O Base Address Register For-  
mat".  
• For a description of the I/O BARs per Logical Device see Table 9-10, "I/O Base Address Register Default Values".  
On every LPC bus I/O access the unmasked portion of the programmed LPC Host Address in each of the Base Address  
Registers are checked in parallel and if any matches the LPC I/O address the LPC Controller claims the bus cycle.  
Note:  
Software should that insure that no two I/O BARs map the same LPC I/O address. If two I/O BARs do map  
to the same address, the LPC_INTERNAL_ERR and BAR_CONFLICT status bits are set when an LPC  
access is targeting the address with the BAR conflict.  
The format of each BAR is summarized in Section 9.9.3.1, "I/O Base Address Register Format".  
9.9.3.1  
I/O Base Address Register Format  
Each LPC accessible logical device has a programmable I/O Base Address Register. The following table defines the  
generic format used for all of these registers.  
See Table 9-10, "I/O Base Address Register Default Values"  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:16 LPC_HOST_ADDRESS  
R/W  
(See  
Note 1)  
See  
Table 9-10  
Note 2  
These 16 bits are used to match LPC I/O addresses. See Section  
9.8.4, "Claiming I/O Transactions" for a description of how host  
addresses are claimed.  
15 VALID  
R/W  
See  
Note 2  
Table 9-10  
If this bit is 1, the BAR is valid and will participate in LPC matches.  
If it is 0 this BAR is ignored  
14 Reserved  
R
-
-
Note 1: Bits[31:16] LPC Host Address bit field in the LPC Base Address register at offset 60h must be written  
LSB then MSB. This particular register has a shadow that lets the Host come in and write to the lower  
byte of the 16-bit address, and the resulting 16-bit LPC Host address field does not update. Writing to  
the upper byte triggers a full 16-bit field update  
2: The BARs for all Logical Devices except the BAR for the LPC Interface, at offset 60h, are reset on  
RESET_HOST. The BAR for the LPC Interface is reset on RESET_SYS.  
3: The Mask and Frame fields of all logical devices are read-only except for the ACPI EC0 interface. For  
this interface, the Mask field is readable and writable.  
DS00002206H-page 220  
2016-2020 Microchip Technology Inc.  
MEC170x  
See Table 9-10, "I/O Base Address Register Default Values"  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
13:8 FRAME  
R
See  
Note 2  
Table 9-10  
These 6 bits are used to specify a logical device frame number  
within a bus. This field is multiplied by 400h to provide the frame  
address within the peripheral bus address. Frame values for  
frames corresponding to logical devices that are not present on the  
device are invalid.  
7:0 MASK  
R
See  
Note 2  
(See  
Note 3)  
Table 9-10  
These 8 bits are used to mask off address bits in the address  
match between an LPC I/O address and the Host Address field of  
the BARs, as described in Section 9.8.4, "Claiming I/O Transac-  
tions". A block of up to 256 8-bit registers can be assigned to one  
base address.  
Note 1: Bits[31:16] LPC Host Address bit field in the LPC Base Address register at offset 60h must be written  
LSB then MSB. This particular register has a shadow that lets the Host come in and write to the lower  
byte of the 16-bit address, and the resulting 16-bit LPC Host address field does not update. Writing to  
the upper byte triggers a full 16-bit field update  
2: The BARs for all Logical Devices except the BAR for the LPC Interface, at offset 60h, are reset on  
RESET_HOST. The BAR for the LPC Interface is reset on RESET_SYS.  
3: The Mask and Frame fields of all logical devices are read-only except for the ACPI EC0 interface. For  
this interface, the Mask field is readable and writable.  
The following table defines the IO_BAR of each logical device implemented in the design.  
TABLE 9-10: I/O BASE ADDRESS REGISTER DEFAULT VALUES  
Default  
LPC  
Index  
EC  
Offset  
Reset  
Default  
Logical Device  
LPC I/O  
Address  
Valid  
LDN  
Mask  
60h  
360h  
LPC Interface  
002E_0C01h  
002Eh  
0h  
Ch  
1h  
(Configuration Port)  
Mailbox  
64h  
68h  
364h  
368h  
0000_0001h  
0060_0104h  
0000h  
0060h  
0h  
0h  
0h  
1h  
1h  
4h  
8042 Emulated Key-  
board Controller  
6Ch  
70h  
74h  
78h  
7Ch  
80h  
84h  
88h  
8Ch  
90h  
36Ch  
370h  
374h  
378h  
37Ch  
380h  
384h  
388h  
38Ch  
390h  
ACPI EC Channel 0  
ACPI EC Channel 1  
ACPI EC Channel 2  
ACPI EC Channel 3  
ACPI EC Channel 4  
ACPI PM1  
0062_0204h  
0000_0307h  
0000_0407h  
0000_0507h  
0000_0607h  
0000_0707h  
0092_0800h  
0000_0907h  
0000_0A07h  
0000_100Fh  
0062h  
0000h  
0000h  
0000h  
0000h  
0000h  
0092h  
0000h  
0000h  
0000h  
0h  
0h  
0h  
0h  
0h  
0h  
0h  
0h  
0h  
0h  
2h  
3h  
4h  
5h  
6h  
7h  
8h  
9h  
Ah  
10h  
4h  
7h  
7h  
7h  
7h  
7h  
0h  
7h  
7h  
Fh  
Legacy (Fast Keyboard)  
UART 0  
UART 1  
Embedded Memory  
Interface (EMI) 0  
94h  
394h  
Embedded Memory  
Interface (EMI) 1  
0000_110Fh  
0000h  
0h  
11h  
Fh  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 221  
MEC170x  
TABLE 9-10: I/O BASE ADDRESS REGISTER DEFAULT VALUES (CONTINUED)  
Default  
LPC  
Index  
EC  
Offset  
Reset  
Default  
Logical Device  
LPC I/O  
Address  
Valid  
LDN  
Mask  
98h  
9Ch  
A0h  
A4h  
398h  
39Ch  
3A0h  
3A4h  
Embedded Memory  
Interface (EMI) 2  
0000_120Fh  
0000_2000h  
0000_2100h  
0000_141Fh  
0000h  
0000h  
0000h  
0000h  
0h  
0h  
0h  
0h  
12h  
20h  
21h  
14h  
Fh  
0h  
BIOS Debug Port (Port  
80) 0  
BIOS Debug Port (Port  
80) 1  
0h  
RTC  
1Fh  
9.9.4  
9.9.4.1  
SRAM BASE ADDRESS REGISTERS  
SRAM Base Address Register Format, LPC Configuration Register Format  
See Table 9-11, "SRAM Base Address Register Default Values, LPC Config"  
Offset  
Reset  
Event  
Bits  
Description  
Type  
Default  
63:32 LPC_HOST_ADDRESS  
These 32 bits are used to match LPC Memory addresses  
R/W  
0h  
RESET  
_HOST  
31:8 Reserved  
R
-
-
7
VALID  
R/W  
0h  
RESET  
_HOST  
If this bit is 1, this SRAM Memory BAR is valid and will participate  
in LPC matches. If it is 0 this BAR is ignored.  
6:0 Reserved  
R
-
-
9.9.4.2  
SRAM Base Address Register Format, EC-Only Register Format  
See Table 9-12, "SRAM Base Address Register Default Values, EC-Only"  
Offset  
Bits  
31:8 AHB_BASE  
Reset  
Event  
Description Type  
Default  
R/W  
0h  
RESET_  
SYS  
These 24 bits define the base of a region in AHB address space that  
will be mapped to the LPC Memory space. Valid AHB addresses are  
integer multiples of the memory size. For example, if the memory is  
4k bytes than the AHB Base address must be located on a 4k byte  
boundary.  
The 24 bits in this field are left-shifted by 8 bits to form a 32-bit AHB  
address, so all memory blocks begin on a 256-byte boundary.  
7 INHIBIT  
R/W  
R
0h  
-
RESET_  
SYS  
Host access to the memory block is inhibited when this bit is 1. The  
Host can access the memory region mapped by the fields AHB Base  
and Size when this bit is 0.  
6:4 Reserved  
-
DS00002206H-page 222  
2016-2020 Microchip Technology Inc.  
MEC170x  
See Table 9-12, "SRAM Base Address Register Default Values, EC-Only"  
Description Type  
R/W  
Offset  
Bits  
Reset  
Default  
Event  
3:0 SIZE  
0h  
RESET_  
SYS  
The number of address bits to pass unchanged when translating an  
LPC address to an AHB address. These 4 bits in effect define the  
size of the block to be claimed by the LPC bridge, defined as a  
power of 2. A value of 0 defines a 20 or a 1-byte region starting at  
LPC Host Address. A value of 12 defines a 212 or a 4K-byte region.  
Values larger than 12 are undefined.  
The following tables define the SRAM BARs implemented in the design.  
TABLE 9-11: SRAM BASE ADDRESS REGISTER DEFAULT VALUES, LPC CONFIG  
LPC Host  
LPC  
EC  
Reset  
Valid  
[7]  
Logical Device  
Address  
[63:32]  
Index  
Offset  
Default  
B0h  
B8h  
3B0h  
3B8h  
SRAM BAR 0  
SRAM BAR 1  
0h  
0h  
0h  
0h  
0h  
0h  
TABLE 9-12: SRAM BASE ADDRESS REGISTER DEFAULT VALUES, EC-ONLY  
AHB Base  
EC  
Reset  
Inhibit  
[7]  
Size  
[3:0]  
Logical Device  
Address  
[31:8]  
Offset  
Default  
1F8h  
1FCh  
SRAM BAR 0  
SRAM BAR 1  
80h  
80h  
0h  
0h  
1h  
1h  
0h  
0h  
9.9.5  
MEMORY BASE ADDRESS REGISTERS  
Some Logical Devices have a Memory Base Address Register. These Device Memory BARs are located in blocks of  
Configuration Registers in Logical Device 0Ch. An LPC memory request is translated by the Memory BAR into an 8-bit  
read or write transaction on the AHB bus. The 32-bit LPC memory address is translated into a 24-bit AHB address.  
The following table defines the generic format used for all of these registers.  
9.9.5.1  
Memory Base Address Register Format  
See Table 9-13, "Memory Base Address Register Default Values"  
Offset  
Reset  
Event  
Bits  
Description  
Type  
Default  
47:16 LPC_HOST_ADDRESS  
These 32 bits are used to match LPC memory addresses  
R/W  
See  
RESET  
Table 9-13 _HOST  
15 VALID  
If this bit is 1, the BAR is valid and will participate in LPC matches.  
If it is 0 this BAR is ignored  
R/W  
See  
RESET  
Table 9-13 _HOST  
14 Reserved  
R
-
-
Note 1: The Mask and Frame fields of all logical devices are read-only except for the ACPI EC0 interface. For  
this interface, the Mask field is readable and writable.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 223  
MEC170x  
See Table 9-13, "Memory Base Address Register Default Values"  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
13:8 FRAME  
R
See  
RESET  
Table 9-13 _HOST  
These 6 bits are used to specify a logical device frame number  
within a bus. This field is multiplied by 400h to provide the frame  
address within the peripheral bus address.Frame values for frames  
corresponding to logical devices that are not present on the device  
are invalid.  
7:0 MASK  
R or  
R/W  
(See  
See  
RESET  
Table 9-13 _HOST  
These 8 bits are used to mask off address bits in the address  
match between an LPC I/O address and the Host Address field of  
the BARs, as described in Section 9.8.1.2, "LPC Memory Cycles".  
A block of up to 256 8-bit registers can be assigned to one base  
address.  
Note 1)  
Note 1: The Mask and Frame fields of all logical devices are read-only except for the ACPI EC0 interface. For  
this interface, the Mask field is readable and writable.  
The following table defines the Memory BAR of each logical device implemented in the design.  
TABLE 9-13: MEMORY BASE ADDRESS REGISTER DEFAULT VALUES  
Default  
LPC  
Index  
EC  
Offset  
Reset  
Default  
Logical Device  
LPC I/O  
Address  
Valid  
Frame  
Mask  
C0h  
C6h  
CCh  
D2h  
D8h  
DEh  
E4h  
3C0h  
3C6h  
Mailbox  
ACPI EC Channel 0  
0000_0001h  
0062_0204h  
0000_0307h  
0000_0407h  
0000_0507h  
0000_0607h  
0000_100Fh  
0000h  
0062h  
0000h  
0000h  
0000h  
0000h  
0000h  
0h  
0h  
0h  
0h  
0h  
0h  
0h  
0h  
2h  
1h  
4h  
7h  
7h  
7h  
7h  
Fh  
3CCh ACPI EC Channel 1  
3h  
3D2h  
3D8h  
ACPI EC Channel 2  
ACPI EC Channel 3  
4h  
5h  
3DEh ACPI EC Channel 4  
6h  
3E4h  
3EAh  
3F0h  
Embedded Memory  
Interface (EMI) 0  
10h  
EAh  
F0h  
Embedded Memory  
Interface (EMI) 1  
0000_110Fh  
0000_120Fh  
0000h  
0000h  
0h  
0h  
11  
Fh  
Fh  
Embedded Memory  
Interface (EMI) 2  
12h  
9.10 Runtime Registers  
The registers listed in the Runtime Register Summary table are for a single instance of the LPC Interface. Host access  
for each register listed in this table is defined as an offset in the Host address space to the LPC Block’s Base Address,  
as defined by the instance’s Base Address Register.  
Note:  
The LPC Runtime registers are only accessible from the LPC interface and are used to access the LPC  
Configuration Port. They are not accessible by the EC.  
TABLE 9-14: RUNTIME REGISTER SUMMARY  
Offset  
Register Name  
00h  
01h  
INDEX Register  
DATA Register  
DS00002206H-page 224  
2016-2020 Microchip Technology Inc.  
MEC170x  
For a description of accessing the Configuration Port see Section 9.8.6, "Configuration Port".  
9.10.1  
INDEX REGISTER  
00h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
7:0 INDEX  
R/W  
0h  
RESET_  
SYS  
The INDEX register, which is part of the Configuration Port, is used  
as a pointer to a Configuration Register Address.  
9.10.2  
DATA REGISTER  
01h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 DATA  
R/W  
0h  
RESET_  
SYS  
The DATA register, which is part of the Configuration Port, is used to  
read or write data to the register currently being selected by the  
INDEX Register.  
9.11 EC 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 LPC Interface Block in the Block Overview and Base Address Table in Section  
3.0, "Device Inventory".  
TABLE 9-15: REGISTER SUMMARY  
Offset  
Register Name  
LPC Bus Monitor Register  
104h  
108h  
10Ch  
110h  
114h  
118h  
120h  
124h  
128h  
12Ch  
130h  
Host Bus Error Register  
EC SERIRQ Register  
EC Clock Control Register  
MCHP Test Register  
MCHP Test Register  
BAR Inhibit Register  
TEST  
TEST  
TEST  
LPC BAR Init Register  
1F8h - 1FCh See Table 9-12, "SRAM Base Address Register Default  
Values, EC-Only"  
Note:  
TEST registers are read/write registers. Modifying these registers may have unwanted results.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 225  
MEC170x  
9.11.1  
LPC BUS MONITOR REGISTER  
104h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:2 Reserved  
R
R
-
-
1 LRESET_STATUS  
0h  
RESET_  
SYS  
This bit reflects the state of the LRESET# input pin. The LRE-  
SET_Status is the inverse of the LRESET# pin.  
When the LRESET_Status bit is ‘0b’, the LRESET# input pin is de-  
asserted (that is, the pin has the value ‘1b’). When the LRESET_Sta-  
tus bit is ‘1b’, the LRESET# input pin is asserted (that is, the pin has  
the value ‘0b’).  
0 TEST  
R
0h  
RESET_  
SYS  
9.11.2  
HOST BUS ERROR REGISTER  
108h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:8 ERROR_ADDRESS  
R
0h  
RESET_  
SYS  
This 24-bit field captures the 24-bit internal address of every LPC  
transaction whenever the bit LPC_INTERNAL_ERR in this register is  
0. When LPC_INTERNAL_ERR is 1 this register is not updated but  
retains its previous value. When bus errors occur this field saves the  
address of the first address that caused an error.  
5 DMA_ERR  
R/WC  
R/WC  
R/WC  
0h  
0h  
0h  
RESET_  
SYS  
This bit is set to 1 whenever EN_INTERNAL_ERR is 1 and an LPC  
DMA access causes an internal bus error. Once set, it remains set  
until cleared by being written with a 1.  
4 CONFIG_ERR  
RESET_  
SYS  
This bit is set to 1 whenever EN_INTERNAL_ERR is 1 and an LPC  
Configuration access causes an internal bus error. Once set, it  
remains set until cleared by being written with a 1.  
3 RUNTIME_ERR  
RESET_  
SYS  
This bit is set to 1 whenever EN_INTERNAL_ERR is 1 and an LPC  
I/O access causes an internal bus error. This error will only occur if a  
BAR is misconfigured. Once set, it remains set until cleared by being  
written with a 1.  
2 BAR_CONFLICT  
R/WC  
R/W  
0h  
0h  
RESET_  
SYS  
This bit is set to 1 whenever a BAR conflict occurs on an LPC  
address. A Bar conflict occurs when more than one BAR matches  
the address during of an LPC cycle access. Once this bit is set, it  
remains set until cleared by being written with a 1.  
1 EN_INTERNAL_ERR  
RESET_  
SYS  
When this bit is 0, only a BAR conflict, which occurs when two BARs  
match the same LPC I/O address, will cause LPC_INTERNAL_ERR  
to be set. When this bit is 1, internal bus errors will also cause  
LPC_INTERNAL_ERR to be set.  
DS00002206H-page 226  
2016-2020 Microchip Technology Inc.  
MEC170x  
108h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
0 LPC_INTERNAL_ERR  
R/WC  
0h  
RESET_  
SYS  
This bit is set whenever a BAR conflict or an internal bus error  
occurs as a result of an LPC access. Once set, it remains set until  
cleared by being written with a 1. This signal may be used to gener-  
ate interrupts.  
9.11.3  
EC SERIRQ REGISTER  
10Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:1 Reserved  
R
-
-
0 EC_IRQ  
R/W  
0h  
RESET_  
SYS  
If the LPC Logical Device is selected as the source for a Serial Inter-  
rupt Request by an Interrupt Configuration register (see Section  
9.8.7.7, "SERIRQ Interrupts"), this bit is used as the interrupt source.  
9.11.4  
EC CLOCK CONTROL REGISTER  
110h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:3 Reserved  
2 TEST  
R
-
-
R/W  
1h  
RESET_  
SYS  
This bit must be set to ‘1b’ whenever this register is written.  
1:0 CLOCK_CONTROL  
R/W  
0h  
RESET_  
SYS  
This field controls when the host interface will permit the internal ring  
oscillator to be shut down. The choices are as follows:  
3=Sleep modes are inhibited as long as the host interface is active.  
When the ACTIVATE bit in the LPC Activate Register is 0, the  
Host Interface will permit the ring oscillator to be shut down and  
the CLOCK_CONTROL Field is ignored. The CLOCK_CON-  
TROL Field only effects the Host Interface when the ACTIVATE  
bit in the LPC Activate Register is 1  
2=Sleep modes can be entered after the completion of every LPC  
transaction. This mode may cause an increase in the time to  
respond to LPC transactions if the main oscillator is off when the  
LPC transaction is detected.  
1=The host interface will permit sleep if the CLKRUN# signals  
“CLOCK STOP” and there are no pending serial interrupt request  
or DMA requests from devices associated with the device. The  
CLKRUN# signals “CLOCK STOP” by CLKRUN# being high for  
5 LPCCLK’s after the raising edge of CLKRUN#  
0=The Host interface will permit sleep if the LPCPD# signal is  
asserted low  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 227  
MEC170x  
9.11.5  
MCHP TEST REGISTER  
114h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:8 Reserved  
7:0 TEST  
R
R
-
-
0h  
RESET_  
SYS  
9.11.6  
MCHP TEST REGISTER  
118h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:2 Reserved  
1 TEST  
R
-
-
R/W  
0h  
RESET_  
SYS  
0 TEST  
R/W  
0h  
RESET_  
SYS  
9.11.7  
BAR INHIBIT REGISTER  
120h  
Offset  
Bits  
63:0 BAR_INHIBIT  
Reset  
Event  
Description  
Type  
Default  
R/W  
0h  
RESET_  
SYS  
When bit Di of BAR_Inhibit is 1, the BAR for Logical Device i is dis-  
abled and its addresses will not be claimed on the LPC bus, inde-  
pendent of the value of the Valid bit in the BAR.The association  
between bits in BAR_Inhibit and Logical Devices is illustrated in  
Table 9-16, "BAR Inhibit Device Map".  
TABLE 9-16: BAR INHIBIT DEVICE MAP  
Bar Inhibit Bit  
Logical Device Number  
0
1
0h  
1h  
.
.
.
.
.
.
31  
1Fh  
.
.
.
.
.
.
63  
3Fh  
DS00002206H-page 228  
2016-2020 Microchip Technology Inc.  
MEC170x  
9.11.8  
LPC BAR INIT REGISTER  
130h  
Offset  
Bits  
15:0 BAR_INIT  
Reset  
Default  
Description  
Type  
Event  
R/W  
002Eh  
RESET_  
SYS  
This field is loaded into the LPC BAR at offset 60h on  
RESET_HOST.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 229  
MEC170x  
10.0 ENHANCED SERIAL PERIPHERAL INTERFACE (ESPI)  
10.1 Introduction  
The Intel® Enhanced Serial Peripheral Interface (eSPI) is used by the system host to configure the chip and communi-  
cate with the logical devices implemented in the design through a series of read/write registers. It is Intel’s successor to  
the Low Pin Count (LPC) bus, used in previous devices to provide System Host access to devices internal to the Embed-  
ded Controller.  
10.2 References  
1. Intel, Enhanced Serial Peripheral Interface (eSPI): Interface Specification (for Client Platforms)  
2. Intel, Skylake U and Y Platform Design Guide, Revision 2.0  
3. Microchip “eSPI Controller” Specification, DS00000A  
10.3 Terminology  
This table defines specialized terms localized to this feature.  
TABLE 10-1: TERMINOLOGY  
Term  
System Host  
Definition  
Refers to the external CPU that communicates with this device via the eSPi Inter-  
face.  
Logical Devices  
Logical Devices are System Host-accessible features that are allocated a Base  
Address and range in the System Host I/O address space  
Runtime Register  
Runtime Registers are registers that are directly I/O accessible by the System Host  
via the eSPI interface.  
Configuration Registers  
10.4 Interface  
Registers that are only accessible in CONFIG_MODE.  
FIGURE 10-1:  
Enhanced Serial Peripheral Interface (eSPI) INTERFACE DIAGRAM  
Enhanced Serial Peripheral Inter-  
Register Interface  
Pin Interface  
Power, Clocks, and Resets  
Interrupt Interface  
DS00002206H-page 230  
2016-2020 Microchip Technology Inc.  
MEC170x  
10.4.1  
PIN INTERFACE  
Table 10-2, "Signal Description Table" lists the signals that are typically routed to the pin interface.  
TABLE 10-2: SIGNAL DESCRIPTION TABLE  
Signal Name  
Direction  
Description  
eSPI_CS#  
eSPI_CLOCK  
eSPI_ALERT#  
Input  
Input  
eSPI Chip Select, Low-Active  
eSPI Clock  
Output  
eSPI Alert signal, Low-Active. Exercised only if ALERT# is configured to be pre-  
sented separately from the IO1 pin.  
eSPI_RESET#  
eSPI_IO0  
Input  
POR for eSPI bus power domain, and a Reset for serious errors. Low-Active.  
Input/Output eSPI Data Bus, bit 0.  
Input (MOSI) in x1 Bus Mode.  
Else, it holds the LS data bit.  
Input/Output eSPI Data Bus, bit 1.  
eSPI_IO1  
Output (MISO) in x1 Bus Mode.  
Also, by default, presents ALERT# state between frames.  
eSPI_IO2  
eSPI_IO3  
Input/Output eSPI Data Bus, bit 2.  
Used only in x4 mode.  
Input/Output eSPI Data Bus, bit 3.  
Used only in x4 mode, as MS bit.  
GPIO055/  
SHD_CS#/  
(RSMRST#)  
Input/Output eSPI/Shared SPI selection strap  
RSMRST# signal to core logic  
GPIO227/  
SHD_IO2  
Input  
Primary rail power good input  
The signal interface pins are connected to the external pin interface. This table maps the block signal names to the exter-  
nal pinout names.  
10.4.2  
REGISTER INTERFACE  
Each of the four channels contains registers that may be accessed by both the Host and the EC, as well as a set of  
registers than only be accessed by the EC.  
10.4.3  
POWER, CLOCKS, AND RESETS  
This section defines the Power, Clock, and Reset parameters associated with this IP block.  
10.4.3.1  
Power  
Name  
VTR  
Description  
The Enhanced Serial Peripheral Interface (eSPI) block and registers are  
powered by VTR. This power rail may be present to the block while  
external power to the eSPI pins is not present. Therefore, this block  
remains passive on the eSPI bus pins whenever eSPI_RESET# is low.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 231  
MEC170x  
10.4.3.2  
Clocks  
This section describes all the clocks in the block, including those that are derived from the I/O Interface as well as the  
ones that are derived or generated internally.  
Name  
Description  
48MHz  
The main internal clock  
The eSPI clock provided by the System Host core logic  
Note: Max frequency supported is 51MHz.  
eSPI_CLOCK  
10.4.3.3  
Resets  
This section describes all the resets associated with this IP block, including those that are derived from the I/O Interface  
as well as the ones that are derived or generated internally.  
Name  
Description  
RESET_SYS  
This is the power-on-reset signal, which is asserted when VTR power is  
applied. Asserting this reset signal resets the eSPI IP block, including all  
registers, FIFOs, and state machines to their initial POR state.  
RESET_eSPI  
A general reset signal for the eSPI block. This reset is asserted with the  
eSPI_RESET# pin is asserted by the System Host core logic.  
When this reset is asserted all eSPI Output signals and Input/Output sig-  
nals are tri-stated. Any transaction in progress is terminated and all  
FIFOs are flushed. All interrupt status flags are reset and all interrupts to  
the EC except RESET_eSPI are suppressed.  
When this reset is asserted, all eSPI Configuration Registers in the slave  
device are set to the default values, as per the Intel eSPI Specification.  
Fields in the eSPI Configuration Registers that are set from the eSPI  
Capabilities registers (see Section 10.7, "eSPI Register Summary") are  
not modified.  
This reset is also asserted in the following cases:  
RESET_SYS is asserted  
RESET_VCC  
Performs a reset when the system main power rail is turned off.  
RESET_HOST  
Performs a reset when the system main power rail is turned off or when  
the system host resets the Host Interface.  
eSPI_PLTRST#  
This is a reset that affects the Peripheral Channel. It is received by the  
Slave as a Virtual Wire (PLTRST#).  
This reset is also asserted in the following cases:  
RESET_SYS is asserted  
RESET_eSPI is asserted  
VCC_PWRGD is de-asserted  
• The Peripheral Channel is disabled  
DS00002206H-page 232  
2016-2020 Microchip Technology Inc.  
MEC170x  
Note:  
When the HOST_RST_WARN Virtual Wire edge arrives, an interrupt event is thrown to EC firmware.  
Between the HOST_RST_WARN notification and the HOST_RST_ACK response from the EC, the EC  
firmware must shut down all eSPI activity under the PLTRST# (S0) domain. Otherwise, intermittent  
FATAL_ERROR responses (leading to SERR events in the Chipset) can occur on subsequent assertions  
of PLTRST#. This is not an erratum, but rather an inherent feature of eSPI itself. The Virtual Wire hand-  
shake HOST_RST_WARN/HOST_RST_ACK exists in order to support a situation unique to eSPI, where  
the eSPI bus remains operational while Main powered (S0) resources are shut down. This is unlike the LPC  
bus, which would shut itself down entirely. When the HOST_RST_WARN Virtual Wire rises to '1' from the  
Host Chipset, it is indicating that a eSPI_PLTRST# (PCI_RESET#) assertion event is pending, and is wait-  
ing for the EC’s HOST_RST_ACK Virtual Wire to rise to '1' to complete the handshake.  
The steps to be taken by EC firmware are:  
1. Stop issuing Bus Mastering requests to System DRAM, and wait until any earlier transfer is complete. That is,  
wait as necessary for the BM1_BUSY and BM2_BUSY status bits to be cleared.  
2. Stop issuing LTR Messages to the Chipset, and wait until any earlier transfer is complete. That is, wait as nec-  
essary for the TRANSMIT_BUSY bit in the LTR Peripheral Status Register to be cleared.  
3. Ensure that no further edges on the Virtual Wires RCIN#, SCI# or SMI# will be delivered to the Chipset. An edge  
report already in transit needs no special handling, as it will be finished no later than the HOST_RST_ACK step  
below.  
4. Ensure that no further edges will be delivered on any of the Host IRQ Virtual Wires, by disabling them either at  
the source or at the IRQ assignment registers. An edge report already in transit needs no special handling, as  
it will be finished no later than the HOST_RST_ACK step below.  
5. Ensure that any other housekeeping is performed by Firmware for its own purposes in anticipation of the pending  
PLTRST# event.  
6. Finally, set the HOST_RST_ACK virtual wire to '1'. The Chipset will respond with SUS_STAT# assertion (as  
appropriate) followed by PLTRST# assertion low.  
10.4.4  
INTERRUPT INTERFACE  
This section defines the interrupt Interface signals routed to the chip interrupt aggregator.  
Source  
Description  
Wake Only Event  
ESPI_WAKE_ONLY  
This signal is asserted when the eSPI interface detects eSPI traffic. If  
enabled, it may be used to wake the main clock domain when the chip  
is in a sleep state.  
Peripheral Channel  
INTR_PC  
Peripheral Channel Interrupt  
Bus Mastering Channel 1 Interrupt  
Bus Mastering Channel 2 Interrupt  
Peripheral Message (LTR) Interrupt  
OOB Channel  
INTR_BM1  
INTR_BM2  
INTR_LTR  
INTR_OOB_UP  
Out of Band Channel Up Interrupt  
Out of Band Channel Down Interrupt  
Flash Channel  
INTR_OOB_DOWN  
INTR_FLASH  
Flash Channel Interrupt  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 233  
MEC170x  
Source  
Description  
Virtual Wires Channel  
MSVW[00:09]_SRC[3:0]  
eSPI_RESET  
Master-to-Slave Virtual Wire Interrupts  
eSPI Global  
eSPI Reset Interrupt  
This interrupt is generated whenever the external eSPI_RESET# pin  
changes state.  
10.5 Low Power Modes  
The eSPI block can enter a low power state when it is not in operation. When the eSPI block is operational it will keep  
the main system clock from shutting down and entering its sleep state. When the eSPI_CS# pin is asserted the eSPI  
block will wake the main system clock, if it is in a sleep state, and keep the system clock in its active state until the trans-  
action started by the Master has completed.  
The low power behavior of the block is controlled by the BAR Inhibit Register. The block is not affected by a SLEEP_EN-  
ABLE signal from the chip’s Power, Clocks and Resets unit.  
10.6 Description  
The Intel® eSPI Interface is used by the system host to configure the chip and communicate with the logical devices  
implemented in the design through a series of read/write registers.  
Note:  
In order to use eSPI, software must individually configure the mux control for every GPIO associated with  
an eSPI bus signal to the eSPI function. Pins are not automatically configured for eSPI operation when the  
eSPI Controller is enabled.  
10.6.1  
SYSTEM INTERFACE  
The EC has the option of loading its code image over the eSPI Flash Channel. In order to do so, the Boot ROM code  
must:  
1. Determine that booting using the eSPI Flash Channel is required  
2. Determine that the Primary power rails for the Intel PCH have ramped and are stable  
3. Take the PCH out of reset so that the eSPI block in the PCH is operational  
The following sections describe each of these three steps.  
10.6.1.1  
Determining that the Flash Channel is required  
In order to select between a SPI Flash directly attached to the Shared SPI Flash port and the eSPI Flash Channel as  
the source for EC code, the EC examines a strap after a reset. The strap is the pin:  
• GPIO055/PWM2/SHD_CS#/(RSMRST#)  
This pin is on the VTR2 rail; VTR2 must be ramped and stable before the EC samples its state. If booting from the  
Shared SPI Flash is required, then this pin must be connected to the SPI Flash power supply through a weak pull-up  
resistor. If booting from the eSPI Flash Channel is required, then this pin must be connected to ground through a weak  
pull-down resistor.  
If booting over a Shared SPI Flash, the EC switches the pin to the SHD_CS# pin function and proceeds to load over the  
Shared SPI Flash port. De-asserting RSMRST# is the responsibility of the loaded code and not the Boot ROM code;  
the RSMRST# function may be assigned to any GPIO which would then be controlled by the EC.  
If booting over the eSPI Flash Channel is selected, the GPIO055/PWM2/SHD_CS#/(RSMRST#) pin must be used as  
the RSMRST# signal to the PCH. The EC will keep the pin as a GPIO; RSMRST# timing and behavior is covered in the  
next two sections.  
10.6.1.2  
Determining that the Primary power rails are stable  
Intel requires four Primary power rails to be ramped and stable before taking the PCH out of reset:  
• VCC_Prim 1.8V  
DS00002206H-page 234  
2016-2020 Microchip Technology Inc.  
MEC170x  
• VCC_Prim 3.3V  
• VCCPRIM_CORE  
• VCC_Prim 1.0V  
According to Intel’s requirements[ 2], all four rails must be ramped and stable for at least 20ms before RSMRST# can  
be de-asserted. The EC determines that at least one of the four rails has ramped by examining the following pin:  
• GPIO227/SHD_IO2  
The EC will only examine this pin if loading code over the eSPI Flash Channel is required. This pin is on the VTR2 rail;  
VTR2 must be ramped and stable before the EC samples its state. If VTR2 is 1.8V, then this pin can be connected to  
VCC_Prim 1.8V. If VTR2 is 3.3V, then this pin can be connected to VCC_Prim 3.3V. This pin may be connected to any  
other signal that indicates at least one of the four Primary rails is up, as long as that signal is at the same voltage level  
as VTR2.  
10.6.1.3  
Taking the PCH out of reset  
Once the EC detects a high on GPIO227/SHD_IO2, it waits a sufficient time to satisfy Intel’s requirements for the de-  
assertion of RSMRST#. After the time has expired, the EC drives the pin high, which has the effect of de-asserting  
RSMRST#, enables the eSPI interface, and then waits for the Host to begin eSPI operation.  
10.6.2  
ESPI CHANNELS  
The eSPI interface consists of four channels:  
• eSPI Peripheral Channel Interface  
• eSPI Out Of Band Channel Interface  
• eSPI Flash Channel Interface  
• eSPI Virtual Wires Interface  
These four channels are multiplexed onto the eSPI physical interface that connects the Embedded Controller device  
with the core logic of the Host. The following figure illustrates this multiplexing:  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 235  
MEC170x  
FIGURE 10-2:  
ESPI BLOCK DIAGRAM  
eSPI  
Physical  
Interface  
eSPI Slave  
Ch 0  
Ch 2  
Ch 3  
Queue  
Queue  
Queue  
Peripheral  
Channel  
Virtual Wire  
Channel  
OOB  
Channel  
Flash  
Channel  
The Flash Channel permits the EC to access the System SPI Flash through the eSPI interface.  
The Out of Band (OOB) Channel enables messaging between the Out-Of-Band Processor in the system chipset and  
the EC. This messaging is implemented by tunneling SMBus packets over the eSPI port.  
The Peripheral Channel (PC) enables the system Host to read and write locations inside the EC. The PC encapsulates  
legacy I/O operation as well as generic memory read and write operations. Like the Flash and the OOB Channels, all  
PC accesses are multiplexed over the eSPI port.  
The Virtual Wire Channel provides in-band emulation of sideband pin signals between the system Core Logic and the  
EC, including the legacy SERIRQ interrupt signal to the system Host.  
10.7 eSPI Register Summary  
The following sections list the registers associated with the eSPI logic. The eSPI logic required three Logical Devices in  
order to provide access to all the required registers. These Logical Devices are called the I/O Component, the Memory  
Component and the Virtual Wire Component. The Base Addresses for these three blocks are shown in the Block Over-  
view and Base Address Table in Section 3.0, "Device Inventory".  
The EC may access all registers in all three Logical Devices. Host access is restricted to three ranges: Runtime Regis-  
ters, located at offsets 00h through FFh from the Logical Device Base Address of the I/O Component, and Configuration  
Registers, located at offsets 330h through 3FFh in both the I/O Component and the Memory Component. The Runtime  
Registers may be mapped into the Hosts address space, either I/O or Memory, by setting the associated BAR for the  
DS00002206H-page 236  
2016-2020 Microchip Technology Inc.  
MEC170x  
Logical Device. The Configuration Registers are accessed through the Configuration Port. Registers located at offsets  
330h through 3FFh are mapped to Configuration Port offsets 30h through FFh. Configuration Port offsets 00h through  
2Fh, for all Host Logical Devices, are mapped to the Global Configuration Registers.  
10.7.1  
ESPI I/O COMPONENT  
TABLE 10-3: ESPI I/O COMPONENT REGISTER SUMMARY  
Host Offset  
EC Offset  
Register Name  
RUNTIME REGISTERS  
Peripheral Channel  
INDEX Register  
00h  
01h  
00h  
01h  
DATA Register  
EC PRIVATE REGISTERS  
Peripheral Channel  
-
-
-
-
-
-
-
-
-
-
100h  
10Ch  
Peripheral Channel Last Cycle Register  
Peripheral Channel Error Address Register  
Peripheral Channel Status Register  
Peripheral Channel Interrupt Enable Register  
Reserved  
114h  
118h  
11Ch  
120h  
BAR Inhibit Register  
128h  
eSPI BAR Init Register  
12Ch  
EC IRQ Register  
130h  
TEST  
134h - 1A7h  
I/O Base Address Register Format, Internal Component  
See Table 10-5, "ESPI I/O Base Address Register Default Values"  
-
-
-
-
220h  
224h  
228h  
22Ch  
LTR Peripheral Status Register  
LTR Peripheral Enable Register  
LTR Peripheral Control Register  
LTR Peripheral Message Register  
OOB Channel  
-
-
-
-
-
-
-
-
-
-
240h  
248h  
250h  
254h  
258h  
25Ch  
260h  
264h  
268h  
26Ch  
OOB Channel Receive Address Register  
OOB Channel Transmit Address Register  
OOB Channel Receive Length Register  
OOB Channel Transmit Length Register  
OOB Channel Receive Control Register  
OOB Channel Receive Interrupt Enable Register  
OOB Channel Receive Status Register  
OOB Channel Transmit Control Register  
OOB Channel Transmit Interrupt Enable Register  
OOB Channel Transmit Status Register  
Flash Channel  
-
-
-
-
-
-
280h  
288h  
290h  
294h  
298h  
29Ch  
Flash Access Channel Flash Address Register  
Flash Access Channel Buffer Address Register  
Flash Access Channel Transfer Length Register  
Flash Access Channel Control Register  
Flash Access Channel Interrupt Enable Register  
Flash Access Channel Configuration Register  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 237  
MEC170x  
TABLE 10-3: ESPI I/O COMPONENT REGISTER SUMMARY (CONTINUED)  
Host Offset  
EC Offset  
Register Name  
Flash Access Channel Status Register  
-
2A0h  
Virtual Wire Channel  
-
2B0h  
Virtual Wire Status  
eSPI Global  
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
2E0h  
2E1h  
2E2h  
2E3h  
2E4h  
2E5h  
2E6h  
2E7h  
2E8h  
2E9h  
2EAh  
2EBh  
2ECh  
2F0h  
2F8h  
eSPI Capabilities ID Register  
eSPI Capabilities Global Capabilities 0 Register  
eSPI Capabilities Global Capabilities 1 Register  
eSPI Peripheral Channel Capabilities Register  
eSPI Virtual Wire Channel Capabilities Register  
eSPI OOB Channel Capabilities Register  
eSPI Flash Channel Capabilities Register  
eSPI Peripheral Channel Ready Register  
eSPI OOB Channel Ready Register  
eSPI Flash Channel Ready Register  
eSPI Reset Interrupt Status Register  
eSPI Reset Interrupt Enable Register  
PLTRST Source Register  
TEST  
TEST  
CONFIGURATION REGISTERS  
Peripheral Channel  
30h  
330h  
eSPI Activate Register  
34h - A7h  
334h - 3A7h  
I/O Space Base Address Registers (BARs)  
See Table 10-5, "ESPI I/O Base Address Register Default Values"  
Virtual Wire Channel  
ACh - CFh  
3ACh - 3CFh  
IRQ Selection.  
See Table 10-9, "IRQ Assignment Table"  
D0h-EFh  
F0h  
3D0h-3EFh  
3F0h  
Reserved  
eSPI Virtual Wire Errors  
10.7.2  
ESPI, MEMORY COMPONENT REGISTERS  
10.7.3  
VIRTUAL WIRE REGISTERS  
TABLE 10-4: VIRTUAL WIRES REGISTER SUMMARY  
EC Offset  
Register Name  
0h  
MSVW00 Register  
MSVW01 Register  
MSVW02 Register  
MSVW03 Register  
MSVW04 Register  
MSVW05 Register  
MSVW06 Register  
MSVW07 Register  
MSVW08 Register  
Ch  
18h  
24h  
30h  
3Ch  
48h  
54h  
60h  
DS00002206H-page 238  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 10-4: VIRTUAL WIRES REGISTER SUMMARY (CONTINUED)  
EC Offset  
Register Name  
6Ch  
78h  
MSVW09 Register  
MSVW10 Register  
Reserved  
84h - 1FFh  
200h  
SMVW00 Register  
SMVW01 Register  
SMVW02 Register  
SMVW03 Register  
SMVW04 Register  
SMVW05 Register  
SMVW06 Register  
SMVW07 Register  
SMVW08 Register  
SMVW09 Register  
SMVW10 Register  
208h  
210h  
218h  
220h  
228h  
230h  
238h  
240h  
248h  
250h  
242h - 3EFh Reserved  
3F0h  
3F2h  
3F8h  
3FAh  
TEST  
TEST  
TEST  
TEST  
10.8 Base Address Register Tables  
TABLE 10-5: ESPI I/O BASE ADDRESS REGISTER DEFAULT VALUES  
Host  
EC  
Reset  
EC-Only  
Offset  
Reset  
Mask  
LDN  
Config  
Index  
Logical Device  
Offset  
Default  
Default  
(Note 1)  
34h  
334h  
338h  
eSPI I/O Component  
(Configuration Port)  
002E_0000h  
0000_0000h  
134h  
138h  
0000_0D01h  
0000_0E00h  
Dh  
Eh  
1h  
0h  
38h  
eSPI Memory  
Component  
3Ch  
40h  
33Ch  
340h  
Mailbox  
0000_0000h  
0060_0000h  
13Ch  
140h  
0000_0001h  
0000_0104h  
0h  
1h  
1h  
4h  
8042 Emulated Key-  
board Controller  
44h  
48h  
4Ch  
50h  
54h  
58h  
5Ch  
60h  
64h  
68h  
344h  
348h  
34Ch  
350h  
354h  
358h  
35Ch  
360h  
364h  
368h  
ACPI EC Channel 0  
ACPI EC Channel 1  
ACPI EC Channel 2  
ACPI EC Channel 3  
ACPI EC Channel 4  
ACPI PM1  
0062_0000h  
0000_0000h  
0000_0000h  
0000_0000h  
0000_0000h  
0000_0000h  
0092_0000h  
0000_0000h  
0000_0000h  
0000_0000h  
144h  
148h  
14Ch  
150h  
154h  
158h  
15Ch  
160h  
164h  
168h  
0000_0204h  
0000_0307h  
0000_0407h  
0000_0507h  
0000_0607h  
0000_0707h  
0000_0800h  
0000_0907h  
0000_0A07h  
0000_100Fh  
2h  
3h  
4h  
5h  
6h  
7h  
8h  
9h  
Ah  
10h  
4h  
7h  
7h  
7h  
7h  
7h  
Legacy (Fast Keyboard)  
UART 0  
7h  
7h  
Fh  
UART 1  
Embedded Memory  
Interface (EMI) 0  
Note 1: The ACPI-EC0 Mask bit field is a read/write bit field. All other MASK bit fields are read-only as defined in  
the register description  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 239  
MEC170x  
TABLE 10-5: ESPI I/O BASE ADDRESS REGISTER DEFAULT VALUES (CONTINUED)  
Host  
EC  
Reset  
EC-Only  
Offset  
Reset  
Mask  
(Note 1)  
Config  
Index  
Logical Device  
LDN  
Offset  
Default  
Default  
6Ch  
70h  
74h  
78h  
7Ch  
36Ch  
370h  
374h  
378h  
37Ch  
Embedded Memory  
Interface (EMI) 1  
0000_0000h  
0000_0000h  
0000_0000h  
0000_0000h  
0000_0000h  
16Ch  
170h  
174h  
178h  
17Ch  
0000_110Fh  
0000_120Fh  
0000_2000h  
0000_2100h  
0000_141Fh  
11h  
12h  
20h  
21h  
14h  
Fh  
Fh  
Embedded Memory  
Interface (EMI) 2  
BIOS Debug Port (Port  
80) 0  
0h  
BIOS Debug Port (Port  
80) 1  
0h  
RTC  
1Fh  
Note 1: The ACPI-EC0 Mask bit field is a read/write bit field. All other MASK bit fields are read-only as defined in  
the register description  
TABLE 10-6: ESPI MEMORY BASE ADDRESS REGISTER DEFAULT VALUES  
Host  
EC  
Reset  
EC-Only  
Offset  
Reset  
Mask  
(Note 1)  
Config  
Index  
Logical Device  
LDN  
Offset  
Default  
Default  
30h  
3Ah  
44h  
4Eh  
58h  
62h  
6Ch  
330h  
33Ah  
344h  
34Eh  
358h  
362h  
376h  
Mailbox  
00_0000h  
62_0000h  
00_0000h  
00_0000h  
00_0000h  
00_0000h  
00_0000h  
130h  
13Ah  
144h  
14Eh  
158h  
162h  
16Ch  
0000_0001h  
0000_0204h  
0000_0307h  
0000_0407h  
0000_0507h  
0000_0607h  
0000_100Fh  
0h  
2h  
1h  
4h  
7h  
7h  
7h  
7h  
Fh  
ACPI EC Channel 0  
ACPI EC Channel 1  
ACPI EC Channel 2  
ACPI EC Channel 3  
ACPI EC Channel 4  
3h  
4h  
5h  
6h  
Embedded Memory  
Interface (EMI) 0  
10h  
76h  
80h  
380h  
38Ah  
Embedded Memory  
Interface (EMI) 1  
00_0000h  
00_0000h  
176h  
180h  
0000_110Fh  
0000_120Fh  
11h  
12h  
Fh  
Fh  
Embedded Memory  
Interface (EMI) 2  
Note 1: The ACPI-EC0 Mask bit field is a read/write bit field. All other MASK bit fields are read-only as defined in  
the register description  
TABLE 10-7: SRAM BASE ADDRESS REGISTER DEFAULT VALUES, HOST CONFIG  
Host  
Config  
Index  
LPC Host  
Address  
[79:16]  
EC  
Offset  
Reset  
Default  
Size  
[7:4]  
Access  
[2:1]  
Logical Device  
ACh  
B6h  
3ACh  
3B6h  
SRAM BAR 0  
SRAM BAR 1  
0h  
0h  
0h  
0h  
0h  
0h  
0h  
0h  
TABLE 10-8: SRAM BASE ADDRESS REGISTER DEFAULT VALUES, EC-ONLY  
Base  
EC  
Reset  
Size  
[7:4]  
Access  
[2:1]  
Valid  
[0]  
Logical Device  
Address  
[47:16]  
Offset  
Default  
1ACh  
1B6h  
SRAM BAR 0  
SRAM BAR 1  
80h  
80h  
0h  
0h  
0h  
0h  
0h  
0h  
1h  
1h  
DS00002206H-page 240  
2016-2020 Microchip Technology Inc.  
MEC170x  
10.9 IRQ Table  
TABLE 10-9: IRQ ASSIGNMENT TABLE  
Host  
EC  
Instance  
Name  
Instance  
Number  
Default  
Value  
Config  
Index  
Interrupt Source  
Offset  
ACh  
ADh  
AEh  
AFh  
B0h  
B1h  
B2h  
B3h  
B4h  
B5h  
B6h  
B7h  
B8h  
B9h  
BAh  
BBh  
BCh  
BDh  
BEh  
3ACh  
3ADh  
3AEh  
3AFh  
3B0h  
3B1h  
3B2h  
3B3h  
3B4h  
3B5h  
3B6h  
3B7h  
3B8h  
3B9h  
3BAh  
3BBh  
3BCh  
3BDh  
3BEh  
Mailbox  
0
0
0
0
0
1
2
3
4
0
1
0
0
1
1
2
2
0
0
MBX_Host_SIRQ  
MBX_Host_SMI  
KIRQ  
FFh  
FFh  
FFh  
FFh  
FFh  
FFh  
FFh  
FFh  
FFh  
FFh  
FFh  
FFh  
FFh  
FFh  
FFh  
FFh  
FFh  
FFh  
FFh  
Mailbox  
8042  
8042  
MIRQ  
ACPI EC  
ACPI EC  
ACPI EC  
ACPI EC  
ACPI EC  
UART  
UART  
EMI  
EC_OBE  
EC_OBE  
EC_OBE  
EC_OBE  
EC_OBE  
UART  
UART  
Host Event  
EC-to-Host  
Host Event  
EC-to-Host  
Host Event  
EC-to-Host  
RTC  
EMI  
EMI  
EMI  
EMI  
EMI  
RTC  
EC  
EC_IRQ  
10.10 Virtual Wires Table  
TABLE 10-10: MASTER-TO-SLAVE VIRTUAL WIRE REGISTERS  
Offset  
Instance Name  
MSVW00  
Default Value  
0h  
00000000_04040404_00000102h  
00000000_04040404_00000003h  
00000000_04040404_00000307h  
00000000_04040404_00000041h  
00000000_04040404_00000142h  
00000000_04040404_00000043h  
00000000_04040404_00000044h  
00000000_04040404_00000347h  
00000000_04040404_00000000h  
00000000_04040404_00000000h  
00000000_04040404_00000000h  
Ch  
MSVW01  
MSVW02  
MSVW03  
MSVW04  
MSVW05  
MSVW06  
MSVW07  
MSVW08  
MSVW09  
MSVW10  
18h  
24h  
30h  
3Ch  
48h  
54h  
60h  
6Ch  
78h  
TABLE 10-11: SLAVE-TO-MASTER VIRTUAL WIRE REGISTERS  
Offset  
Instance Name  
Default Value  
200h  
208h  
210h  
SMVW00  
SMVW01  
SMVW02  
01010000_0000C004h  
00000000_00000005h  
00010101_00007306h  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 241  
MEC170x  
TABLE 10-11: SLAVE-TO-MASTER VIRTUAL WIRE REGISTERS (CONTINUED)  
Offset  
Instance Name  
Default Value  
218h  
220h  
228h  
230h  
238h  
240h  
248h  
250h  
SMVW03  
SMVW04  
SMVW05  
SMVW06  
SMVW07  
SMVW08  
SMVW09  
SMVW10  
00000000_00000040h  
00000000_00000045h  
00000000_00000046h  
00000000_00000000h  
00000000_00000000h  
00000000_00000000h  
00000000_00000000h  
00000000_00000000h  
TABLE 10-12: RESERVED VIRTUAL WIRE REGISTERS  
Index  
Instance Name  
MSVW00  
Bit Number  
Signal  
02h  
0
1
2
3
0
1
2
3
0
1
2
3
0
1
2
3
SLP_S3#  
SLP_S4#  
SLP_S5#  
Reserved  
SUS_STAT#  
PLTRST#  
OOB_RST_WARN  
Reserved  
SLP_LAN#  
SLP_WLAN#  
Reserved  
Reserved  
SCI#  
03h  
42h  
06h  
MSVW01  
MSVW04  
SMVW02  
SMI#  
RC_IN#  
Reserved  
10.10.1 RESERVED MASTER-TO-SLAVE VIRTUAL WIRES  
Of the four signals associated with Master-to-Slave Index 03h, the PLTRST# may be used as part of the hardware that  
generates the reset signals eSPI_PLTRST# and RESET_HOST. This is due to eSPI timing requirements, which limit  
the amount of time available between the assertion of the PLTRST# Virtual Wire and the resetting of Peripheral Channel  
registers. The register PLTRST Source Register is used to select between the Virtual Wire and a pin as the source for  
eSPI_PLTRST#.  
If firmware re-assigns the index for MSVW01 to 0h (i.e, invalidating the entry), firmware can assign a different MSVWxx  
register to Virtual Wire index 03h. In that case, firmware can assert PLTRST# by writing bit 1 of MSVW01, since the  
PLTRST# signal will still be connected to that register bit.  
In order to maintain synchronization with the core logic in Deep S5 power states, the Boot ROM updates the SRC bits  
in two of the Master-to-Slave Virtual Wire registers on power on reset. Source for the copies is maintained in the VWire  
Backup Register in the VBAT Register Bank. Customer software is responsible for maintaining the backup register prop-  
erly. The two Master-to-Slave Virtual Wire registers that are restored from the battery-backed register are MSVW00,  
which contains the signals SLP_S3#, SLP_S4# and SLP_S5#, associated with VWire index 2h, and MSVW04, which  
contains the signals SLP_LAN# and SLP_WLAN#, associated with the VWire index 42h.  
Because the three registers described in this section are manipulated by either hardware or Boot ROM firmware, cus-  
tomer software should not modify the INDEX field in these registers.  
DS00002206H-page 242  
2016-2020 Microchip Technology Inc.  
MEC170x  
10.10.2 RESERVED SLAVE-TO-MASTER VIRTUAL WIRES  
The Slave-to-Master Virtual Wire Register SMVW02 is hard wired to internally generated signals. Reset CPU INIT#  
(RCIN#) (Index 6h, bit 2), SMI# (Index 6h, bit 1) and SCI# (Index 6h, bit 0) are connected to the hardware blocks that  
generate the corresponding signals (the 8042 Emulation block, The Mailbox block and the ACPI PM1 block respec-  
tively). Firmware should not update the SRC bits for SMVW02 directly. If firmware control of the bits in Slave-to-Master  
Index 06h is required, then the INDEX field of SMVW02 should be set to 0h (disabling the register) and a different  
SMVWxx register should be configured for index 06h.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 243  
MEC170x  
11.0 CHIP CONFIGURATION  
11.1 Introduction  
This chapter defines the mechanism to configure the device. Each logical device or block in the design has their own  
set of configuration registers. The Global Configuration Registers are use for chip-level configuration. The chip’s Device  
ID and Revision are located in the Global Configuration space and may be used to uniquely identify this chip.  
11.2 Terminology  
This section documents terms used locally in this chapter. Common terminology that is used in the chip specification is  
captured in the Chip-Level Terminology section.  
TABLE 11-1: TERMINOLOGY  
Term  
Definition  
Global Configuration Registers  
Registers used to configure the chip that are always accessible via  
the Configuration Port  
Logical Device Configuration Registers  
Registers used to configure a logical device in the chip. These  
registers are only accessible via the Configuration Port when  
enabled via the Global Configuration registers.  
11.3 Interface  
This block is designed to be accessed via the Host accessible Configuration Port.  
FIGURE 11-1:  
BLOCK DIAGRAM OF CONFIGURATION PORT  
Chip-Level  
Global Configuration Registers  
00h-2Fh  
Configuration Port  
Logical Device Configuration  
Registers  
30h-FFh  
Note:  
Each logical device has a bank of Configuration registers that are accessible at offsets 30h to FFh via the  
Configuration Port. The Logical Device number programmed in offset 07h determines which bank of con-  
figuration registers is currently accessible.  
DS00002206H-page 244  
2016-2020 Microchip Technology Inc.  
MEC170x  
11.3.1  
HOST INTERFACE  
The registers defined for the Chip Configuration are accessible by the Configuration Port when the device is in CONFIG  
MODE. For a description of the Configuration Port and CONFIG MODE see the description of the LPC Interface.  
11.4 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset input parameters to this block.  
11.4.1  
POWER DOMAINS  
TABLE 11-2: POWER SOURCES  
Name  
Description  
VTR  
The logic and registers implemented in this block reside on this single  
power well.  
11.4.2  
CLOCK INPUTS  
This block does not require any special clock inputs.  
11.4.3  
RESETS  
TABLE 11-3: RESET SIGNALS  
Name  
Description  
RESET_SYS  
Power on Reset to the entire device. This signal resets all the register and  
logic in this block to its default state.  
RESET_HOST  
RESET_eSPI  
A reset that occurs when VCC is turned off or when the system host  
resets the Host Interface.  
For systems with eSPI, a general reset signal for the eSPI block.  
11.5 Interrupts  
This block does not generate any interrupts.  
11.6 Low Power Modes  
This block always automatically adjusts to operate in the lowest power mode.  
11.7 Description  
The Chip Configuration Registers are divided into two groups: Global Configuration Registers and Logical Device Con-  
figuration registers. The following descriptions assume that the LPC interface has already been configured to operate  
in CONFIG MODE.  
• Global Configuration Registers are always accessible via the LPC Configuration Port.  
• The Logical Device Configuration registers are only accessible via the LPC Configuration Port when the corre-  
sponding Logical Device Number is loaded in the Logical Device Number register. The Logical Device Number  
register is a Global Configuration Register.  
11.7.1  
CONFIGURATION PORT  
The eSPI Host can access the Chip’s Configuration Registers through the Configuration Port when CONFIG MODE is  
enabled. The device defaults to CONFIG MODE being disabled.  
Note:  
The data read from the Configuration Port Data register is undefined when CONFIG MODE is not enabled.  
The Configuration Port is composed of an INDEX and DATA Register. The INDEX register is used as an address pointer  
to an 8-bit configuration register and the DATA register is used to read or write the data value from the indexed config-  
uration register. Once CONFIG MODE is enabled, reading the Configuration Port Data register will return the data value  
that is in the indexed Configuration Register.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 245  
MEC170x  
If no value was written to the INDEX register, reading the Data Register in the Configuration Port will return the value in  
Configuration Address location 00h (default).  
TABLE 11-4:  
CONFIGURATION PORT  
Default I/O  
Address  
Default  
Value  
Type  
Register Name  
Relative Address  
Notes  
002Eh  
002Fh  
Read / Write  
Read / Write  
INDEX  
DATA  
Configuration Port’s Base Address + 0  
Configuration Port’s Base Address + 1  
00h  
00h  
Note 1  
Note 1: The default Base I/O Address of the Configuration Port can be relocated by programming the BAR register  
for Logical Device Ch (eSPI, I/O Configuration Port). The Relative Address shows the general case for  
determining the I/O address for each register.  
11.7.2  
ENABLE CONFIG MODE  
The INDEX and DATA registers are effective only when the chip is in CONFIG MODE. CONFIG MODE is enabled when  
the Config Entry Key is successfully written to the I/O address of the INDEX register of the CONFIG PORT while the  
CONFIG MODE is disabled (see following section).  
Config Entry Key = < 55h>  
11.7.3  
DISABLE CONFIG MODE  
CONFIG MODE defaults to disabled on a RESET_SYS, RESET_HOST, and, for systems using eSPI, when  
RESET_HOST is asserted. CONFIG MODE is also disabled when the following Config Exit Key is successfully written  
to the I/O address of the INDEX PORT of the CONFIG PORT while CONFIG MODE is enabled.  
Config Exit Key = < AAh>  
11.7.4  
CONFIGURATION SEQUENCE EXAMPLE  
To program the configuration registers, the following sequence must be followed:  
1. Enable Configuration State  
2. Program the Configuration Registers  
3. Disable Configuration State.  
The following is an example of a configuration program in Intel 8086 assembly language.  
;----------------------------.  
; ENABLE CONFIGURATION STATE  
;----------------------------'  
MOV  
MOV  
OUT  
DX,CONFIG_PORT_BASE_ADDRESS  
AX,055H; Config Entry Key  
DX,AL  
;----------------------------.  
; CONFIGURE BASE ADDRESS,  
; LOGICAL DEVICE 8  
|
|
;----------------------------'  
MOV  
MOV  
OUT  
MOV  
MOV  
DX,CONFIG_PORT_BASE_ADDRESS  
AL,07H  
DX,AL; Point to LD# Config Reg  
DX,CONFIG_PORT_BASE_ADDRESS+1  
AL, 08H  
OUT DX,AL; Point to Logical Device 8  
;
MOV  
MOV  
OUT  
MOV  
MOV  
OUT  
DX,CONFIG_PORT_BASE_ADDRESS  
AL,34H  
DX,AL  
; Point to BASE ADDRESS REGISTER  
DX,CONFIG_PORT_BASE_ADDRESS+1  
AL,02H  
DX,AL  
; Update BASE ADDRESS REGISTER  
DS00002206H-page 246  
2016-2020 Microchip Technology Inc.  
MEC170x  
;-----------------------------.  
; DISABLE CONFIGURATION STATE  
;-----------------------------'  
MOV  
MOV  
OUT  
DX,CONFIG_PORT_BASE_ADDRESS  
AX,0AAH; Config Exit Key  
DX,AL.  
11.7.5  
GLOBAL CONFIGURATION  
There are 48 8-bit Global Configuration Registers (at offsets 00h through 2Fh), plus up to 208 8-bit registers associated  
with each Logical Device. The Logical Device is selected with the Logical Device Number Register (Global Configuration  
Register 07h).  
Sequence to Access Logical Device Configuration Register:  
a) Write the number of the Logical Device being accessed in the Logical Device Number Configuration Register by  
writing 07h into the INDEX PORT and the Logical Device Number into the DATA PORT.  
b) Write the address of the desired logical device configuration register to the INDEX PORT and then write or read  
the value of the configuration register through the DATA PORT.  
Note:  
If accessing the Global Configuration Registers, step (a) is not required.  
Any write to an undefined or reserved Configuration register is terminated normally on the LPC bus with-  
out any modification of state in the MEC170x. Any read to an undefined or reserved Configuration reg-  
ister returns FFh  
The following sections define the Global Configuration registers and the Logical Configuration registers.  
11.7.6  
GLOBAL CONTROL/CONFIGURATION REGISTERS  
As with all Configuration Registers, the INDEX PORT is used to select a Global Configuration Register in the chip. The  
DATA PORT is then used to access the selected register. The INDEX and DATA PORTs are defined in the LPC Interface  
description.  
11.8 Configuration Registers  
Host access to Global Configuration Registers is through the Configuration Port (the INDEX PORT and the DATA  
PORT) using the Logical Device Number 3Fh and the Index shown in the “Offset” column of the following table. The EC  
can access Configuration Registers directly. The EC address for each register is formed by adding the Base Address  
for Global Configuration block shown in the Block Overview and Base Address Table in Section 3.0, "Device Inventory"  
to the offset shown in the “Offset” column.  
All Global Configuration registers are accessible to the Host through the Configuration Port for all Logical Devices. at  
offsets 00h through 2Fh.  
TABLE 11-5: CHIP-LEVEL (GLOBAL) CONTROL/CONFIGURATION REGISTERS  
Register  
Host Offset  
Chip (Global) Control Registers  
Description  
Reserved  
TEST  
00h - 01h  
02h  
Reserved - Writes are ignored, reads return 0.  
TEST.  
This register location is reserved for Microchip use. Modifying  
this location may cause unwanted results.  
Reserved  
03h - 06h  
07h  
Reserved - Writes are ignored, reads return 0.  
Logical Device Number  
A write to this register selects the current logical device. This  
allows access to the control and configuration registers for each  
logical device.  
Note:  
The Activate command operates only on the  
selected logical device.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 247  
MEC170x  
TABLE 11-5: CHIP-LEVEL (GLOBAL) CONTROL/CONFIGURATION REGISTERS (CONTINUED)  
Register  
Host Offset  
Description  
Reserved  
Device ID  
08h - 1Fh  
20h  
Reserved - Writes are ignored, reads return 0.  
A read-only register which provides device identification.  
A read-only register which provides device revision information.  
Device Revision  
21h  
Bits[7:0] = current revision when read  
TEST  
22h - 23h  
TEST.  
This register locations are reserved for Microchip use. Modify-  
ing these locations may cause unwanted results.  
Reserved  
TEST  
24h  
Reserved – writes are ignored, reads return “0”.  
25h - 2Fh  
TEST.  
This register locations are reserved for Microchip use. Modify-  
ing these locations may cause unwanted results.  
Note:  
Device ID values are in Table 1-1, "MEC170x Feature List by Package", row 2.  
Device ID for Device Revision values are in Table 11-5. Refer to errata sheet for the Device Revision value.  
DS00002206H-page 248  
2016-2020 Microchip Technology Inc.  
MEC170x  
12.0 8042 EMULATED KEYBOARD CONTROLLER  
12.1 Introduction  
The MEC170x keyboard controller uses the EC to produce a superset of the features provided by the industry-standard  
8042 keyboard controller. The 8042 Emulated Keyboard Controller is a Host/EC Message Interface with hardware  
assists to emulate 8042 behavior and provide Legacy GATEA20 support.  
Note:  
There is no VCC emulation in hardware for this interface.  
12.2 References  
There are no references for this block.  
12.3 Interface  
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.  
FIGURE 12-1:  
I/O DIAGRAM OF BLOCK  
8042 Emulated Keyboard Controller  
Host Interface  
Signal Description  
Clock Inputs  
Resets  
Interrupts  
12.4 Signal Description  
TABLE 12-1: SIGNAL DESCRIPTION TABLE  
Name  
Direction  
Description  
Keyboard Reset, routed to pin  
KBRST  
Output  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 249  
MEC170x  
12.5 Host Interface  
The 8042 interface is accessed by host software via a registered interface, as defined in Section 12.13, "Configuration  
Registers" and Section 12.14, "Runtime Registers".  
12.6 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
12.6.1  
POWER DOMAINS  
TABLE 12-2: POWER SOURCES  
Name  
Description  
VTR  
This Power Well is used to power the registers and logic in this block.  
12.6.2  
CLOCK INPUTS  
TABLE 12-3: CLOCK INPUTS  
Name  
Description  
1MHz  
Clock used for the counter in the CPU_RESET circuitry.  
12.6.3  
RESETS  
TABLE 12-4: RESET SIGNALS  
Name  
Description  
RESET_SYS  
RESET_VCC  
This reset is asserted when VTR is applied.  
This signal is asserted when the main power rail is off or held off by the  
PWR_INV bit in the Power Reset Control Register.  
RESET_HOST  
This signal is asserted when the main power rail is off or held off by the  
PWR_INV bit in the Power Reset Control Register, and also when the  
Host resets the Host-EC link via LRESET# or PLTRST#.  
12.7 Interrupts  
This section defines the Interrupt Sources generated from this block.  
TABLE 12-5: SYSTEM INTERRUPTS  
Source  
Description  
KIRQ  
MIRQ  
This interrupt source for the SIRQ logic, representing a Keyboard inter-  
rupt, is generated when the PCOBF status bit is ‘1’.  
This interrupt source for the SIRQ logic, representing a Mouse interrupt,  
is generated when the AUXOBF status bit is ‘1’.  
DS00002206H-page 250  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 12-6: EC INTERRUPTS  
Source  
Description  
IBF  
Interrupt generated by the host writing either data or command to the  
data register. This interrupt is asserted when the input buffer becomes  
not empty (i.e., when the IBF flag goes to 1).  
OBE  
Interrupt generated by the host reading either data or aux data from the  
data register. This interrupt is asserted when the output buffer becomes  
empty (i.e., when the OBF flag goes to 0).  
12.8 Low Power Modes  
The 8042 Interface may be put into a low power state by the chip’s Power, Clocks, and Reset (PCR) circuitry.  
12.9 Description  
12.9.1  
BLOCK DIAGRAM  
FIGURE 12-2:  
BLOCK DIAGRAM OF 8042 Emulated Keyboard Controller  
Host  
Access  
EC  
Access  
HOST_EC Data register  
LPC I/O Index =00  
Write Data  
R
D7  
D6  
D5  
D4  
D3  
D2  
D1  
D0  
W
Offset =100h  
Read Data or CMD  
LPC I/O Index =04  
Write CMD  
EC_HOST Data Register  
W
R
Offset =100h  
Write Data  
LPC I/O Index =00  
D7  
D6  
D5  
D4  
D3  
D2  
D1  
D0  
Read Data or AUX Data  
Offset =10Ch  
Write Aux Data  
Status Register  
R
R
D7  
UD  
D6  
UD  
D5  
AUXOBF  
D4  
UD  
D3  
C/D  
D2  
D1  
D0  
/
UD  
UD1  
IBF2  
OBF3  
W
LPC I/O read index=04h  
Offset104h  
AUXH = 1 Bit [5] is AUXOBF  
AUXH = 0 Bit [5] is UD  
2 IBF SET on Host Write to LPC I/O  
Keyboard Control Register  
R
W
D7  
AUXH  
D6  
UD  
D5  
OBFEN  
D4  
UD  
D3  
UD  
D2  
D1  
SAEN  
D0  
UD  
Index =00h or 04h  
IBF Cleared on EC Read to Offset=  
00h  
PCOBFEN  
Offset 108h  
PCOBF Register  
3 OBF SET on EC Write to  
R
Offset = 100h or 10Ch  
OBF Cleared by Read0f  
LPC I/O Index00h  
D7  
RES  
D6  
RES  
D5  
RES  
D4  
RES  
D3  
RES  
D2  
RES  
D1  
RES  
D0  
PCOBF 4  
W
Offset 114h  
1 This bit is reset by  
LPCRESET and VTR_POR  
4 PCOBFEN = 1 PCOBF is contents of Bit0, offset = 114h  
PCOBFEN = 0 PCBOBF is set on EC Write of offset= 100 h  
PCOBF is cleared on Host Read of LPC /IO index = 00h  
12.10 EC-to-Host Keyboard Communication  
The EC can write to the EC_HOST Data / AUX Data Register by writing to the HOST2EC Data Register at EC-Only  
offset 0h or the EC AUX Data Register at EC-Only offset Ch. A write to either of these addresses automatically sets bit  
0 (OBF) in the Status register. A write to the HOST2EC Data Register may also set PCOBF. A write to the EC AUX Data  
Register may also set AUXOBF.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 251  
MEC170x  
12.10.1 PCOBF DESCRIPTION  
If enabled by the bit OBFEN, the bit PCOBF is gated onto KIRQ. The KIRQ signal is a system interrupt which signifies  
that the EC has written to the HOST2EC Data Register (EC-Only offset 0h). On power-up, PCOBF is reset to 0. PCOBF  
will normally reflect the status of writes to HOST2EC register, if PCOBFEN is “0”. PCOBF is cleared by hardware on a  
HOST read of the EC_HOST Data / AUX Data Register.  
KIRQ is normally selected as IRQ1 for keyboard support.  
Additional flexibility has been added which allows firmware to directly control the PCOBF output signal, independent of  
data transfers to the host-interface data output register. This feature allows the MEC170x to be operated via the host  
“polled” mode. Firmware control is active when PCOBFEN is ‘1’. Firmware sets PCOBF high by writing a “1” to the  
PCOBF field of the PCOBF Register. Firmware must also clear PCOBF by writing a “0” to the PCOBF field.  
The PCOBF register is also readable; the value read back on bit 0 of the register always reflects the present value of  
the PCOBF output. If PCOBFEN = 1, then this value reflects the output of the firmware latch in the PCOBF Register. If  
PCOBFEN = 0, then the value read back reflects the in-process status of write cycles to the HOST2EC Data Register  
(i.e., if the value read back is high, the host interface output data register has just been written to). If OBFEN=0, then  
KIRQ is driven inactive (low).  
12.10.2 AUXOBF DESCRIPTION  
If enabled by the bit OBFEN, the bit AUXOBF is multiplexed onto MIRQ. The AUXOBF/MIRQ signal is a system interrupt  
which signifies that the EC has written to the EC_HOST Data / AUX Data Register. On power-up, after RESET_SYS,  
AUXOBF is reset to 0. AUXOBF will normally reflects the status of writes to EC EC AUX Data Register (EC-Only offset  
Ch). AUXOBF is cleared by hardware on a read of the Host Data Register. If OBFEN=0, then MIRQ is driven inactive  
(low).  
MIRQ is normally selected as IRQ12 for mouse support.  
Firmware can also directly control the AUXOBF output signal, similar to the mechanism it can use to control PCOBF.  
Firmware control is active when AUXH is ‘0’. Firmware sets AUXOBF high by writing a “1” to the AUXOBF field of the  
EC Keyboard Status Register. Firmware must also clear AUXOBF by writing a “0” to the AUXOBF field.  
TABLE 12-7: OBFEN AND PCOBFEN EFFECTS ON KIRQ  
OBFEN  
PCOBFEN  
0
1
1
X
0
1
KIRQ is inactive and driven low  
KIRQ = PCOBF (status of writes to HOST2EC Data Register)  
KIRQ = PCOBF (status of writes to PCOBF Register)  
TABLE 12-8: OBFEN AND AUXH EFFECTS ON MIRQ  
OBFEN  
AUXH  
0
1
1
X
0
1
MIRQ is inactive and driven low  
MIRQ = AUXOBF (status of writes to EC AUX Data Register)  
MIRQ = AUXOBF (status of writes to AUXOBF in EC Keyboard Status Register)  
12.11 Legacy Port92/GATEA20 Support  
The MEC170x supports LPC I/O writes to port HOST I/O address 92h as a quick alternate mechanism for generating a  
CPU_RESET pulse or controlling the state of GATEA20. The Port92/GateA20 logic has a separate Logical Device Num-  
ber and Base Address register (see Section 12.16, "Legacy Port92/GATEA20 Configuration Registers" and Section  
12.17, "Legacy Port92/GATEA20 Runtime Registers". The Base Address Register for the Port92/GateA20 Logical  
Device has only one writable bit, the Valid Bit, since the only I/O accessible Register has a fixed address.  
DS00002206H-page 252  
2016-2020 Microchip Technology Inc.  
MEC170x  
The Port 92 Register resides at HOST I/O address 92h and is used to support the alternate reset (ALT_RST#) and alter-  
nate GATEA20 (ALT_A20) functions. This register defaults to 00h on assertion of RESET_VCC.  
Setting the Port92 Enable bit (Port 92 Enable Register) enables the Port92h Register. When Port92 is disabled, by clear-  
ing the Port92 Enable bit, then access to this register is completely disabled (I/O writes to host 92h are ignored and I/O  
reads float the system data bus SD[7:0]).  
12.11.1 GATE A20 SPEEDUP  
The MEC170x contains on-chip logic support for the GATEA20 hardware speed-up feature. GATEA20 is part of the con-  
trol required to mask address line A20 to emulate 8086 addressing.  
In addition to the ability for the host to control the GATEA20 output signal directly, a configuration bit called SAEN in the  
Keyboard Control Register is provided; when set, SAEN allows firmware to control the GATEA20 output. When SAEN  
is set, a 1 bit register (GATEA20 Control Register) controls the GATEA20 output.  
Host control and firmware control of GATEA20 affect two separate register elements. Read back of GATEA20 through  
the use of EC OFFSET 100h reflects the present state of the GATEA20 output signal: if SAEN is set, the value read  
back corresponds to the last firmware-initiated control of GATEA20; if SAEN is reset, the value read back corresponds  
to the last host-initiated control of GATEA20.  
Host control of the GATEA20 output is provided by the hardware interpretation of the “GATEA20 sequence” (see  
Table 12-9, "GATEA20 Command/Data Sequence Examples"). The foregoing description assumes that the SAEN con-  
figuration bit is reset.  
When the MEC170x receives a “D1” command followed by data (via the host interface), the on-chip hardware copies  
the value of data bit 1 in the received data field to the GATEA20 host latch. At no time during this host-interface trans-  
action will PCOBF or the IBF flag (bit 1) in the EC Keyboard Status Register be activated; for example, this host control  
of GATEA20 is transparent to firmware, with no consequent degradation of overall system performance. Table 12-9  
details the possible GATEA20 sequences and the MEC170x responses.  
An additional level of control flexibility is offered via a memory-mapped synchronous set and reset capability. Any data  
written to the SETGA20L Register causes the GATEA20 host latch to be set; any data written to the RSTGA20L Register  
causes it to be reset. This control mechanism should be used with caution. It was added to augment the “normal” control  
flow as described above, not to replace it. Since the host and the firmware have asynchronous control capability of the  
host latch via this mechanism, a potential conflict could arise. Therefore, after using the SETGA20L and RSTGA20L  
registers, firmware should read back the GATEA20 status via the GATEA20 Control Register (with SAEN = 0) to confirm  
the actual GATEA20 response.  
TABLE 12-9: GATEA20 COMMAND/DATA SEQUENCE EXAMPLES  
Data  
R/W  
D[0:7]  
IBF Flag  
GATEA20  
Comments  
Byte  
1
0
1
W
W
W
D1  
DF  
FF  
0
0
0
Q
1
1
GATEA20 Turn-on Sequence  
1
0
1
W
W
W
D1  
DD  
FF  
0
0
0
Q
0
0
GATEA20 Turn-off Sequence  
GATEA20 Turn-on Sequence(*)  
1
1
0
1
W
W
W
W
D1  
D1  
DF  
FF  
0
0
0
0
Q
Q
1
1
1
1
0
1
W
W
W
W
D1  
D1  
DD  
FF  
0
0
0
0
Q
Q
0
GATEA20 Turn-off Sequence(*)  
0
2016-2020 Microchip Technology Inc.  
DS00002206H-page 253  
MEC170x  
TABLE 12-9: GATEA20 COMMAND/DATA SEQUENCE EXAMPLES (CONTINUED)  
Data  
Byte  
R/W  
D[0:7]  
IBF Flag  
GATEA20  
Comments  
Invalid Sequence  
1
1
1
W
W
W
D1  
XX**  
FF  
0
1
1
Q
Q
Q
Note:  
The following notes apply:  
- All examples assume that the SAEN configuration bit is 0.  
- “Q” indicates the bit remains set at the previous state.  
- *Not a standard sequence.  
- **XX = Anything except D1.  
- If multiple data bytes, set IBF and wait at state 0. Let the software know something unusual happened.  
- For data bytes, only D[1] is used; all other bits are don't care.  
- Host Commands (FF, FE, and D1) do not cause IBF. The method of blocking IBF in Figure 12-4 is the nIOW  
not being asserted when FF, FE, and D1 Host commands are written”.  
DS00002206H-page 254  
2016-2020 Microchip Technology Inc.  
MEC170x  
The hardware GATEA20 state machine returns to state S1 from state S2 when CMD = D1, as shown in the following  
figures:.  
FIGURE 12-3:  
GATEA20 STATE MACHINE  
CMD !=D1  
or  
DATA  
[IBF=1]  
RESET  
S0  
CMD = D1  
[IBF=0]  
CMD = FF  
[IBF=0]  
CMD !=D1  
or  
CMD !=FF or  
DATA  
[IBF=1]  
CMD!=D1  
[IBF=1]  
CMD = D1  
[IBF=0]  
CMD = D1  
[IBF=0]  
S2  
S1  
Data  
[IBF=0, Latch DIN  
Notes: GateA20 Changes When in S1 going to S2  
Clock = wrdinB  
CMD= [C/D=1]  
Data = [C/D=0]  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 255  
MEC170x  
FIGURE 12-4:  
GATEA20 IMPLEMENTATION DIAGRAM  
SET  
CLR  
SET  
CLR  
Q
Q
Q
Q
nIOW  
D
D
24MHz  
KRESET Gen  
nIOW  
SAEN  
64&AEN#  
nIOW  
SD[7:0] = D1  
Data  
SET  
CLR  
Q
Q
Address  
IOW#  
D
IBF  
SD[7:0] = FF  
SD[7:0] = FE  
AEN#&60  
CPU RESET  
ENAB P92  
Port 92 Reg (D1)  
SETGA20L Reg (Any WR)  
VCC  
SET  
CLR  
D
Q
Q
IOW#  
AEN#&64  
SET  
CLR  
D
Q
Q
GATEA20  
GATEA20 Reg WR (D0)  
SET  
CLR  
Q
Q
VCC  
D
IOW#  
GATEA 20 Reg RD (D0)  
AEN#&60  
RSTGA20L Reg (Any WR)  
12.11.2 CPU_RESET HARDWARE SPEED-UP  
The ALT_CPU_RESET bit generates, under program control, theALT_RST# signal, which provides an alternate, means  
to drive the MEC170x CPU_RESET pin which in turn is used to reset the Host CPU. The ALT_RST# signal is internally  
NANDed together with the KBDRESET# pulse from the KRESET Speed up logic to provide an alternate software means  
of resetting the host CPU.  
Before another ALT_RST# pulse can be generated, ALT_CPU_RESET must be cleared to ‘0’ either by an RESET_VCC  
or by a write to the Port 92 Register with bit 0 = ‘0’. An ALT_RST# pulse is not generated in the event that the  
ALT_CPU_RESET bit is cleared and set before the prior ALT_RESET# pulse has completed.  
If the 8042EM Sleep Enable is asserted, or the 8042 EM ACTIVATE bit is de-asserted, the 1MHz clocks source is dis-  
abled.  
DS00002206H-page 256  
2016-2020 Microchip Technology Inc.  
MEC170x  
FIGURE 12-5:  
CPU_RESET IMPLEMENTATION DIAGRAM  
6 s  
14 s  
Pulse  
Generator  
KRESET  
FE Command  
(From KRESET  
Speed-up Logic)  
SAEN  
CPU_RESET  
ENAB P92  
Pulse  
Generator  
ALT_RST#  
Port 92 Reg (D0)  
14 s  
6 s  
12.12 Instance Description  
There are two blocks defined in this chapter: Emulated 8042 Interface and the Port 92-Legacy Interface. The MEC170x  
has one instance of each block.  
12.13 Configuration Registers  
Configuration Registers for an instance of the 8042 Emulated Keyboard Controller are listed in the following table. Host  
access to Configuration Registers is through the Configuration Port using the Logical Device Number of the 8042 Emu-  
lated Keyboard Controller instance and the Index shown in the “Host Index” column of the table. The EC can access  
Configuration Registers directly. The EC address for each register is formed by adding the Base Address for each  
instance of the 8042 Emulated Keyboard Controller shown in the Block Overview and Base Address Table in Section  
3.0, "Device Inventory" to the offset shown in the “EC Offset” column.  
TABLE 12-10: CONFIGURATION REGISTER SUMMARY  
EC Offset  
Host Index  
Register Name  
330h  
30h  
Activate Register  
12.13.1 ACTIVATE REGISTER  
30h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:1 Reserved  
ACTIVATE  
R
-
-
0
R/W  
0b  
RESET  
_VCC  
1=The 8042 Interface is powered and functional.  
0=The 8042 Interface is powered down and inactive.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 257  
MEC170x  
12.14 Runtime Registers  
The registers listed in the Runtime Register Summary table are for a single instance of the 8042 Emulated Keyboard  
Controller. Host access for each register listed in this table is defined as an offset in the Host address space to the  
Block’s Base Address, as defined by the instance’s Base Address Register.  
The EC address for each register is formed by adding the Base Address for the 8042 Emulated Keyboard Controller  
shown in the Block Overview and Base Address Table in Section 3.0, "Device Inventory" to the offset shown in the “Off-  
set” column.  
TABLE 12-11: RUNTIME REGISTER SUMMARY  
Offset  
Register Name  
HOST_EC Data / CMD Register  
0h/04h  
0h  
EC_HOST Data / AUX Data Register  
Keyboard Status Read Register  
4h  
12.14.1 HOST_EC DATA / CMD REGISTER  
0h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 WRITE_DATA  
W
0h  
RESET  
_SYS  
This 8-bit register is write-only. When written, the C/D bit in the  
Keyboard Status Read Register is cleared to ‘0’, signifying data,  
and the IBF in the same register is set to ‘1’.  
When the Runtime Register at offset 0h is read by the Host, it func-  
tions as the EC_HOST Data / AUX Data Register.  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 WRITE_CMD  
W
0h  
RESET  
_SYS  
.This 8-bit register is write-only and is an alias of the register at off-  
set 0h. When written, the C/D bit in the Keyboard Status Read  
Register is set to ‘1’, signifying a command, and the IBF in the  
same register is set to ‘1’.  
When the Runtime Register at offset 4h is read by the Host, it func-  
tions as the Keyboard Status Read Register.  
DS00002206H-page 258  
2016-2020 Microchip Technology Inc.  
MEC170x  
12.14.2 EC_HOST DATA / AUX DATA REGISTER  
0h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
7:0 READ_DATA  
R
0h  
RESET  
_SYS  
This 8-bit register is read-only. When read by the Host, the PCOBF  
and/or AUXOBF interrupts are cleared and the OBF flag in the sta-  
tus register is cleared.  
12.14.3 KEYBOARD STATUS READ REGISTER  
This register is a read-only alias of the EC Keyboard Status Register.  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:6 UD2  
R
0h  
RESET_S  
YS  
User-defined data. Readable and writable by the EC when written  
by the EC at its EC-only alias.  
5 AUXOBF  
R
0h  
RESET_S  
YS  
Auxiliary Output Buffer Full. This bit is set to “1” whenever the EC  
writes the EC AUX Data Register. This flag is reset to “0” whenever  
the EC writes the EC Data Register.  
4 UD1  
R
R
0h  
0h  
RESET_S  
YS  
User-defined data. Readable and writable by the EC when written  
by the EC at its EC-only alias.  
3 C/D  
RESET_S  
YS  
Command Data. This bit specifies whether the input data register  
contains data or a command (“0” = data, “1” = command). During a  
Host command write operation (when the Host writes the  
HOST_EC Data / CMD Register at offset 04h), this bit is set to “1”.  
During a Host data write operation (when the Host writes the  
HOST_EC Data / CMD Register at offset 0h), this bit is set to “0”.  
2 UD0  
R
R
0h  
0h  
RESET_  
HOST  
User-defined data. Readable and writable by the EC when written  
by the EC at its EC-only alias.  
1 IBF  
RESET_S  
YS  
Input Buffer Full. This bit is set to “1” whenever the Host writes data  
or a command into the HOST_EC Data / CMD Registerr. When this  
bit is set, the EC's IBF interrupt is asserted, if enabled. When the  
EC reads the HOST_EC Data/CMD Register, this bit is automati-  
cally reset and the interrupt is cleared.  
This bit is not reset on RESET_VCC. To clear this bit, firmware  
must read the HOST2EC Data Register in the EC-Only address  
space.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 259  
MEC170x  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
0 OBF  
R
0h  
RESET_S  
YS  
Output Buffer Full. This bit is set when the EC writes a byte of Data  
or AUX Data into the EC_HOST Data / AUX Data Register. When  
the Host reads the HOST_EC Data / CMD Register, this bit is auto-  
matically cleared by hardware and an OBE interrupt is generated.  
This bit is not reset on RESET_VCC. To clear this bit, firmware  
must read the HOST2EC Data Register in the EC-Only address  
space.  
12.15 EC 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 each instance of the 8042 Emulated Keyboard Controller Block in the Block Overview  
and Base Address Table in Section 3.0, "Device Inventory".  
TABLE 12-12: EC-ONLY REGISTER SUMMARY  
Offset  
Register Name  
100h  
100h  
104h  
108h  
10Ch  
114h  
HOST2EC Data Register  
EC Data Register  
EC Keyboard Status Register  
Keyboard Control Register  
EC AUX Data Register  
PCOBF Register  
12.15.1 HOST2EC DATA REGISTER  
100h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 HOST2EC_DATA  
R
0h  
RESET  
_SYS  
This register is an alias of the HOST_EC Data / CMD Register.  
When read at the EC-Only offset of 0h, it returns the data written by  
the Host to either Runtime Register offset 0h or Runtime Register  
offset 04h.  
12.15.2 EC DATA REGISTER  
100h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 EC_DATA  
W
0h  
RESET  
_SYS  
DS00002206H-page 260  
2016-2020 Microchip Technology Inc.  
MEC170x  
12.15.3 EC KEYBOARD STATUS REGISTER  
This register is an alias of the Keyboard Status Read Register. The fields C/D, IBF, and OBF remain read-only.  
104h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:6 UD2  
R/W  
0h  
RESET_  
SYS  
User-defined data. Readable and writable by the EC.  
5
AUXOBF  
R/W  
0h  
RESET_  
SYS  
Auxiliary Output Buffer Full. This bit is set to ‘1’ whenever the EC  
writes the EC AUX Data Register. This flag is reset to ‘0’ when-  
ever the EC writes the EC Data Register.  
4
3
UD1  
R/W  
R
0h  
0h  
RESET_  
SYS  
User-defined data. Readable and writable by the EC when written  
by the EC at its EC-only alias.  
C/D  
RESET_  
SYS  
Command Data. This bit specifies whether the input data register  
contains data or a command. During a Host command write oper-  
ation (when the Host writes the HOST_EC Data / CMD Register at  
offset 04h), this bit is set to ‘1’. During a Host data write operation  
(when the Host writes the HOST_EC Data / CMD Register at off-  
set 0h), this bit is set to ‘0’.  
1=Command  
0=Data  
2
1
UD0  
R/W  
R
0h  
0h  
RESET_  
HOST  
User-defined data. Readable and writable by the EC when written  
by the EC at its EC-only alias.  
IBF  
RESET_  
SYS  
Input Buffer Full. This bit is set to “1” whenever the Host writes data  
or a command into the HOST_EC Data / CMD Registerr. When this  
bit is set, the EC's IBF interrupt is asserted, if enabled. When the  
EC reads the Data/CMD Register, this bit is automatically reset and  
the interrupt is cleared.  
This bit is not reset on RESET_VCC. To clear this bit, firmware  
must read the HOST2EC Data Register in the EC-Only address  
space.  
0
OBF  
R
0h  
RESET_  
SYS  
Output Buffer Full. This bit is set when the EC writes a byte of Data  
or AUX Data into the EC_HOST Data / AUX Data Register. When  
the Host reads the HOST_EC Data / CMD Register, this bit is auto-  
matically cleared by hardware and a OBE interrupt is generated.  
This bit is not reset on RESET_VCC. To clear this bit, firmware  
must read the HOST2EC Data Register in the EC-Only address  
space.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 261  
MEC170x  
12.15.4 KEYBOARD CONTROL REGISTER  
108h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7
AUXH  
R/W  
0h  
RESET  
_SYS  
AUX in Hardware.  
1=AUXOBF of the Keyboard Status Read Register is set in hard-  
ware by a write to the EC AUX Data Register  
0=AUXOBF is not modified in hardware, but can be read and written  
by the EC using the EC-Only alias of the EC Keyboard Status  
Register  
6
5
UD5  
R/W  
R/W  
0h  
0h  
RESET  
_SYS  
User-defined data. Readable and writable by the EC when written  
by the EC at its EC-only alias.  
OBFEN  
RESET  
_SYS  
When this bit is ‘1’, the system interrupt signal KIRQ is driven by the  
bit PCOBF and MIRQ is driven by AUXOBF. When this bit is ‘0’,  
KIRQ and MIRQ are driven low.  
This bit must not be changed when OBF of the status register is  
equal to ‘1’.  
4:3 UD4  
User-defined data. Readable and writable by the EC when written  
R/W  
R/W  
0h  
0h  
RESET  
_SYS  
by the EC at its EC-only alias.  
2
PCOBFEN  
RESET  
_SYS  
1=reflects the value written to the PCOBF Register  
0=PCOBF reflects the status of writes to the EC Data Register  
1
SAEN  
R/W  
R/W  
0h  
0h  
RESET  
_SYS  
Software-assist enable.  
1=This bit allows control of the GATEA20 signal via firmware  
0=GATEA20 corresponds to either the last Host-initiated control of  
GATEA20 or the firmware write to the Keyboard Control Regis-  
ter or the EC AUX Data Register.  
0
UD3  
RESET  
_SYS  
User-defined data. Readable and writable by the EC when written  
by the EC at its EC-only alias.  
DS00002206H-page 262  
2016-2020 Microchip Technology Inc.  
MEC170x  
12.15.5 EC AUX DATA REGISTER  
10Ch  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
7:0 EC_AUX_DATA  
W
0h  
RESET  
_SYS  
This 8-bit register is write-only. When written, the C/D in the Key-  
board Status Read Register is cleared to ‘0’, signifying data, and  
the IBF in the same register is set to ‘1’.  
When the Runtime Register at offset 0h is read by the Host, it func-  
tions as the EC_HOST Data / AUX Data Register.  
12.15.6 PCOBF REGISTER  
114h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:1 Reserved  
PCOBF  
R
-
-
0
R/W  
0h  
RESET  
_SYS  
For a description of this bit, see Section 12.10.1, "PCOBF Descrip-  
tion".  
12.16 Legacy Port92/GATEA20 Configuration Registers  
Configuration Registers for an instance of the Port92-Legacy block are listed in the following table. Host access to Con-  
figuration Registers is through the Configuration Port using the Logical Device Number of the Port 92 instance and the  
Index shown in the “Host Index” column of the table. The EC can access Configuration Registers directly. The EC  
address for each register is formed by adding the Base Address for each instance of the Port 92 block shown in the  
Block Overview and Base Address Table in Section 3.0, "Device Inventory" to the offset shown in the “EC Offset” col-  
umn.  
TABLE 12-13: CONFIGURATION REGISTER SUMMARY  
EC Offset  
Host Index  
Register Name  
330h  
30h  
Port 92 Enable Register  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 263  
MEC170x  
12.16.1 PORT 92 ENABLE REGISTER  
30h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:1 Reserved  
P92_EN  
R
-
-
0
R/W  
0h  
RESET  
_VCC  
When this bit is ‘1’, the Port92h Register is enabled. When this bit  
is ‘0’, the Port92h Register is disabled, and Host writes to LPC  
address 92h are ignored.  
12.17 Legacy Port92/GATEA20 Runtime Registers  
The registers listed in the Runtime Register Summary table are for a single instance of the Legacy Port92/GATEA20  
logic. The addresses of each register listed in this table are defined as a relative offset to the host “Base Address”  
defined in the Runtime Register Base Address Table.  
TABLE 12-14: RUNTIME REGISTER BASE ADDRESS TABLE  
Block Instance  
Port92-Legacy  
Instance Number  
Host  
Address Space  
Base Address  
0
LPC  
EC  
I/O  
0092h  
32-bit address  
space  
400F_2000h  
The Base Address indicates where the first register can be accessed in a particular address space for a block instance.  
TABLE 12-15: RUNTIME REGISTER SUMMARY  
Offset  
Register Namer  
0h  
Port 92 Register  
DS00002206H-page 264  
2016-2020 Microchip Technology Inc.  
MEC170x  
12.17.1 PORT 92 REGISTER  
0h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
7:2 Reserved  
1 ALT_GATE_A20  
R
-
-
R/W  
0h  
RESET  
_HOST  
This bit provides an alternate means for system control of the  
GATEA20 pin. ALT_A20 low drives GATEA20 low, if A20 from the  
keyboard controller is also low. When Port 92 is enabled, writing a  
1 to this bit forces ALT_A20 high. ALT_A20 high drives GATEA20  
high regardless of the state of A20 from the keyboard controller.  
0=ALT_A20 is driven low  
1=ALT_A20 is driven high  
0
ALT_CPU_RESET  
R/W  
0h  
RESET  
_HOST  
12.18 EC 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 each instance of the Port92-Legacy Block in the Block Overview and Base Address  
Table in Section 3.0, "Device Inventory".  
TABLE 12-16: REGISTER SUMMARY  
Offset  
Register Name  
100h  
108h  
10Ch  
GATEA20 Control Register  
SETGA20L Register  
RSTGA20L Register  
12.18.1 GATEA20 CONTROL REGISTER  
100h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:1 Reserved  
GATEA20  
R
-
-
0
R/W  
1h  
RESET  
_HOST  
See Section 12.11.1, "GATE A20 Speedup" for information on this  
register.  
0=The GATEA20 output is driven low  
1=The GATEA20 output is driven high  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 265  
MEC170x  
12.18.2 SETGA20L REGISTER  
108h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 SETGA20L  
W
-
-
See Section 12.11.1, "GATE A20 Speedup" for information on this  
register. A write to this register sets GATEA20 in the GATEA20  
Control Register.  
12.18.3 RSTGA20L REGISTER  
10Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 RSTGA20L  
W
-
-
See Section 12.11.1, "GATE A20 Speedup" for information on this  
register. A write to this register sets GATEA20 in the GATEA20  
Control Register.  
DS00002206H-page 266  
2016-2020 Microchip Technology Inc.  
MEC170x  
13.0 ACPI EMBEDDED CONTROLLER INTERFACE (ACPI-ECI)  
13.1 Introduction  
The ACPI Embedded Controller Interface (ACPI-ECI) is a Host/EC Message Interface. The ACPI specification defines  
the standard hardware and software communications interface between the OS and an embedded controller. This inter-  
face allows the OS to support a standard driver that can directly communicate with the embedded controller, allowing  
other drivers within the system to communicate with and use the EC resources; for example, Smart Battery and AML  
code.  
The ACPI Embedded Controller Interface (ACPI-ECI) provides a four byte full duplex data interface which is a superset  
of the standard ACPI Embedded Controller Interface (ACPI-ECI) one byte data interface. The ACPI Embedded Control-  
ler Interface (ACPI-ECI) defaults to the standard one byte interface.  
The MEC170x has two instances of the ACPI Embedded Controller Interface.  
1. The EC host in Section 13.12, "Runtime Registers" and Section 13.13, "EC Registers" corresponds to the EC in  
the ACPI specification. This interface is referred to elsewhere in this chapter as ACPI_EC.  
2. The LPC host in Section 13.12, "Runtime Registers" and Section 13.13, "EC Registers" corresponds to the “Sys-  
tem Host Interface to OS” in the ACPI specification. This interface is referred to elsewhere in this chapter as  
ACPI_OS.  
13.2 References  
• Advanced Configuration and Power Interface Specification, Revision 4.0 June 16, 2009, Hewlett-Packard Corpo-  
ration Intel Corporation Microsoft Corporation Phoenix Technologies Ltd. Toshiba Corporation  
13.3 Terminology  
TABLE 13-1: TERMINOLOGY  
Term  
Definition  
ACPI_EC  
ACPI_OS  
The EC host corresponding to the ACPI specification interface to the EC.  
The LPC host corresponding to the ACPI specification interface to the  
“System Host Interface to OS”.  
ACPI_OS terminology is not meant to distinguish the ACPI System Man-  
agement from Operating System but merely the hardware path upstream  
towards the CPU.  
13.4 Interface  
This block is designed to be accessed externally and internally via a register interface.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 267  
MEC170x  
FIGURE 13-1:  
I/O DIAGRAM OF BLOCK  
ACPI Embedded Controller  
Interface (ACPI-ECI)  
Host Interface  
Signal Description  
Power, Clocks and Reset  
Interrupts  
13.5 Signal Description  
There are no external signals.  
13.6 Host Interface  
The registers defined for the ACPI Embedded Controller Interface (ACPI-ECI) are accessible by the System Host and  
the Embedded Controller as indicated in Section 13.12, "Runtime Registers" and Section 13.13, "EC Registers".  
13.7 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
13.7.1  
POWER DOMAINS  
TABLE 13-2: POWER SOURCES  
Name  
Description  
VTR  
The logic and registers implemented in this block reside on this single  
power well.  
13.7.2  
CLOCK INPUTS  
This block only requires the Host interface clocks to synchronize registers access.  
DS00002206H-page 268  
2016-2020 Microchip Technology Inc.  
MEC170x  
13.7.3  
RESETS  
TABLE 13-3: RESET SIGNALS  
Name  
Description  
This signal resets all the logic and registers in this interface.  
RESET_SYS  
13.8 Interrupts  
This section defines the Interrupt Sources generated from this block.  
TABLE 13-4: SYSTEM INTERRUPTS  
Source  
Description  
EC_OBE  
This host interrupt is asserted when the OBF bit in the EC STATUS Reg-  
ister is cleared to ‘0’.  
TABLE 13-5: EC INTERRUPTS  
Source  
Description  
IBF  
Interrupt generated by the host writing either data or command to the  
data register. This interrupt is asserted when the input buffer becomes  
not empty (i.e., when the IBF flag goes to 1).  
OBE  
Interrupt generated by the host reading either data or aux data from the  
data register. This interrupt is asserted when the output buffer becomes  
empty (i.e., when the OBF flag goes to 0).  
Note:  
The usage model from the ACPI specification requires both SMI’s and SCI’s. The ACPI_OS SMI and SCI  
interrupts are not implemented in the ACPI Embedded Controller Interface (ACPI-ECI). The SMI_EVT and  
SCI_EVT bits in the OS STATUS OS Register are software flags and this block do not initiate SMI or SCI  
events.  
13.9 Low Power Modes  
The ACPI Embedded Controller Interface (ACPI-ECI) automatically enters low power mode when no transaction targets  
it.  
13.10 Description  
The ACPI Embedded Controller Interface (ACPI-ECI) provides an APCI-EC interface that adheres to the ACPI specifi-  
cation. The ACPI Embedded Controller Interface (ACPI-ECI) includes two modes of operation: Legacy Mode and Four-  
byte Mode.  
The ACPI Embedded Controller Interface (ACPI-ECI) defaults to Legacy Mode which provides single byte Full Duplex  
operation. Legacy Mode corresponds to the ACPI specification functionality as illustrated in Figure 13-2, "Block Diagram  
corresponding to the ACPI specification". The EC interrupts in Figure 13-2 are implemented as OBE and IBF. See Sec-  
tion 13.8, "Interrupts".  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 269  
MEC170x  
In Four-byte Mode, the ACPI Embedded Controller Interface (ACPI-ECI) provides four byte Full Duplex operation. Four-  
byte Mode is a superset of the ACPI specification functionality as illustrated in Figure 13-2, "Block Diagram correspond-  
ing to the ACPI specification".  
Both Legacy Mode and Four-byte Mode provide Full Duplex Communications which allows data/command transfers in  
one direction while maintaining data from the other direction; communications can flow both ways simultaneously.  
In Legacy Mode, ACPI Embedded Controller Interface (ACPI-ECI) contains three registers: ACPI OS COMMAND Reg-  
ister, OS STATUS OS Register, and OS2EC Data EC Byte 0 Register. The standard ACPI Embedded Controller Inter-  
face (ACPI-ECI) registers occupy two addresses in the ACPI_OS space (Table 13-8).  
The OS2EC Data EC Byte 0 Register and ACPI OS COMMAND Register registers appear as a single 8-bit data register  
in the ACPI_EC. The CMD bit in the OS STATUS OS Register is used by the ACPI_EC to discriminate commands from  
data written by the ACPI_OS to the ACPI_EC. CMD bit is controlled by hardware: ACPI_OS writes to the OS2EC Data  
EC Byte 0 Register register clear the CMD bit; ACPI_OS writes to the ACPI OS COMMAND Register set the CMD bit.  
DS00002206H-page 270  
2016-2020 Microchip Technology Inc.  
MEC170x  
FIGURE 13-2:  
BLOCK DIAGRAM CORRESPONDING TO THE ACPI SPECIFICATION  
Legacy Mode  
Data  
Single Byte  
Full Duplex  
Data flow in each  
direction indipendent  
Data  
Single  
Byte  
Command  
Status  
System  
EC  
Processor  
Interface  
Host  
Interface  
to OS  
Host SMI & SCI  
interrupts  
EC Interrupts  
Control Register  
Legend  
Legacy  
Microchip Proprietary  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 271  
MEC170x  
FIGURE 13-2:  
BLOCK DIAGRAM CORRESPONDING TO THE ACPI SPECIFICATION  
Four-byte Mode  
Data  
0
1
2
3
Full Duplex  
Data flow in each  
direction indipendent  
Data  
0
1
2
System  
Host  
3
EC  
Processor  
Interface  
Interface  
to OS  
Command  
Status  
Host SMI & SCI  
interrupts  
EC Interrupts  
Control Register  
Legend  
Legacy  
Microchip Proprietary  
DS00002206H-page 272  
2016-2020 Microchip Technology Inc.  
MEC170x  
13.11 Register Aliasing between Runtime and EC-Only Registers  
Table 13-6, "Runtime Register Aliasing into EC-Only Registers" indicates the aliasing from Runtime registers to EC-Only  
registers. The “Host/EC Access” column distinguishes the aliasing based on access type. See individual register  
descriptions for more details.  
TABLE 13-6: RUNTIME REGISTER ALIASING INTO EC-ONLY REGISTERS  
Host  
Offset  
Runtime Register  
Register Name  
Host  
Access  
EC  
Offset  
Aliased EC-Only Register  
Register Name  
EC  
Access  
00h  
00h  
01h  
01h  
02h  
02h  
03h  
03h  
ACPI OS Data Register Byte 0  
Register  
W
R
108h  
100h  
109h  
101h  
10Ah  
102h  
10Bh  
103h  
OS2EC Data EC Byte 0 Register  
EC2OS Data EC Byte 0 Register  
OS2EC Data EC Byte 1 Register  
EC2OS Data EC Byte 1 Register  
OS2EC Data EC Byte 2 Register  
EC2OS Data EC Byte 2 Register  
OS2EC Data EC Byte 3 Register  
EC2OS Data EC Byte 3 Register  
R
W
R
ACPI OS Data Register Byte 0  
Register  
ACPI OS Data Register Byte 1  
Register  
W
R
ACPI OS Data Register Byte 1  
Register  
W
R
ACPI OS Data Register Byte 2  
Register  
W
R
ACPI OS Data Register Byte 2  
Register  
W
R
ACPI OS Data Register Byte 3  
Register  
W
R
ACPI OS Data Register Byte 3  
Register  
W
04h  
04h  
05h  
06h  
07h  
ACPI OS COMMAND Register  
OS STATUS OS Register  
OS Byte Control Register  
Reserved  
W
R
108h  
104h  
105h  
106h  
107h  
OS2EC Data EC Byte 0 Register  
EC STATUS Register  
EC Byte Control Register  
Reserved  
R
W
R
R/W  
Reserved  
Reserved  
Table 13-7, "EC-Only Registers Summary" indicates the aliasing from EC-Only to Runtime registers. The “Host/EC  
Access” column distinguishes the aliasing based on access type. See individual register descriptions for more details.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 273  
MEC170x  
TABLE 13-7: EC-ONLY REGISTERS SUMMARY  
EC  
Offset  
EC-Only Registers  
Register Name  
EC  
Access  
Host  
Offset  
Aliased Runtime Register  
Register Name  
Host  
Access  
108h  
OS2EC Data EC Byte 0 Register  
R
00h  
ACPI OS Data Register Byte 0  
Register  
W
108h  
109h  
OS2EC Data EC Byte 0 Register  
OS2EC Data EC Byte 1 Register  
R
R
04h  
01h  
ACPI OS COMMAND Register  
W
W
ACPI OS Data Register Byte 1  
Register  
10Ah  
10Bh  
OS2EC Data EC Byte 2 Register  
OS2EC Data EC Byte 3 Register  
R
R
02h  
03h  
ACPI OS Data Register Byte 2  
Register  
W
W
ACPI OS Data Register Byte 3  
Register  
104h  
105h  
106h  
107h  
100h  
EC STATUS Register  
EC Byte Control Register  
Reserved  
W
R/W  
R
04h  
05h  
OS STATUS OS Register  
OS Byte Control Register  
Reserved  
W
R
R
R
R
Reserved  
R
Reserved  
EC2OS Data EC Byte 0 Register  
W
00h  
01h  
02h  
03h  
ACPI OS Data Register Byte 0  
Register  
101h  
102h  
103h  
EC2OS Data EC Byte 1 Register  
EC2OS Data EC Byte 2 Register  
EC2OS Data EC Byte 3 Register  
W
W
W
ACPI OS Data Register Byte 1  
Register  
R
R
R
ACPI OS Data Register Byte 2  
Register  
ACPI OS Data Register Byte 3  
Register  
13.12 Runtime Registers  
Note:  
The Runtime registers may be accessed by the EC but typically the Host will access the Runtime Registers  
and the EC will access just the EC-Only registers.  
The registers listed in the Runtime Register Summary table are for a single instance of the ACPI Embedded Controller  
Interface (ACPI-ECI). Host access for each register listed in this table is defined as an offset in the Host address space  
to the Block’s Base Address, as defined by the instance’s Base Address Register.  
The EC address for each register is formed by adding the Base Address for each instance of the ACPI Embedded Con-  
troller Interface (ACPI-ECI) shown in the Block Overview and Base Address Table in Section 3.0, "Device Inventory" to  
the offset shown in the “Offset” column.  
TABLE 13-8: RUNTIME REGISTER SUMMARY  
Offset  
Register Name  
00h  
01h  
02h  
03h  
04h  
ACPI OS Data Register Byte 0 Register  
ACPI OS Data Register Byte 1 Register  
ACPI OS Data Register Byte 2 Register  
ACPI OS Data Register Byte 3 Register  
ACPI OS COMMAND Register  
DS00002206H-page 274  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 13-8: RUNTIME REGISTER SUMMARY (CONTINUED)  
Offset  
Register Name  
OS STATUS OS Register  
04h  
05h  
06h  
07h  
OS Byte Control Register  
Reserved  
Reserved  
13.12.1 ACPI OS DATA REGISTER BYTE 0 REGISTER  
This register is aliased; see Section 13.12.1.1, "ACPI-OS DATA BYTES[3:0]", Section 13.13.1.1, "OS2EC DATA  
BYTES[3:0]", and Section 13.13.5.1, "EC2OS DATA BYTES[3:0]" for detailed descriptions of access rules.  
00h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 ACPI_OS_DATA_BYTE_0  
This is byte 0 of the 32-bit ACPI-OS DATA BYTES[3:0].  
R/W  
0h  
RESET  
_SYS  
13.12.1.1 ACPI-OS DATA BYTES[3:0]  
Writes by the ACPI_OS to the ACPI-OS DATA BYTES[3:0] are aliased to the OS2EC DATA BYTES[3:0]. Reads by the  
ACPI_OS from the ACPI-OS DATA BYTES[3:0] are aliased to the EC2OS DATA BYTES[3:0].  
All access to the ACPI-OS DATA BYTES[3:0] registers should be orderly: Least Significant Byte to Most Significant Byte  
when byte access is used.  
Writes to any of the four ACPI-OS DATA BYTES[3:0] registers clears the CMD bit in the OS STATUS OS Register (the  
state of the FOUR_BYTE_ACCESS bit in the OS Byte Control Register has no impact.)  
When the FOUR_BYTE_ACCESS bit in the OS Byte Control Register is cleared to ‘0’, the following access rules apply:  
1. Writes to the ACPI OS Data Register Byte 0 Register sets the IBF bit in the OS STATUS OS Register.  
2. Reads from the ACPI OS Data Register Byte 0 Register clears the OBF bit in the OS STATUS OS Register.  
3. All writes to ACPI-OS DATA BYTES[3:1] complete without error but the data are not registered.  
4. All reads from ACPI-OS DATA BYTES[3:1] return 00h without error.  
5. Access to ACPI-OS DATA BYTES[3:1] has no effect on the IBF and OBF bits in the OS STATUS OS Register.  
When the Four Byte Access bit in the OS Byte Control Register is set to ‘1’, the following access rules apply:  
1. Writes to the ACPI OS Data Register Byte 3 Register sets the IBF bit in the OS STATUS OS Register.  
2. Reads from the ACPI OS Data Register Byte 3 Register clears the OBF bit in the OS STATUS OS Register.  
13.12.2 ACPI OS DATA REGISTER BYTE 1 REGISTER  
This register is aliased; see Section 13.12.1.1, "ACPI-OS DATA BYTES[3:0]", Section 13.13.1.1, "OS2EC DATA  
BYTES[3:0]", and Section 13.13.5.1, "EC2OS DATA BYTES[3:0]" for detailed descriptions of access rules.  
01h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 ACPI_OS_DATA_BYTE_1  
This is byte 1 of the 32-bit ACPI-OS DATA BYTES[3:0].  
R/W  
0h  
RESET  
_SYS  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 275  
MEC170x  
13.12.3 ACPI OS DATA REGISTER BYTE 2 REGISTER  
This register is aliased; see Section 13.12.1.1, "ACPI-OS DATA BYTES[3:0]", Section 13.13.1.1, "OS2EC DATA  
BYTES[3:0]", and Section 13.13.5.1, "EC2OS DATA BYTES[3:0]" for detailed descriptions of access rules.  
02h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 ACPI_OS_DATA_BYTE_2  
R/W  
0h  
RESET  
_SYS  
This is byte 2 of the 32-bit ACPI-OS DATA BYTES[3:0].  
13.12.4 ACPI OS DATA REGISTER BYTE 3 REGISTER  
This register is aliased; see Section 13.12.1.1, "ACPI-OS DATA BYTES[3:0]", Section 13.13.1.1, "OS2EC DATA  
BYTES[3:0]", and Section 13.13.5.1, "EC2OS DATA BYTES[3:0]" for detailed descriptions of access rules.  
03h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 ACPI_OS_DATA_BYTE_3  
This is byte 3 of the 32-bit ACPI-OS DATA BYTES[3:0].  
R/W  
0h  
RESET  
_SYS  
13.12.5 ACPI OS COMMAND REGISTER  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 ACPI_OSS_COMMAND  
W
0h  
RESET  
_SYS  
Writes to the this register are aliased in the OS2EC Data EC Byte 0  
Register.  
Writes to the this register also set the CMD and IBF bits in the OS  
STATUS OS Register  
13.12.6 OS STATUS OS REGISTER  
This read-only register is aliased to the EC STATUS Register. The EC STATUS Register has read write access.  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7
UD0B  
R
0b  
RESET  
_SYS  
User Defined  
DS00002206H-page 276  
2016-2020 Microchip Technology Inc.  
MEC170x  
04h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
6
5
4
SMI_EVT  
R
0b  
0b  
0b  
RESET  
_SYS  
This bit is set when an SMI event is pending; i.e., the ACPI_EC is  
requesting an SMI query; This bit is cleared when no SMI events  
are pending.  
This bit is an ACPI_EC-maintained software flag that is set when  
the ACPI_EC has detected an internal event that requires system  
management interrupt handler attention. The ACPI_EC sets this  
bit before generating an SMI.  
Note:  
The usage model from the ACPI specification requires  
both SMI’s and SCI’s. The ACPI_OS SMI and SCI  
interrupts are not implemented in the ACPI Embedded  
Controller Interface (ACPI-ECI). The SMI_EVT and  
SCI_EVT bits in the OS STATUS OS Register are soft-  
ware flags and this block do not initiate SMI or SCI  
events.  
SCI_EVT  
R
RESET  
_SYS  
This bit is set by software when an SCI event is pending; i.e., the  
ACPI_EC is requesting an SCI query; SCI Event flag is clear when  
no SCI events are pending.  
This bit is an ACPI_EC-maintained software flag that is set when  
the embedded controller has detected an internal event that  
requires operating system attention. The ACPI_EC sets this bit  
before generating an SCI to the OS.  
Note:  
The usage model from the ACPI specification requires  
both SMI’s and SCI’s. The ACPI_OS SMI and SCI  
interrupts are not implemented in the ACPI Embedded  
Controller Interface (ACPI-ECI). The SMI_EVT and  
SCI_EVT bits in the OS STATUS OS Register are soft-  
ware flags and this block do not initiate SMI or SCI  
events.  
BURST  
R
RESET  
_SYS  
The BURST bit is set when the ACPI_EC is in Burst Mode for  
polled command processing; the BURST bit is cleared when the  
ACPI_EC is in Normal mode for interrupt-driven command pro-  
cessing.  
The BURST bit is an ACPI_EC-maintained software flag that indi-  
cates the embedded controller has received the Burst Enable  
command from the host, has halted normal processing, and is  
waiting for a series of commands to be sent from the host. Burst  
Mode allows the OS or system management handler to quickly  
read and write several bytes of data at a time without the over-  
head of SCIs between commands.  
The BURST bit is maintained by ACPI_EC software, only.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 277  
MEC170x  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
3
CMD  
R
0b  
RESET  
_SYS  
This bit is set when the OS2EC Data EC Byte 0 Register contains  
a command byte written into ACPI OS COMMAND Register; this  
bit is cleared when the OS2EC DATA BYTES[3:0] contains a data  
byte written into the ACPI-OS DATA BYTES[3:0].  
This bit is hardware controlled:  
ACPI_OS writes to any of the four ACPI-OS DATA  
BYTES[3:0] bytes clears this bit  
ACPI_OS writes to the ACPI OS COMMAND Register sets  
this bit.  
Note:  
This bit allows the embedded controller to differentiate  
the start of a command sequence from a data byte  
write operation.  
2
UD1B  
User Defined  
R
0b  
RESET  
_SYS  
DS00002206H-page 278  
2016-2020 Microchip Technology Inc.  
MEC170x  
04h  
IBF  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
1
R
0h  
RESET  
_SYS  
The Input Buffer Full bit is set to indicate that a the ACPI_OS has  
written a command or data to the ACPI_EC and that data is ready.  
This bit is automatically cleared when data has been read by the  
ACPI_EC.  
Note:  
The setting and clearing of this IBF varies depending  
on the setting of the following bits: CMD bit in this reg-  
ister and FOUR_BYTE_ACCESS bit in the OS Byte  
Control Register. Three scenarios follow:  
1. The IBF is set when the ACPI_OS writes to the ACPI OS  
COMMAND Register. This same write autonomously sets  
the CMD bit in this register.  
The IBF is cleared if the CMD bit in this register is set and the  
ACPI_EC reads from the OS2EC Data EC Byte 0 Register.  
Note:  
When CMD bit in this register is set the FOUR_BYTE_-  
ACCESS bit in the OS Byte Control Register has no  
impact on the IBF bit behavior.  
2. Awrite by the to the ACPI_OS to the ACPI OS Data Register  
Byte 0 Register sets the IBF bit if the FOUR_BYTE_AC-  
CESS bit in the OS Byte Control Register is in the cleared to  
‘0’ state prior to this write. This same write autonomously  
clears the CMD bit in this register.  
A read of the OS2EC Data EC Byte 0 Register clears the IBF bit if  
the FOUR_BYTE_ACCESS bit in the OS Byte Control Register is  
in the cleared to ‘0’ state prior to this read.  
3. Awrite by the to the ACPI_OS to the ACPI OS Data Register  
Byte 3 Register sets the IBF bit if the FOUR_BYTE_AC-  
CESS bit in the OS Byte Control Register is in the set to ‘1’  
state prior to this write. This same write autonomously  
clears the CMD bit in this register.  
A read of the OS2EC Data EC Byte 3 Register clears the IBF bit if  
the FOUR_BYTE_ACCESS bit in the OS Byte Control Register is  
in the set to ‘1’ state prior to this read.  
An IBF interrupt signals the ACPI_EC that there is data available.  
The ACPI Specification usage model is as follows:  
1. The ACPI_EC reads the EC STATUS Register and sees the  
IBF flag set,  
2. The ACPI_EC reads all the data available in the OS2EC  
DATA BYTES[3:0]. This causes the IBF bit to be automati-  
cally cleared by hardware.  
3. The ACPI_EC must then generate a software interrupt to  
alert the ACPI_OS that the data has been read and that the  
host is free to write more data to the ACPI_EC as needed.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 279  
MEC170x  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
0
OBF  
R
0h  
RESET  
_SYS  
The Output Buffer Full bit is set to indicate that a the ACPI_EC has  
written a data to the ACPI_OS and that data is ready. This bit is  
automatically cleared when all the data has been read by the  
ACPI_OS.  
Note:  
The setting and clearing of this OBF varies depending  
on the setting FOUR_BYTE_ACCESS bit in the OS  
Byte Control Register. Two scenarios follow:  
1. The OBF bit is set if the Four Byte Access bit in the OS Byte  
Control Register is ‘0’ when the ACPI_EC writes to the  
EC2OS Data EC Byte 0 Register.  
The OBF is cleared if the Four Byte Access bit in the OS Byte  
Control Register is cleared to ‘0’ when the ACPI_OS reads from  
the ACPI OS Data Register Byte 0 Register.  
2. The OBF is set if the Four Byte Access bit in the OS Byte  
Control Register is set to ‘1’ when the ACPI_EC writes to the  
EC2OS Data EC Byte 3 Register.  
The OBF is cleared if the Four Byte Access bit in the OS Byte  
Control Register is set to ‘1’ when the ACPI_OS reads from the  
ACPI OS Data Register Byte 3 Register.  
The ACPI Specification usage model is as follows:  
1. The ACPI_EC must generate a software interrupt (See the  
note in Section 13.8, "Interrupts") to alert the ACPI_OS that  
the data is available.  
2. The ACPI_OS reads the OS STATUS OS Register and sees  
the OBF flag set, the ACPI_OS reads all the data available  
in the ACPI-OS DATA BYTES[3:0].  
3. The ACPI_OS reads all the data available in the ACPI-OS  
DATA BYTES[3:0]. This causes the OBF bit to be automati-  
cally cleared by hardware and the associated OBE interrupt  
to be asserted.  
DS00002206H-page 280  
2016-2020 Microchip Technology Inc.  
MEC170x  
13.12.7 OS BYTE CONTROL REGISTER  
This register is aliased to the EC Byte Control Register. No behavioral differences occur due to address aliasing.  
05  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:1 Reserved  
FOUR_BYTE_ACCESS  
R
R
-
-
0
0b  
RESET  
_SYS  
When this bit is set to ‘1’, the ACPI Embedded Controller Interface  
(ACPI-ECI) accesses four bytes through the ACPI-OS DATA  
BYTES[3:0].  
When this bit is cleared to ‘0’, the ACPI Embedded Controller Inter-  
face (ACPI-ECI) accesses one byte through the ACPI OS Data  
Register Byte 0 Register. The corresponds to Legacy Mode  
described in Section 13.10, "Description".  
This bit effects the behavior of the IBF and OBF bits in the OS STA-  
TUS OS Register. See also Section 13.12.1.1, "ACPI-OS DATA  
BYTES[3:0]", Section 13.13.1.1, "OS2EC DATA BYTES[3:0]", and  
Section 13.13.5.1, "EC2OS DATA BYTES[3:0]" for detailed  
description of access rules.  
Note:  
The ACPI_OS access Base Address Register (BAR) should be configured to match the access width  
selected by the Four Byte Access bit in the OS Byte Control Register. This BAR in not described in this  
chapter.  
13.13 EC 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 each instance of the ACPI Embedded Controller Interface (ACPI-ECI) Block in the  
Block Overview and Base Address Table in Section 3.0, "Device Inventory".  
TABLE 13-9: REGISTER SUMMARY  
Offset  
Register Name  
100h  
101h  
102h  
103h  
104h  
105h  
106h  
107h  
108h  
109h  
10Ah  
10Bh  
EC2OS Data EC Byte 0 Register  
EC2OS Data EC Byte 1 Register  
EC2OS Data EC Byte 2 Register  
EC2OS Data EC Byte 3 Register  
EC STATUS Register  
EC Byte Control Register  
Reserved  
Reserved  
OS2EC Data EC Byte 0 Register  
OS2EC Data EC Byte 1 Register  
OS2EC Data EC Byte 2 Register  
OS2EC Data EC Byte 3 Register  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 281  
MEC170x  
13.13.1 OS2EC DATA EC BYTE 0 REGISTER  
This register is aliased; see Section 13.12.1.1, "ACPI-OS DATA BYTES[3:0]", Section 13.13.1.1, "OS2EC DATA  
BYTES[3:0]", and Section 13.13.5.1, "EC2OS DATA BYTES[3:0]" for detailed descriptions of access rules.  
108h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 OS_TO_EC_DATA_BYTE_0  
R/W  
0h  
RESET  
_SYS  
This is byte 0 of the 32-bit OS2EC DATA BYTES[3:0].  
13.13.1.1 OS2EC DATA BYTES[3:0]  
When the CMD bit in the OS STATUS OS Register is cleared to ‘0’, reads by the ACPI_EC from the OS2EC DATA  
BYTES[3:0] are aliased to the ACPI-OS DATA BYTES[3:0].  
All access to the OS2EC DATA BYTES[3:0] registers should be orderly: Least Significant Byte to Most Significant Byte  
when byte access is used.  
When the FOUR_BYTE_ACCESS bit in the OS Byte Control Register is cleared to ‘0’, the following access rules apply:  
1. Writes to the OS2EC DATA BYTES[3:0] have no effect on the OBF bit in the OS STATUS OS Register.  
2. Reads from the OS2EC Data EC Byte 0 Register clears the IBF bit in the OS STATUS OS Register.  
3. All reads from OS2EC DATA BYTES[3:1] return 00h without error.  
4. Access to OS2EC DATA BYTES[3:1 has no effect on the IBF and OBF bits in the OS STATUS OS Register.  
When the FOUR_BYTE_ACCESS bit in the OS Byte Control Register is set to ‘1’, the following access rules apply:  
1. Writes to the OS2EC DATA BYTES[3:0] have no effect on the OBF bit in the OS STATUS OS Register.  
2. Reads from the OS2EC Data EC Byte 3 Register clears the IBF bit in the OS STATUS OS Register.  
13.13.2 OS2EC DATA EC BYTE 1 REGISTER  
This register is aliased; see Section 13.12.1.1, "ACPI-OS DATA BYTES[3:0]", Section 13.13.1.1, "OS2EC DATA  
BYTES[3:0]", and Section 13.13.5.1, "EC2OS DATA BYTES[3:0]" for detailed descriptions of access rules.  
109h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 OS2EC_DATA_ BYTE_1  
R/W  
0h  
RESET  
_SYS  
This is byte 1 of the 32-bit OS2EC DATA BYTES[3:0].  
13.13.3 OS2EC DATA EC BYTE 2 REGISTER  
This register is aliased; see Section 13.12.1.1, "ACPI-OS DATA BYTES[3:0]", Section 13.13.1.1, "OS2EC DATA  
BYTES[3:0]", and Section 13.13.5.1, "EC2OS DATA BYTES[3:0]" for detailed descriptions of access rules.  
DS00002206H-page 282  
2016-2020 Microchip Technology Inc.  
MEC170x  
10Ah  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
7:0 OS2EC_DATA_BYTE_2  
R/W  
0h  
RESET  
_SYS  
This is byte 2 of the 32-bit OS2EC DATA BYTES[3:0].  
13.13.4 OS2EC DATA EC BYTE 3 REGISTER  
This register is aliased; see Section 13.12.1.1, "ACPI-OS DATA BYTES[3:0]", Section 13.13.1.1, "OS2EC DATA  
BYTES[3:0]", and Section 13.13.5.1, "EC2OS DATA BYTES[3:0]" for detailed descriptions of access rules.  
10Bh  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 OS2EC_DATA_BYTE_3  
R/W  
0h  
RESET  
_SYS  
This is byte 3 of the 32-bit OS2EC DATA BYTES[3:0].  
13.13.5 EC2OS DATA EC BYTE 0 REGISTER  
This register is aliased; see Section 13.12.1.1, "ACPI-OS DATA BYTES[3:0]", Section 13.13.1.1, "OS2EC DATA  
BYTES[3:0]", and Section 13.13.5.1, "EC2OS DATA BYTES[3:0]" for detailed descriptions of access rules.  
100h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 EC2OS_DATA_BYTE_0  
This is byte 0 of the 32-bit EC2OS DATA BYTES[3:0].  
R/W  
0h  
RESET  
_SYS  
13.13.5.1 EC2OS DATA BYTES[3:0]  
Writes by the ACPI_EC to the EC2OS DATA BYTES[3:0] are aliased to the ACPI-OS DATA BYTES[3:0]  
All access to the EC2OS DATA BYTES[3:0] registers should be orderly: Least Significant Byte to Most Significant Byte  
when byte access is used.  
When the FOUR_BYTE_ACCESS bit in the OS Byte Control Register is cleared to ‘0’, the following access rules apply:  
1. Writes to the EC2OS Data EC Byte 0 Register set the OBF bit in the OS STATUS OS Register.  
2. Reads from the EC2OS DATA BYTES[3:0] have no effect on the IBF bit in the OS STATUS OS Register.  
3. All reads from EC2OS DATA BYTES[3:1] return 00h without error.  
4. All writes to EC2OS DATA BYTES[3:1] complete without error but the data are not registered.  
5. Access to EC2OS DATA BYTES[3:1] have no effect on the IBF and OBF bits in the OS STATUS OS Register.  
When the FOUR_BYTE_ACCESS bit in the OS Byte Control Register is set to ‘1’, the following access rules apply:  
1. Writes to the EC2OS Data EC Byte 3 Register set the OBF bit in the OS STATUS OS Register.  
2. Reads from the EC2OS DATA BYTES[3:0] have no effect on the IBF bit in the OS STATUS OS Register.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 283  
MEC170x  
13.13.6 EC2OS DATA EC BYTE 1 REGISTER  
This register is aliased; see Section 13.12.1.1, "ACPI-OS DATA BYTES[3:0]", Section 13.13.1.1, "OS2EC DATA  
BYTES[3:0]", and Section 13.13.5.1, "EC2OS DATA BYTES[3:0]" for detailed descriptions of access rules.  
101h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 EC2OS_DATA_BYTE_1  
R/W  
0h  
RESET  
_SYS  
This is byte 1 of the 32-bit EC2OS DATA BYTES[3:0].  
13.13.7 EC2OS DATA EC BYTE 2 REGISTER  
This register is aliased; see Section 13.12.1.1, "ACPI-OS DATA BYTES[3:0]", Section 13.13.1.1, "OS2EC DATA  
BYTES[3:0]", and Section 13.13.5.1, "EC2OS DATA BYTES[3:0]" for detailed descriptions of access rules.  
102h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 EC2OS_DATA_BYTE_2  
R/W  
0h  
RESET  
_SYS  
This is byte 2 of the 32-bit EC2OS DATA BYTES[3:0].  
13.13.8 EC2OS DATA EC BYTE 3 REGISTER  
This register is aliased; see Section 13.12.1.1, "ACPI-OS DATA BYTES[3:0]", Section 13.13.1.1, "OS2EC DATA  
BYTES[3:0]", and Section 13.13.5.1, "EC2OS DATA BYTES[3:0]" for detailed descriptions of access rules.  
103h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 EC2OS_DATA_BYTE_3  
This is byte 3 of the 32-bit EC2OS DATA BYTES[3:0].  
R/W  
0h  
RESET  
_SYS  
DS00002206H-page 284  
2016-2020 Microchip Technology Inc.  
MEC170x  
13.13.9 EC STATUS REGISTER  
This register is aliased to the OS STATUS OS Register. The OS STATUS OS Register is a read only version of this  
register.  
104h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7
6
5
4
UD0A  
R/W  
0b  
RESET  
_SYS  
User Defined  
SMI_EVT  
R/W  
R/W  
R/W  
0b  
0b  
0b  
RESET  
_SYS  
See the SMI_EVT bit in the OS STATUS OS Register for the bit  
description.  
SCI_EVT  
RESET  
_SYS  
See the SMI_EVT bit in the OS STATUS OS Register for the bit  
description.  
BURST  
RESET  
_SYS  
See the BURST bit in the OS STATUS OS Register for the bit  
description.  
3
2
1
0
CMD  
R
R/W  
R
0b  
0b  
0h  
0h  
RESET  
_SYS  
See the CMD bit in the OS STATUS OS Register for the bit  
description.  
UD1A  
RESET  
_SYS  
User Defined  
IBF  
RESET  
_SYS  
See the IBF bit in the OS STATUS OS Register for the bit descrip-  
tion.  
OBF  
R
RESET  
_SYS  
See the OBF bit in the OS STATUS OS Register for the bit descrip-  
tion.  
Note:  
The IBF and OBF bits are not de-asserted by hardware when the host is powered off, or the LPC interface  
powers down; for example, following system state changes S3->S0, S5->S0, G3-> S0. For further informa-  
tion on how these bits are cleared, refer to IBF and OBF bit descriptions in the STATUS OS-Register defi-  
nition.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 285  
MEC170x  
13.13.10 EC BYTE CONTROL REGISTER  
This register is aliased to the OS Byte Control Register. The OS Byte Control Register is a read only version of this  
register.  
105h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:1 Reserved  
FOUR_BYTE_ACCESS  
R
-
-
0
R/W  
0b  
RESET  
_SYS  
See the FOUR_BYTE_ACCESS bit in the OS Byte Control Regis-  
ter for the bit description.  
DS00002206H-page 286  
2016-2020 Microchip Technology Inc.  
MEC170x  
14.0 ACPI PM1 BLOCK  
14.1 Introduction  
The MEC170x supports ACPI as described in this section. These features comply with the ACPI Specification through  
a combination of hardware and EC software.  
14.2 References  
ACPI Specification, Revision 1.0  
14.3 Terminology  
None  
14.4 Interface  
This block is an IP block designed to be incorporated into a chip. It is designed to be accessed externally via the pin  
interface and internally via a registered host interface. The following diagram illustrates the various interfaces to the  
block.  
FIGURE 14-1:  
I/O DIAGRAM OF BLOCK  
ACPI PM1 Block  
Host Interface  
Signal Description  
Clocks  
Resets  
Interrupts  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 287  
MEC170x  
14.5 Signal Description  
Table 14-1, "ACPI PM1 Signal Description Table" lists the signals that are typically routed to the pin interface.  
TABLE 14-1: ACPI PM1 SIGNAL DESCRIPTION TABLE  
Name  
Direction  
Description  
EC_SCI#  
Output  
Any or all of the PWRBTN_STS, SLPBTN_STS, and RTC_STS bits  
in the Power Management 1 Status 2 Register can assert the  
EC_SCI# pin if enabled by the associated bits in the Power Man-  
agement 1 Enable 2 Register register. The EC_SCI_STS bit in the  
EC_PM_STS Register register can also be used to generate an SCI  
on the EC_SCI# pin.  
14.6 Host Interface  
The registers defined for the ACPI PM1 Block are accessible by the various hosts as indicated in Section 14.11, "Run-  
time Registers".  
14.7 Power, Clocks and Resets  
This section defines the Power, Clock, and Reset parameters of the block.  
14.7.1  
POWER DOMAINS  
TABLE 14-2: POWER SOURCES  
Name  
Description  
VTR  
This power well sources the registers and logic in this block.  
14.7.2  
CLOCKS  
This section describes all the clocks in the block, including those that are derived from the I/O Interface as well as the  
ones that are derived or generated internally.  
TABLE 14-3: CLOCKS  
Name  
Description  
48MHz  
This clock signal drives selected logic (e.g., counters).  
14.7.3  
RESETS  
TABLE 14-4: RESET SIGNALS  
Name  
Description  
RESET_SYS  
This reset signal resets all of the registers and logic in this block.  
14.8 Interrupts  
This section defines the Interrupt Sources generated from this block.  
TABLE 14-5: EC INTERRUPTS  
Source  
Description  
ACPIPM1_CTL  
ACPIPM1_EN  
ACPIPM1_STS  
This Interrupt is generated to the EC by the Host writing to the Power  
Management 1 Control 2 Register register  
This Interrupt is generated to the EC by the Host writing to the Power  
Management 1 Enable 2 Register register  
This Interrupt is generated to the EC by the Host writing to the Power  
Management 1 Status 2 Register register  
DS00002206H-page 288  
2016-2020 Microchip Technology Inc.  
MEC170x  
14.9 Low Power Modes  
The ACPI PM1 Block may be put into a low power state by the chip’s Power, Clocks, and Reset (PCR) circuitry.  
14.10 Description  
This section describes the functions of the ACPI PM1 Block in more detail.  
The MEC170x implements the ACPI fixed registers but includes only those bits that apply to the power button sleep  
button and RTC alarm events. The ACPI WAK_STS, SLP_TYP, and SLP_EN bits are also supported.  
The MEC170x can generate SCI Interrupts to the Host. The functions described in the following sub-sections can gen-  
erate a SCI event on the EC_SCI# pin. In the MEC170x, an SCI event is considered the same as an ACPI wakeup or  
runtime event.  
14.10.1 SCI EVENT-GENERATING FUNCTIONS  
Event  
Event Bit  
Definition  
Power Button PWRBTN_STS  
with Override  
The power button has a status and an enable bit in the PM1_BLK of regis-  
ters to provide an SCI upon the button press. The status bit is software  
Read/Writable by the EC; the enable bit is Read-only by the EC. It also has  
a status and enable bit in the PM1_BLK of registers to indicate and control  
the power button override (fail-safe) event. These bits are not required by  
ACPI.  
The PWRBTN_STS bit is set by the Host to enable the generation of an  
SCI due to the power button event. The status bit is set by the EC when it  
generates a power button event and is cleared by the Host writing a ‘1’ to  
this bit (writing a ‘0’ has no effect); it can also be cleared by the EC. If the  
enable bit is set, the EC generates an SCI power management event.  
PWRBTNOR_STS  
The power button has a status and an enable bit in the PM1_BLK of regis-  
ters to provide an SCI upon the power button override.The power button  
override event status bit is software Read/Writable by the EC; the enable bit  
is software read-only by the EC.The enable bit for the override event is  
located at bit 1 in the Power Management 1 Control Register 2 (PM1_CN-  
TRL 2).The power button bit has a status and enable bit in the Runtime  
Registers to provide an SCI power management event on a button press  
The PWRBTNOR_STS bit is set by the Host to enable the generation of an  
SCI due to the power button override event. The status bit is set by the EC  
when it generates a power button event and is cleared by the Host writing a  
‘1’ to this bit (writing a ‘0’ has no effect); it can also be cleared by the EC. If  
the enable bit is set, the EC generates an SCI power management event.  
Sleep Button SLPBTN_STS  
The sleep button that has a status and an enable bit in the Runtime Regis-  
ters to provide an SCI power management event on a button press. The  
status bit is software Read/Writable by the EC; the enable bit is Read-only  
by the EC.  
The SLPBTN_STS bit is set by the Host to enable the generation of an SCI  
due to the sleep button event. The status bit is set by the EC when it gener-  
ates a sleep button event and is cleared by the Host writing a ‘1’ to this bit  
(writing a ‘0’ has no effect); it can also be cleared by the EC. If the enable  
bit is set, the EC will generate an SCI power management event.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 289  
MEC170x  
Event  
Event Bit  
RTC_STS  
Definition  
RTC Alarm  
The ACPI specification requires that the RTC alarm generate a hardware  
wake-up event from the sleeping state. The RTC alarm can be enabled as  
an SCI event and its status can be determined through bits in the Runtime  
Registers. The status bit is software Read/Writable by the EC; the enable  
bit is Read-only by the EC.  
The RTC_STS bit is set by the Host to enable the generation of an SCI due  
to the RTC alarm event. The status bit is set by the EC when the RTC gen-  
erates an alarm event and is cleared by the Host writing a ‘1’ to this bit (writ-  
ing a ‘0’ has no effect); it can also be cleared by the EC. If the enable bit is  
set, the EC will generate an SCI power management event.  
Figure 14-2 describes the relationship of PM1 Status and Enable bits to the EC_SCI# pin.  
FIGURE 14-2:  
EC_SCI# INTERFACE  
PM1_STS 2 PM1_EN 2  
Register Register  
PWRBTN_STS  
SLPBTN_STS  
RTC_STS  
EC_SCI#  
EC_PM_STS Register  
EC_SCI_STS  
14.11 Runtime Registers  
The registers listed in the Runtime Register Summary table are for a single instance of the ACPI PM1 Block. Host  
access for each register listed in this table is defined as an offset in the Host address space to the Block’s Base Address,  
as defined by the instance’s Base Address Register.  
The EC address for each register is formed by adding the Base Address for the ACPI PM1 Block shown in the Block  
Overview and Base Address Table in Section 3.0, "Device Inventory" to the offset shown in the “Offset” column.  
TABLE 14-6: RUNTIME REGISTER SUMMARY  
Offset  
Register Name  
00h  
01h  
02h  
03h  
04h  
05h  
06h  
07h  
Power Management 1 Status 1 Register  
Power Management 1 Status 2 Register  
Power Management 1 Enable 1 Register  
Power Management 1 Enable 2 Register  
Power Management 1 Control 1 Register  
Power Management 1 Control 2 Register  
Power Management 2 Control 1 Register  
Power Management 2 Control 2 Register  
DS00002206H-page 290  
2016-2020 Microchip Technology Inc.  
MEC170x  
14.11.1 POWER MANAGEMENT 1 STATUS 1 REGISTER  
00h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
7:0 Reserved  
R
-
-
14.11.2 POWER MANAGEMENT 1 STATUS 2 REGISTER  
01h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7 WAK_STS  
R/WC  
(Note 1)  
00h  
RESET_  
SYS  
This bit can be set or cleared by the EC. The Host writing a one to  
this bit can also clear this bit.  
6:4 Reserved  
R
-
-
3 PWRBTNOR_STS  
R/WC  
(Note 1)  
00h  
RESET_  
SYS  
This bit can be set or cleared by the EC to simulate a Power button  
override event status if the power is controlled by the EC. The Host  
writing a one to this bit can also clear this bit. The EC must generate  
the associated hardware event under software control.  
2 RTC_STS  
R/WC  
(Note 1)  
00h  
00h  
RESET_  
SYS  
This bit can be set or cleared by the EC to simulate a RTC status.  
The Host writing a one to this bit can also clear this bit. The EC must  
generate the associated SCI interrupt under software control.  
1 SLPBTN_STS  
R/WC  
(Note 1)  
RESET_  
SYS  
This bit can be set or cleared by the EC to simulate a Sleep button  
status if the sleep state is controlled by the EC. The Host writing a  
one to this bit can also clear this bit. The EC must generate the  
associated SCI interrupt under software control.  
0 PWRBTN_STS  
R/WC  
(Note 1)  
00h  
RESET_  
SYS  
This bit can be set or cleared by the EC to simulate a Power button  
status if the power is controlled by the EC. The Host writing a one to  
this bit can also clear this bit. The EC must generate the associated  
SCI interrupt under software control.  
Note 1: These bits are set/cleared by the EC directly i.e., writing ‘1’ sets the bit and writing ‘0’ clears it. These bits  
can also be cleared by the Host software writing a one to this bit position and by RESET_SYS. Writing a 0  
by the Host has no effect.  
14.11.3 POWER MANAGEMENT 1 ENABLE 1 REGISTER  
02h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 Reserved  
R
-
-
2016-2020 Microchip Technology Inc.  
DS00002206H-page 291  
MEC170x  
14.11.4 POWER MANAGEMENT 1 ENABLE 2 REGISTER  
03h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:3 Reserved  
2 RTC_EN  
R
-
-
R/W  
(Note 1)  
00h  
RESET_  
SYS  
This bit can be read or written by the Host. It can be read by the EC.  
1 SLPBTN_EN  
R/W  
(Note 1)  
00h  
00h  
RESET_  
SYS  
This bit can be read or written by the Host. It can be read by the EC.  
0 PWRBTN_EN  
R/W  
(Note 1)  
RESET_  
SYS  
This bit can be read or written by the Host. It can be read by the EC.  
Note 1: These bits are read-only by the EC.  
14.11.5 POWER MANAGEMENT 1 CONTROL 1 REGISTER  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 Reserved  
R
0h  
RESET_  
SYS  
14.11.6 POWER MANAGEMENT 1 CONTROL 2 REGISTER  
05h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:6 Reserved  
5 SLP_EN  
R
-
-
See  
Table 14  
-7.  
00h  
RESET_  
SYS  
See Table 14-7.  
4:2 SLP_TYP  
R/W  
(Note 1)  
00h  
00h  
-
RESET_  
SYS  
These bits can be set or cleared by the Host, read by the EC.  
1 PWRBTNOR_EN  
R/W  
(Note 1)  
RESET_  
SYS  
This bit can be set or cleared by the Host, read by the EC.  
0 Reserved  
R
-
Note 1: These bits are read-only by the EC.  
TABLE 14-7: SLP_EN DEFINITION  
Host / EC  
R/W  
Description  
Host  
Read  
Write  
Read  
Write  
Always reads 0  
Writing a 0 has no effect, Writing a 1 sets this bit  
Reads the value of the bit  
EC  
Writing a 0 has no effect, Writing a 1 clears this bit  
DS00002206H-page 292  
2016-2020 Microchip Technology Inc.  
MEC170x  
14.11.7 POWER MANAGEMENT 2 CONTROL 1 REGISTER  
06h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
7:0 Reserved  
R
-
-
14.11.8 POWER MANAGEMENT 2 CONTROL 2 REGISTER  
07h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 Reserved  
R
-
-
14.12 EC 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 each instance of the ACPI PM1 Block Block in the Block Overview and Base Address  
Table in Section 3.0, "Device Inventory".  
TABLE 14-8: REGISTER SUMMARY  
Offset  
Register Name  
100h  
101h  
102h  
103h  
104h  
105h  
106h  
107h  
110h  
Power Management 1 Status 1 Register  
Power Management 1 Status 2 Register  
Power Management 1 Enable 1 Register  
Power Management 1 Enable 2 Register  
Power Management 1 Control 1 Register  
Power Management 1 Control 2 Register  
Power Management 2 Control 1 Register  
Power Management 2 Control 2 Register  
EC_PM_STS Register  
Note:  
The Power Management Status, Enable and Control registers in Table 14-8, "Register Summary" are  
described in Section 14.11, "Runtime Registers".  
14.12.1 EC_PM_STS REGISTER  
110h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:1 UD  
R/W  
00h  
RESET_  
SYS  
0 EC_SCI_STS  
R/W  
00h  
RESET_  
SYS  
If the EC_SCI_STS bit is “1”, an interrupt is generated on the  
EC_SCI# pin.  
Note:  
This register is only accessed by the EC. There is no host access to this register.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 293  
MEC170x  
15.0 EMBEDDED MEMORY INTERFACE (EMI)  
15.1 Introduction  
The Embedded Memory Interface (EMI) provides a standard run-time mechanism for the system host to communicate  
with the Embedded Controller (EC) and other logical components. The Embedded Memory Interface includes 13 byte-  
addressable registers in the Host’s address space, as well as 22 bytes of registers that are accessible only by the EC.  
The Embedded Memory Interface can be used by the Host to access bytes of memory designated by the EC without  
requiring any assistance from the EC. The EC may configure these regions of memory as read-only, write-only, or  
read/write capable.  
15.2 Interface  
This block is designed to be accessed externally and internally via a register interface.  
FIGURE 15-1:  
I/O DIAGRAM OF BLOCK  
Embedded Memory Interface (EMI)  
Host Interface  
Signal Description  
Clock Inputs  
Resets  
Interrupts  
15.3 Signal Description  
Name  
Name  
OUTPUT  
Description  
nEM_INT  
Active-low signal asserted when either the EC-to-Host or the  
Host_SWI_Event is asserted. This signal can be routed to nSMI  
and nPME inputs in the system as required.  
15.4 Host Interface  
The registers defined for the Embedded Memory Interface (EMI) are accessible by the System Host and the Embedded  
Controller (EC) as indicated in Section 15.10, "EC Registers" and Section 15.9, "Runtime Registers".  
DS00002206H-page 294  
2016-2020 Microchip Technology Inc.  
MEC170x  
15.5 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
15.5.1  
POWER DOMAINS  
TABLE 15-1: POWER SOURCES  
Name  
Description  
VTR  
The logic and registers implemented in this block reside on this single  
power well.  
15.5.2  
CLOCK INPUTS  
This block has no special clocking requirements. Host register accesses are synchronized to the host bus clock and EC  
register accesses are synchronized to the EC bus clock, thereby allowing the transactions to complete in one bus clock.  
15.5.3  
RESETS  
TABLE 15-2: RESET SIGNALS  
Name  
Description  
RESET_SYS  
This reset signal resets all the logic and register in this block.  
15.6 Interrupts  
This section defines the Interrupt Sources generated from this block.  
TABLE 15-3: SYSTEM INTERRUPTS  
Source  
Description  
Host_SWI_Event  
This interrupt source for the SERIRQ logic is generated when any of the  
EC_SWI bits are asserted and the corresponding EC_SWI_EN bits are  
asserted as well.  
This event is also asserted if the embedded controller (EC) writes the EC-  
to-HOST Mailbox Register.  
EC-to-Host  
This interrupt source for the SERIRQ logic is generated by the embedded  
controller (EC) writing the EC-to-HOST Mailbox Register.  
TABLE 15-4: EC INTERRUPTS  
Source  
Description  
Host-to-EC  
Interrupt source for the Interrupt Aggregator, generated by the host writ-  
ing the HOST-to-EC Mailbox Register.  
15.7 Low Power Modes  
The Embedded Memory Interface (EMI) automatically enters low power mode when no transaction target it.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 295  
MEC170x  
15.8 Description  
FIGURE 15-2:  
EMBEDDED MEMORY INTERFACE BLOCK DIAGRAM  
HOST  
EMI  
EC  
Host-to-EC  
EC-to-Host  
Host-to-EC Event  
EC-to-Host Event  
Host Event  
Host Interrupt Source  
Memory Region 0 &  
Memory Region 1  
Embedded Memory  
Address  
Addr  
Data  
Addr  
Data  
Embedded Memory Data  
The Embedded Memory Interface (EMI) is composed of a mailbox, a direct memory interface, and an Application ID  
register.  
The mailbox contains two registers, the HOST-to-EC Mailbox Register and the EC-to-HOST Mailbox Register, that act  
as a communication portal between the system host and the embedded controller. When the HOST-to-EC Mailbox Reg-  
ister is written an interrupt is generated to the embedded controller. Similarly, when the EC-to-HOST Mailbox Register  
is written an interrupt is generated to the system host. The source of the system host interrupt may be read in the Inter-  
rupt Source Register. These interrupt events may be individually prevented from generating a Host Event via the Inter-  
rupt Mask Register.  
The direct memory interface, which is composed of a byte addressable 16-bit EC Address Register and a 32-bit EC  
Data Register, permits the Host to read or write a portion of the EC’s internal address space. The embedded controller  
may enable up to two regions of the EC’s internal address space to be exposed to the system host. The system host  
may access these memory locations without intervention or assistance from the EC.  
The Embedded Memory Interface can be configured so that data transfers between the Embedded Memory Interface  
data bytes and the 32- bit internal address space may be multiple bytes, while Host I/O is always executed a byte at a  
time.  
When the Host reads one of the four bytes in the Embedded Memory Interface data register, data from the internal 32-  
bit address space, at the address defined by the Embedded Memory Interface address register, is returned to the Host.  
This read access will load 1, 2, or 4 bytes into the Data register depending on the configuration of the ACCESS_TYPE  
bits. Similarly, writing one of the four bytes in the data register will write the corresponding byte(s) from the data register  
into the internal 32-bit address space as indicated by the ACCESS_TYPE bits. This configuration option is done to  
ensure that data the EC treats as 16-bit or 32-bit will be consistent in the Host, even though one byte of the data may  
change between two or more 8-bit accesses by the Host.  
In addition, there is an auto-increment function for the Embedded Memory Interface address register. When enabled,  
the Host can read or write blocks of memory in the 32- bit internal address space by repeatedly accessing the Embedded  
Memory Interface data register, without requiring Host updates to the Embedded Memory Interface address register.  
Finally, the Application ID Register may be used by the host to provide an arbitration mechanism if more than one soft-  
ware thread requires access through the EMI interface. See Section 15.8.4, "Embedded Memory Interface Usage" for  
more details.  
DS00002206H-page 296  
2016-2020 Microchip Technology Inc.  
MEC170x  
15.8.1  
EMBEDDED MEMORY MAP  
Each Embedded Memory interface provides direct access for the Host into two windows in the EC 32-bit internal  
address space. This mapping is shown in Figure 15-3, "Embedded Memory Addressing":  
FIGURE 15-3:  
EMBEDDED MEMORY ADDRESSING  
32-bit internal address  
space  
FFFF_FFFFh  
No Host Access  
Region_1_Read_Limit  
Host Read Only  
Host Read/Write  
Region_1_Write_Limit  
Region_1_Base_Address  
No Host Access  
Region_0_Read_Limit  
Host Read Only  
Host Read/Write  
Region_0_Write_Limit  
Region_0_Base_Address  
No Host Access  
0000_0000h  
The Base addresses, the Read limits and the Write limits are defined by registers that are in the EC address space and  
cannot be accessed by the Host. In each region, the Read limit need not be greater than the Write limit. The regions  
can be contiguous or overlapping. For example, if the Region 0 Read limit is set to 0 and the Write limit is set to a positive  
number, then the Embedded Memory interface defines a region in the EC memory that the EC can read and write but  
is write-only for the host. This might be useful for storage of security data, which the Host might wish to send to the EC  
but should not be readable in the event a virus invades the Host.  
Each window into the EC memory can be as large as 32k bytes in the 32-bit internal address space.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 297  
MEC170x  
15.8.2  
EC DATA REGISTER  
The 4 1-byte EC Data Byte registers function as a 32-bit register, which creates a 4 byte window into the Memory  
REGION being accessed. The 4-byte window is always aligned on a 4-byte boundary. Depending on the read/write con-  
figuration of the memory region being accessed, the bytes may be extracted from or loaded into memory as a byte,  
word, or a DWord. The ACCESS_TYPE determines the size of the memory access. The address accessed is deter-  
mined by the two EC_Address byte registers, which together function as a 15-bit EC Address Register.  
• A write to the EC Data Register when the EC Address is in a read-only or a no-access region, as defined by the  
Memory Base and Limit registers, will update the EC Data Register but memory will not be modified.  
• A read to the EC Data Register when the EC Address is in a no-access region, as defined by the Memory Base  
and Limit registers, will not trigger a memory read and will not modify the EC Data Register. In auto-increment  
mode (ACCESS_TYPE=11b), reads of Byte 3 of the EC Data Register will still trigger increments of the EC  
Address Register when the address is out of bounds, while writes of Byte 3 will not.  
15.8.3  
ACCESS TYPES  
The access type field (ACCESS_TYPE in the EC Address LSB Register) defines the type of host access that occurs  
when the EC Data Register is read or written.  
11:  
Auto-increment 32-bit access. This defines a 32-bit access, as in the 10 case. In addition, any read or write of  
Byte 3 in the EC Data Register causes the EC Data Register to be incremented by 1. That is, the EC_Address  
field will point to the next 32-bit double word in the 32- bit internal address space.  
10:  
32-bit access. A read of Byte 0 in the EC Data Register causes the 32 bits in the 32- bit internal address space  
at an offset of EC_Address to be loaded into the entire EC Data Register. The read then returns the contents of  
Byte 0. A read of Byte 1, Byte 2 or Byte 3 in the EC Data Register returns the contents of the register, without  
any update from the 32- bit internal address space.  
A write of Byte 3 in the EC Data Register causes the EC Data Register to be written into the 32 bits in the 32- bit  
internal address space at an offset of EC_Address. A write of Byte 0, Byte 1 or Byte 2 in the EC Data Register  
updates the contents of the register, without any change to the 32- bit internal address space.  
01:  
16-bit access. A read of Byte 0 in the EC Data Register causes the 16 bits in the 32- bit internal address space  
at an offset of EC_Address to be loaded into Byte 0 and Byte 1 of the EC Data Register. The read then returns  
the contents of Byte 0. A read of Byte 2 in the EC Data Register causes the 16 bits in the 32- bit internal address  
space at an offset of EC_Address+2 to be loaded into Byte 2 and Byte 3 of the EC Data Register. The read then  
returns the contents of Byte 2. A read of Byte 1 or Byte 3 in the EC Data Register return the contents of the reg-  
ister, without any update from the 32- bit internal address space.  
A write of Byte 1 in the EC Data Register causes Bytes 1 and 0 of the EC Data Register to be written into the 16  
bits in the 32- bit internal address space at an offset of EC_Address. A write of Byte 3 in the EC Data Register  
causes Bytes 3 and 2 of the EC Data Register to be written into the 16 bits in the 32- bit internal address space  
at an offset of EC_Address+2. A write of Byte 0 or Byte 2 in the EC Data Register updates the contents of the  
register, without any change to the 32- bit internal address space.  
00:  
8-bit access. Any byte read of Byte 0 through Byte 3 in the EC Data Register causes the corresponding byte  
within the 32-bit double word addressed by EC_Address to be loaded into the byte of EC Data Register and  
returned by the read. Any byte write to Byte 0 through Byte 3 in the EC Data Register writes the corresponding  
byte within the 32-bit double word addressed by EC_Address, as well as the byte of the EC Data Register.  
15.8.4  
EMBEDDED MEMORY INTERFACE USAGE  
The Embedded Memory Interface provides a generic facility for communication between the Host and the EC and can  
be used for many functions. Some examples are:  
• Virtual registers. A block of memory in the 32-bit internal address space can be used to implement a set of virtual  
registers. The Host is given direct read-only access to this address space, referred to as peek mode. The EC may  
read or write this memory as needed.  
• Program downloading. Because the Instruction Closely Coupled Memory is implemented in the same 32-bit inter-  
nal address space, the Embedded Memory Interface can be used by the Host to download new program seg-  
ments for the EC in the upper 32KB SRAM. The Read/Write window would be configured by the Host to point to  
the beginning of the loadable program region, which could then be loaded by the Host.  
• Data exchange. The Read/Write portion of the memory window can be used to contain a communication packet.  
The Host, by default, “owns” the packet, and can write it at any time. When the Host wishes to communicate with  
the EC, it sends the EC a command, through the Host-to-EC message facility, to read the packet and perform  
DS00002206H-page 298  
2016-2020 Microchip Technology Inc.  
MEC170x  
some operations as a result. When it is completed processing the packet, the EC can inform the Host, either  
through a message in the EC-to-Host channel or by triggering an event such as an SMI directly. If return results  
are required, the EC can write the results into the Read/Write region, which the Host can read directly when it is  
informed that the EC has completed processing. Depending on the command, the operations could entail update  
of virtual registers in the 32-bit internal address space, reads of any register in the EC address space, or writes of  
any register in the EC address space. Because there are two regions that are defined by the base registers, the  
memory used for the communication packet does not have to be contiguous with a set of virtual registers.  
Because there are two Embedded Memory Interface memory regions, the Embedded Memory Interface cannot be used  
for more than two of these functions at a time. The Host can request that the EC switch from one function to another  
through the use of the Host-to-EC mailbox register.  
The Application ID Register is provided to help software applications track ownership of an Embedded Memory Inter-  
face. An application can write the register with its Application ID, then immediately read it back. If the read value is not  
the same as the value written, then another application has ownership of the interface.  
Note:  
The protocol used to pass commands back and forth through the Embedded Memory Interface Registers  
Interface is left to the System designer. Microchip can provide an application example of working code in  
which the host uses the Embedded Memory Interface registers to gain access to all of the EC registers.  
15.9 Runtime Registers  
The registers listed in the Runtime Register Summary table are for a single instance of the Embedded Memory Interface  
(EMI). Host access for each register listed in this table is defined as an offset in the Host address space to the EMI  
Block’s Base Address, as defined by the instance’s Base Address Register.  
The EC address for each register is formed by adding the Base Address for each instance of the Embedded Memory  
Interface (EMI) shown in the Block Overview and Base Address Table in Section 3.0, "Device Inventory" to the offset  
shown in the “Offset” column.  
The Embedded Memory Interface (EMI) can be accessed from the LPC Host Interface, the ESPI Host Interface, or the  
internal embedded controller (EC). The following table summarizes the host access types supported for each interface.  
TABLE 15-5: HOST R/W ACCESS TYPES  
IP Block Register Banks  
LPC  
ESPI  
EC  
EMI - Runtime Register  
Bank  
Byte Access: R/W  
Word Access: None  
DWord Access: None  
Byte Access: R/W  
Word Access: R/W  
DWord Access: Read Only  
Byte Access: R/W  
Word Access: R/W  
DWord Access: R/W  
TABLE 15-6: RUNTIME REGISTER SUMMARY  
Offset  
Register Name  
HOST-to-EC Mailbox Register  
00h  
01h  
02h  
03h  
04h  
05h  
06h  
07h  
08h  
09h  
0Ah  
0Bh  
0Ch  
EC-to-HOST Mailbox Register  
EC Address LSB Register  
EC Address MSB Register  
EC Data Byte 0 Register  
EC Data Byte 1 Register  
EC Data Byte 2 Register  
EC Data Byte 3 Register  
Interrupt Source LSB Register  
Interrupt Source MSB Register  
Interrupt Mask LSB Register  
Interrupt Mask MSB Register  
Application ID Register  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 299  
MEC170x  
15.9.1  
HOST-TO-EC MAILBOX REGISTER  
00h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 HOST_EC_MBOX  
R/W  
0h  
RESET_  
SYS  
8-bit mailbox used communicate information from the system host to  
the embedded controller. Writing this register generates an event to  
notify the embedded controller.  
The embedded controller has the option of clearing some or all of the  
bits in this register. This is dependent on the protocol layer imple-  
mented using the EMI Mailbox. The host must know this protocol to  
determine the meaning of the value that will be reported on a read.  
This bit field is aliased to the HOST_EC_MBOX bit field in the  
HOST-to-EC Mailbox Register  
15.9.2  
EC-TO-HOST MAILBOX REGISTER  
01h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 EC_HOST_MBOX  
R/WC  
0h  
RESET_  
SYS  
8-bit mailbox used communicate information from the embedded  
controller to the system host. Writing this register generates an event  
to notify the system host.  
The system host has the option of clearing some or all of the bits in  
this register. This is dependent on the protocol layer implemented  
using the EMI Mailbox. The embedded controller must know this pro-  
tocol to determine the meaning of the value that will be reported on a  
read.  
This bit field is aliased to the EC_HOST_MBOX bit field in the EC-to-  
HOST Mailbox Register  
15.9.3  
EC ADDRESS LSB REGISTER  
02h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:2 EC_ADDRESS_LSB  
R/W  
0h  
RESET_  
SYS  
This field defines bits[7:2] of EC_Address [15:0]. Bits[1:0] of the  
EC_Address are always forced to 00b.  
The EC_Address is aligned on a DWord boundary. It is the address  
of the memory being accessed by EC Data Byte 0 Register, which is  
an offset from the programmed base address of the selected  
REGION.  
DS00002206H-page 300  
2016-2020 Microchip Technology Inc.  
MEC170x  
02h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
1:0 ACCESS_TYPE  
R/W  
0h  
RESET_  
SYS  
This field defines the type of access that occurs when the EC Data  
Register is read or written.  
11b=Auto-increment 32-bit access.  
10b=32-bit access.  
01b=16-bit access.  
00b=8-bit access.  
Each of these access types are defined in detail in Section 15.8.3,  
"Access Types".  
15.9.4  
EC ADDRESS MSB REGISTER  
03h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7 REGION  
R/W  
0h  
RESET_  
SYS  
The field specifies which of two segments in the 32-bit internal  
address space is to be accessed by the EC_Address[14:2] to gener-  
ate accesses to the memory.  
1=The address defined by EC_Address[14:2] is relative to the base  
address specified by the Memory Base Address 1 Register.  
0=The address defined by EC_Address[14:2] is relative to the base  
address specified by the Memory Base Address 0 Register.  
6:0 EC_ADDRESS_MSB  
R/W  
0h  
RESET_  
SYS  
This field defines bits[14:8] of EC_Address. Bits[1:0] of the EC_Ad-  
dress are always forced to 00b.  
The EC_Address is aligned on a DWord boundary. It is the address  
of the memory being accessed by EC Data Byte 0 Register, which is  
an offset from the programmed base address of the selected  
REGION.  
15.9.5  
EC DATA BYTE 0 REGISTER  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 EC_DATA_BYTE_0  
R/W  
0h  
RESET_  
SYS  
This is byte 0 (Least Significant Byte) of the 32-bit EC Data Register.  
Use of the Data Byte registers to access EC memory is defined in  
detail in Section 15.8.2, "EC Data Register".  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 301  
MEC170x  
15.9.6  
EC DATA BYTE 1 REGISTER  
05h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 EC_DATA_BYTE_1  
R/W  
0h  
RESET_  
SYS  
This is byte 1 of the 32-bit EC Data Register.  
Use of the Data Byte registers to access EC memory is defined in  
detail in Section 15.8.2, "EC Data Register".  
15.9.7  
EC DATA BYTE 2 REGISTER  
06h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 EC_DATA_BYTE_2  
R/W  
0h  
RESET_  
SYS  
This is byte 2 of the 32-bit EC Data Register.  
Use of the Data Byte registers to access EC memory is defined in  
detail in Section 15.8.2, "EC Data Register".  
15.9.8  
EC DATA BYTE 3 REGISTER  
07h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 EC_DATA_BYTE_3  
R/W  
0h  
RESET_  
SYS  
This is byte 3 (Most Significant Byte) of the 32-bit EC Data Register.  
Use of the Data Byte registers to access EC memory is defined in  
detail in Section 15.8.2, "EC Data Register".  
15.9.9  
INTERRUPT SOURCE LSB REGISTER  
08h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:1 EC_SWI_LSB  
R/WC  
0h  
RESET_  
SYS  
EC Software Interrupt Least Significant Bits. These bits are software  
interrupt bits that may be set by the EC to notify the host of an event.  
The meaning of these bits is dependent on the firmware implemen-  
tation.  
Each bit in this field is cleared when written with a ‘1b’. The ability to  
clear the bit can be disabled by the EC if the corresponding bit in the  
Host Clear Enable Register is set to ‘0b’. This may be used by firm-  
ware for events that cannot be cleared while the event is still active.  
DS00002206H-page 302  
2016-2020 Microchip Technology Inc.  
MEC170x  
08h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
0 EC_WR  
R
0h  
RESET_  
SYS  
EC Mailbox Write. This bit is set when the EC-to-HOST Mailbox  
Register has been written by the EC at offset 01h of the EC-Only  
registers.  
Note: there is no corresponding mask bit in the Interrupt Mask LSB  
Register.  
15.9.10 INTERRUPT SOURCE MSB REGISTER  
09h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 EC_SWI_MSB  
R/WC  
0h  
RESET_  
SYS  
EC Software Interrupt Most Significant Bits. These bits are software  
interrupt bits that may be set by the EC to notify the host of an event.  
The meaning of these bits is dependent on the firmware implemen-  
tation.  
Each bit in this field is cleared when written with a ‘1b’. The ability to  
clear the bit can be disabled by the EC. if the corresponding bit in the  
Host Clear Enable Register is set to ‘0b’. This may be used by firm-  
ware for events that cannot be cleared while the event is still active.  
15.9.11 INTERRUPT MASK LSB REGISTER  
0Ah  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:1 EC_SWI_EN_LSB  
R/W  
0h  
RESET_  
SYS  
EC Software Interrupt Enable Least Significant Bits. Each bit that is  
set to ‘1b’ in this field enables the generation of a Host Event inter-  
rupt by the corresponding bit in the EC_SWI field in the Interrupt  
Source LSB Register.  
0 TEST  
R/W  
0h  
RESET_  
SYS  
15.9.12 INTERRUPT MASK MSB REGISTER  
0Bh  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 EC_SWI_EN_MSB  
R/W  
0h  
RESET_  
SYS  
EC Software Interrupt Enable Most Significant Bits. Each bit that is  
set to ‘1b’ in this field enables the generation of a Host Event inter-  
rupt by the corresponding bit in the EC_SWI field in the Interrupt  
Source MSB Register.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 303  
MEC170x  
15.9.13 APPLICATION ID REGISTER  
0Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 APPLICATION_ID  
R/W  
0h  
RESET_  
SYS  
When this field is 00h it can be written with any value. When set to a  
non-zero value, writing that value will clear this register to 00h.  
When set to a non-zero value, writing any value other than the cur-  
rent contents will have no effect.  
15.10 EC 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 each instance of the Embedded Memory Interface (EMI) Block in the Block Overview  
and Base Address Table in Section 3.0, "Device Inventory".  
TABLE 15-7: EC-ONLY REGISTER SUMMARY  
Offset  
Register Name  
HOST-to-EC Mailbox Register  
100h  
101h  
104h  
108h  
10Ah  
10Ch  
110h  
112h  
114h  
116h  
EC-to-HOST Mailbox Register  
Memory Base Address 0 Register  
Memory Read Limit 0 Register  
Memory Write Limit 0 Register  
Memory Base Address 1 Register  
Memory Read Limit 1 Register  
Memory Write Limit 1 Register  
Interrupt Set Register  
Host Clear Enable Register  
15.10.1 HOST-TO-EC MAILBOX REGISTER  
100h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 HOST_EC_MBOX  
R/WC  
0h  
RESET_  
SYS  
8-bit mailbox used communicate information from the system host to  
the embedded controller. Writing this register generates an event to  
notify the embedded controller.  
The embedded controller has the option of clearing some or all of  
the bits in this register. This is dependent on the protocol layer imple-  
mented using the EMI Mailbox. The host must know this protocol to  
determine the meaning of the value that will be reported on a read.  
This bit field is aliased to the HOST_EC_MBOX bit field in the  
HOST-to-EC Mailbox Register.  
DS00002206H-page 304  
2016-2020 Microchip Technology Inc.  
MEC170x  
15.10.2 EC-TO-HOST MAILBOX REGISTER  
01h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
7:0 EC_HOST_MBOX  
R/W  
0h  
RESET_  
SYS  
8-bit mailbox used communicate information from the embedded  
controller to the system host. Writing this register generates an  
event to notify the system host.  
The system host has the option of clearing some or all of the bits in  
this register. This is dependent on the protocol layer implemented  
using the EMI Mailbox. The embedded controller must know this  
protocol to determine the meaning of the value that will be reported  
on a read.  
This bit field is aliased to EC_HOST_MBOX bit field in the EC-to-  
HOST Mailbox Register.  
15.10.3 MEMORY BASE ADDRESS 0 REGISTER  
104h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:2 MEMORY_BASE_ADDRESS_0  
R/W  
0h  
RESET_  
SYS  
This memory base address defines the beginning of region 0 in the  
Embedded Controller’s 32-bit internal address space. Memory allo-  
cated to region 0 is intended to be shared between the Host and the  
EC. The region defined by this base register is used when bit 15 of  
the EC Address Register is 0. The access will be to a memory loca-  
tion at an offset defined by the EC_Address relative to the beginning  
of the region defined by this register. Therefore, a read or write to the  
memory that is triggered by the EC Data Register will occur at Mem-  
ory_Base_Address_0 + EC_Address.  
1:0 Reserved  
R
-
-
15.10.4 MEMORY READ LIMIT 0 REGISTER  
108h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
15 Reserved  
R
-
-
14:2 MEMORY_READ_LIMIT_0  
R/W  
0h  
RESET_  
SYS  
Whenever a read of any byte in the EC Data Register is attempted,  
and bit 15 of EC_Address is 0, the field EC_Address[14:2] in the  
EC_Address_Register is compared to this field. As long as EC_Ad-  
dress[14:2] is less than this field the EC_Data_Register will be  
loaded from the 32-bit internal address space.  
1:0 Reserved  
R
-
-
2016-2020 Microchip Technology Inc.  
DS00002206H-page 305  
MEC170x  
15.10.5 MEMORY WRITE LIMIT 0 REGISTER  
10Ah  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
15 Reserved  
R
-
-
14:2 MEMORY_WRITE_LIMIT_0  
R/W  
0h  
RESET_  
SYS  
Whenever a write of any byte in EC DATA Register is attempted and  
bit 15 of EC_Address is 0, the field EC_ADDRESS_MSB in the  
EC_Address Register is compared to this field. As long as EC_Ad-  
dress[14:2] is less than Memory_Write_Limit_0[14:2] the addressed  
bytes in the EC DATA Register will be written into the internal 32-bit  
address space. If EC_Address[14:2] is greater than or equal to the  
Memory_Write_Limit_0[14:2] no writes will take place.  
1:0 Reserved  
R
-
-
15.10.6 MEMORY BASE ADDRESS 1 REGISTER  
10Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:2 MEMORY_BASE_ADDRESS_1  
R/W  
0h  
RESET_  
SYS  
This memory base address defines the beginning of region 1 in the  
Embedded Controller’s 32-bit internal address space. Memory allo-  
cated to region 1 is intended to be shared between the Host and the  
EC. The region defined by this base register is used when bit 15 of  
the EC Address Register is 1. The access will be to a memory loca-  
tion at an offset defined by the EC_Address relative to the beginning  
of the region defined by this register. Therefore, a read or write to the  
memory that is triggered by the EC Data Register will occur at Mem-  
ory_Base_Address_1 + EC_Address.  
1:0 Reserved  
R
-
-
15.10.7 MEMORY READ LIMIT 1 REGISTER  
110h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
15 Reserved  
R
-
-
14:2 MEMORY_READ_LIMIT_1  
R/W  
0h  
RESET_  
SYS  
Whenever a read of any byte in the EC Data Register is attempted,  
and bit 15 of EC_ADDRESS is 1, the field EC_ADDRESS in the  
EC_Address_Register is compared to this field. As long as EC_AD-  
DRESS is less than this value, the EC_Data_Register will be loaded  
from the 32-bit internal address space.  
1:0 Reserved  
R
-
-
DS00002206H-page 306  
2016-2020 Microchip Technology Inc.  
MEC170x  
15.10.8 MEMORY WRITE LIMIT 1 REGISTER  
112h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
15 Reserved  
R
-
-
14:2 MEMORY_WRITE_LIMIT_1  
R/W  
0h  
RESET_  
SYS  
Whenever a write of any byte in EC DATA Register is attempted and  
bit 15 of EC_Address is 1, the field EC_Address[14:2] in the EC_Ad-  
dress Register is compared to this field. As long as EC_Ad-  
dress[14:2] is less than Memory_Write_Limit_1[14:2] the addressed  
bytes in the EC DATA Register will be written into the internal 32-bit  
address space. If EC_Address[14:2] is greater than or equal to the  
Memory_Write_Limit_1[14:2] no writes will take place.  
1:0 Reserved  
R
-
-
15.10.9 INTERRUPT SET REGISTER  
114h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
15:1 EC_SWI_SET  
R/WS  
0h  
RESET_  
SYS  
EC Software Interrupt Set. This register provides the EC with a  
means of updating the Interrupt Source Registers. Writing a bit in  
this field with a ‘1b’ sets the corresponding bit in the Interrupt Source  
Register to ‘1b’. Writing a bit in this field with a ‘0b’ has no effect.  
Reading this field returns the current contents of the Interrupt Source  
Register.  
0 Reserved  
R
-
-
15.10.10 HOST CLEAR ENABLE REGISTER  
116h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
15:1 HOST_CLEAR_ENABLE  
R/W  
0h  
RESET_  
SYS  
When a bit in this field is ‘0b’, the corresponding bit in the Interrupt  
Source Register cannot be cleared by writes to the Interrupt Source  
Register. When a bit in this field is ‘1b’, the corresponding bit in the  
Interrupt Source Register can be cleared when that register bit is  
written with a ‘1b’.  
These bits allow the EC to control whether the status bits in the Inter-  
rupt Source Register are based on an edge or level event.  
0 Reserved  
R
-
-
2016-2020 Microchip Technology Inc.  
DS00002206H-page 307  
MEC170x  
16.0 MAILBOX INTERFACE  
16.1 Overview  
The Mailbox provides a standard run-time mechanism for the host to communicate with the Embedded Controller (EC)  
16.2 References  
No references have been cited for this feature.  
16.3 Terminology  
There is no terminology defined for this section.  
16.4 Interface  
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.  
FIGURE 16-1:  
I/O DIAGRAM OF BLOCK  
Mailbox Interface  
Host Interface  
Signal Description  
Power, Clocks and Reset  
Interrupts  
16.5 Signal Description  
TABLE 16-1: SIGNAL DESCRIPTION TABLE  
Name  
Direction  
Description  
nSMI  
OUTPUT  
SMI alert signal to the Host.  
16.6 Host Interface  
The Mailbox interface is accessed by host software via a registered interface, as defined in Section 16.11, "Runtime  
Registers" and Section 16.12, "EC Registers".  
DS00002206H-page 308  
2016-2020 Microchip Technology Inc.  
MEC170x  
16.7 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
16.7.1  
POWER DOMAINS  
TABLE 16-2: POWER SOURCES  
Name  
Description  
VTR  
The logic and registers implemented in this block are powered by this  
power well.  
16.7.2  
CLOCK INPUTS  
TABLE 16-3: CLOCK INPUTS  
Name  
Description  
48MHz  
This is the clock source for Mailbox logic.  
16.7.3  
RESETS  
TABLE 16-4: RESET SIGNALS  
Name  
Description  
RESET_SYS  
This signal resets all the registers and logic in this block to their default  
state.  
RESET_VCC  
This signal is asserted when the main power rail is asserted. The Host  
Access Port is reset when this signal is de-asserted.  
16.8 Interrupts  
TABLE 16-5: SYSTEM INTERRUPTS  
Source  
Description  
MBX_Host_SERIRQ  
This interrupt source for the SERIRQ logic is generated when the EC_WR  
bit is ‘1’ and enabled by the EC_WR_EN bit.  
MBX_Host_SMI  
This interrupt source for the SERIRQ logic is generated when any of the  
EC_SWI bits are asserted and the corresponding EC_SWI_EN bit are  
asserted as well. This event is also asserted if the EC_WR/EC_WR_EN  
event occurs as well.  
This bit is also routed to the nSMI pin.  
TABLE 16-6: EC INTERRUPTS  
Source  
Description  
MBX  
Interrupt generated by the host writing the HOST-to-EC Mailbox register.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 309  
MEC170x  
16.9 Low Power Modes  
The Mailbox automatically enters a low power mode whenever it is not actively.  
16.10 Description  
FIGURE 16-2:  
MAILBOX BLOCK DIAGRAM  
HOST-to-EC  
36 8-bit Mailbox  
Registers  
Host CPU  
EC  
EC-to-HOST  
SMI  
16.10.1 HOST ACCESS PORT  
The Mailbox includes a total of 36 index-addressable 8-bit Mailbox registers and a two byte Mailbox Registers Host  
Access Port. Thirty-two of the 36 index-addressable 8-bit registers are EC Mailbox registers, which can be read and  
written by both the EC and the Host. The remaining four registers are used for signaling between the Host and the EC.  
The Host Access Port consists of two 8-bit run-time registers that occupy two addresses in the HOST I/O space, MBX-  
_INDEX Register and MBX_DATA Register. The Host Access Port is used by the host to access the 36 index-address-  
able 8-bit registers.  
To access a Mailbox register once the Mailbox Registers Interface Base Address has been initialized, the Mailbox reg-  
ister index address is first written to the MBX Index port. After the Index port has been written, the Mailbox data byte  
can be read or written via the MBX data port.  
The Host Access Port is intended to be accessed by the Host only, however it may be accessed by the EC at the Offset  
shown from its EC base address in Table 16-7, "Runtime Register Summary".  
16.10.2 HOST INTERRUPT GENERATION  
The Mailbox can generate a SERIRQ event for EC-to-HOST EC events, using the EC-to-Host Mailbox Register. This  
interrupt is routed to the SERIRQ block.  
The Mailbox can also generate an SMI event, using SMI Interrupt Source Register. The SMI event can be routed to  
any frame in the SERIRQ stream as well as to the nSMI pin. The SMI event can be routed to nSMI pin by selecting the  
nSMI signal function in the associated GPIO Pin Control Register. The SMI event produces a standard active low frame  
on the serial IRQ stream and active low level on the open drain nSMI pin.  
Routing for both the SERIRQ logic and the nSMI pin is shown in Figure 16-3.  
DS00002206H-page 310  
2016-2020 Microchip Technology Inc.  
MEC170x  
FIGURE 16-3:  
MAILBOX SERIRQ AND SMI ROUTING  
SIRQ Mapping  
MBX_Host_SIRQ  
MBX_Host_SMI  
Mailbox Registers  
SIRQ  
nSMI  
GPIO  
Pin Control Register  
16.10.3 EC MAILBOX CONTROL  
The HOST-to-EC Mailbox Register and EC-to-Host Mailbox Register are designed to pass commands between the host  
and the EC. If enabled, these registers can generate interrupts to both the Host and the EC.  
The two registers are not dual-ported, so the HOST BIOS and Keyboard BIOS must be designed to properly share these  
registers. When the host performs a write of the HOST-to-EC Mailbox Register, an interrupt will be generated and seen  
by the EC if unmasked. When the EC writes FFh to the Mailbox Register, the register resets to 00h, providing a simple  
means for the EC to inform the host that an operation has been completed.  
When the EC writes the EC-to-Host Mailbox Register, an SMI may be generated and seen by the host if unmasked.  
When the Host CPU writes FFh to the register, the register resets to 00h, providing a simple means for the host to inform  
that EC that an operation has been completed.  
Note:  
The protocol used to pass commands back and forth through the Mailbox Registers Interface is left to the  
System designer. Microchip can provide an application example of working code in which the host uses the  
Mailbox registers to gain access to all of the EC registers.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 311  
MEC170x  
16.11 Runtime Registers  
The registers listed in the Runtime Register Summary table are for a single instance of the Mailbox Interface. Host  
access for each register listed in this table is defined as an offset in the Host address space to the Block’s Base Address,  
as defined by the instance’s Base Address Register.  
The EC address for each register is formed by adding the Base Address for the Mailbox Interface shown in the Block  
Overview and Base Address Table in Section 3.0, "Device Inventory" to the offset shown in the “Offset” column.  
TABLE 16-7: RUNTIME REGISTER SUMMARY  
Offset  
Register Name  
0h  
1h  
MBX_INDEX Register  
MBX_DATA Register  
16.11.1 MBX_INDEX REGISTER  
0h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 INDEX  
R/W  
0h  
RESET_  
VCC  
The index into the mailbox registers listed in Table 16-8, "Register  
Summary".  
16.11.2 MBX_DATA REGISTER  
01h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 DATA  
R/W  
0h  
RESET_  
VCC  
Data port used to access the registers listed in Table 16-8, "Register  
Summary".  
16.12 EC Registers  
Registers for this block are shown in the following summary table. Addresses for each register are determined by adding  
the offset shown in the “EC Offset” column to the Base Address for each instance of the Mailbox Interface Block in the  
Block Overview and Base Address Table in Section 3.0, "Device Inventory". In addition, the registers can be accessed  
through the Host Access Port, at the indexes listed in the following tables as “MBX_INDEX”.  
TABLE 16-8: REGISTER SUMMARY  
Host I/O Index  
EC Offset  
Register Name  
(MBX_INDEX)  
100h  
104h  
108h  
10Ch  
110h  
00h  
01h  
02h  
03h  
10h  
11h  
12h  
13h  
HOST-to-EC Mailbox Register  
EC-to-Host Mailbox Register  
SMI Interrupt Source Register  
SMI Interrupt Mask Register  
Mailbox register [0]  
Mailbox register [1]  
Mailbox register [2]  
Mailbox register [3]  
DS00002206H-page 312  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 16-8: REGISTER SUMMARY (CONTINUED)  
Host I/O Index  
EC Offset  
Register Name  
(MBX_INDEX)  
114h  
118h  
11Ch  
120h  
124h  
128h  
12Ch  
14h  
15h  
16h  
17h  
18h  
19h  
1Ah  
1Bh  
1Ch  
1Dh  
1Eh  
1Fh  
20h  
21h  
22h  
23h  
24h  
25h  
26h  
27h  
28h  
29h  
2Ah  
2Bh  
2Ch  
2Dh  
2Eh  
2Fh  
Mailbox register [4]  
Mailbox register [5]  
Mailbox register [6]  
Mailbox register [7]  
Mailbox register [8]  
Mailbox register [9]  
Mailbox register [A]  
Mailbox register [B]  
Mailbox register [C]  
Mailbox register [D]  
Mailbox register [E]  
Mailbox register [F]  
Mailbox register [10]  
Mailbox register [11]  
Mailbox register [12]  
Mailbox register [13]  
Mailbox register [14]  
Mailbox register [15]  
Mailbox register [16]  
Mailbox register [17]  
Mailbox register [18]  
Mailbox register [19]  
Mailbox register [1A]  
Mailbox register [1B]  
Mailbox register [1C]  
Mailbox register [1D]  
Mailbox register [1E]  
Mailbox register [1F]  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 313  
MEC170x  
16.12.1 HOST-TO-EC MAILBOX REGISTER  
100h  
00h  
Offset  
MBX_  
INDEX  
Reset  
Event  
Bits  
Description  
Type  
Default  
7:0 HOST_EC_MBOX  
Host  
Access  
Port:  
0h  
RESET_  
SYS  
If enabled, an interrupt to the EC marked by the MBX bit in the Inter-  
rupt Aggregator will be generated whenever the Host writes this reg-  
ister. The interrupt is cleared when this register is read by the EC.  
R/W  
EC:  
R/WC  
This register is cleared when written with FFh.  
This field is Read/Write when accessed through the Host Access  
Port. When written at the EC offset, each bit in this field is cleared  
when written with a ‘1b’. Writes of ‘0b’ have no effect.  
16.12.2 EC-TO-HOST MAILBOX REGISTER  
104h  
01h  
Offset  
MBX_  
INDEX  
Reset  
Event  
Bits  
Description  
Type  
Default  
7:0 EC_HOST_MBOX  
Host  
Access  
Port:  
0h  
RESET_  
SYS  
An EC write to this register will set bit EC_WR in the SMI Interrupt  
Source Register to ‘1b’. If enabled, this will generate a Host SMI or a  
Host SERIRQ. The SERIRQ is cleared when this register is read by  
the Host.  
R/WC  
EC:  
R/W  
This register is cleared when written with FFh.  
This field is Read/Write when accessed by the EC at the EC offset.  
When written through the Host Access Port, each bit in this field is  
cleared when written with a ‘1b’. Writes of ‘0b’ have no effect.  
16.12.3 SMI INTERRUPT SOURCE REGISTER  
108h  
02h  
Offset  
MBX_  
INDEX  
Reset  
Event  
Bits  
Description  
Type  
Default  
7:1 EC_SWI  
Host  
Access  
Port:  
R/WC  
EC:  
0h  
RESET_  
SYS  
EC Software Interrupt. An SERIRQ to the Host is generated when  
any bit in this register when this bit is set to ‘1b’ and the correspond-  
ing bit in the SMI Interrupt Mask Register register is ‘1b’.  
R/W  
This field is Read/Write when accessed by the EC at the EC offset.  
When written through the Host Access Port, each bit in this field is  
cleared when written with a ‘1b’. Writes of ‘0b’ have no effect.  
DS00002206H-page 314  
2016-2020 Microchip Technology Inc.  
MEC170x  
108h  
02h  
Offset  
MBX_  
INDEX  
Reset  
Default  
Bits  
Description  
Type  
Event  
0 EC_WR  
Host  
Access  
Port:  
R
EC:  
-
0h  
RESET_  
SYS  
EC Mailbox Write. This bit is set automatically when the EC-to-Host  
Mailbox Register has been written. An SMI or SERIRQ to the Host is  
generated when n this bit is ‘1b’ and the corresponding bit in the SMI  
Interrupt Mask Register register is ‘1b’.  
This bit is automatically cleared by a read of the EC-to-Host Mailbox  
Register through the Host Access Port.  
This bit is read-only when read through the Host Access Port. It is  
neither readable nor writable directly by the EC when accessed at  
the EC offset.  
16.12.4 SMI INTERRUPT MASK REGISTER  
10Ch  
03h  
Offset  
MBX_  
INDEX  
Reset  
Event  
Bits  
Description  
Type  
Default  
7:1 EC_SWI_EN  
R/W  
0h  
RESET_  
SYS  
EC Software Interrupt Enable. If this bit is ‘1b’, the bit EC_WR in the  
SMI Interrupt Source Register is enabled for the generation of SER-  
IRQ or nSMI events.  
0 EC_WR_EN  
R/W  
0h  
RESET_  
SYS  
EC Mailbox Write.Interrupt Enable. Each bit in this field that is ‘1b’  
enables the generation of SERIRQ interrupts when the correspond-  
ing bit in the EC_SWI field in the SMI Interrupt Source Register is  
‘1b’.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 315  
MEC170x  
17.0 UART  
17.1 Introduction  
The 16550 UART (Universal Asynchronous Receiver/Transmitter) is a full-function Serial Port that supports the stan-  
dard RS-232 Interface.  
17.2 References  
• EIA Standard RS-232-C specification  
17.3 Interface  
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.  
FIGURE 17-1:  
I/O DIAGRAM OF BLOCK  
UART  
Host Interface  
Signal Description  
Power, Clocks and Reset  
Interrupts  
17.4 Signal Description  
TABLE 17-1: SIGNAL DESCRIPTION TABLE  
Name  
Direction  
Description  
DTR#  
Output  
Active low Data Terminal ready output for the Serial Port.  
Handshake output signal notifies modem that the UART is ready to  
transmit data. This signal can be programmed by writing to bit 1 of  
the Modem Control Register (MCR).  
Note:  
Defaults to tri-state on V3_DUAL power on.  
DCD#  
Output  
Active low Data Carrier Detect input for the serial port.  
Handshake signal which notifies the UART that carrier signal is  
detected by the modem. The CPU can monitor the status of DCD#  
signal by reading bit 7 of Modem Status Register (MSR). A DCD#  
signal state change from low to high after the last MSR read will set  
MSR bit 3 to a 1. If bit 3 of Interrupt Enable Register is set, the inter-  
rupt is generated when DCD # changes state.  
DS00002206H-page 316  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 17-1: SIGNAL DESCRIPTION TABLE (CONTINUED)  
Name  
Direction  
Description  
DSR#  
Input  
Active low Data Set Ready input for the serial port. Handshake sig-  
nal which notifies the UART that the modem is ready to establish  
the communication link. The CPU can monitor the status of DSR#  
signal by reading bit 5 of Modem Status Register (MSR). A DSR#  
signal state change from low to high after the last MSR read will set  
MSR bit 1 to a 1. If bit 3 of Interrupt Enable Register is set, the inter-  
rupt is generated when DSR# changes state.  
RI#  
Input  
Active low Ring Indicator input for the serial port. Handshake signal  
which notifies the UART that the telephone ring signal is detected  
by the modem. The CPU can monitor the status of RI# signal by  
reading bit 6 of Modem Status Register (MSR). A RI# signal state  
change from low to high after the last MSR read will set MSR bit 2 to  
a 1. If bit 3 of Interrupt Enable Register is set, the interrupt is gener-  
ated when RI# changes state.  
RTS#  
CTS#  
Output  
Input  
Active low Request to Send output for the Serial Port. Handshake  
output signal notifies modem that the UART is ready to transmit  
data. This signal can be programmed by writing to bit 1 of the  
Modem Control Register (MCR). The hardware reset will reset the  
RTS# signal to inactive mode (high). RTS# is forced inactive during  
loop mode operation. Defaults to tri-state on V3_DUAL power on.  
Active low Clear to Send input for the serial port. Handshake signal  
which notifies the UART that the modem is ready to receive data.  
The CPU can monitor the status of CTS# signal by reading bit 4 of  
Modem Status Register (MSR). A CTS# signal state change from  
low to high after the last MSR read will set MSR bit 0 to a 1. If bit 3  
of the Interrupt Enable Register is set, the interrupt is generated  
when CTS# changes state. The CTS# signal has no effect on the  
transmitter.  
TXD  
RXD  
Output  
Input  
Transmit serial data output.  
Receiver serial data input.  
17.5 Host Interface  
The UART is accessed by host software via a registered interface, as defined in Section 17.11, "Configuration Registers"  
and Section 17.10, "Runtime Registers".  
17.6 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
17.6.1  
POWER DOMAINS  
TABLE 17-2: POWER SOURCES  
Name  
Description  
VTR  
This Power Well is used to power the registers and logic in this block.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 317  
MEC170x  
17.6.2  
CLOCKS  
TABLE 17-3: CLOCK INPUTS  
Name  
Description  
UART_CLK  
An external clock that may be used as an alternative to the internally-gen-  
erated 1.8432MHz and 24MHz baud clocks.  
Selection between internal baud clocks and an external baud clock is  
configured by the CLK_SRC bit in the Configuration Select Register.  
48MHz  
This is the main clock domain.  
Because the clock input must be within ± 2% in order to generate stan-  
dard baud rates, the 48MHz clock must be generated by a reference  
clock with better than 1% accuracy (i.e., external crystal) and locked to its  
frequency before the UART will work with the standard rates.  
TABLE 17-4: DERIVED CLOCKS  
Name  
Description  
1.8432MHz  
The UART requires a 1.8432 MHz ± 2% clock input for baud rate genera-  
tion of standard baud rates up to 115,200 baud. It is derived from the sys-  
tem 48MHz clock domain.  
24MHz  
A 24MHz ± 2% clock input for baud rate generation, derived from the sys-  
tem 48MHz clock domain. It may be used as an alternative to the  
1.8432MHz clock, generating non-standard baud rates up to 1,500,000  
baud.  
17.6.3  
RESETS  
TABLE 17-5: RESET SIGNALS  
Name  
Description  
RESET_SYS  
RESET_VCC  
This reset is asserted when VTR is applied.  
This is an alternate reset condition, typically asserted when the main  
power rail is asserted.  
RESET  
This reset is determined by the POWER bit signal. When the power bit  
signal is 1, this signal is equal to RESET_VCC, if present. When the  
power bit signal is 0, this signal is equal to RESET_SYS.  
17.7 Interrupts  
This section defines the Interrupt Sources generated from this block.  
TABLE 17-6: SYSTEM INTERRUPTS  
Source  
Description  
UART  
The UART interrupt event output indicates if an interrupt is pending. See  
Table 17-12, "Interrupt Control Table".  
TABLE 17-7: EC INTERRUPTS  
Source  
Description  
UART  
The UART interrupt event output indicates if an interrupt is pending. See  
Table 17-12, "Interrupt Control Table".  
17.8 Low Power Modes  
The UART may be put into a low power state by the chip’s Power, Clocks, and Reset (PCR) circuitry.  
DS00002206H-page 318  
2016-2020 Microchip Technology Inc.  
MEC170x  
17.9 Description  
The UART is compatible with the 16450, the 16450 ACE registers and the 16C550A. The UART performs serial-to-par-  
allel conversions on received characters and parallel-to-serial conversions on transmit characters. Two sets of baud  
rates are provided. When the 1.8432 MHz source clock is selected, standard baud rates from 50 to 115.2K are available.  
When the source clock is 24 MHz, baud rates up to 1,500K are available. The character options are programmable for  
1 start; 1, 1.5 or 2 stop bits; even, odd, sticky or no parity; and prioritized interrupts. The UART contains a programmable  
baud rate generator that is capable of dividing the input clock signal by 1 to 65535. The UART is also capable of sup-  
porting the MIDI data rate. Refer to the Configuration Registers for information on disabling, powering down and chang-  
ing the base address of the UART. The UART interrupt is enabled by programming OUT2 of the UART to logic “1.”  
Because OUT2 is logic “0,” it disables the UART's interrupt. The UART is accessible by both the Host and the EC.  
17.9.1  
PROGRAMMABLE BAUD RATE  
The Serial Port contains a programmable Baud Rate Generator that is capable of dividing the internal clock source by  
any divisor from 1 to 65535. Unless an external clock source is configured, the clock source is either the 1.8432MHz  
clock source or the 48MHz clock source. The output frequency of the Baud Rate Generator is 16x the Baud rate. Two  
eight bit latches store the divisor in 16 bit binary format. These Divisor Latches must be loaded during initialization in  
order to ensure desired operation of the Baud Rate Generator. Upon loading either of the Divisor Latches, a 16 bit Baud  
counter is immediately loaded. This prevents long counts on initial load. If a 0 is loaded into the BRG registers, the output  
divides the clock by the number 3. If a 1 is loaded, the output is the inverse of the input oscillator. If a two is loaded, the  
output is a divide by 2 signal with a 50% duty cycle. If a 3 or greater is loaded, the output is low for 2 bits and high for  
the remainder of the count.  
The following tables show possible baud rates.  
TABLE 17-8: UART BAUD RATES USING CLOCK SOURCE 1.8432MHz  
Divisor Used to Generate  
Desired Baud Rate  
BAUD_CLOCK_SEL  
16X Clock  
50  
75  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2304  
1536  
1047  
857  
768  
384  
192  
96  
110  
134.5  
150  
300  
600  
1200  
1800  
2000  
2400  
3600  
4800  
7200  
9600  
19200  
38400  
57600  
115200  
64  
58  
48  
32  
24  
16  
12  
6
3
2
1
2016-2020 Microchip Technology Inc.  
DS00002206H-page 319  
MEC170x  
TABLE 17-9: UART BAUD RATES USING CLOCK SOURCE 48MHz  
Divisor Used to Generate  
16X Clock  
Desired Baud Rate  
BAUD_CLOCK_SEL  
125000  
136400  
150000  
166700  
187500  
214300  
250000  
300000  
375000  
500000  
750000  
1500000  
3000000  
1
1
1
1
1
1
1
1
1
1
1
1
1
24  
22  
20  
18  
16  
14  
12  
10  
8
6
4
2
1
17.10 Runtime Registers  
The registers listed in the Runtime Register Summary table are for a single instance of the UART. Host access for each  
register listed in this table is defined as an offset in the Host address space to the Block’s Base Address, as defined by  
the instance’s Base Address Register.  
The EC address for each register is formed by adding the Base Address for each instance of the UART shown in the  
Block Overview and Base Address Table in Section 3.0, "Device Inventory" to the offset shown in the “Offset” column.  
TABLE 17-10: RUNTIME REGISTER SUMMARY  
DLAB  
Offset  
Register Name  
Note 1  
0
0
1
1
0
x
x
x
x
x
x
x
0h  
0h  
Receive Buffer Register  
Transmit Buffer Register  
0h  
Programmable Baud Rate Generator LSB Register  
Programmable Baud Rate Generator MSB Register  
Interrupt Enable Register  
1h  
1h  
02h  
02h  
03h  
04h  
05h  
06h  
07h  
FIFO Control Register  
Interrupt Identification Register  
Line Control Register  
Modem Control Register  
Line Status Register  
Modem Status Register  
Scratchpad Register  
Note 1: DLAB is bit 7 of the Line Control Register.  
DS00002206H-page 320  
2016-2020 Microchip Technology Inc.  
MEC170x  
17.10.1 RECEIVE BUFFER REGISTER  
0h (DLAB=0)  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
7:0 RECEIVED_DATA  
R
0h  
RESET  
This register holds the received incoming data byte. Bit 0 is the  
least significant bit, which is transmitted and received first.  
Received data is double buffered; this uses an additional shift reg-  
ister to receive the serial data stream and convert it to a parallel 8  
bit word which is transferred to the Receive Buffer register. The  
shift register is not accessible.  
17.10.2 TRANSMIT BUFFER REGISTER  
0h (DLAB=0)  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 TRANSMIT_DATA  
W
0h  
RESET  
This register contains the data byte to be transmitted. The trans-  
mit buffer is double buffered, utilizing an additional shift register  
(not accessible) to convert the 8 bit data word to a serial format.  
This shift register is loaded from the Transmit Buffer when the  
transmission of the previous byte is complete.  
17.10.3 PROGRAMMABLE BAUD RATE GENERATOR LSB REGISTER  
00h (DLAB=1)  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 BAUD_RATE_DIVISOR_LSB  
R/W  
0h  
RESET  
See Section 17.9.1, "Programmable Baud Rate".  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 321  
MEC170x  
17.10.4 PROGRAMMABLE BAUD RATE GENERATOR MSB REGISTER  
01h (DLAB=1)  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7
BAUD_CLK_SEL  
If CLK_SRC is ‘0’:  
R/W  
0h  
RESET  
• 0=The baud clock is derived from the 1.8432MHz.  
• 1=IThe baud clock is derived from the 24MHz.  
If CLK_SRC is ‘1’:  
• This bit has no effect  
6:0 BAUD_RATE_DIVISOR_MSB  
R/W  
0h  
RESET  
See Section 17.9.1, "Programmable Baud Rate".  
17.10.5 INTERRUPT ENABLE REGISTER  
The lower four bits of this register control the enables of the five interrupt sources of the Serial Port interrupt. It is possible  
to totally disable the interrupt system by resetting bits 0 through 3 of this register. Similarly, setting the appropriate bits  
of this register to a high, selected interrupts can be enabled. Disabling the interrupt system inhibits the Interrupt Identi-  
fication Register and disables any Serial Port interrupt out of the MEC170x. All other system functions operate in their  
normal manner, including the Line Status and MODEM Status Registers. The contents of the Interrupt Enable Register  
are described below.  
01h (DLAB=0)  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:4 Reserved  
R
-
-
3
EMSI  
R/W  
0h  
RESET  
This bit enables the MODEM Status Interrupt when set to logic “1”.  
This is caused when one of the Modem Status Register bits  
changes state.  
2
ELSI  
R/W  
0h  
RESET  
This bit enables the Received Line Status Interrupt when set to  
logic “1”. The error sources causing the interrupt are Overrun, Par-  
ity, Framing and Break. The Line Status Register must be read to  
determine the source.  
1
0
ETHREI  
R/W  
R/W  
0h  
0h  
RESET  
RESET  
This bit enables the Transmitter Holding Register Empty Interrupt  
when set to logic “1”.  
ERDAI  
This bit enables the Received Data Available Interrupt (and timeout  
interrupts in the FIFO mode) when set to logic “1”.  
DS00002206H-page 322  
2016-2020 Microchip Technology Inc.  
MEC170x  
17.10.6 FIFO CONTROL REGISTER  
This is a write only register at the same location as the Interrupt Identification Register.  
Note:  
DMA is not supported.  
02h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
7:6 RECV_FIFO_TRIGGER_LEVEL  
W
0h  
RESET  
These bits are used to set the trigger level for the RCVR FIFO  
interrupt.  
5:4 Reserved  
R
-
-
3
DMA_MODE_SELECT  
W
0h  
RESET  
Writing to this bit has no effect on the operation of the UART. The  
RXRDY and TXRDY pins are not available on this chip.  
2
CLEAR_XMIT_FIFO  
W
W
W
0h  
0h  
0h  
RESET  
RESET  
RESET  
Setting this bit to a logic “1” clears all bytes in the XMIT FIFO and  
resets its counter logic to “0”. The shift register is not cleared. This  
bit is self-clearing.  
1
0
CLEAR_RECv_FIFO  
Setting this bit to a logic “1” clears all bytes in the RCVR FIFO and  
resets its counter logic to “0”. The shift register is not cleared. This  
bit is self-clearing.  
EXRF  
Enable XMIT and RECV FIFO. Setting this bit to a logic “1” enables  
both the XMIT and RCVR FIFOs. Clearing this bit to a logic “0”  
disables both the XMIT and RCVR FIFOs and clears all bytes from  
both FIFOs. When changing from FIFO Mode to non-FIFO (16450)  
mode, data is automatically cleared from the FIFOs. This bit must  
be a 1 when other bits in this register are written to or they will not  
be properly programmed.  
TABLE 17-11: RECV FIFO TRIGGER LEVELS  
RECV FIFO  
Trigger Level (BYTES)  
Bit 7  
Bit 6  
0
0
1
0
1
1
4
1
8
14  
17.10.7 INTERRUPT IDENTIFICATION REGISTER  
By accessing this register, the host CPU can determine the highest priority interrupt and its source. Four levels of priority  
interrupt exist. They are in descending order of priority:  
1. Receiver Line Status (highest priority)  
2. Received Data Ready  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 323  
MEC170x  
3. Transmitter Holding Register Empty  
4. MODEM Status (lowest priority)  
Information indicating that a prioritized interrupt is pending and the source of that interrupt is stored in the Interrupt Iden-  
tification Register (refer to Table 17-12). When the CPU accesses the IIR, the Serial Port freezes all interrupts and indi-  
cates the highest priority pending interrupt to the CPU. During this CPU access, even if the Serial Port records new  
interrupts, the current indication does not change until access is completed. The contents of the IIR are described below.  
02h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:6 FIFO_EN  
R
0h  
RESET  
These two bits are set when the FIFO CONTROL Register bit 0  
equals 1.  
5:4 Reserved  
3:1 INTID  
These bits identify the highest priority interrupt pending as indi-  
R
R
-
-
0h  
RESET  
cated by Table 17-12, "Interrupt Control Table". In non-FIFO mode,  
Bit[3] is a logic “0”. In FIFO mode Bit[3] is set along with Bit[2] when  
a timeout interrupt is pending.  
0
IPEND  
R
1h  
RESET  
This bit can be used in either a hardwired prioritized or polled envi-  
ronment to indicate whether an interrupt is pending. When bit 0 is a  
logic ‘0’ an interrupt is pending and the contents of the IIR may be  
used as a pointer to the appropriate internal service routine. When  
bit 0 is a logic ‘1’ no interrupt is pending.  
DS00002206H-page 324  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 17-12: INTERRUPT CONTROL TABLE  
FIFO  
Interrupt Identification  
Mode  
Interrupt SET and RESET Functions  
Register  
Only  
Priority  
Level  
Interrupt Reset  
Control  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
Interrupt Type  
None  
Interrupt Source  
0
0
1
0
1
1
0
-
None  
-
Highest  
Receiver Line Sta- Overrun Error, Par- Reading the Line  
tus  
ity Error, Framing  
Error or Break  
Interrupt  
Status Register  
0
Second  
Received Data  
Available  
Receiver Data  
Available  
Read Receiver Buf-  
fer or the FIFO  
drops below the  
trigger level.  
1
Character Timeout No Characters  
Reading the  
Indication  
Have Been  
Receiver Buffer  
Removed From or Register  
Input to the RCVR  
FIFO during the  
last 4 Char times  
and there is at least  
1 char in it during  
this time  
0
0
0
1
0
Third  
Transmitter Hold-  
ing Register Empty ing Register Empty Register (if Source  
of Interrupt) or Writ-  
Transmitter Hold-  
Reading the IIR  
ing the Transmitter  
Holding Register  
Fourth  
MODEM Status  
Clear to Send or  
Reading the  
Data Set Ready or MODEM Status  
Ring Indicator or  
Register  
Data Carrier Detect  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 325  
MEC170x  
17.10.8 LINE CONTROL REGISTER  
03h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7
6
5
DLAB  
R/W  
0h  
RESET  
RESET  
RESET  
Divisor Latch Access Bit (DLAB). It must be set high (logic “1”) to  
access the Divisor Latches of the Baud Rate Generator during  
read or write operations. It must be set low (logic “0”) to access the  
Receiver Buffer Register, the Transmitter Holding Register, or the  
Interrupt Enable Register.  
BREAK_CONTROL  
R/W  
R/W  
0h  
0h  
Set Break Control bit. When bit 6 is a logic “1”, the transmit data  
output (TXD) is forced to the Spacing or logic “0” state and remains  
there (until reset by a low level bit 6) regardless of other transmitter  
activity. This feature enables the Serial Port to alert a terminal in a  
communications system.  
STICK_PARITY  
Stick Parity bit. When parity is enabled it is used in conjunction with  
bit 4 to select Mark or Space Parity. When LCR bits 3, 4 and 5 are  
1 the Parity bit is transmitted and checked as a 0 (Space Parity). If  
bits 3 and 5 are 1 and bit 4 is a 0, then the Parity bit is transmitted  
and checked as 1 (Mark Parity). If bit 5 is 0 Stick Parity is disabled.  
Bit 3 is a logic “1” and bit 5 is a logic “1”, the parity bit is transmitted  
and then detected by the receiver in the opposite state indicated by  
bit 4.  
4
3
PARITY_SELECT  
R/W  
R/W  
0h  
0h  
RESET  
RESET  
Even Parity Select bit. When bit 3 is a logic “1” and bit 4 is a logic  
“0”, an odd number of logic “1”'s is transmitted or checked in the  
data word bits and the parity bit. When bit 3 is a logic “1” and bit 4  
is a logic “1” an even number of bits is transmitted and checked.  
ENABLE_PARITY  
Parity Enable bit. When bit 3 is a logic “1”, a parity bit is gener-  
ated (transmit data) or checked (receive data) between the last  
data word bit and the first stop bit of the serial data. (The parity bit  
is used to generate an even or odd number of 1s when the data  
word bits and the parity bit are summed).  
2
STOP_BITS  
R/W  
R/W  
0h  
0h  
RESET  
RESET  
This bit specifies the number of stop bits in each transmitted or  
received serial character. Table 17-13 summarizes the information.  
The receiver will ignore all stop bits beyond the first, regardless of  
the number used in transmitting.  
1:0 WORD_LENGTH  
These two bits specify the number of bits in each transmitted or  
received serial character. The encoding of bits 0 and 1 is as fol-  
lows:  
DS00002206H-page 326  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 17-13: STOP BITS  
Bit 2  
Word Length  
Number of Stop Bits  
0
1
--  
1
1.5  
2
5 bits  
6 bits  
7 bits  
8 bits  
TABLE 17-14: SERIAL CHARACTER  
Bit 1  
Bit 0  
Word Length  
0
0
1
1
0
1
0
1
5 Bits  
6 Bits  
7 Bits  
8 Bits  
The Start, Stop and Parity bits are not included in the word length.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 327  
MEC170x  
17.10.9 MODEM CONTROL REGISTER  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:5 Reserved  
4 LOOPBACK  
R
-
-
R/W  
0h  
RESET  
This bit provides the loopback feature for diagnostic testing of the  
Serial Port. When bit 4 is set to logic “1”, the following occur:  
1. The TXD is set to the Marking State (logic “1”).  
2. The receiver Serial Input (RXD) is disconnected.  
3. The output of the Transmitter Shift Register is “looped back”  
into the Receiver Shift Register input.  
4. All MODEM Control inputs (CTS#, DSR#, RI# and DCD#)  
are disconnected.  
5. The four MODEM Control outputs (DTR#, RTS#, OUT1 and  
OUT2) are internally connected to the four MODEM Control  
inputs (DSR#, CTS#, RI#, DCD#).  
6. The Modem Control output pins are forced inactive high.  
7. Data that is transmitted is immediately received.  
This feature allows the processor to verify the transmit and receive  
data paths of the Serial Port. In the diagnostic mode, the receiver  
and the transmitter interrupts are fully operational. The MODEM  
Control Interrupts are also operational but the interrupts' sources  
are now the lower four bits of the MODEM Control Register instead  
of the MODEM Control inputs. The interrupts are still controlled by  
the Interrupt Enable Register.  
3
OUT2  
R/W  
0h  
RESET  
Output 2 (OUT2). This bit is used to enable an UART interrupt.  
When OUT2 is a logic “0”, the serial port interrupt output is forced  
to a high impedance state - disabled. When OUT2 is a logic “1”, the  
serial port interrupt outputs are enabled.  
2
1
OUT1  
R/W  
R/W  
0h  
0h  
RESET  
RESET  
This bit controls the Output 1 (OUT1) bit. This bit does not have an  
output pin and can only be read or written by the CPU.  
RTS  
This bit controls the Request To Send (RTS#) output.  
When bit 1 is set to a logic “1”, the RTS# output is forced to a logic  
“0”. When bit 1 is set to a logic “0”, the RTS# output is forced to a  
logic “1”.  
0
DTR  
R/W  
0h  
RESET  
This bit controls the Data Terminal Ready (DTR#) output. When bit  
0 is set to a logic “1”, the DTR# output is forced to a logic “0”. When  
bit 0 is a logic “0”, the DTR# output is forced to a logic “1”.  
DS00002206H-page 328  
2016-2020 Microchip Technology Inc.  
MEC170x  
17.10.10 LINE STATUS REGISTER  
05h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
7
6
FIFO_ERROR  
R
0h  
0h  
RESET  
This bit is permanently set to logic “0” in the 450 mode. In the  
FIFO mode, this bit is set to a logic “1” when there is at least one  
parity error, framing error or break indication in the FIFO. This bit  
is cleared when the LSR is read if there are no subsequent  
errors in the FIFO.  
TRANSMIT_ERROR  
R
R
RESET  
Transmitter Empty. Bit 6 is set to a logic “1” whenever the Trans-  
mitter Holding Register (THR) and Transmitter Shift Register  
(TSR) are both empty. It is reset to logic “0” whenever either the  
THR or TSR contains a data character. Bit 6 is a read only bit.  
In the FIFO mode this bit is set whenever the THR and TSR are  
both empty,  
5
TRANSMIT_EMPTY  
0h  
RESET  
Transmitter Holding Register Empty Bit 5 indicates that the  
Serial Port is ready to accept a new character for transmission.  
In addition, this bit causes the Serial Port to issue an interrupt  
when the Transmitter Holding Register interrupt enable is set  
high. The THRE bit is set to a logic “1” when a character is trans-  
ferred from the Transmitter Holding Register into the Transmitter  
Shift Register. The bit is reset to logic “0” whenever the CPU  
loads the Transmitter Holding Register. In the FIFO mode this bit  
is set when the XMIT FIFO is empty, it is cleared when at least 1  
byte is written to the XMIT FIFO. Bit 5 is a read only bit.  
4
BREAK_INTERRUPT  
R
0h  
RESET  
Break Interrupt. Bit 4 is set to a logic “1” whenever the received  
data input is held in the Spacing state (logic “0”) for longer than a  
full word transmission time (that is, the total time of the start bit +  
data bits + parity bits + stop bits). The BI is reset after the CPU  
reads the contents of the Line Status Register. In the FIFO mode  
this error is associated with the particular character in the FIFO it  
applies to. This error is indicated when the associated character  
is at the top of the FIFO. When break occurs only one zero char-  
acter is loaded into the FIFO. Restarting after a break is  
received, requires the serial data (RXD) to be logic “1” for at  
least 1/2 bit time.  
Bits 1 through 4 are the error conditions that produce a Receiver  
Line Status Interrupt BIT 3 whenever any of the corresponding  
conditions are detected and the interrupt is enabled  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 329  
MEC170x  
05h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
3
FRAME_ERROR  
R
0h  
RESET  
Framing Error. Bit 3 indicates that the received character did not  
have a valid stop bit. Bit 3 is set to a logic “1” whenever the stop  
bit following the last data bit or parity bit is detected as a zero bit  
(Spacing level). This bit is reset to a logic “0” whenever the Line  
Status Register is read. In the FIFO mode this error is associated  
with the particular character in the FIFO it applies to. This error is  
indicated when the associated character is at the top of the  
FIFO. The Serial Port will try to resynchronize after a framing  
error. To do this, it assumes that the framing error was due to the  
next start bit, so it samples this 'start' bit twice and then takes in  
the 'data'.  
2
PARITY ERROR  
R
0h  
RESET  
Parity Error. Bit 2 indicates that the received data character does  
not have the correct even or odd parity, as selected by the even  
parity select bit. This bit is set to a logic “1” upon detection of a  
parity error and is reset to a logic “0” whenever the Line Status  
Register is read. In the FIFO mode this error is associated with  
the particular character in the FIFO it applies to. This error is  
indicated when the associated character is at the top of the  
FIFO.  
1
OVERRUN_ERROR  
R
0h  
RESET  
Overrun Error. Bit 1 indicates that data in the Receiver Buffer  
Register was not read before the next character was transferred  
into the register, thereby destroying the previous character. In  
FIFO mode, an overrun error will occur only when the FIFO is full  
and the next character has been completely received in the shift  
register, the character in the shift register is overwritten but not  
transferred to the FIFO. This bit is set to a logic “1” immediately  
upon detection of an overrun condition, and reset whenever the  
Line Status Register is read.  
0
DATA_READY  
R
0h  
RESET  
Data Ready. It is set to a logic ‘1’ whenever a complete incoming  
character has been received and transferred into the Receiver  
Buffer Register or the FIFO. Bit 0 is reset to a logic ‘0’ by reading  
all of the data in the Receive Buffer Register or the FIFO.  
DS00002206H-page 330  
2016-2020 Microchip Technology Inc.  
MEC170x  
17.10.11 MODEM STATUS REGISTER  
06h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
7
6
5
4
3
DCD  
R
0h  
0h  
0h  
0h  
0h  
RESET  
RESET  
RESET  
RESET  
RESET  
This bit is the complement of the Data Carrier Detect (DCD#) input.  
If bit 4 of the MCR is set to logic ‘1’, this bit is equivalent to OUT2 in  
the MCR.  
RI  
R
R
R
R
This bit is the complement of the Ring Indicator (RI#) input. If bit 4  
of the MCR is set to logic ‘1’, this bit is equivalent to OUT1 in the  
MCR.  
DSR  
This bit is the complement of the Data Set Ready (DSR#) input. If  
bit 4 of the MCR is set to logic ‘1’, this bit is equivalent to DTR# in  
the MCR.  
CTS  
This bit is the complement of the Clear To Send (CTS#) input. If bit  
4 of the MCR is set to logic ‘1’, this bit is equivalent to RTS# in the  
MCR.  
DCD  
Delta Data Carrier Detect (DDCD). Bit 3 indicates that the DCD#  
input to the chip has changed state.  
NOTE: Whenever bit 0, 1, 2, or 3 is set to a logic ‘1’, a MODEM  
Status Interrupt is generated.  
2
1
0
RI  
R
R
R
0h  
0h  
0h  
RESET  
RESET  
RESET  
Trailing Edge of Ring Indicator (TERI). Bit 2 indicates that the RI#  
input has changed from logic ‘0’ to logic ‘1’.  
DSR  
Delta Data Set Ready (DDSR). Bit 1 indicates that the DSR# input  
has changed state since the last time the MSR was read.  
CTS  
Delta Clear To Send (DCTS). Bit 0 indicates that the CTS# input to  
the chip has changed state since the last time the MSR was read.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 331  
MEC170x  
17.10.12 SCRATCHPAD REGISTER  
07h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 SCRATCH  
R/W  
0h  
RESET  
This 8 bit read/write register has no effect on the operation of the  
Serial Port. It is intended as a scratchpad register to be used by the  
programmer to hold data temporarily.  
17.11 Configuration Registers  
Configuration Registers for an instance of the UART are listed in the following table. Host access to Configuration Reg-  
isters is through the Configuration Port using the Logical Device Number of each instance of the UART and the Index  
shown in the “Host Index” column of the table. The EC can access Configuration Registers directly. The EC address for  
each register is formed by adding the Base Address for each instance of the UART shown in the Block Overview and  
Base Address Table in Section 3.0, "Device Inventory" to the offset shown in the “EC Offset” column.  
TABLE 17-15: CONFIGURATION REGISTER SUMMARY  
EC Offset  
Host Index  
Register Name  
330h  
3F0h  
30h  
F0h  
Activate Register  
Configuration Select Register  
17.11.1 ACTIVATE REGISTER  
30h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:1 Reserved  
ACTIVATE  
R
-
-
0
R/W  
0b  
RESET  
When this bit is 1, the UART logical device is powered and func-  
tional. When this bit is 0, the UART logical device is powered down  
and inactive.  
DS00002206H-page 332  
2016-2020 Microchip Technology Inc.  
MEC170x  
17.11.2 CONFIGURATION SELECT REGISTER  
F0h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
7:3 Reserved  
R
-
-
2
POLARITY  
R/W  
0b  
RESET  
1=The UART_TX and UART_RX pins functions are inverted  
0=The UART_TX and UART_RX pins functions are not inverted  
1
POWER  
R/W  
R/W  
1b  
0b  
RESET  
RESET  
1=The RESET reset signal is derived from RESET_VCC  
0=The RESET reset signal is derived from RESET_SYS  
0
CLK_SRC  
1=The UART Baud Clock is derived from an external clock source  
0=The UART Baud Clock is derived from one of the two internal  
clock sources  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 333  
MEC170x  
18.0 GPIO INTERFACE  
18.1 Overview  
The MEC170x GPIO interface provides general purpose input monitoring and output control, as well as managing many  
aspects of pin functionality; including, multi-function Pin Multiplexing Control, GPIO Direction control, Pull-up and Pull-  
down resistors, asynchronous wakeup and synchronous interrupt detection and Polarity control, as well as control of  
pin drive strength and slew rate.  
Features of the GPIO interface include:  
• Inputs:  
- Asynchronous rising and falling edge wakeup detection  
- Interrupt High or Low Level  
• On Output:  
- Push Pull or Open Drain output  
• Pull up or pull down resistor control  
• Interrupt and wake capability available for all GPIOs  
• Programmable pin drive strength and slew rate limiting  
• Group- or individual control of GPIO data.  
• Multiplexing of all multi-function pins are controlled by the GPIO interface  
18.2 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
18.2.1  
POWER DOMAINS  
TABLE 18-1: POWER SOURCES  
Name  
Description  
VTR  
The I/O power for a subset of GPIOs is powered by this supply voltage.It  
may be 3.3V or 1.8V.  
18.2.2  
CLOCK INPUTS  
TABLE 18-2: CLOCK INPUTS  
Name  
Description  
48MHz  
This clock domain is used for synchronizing GPIO inputs.  
18.2.3  
RESETS  
TABLE 18-3: RESET SIGNALS  
Name  
Description  
RESET_SYS  
This reset is asserted when VTR is applied.  
VCC_PWRGD  
This signal, which if present comes directly from a pin, is asserted when  
the main system power rail is up.  
DS00002206H-page 334  
2016-2020 Microchip Technology Inc.  
MEC170x  
18.3 Interrupts  
This section defines the Interrupt Sources generated from this block.  
TABLE 18-4: INTERRUPTS  
Source  
Description  
GPIO_Event  
Each GPIO pin has the ability to generate an interrupt event. This event  
may be used as a wake event. The event can be generated on a high  
level, low level, rising edge, falling edge or either edge input, as config-  
ured by the INTERRUPT_DETECTION bits in the Pin Control Registers  
associated with the GPIO signal function.  
The minimum pulse width to generate in interrupt / wakeup event  
must be at least 5ns.  
18.4 Description  
FIGURE 18-1:  
GPIO BLOCK DIAGRAM  
Input 3 Inactive Default  
Input 2 Inactive Default  
Input 1 Inactive Default  
Input 3 (MUX = 11)  
Input 2 (MUX = 10)  
MUX  
MUX  
MUX  
Input 1 (MUX = 01)  
(MUX = 00)  
GPIO Output  
Register  
Write  
Read  
GPIO Direction  
Output 1 (MUX = 01)  
MUX  
GPIOxxx PIN  
Output 2 (MUX = 10)  
Output 3 (MUX = 11)  
2
Interrupt Detection  
4
Mux Control  
Polarity  
Interrupt  
Detector  
GPIO Input  
Register  
Read  
Interrupt  
18.5 GPIO Pass-Through Ports  
GPIO Pass-Through Ports (GPTP) can multiplex two general purpose I/O pins as shown in Figure 18-2. GPIO Pass-  
Through Ports connect the GPTP-IN pin to the GPTP-OUT pin. The GPTP are sequentially assigned values 0:7. The  
GPTP port assignment have no relation to the GPIO Indexing assignments. The GPTP ports are controlled by the Mux  
Control bits in the Pin Control Register associated with the GPTP-OUT signal function.  
In order to enable the GPTP Pass-Through Mode, the GPTP-IN (GPIOm in Figure 18-2) Pin Control Register must  
assign the Mux Control to the GPTP_IN signal function and the GPIO Direction bit to 0 (input); the GPTP-OUT (GPIOn  
in Figure 18-2) Pin Control Register must assign the Mux Control to the GPTP_OUT signal function and the GPIO Direc-  
tion bit to 1 (output). The GPTP-OUT signal function can differ from pin to pin.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 335  
MEC170x  
FIGURE 18-2:  
GPIO PASS-THROUGH PORT EXAMPLE  
Pin Control  
Register  
Mux  
Control bit  
xx  
yy  
GPTP-OUT  
PIN  
MUX  
GPTP-IN  
PIN  
GPIOm  
GPIOn  
The Pin Control Register Mux Control fields shown in Figure 18-2 are illustrated as ‘xx’ and ‘yy’ because this figure is  
an example, it does not represent the actual GPIO multiplexing configuration. The GPIO Multiplexing tables in this chap-  
ter must be used to determine the correct values to use to select between a GPIO and the pass-through.  
When Pass-Through Mode is enabled, the GPIOn output is disconnected from the GPIOn pin and the GPIOm pin signal  
appears on GPIOn pin. Note that in this case the GPIOm input register still reflects the state of the GPIOm pin.  
18.6 Accessing GPIOs  
There are two ways to access GPIO output data. GPIO_OUTPUT_SELECT is used to determine which GPIO output  
data bit affects the GPIO output pin.  
• Group Output GPIO Data  
- Outputs to individual GPIO ports are grouped into 32-bit GPIO Output Registers.  
• Individual Output GPIO Data  
- Each GPIO output port may be individually accessible in the ALTERNATE_GPIO_DATA field of the port’s Pin  
Control Register. On reads, ALTERNATE_GPIO_DATA returns the programmed value, not the value on the  
pin.  
There are two ways to access GPIO input data.  
• Group Input GPIO Data  
- Inputs from individual GPIO ports are grouped into 32-bit GPIO Input Registers and always reflect the current  
state of the GPIO input from the pads, independent of the setting of the MUX_CONTROL field in the Pin Con-  
trol Register.  
• Group Input GPIO Data  
- Each GPIO input port is individually accessible in the GPIO_INPUT field of the port’s Pin Control Register.  
The GPIO_INPUT field always reflects the current state of GPIO input from the pad, independent of the set-  
ting of the MUX_CONTROL field in the Pin Control Register.  
18.6.1  
HOST ACCESS OF GPIOS  
The GPIO Output Registers and GPIO Input Registers can be configured to be Host accessible via one of the SRAM  
Base Address Register, if the base of the internal address of the BAR is set to an offset of 200h from the GPIO base  
address, with a SIZE of 9, setting of block of 512 bytes. All of the Output and Input registers can then be accessed as  
offsets from the Host base address.  
The GPIO Output and Input registers can also be accessed as one of the regions in an EMI block. This access is defined  
in the EMI Protocols chapter of the firmware specification.  
18.7 GPIO Indexing  
Each GPIO signal function name consists of a 4-character prefix (“GPIO”) followed by a 3-digit octal-encoded index  
number. In the MEC170x GPIO indexing is done sequentially starting from GPIO000.  
DS00002206H-page 336  
2016-2020 Microchip Technology Inc.  
MEC170x  
18.8 GPIO Multiplexing and Control Register Defaults  
The default values for all GPIO Control Register and Control 2 Registers are shown in the GPIO Pin Control Registers  
Defaults Table in the GPIO Register Assignments Subsection of Section 3.0, "Device Inventory". The function multiplex-  
ing for each GPIO is shown in the GPIO Multiplexing Table in the same Subsection.  
Note:  
If a GPIO listed in the tables does not appear in the pin list of a particular device, then the Control Registers  
are reserved and should not be written. Similarly, if GPIO does not appear in the pin list then the bit position  
for the Input GPIO Register and Output GPIO Register that contains that GPIO is reserved.  
18.9 EC 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 GPIO Interface Block in the Block Overview and Base Address Table in Section  
3.0, "Device Inventory".  
TABLE 18-5: REGISTER SUMMARY  
Offset  
Register Name  
000h - 2B3h Pin Control Register for all GPIOs  
300h  
304h  
308h  
30Ch  
310h  
314h  
380h  
384h  
388h  
38Ch  
390h  
394h  
Input GPIO[000:036] Register  
Input GPIO[040:076] Register  
Input GPIO[100:136] Register  
Input GPIO[140:176] Register  
Input GPIO[200:236] Register  
Input GPIO[240:276] Register  
Output GPIO[000:036] Register  
Output GPIO[040:076] Register  
Output GPIO[100:136] Register  
Output GPIO[140:176] Register  
Output GPIO[200:236] Register  
Output GPIO[240:276] Register  
500h - 7B3h Pin Control 2 Register for all GPIOs  
18.10 Pin Control Registers  
Two Control Registers are implemented for each GPIO, the Pin Control Register and the Pin Control 2 Register.  
18.10.1 PIN CONTROL REGISTER  
See Section 18.8  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:25 Reserved  
24 GPIO_INPUT  
R
R
-
-
x
RESET_  
SYS  
Reads of this bit always return the state of GPIO input from the pad,  
independent of the Mux selection for the pin or the Direction, except  
as follows:  
1. POWER_GATING = 11b - Input Disabled  
This bit is forced low when the input is disabled  
2. POWER_GATING = 10b - Unpowered  
This bit is forced high when the pad is unpowered.  
3. POWER_GATING = 01b - VCC Main Power Rail  
This bit is forced high when VCC_PWRGD is low.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 337  
MEC170x  
See Section 18.8  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
23:17 Reserved  
16 ALTERNATE_GPIO_DATA  
R
-
-
R or  
R/W  
See  
Section 18.8  
RESET_  
SYS  
Reads of this bit always return the last data written to the GPIO out-  
put data register bit; reads do not return the current output value of  
the GPIO pin if it is configured as an output.  
If the GPIO_OUTPUT_SELECT bit in this register is ‘1’, then this bit  
is Read Only and the GPIO output data register bit is only written by  
the GPIO Output Register. If the GPIO_OUTPUT_SELECT bit in this  
register is ‘0’, then this bit is R/W, and the bit corresponding to this  
GPIO in the GPIO Output Register is Read Only.  
15:14 Reserved  
13:12 MUX_CONTROL  
The Mux Control field determines the active signal function for a pin.  
R
-
-
R/W  
See  
Section 18.8  
RESET_  
SYS  
11b=Signal Function 3 Selected  
10b=Signal Function 2 Selected  
01b=Signal Function 1 Selected  
00b=GPIO Function Selected  
11 POLARITY  
R/W  
See  
Section 18.8  
RESET_  
SYS  
When the Polarity bit is set to ‘1’ and the MUX_CONTROL bits are  
greater than ‘00,’ the selected signal function outputs are inverted  
and Interrupt Detection sense defined in Table 18-6, "Edge Enable  
and Interrupt Detection Bits Definition" is inverted. When the MUX-  
_CONTROL field selects the GPIO signal function (Mux=‘00’), the  
Polarity bit does not effect the output. Regardless of the state of  
the MUX_CONTROL field and the Polarity bit, the state of the pin is  
always reported without inversion in the GPIO input register.  
1=Inverted  
0=Non-inverted  
10 GPIO_OUTPUT_SELECT  
R/W  
See  
Section 18.8  
RESET_  
SYS  
This control bit determines which register is used to update the data  
register for GPIO outputs. See Section 18.4, "Description"  
1=GPIO output data for this GPIO come from the bit representing this  
GPIO in the GPIO Output Register; writes to the ALTER-  
NATE_GPIO_DATA field of this register do not affect the GPIO  
0=GPIO output data for this GPIO come from the ALTERNATE_GPI-  
O_DATA field of this register; writes to the bit representing this  
GPIO in the GPIO Output Register do not affect the GPIO  
9 GPIO_DIRECTION  
R/W  
See  
Section 18.8  
RESET_  
SYS  
This bit controls the buffer direction only when the MUX_CONTROL  
field is ‘00’ selecting the pin signal function to be GPIO. When the  
MUX_CONTROL field is greater than ‘00’ (i.e., a non-GPIO signal  
function is selected) this bit has no affect and the selected signal  
function logic directly controls the pin direction.  
1=Output  
0=Input  
DS00002206H-page 338  
2016-2020 Microchip Technology Inc.  
MEC170x  
See Section 18.8  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
8 OUTPUT_BUFFER_TYPE  
R/W  
See  
Section 18.8  
RESET_  
SYS  
Unless explicitly stated otherwise, pins with (I/O/OD) or (O/OD) in  
their buffer type column in the tables in are compliant with the follow-  
ing Programmable OD/PP Multiplexing Design Rule: Each compliant  
pin has a programmable open drain/push-pull buffer controlled by  
the Output Buffer Type bit in the associated Pin Control Register.  
The state of this bit controls the mode of the interface buffer for all  
selected functions, including the GPIO function.  
1=Open Drain  
0=Push-Pull  
7 EDGE_ENABLE  
R/W  
See  
Section 18.8  
RESET_  
SYS  
When combined with the field INTERRUPT_DETECTION in this reg-  
ister, determines the interrupt capability of the GPIO input. See  
Table 18-6, "Edge Enable and Interrupt Detection Bits Definition" for  
details.  
1=Edge detection enabled  
0=Edge detection disabled  
6:4 INTERRUPT_DETECTION  
R/W  
R/W  
See  
Section 18.8  
RESET_  
SYS  
When combined with the field INTERRUPT_DETECTION in this reg-  
ister, determines the interrupt capability of the GPIO input. See  
Table 18-6, "Edge Enable and Interrupt Detection Bits Definition" for  
details.  
3:2 POWER_GATING  
See  
Section 18.8  
RESET_  
SYS  
The GPIO pin will be tristated when the selected power well is off.  
11b=VTR Powered Output Only. Input pad is disabled and output will  
be tristated when VTR Power Rail is off.  
10b=Unpowered. The GPIO pad is turned off completely. Both the  
input buffer and output buffer on the pad are disabled. Pull-up  
and pull-down resisters are disabled independent of the setting  
of the PU/PD field  
01b=VCC Main Power Rail (as determined by the VCC_PWRGD  
input)  
00b=VTR Power Rail  
Note:  
The Under Voltage Support feature requires that this bit  
field be set to the 11b option, VTR Powered Output Only,  
when pad VTR=3.3V and pin is driving out to 1.8V using  
Open Drain Mode.  
1:0 PU/PD  
R/W  
See  
Section 18.8  
RESET_  
SYS  
These bits are used to enable an internal pull-up or pull-down resis-  
tor.  
11b=”Keeper Mode”. In this mode a weak latch circuit holds the last  
value on a pad when it becomes tri-stated and undriven  
10b=Pull Down Enabled  
01b=Pull Up Enabled  
00b=None  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 339  
MEC170x  
TABLE 18-6: EDGE ENABLE AND INTERRUPT DETECTION BITS DEFINITION  
Edge  
Enable  
Interrupt Detection Bits  
Selected Function  
D7  
D6  
D5  
D4  
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
Low Level Sensitive  
High Level Sensitive  
Reserved  
Reserved  
Interrupt events are disabled  
Reserved  
Reserved  
Reserved  
Rising Edge Triggered  
Falling Edge Triggered  
Either edge triggered  
Note:  
Only edge triggered interrupts can wake up the main clock domain. The GPIO must be enabled for edge-  
triggered interrupts and the GPIO interrupt must be enabled in the interrupt aggregator in order to wake  
from the Heavy Sleep state.  
18.10.2 PIN CONTROL 2 REGISTER  
See Section 18.8  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:6 Reserved  
5:4 DRIVE_STRENGTH  
R
-
-
R/W  
See  
Section 18.8  
RESET_  
SYS  
These bits are used to select the drive strength on the pin. The drive  
strength is the same whether the pin is powered by 3.3V or 1.8V.  
11b=12mA  
10b=8mA  
01b=4mA  
00b=2mA  
3:1 Reserved  
R
-
-
0 SLEW_RATE  
R/W  
0h  
RESET_  
SYS  
This bit is used to select the slew rate on the pin.  
1=fast  
0=slow (half frequency)  
18.10.3 GPIO INPUT REGISTERS  
The GPIO Input Registers can always be used to read the state of a pin, even when the pin is configured as an output,  
/or when the pin is configured for a signal function other than the GPIO (i.e., the MUX_CONTROL field is not equal to  
‘00.’).  
Note:  
Bits associated with GPIOs not present in the pinout for a particular device are Reserved.  
DS00002206H-page 340  
2016-2020 Microchip Technology Inc.  
MEC170x  
18.10.3.1 Input GPIO[000:036] Register  
300h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
31 Reserved  
R
R
-
-
30:24 GPIO[036:030] Input  
00h  
RESET  
_SYS  
23:16 GPIO[027:020] Input  
15:8 GPIO[017:010] Input  
7:0 GPIO[007:000] Input  
R
R
R
00h  
00h  
00h  
RESET  
_SYS  
RESET  
_SYS  
RESET  
_SYS  
18.10.3.2 Input GPIO[040:076] Register  
304h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31 Reserved  
R
R
-
-
30:24 GPIO[076:070] Input  
00h  
RESET  
_SYS  
23:16 GPIO[067:060] Input  
15:8 GPIO[057:050] Input  
7:0 GPIO[047:040] Input  
R
R
R
00h  
00h  
00h  
RESET  
_SYS  
RESET  
_SYS  
RESET  
_SYS  
18.10.3.3 Input GPIO[100:136] Register  
308h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31 Reserved  
R
R
-
-
30:24 GPIO[136:130] Input  
00h  
RESET  
_SYS  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 341  
MEC170x  
308h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
23:16 GPIO[127:120] Input  
15:8 GPIO[117:110] Input  
7:0 GPIO[107:100] Input  
R
00h  
RESET  
_SYS  
R
R
00h  
00h  
RESET  
_SYS  
RESET  
_SYS  
18.10.3.4 Input GPIO[140:176] Register  
30Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31 Reserved  
R
R
-
-
30:24 GPIO[176:170] Input  
00h  
RESET  
_SYS  
23:16 GPIO[167:160] Input  
15:8 GPIO[157:150] Input  
7:0 GPIO[147:140] Input  
R
R
R
00h  
00h  
00h  
RESET  
_SYS  
RESET  
_SYS  
RESET  
_SYS  
18.10.3.5 Input GPIO[200:236] Register  
310h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31 Reserved  
R
-
-
30:24 GPIO[236:230] Input  
R/W  
00h  
RESET  
_SYS  
23:16 GPIO[227:220] Input  
15:8 GPIO[217:210] Input  
7:0 GPIO[207:200] Input  
R/W  
R/W  
R/W  
00h  
00h  
00h  
RESET  
_SYS  
RESET  
_SYS  
RESET  
_SYS  
DS00002206H-page 342  
2016-2020 Microchip Technology Inc.  
MEC170x  
18.10.3.6 Input GPIO[240:276] Register  
314h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
31 Reserved  
R
-
-
30:24 GPIO[276:270] Input  
R/W  
00h  
RESET  
_SYS  
23:16 GPIO[267:260] Input  
15:8 GPIO[257:250] Input  
7:0 GPIO[247:240] Input  
R/W  
R/W  
R/W  
00h  
00h  
00h  
RESET  
_SYS  
RESET  
_SYS  
RESET  
_SYS  
18.10.4 GPIO OUTPUT REGISTERS  
If enabled by the GPIO_OUTPUT_SELECT bit, the GPIO Output bits determine the level on the GPIO pin when the pin  
is configured for the GPIO output function. If the GPIO Output Register bit is not enabled, its value does not affect the  
GPIO pin. In all cases, reads return the last programmed value in the GPIO Output Register.  
Note:  
Bits associated with GPIOs not present in the pinout for a particular device are Reserved.  
18.10.4.1 Output GPIO[000:036] Register  
380h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31 Reserved  
R
-
-
30:24 GPIO[036:030] Output  
R/W  
00h  
RESET  
_SYS  
23:16 GPIO[027:020] Output  
15:8 GPIO[017:010] Output  
7:0 GPIO[007:000] Output  
R/W  
R/W  
R/W  
00h  
00h  
00h  
RESET  
_SYS  
RESET  
_SYS  
RESET  
_SYS  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 343  
MEC170x  
18.10.4.2 Output GPIO[040:076] Register  
384h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:24 Reserved  
R
-
-
30:24 GPIO[076:070] Output  
R/W  
00h  
RESET  
_SYS  
23:16 GPIO[067:060] Output  
15:8 GPIO[057:050] Output  
7:0 GPIO[047:040] Output  
R/W  
R/W  
R/W  
00h  
00h  
00h  
RESET  
_SYS  
RESET  
_SYS  
RESET  
_SYS  
18.10.4.3 Output GPIO[100:136] Register  
388h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31 Reserved  
R
-
-
30:24 GPIO[136:130] Output  
R/W  
00h  
RESET  
_SYS  
23:16 GPIO[127:120] Output  
15:8 GPIO[117:110] Output  
7:0 GPIO[107:100] Output  
R/W  
R/W  
R/W  
00h  
00h  
00h  
RESET  
_SYS  
RESET  
_SYS  
RESET  
_SYS  
18.10.4.4 Output GPIO[140:176] Register  
38Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:22 Reserved  
R
-
-
30:24 GPIO[176:170] Output  
R/W  
00h  
RESET  
_SYS  
DS00002206H-page 344  
2016-2020 Microchip Technology Inc.  
MEC170x  
38Ch  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
23:16 GPIO[167:160] Output  
15:8 GPIO[157:150] Output  
7:0 GPIO[147:140] Output  
R/W  
00h  
00h  
00h  
RESET  
_SYS  
R/W  
R/W  
RESET  
_SYS  
RESET  
_SYS  
18.10.4.5 Output GPIO[200:236] Register  
390h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31 Reserved  
R
-
-
30:24 GPIO[236:230] Output  
R/W  
00h  
RESET  
_SYS  
23:16 GPIO[227:220] Output  
15:8 GPIO[217:210] Output  
7:0 GPIO[207:200] Output  
R/W  
R/W  
R/W  
00h  
00h  
00h  
RESET  
_SYS  
RESET  
_SYS  
RESET  
_SYS  
18.10.4.6 Output GPIO[240:276] Register  
394h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31 Reserved  
R
-
-
30:24 GPIO[276:270] Output  
R/W  
00h  
RESET  
_SYS  
23:16 GPIO[267:260] Output  
R/W  
00h  
RESET  
_SYS  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 345  
MEC170x  
394h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
15:8 GPIO[257:250] Output  
7:0 GPIO[247:240] Output  
R/W  
00h  
RESET  
_SYS  
R/W  
00h  
RESET  
_SYS  
DS00002206H-page 346  
2016-2020 Microchip Technology Inc.  
MEC170x  
19.0 WATCHDOG TIMER (WDT)  
19.1 Introduction  
The function of the Watchdog Timer is to provide a mechanism to detect if the internal embedded controller has failed.  
When enabled, the Watchdog Timer (WDT) circuit will generate a WDT Event if the user program fails to reload the WDT  
within a specified length of time known as the WDT Interval.  
19.2 References  
No references have been cited for this chapter.  
19.3 Terminology  
There is no terminology defined for this chapter.  
19.4 Interface  
This block is designed to be accessed internally via a registered host interface or externally via the signal interface.  
19.5 Host Interface  
FIGURE 19-1:  
I/O DIAGRAM OF BLOCK  
Watchdog Timer (WDT)  
Host Interface  
Clock Inputs  
Resets  
WDT Event  
The registers defined for the Watchdog Timer (WDT) are accessible by the embedded controller as indicated in Section  
19.8, "EC Registers". All registers accesses are synchronized to the host clock and complete immediately. Register  
reads/writes are not delayed by the 32KHz.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 347  
MEC170x  
19.6 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
19.6.1  
19.6.2  
19.6.3  
POWER DOMAINS  
Name  
Description  
VTR  
The logic and registers implemented in this block reside on this single  
power well.  
CLOCK INPUTS  
Name  
Description  
32KHz  
The 32KHz clock input is the clock source to the Watchdog Timer  
functional logic, including the counter.  
RESETS  
TABLE 19-1: RESET INPUTS  
Name  
Description  
RESET_SYS  
Power on Reset to the block. This signal resets all the register and logic in  
this block to its default state following a POR or a WDT Event event.  
RESET_SYS_nWDT  
This reset signal is used on WDT registers/bits that need to be preserved  
through a WDT Event.  
TABLE 19-2: RESET OUTPUTS  
Source  
Description  
WDT Event  
Pulse generated when WDT expires. This signal is used to reset the  
embedded controller and its subsystem.  
The event is cleared after a RESET_SYS.  
19.7 Description  
19.7.1  
WDT OPERATION  
19.7.1.1  
WDT Activation Mechanism  
The WDT is activated by the following sequence of operations during normal operation:  
1. Load the WDT Load Register with the count value.  
2. Set the WDT_ENABLE bit in the WDT Control Register.  
The WDT Activation Mechanism starts the WDT decrementing counter.  
19.7.1.2  
WDT Deactivation Mechanism  
The WDT is deactivated by the clearing the WDT_ENABLE bit in the WDT Control Register. The WDT Deactivation  
Mechanism places the WDT in a low power state in which clock are gated and the counter stops decrementing.  
19.7.1.3  
WDT Reload Mechanism  
The WDT must be reloaded within periods that are shorter than the programmed watchdog interval; otherwise, the WDT  
will underflow and a WDT Event will be generated and the WDT bit in Power-Fail and Reset Status Register on page  
577 will be set. It is the responsibility of the user program to continually execute code which reloads the watchdog timer,  
causing the counter to be reloaded.  
DS00002206H-page 348  
2016-2020 Microchip Technology Inc.  
MEC170x  
There are three methods of reloading the WDT: a write to the WDT Load Register, a write to the WDT Kick Register, or  
WDT event.  
19.7.1.4  
WDT Interval  
The WDT Interval is the time it takes for the WDT to decrements from the WDT Load Register value to 0000h. The WDT  
Count Register value takes 33/32KHz seconds (ex. 33/32.768 KHz = 1.007ms) to decrement by 1 count.  
19.7.1.5  
WDT STALL Operation  
There are three STALL_ENABLE inputs to the WDT, each of which is connected to an internal signal. If enabled, and  
the STALL event is asserted, the WDT stops decrementing, and the WDT enters a low power state. When a WDT STALL  
event is de-asserted, the counter continues decrementing from the value it had when the STALL was asserted.  
19.8 EC 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 each instance of the Watchdog Timer (WDT) Block in the Block Overview and Base  
Address Table in Section 3.0, "Device Inventory".  
TABLE 19-3: REGISTER SUMMARY  
Offset  
Register Name  
00h  
04h  
08h  
0Ch  
WDT Load Register  
WDT Control Register  
WDT Kick Register  
WDT Count Register  
19.8.1  
WDT LOAD REGISTER  
00h  
Offset  
Reset  
Event  
Bits  
Description  
Type  
Default  
15:0 WDT_LOAD  
Writing this field reloads the Watch Dog Timer counter.  
R/W  
FFFFh  
RESET  
_SYS  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 349  
MEC170x  
19.8.2  
WDT CONTROL REGISTER  
04h  
Offset  
Reset  
Event  
Bits  
7:5 Reserved  
Description  
Type  
Default  
R
-
-
4
JTAG_STALL  
R/W  
0b  
RESET  
_SYS  
This bit enables the WDT Stall function if JTAG or SWD debug  
functions are active  
1=The WDT is stalled while either JTAG or SWD is active  
0=The WDT is not affected by the JTAG debug interface  
3
2
WEEK_TIMER_STALL  
R/W  
R/W  
0b  
0b  
RESET  
_SYS  
This bit enables the WDT Stall function if the Week Timer is active.  
1=The WDT is stalled while the Week Timer is active  
0=The WDT is not affected by the Week Timer  
HIBERNATION_TIMER0_STALL  
RESET  
_SYS  
This bit enables the WDT Stall function if the Hibernation Timer 0 is  
active.  
1=The WDT is stalled while the Hibernation Timer 0 is active  
0=The WDT is not affected by Hibernation Timer 0  
1
0
TEST  
R
0b  
0b  
RESET  
_SYS  
WDT_ENABLE  
R/W  
RESET  
_SYS  
In WDT Operation, the WDT is activated by the sequence of opera-  
tions defined in Section 19.7.1.1, "WDT Activation Mechanism"  
and deactivated by the sequence of operations defined in Section  
19.7.1.2, "WDT Deactivation Mechanism".  
1=block enabled  
0=block disabled  
DS00002206H-page 350  
2016-2020 Microchip Technology Inc.  
MEC170x  
19.8.3  
WDT KICK REGISTER  
08h  
Offset  
Reset  
Default  
Bits  
7:0 KICK  
Description  
Type  
Event  
W
n/a  
RESET  
_SYS  
The WDT Kick Register is a strobe. Reads of this register return 0.  
Writes to this register cause the WDT to reload the WDT Load  
Register value and start decrementing when the WDT_ENABLE bit  
in the WDT Control Register is set to ‘1’. When the WDT_ENABLE  
bit in the WDT Control Register is cleared to ‘0’, writes to the WDT  
Kick Register have no effect.  
19.8.4  
WDT COUNT REGISTER  
0Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
15:0 WDT_COUNT  
This read-only register provide the current WDT count.  
R
FFFFh  
RESET  
_SYS  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 351  
MEC170x  
20.0 BASIC TIMER  
20.1 Introduction  
This timer block offers a simple mechanism for firmware to maintain a time base. This timer may be instantiated as 16  
bits or 32 bits. The name of the timer instance indicates the size of the timer.  
20.2 Interface  
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.  
FIGURE 20-1:  
I/O DIAGRAM OF BLOCK  
Basic Timer  
Host Interface  
Signal Description  
Clock Inputs  
Resets  
Interrupts  
20.3 Signal Description  
There are no external signals for this block.  
20.4 Host Interface  
The embedded controller may access this block via the registers defined in Section 20.9, "EC Registers".  
DS00002206H-page 352  
2016-2020 Microchip Technology Inc.  
MEC170x  
20.5 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
20.5.1  
POWER DOMAINS  
TABLE 20-1: POWER SOURCES  
Name  
Description  
VTR  
The timer control logic and registers are all implemented on this single  
power domain.  
20.5.2  
CLOCK INPUTS  
TABLE 20-2: CLOCK INPUTS  
Name  
Description  
48MHz  
This is the clock source to the timer logic. The Pre-scaler may be used to  
adjust the minimum resolution per bit of the counter.  
20.5.3  
RESETS  
TABLE 20-3: RESET SIGNALS  
Name  
Description  
RESET_SYS  
This reset signal, which is an input to this block, resets all the logic and  
registers to their initial default state.  
Soft Reset  
This reset signal, which is created by this block, resets all the logic and  
registers to their initial default state. This reset is generated by the block  
when the SOFT_RESET bit is set in the Timer Control Register register.  
RESET_Timer  
This reset signal, which is created by this block, is asserted when either  
the RESET_SYS or the Soft Reset signal is asserted. The RESET_SYS  
and Soft Reset signals are OR’d together to create this signal.  
20.6 Interrupts  
TABLE 20-4: EC INTERRUPTS  
Source  
Description  
TIMER_16_x  
This interrupt event fires when a 16-bit timer x reaches its limit.  
• If configured to count up, the limit is triggered when the counter  
wraps from FFFFh to 0h  
• If configured to count down, the limit is triggered when the counter  
wraps from 0h to FFFFh.  
This event is sourced by the EVENT_INTERRUPT status bit if enabled.  
TIMER_32_x  
This interrupt event fires when a 32-bit timer x reaches its limit.  
• If configured to count up, the limit is triggered when the counter  
wraps from FFFF_FFFFh to 0h  
• If configured to count down, the limit is triggered when the counter  
wraps from 0h to FFFF_FFFFh.  
This event is sourced by the EVENT_INTERRUPT status bit if enabled.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 353  
MEC170x  
20.7 Low Power Modes  
The Basic Timer may be put into a low power state by the chip’s Power, Clocks, and Reset (PCR) circuitry. This block  
is only be permitted to enter low power modes when the block is not active.  
The sleep state of this timer is as follows:  
• Asleep while the block is not Enabled  
• Asleep while the block is not running (start inactive).  
• Asleep while the block is halted (even if running).  
The block is active while start is active.  
20.8 Description  
FIGURE 20-2:  
BLOCK DIAGRAM  
Basic Timer  
48MHz  
Pre-Scaler  
REGS  
Host Interface  
Timer Logic  
This timer block offers a simple mechanism for firmware to maintain a time base in the design. The timer may be enabled  
to execute the following features:  
• Programmable resolution per LSB of the counter via the Pre-scale bits in the Timer Control Register  
• Programmable as either an up or down counter  
• One-shot or Continuous Modes  
• In one-shot mode the Auto Restart feature stops the counter when it reaches its limit and generates a level event.  
• In Continuous Mode the Auto Restart feature restarts that counter from the programmed preload value and gener-  
ates a pulse event.  
• Counter may be reloaded, halted, or started via the Timer Control register  
• Block may be reset by either a Power On Reset (POR) or via a Soft Reset.  
20.9 EC 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 each instance of the Basic Timer Block in the Block Overview and Base Address Table  
in Section 3.0, "Device Inventory".  
TABLE 20-5: REGISTER SUMMARY  
Offset  
Register Name  
00h  
04h  
08h  
0Ch  
10h  
Timer Count Register  
Timer Preload Register  
Timer Status Register  
Timer Int Enable Register  
Timer Control Register  
DS00002206H-page 354  
2016-2020 Microchip Technology Inc.  
MEC170x  
20.9.1  
TIMER COUNT REGISTER  
00h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
31:0 COUNTER  
This is the value of the Timer counter. This is updated by Hardware  
R/W  
0h  
RESET_  
Timer  
but may be set by Firmware. If it is set by firmware while the  
Hardware Timer is operating, functionality cannot be assured.  
When read, it is buffered so single byte reads will be able to catch  
the full 4 byte register without it changing.  
The size of the Counter is indicated by the instance name (e.g., 16-  
bit Basic Timer -> SIZE=16). Bits 0 to (SIZE-1) are r/w counter bits.  
Bits 31 down to SIZE are unused and should be set to zero when  
writing this register.  
20.9.2  
TIMER PRELOAD REGISTER  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:0 PRE_LOAD  
This is the value of the Timer pre-load for the counter. This is used  
R/W  
0h  
RESET_  
Timer  
by H/W when the counter is to be restarted automatically; this will  
become the new value of the counter upon restart.  
The size of the Pre-Load value is the same as the size of the  
counter. The size of the Counter is indicated by the instance name  
(e.g., 16-bit Basic Timer -> SIZE=16). Bits 0 to (SIZE-1) are r/w pre-  
load bits. Bits 31 down to SIZE are unused and should be set to zero  
when writing this register.  
20.9.3  
TIMER STATUS REGISTER  
08h  
Offset  
Bits  
31:0 Reserved  
Reset  
Event  
Description  
Type  
Default  
R
-
-
0 EVENT_INTERRUPT  
R/WC  
0h  
RESET_  
Timer  
This is the interrupt status that fires when the timer reaches its limit.  
This may be level or a self clearing signal cycle pulse, based on the  
AUTO_RESTART bit in the Timer Control Register. If the timer is set  
to automatically restart, it will provide a pulse, otherwise a level is  
provided.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 355  
MEC170x  
20.9.4  
TIMER INT ENABLE REGISTER  
0Ch  
Offset  
Bits  
31:0 Reserved  
Reset  
Event  
Description  
Type  
Default  
R
-
-
0 EVENT_INTERRUPT_ENABLE  
R/W  
0h  
RESET_  
Timer  
This is the interrupt enable for the status EVENT_INTERRUPT bit in  
the Timer Status Register  
20.9.5  
TIMER CONTROL REGISTER  
10h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:16 PRE_SCALE  
This is used to divide down the system clock through clock enables  
R/W  
0h  
RESET_  
Timer  
to lower the power consumption of the block and allow slow timers.  
Updating this value during operation may result in erroneous clock  
enable pulses until the clock divider restarts.  
The number of clocks per clock enable pulse is (Value + 1); a setting  
of 0 runs at the full clock speed, while a setting of 1 runs at half  
speed.  
15:8 Reserved  
7 HALT  
This is a halt bit. This will halt the timer as long as it is active. Once  
R
-
-
R/W  
0h  
RESET_  
Timer  
the halt is inactive, the timer will start from where it left off.  
1=Timer is halted. It stops counting. The clock divider will also be  
reset.  
0=Timer runs normally  
6 RELOAD  
R/W  
0h  
RESET_  
Timer  
This bit reloads the counter without interrupting it operation. This will  
not function if the timer has already completed (when the START bit  
in this register is ‘0’). This is used to periodically prevent the timer  
from firing when an event occurs. Usage while the timer is off may  
result in erroneous behavior.  
DS00002206H-page 356  
2016-2020 Microchip Technology Inc.  
MEC170x  
10h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
5 START  
R/W  
0h  
RESET_  
Timer  
This bit triggers the timer counter. The counter will operate until it  
hits its terminating condition. This will clear this bit. It should be  
noted that when operating in restart mode, there is no terminating  
condition for the counter, so this bit will never clear. Clearing this bit  
will halt the timer counter.  
Setting this bit will:  
• Reset the clock divider counter.  
• Enable the clock divider counter.  
• Start the timer counter.  
• Clear all interrupts.  
Clearing this bit will:  
• Disable the clock divider counter.  
• Stop the timer counter.  
4 SOFT_RESET  
WO  
0h  
0h  
RESET_  
Timer  
This is a soft reset.  
This is self clearing 1 cycle after it is written. Firmware does not need  
to wait before reconfiguring the Basic Timer following soft reset.  
3 AUTO_RESTART  
R/W  
RESET_  
Timer  
This will select the action taken upon completing a count.  
1=The counter will automatically restart the count, using the contents  
of the Timer Preload Register to load the Timer Count Register  
The interrupt will be set in edge mode  
0=The counter will simply enter a done state and wait for further con-  
trol inputs. The interrupt will be set in level mode.  
2 COUNT_UP  
R/W  
0h  
RESET_  
Timer  
This selects the counter direction.  
When the counter in incrementing the counter will saturate and trig-  
ger the event when it reaches all F’s. When the counter is decre-  
menting the counter will saturate when it reaches 0h.  
1=The counter will increment  
0=The counter will decrement  
Note:  
Counter will saturate when it reaches the max count,  
which is dependent on the size of the counter.  
Examples:  
16-bit timer  
0=saturate and transition from 00h to FFh  
1=saturate and transition from FFh to 00h  
32-bit timer  
0=saturate and transition from 0000h to FFFFh  
1=saturate and transition from FFFFh to 0000h  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 357  
MEC170x  
10h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
1 Reserved  
0 ENABLE  
R
-
-
R/W  
0h  
RESET_  
Timer  
This enables the block for operation.  
1=This block will function normally  
0=This block will gate its clock and go into its lowest power state  
DS00002206H-page 358  
2016-2020 Microchip Technology Inc.  
MEC170x  
21.0 16-BIT COUNTER-TIMER INTERFACE  
21.1 Introduction  
The 16-Bit Counter-Timer Interface implements four 16-bit auto-reloading timer/counters. The clock for each  
timer/counter is derived from the system clock and can be divided down by a prescaler. Input-Only and Input/Output  
timers can also use an external input pin to clock or gate the counter. To aid operation in noisy environments the external  
input pin also has a selectable noise filter. If large counts are required, the output of each timer/counter can be internally  
connected to the next timer/counter.  
21.2 References  
No references have been cited for this feature.  
21.3 Terminology  
TABLE 21-1: TERMINOLOGY  
Term  
Definition  
Overflow  
When the timer counter transitions from FFFFh to 0000h  
When the timer counter transitions from 0000h to FFFFh.  
This is the rate at which the timer is incremented or decremented.  
Underflow  
Timer Tick Rate  
21.4 Interface  
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.  
FIGURE 21-1:  
I/O DIAGRAM OF BLOCK  
16-Bit Counter-Timer Interface  
Host Interface  
Signal Description  
Power, Clocks and Reset  
Interrupts  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 359  
MEC170x  
21.5 Signal Description  
TABLE 21-2: SIGNAL DESCRIPTION TABLE  
Name  
Direction  
Description  
TINx  
INPUT  
Timer x Input signal  
Timer x Output signal  
TOUTx  
OUTPUT  
21.6 Host Interface  
The registers defined for 16-bit Timers are accessible by the various hosts as indicated in Section 21.11, "EC Registers".  
21.7 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
21.7.1  
POWER DOMAINS  
Name  
Description  
VTR  
The logic and registers implemented in this block are powered by this  
power well.  
21.7.2  
21.7.3  
CLOCK INPUTS  
Name  
Description  
48MHz  
This is the clock source for this block.  
RESETS  
Name  
Description  
RESET_SYS  
This signal resets all the registers and logic in this block to their default  
state.  
Soft Reset  
This reset signal, which is created by this block, resets all the logic and  
registers to their initial default state. This reset is generated by the block  
when the RESET bit is set in the Timer x Control Register.  
Reset_Timer  
This reset signal, which is created by this block, is asserted when either  
the RESET_SYS or the Soft Reset signal is asserted. The RESET_SYS  
and Soft Reset signals are OR’d together to create this signal.  
21.8 Interrupts  
This section defines the Interrupt Sources generated from this block.  
Source  
Description  
TIMERx  
This interrupt event fires when a 16-bit timer x overflows or underflows.  
DS00002206H-page 360  
2016-2020 Microchip Technology Inc.  
MEC170x  
21.9 Low Power Modes  
The 16-bit Timer may be put into a low power state by the chip’s Power, Clocks, and Reset (PCR) circuitry. This block  
is only be permitted to enter low power modes when the block is not active. The block is inactive in the following condi-  
tions:  
• The block is not running (ENABLE de-asserted)  
• The block is powered down (PD asserted).  
The timer requires one Timer Clock period to halt after receiving a Sleep_En signal. When the block returns from sleep,  
if enabled, it will be restarted from the preload value.  
21.10 Description  
FIGURE 21-2:  
BLOCK DIAGRAM FOR TIMER X  
RESET_SYS  
MCLK  
C/T_x_ClkRequired  
C/T_x_SleepEn  
CLK_EN  
SHUT-OFF  
CONTROL  
RISE/FALL SIG  
LEADING/  
PULSE  
CLK_EN  
SHUT_OFF  
CLK_EN  
SEL  
FALLING  
EDGE  
DIV1,2,4,8,16,32,64,128_EN  
DETECTOR  
TIMER  
MODE  
CONT SIGS  
TIRQx  
CLK_EN  
SEL  
EVENT  
MODE  
OVERFLOW  
TOUTx  
CONT SIGS  
16-BIT COUNTER  
&
LOGIC  
CONT SIGS  
CONT SIGS  
EVENT, GATE SIG  
Counter Reset  
Latch Circuit  
/
NoiseFilter  
TINx  
MODE  
MUX  
ONE-SHOT  
MODE  
Pulse  
Enable Bit  
EVENT SEL  
MUX  
Input  
Polarity Bit  
MEASUREMENT  
MODE  
CONT SIGS  
OVERFLOW_IN  
REGISTER  
CONTROLBITS  
SPB_INTF  
REGS  
SPB  
The 16-bit Timer consists of a 16-bit counter, clocked by a by a configurable Timer Clock. The Timer can operate in any  
of 4 Modes: Timer Mode, Event Mode, One-Shot Mode, and Measurement Mode. The Timer can be used to generate  
an interrupt to the EC. Depending on the mode, the Timer can also generate an output signal.  
21.10.1 TIMER CLOCK  
Any of the frequencies listed in Table 21-3 may be used as the time base for the 16-bit counter.  
TABLE 21-3: TIMER CLOCK FREQUENCIES  
Timer Clock Select  
Frequency Divide Select  
Frequency Selected  
0000b  
0001b  
0010b  
Divide by 1  
Divide by 2  
Divide by 4  
48MHz  
24MHz  
12MHz  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 361  
MEC170x  
TABLE 21-3: TIMER CLOCK FREQUENCIES (CONTINUED)  
Timer Clock Select  
Frequency Divide Select  
Frequency Selected  
0011b  
0100b  
0101b  
0110b  
0111b  
1xxxb  
Divide by 8  
Divide by 16  
Divide by 32  
Divide by 64  
Divide by 128  
Reserved  
6MHz  
3MHz  
1.5MHz  
750KHz  
375KHz  
Reserved  
For the Timer Clock, the Timer Clock Select value is defined by the TCLK field in the Timer x Clock and Event Control  
Register  
21.10.2 FILTER CLOCK AND NOISE FILTER  
The noise filter uses the Filter Clock (FCLK) to filter the signal on the TINx pins. for Event Mode and One-Shot Mode.  
In Event Mode, the Event input is synchronized to FCLK and (if enabled) filtered by a three stage filter. The resulting  
recreated clock is used to clock the timer in Event mode. In Bypass Mode, configured by the FILTER_BYPASS bit in the  
Timer x Control Register, the pulse width of the external signal must be at least 2x the pulse width of the FCLK source.  
In Filter Mode, the pulse width of the external signal must be at least 4x the pulse width of the sync and filter clock  
In One-Shot mode, the TIN duration could be smaller than a TCLK period. The filtered signal is latched until the signal  
is seen in the TCLK domain. This also applies in the filter bypass mode  
Frequencies for the Filter Clock are the as those available for the Timer Clock, and are listed in Table 21-3. For the Filter  
Clock, the Timer Clock Select value is defined by the FCLK field in the Timer x Clock and Event Control Register. The  
choice of frequency is independent of the value chosen for the Timer Clock.  
21.10.3 TIMER CONNECTIONS  
For external inputs/outputs (TINx/TOUTx) to/from timers, please see Pin Configuration chapter for a description of the  
16-bit Counter/Timer Interface.  
TABLE 21-4: TIMER CASCADING DESCRIPTION  
Over-Flow/  
Timer Name  
Timer Type  
Under-flow Input’s Connection  
Timer 0  
Timer 1  
Timer 2  
Timer 3  
General Purpose  
General Purpose  
General Purpose  
General Purpose  
from Timer 3  
from Timer 0  
from Timer 1  
from Timer 2  
Note:  
The cascading connections are independent of the TINx/TOUTx connections.  
21.10.4 STARTING AND STOPPING  
The 16-bit timers can be started and stopped by setting and clearing the ENABLE bit in the Timer x Control Register in  
all modes, except one-shot.  
21.10.5 TIMER MODE  
Timer mode is used to generate periodic interrupts to the EC. When operating in this mode the timer always counts down  
based on one of the internally generated clock sources. The Timer mode is selected by setting the Timer Mode Select  
bits in the Timer Control Register. See Section 21.11.1, "Timer x Control Register".  
The period between timer interrupts and the width of the output pulse is determined by the speed of the clock source,  
the clock divide ratio and the value programmed into the Timer Reload Register. The timer clock source and clock rate  
are selected using the Clock Source Select bits (TCLK) in the Timer x Clock and Event Control Register. See Section  
21.11.2, "Timer x Clock and Event Control Register".  
DS00002206H-page 362  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 21-5: TIMER MODE OPERATIONAL SUMMARY  
Item  
Description  
Timer Clock Frequencies  
This mode supports all the programmable frequencies listed in Table 21-3, "Timer  
Clock Frequencies"  
Filter Clock Frequencies  
This mode supports all the programmable frequencies listed in Table 21-3, "Timer  
Clock Frequencies"  
Count Operation  
Reload Operation  
Down Counter  
When the timer underflows:  
RLOAD = 1, timer reloads from Timer Reload Reg  
RLOAD = 0, timer rolls over to FFFFh.  
Count Start Condition  
Count Stop Condition  
UPDN = 0 (timer only mode): ENABLE = 1  
UPDN = 1 (timer gate mode): ENABLE = 1 & TIN = 1;  
UPDN = 0=ENABLE = 0;  
UPDN = 1: (ENABLE= 0 | TIN = 0)  
Interrupt Request Generation  
Timing  
When timer underflows from 0000h to reload value (as determined by RLOAD) an  
interrupt is generated.  
TINx Pin Function  
Provides timer gate function  
TOUTx Pin Function  
Read From Timer  
TOUT toggles each time the timer underflows (if enabled).  
Current count value can be read by reading the Timer Count Register  
Write to Preload Register  
After the firmware writes to the Timer Reload Register asserting the RESET loads  
the timer with the new value programmed in the Timer Reload Register. Note: If  
the firmware does not assert RESET, the timer will automatically load the Timer  
Reload Register value when the timer underflows. When the timer is running, val-  
ues written to the Timer Reload Register are written to the timer counter when the  
timer underflows. The assertion of Reset also copies the Timer Reload Register  
into the timer counter.  
Selectable Functions  
• Reload timer on underflow with programmed Preload value (Basic Timer)  
• Reload timer with FFFFh in Free Running Mode (Free-running Timer)  
• Timer can be started and stopped by the TINx input pin (Gate Function)  
• The TOUTx pin changes polarity each time the timer underflows (Pulse Output  
Function)  
21.10.5.1 Timer Mode Underflow  
The timer operating in Timer mode can underflow in two different ways. One method, the Reload mode shown in  
Figure 21-3, is to reload the value programmed into the Reload register and continue counting from this value. The sec-  
ond method, Free Running mode Figure 21-4, is to set the timer to FFFFh and continue counting from this value. The  
underflow behavior is controlled by the RLOAD bit in the Timer Control Register.  
FIGURE 21-3:  
RELOAD MODE BEHAVIOR  
Timer Clock  
AAFFh  
AAFEh AAFDh AAFCh  
80C6h 80C5h  
80C4h  
80C3h 80C2h  
0001h 0000h AAFFh AAFEh AAFDh  
Timer Value  
Timer Enable Bit  
Timer Interrupt  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 363  
MEC170x  
FIGURE 21-4:  
FREE RUNNING MODE BEHAVIOR  
Timer Clock  
AAFFh  
AAFEh AAFDh AAFCh  
80C6h 80C5h  
80C4h  
80C3h 80C2h  
0001h 0000h FFFFh FFFEh FFFDh  
Timer Value  
Timer Enable Bit  
Timer Interrupt  
21.10.5.2 Timer Gate Function  
The TIN pin on each timer can be used to pause the timer’s operation when the timer is running. The timer will stop  
counting when the TIN pin is deasserted and count when the TIN pin is asserted. Figure 21-5 shows the timer behavior  
when the TIN pin is used to gate the timer function. The UPDN bit is used to enable and disable the Timer Gate function  
when in the Timer mode.  
FIGURE 21-5:  
TIMER GATE OPERATION  
Timer Clock  
0xFFFE  
0xFFFE 0xFFFD 0xFFFC  
0x80C6 0x80C5  
0x80C4  
0x80C3 0x80C2  
0x0001 0x0000 0xFFFF 0xFFFE 0xFFFD  
Timer Value  
Timer Enable Bit  
TIN  
Timer Interrupt  
21.10.5.3 Timer Mode Pulse Output  
The four Timers can be used to generate a periodic output pulse. The output pulse changes state each time the timer  
underflows. The output is also cleared when the EN bit is cleared. Figure 21-6 shows the behavior of the TOUTx pin  
when it is used as a pulse output pin.  
FIGURE 21-6:  
TIMER PULSE OUTPUT  
Timer Clock  
0xFFFF  
0xFFFE  
0x0001 0x0000 0xFFFF 0xFFFE  
0x80C5  
0x80C4  
0x80C3  
0x0000 0xFFFF  
0x0000 0xFFFF  
Timer Value  
Timer Enable Bit  
TOUTx  
21.10.6 EVENT MODE  
Event mode is used to count events that occur external to the timer. The timer can be programmed to count the overflow  
output from the previous timer or an edge on the TIN pin. The direction the timer counts in Event mode is controlled by  
the UPDN bit in the Timer Control Register. When the timer is in Event mode, the TOUTx signal can be used to generate  
a periodic output pulse when the timer overflows or underflows. Figure 21-6 illustrates the pulse output behavior of the  
TOUTx pin in event mode when the timer underflows.  
DS00002206H-page 364  
2016-2020 Microchip Technology Inc.  
MEC170x  
The timer can be programmed using the Clock and Event Control register to respond to the following events using the  
EVENT bits and the EDGE bits: rising edge of TINx, falling edge of TINx, rising and falling edge of TINx, rising edge of  
overflow input, falling edge of the overflow input, and the rising and falling edges of the overflow input.  
TABLE 21-6: EVENT MODE OPERATIONAL SUMMARY  
Item  
Count Source  
Description  
• External signal input to TINx pin (effective edge can be selected by software)  
• Timer x-1 overflow  
Timer Clock Frequencies  
Filter Clock Frequencies  
This mode supports all the programmable frequencies listed in Table 21-3, "Timer  
Clock Frequencies"  
This mode supports all the programmable frequencies listed in Table 21-3, "Timer  
Clock Frequencies"  
Count Operation  
Reload Operation  
Up/Down Counter  
• When the timer underflows:  
RLOAD = 1, timer reloads from Timer Reload Reg  
RLOAD = 0, timer rolls over to FFFFh.  
• When the timer overflows:  
RLOAD = 1, timer reloads from Timer Reload Reg  
RLOAD = 0, timer rolls over to 0000h.  
Count Start Condition  
Count Stop Condition  
Timer Enable is set (ENABLE = 1)  
Timer Enable is cleared (ENABLE = 0)  
When timer overflows or underflows  
Interrupt Request Genera-  
tion Timing  
TINx Pin Function  
Event Generation  
TOUTx Pin Function  
Read From Timer  
TOUT toggles each time the timer underflows/overflows (if enabled).  
Current count value can be read by reading the Timer Count Register  
Write to Preload Register  
After the firmware writes to the Timer Reload Register, asserting the RESET loads the  
timer with the new value programmed in the Timer Reload Register. Note: If the firm-  
ware does not assert RESET, the timer will automatically load the Timer Reload Regis-  
ter value when the timer underflows.  
Selectable Functions  
• The direction of the counter is selectable via the UPDN bit.  
• Reload timer on underflow/overflow with programmed Preload value (Basic Timer)  
• Reload timer with FFFFh in Free Running Mode (Free-running Timer)  
• Pulse Output Function  
The TOUTx pin changes polarity each time the timer underflows or overflows.  
21.10.6.1 Event Mode Operation  
The timer starts counting events when the ENABLE bit in the Timer Control Register is set and continues to count until  
the ENABLE bit is cleared. When the ENABLE bit is set, the timer continues counting from the current value in the timer  
except after a reset event. After a reset event, the timer always starts counting from the value programmed in the Reload  
Register if counting down or from 0000h if counting up. Figure 21-7 shows an example of timer operation in Event mode.  
The RLOAD bit controls the behavior of the timer when it underflows or overflows.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 365  
MEC170x  
FIGURE 21-7:  
EVENT MODE OPERATION  
Event Input  
AA00h  
A9FFh  
0001h 0000h AA00h A9FFh  
80C5h  
80C4h  
80C3h  
0000h AA00h A9FFh AA00h AA01h  
FFFEh FFFFh AA00h  
Timer Value  
Timer Enable Bit  
Up/Down Bit  
Timer Interrupt  
21.10.7 ONE-SHOT MODE  
The One-Shot mode of the timer is used to generate a single interrupt to the EC after a specified amount of time. The  
timer can be configured to start using the ENABLE bit (Figure 21-8) or on a timer overflow event from the previous timer.  
See Section 21.11.2, "Timer x Clock and Event Control Register" for configuration details. The ENABLE bit must be set  
for an event to start the timer. The ENABLE bit is cleared one clock after the timer starts. The timer always starts from  
the value in the Reload Register and counts down in One-Shot mode.  
TABLE 21-7: ONE SHOT MODE OPERATIONAL SUMMARY  
Item  
Description  
Timer Clock Frequencies  
This mode supports all the programmable frequencies listed in Table 21-3, "Timer  
Clock Frequencies"  
Filter Clock Frequencies  
This mode supports all the programmable frequencies listed in Table 21-3, "Timer  
Clock Frequencies"  
Count Operation  
Reload Operation  
Down Counter  
When the timer underflows the timer will stop.  
When the timer is enabled timer starts counting from value programmed in Timer  
Reload Register. (RLOAD has no effect in this mode)  
Count Start Condition  
Count Stop Condition  
Setting the ENABLE bit to 1 starts One-Shot mode.  
The timer clock automatically clears the enable bit one timer tick later.  
One-Shot mode may be enabled in Event Mode. In Event mode an overflow from the  
previous timer is used for timer tick rate.  
• Timer is reset (RESET = 1)  
• Timer underflows  
Interrupt Request Genera-  
tion Timing  
When an underflow occurs.  
TINx Pin Function  
One Shot External input  
TOUTx Pin Function  
Read From Timer  
The TOUTx pin is asserted when the timer starts and de-asserted when the timer stops  
Current count value can be read by reading the Timer Count Register  
Write to Preload Register  
After the firmware writes to the Timer Reload Register, asserting the RESET loads the  
timer with the new value programmed in the Timer Reload Register. Note: If the firm-  
ware does not assert RESET, the timer will automatically load the Timer Reload Regis-  
ter value when the timer underflows.  
Selectable Functions  
• Pulse Output Function  
The TOUTx pin is asserted when the timer starts and de-asserted when the timer  
stops.  
DS00002206H-page 366  
2016-2020 Microchip Technology Inc.  
MEC170x  
FIGURE 21-8:  
TIMER START BASED ON ENABLE BIT  
Timer Clock  
AA00h  
A9FFh A9FEh  
0000h  
FFFFh  
Timer Value  
Timer Enable Bit  
cleared by hardware  
Timer Interrupt  
FIGURE 21-9:  
TIMER START BASED ON EXTERNAL EVENT  
Timer Clock  
0xAA00  
0xA9FF 0xA9FE  
0x0001 0x0000 0xFFFF  
Timer Value  
Timer Enable Bit  
cleared by hardware  
Event Input  
Timer Interrupt  
FIGURE 21-10:  
ONE SHOT TIMER WITH PULSE OUTPUT  
Timer Clock  
0xAA00  
0xA9FF 0xA9FE  
0x0001 0x0000 0xFFFF  
0xAA00  
0xA9FF 0xA9FE  
0x0001 0x0000 0xFFFF  
Timer Value  
Timer Enable Bit  
cleared by hardware  
Timer Interrupt  
TOUTx  
21.10.8 MEASUREMENT MODE  
The Measurement mode is used to measure the pulse width or period of an external signal. An interrupt to the EC is  
generated after each measurement or if the timer overflows and no measurement occurred. The timer measures the  
pulse width or period by counting the number of clock between edges on the TINx pin. The timer always stars counting  
at zero and counts up to 0xFFFF. The accuracy of the measurement depends on the speed of the clock being used. The  
speed of the clock also determines the maximum pulse width or period that can be detected.  
TABLE 21-8: MEASUREMENT MODE OPERATIONAL SUMMARY  
Item  
Description  
Timer Clock Frequencies  
This mode supports all the programmable frequencies listed in Table 21-3, "Timer  
Clock Frequencies"  
Filter Clock Frequencies  
This mode supports all the programmable frequencies listed in Table 21-3, "Timer  
Clock Frequencies"  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 367  
MEC170x  
TABLE 21-8: MEASUREMENT MODE OPERATIONAL SUMMARY (CONTINUED)  
Item  
Description  
Count Operation  
• Up Count  
• At measurement pulse's effective edge, the count value is transferred to the Timer  
Reload Register and the timer is loaded with 0000h and continues counting.  
Count Start Condition  
Count Stop Condition  
• Timer enable is set (ENABLE = 1)  
• Timer is reset (RESET = 1)  
• Timer overflows  
• Timer enable is cleared (ENABLE = 0)  
• When timer overflows  
Interrupt Request Genera-  
tion Timing  
• When a measurement pulse’s effective edge is input. (An interrupt is not gener-  
ated on the first effective edge after the timer is started.)  
TINx Pin Function  
Read From Timer  
Programmable Input port or Measurement input  
When the Timer x Reload Register is read it indicates the measurement result from the  
last measurement made. The Timer x Reload Register reads 0000h if the timer over-  
flows before a measurement is made.  
Write to Timer  
Timer x Reload Register is Read-Only in Measurement mode  
21.10.8.1 Pulse Width Measurements  
The timers measure pulse width by counting the number of timer clocks since the last rising or falling edge of the TINx  
input. To measure the pulse width of a signal on the TINx pin, the EDGE bits in the Clock and Event Control Register,  
must be set to start counting on rising and falling edges. The timer starts measuring on the next edge (rising or falling)  
on the TINx pin after the ENABLE bit is set. The Reload register stores the result of the last measurement taken. If the  
timer overflows, 0x0000 is written to the Reload register and the ENABLE bit is cleared stopping the timer. Figure 21-  
11 shows the timer behavior when measuring pulse widths.  
The timer will not assert an interrupt in Pulse Measurement mode until the timer detects both a rising and a falling edge.  
FIGURE 21-11:  
PULSE WIDTH MEASUREMENT  
Timer Clock  
0x000  
0
0x000 0x000 0x000 0x000 0x000 0x000 0x000 0x000 0x000 0x000 0x000 0x000 0x000  
0xFFF 0xFFF 0x000  
Timer Value  
Timer Enable Bit  
TIN  
1
2
0
1
2
3
0
1
2
3
0
1
2
E
F
0
Timer Reload  
Register  
0x000  
0
0x000  
2
0x000  
3
0x000  
1
0x000  
0
Timer Interrupt  
21.10.8.2 Period Measurements  
The 16-bit timer measures the period of a signal by counting the number of timer clocks between either rising or falling  
edges of the TINx input. The measurement edge is determined by the EDGE bits in the Clock and Event Control Reg-  
ister. The timer starts measuring on the next edge (rising or falling) on the TINx pin after the ENABLE bit is set. The  
reload register stores the result of the last measurement taken. If the timer overflows, 0x0000 is written to the reload  
register. Figure 21-12 shows the timer behavior when measuring the period of a signal.  
The timer will not signal an interrupt in period measurement mode until the timer detects either two rising edges or two  
falling edges.  
DS00002206H-page 368  
2016-2020 Microchip Technology Inc.  
MEC170x  
FIGURE 21-12:  
PULSE PERIOD MEASUREMENT  
Timer Clock  
Timer Value  
0x000  
0
0x000 0x000 0x000 0x000 0x000 0x000 0x000 0x000 0x000 0x000  
0xFFF 0xFFF 0x000  
1
2
3
0
1
2
3
4
0
1
E
F
0
Timer Enable Bit  
TIN  
Timer Reload  
Register  
0x000  
0
0x000  
0
0x000  
3
0x000  
4
Timer Interrupt  
21.11 EC 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 each instance of the 16-Bit Counter-Timer Interface Block in the Block Overview and  
Base Address Table in Section 3.0, "Device Inventory".  
TABLE 21-9: REGISTER SUMMARY  
Offset  
Register Name  
Timer x Control Register  
00h  
04h  
08h  
0Ch  
Timer x Clock and Event Control Register  
Timer x Reload Register  
Timer x Count Register  
21.11.1 TIMER X CONTROL REGISTER  
00h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:13 Reserved  
R
R
-
-
12 TIMERX_CLK_REQ  
0h  
Reset_  
Timer  
This bit reflects the current state of the timer’s Clock_Required out-  
put signal.  
1=The main clock is required by this block  
0=The main clock is not required by this block  
11 SLEEP_ENABLE  
R
0h  
Reset_  
Timer  
This bit reflects the current state of the timer’s Sleep_Enable input  
signal.  
1=Normal operation  
0=Sleep Mode is requested  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 369  
MEC170x  
00h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
10 TOUT_POLARITY  
R/W  
0h  
Reset_  
Timer  
This bit determines the polarity of the TOUTx output signal. In timer  
modes that toggle the TOUTx signal, this polarity bit will not have a  
perceivable difference, except to determine the inactive state. In  
One-Shot mode this determines if the pulsed output is active high  
or active low.  
1=Active low  
0=Active high  
9
8
PD  
R/W  
R/W  
1h  
0h  
Reset_  
Timer  
Power Down.  
1=The timer is powered down and all clocks are gated  
0=The timer is in a running state  
FILTER_BYPASS  
Reset_  
Timer  
This bit is used to enable or disable the noise filter on the TINx  
input signal.  
1=IBypass Mode: input filter disabled. The TINx input directly  
affects the timer  
0=Filter Mode: input filter enabled. The TINx input is filtered by the  
input filter  
7
RLOAD  
R/W  
0h  
Reset_  
Timer  
Reload Control. This bit controls how the timer is reloaded on over-  
flow or underflow in Event and Timer modes. It has no effect in One  
Shot mode.  
1=Reload timer from Timer Reload Register and continue counting  
0=Roll timer over to FFFFh and continue counting when counting  
down and rolls over to 0000h and continues counting when  
counting up  
6
4
TOUT_EN  
R/W  
R/W  
0h  
0h  
Reset_  
Timer  
This bit enables the TOUTx pin  
1=TOUTx pin function is enabled  
0=TOUTx pin is inactive  
UPDN  
Reset_  
Timer  
In Event Mode, this bit selects the timer count direction. In Timer  
Mode enables timer control by the TINx input pin.  
Event Mode:  
1=The timer counts up  
0=The timer counts down  
Timer Mode:  
1=TINx pin pauses the timer when de-asserted  
0=TINx pin has no effect on the timer  
DS00002206H-page 370  
2016-2020 Microchip Technology Inc.  
MEC170x  
00h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
4
INPOL  
R/W  
0h  
0h  
Reset_  
Timer  
This bit selects the polarity of the TINx input  
1=TINx is active low  
0=TINx is active high  
3:2 MODE  
Timer Mode.  
R/W  
R/W  
Reset_  
Timer  
3=Measurement Mode  
2=One Shot Mode  
1=Event Mode  
0=Timer Mode  
1
RESET  
0h  
Reset_  
Timer  
This bit stops the timer and resets the internal counter to the value  
in the Timer Reload Register. This bit also clears the ENABLE bit if  
it is set. This bit is self-clearing after the timer is reset.  
Firmware must poll the RESET bit in order to determine when the  
timer is active after reset. The polling time may be any value from 0  
ms to 2^(TCLK+1))/48MHz. If it the TCLK value was set to 0111b  
then the polling time will be a 5.33us (typ). Worst case polling time  
is dependent on accuracy of 48MHz clock source.  
Interrupts are blocked only when RESET takes effect and the  
ENABLE bit is cleared. If interrupts are not desired, firmware must  
mask the interrupt in the interrupt block.  
1=Timer reset  
0=Normal timer operation  
0
ENABLE  
R/W  
0h  
Reset_  
Timer  
This bit is used to start and stop the timer. This bit does not reset  
the timer count but does reset the timer pulse output. This bit will  
be cleared when the timer stops counting in One-Shot mode.  
The ENABLE bit is cleared after a RESET cycle has completed.  
Firmware must poll the RESET bit in order to determine when the  
timer is active after reset.  
1=Timer is enabled  
0=Timer is disabled  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 371  
MEC170x  
21.11.2 TIMER X CLOCK AND EVENT CONTROL REGISTER  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:12 Reserved  
11:8 FCLK  
R
-
-
R/W  
0h  
Reset_  
Timer  
Timer Clock Select. This field determines the clock source for the  
TINx noise filter. See Section 21.10.2, "Filter Clock and Noise Fil-  
ter" for a description of the available frequencies. The available fre-  
quencies are the same as for TCLK.  
7
EVENT  
R/W  
R/W  
0h  
0h  
Reset_  
Timer  
Event Select. This bit is used to select the count source when the  
timer is operating in Event Mode.  
1=TINx is count source  
0=Timer x-1 overflow is count source  
6:5 EDGE  
This field selects which edge of the TINx input signal affects the  
Reset_  
Timer  
timer in Event Mode, One-Shot Mode and Measurement Mode.  
Event Mode:  
11b=No event selected  
10b=Counts rising and falling edges  
01b=Counts rising edges  
00b=Counts falling edges  
One-Shot Mode:  
11b=Start counting when the Enable bit is set  
10b=Starts counting on a rising or falling edge  
01b=Starts counting on a rising edge  
00b=Starts counting on a falling edge  
Measurement Mode:  
11b=No event selected  
10b=Measures the time between rising edges and falling edges and  
the time between falling edges and rising edges  
01b=Measures the time between rising edges  
00b=Measures the time between falling edges  
4
Reserved  
R
-
-
3:0 TCLK  
Timer Clock Select. This field determines the clock source for the  
R/W  
0h  
Reset_  
Timer  
16-bit counter in the timer. See Section 21.10.1, "Timer Clock" for a  
description of the available frequencies.  
DS00002206H-page 372  
2016-2020 Microchip Technology Inc.  
MEC170x  
21.11.3 TIMER X RELOAD REGISTER  
08h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
31:16 Reserved  
R
-
-
15:0 TIMER_RELOAD  
R/W  
FFFFh  
Reset_  
Timer  
The Timer Reload register is used in Timer and One-Shot modes to  
set the lower limit of the timer. In Event mode the Timer Reload  
register sets either the upper or lower limit of the timer depending  
on if the timer is counting up or down. Valid Timer Reload values  
are 0001h - FFFFh. If the timer is running, the reload value will not  
be updated until the timer overflows or underflows.  
Programming a 0000h as a preload value is not a valid count  
value. Using a value of 0000h will cause unpredictable behavior.  
21.11.4 TIMER X COUNT REGISTER  
0Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:16 Reserved  
R
R
-
-
15:0 TIMER_COUNT  
FFFFh  
Reset_  
Timer  
The Timer Count register returns the current value of the timer in all  
modes.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 373  
MEC170x  
22.0 INPUT CAPTURE AND COMPARE TIMER  
22.1 Introduction  
The Input Capture and Compare Timers block contains a 32-bit timer running at the main system clock frequency. The  
timer is free-running and is associated with six 32-bit capture registers and two compare registers. Each capture register  
can record the value of the free-running timer based on a programmable edge of its associated input pin. An interrupt  
can be generated for each capture register each time it acquires a new timer value. The timer can also generate an  
interrupt when it automatically resets and can additionally generate two more interrupts when the timer matches the  
value in either of two 32-bit compare registers.  
22.2 References  
No references have been cited for this feature.  
22.3 Terminology  
There is no terminology for this block.  
22.4 Interface  
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.  
FIGURE 22-1:  
I/O DIAGRAM OF BLOCK  
Input Capture and Compare  
Timer  
Host Interface  
Signal Description  
Power, Clocks and Reset  
Interrupts  
22.5 Signal Description  
TABLE 22-1: SIGNAL DESCRIPTION  
Name  
Direction  
Description  
ICT0  
INPUT  
External capture trigger signal for Capture Register 0. Identical to  
signal FAN_TACH0.  
ICT1  
INPUT  
External capture trigger signal for Capture Register 1. Identical to  
signal FAN_TACH1.  
DS00002206H-page 374  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 22-1: SIGNAL DESCRIPTION (CONTINUED)  
Name  
Direction  
Description  
ICT2  
INPUT  
External capture trigger signal for Capture Register 2. Identical to  
signal FAN_TACH2.  
ICT3  
ICT4  
INPUT  
INPUT  
External capture trigger signal for Capture Register 3  
External capture trigger signal for Capture Register 4  
External capture trigger signal for Capture Register 5  
External compare match signal for Compare Register 0  
External compare match signal for Compare Register 1  
ICT5  
INPUT  
CTOUT0  
CTOUT1  
OUTPUT  
OUTPUT  
22.6 Host Interface  
The registers defined for 16-bit Timers are accessible by the various hosts as indicated in Section 22.12, "EC Registers".  
22.7 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
22.7.1  
POWER DOMAINS  
Name  
Description  
VTR  
The logic and registers implemented in this block are powered by this  
power well.  
22.7.2  
22.7.3  
CLOCK INPUTS  
Name  
Description  
48MHz  
This is the clock source for this block.  
RESETS  
Name  
Description  
RESET_SYS  
This signal resets all the registers and logic in this block to their default  
state.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 375  
MEC170x  
22.8 Interrupts  
This section defines the Interrupt Sources generated from this block.  
Source  
Description  
CAPTURE TIMER  
This interrupt event fires when the 32-bit free running counter overflows  
from FFFF_FFFFh to 0000_0000h.  
CAPTURE 0  
CAPTURE 1  
CAPTURE 2  
CAPTURE 3  
CAPTURE 4  
CAPTURE 5  
COMPARE 0  
This interrupt event fires when Capture Register 0 acquires a new value.  
This interrupt event fires when Capture Register 1 acquires a new value.  
This interrupt event fires when Capture Register 2 acquires a new value.  
This interrupt event fires when Capture Register 3 acquires a new value.  
This interrupt event fires when Capture Register 4 acquires a new value.  
This interrupt event fires when Capture Register 5 acquires a new value.  
This interrupt event fires when the contents of Compare 0 Register  
match the contents of the Free Running Counter.  
COMPARE 1  
This interrupt event fires when the contents of Compare 1 Register  
match the contents of the Free Running Counter.  
22.9 Low Power Modes  
The Capture and Compare Timer may be put into a low power state by the chip’s Power, Clocks, and Reset (PCR) cir-  
cuitry. This block is only be permitted to enter low power modes when the block is not active. The block is inactive if the  
ACTIVATE bit is de-asserted, and will also become inactive when the block’s SLEEP_EN signal is asserted.  
When the block returns from sleep, if enabled, the Free Running Timer Register value will continue counting from where  
it was when the block entered the Sleep state.  
DS00002206H-page 376  
2016-2020 Microchip Technology Inc.  
MEC170x  
22.10 Description  
FIGURE 22-2:  
CAPTURE AND COMPARE TIMER BLOCK DIAGRAM  
CAPTURE_TIMER  
+1  
Compare0  
Compare1  
Capture0  
D
Timer  
COMPARE 0  
CTOUT0  
TCLK Scaler  
System Clock  
CK  
=
=
T
T
Q
Q
COMPARE 1  
CTOUT1  
D
EN  
ICT0  
ICT1  
ICT2  
ICT3  
Filter  
Filter  
Filter  
Filter  
Edge  
Edge  
Edge  
Edge  
CAPTURE 0  
CAPTURE 1  
CAPTURE 2  
CAPTURE 3  
D
Capture1  
Capture2  
Capture3  
EN  
D
EN  
D
EN  
D
Capture4  
Capture5  
ICT4  
EN  
Filter  
Filter  
Edge  
Edge  
CAPTURE 4  
CAPTURE 5  
D
ICT5  
EN  
22.10.1 TIMER CLOCK  
Any of the frequencies listed in Table 22-2 may be used as the time base for the Free Running Counter.  
TABLE 22-2: TIMER CLOCK FREQUENCIES  
Timer Clock Select  
Frequency Divide Select  
Frequency Selected  
0000b  
0001b  
0010b  
0011b  
0100b  
0101b  
Divide by 1  
Divide by 2  
Divide by 4  
Divide by 8  
Divide by 16  
Divide by 32  
48MHz  
24MHz  
12MHz  
6MHz  
3MHz  
1.5MHz  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 377  
MEC170x  
TABLE 22-2: TIMER CLOCK FREQUENCIES (CONTINUED)  
Timer Clock Select  
Frequency Divide Select  
Frequency Selected  
0110b  
0111b  
1xxxb  
Divide by 64  
Divide by 128  
Reserved  
750KHz  
375KHz  
Reserved  
For the Timer Clock, the Timer Clock Select value is defined by the TCLK field in the Capture and Compare Timer  
Control Register  
22.10.2 FILTER CLOCK AND NOISE FILTER  
The noise filter uses the Filter Clock (FCLK) to filter the signal on the Input Capture pins. An Input Capture pin must  
remain in the same state for three FCLK ticks before the internal state changes. The FILTER_BYPASS bit for the Input  
Capture pin may be used to bypass the input filter. Each Capture Register can individually bypass the filter.  
When the input filter is bypassed, the minimum period of FCLK must be at least 2X the duration of an input signal pulse  
in order for an edge event to be captured reliably. When the input filter is enabled, the minimum period of FCLK must  
be at least 4X the duration of an input signal pulse in order for an edge event to be captured reliably.  
22.11 Operation  
22.11.1 INPUT CAPTURE  
The Input Capture block consists of a free-running 32-bit timer and 2 capture registers. Each of the capture registers is  
associated with an input pin as well as an interrupt source bit in the Interrupt Aggregator: The Capture registers store  
the current value of the Free Running timer whenever the associated input signal changes, according to the pro-  
grammed edge detection. An interrupt is also generated to the EC. The Capture registers are read-only. The registers  
are updated every time an edge is detected. If software does not read the register before the next edge, the value is lost.  
22.11.2 COMPARE TIMER  
There are two 32-bit Compare registers. Each of these registers can independently generate an interrupt to the EC when  
the 32-bit Free Running Timer matches the contents of the Compare register. The compare operation for each is  
enabled or disabled by a bit in the Capture and Compare Timer Control Register.  
22.11.2.1 Interrupt Generation  
Whenever a Compare Timer is enabled and the Compare register matches the Free Running Timer, a COMPARE event  
is sent to the Interrupt Aggregator. The event will trigger an EC interrupt if enabled by the appropriate Interrupt Enable  
register in the Aggregator.  
22.11.2.2 Compare Output Generation  
Each Compare Timer is associated with a toggle flip-flop. When the 32-bit Free Running Timer matches the contents of  
the Compare register the output off the flip-flop is complemented. Each of the toggle flip-flops can be independently set  
or cleared by using the COMPARE_SET or COMPARE_CLEAR fields, respectively, in the Capture and Compare Timer  
Control Register.  
ACompare Timer should be disabled before setting or clearing the output, when updating the Compare register, or when  
updating the Free Running Timer, so spurious events are not generated by the matcher.  
22.12 EC 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 each instance of the Input Capture and Compare Timer Block in the Block Overview  
and Base Address Table in Section 3.0, "Device Inventory".  
Note:  
All registers in this block must be accessed as DWORDs.  
DS00002206H-page 378  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 22-3:  
Offset  
REGISTER SUMMARY  
Register Name  
00h  
04h  
08h  
0Ch  
10h  
14h  
18h  
1Ch  
20h  
24h  
28h  
2Ch  
Capture and Compare Timer Control Register  
Capture Control 0 Register  
Capture Control 1 Register  
Free Running Timer Register  
Capture 0 Register  
Capture 1 Register  
Capture 2 Register  
Capture 3 Register  
Capture 4 Register  
Capture 5 Register  
Compare 0 Register  
Compare 1 Register  
22.12.1 CAPTURE AND COMPARE TIMER CONTROL REGISTER  
Note:  
It is not recommended to use Read-Modify-Write operations on this register. May inadvertently cause the  
COMPARE_SET and COMPARE_CLEAR bits to be written to ‘1’ in error.  
00h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:26 Reserved  
25 COMPARE_CLEAR0  
R
-
-
R/WC  
0
RESET  
_SYS  
When read, returns the current value off the Compare Timer Out-  
put 0 state.  
If written with a ‘1b’, the output state is cleared to ‘0’.  
Writes have no effect if COMPARE_SET1 in this register is written  
with a ‘1b’ at the same time.  
Writes of ‘0b’ have no effect.  
24 COMPARE_CLEAR1  
R/WC  
0
RESET  
_SYS  
When read, returns the current value off the Compare Timer Out-  
put 1 state.  
If written with a ‘1b’, the output state is cleared to ‘0’.  
Writes have no effect if COMPARE_SET0 in this register is written  
with a ‘1b’ at the same time. Writes of ‘0b’ have no effect.  
23:18 Reserved  
R
-
-
2016-2020 Microchip Technology Inc.  
DS00002206H-page 379  
MEC170x  
00h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
17 COMPARE_SET0  
R/WS  
0
RESET  
_SYS  
When read, returns the current value off the Compare Timer Out-  
put 0 state.  
• If written with a ‘1b’, the output state is set to ‘1’.  
• Writes of ‘0b’ have no effect  
16 COMPARE_SET1  
R/WS  
0
RESET  
_SYS  
When read, returns the current value off the Compare Timer Out-  
put 1 state.  
If written with a ‘1b’, the output state is set to ‘1’.  
Writes of ‘0b’ have no effect  
15:10 Reserved  
R
-
-
9
8
7
COMPARE_ENABLE1  
R/W  
0b  
RESET  
_SYS  
Compare Enable for Compare 1 Register. When enabled, a match  
between the Compare 1 Register and the Free Running Timer  
Register will cause the TOUT1 output to toggle and will send a  
COMPARE event to the Interrupt Aggregator.  
1=Enabled  
0=Disabled  
COMPARE_ENABLE0  
R/W  
0b  
RESET  
_SYS  
Compare Enable for Compare 0 Register. When enabled, a match  
between the Compare 0 Register and the Free Running Timer  
Register will cause the TOUT0 output to toggle and will send a  
COMPARE event to the Interrupt Aggregator.  
1=Enabled  
0=Disabled  
Reserved  
R
-
-
6:4 TCLK  
This 3-bit field sets the clock source for the Free-Running Counter.  
R/W  
0b  
RESET  
_SYS  
See Table 22-2, "Timer Clock Frequencies" for a list of available  
frequencies.  
3
2
Reserved  
R
-
-
FREE_RESET  
R/W  
0h  
RESET  
_SYS  
Free Running Timer Reset. This bit stops the timer and resets the  
internal counter to 0000_0000h. This bit does not affect the  
FREE_ENABLE bit. This bit is self clearing after the timer is reset.  
1=Timer reset  
0=Normal timer operation  
DS00002206H-page 380  
2016-2020 Microchip Technology Inc.  
MEC170x  
00h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
1
FREE_ENABLE  
R/W  
0h  
RESET  
_SYS  
Free-Running Timer Enable. This bit is used to start and stop the  
free running timer. This bit does not reset the timer count. The  
timer starts counting at 0000_0000h on reset and wraps around  
back to 0000_0000h after it reaches FFFF_FFFFh.  
The FREE_ENABLE bit is cleared after the RESET cycle is done.  
Firmware must poll the FREE_RESET bit to determine when it is  
safe to re-enable the timer.  
1=Timer is enabled. The Free Running Timer Register is read-only.  
0=Timer is disabled. The Free Running Timer Register is writable.  
0
ACTIVATE  
R/W  
0h  
RESET  
_SYS  
1=The timer block is in a running state  
0=The timer block is powered down and all clocks are gated  
22.12.2 CAPTURE CONTROL 0 REGISTER  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:29 FCLK_SEL3  
R/W  
0h  
RESET  
_SYS  
This 3-bit field sets the clock source for the input filter for Capture  
Register 3. See Table 22-2, "Timer Clock Frequencies" for a list of  
available frequencies.  
28:27 Reserved  
26 FILTER_BYP3  
This bit enables bypassing the input noise filter for Capture Regis-  
R
-
-
R/W  
0h  
RESET  
_SYS  
ter 3, so that the input signal goes directly into the timer.  
1=Input filter bypassed  
0=Input filter enabled  
25:24 CAPTURE_EDGE3  
R/W  
0h  
RESET  
_SYS  
This field selects the edge type that triggers the capture of the Free  
Running Counter into Capture Register 3.  
3=Capture event disabled  
2=Both rising and falling edges  
1=Rising edges  
0=Falling edges  
23:21 FCLK_SEL2  
R/W  
0h  
RESET  
_SYS  
This 3-bit field sets the clock source for the input filter for Capture  
Register 2. See Table 22-2, "Timer Clock Frequencies" for a list of  
available frequencies.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 381  
MEC170x  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
20:19 Reserved  
R
-
-
18 FILTER_BYP2  
R/W  
0h  
RESET  
_SYS  
This bit enables bypassing the input noise filter for Capture Regis-  
ter 2, so that the input signal goes directly into the timer.  
1=Input filter bypassed  
0=Input filter enabled  
17:16 CAPTURE_EDGE2  
R/W  
0h  
RESET  
_SYS  
This field selects the edge type that triggers the capture of the Free  
Running Counter into Capture Register 2.  
3=Capture event disabled  
2=Both rising and falling edges  
1=Rising edges  
0=Falling edges  
15:13 FCLK_SEL1  
R/W  
0b  
RESET  
_SYS  
This 3-bit field sets the clock source for the input filter for Capture  
Register 1. See Table 22-2, "Timer Clock Frequencies" for a list of  
available frequencies.  
12:11 Reserved  
10 FILTER_BYP1  
This bit enables bypassing the input noise filter for Capture Regis-  
R
-
-
R/W  
0h  
RESET  
_SYS  
ter 1, so that the input signal goes directly into the timer.  
1=Input filter bypassed  
0=Input filter enabled  
9:8 CAPTURE_EDGE1  
R/W  
0h  
RESET  
_SYS  
This field selects the edge type that triggers the capture of the Free  
Running Counter into Capture Register 1.  
3=Capture event disabled  
2=Both rising and falling edges  
1=Rising edges  
0=Falling edges  
7:5 FCLK_SEL0  
R/W  
R
0h  
-
RESET  
_SYS  
This 3-bit field sets the clock source for the input filter for Capture  
Register 0. See Table 22-2, "Timer Clock Frequencies" for a list of  
available frequencies.  
4:3 Reserved  
-
DS00002206H-page 382  
2016-2020 Microchip Technology Inc.  
MEC170x  
04h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
2
FILTER_BYP0  
R/W  
0h  
RESET  
_SYS  
This bit enables bypassing the input noise filter for Capture Regis-  
ter 0, so that the input signal goes directly into the timer.  
1=Input filter bypassed  
0=Input filter enabled  
1:0 CAPTURE_EDGE0  
R/W  
0h  
RESET  
_SYS  
This field selects the edge type that triggers the capture of the Free  
Running Counter into Capture Register 0.  
3=Capture event disabled  
2=Both rising and falling edges  
1=Rising edges  
0=Falling edges  
22.12.3 CAPTURE CONTROL 1 REGISTER  
08h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:16 Reserved  
R
-
-
15:13 FCLK_SEL5  
R/W  
0b  
RESET  
_SYS  
This 3-bit field sets the clock source for the input filter for Capture  
Register 5. See Table 22-2, "Timer Clock Frequencies" for a list of  
available frequencies.  
12:11 Reserved  
10 FILTER_BYP5  
This bit enables bypassing the input noise filter for Capture Regis-  
R
-
-
R/W  
0h  
RESET  
_SYS  
ter 5, so that the input signal goes directly into the timer.  
1=Input filter bypassed  
0=Input filter enabled  
9:8 CAPTURE_EDGE5  
R/W  
0h  
RESET  
_SYS  
This field selects the edge type that triggers the capture of the Free  
Running Counter into Capture Register 5.  
3=Capture event disabled  
2=Both rising and falling edges  
1=Rising edges  
0=Falling edges  
7:5 FCLK_SEL4  
R/W  
0h  
RESET  
_SYS  
This 3-bit field sets the clock source for the input filter for Capture  
Register 4. See Table 22-2, "Timer Clock Frequencies" for a list of  
available frequencies.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 383  
MEC170x  
08h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
4:3 Reserved  
FILTER_BYP4  
R
-
-
2
R/W  
0h  
RESET  
_SYS  
This bit enables bypassing the input noise filter for Capture Regis-  
ter 4, so that the input signal goes directly into the timer.  
1=Input filter bypassed  
0=Input filter enabled  
1:0 CAPTURE_EDGE4  
R/W  
0h  
RESET  
_SYS  
This field selects the edge type that triggers the capture of the Free  
Running Counter into Capture Register 4.  
3=Capture event disabled  
2=Both rising and falling edges  
1=Rising edges  
0=Falling edges  
22.12.4 FREE RUNNING TIMER REGISTER  
0Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:0 FREE_RUNNING_TIMER  
R/W  
0h  
RESET  
_SYS  
This register contains the current value of the Free Running Timer.  
A Capture Timer interrupt is signaled to the Interrupt Aggregator  
when this register transitions from FFFF_FFFFh to 0000_0000h.  
When FREE_ENABLE in the Capture and Compare Timer Control  
Register is ‘1’, this register is read-only. When FREE_ENABLE is  
‘0’, this register may be written.  
22.12.5 CAPTURE 0 REGISTER  
10h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:0 CAPTURE_0  
R
0h  
RESET  
_SYS  
This register saves the value copied from the Free Running timer  
on a programmed edge of ICT0.  
DS00002206H-page 384  
2016-2020 Microchip Technology Inc.  
MEC170x  
22.12.6 CAPTURE 1 REGISTER  
14h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
31:0 CAPTURE_1  
R
0h  
RESET  
_SYS  
This register saves the value copied from the Free Running timer  
on a programmed edge of ICT1.  
22.12.7 CAPTURE 2 REGISTER  
18h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:0 CAPTURE_2  
R
0h  
RESET  
_SYS  
This register saves the value copied from the Free Running timer  
on a programmed edge of ICT2.  
22.12.8 CAPTURE 3 REGISTER  
1Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:0 CAPTURE_3  
R
0h  
RESET  
_SYS  
This register saves the value copied from the Free Running timer  
on a programmed edge of ICT3.  
22.12.9 CAPTURE 4 REGISTER  
20h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:0 CAPTURE_4  
R
0h  
RESET  
_SYS  
This register saves the value copied from the Free Running timer  
on a programmed edge of ICT4.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 385  
MEC170x  
22.12.10 CAPTURE 5 REGISTER  
24h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:0 CAPTURE_5  
R
0h  
RESET  
_SYS  
This register saves the value copied from the Free Running timer  
on a programmed edge of ICT5.  
22.12.11 COMPARE 0 REGISTER  
28h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:0 COMPARE_0  
R/W  
0h  
RESET  
_SYS  
A COMPARE 0 interrupt is generated when this register matches  
the value in the Free Running Timer.  
22.12.12 COMPARE 1 REGISTER  
2Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:0 COMPARE_1  
R/W  
0h  
RESET  
_SYS  
A COMPARE 1 interrupt is generated when this register matches  
the value in the Free Running Timer.  
DS00002206H-page 386  
2016-2020 Microchip Technology Inc.  
MEC170x  
23.0 HIBERNATION TIMER  
23.1 Introduction  
The Hibernation Timer can generate a wake event to the Embedded Controller (EC) when it is in a hibernation mode.  
This block supports wake events up to 2 hours in duration. The timer is a 16-bit binary count-down timer that can be  
programmed in 30.5µs and 0.125 second increments for period ranges of 30.5µs to 2s or 0.125s to 136.5 minutes,  
respectively. Writing a non-zero value to this register starts the counter from that value. A wake-up interrupt is generated  
when the count reaches zero.  
23.2 References  
No references have been cited for this chapter  
23.3 Terminology  
No terms have been cited for this chapter.  
23.4 Interface  
This block is an IP block designed to be incorporated into a chip. It is designed to be accessed externally via the pin  
interface and internally via a registered host interface. The following diagram illustrates the various interfaces to the  
block.  
FIGURE 23-1:  
HIBERNATION TIMER INTERFACE DIAGRAM  
Hibernation Timer  
Host Interface  
Signal Description  
Clock Inputs  
Resets  
Interrupts  
23.5 Signal Description  
There are no external signals for this block.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 387  
MEC170x  
23.6 Host Interface  
The registers defined for the Hibernation Timer are accessible by the various hosts as indicated in Section 23.10, "EC  
Registers".  
23.7 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
23.7.1  
POWER DOMAINS  
TABLE 23-1: POWER SOURCES  
Name  
Description  
VTR  
The timer control logic and registers are all implemented on this single  
power domain.  
23.7.2  
CLOCK INPUTS  
TABLE 23-2: CLOCK INPUTS  
Name  
Description  
32KHz  
This is the clock source to the timer logic. The Pre-scaler may be used to  
adjust the minimum resolution per bit of the counter.  
if the main oscillator is stopped then an external 32.768kHz clock source  
must be active for the Hibernation Timer to continue to operate.  
23.7.3  
RESETS  
TABLE 23-3: RESET SIGNALS  
Name  
Description  
RESET_SYS  
This reset signal, which is an input to this block, resets all the logic and  
registers to their initial default state.  
23.8 Interrupts  
This section defines the interrupt Interface signals routed to the chip interrupt aggregator.  
Each instance of the Hibernation Timer in the MEC170x can be used to generate interrupts and wake-up events when  
the timer decrements to zero.  
TABLE 23-4: INTERRUPT INTERFACE SIGNAL DESCRIPTION TABLE  
Name  
Direction  
Description  
HTIMER  
Output  
Signal indicating that the timer is enabled and decrements to 0. This  
signal is used to generate an Hibernation Timer interrupt event.  
23.9 Low Power Modes  
The timer operates off of the 32KHz clock, and therefore will operate normally when the main oscillator is stopped.  
The sleep enable inputs have no effect on the Hibernation Timer and the clock required outputs are only asserted during  
register read/write cycles for as long as necessary to propagate updates to the block core.  
23.10 EC 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 each instance of the Hibernation Timer Block in the Block Overview and Base Address  
Table in Section 3.0, "Device Inventory".  
DS00002206H-page 388  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 23-5: REGISTER SUMMARY  
Offset  
Register Name  
00h  
04h  
08h  
HTimer Preload Register  
HTimer Control Register  
HTimer Count Register  
23.10.1 HTIMER PRELOAD REGISTER  
00h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
15:0 HT_PRELOAD  
R/W  
000h  
RESET_  
SYS  
This register is used to set the Hibernation Timer Preload value.  
Writing this register to a non-zero value resets the down counter to  
start counting down from this programmed value. Writing this regis-  
ter to 0000h disables the hibernation counter. The resolution of this  
timer is determined by the CTRL bit in the HTimer Control Register.  
Writes to the HTimer Control Register are completed with an EC bus  
cycle.  
23.10.2 HTIMER CONTROL REGISTER  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
15:1 Reserved  
0 CTRL  
R
R
-
-
0000h  
RESET_  
SYS  
1=The Hibernation Timer has a resolution of 0.125s per LSB, which  
yields a maximum time in excess of 2 hours.  
0=The Hibernation Timer has a resolution of 30.5µs per LSB, which  
yields a maximum time of ~2seconds.  
23.10.3 HTIMER COUNT REGISTER  
08h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
15:0 COUNT  
The current state of the Hibernation Timer.  
R
0000h  
RESET_  
SYS  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 389  
MEC170x  
24.0 RTOS TIMER  
24.1 Introduction  
The RTOS Timer is a low-power, 32-bit timer designed to operate on the 32kHz oscillator which is available during all  
chip sleep states. This allows firmware the option to sleep the processor and wake after a programmed amount of time.  
The timer may be used as a one-shot timer or a continuous timer. When the timer transitions to 0 it is capable of gen-  
erating a wake-capable interrupt to the embedded controller. This timer may be halted during debug by hardware or via  
a software control bit.  
24.2 Interface  
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.  
FIGURE 24-1:  
I/O DIAGRAM OF BLOCK  
RTOS Timer  
Host Interface  
Signal Description  
Clock Inputs  
Resets  
Interrupts  
24.3 Signal Description  
There are no external signals for this block.  
Name  
Description  
HALT  
RTOS Timer Halt signal. This signal is connected to the same signal that  
halts the embedded controller during debug (e.g., JTAG Debugger is  
active, break points, etc.).  
24.4 Host Interface  
The embedded controller may access this block via the registers defined in Section 24.9, "EC Registers".  
DS00002206H-page 390  
2016-2020 Microchip Technology Inc.  
MEC170x  
24.5 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
24.5.1  
POWER DOMAINS  
Name  
Description  
VTR  
The timer control logic and registers are all implemented on this single  
power domain.  
24.5.2  
24.5.3  
CLOCK INPUTS  
Name  
Description  
32KHz  
This is the clock source to the timer logic.  
RESETS  
Name  
Description  
RESET_SYS  
This reset signal, which is an input to this block, resets all the logic and  
registers to their initial default state.  
24.6 Interrupts  
Source  
Description  
RTOS_TIMER  
RTOS Timer interrupt event. The interrupt is signaled when the timer  
counter transitions from 1 to 0 while counting.  
24.7 Low Power Modes  
The Basic Timer may be put into a low power state by the chip’s Power, Clocks, and Reset (PCR) circuitry. This block  
is only be permitted to enter low power modes when the block is not active.  
24.8 Description  
The RTOS Timer is a basic down counter that can operate either as a continuous timer or a one-shot timer. When it is  
started, the counter is loaded with a pre-load value and counts towards 0. When the counter counts down from 1 to 0,  
it will generate an interrupt. In one-shot mode (the AUTO_RELOAD bit is ‘0’), the timer will then halt; in continuous mode  
(the AUTO_RELOAD bit is ‘1’), the counter will automatically be restarted with the pre-load value.  
The timer counter can be halted by firmware by setting the FIRMWARE_TIMER_HALT bit to ‘1’. In addition, if enabled,  
the timer counter can be halted by the external HALT signal.  
24.9 EC 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 each instance of the RTOS Timer Block in the Block Overview and Base Address  
Table in Section 3.0, "Device Inventory".  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 391  
MEC170x  
TABLE 24-1: REGISTER SUMMARY  
Offset  
Register Name  
00h  
04h  
08h  
0Ch  
RTOS Timer Count Register  
RTOS Timer Preload Register  
RTOS Timer Control Register  
Soft Interrupt Register  
24.9.1  
RTOS TIMER COUNT REGISTER  
00h  
Offset  
Reset  
Event  
Bits  
31:0 COUNTER  
Description  
Type  
Default  
R/W  
0h  
RESET  
_SYS  
This register contains the current value of the RTOS Timer counter.  
This register should be read as a DWORD. There is no latching  
mechanism of the upper bytes implemented if the register is  
accessed as a byte or word. Reading the register with byte or word  
operations may give incorrect results.  
24.9.2  
RTOS TIMER PRELOAD REGISTER  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:0 PRE_LOAD  
R/W  
0h  
RESET  
_SYS  
The this register is loaded into the RTOS Timer counter either when  
the TIMER_START bit is written with a ‘1’, or when the timer  
counter counts down to ‘0’ and the AUTO_RELOAD bit is ‘1’.  
This register must be programmed with a new count value before  
the TIMER_START bit is set to ‘1’. If this register is updated while  
the counter is operating, the new count value will only take effect if  
the counter transitions form 1 to 0 while the AUTO_RELOAD bit is  
set.  
DS00002206H-page 392  
2016-2020 Microchip Technology Inc.  
MEC170x  
24.9.3  
RTOS TIMER CONTROL REGISTER  
08h  
Offset  
Reset  
Default  
Bits  
31:5 Reserved  
Description  
Type  
Event  
R
-
-
4
3
2
FIRMWARE_TIMER_HALT  
R/W  
0h  
RESET  
_SYS  
1=The timer counter is halted. If the counter was running, clearing  
this bit will restart the counter from the value at which it halted  
0=The timer counter, if enabled, will continue to run  
EXT_HARDWARE_HALT_EN  
R/W  
R/W  
0h  
0h  
RESET  
_SYS  
1=The timer counter is halted when the external HALT signal is  
asserted. Counting is always enabled if HALT is de-asserted.  
0=The HALT signal does not affect the RTOS Timer  
TIMER_START  
RESET  
_SYS  
Writing a ‘1’ to this bit will load the timer counter with the RTOS  
Timer Preload Register and start counting. If the Preload Register  
is 0, counting will not start and this bit will be cleared to ‘0’.  
Writing a ‘0’ to this bit will halt the counter and clear its contents to  
0. The RTOS timer interrupt will not be generated.  
This bit is automatically cleared if the AUTO_RELOAD bit is ‘0’ and  
the timer counter transitions from 1 to 0.  
1
0
AUTO_RELOAD  
R/W  
R/W  
0h  
0h  
RESET  
_SYS  
1=The the RTOS Timer Preload Register is loaded into the timer  
counter and the counter is restarted when the counter transi-  
tions from 1 to 0  
0=The timer counter halts when it transitions from 1 to 0 and will not  
restart  
BLOCK_ENABLE  
RESET  
_SYS  
1=RTOS timer counter is enabled  
0=RTOS timer disabled. All register bits are reset to their default  
state  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 393  
MEC170x  
24.9.4  
SOFT INTERRUPT REGISTER  
0Ch  
Offset  
Reset  
Event  
Bits  
31:4 Reserved  
Description  
Type  
Default  
R
-
-
3
2
1
0
SWI_3  
W
0h  
RESE  
T_SYS  
Software Interrupt. A write of a ‘1’ to this bit will generate an SWI  
interrupt to the EC. Writes of a ‘0’ have no effect. Reads return ‘0’.  
SWI_2  
W
W
W
0h  
0h  
0h  
RESE  
T_SYS  
Software Interrupt. A write of a ‘1’ to this bit will generate an SWI  
interrupt to the EC. Writes of a ‘0’ have no effect. Reads return ‘0’.  
SWI_1  
RESE  
T_SYS  
Software Interrupt. A write of a ‘1’ to this bit will generate an SWI  
interrupt to the EC. Writes of a ‘0’ have no effect. Reads return ‘0’.  
SWI_0  
RESE  
T_SYS  
Software Interrupt. A write of a ‘1’ to this bit will generate an SWI  
interrupt to the EC. Writes of a ‘0’ have no effect. Reads return ‘0’.  
DS00002206H-page 394  
2016-2020 Microchip Technology Inc.  
MEC170x  
25.0 REAL TIME CLOCK  
25.1 Introduction  
This block provides the capabilities of an industry-standard 146818B Real-Time Clock module, without CMOS RAM.  
Enhancements to this architecture include:  
• Industry standard Day of Month Alarm field, allowing for monthly alarms  
• Configurable, automatic Daylight Savings adjustment  
• Week Alarm for periodic interrupts and wakes based on Day of Week  
• System Wake capability on interrupts.  
25.2 References  
1. Motorola 146818B Data Sheet, available on-line  
2. Intel Lynx Point PCH EDS specification  
25.3 Terminology  
Time and Date Registers:  
This is the set of registers that are automatically counted by hardware every 1 second while the block is enabled to run  
and to update. These registers are: Seconds, Minutes, Hours, Day of Week, Day of Month, Month, and Year.  
25.4 Interface  
This block’s connections are entirely internal to the chip.  
FIGURE 25-1:  
I/O DIAGRAM OF BLOCK  
Real Time Clock  
Host Interface  
Signal Description  
Clocks  
Resets  
Interrupts  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 395  
MEC170x  
25.5 Signal Description  
There are no external signals.  
25.6 Host Interface  
The registers defined for the Real Time Clock are accessible by the host and EC.  
25.7 Power, Clocks and Resets  
This section defines the Power, Clock, and Reset parameters of the block.  
25.7.1  
POWER DOMAINS  
TABLE 25-1: POWER SOURCES  
Name  
Description  
VBAT  
VTR  
This power well sources all of the internal registers and logic in this block.  
This power well sources only bus communication. The block continues to  
operate internally while this rail is down.  
25.7.2  
CLOCKS  
TABLE 25-2: CLOCKS  
Name  
Description  
32KHz  
This clock input drives all internal logic, and will be present at all times  
that the VBAT well is powered.  
25.7.3  
RESETS  
TABLE 25-3: RESET SIGNALS  
Name  
Description  
RESET_VBAT  
This reset signal is used in the RESET_RTC signal to reset all of the reg-  
isters and logic in this block. It directly resets the Soft Reset bit in the RTC  
Control Register.  
RESET_RTC  
This reset signal resets all of the registers and logic in this block, except  
for the Soft Reset bit in the RTC Control Register. It is triggered by  
RESET_VBAT, but can also be triggered by a Soft Reset from the RTC  
Control Register.  
RESET_SYS  
This reset signal is used to inhibit the bus communication logic, and iso-  
lates this block from VTR powered circuitry on-chip. Otherwise it has no  
effect on the internal state.  
25.8 Interrupts  
TABLE 25-4: SYSTEM INTERRUPTS  
Source  
Description  
RTC  
This interrupt source for the SIRQ logic is generated when any of the fol-  
lowing events occur:  
• Update complete. This is triggered, at 1-second intervals, when the  
Time register updates have completed  
• Alarm. This is triggered when the alarm value matches the current  
time (and date, if used)  
• Periodic. This is triggered at the chosen programmable rate  
DS00002206H-page 396  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 25-5: EC INTERRUPTS  
Source  
Description  
RTC  
This interrupt is signaled to the Interrupt Aggregator when any of the fol-  
lowing events occur:  
• Update complete. This is triggered, at 1-second intervals, when the  
Time register updates have completed  
• Alarm. This is triggered when the alarm value matches the current  
time (and date, if used)  
• Periodic. This is triggered at the chosen programmable rate  
RTC ALARM  
This wake interrupt is signaled to the Interrupt Aggregator when an Alarm  
event occurs.  
25.9 Low Power Modes  
The RTC has no low-power modes. It runs continuously while the VBAT well is powered.  
25.10 Description  
This block provides the capabilities of an industry-standard 146818B Real-Time Clock module, excluding the CMOS  
RAM and the SQW output. See the following registers, which represent enhancements to this architecture. These  
enhancements are listed below.  
See the Date Alarm field of Register D for a Day of Month qualifier for alarms.  
See the Week Alarm Register for a Day of Week qualifier for alarms.  
See the registers Daylight Savings Forward Register and Daylight Savings Backward Register for setting up hands-off  
Daylight Savings adjustments.  
See the RTC Control Register for enhanced control over the block’s operations.  
25.11 Runtime Registers  
The registers listed in the Runtime Register Summary table are for a single instance of the Real Time Clock. Host access  
for each register listed in this table is defined as an offset in the Host address space to the Block’s Base Address, as  
defined by the instance’s Base Address Register.  
The EC address for each register is formed by adding the Base Address for each instance of the Real Time Clock shown  
in the Block Overview and Base Address Table in Section 3.0, "Device Inventory" to the offset shown in the “Offset”  
column.  
TABLE 25-6: RUNTIME REGISTER SUMMARY  
Offset  
Register Name  
00h  
01h  
02h  
03h  
04h  
05h  
06h  
07h  
08h  
09h  
0Ah  
0Bh  
0Ch  
Seconds Register  
Seconds Alarm Register  
Minutes Register  
Minutes Alarm Register  
Hours Register  
Hours Alarm Register  
Day of Week Register  
Day of Month Register  
Month Register  
Year Register  
Register A  
Register B  
Register C  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 397  
MEC170x  
TABLE 25-6: RUNTIME REGISTER SUMMARY (CONTINUED)  
Offset  
Register Name  
0Dh  
0Eh  
0Fh  
10h  
14h  
18h  
1Ch  
20h  
Register D  
Reserved  
Reserved  
RTC Control Register  
Week Alarm Register  
Daylight Savings Forward Register  
Daylight Savings Backward Register  
TEST  
Note:  
This extended register set occupies offsets that have historically been used as CMOS RAM. Code ported  
to use this block should be examined to ensure that it does not assume that RAM exists in this block.  
25.11.1 SECONDS REGISTER  
00h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 SECONDS  
R/W  
00h  
RESET  
_RTC  
Displays the number of seconds past the current minute, in the range  
0--59. Presentation may be selected as binary or BCD, depending on  
the DM bit in Register B. Values written must also use the format  
defined by the current setting of the DM bit.  
25.11.2 SECONDS ALARM REGISTER  
01h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 SECONDS_ALARM  
R/W  
00h  
RESET  
_RTC  
Holds a match value, compared against the Seconds Register to trig-  
ger the Alarm event. Values written to this register must use the for-  
mat defined by the current setting of the DM bit in Register B. A value  
of 11xxxxxxb written to this register makes it don’t-care (always  
matching).  
25.11.3 MINUTES REGISTER  
02h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 MINUTES  
R/W  
00h  
RESET_  
RTC  
Displays the number of minutes past the current hour, in the range 0-  
-59. Presentation may be selected as binary or BCD, depending on  
the DM bit in Register B. Values written must also use the format  
defined by the current setting of the DM bit.  
DS00002206H-page 398  
2016-2020 Microchip Technology Inc.  
MEC170x  
25.11.4 MINUTES ALARM REGISTER  
03h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
7:0 MINUTES_ALARM  
R/W  
00h  
RESET  
_RTC  
Holds a match value, compared against the Minutes Register to trig-  
ger the Alarm event. Values written to this register must use the for-  
mat defined by the current setting of the DM bit in Register B. A value  
of 11xxxxxxb written to this register makes it don’t-care (always  
matching).  
25.11.5 HOURS REGISTER  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7 HOURS_AM_PM  
R/W  
0b  
RESET  
_RTC  
In 12-hour mode (see bit “24/12” in register B), this bit indicates AM or  
PM.  
1=PM  
0=AM  
6:0 HOURS  
R/W  
00h  
RESET  
_RTC  
Displays the number of the hour, in the range 1--12 for 12-hour mode  
(see bit “24/12” in register B), or in the range 0--23 for 24-hour mode.  
Presentation may be selected as binary or BCD, depending on the  
DM bit in Register B. Values written must also use the format defined  
by the current setting of the DM bit.  
25.11.6 HOURS ALARM REGISTER  
05h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 HOURS_ALARM  
R/W  
00h  
RESET  
_RTC  
Holds a match value, compared against the Hours Register to trigger  
the Alarm event. Values written to this register must use the format  
defined by the current settings of the DM bit and the 24/12 bit in Reg-  
ister B. A value of 11xxxxxxb written to this register makes it don’t-  
care (always matching).  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 399  
MEC170x  
25.11.7 DAY OF WEEK REGISTER  
06h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 DAY_OF_WEEK  
R/W  
00h  
RESET  
_RTC  
Displays the day of the week, in the range 1 (Sunday) through 7 (Sat-  
urday). Numbers in this range are identical in both binary and BCD  
notation, so this register’s format is unaffected by the DM bit.  
25.11.8 DAY OF MONTH REGISTER  
07h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 DAY_OF_MONTH  
R/W  
00h  
RESET  
_RTC  
Displays the day of the current month, in the range 1--31. Presenta-  
tion may be selected as binary or BCD, depending on the DM bit in  
Register B. Values written must also use the format defined by the  
current setting of the DM bit.  
25.11.9 MONTH REGISTER  
08h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 MONTH  
R/W  
00h  
RESET  
_RTC  
Displays the month, in the range 1--12. Presentation may be selected  
as binary or BCD, depending on the DM bit in Register B. Values writ-  
ten must also use the format defined by the current setting of the DM  
bit.  
25.11.10 YEAR REGISTER  
09h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 YEAR  
R/W  
00h  
RESET  
_RTC  
Displays the number of the year in the current century, in the range 0  
(year 2000) through 99 (year 2099). Presentation may be selected as  
binary or BCD, depending on the DM bit in Register B. Values written  
must also use the format defined by the current setting of the DM bit.  
DS00002206H-page 400  
2016-2020 Microchip Technology Inc.  
MEC170x  
25.11.11 REGISTER A  
0Ah  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
7 UPDATE_IN_PROGRESS  
R
0b  
RESET  
_RTC  
‘0’ indicates that the Time and Date registers are stable and will not be  
altered by hardware soon. ‘1’ indicates that a hardware update of the  
Time and Date registers may be in progress, and those registers  
should not be accessed by the host program. This bit is set to ‘1’ at a  
point 488us (16 cycles of the 32K clock) before the update occurs, and  
is cleared immediately after the update. See also the Update-Ended  
Interrupt, which provides more useful status.  
6:4 DIVISION_CHAIN_SELECT  
R/W  
000b  
RESET  
_RTC  
This field provides general control for the Time and Date register  
updating logic.  
11xb=Halt counting. The next time that 010b is written, updates will  
begin 500ms later.  
010b=Required setting for normal operation. It is also necessary to set  
the Block Enable bit in the RTC Control Register to ‘1’ for counting  
to begin  
000b=Reserved. This field should be initialized to another value before  
Enabling the block in the RTC Control Register  
Other values Reserved  
3:0 RATE_SELECT  
R/W  
0h  
RESET  
_RTC  
This field selects the rate of the Periodic Interrupt source. See  
Table 25-7  
TABLE 25-7: REGISTER A FIELD RS: PERIODIC INTERRUPT SETTINGS  
RS (hex)  
Interrupt Period  
Never Triggered  
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
3.90625 ms  
7.8125 ms  
122.070 us  
244.141 us  
488.281 us  
976.5625 us  
1.953125 ms  
3.90625 ms  
7.8125 ms  
15.625 ms  
31.25 ms  
62.5 ms  
125 ms  
250 ms  
500 ms  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 401  
MEC170x  
25.11.12 REGISTER B  
0Bh  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7 UPDATE_CYCLE_INHIBIT  
R/W  
0b  
RESET  
_RTC  
In its default state ‘0’, this bit allows hardware updates to the Time  
and Date registers, which occur at 1-second intervals. A ‘1’ written to  
this field inhibits updates, allowing these registers to be cleanly writ-  
ten to different values. Writing ‘0’ to this bit allows updates to con-  
tinue.  
6 PERIODIC_INTERRUPT_ENABLE  
R/W  
R/W  
R/W  
0b  
0b  
0b  
RESET  
_RTC  
1=Alows the Periodic Interrupt events to be propagated as interrupts  
0=Periodic events are not propagates as interrupts  
5 ALARM_INTERRUPT_ENABLE  
RESET  
_RTC  
1=Alows the Alarm Interrupt events to be propagated as interrupts  
0=Alarm events are not propagates as interrupts  
4 UPDATE_ENDED_INTERRUPT_ENABLE  
RESET  
_RTC  
1=Alows the Update Ended Interrupt events to be propagated as inter-  
rupts  
0=Update Ended events are not propagates as interrupts  
3 Reserved  
R
-
-
2 DATA_MODE  
R/W  
0b  
RESET  
_RTC  
1=Binary Mode for Dates and Times  
0=BCD Mode for Dates and Times  
1 HOUR_FORMAT_24_12  
R/W  
R/W  
0b  
0b  
RESET  
_RTC  
1=24-Hour Format for Hours and Hours Alarm registers. 24-Hour for-  
mat keeps the AM/PM bit off, with value range 0--23  
0=12-Hour Format for Hours and Hours Alarm registers. 12-Hour for-  
mat has an AM/PM bit, and value range 1--12  
0 DAYLIGHT_SAVINGS_ENABLE  
RESET  
_RTC  
1=Enables automatic hardware updating of the hour, using the regis-  
ters Daylight Savings Forward and Daylight Savings Backward to  
select the yearly date and hour for each update  
0=Automatic Daylight Savings updates disabled  
Note:  
The DATA_MODE and HOUR_FORMAT_24_12 bits affect only how values are presented as they are  
being read and how they are interpreted as they are being written. They do not affect the internal contents  
or interpretations of registers that have already been written, nor do they affect how those registers are  
represented or counted internally. This mode bits may be set and cleared dynamically, for whatever I/O  
data representation is desired by the host program.  
DS00002206H-page 402  
2016-2020 Microchip Technology Inc.  
MEC170x  
25.11.13 REGISTER C  
0Ch  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
7 INTERRUPT_REQUEST_FLAG  
RC  
0b  
RESET  
_RTC  
1=Any of bits[6:4] below is active after masking by their respective  
Enable bits in Register B.  
0=No bits in this register are active  
This bit is automatically cleared by every Read access to this register.  
6 PERIODIC_INTERRUPT_FLAG  
RC  
RC  
RC  
0b  
RESET  
_RTC  
1=A Periodic Interrupt event has occurred since the last time this reg-  
ister was read. This bit displays status regardless of the Periodic  
Interrupt Enable bit in Register B  
0=A Periodic Interrupt event has not occurred  
This bit is automatically cleared by every Read access to this register.  
5 ALARM_FLAG  
0b  
RESET  
_RTC  
1=An Alarm event has occurred since the last time this register was  
read. This bit displays status regardless of the Alarm Interrupt  
Enable bit in Register B.  
0=An Alarm event has not occurred  
This bit is automatically cleared by every Read access to this register.  
4 UPDATE_ENDED_INTERRUPT_FLAG  
0b  
RESET  
_RTC  
1=A Time and Date update has completed since the last time this reg-  
ister was read. This bit displays status regardless of the Update-  
Ended Interrupt Enable bit in Register B. Presentation of this sta-  
tus indicates that the Time and Date registers will be valid and sta-  
ble for over 999ms  
0=A Time and Data update has not completed since the last time this  
register was read  
This bit is automatically cleared by every Read access to this register.  
3:0 Reserved  
R
-
-
25.11.14 REGISTER D  
0Dh  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:6 Reserved  
R
-
-
5:0 DATE_ALARM  
R/W  
00h  
RESET  
_RTC  
This field, if set to a non-zero value, will inhibit the Alarm interrupt  
unless this field matches the contents of the Month register also. If  
this field contains 00h (default), it represents a don’t-care, allowing  
more frequent alarms.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 403  
MEC170x  
25.11.15 RTC CONTROL REGISTER  
10h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:4 Reserved  
R
-
-
3 ALARM_ENABLE  
R/W  
0b  
RESET  
_RTC  
1=Enables the Alarm features  
0=Disables the Alarm features  
2 VCI_ENABLE  
R/W  
0b  
RESET  
_RTC  
1=Allows Alarm events to activate the RTC ALARM signal to chip  
level VCI circuitry and to the RTC ALARM Interrupt in Interrupt aggre-  
gator.  
0=Inihibits Alarm events from activating the RTC_ALARM signal to  
the Chip level VCI circuitry and to the RTC alarm interrupt in Interrupt  
aggregator.  
1 SOFT_RESET  
R/W  
R/W  
0b  
0b  
RESET  
_VBAT  
A ‘1’ written to this bit position will trigger the RESET_RTC reset,  
resetting the block and all registers except this one and the Test Reg-  
ister. This bit is self-clearing at the end of the reset, one cycle of LPC  
Bus Clock later, and so requires no waiting.  
0 BLOCK_ENABLE  
RESET  
_RTC  
This bit must be ‘1’ in order for the block to function internally. Regis-  
ters may be initialized first, before setting this bit to ‘1’ to start opera-  
tion.  
25.11.16 WEEK ALARM REGISTER  
14h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 ALARM_DAY_OF_WEEK  
R/W  
FFh  
RESET  
_RTC  
This register, if written to a value in the range 1--7, will inhibit the  
Alarm interrupt unless this field matches the contents of the Day of  
Week Register also. If this field is written to any value 11xxxxxxb (like  
the default FFh), it represents a don’t-care, allowing more frequent  
alarms, and will read back as FFh until another value is written.  
25.11.17 DAYLIGHT SAVINGS FORWARD REGISTER  
18h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31 DST_FORWARD_AM_PM  
R/W  
0b  
RESET  
_RTC  
This bit selects AM vs. PM, to match bit[7] of the Hours Register if 12-  
Hour mode is selected in Register B at the time of writing.  
30:24 DST_FORWARD_HOUR  
R/W  
00h  
RESET  
_RTC  
This field holds the matching value for bits[6:0] of the Hours register.  
The written value will be interpreted according to the 24/12 Hour  
mode and DM mode settings at the time of writing.  
DS00002206H-page 404  
2016-2020 Microchip Technology Inc.  
MEC170x  
18h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
23:19 Reserved  
R
-
-
18:16 DST_FORWARD_WEEK  
R/W  
0h  
RESET  
_RTC  
This value matches an internally-maintained week number within the  
current month. Valid values for this field are:  
5=Last week of month  
4 =Fourth week of month  
3=Third week of month  
2=Second week of month  
1=First week of month  
15:11 Reserved  
R
-
-
10:8 DST_FORWARD_DAY_OF_WEEK  
This field matches the Day of Week Register bits[2:0].  
7:0 DST_FORWARD_MONTH  
R/W  
0h  
RESET  
_RTC  
R/W  
00h  
RESET  
_RTC  
This field matches the Month Register.  
This is a 32-bit register, accessible also as individual bytes. When writing as individual bytes, ensure that the DSE bit  
(in Register B) is off first, or that the block is disabled or stopped (SET bit), to prevent a time update while this register  
may have incompletely-updated contents.  
When enabled by the DSE bit in Register B, this register defines an hour and day of the year at which the Hours register  
will be automatically incremented by 1 additional hour.  
There are no don’t-care fields recognized. All fields must be already initialized to valid settings whenever the DSE bit is  
‘1’.  
Fields other than Week and Day of Week use the current setting of the DM bit (binary vs. BCD) to interpret the informa-  
tion as it is written to them. Their values, as held internally, are not changed by later changes to the DM bit, without  
subsequently writing to this register as well.  
Note:  
An Alarm that is set inside the hour after the time specified in this register will not be triggered, because  
that one-hour period is skipped. This period includes the exact time (0 minutes: 0 seconds) given by this  
register, through the 59 minutes: 59 seconds point afterward.  
25.11.18 DAYLIGHT SAVINGS BACKWARD REGISTER  
1Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31 DST_BACKWARD_AM_PM  
R/W  
0b  
RESET  
_RTC  
This bit selects AM vs. PM, to match bit[7] of the Hours register if 12-  
Hour mode is selected in Register B at the time of writing.  
30:24 DST_BACKWARD_HOUR  
R/W  
R
00h  
-
RESET  
_RTC  
This field holds the matching value for bits[6:0] of the Hours register.  
The written value will be interpreted according to the 24/12 Hour  
mode and DM mode settings at the time of writing.  
23:19 Reserved  
-
2016-2020 Microchip Technology Inc.  
DS00002206H-page 405  
MEC170x  
1Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
18:16 DST_BACKWARD_WEEK  
R/W  
0h  
RESET  
_RTC  
This value matches an internally-maintained week number within the  
current month. Valid values for this field are:  
5=Last week of month  
4 =Fourth week of month  
3=Third week of month  
2=Second week of month  
1=First week of month  
15:11 Reserved  
R
-
-
10:8 DST_BACKWARD_DAY_OF_WEEK  
This field matches the Day of Week Register bits[2:0].  
7:0 DST_BACKWARD_MONTH  
R/W  
0h  
RESET  
_RTC  
R/W  
00h  
RESET  
_RTC  
This field matches the Month Register.  
This is a 32-bit register, accessible also as individual bytes. When writing as individual bytes, ensure that the DSE bit  
(in Register B) is off first, or that the block is disabled or stopped (SET bit), to prevent a time update while this register  
may have incompletely-updated contents.  
When enabled by the DSE bit in Register B, this register defines an hour and day of the year at which the Hours register  
increment will be inhibited from occurring. After triggering, this feature is automatically disabled for long enough to  
ensure that it will not retrigger the second time this Hours value appears, and then this feature is re-enabled automati-  
cally.  
There are no don’t-care fields recognized. All fields must be already initialized to valid settings whenever the DSE bit is  
‘1’.  
Fields other than Week and Day of Week use the current setting of the DM bit (binary vs. BCD) to interpret the informa-  
tion as it is written to them. Their values, as held internally, are not changed by later changes to the DM bit, without  
subsequently writing to this register as well.  
Note:  
An Alarm that is set inside the hour before the time specified in this register will be triggered twice, because  
that one-hour period is repeated. This period will include the exact time (0 minutes: 0 seconds) given by  
this register, through the 59 minutes: 59 seconds point afterward.  
DS00002206H-page 406  
2016-2020 Microchip Technology Inc.  
MEC170x  
26.0 WEEK TIMER  
26.1 Introduction  
The Week Alarm Interface provides two timekeeping functions: a Week Timer and a Sub-Week Timer. Both the Week  
Timer and the Sub-Week Timer assert the Power-Up Event Output which automatically powers-up the system from the  
G3 state. Features include:  
• EC interrupts based on matching a counter value  
• Repeating interrupts at 1 second and sub-1 second intervals  
• System Wake capability on interrupts, including Wake from Heavy Sleep  
26.2 Interface  
This block’s connections are entirely internal to the chip.  
FIGURE 26-1:  
I/O DIAGRAM OF BLOCK  
Week Timer  
Host Interface  
Signal Description  
Clocks  
Resets  
Interrupts  
26.3 Signal Description  
TABLE 26-1: SIGNAL DESCRIPTION TABLE  
Name  
Direction  
Description  
Battery-powered general purpose outputs  
BGPO[9:0]  
OUTPUT  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 407  
MEC170x  
TABLE 26-2: INTERNAL SIGNAL DESCRIPTION TABLE  
Name  
Direction  
Description  
POWER_UP_EVENT  
OUTPUT  
Signal to the VBAT-Powered Control Interface. When this signal is  
asserted, the VCI output signal asserts. See Section 26.8, "Power-  
Up Events".  
26.4 Host Interface  
The registers defined for the Week Timer are accessible only by the EC.  
26.5 Power, Clocks and Resets  
This section defines the Power, Clock, and Reset parameters of the block.  
26.5.1  
POWER DOMAINS  
TABLE 26-3: POWER SOURCES  
Name  
Description  
VBAT  
VTR  
This power well sources all of the internal registers and logic in this block.  
This power well sources only bus communication. The block continues to  
operate internally while this rail is down.  
26.5.2  
CLOCKS  
TABLE 26-4: CLOCKS  
Name  
Description  
48MHz  
32KHz  
Clock used for host register access  
This 32KHz clock input drives all internal logic, and will be present at all  
times that the VBAT well is powered.  
26.5.3  
RESETS  
TABLE 26-5: RESET SIGNALS  
Name  
Description  
RESET_VBAT  
RESET_SYS  
This reset signal is used reset all of the registers and logic in this block.  
This reset signal is used to inhibit the bus communication logic, and iso-  
lates this block from VTR powered circuitry on-chip. Otherwise it has no  
effect on the internal state.  
DS00002206H-page 408  
2016-2020 Microchip Technology Inc.  
MEC170x  
26.6 Interrupts  
TABLE 26-6: EC INTERRUPTS  
Source  
Description  
WEEK_ALARM_INT  
This interrupt is signaled to the Interrupt Aggregator when the Week  
Alarm Counter Register is greater than or equal to the Week Timer Com-  
pare Register. The interrupt signal is always generated by the Week  
Timer if the block is enabled; the interrupt is enabled or disabled in the  
Interrupt Aggregator.  
SUB_WEEK_ALARM_INT  
ONE_SECOND  
This interrupt is signaled to the Interrupt Aggregator when the Sub-Week  
Alarm Counter Register decrements from ‘1’ to ‘0’. The interrupt signal is  
always generated by the Week Timer if the block is enabled; the interrupt  
is enabled or disabled in the Interrupt Aggregator.  
This interrupt is signaled to the Interrupt Aggregator at an isochronous  
rate of once per second. The interrupt signal is always generated by the  
Week Timer if the block is enabled; the interrupt is enabled or disabled in  
the Interrupt Aggregator.  
SUB_SECOND  
This interrupt is signaled to the Interrupt Aggregator at an isochronous  
rate programmable between 0.5Hz and 32.768KHz. The rate interrupts  
are signaled is determined by the SPISR field in the Sub-Second Pro-  
grammable Interrupt Select Register. See Table 26-9, "SPISR Encoding".  
The interrupt signal is always generated by the Week Timer if the block is  
enabled; the interrupt is enabled or disabled in the Interrupt Aggregator.  
26.7 Low Power Modes  
The Week Alarm has no low-power modes. It runs continuously while the VBAT well is powered.  
26.8 Power-Up Events  
The Week Timer POWER_UP_EVENT can be used to power up the system after a timed interval. The POW-  
ER_UP_EVENT is routed to the VBAT-Powered Control Interface (VCI). The VCI_OUT pin that is part of the VCI is  
asserted if the POWER_UP_EVENT is asserted.  
The POWER_UP_EVENT can be asserted under the following two conditions:  
1. The Week Alarm Counter Register is greater than or equal to the Week Timer Compare Register  
2. The Sub-Week Alarm Counter Register decrements from ‘1’ to ‘0’  
The assertion of the POWER_UP_EVENT is inhibited if the POWERUP_EN field in the Control Register is ‘0’  
Once a POWER_UP_EVENT is asserted the POWERUP_EN bit must be cleared to reset the output. Clearing  
POWERUP_EN is necessary to avoid unintended power-up cycles.  
26.9 Description  
The Week Alarm block provides battery-powered timekeeping functions, derived from a low-power 32KHz clock, that  
operate even when the device’s main power is off. The block contains a set of counters that can be used to generate  
one-shot and periodic interrupts to the EC for periods ranging from about 30 microseconds to over 8 years. The Week  
Alarm can be used in conjunction with the VBAT-Powered Control Interface to power up a sleeping system after a con-  
figurable period.  
In addition to basic timekeeping, the Week Alarm block can be used to control the battery-powered general purpose  
BGPO outputs.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 409  
MEC170x  
26.9.1  
INTERNAL COUNTERS  
The Week Timer includes 3 counters:  
26.9.1.1  
28-bit Week Alarm Counter  
This counter is 28 bits wide. The clock for this counter is the overflow of the Clock Divider, and as long as the Week  
Timer is enabled, it is incremented at a 1 Hz rate.  
Both an interrupt and a power-up event can be generated when the contents of this counter matches the contents of the  
Week Timer Compare Register.  
26.9.1.2  
9-bit Sub-Week Alarm Counter  
This counter is 9 bits wide. It is decremented by 1 at each tick of its selected clock. It can be configured either as a one-  
shot or repeating event generator.  
Both an interrupt and a power-up event can be generated when this counter decrements from 1 to 0.  
The Sub-Week Alarm Counter can be configured with a number of different clock sources for its time base, derived from  
either the Week Alarm Counter or the Clock Divider, by setting the SUBWEEK_TICK field of the Sub-Week Control Reg-  
ister.  
TABLE 26-7: SUB-WEEK ALARM COUNTER CLOCK  
SUBWEEK_  
TICK  
Minimum  
Duration  
Maximum  
Duration  
Source  
SPISR  
Frequency  
0
Counter Disabled  
0
1
Counter Disabled  
500 ms  
250 ms  
125 ms  
62.5  
2 Hz  
4 Hz  
255.5 sec  
127.8 sec  
63.9 sec  
31.9 sec  
16.0 sec  
8 sec  
2
3
8 Hz  
4
16 Hz  
5
32 Hz  
31.25 ms  
15.6 ms  
7.8 ms  
6
64 Hz  
7
128 Hz  
256 Hz  
512 Hz  
1024 Hz  
2048 Hz  
4096 Hz  
8192 Hz  
16.384 KHz  
32.768 KHz  
1 Hz  
4 sec  
1
Sub-Second  
8
3.9 ms  
2 sec  
9
1.95 ms  
977 µS  
488 µS  
244 µS  
122 µS  
61.1 µS  
30.5 µS  
1 sec  
1 sec  
10  
11  
12  
13  
14  
15  
n/a  
499 ms  
249.5 ms  
124.8 ms  
62.4 ms  
31.2 ms  
15.6 ms  
511 sec  
2
3
4
Second  
Reserved  
125 Hz  
Week Counter  
bit 3  
n/a  
n/a  
n/a  
n/a  
8 sec  
32 sec  
128 sec  
512 sec  
68.1 min  
272.5 min  
18.17 hour  
72.68 hour  
5
6
7
Week Counter  
bit 5  
31.25 Hz  
7.8125 Hz  
1.95 Hz  
Week Counter  
bit 7  
Week Counter  
bit 9  
DS00002206H-page 410  
2016-2020 Microchip Technology Inc.  
MEC170x  
Note 1: The Week Alarm Counter must not be modified by firmware if Sub-Week Alarm Counter is using the Week  
Alarm Counter as its clock source (i.e., the SUBWEEK_TICK field is set to any of the values 4, 5, 6 or 7).  
The Sub-Week Alarm Counter must be disabled before changing the Week Alarm Counter. For example,  
the following sequence may be used:  
1.Write 0h to the Sub-Week Alarm Counter Register (disabling the Sub-Week Counter)  
2.Write the Week Alarm Counter Register  
3.Write a new value to the Sub-Week Alarm Counter Register, restarting the Sub-Week Counter  
26.9.1.3  
15-bit Clock Divider  
This counter is 15 bits wide. The clock for this counter is 32KHz, and as long as the Week Timer is enabled, it is incre-  
mented at 32.768KHz rate. The Clock Divider automatically The Clock Divider generates a clock out of 1 Hz when the  
counter wraps from 7FFFh to 0h.  
By selecting one of the 15 bits of the counter, using the Sub-Second Programmable Interrupt Select Register, the Clock  
Divider can be used either to generate a time base for the Sub-Week Alarm Counter or as an isochronous interrupt to  
the EC, the SUB_SECOND interrupt. See Table 26-9, "SPISR Encoding" for a list of available frequencies.  
26.9.2  
TIMER VALID STATUS  
If power on reset occurs on the VBAT power rail while the main device power is off, the counters in the Week Alarm are  
invalid. If firmware detects a POR on the VBAT power rail after a system boot, by checking the status bits in the Power,  
Clocks and Resets registers, the Week Alarm block must be reinitialized.  
26.9.3  
APPLICATION NOTE: REGISTER TIMING  
Register writes in the Week Alarm complete within two cycles of the 32KHz clock.The write completes even if the main  
system clock is stopped before the two cycles of the 32K clock complete. Register reads complete in one cycle of the  
internal bus clock.  
All Week Alarm interrupts that are asserted within the same cycle of the 32KHz clock are synchronously asserted to the  
EC.  
26.9.4  
APPLICATION NOTE: USE OF THE WEEK TIMER AS A 43-BIT COUNTER  
The Week Timer cannot be directly used as a 42-bit counter that is incremented directly by the 32.768KHz clock domain.  
The upper 28 bits (28-bit Week Alarm Counter) are incremented at a 1Hz rate and the lower 16 bits (15-bit Clock Divider)  
are incremented at a 32.768KHz rate, but the increments are not performed in parallel. In particular, the upper 28 bits  
are incremented when the lower 15 bits increment from 0 to 1, so as long as the Clock Divider Register is 0 the two  
registers together, treated as a single value, have a smaller value then before the lower register rolled over from 7FFFh  
to 0h.  
The following code can be used to treat the two registers as a single large counter. This example extracts a 32-bit value  
from the middle of the 43-bit counter:  
dword TIME_STAMP(void)  
{
AHB_dword wct_value;  
AHB_dword cd_value1;  
AHB_dword cd_value2;  
dword irqEnableSave;  
//Disable interrupts  
irqEnableSave = IRQ_ENABLE;  
IRQ_ENABLE = 0;  
//Read 15-bit clk divider reading register, save result in A  
cd_value1 = WTIMER->CLOCK_DIVIDER;  
//Read 28 bit up-counter timer register, save result in B  
wct_value = WTIMER->WEEK_COUNTER_TIMER;  
//Read 15-bit clk divider reading register, save result in C  
cd_value2 = WTIMER->CLOCK_DIVIDER;  
if (0 == cd_value2)  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 411  
MEC170x  
{
wct_value = wct_value + 1;  
}
else if ( (cd_value2 < cd_value1) || (0 == cd_value1))  
{
wct_value = WTIMER->WEEK_COUNTER_TIMER;  
}
//Enable interrupts  
IRQ_ENABLE = irqEnableSave;  
return (WTIMER_BASE + ((wct_value << 10) | (cd_value2>>5)));  
}
26.10 Battery-Powered General Purpose Outputs  
The Week Timer contains the control logic for Battery-Powered General Purposes Outputs (BGPOs). These are output-  
only pins whose state can be controlled by firmware and preserved when the device is operating on VBAT power alone.  
When a BGPO function is selected on a pin that can also serve as a GPIO, using the BGPO Power Register, the GPIO  
input register is readable but always returns a ‘1b’.  
26.11 EC 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 each instance of the Week Timer Block in the Block Overview and Base Address Table  
in Section 3.0, "Device Inventory".  
TABLE 26-8: REGISTER SUMMARY  
Offset  
Register Name  
00h  
04h  
08h  
0Ch  
10h  
14h  
18h  
1Ch  
20h  
24h  
Control Register  
Week Alarm Counter Register  
Week Timer Compare Register  
Clock Divider Register  
Sub-Second Programmable Interrupt Select Register  
Sub-Week Control Register  
Sub-Week Alarm Counter Register  
BGPO Data Register  
BGPO Power Register  
BGPO Reset Register  
DS00002206H-page 412  
2016-2020 Microchip Technology Inc.  
MEC170x  
26.11.1 CONTROL REGISTER  
00h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
31:7 Reserved  
POWERUP_EN  
R
-
-
6
R/W  
00h  
RESET  
_VBAT  
This bit controls the state of the Power-Up Event Output and  
enables Week POWER-UP Event decoding in the VBAT-Powered  
Control Interface. See Section 26.8, "Power-Up Events" for a func-  
tional description of the POWER-UP_EN bit.  
1=Power-Up Event Output Enabled  
0=Power-Up Event Output Disabled and Reset  
5:1 Reserved  
R
-
-
0
WT_ENABLE  
R/W  
1h  
RESET  
_VBAT  
The WT_ENABLE bit is used to start and stop the Week Alarm  
Counter Register and the Clock Divider Register.  
The value in the Counter Register is held when the WT_ENABLE bit  
is not asserted (‘0’) and the count is resumed from the last value  
when the bit is asserted (‘1’).  
The 15-Bit Clock Divider is reset to 00h and the Week Alarm Inter-  
face is in its lowest power consumption state when the WT_EN-  
ABLE bit is not asserted.  
26.11.2 WEEK ALARM COUNTER REGISTER  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:28 Reserved  
R
-
-
27:0 WEEK_COUNTER  
R/W  
00h  
RESET  
_VBAT  
While the WT_ENABLE bit is ‘1’, this register is incremented at a 1  
Hz rate. Writes of this register may require one second to take  
effect. Reads return the current state of the register. Reads and  
writes complete independently of the state of WT_ENABLE.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 413  
MEC170x  
26.11.3 WEEK TIMER COMPARE REGISTER  
08h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:28 Reserved  
R
-
-
27:0 WEEK_COMPARE  
R/W  
FFFFFFFh RESET  
_VBAT  
A Week Alarm Interrupt and a Week Alarm Power-Up Event are  
asserted when the Week Alarm Counter Register is greater than or  
equal to the contents of this register. Reads and writes complete  
independently of the state of WT_ENABLE.  
26.11.4 CLOCK DIVIDER REGISTER  
0Ch  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
31:15 Reserved  
R
R
-
-
-
14:0 CLOCK_DIVIDER  
RESET  
_VBAT  
Reads of this register return the current state of the Week Timer 15-  
bit clock divider.  
26.11.5 SUB-SECOND PROGRAMMABLE INTERRUPT SELECT REGISTER  
10h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:4 Reserved  
3:0 SPISR  
R
-
-
R/W  
00h  
RESET  
_VBAT  
This field determines the rate at which Sub-Second interrupt events  
are generated. Table 26-9, "SPISR Encoding" shows the relation  
between the SPISR encoding and Sub-Second interrupt rate.  
TABLE 26-9: SPISR ENCODING  
SPISR Value Sub-Second Interrupt Rate, Hz  
Interrupts disabled  
Interrupt Period  
0
1
2
3
2
4
8
500 ms  
250 ms  
125 ms  
DS00002206H-page 414  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 26-9: SPISR ENCODING (CONTINUED)  
SPISR Value  
Sub-Second Interrupt Rate, Hz  
Interrupt Period  
4
5
16  
32  
62.5 ms  
31.25 ms  
15.63 ms  
7.813 ms  
3.906 ms  
1.953 ms  
977 µS  
6
64  
7
128  
8
256  
9
512  
10  
11  
12  
13  
14  
15  
1024  
2048  
4096  
8192  
16384  
32768  
488 µS  
244 µS  
122 µS  
61 µS  
30.5 µS  
26.11.6 SUB-WEEK CONTROL REGISTER  
14h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:10 Reserved  
R
-
-
9:7 SUBWEEK_TICK  
R/W  
0
RESET  
_VBAT  
This field selects the clock source for the Sub-Week Counter. See  
Table 26-7, "Sub-Week Alarm Counter Clock" for the description of  
the options for this field. See also Note 1.  
6
AUTO_RELOAD  
R/W  
0
RESET  
_VBAT  
1= No reload occurs when the Sub-Week Counter expires  
0= Reloads the SUBWEEK_COUNTER_LOAD field into the Sub-  
Week Counter when the counter expires.  
5
TEST  
R/W  
R
0
-
-
-
Must always be written with 0.  
4:2 Reserved  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 415  
MEC170x  
14h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
1
WEEK_TIMER_POWERUP_EVENT_STATUS  
R/WC  
0
RESET  
_VBAT  
This bit is set to ‘1’ when the Week Alarm Counter Register is  
greater than or equal the contents of the Week Timer Compare  
Register and the POWERUP_EN is ‘1’.  
Writes of ‘1’ clear this bit. Writes of ‘0’ have no effect.  
Note:  
This bit does not have to be cleared to remove a Week  
Timer Power-Up Event.  
0
SUBWEEK_TIMER_POWERUP_EVENT_STATUS  
R/WC  
0
RESET  
_VBAT  
This bit is set to ‘1’ when the Sub-Week Alarm Counter Register  
decrements from ‘1’ to ‘0’ and the POWERUP_EN is ‘1’.  
Writes of ‘1’ clear this bit. Writes of ‘0’ have no effect.  
Note:  
This bit MUST be cleared to remove a Sub-Week Timer  
Power-Up Event.  
26.11.7 SUB-WEEK ALARM COUNTER REGISTER  
18h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:25 Reserved  
R
R
-
-
24:16 SUBWEEK_COUNTER_STATUS  
00h  
RESET  
_VBAT  
Reads of this register return the current state of the 9-bit Sub-Week  
Alarm counter.  
15:9 Reserved  
R
-
-
8:0 SUBWEEK_COUNTER_LOAD  
R/W  
00h  
RESET  
_VBAT  
Writes with a non-zero value to this field reload the 9-bit Sub-Week  
Alarm counter. Writes of 0 disable the counter.  
If the Sub-Week Alarm counter decrements to 0 and the AUTO_RE-  
LOAD bit is set, the value in this field is automatically loaded into the  
Sub-Week Alarm counter.  
DS00002206H-page 416  
2016-2020 Microchip Technology Inc.  
MEC170x  
26.11.8 BGPO DATA REGISTER  
1Ch  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
31:10 Reserved  
9:0 BGPO  
R
-
-
R/W  
0h  
RESET  
_VBAT  
or  
RESET  
_SYS  
Battery powered General Purpose Output. Each output pin may be  
individually configured to be either a VBAT-power BGPO or a VTR-  
powered GPIO, based on the corresponding settings in the BGPO  
Power Register. Additionally, each output pin may be individually  
configured to reset to 0 on either RESET_VBAT or RESET_SYS,  
based on the corresponding settings in the BGPO Reset Register.  
For each bit [i] in the field:  
1=BGPO[i] output is high  
0=BGPO[i] output is low  
If a BGPO[i] does not appear in a package, the corresponding bit  
must be written with a 0 or undesirable results will occur.  
26.11.9 BGPO POWER REGISTER  
20h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:6 Reserved  
R
-
-
5:1 BGPO_POWER  
R/W  
1Fh  
RESET  
_VBAT  
Battery powered General Purpose Output power source.  
For each bit [i] in the field:  
1=BGPO[i] is powered by VBAT. The BGPO[i] pin is always deter-  
mined by the corresponding bit in the BGPO Data Register. The  
GPIO Input register for the GPIO that is multiplexed with the  
BGPO always returns the value of the pin associated with  
BGPO[i].  
0=The pin for BGPO[i] functions as a GPIO. When VTR is powered,  
the pin associated with BGPO[i] is determined by the GPIO  
associated with the pin. When VTR is unpowered, the pin is tri-  
stated  
0
Reserved  
R
-
-
Note:  
Because BGPO[9:6] and BGPO0 are not multiplexed with GPIOs, bits 9:6 and 0 are reserved.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 417  
MEC170x  
26.11.10 BGPO RESET REGISTER  
24h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:10 Reserved  
R
-
-
9:0 BGPO_RESET  
R/W  
0h  
RESET  
_VBAT  
Battery powered General Purpose Output reset event.  
For each bit [i] in the field:  
1=BGPO[i] is reset to 0 on RESET_VBAT  
0=BGPO[i] is reset to 0 on RESET_SYS  
DS00002206H-page 418  
2016-2020 Microchip Technology Inc.  
MEC170x  
27.0 TACH  
27.1 Introduction  
This block monitors TACH output signals (or locked rotor signals) from various types of fans, and determines their  
speed.  
27.2 References  
No references have been cited for this feature.  
27.3 Terminology  
There is no terminology defined for this section.  
27.4 Interface  
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.  
FIGURE 27-1:  
I/O DIAGRAM OF BLOCK  
TACH  
Host Interface  
Signal Description  
Power, Clocks and Reset  
Interrupts  
27.5 Signal Description  
TABLE 27-1: SIGNAL DESCRIPTION  
Name  
Direction  
Description  
TACH INPUT  
Input  
Tachometer signal from TACHx Pin.  
27.6 Host Interface  
The registers defined for the TACH are accessible by the various hosts as indicated in Section 27.11, "EC Registers".  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 419  
MEC170x  
27.7 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
27.7.1  
POWER DOMAINS  
Name  
Description  
VTR  
The logic and registers implemented in this block are powered by this  
power well.  
27.7.2  
CLOCK INPUTS  
Name  
Description  
100KHz  
This is the clock input to the tachometer monitor logic. In Mode 1, the  
TACH is measured in the number of these clocks. This clock is derived  
from the main clock domain.  
27.7.3  
RESETS  
Name  
Description  
RESET_SYS  
This signal resets all the registers and logic in this block to their default  
state.  
27.8 Interrupts  
This section defines the Interrupt Sources generated from this block.  
TABLE 27-2: EC INTERRUPTS  
Source  
Description  
TACH  
This internal signal is generated from the OR’d result of the status events,  
as defined in the TACHx Status Register.  
27.9 Low Power Modes  
The TACH may be put into a low power state by the chip’s Power, Clocks, and Reset (PCR) circuitry.  
27.10 Description  
The TACH block monitors Tach output signals or locked rotor signals generated by various types of fans. These signals  
can be used to determine the speed of the attached fan. This block is designed to monitor fans at fan speeds from 100  
RPMs to 30,000 RPMs.  
Typically, these are DC brushless fans that generate (with each revolution) a 50% duty cycle, two-period square wave,  
as shown in Figure 27-2 below.  
FIGURE 27-2:  
FAN GENERATED 50%DUTY CYCLE WAVEFORM  
one revolution  
DS00002206H-page 420  
2016-2020 Microchip Technology Inc.  
MEC170x  
In typical systems, the fans are powered by the main power supply. Firmware may disable this block when it detects that  
the main power rail has been turned off by either clearing the <enable> TACH_ENABLE bit or putting the block to sleep  
via the supported Low Power Mode interface (see Low Power Modes).  
27.10.1 MODES OF OPERATION  
The Tachometer block supports two modes of operation. The mode of operation is selected via the TACH_READING_-  
MODE_SELECT bit.  
27.10.1.1 Free Running Counter  
In Mode 0, the Tachometer block uses the TACH input as the clock source for the internal TACH pulse counter (see  
TACHX_COUNTER). The counter is incremented when it detects a rising edge on the TACH input. In this mode, the  
firmware may periodically poll the TACHX_COUNTER field to determine the average speed over a period of time. The  
firmware must store the previous reading and the current reading to compute the number of pulses detected over a  
period of time. In this mode, the counter continuously increments until it reaches FFFFh. It then wraps back to 0000h  
and continues counting. The firmware must ensure that the sample rate is greater than the time it takes for the counter  
to wrap back to the starting point.  
Note:  
Tach interrupts should be disabled in Mode 0.  
27.10.1.2 Mode 1 -- Number of Clock Pulses per Revolution  
In Mode 1, the Tachometer block uses its 100KHz clock input to measure the programmable number of TACH pulses.  
In this mode, the internal TACH pulse counter (TACHX_COUNTER) returns the value in number of 100KHz pulses per  
programmed number of TACH_EDGES. For fans that generate two square waves per revolution, these bits should be  
configured to five edges.  
When the number of edges is detected, the counter is latched and the COUNT_READY_STATUS bit is asserted. If the  
COUNT_READY_INT_EN bit is set a TACH interrupt event will be generated.  
27.10.2 OUT-OF-LIMIT EVENTS  
The TACH Block has a pair of limit registers that may be configured to generate an event if the Tach indicates that the  
fan is operating too slow or too fast. If the <TACH reading> exceeds one of the programmed limits, the TACHx High  
Limit Register and the TACHx Low Limit Register, the bit TACH_OUT_OF_LIMIT_STATUS will be set. If the  
TACH_OUT_OF_LIMIT_STATUS bit is set, the Tachometer block will generate an interrupt event.  
27.11 EC 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 each instance of the TACH Block in the Block Overview and Base Address Table in  
Section 3.0, "Device Inventory".  
TABLE 27-3: REGISTER SUMMARY  
Offset  
Register Name  
TACHx Control Register  
00h  
04h  
08h  
0Ch  
TACHx Status Register  
TACHx High Limit Register  
TACHx Low Limit Register  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 421  
MEC170x  
27.11.1 TACHX CONTROL REGISTER  
00h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:16 TACHX_COUNTER  
R
00h  
RESET_  
SYS  
This 16-bit field contains the latched value of the internal Tach pulse  
counter, which may be configured by the Tach Reading Mode Select  
field to operate as a free-running counter or to be gated by the Tach  
input signal.  
If the counter is free-running (Mode 0), the internal Tach counter  
increments (if enabled) on transitions of the raw Tach input signal  
and is latched into this field every time it is incremented. The act of  
reading this field will not reset the counter, which rolls over to 0000h  
after FFFFh. The firmware will compute the delta between the current  
count reading and the previous count reading, to determine the num-  
ber of pulses detected over a programmed period.  
If the counter is gated by the Tach input and clocked by 100KHz  
(Mode 1), the internal counter will be latched into the reading register  
when the programmed number of edges is detected or when the  
counter reaches FFFFh. The internal counter is reset to zero after it  
is copied into this register.  
Note:  
In Mode 1, a counter value of FFFFh means that the Tach  
did not detect the programmed number of edges in  
655ms. A stuck fan can be detected by setting the TACHx  
High Limit Register to a number less than FFFFh. If the  
internal counter then reaches FFFFh, the reading register  
will be set to FFFFh and an out-of-limit interrupt can be  
sent to the EC.  
15 TACH_INPUT_INT_EN  
R/W  
R/W  
0b  
0b  
RESET_  
SYS  
1=Enable Tach Input toggle interrupt from Tach block  
0=Disable Tach Input toggle interrupt from Tach block  
14 COUNT_READY_INT_EN  
RESET_  
SYS  
1=Enable Count Ready interrupt from Tach block  
0=Disable Count Ready interrupt from Tach block  
13 Reserved  
R
-
-
12:11 TACH_EDGES  
R/W  
00b  
RESET_  
SYS  
A Tach signal is a square wave with a 50% duty cycle. Typically, two  
Tach periods represents one revolution of the fan. A Tach period con-  
sists of three Tach edges.  
This programmed value represents the number of Tach edges that  
will be used to determine the interval for which the number of  
100KHz pulses will be counted  
11b=9 Tach edges (4 Tach periods)  
10b=5 Tach edges (2 Tach periods)  
01b=3 Tach edges (1 Tach period)  
00b=2 Tach edges (1/2 Tach period)  
DS00002206H-page 422  
2016-2020 Microchip Technology Inc.  
MEC170x  
00h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
10 TACH_READING_MODE_SELECT  
R/W  
0b  
RESET_  
SYS  
1=Counter is incremented on the rising edge of the 100KHz input. The  
counter is latched into the TACHX_COUNTER field and reset  
when the programmed number of edges is detected.  
0=Counter is incremented when Tach Input transitions from low-to-  
high state (default)  
9 Reserved  
R
-
-
8 FILTER_ENABLE  
R/W  
0b  
RESET_  
SYS  
This filter is used to remove high frequency glitches from Tach Input.  
When this filter is enabled, Tach input pulses less than two 100KHz  
periods wide get filtered.  
1=Filter enabled  
0=Filter disabled (default)  
It is recommended that the Tach input filter always be enabled.  
7:2 Reserved  
R
-
-
1 TACH_ENABLE  
R/W  
0b  
RESET_  
SYS  
This bit gates the clocks into the block. When clocks are gated, the  
TACHx pin is tristated. When re-enabled, the internal counters will  
continue from the last known state and stale status events may still  
be pending. Firmware should discard any status or reading values  
until the reading value has been updated at least one time after the  
enable bit is set.  
1=TACH Monitoring enabled, clocks enabled.  
0=TACH Idle, clocks gated  
0 TACH_OUT_OF_LIMIT_ENABLE  
R/W  
0b  
RESET_  
SYS  
This bit is used to enable the TACH_OUT_OF_LIMIT_STATUS bit in  
the TACHx Status Register to generate an interrupt event.  
1=Enable interrupt output from Tach block  
0=Disable interrupt output from Tach block (default)  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 423  
MEC170x  
27.11.2 TACHX STATUS REGISTER  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:4 Reserved  
R
-
-
3 COUNT_READY_STATUS  
R/WC  
0b  
RESET_  
SYS  
This status bit is asserted when the Tach input changes state and  
when the counter value is latched. This bit remains cleared to '0'  
when the TACH_READING_MODE_SELECT bit in the TACHx Con-  
trol Register is '0'.  
When the TACH_READING_MODE_SELECT bit in the TACHx Con-  
trol Register is set to '1', this bit is set to ‘1’ when the counter value is  
latched by the hardware. It is cleared when written with a ‘1’. If  
COUNT_READY_INT_EN in the TACHx Control Register is set to 1,  
this status bit will assert the Tach Interrupt signal.  
1=Reading ready  
0=Reading not ready  
2 TOGGLE_STATUS  
R/WC  
0b  
RESET_  
SYS  
This bit is set when Tach Input changes state. It is cleared when writ-  
ten with a ‘1b’. If TACH_INPUT_INT_EN in the TACHx Control Reg-  
ister is set to ‘1b’, this status bit will assert the Tach Interrupt signal.  
1=Tach Input changed state (this bit is set on a low-to-high or high-to-  
low transition)  
0=Tach stable  
1 TACH_PIN_STATUS  
R
0b  
0b  
RESET_  
SYS  
This bit reflects the state of Tach Input. This bit is a read only bit that  
may be polled by the embedded controller.  
1=Tach Input is high  
0=Tach Input is low  
0 TACH_OUT_OF_LIMIT_STATUS  
R/WC  
RESET_  
SYS  
This bit is set when the Tach Count value is greater than the high  
limit or less than the low limit. It is cleared when written with a ‘1b’.  
To disable this status event set the limits to their extreme values. If  
TACH_OUT_OF_LIMIT_ENABLE in the TACHx Control Register is  
set to 1’, this status bit will assert the Tach Interrupt signal.  
1=Tach is outside of limits  
0=Tach is within limits  
Note:  
• Some fans offer a Locked Rotor output pin that generates a level event if a locked rotor is detected. This bit may  
be used in combination with the Tach pin status bit to detect a locked rotor signal event from a fan.  
Tach Input may come up as active for Locked Rotor events. This would not cause an interrupt event because the  
pin would not toggle. Firmware must read the status events as part of the initialization process, if polling is not  
implemented.  
DS00002206H-page 424  
2016-2020 Microchip Technology Inc.  
MEC170x  
27.11.3 TACHX HIGH LIMIT REGISTER  
08h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
31:16 Reserved  
-
-
-
15:0 TACH_HIGH_LIMIT  
R/W  
FFFFh  
RESET_  
SYS  
This value is compared with the value in the TACHX_COUNTER  
field. If the value in the counter is greater than the value programmed  
in this register, the TACH_OUT_OF_LIMIT_STATUS bit will be set.  
The TACH_OUT_OF_LIMIT_STATUS status event may be enabled  
to generate an interrupt to the embedded controller via the  
TACH_OUT_OF_LIMIT_ENABLE bit in the TACHx Control Register.  
27.11.4 TACHX LOW LIMIT REGISTER  
0Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:16 Reserved  
R
-
-
15:0 TACHX_LOW_LIMIT  
R/W  
0000h  
RESET_  
SYS  
This value is compared with the value in the TACHX_COUNTER field  
of the TACHx Control Register. If the value in the counter is less than  
the value programmed in this register, the TACH_OUT_OF_LIM-  
IT_STATUS bit will be set. The TACH_OUT_OF_LIMIT_STATUS sta-  
tus event may be enabled to generate an interrupt to the embedded  
controller via the TACH_OUT_OF_LIMIT_ENABLE bit in the TACHx  
Control Register  
To disable the TACH_OUT_OF_LIMIT_STATUS low event, program  
0000h into this register.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 425  
MEC170x  
28.0 PWM  
28.1 Introduction  
This block generates a PWM output that can be used to control 4-wire fans, blinking LEDs, and other similar devices.  
Each PWM can generate an arbitrary duty cycle output at frequencies from less than 0.1 Hz to 24 MHz.  
The PWMx Counter ON Time registers and PWMx Counter OFF Time registers determine the operation of the  
PWM_OUTPUT signals. See Section 28.11.1, "PWMx Counter ON Time Register" and Section 28.11.2, "PWMx  
Counter OFF Time Register" for a description of the PWM_OUTPUT signals.  
28.2 References  
There are no standards referenced in this chapter.  
28.3 Terminology  
There is no terminology defined for this section.  
28.4 Interface  
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.  
FIGURE 28-1:  
I/O DIAGRAM OF BLOCK  
PWM  
Host Interface  
Signal Description  
Power, Clocks and Reset  
Interrupts  
There are no external signals for this block.  
DS00002206H-page 426  
2016-2020 Microchip Technology Inc.  
MEC170x  
28.5 Signal Description  
TABLE 28-1: SIGNAL DESCRIPTION  
Name  
Direction  
Description  
PWM_OUTPUT  
OUTPUT  
Pulse Width Modulated signal to PWMx pin.  
28.6 Host Interface  
The registers defined for the PWM Interface are accessible by the various hosts as indicated in Section 28.11, "EC Reg-  
isters".  
28.7 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
28.7.1  
28.7.2  
POWER DOMAINS  
Name  
Description  
VTR  
The logic and registers implemented in this block are powered by this  
power well.  
CLOCK INPUTS  
Name  
Description  
48MHz  
Clock input for generating high PWM frequencies, such as 15 kHz to 30  
kHz.  
100KHz  
This is the clock input for generating low PWM frequencies, such as 10  
Hz to 100 Hz.  
28.7.3  
RESETS  
Name  
Description  
RESET_SYS  
This signal resets all the registers and logic in this block to their default  
state.  
28.8 Interrupts  
The PWM block does not generate any interrupt events.  
28.9 Low Power Modes  
The PWM may be put into a low power state by the chip’s Power, Clocks, and Reset (PCR) circuitry. When the PWM is  
in the sleep state, the internal counters reset to 0 and the internal state of the PWM and the PWM_OUTPUT signal set  
to the OFF state.  
28.10 Description  
The PWM_OUTPUT signal is used to generate a duty cycle of specified frequency. This block can be programmed so  
that the PWM signal toggles the PWM_OUTPUT, holds it high, or holds it low. When the PWM is configured to toggle,  
the PWM_OUTPUT alternates from high to low at the rate specified in the PWMx Counter ON Time Register and PWMx  
Counter OFF Time Register.  
The following diagram illustrates how the clock inputs and registers are routed to the PWM Duty Cycle & Frequency  
Control logic to generate the PWM output.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 427  
MEC170x  
FIGURE 28-2:  
BLOCK DIAGRAM OF PWM CONTROLLER  
PWM BLOCK  
Clock Select  
CLOCK_HIGH  
Clock  
Pre-  
Divider  
(15:0)  
CLOCK_LOW  
Invert_PWM  
PWM_ OUTPUT  
PWM Duty Cycle &  
Frequency Control  
16-bit down  
counter  
EC I/F  
PWM Registers  
Note:  
In Figure 28-2, the 48MHz clock is represented as CLOCK_HIGH and the 100KHz clock is represented as  
CLOCK_LOW.  
The PWM clock source to the PWM Down Counter, used to generate a duty cycle and frequency on the PWM, is deter-  
mined through the Clock select[1] and Clock Pre-Divider[6:3] bits in the PWMx Configuration Register register.  
The PWMx Counter ON/OFF Time registers determine both the frequency and duty cycle of the signal generated on  
PWM_OUTPUT as described below.  
The PWM frequency is determined by the selected clock source and the total on and off time programmed in the PWMx  
Counter ON Time Register and PWMx Counter OFF Time Register registers. The frequency is the time it takes (at that  
clock rate) to count down to 0 from the total on and off time.  
The PWM duty cycle is determined by the relative values programmed in the PWMx Counter ON Time Register and  
PWMx Counter OFF Time Register registers.  
The PWM Frequency Equation and PWM Duty Cycle Equation are shown below.  
EQUATION 28-1: PWM FREQUENCY EQUATION  
1
ClockSourceFrequency  
------------------------------------------- -----------------------------------------------------------------------------------------------------------------------------------------------------------  
PWM Frequency =  
PreDivisor + 1 PWMCounterOnTime + 1+ PWMCounterOffTime + 1  
In this equation, the ClockSourceFrequency variable is the frequency of the clock source selected by the Clock Select  
bit in the PWMx Configuration Register, and PreDivisor is a field in the PWMx Configuration Register. The PWMCoun-  
terOnTime, PWMCounterOffTime are registers that are defined in Section 28.11, "EC Registers".  
DS00002206H-page 428  
2016-2020 Microchip Technology Inc.  
MEC170x  
EQUATION 28-2: PWM DUTY CYCLE EQUATION  
PWMCounterOnTime + 1  
PWMCounterOnTime + 1+ PWMCounterOffTime + 1  
-------------------------------------------------------------------------------------------------------------------------------------  
PWM Duty Cycle =  
The PWMx Counter ON Time Register and PWMx Counter OFF Time Register registers should be accessed as 16-bit  
values.  
28.10.1 PWM REGISTER UPDATES  
The PWMx Counter ON Time Register and PWMx Counter OFF Time Register may be updated at any time. Values  
written into the two registers are kept in holding registers. The holding registers are transferred into the two user-visible  
registers when all four bytes have been written with new values and the internal counter completes the OFF time count.  
If the PWM is in the Full On state then the two user-visible registers are updated from the holding registers as soon as  
all four bytes have been written. Once the two registers have been updated the holding registers are marked empty. and  
all four bytes must again be written before the holding registers will be reloaded into the On Time Register and the Off  
Time Register. Reads of both registers return the current contents of the registers that are used to load the counter and  
not the holding registers.  
28.11 EC 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 each instance of the PWM Block in the Block Overview and Base Address Table in  
Section 3.0, "Device Inventory".  
TABLE 28-2: REGISTER SUMMARY  
Offset  
Register Name  
00h  
04h  
08h  
PWMx Counter ON Time Register  
PWMx Counter OFF Time Register  
PWMx Configuration Register  
28.11.1 PWMX COUNTER ON TIME REGISTER  
00h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:16 Reserved  
R
-
-
15:0 PWMX_COUNTER_ON_TIME  
R/W  
0000h  
RESET_  
SYS  
This field determine both the frequency and duty cycle of the PWM  
signal. Setting this field to a value of n will cause the On time of the  
PWM to be n+1 cycles of the PWM Clock Source.  
When this field is set to zero and the PWMX_COUNTER_OFF_-  
TIME is not set to zero, the PWM_OUTPUT is held low (Full Off).  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 429  
MEC170x  
28.11.2 PWMX COUNTER OFF TIME REGISTER  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:16 Reserved  
R
-
-
15:0 PWMX_COUNTER_OFF_TIME  
R/W  
FFFFh  
RESET_  
SYS  
This field determine both the frequency and duty cycle of the PWM  
signal. Setting this field to a value of n will cause the Off time of the  
PWM to be n+1 cycles of the PWM Clock Source.  
When this field is set to zero, the PWM_OUTPUT is held high (Full  
On).  
28.11.3 PWMX CONFIGURATION REGISTER  
08h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:7 Reserved  
R
-
-
6:3 CLOCK_PRE_DIVIDER  
R/W  
0000b  
RESET_  
SYS  
The Clock source for the 16-bit down counter (see PWMx Counter  
ON Time Register and PWMx Counter OFF Time Register) is deter-  
mined by bit D1 of this register. The Clock source is then divided by  
the value of Pre-Divider+1 and the resulting signal determines the  
rate at which the down counter will be decremented. For example, a  
Pre-Divider value of 1 divides the input clock by 2 and a value of 2  
divides the input clock by 3. A Pre-Divider of 0 will disable the Pre-  
Divider option.  
2 INVERT  
R/W  
R/W  
0b  
0b  
RESET_  
SYS  
1=PWM_OUTPUT ON State is active low  
0=PWM_OUTPUT ON State is active high  
1 CLOCK_SELECT  
RESET_  
SYS  
This bit determines the clock source used by the PWM duty cycle  
and frequency control logic.  
1=CLOCK_LOW  
0=CLOCK_HIGH  
0 PWM_ENABLE  
R/W  
0b  
RESET_  
SYS  
When the PWM_ENABLE is set to 0 the internal counters are reset  
and the internal state machine is set to the OFF state. In addition,  
the PWM_OUTPUT signal is set to the inactive state as determined  
by the Invert bit. The PWMx Counter ON Time Register and PWMx  
Counter OFF Time Register are not affected by the PWM_ENABLE  
bit and may be read and written while the PWM enable bit is 0.  
1=Enabled (default)  
0=Disabled (gates clocks to save power)  
DS00002206H-page 430  
2016-2020 Microchip Technology Inc.  
MEC170x  
29.0 PECI INTERFACE  
29.1 Overview  
The MEC170x includes a PECI Interface to allow the EC to retrieve temperature readings from PECI-compliant  
devices. The PECI Interface implements the PHY and Link Layer of a PECI host controller as defined in References[1]  
and includes hardware support for the PECI 3.1 command set.  
This chapter focuses on MEC170x-specific PECI Interface configuration information such as Power Domains, Clock  
Inputs, Resets, Interrupts, and other chip specific information. For a functional description of the MEC170x PECI Inter-  
face refer to References [1].  
29.2 References  
1. PECI Interface Core, Rev. 1.31, Core-Level Architecture Specification, Microchip Confidential, 4/15/11  
29.3 Terminology  
No terminology has been defined for this chapter.  
29.4 Interface  
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.  
FIGURE 29-1:  
PECI INTERFACE I/O DIAGRAM  
PECI Interface  
Host Interface  
PECI_DAT  
Power, Clocks and Reset  
Interrupts  
29.5 Signal Description  
The Signal Description Table lists the signals that are typically routed to the pin interface.  
TABLE 29-1: SIGNAL DESCRIPTION  
Name  
Direction  
Description  
PECI_DAT  
Input/Output  
PECI Data signal pin  
Note:  
Routing guidelines for the PECI_DAT pin is provided in Intel Platform design guides. Refer to the appropri-  
ate Intel document for current information. See Table 29-2.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 431  
MEC170x  
TABLE 29-2: PECI ROUTING GUIDELINES  
Trace Impedance  
Spacing  
50 Ohms +/- 15%  
10 mils  
Routing Layer  
Trace Width  
Length  
Microstrip  
Calculate to match impedance  
1” - 15”  
29.6 Host Interface  
The registers defined for the PECI Interface are accessible by the various hosts as indicated in Section 29.11, "EC Reg-  
isters".  
29.7 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
29.7.1  
29.7.2  
POWER DOMAINS  
Name  
Description  
VTR  
The logic and registers implemented in this block are powered by this  
power well.  
CLOCK INPUTS  
Name  
Description  
48MHz  
This is the main system clock. (note)  
Note:  
PECI Module Input Clock is an 8MHz clock derived from the 48MHz clock input. An 8MHz clock supports  
a maximum Optimal Bit Time of 500 kbps. The Optimal Bit Time is determined by the value programmed  
into the Optimal Bit Time registers at offset 20h and 24h.  
29.7.3  
RESETS  
Name  
Description  
RESET_SYS  
This signal resets all the registers and logic in this block to their default  
state.  
29.8 Interrupts  
This section defines the Interrupt Sources generated from this block.  
TABLE 29-3: EC INTERRUPTS  
Source  
Description  
PECIHOST  
PECI Host  
29.9 Low Power Modes  
The PECI Interface may be put into a low power state by the chip’s Power, Clocks, and Reset (PCR) circuitry.  
DS00002206H-page 432  
2016-2020 Microchip Technology Inc.  
MEC170x  
29.10 Instance Description  
There is one instance of the PECI Core implemented in the PECI Interface in the MEC170x. See Reference [1], PECI  
Interface Core, Rev. 1.31, Core-Level Architecture Specification, Microchip Confidential, 4/15/11, for a description of the  
PECI Core.  
Note:  
If the PECI interface is not in use, the PECI_DISABLE bit in the PECI Disable Register must be set to ‘1b’  
in order to minimize leakage current.  
29.11 EC 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 each instance of the PECI Interface Block in the Block Overview and Base Address  
Table in Section 3.0, "Device Inventory".  
TABLE 29-4: REGISTER SUMMARY  
Offset  
Register Name  
00h  
04h  
Write Data Register  
Read Data Register  
Control Register  
Status Register 1  
Status Register 2  
Error Register  
08h  
0Ch  
10h  
14h  
18h  
Interrupt Enable 1 Register  
Interrupt Enable 2 Register  
Optimal Bit Time Register (Low Byte)  
Optimal Bit Time Register (High Byte)  
TEST  
1Ch  
20h  
24h  
28h  
2Ch  
40h  
TEST  
Block ID Register  
44h  
Revision Register  
48h - 7Ch  
Test  
For register details see References [1].  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 433  
MEC170x  
30.0 ANALOG TO DIGITAL CONVERTER  
30.1 Introduction  
This block is designed to convert external analog voltage readings into digital values. It consists of a single successive-  
approximation Analog-Digital Converter that can be shared among multiple inputs.  
30.2 References  
No references have been cited for this chapter  
30.3 Terminology  
No terminology is defined for this chapter  
30.4 Interface  
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.  
FIGURE 30-1:  
I/O DIAGRAM OF BLOCK  
Analog to Digital Converter  
Host Interface  
Signal Description  
Power, Clocks and Reset  
Interrupts  
30.5 Signal Description  
The Signal Description Table lists the signals that are typically routed to the pin interface.  
TABLE 30-1: SIGNAL DESCRIPTION  
Name  
Direction  
Description  
ADC Analog Voltage Input from pins.  
ADC [15:0]  
Input  
Note:  
The ADC IP supports up to 16 channels. The number of  
channels implemented is package dependent. Refer to  
the Pin Chapter for the number of channels implemented  
in a package.  
DS00002206H-page 434  
2016-2020 Microchip Technology Inc.  
MEC170x  
30.6 Host Interface  
The registers defined for the ADC are accessible by the various hosts as indicated in Section 30.11, "EC Registers".  
30.7 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
30.7.1  
POWER DOMAINS  
TABLE 30-2: POWER SOURCES  
Name  
Description  
VTR  
This power well supplies power for the registers tn this block.  
VTR_ANALOG  
This power well supplies power for the analog circuitry in this block.  
30.7.2  
CLOCK INPUTS  
TABLE 30-3: CLOCK INPUTS  
Name  
Description  
16MHz  
This derived clock signal drives controls the conversion rate of the ADC.  
At 16MHz, the ADC does one channel conversion in 1.125µS.  
30.7.3  
RESETS  
TABLE 30-4: RESET SIGNALS  
Name  
Description  
RESET_SYS  
This reset signal resets all of the registers and logic in this block.  
30.8 Interrupts  
TABLE 30-5: EC INTERRUPTS  
Source  
Description  
ADC_Single_Int  
Interrupt signal from ADC controller to EC for Single-Sample ADC con-  
version.  
ADC_Repeat_Int  
Interrupt signal from ADC controller to EC for Repeated ADC conversion.  
30.9 Low Power Modes  
The ADC may be put into a low power state by the chip’s Power, Clocks, and Reset (PCR) circuitry.  
The ADC is designed to conserve power when it is either sleeping or disabled. It is disabled via the ACTIVATE Bit and  
sleeps when the ADC_SLEEP_EN signal is asserted. The sleeping state only controls clocking in the ADC and does  
not power down the analog circuitry. For lowest power consumption, the ADC ACTIVATE bit must be set to ‘0.’  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 435  
MEC170x  
30.10 Description  
FIGURE 30-2:  
ADC BLOCK DIAGRAM  
ADC BLOCK  
VREF  
Analog Inputs  
ADC Reading Registers  
Latch  
Control  
Logic  
Host Interface  
reading  
10-bit reading value  
ADC  
MUX  
ADC_Single_Int  
ADC_Repeat_Int  
Control  
ADC_SLEEP_EN  
ADC_CLK_REQ  
The MEC170x features a sixteen channel successive approximation Analog to Digital Converter. The ADC architecture  
features excellent linearity and converts analog signals to 10 bit words. Conversion takes less than 1.125 microseconds  
per 10-bit word. The sixteen channels are implemented with a single high speed ADC fed by a sixteen input analog mul-  
tiplexer. The multiplexer cycles through the sixteen voltage channels, starting with the lowest-numbered channel and  
proceeding to the highest-number channel, selecting only those channels that are programmed to be active.  
The input range on the voltage channels spans from 0V to the voltage reference. With an voltage reference of 3.3V, this  
provides resolutions of 3.2mV. The range can easily be extended with the aid of resistor dividers. The accuracy of any  
voltage reading depends on the accuracy and stability of the voltage reference input.  
Note:  
The ADC pins are 3.3V tolerant.  
The ADC conversion cycle starts either when the START_SINGLE bit in the ADC to set to 1 or when the ADC Repeat  
Timer counts down to 0. When the START_SINGLE is set to 1 the conversion cycle converts channels enabled by con-  
figuration bits in the ADC Single Register. When the Repeat Timer counts down to 0 the conversion cycle converts chan-  
nels enabled by configuration bits in the ADC Repeat Register. When both the START_SINGLE bit and the Repeat  
Timer request conversions the START_SINGLE conversion is completed first.  
Conversions always start with the lowest-numbered enabled channel and proceed to the highest-numbered enabled  
channel.  
Note:  
If software repeatedly sets Start_Single to 1 at a rate faster than the Repeat Timer count down interval, the  
conversion cycle defined by the ADC Repeat Register will not be executed.  
30.10.1 REPEAT MODE  
• Repeat Mode will start a conversion cycle of all ADC channels enabled by bits RPT_EN in the ADC Repeat Reg-  
ister. The conversion cycle will begin after a delay determined by START_DELAY in the ADC Delay Register.  
• After all channels enabled by RPT_EN are complete, REPEAT_DONE_STATUS will be set to 1. This status bit is  
cleared when the next repeating conversion cycle begins to give a reflection of when the conversion is in prog-  
ress.  
DS00002206H-page 436  
2016-2020 Microchip Technology Inc.  
MEC170x  
• As long as START_REPEAT is 1 the ADC will repeatedly begin conversion cycles with a period defined by  
REPEAT_DELAY.  
• If the delay period expires and a conversion cycle is already in progress because START_SINGLE was written  
with a 1, the cycle in progress will complete, followed immediately by a conversion cycle using RPT_EN to control  
the channel conversions.  
30.10.2 SINGLE MODE  
• The Single Mode conversion cycle will begin without a delay. After all channels enabled by SINGLE_EN are com-  
plete, SINGLE_DONE_STATUS will be set to 1. When the next conversion cycle begins the bit is cleared.  
• If START_SINGLE is written with a 1 while a conversion cycle is in progress because START_REPEAT is set, the  
conversion cycle will complete, followed immediately by a conversion cycle using SINGLE_EN to control the chan-  
nel conversions.  
30.10.3 APPLICATION NOTES  
Transitions on ADC GPIOs are not permitted when Analog to Digital Converter readings are being taken.  
Note:  
ADC inputs require at least a 0.1 uF capacitor to filter glitches. See the MEC170x PCB Layout Guide for  
ADC filtering recommendations.  
30.11 EC 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 each instance of the Analog to Digital Converter Block in the Block Overview and  
Base Address Table in Section 3.0, "Device Inventory".  
TABLE 30-6: REGISTER SUMMARY  
Offset  
Register Name  
ADC Control Register  
00h  
04h  
08h  
0Ch  
10h  
14h  
18h  
1Ch  
20h  
24h  
28h  
2Ch  
30h  
34h  
38h  
3Ch  
40h  
44h  
48h  
4Ch  
50h  
ADC Delay Register  
ADC Status Register  
ADC Single Register  
ADC Repeat Register  
ADC Channel 0 Reading Register  
ADC Channel 1 Reading Register  
ADC Channel 2 Reading Register  
ADC Channel 3 Reading Register  
ADC Channel 4 Reading Register  
ADC Channel 5 Reading Register  
ADC Channel 6 Reading Register  
ADC Channel 7 Reading Register  
ADC Channel 8 Reading Register  
ADC Channel 9 Reading Register  
ADC Channel 10 Reading Register  
ADC Channel 11 Reading Register  
ADC Channel 12 Reading Register  
ADC Channel 13 Reading Register  
ADC Channel 14 Reading Register  
ADC Channel 15 Reading Register  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 437  
MEC170x  
30.11.1 ADC CONTROL REGISTER  
The ADC Control Register is used to control the behavior of the Analog to Digital Converter.  
00h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:8 Reserved  
R
-
-
7 SINGLE_DONE_STATUS  
R/WC  
0h  
RESET_  
SYS  
This bit is cleared when it is written with a 1. Writing a 0 to this bit has  
no effect.  
This bit can be used to generate an EC interrupt.  
1=ADC single-sample conversion is completed. This bit is set to 1  
when all enabled channels in the single conversion cycle  
0=ADC single-sample conversion is not complete. This bit is cleared  
whenever an ADC conversion cycle begins for a single conver-  
sion cycle  
6 REPEAT_DONE_STATUS  
R/WC  
0h  
RESET_  
SYS  
This bit is cleared when it is written with a 1. Writing a 0 to this bit has  
no effect.  
This bit can be used to generate an EC interrupt.  
1=ADC repeat-sample conversion is completed. This bit is set to 1  
when all enabled channels in a repeating conversion cycle com-  
plete  
0=ADC repeat-sample conversion is not complete. This bit is cleared  
whenever an ADC conversion cycle begins for a repeating con-  
version cycle  
5 Reserved  
R
-
-
4 SOFT_RESET  
R/W  
0h  
RESET_  
SYS  
1=writing one causes a reset of the ADC block hardware (not the reg-  
isters)  
0=writing zero takes the ADC block out of reset  
3 POWER_SAVER_DIS  
R/W  
R/W  
0h  
0h  
RESET_  
SYS  
1=Power saving feature is disabled  
0=Power saving feature is enabled. The Analog to Digital Converter  
controller powers down the ADC between conversion  
sequences.  
2 START_REPEAT  
RESET_  
SYS  
1=The ADC Repeat Mode is enabled. This setting will start a conver-  
sion cycle of all ADC channels enabled by bits RPT_EN in the  
ADC Repeat Register.  
0=The ADC Repeat Mode is disabled. Note: This setting will not ter-  
minate any conversion cycle in process, but will clear the Repeat  
Timer and inhibit any further periodic conversions.  
DS00002206H-page 438  
2016-2020 Microchip Technology Inc.  
MEC170x  
00h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
1 START_SINGLE  
R/W  
0h  
RESET_  
SYS  
1=The ADC Single Mode is enabled. This setting starts a single con-  
version cycle of all ADC channels enabled by bits SINGLE_EN  
in the ADC Single Register.  
0=The ADC Single Mode is disabled.  
This bit is self-clearing  
0 ACTIVATE  
R/W  
0h  
RESET_  
SYS  
1=ADC block is enabled for operation. START_SINGLE or  
START_REPEAT can begin data conversions by the ADC. Note:  
A reset pulse is sent to the ADC core when this bit changes from  
0 to 1.  
0=The ADC is disabled and placed in its lowest power state. Note:  
Any conversion cycle in process will complete before the block is  
shut down, so that the reading registers will contain valid data but  
no new conversion cycles will begin.  
30.11.2 ADC DELAY REGISTER  
The ADC Delay register determines the delay from setting START_REPEAT in the ADC Control Register and the start  
of a conversion cycle. This register also controls the interval between conversion cycles in repeat mode.  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:16 REPEAT_DELAY  
R/W  
0000h  
RESET_  
SYS  
This field determines the interval between conversion cycles when  
START_REPEAT is 1. The delay is in units of 40s. A value of 0  
means no delay between conversion cycles, and a value of 0xFFFF  
means a delay of 2.6 seconds.  
This field has no effect when START_SINGLE is written with a 1.  
15:0 START_DELAY  
R/W  
0000h  
RESET_  
SYS  
This field determines the starting delay before a conversion cycle is  
begun when START_REPEAT is written with a 1. The delay is in  
units of 40s. A value of 0 means no delay before the start of a con-  
version cycle, and a value of 0xFFFF means a delay of 2.6 seconds.  
This field has no effect when START_SINGLE is written with a 1.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 439  
MEC170x  
30.11.3 ADC STATUS REGISTER  
The ADC Status Register indicates whether the ADC has completed a conversion cycle.  
08h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:16 Reserved  
R
-
-
15:0 ADC_CH_STATUS  
R/WC  
00h  
RESET_  
SYS  
All bits are cleared by being written with a ‘1’.  
1=conversion of the corresponding ADC channel is complete  
0=conversion of the corresponding ADC channel is not complete  
For enabled single cycles, the SINGLE_DONE_STATUS bit in the  
ADC Control Register is also set after all enabled channel conver-  
sion are done; for enabled repeat cycles, the REPEAT_DONE_STA-  
TUS in the ADC Control Register is also set after all enabled channel  
conversion are done.  
30.11.4 ADC SINGLE REGISTER  
The ADC Single Register is used to control which ADC channel is captured during a Single-Sample conversion cycle  
initiated by the START_SINGLE bit in the ADC Control Register.  
Note:  
Do not change the bits in this register in the middle of a conversion cycle to insure proper operation.  
0Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:16 Reserved  
15:0 SINGLE_EN  
R
-
-
R/W  
0h  
RESET_  
SYS  
Each bit in this field enables the corresponding ADC channel when a  
single cycle of conversions is started when the START_SINGLE bit  
in the ADC Control Register is written with a 1.  
1=single cycle conversions for this channel are enabled  
0=single cycle conversions for this channel are disabled  
30.11.5 ADC REPEAT REGISTER  
The ADC Repeat Register is used to control which ADC channels are captured during a repeat conversion cycle initiated  
by the START_REPEAT bit in the ADC Control Register.  
10h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:16  
15:0  
Reserved  
RPT_EN  
R
-
-
R/W  
00h  
RESET_  
SYS  
Each bit in this field enables the corresponding ADC channel for  
each pass of the Repeated ADC Conversion that is controlled by bit  
START_REPEAT in the ADC Control Register.  
1=repeat conversions for this channel are enabled  
0=repeat conversions for this channel are disabled  
DS00002206H-page 440  
2016-2020 Microchip Technology Inc.  
MEC170x  
30.11.6 ADC CHANNEL READING REGISTERS  
All 16 ADC channels return their results into a 32-bit reading register. In each case the low 10 bits of the reading register  
return the result of the Analog to Digital conversion and the upper 22 bits return 0. Table 30-6, "Register Summary"  
shows the addresses of all the reading registers.  
Note:  
The ADC Channel Reading Registers access require single 16, or 32 bit reads; i.e., two 8 bit reads will  
not provide data coherency.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 441  
MEC170x  
31.0 RPM-PWM INTERFACE  
31.1 Introduction  
The RPM-PWM Interface is a closed-loop RPM based Fan Control Algorithm that monitors a fan’s speed and automat-  
ically adjusts the drive to the fan in order to maintain the desired fan speed.  
The RPM-PWM Interface functionality consists of a closed-loop “set-and-forget” RPM-based fan controller.  
31.2 References  
No references have been cited for this chapter  
31.3 Terminology  
There is no terminology defined for this chapter.  
31.4 Interface  
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.  
The registers in the block are accessed by embedded controller code at the addresses shown in Section 31.9, "EC Reg-  
isters".  
FIGURE 31-1:  
RPM-PWM INTERFACE I/O DIAGRAM  
RPM-PWM Interface  
Host Interface  
Fan Control  
Power, Clocks and Reset  
Interrupts  
31.4.1  
FAN CONTROL  
The Fan Control Signal Description Table lists the signals that are routed to/from the block.  
Name  
Direction  
Description  
Tachometer input from fan  
PWM fan drive output  
GTACH  
GPWM  
Input  
Output  
31.4.2  
HOST INTERFACE  
The registers defined for the RPM-PWM Interface are accessible by the various hosts as indicated in Section 31.9, "EC  
Registers".  
DS00002206H-page 442  
2016-2020 Microchip Technology Inc.  
MEC170x  
31.5 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
31.5.1  
POWER DOMAINS  
Name  
Description  
VTR  
This power well sources the registers and logic in this block.  
31.5.2  
CLOCK INPUTS  
Name  
Description  
48MHz  
32KHz  
This clock signal drives selected logic (e.g., counters).  
This clock signal drives selected logic (e.g., counters).  
31.5.3  
RESETS  
Name  
Description  
RESET_SYS  
This reset signal resets all of the registers and logic in this block.  
31.6 Interrupts  
This section defines the Interrupt Sources generated from this block.  
Source  
Description  
FAN_FAIL  
The DRIVE_FAIL & FAN_SPIN bits in the Fan Status Register are logi-  
cally ORed and routed to the FAIL_SPIN Interrupt  
FAN_STALL  
The FAN_STALL bit in the Fan Status Register is routed to the  
FAN_STALL Interrupt  
31.7 Low Power Modes  
The RPM-PWM Interface may be put into a low power state by the chip’s Power, Clocks, and Reset (PCR) circuitry.  
31.8 Description  
This section defines the functionality of the block.  
31.8.1  
GENERAL OPERATION  
The RPM-PWM Interface is an RPM based Fan Control Algorithm that monitors the fan’s speed and automatically  
adjusts the drive to maintain the desired fan speed. This RPM based Fan Control Algorithm controls a PWM output  
based on a tachometer input.  
31.8.2  
FAN CONTROL MODES OF OPERATION  
The RPM-PWM Interface has two modes of operation for the PWM Fan Driver. They are:  
1. Manual Mode - in this mode of operation, the user directly controls the fan drive setting. Updating the Fan Driver  
Setting Register (see Section 31.9.1, "Fan Setting Register") will update the fan drive based on the programmed  
ramp rate (default disabled).  
• The Manual Mode is enabled by clearing the EN_ALGO bit in the Fan Configuration Register (see Section 31.9.2,  
"Fan Configuration Register").  
• Whenever the Manual Mode is enabled the current drive settings will be changed to what was last used by the  
RPM control algorithm.  
• Setting the drive value to 00h will disable the PWM Fan Driver.  
• Changing the drive value from 00h will invoke the Spin Up Routine.  
2. Using RPM based Fan Control Algorithm - in this mode of operation, the user determines a target tachometer  
reading and the drive setting is automatically updated to achieve this target speed.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 443  
MEC170x  
Manual Mode  
Algorithm  
Fan Driver Setting (read / write)  
Fan Driver Setting (read only)  
EDGES[1:0] (Fan Configuration)  
UPDATE[2:0] (Fan configuration)  
LEVEL (Spin Up Configuration)  
SPINUP_TIME[1:0] (Spin Up Configuration)  
Fan Step  
EDGES[1:0] (Fan Configuration)  
UPDATE[2:0] (Fan configuration)  
LEVEL (Spin Up Configuration)  
SPINUP_TIME[1:0] (Spin Up Configuration)  
Fan Step  
-
Fan Minimum Drive  
Valid TACH Count  
Valid TACH Count  
-
TACH Target  
TACH Reading  
TACH Reading  
RANGE[2:0] (Fan Configuration 2)  
-
RANGE[2:0] (Fan Configuration 2)  
DRIVE_FAIL_CNT[2:0] (Spin Up Config) and  
Drive Fail Band  
31.8.3  
RPM BASED FAN CONTROL ALGORITHM  
The RPM-PWM Interface includes an RPM based Fan Control Algorithm.  
The fan control algorithm uses Proportional, Integral, and Derivative terms to automatically approach and maintain the  
system’s desired fan speed to an accuracy directly proportional to the accuracy of the clock source. Figure 31-2, "RPM  
based Fan Control Algorithm" shows a simple flow diagram of the RPM based Fan Control Algorithm operation.  
The desired tachometer count is set by the user inputting the desired number of 32.768KHz cycles that occur per fan  
revolution. The user may change the target count at any time. The user may also set the target count to FFh in order to  
disable the fan driver.  
For example, if a desired RPM rate for a 2-pole fan is 3000 RPMs, the user would input the hexadecimal equivalent of  
1312d (52_00h in the TACH Target Registers). This number represents the number of 32.768KHz cycles that would  
occur during the time it takes the fan to complete a single revolution when it is spinning at 3000RPMs (see Section  
31.9.10, "TACH Target Register" and Section 31.9.11, "TACH Reading Register").  
The RPM-PWM Interface’s RPM based Fan Control Algorithm has programmable configuration settings for parameters  
such as ramp-rate control and spin up conditions. The fan driver automatically detects and attempts to alleviate a  
stalled/stuck fan condition while also asserting the interrupt signal. The RPM-PWM Interface works with fans that oper-  
ate up to 16,000 RPMs and provide a valid tachometer signal.  
DS00002206H-page 444  
2016-2020 Microchip Technology Inc.  
MEC170x  
FIGURE 31-2:  
RPM BASED FAN CONTROL ALGORITHM  
Set TACH Target  
Count  
Measure Fan Speed  
Spin Up  
Required  
?
Yes  
Perform Spin Up  
Routine  
No  
TACH  
Reading=  
TACH  
Yes  
Maintain Fan Drive  
Target?  
No  
Ramp Rate Control  
TACH  
Reading <  
TACH  
Yes  
No  
Target?  
Reduce Fan Drive  
Increase Fan Drive  
31.8.3.1  
Programming the RPM Based Fan Control Algorithm  
The RPM based Fan Control Algorithm powers-up disabled. The following registers control the algorithm. The RPM-  
PWM Interface fan control registers are pre-loaded with defaults that will work for a wide variety of fans so only the TACH  
Target Register is required to set a fan speed. The other fan control registers can be used to fine-tune the algorithm  
behavior based on application requirements.  
1. Set the Valid TACH Count Register to the minimum tachometer count that indicates the fan is spinning.  
2. Set the Spin Up Configuration Register to the spin up level and Spin Time desired.  
3. Set the Fan Step Register to the desired step size.  
4. Set the Fan Minimum Drive Register to the minimum drive value that will maintain fan operation.  
5. Set the Update Time, and Edges options in the Fan Configuration Register.  
6. Set the TACH Target Register to the desired tachometer count.  
7. Enable the RPM based Fan Control Algorithm by setting the EN_ALGO bit.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 445  
MEC170x  
31.8.3.2  
Tachometer Measurement  
In both modes of operation, the tachometer measurement operates independently of the mode of operation of the fan  
driver and RPM based Fan Speed Control algorithm. Any tachometer reading that is higher than the Valid TACH Count  
(see Section 31.9.8, "Valid TACH Count Register") will flag a stalled fan and trigger an interrupt.  
When measuring the tachometer, the fan must provide a valid tachometer signal at all times to ensure proper operation.  
The tachometer measurement circuitry is programmable to detect the fan speed of a variety of fan configurations and  
architectures including 1-pole, 2-pole (default), 3-pole, and 4-pole fans.  
Note:  
The tachometer measurement works independently of the drive settings. If the device is put into manual  
mode and the fan drive is set at a level that is lower than the fan can operate (including zero drive), the  
tachometer measurement may signal a Stalled Fan condition and assert an interrupt.  
STALLED FAN  
If the TACH Reading Register exceeds the user-programmable Valid TACH Count setting, it will flag the fan as stalled  
and trigger an interrupt. If the RPM based Fan Control Algorithm is enabled, the algorithm will automatically attempt to  
restart the fan until it detects a valid tachometer level or is disabled.  
The FAN_STALL Status bit indicates that a stalled fan was detected. This bit is checked conditionally depending on the  
mode of operation.  
• Whenever the Manual Mode is enabled or whenever the drive value is changed from 00h, the FAN_STALL inter-  
rupt will be masked for the duration of the programmed Spin Up Time (see Section 31.9.5, "Fan Spin Up Configu-  
ration Register") to allow the fan an opportunity to reach a valid speed without generating unnecessary interrupts.  
• In Manual Mode, whenever the TACH Reading Register exceeds the Valid TACH Count Register setting, the  
FAN_STALL status bit will be set.  
• When the RPM based Fan Control Algorithm, the stalled fan condition is checked whenever the Update Time is  
met and the fan drive setting is updated. It is not a continuous check.  
31.8.3.3  
Spin Up Routine  
The RPM-PWM Interface also contains programmable circuitry to control the spin up behavior of the fan driver to ensure  
proper fan operation. The Spin Up Routine is initiated under the following conditions:  
• The TACH Target High Byte Register value changes from a value of FFh to a value that is less than the Valid  
TACH Count (see Section 31.9.8, "Valid TACH Count Register").  
• The RPM based Fan Control Algorithm’s measured tachometer reading is greater than the Valid TACH Count.  
• When in Manual Mode, the Drive Setting changes from a value of 00h.  
When the Spin Up Routine is operating, the fan driver is set to full scale for one quarter of the total user defined spin up  
time. For the remaining spin up time, the fan driver output is set a a user defined level (30% to 65% drive).  
After the Spin Up Routine has finished, the RPM-PWM Interface measures the tachometer. If the measured tachometer  
reading is higher than the Valid TACH Count Register setting, the FAN_SPIN status bit is set and the Spin Up Routine  
will automatically attempt to restart the fan.  
Note:  
When the device is operating in manual mode, the FAN_SPIN status bit may be set if the fan drive is set  
at a level that is lower than the fan can operate (excluding zero drive which disables the fan driver). If the  
FAN_SPIN interrupt is unmasked, this condition will trigger an errant interrupt.  
Figure 31-3, "Spin Up Routine" shows an example of the Spin Up Routine in response to a programmed fan speed  
change based on the first condition above.  
DS00002206H-page 446  
2016-2020 Microchip Technology Inc.  
MEC170x  
FIGURE 31-3:  
SPIN UP ROUTINE  
100%  
(optional)  
30% through65%  
Fan Step  
New Target Count  
Algorithm controlled drive  
Prev Target  
Count = FFh  
¼ of Spin Up Time  
Update Time  
Spin Up Time  
Target Count  
Changed  
Check TACH  
Target Count  
Reached  
31.8.4  
PWM DRIVER  
The RPM-PWM Interface contains an optional, programmable 10-bit PWM driver which can serve as part of the RPM  
based Fan Speed Control Algorithm or in Manual Mode.  
When enabled, the PWM driver can operate in four programmable frequency bands. The lower frequency bands offer  
frequencies in the range of 9.5Hz to 4.8kHz while the higher frequency options offer frequencies of 21Hz or 25.2kHz.  
The highest frequency available, 25.2KHz, operates in 8-bit resolution. All other PWM frequencies operate in 10-bit res-  
olution.  
31.8.5  
FAN SETTING  
The Fan Setting Registers are used to control the output of the Fan Driver. The driver setting operates independently  
of the Polarity bit for the PWM output. That is, a setting of 0000h will mean that the fan drive is at minimum drive while  
a value of FFC0h will mean that the fan drive is at maximum drive.  
If the Spin Up Routine is invoked, reading from the registers will return the current fan drive setting that is being used  
by the Spin Up Routine instead of what was previously written into these registers.  
The Fan Driver Setting Registers, when the RPM based Fan Control Algorithm is enabled, are read only. Writing to the  
register will have no effect and the data will not be stored. Reading from the register will always return the current fan  
drive setting.  
If the INT_PWRGD pin is de-asserted, the Fan Driver Setting Register will be made read only. Writing to the register will  
have no effect and reading from the register will return 0000h.  
When the RPM based Fan Control Algorithm is disabled, the current fan drive setting that was last used by the algorithm  
is retained and will be used.  
If the Fan Driver Setting Register is set to a value of 0000h, all tachometer related status bits will be masked until the  
setting is changed. Likewise, the FAN_SHORT bit will be cleared and masked until the setting is changed.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 447  
MEC170x  
The contents of the register represent the weighting of each bit in determining the final duty cycle. The output drive for  
a PWM output is given by the following equation:  
- Drive = (FAN_SETTING VALUE/1023) x 100%.  
The PWM Divide Register determines the final PWM frequency. The base frequency set by the PWM_BASE[1:0] bits is  
divided by the decimal equivalent of the register settings.  
The final PWM frequency is derived as the base frequency divided by the value of this register as shown in the equation  
below:  
- PWM_Frequency = base_clk / PWM_D  
Where:  
- base_clk = The base frequency set by the PWMx_CFG[1:0] bits  
- PWM_D = the divide setting set by the PWM Divide Register.  
31.8.6  
ALERTS AND LIMITS  
Figure 31-4, "Interrupt Flow" shows the interactions of the interrupts for fan events.  
If the Fan Driver detects a drive fail, spin-up or stall event, the interrupt signal will be asserted (if enabled).  
All of these interrupts can be masked from asserting the interrupt signal individually. If any bit of either Status register is  
set, the interrupt signal will be asserted provided that the corresponding interrupt enable bit is set accordingly.  
The Status register will be updated due to an active event, regardless of the setting of the individual enable bits. Once  
a status bit has been set, it will remain set until the Status register bit is written to 1 (and the error condition has been  
removed).  
If the interrupt signal is asserted, it will be cleared immediately if either the status or enable bit is cleared.  
See Section 31.6, "Interrupts".  
FIGURE 31-4:  
INTERRUPT FLOW  
Interrupt  
Status Bit 1  
Interrupt Event1  
.
.
.
Interrupt  
Enable Bit 1  
.
.
.
.
.
.
Interrupt Signal  
.
.
.
Interrupt  
Status Bit n  
Interrupt Event n  
Interrupt  
Enable Bit n  
DS00002206H-page 448  
2016-2020 Microchip Technology Inc.  
MEC170x  
31.9 EC 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 each instance of the RPM-PWM Interface Block in the Block Overview and Base  
Address Table in Section 3.0, "Device Inventory".  
TABLE 31-1: REGISTER SUMMARY  
Offset  
Register Name  
00h  
02h  
04h  
05h  
06h  
07h  
08h  
09h  
0Ah  
0Ch  
0Eh  
10h  
11h  
Fan Setting  
Fan Configuration Register  
PWM Divide Register  
Gain Register  
Fan Spin Up Configuration Register  
Fan Step Register  
Fan Minimum Drive Register  
Valid TACH Count Register  
Fan Drive Fail Band Register  
TACH Target Register  
TACH Reading Register  
PWM Driver Base Frequency Register  
Fan Status Register  
31.9.1  
FAN SETTING REGISTER  
00h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
15:6 FAN_SETTING  
The Fan Driver Setting used to control the output of the Fan Driver.  
R/W  
00h  
RESET  
_SYS  
5:0 Reserved  
R
-
-
2016-2020 Microchip Technology Inc.  
DS00002206H-page 449  
MEC170x  
31.9.2  
FAN CONFIGURATION REGISTER  
02h  
Offset  
Reset  
Event  
Bits  
Description  
Type  
Default  
15 EN_RRC  
R/W  
0b  
RESET  
_SYS  
Enables the ramp rate control circuitry during the Manual Mode of  
operation.  
1=The ramp rate control circuitry for the Manual Mode of operation  
is enabled. The PWM setting will follow the ramp rate controls  
as determined by the Fan Step and Update Time settings. The  
maximum PWM step is capped at the Fan Step setting and is  
updated based on the Update Time as given by the field  
UPDATE.  
0=The ramp rate control circuitry for the Manual Mode of operation  
is disabled. When the Fan Drive Setting values are changed  
and the RPM based Fan Control Algorithm is disabled, the fan  
driver will be set to the new setting immediately.  
14 DIS_GLITCH  
R/W  
0b  
RESET  
_SYS  
Disables the low pass glitch filter that removes high frequency  
noise injected on the TACH pin.  
1=The glitch filter is disabled  
0=The glitch filter is enabled  
13:12 DER_OPT  
R/W  
R/W  
3h  
1h  
RESET  
_SYS  
Control some of the advanced options that affect the derivative  
portion of the RPM based fan control algorithm as shown in  
Table 31-3, "Derivative Options". These bits only apply if the Fan  
Speed Control Algorithm is used.  
11:10 ERR_RNG  
RESET  
_SYS  
Control some of the advanced options that affect the error window.  
When the measured fan speed is within the programmed error win-  
dow around the target speed, the fan drive setting is not updated.  
These bits only apply if the Fan Speed Control Algorithm is used.  
3=200 RPM  
2=100 RPM  
1=50 RPM  
0=0 RPM  
9
POLARITY  
R/W  
0h  
RESET  
_SYS  
Determines the polarity of the PWM driver. This does NOT affect  
the drive setting registers. A setting of 0% drive will still correspond  
to 0% drive independent of the polarity.  
1=The Polarity of the PWM driver is inverted. A drive setting of 00h  
will cause the output to be set at 100% duty cycle and a drive  
setting of FFh will cause the output to be set at 0% duty cycle.  
0=The Polarity of the PWM driver is normal. A drive setting of 00h  
will cause the output to be set at 0% duty cycle and a drive set-  
ting of FFh will cause the output to be set at 100% duty cycle.  
DS00002206H-page 450  
2016-2020 Microchip Technology Inc.  
MEC170x  
02h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
8
7
Reserved  
R
-
-
EN_ALGO  
R/W  
0b  
RESET  
_SYS  
Enables the RPM based Fan Control Algorithm.  
1=The control circuitry is enabled and the Fan Driver output will be  
automatically updated to maintain the programmed fan speed  
as indicated by the TACH Target Register.  
0=The control circuitry is disabled and the fan driver output is deter-  
mined by the Fan Driver Setting Register.  
6:5 RANGE  
Adjusts the range of reported and programmed tachometer reading  
R/W  
1h  
RESET  
_SYS  
values. The RANGE bits determine the weighting of all TACH val-  
ues (including the Valid TACH Count, TACH Target, and TACH  
reading).  
3=Reported Minimum RPM: 4000. Tach Count Multiplier: 8  
2=Reported Minimum RPM: 2000. Tach Count Multiplier: 4  
1=Reported Minimum RPM: 1000. Tach Count Multiplier: 2  
0=Reported Minimum RPM: 500. Tach Count Multiplier: 1  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 451  
MEC170x  
02h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
4:3 EDGES  
R/W  
1h  
RESET  
_SYS  
Determines the minimum number of edges that must be detected  
on the TACH signal to determine a single rotation. A typical fan  
measured 5 edges (for a 2-pole fan).  
Increasing the number of edges measured with respect to the num-  
ber of poles of the fan will cause the TACH Reading registers to  
indicate a fan speed that is higher or lower than the actual speed.  
In order for the FSC Algorithm to operate correctly, the TACH Tar-  
get must be updated by the user to accommodate this shift. The  
Effective Tach Multiplier shown in Table 31-2, "Minimum Edges for  
Fan Rotation" is used as a direct multiplier term that is applied to  
the Actual RPM to achieve the Reported RPM. It should only be  
applied if the number of edges measured does not match the num-  
ber of edges expected based on the number of poles of the fan  
(which is fixed for any given fan).  
Contact Microchip for recommended settings when using fans with  
more or less than 2 poles.  
2:0 UPDATE  
R/W  
3h  
RESET  
_SYS  
Determines the base time between fan driver updates. The Update  
Time, along with the Fan Step Register, is used to control the ramp  
rate of the drive response to provide a cleaner transition of the  
actual fan operation as the desired fan speed changes.  
7=1600ms  
6=1200ms  
5=800ms  
4=500ms  
3=400ms  
2=300ms  
1=200ms  
0=100ms  
Note:  
This ramp rate control applies for all changes to the  
active PWM output including when the RPM based Fan  
Speed Control Algorithm is disabled.  
TABLE 31-2: MINIMUM EDGES FOR FAN ROTATION  
Effective TACH Multiplier  
(Based on 2 Pole Fans)  
If Edges Changed  
Edges  
Minimum TACH Edges  
Number of Fan Poles  
0h  
1h  
2h  
3h  
3
5
7
9
1
0.5  
1
2 (default)  
3
4
1.5  
2
DS00002206H-page 452  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 31-3: DERIVATIVE OPTIONS  
Note  
DER_OPT  
Operation  
No derivative options used  
(see Section 31.9.6, "Fan Step Register")  
0
PWM steps are limited to the maximum PWM  
drive step value in Fan Step Register  
1
2
Basic derivative. The derivative of the error from PWM steps are limited to the maximum PWM  
the current drive setting and the target is added drive step value in Fan Step Register  
to the iterative PWM drive setting (in addition to  
proportional and integral terms)  
Step derivative. The derivative of the error from PWM steps are not limited to the maximum  
the current drive setting and the target is added PWM drive step value in Fan Step Register  
to the iterative PWM drive setting and is not  
capped by the maximum PWM drive step. This  
allows for very fast response times  
(i.e., maximum fan step setting is ignored)  
3
Both the basic derivative and the step derivative PWM steps are not limited to the maximum  
are used effectively causing the derivative term PWM drive step value in Fan Step Register  
to have double the effect of the derivative term (i.e., maximum fan step setting is ignored)  
(default).  
31.9.3  
PWM DIVIDE REGISTER  
04h  
Offset  
Reset  
Event  
Bits  
7:0 PWM_DIVIDE  
Description  
Type  
Default  
R/W  
01h  
RESET  
_SYS  
The PWM Divide value determines the final frequency of the PWM  
driver. The driver base frequency is divided by the PWM Divide  
value to determine the final frequency.  
31.9.4  
GAIN REGISTER  
The Gain Register stores the gain terms used by the proportional and integral portions of the RPM based Fan Control  
Algorithm. These terms will affect the FSC closed loop acquisition, overshoot, and settling as would be expected in a  
classic PID system.  
This register only applies if the Fan Speed Control Algorithm is used.  
05h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:6 Reserved  
5:4 GAIND  
R
-
-
R/W  
2h  
RESET  
_SYS  
The derivative gain term.  
Gain Factor:  
3=8x  
2=4x  
1=2x  
0=1x  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 453  
MEC170x  
05h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
3:2 GAINI  
The integral gain term.  
R/W  
2h  
RESET  
_SYS  
Gain Factor:  
3=8x  
2=4x  
1=2x  
0=1x  
1:0 GAINP  
R/W  
2h  
RESET  
_SYS  
The proportional gain term.  
Gain Factor:  
3=8x  
2=4x  
1=2x  
0=1x  
31.9.5  
FAN SPIN UP CONFIGURATION REGISTER  
06h  
Offset  
Reset  
Event  
Bits  
Description  
Type  
Default  
7:6 DRIVE_FAIL_CNT  
R/W  
00b  
RESET  
_SYS  
Determines how many update cycles are used for the Drive Fail  
detection function. This circuitry determines whether the fan can be  
driven to the desired Tach target. These settings only apply if the  
Fan Speed Control Algorithm is enabled.  
3=Drive Fail detection circuitry will count for 64 update periods  
2=Drive Fail detection circuitry will count for 32 update periods  
1=Drive Fail detection circuitry will count for 16 update periods  
0=Drive Fail detection circuitry is disabled  
5
NOKICK  
R/W  
0b  
RESET  
_SYS  
Determines if the Spin Up Routine will drive the fan to 100% duty  
cycle for 1/4 of the programmed spin up time before driving it at the  
programmed level.  
1=The Spin Up Routine will not drive the PWM to 100%. It will set  
the drive at the programmed spin level for the entire duration of  
the programmed spin up time  
0=The Spin Up Routine will drive the PWM to 100% for 1/4 of the  
programmed spin up time before reverting to the programmed  
spin level  
DS00002206H-page 454  
2016-2020 Microchip Technology Inc.  
MEC170x  
06h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
4:2 SPIN_LVL  
R/W  
6h  
RESET  
_SYS  
Determines the final drive level that is used by the Spin Up Rou-  
tine.  
7=65%  
6=60%  
5=55%  
4=50%  
3=45%  
2=40%  
1=35%  
0=30%  
1:0 SPINUP_TIME  
R/W  
1h  
RESET  
_SYS  
Determines the maximum Spin Time that the Spin Up Routine will  
run for. If a valid tachometer measurement is not detected before  
the Spin Time has elapsed, an interrupt will be generated. When  
the RPM based Fan Control Algorithm is active, the fan driver will  
attempt to re-start the fan immediately after the end of the last spin  
up attempt.  
3=2 seconds  
2=1 second  
1=500 ms  
0=250 ms  
31.9.6  
FAN STEP REGISTER  
The Fan Step Register, along with the Update Time, controls the ramp rate of the fan driver response calculated by the  
RPM based Fan Control Algorithm for the Derivative Options field values of “00” and “01” in the Fan Configuration Reg-  
ister.  
The value of the register represents the maximum step size the fan driver will take for each update.  
When the maximum step size limitation is applied, if the necessary fan driver delta is larger than the Fan Step, it will be  
capped at the Fan Step setting and updated every Update Time ms.  
The maximum step size is ignored for the Derivative Options field values of “10” and “11”.  
07h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 FAN_STEP  
R/W  
10h  
RESET  
_SYS  
The Fan Step value represents the maximum step size the fan  
driver will take between update times.  
When the PWM_BASE frequency range field in the PWM Driver  
Base Frequency Register is set to the value 1, 2 or 3, this 8-bit field  
is added to the 10-bit PWM duty cycle, for a maximum step size of  
25%. When the PWM_BASE field is set to 0, the PWM operates in  
an 8-bit mode. In 8-bit mode, this 8-bit field is added to the 8-bit  
duty cycle, for a maximum step size of 100%.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 455  
MEC170x  
31.9.7  
FAN MINIMUM DRIVE REGISTER  
the Fan Minimum Drive Register stores the minimum drive setting for the RPM based Fan Control Algorithm. The RPM  
based Fan Control Algorithm will not drive the fan at a level lower than the minimum drive unless the target Fan Speed  
is set at FFh (see "TACH Target Registers").  
During normal operation, if the fan stops for any reason (including low drive), the RPM based Fan Control Algorithm will  
attempt to restart the fan. Setting the Fan Minimum Drive Registers to a setting that will maintain fan operation is a useful  
way to avoid potential fan oscillations as the control circuitry attempts to drive it at a level that cannot support fan oper-  
ation.  
These registers only apply if the Fan Speed Control Algorithm is used.  
08h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 MIN_DRIVE  
The minimum drive setting.  
R/W  
66h  
RESET  
_SYS  
Note:  
To ensure proper operation, the Fan Minimum Drive register must be set prior to setting the Tach Target  
High and Low Byte registers, and then the Tach Target registers can be subsequently updated. At a later  
time, if the Fan Minimum Drive register is changed to a value higher than current Fan value, the Tach Target  
registers must also be updated.  
31.9.8  
VALID TACH COUNT REGISTER  
The Valid TACH Count Register stores the maximum TACH Reading Register value to indicate that the fan is spinning  
properly. The value is referenced at the end of the Spin Up Routine to determine if the fan has started operating and  
decide if the device needs to retry. See the equation in the TACH Reading Registers section for translating the RPM to  
a count.  
If the TACH Reading Register value exceeds the Valid TACH Count Register (indicating that the Fan RPM is below the  
threshold set by this count), a stalled fan is detected. In this condition, the algorithm will automatically begin its Spin Up  
Routine.  
Note:  
The automatic invoking of the Spin Up Routine only applies if the Fan Speed Control Algorithm is used. If  
the FSC is disabled, then the device will only invoke the Spin Up Routine when the PWM setting changes  
from 00h.  
If a TACH Target setting is set above the Valid TACH Count setting, that setting will be ignored and the algorithm will  
use the current fan drive setting.  
These registers only apply if the Fan Speed Control Algorithm is used.  
09h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 VALID_TACH_CNT  
R/W  
F5h  
RESET  
_SYS  
The maximum TACH Reading Register value to indicate that the  
fan is spinning properly.  
DS00002206H-page 456  
2016-2020 Microchip Technology Inc.  
MEC170x  
31.9.9  
FAN DRIVE FAIL BAND REGISTER  
The Fan Drive Fail Band Registers store the number of Tach counts used by the Fan Drive Fail detection circuitry. This  
circuitry is activated when the fan drive setting high byte is at FFh. When it is enabled, the actual measured fan speed  
is compared against the target fan speed.  
This circuitry is used to indicate that the target fan speed at full drive is higher than the fan is actually capable of reaching.  
If the measured fan speed does not exceed the target fan speed minus the Fan Drive Fail Band Register settings for a  
period of time longer than set by the DRIVE_FAIL_CNTx[1:0] bits in the Fan Spin Up Configuration Register, the  
DRIVE_FAIL status bit will be set and an interrupt generated.  
These registers only apply if the Fan Speed Control Algorithm is used.  
0Ah  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
15:3 FAN_DRIVE_FAIL_BAND  
R
0h  
RESET  
_SYS  
The number of Tach counts used by the Fan Drive Fail detection  
circuitry  
2:0 Reserved  
R
-
-
31.9.10 TACH TARGET REGISTER  
The TACH Target Registers hold the target tachometer value that is maintained for the RPM based Fan Control Algo-  
rithm.  
If the algorithm is enabled, setting the TACH Target Register High Byte to FFh will disable the fan driver (or set the PWM  
duty cycle to 0%). Setting the TACH Target to any other value (from a setting of FFh) will cause the algorithm to invoke  
the Spin Up Routine after which it will function normally.  
These registers only apply if the Fan Speed Control Algorithm is used.  
0Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
15:3 TACH_TARGET  
The target tachometer value.  
R
-
RESET  
_SYS  
2:0 Reserved  
R
-
-
2016-2020 Microchip Technology Inc.  
DS00002206H-page 457  
MEC170x  
31.9.11 TACH READING REGISTER  
The TACH Reading Registers’ contents describe the current tachometer reading for the fan. By default, the data rep-  
resents the fan speed as the number of 32.768kHz clock periods that occur for a single revolution of the fan.  
The Equation below shows the detailed conversion from tachometer measurement (COUNT) to RPM.  
1
n – 1  
-------------- -------------------------------  
RPM =  
f  
60  
TACH  
Poles  
1
---  
COUNT   
m
where:  
- Poles = number of poles of the fan (typically 2)  
- fTACH = the frequency of the tachometer measurement clock  
- n = number of edges measured (typically 5 for a 2 pole fan)  
- m = the multiplier defined by the RANGE bits  
- COUNT = TACH Reading Register value (in decimal)  
The following equation shows the simplified translation of the TACH Reading Register count to RPM assuming a 2-pole  
fan, measuring 5 edges, with a frequency of 32.768kHz.  
3932160 m  
COUNT  
-------------------------------  
RPM=  
0Eh  
Offset  
Reset  
Event  
Bits  
Description  
Type  
Default  
15:3 TACH_READING  
The current tachometer reading value.  
R
-
RESET  
_SYS  
2:0 Reserved  
R
-
-
31.9.12 PWM DRIVER BASE FREQUENCY REGISTER  
10h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:2 Reserved  
R
-
-
1:0 PWM_BASE  
R/W  
00b  
RESET  
_SYS  
Determines the frequency range of the PWM fan driver (when  
enabled). PWM resolution is 10-bit, except when this field is set to  
‘0b’, when it is 8-bit.  
3=2.34KHz  
2=4.67KHz  
1=23.4KHz  
0=26.8KHz  
DS00002206H-page 458  
2016-2020 Microchip Technology Inc.  
MEC170x  
31.9.13 FAN STATUS REGISTER  
11h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
7:6 Reserved  
DRIVE_FAIL  
R
-
-
5
R/WC  
0b  
RESET  
_SYS  
The bit Indicates that the RPM-based Fan Speed Control Algorithm  
cannot drive the Fan to the desired target setting at maximum  
drive.  
1=The RPM-based Fan Speed Control Algorithm cannot drive Fan  
to the desired target setting at maximum drive.  
0=The RPM-based Fan Speed Control Algorithm can drive Fan to  
the desired target setting.  
4:2 Reserved  
R
-
-
1
FAN_SPIN  
R/WC  
0b  
RESET  
_SYS  
The bit Indicates that the Spin up Routine for the Fan could not  
detect a valid tachometer reading within its maximum time window.  
1=The Spin up Routine for the Fan could not detect a valid tachom-  
eter reading within its maximum time window.  
0=The Spin up Routine for the Fan detected a valid tachometer  
reading within its maximum time window.  
0
FAN_STALL  
R/WC  
0b  
RESET  
_SYS  
The bit Indicates that the tachometer measurement on the Fan  
detects a stalled fan.  
1=Stalled fan not detected  
0=Stalled fan not detected  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 459  
MEC170x  
32.0 EEPROM  
32.1 Overview  
The MEC170x includes a 2K x 8bit EEPROM (Electrically Erasable Programmable Read Only Memory).  
32.2 References  
No references have been cited for this feature.  
32.3 Terminology  
There is no terminology defined for this section.  
32.4 Interface  
FIGURE 32-1:  
I/O DIAGRAM OF BLOCK  
EEPROM  
Host Interface  
Signal Description  
Power, Clocks and Reset  
Interrupts  
32.5 Signal Description  
There are no external signals for this block.  
32.6 Host Interface  
The EEPROM interface is accessed by host software via a registered interface, as defined in Section 32.12, "EC Reg-  
isters".  
DS00002206H-page 460  
2016-2020 Microchip Technology Inc.  
MEC170x  
32.7 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
32.7.1  
POWER DOMAINS  
Name  
Description  
VTR  
The logic and registers implemented in this block are powered by this  
power well.  
32.7.2  
32.7.3  
CLOCK INPUTS  
Name  
Description  
48MHz  
This is the clock source for EEPROM logic.  
RESETS  
Name  
Description  
RESET_SYS  
This signal resets all the registers and logic in this block to their default  
state.  
RESET_EEPROM  
This signal resets most of the registers and logic in this block to their  
default state. It is asserted either on a RESET_SYS is asserted, or when  
the SOFT_RESET bit in the EEPROM Mode Register is written with a  
‘1b’.  
32.8 Interrupts  
Source  
Description  
EEPROM  
EEPROM transfer completed.  
32.9 Low Power Modes  
The EEPROM Controller enters its lowest power state whenever it is not busy (the TRANSFER_ACTIVE bit in the  
EEPROM Status Register is 0).  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 461  
MEC170x  
32.10 Description  
TABLE 32-1: EEPROM BLOCK DIAGRAM  
Data  
In  
HOST  
SPB  
Addr  
Data Out  
EEPROM  
EEPROM Registers  
Addr  
strobes  
Data  
Command  
Status  
EEPROM  
State  
Machine  
Config  
Unlock  
32.11 EEPROM Operation  
The EEPROM consists of a 2K array of bytes, organized into 32-byte pages. Data are transfered to and from the  
EEPROM array to a register buffer in transfers of 1 to 32 bytes at a time. Reads can start at any byte address in the  
array and will transfer the quantity from the EEPROM array to the buffer. Writes can start at any byte address but cannot  
cross 32 byte page boundaries.  
A read transfer of 1 byte from the EEPROM fabric to the buffer takes approximately 7µS. A transfer of 32 bytes takes  
an additional 50µS.  
A write transfer of 1 byte to 32 bytes to the EEPROM fabric from the buffer takes approximately 5ms.  
32.11.1 ENDURANCE  
Each 32-byte page can be written up to 1,000,000 times before the page’s ability to retain data is compromised.  
32.11.2 EEPROM INITIALIZATION  
Data in offsets 7FCh to 7FFh from the EEPROM Memory Block are examined a boot. If bit 31 is a ‘1,’ the 31 least sig-  
nificant bits of the data are written to the EEPROM Unlock Register and the LOCK bit in the EEPROM Lock Register is  
set to ‘1b’ and the EEPROM Memory Block becomes inaccessible.  
32.11.3 PASSWORD USE  
Offset 7FCh is the last 32-bit word in the EEPROM memory block. If bit 31 is a ‘0’ in that word, then the location can  
be treated as EEPROM data that stores only positive integers in the range 0 to 2 billion (or so). If bit 31 is a ‘1’ then  
the word contains a password that can be used to unlock the EEPROM memory block.  
DS00002206H-page 462  
2016-2020 Microchip Technology Inc.  
MEC170x  
To keep the EEPROM memory block secure, and to insure that the EC firmware is authorized to read its contents, EC  
firmware can use this password. The following code can be executed as part of the EC’s initialization code:  
int password;  
#define SECRET_PASSWORD 0xXXXXXXXX  
#define Unlock_register 0x40002C14 // address of key register  
password = eeprom_read(0x7FC);  
if( password == 0xFFFFFFFF )  
{
// EEPROM is unlocked and the key not yet installed  
// establish key and force a reboot  
eeprom_write(0x7FF, SECRET_PASSWORD);  
force_reset();  
} else {  
// unlock the EEPROM  
*Unlock_register = SECRET_PASSWORD;  
}
The subroutines force_reset() forces a system reset, using, for example, the watchdog timer. If the EC firmware knows  
the right password, it can unblock the EEPROM memory block; if it does not, then the block will remain inaccessible.  
The code can run in the Boot Block so that the SECRET_PASSWORD (a constant in the code) cannot be read via JTAG  
or over the LPC bus, and thus can only be known to a valid EC firmware block.  
32.11.4 STATUS BYTE  
The READ STATUS and WRITE STATUS commands affect the Status Byte. The Status Byte can be used to control  
write-protection in the EEPROM fabric, as well as providing a mechanism for reporting on status of the EEPROM fab-  
ric.The Status Byte is non-volatile and retains its value even after a RESET_SYS system reset.  
The byte is defined as follows:  
Bits  
Description  
Type  
7:4 Reserved  
R
3:2 WRITE_PROTECT  
R/W  
Write protection of the EEPROM fabric.  
3=The entire EEPROM fabric is write protected (read only)  
2=The upper half (byte offsets 0400h to 07FFh) of the EEPROM fabric is write pro-  
tected  
1=The upper quarter (byte offsets 0600h to 07FFh) of the EEPROM fabric is write  
protected  
0=The entire EEPROM fabric is writable  
1
0
WRITE_ENABLE  
R
R
In normal use, this bit is always 0. Write enable of the EEPROM fabric is handled  
automatically.  
WRITE_IN_PROGRESS  
1=The EEPROM fabric is processing a write  
0=The EEPROM fabric is idle  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 463  
MEC170x  
32.12 EC 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 each instance of the EEPROM Block in the Block Overview and Base Address Table  
in Section 3.0, "Device Inventory".  
TABLE 32-2: EC-ONLY REGISTER SUMMARY  
EC Offset  
Register Name  
00h  
04h  
08h  
0Ch  
10h  
14h  
18h  
1Ch  
20h  
EEPROM Mode Register  
EEPROM Execute Register  
EEPROM Status Register  
EEPROM Interrupt Enable Register  
EEPROM Password Register  
EEPROM Unlock Register  
EEPROM Lock Register  
TEST  
EEPROM Buffer Register  
32.12.1 EEPROM MODE REGISTER  
00h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:2 Reserved  
R
-
-
-
1
SOFT_RESET  
W
RESET  
_EE-  
PROM  
This 8-bit register holds the data to be written into the EEPROM  
memory array during a program cycle, as well as the data returned  
from an EEPROM read during a read cycle. It should be set up  
before the EEPROM Execute Register is configured.  
0
ACTIVATE  
R/W  
0h  
RESET  
_EE-  
PROM  
This 8-bit register holds the data to be written into the EEPROM  
memory array during a program cycle, as well as the data returned  
from an EEPROM read during a read cycle. It should be set up  
before the EEPROM Execute Register is configured.  
1=The EEPROM controller is enabled  
0=The EEPROM controller is disabled and placed in its lowest  
power state  
DS00002206H-page 464  
2016-2020 Microchip Technology Inc.  
MEC170x  
32.12.2 EEPROM EXECUTE REGISTER  
04h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
31:29 Reserved  
R
-
-
28:24 TRANSFER_SIZE  
R/W  
0h  
RESET  
_EE-  
PROM  
The number of bytes to be transfered between the EEPROM fabric  
and the buffer. A count of 0 is means a transfer of 32 bytes.  
This field is only applicable for WRITE and READ commands.  
23:19 Reserved  
18:16 COMMAND  
A write to this register automatically starts an EEPROM transfer  
R
-
-
R/W  
0h  
RESET  
_EE-  
PROM  
between the fabric and the buffer  
3=WRITE STATUS  
2=READ STATUS  
1=WRITE  
0=READ  
15:0 EEPROM_ADRESS  
R/W  
0h  
RESET  
_EE-  
PROM  
This register represents a byte address in the EEPROM.  
Bits[15:11] should be 0, but there is error flagged if they are not.  
This field only applies to READ and WRITE commands. It does not  
apply to READ STATUS and WRITE STATUS commands.  
32.12.3 EEPROM STATUS REGISTER  
08h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:9 Reserved  
TRANSFER_ACTIVE  
R
R
-
-
8
0h  
RESET  
_EE-  
PROM  
A transfer between the EEPROM fabric and the EEPROM Buffer  
Register is in progress  
6:3 Reserved  
R
-
-
2016-2020 Microchip Technology Inc.  
DS00002206H-page 465  
MEC170x  
08h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
1
EXECUTION_ERROR  
R/WC  
0h  
RESET  
_EE-  
PROM  
This bit is set to ‘1b’ if an illegal command has been programmed  
into the block. A command is illegal if:  
• The EEPROM Execute Register is written while a previous  
command has not yet completed (that is, while TRANS-  
FER_ACTIVE is ‘1b’)  
• An illegal value was written into the COMMAND field  
0
TRANSFER_COMPLETE  
R/WC  
0h  
RESET  
_EE-  
PROM  
1=The transfer between the EEPROM fabric and the EEPROM Buf-  
fer Register has completed  
0=The transfer between the EEPROM fabric and the EEPROM Buf-  
fer Register has not yet completed  
32.12.4 EEPROM INTERRUPT ENABLE REGISTER  
0Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:2 Reserved  
R
-
-
1
EXECUTION_ERROR_IE  
R/W  
0h  
RESET  
_SYS  
Assert an EEPROM interrupt when the EXECUTION_ERROR sta-  
tus is asserted.  
1=Enable Interrupt  
0=Disable Interrupt  
0
TRANSFER_COMPLETE_IE  
R/W  
0h  
RESET  
_SYS  
Assert an EEPROM interrupt when the TRANSFER_COMPLETE  
status is asserted.  
1=Enable Interrupt  
0=Disable Interrupt  
DS00002206H-page 466  
2016-2020 Microchip Technology Inc.  
MEC170x  
32.12.5 EEPROM PASSWORD REGISTER  
10h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
31 Reserved  
R
-
-
30:0 EEPROM_PASSWORD  
W
0h  
RESET  
_SYS  
This register stores a key that can be used to unlock the EEPROM  
controller if it is locked.  
This register is write-once only. Once written, it can be neither read  
nor written until the next system reset.  
32.12.6 EEPROM UNLOCK REGISTER  
14h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31 Reserved  
R
-
-
30:0 EEPROM_UNLOCK  
W
0h  
RESET  
_SYS  
When this 31-bit register is written, the least significant 31 bits of  
the write are compared to the EEPROM Password Register that  
stores the key. If all bits match, the LOCK bit in the EEPROM  
Lock Register cleared, and the EEPROM array can be read or writ-  
ten.  
This register is write only.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 467  
MEC170x  
32.12.7 EEPROM LOCK REGISTER  
18h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:2 Reserved  
1 LOCK  
R
-
-
R/W  
0h  
RESET  
_SYS  
EEPROM Access Lock. When this bit is set to ‘1b’, the EEPROM is  
locked from all accesses, including reads, writes and status que-  
ries. Once set to ‘1b’ it can only be cleared to ‘0b’ by a  
RESET_SYS or by writing the EEPROM Unlock Register with a  
value that matches the contents of the EEPROM Password Regis-  
ter.  
1=EEPROM is locked and cannot be accessed  
0=EEPROM is unlocked and may be accessed  
0
JTAG_LOCK  
R/W  
0h  
RESET  
_SYS  
If this bit is set to ‘1b’ the LOCK bit is set to ‘1b’ whenever the  
JTAG/SWD test interface is activated. This has priority over the  
EEPROM Unlock Register register, so that writing the EEPROM  
Unlock Register register with a value that matches the EEPROM  
Password Register if JTAG/SWD is active at the time.  
1=The LOCK bit is set to ‘1b’ whenever the JTAG/SWD test inter-  
face is activated  
0=The JTAG/SWD test interface has no effect on the LOCK bit  
32.12.8 EEPROM BUFFER REGISTER  
20h to 3Fh  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
BUFFER  
R/W  
0h  
RESET  
_SYS  
Data buffer of 32 bytes used to transfer data to and from the  
EEPROM fabric. For WRITES, it must be written before the WRITE  
command is started.  
For READ STATUS and WRITE STATUS commands, only the first  
byte (offset 0 in this register) is used.  
DS00002206H-page 468  
2016-2020 Microchip Technology Inc.  
MEC170x  
33.0 BLINKING/BREATHING PWM  
33.1 Introduction  
LEDs are used in computer applications to communicate internal state information to a user through a minimal interface.  
Typical applications will cause an LED to blink at different rates to convey different state information. For example, an  
LED could be full on, full off, blinking at a rate of once a second, or blinking at a rate of once every four seconds, in order  
to communicate four different states.  
As an alternative to blinking, an LED can “breathe”, that is, oscillate between a bright state and a dim state in a contin-  
uous, or apparently continuous manner. The rate of breathing, or the level of brightness at the extremes of the oscillation  
period, can be used to convey state information to the user that may be more informative, or at least more novel, than  
traditional blinking.  
The blinking/breathing hardware is implemented using a PWM. The PWM can be driven either by the Main system clock  
or by a 32.768 KHz clock input. When driven by the Main system clock, the PWM can be used as a standard 8-bit PWM  
in order to control a fan. When used to drive blinking or breathing LEDs, the 32.768 KHz clock source is used.  
Features:  
• Each PWM independently configurable  
• Each PWM configurable for LED blinking and breathing output  
• Highly configurable breathing rate from 60ms to 1min  
• Non-linear brightness curves approximated with 8 piece wise-linear segments  
• All LED PWMs can be synchronized  
• Each PWM configurable for 8-bit PWM support  
• Multiple clock rates  
• Configurable Watchdog Timer  
33.2 Interface  
This block is designed to drive a pin on the pin interface and to be accessed internally via a registered host interface.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 469  
MEC170x  
FIGURE 33-1:  
I/O DIAGRAM OF BLOCK  
Blinking/Breathing PWM  
Host Interface  
Signal Description  
Clock Inputs  
Resets  
Interrupts  
33.3 Signal Description  
Name  
Direction  
Description  
PWM Output  
Output  
Output of PWM  
By default, the PWM pin is configured to be active high: when the  
PWM is configured to be fully on, the pin is driving high. When the  
PWM is configured to be fully off, the pin is low. If firmware requires  
the Blinking/Breathing PWM to be active low, the Polarity bit in the  
GPIO Pin Control Register associated with the PWM can be set to  
1, which inverts the output polarity.  
33.4 Host Interface  
The blinking/breathing PWM block is accessed by a controller over the standard register interface.  
33.5 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
33.5.1  
POWER DOMAINS  
Name  
Description  
VTR  
Main power. The source of main power for the device is system depen-  
dent.  
DS00002206H-page 470  
2016-2020 Microchip Technology Inc.  
MEC170x  
33.5.2  
33.5.3  
CLOCK INPUTS  
Name  
Description  
Description  
32KHz  
48MHz  
32.768 KHz clock  
Main system clock  
RESETS  
Name  
RESET_SYS  
Block reset  
33.6 Interrupts  
Each PWM can generate an interrupt. The interrupt is asserted for one Main system clock period whenever the PWM  
WDT times out. The PWM WDT is described in Section 33.8.3.1, "PWM WDT".  
Source  
Description  
PWM_WDT  
PWM watchdog time out  
33.7 Low Power Mode  
The Blinking/Breathing PWM may be put into a low power mode by the chip-level power, clocks, and reset (PCR)  
circuitry. The low power mode is only applicable when the Blinking/Breathing PWM is operating in the General Pur-  
pose PWM mode. When the low speed clock mode is selected, the blinking/breathing function continues to operate,  
even when the 48MHz is stopped. Low power mode behavior is summarized in the following table:  
TABLE 33-1: LOW POWER MODE BEHAVIOR  
CLOCK_S  
OURCE  
Low Power  
Mode  
CONTROL  
Mode  
Description  
X
X
1
‘00’b  
‘01’b  
‘10’b  
PWM ‘OFF’  
Breathing  
Yes  
Yes  
No  
32.768 KHz clock is  
required.  
General Purpose PWM  
Main system clock is  
required, even when a  
sleep command to the  
block is asserted.  
0
‘10’b  
‘11’b  
Blinking  
Yes  
Yes  
32.768 KHz clock is  
required.  
X
PWM ‘ON’  
Note:  
In order for the MEC170x to enter its.Heavy Sleep state, the SLEEP_ENABLE input for all Blinking/Breath-  
ing PWM instances must be asserted, even if the PWMs are configured to use the low speed clock.  
33.8 Description  
33.8.1 BREATHING  
If an LED blinks rapidly enough, the eye will interpret the light as reduced brightness, rather than a blinking pattern.  
Therefore, if the blinking period is short enough, modifying the duty cycle will set the apparent brightness, rather than a  
blinking rate. At a blinking rate of 128Hz or greater, almost all people will perceive a continuous light source rather than  
an intermittent pattern.  
Because making an LED appear to breathe is an aesthetic effect, the breathing mechanism must be adjustable or cus-  
tomers may find the breathing effect unattractive. There are several variables that can affect breathing appearance, as  
described below.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 471  
MEC170x  
The following figure illustrates some of the variables in breathing:  
FIGURE 33-2:  
BREATHING LED EXAMPLE  
Full on  
Max Duty Cycle  
Min Duty Cycle  
Full off  
RISING RAMP TIME  
FALLING RAMP TIME  
The breathing range of and LED can range between full on and full off, or in a range that falls within the full-on/full-off  
range, as shown in this figure. The ramp time can be different in different applications. For example, if the ramp time  
was 1 second, the LED would appear to breathe quickly. A time of 2 seconds would make the LED appear to breathe  
more leisurely.  
The breathing pattern can be clipped, as shown in the following figure, so that the breathing effect appears to pause at  
its maximum and minimum brightnesses:  
FIGURE 33-3:  
CLIPPING EXAMPLE  
Full on  
Max Duty Cycle  
Min Duty Cycle  
Full off  
The clipping periods at the two extremes can be adjusted independently, so that for example an LED can appear to  
breathe (with a short delay at maximum brightness) followed by a longer “resting” period (with a long delay at minimum  
brightness).  
DS00002206H-page 472  
2016-2020 Microchip Technology Inc.  
MEC170x  
The brightness can also be changed in a non-linear fashion, as shown in the following figure:  
FIGURE 33-4:  
EXAMPLE OF A SEGMENTED CURVE  
Full on  
Full off  
In this figure, the rise and fall curves are implemented in 4 linear segments and are the rise and fall periods are sym-  
metric.  
The breathing mode uses the 32.768 KHz clock for its time base.  
33.8.2  
BLINKING  
When configured for blinking, a subset of the hardware used in breathing is used to implement the blinking function. The  
PWM (an 8-bit accumulator plus an 8-bit duty cycle register) drives the LED directly. The Duty Cycle register is pro-  
grammed directly by the user, and not modified further. The PWM accumulator is configured as a simple 8-bit up counter.  
The counter uses the 32.768 KHz clock, and is pre-scaled by the Delay counter, to slow the PWM down from the 128Hz  
provided by directly running the PWM on the 32.768 KHz clock.  
With the pre-scaler, the blink rate of the LED could be as fast as 128Hz (which, because it is blinking faster than the eye  
can distinguish, would appear as a continuous level) to 0.03125Hz (that is, with a period of 7.8ms to 32 seconds). Any  
duty cycle from 0% (0h) to 100% (FFh) can be configured, with an 8-bit precision. An LED with a duty cycle value of 0h  
will be fully off, while an LED with a duty cycle value of FFh will be fully on.  
In Blinking mode the PWM counter is always in 8-bit mode.  
Table 33-2, "LED Blink Configuration Examples" shows some example blinking configurations:  
TABLE 33-2: LED BLINK CONFIGURATION EXAMPLES  
Blink  
Prescale  
Duty Cycle  
Blink  
Frequency  
000h  
000h  
001h  
003h  
07Fh  
0BFh  
0FFh  
180h  
1FFh  
00h  
FFh  
40h  
80h  
20h  
16h  
10h  
0Bh  
40h  
128Hz  
128Hz  
64Hz  
full off  
full on  
3.9ms on, 11.5ms off  
15.5ms on, 15.5ms off  
125ms on, 0.875s off  
125ms on, 1.375s off  
125ms on, 1.875s off  
129ms on, 2.875s off  
1s on, 3s off  
32Hz  
1Hz  
0.66Hz  
0.5Hz  
0.33Hz  
0.25Hz  
The Blinking and General Purpose PWM modes share the hardware used in the breathing mode. The Prescale value  
is derived from the LD field of the LED_DELAY register and the Duty Cycle is derived from the MIN field of the LED_LIM-  
ITS register.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 473  
MEC170x  
TABLE 33-3: BLINKING MODE CALCULATIONS  
Parameter  
Frequency  
Unit  
Equation  
Hz  
(32KHz frequency) /(PRESCALE + 1)/256  
(1/Frequency) x (DutyCycle/256)  
‘H’ Width  
‘L’ Width  
Seconds  
Seconds  
(1/Frequency) x ((1-DutyCycle)/256)  
33.8.3  
GENERAL PURPOSE PWM  
When used in the Blinking configuration with the 48MHz, the LED module can be used as a general-purpose program-  
mable Pulse-Width Modulator with an 8-bit programmable pulse width. It can be used for fan speed control, sound vol-  
ume, etc. With the 48MHz source, the PWM frequency can be configured in the range shown in Table 33-4.  
TABLE 33-4: PWM CONFIGURATION EXAMPLES  
Prescale  
PWM Frequency  
000h  
001h  
003h  
006h  
00Bh  
07Fh  
1FFh  
FFFh  
187.5 KHz  
94 KHz  
47 KHz  
26.8 KHz  
15.625 KHz  
1.46 KHz  
366 Hz  
46 Hz  
TABLE 33-5: GENERAL PURPOSE PWM MODE CALCULATIONS  
Parameter  
Frequency  
Unit  
Equation  
Hz  
(48MHz frequency) / (PRESCALE + 1) / 256  
(1/Frequency) x (DutyCycle/256)  
‘H’ Width  
‘L’ Width  
Seconds  
Seconds  
(1/Frequency) x (256 - DutyCycle)  
33.8.3.1  
PWM WDT  
When the PWM is configured as a general-purpose PWM (in the Blinking configuration with the Main system clock), the  
PWM includes a Watch Dog Timer (WDT). The WDT consists of an internal 8-bit counter and an 8-bit reload value (the  
field WDTLD in LED Configuration Register register). The internal counter is loaded with the reset value of WDTLD (14h,  
or 4 seconds) on system RESET_SYS and loaded with the contents of WDTLD whenever either the LED Configuration  
Register register is written or the MIN byte in the LED Limits Register register is written (the MIN byte controls the duty  
cycle of the PWM).  
Whenever the internal counter is non-zero, it is decremented by 1 for every tick of the 5 Hz clock. If the counter decre-  
ments from 1 to 0, a WDT Terminal Count causes an interrupt to be generated and reset sets the CONTROL bit in the  
LED Configuration Register to 3h, which forces the PWM to be full on. No other PWM registers or fields are affected.  
If the 5 Hz clock halts, the watchdog timer stops decrementing but retains its value, provided the device continues to be  
powered. When the 5 Hz clock restarts, the watchdog counter will continue decrementing where it left off.  
Setting the WDTLD bits to 0 disables the PWM WDT. Other sample values for WDTLD are:  
01h = 200 ms  
02h = 400 ms  
03h = 600 ms  
04h = 800 ms  
14h = 4seconds  
FFh = 51 seconds  
DS00002206H-page 474  
2016-2020 Microchip Technology Inc.  
MEC170x  
33.9 Implementation  
In addition to the registers described in Section 33.10, "EC Registers", the PWM is implemented using a number of com-  
ponents that are interconnected differently when configured for breathing operation and when configured for blink-  
ing/PWM operation.  
33.9.1  
BREATHING CONFIGURATION  
The PSIZE parameter can configure the PWM to one of three modes: 8-bit, 7-bit and 6-bit. The PERIOD CTR counts  
ticks of its input clock. In 8-bit mode, it counts from 0 to 255 (that is, 256 steps), then repeats continuously. In this mode,  
a full cycle takes 7.8ms (128Hz). In 7-bit mode it counts from 0 to 127 (128 steps), and a full cycle takes 3.9ms (256Hz).  
In 6-bit mode it counts from 0 to 63 (64 steps) and a full cycle takes 1.95ms (512Hz).  
The output of the LED circuit is asserted whenever the PERIOD CTR is less than the contents of the DUTY CYCLE  
register. The appearance of breathing is created by modifying the contents of the DUTY CYCLE register in a continuous  
manner. When the LED control is off the internal counters and registers are all reset to 0 (i.e. after a write setting the  
RESET bit in the LED Configuration Register Register.) Once enabled, the DUTY CYCLE register is increased by an  
amount determined by the LED_STEP register and at a rate determined by the DELAY counter. Once the duty cycle  
reaches its maximum value (determined by the field MAX), the duty cycle is held constant for a period determined by  
the field HD. Once the hold time is complete, the DUTY CYCLE register is decreased, again by an amount determined  
by the LED_STEP register and at a rate determined by the DELAY counter. When the duty cycle then falls at or below  
the minimum value (determined by the field MIN), the duty cycle is held constant for a period determined by the field  
HD. Once the hold time is complete, the cycle repeats, with the duty cycle oscillating between MIN and MAX.  
The rising and falling ramp times as shown in Figure 33-2, "Breathing LED Example" can be either symmetric or asym-  
metric depending on the setting of the SYMMETRY bit in the LED Configuration Register Register. In Symmetric mode  
the rising and falling ramp rates have mirror symmetry; both rising and falling ramp rates use the same (all) 8 segments  
fields in each of the following registers (see Table 33-6): the LED Update Stepsize Register register and the LED Update  
Interval Register register. In Asymmetric mode the rising ramp rate uses 4 of the 8 segments fields and the falling ramp  
rate uses the remaining 4 of the 8 segments fields (see Table 33-6).  
The parameters MIN, MAX, HD, LD and the 8 fields in LED_STEP and LED_INT determine the brightness range of the  
LED and the rate at which its brightness changes. See the descriptions of the fields in Section 33.10, "EC Registers",  
as well as the examples in Section 33.9.3, "Breathing Examples" for information on how to set these fields.  
TABLE 33-6:  
SYMMETRIC BREATHING MODE REGISTER USAGE  
Rising/ Falling  
Ramp Times  
in Figure 33-3,  
Duty Cycle  
Segment Index  
Symmetric Mode Register Fields Utilized  
"Clipping Example"  
X
X
X
X
X
X
X
X
000xxxxxb  
001xxxxxb  
010xxxxxb  
011xxxxxb  
100xxxxxb  
101xxxxxb  
110xxxxxb  
111xxxxxb  
000b  
001b  
010b  
011b  
100b  
101b  
110b  
111b  
STEP[0]/INT[0]  
STEP[1]/INT[1]  
STEP[2]/INT[2]  
STEP[3]/INT[3]  
STEP[4]/INT[4]  
STEP[5]/INT[5]  
STEP[6]/INT[6]  
STEP[7]/INT[7]  
Bits[3:0]  
Bits[7:4]  
Bits[11:8]  
Bits[15:12]  
Bits[19:16]  
Bits[23:20]  
Bits[27:24]  
Bits[31:28]  
Note:  
In Symmetric Mode the Segment_Index[2:0] = Duty Cycle Bits[7:5]  
TABLE 33-7:  
ASYMMETRIC BREATHING MODE REGISTER USAGE  
Rising/ Falling  
Ramp Times  
in Figure 33-3,  
Duty Cycle  
Segment Index  
Asymmetric Mode Register Fields Utilized  
"Clipping Example"  
Rising  
Rising  
Rising  
00xxxxxxb  
01xxxxxxb  
10xxxxxxb  
000b  
001b  
010b  
STEP[0]/INT[0]  
STEP[1]/INT[1]  
STEP[2]/INT[2]  
Bits[3:0]  
Bits[7:4]  
Bits[11:8]  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 475  
MEC170x  
TABLE 33-7:  
ASYMMETRIC BREATHING MODE REGISTER USAGE (CONTINUED)  
Rising/ Falling  
Ramp Times  
in Figure 33-3,  
Duty Cycle  
Segment Index  
Asymmetric Mode Register Fields Utilized  
"Clipping Example"  
Rising  
falling  
falling  
falling  
falling  
11xxxxxxb  
00xxxxxxb  
01xxxxxxb  
10xxxxxxb  
11xxxxxxb  
011b  
100b  
101b  
110b  
111b  
STEP[3]/INT[3]  
STEP[4]/INT[4]  
STEP[5]/INT[5]  
STEP[6]/INT[6]  
STEP[7]/INT[7]  
Bits[15:12]  
Bits[19:16]  
Bits[23:20]  
Bits[27:24]  
Bits[31:28]  
Note:  
In Asymmetric Mode the Segment_Index[2:0] is the bit concatenation of following: Segment_Index[2] =  
(FALLING RAMP TIME in Figure 33-3, "Clipping Example") and Segment_Index[1:0] = Duty Cycle Bits[7:6].  
33.9.2  
BLINKING CONFIGURATION  
The Delay counter and the PWM counter are the same as in the breathing configuration, except in this configuration  
they are connected differently. The Delay counter is clocked on either the 32.768 KHz clock or the Main system clock,  
rather than the output of the PWM. The PWM counter is clocked by the zero output of the Delay counter, which functions  
as a prescalar for the input clocks to the PWM. The Delay counter is reloaded from the LD field of the LED_DELAY  
register. When the LD field is 0 the input clock is passed directly to the PWM counter without prescaling. In Blink-  
ing/PWM mode the PWM counter is always 8-bit, and the PSIZE parameter has no effect.  
The frequency of the PWM pulse waveform is determined by the formula:  
fclock  
-----------------------------------------  
=
fPWM  
256  LD + 1  
where fPWM is the frequency of the PWM, fclock is the frequency of the input clock (32.768 KHz clock or Main system  
clock) and LD is the contents of the LD field.  
Note:  
At a duty cycle value of 00h (in the MIN register), the LED output is fully off. At a duty cycle value of 255h,  
the LED output is fully on. Alternatively, In order to force the LED to be fully on, firmware can set the CON-  
TROL field of the Configuration register to 3 (always on).  
The other registers in the block do not affect the PWM or the LED output in Blinking/PWM mode.  
33.9.3  
BREATHING EXAMPLES  
33.9.3.1  
Linear LED brightness change  
In this example, the brightness of the LED increases and diminishes in a linear fashion. The entire cycle takes 5 sec-  
onds. The rise time and fall time are 1.6 seconds, with a hold time at maximum brightness of 200ms and a hold time at  
minimum brightness of 1.6 seconds. The LED brightness varies between full off and full on. The PWM size is set to 8-  
bit, so the time unit for adjusting the PWM is approximately 8ms. The registers are configured as follows:  
TABLE 33-8: LINEAR EXAMPLE CONFIGURATION  
Field  
Value  
PSIZE  
MAX  
MIN  
HD  
8-bit  
255  
0
25 ticks (200ms)  
200 ticks (1.6s)  
LD  
Duty cycle most  
significant bits  
000b  
001b  
010b  
011b  
100b  
101b  
110b  
1110  
LED_INT  
8
8
8
8
8
8
8
8
LED_STEP  
10  
10  
10  
10  
10  
10  
10  
10  
DS00002206H-page 476  
2016-2020 Microchip Technology Inc.  
MEC170x  
FIGURE 33-5:  
LINEAR BRIGHTNESS CURVE EXAMPLE  
300  
250  
200  
e
l
c
y
C
150  
100  
50  
y
t
u
D
0
0
8
2
3
6
5
6
4
8
9
2
1
3
1
0
4
6
1
8
6
9
1
6
9
2
2
4
2
6
2
2
5
9
2
0
8
2
3
8
0
6
3
6
3
9
3
4
6
2
4
2
9
5
4
0
2
9
4
8
4
2
5
6
7
5
5
4
0
9
5
2
3
2
6
0
6
5
6
8
8
8
6
6
1
2
7
4
4
5
7
2
7
8
7
0
0
2
8
8
2
5
8
6
5
8
8
4
8
1
9
2
1
5
9
0
4
8
9
8
6
1
0
1
6
9
4
0
1
4
2
8
0
1
2
5
1
1
1
Time in ms  
33.9.3.2  
Non-linear LED brightness change  
In this example, the brightness of the LED increases and diminishes in a non-linear fashion. The brightness forms a  
curve that is approximated by four piece wise-linear line segments. The entire cycle takes about 2.8 seconds. The rise  
time and fall time are about 1 second, with a hold time at maximum brightness of 320ms and a hold time at minimum  
brightness of 400ms. The LED brightness varies between full off and full on. The PWM size is set to 7-bit, so the time  
unit for adjusting the PWM is approximately 4ms. The registers are configured as follows:  
TABLE 33-9: NON-LINEAR EXAMPLE CONFIGURATION  
Field  
Value  
PSIZE  
MAX  
MIN  
HD  
7-bit  
255 (effectively 127)  
0
80 ticks (320ms)  
100 ticks (400ms)  
LD  
Duty cycle most  
significant bits  
000b  
001b  
010b  
011b  
100b  
101b  
110b  
1110  
LED_INT  
2
4
3
4
6
4
6
4
9
4
9
4
16  
4
16  
4
LED_STEP  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 477  
MEC170x  
The resulting curve is shown in the following figure:  
FIGURE 33-6:  
NON-LINEAR BRIGHTNESS CURVE EXAMPLE  
300  
250  
200  
e
l
c
y
C
150  
100  
50  
y
t
u
D
0
0
4
6
1
8
2
3
2
9
4
6
5
6
0
2
8
4
8
9
8
4
1
1
2
1
3
1
6
7
4
1
0
4
6
1
4
0
8
1
8
6
9
1
2
3
1
2
6
9
2
2
0
6
4
2
4
2
6
2
8
8
7
2
2
5
9
2
6
1
1
3
0
8
2
3
4
4
4
3
8
0
6
3
2
7
7
3
6
3
9
3
0
0
1
4
4
6
2
4
8
2
4
4
2
9
5
4
6
5
7
4
0
2
9
4
4
8
0
5
8
4
2
5
2
1
4
5
6
7
5
5
Time in ms  
33.10 EC 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 each instance of the Blinking/Breathing PWM Block in the Block Overview and Base  
Address Table in Section 3.0, "Device Inventory".  
TABLE 33-10: REGISTER SUMMARY  
Offset  
Register Name  
LED Configuration Register  
00h  
04h  
08h  
0Ch  
10h  
14h  
LED Limits Register  
LED Delay Register  
LED Update Stepsize Register  
LED Update Interval Register  
LED Output Delay  
In the following register definitions, a “PWM period” is defined by time the PWM counter goes from 000h to its maximum  
value (FFh in 8-bit mode, FEh in 7-bit mode and FCh in 6-bit mode, as defined by the PSCALE field in register  
LED_CFG). The end of a PWM period occurs when the PWM counter wraps from its maximum value to 0.  
The registers in this block can be written 32-bits, 16-bits or 8-bits at a time. Writes to LED Configuration Register take  
effect immediately. Writes to LED Limits Register are held in a holding register and only take effect only at the end of a  
PWM period. The update takes place at the end of every period, even if only one byte of the register was updated. This  
means that in blink/PWM mode, software can change the duty cycle with a single 8-bit write to the MIN field in the  
LED_LIMIT register. Writes to LED Delay Register, LED Update Stepsize Register and LED Update Interval Register  
also go initially into a holding register. The holding registers are copied to the operating registers at the end of a PWM  
period only if the Enable Update bit in the LED Configuration Register is set to 1. If LED_CFG is 0, data in the holding  
registers is retained but not copied to the operating registers when the PWM period expires. To change an LED breath-  
DS00002206H-page 478  
2016-2020 Microchip Technology Inc.  
MEC170x  
ing configuration, software should write these three registers with the desired values and then set LED_CFG to 1. This  
mechanism ensures that all parameters affecting LED breathing will be updated consistently, even if the registers are  
only written 8 bits at a time.  
33.10.1 LED CONFIGURATION REGISTER  
00h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:16 Reserved  
16 SYMMETRY  
R
-
-
R/W  
0b  
RESET_  
SYS  
1=The rising and falling ramp times are in Asymmetric mode.  
Table 33-7, "Asymmetric Breathing Mode Register Usage" shows  
the application of the Stepsize and Interval registers to the four  
segments of rising duty cycles and the four segments of falling  
duty cycles.  
0=The rising and falling ramp times (as shown in Figure 33-2, "Breath-  
ing LED Example") are in Symmetric mode. Table 33-6, "Sym-  
metric Breathing Mode Register Usage" shows the application of  
the Stepsize and Interval registers to the 8 segments of both ris-  
ing and falling duty cycles.  
15:8 WDT_RELOAD  
R/W  
W
14h  
0b  
RESET_  
SYS  
The PWM Watchdog Timer counter reload value. On system reset, it  
defaults to 14h, which corresponds to a 4 second Watchdog timeout  
value.  
7 RESET  
RESET_  
SYS  
Writes of’1’ to this bit resets the PWM registers to their default val-  
ues. This bit is self clearing.  
Writes of ‘0’ to this bit have no effect.  
6 ENABLE_UPDATE  
R/WS  
0b  
RESET_  
SYS  
This bit is set to 1 when written with a ‘1’. Writes of ‘0’ have no effect.  
Hardware clears this bit to 0 when the breathing configuration regis-  
ters are updated at the end of a PWM period. The current state of the  
bit is readable any time.  
This bit is used to enable consistent configuration of LED_DELAY,  
LED_STEP and LED_INT. As long as this bit is 0, data written to  
those three registers is retained in a holding register. When this bit is  
1, data in the holding register are copied to the operating registers at  
the end of a PWM period. When the copy completes, hardware  
clears this bit to 0.  
5:4 PWM_SIZE  
R/W  
0b  
RESET_  
SYS  
This bit controls the behavior of PWM:  
3=Reserved  
2=PWM is configured as a 6-bit PWM  
1=PWM is configured as a 7-bit PWM  
0=PWM is configured as an 8-bit PWM  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 479  
MEC170x  
00h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
3 SYNCHRONIZE  
R/W  
0b  
RESET_  
SYS  
When this bit is ‘1’, all counters for all LEDs are reset to their initial  
values. When this bit is ‘0’ in the LED Configuration Register for all  
LEDs, then all counters for LEDs that are configured to blink or  
breathe will increment or decrement, as required.  
To synchronize blinking or breathing, the SYNCHRONIZE bit should  
be set for at least one LED, the control registers for each LED should  
be set to their required values, then the SYNCHRONIZE bits should  
all be cleared. If the all LEDs are set for the same blink period, they  
will all be synchronized.  
2 CLOCK_SOURCE  
R/W  
R/W  
0b  
RESET_  
SYS  
This bit controls the base clock for the PWM. It is only valid when  
CNTRL is set to blink (2).  
1=Clock source is the Main system clock  
0=Clock source is the 32.768 KHz clock  
1:0 CONTROL  
This bit controls the behavior of PWM:  
00b  
11b  
RESET_  
SYS  
WDT TC  
3=PWM is always on  
2=LED blinking (standard PWM)  
1=LED breathing configuration  
0=PWM is always off. All internal registers and counters are reset to  
0. Clocks are gated  
33.10.2 LED LIMITS REGISTER  
This register may be written at any time. Values written into the register are held in an holding register, which is trans-  
ferred into the actual register at the end of a PWM period. The two byte fields may be written independently. Reads of  
this register return the current contents and not the value of the holding register.  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:16 Reserved  
15:8 MAXIMUM  
R
-
-
R/W  
0h  
RESET_  
SYS  
In breathing mode, when the current duty cycle is greater than or  
equal to this value the breathing apparatus holds the current duty  
cycle for the period specified by the field HD in register LED_DELAY,  
then starts decrementing the current duty cycle  
7:0 MINIMUM  
R/W  
0h  
RESET_  
SYS  
In breathing mode, when the current duty cycle is less than or equal  
to this value the breathing apparatus holds the current duty cycle for  
the period specified by the field LD in register LED_DELAY, then  
starts incrementing the current duty cycle  
In blinking mode, this field defines the duty cycle of the blink function.  
DS00002206H-page 480  
2016-2020 Microchip Technology Inc.  
MEC170x  
33.10.3 LED DELAY REGISTER  
This register may be written at any time. Values written into the register are held in an holding register, which is trans-  
ferred into the actual register at the end of a PWM period if the Enable Update bit in the LED Configuration register is  
set to 1. Reads of this register return the current contents and not the value of the holding register.  
08h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:24 Reserved  
R
-
-
23:12 HIGH_DELAY  
R/W  
000h  
RESET_  
SYS  
In breathing mode, the number of PWM periods to wait before updat-  
ing the current duty cycle when the current duty cycle is greater than  
or equal to the value MAX in register LED_LIMIT.  
4095=The current duty cycle is decremented after 4096 PWM periods  
1=The delay counter is bypassed and the current duty cycle is decre-  
mented after two PWM period  
0=The delay counter is bypassed and the current duty cycle is decre-  
mented after one PWM period  
11:0 LOW_DELAY  
R/W  
000h  
RESET_  
SYS  
The number of PWM periods to wait before updating the current duty  
cycle when the current duty cycle is greater than or equal to the value  
MIN in register LED_LIMIT.  
4095=The current duty cycle is incremented after 4096 PWM periods  
0=The delay counter is bypassed and the current duty cycle is incre-  
mented after one PWM period  
In blinking mode, this field defines the prescalar for the PWM clock  
33.10.4 LED UPDATE STEPSIZE REGISTER  
This register has eight segment fields which provide the amount the current duty cycle is adjusted at the end of every  
PWM period. Segment field selection is decoded based on the segment index. The segment index equation utilized  
depends on the SYMMETRY bit in the LED Configuration Register Register)  
In Symmetric Mode the Segment_Index[2:0] = Duty Cycle Bits[7:5]  
In Asymmetric Mode the Segment_Index[2:0] is the bit concatenation of following: Segment_Index[2] = (FALLING  
RAMP TIME in Figure 33-3, "Clipping Example") and Segment_Index[1:0] = Duty Cycle Bits[7:6].  
This register may be written at any time. Values written into the register are held in an holding register, which is trans-  
ferred into the actual register at the end of a PWM period if the Enable Update bit in the LED Configuration register is  
set to 1. Reads of this register return the current contents and not the value of the holding register.  
In 8-bit mode, each 4-bit STEPSIZE field represents 16 possible duty cycle modifications, from 1 to 16 as the duty cycle  
is modified between 0 and 255:  
15: Modify the duty cycle by 16  
...  
1: Modify the duty cycle by 2  
0=Modify the duty cycle by 1  
In 7-bit mode, the least significant bit of the 4-bit field is ignored, so each field represents 8 possible duty cycle modifi-  
cations, from 1 to 8, as the duty cycle is modified between 0 and 127:  
14, 15: Modify the duty cycle by 8  
...  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 481  
MEC170x  
2, 3: Modify the duty cycle by 2  
0, 1: Modify the duty cycle by 1  
In 6-bit mode, the two least significant bits of the 4-bit field is ignored, so each field represents 4 possible duty cycle  
modifications, from 1 to 4 as the duty cycle is modified between 0 and 63:  
12, 13, 14, 15: Modify the duty cycle by 4  
8, 9, 10, 11: Modify the duty cycle by 3  
4, 5, 6, 7: Modify the duty cycle by 2  
0, 1, 2, 3: Modify the duty cycle by 1  
0Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:28 UPDATE_STEP7  
R/W  
0h  
RESET_  
SYS  
Amount the current duty cycle is adjusted at the end of every PWM  
period when the segment index is equal to 111.  
27:24 UPDATE_STEP6  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
0h  
0h  
0h  
0h  
0h  
0h  
0h  
RESET_  
SYS  
Amount the current duty cycle is adjusted at the end of every PWM  
period when the segment index is equal to 110.  
23:20 UPDATE_STEP5  
RESET_  
SYS  
Amount the current duty cycle is adjusted at the end of every PWM  
period when the segment index is equal to 101  
19:16 UPDATE_STEP4  
RESET_  
SYS  
Amount the current duty cycle is adjusted at the end of every PWM  
period when the segment index is equal to 100.  
15:12 UPDATE_STEP3  
RESET_  
SYS  
Amount the current duty cycle is adjusted at the end of every PWM  
period when the segment index is equal to 011.  
11:8 UPDATE_STEP2  
RESET_  
SYS  
Amount the current duty cycle is adjusted at the end of every PWM  
period when the segment index is equal to 010.  
7:4 UPDATE_STEP1  
RESET_  
SYS  
Amount the current duty cycle is adjusted at the end of every PWM  
period when the segment index is equal to 001.  
3:0 UPDATE_STEP0  
RESET_  
SYS  
Amount the current duty cycle is adjusted at the end of every PWM  
period when the segment index is equal to 000.  
33.10.5 LED UPDATE INTERVAL REGISTER  
This register has eight segment fields which provide the number of PWM periods between updates to current duty cycle.  
Segment field selection is decoded based on the segment index. The segment index equation utilized depends on the  
SYMMETRY bit in the LED Configuration Register Register)  
In Symmetric Mode the Segment_Index[2:0] = Duty Cycle Bits[7:5]  
In Asymmetric Mode the Segment_Index[2:0] is the bit concatenation of following: Segment_Index[2] = (FALLING  
RAMP TIME in Figure 33-3, "Clipping Example") and Segment_Index[1:0] = Duty Cycle Bits[7:6].  
This register may be written at any time. Values written into the register are held in an holding register, which is trans-  
ferred into the actual register at the end of a PWM period if the Enable Update bit in the LED Configuration register is  
set to 1. Reads of this register return the current contents and not the value of the holding register.  
DS00002206H-page 482  
2016-2020 Microchip Technology Inc.  
MEC170x  
10h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
31:28 UPDATE_INTERVAL7  
R/W  
0h  
0h  
0h  
0h  
0h  
0h  
RESET_  
SYS  
The number of PWM periods between updates to current duty cycle  
when the segment index is equal to 111b.  
15=Wait 16 PWM periods  
0=Wait 1 PWM period  
27:24 UPDATE_INTERVAL6  
R/W  
R/W  
R/W  
R/W  
R/W  
RESET_  
SYS  
The number of PWM periods between updates to current duty cycle  
when the segment index is equal to 110b.  
15=Wait 16 PWM periods  
0=Wait 1 PWM period  
23:20 UPDATE_INTERVAL5  
RESET_  
SYS  
The number of PWM periods between updates to current duty cycle  
when the segment index is equal to 101b.  
15=Wait 16 PWM periods  
0=Wait 1 PWM period  
19:16 UPDATE_INTERVAL4  
RESET_  
SYS  
The number of PWM periods between updates to current duty cycle  
when the segment index is equal to 100b.  
15=Wait 16 PWM periods  
0=Wait 1 PWM period  
15:12 UPDATE_INTERVAL3  
RESET_  
SYS  
The number of PWM periods between updates to current duty cycle  
when the segment index is equal to 011b.  
15=Wait 16 PWM periods  
0=Wait 1 PWM period  
11:8 UPDATE_INTERVAL2  
RESET_  
SYS  
The number of PWM periods between updates to current duty cycle  
when the segment index is equal to 010b.  
15=Wait 16 PWM periods  
0=Wait 1 PWM period  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 483  
MEC170x  
10h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:4 UPDATE_INTERVAL1  
R/W  
0h  
RESET_  
SYS  
The number of PWM periods between updates to current duty cycle  
when the segment index is equal to 001b.  
15=Wait 16 PWM periods  
0=Wait 1 PWM period  
3:0 UPDATE_INTERVAL0  
R/W  
0h  
RESET_  
SYS  
The number of PWM periods between updates to current duty cycle  
when the segment index is equal to 000b.  
15=Wait 16 PWM periods  
0=Wait 1 PWM period  
33.10.6 LED OUTPUT DELAY  
This register permits the transitions for multiple blinking/breathing LED outputs to be skewed, so as not to present too  
great a current load. The register defines a count for the number of clocks the circuitry waits before turning on the output,  
either on initial enable, after a resume from Sleep, or when multiple outputs are synchronized through the Sync control  
in the LED CONFIGURATION (LED_CFG) register.  
When more than one LED outputs are used simultaneously, the LED OUTPUT DELAY fields of each should be config-  
ured with different values so that the outputs are skewed. When used with the 32KHz clock domain as a clock source,  
the differences can be as small as 1.  
14h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:8 Reserved  
R
-
-
7:0 OUTPUT_DELAY  
R/W  
000h  
RESET_  
SYS  
The delay, in counts of the clock defined in Clock Source (CLKSRC),  
in which output transitions are delayed. When this field is 0, there is  
no added transition delay.  
When the LED is programmed to be Always On or Always Off, the  
Output Delay field has no effect.  
DS00002206H-page 484  
2016-2020 Microchip Technology Inc.  
MEC170x  
34.0 RC IDENTIFICATION DETECTION (RC_ID)  
34.1 Introduction  
The Resistor/Capacitor Identification Detection (RC_ID) interface provides a single pin interface which can discriminate  
a number of quantized RC constants.  
34.2 References  
No references have been cited for this feature.  
34.3 Terminology  
There is no terminology defined for this section.  
34.4 Interface  
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.  
FIGURE 34-1:  
I/O DIAGRAM OF BLOCK  
RC Identification Detection  
Host Interface  
Signal Description  
Power, Clocks and Reset  
Interrupts  
34.5 Signal Description  
Name  
Direction  
Description  
RC_ID  
Input  
Analog input used for measuring an external Resistor-Capacitor  
delay.  
34.6 Host Interface  
The registers defined for this block are accessible by the various hosts as indicated in Section 34.12, "EC Registers".  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 485  
MEC170x  
34.7 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
34.7.1  
34.7.2  
34.7.3  
POWER DOMAINS  
Name  
Description  
VTR  
The logic and registers implemented in this block are powered by this  
power well.  
CLOCK INPUTS  
Name  
Description  
48MHz  
The main clock domain, used to generate the time base that measures  
the RC delay.  
RESETS  
Name  
Description  
RESET_SYS  
This signal resets all the registers and logic in this block to their default  
state.  
34.8 Interrupts  
This section defines the Interrupt Sources generated from this block.  
Source  
Description  
RCID  
This internal signal is generated when the DONE bit in the RC_ID  
Control Register is set to ‘1’.  
34.9 Low Power Modes  
This block may be put into a low power state by the chip’s Power, Clocks, and Reset (PCR) circuitry. If a measurement  
has been started, the block will continue to assert its clock_req output until the measurement completes.  
34.10 Description  
Note:  
The RC_ID block only operates on 3.3V. The VTR pin associated with RC_ID signals must be connected  
to a 3.3V supply. If the VTR pin is supplied with 1.8V, the RC_ID logic will not function correctly.  
The Resistor/Capacitor Identification Detection (RC_ID) interface provides a single pin interface which can discriminate  
a number of quantized RC constants. The judicious selection of RC values can provide a low cost means for system  
element configuration identification. The RC_ID I/O pin measures the charge/discharge time for an RC circuit connected  
to the pin as shown in Figure 34-2.  
DS00002206H-page 486  
2016-2020 Microchip Technology Inc.  
MEC170x  
FIGURE 34-2:  
BLOCK DIAGRAM OF RC Identification Detection (RC_ID)  
3.3 VDC  
Threshold  
detector  
R
RC_ID input  
RC_ID  
TD_OUT  
Glitch  
Filter  
RC_ID Data  
latch  
VTH=2.2 VDC  
C
16-bit Counter  
12ma sink  
count  
FSM  
START  
ENABLE  
The RC_ID interface determines the selected RC delay by measuring the rise time on the RC_ID pin that is attached to  
the RC circuit, as shown in the above figure. The measurement is performed by first discharging the external capacitor  
for a fixed period of time, set by an internal 16-bit counter running at a configurable time base, and then letting the capac-  
itor charge again, using the same counter and time base to count how many clock ticks are required until the voltage  
on the capacitor exceeds 2.2V. A glitch filter, consisting of three ticks of the 48MHz main oscillator, smooths the thresh-  
old detection.  
By fixing the capacitor value and varying the resistor value, up to eight discrete values can be determined based on the  
final count. Section 34.11, "Time Constants" shows a range of possible R and C values that can be used to create eight  
ID values.  
Measurement requires five phases:  
1. Reset. The two control bits (ENABLE and START) and the three status bits (TC, DONE and CY_ER) in the RC_ID  
Control Register are all ‘0’. The RD_IC pin is tri-stated and the block is in its lowest power state. In order to enter  
the Reset state, firmware must write the ENABLE, START and CLOCK_SET fields to ‘0’ simultaneously or unpre-  
dictable results may occur.  
2. Armed. Firmware enables the transition to this state by setting the ENABLE bit to ‘1’ and the CLOCK_SET field  
to the desired time base. The START must remain at ‘0’. All three fields must be set with one write to the RC_ID  
Control Register. In this state the RC_ID clock is enabled and the 16-bit counter is armed. Firmware must wait a  
minimum of 300μS in the Armed phase before starting the Discharged phase.  
3. Discharged. Firmware initiates the transition to the Discharged state by setting the ENABLE bit to ‘1’, the START  
bit to ‘1’ and the CLOCK_SET field to the desired clock rate, in a single write to the RC_ID Control Register. The  
RC_ID pin is discharged while the 16-bit counter counts from 0000h to FFFFh at the configured time base. When  
the counter reaches FFFFh the TC status bit is set to ‘1’. If at the end of the Discharged state the RC_ID pin  
remains above the 2.2V threshold, the CY_ER bit is set to ‘1’, since the measurement will not be valid.  
4. Charged.The RC_ID state machine automatically transitions to this state after the 16-bit counter reaches FFFFh  
while in the Discharged state. The 16-bit counter starts counting up from 0000h. The counter stops counting and  
its value is copied into the RC_ID Data Register when the voltage on the pin exceeds 2.2V. If the counter reaches  
FFFFh and the pin voltage remains below 2.2V, the CY_ER bit is set to ‘1’.  
5. Done. After the counter stops counting, either because the pin voltage exceed the 2.2V threshold or the 16-bit  
counter reached FFFFh, the state machine transitions to this state. The DONE bit is set to ‘1’ and the RC_ID  
interface re-enters its lowest power state. The interface will remain in the Done state until firmware explicitly ini-  
tiates the Reset state.  
A new measurement must be started by putting the RC_ID Interface into the “Reset” state.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 487  
MEC170x  
The five phases, along with the values of the control and status bits in the Control Register at the end of each phase,  
are summarized in the following table and figure:  
TABLE 34-1: RC ID STATE TRANSITIONS  
State  
ENABLE  
START  
TC  
DONE  
1.  
2.  
3.  
4.  
5.  
Reset  
Armed  
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
Discharged  
Charged  
Done  
FIGURE 34-3:  
RCID STATE TRANSITIONS  
Reset  
Armed  
Discharged  
Charged  
Done  
3.3 VDC  
2.2 VDC  
RC_ID pin input  
Threshold Value  
RC_ID Open  
Drain drive  
('0' = sinking  
current)  
RC_ID  
Data  
Captured  
TD_OUT  
Counter  
Increment  
Counter  
Increment  
Clock  
(not to scale)  
DS00002206H-page 488  
2016-2020 Microchip Technology Inc.  
MEC170x  
34.11 Time Constants  
This section lists a set of R and C values which can be connected to the RC_ID pin. Note that risetime generally follow  
RC time Tau. Firmware should use the Max and Min Counts in the tables to create quantized states.  
In the following tables, the CLOCK_SET field in the RC_ID Control Register is set to ‘1’, so the time base for measuring  
the rise time is 24MHz, the speed of the system clock. All capacitor values are ±10% and all resistor values are ±5%.  
Minimum and maximum count values are suggested ranges, calculated to provide reasonable margins around the nom-  
inal rise times. Rise times have been confirmed by laboratory measurements.  
TABLE 34-2: SAMPLE RC VALUES, C=2200PF @24MHZ  
R
(KΩ)  
Nominal Tau  
(μS)  
Minimum  
Count  
Maximum  
Count  
1
2.2  
4.4  
60.00  
115.00  
72.00  
140.00  
2
4.3  
8.2  
33  
9.5  
241.00  
294.00  
18.04  
72.6  
136.4  
286  
456.00  
557.00  
1819.00  
3456.00  
7470.00  
14400.00  
2224.00  
4224.00  
9130.00  
17600.00  
62  
130  
240  
528  
TABLE 34-3: SAMPLE RC VALUES, C=3000PF @24MHZ  
R
(KΩ)  
Nominal Tau  
(μS)  
Minimum  
Count  
Maximum  
Count  
1
3
77.00  
151.00  
95.00  
184.00  
2
6
4.3  
8.2  
33  
12.9  
24.6  
99  
320.00  
391.00  
604.00  
739.00  
2439.00  
4647.00  
9990.00  
193508.00  
2981.00  
5680.00  
12210.00  
23650.00  
62  
186  
390  
720  
130  
240  
TABLE 34-4: SAMPLE RC VALUES, C=4700PF @24MHZ  
R
(KΩ)  
Nominal Tau  
(μS)  
Minimum  
Count  
Maximum  
Count  
1
4.7  
9.4  
116.00  
229.00  
142.00  
280.00  
2
4.3  
8.2  
33  
20.2  
38.5  
155.1  
291.4  
611  
495.00  
605.00  
945.00  
1160.00  
4650.00  
8859.00  
18920.00  
36520.00  
3780.00  
7249.00  
15480.00  
29880.00  
62  
130  
240  
1128  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 489  
MEC170x  
34.12 EC 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 each instance of the RC Identification Detection (RC_ID) Block in the Block Overview  
and Base Address Table in Section 3.0, "Device Inventory".  
TABLE 34-5: REGISTER SUMMARY  
Offset  
Register Name  
RC_ID Control Register  
RC_ID Data Register  
00h  
04h  
34.12.1 RC_ID CONTROL REGISTER  
00h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:10 Reserved  
9:8 CLOCK_SET  
R
-
-
R/W  
0h  
RESE  
T_SY  
S
This field selects the frequency of the Counter circuit clock. This field  
must retain the same value as long as the ENABLE bit in this register  
is ‘1’.  
3=6MHz  
2=12MHz  
1=24MHz  
0=48MHz  
7
ENABLE  
R/W  
R/W  
R
0h  
0h  
-
RESE  
T_SY  
S
Clearing the bit to ‘0’ causes the RC_ID interface to enter the Reset  
state, gating its clocks, clearing the status bits in this register and  
entering into its lowest power state. Setting this bit to ‘1’ causes the  
RC_ID interface to enter the Armed phase of an RC_ID measure-  
ment.  
When this bit is cleared to ‘0’, the CLOCK_SET and START fields in  
this register must also be cleared to ‘0’ in the same register write.  
6
START  
RESE  
T_SY  
S
Setting this bit to ‘1’ initiates the Discharged phase of an RC_ID  
measurement.  
Writes that change this bit from ‘0’ to ‘1’ must also write the ENABLE  
bit to ‘1’, and must not change the CLOCK_SET field.  
A period of at least 300μS must elapse between setting the ENABLE  
bit to ‘1’ and setting this bit to ‘1’.  
5:3 Reserved  
-
DS00002206H-page 490  
2016-2020 Microchip Technology Inc.  
MEC170x  
00h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
2
CY_ER  
R
0h  
RESE  
T_SY  
S
This bit is ‘1’ if an RC_ID measurement encountered an error and  
the reading in the RC_ID Data Register is invalid. This bit is cleared  
to ‘0’ when the RC_ID interface is in the Reset phase. It is set either  
if during the Discharged phase the RC_ID pin did not fall below the  
2.2V threshold, or if in the Charged phase the RC_ID pin did not rise  
above the 2.2V threshold and the 16-bit counter ended its count at  
FFFFh.  
1
0
TC  
R
R
0h  
0h  
RESE  
T_SY  
S
This bit is cleared to ‘0’ when the RC_ID interface is in the Reset  
phase, and set to ‘1’ when the interface completes the Discharged  
phase of an RC_ID measurement.  
DONE  
RESE  
T_SY  
S
This bit is cleared to ‘0’ when the RC_ID interface is in the Reset  
phase, and set to ‘1’ when the interface completes an RC_ID mea-  
surement.  
34.12.2 RC_ID DATA REGISTER  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:16 Reserved  
15:0 DATA  
R
R
-
-
0h  
RESE  
T_SY  
S
Reads of this register provide the result of an RC_ID measurement.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 491  
MEC170x  
35.0 KEYBOARD SCAN INTERFACE  
35.1 Overview  
The Keyboard Scan Interface block provides a register interface to the EC to directly scan an external keyboard matrix  
of size up to 18x8.  
The maximum configuration of the Keyboard Scan Interface is 18 outputs by 8 inputs. For a smaller matrix size, firmware  
should configure unused KSO pins as GPIOs or another alternate function, and it should mask out unused KSIs and  
associated interrupts.  
35.2 References  
No references have been cited for this feature.  
35.3 Terminology  
There is no terminology defined for this section.  
35.4 Interface  
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.  
FIGURE 35-1:  
I/O DIAGRAM OF BLOCK  
Keyboard Scan Interface  
Host Interface  
Signal Description  
Power, Clocks and Reset  
Interrupts  
35.5 Signal Description  
Name  
Direction  
Description  
KSI[7:0]  
Input  
Column inputs from external keyboard matrix.  
Row outputs to external keyboard matrix.  
KSO[17:0]  
Output  
DS00002206H-page 492  
2016-2020 Microchip Technology Inc.  
MEC170x  
35.6 Host Interface  
The registers defined for the Keyboard Scan Interface are accessible by the various hosts as indicated in Section 35.11,  
"EC Registers".  
35.7 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
35.7.1  
POWER DOMAINS  
Name  
Description  
VTR  
The logic and registers implemented in this block are powered by this  
power well.  
35.7.2  
35.7.3  
CLOCK INPUTS  
Name  
Description  
48MHz  
This is the clock source for Keyboard Scan Interface logic.  
RESETS  
Name  
Description  
RESET_SYS  
This signal resets all the registers and logic in this block to their default  
state.  
35.8 Interrupts  
This section defines the Interrupt Sources generated from this block.  
Source  
Description  
KSC_INT  
Interrupt request to the Interrupt Aggregator.  
KSC_INT_WAKE  
Wake-up request to the Interrupt Aggregator’s wake-up interface.  
35.9 Low Power Modes  
The Keyboard Scan Interface automatically enters a low power mode whenever it is not actively scanning the keyboard  
matrix. The block is also placed in a low-power state when it is disabled by the KSEN bit. When the interface is in a low-  
power mode it will not prevent the chip from entering a sleep state. When the interface is active it will inhibit the chip  
sleep state until the interface has re-entered its low power mode.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 493  
MEC170x  
35.10 Description  
FIGURE 35-2:  
KEYBOARD SCAN INTERFACE BLOCK DIAGRAM  
KSO  
Select  
Register  
Output  
Decoder  
KSO[17:0]  
SPB  
I/F  
EC Bus  
KSI  
KSC_INT_WAKE  
KSC_INT  
Interrupt  
Interface  
KSI Input  
and  
Status  
KSI[7:0]  
Registers  
During scanning the firmware sequentially drives low one of the rows (KSO[17:0]) and then reads the column data line  
(KSI[7:0]). A key press is detected as a zero in the corresponding position in the matrix. Keys that are pressed are  
debounced by firmware. Once confirmed, the corresponding keycode is loaded into host data read buffer in the 8042  
Host Interface module. Firmware may need to buffer keycodes in memory in case this interface is stalled or the host  
requests a Resend.  
35.10.1 INITIALIZATION OF KSO PINS  
If the Keyboard Scan Interface is not configured for PREDRIVE Mode, KSO pins should be configured as open-drain  
outputs. Internal or external pull-ups should be used so that the GPIO functions that share the pins do not have a floating  
input when the KSO pins are tri-stated.  
If the Keyboard Scan Interface is configured for PREDRIVE Mode, KSO pins must be configured as push-pull outputs.  
Internal or external pull-ups should be used to protect the GPIO inputs associated with the KSO pins from floating inputs.  
35.10.2 PREDRIVE MODE  
There is an optional Predrive Mode that can be enabled to actively drive the KSO pins high before switching to open-  
drain operation. The PREDRIVE ENABLE bit in the Keyscan Extended Control Register is used to enable the PRE-  
DRIVE option. Timing for the Predive mode is shown in Section 51.15, Keyboard Scan Matrix Timing.  
35.10.2.1 Predrive Mode Programming  
The following precautions should be taken to prevent output pad damage during Predrive Mode Programming.  
DS00002206H-page 494  
2016-2020 Microchip Technology Inc.  
MEC170x  
35.10.2.2 Asserting PREDRIVE_ENABLE  
1. Disable Key Scan Interface (KSEN = '1')  
2. Enable Predrive function (PREDRIVE_ENABLE = '1')  
3. Program buffer type for all KSO pins to "push-pull”  
4. Enable Keyscan Interface (KSEN ='0')  
35.10.2.3 De-asserting PREDRIVE_ENABLE  
1. Disable Key Scan Interface (KSEN = '1')  
2. Program buffer type for all KSO pins to "open-drain”  
3. Disable Predrive function (PREDRIVE_ENABLE = '0')  
4. Enable Keyscan Interface (KSEN ='0')  
35.10.3 INTERRUPT GENERATION  
To support interrupt-based processing, an interrupt can optionally be generated on the high-to-low transition on any of  
the KSI inputs. A running clock is not required to generate interrupts.  
35.10.3.1 Runtime interrupt  
KSC_INT is the block’s runtime active-high level interrupt. It is connected to the interrupt interface of the Interrupt Aggre-  
gator, which then relays interrupts to the EC.  
Associated with each KSI input is a status register bit and an interrupt enable register bit. A status bit is set when the  
associated KSI input goes from high to low. If the interrupt enable bit for that input is set, an interrupt is generated. An  
Interrupt is de-asserted when the status bit and/or interrupt enable bit is clear. A status bit cleared when written to a ‘1’.  
Interrupts from individual KSIs are logically ORed together to drive the KSC_INT output port. Once asserted, an interrupt  
is not asserted again until either all KSI[7:0] inputs have returned high or the has changed.  
35.10.3.2 Wake-up interrupt  
KSC_INT_WAKE is the block’s wakeup interrupt. It is routed to the Interrupt Aggregator.  
During sleep mode, i.e., when the bus clock is stopped, a high-to-low transition on any KSI whose interrupt enable bit  
is set causes the KSC_INT_WAKE to be asserted. The block also indicates that it requires a clock to the system Power  
Management Interface. KSC_WAKEUP_INT remains active until the bus clock is started.  
The aforementioned transition on KSI also sets the corresponding status bit in the KSI STATUS Register. If enabled, a  
runtime interrupt is also asserted on KSC_INT when the bus clock resumes running.  
35.10.4 WAKE PROGRAMMING  
Using the Keyboard Scan Interface to ‘wake’ the MEC170x can be accomplished using either the Keyboard Scan Inter-  
face wake interrupt, or using the wake capabilities of the GPIO Interface pins that are multiplexed with the Keyboard  
Scan Interface pins. Enabling the Keyboard Scan Interface wake interrupt requires only a single interrupt enable access  
and is recommended over using the GPIO Interface for this purpose.  
35.11 EC 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 each instance of the Keyboard Scan Interface Block in the Block Overview and Base  
Address Table in Section 3.0, "Device Inventory".  
TABLE 35-1: EC-ONLY REGISTER SUMMARY  
Offset  
Register Name  
0h  
4h  
Reserved  
KSO Select Register  
KSI INPUT Register  
8h  
Ch  
10h  
14h  
KSI STATUS Register  
KSI INTERRUPT ENABLE Register  
Keyscan Extended Control Register  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 495  
MEC170x  
35.11.1 KSO SELECT REGISTER  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:4 Reserved  
R
-
-
7
6
5
KSO_INVERT  
R/W  
0h  
RESET  
_SYS  
This bit controls the output level of KSO pins when selected.  
0=KSO[x] driven low when selected  
1=KSO[x] driven high when selected.  
KSEN  
R/W  
R/W  
R/W  
1h  
0h  
0h  
RESET  
_SYS  
This field enables and disables keyboard scan  
0=Keyboard scan enabled  
1=Keyboard scan disabled. All KSO output buffers disabled.  
KSO_ALL  
RESET  
_SYS  
0=When key scan is enabled, KSO output controlled by the  
KSO_SELECT field.  
1=KSO[x] driven high when selected.  
4:0 KSO_SELECT  
This field selects a KSO line (00000b = KSO[0] etc.) for output  
RESET  
_SYS  
according to the value off KSO_INVERT in this register. See  
Table 35-2, "KSO Select Decode"  
TABLE 35-2: KSO SELECT DECODE  
KSO Select [4:0]  
KSO Selected  
00h  
01h  
02h  
03h  
04h  
05h  
06h  
07h  
08h  
09h  
0Ah  
0Bh  
0Ch  
0Dh  
0Eh  
0Fh  
KSO00  
KSO01  
KSO02  
KSO03  
KSO04  
KSO05  
KSO06  
KSO07  
KSO08  
KSO09  
KSO10  
KSO11  
KSO12  
KSO13  
KSO14  
KSO15  
DS00002206H-page 496  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 35-2: KSO SELECT DECODE (CONTINUED)  
KSO Select [4:0]  
KSO Selected  
10h  
11h  
KSO16  
KSO17  
TABLE 35-3: KEYBOARD SCAN OUT CONTROL SUMMARY  
KSO_INVERTt  
KSEN  
KSO_ALL  
KSO_SELECT  
Description  
X
1
x
x
Keyboard Scan disabled. KSO[17:0]  
output buffers disabled.  
0
1
0
0
0
0
10001b-00000b  
10001b-00000b  
KSO[Drive Selected] driven low. All  
others driven high  
KSO[Drive Selected] driven high. All  
others driven low  
0
1
0
1
0
0
0
0
0
0
1
1
11111b-10010b  
All KSO’s driven high  
All KSO’s driven low  
All KSO’s driven high  
All KSO’s driven low  
11111b-10010b  
x
x
35.11.2 KSI INPUT REGISTER  
08h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:8 Reserved  
7:0 KSI  
R
R
-
-
0h  
RESET  
_SYS  
This field returns the current state of the KSI pins.  
35.11.3 KSI STATUS REGISTER  
0Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:8 Reserved  
R
-
-
7:0 KSI_STATUS  
R/WC  
0h  
RESET  
_SYS  
Each bit in this field is set on the falling edge of the corresponding  
KSI input pin.  
A KSI interrupt is generated when its corresponding status bit and  
interrupt enable bit are both set. KSI interrupts are logically ORed  
together to produce KSC_INT and KSC_INT_WAKE.  
Writing a ‘1’ to a bit will clear it. Writing a ‘0’ to a bit has no effect.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 497  
MEC170x  
35.11.4 KSI INTERRUPT ENABLE REGISTER  
10h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:8 Reserved  
R
-
-
7:0 KSI_INT_EN  
R/W  
0h  
RESET  
_SYS  
Each bit in KSI_INT_EN enables interrupt generation due to high-  
to-low transition on a KSI input. An interrupt is generated when the  
corresponding bits in KSI_STATUS and KSI_INT_EN are both set.  
35.11.5 KEYSCAN EXTENDED CONTROL REGISTER  
14h  
Offset  
Bits  
Description  
Type  
Default  
Reset Event  
32:1 Reserved  
PREDRIVE_ENABLE  
R
-
-
0
R/W  
0h  
RESET_SYS  
PREDRIVE_ENABLE enables the PREDRIVE mode to  
actively drive the KSO pins high for two 48 MHz PLL  
clocks before switching to open-drain operation.  
0=Disable predrive on KSO pins  
1=Enable predrive on KSO pins.  
DS00002206H-page 498  
2016-2020 Microchip Technology Inc.  
MEC170x  
36.0 I2C/SMBUS INTERFACE  
36.1 Introduction  
This section describes the Power Domain, Resets, Clocks, Interrupts, Registers and the Physical Interface of the  
I2C/SMBus interface. For a General Description, Features, Block Diagram, Functional Description, Registers Interface  
and other core-specific details, see Ref [1] (note: in this chapter, italicized text typically refers to SMB-I2C Controller core  
interface elements as described in Ref [1]).  
36.2 References  
1. I2C_SMB Controller Core with Network Layer Support (SMB2) - 16MHz I2C Baud Clock“, Revision 3.6, Core-  
Level Architecture Specification, Microchip, date TBD  
36.3 Terminology  
There is no terminology defined for this chapter.  
36.4 Interface  
This block is designed to be accessed externally via the pin interface and internally via a registered host interface. In  
addition, this block is equipped with:  
FIGURE 36-1:  
I/O DIAGRAM OF BLOCK  
I2C/SMBus Interface  
Host Interface  
DMA Interface  
Signal Description  
Power, Clocks and Reset  
Interrupts  
36.5 Signal Description  
see the Pin Configuration section for a description of the SMB-I2C pin configuration.  
36.6 Host Interface  
The registers defined for the I2C/SMBus Interface are accessible as indicated in Section 36.12, "EC Registers".  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 499  
MEC170x  
36.7 DMA Interface  
This block is designed to communicate with the Internal DMA Controller. This feature is defined in the SMB-I2C Con-  
troller Core Interface specification (See Ref [1]).  
Note:  
For a description of the Internal DMA Controller implemented in this design see Section 7.0, "Internal DMA  
Controller".  
36.8 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
36.8.1  
POWER DOMAINS  
Name  
Description  
VTR  
This power well sources all of the registers and logic in this block, except  
where noted.  
36.8.2  
CLOCK INPUTS  
Name  
Description  
16MHz  
This is the clock signal drives the SMB-I2C Controller core. The core also  
uses this clock to generate the SMB-I2C_CLK on the pin interface. It is  
derived from the main system clock  
36.8.3  
RESETS  
Name  
Description  
RESET_SYS  
This reset signal resets all of the registers and logic in the SMB-I2C Con-  
troller core.  
36.9 Interrupts  
Source  
Description  
SMB-I2C  
I2C Activity Interrupt Event  
SMB-I2C_WAKE  
This interrupt event is triggered when an SMB/I2C Master initiates a  
transaction by issuing a START bit (a high-to-low transition on the SDA  
line while the SCL line is high) on the bus currently connected to the  
SMB-I2C Controller. The EC interrupt handler for this event only needs to  
clear the interrupt SOURCE bit and return; if the transaction results in an  
action that requires EC processing, that action will trigger the SMB-I2C  
interrupt event.  
36.10 Low Power Modes  
The SMB-I2C Controller may be put into a low power state by the chip’s Power, Clocks, and Reset (PCR) circuitry.  
36.11 Description  
36.11.1 SMB-I2C CONTROLLER CORE  
The SMB-I2C Controller behavior is defined in the SMB-I2C Controller Core Interface specification (See Ref [1]).  
DS00002206H-page 500  
2016-2020 Microchip Technology Inc.  
MEC170x  
36.11.2 PHYSICAL INTERFACE  
The Physical Interface for the SMB-I2C Controller core is configurable for up to 15 ports. Each I2C_WAKE Controller  
can be connected to any of the ports defined in Table 36-1, "SMB-I2C Port Selection". The PORT SEL [3:0] bit field in  
each controller independently sets the port for the controller. The default for each field is Fh, Reserved, which means  
that the SMB-I2C Controller is not connected to a port.  
An I2C port should be connected to a single controller. An attempt to configure the PORT SEL [3:0] bits in one controller  
to a value already assigned to another controller may result in unexpected results.  
The port signal-function names and pin numbers are defined in Pin Configuration section. The I2C port selection is  
made using the PORT SEL [3:0] bits in the Configuration Register as described in Ref [1].. In the Pin section, the SDL  
(Data) pins are listed as SMBi_DATA and the SCL (Clock) pins are listed as I2Ci_CLK, where i represents the port num-  
ber 00 through 10. The CPU-voltage-level port SB_TSI is also listed in the pin section with the pins _DATA and _CLK.  
For I2C port signal functions that are alternate functions of GPIO pins, the buffer type for these pins must be configured  
as open-drain outputs when the port is selected as an I2C port.  
For more information regarding the SMB-I2C Controller core see Section 2.2, Physical Interface” in Ref[1].  
TABLE 36-1: SMB-I2C PORT SELECTION  
PORT_SEL[3:0]  
Port  
3
2
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
SMB00 or I2C00  
SMB01 or I2C01  
SMB02 or I2C02  
SMB03 or I2C03  
SMB04 or I2C04  
SMB05 or I2C05  
SMB06 or I2C06  
SMB07 or I2C07  
SMB08 or I2C08  
SMB09 or I2C09  
SMB10 or I2C10  
SB-TSI  
1100b - 1111b  
Reserved  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 501  
MEC170x  
FIGURE 36-2:  
SMB-I2C PORT CONNECTIVITY  
I2C Bus 00  
I2C Bus 01  
SMB  
00  
SMB  
01  
I2C Bus 02  
I2C Bus 03  
I2C Bus 04  
SMB  
02  
Controller  
0
SMB  
03  
SMB  
04  
Controller  
1
I2C Bus 05  
I2C Bus 06  
SMB  
05  
SMB  
06  
Controller  
2
I2C Bus 07  
I2C Bus 08  
I2C Bus 09  
SMB  
07  
SMB  
08  
Controller  
3
SMB  
09  
I2C Bus 10  
I2C Bus 11  
SMB  
10  
SMB  
11  
36.12 EC 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 each instance of the SMB-I2C Controller Block in the Block Overview and Base  
Address Table in Section 3.0, "Device Inventory".  
Registers for the SMB-I2C Controllers are listed in Reference[ 1].  
DS00002206H-page 502  
2016-2020 Microchip Technology Inc.  
MEC170x  
37.0 GENERAL PURPOSE SERIAL PERIPHERAL INTERFACE  
37.1 Overview  
The General Purpose Serial Peripheral Interface (GP-SPI) may be used to communicate with various peripheral  
devices, e.g., EEPROMS, DACs, ADCs, that use a standard Serial Peripheral Interface.  
.Characteristics of the GP-SPI Controller include:  
• 8-bit serial data transmitted and received simultaneously over two data pins in Full Duplex mode with options to  
transmit and receive data serially on one data pin in Half Duplex (Bidirectional) mode.  
• An internal programmable clock generator and clock polarity and phase controls allowing communication with var-  
ious SPI peripherals with specific clocking requirements.  
• SPI cycle completion that can be determined by status polling or interrupts.  
• The ability to read data in on both SPDIN and SPDOUT in parallel. This allows this SPI Interface to support dual  
data rate read accesses for emerging double rate SPI flashes  
• Support of back-to-back reads and writes without clock stretching, provided the host can read and write the data  
registers within one byte transaction time.  
37.2 References  
No references have been cited for this feature.  
37.3 Terminology  
No terminology for this block.  
37.4 Interface  
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.  
FIGURE 37-1:  
I/O DIAGRAM OF BLOCK  
General Purpose Serial  
Peripheral Interface  
Host Interface  
Signal Description  
Power, Clocks and Reset  
Interrupts  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 503  
MEC170x  
37.5 Signal Description  
See the Pin Description chapter for the pins and the signal names associated with the following signals.  
TABLE 37-1: EXTERNAL SIGNAL DESCRIPTION  
Name  
Direction  
Description  
SP_DIN  
Input  
Serial Data In pin  
SP_DOUT  
Input/Output Serial Data Output pin. Switches to input when used in double-data-  
rate mode  
SP_CLK  
SP_CS#  
Output  
Output  
SPI Clock output used to drive the SPCLK pin.  
SPI chip select  
TABLE 37-2: INTERNAL SIGNAL DESCRIPTION  
Name  
Direction  
Description  
SPI_TDMA_REQ  
SPI_RDMA_REQ  
Output  
Output  
DMA Request control for GP-SPI Controller Transmit Channel  
DMA Request control for GP-SPI Controller Receive Channel  
37.6 Host Interface  
The registers defined for the General Purpose Serial Peripheral Interface are accessible by the various hosts as indi-  
cated in Section 37.12, "EC-Only/Runtime Registers".  
37.7 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
37.7.1  
37.7.2  
POWER DOMAINS  
Name  
Description  
VTR  
The logic and registers implemented in this block are powered by this  
power well.  
CLOCK INPUTS  
Name  
Description  
48MHz  
2MHz  
This is a clock source for the SPI clock generator.  
This is a clock source for the SPI clock generator. It is derived from the  
48MHz clock domain.  
37.7.3  
RESETS  
Name  
Description  
RESET_SYS  
This signal resets all the registers and logic in this block to their default  
state.  
37.8 Interrupts  
This section defines the Interrupt Sources generated from this block.  
TABLE 37-3: EC INTERRUPTS  
Source  
Description  
TXBE_STS  
Transmit buffer empty status (TXBE), in the SPI Status Register, sent as  
an interrupt request to the Interrupt Aggregator.  
RXBF_STS  
Receive buffer full status (RXBF), in the SPI Status Register, sent as an  
interrupt request to the Interrupt Aggregator.  
DS00002206H-page 504  
2016-2020 Microchip Technology Inc.  
MEC170x  
These status bits are also connected respectively to the DMA Controller’s SPI Controller TX and RX requests signals.  
37.9 Low Power Modes  
The GP-SPI Interface may be put into a low power state by the chip’s Power, Clocks, and Reset (PCR) circuitry.  
37.10 Description  
The Serial Peripheral Interface (SPI) block is a master SPI block used to communicate with external SPI devices. The  
SPI master is responsible for generating the SPI clock and is designed to operate in Full Duplex, Half Duplex, and Dual  
modes of operation. The clock source may be programmed to operated at various clock speeds. The data is transmit-  
ted serially via 8-bit transmit and receive shift registers. Communication with SPI peripherals that require transactions  
of varying lengths can be achieved with multiple 8-bit cycles.  
This block has many configuration options: The data may be transmitted and received either MSbit or LSbit first; The  
SPI Clock Polarity may be either active high or active low; Data may be sampled or presented on either the rising of  
falling edge of the clock (referred to as the transmit clock phase); and the SPI_CLK SPDOUT frequency may be pro-  
grammed to a range of values as illustrated in Table 37-4, "SPI_CLK Frequencies". In addition to these many program-  
mable options, this feature has several status bits that may be enabled to notify the host that data is being transmitted  
or received.  
37.10.1 INITIATING AN SPI TRANSACTION  
All SPI transactions are initiated by a write to the TX_DATA register. No read or write operations can be initiated until  
the Transmit Buffer is Empty, which is indicated by a one in the TXBE status bit.  
If the transaction is a write operation, the host writes the TX_DATA register with the value to be transmitted. Writing the  
TX_DATA register causes the TXBE status bit to be cleared, indicating that the value has been registered. If empty, the  
SPI Core loads this TX_DATA value into an 8-bit transmit shift register and begins shifting the data out. Loading the  
value into the shift register causes the TXBE status bit to be asserted, indicating to software that the next byte can be  
written to the TX_DATA register.  
If the transaction is a read operation, the host initiates a write to the TX_DATA register in the same manner as the write  
operation. Unlike the transmit command, the host must clear the RXBF status bit by reading the RX_DATA register  
before writing the TX_DATA register. This time, the host will be required to poll the RXBF status bit to determine when  
the value in the RX_DATA register is valid.  
Note 1: If the SPI interface is configured for Half Duplex mode, the host must still write a dummy byte to receive data.  
2: Since RX and TX transactions are executed by the same sequence of transactions, data is always shifted  
into the RX_DATA register. Therefore, every write operation causes data to be latched into the RX_DATA  
register and the RXBF bit is set. This status bit should be cleared before initiating subsequent transactions.  
The host utilizing this SPI core to transmit SPI Data must discard the unwanted receive bytes.  
3: The length and order of data sent to and received from a SPI peripheral varies between peripheral devices.  
The SPI must be properly configured and software-controlled to communicate with each device and deter-  
mine whether SPIRD data is valid slave data.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 505  
MEC170x  
The following diagrams show sample single byte and multi-byte SPI Transactions.  
FIGURE 37-2:  
SINGLE BYTE SPI TX/RX TRANSACTIONS (FULL DUPLEX MODE)  
Single SPI BYTE Transactions  
MCLK  
SPDOUT_Direction  
BYTE 0  
TX_DATA  
Write TX_Data  
TX_DATA Buffer Empty (TxBE)  
Rx_DATA Buffer Full (RxBF)  
Read RX_Data  
BYTE 0  
RX_DATA  
Data Out Shift Register  
Data In Shift Register  
7
7
6
6
5
5
4
4
3
3
2
2
1
1
0
0
SPCLKO  
DS00002206H-page 506  
2016-2020 Microchip Technology Inc.  
MEC170x  
FIGURE 37-3:  
MULTI-BYTE SPI TX/RX TRANSACTIONS (FULL DUPLEX MODE)  
SPI BYTE Transactions  
MCLK  
SPDOUT_Direction  
TX_DATA  
BYTE  
0
BYTE 1  
BYTE2  
Write TX_Data  
TX_DATA Buffer Empty(TxBE)  
Rx_DATA Buffer Full (RxBF)  
Read RX_Data  
BYTE 0  
BYTE 1  
RX_DATA  
Data Out Shift Register  
Data In Shift Register  
7
7
7
7
7
7
6
6
5
5
4
3
3
2
1
1
0
0
6
6
5
5
4
4
3
3
2
2
1
1
0
0
6
6
5
5
4
4
3
3
4
2
SPCLKO  
The data may be configured to be transmitted MSB or LSB first. This is configured by the LSBF bit in the SPI Control  
Register. The transmit data is shifted out on the edge as selected by the TCLKPH bit in the SPI Clock Control Register.  
All received data can be sampled on a rising or falling SPI_CLK edge using the RCLKPH bit in the SPI Clock Control  
Register This clock setting must be identical to the clocking requirements of the current SPI slave.  
Note:  
Common peripheral devices require a chip select signal to be asserted during a transaction. Chip selects  
for SPI devices may be controlled by MEC170x GPIO pins.  
There are three types of transactions that can be implemented for transmitting and receiving the SPI data. They are Full  
Duplex, Half Duplex, and Dual Mode. These modes are define in Section 37.10.3, "Types of SPI Transactions".  
37.10.2 DMA MODE  
Transmit and receive operations can use a DMA channel. Note that only one DMA channel may be enabled at a  
time. Setting up the DMA Controller involves specifying the device (Flash GP-SPI), direction (transmit/receive), and  
the start and end addresses of the DMA buffers in the closely couple memory. Please refer to the DMA Controller chap-  
ter for register programming information.  
SPI transmit / DMA write: the GP-SPI block’s transmit empty (TxBE) status signal is used as a write request to the DMA  
controller, which then fetches a byte from the DMA transmit buffer and writes it to the GP-SPI’s SPI TX Data Register  
(SPITD). As content of the latter is transferred to the internal Tx shift register from which data is shifted out onto the SPI  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 507  
MEC170x  
bus bit by bit, the Tx Empty signal is again asserted, triggering the DMA fetch-and-write cycle. The process continues  
until the end of the DMA buffer is reached - the DMA controller stops responding to an active Tx Empty until the buffer’s  
address registers are reprogrammed.  
SPI receive / DMA read: the AUTO_READ bit in the SPI Control Register must be set. The driver first writes (dummy  
data) to the SPI TX Data Register (SPITD) to initiate the toggling of the SPI clock, enabling data to be shifted in. After  
one byte is received, the Rx Full (RxBF) status signal, used as a read request to the DMA controller, is asserted. The  
DMA controller then reads the received byte from the GP-SPI’s SPI RX Data Register (SPIRD) and stores it in the DMA  
receive buffer. With AUTO_READ set, this read clears both the RxBF and TxBE. Clearing TxBE causes (dummy) data  
from the SPI TX Data Register (SPITD) to be transferred to the internal shift register, mimicking the effect of the afore-  
mentioned write to the SPI TX Data Register (SPITD) by the driver. SPI clock is toggled again to shift in the second read  
byte. This process continues until the end of the DMA buffer is reached - the DMA controller stops responding to an  
active Tx Empty until the buffer’s address registers are reprogrammed.  
37.10.3 TYPES OF SPI TRANSACTIONS  
The GP-SPI controller can be configured to operate in three modes: Full Duplex, Half Duplex, and Dual Mode.  
37.10.3.1 Full Duplex  
In Full Duplex Mode, serial data is transmitted and received simultaneously by the SPI master over the SPDOUT and  
SPDIN pins. To enable Full Duplex Mode clear SPDIN Select.  
When a transaction is completed in the full-duplex mode, the RX_DATA shift register always contains received data  
(valid or not) from the last transaction.  
37.10.3.2 Half Duplex  
In Half Duplex Mode, serial data is transmitted and received sequentially over a single data line (referred to as the SPD-  
OUT pin). To enable Half Duplex Mode set SPDIN Select to 01b. The direction of the SPDOUT signal is determined by  
the BIOEN bit.  
To transmit data in half duplex mode set the BIOEN bit before writing the TX_DATA register.  
To receive data in half duplex mode clear the BIOEN bit before writing the TX_DATA register with a dummy byte.  
Note:  
The Software driver must properly drive the BIOEN bit and store received data depending on the transac-  
tion format of the specific slave device.  
37.10.3.3 Dual Mode of Operation  
In Dual Mode, serial data is transmitted sequentially from the SPDOUT pin and received in by the SPI master from the  
SPDOUT and SPDIN pins. This essentially doubles the received data rate and is often available in SPI Flash devices.  
To enable Dual Mode of operation the SPI core must be configured to receive data in path on the SPDIN1 and SPDIN2  
inputs via SPDIN Select. The BIOEN bit determines if the SPI core is transmitting or receiving. The setting of this bit  
determines the direction of the SPDOUT signal. The SPDIN Select bits are configuration bits that remain static for the  
duration of a dual read command. The BIOEN bit must be toggled to indicate when the SPI core is transmitting and  
receiving.  
To transmit data in dual mode set the BIOEN bit before writing the TX_DATA register.  
To receive data in dual mode clear the BIOEN bit before writing the TX_DATA register with a dummy byte. The  
even bits (0,2,4,and 6) are received on the SPDOUT pin and the odd bits (1,3,5,and 7) are received on the SPDIN  
pin. The hardware assembles these received bits into a single byte and loads them into the RX_DATA register  
accordingly.  
DS00002206H-page 508  
2016-2020 Microchip Technology Inc.  
MEC170x  
The following diagram illustrates a Dual Fast Read Command that is supported by some SPI Flash devices.  
FIGURE 37-4:  
DUAL FAST READ FLASH COMMAND  
MCLK  
BIOEN  
Comm  
and  
Address  
23:16  
Address  
15:8  
Address  
7:0  
Dummy Byte  
Byte 1  
TX_DATA  
Write TX _Data  
TX_DATA Buffer Empty (TxBE)  
Rx_DATA Buffer Full (RxBF)  
Read RX_Data  
Address Byte  
[16:8]  
AddressByte  
[7:0]  
Address [23:16]  
RX_DATA  
Command Byte  
Driven byMaster  
SPDOUTPin  
SPDIN 1  
7
7
6
6
5
5
4
3
3
2
1
1
0
0
7
7
6
6
5
5
4
4
3
3
2
2
1
0
7
6
5
5
4
4
3
3
2
2
1
1
0
0
7
7
6
6
5
5
4
4
3
3
2
2
1
1
0
4
2
1
0
7
6
0
7
6
5
4
3
2
1
0
SPDIN 2  
SPCLKO  
MCLK  
BIOEN  
Byte 2  
Byte  
3
Byte 4  
TX_DATA  
Write TX _Data  
TX_DATA Buffer Empty (TxBE)  
Rx_DATA Buffer Full (RxBF)  
Read RX_Data  
Dummy Byte  
BYTE 1  
Driven by Slave  
RX_DATA  
BYTE 2  
BYTE 3  
BYTE 4  
6
7
6
4
5
4
2
3
2
0
1
0
SPDOUTPin  
SPDIN 1  
6
7
6
4
5
4
2
3
2
0
1
0
6
4
5
4
2
3
2
0
1
0
6
7
6
4
5
4
2
3
2
0
1
0
7
SPDIN 2  
SPCLKO  
6
Note:  
When the SPI core is used for flash commands, like the Dual Read command, the host discards the bytes  
received during the command, address, and dummy byte portions of the transaction.  
37.10.4 HOW BIOEN BIT CONTROLS DIRECTION OF SPDOUT BUFFER  
When the SPI is configured for Half Duplex mode or Dual Mode the SPDOUT pin operates as a bi-directional signal.  
The BIOEN bit is used to determine the direction of the SPDOUT buffer when a byte is transmitted. Internally, the BIOEN  
bit is sampled to control the direction of the SPDOUT buffer when the TX_DATA value is loaded into the transmit shift  
register. The direction of the buffer is never changed while a byte is being transmitted.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 509  
MEC170x  
Since the TX_DATA register may be written while a byte is being shifted out on the SPDOUT pin, the BIOEN bit does  
not directly control the direction of the SPDOUT buffer. An internal DIRECTION bit, which is a latched version of the  
BIOEN bit determines the direction of the SPDOUT buffer. The following list summarizes when the BIOEN bit is sam-  
pled.  
• The DIRECTION bit is equal to the BIOEN bit when data is not being shifted out (i.e., SPI interface is idle).  
• The hardware samples the BIOEN bit when it is shifting out the last bit of a byte to determine if the buffer needs to  
be turned around for the next byte.  
• The BIOEN bit is also sampled any time the value in the TX_DATA register is loaded into the shift register to be  
transmitted.  
If a TAR (Turn-around time) is required between transmitting and receiving bytes on the SPDOUT signal, software  
should allow all the bytes to be transmitted before changing the buffer to an input and then load the TX_DATA register  
to begin receiving bytes. If TAR greater than zero is required, software must wait for the transmission in one direction  
to complete before writing the TX_DATA register to start sending/receiving in the opposite direction. This allows the SPI  
block to operate the same as legacy Microchip SPI devices.  
37.10.5 CONFIGURING THE SPI CLOCK GENERATOR  
The SPI controller generates the SPI_CLK signal to the external SPI device. The frequency of the SPI_CLK signal is  
determined by one of two clock sources and the Preload value of the clock generator down counter. The clock generator  
toggles the SPI_CLK output every time the counter underflows, while data is being transmitted.  
Note:  
When the SPI interface is in the idle state and data is not being transmitted, the SPI_CLK signal stops in  
the inactive state as determined by the configuration bits.  
The clock source to the down counter is determined by Bit CLKSRC. Either the main system clock or the 2MHz clock  
can be used to decrement the down counter in the clock generator logic.  
The SPI_CLK frequency is determined by the following formula:  
1
2
  
  
--  
SPI_CLK_FREQ=  
REFERENCE_CLOCK PRELOAD  
The REFERENCE_CLOCK frequency is selected by CLKSRC in the SPI Clock Control Register and PRELOAD is the  
PRELOAD field of the SPI Clock Generator Register. The frequency can be either the 48MHz clock or a 2MHz clock.  
When the PRELOAD value is 0, the REFERENCE_CLOCK is always the 48MHz clock and the CLKSRC bit is ignored.  
Sample SPI Clock frequencies are shown in the following table:  
TABLE 37-4: SPI_CLK FREQUENCIES  
Clock Source  
Preload  
SPI_CLK Frequency  
Don’t Care  
48MHz  
0
1
2
48MHz  
24MHz  
48MHz  
12MHz  
(default)  
48MHz  
48MHz  
2MHz  
2MHz  
2MHz  
2MHz  
3
63  
1
6MHz  
381KHz  
1MHz  
2
500KHz  
333KHz  
15.9KHz  
3
63  
37.10.6 CONFIGURING SPI MODE  
In practice, there are four modes of operation that define when data should be latched. These four modes are the com-  
binations of the SPI_CLK polarity and phase.  
DS00002206H-page 510  
2016-2020 Microchip Technology Inc.  
MEC170x  
The output of the clock generator may be inverted to create an active high or active low clock pulse. This is used to  
determine the inactive state of the SPI_CLK signal and is used for determining the first edge for shifting the data. The  
polarity is selected by CLKPOL in the SPI Clock Control Register.  
The phase of the clock is selected independently for receiving data and transmitting data. The receive phase is deter-  
mine by RCLKPH and the transmit phase is determine by TCLKPH in the SPI Clock Control Register.  
The following table summarizes the effect of CLKPOL, RCLKPH and TCLKPH.  
TABLE 37-5: SPI DATA AND CLOCK BEHAVIOR  
CLKPOL  
RCLKPH  
TCLKPH  
Behavior  
0
0
0
Inactive state is low. First edge is rising edge.  
Data is sampled on the rising edge.  
Data is transmitted on the falling edge.  
Data is valid before the first rising edge.  
0
0
0
1
1
0
Inactive state is low. First edge is rising edge.  
Data is sampled on the rising edge.  
Data is transmitted on the rising edge.  
Inactive state is low. First edge is rising edge.  
Data is sampled on the falling edge.  
Data is transmitted on the falling edge.  
Data is valid before the first rising edge.  
0
1
1
0
1
0
Inactive state is low. First edge is rising edge.  
Data is sampled on the falling edge.  
Data is transmitted on the rising edge.  
Inactive state is high. First edge is falling edge.  
Data is sampled on the falling edge.  
Data is transmitted on the rising edge.  
Data is valid before the first falling edge.  
1
1
0
1
1
0
Inactive state is high. First edge is falling edge.  
Data is sampled on the falling edge.  
Data is transmitted on the falling edge.  
Inactive state is high. First edge is falling edge.  
Data is sampled on the rising edge.  
Data is transmitted on the rising edge.  
Data is valid before the first falling edge.  
1
1
1
Inactive state is high. First edge is falling edge.  
Data is sampled on the rising edge.  
Data is transmitted on the falling edge.  
37.11 SPI Examples  
37.11.1 FULL DUPLEX MODE TRANSFER EXAMPLES  
37.11.1.1 Read Only  
The slave device used in this example is a MAXIM MAX1080 10 bit, 8 channel ADC:  
• The SPI block is activated by setting the enable bit in SPIAR - SPI Enable Register  
• The SPIMODE bit is de-asserted '0' to enable the SPI interface in Full Duplex mode.  
• The CLKPOL and TCLKPH bits are de-asserted '0', and RCLKPH is asserted '1' to match the clocking require-  
ments of the slave device.  
• The LSBF bit is de-asserted '0' to indicate that the slave expects data in MSB-first order.  
• Assert CS# using a GPIO pin.  
• Write a valid command word (as specified by the slave device) to the SPITD - SPI TX_Data Register with TXFE  
asserted '1'. The SPI master automatically clears the TXFE bit indicating the byte has been put in the TX buffer. If  
the shift register is empty the TX_DATA byte is loaded into the shift register and the SPI master reasserts the  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 511  
MEC170x  
TXFE bit. Once the data is in the shift register the SPI master begins shifting the data value onto the SPDOUT pin  
and drives the SPCLK pin. Data on the SPDIN pin is also sampled on each clock.  
• Once the TXFE bit is asserted the SPI Master is ready to receive its next byte. Before writing the next TX_DATA  
value, software must clear the RXBF status bit by reading the SPIRD - SPI RX_Data Register.  
• A dummy 8 bit data value (any value) is written to the TX_DATA register. The SPI master automatically clears the  
TXFE bit, but does not begin shifting the dummy data value onto the SPDOUT pin. This byte will remain in the  
TX_DATA register until the TX shift register is empty.  
• After 8 SPI_CLK pulses from the first transmit bytes:  
- The first SPI cycle is complete, RXBF bit is asserted '1', and the SPINT interrupt is asserted, if enabled. The  
data now contained in SPIRD - SPI RX_Data Register is invalid since the last cycle was initiated solely to  
transmit command data to the slave. This particular slave device drives '0' on the SPDIN pin to the master  
while it is accepting command data. This SPIRD data is ignored.  
- Once the first SPI cycle is completed, the SPI master takes the pending data in the TX_DATA register and  
loads it into the TX shift register. Loading the shift register automatically asserts the TXFE bit, begins shifting  
the dummy data value onto the SPDOUT pin, and drives the SPCLK pin. Data on the SPDIN pin is also sam-  
pled on each clock.  
• Once the TXFE bit is asserted the SPI Master is ready to receive its next byte. Before writing the next TX_DATA  
value, software must clear the RXBF status bit by reading the SPIRD - SPI RX_Data Register.  
• The final SPI cycle is initiated when another dummy 8 bit data value (any value) is written to the TX_DATA regis-  
ter. Note that this value may be another dummy value or it can be a new 8 bit command to be sent to the ADC.  
The new command will be transmitted while the final data from the last command is received simultaneously. This  
overlap allows ADC data to be read every 16 SPCLK cycles after the initial 24 clock cycle.The SPI master auto-  
matically clears the TXFE bit, but does not begin shifting the dummy data value onto the SPDOUT pin. This byte  
will remain in the TX_DATA register until the TX shift register is empty.  
• After 8 SPI_CLK pulses, the second SPI cycle is complete:  
- The first SPI cycle is complete, RXBF bit is asserted '1', and the SPINT interrupt is asserted, if enabled. The  
data now contained in SPIRD - SPI RX_Data Register is the first half of a valid 16 bit ADC value. SPIRD is  
read and stored.  
- Once the second SPI cycle is completed, the SPI master takes the pending data in the TX_DATA register and  
loads it into the TX shift register. Loading the shift register automatically asserts the TXFE bit, begins shifting  
the data value onto the SPDOUT pin, and drives the SPCLK pin. Data on the SPDIN pin is also sampled on  
each clock.  
• After 8 SPI_CLK pulses, the final SPI cycle is complete, TXBF is asserted '1', and the SPINT interrupt is asserted  
(if enabled). The data now contained in SPIRD - SPI RX_Data Register is the second half of a valid 16 bit ADC  
value. SPIRD is read and stored.  
• If a command was overlapped with the received data in the final cycle, #CS should remain asserted and the SPI  
master will initiate another SPI cycle. If no new command was sent, #CS is released and the SPI is idle.  
37.11.1.2 Read/Write  
The slave device used in this example is a Fairchild NS25C640 FM25C640 64K Bit Serial EEPROM. The following sub-  
sections describe the read and write sequences.  
Read  
• The SPI block is activated by setting the enable bit in SPIAR - SPI Enable Register  
• The SPIMODE bit is de-asserted '0' to enable the SPI interface in Full Duplex mode.  
• The CLKPOL, TCLKPH and RCLKPH bits are de-asserted '0' to match the clocking requirements of the slave  
device.  
• The LSBF bit is de-asserted '0' to indicate that the slave expects data in MSB-first order.  
• Assert CS# low using a GPIO pin.  
• Write a valid command word (as specified by the slave device) to the SPITD - SPI TX_Data Register with TXFE  
asserted '1'. The SPI master automatically clears the TXFE bit indicating the byte has been put in the TX buffer. If  
the shift register is empty the TX_DATA byte is loaded into the shift register and the SPI master reasserts the  
TXFE bit. Once the data is in the shift register the SPI master begins shifting the data value onto the SPDOUT pin  
and drives the SPI_CLK pin. Data on the SPDIN pin is also sampled on each clock.  
• Once the TXFE bit is asserted the SPI Master is ready to receive its next byte. Before writing the next TX_DATA  
value, software must clear the RXBF status bit by reading the SPIRD - SPI RX_Data Register.  
DS00002206H-page 512  
2016-2020 Microchip Technology Inc.  
MEC170x  
• Next, EEPROM address A15-A8 is written to the TX_DATA register. The SPI master automatically clears the  
TXFE bit, but does not begin shifting the dummy data value onto the SPDOUT pin. This byte will remain in the  
TX_DATA register until the TX shift register is empty.  
• After 8 SPI_CLK pulses from the first transmit byte (Command Byte transmitted):  
- The first SPI cycle is complete, RXBF bit is asserted '1', and the SPINT interrupt is asserted, if enabled. The  
data now contained in SPIRD - SPI RX_Data Register is invalid since the last cycle was initiated solely to  
transmit command data to the slave. This particular slave device tri-states the SPDIN pin to the master while  
it is accepting command data. This SPIRD data is ignored.  
USER’S NOTE: External pull-up or pull-down is required on the SPDIN pin if it is tri-stated by the slave device.  
- Once the first SPI cycle is completed, the SPI master takes the pending data in the TX_DATA register  
(EEPROM address A15-A8) and loads it into the TX shift register. Loading the shift register automatically  
asserts the TXFE bit, begins shifting the dummy data value onto the SPDOUT pin, and drives the SPI_CLK  
pin. Data on the SPDIN pin is also sampled on each clock. Note: The particular slave device ignores address  
A15-A13.  
• Once the TXFE bit is asserted the SPI Master is ready to receive its next byte. Before writing the next TX_DATA  
value, software must clear the RXBF status bit by reading the SPIRD - SPI RX_Data Register.  
• Next, EEPROM address A7-A0 is written to the TX_DATA register. The SPI master automatically clears the TXFE  
bit, but does not begin shifting this data value onto the SPDOUT pin. This byte will remain in the TX_DATA register  
until the TX shift register is empty.  
• After 8 SPI_CLK pulses from the second transmit byte (Address Byte (MSB) transmitted):  
- EEPROM address A15-A8 has been transmitted to the slave completing the second SPI cycle. Once again,  
the RXBF bit is asserted '1' and the SPINT interrupt is asserted, if enabled. The data now contained in SPIRD  
- SPI RX_Data Register is invalid since the last cycle was initiated solely to transmit address data to the  
slave.  
- Once the second SPI cycle is completed, the SPI master takes the pending data in the TX_DATA register  
(EEPROM address A7-A0) and loads it into the TX shift register. Loading the shift register automatically  
asserts the TXFE bit, begins shifting the dummy data value onto the SPDOUT pin, and drives the SPCLK pin.  
Data on the SPDIN pin is also sampled on each clock.  
• Once the TXFE bit is asserted the SPI Master is ready to receive its next byte. Before writing the next TX_DATA  
value, software must clear the RXBF status bit by reading the SPIRD - SPI RX_Data Register.  
• Next, a dummy byte is written to the TX_DATA register. The SPI master automatically clears the TXFE bit, but  
does not begin shifting this data value onto the SPDOUT pin. This byte will remain in the TX_DATA register until  
the TX shift register is empty.  
• After 8 SPI_CLK pulses, the third SPI cycle is complete (Address Byte (LSB) transmitted):  
- EEPROM address A7-A0 has been transmitted to the slave completing the third SPI cycle. Once again, the  
RXBF bit is asserted '1' and the SPINT interrupt is asserted, if enabled. The data now contained in SPIRD -  
SPI RX_Data Register is invalid since the last cycle was initiated solely to transmit address data to the slave.  
- Once the third SPI cycle is completed, the SPI master takes the pending data in the TX_DATA register  
(dummy byte) and loads it into the TX shift register. Loading the shift register automatically asserts the TXFE  
bit, begins shifting the dummy data value onto the SPDOUT pin, and drives the SPCLK pin. Data on the  
SPDIN pin is also sampled on each clock.  
• Once the TXFE bit is asserted the SPI Master is ready to receive its next byte. Before writing the next TX_DATA  
value, software must clear the RXBF status bit by reading the SPIRD - SPI RX_Data Register.  
• If only one receive byte is required, the host would not write any more value to the TX_DATA register until this  
transaction completes. If more than one byte of data is to be received, another dummy byte would be written to the  
TX_DATA register (one dummy byte per receive byte is required). The SPI master automatically clears the TXFE  
bit when the TX_DATA register is written, but does not begin shifting this data value onto the SPDOUT pin. This  
byte will remain in the TX_DATA register until the TX shift register is empty.  
• After 8 SPI_CLK pulses, the fourth SPI cycle is complete (First Data Byte received):  
- The dummy byte has been transmitted to the slave completing the fourth SPI cycle. Once again, the RXBF bit  
is asserted '1' and the SPINT interrupt is asserted, if enabled. Unlike the command and address phases, the  
data now contained in SPIRD - SPI RX_Data Register is the 8-bit EEPROM data since the last cycle was ini-  
tiated to receive data from the slave.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 513  
MEC170x  
- Once the fourth SPI cycle is completed, the SPI master takes the pending data in the TX_DATA register (if  
any) and loads it into the TX shift register. This process will be repeated until all the desired data is received.  
• The host software will read and store the EEPROM data value in SPIRD - SPI RX_Data Register.  
• If no more data needs to be received by the master, CS# is released and the SPI is idle. Otherwise, master contin-  
ues reading the data by writing a dummy value to the TX_DATA register after every 8 SPI_CLK cycles.  
Write  
• The SPI block is activated by setting the enable bit in SPIAR - SPI Enable Register  
• The SPIMODE bit is de-asserted '0' to enable the SPI interface in Full Duplex mode.  
• The CLKPOL, TCLKPH and RCLKPH bits are de-asserted '0' to match the clocking requirements of the slave  
device.  
• The LSBF bit is de-asserted '0' to indicate that the slave expects data in MSB-first order.  
• Assert WR# high using a GPIO pin.  
• Assert CS# low using a GPIO pin.  
• Write a valid command word (as specified by the slave device) to the SPITD - SPI TX_Data Register with TXFE  
asserted '1'. The SPI master automatically clears the TXFE bit indicating the byte has been put in the TX buffer. If  
the shift register is empty the TX_DATA byte is loaded into the shift register and the SPI master reasserts the  
TXFE bit. Once the data is in the shift register the SPI master begins shifting the data value onto the SPDOUT pin  
and drives the SPI_CLK pin. Data on the SPDIN pin is also sampled on each clock.  
• Once the TXFE bit is asserted the SPI Master is ready to receive its next byte. Before writing the next TX_DATA  
value, software must clear the RXBF status bit by reading the SPIRD - SPI RX_Data Register.  
• Next, EEPROM address A15-A8 is written to the TX_DATA register. The SPI master automatically clears the  
TXFE bit, but does not begin shifting the dummy data value onto the SPDOUT pin. This byte will remain in the  
TX_DATA register until the TX shift register is empty.  
• After 8 SPI_CLK pulses from the first transmit byte (Command Byte transmitted):  
- The first SPI cycle is complete, RXBF bit is asserted '1', and the SPINT interrupt is asserted, if enabled. The  
data now contained in SPIRD - SPI RX_Data Register is invalid since the last cycle was initiated solely to  
transmit command data to the slave. This particular slave device tri-states the SPDIN pin to the master while  
it is accepting command data. This SPIRD data is ignored.  
USER’S NOTE: External pull-up or pull-down is required on the SPDIN pin if it is tri-stated by the slave device.  
- Once the first SPI cycle is completed, the SPI master takes the pending data in the TX_DATA register  
(EEPROM address A15-A8) and loads it into the TX shift register. Loading the shift register automatically  
asserts the TXFE bit, begins shifting the dummy data value onto the SPDOUT pin, and drives the SPI_CLK  
pin. Data on the SPDIN pin is also sampled on each clock. Note: The particular slave device ignores address  
A15-A13.  
• Once the TXFE bit is asserted the SPI Master is ready to receive its next byte. Before writing the next TX_DATA  
value, software must clear the RXBF status bit by reading the SPIRD - SPI RX_Data Register.  
• Next, EEPROM address A7-A0 is written to the TX_DATA register. The SPI master automatically clears the TXFE  
bit, but does not begin shifting this data value onto the SPDOUT pin. This byte will remain in the TX_DATA register  
until the TX shift register is empty.  
• After 8 SPI_CLK pulses from the second transmit byte (Address Byte (MSB) transmitted):  
- EEPROM address A15-A8 has been transmitted to the slave completing the second SPI cycle. Once again,  
the RXBF bit is asserted '1' and the SPINT interrupt is asserted, if enabled. The data now contained in SPIRD  
- SPI RX_Data Register is invalid since the last cycle was initiated solely to transmit address data to the  
slave.  
- Once the second SPI cycle is completed, the SPI master takes the pending data in the TX_DATA register  
(EEPROM address A7-A0) and loads it into the TX shift register. Loading the shift register automatically  
asserts the TXFE bit, begins shifting the dummy data value onto the SPDOUT pin, and drives the SPCLK pin.  
Data on the SPDIN pin is also sampled on each clock.  
• Once the TXFE bit is asserted the SPI Master is ready to receive its next byte. Before writing the next TX_DATA  
value, software must clear the RXBF status bit by reading the SPIRD - SPI RX_Data Register.  
• Next, a data byte (D7:D0) is written to the TX_DATA register. The SPI master automatically clears the TXFE bit,  
but does not begin shifting this data value onto the SPDOUT pin. This byte will remain in the TX_DATA register  
until the TX shift register is empty.  
DS00002206H-page 514  
2016-2020 Microchip Technology Inc.  
MEC170x  
• After 8 SPI_CLK pulses, the third SPI cycle is complete (Address Byte (LSB) transmitted):  
- EEPROM address A7-A0 has been transmitted to the slave completing the third SPI cycle. Once again, the  
RXBF bit is asserted '1' and the SPINT interrupt is asserted, if enabled. The data now contained in SPIRD -  
SPI RX_Data Register is invalid since the last cycle was initiated solely to transmit address data to the slave.  
- Once the third SPI cycle is completed, the SPI master takes the pending data in the TX_DATA register (data  
byte D7:D0) and loads it into the TX shift register. Loading the shift register automatically asserts the TXFE  
bit, begins shifting the dummy data value onto the SPDOUT pin, and drives the SPCLK pin. Data on the  
SPDIN pin is also sampled on each clock.  
• Once the TXFE bit is asserted the SPI Master is ready to receive its next byte. Before writing the next TX_DATA  
value, software must clear the RXBF status bit by reading the SPIRD - SPI RX_Data Register.  
• If only one data byte is to be written, the host would not write any more values to the TX_DATA register until this  
transaction completes. If more than one byte of data is to be written, another data byte would be written to the  
TX_DATA register. The SPI master automatically clears the TXFE bit when the TX_DATA register is written, but  
does not begin shifting this data value onto the SPDOUT pin. This byte will remain in the TX_DATA register until  
the TX shift register is empty.  
• After 8 SPI_CLK pulses, the fourth SPI cycle is complete (First Data Byte transmitted):  
- The data byte has been transmitted to the slave completing the fourth SPI cycle. Once again, the RXBF bit is  
asserted '1' and the SPINT interrupt is asserted, if enabled. Like the command and address phases, the data  
now contained in SPIRD - SPI RX_Data Register is invalid since the last cycle was initiated to transmit data to  
the slave.  
- Once the fourth SPI cycle is completed, the SPI master takes the pending data in the TX_DATA register (if  
any) and loads it into the TX shift register. This process will be repeated until all the desired data is transmit-  
ted.  
• If no more data needs to be transmitted by the master, CS# and WR# are released and the SPI is idle.  
37.11.2 HALF DUPLEX (BIDIRECTIONAL MODE) TRANSFER EXAMPLE  
The slave device used in this example is a National LM74 12 bit (plus sign) temperature sensor.  
• The SPI block is activated by setting the enable bit in SPIAR - SPI Enable Register  
• The SPIMODE bit is asserted '1' to enable the SPI interface in Half Duplex mode.  
• The CLKPOL, TCLKPH and RCLKPH bits are de-asserted '0' to match the clocking requirements of the slave  
device.  
• The LSBF bit is de-asserted '0' to indicate that the slave expects data in MSB-first order.  
• BIOEN is asserted '0' to indicate that the first data in the transaction is to be received from the slave.  
• Assert CS# using a GPIO pin.  
//Receive 16-bit Temperature Reading  
• Write a dummy command byte (as specified by the slave device) to the SPITD - SPI TX_Data Register with TXFE  
asserted '1'. The SPI master automatically clears the TXFE bit indicating the byte has been put in the TX buffer. If  
the shift register is empty the TX_DATA byte is loaded into the shift register and the SPI master reasserts the  
TXFE bit. Once the data is in the shift register the SPI master begins shifting the data value onto the SPDOUT pin  
and drives the SPI_CLK pin. This data is lost because the output buffer is disabled. Data on the SPDIN pin is sam-  
pled on each clock.  
• Once the TXFE bit is asserted the SPI Master is ready to receive its next byte. Before writing the next TX_DATA  
value, software must clear the RXBF status bit by reading the SPIRD - SPI RX_Data Register.  
• Next, another dummy byte is written to the TX_DATA register. The SPI master automatically clears the TXFE bit,  
but does not begin shifting the dummy data value onto the SPDOUT pin. This byte will remain in the TX_DATA  
register until the TX shift register is empty.  
• After 8 SPI_CLK pulses from the first receive byte  
- The first SPI cycle is complete, RXBF bit is asserted '1', and the SPINT interrupt is asserted, if enabled. The  
data now contained in SPIRD - SPI RX_Data Register is the first half of the 16 bit word containing the tem-  
perature data.  
- Once the first SPI cycle is completed, the SPI master takes the pending data in the TX_DATA register  
(dummy byte 2) and loads it into the TX shift register. Loading the shift register automatically asserts the  
TXFE bit, begins shifting the dummy data value onto the SPDOUT pin, and drives the SPI_CLK pin. Data on  
the SPDIN pin is also sampled on each clock.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 515  
MEC170x  
• Once the TXFE bit is asserted the SPI Master is ready to receive its next byte. Before writing the next TX_DATA  
value, software must clear the RXBF status bit by reading the SPIRD - SPI RX_Data Register.  
//Transmit next reading command  
• BIOEN is asserted '1' to indicate that data will now be driven by the master.  
• Next, a command byte is written to the TX_DATA register. This value is the first half of a 16 bit command to be  
sent to temperature sensor peripheral. The SPI master automatically clears the TXFE bit, but does not begin shift-  
ing the command data value onto the SPDOUT pin. This byte will remain in the TX_DATA register until the TX shift  
register is empty. This data will be transmitted because the output buffer is enabled. Data on the SPDIN pin is  
sampled on each clock.  
• After 8 SPI_CLK pulses from the second receive byte:  
- The second SPI cycle is complete, RXBF bit is asserted '1', and the SPINT interrupt is asserted, if enabled.  
The data now contained in SPIRD - SPI RX_Data Register is the second half of the 16 bit word containing the  
temperature data.  
- Once the first SPI cycle is completed, the SPI master takes the pending data in the TX_DATA register (com-  
mand byte 1) and loads it into the TX shift register. Loading the shift register automatically asserts the TXFE  
bit, begins shifting the dummy data value onto the SPDOUT pin, and drives the SPI_CLK pin. Data on the  
SPDIN pin is also sampled on each clock.  
• Once the TXFE bit is asserted the SPI Master is ready to receive its next byte. Before writing the next TX_DATA  
value, software must clear the RXBF status bit by reading the SPIRD - SPI RX_Data Register.  
• Next, the second command byte is written to the TX_DATA register. The SPI master automatically clears the  
TXFE bit, but does not begin shifting the command data value onto the SPDOUT pin. This byte will remain in the  
TX_DATA register until the TX shift register is empty.  
• After 8 SPI_CLK pulses from the first transmit byte:  
- The third SPI cycle is complete, RXBF bit is asserted '1', and the SPINT interrupt is asserted, if enabled. The  
data now contained in SPIRD - SPI RX_Data Register is invalid, since this command was used to transmit the  
first command byte to the SPI slave.  
- Once the first SPI cycle is completed, the SPI master takes the pending data in the TX_DATA register (com-  
mand byte 2) and loads it into the TX shift register. Loading the shift register automatically asserts the TXFE  
bit, begins shifting the dummy data value onto the SPDOUT pin, and drives the SPI_CLK pin. Data on the  
SPDIN pin is also sampled on each clock.  
• Once the TXFE bit is asserted the SPI Master is ready to transmit or receive its next byte. Before writing the next  
TX_DATA value, software must clear the RXBF status bit by reading the SPIRD - SPI RX_Data Register.  
• Since no more data needs to be transmitted, the host software will wait for the RXBF status bit to be asserted indi-  
cating the second command byte was transmitted successfully.  
• CS# is de-asserted.  
37.12 EC-Only/Runtime 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 each instance of the General Purpose Serial Peripheral Interface Block in the Block  
Overview and Base Address Table in Section 3.0, "Device Inventory".  
TABLE 37-6: REGISTER SUMMARY  
Offset  
Register Name  
0h  
4h  
SPI Enable Register  
SPI Control Register  
SPI Status Register  
8h  
Ch  
SPI TX_Data Register  
10h  
14h  
18h  
SPI RX_Data Register  
SPI Clock Control Register  
SPI Clock Generator Register  
DS00002206H-page 516  
2016-2020 Microchip Technology Inc.  
MEC170x  
37.12.1 SPI ENABLE REGISTER  
00h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
31:1 Reserved  
0 ENABLE  
R
-
-
R/W  
0h  
RESET_  
SYS  
1=Enabled. The device is fully operational  
0=Disabled. Clocks are gated to conserve power and the SPDOUT  
and SPI_CLK signals are set to their inactive state  
37.12.2 SPI CONTROL REGISTER  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:7 Reserved  
6 CE  
R
-
-
R/W  
0h  
RESET_  
SYS  
SPI Chip Select Enable.  
1=SPI_CS# output signal is asserted, i.e., driven to logic ‘0’  
0=SPI_CS# output signal is deasserted, i.e., driven to logic ‘1’  
5 AUTO_READ  
R/W  
0h  
RESET_  
SYS  
Auto Read Enable.  
1=A read of the SPI RX_DATA Register will clear both the RXBF sta-  
tus bit and the TXBE status bit  
0=A read of the SPI RX_DATA Register will clear the RXBF status bit.  
The TXBE status bit will not be modified  
4 SOFT_RESET  
R/W  
R/W  
0h  
0h  
RESET_  
SYS  
Soft Reset is a self-clearing bit. Writing zero to this bit has no effect.  
Writing a one to this bit resets the entire SPI Interface, including all  
counters and registers back to their initial state.  
3:2 SPDIN_SELECT  
RESET_  
SYS  
The SPDIN Select which SPI input signals are enabled when the  
BIOEN bit is configured as an input.  
1xb=SPDIN1 and SPDIN2. Select this option for Dual Mode  
01b=SPDIN2 only. Select this option for Half Duplex  
00b=SPDIN1 only. Select this option for Full Duplex  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 517  
MEC170x  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
1 BIOEN  
R/W  
1h  
RESET_  
SYS  
Bidirectional Output Enable control. When the SPI is configured for  
Half Duplex mode or Dual Mode the SPDOUT pin operates as a bi-  
directional signal. The BIOEN bit is used by the internal DIRECTION  
bit to control the direction of the SPDOUT buffers. The direction of  
the buffer is never changed while a byte is being transmitted.  
1=The SPDOUT_Direction signal configures the SPDOUT signal as  
an output.  
0=The SPDOUT_Direction signal configures the SPDOUT signal as  
an input.  
See Section 37.10.4, "How BIOEN Bit Controls Direction of SPD-  
OUT Buffer" for details on the use of BIOEN.  
0 LSBF  
R/W  
0h  
RESET_  
SYS  
Least Significant Bit First  
1=The data is transferred in LSB-first order.  
0=The data is transferred in MSB-first order. (default)  
37.12.3 SPI STATUS REGISTER  
08h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:3 Reserved  
2 ACTIVE  
R
R
-
-
0h  
RESET_  
SYS  
The ACTIVE bit goes high (Active) in the following conditions:  
While transmitting data  
While receiving data  
While a received byte is in the RX_Data buffer  
1 RXBF  
R
R
0h  
1h  
RESET_  
SYS  
Receive Data Buffer Full status. When this bit is ‘1’ the Rx_Data buf-  
fer is full. Reading the SPI RX_Data Register clears this bit. This sig-  
nal may be used to generate a SPI_RX interrupt to the EC.  
1=RX_Data buffer is full  
0=RX_Data buffer is not full  
0 TXBE  
RESET_  
SYS  
Transmit Data Buffer Empty status. When this bit is ‘1’ the Tx_Data  
buffer is empty. Writing the SPI TX_Data Register clears this bit. This  
signal may be used to generate a SPI_TX interrupt to the EC.  
1=TX_Data buffer is empty  
0=TX_Data buffer is not empty  
DS00002206H-page 518  
2016-2020 Microchip Technology Inc.  
MEC170x  
37.12.4 SPI TX_DATA REGISTER  
0Ch  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
31:8 Reserved  
7:0 TX_DATA  
R
-
-
R/W  
0h  
RESET_  
SYS  
A write to this register when the Tx_Data buffer is empty (TXBE in  
the SPI Status Register is ‘1’) initiates a SPI transaction. The byte  
written to this register will be loaded into the shift register and the  
TXBE flag will be asserted. This indicates that the next byte can be  
written into the TX_DATA register. This byte will remain in the TX_-  
DATA register until the SPI core has finished shifting out the previ-  
ous byte. Once the shift register is empty, the hardware will load the  
pending byte into the shift register and once again assert the TxBE  
bit.  
The TX_DATA register must not be written when the TXBE bit is  
zero. Writing this register may overwrite the transmit data before it is  
loaded into the shift register.  
37.12.5 SPI RX_DATA REGISTER  
10h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:8 Reserved  
7:0 RX_DATA  
R
-
-
R/W  
0h  
RESET_  
SYS  
This register is used to read the value returned by the external SPI  
device. At the end of a byte transfer the RX_DATA register contains  
serial input data (valid or not) from the last transaction and the RXBF  
bit is set to one. This status bit indicates that the RX_DATA register  
has been loaded with a the serial input data. The RX_DATA register  
should not be read before the RXBF bit is set.  
The RX_DATA register must be read, clearing the RXBF status bit  
before writing the TX_DATA register. The data in the receive shift  
register is only loaded into the RX_DATA register when this bit is  
cleared. If a data byte is pending in the receive shift register the  
value will be loaded immediately into the RX_DATA register and the  
RXBF status flag will be asserted. Software should read the RX_-  
DATA register twice before starting a new transaction to make sure  
the RX_DATA buffer and shift register are both empty.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 519  
MEC170x  
37.12.6 SPI CLOCK CONTROL REGISTER  
This register should not be changed during an active SPI transaction.  
14h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:5 Reserved  
4 CLKSRC  
R
-
-
R/W  
0h  
RESET_  
SYS  
Clock Source for the SPI Clock Generator. This bit should not be  
changed during a SPI transaction. When the field PRELOAD in the  
SPI Clock Generator Register is 0, this bit is ignored and the Clock  
Source is always the main system clock (the equivalent of setting  
this bit to ‘0’).  
1=2MHz  
0=48MHz  
3 Reserved  
R
-
-
2 CLKPOL  
R/W  
0h  
RESET_  
SYS  
SPI Clock Polarity.  
1=The SPI_CLK signal is high when the interface is idle and the first  
clock edge is a falling edge  
0=The SPI_CLK is low when the interface is idle and the first clock  
edge is a rising edge  
1 RCLKPH  
R/W  
1h  
RESET_  
SYS  
Receive Clock Phase, the SPI_CLK edge on which the master will  
sample data. The receive clock phase is not affected by the SPI  
Clock Polarity.  
1=Valid data on SPDIN signal is expected after the first SPI_CLK  
edge. This data is sampled on the second and following even  
SPI_CLK edges (i.e., sample data on falling edge)  
0=Valid data is expected on the SPDIN signal on the first SPI_CLK  
edge. This data is sampled on the first and following odd SPI_-  
CLK edges (i.e., sample data on rising edge)  
0 TCLKPH  
R/W  
0h  
RESET_  
SYS  
Transmit Clock Phase, the SPCLK edge on which the master will  
clock data out. The transmit clock phase is not affected by the SPI  
Clock Polarity.  
1=Valid data is clocked out on the first SPI_CLK edge on SPDOUT  
signal. The slave device should sample this data on the second  
and following even SPI_CLK edges (i.e., sample data on falling  
edge)  
0=Valid data is clocked out on the SPDOUT signal prior to the first  
SPI_CLK edge. The slave device should sample this data on the  
first and following odd SPI_CLK edges (i.e., sample data on ris-  
ing edge)  
DS00002206H-page 520  
2016-2020 Microchip Technology Inc.  
MEC170x  
37.12.7 SPI CLOCK GENERATOR REGISTER  
18h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
31:16 Reserved  
5:0 PRELOAD  
R
-
-
R/W  
2h  
RESET_  
SYS  
SPI Clock Generator Preload value.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 521  
MEC170x  
38.0 QUAD SPI MASTER CONTROLLER  
38.1 Overview  
The Quad SPI Master Controller may be used to communicate with various peripheral devices that use a Serial Periph-  
eral Interface, such as EEPROMS, DACs and ADCs. The controller can be configured to support advanced SPI Flash  
devices with multi-phase access protocols. Data can be transfered in Half Duplex, Single Data Rate, Dual Data Rate  
and Quad Data Rate modes. In all modes and all SPI clock speeds, the controller supports back-to-back reads and  
writes without clock stretching if internal bandwidth permits.  
38.2 References  
No references have been cited for this feature.  
38.3 Terminology  
No terminology for this block.  
38.4 Interface  
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.  
FIGURE 38-1:  
I/O DIAGRAM OF BLOCK  
Quad SPI Master Controller  
Host Interface  
Signal Description  
Power, Clocks and Reset  
Interrupts  
38.5 Signal Description  
TABLE 38-1: EXTERNAL SIGNAL DESCRIPTION  
Name  
Direction  
Description  
QSPI_CLK  
QSPI_CS#  
QSPI_IO0  
Output  
Output  
SPI Clock output used to drive the SPCLK pin.  
SPI chip select  
Input/Output SPI Data pin 0. Also used as SPI_MOSI, Master-Out/Slave-In when  
the interface is used in Single wire mode  
QSPI_IO1  
Input/Output SPI Data pin 1. Also used as SPI_MISO, Master-In/Slave-Out when  
the interface is used in Single wire mode  
DS00002206H-page 522  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 38-1: EXTERNAL SIGNAL DESCRIPTION (CONTINUED)  
Name  
Direction  
Description  
QSPI_IO2  
Input/Output SPI Data pin 2 when the SPI interface is used in Quad Mode. Also  
can be used by firmware as WP.  
QSPI_IO3  
Input/Output SPI Data pin 3 when the SPI interface is used in Quad Mode. Also  
can be used by firmware as HOLD.  
38.6 Host Interface  
The registers defined for the General Purpose Serial Peripheral Interface are accessible by the various hosts as indi-  
cated in Section 38.11, "EC Registers".  
38.7 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
38.7.1  
POWER  
Name  
VTR  
Description  
The logic and registers implemented in this block are powered by this  
power well.  
38.7.2  
38.7.3  
CLOCKS  
Name  
Description  
48MHz  
This is a clock source for the SPI clock generator.  
RESETS  
Name  
Description  
RESET_SYS  
This signal resets all the registers and logic in this block to their default  
state.QMSPI Status Register  
RESET  
This reset is generated if either the RESET_SYS is asserted or the  
SOFT_RESET is asserted.  
38.8 Interrupts  
This section defines the Interrupt Sources generated from this block.  
Source  
Description  
QMSPI_INT  
Interrupt generated by the Quad SPI Master Controller. Events that may  
cause the interrupt to be asserted are stored in the QMSPI Status Regis-  
ter.  
38.9 Low Power Modes  
The Quad SPI Master Controller is always in its lowest power state unless a transaction is in process. A transaction is  
in process between the time the START bit is written with a ‘1’ and the TRANSFER_DONE bit is set by hardware to ‘1’.  
If the QMSPI SLEEP_ENABLE input is asserted, writes to the START bit are ignored and the Quad SPI Master Control-  
ler will remain in its lowest power state.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 523  
MEC170x  
38.10 Description  
• Support for multiple SPI pin configurations  
- Single wire half duplex  
- Two wire full duplex  
- Two wire double data rate  
- Four wire quad data rate  
• Separate FIFO buffers for Receive and Transmit  
- 8 byte FIFO depth in each FIFO  
- Each FIFO can be 1 byte, 2 bytes or 4 bytes wide  
• Support for all four SPI clock formats  
• Programmable SPI Clock generator, with clock polarity and phase controls  
• Separate DMA support for Receive and Transmit data transfers  
• Configurable interrupts, for errors, individual bytes, or entire transactions  
• Descriptor Mode, in which a set of five descriptor registers can configure the controller to autonomously perform  
multi-phase SPI data transfers  
• Capable of wire speed transfers in all SPI modes and all configurable SPI clock rates (internal bus contention may  
cause clock stretching)  
FIGURE 38-2:  
QUAD MASTER SPI BLOCK DIAGRAM  
Internal  
Data Bus  
QSPI_IO0  
QSPI_IO1  
QSPI_IO2  
QSPI_IO3  
Clock  
Generator  
QSPI_CK  
State  
Machine  
QSPI_CS#  
Descriptor  
Registers  
DS00002206H-page 524  
2016-2020 Microchip Technology Inc.  
MEC170x  
38.10.1 SPI CONFIGURATIONS MODES  
• Half Duplex. All SPI data transfers take place on a single wire, QSPI_IO0  
• Full Duplex. This is the legacy SPI configuration, where all SPI data is transfered one bit at a time and data from  
the SPI Master to the SPI Slave takes place on SPI_MOSI (QSPI_IO0) and at the same time data from the SPI  
Slave to the SPI Master takes place on SPI_MISO (QSPI_IO1)  
• Dual Data Rate. Data transfers between the SPI Master and the SPI Slave take place two bits at a time, using  
QSPI_IO0 and QSPI_IO1  
• Quad Data Rate. Data transfers between the SPI Master and the SPI Slave take place four bits at a time, using all  
four SPI data wires, QSPI_IO0, QSPI_IO1, QSPI_IO2 and QSPI_IO3  
38.10.2 SPI CONTROLLER MODES  
• Manual. In this mode, firmware control all SPI data transfers byte at a time  
• DMA. Firmware configures the SPI Master controller for characteristics like data width but the transfer of data  
between the FIFO buffers in the SPI controller and memory is controlled by the DMA controller. DMA transfers can  
take place from the Slave to the Master, from the Master to the Slave, or in both directions simultaneously  
• Descriptor. Descriptor Mode extends the SPI Controller so that firmware can configure a multi-phase SPI transfer,  
in which each phase may have a different SPI bus width, a different direction, and a different length. For example,  
firmware can configure the controller so that a read from an advanced SPI Flash, which consists of a command  
phase, an address phase, a dummy cycle phase and the read phase, can take place as a single operation, with a  
single interrupt to firmware when the entire transfer is completed  
38.10.3 SPI CLOCK  
The SPI output clock is derived from the 48MHz, divided by a value programmed in the CLOCK_DIVIDE field of the  
QMSPI Mode Register. Sample frequencies are shown in the following table:  
TABLE 38-2: EXAMPLE SPI FREQUENCIES  
CLOCK_DIVIDE  
SPI Clock Frequency  
0
1
187.5 KHz  
48 MHz  
24 MHz  
16 MHz  
8 MHz  
2
3
6
48  
128  
255  
1 MHz  
375 KHz  
188.25 KHz  
38.10.4 ERROR CONDITIONS  
The Quad SPI Master Controller can detect some illegal configurations. When these errors are detected, an error is  
signaled via the PROGRAMMING_ERROR status bit. This bit is asserted when any of the following errors are detected:  
• Both Receive and the Transmit transfers are enabled when the SPI Master Controller is configured for Dual Data  
Rate or Quad Data Rate  
• Both Pull-up and Pull-down resistors are enabled on either the Receive data pins or the Transmit data pins  
• The transfer length is programmed in bit mode, but the total number of bits is not a multiple of 2 (when the control-  
ler is configured for Dual Data Rate) or 4 (when the controller is configured for Quad Data Rate)  
• Both the STOP bit and the START bits in the QMSPI Execute Register are set to ‘1’ simultaneously  
38.11 EC 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 each instance of the Quad SPI Master Controller Block in the Block Overview and  
Base Address Table in Section 3.0, "Device Inventory".  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 525  
MEC170x  
TABLE 38-3: REGISTER SUMMARY  
Offset  
Register Name  
0h  
4h  
QMSPI Mode Register  
QMSPI Control Register  
8h  
QMSPI Execute Register  
Ch  
QMSPI Interface Control Register  
QMSPI Status Register  
10h  
14h  
18h  
1Ch  
20h  
24h  
30h  
34h  
38h  
3Ch  
40h  
QMSPI Buffer Count Status Register  
QMSPI Interrupt Enable Register  
QMSPI Buffer Count Trigger Register  
QMSPI Transmit Buffer Register  
QMSPI Receive Buffer Register  
QMSPI Description Buffer 0 Register  
QMSPI Description Buffer 1 Register  
QMSPI Description Buffer 2 Register  
QMSPI Description Buffer 3 Register  
QMSPI Description Buffer 4 Register  
38.11.1 QMSPI MODE REGISTER  
00h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:24 Reserved  
R
-
-
24:16 CLOCK_DIVIDE  
R/W  
0h  
RESET  
The SPI clock divide in number of system clocks. A value of 1  
divides the master clock by 1, a value of 255 divides the master  
clock by 255. A value of 0 divides the master clock by 256. See  
Table 38-2, "Example SPI Frequencies" for examples.  
15:11 Reserved  
R
-
-
DS00002206H-page 526  
2016-2020 Microchip Technology Inc.  
MEC170x  
00h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
10 CHPA_MISO  
R/W  
0h  
RESET  
If CPOL=1:  
1=Data are captured on the rising edge of the SPI clock  
0=Data are captured on the falling edge of the SPI clock  
If CPOL=0:  
1=Data are captured on the falling edge of the SPI clock  
0=Data are captured on the rising edge of the SPI clock  
Application Notes:  
Common SPI Mode configurations:  
Common SPI Modes require the CHPA_MISO and CHPA_MOSI  
programmed to the same value. E.g.,  
- Mode 0: CPOL=0; CHPA_MISO=0; CHPA_MOSI=0  
- Mode 3: CPOL=1; CHPA_MISO=1; CHPA_MOSI=1  
Alternative SPI Mode configurations  
When configured for quad mode, applications operating at  
48MHz may find it difficult to meet the minimum setup timing  
using the default Mode 0. It is recommended to configure the  
Master to sample and change data on the same edge when  
operating at 48MHz as shown in these examples. E.g,  
- Mode 0, Mode 3: CPOL=0; CHPA_MISO=1; CHPA_-  
MOSI=0  
For applications operating at less than 48MHz, it is recommended  
to program as shown in these examples. E.g  
- Mode 0, Mode 3: CPOL=0, CHPA_MISO=0 and CHPA_-  
MOSI=0.  
9 CHPA_MOSI  
R/W  
0h  
RESET  
If CPOL=1:  
1=Data changes on the falling edge of the SPI clock  
0=Data changes on the rising edge of the SPI clock  
If CPOL=0:  
1=Data changes on the rising edge of the SPI clock  
0=Data changes on the falling edge of the SPI clock  
8 CPOL  
R/W  
0h  
RESET  
Polarity of the SPI clock line when there are no transactions in pro-  
cess.  
1=SPI Clock starts High  
0=SPI Clock starts Low  
7:2 Reserved  
R
-
-
1 SOFT_RESET  
W
0h  
RESET_  
SYS  
Writing this bit with a ‘1’ will reset the Quad SPI block. It is self-clear-  
ing.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 527  
MEC170x  
00h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
0 ACTIVATE  
R/W  
0h  
RESET  
1=Enabled. The block is fully operational  
0=Disabled. Clocks are gated to conserve power and the output sig-  
nals are set to their inactive state  
DS00002206H-page 528  
2016-2020 Microchip Technology Inc.  
MEC170x  
38.11.2 QMSPI CONTROL REGISTER  
04h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
31:17 TRANSFER_LENGTH  
R/W  
0h  
RESET  
The length of the SPI transfer. The count is in bytes or bits, depend-  
ing on the value of TRANSFER_LENGTH_BITS. A value of ‘0’  
means an infinite length transfer.  
16 DESCRIPTION_BUFFER_ENABLE  
R/W  
0h  
RESET  
This enables the Description Buffers to be used.  
1=Description Buffers in use. The first buffer is defined in DESCRIP-  
TION_BUFFER_POINTER  
0=Description Buffers disabled  
15:12 DESCRIPTION_BUFFER_POINTER  
R/W  
R/W  
0h  
0h  
RESET  
RESET  
This field selects the first buffer used if Description Buffers are  
enabled.  
11:10 TRANSFER_UNITS  
3=TRANSFER_LENGTH defined in units of 16-byte segments  
2=TRANSFER_LENGTH defined in units of 4-byte segments  
1=TRANSFER_LENGTH defined in units of bytes  
0=TRANSFER_LENGTH defined in units of bits  
9 CLOSE_TRANSFER_ENABLE  
R/W  
1h  
RESET  
This selects what action is taken at the end of a transfer. When the  
transaction closes, the Chip Select de-asserts, the SPI interface  
returns to IDLE and the DMA interface terminates When Description  
Buffers are in use this bit must be set only on the Last Buffer.  
1=The transaction is terminated  
0=The transaction is not terminated  
8:7 RX_DMA_ENABLE  
R/W  
0h  
RESET  
This bit enables DMA support for Receive Transfer. If enabled, DMA  
will be requested to empty the FIFO until either the interface reaches  
TRANSFER_LENGTH or the DMA sends a termination request. The  
size defined here must match DMA programmed access size.  
1=DMA is enabled.and set to 1 Byte  
2=DMA is enabled and set to 2 Bytes  
3=DMA is enabled and set to 4 Bytes  
0=DMA is disabled. All data in the Receive Buffer must be emptied by  
firmware  
6 RX_TRANSFER_ENABLE  
R/W  
0h  
RESET  
This bit enables the receive function of the SPI interface.  
1=Receive is enabled. Data received from the SPI Slave is stored in  
the Receive Buffer  
0=Receive is disabled  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 529  
MEC170x  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
5:4 TX_DMA_ENABLE  
R/W  
0h  
RESET  
This bit enables DMA support for Transmit Transfer. If enabled, DMA  
will be requested to fill the FIFO until either the interface reaches  
TRANSFER_LENGTH or the DMA sends a termination request. The  
size defined here must match DMA programmed access size.  
1=DMA is enabled.and set to 1 Byte  
2=DMA is enabled and set to 2 Bytes  
3=DMA is enabled and set to 4 Bytes  
0=DMA is disabled. All data in the Transmit Buffer must be emptied  
by firmware  
3:2 TX_TRANSFER_ENABLE  
R/W  
0h  
RESET  
This field bit selects the transmit function of the SPI interface.  
3=Transmit Enabled in 1 Mode. The MOSI or IO Bus will send out  
only 1's. The Transmit Buffer will not be used  
2=Transmit Enabled in 0 Mode. The MOSI or IO Bus will send out  
only 0's. The Transmit Buffer will not be used.  
1=Transmit Enabled. Data will be fetched from the Transmit Buffer  
and sent out on the MOSI or IO Bus.  
0=Transmit is Disabled. Not data is sent. This will cause the MOSI be  
to be undriven, or the IO bus to be undriven if Receive is also dis-  
abled.  
1:0 INTERFACE_MODE  
R/W  
0h  
RESET  
This field sets the transmission mode. If this field is set for Dual  
Mode or Quad Mode then either TX_TRANSFER_ENABLE or  
RX_TRANSFER_ENABLE must be 0.  
3=Reserved  
2=Quad Mode  
1=Dual Mode  
0=Single/Duplex Mode  
38.11.3 QMSPI EXECUTE REGISTER  
08h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:3 Reserved  
R
-
-
2 CLEAR_DATA_BUFFER  
W
0h  
RESET  
Writing a ‘1’ to this bit will clear out the Transmit and Receive FIFOs.  
Any data stored in the FIFOs is discarded and all count fields are  
reset. Writing a ‘0’ to this bit has no effect. This bit is self-clearing.  
1 STOP  
W
0h  
RESET  
Writing a ‘1’ to this bit will stop any transfer in progress at the next  
byte boundary. Writing a ‘0’ to this bit has no effect. This bit is self-  
clearing.  
This bit must not be set to ‘1’ if the field START in this register is set  
to ‘1’.  
DS00002206H-page 530  
2016-2020 Microchip Technology Inc.  
MEC170x  
08h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
0 START  
W
1h  
RESET  
Writing a ‘1’ to this bit will start the SPI transfer. Writing a ‘0’ to this bit  
has no effect. This bit is self-clearing.  
This bit must not be set to ‘1’ if the field STOP in this register is set to  
‘1’.  
38.11.4 QMSPI INTERFACE CONTROL REGISTER  
0Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:8 Reserved  
R
-
-
7 PULLUP_ON_NOT_DRIVEN  
R/W  
0h  
RESET  
1=Enable pull-up resistors on Transmit pins while the pins are not  
driven  
0=No pull-up resistors enabled ion Transmit pins  
6 PULLDOWN_ON_NOT_DRIVEN  
R/W  
R/W  
R/W  
0h  
1h  
0h  
RESET  
RESET  
RESET  
1=Enable pull-down resistors on Transmit pins while the pins are not  
driven  
0=No pull-down resistors enabled ion Transmit pins  
5 PULLUP_ON_NOT_SELECTED  
1=Enable pull-up resistors on Receive pins while the SPI Chip Select  
signal is not asserted  
0=No pull-up resistors enabled on Receive pins  
4 PULLDOWN_ON_NOT_SELECTED  
1=Enable pull-down resistors on Receive pins while the SPI Chip  
Select signal is not asserted  
0=No pull-down resistors enabled on Receive pins  
3 HOLD_OUT_ENABLE  
R/W  
R/W  
0h  
1h  
RESET  
RESET  
1=HOLD SPI Output Port is driven  
0=HOLD SPI Output Port is not driven  
2 HOLD_OUT_VALUE  
This bit sets the value on the HOLD SPI Output Port if it is driven.  
1=HOLD is driven to 1  
0=HOLD is driven to 0  
1 WRITE_PROTECT_OUT_ENABLE  
R/W  
0h  
RESET  
1=WRITE PROTECT SPI Output Port is driven  
0=WRITE PROTECT SPI Output Port is not driven  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 531  
MEC170x  
0Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
0 WRITE_PROTECT_OUT_VALUE  
R/W  
1h  
RESET  
This bit sets the value on the WRITE PROTECT SPI Output Port if it  
is driven.  
1=WRITE PROTECT is driven to 1  
0=WRITE PROTECT is driven to 0  
38.11.5 QMSPI STATUS REGISTER  
10h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:28 Reserved  
R
R
-
-
27:24 CURRENT_DESCRIPTION_BUFFER  
0h  
RESET  
This field shows the Description Buffer currently active. This field  
has no meaning if Description Buffers are not enabled.  
23:17 Reserved  
R
R
-
-
16 TRANSFER_ACTIVE  
0h  
RESET  
1=A transfer is currently executing  
0=No transfer currently in progress  
15 RECEIVE_BUFFER_STALL  
R/WC  
R/WC  
0h  
0h  
RESET  
RESET  
1=The SPI interface had been stalled due to a flow issue (an attempt  
by the interface to write to a full Receive Buffer)  
0=No stalls occurred  
14 RECEIVE_BUFFER_REQUEST  
This status is asserted if the Receive Buffer reaches a high water  
mark established by the RECEIVE_BUFFER_TRIGGER field.  
1=RECEIVE_BUFFER_COUNT is greater than or equal to  
RECEIVE_BUFFER_TRIGGER  
0=RECEIVE_BUFFER_COUNT  
RECEIVE_BUFFER_TRIGGER  
is  
less  
than  
13 RECEIVE_BUFFER_EMPTY  
R
R
1h  
0h  
0h  
RESET  
RESET  
RESET  
1=The Receive Buffer is empty  
0=The Receive Buffer is not empty  
12 RECEIVE_BUFFER_FULL  
1=The Receive Buffer is full  
0=The Receive Buffer is not full  
11 TRANSMIT_BUFFER_STALL  
R/WC  
1=The SPI interface had been stalled due to a flow issue (an attempt  
by the interface to read from an empty Transmit Buffer)  
0=No stalls occurred  
DS00002206H-page 532  
2016-2020 Microchip Technology Inc.  
MEC170x  
10h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
10 TRANSMIT_BUFFER_REQUEST  
R/WC  
0h  
RESET  
This status is asserted if the Transmit Buffer reaches a high water  
mark established by the TRANSMIT_BUFFER_TRIGGER field.  
1=TRANSMIT_BUFFER_COUNT is less than or equal to TRANS-  
MIT_BUFFER_TRIGGER  
0=TRANSMIT_BUFFER_COUNT is greater than TRANS-  
MIT_BUFFER_TRIGGER  
9 TRANSMIT_BUFFER_EMPTY  
R
R
0h  
0h  
RESET  
RESET  
1=The Transmit Buffer is empty  
0=The Transmit Buffer is not empty  
8 TRANSMIT_BUFFER_FULL  
1=The Transmit Buffer is full  
0=The Transmit Buffer is not full  
7:5 Reserved  
R
-
-
4 PROGRAMMING_ERROR  
R/WC  
0h  
RESET  
This bit if a programming error is detected. Programming errors are  
listed in Section 38.10.4, "Error Conditions".  
1=Programming Error detected  
0=No programming error detected  
3 RECEIVE_BUFFER_ERROR  
R/WC  
0h  
RESET  
1=Underflow error occurred (attempt to read from an empty Receive  
Buffer)  
0=No underflow occurred  
2 TRANSMIT_BUFFER_ERROR  
R/WC  
R/WC  
0h  
0h  
RESET  
RESET  
1=Overflow error occurred (attempt to write to a full Transmit Buffer)  
0=No overflow occurred  
1 DMA_COMPLETE  
This field has no meaning if DMA is not enabled.  
This bit will be set to ‘1’ when the DMA controller asserts the DONE  
signal to the SPI controller. This occurs either when the SPI control-  
ler has closed the DMA transfer, or the DMA channel has completed  
its count. If both Transmit and Receive DMA transfers are active,  
then this bit will only assert after both have completed. If  
CLOSE_TRANSFER_ENABLE is enabled, DMA_COMPLETE and  
TRANSFER_COMPLETE will be asserted simultaneously. This sta-  
tus is not inhibited by the description buffers, so it can fire on all valid  
description buffers while operating in that mode.  
1=DMA completed  
0=DMA not completed  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 533  
MEC170x  
10h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
0 TRANSFER_COMPLETE  
R/WC  
0h  
RESET  
In Manual Mode (neither DMA nor Description Buffers are enabled),  
this bit will be set to ‘1’ when the transfer matches TRANS-  
FER_LENGTH.  
If DMA Mode is enabled, this bit will be set to ‘1’ when DMA_COM-  
PLETE is set to ‘1’.  
In Description Buffer Mode, this bit will be set to ‘1’ only when the  
Last Buffer completes its transfer.  
In all cases, this bit will be set to ‘1’ if the STOP bit is set to ‘1’ and  
the controller has completed the current 8 bits being copied.  
1=Transfer completed  
0=Transfer not complete  
38.11.6 QMSPI BUFFER COUNT STATUS REGISTER  
14h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:16 RECEIVE_BUFFER_COUNT  
R
0h  
RESET  
This is a count of the number of bytes currently valid in the Receive  
Buffer.  
15:0 TRANSMIT_BUFFER_COUNT  
R
0h  
RESET  
This is a count of the number of bytes currently valid in the Transmit  
Buffer.  
38.11.7 QMSPI INTERRUPT ENABLE REGISTER  
18h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:15 Reserved  
R
-
-
14 RECEIVE_BUFFER_REQUEST_ENABLE  
R/W  
0h  
RESET  
1=Enable an interrupt if RECEIVE_BUFFER_REQUEST is asserted  
0=Disable the interrupt  
13 RECEIVE_BUFFER_EMPTY_ENABLE  
R/W  
R/W  
R
1h  
0h  
-
RESET  
RESET  
-
1=Enable an interrupt if RECEIVE_BUFFER_EMPTY is asserted  
0=Disable the interrupt  
12 RECEIVE_BUFFER_FULL_ENABLE  
1=Enable an interrupt if RECEIVE_BUFFER_FULL is asserted  
0=Disable the interrupt  
11 Reserved  
DS00002206H-page 534  
2016-2020 Microchip Technology Inc.  
MEC170x  
18h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
10 TRANSMIT_BUFFER_REQUEST_ENABLE  
R/W  
0h  
RESET  
1=Enable an interrupt if TRANSMIT_BUFFER_REQUEST is  
asserted  
0=Disable the interrupt  
9 TRANSMIT_BUFFER_EMPTY_ENABLE  
R/W  
R/W  
0h  
0h  
RESET  
RESET  
1=Enable an interrupt if TRANSMIT_BUFFER_EMPTY is asserted  
0=Disable the interrupt  
8 TRANSMIT_BUFFER_FULL_ENABLE  
1=Enable an interrupt if TRANSMIT_BUFFER_FULL is asserted  
0=Disable the interrupt  
7:5 Reserved  
R
-
-
4 PROGRAMMING_ERROR_ENABLE  
R/W  
0h  
RESET  
1=Enable an interrupt if PROGRAMMING_ERROR is asserted  
0=Disable the interrupt  
3 RECEIVE_BUFFER_ERROR_ENABLE  
R/W  
R/W  
R/W  
R/W  
0h  
0h  
0h  
0h  
RESET  
RESET  
RESET  
RESET  
1=Enable an interrupt if RECEIVE_BUFFER_ERROR is asserted  
0=Disable the interrupt  
2 TRANSMIT_BUFFER_ERROR_ENABLE  
1=Enable an interrupt if TRANSMIT_BUFFER_ERROR is asserted  
0=Disable the interrupt  
1 DMA_COMPLETE_ENABLE  
1=Enable an interrupt if DMA_COMPLETE is asserted  
0=Disable the interrupt  
0 TRANSFER_COMPLETE_ENABLE  
1=Enable an interrupt if TRANSFER_COMPLETE is asserted  
0=Disable the interrupt  
38.11.8 QMSPI BUFFER COUNT TRIGGER REGISTER  
1Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:16 RECEIVE_BUFFER_TRIGGER  
R/W  
0h  
RESET  
An interrupt is triggered if the RECEIVE_BUFFER_COUNT field is  
greater than or equal to this value. A value of ‘0’ disables the inter-  
rupt.  
15:0 TRANSMIT_BUFFER_TRIGGER  
R/W  
0h  
RESET  
An interrupt is triggered if the TRANSMIT_BUFFER_COUNT field is  
less than or equal to this value. A value of ‘0’ disables the interrupt.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 535  
MEC170x  
38.11.9 QMSPI TRANSMIT BUFFER REGISTER  
20h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:0 TRANSMIT_BUFFER  
W
0h  
RESET  
Writes to this register store data to be transmitted from the SPI Mas-  
ter to the external SPI Slave. Writes to this block will be written to the  
Transmit FIFO. A 1 Byte write fills 1 byte of the FIFO. A Word write  
fills 2 Bytes and a Doubleword write fills 4 bytes. The data must  
always be aligned to the bottom most byte (so 1 byte write is on bits  
[7:0] and Word write is on [15:0]). An overflow condition,TRANS-  
MIT_BUFFER_ERROR, if a write to a full FIFO occurs.  
Write accesses to this register increment the TRANS-  
MIT_BUFFER_COUNT field.  
38.11.10 QMSPI RECEIVE BUFFER REGISTER  
24h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:0 RECEIVE_BUFFER  
R
0h  
RESET  
Buffer that stores data from the external SPI Slave device to the SPI  
Master (this block), which is received over MISO or IO.  
Reads from this register will empty the Rx FIFO. A 1 Byte read will  
have valid data on bits [7:0] and a Word read will have data on bits  
[15:0]. It is possible to request more data than the FIFO has (under-  
flow condition), but this will cause an error (Rx Buffer Error).  
Read accesses to this register decrement the  
RECEIVE_BUFFER_COUNT field.  
38.11.11 QMSPI DESCRIPTION BUFFER 0 REGISTER  
30h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:17 TRANSFER_LENGTH  
R/W  
0h  
RESET  
The length of the SPI transfer. The count is in bytes or bits, depend-  
ing on the value of TRANSFER_LENGTH_BITS. A value of ‘0’  
means an infinite length transfer.  
16 DESCRIPTION_BUFFER_LAST  
R/W  
0h  
RESET  
If this bit is ‘1’ then this is the last Description Buffer in the chain.  
When the transfer described by this buffer completes the TRANS-  
FER_COMPLETE status will be set to ‘1’. If this bit is ‘0’, then this is  
not the last buffer in use. When the transfer completes the next buf-  
fer will be activated, and no additional status will be asserted.  
DS00002206H-page 536  
2016-2020 Microchip Technology Inc.  
MEC170x  
30h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
15:12 DESCRIPTION_BUFFER_NEXT_POINTER  
R/W  
0h  
0h  
RESET  
This defines the next buffer to be used if Description Buffers are  
enabled and this is not the last buffer. This can point to the current  
buffer, creating an infinite loop.  
11:10 TRANSFER_UNITS  
R/W  
R/W  
RESET  
3=TRANSFER_LENGTH defined in units of 16-byte segments  
2=TRANSFER_LENGTH defined in units of 4-byte segments  
1=TRANSFER_LENGTH defined in units of bytes  
0=TRANSFER_LENGTH defined in units of bits  
9 CLOSE_TRANFSER_ENABLE  
1h  
RESET  
This selects what action is taken at the end of a transfer. This bit  
must be set only on the Last Buffer.  
1=The transfer is terminated. The Chip Select de-asserts, the SPI  
interface returns to IDLE and the DMA interface completes the  
transfer.  
0=The transfer is not closed. Chip Select remains asserted and the  
DMA interface and the SPI interface remain active  
8:7 RX_DMA_ENABLE  
R/W  
0h  
RESET  
This bit enables DMA support for Receive Transfer. If enabled, DMA  
will be requested to empty the FIFO until either the interface reaches  
TRANSFER_LENGTH or the DMA sends a termination request. The  
size defined here must match DMA programmed access size.  
1=DMA is enabled.and set to 1 Byte  
2=DMA is enabled and set to 2 Bytes  
3=DMA is enabled and set to 4 Bytes  
0=DMA is disabled. All data in the Receive Buffer must be emptied by  
firmware  
6 RX_TRANSFER_ENABLE  
R/W  
R/W  
0h  
0h  
RESET  
RESET  
This bit enables the receive function of the SPI interface.  
1=Receive is enabled. Data received from the SPI Slave is stored in  
the Receive Buffer  
0=Receive is disabled  
5:4 TX_DMA_ENABLE  
This bit enables DMA support for Transmit Transfer. If enabled, DMA  
will be requested to fill the FIFO until either the interface reaches  
TRANSFER_LENGTH or the DMA sends a termination request. The  
size defined here must match DMA programmed access size.  
1=DMA is enabled.and set to 1 Byte  
2=DMA is enabled and set to 2 Bytes  
3=DMA is enabled and set to 4 Bytes  
0=DMA is disabled. All data in the Transmit Buffer must be emptied  
by firmware  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 537  
MEC170x  
30h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
3:2 TX_TRANSFER_ENABLE  
R/W  
0h  
RESET  
This field bit selects the transmit function of the SPI interface.  
3=Transmit Enabled in 1 Mode. The MOSI or IO Bus will send out  
only 1's. The Transmit Buffer will not be used  
2=Transmit Enabled in 0 Mode. The MOSI or IO Bus will send out  
only 0's. The Transmit Buffer will not be used.  
1=Transmit Enabled. Data will be fetched from the Transmit Buffer  
and sent out on the MOSI or IO Bus.  
0=Transmit is Disabled. No data is sent. This will cause the MOSI be  
to be undriven, or the IO bus to be undriven if Receive is also dis-  
abled.  
1:0 INTERFACE_MODE  
R/W  
0h  
RESET  
This field sets the transmission mode. If this field is set for Dual  
Mode or Quad Mode then either TX_TRANSFER_ENABLE or  
RX_TRANSFER_ENABLE must be 0.  
3=Reserved  
2=Quad Mode  
1=Dual Mode  
0=Single/Duplex Mode  
38.11.12 QMSPI DESCRIPTION BUFFER 1 REGISTER  
The format for this register is the same as the format o the QMSPI Description Buffer 0 Register.  
38.11.13 QMSPI DESCRIPTION BUFFER 2 REGISTER  
The format for this register is the same as the format o the QMSPI Description Buffer 0 Register.  
38.11.14 QMSPI DESCRIPTION BUFFER 3 REGISTER  
The format for this register is the same as the format o the QMSPI Description Buffer 0 Register.  
38.11.15 QMSPI DESCRIPTION BUFFER 4 REGISTER  
The format for this register is the same as the format o the QMSPI Description Buffer 0 Register.  
DS00002206H-page 538  
2016-2020 Microchip Technology Inc.  
MEC170x  
39.0 PS/2 INTERFACE  
39.1 Introduction  
PS/2 controllers are directly controlled by the EC. The hardware implementation eliminates the need to bit bang I/O ports  
to generate PS/2 traffic, however bit banging is available via the associated GPIO pins.  
39.2 References  
No references have been cited for this feature.  
39.3 Terminology  
There is no terminology defined for this section.  
39.4 Interface  
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.  
FIGURE 39-1:  
I/O DIAGRAM OF BLOCK  
PS/2 Interface  
Host Interface  
Signal Description  
Power, Clocks and Reset  
Interrupts  
39.5 Signal Description  
TABLE 39-1: SIGNAL DESCRIPTION TABLE  
Name  
Direction  
Description  
PS2DAT  
INPUT/  
OUTPUT  
Data from the PS/2 device  
Clock from the PS/2 device  
PS2CLK  
INPUT/  
OUTPUT  
Note:  
PS2 ports that are multiplexed onto pins that can be powered by 1.8V are not 5V tolerant, even when the  
pins are powered by 3.3V.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 539  
MEC170x  
39.6 Host Interface  
The registers defined for the PS/2 Interface are accessible by the various hosts as indicated in Section 39.14, "EC Reg-  
isters".  
39.7 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
39.7.1  
39.7.2  
POWER DOMAINS  
Name  
Description  
VTR  
The logic and registers implemented in this block are powered by this  
power well.  
CLOCK INPUTS  
Name  
Description  
48MHz  
This is the clock source for PS/2 Interface logic.  
2 MHz Clock  
The PS/2 state machine is clocked using the 2 MHz clock.  
39.7.3  
RESETS  
Name  
Description  
RESET_SYS  
This signal resets all the registers and logic in this block to their default  
state.  
39.8 Interrupts  
This section defines the Interrupt Sources generated from this block.  
Source  
Description  
PS2_x  
Interrupt request to the Interrupt Aggregator for PS2 controller instance x,  
based on PS2 controller activity. Section 39.14.4, "PS2 Status Register"  
defines the sources for the interrupt request.  
PS2_x_WK  
Wake-up request to the Interrupt Aggregator’s wake-up interface for PS2  
port x.  
In order to enable PS2 wakeup interrupts, the pin control registers for the  
PS2DAT pin must be programmed to Input, Falling Edge Triggered, non-  
inverted polarity detection.  
39.9 Low Power Modes  
The PS/2 Interface may be put into a low power state by the chip’s Power, Clocks, and Reset (PCR) circuitry.  
The PS2 interface will only sleep while the PS2 is disabled or in Rx mode with no traffic on the bus.  
39.10 Description  
Each EC PS/2 serial channels use a synchronous serial protocol to communicate with the auxiliary device. Each PS/2  
channel has Clock and Data signal lines. The signal lines are bi-directional and employ open drain outputs capable of  
sinking 12m, as required by the PS/2 specification. A pull-up resistor, typically 10K, is connected to both lines. This  
allows either the EC PS/2 logic or the auxiliary device to drive the lines. Regardless of the drive source, the auxiliary  
device always provides the clock for transmit and receive operations. The serial packet is made up of eleven bits, listed  
in the order they appear on the data line: start bit, eight data bits (least significant bit first), odd parity, and stop bit. Each  
bit cell is from 60S to 100S long.  
All PS/2 Serial Channel signals (PS2CLK and PS2DAT) are driven by open drain drivers which can be pulled to VTR or  
the main power rail (+3.3V nominal) through 10K-ohm resistors.  
DS00002206H-page 540  
2016-2020 Microchip Technology Inc.  
MEC170x  
The PS/2 controller supports a PS/2 Wake Interface that can wake the EC from the IDLE or SLEEP states. The Wake  
Interface can generate wake interrupts without a clock. The PS/2 Wake Interface is only active when the peripheral  
device and external pull-up resisters are powered by the VTR supply.  
There are no special precautions to be taken to prevent back drive of a PS/2 peripheral powered by the main power well  
when the power well is off, as long as the external 10K pull-up resistor is tied to the same power source as the peripheral.  
PS/2 controllers may have one or two ports. Only one port may be active at a time. See the pin chapter for a definition  
of the PS/2 ports.  
39.11 Block Diagram  
FIGURE 39-2:  
PORT PS/2 BLOCK DIAGRAM  
EC I/F  
PS2_x  
Control  
interrupt  
State  
Machine Channel  
PS/2  
PS2DAT  
PS2CLK  
Registers  
2 MHz  
39.12 PS/2 Port Physical Layer Byte Transmission Protocol  
The PS/2 physical layer transfers a byte of data via an eleven bit serial stream as shown in Table 39-2. A logic 1 is sent  
at an active high level. Data sent from a Keyboard or mouse device to the host is read on the falling edge of the clock  
signal. The Keyboard or mouse device always generates the clock signal. The Host may inhibit communication by pull-  
ing the Clock line low. The Clock line must be continuously high for at least 50 microseconds before the Keyboard or  
mouse device can begin to transmit its data. See Table 39-3, "PS/2 Port Physical Layer Bus States".  
TABLE 39-2: PS/2 PORT PHYSICAL LAYER BYTE TRANSMISSION PROTOCOL  
Bit  
Function  
1
2
Start bit (always 0)  
Data bit 0 (least significant bit)  
Data bit 1  
3
4
Data bit 2  
5
Data bit 3  
6
Data bit 4  
7
Data bit 5  
8
Data bit 6  
9
Data bit 7 (most significant bit)  
Parity bit (odd parity)  
Stop Bit (always 1)  
10  
11  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 541  
MEC170x  
FIGURE 39-3:  
PS/2 PORT PHYSICAL LAYER BYTE TRANSMISSION PROTOCOL  
CLK3  
Bit 1  
CLK10  
Parity  
CLK11  
CLK 1  
CLK9  
Bit 7  
CLK2  
Bit 0  
PS2CLK  
Start Bit  
Stop Bit  
PS2DATA  
TABLE 39-3: PS/2 PORT PHYSICAL LAYER BUS STATES  
Data  
Clock  
State  
high  
high  
low  
high  
low  
low  
Idle  
Communication Inhibited  
Request to Send  
39.13 Controlling PS/2 Transactions  
PS/2 transfers are controlled by fields in the PS2 Control Register.  
The interface is enabled by the PS2_EN bit. Transfers are enabled when PS2_EN is ‘1’ and disabled when PS2_EN is  
‘0’. If the PS2_EN bit is cleared to ‘0’ while a transfer is in progress but prior to the leading edge (falling edge) of the  
10th (parity bit) clock edge, the receive data is discarded (RDATA_RDY remains low). If the PS2_EN bit is cleared fol-  
lowing the leading edge of the 10th clock signal, then the receive data is saved in the Receive Register (RDATA_RDY  
goes high) assuming no parity error.  
The direction of a PS/2 transfer is controlled by the PS2_T/R bit.  
39.13.1 RECEIVE  
If PS2_T/R is ‘0’ while the PS2 Interface is enabled, the interface is configured to receive data. If while PS2_T/R is ‘0’  
RDATA_RDY is ‘0’, the channel’s PS2CLK and PS2DAT will float waiting for the external PS/2 device to signal the start  
of a transmission. If RDATA_RDY is ‘1’, the channel’s PS2DAT line will float but its PS2CLK line will be held low, holding  
off the peripheral, until the Receive Register is read.  
The peripheral initiates a reception by sending a start bit followed by the data bits). After a successful reception, data  
are placed in the PS2 Receive Buffer Register, the RDATA_RDY bit in the PS2 Status Register is set and the PS2CLK  
line is forced low. Further receive transfers are inhibited until the EC reads the data in the PS2 Receive Buffer Register.  
RDATA_RDY is cleared and the PS2CLK line is tri-stated following a read of the PS2 Receive Buffer Register.  
The Receive Buffer Register is initialized to FFh after a read or after a Time-out has occurred.  
39.13.2 TRANSMIT  
If PS2_T/R is ‘1’ while the PS2 Interface is enabled, the interface is configured to transmit data. When the PS2_T/R bit  
is written to ‘1’ while the state machine is idle, the channel prepares for a transmission: the interface will drive the PS2-  
CLK line low and then float the PS2DAT line, holding this state until a write occurs to the Transmit Register or until the  
PS2_T/R bit is cleared. A transmission is started by writing the PS2 Transmit Buffer Register. Writes to the Transmit  
Buffer Register are blocked when PS2_EN is ‘0’, PS2_T/R is ‘0’ or when the transmit state machine is active (the  
XMIT_IDLE bit in the PS/2 Status Register is ‘0’). The transmission of data will not start if there is valid data in the  
Receive Data Register (when the status bit RDATA_RDY is ‘1’). When a transmission is started, the transmission state  
machine becomes active (the XMIT_IDLE bit is set to ‘1’ by hardware), the PS2DAT line is driven low and within 80ns  
the PS2CLK line floats (externally pulled high by the pull-up resistor).  
The transmission terminates either on the 11th clock edge of the transmission or if a Transmit Time-Out error condition  
occurs. When the transmission terminates, the PS2_T/R bit is cleared to ‘0’and the state machine becomes idle, setting  
XMIT_IDLE to ‘1’.  
DS00002206H-page 542  
2016-2020 Microchip Technology Inc.  
MEC170x  
The PS2_T/R bit must be written to a ‘1’ before initiating another transmission to the remote device. If the PS2_T/R bit  
is set to ‘1’ while the channel is actively receiving data (that is, while the status bit RDATA_RDYis ‘1’) prior to the leading  
edge of the 10th (parity bit) clock edge, the receive data is discarded. If the bit is set after the 10th edge, the receive  
data is saved in the Receive Register.  
39.14 EC 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 each instance of the PS/2 Interface Block in the Block Overview and Base Address  
Table in Section 3.0, "Device Inventory".  
TABLE 39-4: REGISTER SUMMARY  
Offset  
Register Name  
PS2 Transmit Buffer Register  
0h  
0h  
4h  
8h  
PS2 Receive Buffer Register  
PS2 Control Register  
PS2 Status Register  
39.14.1 PS2 TRANSMIT BUFFER REGISTER  
00h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:8 Reserved  
R
-
-
7:0 TRANSMIT_DATA  
W
0h  
RESET  
_SYS  
Writes to this register start a transmission of the data in this register  
to the peripheral.  
39.14.2 PS2 RECEIVE BUFFER REGISTER  
00h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:8 Reserved  
R
R
-
-
7:0 RECEIVE_DATA  
FFh  
RESET  
_SYS  
Data received from a peripheral are recorded in this register.  
A transmission initiated by writing the PS2 Transmit Buffer Register  
will not start until valid data in this register have been read and  
RDATA_RDY has been cleared by hardware.  
The Receive Buffer Register is initialized to FFh after a read or  
after a Time-out has occurred.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 543  
MEC170x  
39.14.3 PS2 CONTROL REGISTER  
00h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:6 Reserved  
5:4 STOP  
R
-
-
R/W  
0h  
RESET  
_SYS  
These bits are used to set the level of the stop bit expected by the  
PS/2 channel state machine. These bits are therefore only valid  
when PS2_EN is set.  
00b=Receiver expects an active high stop bit.  
01b=Receiver expects an active low stop bit.  
10b=Receiver ignores the level of the Stop bit (11th bit is not inter-  
preted as a stop bit).  
11b=Reserved.  
3:2 PARITY  
R/W  
0h  
RESET  
_SYS  
These bits are used to set the parity expected by the PS/2 channel  
state machine. These bits are therefore only valid when PS2_EN is  
set.  
00b=Receiver expects Odd Parity (default).  
01b=Receiver expects Even Parity.  
10b=Receiver ignores level of the parity bit (10th bit is not inter-  
preted as a parity bit).  
11b=Reserved  
1
PS2_EN  
R/W  
0h  
RESET  
_SYS  
PS/2 Enable.  
0=The PS/2 state machine is disabled. The CLK pin is driven low  
and the DATA pin is tri-stated.  
1=The PS/2 state machine is enabled, allowing the channel to per-  
form automatic reception or transmission, depending on the  
state of PS2_T/R.  
0
PS2_T/R  
R/W  
0h  
RESET  
_SYS  
PS/2 Transmit/Receive  
0=The P2/2 channel is enabled to receive data.  
1=The PS2 channel is enabled to transmit data.  
Changing values in the PS2 CONTROL REGISTER at a rate faster than 2 MHz, may result in unpredictable behavior.  
DS00002206H-page 544  
2016-2020 Microchip Technology Inc.  
MEC170x  
39.14.4 PS2 STATUS REGISTER  
08h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
31:8 Reserved  
R
-
-
7
XMIT_START_TIMEOUT  
Transmit Start Timeout.  
R/WC  
0h  
RESET  
_SYS  
0=No transmit start timeout detected  
1=A start bit was not received within 25 ms following the transmit  
start event. The transmit start bit time-out condition is also indi-  
cated by the XMIT_TIMEOUT bit.  
6
5
RX_BUSY  
R
0h  
0h  
RESET  
_SYS  
Receive Channel Busy.  
0=The channel is actively receiving PS/2 data  
1=The channel is idle  
XMIT_TIME_OUT  
Transmitter Idle.  
R/WC  
RESET  
_SYS  
When the XMIT_TIMEOUT bit is set, the PS2_T/R bit is held clear,  
the PS/2 channel’s CLK line is pulled low for a minimum of 300μs  
until the PS/2 Status register is read. The XMIT_TIMEOUT bit is  
set on one of three transmit conditions: when the transmitter bit  
time (the time between falling edges) exceeds 300μs, when the  
transmitter start bit is not received within 25ms from signaling a  
transmit start event or if the time from the first bit (start) to the 10th  
bit (parity) exceeds 2ms  
4
XMIT_IDLE  
R
0h  
RESET  
_SYS  
Transmitter Idle.  
0=The channel is actively transmitting PS/2 data. Writing the PS2  
Transmit Buffer Register will cause the XMIT_IDLE bit to clear  
1=The channel is not transmitting. This bit transitions from ‘0’ to ‘1’  
in the following cases:  
• The falling edge of the 11th CLK  
• XMIT_TIMEOUT is set  
• The PS2_T/R bit is cleared  
• The PS2_EN bit is cleared.  
A low to high transition on this bit generates a PS2 Activity inter-  
rupt.  
3
FE  
R/WC  
0h  
RESET  
_SYS  
Framing Error  
When receiving data, the stop bit is clocked in on the falling edge of  
the 11th CLK edge. If the channel is configured to expect either a  
high or low stop bit and the 11th bit is contrary to the expected stop  
polarity, then the FE and REC_TIMEOUT bits are set following the  
falling edge of the 11th CLK edge and an interrupt is generated.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 545  
MEC170x  
08h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
2
PE  
R/WC  
0h  
RESET  
_SYS  
Parity Error  
When receiving data, the parity bit is clocked in on the falling edge  
of the 10th CLK edge. If the channel is configured to expect either  
even or odd parity and the 10th bit is contrary to the expected par-  
ity, then the PE and REC_TIMEOUT bits are set following the fall-  
ing edge of the 10th CLK edge and an interrupt is generated.  
1
REC_TIMEOUT  
Receive Timeout  
R/WC  
0h  
RESET  
_SYS  
Following assertion of the REC_TIMEOUT bit, the channel’s CLK  
line is automatically pulled low for a minimum of 300µs until the  
PS/2 status register is read. Under PS2 automatic operation,  
PS2_EN is set, this bit is set on one of three receive error condi-  
tions:  
• When the receiver bit time (the time between falling edges)  
exceeds 300μs.  
• If the time from the first bit (start) to the 10th bit (parity)  
exceeds 2ms.  
• On a receive parity error along with the Parity Error (PE) bit.  
• On a receive framing error due to an incorrect STOP bit along  
with the framing error (FE) bit.  
A low to high transition on this bit generates a PS2 Activity inter-  
rupt.  
0
RDATA_RDY  
R
0h  
RESET  
_SYS  
Receive Data Ready  
Under normal operating conditions, this bit is set following the fall-  
ing edge of the 11th clock given successful reception of a data byte  
from the PS/2 peripheral (i.e., no parity, framing, or receive time-  
out errors) and indicates that the received data byte is available to  
be read from the Receive Register. This bit may also be set in the  
event that the PS2_EN bit is cleared following the 10th CLK edge.  
Reading the Receive Register clears this bit.  
A low to high transition on this bit generates a PS2 Activity inter-  
rupt.  
DS00002206H-page 546  
2016-2020 Microchip Technology Inc.  
MEC170x  
40.0 BC-LINK MASTER  
40.1 Overview  
This block provides BC-Linkconnectivity to a slave device. The BC-Linkprotocol includes a start bit to signal the  
beginning of a message and a turnaround (TAR) period for bus transfer between the Master and Companion devices.  
40.2 References  
No references have been cited for this feature.  
40.3 Terminology  
There is no terminology defined for this section.  
40.4 Interface  
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.  
FIGURE 40-1:  
I/O DIAGRAM OF BLOCK  
BC-Link Master  
Interface  
Signal Description  
Power, Clocks and Reset  
Interrupts  
40.5 Signal Description  
TABLE 40-1: SIGNAL DESCRIPTION  
Name  
Direction  
Description  
BCM_CLK  
BCM_DAT  
Output  
BC-Link output clock  
Input/Output Bidirectional data line  
Note:  
A weak pull-up resistor is recommended on the data line (100KW).  
The maximum speed at which the BC-Link Master Interface can operate reliably depends on the drive strength of the  
BC-Link BCM_CLK and BCM_DAT pins, as well as the nature of the connection to the Companion device (over ribbon  
cable or on a PC board). The following table shows the recommended maximum speeds over a PC board as well as a  
12 inch ribbon cable for selected drive strengths. The frequency is set with the BC-Link Clock Select Register.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 547  
MEC170x  
There is no explicit BC-Link INT# input signal. Any GPIO input can be used to generate an interrupt from a BC-Link  
companion’s INT# output.  
TABLE 40-2: BC-LINK MASTER PIN DRIVE STRENGTH VS. FREQUENCY  
Min Value in  
Pin Drive  
Strength  
Max Freq  
Max Freq  
Min Value in BC-Link  
Clock Select Register  
BC-Link Clock Select  
Register  
on PC Board  
over Ribbon cable  
12mA  
8mA  
24Mhz  
3MHz  
1
16Mhz  
3MHz  
2
15  
15  
40.6 Host Interface  
The registers defined for the BC-Link Master Interface are accessible by the various hosts as indicated in Section 40.11,  
"EC Registers".  
40.7 Power, Clocks and Reset  
40.7.1  
POWER DOMAINS  
Name  
Description  
VTR  
The logic and registers implemented in this block are powered by this  
power well.  
40.7.2  
40.7.3  
CLOCK INPUTS  
Name  
Description  
48MHz  
This is the clock source for this block.  
RESETS  
Name  
Description  
RESET_SYS  
This signal resets all the registers and logic in this block to their default  
state.  
40.8 Interrupts  
This section defines the Interrupt Sources generated from this block.  
Source  
Description  
BCM_INT Busy  
BCM_INT Err  
Interrupt request to the Interrupt Aggregator, generated from the status  
event BUSYdefined in the BC-Link Status Register.  
Interrupt request to the Interrupt Aggregator, generated from the status  
event defined in the BC-Link Status Register.  
40.9 Low Power Modes  
The BC-Link Master Interface automatically enters a low power mode whenever it is not active (that is, whenever the  
BUSY bit in the BC-Link Status Register is ‘0’). When the interface is in a low-power mode it will not prevent the chip  
from entering a sleep state. When the interface is active it will inhibit the chip sleep state until the interface has re-  
entered its low power mode.  
DS00002206H-page 548  
2016-2020 Microchip Technology Inc.  
MEC170x  
40.10 Description  
FIGURE 40-2:  
BC-LINK MASTER BLOCK DIAGRAM  
Registers  
BC_ERR  
BC Status / Control  
Register  
BC_BUSY_CLR  
EC IF  
BC Address  
Register  
BC Data  
Register  
Clock  
Divider  
Bits  
External Pin interface  
BCM_CLK  
MCLK/2  
MCLK/4  
MCLK/8  
BCM_DAT  
BCM_INT#  
Clock  
Generator  
MCLK=48MHz Ring Oscillator  
BC Bus Master IP  
MCLK/  
Divider  
MCLK/  
63  
40.10.1 BC-LINK MASTER READ OPERATION  
The BC-Link Read protocol requires two reads of the BC-Link Data Register. The two reads drive a two state-state  
machine: the two states are Read#1 and Read#2. The Read#1 of the Data Register starts the read protocol on the BC-  
Link pins and sets the BUSY bit in the BC-Link Status Register. The contents of the data read during Read#1 by the EC  
is stale and is not to be used. After the BUSY bit in the BC-Link Status Register autonomously clears to ‘0’, the Read#2  
of the Data Register transfers the data read from the peripheral/BC-Link companion chip to the EC.  
1. Software starts by checking the status of the BUSY bit in the Status Register. If the BUSY bit is ‘0’, proceed. If  
BUSY is ‘1’, firmware must wait until it is ‘0’.  
2. Software writes the address of the register to be read into the BC-Link Address Register.  
3. Software then reads the Data Register. This read returns random data. The read activates the BC-Link Master  
state machine to transmit the read request packet to the BC-Link companion. When the transfer initiates, the  
hardware sets the BUSY bit to a ‘1’.  
4. The BC-Link Companion reads the selected register and transmits the read response packet to the BC-Link Mas-  
ter. The Companion will ignore the read request if there is a CRC error; this will cause the Master state machine  
to time-out and issue a BC_ERR Interrupt.  
5. The Master state machine loads the Data Register, issues a BUSY Bit Clear interrupt and clears the BUSY bit to  
‘0’.  
6. Software, after either receiving the Bit Clear interrupt, or polling the BUSY bit until it is ‘0’, checks the BC_ERR  
bit in the Status Register.  
7. Software can now read the Data Register which contains the valid data if there was no BC Bus error.  
8. If a Bus Error occurs, firmware must issue a soft reset by setting the RESET bit in the Status Register to ‘1’.  
9. The read can re-tried once BUSY is cleared.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 549  
MEC170x  
Note:  
Steps 3 thorough 7 should be completed as a contiguous sequence. If not the interface could be presenting  
incorrect data when software thinks it is accessing a valid register read.  
40.10.2 BC-LINK MASTER WRITE OPERATION  
1. Software starts by checking the status of the BUSY bit in the BC-Link Status Register. If the BUSY bit is ‘0’, pro-  
ceed. If BUSY is ‘1’, firmware must wait until it is ‘0’.  
2. Software writes the address of the register to be written into the BC-Link Address Register.  
3. Software writes the data to be written into the addressed register in to the BC-Link Data Register.  
4. The write to the Data Register starts the BC_Link write operation. The Master state machine sets the BUSY bit.  
5. The BC-Link Master Interface transmits the write request packet.  
6. When the write request packet is received by the BC-Link companion, the CRC is checked and data is written to  
the addressed companion register.  
7. The companion sends an ACK if the write is completed. A time-out will occur approximately 16 BC-Link clocks  
after the packet is sent by the Master state machine. If a time-out occurs, the state machine will set the BC_ERR  
bit in the Status Register to ‘1’ approximately 48 clocks later and then clear the BUSY bit.  
8. The Master state machine issues the Bit Clear interrupt and clears the BUSY bit after receiving the ACK from the  
Companion  
9. If a Bus Error occurs, firmware must issue a soft reset by setting the RESET bit in the Status Register to ‘1’.  
10. The write can re-tried once BUSY is cleared.\  
40.11 EC 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 each instance of the BC-Link Master Block in the Block Overview and Base Address  
Table in Section 3.0, "Device Inventory".  
TABLE 40-3: REGISTER SUMMARY  
EC Offset  
Register Name  
BC-Link Status Register  
00h  
04h  
08h  
0Ch  
BC-Link Address Register  
BC-Link Data Register  
BC-Link Clock Select Register  
DS00002206H-page 550  
2016-2020 Microchip Technology Inc.  
MEC170x  
40.11.1 BC-LINK STATUS REGISTER  
00h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
31:8 Reserved  
7 RESET  
R
-
-
R/W  
1h  
RESET  
_SYS  
When this bit is ‘1’the BC_Link Master Interface will be placed in  
reset and be held in reset until this bit is cleared to ‘0’. Setting  
RESET to ‘1’ causes the BUSY bit to be set to ‘1’. The BUSY  
remains set to ‘1’ until the reset operation of the BC Interface is  
completed, which takes approximately 48 BC clocks.  
The de-assertion of the BUSY bit on reset will not generate an  
interrupt, even if the BC_BUSY_CLR_INT_EN bit is ‘1’. The BUSY  
bit must be polled in order to determine when the reset operation  
has completed.  
6
BC_ERR  
R/WC  
0h  
RESET  
_SYS  
This bit indicates that a BC Bus Error has occurred. If an error  
occurs this bit is set by hardware when the BUSY bit is cleared.  
This bit is cleared when written with a ’1b’. An interrupt is gener-  
ated If this bit is ‘1’ and BC_ERR_INT_EN bit is ‘1b’.  
Errors that cause this interrupt are:  
• Bad Data received by the BASE (CRC Error)  
• Time-out caused by the COMPANION not responding.  
All COMPANION errors cause the COMPANION to abort the oper-  
ation and the BASE to time-out.Figure 40.11.2  
5
4
BC_ERR_INT_EN  
R/W  
R/W  
0h  
0h  
RESET  
_SYS  
This bit is an enable for generating an interrupt when the BC_ERR  
bit is set by hardware. When this bit is ‘1’, the interrupt signal is  
enabled. When this bit is ‘0’, the interrupt is disabled.  
BC_BUSY_CLR_INT_EN  
RESET  
_SYS  
This bit is an enable for generating an interrupt when the BUSY bit  
in this register is cleared by hardware. When this bit is set to ‘1’, the  
interrupt signal is enabled. When the this bit is cleared to ‘0’, the  
interrupt is disabled. When enabled, the interrupt occurs after a BC  
Bus read or write.  
3:1 Reserved  
R
R
-
-
0
BUSY  
1h  
RESET  
_SYS  
This bit is asserted to ‘1’ when the BC interface is transferring data  
and on reset. Otherwise it is cleared to ‘0’. When this bit is cleared  
by hardware, an interrupt is generated if the BC_BUSY_CL-  
R_INT_EN bit is set to ‘1’.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 551  
MEC170x  
40.11.2 BC-LINK ADDRESS REGISTER  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:8 Reserved  
7:0 ADDRESS  
R
-
-
R/W  
0h  
RESET  
_SYS  
Address in the Companion for the BC-Link transaction.  
40.11.3 BC-LINK DATA REGISTER  
08h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:8 Reserved  
7:0 DATA  
R
-
-
R/W  
0h  
RESET  
_SYS  
As described in Section 40.10.1, "BC-Link Master READ Opera-  
tion" and Section 40.10.2, "BC-Link Master WRITE Operation", this  
register hold data used in a BC-Link transaction.  
40.11.4 BC-LINK CLOCK SELECT REGISTER  
0Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:8 Reserved  
7:0 DIVIDER  
R
-
-
R/W  
4h  
RESET  
_SYS  
The BC Clock is set to the Master Clock divided by this field, or  
48MHz/ (Divider +1). The clock divider bits can only can be  
changed when the BC Bus is in soft RESET (when either the Reset  
bit is set by software or when the BUSY bit is set by the interface).  
Example settings for DIVIDER are shown in Table 40-4, "Example  
Frequency Settings".  
DS00002206H-page 552  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 40-4: EXAMPLE FREQUENCY SETTINGS  
Divider  
Frequency  
0
1
48MHz  
24MHz  
16MHz  
12MHz  
9.6MHz  
6.9MHz  
3MHz  
2
3
4
6
15  
47  
1MHz  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 553  
MEC170x  
41.0 TRACE FIFO DEBUG PORT (TFDP)  
41.1 Introduction  
The TFDP serially transmits Embedded Controller (EC)-originated diagnostic vectors to an external debug trace system.  
41.2 References  
No references have been cited for this chapter.  
41.3 Terminology  
There is no terminology defined for this chapter.  
41.4 Interface  
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.  
FIGURE 41-1:  
I/O DIAGRAM OF BLOCK  
Trace FIFO Debug Port  
(TFDP)  
Host Interface  
Signal Description  
Power, Clocks and Reset  
Interrupts  
41.5 Signal Description  
The Signal Description Table lists the signals that are typically routed to the pin interface.  
TABLE 41-1: SIGNAL DESCRIPTION  
Name  
Direction  
Description  
Derived from EC Bus Clock.  
Serialized data shifted out by TFDP Clk.  
TFDP Clk  
Output  
Output  
TFDP Data  
41.6 Host Interface  
The registers defined for the Trace FIFO Debug Port (TFDP) are accessible by the various hosts as indicated in Section  
41.11, "EC-Only Registers".  
DS00002206H-page 554  
2016-2020 Microchip Technology Inc.  
MEC170x  
41.7 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
41.7.1  
POWER DOMAINS  
Name  
Description  
VTR  
The logic and registers implemented in this block are powered by this  
power well.  
41.7.2  
41.7.3  
CLOCK INPUTS  
Name  
Description  
48MHz  
This is the main system clock.  
RESETS  
Name  
Description  
RESET_SYS  
This signal resets all the registers and logic in this block to their default  
state.  
41.8 Interrupts  
There are no interrupts generated from this block.  
41.9 Low Power Modes  
The Trace FIFO Debug Port (TFDP) may be put into a low power state by the chip’s Power, Clocks, and Reset (PCR)  
circuitry.  
41.10 Description  
The TFDP is a unidirectional (from processor to external world) two-wire serial, byte-oriented debug interface for use  
by processor firmware to transmit diagnostic information.  
The TFDP consists of the Debug Data Register, Debug Control Register, a Parallel-to-Serial Converter, a Clock/Control  
Interface and a two-pin external interface (TFDP Clk, TFDP Data). See Figure 41-2.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 555  
MEC170x  
FIGURE 41-2:  
BLOCK DIAGRAM OF TFDP DEBUG PORT  
Data  
Register  
PARALLEL-TO-SERIAL  
CONVERTER  
TFDP_DAT  
TFDP_CLK  
WRITE_COMPLETE  
CLOCK/CONTROL  
INTERFACE  
The firmware executing on the embedded controller writes to the Debug Data Register to initiate a transfer cycle  
(Figure 41.11). At first, data from the Debug Data Register is shifted into the LSB. Afterwards, it is transmitted at the rate  
of one byte per transfer cycle.  
Data is transferred in one direction only from the Debug Data Register to the external interface. The data is shifted out  
at the clock edge. The clock edge is selected by the EDGE_SEL bit in the Debug Control Register. After being shifted  
out, valid data will be presented at the opposite edge of the TFDP_CLK. For example, when the EDGE_SEL bit is ‘0’  
(default), valid data will be presented on the falling edge of the TFDP_CLK. The Setup Time (to the falling edge  
of TFDP_CLK) is 10 ns, minimum. The Hold Time is 1 ns, minimum.  
When the Serial Debug Port is inactive, the TFDP_CLK and TFDP_DAT outputs are ‘1.’ The EC Bus Clock clock input  
is the transfer clock.  
FIGURE 41-3:  
DATA TRANSFER  
MSCLK  
MSDAT  
D0  
D1  
D2  
D3  
D4  
D5  
D6  
D7  
EC_CLOCK  
DIVSEL  
41.11 EC-Only 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 Trace FIFO Debug Port (TFDP) Block in the Block Overview and Base Address  
Table in Section 3.0, "Device Inventory".  
TABLE 41-2: REGISTER SUMMARY  
Offset  
Register Name  
Debug Data Register  
Debug Control Register  
00h  
04h  
DS00002206H-page 556  
2016-2020 Microchip Technology Inc.  
MEC170x  
41.11.1 DEBUG DATA REGISTER  
The Debut Data Register is Read/Write. It always returns the last data written by the TFDP or the power-on default ‘00h’.  
00h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:0 DATA  
R/W  
00h  
RESET  
_SYS  
Debug data to be shifted out on the TFDP Debug port. While data  
is being shifted out, the Host Interface will ‘hold-off’ additional  
writes to the data register until the transfer is complete.  
41.11.2 DEBUG CONTROL REGISTER  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7
Reserved  
R
-
-
6:4 IP_DELAY  
R/W  
000b  
RESET  
_SYS  
Inter-packet Delay. The delay is in terms of TFDP Debug output  
clocks. A value of 0 provides a 1 clock inter-packet period, while a  
value of 7 provides 8 clocks between packets:  
3:2 DIVSEL  
R/W  
R/W  
00b  
0b  
RESET  
_SYS  
Clock Divider Select. The TFDP Debug output clock is determined  
by this field, according to Table 41-3, "TFDP Debug Clocking":  
1
0
EDGE_SEL  
RESET  
_SYS  
1=Data is shifted out on the falling edge of the debug clock  
0=Data is shifted out on the rising edge of the debug clock (Default)  
EN  
R/W  
0b  
RESET  
_SYS  
Enable.  
1=Clock enabled  
0=Clock is disabled (Default)  
TABLE 41-3: TFDP DEBUG CLOCKING  
divsel  
TFDP Debug Clock  
00  
01  
10  
11  
24 MHz  
12 MHz  
6 MHz  
Reserved  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 557  
MEC170x  
42.0 PORT 80 BIOS DEBUG PORT  
42.1 Overview  
The Port 80 BIOS Debug Port emulates the functionality of a “Port 80” ISA plug-in card. In addition, a timestamp for  
the debug data can be optionally added.  
Diagnostic data is written by the Host Interface to the Port 80 BIOS Debug Port, which is located in the Host I/O address  
space. The Port 80 BIOS Debug Port generates an interrupt to the EC when host data is available. The EC reads  
this data along with the timestamp, if enabled.  
42.2 References  
There are no references for this block.  
42.3 Interface  
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.  
FIGURE 42-1:  
I/O DIAGRAM OF BLOCK  
Port 80 BIOS Debug Port  
Host Interface  
Signal Description  
Clock Inputs  
Resets  
Interrupts  
42.4 Signal Description  
There are no external signals for this block.  
42.5 Host Interface  
The Port 80 block is accessed by host software via a registered interface, as defined in Section 42.11, "Runtime Reg-  
isters". In addition, there is a set of registers accessible to the EC, defined in Section 42.12, "EC Registers".  
DS00002206H-page 558  
2016-2020 Microchip Technology Inc.  
MEC170x  
42.6 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
42.6.1  
POWER DOMAINS  
Name  
Description  
VTR  
This Power Well is used to power the registers and logic in this block.  
42.6.2  
CLOCK INPUTS  
Name  
Description  
48MHz  
This is the clock source for Port 80 block logic.  
42.6.3  
RESETS  
Name  
Description  
RESET_SYS  
This signal resets all the registers and logic in this block to their default  
state.  
42.7 Interrupts  
This section defines the Interrupt Sources generated from this block.  
Source  
Description  
BDP_INT  
The Port 80 BIOS Debug Port generates an EC interrupt when the  
amount of data in the Port 80 FIFO equals or exceeds the FIFO Thresh-  
old defined in the Configuration Register.  
The interrupt signal is always generated by the Port 80 block if the block  
is enabled; the interrupt is enabled or disabled in the Interrupt Aggregator.  
42.8 Low Power Modes  
The Port 80 block may be put into a low power state by the chip’s Power, Clocks, and Reset (PCR) circuitry.  
42.9 Description  
FIGURE 42-2:  
PORT 80 BLOCK DIAGRAM  
RESET_SYS  
24-bit Timer  
48MHz  
BDP_INT  
FIFO  
Host Interface  
EC Interface  
32-bit x 16  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 559  
MEC170x  
The Port 80 BIOS Debug Port consists of a 32-bit wide x 16 deep FIFO and a 24-bit free running timer. Host and EC  
access to the Port 80 device is through a set of registers. The Host can write the FIFO via the Runtime Registers and  
the EC can read the FIFO can control the device via the EC Registers.  
Writes to the Host Data Register are concatenated with the 24-bit timestamp and written to the FIFO. Reads of the  
Host Data Register return zero. If writes to the Host Data Register overrun the FIFO, the oldest data are discarded and  
the OVERRUN status bit in the Status Register is asserted.  
Only the EC can read data from the FIFO, using the EC Data Register. The use of this data is determined by EC Firm-  
ware alone.  
42.10 Configuration Registers  
Configuration Registers for an instance of the Port 80 BIOS Debug Port are listed in the following table. Host access to  
Configuration Registers is through the Configuration Port using the Logical Device Number of each instance of the Port  
80 BIOS Debug Port and the Index shown in the “Host Index” column of the table. The EC can access Configuration  
Registers directly. The EC address for each register is formed by adding the Base Address for each instance of the Port  
80 BIOS Debug Port shown in the Block Overview and Base Address Table in Section 3.0, "Device Inventory" to the  
offset shown in the “EC Offset” column.  
TABLE 42-1: CONFIGURATION REGISTER SUMMARY  
EC Offset  
Host Index  
Register Name  
330h  
30h  
Activate Register  
42.10.1 ACTIVATE REGISTER  
330h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
7:1 Reserved  
ACTIVATE  
R
-
-
0
R/W  
0h  
RESET  
_SYS  
When this bit is asserted ‘1’, the block is enabled. When this bit is  
‘0’, writes by the Host interface to the Host Data Register are not  
claimed, the FIFO is flushed, the 24-bit Timer is reset, and the  
timer clock is stopped. Control bits in the Configuration Register  
are not affected by the state of ACTIVATE.  
42.11 Runtime Registers  
The registers listed in the Runtime Register Summary table are for a single instance of the Port 80 BIOS Debug Port.  
Host access for each register listed in this table is defined as an offset in the Host address space to the Block’s Base  
Address, as defined by the instance’s Base Address Register.  
The EC address for each register is formed by adding the Base Address for each instance of the Port 80 BIOS Debug  
Port shown in the Block Overview and Base Address Table in Section 3.0, "Device Inventory" to the offset shown in the  
“Offset” column.  
The Port 80 BIOS Debug Port can be accessed from the LPC Host Interface, the ESPI Host Interface, or the internal  
embedded controller (EC). The following table summarizes the host access types supported for each interface.  
DS00002206H-page 560  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 42-2: HOST R/W ACCESS TYPES  
IP Block Register Banks LPC  
ESPI  
EC  
Port 80 BIOS Debug Port Byte Access: R/W  
- Runtime Register Bank Word Access: None  
DWord Access: None  
Byte Access: R/W  
Word Access: None 1  
DWord Access: None  
Byte Access: R/W  
Word Access: R/W  
DWord Access: R/W  
Note 1: A single Port 80 BIOS Debug Port is only byte accessible via ESPI. However, it is possible to locate two  
Port 80 BIOS Debug Ports at I/O locations 80h and 81h and access both ports with a single ESPI I/O Word  
instruction.  
TABLE 42-3: RUNTIME REGISTER SUMMARY  
Offset  
Register Name  
00h  
Host Data Register  
42.11.1 HOST DATA REGISTER  
00h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:8 Reserved  
R
-
-
7:0 HOST_DATA  
W
0h  
RESET  
_SYS  
42.12 EC 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 each instance of the Port 80 BIOS Debug Port Block in the Block Overview and Base  
Address Table in Section 3.0, "Device Inventory".  
TABLE 42-4: EC REGISTER SUMMARY  
Offset  
Register Name  
100h  
104h  
108h  
10Ch  
EC Data Register  
Configuration Register  
Status Register  
Count Register  
42.12.1 EC DATA REGISTER  
100h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:8 TIME_STAMP  
7:0 EC_DATA  
R
0h  
RESET  
_SYS  
R
0h  
RESET  
_SYS  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 561  
MEC170x  
42.12.2 CONFIGURATION REGISTER  
104h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:8 Reserved  
R
-
-
7:6 FIFO_THRESHOLD  
R/W  
0h  
RESET  
_SYS  
This field determines the threshold for the Port 80 BIOS Debug  
Port Interrupts.  
3=14 entry threshold  
2=8 entry threshold  
1=4 entry threshold  
0=1 entry threshold  
5
TIMER_ENABLE  
R/W  
R/W  
0h  
0h  
RESET  
_SYS  
When the TIMER_ENABLE bit is ‘1’, the 24-bit Timer is actively  
counting at a rate determined by the TIMEBASE_SELECT  
bits. When the TIMER ENABLE bit is ‘0’, counting is stopped.  
4:3 TIMEBASE_SELECT  
RESET  
_SYS  
The TIMEBASE SELECT bits determine the clock for the 24-bit  
Timer.  
3=48MHz/64  
2=48MHz/32  
1=48MHz/16  
0=48MHz/8  
2
RESET_TIMESTAMP  
W
-
RESET  
_SYS  
When this field is written with a ‘1’, the 24-bit Timer is reset to ‘0’.  
Writing zero to the Count Register has the same effect.  
Writes of a ‘0’ to this field have no effect. Reads always return ‘0’.  
FLUSH  
1
0
W
R
-
-
RESET  
_SYS  
When this field is written with a ‘1’, the FIFO is flushed.  
Writes of a ‘0’ to this field have no effect. Reads always return ‘0’.  
Reserved  
-
DS00002206H-page 562  
2016-2020 Microchip Technology Inc.  
MEC170x  
42.12.3 STATUS REGISTER  
108h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
31:2 Reserved  
R
R
-
-
1
OVERRUN  
0h  
RESET  
_SYS  
The OVERRUN bit is ‘1’ when the host writes the Host Data Regis-  
ter when the FIFO is full.  
0
NOT_EMPTY  
R
0h  
RESET  
_SYS  
The NOT EMPTY bit is ‘1’ when there is data in the FIFO. The  
NOT EMPTY bit is ‘0’ when the FIFO is empty.  
42.12.4 COUNT REGISTER  
10Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
32:8 COUNT  
R/W  
0h  
Writes load data into the 24-bit Timer. Reads return the 24-bit  
Timer current value.  
7:0 Reserved  
R
-
-
2016-2020 Microchip Technology Inc.  
DS00002206H-page 563  
MEC170X  
43.0 VBAT-POWERED CONTROL INTERFACE  
43.1 General Description  
The VBAT-Powered Control Interface has VBAT-powered combinational logic and input and output signal pins. The  
block interfaces with the Real Time Clock as well as the Week Alarm.  
43.2 Interface  
This block’s connections are entirely internal to the chip.  
FIGURE 43-1:  
I/O DIAGRAM OF BLOCK  
VBAT-Powered Control Interface  
Host Interface  
Signal Description  
Clocks  
Resets  
Interrupts  
43.3 Signal Description  
TABLE 43-1: EXTERNAL SIGNAL DESCRIPTION  
Name  
Direction  
Description  
VCI_IN[6:0]  
VCI_OUT  
INPUT  
Input can cause wakeup or interrupt event, active low  
Output status driven by this block.  
OUTPUT  
DS00002206H-page 564  
2016-2020 Microchip Technology Inc.  
MEC170X  
TABLE 43-2: INTERNAL SIGNAL DESCRIPTION  
Name  
Direction  
Description  
Week_Alarm  
INPUT  
Signal from the Week Timer block. The alarm is asserted by the  
timer when the Week_Alarm Power-Up Output is asserted  
RTC_Alarm  
INPUT  
INPUT  
Signal from the Real Time Clock block. The alarm is asserted by the  
RTC when the RTC_ALRM signal is asserted.  
VTR_PWRGD  
Status signal for the state of the VTR power rail. This signal is high if  
the power rail is on, and low if the power rail is off.  
43.4 Host Interface  
The registers defined for the VBAT-Powered Control Interface are accessible only by the EC.  
43.5 Power, Clocks and Resets  
This section defines the Power, Clock, and Reset parameters of the block.  
43.5.1  
POWER DOMAINS  
Name  
Description  
VBAT  
VTR  
This power well sources all of the internal registers and logic in this block.  
This power well sources only bus communication. The block continues to  
operate internally while this rail is down.  
43.5.2  
CLOCKS  
This block does not require clocks.  
43.5.3 RESETS  
Name  
Description  
RESET_VBAT  
RESET_SYS  
This reset signal is used reset all of the registers and logic in this block.  
This reset signal is used to inhibit the bus communication logic, and iso-  
lates this block from VTR powered circuitry on-chip. Otherwise it has no  
effect on the internal state.  
43.6 Interrupts  
Source  
Description  
VCI_IN[6:0]  
These interrupts are routed to the Interrupt Controller They are only  
asserted when both VBAT and VTR are powered. Edge detection and  
assertion level for the interrupt are configured in the GPIO Pin Control  
Registers for the GPIOs that shares pins with VCI_IN# inputs. The inter-  
rupts are equivalent to the GPIO interrupts for the GPIOs that share the  
pins, but appear on different registers in the Interrupt Aggregator.  
43.7 Low Power Modes  
The VBAT-powered Control Interface has no low-power modes. It runs continuously while the VBAT well is powered.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 565  
MEC170X  
43.8 General Description  
The VBAT-Powered Control Interface (VCI) is used to drive the VCI_OUT pin. The output pin can be controlled either  
by VBAT-powered inputs, or by firmware when the VTR is active and the EC is powered and running. When the  
VCI_OUT pin is controlled by hardware, either because VTR is inactive or because the VCI block is configured for hard-  
ware control, the VCI_OUT pin can be asserted by a number of inputs:  
• When one or more of the VCI_INx# pins are asserted. By default, the VCI_IN# pins are active low, but firmware  
can switch each input individually to an active-high input. See Section 43.8.1, "Input Polarity".  
• When the Week Alarm from the Week Alarm Interface is asserted  
• When the RTC Alarm from the Real Time Clock is asserted  
Firmware can configure which of the hardware pin inputs contribute to the VCI_OUT output by setting the enable bits in  
the VCI Input Enable Register. Even if the input pins are not configured to affect VCI_OUT, firmware can monitor their  
current state through the status bits in the VCI Register. Firmware can also enable EC interrupts from the state of the  
input pins.  
Each of the VCI_IN# pins can be configured for additional properties.  
• By default, each of the VCI_IN# pins have an input glitch filter. All glitch filters can be disabled by the FIL-  
TERS_BYPASS bit in the VCI Register  
• Assertions of each of the VCI_IN# pins can optionally be latched, so hardware can maintain the assertion of a  
VCI_IN# even after the physical pin is de-asserted, or so that firmware can determine which of the VCI_IN# inputs  
contributed to VCI_OUT assertion. See the Latch Enable Register and the Latch Resets Register.  
• Rising edges and falling edges on the VCI_IN# pins are latched, so firmware can detect transitions on the  
VCI_IN# pins even if the transitions occurred while EC power was not available. See Section 43.8.2, "Edge Event  
Status".  
If none of the additional properties are required, firmware can disable a VCI_IN# pin completely, by clearing both the  
corresponding bit in the VCI Input Enable Register and the corresponding bit in the VCI Buffer Enable Register. When  
both bits are ‘0’, the input is disabled and will not be a drain on the VBAT power rail.  
When VTR power is present and the EC is operating, firmware can configure the VCI_OUT pin to operate as a general-  
purpose output pin. The VCI_OUT pin is firmware-controlled when the FW_EXT bit in the VCI Register is ‘1’. When firm-  
ware is controlling the output, the state of VCI_OUT is defined by the VCI_FW_CNTRL bit in the same register. When  
VTR is not present (the VTR_PWRGD input is low), the VCI_OUT pin is also determined by the hardware circuit.  
The following figures illustrate the VBAT-Power Control Interface logic:  
FIGURE 43-2:  
VBAT-POWERED CONTROL INTERFACE BLOCK DIAGRAM  
VCI_IN0# Logic  
VCI_IN1# Logic  
VCI_IN2# Logic  
VCI_IN3# Logic  
VCI_IN4# Logic  
VCI_IN5# Logic  
VCI_IN6# Logic  
0
VCI_OVRD_IN  
SYS_SHDN#  
VCI_OUT  
Week Alarm  
Latch  
Latch  
VCI_FW_CONTRL  
1
RTC Alarm  
1
FW_EXT  
VTR_PWRGD  
DS00002206H-page 566  
2016-2020 Microchip Technology Inc.  
MEC170X  
The VCI_INx# Logic in the block diagram is illustrated in the following figure:  
FIGURE 43-3:  
VBAT-POWERED CONTROL INTERFACE BLOCK DIAGRAM  
VCI_BUFFER_EN  
IE  
VCI_IN_  
POL  
FILTER_BYPASS  
Filter  
ENB  
0
ENB  
PIN  
1
R
Q
?
?
S
VCI_IN  
POS  
VCI_IN  
NEG  
LS  
LE  
VCI_IN#  
43.8.1  
INPUT POLARITY  
The VCI_IN# pins have an optional polarity inversion. The inversion takes place after any input filtering and before the  
VCI_IN signals are latched in the VCI_IN# status bits in the VCI Register. Edge detection occurs before the polarity  
inversion. The inversion is controlled by battery-backed configuration bits in the VCI Polarity Register.  
43.8.2  
EDGE EVENT STATUS  
Each VCI_IN# input pin is associated with two register bits used to record edge transitions on the pins. The edge detec-  
tion takes place after any input filtering, before polarity control and occurs even if the VCI_IN# input is not enabled as  
part of the VCI_OUT logic (the corresponding control bit in the VCI Input Enable Register is ‘0’) or if the state of the  
VCI_IN# input is not latched (the corresponding control bit in the Latch Enable Register is ‘0’). One bit is set whenever  
there is a high-to-low transition on the VCI_IN# pin (the VCI Negedge Detect Register) and the other bit is set whenever  
there is a low-to-high transition on the VCI_IN# pin (the VCI Posedge Detect Register).  
In order to minimize power drain on the VBAT circuit, the edge detection logic operates only when the input buffer for a  
VCI_IN# pin is enabled. The input buffer is enabled either when the VCI_IN# pin is configured to determine the  
VCI_OUT pin, as controlled by the VCI_IN[1:0]# field of the VCI Register, or when the input buffer is explicitly enabled  
in the VCI Input Enable Register. When the pins are not enabled transitions on the pins are ignored.  
43.8.3  
VCI PIN MULTIPLEXING  
Each of the VCI inputs, as well as VCI_OUT, are multiplexed with standard VTR-powered GPIOs. When VTR power is  
off, the mux control is disabled and the pin always reverts to the VCI function. The VCI_IN# function should be disabled  
in the VCI Input Enable Register VCI Buffer Enable Register and for any pin that is intended to be used as a GPIO rather  
than a VCI_IN#, so that VCI_OUT is not affected by the state of the pin.  
43.8.4  
APPLICATION EXAMPLE  
For this example, a mobile platform configures the VBAT-Powered Control Interface (VCI) as follows:  
• VCI_IN0# is wired to a power button on the mobile platform  
• VCI_IN1# is wired to a power button on a dock  
• The VCI_OUT pin is connected to the regulator that sources the VTR power rail, the rail which powers the EC  
The VCI can be used in a system as follows:  
1. In the initial condition, there is no power on either the VTR or VBAT power rails. All registers in the VCI are in an  
indeterminate state  
2. A coin cell battery is installed, causing a RESET_VBAT. All registers in the interface are forced to their default  
conditions. The VCI_OUT pin is driven by hardware, input filters on the VCI_IN# pins are enabled, the VCI_IN#  
pins are all active low, all VCI inputs are enabled and all edge and status latches are in their non-asserted state  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 567  
MEC170X  
3. The power button on VCI_IN0# is pushed. This causes VCI_OUT to be asserted, powering the VTR rail. This  
causes the EC to boot and start executing EC firmware  
4. The EC changes the VCI configuration so that firmware controls the VCI_OUT pin, and sets the output control  
so that VCI_OUT is driven high. With this change, the power button can be released without removing the EC  
power rail.  
5. EC firmware re-configures the VCI logic so that the VCI_IN# input latches are enabled. This means that subse-  
quent presses of the power button do not have to be held until EC firmware switches the VCI logic to firmware  
control  
6. During this phase the VCI_OUT pin is driven by the firmware-controlled state bit and the VCI input pins are  
ignored. However, the EC can monitor the state of the pins, or generate inputs when their state changes  
7. At some later point, EC firmware must enter a long-term power-down state.  
- Firmware configures the Week Timer for a Week Alarm once every 8 hours. This will turn on the EC power rail  
three times a day and enable the EC to perform low frequency housekeeping tasks even in its lowest-power  
state  
- Firmware de-asserts VCI_OUT. This action kills power to the EC and automatically returns control of the  
VCI_OUT pin to hardware.  
- The EC will remain in its lowest-power state until a power pin is pushed, AC power is connected, or the Sub-  
Week Alarm is active  
43.9 EC 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 VBAT-Powered Control Interface Block in the Block Overview and Base Address  
Table in Section 3.0, "Device Inventory".  
TABLE 43-3: REGISTER SUMMARY  
EC Offset  
Register Name  
VCI Register  
00h  
04h  
08h  
0Ch  
10h  
14h  
18h  
1Ch  
20h  
Latch Enable Register  
Latch Resets Register  
VCI Input Enable Register  
Reserved  
VCI Polarity Register  
VCI Posedge Detect Register  
VCI Negedge Detect Register  
VCI Buffer Enable Register  
43.9.1  
VCI REGISTER  
00h  
Offset  
Reset  
Event  
Bits  
Description  
Type  
Default  
31:18 Reserved  
17 RTC_ALRM  
R
R
-
-
0
RESET  
_VBAT  
If enabled by RTC_ALRM_LE, this bit is set to ‘1’ if the RTC Alarm  
signal is asserted. It is reset by writes to RTC_ALRM_LS.  
Note 1: The VCI_IN[6:0]# bits default to the state of their respective input pins. The VCI_OUT bit is determined  
by the VCI hardware circuit  
DS00002206H-page 568  
2016-2020 Microchip Technology Inc.  
MEC170X  
00h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
16 WEEK_ALRM  
R
0
RESET  
_VBAT  
If enabled by WEEK_ALRM_LE, this bit is set to ‘1’ if the Week  
Alarm signal is asserted. It is reset by writes to WEEK_ALRM_LS.  
15:13 Reserved  
R
-
-
12 FILTERS_BYPASS  
R/W  
0
RESET  
_VBAT  
The Filters Bypass bit is used to enable and disable the input filters  
on the VCI_IN# pins. See Section 47.17, "VBAT-Powered Control  
Interface Timing".  
1=Filters disabled  
0=Filters enabled (default)  
11 FW_EXT  
R/W  
0
RESET  
_SYS  
and  
RESET  
_VBAT  
This bit controls selecting between the external VBAT-Powered  
Control Interface inputs, or the VCI_FW_CNTRL bit output to con-  
trol the VCI_OUT pin.  
1=VCI_OUT is determined by the VCI_FW_CNTRL field, when VTR  
is active  
0=VCI_OUT is determined by the external inputs.  
10 VCI_FW_CNTRL  
R/W  
0
RESET  
_SYS  
and  
RESET  
_VBAT  
This bit can allow EC firmware to control the state of the VCI_OUT  
pin. For example, when VTR_PWRGD is asserted and the  
FW_EXT bit is ‘1’, clearing the VCI_FW_CNTRL bit de-asserts the  
active high VCI_OUT pin.  
BIOS must set this bit to ‘1’ prior to setting the FW_EXT bit to ‘1’ on  
power up, in order to avoid glitches on the VCI_OUT pin.  
9
VCI_OUT  
R
See  
Note 1  
This bit provides the current status of the VCI_OUT pin.  
8
7
Reserved  
Reserved  
R
R
R
-
-
-
6:0 VCI_IN#  
These bits provide the latched state of the associated VCI_IN# pin,  
See  
Note 1  
if latching is enabled or the current state of the pin if latching is not  
enabled. In both cases, the value is determined after the action of  
the VCI Polarity Register.  
Note 1: The VCI_IN[6:0]# bits default to the state of their respective input pins. The VCI_OUT bit is determined  
by the VCI hardware circuit  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 569  
MEC170X  
43.9.2  
LATCH ENABLE REGISTER  
04h  
Offset  
Reset  
Event  
Bits  
Description  
Type  
Default  
31:18 Reserved  
R
-
-
17 RTC_ALRM_LE  
R/W  
0h  
RESET  
_VBAT  
Latch enable for the RTC Power-Up signal.  
1=Enabled. Assertions of the RTC Alarm are held until the latch is  
reset by writing the correspondingLS bit  
0=Not Enabled. The RTC Alarm signal is not latched but passed  
directly to the VCI_OUT logic  
16 WEEK_ALRM_LE  
R/W  
0h  
RESET  
_VBAT  
Latch enable for the Week Alarm Power-Up signal.  
1=Enabled. Assertions of the Week Alarm are held until the latch is  
reset by writing the correspondingLS bit  
0=Not Enabled. The Week Alarm signal is not latched but passed  
directly to the VCI_OUT logic  
15:7 Reserved  
6:0 LE  
R
-
-
R/W  
30h  
RESET  
_VBAT  
Latching Enables. Latching occurs after the Polarity configuration,  
so a VCI_INi# pin is asserted when it is ‘0’ if VCI_IN_POL is ‘0’,  
and asserted when it is ‘1 ‘if VCI_IN_POL is ‘1’.  
For each bit in the field:  
1=Enabled. Assertions of the VCI_INi# pin are held until the latch is  
reset by writing the corresponding LS bit  
0=Not Enabled. The VCI_INi# signal is not latched but passed  
directly to the VCI_OUT logic  
43.9.3  
LATCH RESETS REGISTER  
08h  
Offset  
Reset  
Event  
Bits  
Description  
Type  
Default  
31:18 Reserved  
R
-
-
-
17 RTC_ALRM_LS  
W
RTC Alarm Latch Reset. When this bit is written with a ‘1’, the RTC  
Alarm Event latch is reset  
The RTC Alarm input to the latch has priority over the Reset input  
Reads of this register are undefined.  
DS00002206H-page 570  
2016-2020 Microchip Technology Inc.  
MEC170X  
08h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
16 WEEK_ALRM_LS  
W
-
Week Alarm Latch Reset. When this bit is written with a ‘1’, the  
Week Alarm Event latch is reset  
The Week Alarm input to the latch has priority over the Reset input  
Reads of this register are undefined.  
15:7 Reserved  
6:0 LS  
Latch Resets. When a Latch Resets bit is written with a ‘1’, the cor-  
R
-
-
W
responding VCI_INi# latch is de-asserted (‘1’).  
The VCI_INi# input to the latch has priority over the Latch Reset  
input, so firmware cannot reset the latch while the VCI_INi# pin is  
asserted. Firmware should sample the state of the pin in the VCI  
Register before attempting to reset the latch. As noted in the Latch  
Enable Register, the assertion level is determined by the  
VCI_IN_POL bit.  
Reads of this register are undefined.  
VCI INPUT ENABLE REGISTER  
43.9.4  
0Ch  
Offset  
Reset  
Event  
Bits  
Description  
Type  
Default  
31:7 Reserved  
6:0 IE  
Input Enables for VCI_IN# signals.  
R
-
-
R/W  
Fh  
RESET  
_VBAT  
After changing the input enable for a VCI input, firmware should  
reset the input latch and clear any potential interrupt that may have  
been triggered by the input, as changing the enable may cause the  
internal status to change.  
For each bit in the field:  
1=Enabled. The corresponding VCI_IN# input is not gated and tog-  
gling the pin will affect the VCI_OUT pin  
0=Not Enabled. the corresponding VCI_IN# input does not affect  
the VCI_OUT pin, even if the input is ‘0.’ Unless the corre-  
sponding bit in the VCI Buffer Enable Register is 1, latches are  
not asserted, even if the VCI_IN# pin is low, during a VBAT  
power transition  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 571  
MEC170X  
43.9.5  
VCI POLARITY REGISTER  
14h  
Offset  
Reset  
Event  
Bits  
Description  
Type  
Default  
31:7 Reserved  
R
-
-
6:0 VCI_IN_POL  
RW  
0
RESET  
_VBAT  
These bits determine the polarity of the VCI_IN input signals:  
For each bit in the field:  
1=Active High. The value on the pins is inverted before use  
0=Active Low (default)  
43.9.6  
VCI POSEDGE DETECT REGISTER  
18h  
Offset  
Reset  
Event  
Bits  
Description  
Type  
Default  
31:7 Reserved  
6:0 VCI_IN_POS  
These bits record a low to high transition on the VCI_IN# pins. A “1”  
R
-
-
R/WC  
0
RESET  
_VBAT  
indicates a transition occurred.  
For each bit in the field:  
1=Positive Edge Detected  
0=No edge detected  
43.9.7  
VCI NEGEDGE DETECT REGISTER  
1Ch  
Offset  
Reset  
Event  
Bits  
Description  
Type  
Default  
31:7 Reserved  
6:0 VCI_IN_NEG  
These bits record a high to low transition on the VCI_IN# pins. A “1”  
R
-
-
R/WC  
0
RESET  
_VBAT  
indicates a transition occurred.  
For each bit in the field:  
1=Negative Edge Detected  
0=No edge detected  
DS00002206H-page 572  
2016-2020 Microchip Technology Inc.  
MEC170X  
43.9.8  
VCI BUFFER ENABLE REGISTER  
20h  
Offset  
Reset  
Default  
Bits  
31:7 Reserved  
Description  
Type  
Event  
R
-
-
6:0 VCI_BUFFER_EN  
Input Buffer enable.  
RW  
0
RESET  
_VBAT  
After changing the buffer enable for a VCI input, firmware should  
reset the input latch and clear any potential interrupt that may have  
been triggered by the input, as changing the buffer may cause the  
internal status to change.  
This register has no effect when VTR is powered. When VTR is on,  
the input buffers are enabled only by the IE bit.  
For each bit in the field:  
1=VCI_IN# input buffer enabled independent of the IE bit. The edge  
detection latches for this input are always enabled  
0=VCI_IN# input buffer enabled by the IE bit. The edge detection  
latches are only enabled when the IE bit is ‘1’ (default)  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 573  
MEC170x  
44.0 VBAT-POWERED RAM  
44.1 Overview  
The VBAT Powered RAM provides a 128 Byte Random Accessed Memory that is operational while the main power rail  
is operational, and will retain its values powered by battery power while the main rail is unpowered.  
44.2 References  
No references have been cited for this feature.  
44.3 Terminology  
There is no terminology defined for this section.  
44.4 Interface  
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.  
FIGURE 44-1:  
I/O DIAGRAM OF BLOCK  
VBAT-Powered RAM  
Host Interface  
Signal Description  
Power, Clocks and Reset  
Interrupts  
44.5 Signal Description  
There are no external signals for this block.  
44.6 Host Interface  
The contents of the VBAT RAM are accessible to the EC over the Host Interface.  
DS00002206H-page 574  
2016-2020 Microchip Technology Inc.  
MEC170x  
44.7 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
44.7.1  
POWER DOMAINS  
Name  
Description  
VTR  
The main power well used when the VBAT RAM is accessed by the EC.  
VBAT  
The power well used to retain memory state while the main power rail is  
unpowered.  
44.7.2  
CLOCK INPUTS  
No special clocks are required for this block.  
44.7.3 RESETS  
Name  
RESET_VBAT  
Description  
This signal resets all the registers and logic in this block to their default  
state.  
44.8 Interrupts  
This block does not generate any interrupts.  
44.9 Low Power Modes  
The VBAT-Powered RAM automatically enters a low power mode whenever it is not being accessed by the EC. There  
is no chip-level Sleep Enable input.  
44.10 Description  
FIGURE 44-2:  
VBAT RAM BLOCK DIAGRAM  
EC Interface  
This interface is  
only operational  
when main  
power is  
VBAT Powered RAM  
present  
The VBAT Powered RAM provides a 128 Byte Random Accessed Memory that is operational while VTR is powered,  
and will retain its values powered by VBAT while VTR is unpowered. The RAM is organized as a 32 words x 32-bit wide  
for a total of 128 bytes.  
The contents of the VBAT RAM is indeterminate after a RESET_VBAT.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 575  
MEC170x  
45.0 VBAT REGISTER BANK  
45.1 Introduction  
This chapter defines a bank of registers powered by VBAT.  
45.2 Interface  
This block is designed to be accessed internally by the EC via the register interface.  
45.3 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
45.3.1  
POWER DOMAINS  
Name  
Description  
VBAT  
The VBAT Register Bank are all implemented on this single power  
domain.  
45.3.2  
CLOCK INPUTS  
This block does not require any special clock inputs. All register accesses are synchronized to the host clock.  
45.3.3 RESETS  
Name  
RESET_VBAT  
Description  
This reset signal, which is an input to this block, resets all the logic and  
registers to their initial default state.  
45.4 Interrupts  
This block does not generate any interrupt events.  
45.5 Low Power Modes  
The VBAT Register Bank is designed to always operate in the lowest power consumption state.  
45.6 Description  
The VBAT Register Bank block is a block implemented for aggregating miscellaneous battery-backed registers required  
the host and by the Embedded Controller (EC) Subsystem that are not unique to a block implemented in the EC sub-  
system.  
45.7 EC 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 VBAT Register Bank Block in the Block Overview and Base Address Table in Sec-  
tion 3.0, "Device Inventory".  
TABLE 45-1:  
Offset  
REGISTER SUMMARY  
Register Name  
00h  
04h  
08h  
0Ch  
10h  
14h  
Power-Fail and Reset Status Register  
TEST  
Clock Enable Register  
TEST  
TEST  
TEST  
DS00002206H-page 576  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 45-1:  
Offset  
REGISTER SUMMARY (CONTINUED)  
Register Name  
1Ch  
20h  
24h  
28h  
2Ch  
TEST  
Monotonic Counter Register  
Counter HiWord Register  
VWire Backup Register  
TEST  
45.7.1  
POWER-FAIL AND RESET STATUS REGISTER  
The Power-Fail and Reset Status Register collects and retains the VBAT RST and WDT event status when VTR is  
unpowered.  
00h  
Address  
Bits  
Reset  
Event  
Description  
Type  
Default  
7 VBAT_RST  
R/WC  
1
RESET_  
VBAT  
The VBAT_RST bit is set to ‘1’ by hardware when a RESET_VBAT  
is detected. This is the register default value. To clear VBAT RST  
EC firmware must write a ‘1’ to this bit; writing a ‘0’ to VBAT RST  
has no affect.  
6 SYSRESETREQ  
R/WC  
R/WC  
R/WC  
-
-
This bit is set to ‘1b’ if a RESET_SYS was triggered by an ARM  
SYSRESETREQ event.  
This bit is cleared to ‘0b’ when written with a ‘1b’; writes of a ‘0b’  
have no effect.  
5 WDT  
0
0
RESET_  
VBAT  
This bit is set to ‘1b’ if a RESET_SYS was triggered by a Watchdog  
Timer event.  
This bit is cleared to ‘0b’ when written with a ‘1b’; writes of a ‘0b’  
have no effect.  
4 RESETI  
RESET_  
VBAT  
This bit is set to ‘1b’ if a RESET_SYS was triggered by a low signal  
on the RESETI# input pin.  
This bit is cleared to ‘0b’ when written with a ‘1b’; writes of a ‘0b’  
have no effect.  
3 TEST  
R/WC  
R/WC  
0
0
RESET_  
VBAT  
2 SOFT_SYS_RESET Status  
RESET_  
VBAT  
This bit is set to ‘1b’ if a was triggered by an assertion of the SOFT-  
_SYS_RESET bit in the System Reset Register.  
This bit is cleared to ‘0b’ when written with a ‘1b’; writes of a ‘0b’  
have no effect.  
1 Reserved  
R
R
0
-
RESET_  
VBAT  
0 Reserved  
-
2016-2020 Microchip Technology Inc.  
DS00002206H-page 577  
MEC170x  
45.7.2  
Address  
Bits  
CLOCK ENABLE REGISTER  
08h  
Reset  
Event  
Description  
Type  
Default  
31:3 Reserved  
3 XOSEL  
R
-
-
R/W  
0b  
RESET_  
VBAT  
This bit selects between a single-ended clock source for the crystal  
oscillator or an external parallel crystal.  
1=The crystal oscillator is driven by a single-ended 32KHz clock  
source connected to the XTAL2 pin  
0=The crystal oscillator requires a 32KHz parallel resonant crystal  
connected between the XTAL1 and XTAL2 pins  
2 32KHZ_SOURCE  
R/W  
0b  
RESET_  
VBAT  
This field determines the source for the always-on 32KHz internal  
clock source. If set to ‘1b’, this bit will only take effect if an active  
clock has been detected on the crystal pins. Once the 32KHz  
source has been switched, activity detection on the crystal no lon-  
ger functions. Therefore, if the crystal oscillator uses a single-ended  
input, once started that input must not stop while this bit is ‘1b’.  
1=Crystal Oscillator. The selection between a singled-ended input or  
a resonant crystal is determined by XOSEL in this register  
0=Silicon Oscillator  
1 EXT_32K  
R/W  
0b  
RESET_  
VBAT  
This bit selects the source for the 32KHz clock domain.  
1=The 32KHZ_IN VTR-powered pin is used as a source for the  
32KHz clock domain. If an activity detector does not detect a  
clock on the selected source, the always-on 32KHz internal  
clock source is automatically selected  
0=The always-on32Khz clock source is used as the source for the  
32KHz clock domain  
0 32K_SUPPRESS  
R/W  
0b  
RESET_  
VBAT  
1=32KHz clock domain is off while VTR is off (i.e., while on VBAT  
only). The 32KHz domain is always on while VTR is on, so the  
PLL always has a reference  
0=32KHz clock domain is enabled while VTR is off (i.e., while on  
VBAT only). The clock source for the 32KHz domain is deter-  
mined by the other bits in this register  
45.7.3  
Address  
Bits  
MONOTONIC COUNTER REGISTER  
20h  
Reset  
Event  
Description  
Type  
Default  
31:0 MONOTTONIC_COUNTER  
R
0b  
RESET_  
VBAT  
Read-only register that increments by 1 every time it is read. It is  
reset to 0 on a VBAT Power On Reset.  
DS00002206H-page 578  
2016-2020 Microchip Technology Inc.  
MEC170x  
45.7.4  
Address  
Bits  
COUNTER HIWORD REGISTER  
24h  
Reset  
Default  
Description  
Type  
Event  
31:0 COUNTER_HIWORD  
R/W  
0b  
RESET_  
VBAT  
Thirty-two bit read/write register. If software sets this register to an  
incrementing value, based on an external non-volatile store, this  
register may be combined with the Monotonic Counter Register to  
form a 64-bit monotonic counter.  
45.7.5  
Address  
Bits  
VWIRE BACKUP REGISTER  
28h  
Reset  
Event  
Description  
Type  
Default  
31:8 Reserved  
R
-
-
7:4 M2S_42H_BACKUP  
R/W  
0b  
RESET_  
VBAT  
The Boot ROM firmware will copy this field into the SRC3 to SRC0  
bits of the Master-to-Slave Virtual Wire Register that corresponds to  
Virtual Wire Index 42h on a RESET_SYS. If software always saves  
the state of the Index 42h SRC bits on the falling edge of the  
SUSWARN# virtual wire, the state of the four SRC bits will be syn-  
chronized to the state of the four bits in the core logic.  
3:0 M2S_2H_BACKUP  
R/W  
0b  
RESET_  
VBAT  
The Boot ROM firmware will copy this field into the SRC3 to SRC0  
bits of the Master-to-Slave Virtual Wire Register that corresponds to  
Virtual Wire Index 2h on a RESET_SYS. If software always saves  
the state of the Index 2h SRC bits on the falling edge of the  
SUSWARN# virtual wire, the state of the four SRC bits will be syn-  
chronized to the state of the four bits in the core logic.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 579  
MEC170x  
46.0 EC SUBSYSTEM REGISTERS  
46.1 Introduction  
This chapter defines a bank of registers associated with the EC Subsystem.  
46.2 References  
None  
46.3 Interface  
This block is designed to be accessed internally by the EC via the register interface.  
46.4 Power, Clocks and Reset  
This section defines the Power, Clock, and Reset parameters of the block.  
46.4.1  
POWER DOMAINS  
Name  
Description  
VTR  
The logic and registers implemented in this block are powered by this  
power well.  
46.4.2  
CLOCK INPUTS  
This block does not require any special clock inputs. All register accesses are synchronized to the host clock.  
46.4.3 RESETS  
Name  
Description  
RESET_SYS  
RESET_SYS_nWDT  
RESET_VTR  
This signal resets all the registers and logic in this block to their default  
state, except WDT Event Count Register.  
This signal resets the WDT Event Count Register register. This reset is  
not asserted on a WDT Event.  
This reset signal is asserted only on VTR power on.  
46.5 Interrupts  
This block does not generate any interrupt events.  
46.6 Low Power Modes  
The EC Subsystem Registers may be put into a low power state by the chip’s Power, Clocks, and Reset (PCR) circuitry.  
When this block is commanded to sleep it will still allow read/write access to the registers.  
46.7 Description  
The EC Subsystem Registers block is a block implemented for aggregating miscellaneous registers required by the  
Embedded Controller (EC) Subsystem that are not unique to a block implemented in the EC subsystem.  
46.8 EC-Only 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 EC Subsystem Registers Block in the Block Overview and Base Address Table  
in Section 3.0, "Device Inventory".  
DS00002206H-page 580  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 46-1: REGISTER SUMMARY  
Offset  
Register Name  
00h  
04h  
08h  
0Ch  
10h  
14h  
18h  
1Ch  
20h  
24h  
28h  
2Ch  
30h  
34h  
38h  
3Ch  
40h  
44h  
48h  
5Ch  
60h  
64h  
68h  
6Ch  
70h  
74h  
78h  
7Ch  
80h  
84h  
90h  
100h  
SRAM Configuration Register  
AHB Error Address Register  
TEST  
TEST  
TEST  
AHB Error Control Register  
Interrupt Control Register  
ETM TRACE Enable Register  
Debug Enable Register  
OTP Lock Register  
WDT Event Count Register  
TEST  
TEST  
TEST  
TEST  
TEST  
PECI Disable Register  
TEST  
TEST  
TEST  
TEST  
GPIO Bank Power Register  
TEST  
TEST  
JTAG Master Configuration Register  
JTAG Master Status Register  
JTAG Master TDO Register  
JTAG Master TDI Register  
JTAG Master TMS Register  
JTAG Master Command Register  
TEST  
TEST  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 581  
MEC170x  
46.8.1  
Offset  
Bits  
SRAM CONFIGURATION REGISTER  
08h  
Reset  
Event  
Description  
Type  
Default  
31:2 Reserved  
R
R
-
-
1:0 SRAM_SIZE  
0h  
RESET_  
SYS  
3=480KB total (Code=416KB; DATA=64KB). Code RAM starts at  
address B0000h and extends to 117FFFh. Data RAM starts at  
118000h and extends to 127FFFh  
2=320KB total (Code=288KB; DATA=32KB). Code RAM starts at  
address D0000h and extends to 117FFFh. Data RAM starts at  
118000h and extends to 11FFFFh  
1=256KB total (Code=224KB; DATA=32KB). Code RAM starts at  
address E0000h and extends to 117FFFh. Data RAM starts at  
118000h and extends to 11FFFh  
0=Reserved  
46.8.2  
Offset  
Bits  
AHB ERROR ADDRESS REGISTER  
04h  
Reset  
Event  
Description  
Type  
Default  
31:0 AHB_ERR_ADDR  
In priority order:  
R/WZC  
0h  
RESET_  
SYS  
1. AHB address is registered when an AHB error occurs on the  
processors AHB master port and the register value was  
already 0. This way only the first address to generate an  
exception is captured.  
2. The processor can clear this register by writing any 32-bit  
value to this register.  
46.8.3  
Offset  
Bits  
AHB ERROR CONTROL REGISTER  
14h  
Reset  
Event  
Description  
Type  
Default  
7:2 Reserved  
1 TEST  
R
-
-
R/W  
0h  
RESET_  
SYS  
0 AHB_ERROR_DISABLE  
R/W  
0h  
RESET_  
SYS  
1=EC memory exceptions are disabled  
0=EC memory exceptions are enabled  
DS00002206H-page 582  
2016-2020 Microchip Technology Inc.  
MEC170x  
46.8.4  
Offset  
Bits  
31:1 Reserved  
INTERRUPT CONTROL REGISTER  
18h  
Reset  
Default  
Description  
Type  
Event  
R
-
-
0 NVIC_EN  
R/W  
1b  
RESET_  
SYS  
This bit enables Alternate NVIC IRQ’s Vectors. The Alternate NVIC  
Vectors provides each interrupt event with a dedicated (direct) NVIC  
vector.  
1=Alternate NVIC vectors enabled  
0=Alternate NVIC vectors disabled  
46.8.5  
ETM TRACE ENABLE REGISTER  
1Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:1 Reserved  
0 TRACE_EN  
R
-
-
R/W  
0b  
RESET_  
SYS  
This bit enables the ARM TRACE debug port (ETM/ITM). The Trace  
Debug pins are forced to the TRACE functions.  
1=ARM TRACE port enabled  
0=ARM TRACE port disabled  
46.8.6  
Offset  
Bits  
DEBUG ENABLE REGISTER  
20h  
Reset  
Event  
Description  
Type  
Default  
31:4 Reserved  
R
-
-
3 DEBUG_PU_EN  
R/W  
0h  
RESET_  
SYS  
If this bit is set to ‘1b’ internal pull-up resistors are automatically  
enabled on the appropriate debugging port wires whenever the  
debug port is enabled (the DEBUG_EN bit in this register is ‘1b’ and  
the JTAG_RST# pin is high). The setting of DEBUG_PIN_CFG  
determines which pins have pull-ups enabled when the debug port  
is enabled.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 583  
MEC170x  
20h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
2:1 DEBUG_PIN_CFG  
R/W  
0h  
RESET_  
SYS  
This field determines which pins are affected by the TRST# debug  
enable pin.  
3=Reserved  
2=The pins associated with the JTAG TCK and TMS switch to the  
debug interface when TRST# is de-asserted high. The pins  
associated with TDI and TDO remain controlled by the associ-  
ated GPIO. This setting should be used when the ARM Serial  
Wire Debug (SWD) is required for debugging and the Serial  
Wire Viewer is not required  
1=The pins associated with the JTAG TCK, TMS and TDO switch to  
the debug interface when TRST# is de-asserted high. The pin  
associated with TDI remains controlled by the associated GPIO.  
This setting should be used when the ARM Serial Wire Debug  
(SWD) and Serial Wire Viewer (SWV) are both required for  
debugging  
0=All four pins associated with JTAG (TCK, TMS, TDI and TDO)  
switch to the debug interface when TRST# is de-asserted high.  
This setting should be used when the JTAG TAP controller is  
required for debugging  
0 DEBUG_EN  
R/W  
0b  
RESET_  
SYS  
This bit enables the JTAG/SWD debug port.  
1=JTAG/SWD port enabled. A high on TRST# enables JTAG or  
SWD, as determined by SWD_EN  
0=JTAG/SWD port disabled. JTAG/SWD cannot be enabled (the  
TRST# pin is ignored and the JTAG signals remain in their non-  
JTAG state)  
46.8.7  
OTP LOCK REGISTER  
24h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:5 Reserved  
R
-
-
4 PUBLIC_KEY_LOCK  
R/W /  
R
0b  
RESET_  
SYS  
This bit controls access to the Public Key region of the eFuse mem-  
ory, bytes 128 to 191.  
Once written, this bit becomes Read Only.  
If the JTAG_EN bit is 1 (enabled), the Public Key is inaccessible,  
independent of the state of this bit.  
1=The Public Key is inaccessible (i.e, always returns 0 or 1 for every  
bit)  
0=The Public Key is accessible  
DS00002206H-page 584  
2016-2020 Microchip Technology Inc.  
MEC170x  
24h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
3 USER_OTP_LOCK  
R/W /  
R
0b  
RESET_  
SYS  
This bit controls access to the User region of the eFuse memory,  
bytes 192 to 511.  
Once written, this bit becomes Read Only.  
If the JTAG_EN bit is 1 (enabled), the User region is inaccessible,  
independent of the state of this bit.  
1=The User region is inaccessible (i.e, always returns 0 or 1 for  
every bit)  
0=The User region is accessible  
2 PRIVATE_KEY_LOCK  
R/W /  
R
0b  
RESET_  
SYS  
This bit controls access to Private Key region of the eFuse memory,  
bytes 0 to 31.  
Once written, this bit becomes Read Only.  
If the JTAG_EN bit is 1 (enabled), the Private Key is inaccessible,  
independent of the state of this bit.  
1=The Private Key is inaccessible (i.e, always returns 0 or 1 for  
every bit)  
0=The Private Key is accessible  
1 MCHIP_LOCK  
R/W /  
R
0b  
RESET_  
SYS  
This bit controls access to Microchip region of the eFuse memory,  
bytes 32 to 127.  
Once written, this bit becomes Read Only.  
If the JTAG_EN bit is 1 (enabled), the Private Key is inaccessible,  
independent of the state of this bit.  
1=The Microchip region is inaccessible (i.e, always returns 0 or 1 for  
every bit)  
0=The Microchip region is accessible  
0 TEST  
R
0b  
RESET_  
SYS  
46.8.8  
WDT EVENT COUNT REGISTER  
28h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:4 Reserved  
R
-
-
3:0 WDT_EVENT_COUNT  
R/W  
0b  
RESET_  
SYS_n-  
WDT  
This field is cleared to 0 on a reset triggered by the main power on  
reset, but not on a reset triggered by the Watchdog Timer.  
This field needs to be written by application to indicate the number  
of times a WDT fired before loading a good EC code image. Note 1  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 585  
MEC170x  
28h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
Note 1: The recommended procedure is to first clear the VTR WDT STATUS bit, increment the  
WDT_EVENT_COUNT, clear the VBAT WDT STATUS bit and then rearm the WDT.  
46.8.9  
PECI DISABLE REGISTER  
40h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:1 Reserved  
R
-
-
0 PECI_DISABLE  
R/W  
0b  
RESET_  
SYS  
This bit reduces leakage current through the CPU voltage reference  
pin if PECI or SB-TSI are not used.  
1=The VREF_VTT function is disabled, independent of the mux set-  
ting of the GPIO that shares the pin. The GPIO that shares the  
pin is not disabled  
0=The VREF_VTT pin is enabled  
46.8.10 GPIO BANK POWER REGISTER  
64h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:8 Reserved  
GPIO Bank Power Lock  
R
-
7
Bit[7]=0  
R/W  
0h  
RESET  
_SYS  
0 = VTR_LEVEL bits[2:0] and GPIO Bank Power Lock bit are R/W  
1 = VTR_LEVEL bits[2:0] and GPIO Bank Power Lock bit are  
Read Only  
Bit[7]=1  
RO  
This bit cannot be cleared once it is set to ‘1’. Writing zero has no  
effect.  
6:3 Reserved  
VTR_LEVEL3  
R
-
2
see  
Bit[7]  
0h  
RESET  
_SYS  
Voltage value on VTR3. This bit is set by hardware after a VTR  
Power On Reset, but may be overridden by software. It must be  
set by software if the VTR power rail is not active when  
RESET_SYS is de-asserted.  
1=VTR3 is powered by 1.8V  
0=VTR3 is powered by 3.3V  
DS00002206H-page 586  
2016-2020 Microchip Technology Inc.  
MEC170x  
64h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
1
VTR_LEVEL2  
see  
Bit[7]  
0h  
RESET  
_SYS  
Voltage value on VTR2. This bit is set by hardware after a VTR  
Power On Reset, but may be overridden by software. It must be  
set by software if the VTR power rail is not active when  
RESET_SYS is de-asserted.  
1=VTR2 is powered by 1.8V  
0=VTR2 is powered by 3.3V  
0
VTR_LEVEL1  
see  
Bit[7]  
0h  
RESET  
_SYS  
Voltage value on VTR1. This bit is set by hardware after a VTR  
Power On Reset, but may be overridden by software. It must be  
set by software if the VTR power rail is not active when  
RESET_SYS is de-asserted.  
1=VTR1 is powered by 1.8V  
0=VTR1 is powered by 3.3V  
Note:  
The Boot ROM reads the VTR_LEVEL1, VTR_LEVEL2, VTR_LEVEL3 values from the SPI Flash Header  
and writes the VTR_LEVEL1, VTR_LEVEL2, VTR_LEVEL3 bits. If the SPI Flash load fails, the Boot ROM  
clears all VTR_LEVEL1, VTR_LEVEL2, VTR_LEVEL3 bits.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 587  
MEC170x  
46.8.11 JTAG MASTER CONFIGURATION REGISTER  
70h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:4 Reserved  
MASTER_SLAVE  
R
-
3
R/W  
0h  
RESET  
_SYS  
This bit controls the direction of the JTAG port.  
1=The JTAG Port is configured as a Master  
0=The JTAG Port is configures as a Slave  
2:0 JTM_CLK  
This field determines the JTAG Master clock rate, derived from the  
R/W  
3h  
RESET  
_SYS  
48MHz master clock.  
7=375KHz  
6=750KHz  
5=1.5Mhz  
4=3Mhz  
3=6Mhz  
2=12Mhz  
1=24MHz  
0=Reserved.  
46.8.12 JTAG MASTER STATUS REGISTER  
74h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:1 Reserved  
JTM_DONE  
R
R
-
-
0
RESET  
_SYS  
This bit is set to ‘1b’ when the JTAG Master Command Register is  
written. It becomes ‘0b’ when shifting has completed. Software  
can poll this bit to determine when a command has completed and  
it is therefore safe to remove the data in the JTAG Master TDO  
Register and load new data into the JTAG Master TMS Register  
and the JTAG Master TDI Register.  
DS00002206H-page 588  
2016-2020 Microchip Technology Inc.  
MEC170x  
46.8.13 JTAG MASTER TDO REGISTER  
78h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
31:0 JTM_TDO  
R/W  
0h  
RESET  
_SYS  
When the JTAG Master Command Register is written, from 1 to 32  
bits are shifted into this register, starting with bit 0, from the  
JTAG_TDO pin. Shifting is at the rate determined by the JTM_-  
CLK field in the JTAG Master Configuration Register  
46.8.14 JTAG MASTER TDI REGISTER  
7Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:0 JTM_TDI  
R/W  
0h  
RESET  
_SYS  
When the JTAG Master Command Register is written, from 1 to 32  
bits are shifted out of this register, starting with bit 0, onto the  
JTAG_TDI pin. Shifting is at the rate determined by the JTM_CLK  
field in the JTAG Master Configuration Register  
46.8.15 JTAG MASTER TMS REGISTER  
80h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:0 JTM_TMS  
R/W  
0h  
RESET  
_SYS  
When the JTAG Master Command Register is written, from 1 to 32  
bits are shifted out of this register, starting with bit 0, onto the  
JTAG_TMS pin. Shifting is at the rate determined by the JTM_-  
CLK field in the JTAG Master Configuration Register  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 589  
MEC170x  
46.8.16 JTAG MASTER COMMAND REGISTER  
84h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:5 Reserved  
R
-
4:0 JTM_COUNT  
W
RESET  
_SYS  
If the JTAG Port is configured as a Master, writing this register  
starts clocking and shifting on the JTAG port. The JTAG Master  
port will shift JTM_COUNT+1 times, so writing a ‘0h’ will shift 1 bit,  
and writing ‘31h’ will shift 32 bits. The signal JTAG_CLK will cycle  
JTM_COUNT+1 times. The contents of the JTAG Master TMS  
Register and the JTAG Master TDI Register will be shifted out on  
the falling edge of JTAG_CLK and the.JTAG Master TDO Register  
will get shifted in on the rising edge of JTAG_CLK.  
If the JTAG Port is configured as a Slave, writing this register has  
no effect.  
DS00002206H-page 590  
2016-2020 Microchip Technology Inc.  
MEC170x  
47.0 SECURITY FEATURES  
47.1 Overview  
This device includes a set of components that can support a high level of system security. Hardware support is provided  
for:  
• Authentication, using public key algorithms  
• Integrity, using Secure Hash Algorithms (SHA)  
• Privacy, using symmetric encryption (Advanced Encryption Standard, AES)  
• Entropy, using a true Random Number Generator  
47.2 References  
• American National Standards Institute, “Public Key Cryptography for the Financial Services Industry: Key Agree-  
ment and Key Transport Using Elliptic Curve Cryptography”, X9.63-2011, December 2011  
• American National Standards Institute, “Public Key Cryptography for the Financial Servic3es Industry: The Elliptic  
Curve Digital Signature Algorithm (ECDSA)”, X9.62-2005, November 2005  
• International Standards Organization, “Information Technology - Security techniques - Cryptographic techniques  
based on elliptic curves -- Part 2: Digital Signatures”, ISO/IEC 15946-2, December 2002  
• National Institute of Standards and Technology, “Secure Hash Standard (SHS)”, FIPS Pub 180-4, March 2012  
• National Institute of Standards and Technology, “Digital Signature Standard (DSS)”, FIPS Pub 186-3, June 2009  
• National Institute of Standards and Technology, “Advanced Encryption Standard (AES)”, FIPS Pub 197, November  
2001  
• National Institute of Standards and Technology, “Recommendation for Block Cipher Modes of Operation”, FIPS SP  
800-38A, 2001  
• RSA Laboratories, “PKCS#1 v2.2: RSA Cryptography Standard”, October 2012  
47.3 Terminology  
There is no terminology defined for this section.  
47.4 Interface  
This block is designed to be accessed externally via the pin interface and internally via a registered host interface.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 591  
MEC170x  
FIGURE 47-1:  
I/O DIAGRAM OF BLOCK  
Security Features  
Host Interface  
Signal Description  
Power, Clocks and Reset  
Interrupts  
47.5 Signal Description  
There are no external signals for this block.  
47.6 Host Interface  
Registers for the cryptographic hardware are accessible by the EC.  
47.7 Power, Clocks and Reset  
47.7.1  
POWER DOMAINS  
Name  
Description  
VTR  
The main power well used when the VBAT RAM is accessed by the EC.  
47.7.2  
CLOCK INPUTS  
No special clocks are required for this block.  
47.7.3 RESETS  
Name  
RESET_SYS  
Description  
This signal resets all the registers and logic in this block to their default  
state.  
DS00002206H-page 592  
2016-2020 Microchip Technology Inc.  
MEC170x  
47.8 Interrupts  
This section defines the Interrupt Sources generated from this block.  
Source  
Description  
Public Key Engine  
PKE ERROR  
PKE END  
Public Key Engine core error detected  
Public Key Engine completed processing  
Symmetric Encryption  
AES  
Symmetric Encryption block completed processing  
Cryptographic Hashing  
HASH  
HASH  
Random Number Generator  
Random Number Generator filled its FIFO  
RNG  
47.9 Low Power Modes  
The Security Features may be put into a low power state by the chip’s Power, Clocks, and Reset (PCR) circuitry.  
47.10 Description  
The security hardware incorporates the following functions:  
47.10.1 SYMMETRIC ENCRYPTION/DECRYPTION  
Standard AES encryption and decryption, with key sizes of 128 bits, 192 bits and 256 bits, are supported with a hardware  
accelerator. AES modes that can be configured include Electronic Code Block (ECB), Cipher Block Chaining (CBC),  
Counter Mode (CTR), Output Feedback (OFB) and Cipher Feedback (CFB).  
47.10.2 CRYPTOGRAPHIC HASHING  
Standard SHA hash algorithms, including SHA-1, SHA-256, SHA-384 and SHA-512, are supported by hardware.  
47.10.3 PUBLIC KEY CRYPTOGRAPHIC ENGINE  
A large variety of public key algorithms are supported directly in hardware. These include:  
- RSA encryption and decryption, with key sizes of 1024 bits, 2048 bits, 3072 bits and 4096 bits  
- Elliptic Curve point multiply, with all standard NIST curves, using either binary fields or prime fields  
- Elliptic Curve point multiply with Curve25519  
- The Elliptic Curve Digital Signature Algorithm (ECDSA), using all supported NIST curves  
- The Elliptic Curve Korean Certificate-based Digital Signature Algorithm (EC-KCDSA), using all supported  
NIST curves  
- The Edwards-curve Digital Signature Algorithm (EdDSA), using Curve25519  
- Miller-Rabin primality testing  
The Public Key Engine includes a 24KB cryptographic SRAM, which can be accessed by the EC when the engine is  
not in operation. With its private SRAM memory, the Public Key Engine can process public key operations independently  
of the EC.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 593  
MEC170x  
47.10.4 TRUE RANDOM NUMBER GENERATOR  
A true Random Number Generator, which includes a 1K bit FIFO for pre-calculation of random bits.  
47.10.5  
MONOTONIC COUNTER  
The Monotonic Counter is defined in Section 45.7.3, "Monotonic Counter Register". The counter automatically incre-  
ments every time it is accessed, as long as VBAT power is maintained. If it is necessary to maintain a monotonic counter  
across VBAT power cycles, the Counter HiWord Register can be combined with the Monotonic Counter Register to form  
a 64-bit monotonic counter. Firmware would be responsible for updating the Counter HiWord on a VBAT POR. The  
HiWord could be maintained in a non-volatile source, such as the EEPROM or an external SPI Flash.  
47.10.6 CRYPTOGRAPHIC API  
The Boot ROM includes an API for direct software access to cryptographic functions. API functions for Hashing and  
AES include a DMA interface, so the operations can function on large blocks of SRAM with a single call.  
47.11 Registers  
TABLE 47-1: CRYPTOGRAPHIC SRAM  
Block Instance  
Start Address  
End Address  
Size  
Cryptographic SRAM  
4010_0000h  
4010_5FFF  
24KB  
47.11.1 REGISTERS SUMMARY  
The Public Key Engine, The Random Number Generator, the Hash Engine and the Symmetric Encryption Engine are  
all listed in the Block Overview and Base Addresses in Section 3.0, "Device Inventory".  
DS00002206H-page 594  
2016-2020 Microchip Technology Inc.  
MEC170x  
48.0 TEST MECHANISMS  
48.1 ARM Test Functions  
Test mechanisms for the ARM are described in Section 5.0, "ARM M4F Based Embedded Controller".  
48.2 JTAG Boundary Scan  
Note:  
Boundary Scan operates in 4-wire JTAG mode only. This is not supported by 2-wire SWD.  
JTAG Boundary Scan includes registers and functionality as defined in IEEE 1149.1 and the MEC170x BSDL file. The  
MEC170x Boundary Scan JTAG ID is shown in Table 1-1.  
Note:  
Must wait a minimum of 35ms after a POR to accurately read the Boundary Scan JTAG ID. Reading the  
JTAG ID too soon may return a Boundary Scan JTAG ID of 00000000h. This is not a valid ID value.  
48.3 JTAG Master  
The JTAG Master controller in the MEC170x enables the embedded controller to perform full IEEE 1149.1 test functions  
as the master controller for test operations at assembly time or in the field.  
The JTAG Master interface shares the JTAG pin interface with the JTAG Boundary Scan and Debug TAP controllers;  
including, JTAG_CLK, JTAG_TDI, JTAG_TDO and JTAG_TMS. When the MEC170x JTAG interface is configured as  
master, it is the responsibility of the master firmware to satisfy all requirements regarding JTAG port multiplexing. It is  
also it is the responsibility of the JTAG Master firmware to satisfy all requirements for external JTAG slave devices that  
require an external asynchronous reset (TRST#) input.  
When JTAG slave functions are not required and the JTAG Master is enabled, the JTAG Interface pins are turned around  
so that the pins JTAG_CLK, JTAG_TMS and JTAG_TDI become outputs and the JTAG_TDO becomes an input.  
Figure 48-1, "JTAG Signal Clocking" shows the clocking behavior of JTAG in the TAP controller in a JTAG Slave device.  
The rows “TAP State” and “Shift Reg. Contents” refer to the state of the JTAG Slave device and are provided for refer-  
ence. When configured as a Master, the JTAG interface drives JTAG_CLK and will shift out data onto JTAG_TMS and  
JTAG_TDI in parallel, updating the pins on the falling edge of JTAG_CLK. The Master will sample data on JTAG_TDO  
on the rising edge of JTAG_CLK.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 595  
MEC170x  
FIGURE 48-1:  
JTAG SIGNAL CLOCKING  
TAP states  
change on rising  
edges of TCK,  
based on TMS  
(not shown).  
Data presentation  
occurs in middle  
of state (pre-shift).  
Shifting occurs on  
exiting the  
corresponding  
Shift state.  
TCK  
Non-Shift  
Shift-DR  
Non-Shift  
TAP State  
TDI  
Don’t Care  
Don’t Care  
A
Shift Register  
Contents  
Captured Value  
A
Undefined  
or Floating  
Undefined or Floating  
Captured Value  
TDO  
48.3.1  
JTAG MASTER REGISTER INTERFACE  
Registers that control the JTAG Master Port are located in the EC Subsystem Registers block. These registers are listed  
in the following table:  
TABLE 48-1: JTAG MASTER REGISTERS  
Offset  
Register Name  
20h  
70h  
74h  
78h  
7Ch  
80h  
84h  
Debug Enable Register  
JTAG Master Configuration Register  
JTAG Master Status Register  
JTAG Master TDO Register  
JTAG Master TDI Register  
JTAG Master TMS Register  
JTAG Master Command Register  
DS00002206H-page 596  
2016-2020 Microchip Technology Inc.  
MEC170x  
49.0 EFUSE BLOCK  
49.1 Introduction  
The eFUSE block provides a means of programming and accessing a block of One Time Programmable memory.  
49.2 Terminology  
None.  
49.3 Interface  
FIGURE 49-1:  
EFUSE BLOCK INTERFACE DIAGRAM  
eFUSE Block  
Host Interface  
Pin Interface  
Power, Clocks and Resets  
Interrupt  
49.3.1  
PIN INTERFACE  
Table 49-1, "Signal Description" lists the signals that are routed to the pin interface.  
TABLE 49-1: SIGNAL DESCRIPTION  
Name  
Direction  
Description  
VREF_ADC  
Input  
VPP Programming Pin  
49.3.2  
HOST INTERFACE  
The registers defined for the eFUSE Block are accessible by the EC.  
49.3.3 CLOCKING AND RESETS  
This IP block has the following clocks and reset ports. For a complete list of all the clocks and resets associated with  
this block see Section 49.4, "Power, Clocks and Resets".  
49.3.4  
INTERRUPT INTERFACE  
There are no interrupts from this block.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 597  
MEC170x  
49.4 Power, Clocks and Resets  
This section defines the Power, Clock, and Reset parameters of the block.  
49.4.1  
POWER DOMAINS  
TABLE 49-2: POWER SOURCES  
Name  
Description  
VTR  
This power well sources all of the registers and logic in this block, except  
where noted.  
49.4.2  
CLOCKS  
This section describes all the clocks in the block, including those that are derived from the I/O Interface as well as the  
ones that are derived or generated internally.  
TABLE 49-3: CLOCKS  
Name  
Description  
48MHz  
This clock signal drives selected logic (e.g., counters).  
49.4.3  
RESETS  
TABLE 49-4: RESET SIGNALS  
Name  
Description  
RESET_SYS  
This reset signal resets all of the registers and logic in this block.  
49.5 Interrupt Generation  
There are no interrupts from this block.  
49.6 Low Power Modes  
The eFUSE Block may be put into a low power state by the chip’s Power, Clocks, and Reset (PCR) circuitry.  
49.7 Description  
The eFuse memory consists of four blocks of 1K bits each, for a total of 4K bits. The assignment of the eFuse data is  
shown in Section 49.9, "eFuse Memory Map".The eFUSE bits are programmed one bit at a time through a register inter-  
face. Addressing bits for writing bits is by a 2-bit block address field and a 10-bit offset within block field. The eFUSE  
memory can be read through 8-bit or 16-bit reads of a block of register addresses.  
Note:  
Only 8-bit and 16-bit access to the eFUSE memory is supported. A 32-bit access or larger will just have  
the 16-bit read-back value replicated in the other byte lanes.  
49.7.1  
EFUSE PROGRAMMING SEQUENCE  
Programming of the eFuse array is one bit at a time. Programming changes a bit of ‘0b’ to ‘1b’. There is no way to  
change the value of a bit that is already ‘1b’.  
Sequence for programming one bit of eFuse memory:  
1. Set the VREF_ADC pin to ground before powering up.  
2. Power up the rest of the supplies  
3. Set the MAN_ENABLE bit in the Manual Control Register to ‘1b’  
4. Set FSOURCE_EN_READ to ‘0b’ - DO NOT combine with step 5; writing FSOURCE_EN_PRGM and  
FSOURCE_EN_READ MUST be performed with separate writes.  
5. Set the FSOURCE_EN_PRGM to ‘1b’  
6. Set the VREF_ADC pin to the VPP programming voltage in between1.52V to 1.60V.  
DS00002206H-page 598  
2016-2020 Microchip Technology Inc.  
MEC170x  
7. Set the IP_CS bit in the Manual Control Register to ‘0b’. The disables the eFuse memory array  
8. Select the IP_ADDR_HI field in the Manual Mode Address Register to the block number of the block to be pro-  
grammed  
9. Set the IP_CS bit in the Manual Control Register to ‘1b’. The enables and powers up the selected block in the  
eFuse memory array  
10. Select the IP_ADDR_LO field in the Manual Mode Address Register to the address of the bit within the current  
block to be programmed  
11. Wait 100 ns (min)  
12. Set PROG_EN to HIGH for 10µs (typical.  
13. Set PROG_EN to LOW for 100 ns (min)  
14. Repeat steps 10 to 13 for all bits within a block of 1K bits that are to be programmed to ‘1b’  
15. In order to program bits in another 1K bit block, go back to Step 7 and follow the subsequent steps to programs  
the bits in that block  
Programming one 1K bit block at a time eliminates glitches when switching between physical eFUSE blocks to prevent  
memory corruption.  
Power down sequence after programming operation  
1. Set the IP_CS bit in the Manual Control Register to ‘0b’. The disables and powers down the eFuse memory array  
2. Set the VREF_ADC pin to ground  
3. Set FSOURCE_EN_PRGM to ‘0b’ - DO NOT combine with step 4; writing FSOURCE_EN_PRGM and  
FSOURCE_EN_READ MUST be performed with separate writes  
4. Set FSOURCE_EN_READ to ‘1b’  
After programming is completed, the eFuse memory array may be read.  
49.8 eFuse Reading Sequence  
After power-up, the eFUSE Block is enabled for reading, but the block is in low-power/disabled mode.  
1. Control Register should contain 0x10 (FSOURCE_EN_READ = 1); set this bit if it is not already set.  
2. Set the bit 0 to 1b (ENABLE block) in Control Register.  
3. Read the desired eFuse content (by reading eFUSE Memory).  
4. If power savings is desired, turn the eFuse block off (clear ENABLE bit in Control Register)  
49.9 eFuse Memory Map  
The eFuse memory array is organized into four regions. Each of the four regions may be locked by a control bit in the  
EC Register Bank. When locked, a region in eFuse memory cannot be written, and always returns 0 on reads. The lock  
bits are located in the OTP Lock Register. In the following table, the four regions are identified by the lock bit names in  
the Lock Register.  
Note:  
Any secret customer information stored on chip in either EFUSE or VBAT memory must be encrypted for  
best security practices.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 599  
MEC170x  
The below table is not accurate. Contact Microchip for details.  
TABLE 49-5: EFUSE MEMORY MAP  
Byte  
Number  
Lock  
Bit  
Location Name  
Description  
0-31  
PRIVATE_ Encryption ECDH  
256-bit P-256 Elliptic Curve private key, for key exchange as part of the  
optional decryption step in the Boot ROM Load process. Stored big-  
endian.  
KEY_  
LOCK  
private key (aka,  
ECC private key)  
• If this region is programmed by Microchip, it is encrypted with AES-  
256 and is always locked when the Boot ROM exits.  
• If this region is not programmed by Microchip, it is not encrypted,  
and is left unlocked when the Boot ROM exits and can be pro-  
grammed by customers.  
32-127  
MCHIP_ Microchip  
LOCK  
OTP data required by Microchip. This region is always locked when the  
Boot ROM exits.  
128-159 PUBLIC_ Qx  
Authentication Public Key X coordinate, NIST P-256 Elliptic Curve. 256  
bits. Stored big-endian. This region is never locked after the Boot ROM  
exits.  
KEY_  
LOCK  
160-191  
Qy  
Authentication Public Key Y coordinate, NIST P-256 Elliptic Curve. 256  
bits. Stored big-endian. This region is never locked after the Boot ROM  
exits.  
192-479 USER_ Customer use  
OTP_  
One-time programmable memory available for customer use. 2336 bits.  
This region is never locked after the Boot ROM exits.  
LOCK  
480-481  
482  
TEST  
Microchip test functions. These bits should not be modified.  
USER_  
OTP_  
Microchip test func- Bits[5:0] Microchip test functions. These bits should not be modified.  
tions  
LOCK  
Bit[6] Debug Select  
1=Configure debug port to use SWD for debugging  
0=Configure debug port to use JTAG for debugging  
Bit[7] Debug Disable =0 (T/Eng)/ =1 (prod)  
1=JTAG and SWD disabled on ROM code exit. See bit 6  
0=JTAG and SWD enabled on ROM code exit. See bit 6  
483  
USER_ Customer Flags  
Bit[0]: Authenticate  
OTP_  
LOCK  
1=Header and firmware authenticated with ECC public key stored in Qx  
and Qy  
0=Header and firmware checked with SHA-256  
Bit[1]: Private Key Encryption - Enable  
1=Private ECC key (bytes 0-31) is AES-encrypted with ROM AES key  
0=Private ECC key does not need decryption  
Bit[2]: Private Key Encryption - Lock  
1= ECC key (bytes 0-31) is locked  
0= ECC key (bytes 0-31) is not locked  
Bits[7:3]: Undefined  
484-507 USER_ TEST  
Microchip test functions. These bits should not be modified.  
OTP_  
LOCK  
DS00002206H-page 600  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 49-5: EFUSE MEMORY MAP (CONTINUED)  
Byte  
Number  
Lock  
Bit  
Location Name  
Description  
508-509 USER_ SPI Flash Tag base Tag block address in the SPI Flash, containing pointers to EC load  
OTP_  
LOCK  
(Bytes  
image.  
Byte 508: Bits 15:8 of the Tag Block address  
Byte 509: Bits 23:16 of the Tag Block address  
Bits 7:0 of the Tag Block address are always 0  
192-511)  
510-511 USER_ OTP Version  
Version Identifier  
OTP_  
LOCK  
49.10 EC 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 eFUSE Block Block in the Block Overview and Base Address Table in Section  
3.0, "Device Inventory".  
TABLE 49-6: REGISTER SUMMARY  
Offset  
Register Name  
00h  
04h  
06h  
0Ch  
10h  
Control Register  
Manual Control Register  
Manual Mode Address Register  
Manual Mode Data Register  
eFUSE Memory  
49.10.1 CONTROL REGISTER  
00h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
15:5 Reserved  
R
-
-
4 FSOURCE_EN_READ  
R/W  
1b  
RESET_  
SYS  
FSOURCE pin enable for reading:  
1=FSOURCE switch logic connects eFUSE FSOURCE pin to a  
power pad for read mode. Only set this bit when  
FSOURCE_EN_PRGM bit is already 0 to avoid shorting the  
power pad to ground.  
0=FSOURCE switch logic isolates eFUSE FSOURCE pin from  
ground.  
Note:  
Modifying  
FSOURCE_EN_PRGM  
and  
FSOURCE_EN_READ MUST be performed with sepa-  
rate writes. Refer Section 49.7.1, "eFUSE Programming  
Sequence" for programming sequence details.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 601  
MEC170x  
00h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
3 FSOURCE_EN_PRGM  
R/W  
0b  
RESET_  
SYS  
FSOURCE pin enable for programming:  
1=FSOURCE switch logic connects eFUSE FSOURCE pin to a  
power pad for PROGRAM mode.  
0=FSOURCE switch logic isolates eFUSE FSOURCE pin from power  
pad.  
Note:  
Modifying  
FSOURCE_EN_PRGM  
and  
FSOURCE_EN_READ MUST be performed with sepa-  
rate writes. Refer Section 49.7.1, "eFUSE Programming  
Sequence" for programming sequence details.  
2 EXT_PGM  
R/W  
R/W  
0b  
0b  
RESET_  
SYS  
External programming enable:  
1=eFUSE programming is done via external pin interface  
0=Manual/Normal mode. eFUSE programming is done via this  
block's register set  
1 RESET  
RESET_  
SYS  
Block reset:  
1=Block is reset  
0=Normal operation  
This bit self-clears and always reads back 0.  
0 ENABLE  
W
0b  
RESET_  
SYS  
Block enable:  
1=block is enabled for operation  
0=block is disabled and in lowest power state  
49.10.2 MANUAL CONTROL REGISTER  
04h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
15:6 Reserved  
5 IP_OE  
R
-
-
R/W  
0b  
RESET_  
SYS  
eFUSE output enable. The IP might tri-state at various times, so this  
bit isolates the outputs to avoid potential crowbar.  
1=eFUSE outputs enabled for read  
0=eFUSE outputs isolated  
4 IP_SENSE_PULSE  
R/W  
R/W  
0b  
0b  
RESET_  
SYS  
eFUSE sense, outputs are valid on falling edge of this bit.  
3 IP_PRCHG  
RESET_  
SYS  
eFUSE precharge:  
1=Outputs are being precharged  
0=Outputs are not precharged  
DS00002206H-page 602  
2016-2020 Microchip Technology Inc.  
MEC170x  
04h  
Offset  
Bits  
Reset  
Default  
Description  
Type  
Event  
2 IP_PRGM_EN)  
R/W  
0b  
0b  
0b  
RESET_  
SYS  
eFUSE program enable. Can also be considered the write signal:  
1=eFUSE is programming  
0=eFUSE is in read mode  
1 IP_CS  
R/W  
W
RESET_  
SYS  
eFUSE chip select (CS) pin:  
1=eFUSE is enabled for PROGRAM/READ modes  
0=eFUSE is disabled and in low power state  
0 MAN_ENABLE  
RESET_  
SYS  
Manual mode enable bit:  
1=Manual mode is enabled and this register interfaces to the eFUSE  
0=Normal mode, internal controller interfaces to eFUSE IP  
This bit only takes affect when the REG_CTRL.EXT_PRGM bit is 0.  
49.10.3 MANUAL MODE ADDRESS REGISTER  
06h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:12 Reserved  
R
-
-
11:10 IP_ADDR_HI  
R/W  
0b  
RESET_  
SYS  
Manual mode address, selecting a 1K bit block of eFuse data.  
9:0 IP_ADDR_LO  
R/W  
0b  
RESET_  
SYS  
Manual mode address, selecting the bit address within a 1K bit  
block.  
49.10.4 MANUAL MODE DATA REGISTER  
0Ch  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
31:16 Reserved  
15:0 IP_DATA  
R
-
-
R/W  
0b  
RESET_  
SYS  
Manual mode data:  
This field connects to the eFUSE data output pins.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 603  
MEC170x  
49.10.5 EFUSE MEMORY  
10h  
Offset  
Bits  
Reset  
Event  
Description  
Type  
Default  
4095:0 IP_MEM  
R/W  
0
RESET_  
SYS  
eFUSE memory read-back data, used to read eFuse data. Although  
these registers can be written, writes only change the read-back  
data and do not update the eFuse memory itself.  
DS00002206H-page 604  
2016-2020 Microchip Technology Inc.  
MEC170x  
50.0 ELECTRICAL SPECIFICATIONS  
50.1 Maximum Ratings*  
*Stresses exceeding those listed could cause permanent damage to the device. This is a stress rating only and func-  
tional operation of the device at any other condition above those indicated in the operation sections of this specification  
is not implied.  
Note:  
When powering this device from laboratory or system power supplies, it is important that the Absolute Max-  
imum Ratings not be exceeded or device failure can result. Some power supplies exhibit voltage spikes on  
their outputs when the AC power is switched on or off. In addition, voltage transients on the AC power line  
may appear on the DC output. If this possibility exists, it is suggested that a clamp circuit be used.  
50.1.1  
ABSOLUTE MAXIMUM THERMAL RATINGS  
Parameter  
Maximum Limits  
o
o
Operating Temperature Range  
0 C to +70 C Commercial  
o
o
a
-40 C to +85 C Industrial  
o
o
Storage Temperature Range  
Lead Temperature Range  
-55 to +150 C  
Refer to JEDEC Spec J-STD-020B  
a. For MEC1705 and MEC1704 only  
50.1.2 ABSOLUTE MAXIMUM SUPPLY VOLTAGE RATINGS  
Symbol Parameter  
Maximum Limits  
VBAT  
VTR_REG  
VTR_ANALOG  
VTR1  
3.0V Battery Backup Power Supply with respect to ground  
Main Regulator Power Supply with respect to ground  
3.3V Analog Power Supply with respect to ground  
3.3V or 1.8V Power Supply with respect to ground  
3.3V or 1.8V Power Supply with respect to ground  
3.3V or 1.8V Power Supply with respect to ground  
-0.3V to +3.63V  
-0.3V to +3.63V  
-0.3V to +3.63V  
-0.3V to +3.63V  
-0.3V to +3.63V  
-0.3V to +3.63V  
-0.3V to +3.63V  
VTR2  
VTR3  
VCC  
3.3V Main Power Supply with respect to ground (Connected  
to VCC_PWRGD pin)  
50.1.3  
ABSOLUTE MAXIMUM I/O VOLTAGE RATINGS  
Parameter  
Maximum Limits  
Voltage on any Digital Pin with  
respect to ground  
Determined by Power Supply of  
I/O Buffer and Pad Type  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 605  
MEC170x  
50.2 Operational Specifications  
50.2.1  
POWER SUPPLY OPERATIONAL CHARACTERISTICS  
TABLE 50-1: POWER SUPPLY OPERATING CONDITIONS  
Symbol  
Parameter  
MIN  
TYP  
MAX  
Units  
VBAT  
VTR_REG  
VTR_ANALOG  
VTRx  
Battery Backup Power Supply  
Main Regulator Power Supply  
Analog Power Supply  
2.0  
3.0  
3.3  
3.465  
3.465  
3.465  
3.465  
1.89  
V
V
V
V
V
1.71  
3.135  
3.135  
1.71  
3.3  
3.3V Power Supply  
3.3  
1.8V Power Supply  
1.80  
Note:  
The specification for the VTRx supplies are +/- 5%.  
50.2.2  
AC ELECTRICAL SPECIFICATIONS  
The AC Electrical Specifications for the clock input time are defined in Section 51.5, "Clocking AC Timing Characteris-  
tics". The clock rise and fall times use the standard input thresholds of 0.8V and 2.0V unless otherwise specified and  
the capacitive values listed in this section.  
50.2.3  
CAPACITIVE LOADING SPECIFICATIONS  
The following table defines the maximum capacitive load validated for the buffer characteristics listed in Table 50-3, "DC  
Electrical Characteristics".  
CAPACITANCE T = 25°C; fc = 1MHz; V = 3.3 VDC  
A
TR  
Note:  
All output pins, except pin under test, tied to AC ground.  
TABLE 50-2: MAXIMUM CAPACITIVE LOADING  
Limits  
TYP  
Parameter  
Symbol  
Unit  
Notes  
MIN  
MAX  
Input Capacitance of PCI_I and  
PCI_IO pins  
C
Note 3  
pF  
IN  
Input Capacitance of PCI_CLK pin  
C
C
Note 3  
Note 3  
pF  
pF  
IN  
Output Load Capacitance supported  
by PCI_IO, PCI_O, and PCI_OD  
OUT  
SUSCLK Input Capacitance  
C
C
10  
10  
pF  
pF  
IN  
Input Capacitance of PECI_I and  
PECI_IO  
IN  
Note 1: All input buffers can be characterized by this capacitance unless otherwise specified.  
2: All output buffers can be characterized by this capacitance unless otherwise specified.  
3: The PCI buffers are designed to meet the defined PCI Local Bus Specification, Rev. 2.1, electrical require-  
ments.  
DS00002206H-page 606  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 50-2: MAXIMUM CAPACITIVE LOADING (CONTINUED)  
Limits  
Parameter  
Symbol  
Unit  
Notes  
MIN  
TYP  
MAX  
Output Load Capacitance supported  
by PECI_IO and OD_PH  
C
C
C
10  
pF  
pF  
pF  
OUT  
Input Capacitance (all other input  
pins)  
10  
20  
Note 1  
Note 2  
IN  
Output Capacitance (all other output  
pins)  
OUT  
Note 1: All input buffers can be characterized by this capacitance unless otherwise specified.  
2: All output buffers can be characterized by this capacitance unless otherwise specified.  
3: The PCI buffers are designed to meet the defined PCI Local Bus Specification, Rev. 2.1, electrical require-  
ments.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 607  
MEC170x  
50.2.4  
DC ELECTRICAL CHARACTERISTICS FOR I/O BUFFERS  
TABLE 50-3: DC ELECTRICAL CHARACTERISTICS  
Parameter  
Symbol  
MIN  
TYP  
MAX  
Units  
Comments  
PIO Type Buffer  
All PIO Buffers  
Internal PU/PD selected via the  
GPIO Pin Control Register.  
Pull-up current  
R
R
39  
84  
65  
162  
105  
KΩ  
KΩ  
PU  
PD  
Pull-down current  
PIO  
39  
The drive strength is determined  
by programming bits[5:4] of the  
Pin Control 2 Register  
DRIVE_STRENGTH = 00b  
DRIVE_STRENGTH = 01b  
DRIVE_STRENGTH = 10b  
DRIVE_STRENGTH = 11b  
I Type Input Buffer  
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
Same characteristics as an IO-2  
mA.  
Same characteristics as an IO-4  
mA.  
Same characteristics as an IO-8  
mA.  
Same characteristics as an IO-  
12 mA.  
TTL Compatible Schmitt Trigger  
Input  
Low Input Level  
V
V
V
0.3x  
VTR  
V
ILI  
High Input Level  
0.7x  
VTR  
V
IHI  
Schmitt Trigger Hysteresis  
O-2 mA Type Buffer  
400  
mV  
HYS  
Low Output Level  
High Output Level  
V
V
0.4  
_
V
V
I
I
= 2 mA (min)  
= -2 mA (min)  
OL  
OL  
VTR-  
0.4  
OH  
OH  
IO-2 mA Type Buffer  
OD-2 mA Type Buffer  
_
_
_
_
_
Same characteristics as an I and  
an O-2mA.  
Low Output Level  
V
_
0.4  
_
V
_
I
= 2 mA (min)  
OL  
OL  
IOD-2 mA Type Buffer  
_
Same characteristics as an I and  
an OD-2mA.  
DS00002206H-page 608  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 50-3: DC ELECTRICAL CHARACTERISTICS (CONTINUED)  
Parameter  
O-4 mA Type Buffer  
Low Output Level  
High Output Level  
Symbol  
MIN  
TYP  
MAX  
Units  
Comments  
V
V
0.4  
V
I
= 4 mA (min)  
OL  
OL  
VTR-  
0.4  
V
_
I
= -4 mA (min)  
OH  
OH  
IO-4 mA Type Buffer  
_
_
_
_
_
Same characteristics as an I and  
an O-4mA.  
OD-4 mA Type Buffer  
Low Output Level  
V
_
0.4  
_
V
_
I
= 4 mA (min)  
OL  
OL  
IOD-4 mA Type Buffer  
_
Same characteristics as an I and  
an OD-4mA.  
O-8 mA Type Buffer  
Low Output Level  
High Output Level  
V
V
0.4  
V
V
I
I
= 8 mA (min)  
= -8 mA (min)  
OL  
OL  
VTR-  
0.4  
OH  
OH  
Unless the pin chapter explicitly  
indicates specific pin has “Over-  
voltage protection” feature.  
IO-8 mA Type Buffer  
OD-8 mA Type Buffer  
_
_
_
_
_
_
_
Same characteristics as an I and  
an O-8mA.  
Low Output Level  
V
_
0.4  
_
V
_
I
= 8 mA (min)  
OL  
OL  
IOD-8 mA Type Buffer  
Same characteristics as an I and  
an OD-8mA.  
O-12 mA Type Buffer  
Low Output Level  
High Output Level  
V
V
0.4  
_
V
V
I
I
= 12mA (min)  
= -12mA (min)  
OL  
OL  
VTR-  
0.4  
OH  
OH  
IO-12 mA Type Buffer  
_
_
_
_
Same characteristics as an I and  
an O-12mA.  
OD-12 mA Type Buffer  
Low Output Level  
V
_
0.4  
_
V
_
I
= 12mA (min)  
OL  
OL  
IOD-12 mA Type Buffer  
_
_
Same characteristics as an I and  
an OD-12mA.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 609  
MEC170x  
TABLE 50-3: DC ELECTRICAL CHARACTERISTICS (CONTINUED)  
Parameter  
Symbol  
MIN  
TYP  
MAX  
Units  
Comments  
I_AN Type Buffer  
I_AN Type Buffer  
(Analog Input Buffer)  
I_AN  
Voltage range on pins:  
-0.3V to +3.63V  
These buffers are not 5V tolerant  
buffers and they are not back-  
drive protected  
PCI Type Buffer (3.3V)  
PCI Buffers (PCI_ICLK,  
PCI_IO, PCI_I, PCI_O,  
PCI_OD)  
V
V
V
0.5V  
V +  
TR  
0.5  
V
See PCI Local Bus Specification  
Rev. 2.2  
IH  
T
R
-0.5  
0.3V  
V
IL  
T
R
3.0  
-10  
3.6  
V
LPC Supply Voltage  
TR  
I
+10  
µA  
V
0 < V < V  
IN CC  
IL  
V
0.9V  
I
= -500 µA  
OH  
T
OUT  
R
V
0.1V  
V
I
= 1500 µA  
OL  
T
OUT  
R
C
10  
pF  
IN  
PCI Type Buffer (1.8V)  
PCI Buffers (PCI_ICLK,  
PCI_IO, PCI_I, PCI_O,  
PCI_OD)  
V
1.5  
V
0.5  
+
V
See PCI Local Bus Specification  
Rev. 2.2  
IH  
TR  
V
V
-0.5  
0.8  
V
V
IL  
0.9   
I
I
= -500 µA  
OH  
OUT  
V
TR  
V
0.1   
V
= -1500 µA  
OL  
OUT  
V
TR  
PECI Type Buffer  
VREF_VTT  
Connects to CPU Voltage pin  
(Processor dependent)  
PECI Bus Voltage  
SBTSI Bus Voltage  
Input current  
V
V
0.95  
1.28  
1.26  
1.9  
V
BUS  
V
BUS  
IDC  
100  
+10  
µA  
µA  
Input Low Current  
ILEAK  
-10  
This buffer is not 5V tolerant  
This buffer is not backdrive pro-  
tected.  
DS00002206H-page 610  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 50-3: DC ELECTRICAL CHARACTERISTICS (CONTINUED)  
Parameter  
PECI_I Buffer  
Symbol  
MIN  
TYP  
MAX  
Units  
Comments  
All input and output voltages are  
a function of Vref, which is con-  
nected to CPU_VREF input.  
Input voltage range  
Low Input Level  
VIn  
VIL  
-0.3  
+Vref  
0.3  
V
0.275  
Vref  
V
V
High Input Level  
VIH  
0.725  
This buffer is not 5V tolerant  
This buffer is not backdrive pro-  
tected.  
Vref  
PECI_IO  
All input and output voltages are  
a function of Vref, which is con-  
nected to CPU_VREF input.  
Input voltage range  
Hysteresis  
VIn  
-0.3  
+Vref  
0.3  
V
V
See PECI Specification.  
VHYS  
0.1  
Vref  
0.2V  
ref  
Low Input Level  
High Input Level  
Low Output Level  
High Output Level  
Tolerance  
VIL  
0.275  
Vref  
V
V
V
V
V
VIH  
VOL  
VOH  
0.725  
Vref  
0.25  
0.5mA < IOL < 1mA  
IOH = -6mA  
Vref  
0.75  
Vref  
3.63  
This buffer is not 5V tolerant  
This buffer is not backdrive pro-  
tected.  
Crystal Oscillator  
XTAL1 (OCLK)  
The MEC170x crystal oscillator design requires a 32.768 KHz parallel resonant crys-  
tal with load caps in the range 4-18pF. Refer to “Application Note PCB Layout Guide  
for MEC170x” for more information.  
XTAL2 (ICLK)  
Low Input Level  
High Input Level  
V
V
0.4  
V
V
ILI  
2.0  
VIN = 0 to VTR  
ILH  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 611  
MEC170x  
TABLE 50-3: DC ELECTRICAL CHARACTERISTICS (CONTINUED)  
Parameter  
Symbol  
MIN  
TYP  
MAX  
Units  
Comments  
ADC Reference Pins  
ADC_VREF  
Voltage (Option A)  
V
V
VTR  
V
Connect to same power supply  
as VTR  
Voltage (Option B)  
Input Impedance  
Input Low Current  
2.97  
66  
3.0  
67  
3.03  
68  
V
R
KΩ  
µA  
REF  
ILEAK  
-0.05  
+0.05  
This buffer is not 5V tolerant  
This buffer is not backdrive pro-  
tected.  
50.2.4.1  
Pin Leakage  
Leakage characteristics for all digital I/O pins is shown in the following Pin Leakage table, unless otherwise specified.  
Two exceptions are pins with Over-voltage protection and Backdrive protection. Leakage characteristics for Over-Volt-  
age protected pins and Backdrive protected pins are shown in the two sub-sections following the Pin Leakage table.  
TABLE 50-4: PIN LEAKAGE (VTR=3.3V + 5%; VTR = 1.8V +5%)  
(TA = 0oC to +70oC)  
Parameter  
Symbol  
MIN  
TYP  
MAX  
Units  
Comments  
Leakage Current  
I
I
+/- 2  
µA  
VIN=0V to VTR  
IL  
IL  
(TA = -40oC to +85oC) Note 4  
Leakage Current  
+/- 3  
µA  
VIN=0V to VTR  
OVER-VOLTAGE PROTECTION TOLERANCE  
All the I/O buffers that do not have “Over-voltage Protection” are can only tolerate up to +/-10% I/O operation (or +1.98V  
when powered by 1.8V, or 3.63V when powered by 3.3V).  
Functional pins that have “Over-voltage Protection” can tolerate up to 3.63V when powered by 1.8V, or 5.5V when pow-  
ered by 3.3V. These pins are also backdrive protected. Backdrive Protection characteristics are shown in the following  
table:  
DS00002206H-page 612  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 50-5: 5V TOLERANT LEAKAGE CURRENTS (VTR = 3.3V-5%)  
(TA = 0oC to +70oC)  
Parameter  
Symbol  
MIN  
TYP  
MAX  
Units  
Comments  
Three-State Input  
Leakage Current  
for 5V Tolerant Pins  
I
-
-
-
-
-
-
+/- 4  
+/- 66  
+/- 2  
µA  
µA  
µA  
VIN: 4.0V < Vin < 5.5V  
IL  
VIN: 3.6V < Vin < 4.0V  
VIN: <3.6V  
(TA = -40oC to +85oC) Note 4  
Three-State Input  
Leakage Current  
for 5V Tolerant Pins  
I
-
-
-
-
-
-
+/- 4  
+/- 70  
+/- 3  
µA  
µA  
µA  
VIN: 4.0V < Vin < 5.5V  
VIN: 3.6V < Vin < 4.0V  
VIN: <3.6V  
IL  
Note:  
These measurements are done without an external pull-up.  
TABLE 50-6: 3.6V TOLERANT LEAKAGE CURRENTS (VTR = 1.8V-5%)  
(TA = 0oC to +70oC)  
Parameter  
Symbol  
MIN  
TYP  
MAX  
Units  
Comments  
Three-State Input  
Leakage Current for  
Under-Voltage Toler-  
ant Pins  
I
-
-
+/- 2  
+/- 42  
+/- 2  
µA  
µA  
µA  
VIN: 2.47V < Vin <3.6V  
VIN: 1.92V < Vin <2.47V  
VIN: <1.92V  
IL  
-
-
(TA = -40oC to +85oC) Note 4  
Three-State Input  
Leakage Current for  
Under-Voltage Toler-  
ant Pins  
I
-
-
-
+/- 3  
+/- 50  
+/- 3  
µA  
µA  
µA  
VIN: 2.47V < Vin <3.6V  
VIN: 1.92V < Vin <2.47V  
VIN: <1.92V  
IL  
-
Note:  
This measurements are done without an external pull-up.  
BACKDRIVE PROTECTION  
TABLE 50-7: BACKDRIVE PROTECTION LEAKAGE CURRENTS (VTR=0V)  
(TA = 0oC to +70oC)  
Parameter  
Symbol  
MIN  
TYP  
MAX  
Units  
Comments  
Input Leakage  
Input Leakage  
I
I
4
2
µA  
µA  
3.6V < VIN < 5.5V  
0V < VIN < 3.6V  
IL  
IL  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 613  
MEC170x  
TABLE 50-7: BACKDRIVE PROTECTION LEAKAGE CURRENTS (VTR=0V) (CONTINUED)  
(TA = 0oC to +70oC)  
Parameter  
Symbol  
MIN  
TYP  
MAX  
Units  
Comments  
(TA = -40oC to +85oC)Note 4  
Input Leakage  
Input Leakage  
I
I
5
3
µA  
µA  
3.6V < VIN < 5.5V  
0V < VIN < 3.6V  
IL  
IL  
50.2.5  
ADC ELECTRICAL CHARACTERISTICS  
TABLE 50-8: ADC CHARACTERISTICS  
Symbol  
Parameter  
MIN  
TYP  
MAX  
Units  
Comments  
VTR_  
ANALOG  
Analog Supply Voltage (powered  
by VTR)  
3.135  
3.3  
3.465  
V
V
Input Voltage Range  
0
ADC_  
VREF  
V
Range of ADC_VREF  
input to ADC ground  
RNG  
RES  
Resolution  
10  
Bits  
Guaranteed Mono-  
tonic  
ACC  
DNL  
Absolute Accuracy  
2
4
LSB  
LSB  
Differential Non Linearity, DNL  
-1  
+1  
Guaranteed Mono-  
tonic  
INL  
Integral Non Linearity, INL  
-1.5  
+1.5  
LSB  
Guaranteed Mono-  
tonic  
EGAIN  
EOFFSET  
CONV  
II  
Gain Error, EGAIN  
Offset Error, EOFFSET  
Conversion Time  
Input Impedance  
-2  
-2  
2
2
LSB  
LSB  
1.125  
S/channel  
M  
3.5  
DS00002206H-page 614  
2016-2020 Microchip Technology Inc.  
MEC170x  
50.2.6  
THERMAL CHARACTERISTICS  
TABLE 50-9: THERMAL OPERATING CONDITIONS  
Rating  
Symbol  
MIN  
TYP  
MAX  
Unit  
Consumer Temperature Devices  
Operating Junction Temperature Range  
TJ  
TA  
TA  
0
0
125  
+70  
+85  
°C  
°C  
°C  
Operating Ambient Temperature Range - Commercial  
Operating Ambient Temperature Range - Industrial  
-40  
Power Dissipation:  
Internal Chip Power Dissipation:  
PINT = VDD x (IDD – S IOH)  
69.3  
(PINT + PI/O)  
PD  
mW  
W
I/O Pin Power Dissipation:  
I/O = S (({VDD – VOH} x IOH) + S (VOL x IOL))  
Maximum Allowed Power Dissipation  
PDMAX  
(TJ – TA)/JA  
TABLE 50-10: THERMAL PACKAGING CHARACTERISTICS  
Characteristics  
Symbol  
TYP  
MAX  
Unit  
°C/W  
Part #  
JA  
jC  
JA  
jC  
JA  
jC  
JA  
jC  
JA  
jC  
60.8  
16.3  
TBD  
TBD  
52.9  
13.9  
60.3  
16.4  
TBD  
TBD  
MEC1701  
MEC1703  
Package Thermal Resistance, 169-pin WFBGA-TN  
°C/W  
°C/W  
°C/W  
°C/W  
°C/W  
°C/W  
°C/W  
°C/W  
°C/W  
MEC1703  
Package Thermal Resistance, 169-pin WFBGA-XY  
Package Thermal Resistance, 144-pin WFBGA-SZ  
Package Thermal Resistance, 144-pin WFBGA-SZ  
Package Thermal Resistance, 128-pin WFBGA-TF  
MEC1703/  
MEC1705  
MEC1701  
MEC1701  
MEC1703  
Note:  
Junction to ambient thermal resistance, Theta-JA (JA), and Junction to case thermal resistance, Theta-JC  
(JC), numbers are achieved by package simulations  
50.3 Power Consumption  
TABLE 50-11: VTR SUPPLY CURRENT, I_VTR  
Max  
(3.45V,  
850 C)  
(Note  
3)  
48  
MHz  
PLL  
Typical  
Max  
System  
State  
EC_CLK  
Freq  
Comments  
(Note 1)  
VTR  
VCC  
(3.3V,  
(3.45V,  
Units  
250 C)  
700 C)  
On  
On  
On  
On  
On  
On  
S0  
S0  
S0  
On  
On  
On  
48MHz  
12MHz  
1MHz  
13.0  
8.5  
15.0  
10.0  
7.0  
16.5  
11.5  
8.5  
mA  
mA  
mA  
FULL ON, 48MHz, LPC  
Clock ON or eSPI Traffic  
FULL ON, 12MHz, LPC  
Clock ON or eSPI Traffic  
5.0  
FULL ON, 1MHz, LPC  
Clock ON or eSPI Traffic  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 615  
MEC170x  
TABLE 50-11: VTR SUPPLY CURRENT, I_VTR (CONTINUED)  
Max  
48  
MHz  
PLL  
Typical  
(3.3V,  
Max  
(3.45V,  
850 C)  
(Note  
3)  
System  
State  
EC_CLK  
Freq  
Comments  
(Note 1)  
VTR  
VCC  
(3.45V,  
Units  
250 C)  
700 C)  
On  
On  
On  
On  
On  
On  
On  
On  
On  
Off  
Off  
Off  
Off  
Off  
S0  
S0  
S5  
S5  
S5  
S5  
S5  
On  
Off  
On  
On  
On  
On  
Off  
Off  
Off  
2.0  
1.0  
12.5  
8.0  
5.5  
1.5  
0.5  
3.0  
2.0  
14.5  
9.5  
6.5  
2.5  
1.9  
4.5  
mA  
mA  
mA  
mA  
mA  
mA  
mA  
Light Sleep, LPC Clock  
ON (Note 2) or eSPI  
Traffic  
3.1  
Heavy Sleep, LPC Clock  
ON (Note 2) or eSPI  
Traffic  
48MHz  
12MHz  
1MHz  
Off  
16.0  
11.5  
8.0  
FULL ON (48MHz), LPC  
Clock Off and No eSPI  
Traffic  
FULL ON (12MHz), LPC  
Clock Off and No eSPI  
Traffic  
FULL ON (1MHz), LPC  
Clock Off and No eSPI  
Traffic  
4.0  
Light Sleep , LPC Clock  
Off (Note 2) and No eSPI  
Traffic  
Off  
3.0  
Heavy Sleep, LPC Clock  
Off (Note 2) and No eSPI  
Traffic  
Note 1: FULL ON is defined as follows: The processor is not sleeping, the Core regulator and the PLL remain pow-  
ered, and at least one block is not sleeping.  
2: The sleep states are defined in the System Sleep Control Register in the Power, Clocks and Resets Chap-  
ter. See Table 4.9.4, "System Sleep Control Register".  
3: Applicable to MEC1705 and MEC1704 only  
Note:  
In order to achieve the lowest leakage current when the VREF_VTT power domain is not required, ground  
the VREF_VTT pin.  
TABLE 50-12: VBAT SUPPLY CURRENT, I_VBAT (VBAT=3.0V)  
Typical  
(3.0V,  
Max  
(3.0V,  
250 C)  
System  
State  
48 MHz  
PLL  
VCC  
VTR  
Units  
Comments  
250 C)  
Off  
Off  
Off  
Off  
Off  
Off  
S5  
S5  
S5  
Off  
Off  
Off  
11.0  
5.0  
20.0  
9.0  
uA  
uA  
uA  
Internal 32kHz oscillator  
32kHz crystal oscillator  
5.0  
9.0  
External 32kHz clock on XTAL2 pin  
DS00002206H-page 616  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 50-13: VBAT SUPPLY CURRENT, I_VBAT (VBAT=3.3V)  
Typical  
(3.3V,  
Max  
(3.3V,  
250 C)  
System  
State  
48 MHz  
PLL  
VCC  
VTR  
Units  
Comments  
250 C)  
Off  
Off  
Off  
Off  
Off  
Off  
S5  
S5  
S5  
Off  
Off  
Off  
12.0  
6.0  
22.0  
10.0  
10.0  
uA  
uA  
uA  
Internal 32kHz oscillator  
32kHz crystal oscillator  
6.0  
External 32kHz clock on XTAL2 pin  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 617  
MEC170x  
51.0 TIMING DIAGRAMS  
51.1 Power-up and Power-down Timing  
FIGURE 51-1:  
VTR/VBAT POWER-UP TIMING  
t
R
VThrshHigh  
VThrshLow  
VSS  
FIGURE 51-2:  
VTR RESET AND POWER-DOWN  
t
t
RESET  
F
ResThrsh  
VThrshLow  
VSS  
TABLE 51-1: VTR/VBAT TIMING PARAMETERS  
Symbol  
Parameter  
VTR Fall time  
MIN  
TYP  
MAX  
Units  
Notes  
t
30  
30  
s  
s  
ms  
ms  
s  
V
1
F
VBAT Fall time  
t
VTR Rise time  
0.050  
0.100  
1
20  
20  
1
R
VBAT Rise time  
t
Minimum Reset Time  
VTR Low Voltage Threshold  
RESET  
VThrshLow  
VThrshHigh  
ResThrsh  
0.1  
1
1
1
VTR  
VBAT Low Voltage Threshold  
VTR High Voltage Threshold  
0.1 VBAT  
V
V
0.9   
VTR  
VBAT High Voltage Threshold  
VTR Reset Threshold  
0.9 VBAT  
V
V
V
0.5  
0.5  
1.8  
2.7  
1.9  
VBAT Reset Threshold  
1.25  
Note 1: VTR applies to both VTR_REG and VTR_ANALOG  
DS00002206H-page 618  
2016-2020 Microchip Technology Inc.  
MEC170x  
51.2 Power Sequencing (Functional Rev A)  
FIGURE 51-3:  
POWER RAIL SEQUENCING  
VBAT  
t0  
VTR_REG  
t1  
VR_CAP  
Connected to same  
3.3V rail  
t2  
t0  
VTR_ANALOG  
t2  
VTR_PLL  
VTR1  
t3a  
t4a  
t5a  
t3b  
t4b  
VTR2  
t5b  
VTR3  
TABLE 51-2: POWER SEQUENCING PARAMETERS  
Symbol  
Parameter  
Min  
Typ  
Max  
Units  
Notes  
t
VBAT above minimum operating  
threshold to VTR_ANALOG and  
VTR_REG above minimum operat-  
ing thresholds  
0
ms  
1, 9  
0
t
t
VTR_REG above 1.6V to VR_-  
CAP assertion  
300  
0
s  
2
1
VTR_ANALOG & VTR_PLL above  
minimum operating threshold to  
VR_CAP assertion.  
1
1
ms  
3, 9  
2
t
If VTR1=3.3V or 1.8V and VTR1  
rises before VR_CAP assertion  
then:  
0
ms  
4 5, 9  
3a  
VTR1 above minimum operating  
threshold to VR_CAP assertion.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 619  
MEC170x  
TABLE 51-2: POWER SEQUENCING PARAMETERS (CONTINUED)  
Symbol  
Parameter  
Min  
Typ  
Max  
Units  
Notes  
t3b  
If VTR1=1.8V and VTR1 rises after  
VR_CAP assertion then:  
0
1
ms  
5, 9  
VR_CAP assertion to VTR1 above  
minimum operating threshold.  
t4a  
If VTR2=3.3V or 1.8V and VTR2  
rises before VR_CAP assertion  
then:  
0
1
ms  
4, 6,  
9
VTR2 above minimum operating  
threshold to VR_CAP assertion.  
t4b  
If VTR2=1.8V and VTR2 rises after  
VR_CAP assertion then:  
VR_CAP assertion to VTR2 above  
minimum operating threshold.  
0
0
1
1
ms  
ms  
6, 9  
t5a  
If VTR3=3.3V or 1.8V and VTR3  
rises before VR_CAP assertion  
then:  
9
VTR3 above minimum operating  
threshold to VR_CAP assertion.  
t5b  
FOR ESPI BOOT  
If VTR3=1.8V and VTR3 rises after  
VR_CAP assertion then:  
VR_CAP assertion to VTR3 above  
minimum operating threshold.  
0
0
0
30  
sec  
ms  
ms  
7, 9  
FOR NON-ESPI BOOT  
If VTR3=1.8V and VTR3 rises after  
VR_CAP assertion then  
VR_CAP assertion to VTR3 above  
minimum operating threshold.  
9
FOR NON-ESPI BOOT  
8, 9  
If VTR3=3.3V and VTR3 rises after  
VR_CAP assertion then:  
VR_CAP assertion to VTR3 above  
minimum operating threshold.  
Note 1: VBAT must rise no later than VTR_ANALOG and VTR_REG. This relationship is ensured by the recom-  
mended battery circuit.  
2: VR_CAP output is asserted by the regulator when VR_REG is on and stable for at least the minimum  
defined time. All other signal timing requirements are relative to VR_CAP assertion.  
3: VTR_PLL Must be connected to 3.3V VTR_ANALOG power supply.  
4: VTR1 and VTR2 cannot be connected to VTR_REG for 3.3V operation. If VTR1 or VTR2 is powered by  
3.3V, they must be connected to the 3.3V VTR_ANALOG supply.  
5: The JTAG_STRAP pin is powered by VTR1 and is sampled when the RESET_EC signal goes inactive fol-  
lowing POR event. Subsequent EC resets will not sample the JTAG_STRAP pin. VTR1 must be powered  
prior to RESET_EC signal going inactive.  
6: The SHD_CS# pin, which is powered by VTR2, must be powered before the Boot ROM samples this pin.  
7: If booting over eSPI, the EC boot ROM code monitors GPIO227/SHD_IO2, which is a VTR2 signal, to deter-  
mine that VTR3 is active. The maximum time is the time after which the code abandons the boot.  
8: Software must program 3.3V VTR_LEVEL3 bit in GPIO Bank Power register to 0 for 3.3V operation.  
9: Minimum operating threshold values for Power Rails are defined in Table 50-1, “Power Supply Operating  
Conditions,” on page 606.  
DS00002206H-page 620  
2016-2020 Microchip Technology Inc.  
MEC170x  
51.3 Power Sequencing (Functional Rev B and later)  
FIGURE 51-4:  
POWER RAIL SEQUENCING  
t5  
t4  
t3  
t1  
VBAT  
t0  
VTR_REG  
Connected to same  
3.3V rail  
VTR _ANALOG  
t2  
VTR_PLL  
VTR1  
VTR2  
VTR3  
TABLE 51-3: POWER SEQUENCING PARAMETERS  
Symbol  
Parameter  
Min  
Typ  
Max  
Units  
Notes  
t0  
VTR_ANALOG above minimum  
operating threshold to VTR_REG  
above minimum operating thresh-  
old  
0
1
ms  
10, 17  
VTR_REG above minimum operat-  
ing threshold to VTR_ANALOG  
above minimum operating thresh-  
old  
0
0
1
ms  
ms  
ms  
t1  
VBAT above minimum operating  
threshold to VTR_ANALOG and  
VTR_REG are both above mini-  
mum operating thresholds  
11, 17  
12, 17  
t2  
VTR_PLL above minimum operat-  
ing threshold to VTR_ANALOG  
above minimum operating thresh-  
old  
0
2016-2020 Microchip Technology Inc.  
DS00002206H-page 621  
MEC170x  
TABLE 51-3: POWER SEQUENCING PARAMETERS (CONTINUED)  
Symbol  
Parameter  
Min  
Typ  
Max  
Units  
Notes  
t3  
VTR_ANALOG and VTR_REG are  
both above minimum operating  
thresholds to VTR1 above mini-  
mum operating threshold.  
0
1
ms  
13, 17  
VTR1 at1.8V(nom) or 3.3V(nom)  
t4  
VTR_ANALOG and VTR_REG are  
both above minimum operating  
thresholds to VTR2 above mini-  
mum operating threshold.  
0
0
1
ms  
14, 17  
15, 17  
VTR2 at1.8V(nom) or 3.3V(nom)  
t5b  
FOR ESPI BOOT  
(VTR3=1.8V)  
30  
sec  
VTR_ANALOG and VTR_REG are  
both above minimum operating  
thresholds to VTR3 above mini-  
mum operating threshold.  
FOR NON-ESPI BOOT  
(VTR3 = 1.8V or 3.3V)  
0
ms  
16, 17  
VTR_ANALOG and VTR_REG are  
both above minimum operating  
thresholds to VTR3 above mini-  
mum operating threshold.  
10: VTR_ANALOG and VTR_REG may ramp in either order. There is no limit on the time between the ramp of  
one rail and the ramp of the other.  
11: VBAT must rise no later than VTR_ANALOG and VTR_REG. This relationship is ensured by the recom-  
mended battery circuit.  
12: VTR_ANALOG and VTR_PLL must be connected to the same 3.3V power source.  
13: The JTAG_STRAP pin is powered by VTR1 and is sampled on the assertion of the first RESET_EC event  
following a RESET_VTR. Subsequent EC resets will not sample the JTAG_STRAP pin. VTR1 must be pow-  
ered prior to the deassertion of RESET_EC.  
14: The SHD_CS# pin, which is powered by VTR2, must be powered before the Boot ROM samples this pin.  
15: If booting over eSPI, the EC boot ROM code monitors GPIO227/SHD_IO2, which is a VTR2 signal, to deter-  
mine that VTR3 is active. The maximum time is the time after which the code abandons the boot.  
16: In non-eSPI applications, where VTR3 may be either 1.8V or 3.3V, software must program the GPIO Bank  
Power register for VTR3 pins before any of the VTR3 powered pins are used.  
17: minimum operating threshold values for Power Rails are defined in Table 50-1, “Power Supply Operating  
Conditions,” on page 606.  
DS00002206H-page 622  
2016-2020 Microchip Technology Inc.  
MEC170x  
51.4 RESETI# Timing  
FIGURE 51-5:  
RESETI# TIMING  
tRESET  
tF  
tR  
VTR  
0.8V  
TABLE 51-4: RESETI# TIMING PARAMETERS  
Limits  
Symbol  
Parameter  
Units  
Comments  
MIN  
MAX  
tF  
tR  
RESETI# Fall time  
0
0
1
1
1
ms  
ms  
s  
RESETI# Rise time  
Minimum Reset Time  
tRESET  
Note 1  
Note 1: The RESETI# input pin can tolerate glitches of no more than 50ns.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 623  
MEC170x  
51.5 Clocking AC Timing Characteristics  
FIGURE 51-6:  
CLOCK TIMING DIAGRAM  
Period  
High  
Time  
Low  
Time  
Fall Time  
Rise Time  
tSU  
48 MHz PLL  
Not Locked  
48 MHz PLL  
Locked  
TABLE 51-5: CLOCK TIMING PARAMETERS  
Clock  
Symbol  
Parameters  
MIN  
TYP  
MAX  
Units  
48 MHz PLL  
tSU  
Start-up accuracy from power-on-  
reset and waking from Heavy  
Sleep  
-
-
3
ms  
-
-
Operating Frequency (locked to  
32KHz single-ended input)  
(Note 1)  
47.5  
46.56  
48  
48  
48.5  
MHz  
MHz  
Operating Frequency (locked to  
32KHz Silicon Oscillator) (Note 1)  
49.44  
CCJ  
tDO  
-
Cycle to Cycle Jitter(Note 2)  
Output Duty Cycle  
-200  
45  
200  
55  
ps  
%
-
-
32MHz Ring  
Oscillator  
Operating Frequency  
16  
48  
MHz  
Note 1: The 48MHz PLL is frequency accuracy is computed by adding +/-1% to the accuracy of the 32kHz refer-  
ence clock.  
2: The Cycle to Cycle Jitter of the 48MHz PLL is +/-200ps based on an ideal 32kHz clock source. The actual  
jitter on the 48MHz clock generated is computed by adding the clock jitter of the 32kHz reference clock to  
the 48MHz PLL jitter (e.g., 32kHz jitter +/- 200ps).  
3: See the PCB Layout guide for design requirements and recommended 32.768 kHz Crystal Oscillators.  
4: An external single-ended 32KHz clock is required to have an accuracy of +/- 100 ppm.  
5: The external single-ended 32KHz clock source may be connected to either the XTAL2 pin or 32KHZ_IN  
pin.  
6: PLL is started, either from waking from the Heavy Sleep mode, or after a Power On Reset  
DS00002206H-page 624  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 51-5: CLOCK TIMING PARAMETERS (CONTINUED)  
Clock  
Symbol  
Parameters  
MIN  
TYP  
MAX  
Units  
32.768 kHz  
Crystal Oscil-  
lator  
-
Operating Frequency  
-
32.768  
-
kHz  
(Note 3)  
32KHz sin-  
gle-  
ended  
input  
-
-
-
-
-
-
-
-
Operating Frequency  
Period  
-
32.768  
30.52  
-
kHz  
µs  
(Note 4)  
(Note 4)  
High Time  
10  
us  
(Note 5)  
Low Time  
10  
us  
Fall Time  
-
-
-
1
1
us  
Rise Time  
-
us  
32KHz Sili-  
con Oscillator  
Operating Frequency  
32.112  
32.768  
33.424  
150  
kHz  
us  
Start-up delay from 0k Hz to Oper-  
ating Frequency  
Note 1: The 48MHz PLL is frequency accuracy is computed by adding +/-1% to the accuracy of the 32kHz refer-  
ence clock.  
2: The Cycle to Cycle Jitter of the 48MHz PLL is +/-200ps based on an ideal 32kHz clock source. The actual  
jitter on the 48MHz clock generated is computed by adding the clock jitter of the 32kHz reference clock to  
the 48MHz PLL jitter (e.g., 32kHz jitter +/- 200ps).  
3: See the PCB Layout guide for design requirements and recommended 32.768 kHz Crystal Oscillators.  
4: An external single-ended 32KHz clock is required to have an accuracy of +/- 100 ppm.  
5: The external single-ended 32KHz clock source may be connected to either the XTAL2 pin or 32KHZ_IN  
pin.  
6: PLL is started, either from waking from the Heavy Sleep mode, or after a Power On Reset  
51.6 GPIO Timings  
FIGURE 51-7:  
GPIO TIMING  
G PIO xxx  
Tr  
Tpulse  
Tf  
Tpulse  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 625  
MEC170x  
,
TABLE 51-6: GPIO TIMING PARAMETERS  
Symbol  
Parameter  
MIN  
TYP  
MAX  
Unit  
Notes  
tR  
tF  
GPIO Rise Time (push-pull)  
GPIO Fall Time  
0.54  
0.52  
0.58  
0.62  
0.80  
0.80  
1.02  
1.07  
60  
1.31  
1.27  
1.46  
1.48  
2.00  
1.96  
2.46  
2.51  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
1
tR  
GPIO Rise Time (push-pull)  
GPIO Fall Time  
2
3
4
tF  
tR  
GPIO Rise Time (push-pull)  
GPIO Fall Time  
tF  
tR  
GPIO Rise Time (push-pull)  
GPIO Fall Time  
tF  
tpulse  
GPIO Pulse Width  
Note 1: Pad configured for 2ma, CL=2pF  
2: Pad configured for 4ma, CL=5pF  
3: Pad configured for 8ma, CL=10pF  
4: Pad configured for 12ma, CL=20pF  
DS00002206H-page 626  
2016-2020 Microchip Technology Inc.  
MEC170x  
51.7 Boot from SPI Flash Timing  
FIGURE 51-8:  
SPI BOOT TIMING  
t0  
t1  
VTR_REG/VTR_ANALOG  
VTR3  
Don’t Care  
Don’t Care  
SHD SPI Power  
Don’t Care  
Don’t Care  
Don’t Care  
GPIO045/KSO01  
GPIO171(JTAG_STRAP)  
GPIO055/SHD_CS#  
TABLE 51-7: SPI FLASH BOOT TIMING PARAMETERS  
Symbol  
Parameter  
Min  
Typ  
Max  
Unit  
Notes  
t0  
Time from Power On to sample  
PVT_SPI Strap options  
3
ms  
t1  
Time for SPI Power to be active after  
sampling starts  
5
ms  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 627  
MEC170x  
51.8 Boot from eSPI Timing  
FIGURE 51-9:  
ESPI BOOT TIMING  
t5  
t4  
t0  
t1  
t2  
t3  
VTR_REG/VTR_ANALOG  
VTR3  
Don’t Care  
Don’t Care  
GPIO055/SHD_CS#/RSMRST#  
GPIO227/SHD_IO2  
Don’t Care  
All System Primary Rails Good  
TABLE 51-8: ESPI BOOT TIMING PARAMETERS  
Symbol  
Parameter  
MIN  
TYP  
MAX  
Unit  
Notes  
t0  
t1  
Time from Power On to sample Strap options  
2
5
ms  
ms  
Time Shared_SPI/eSPI boot strap pin must be  
low (i.e., GPIO055/SHD_CS#/RSMRST# pin  
low)  
t2  
t3  
t4  
Time from strap detection of eSPI Flash Chan-  
nel boot requirement to at least one Primary  
Rail active (i.e., GPIO227/SHD_IO2 is high)  
30  
20  
30  
sec  
ms  
ms  
1
2
Time from when at least one Primary Rail is  
active until the time all 4 Primary Rails are  
active.  
Time from when at least one Primary Rail is  
active until the time VTR3 must be active.  
System requirement from Intel will limit this to  
20ms max, but the hardware can tolerate up to  
30ms max.  
t5  
Time from the detection of an active Primary  
Rail until RSMRST# is de-asserted  
35  
ms  
Note 1: Intel Primary Rails are defined as VCC_Prim 1.8V, VCC_Prim 3.3V, VCCPRIM_CORE and VCC_Prim  
1.0V  
2: This is an Intel system requirement. This time is not monitored directly.  
DS00002206H-page 628  
2016-2020 Microchip Technology Inc.  
MEC170x  
51.9 VCC_PWRGD Timing  
FIGURE 51-10:  
VCC_PWRGD TIMING  
tVPWRGD  
VCC_PWRGD  
TABLE 51-9: VCC_PWRGD POWER TIMING PARAMETERS  
Limits  
Notes  
Units  
Symbol  
Parameter  
MIN  
MAX  
tVPWRGD  
VCC_PWRGD Pulse Width  
31  
ns  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 629  
MEC170x  
51.10 LPC LCLK Timing  
FIGURE 51-11:  
LPC CLOCK TIMING  
t1  
t4  
t2  
LCLK  
t5  
t3  
TABLE 51-10: LPC CLOCK TIMING PARAMETERS  
Name  
Description  
MIN  
TYP  
MAX  
Units  
t1  
t2  
t3  
t4  
t5  
Period  
30  
11  
57  
nsec  
High Time  
Low Time  
Rise Time  
Fall Time  
3
51.11 LPC RESET# Timing  
FIGURE 51-12:  
RESET TIMING  
t1  
LRESET#  
TABLE 51-11: RESET TIMING PARAMETERS  
Name  
Description  
MIN  
TYP  
MAX  
Units  
t1  
LRESET# width  
1
ms  
DS00002206H-page 630  
2016-2020 Microchip Technology Inc.  
MEC170x  
51.11.1 LPC BUS TIMING  
FIGURE 51-13:  
OUTPUT TIMING MEASUREMENT CONDITIONS, LPC SIGNALS  
LCLK  
t1  
Output Delay  
t2  
t3  
Tri-State Output  
TABLE 51-12: OUTPUT TIMING MEASUREMENT CONDITIONS, LPC SIGNALS PARAMETERS  
Name  
Description  
MIN  
TYP  
MAX  
Units  
t1  
t2  
t3  
LCLK to Signal Valid Delay – Bused Signals  
Float to Active Delay  
2
11  
ns  
Active to Float Delay  
28  
51.11.2 LPC INPUT TIMING  
FIGURE 51-14:  
INPUT TIMING MEASUREMENT CONDITIONS, LPC SIGNALS  
t1  
t2  
LCLK  
Input  
Inputs Valid  
TABLE 51-13: INPUT TIMING MEASUREMENT CONDITIONS, LPC SIGNALS PARAMETERS  
Name  
Description  
MIN  
TYP  
MAX  
Units  
t1  
t2  
Input Set Up Time to LCLK – Bused Signals  
Input Hold Time from LCLK  
7
0
ns  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 631  
MEC170x  
51.11.3 LPC I/O TIMING  
FIGURE 51-15:  
I/O WRITE  
LCLK  
LFRAME#  
LAD[3:0]#  
L1  
L2  
Address  
Data  
TAR  
Sync=0110  
L3  
TAR  
Note:  
L1=Start; L2=CYCTYP+DIR; L3=Sync of 0000  
FIGURE 51-16:  
I/O READ  
LCLK  
LFRAME#  
LAD[3:0]#  
L1  
L2  
Address  
TAR  
Sync=0110  
L3  
Data  
TAR  
Note:  
L1=Start; L2=CYCTYP+DIR; L3=Sync of 0000  
51.11.4 SERIAL IRQ TIMING  
FIGURE 51-17:  
SETUP AND HOLD TIME  
LCLK  
t1  
t2  
SER_IRQ  
TABLE 51-14: SETUP AND HOLD TIME  
Name  
Description  
MIN  
TYP  
MAX  
Units  
nsec  
t1  
t2  
SER_IRQ Setup Time to LCLK Rising  
SER_IRQ Hold Time to LCLK Rising  
7
0
DS00002206H-page 632  
2016-2020 Microchip Technology Inc.  
MEC170x  
51.12 Serial Port (UART) Data Timing  
FIGURE 51-18:  
SERIAL PORT DATA  
Data  
Stop (1-2 Bits)  
Data (5-8 Bits)  
Start  
Parity  
t1  
TXD1, 2  
TABLE 51-15: SERIAL PORT DATA PARAMETERS  
Name  
Description  
Serial Port Data Bit Time  
MIN  
TYP  
MAX  
Units  
t1  
tBR  
(Note  
1)  
nsec  
Note 1: tBR is 1/Baud Rate. The Baud Rate is programmed through the Baud_Rate_Divisor bits located in the  
Programmable Baud Rate Generator registers. Some of the baud rates have some percentage of error  
because the clock does not divide evenly. This error can be determined from the values in these baud  
rate tables.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 633  
MEC170x  
51.13 PECI Interface  
Name  
Description  
MIN  
MAX  
Units  
Notes  
tBIT  
Bit time (overall time evident on PECI pin)  
Bit time driven by an originator  
0.495  
0.495  
500  
250  
µsec  
µsec  
Note 1  
tH1  
tH0  
High level time for logic 1  
High level time for logic 0  
0.6  
0.2  
-
0.8  
0.4  
tBIT  
tBIT  
ns  
Note 2  
tPECIR  
Rise time  
30 +  
(5 x #nodes)  
Note 3  
Note 3  
(measured from VOL to VIH,min, Vtt(nom)5%)  
tPECIF  
Fall time  
-
(30 x #nodes)  
ns  
(measured from VOH to VIL,max, Vtt(nom)+5%)  
Note 1: The originator must drive a more restrictive time to allow for quantized sampling errors by a client yet still  
attain the minimum time less than 500 µsec. tBIT limits apply equally to tBIT-A and tBIT-M. The MEC170x is  
designed to support 2 MHz, or a 500ns bit time. See the PECI 3.1 specification from Intel Corp. for fur-  
ther details.  
2: The minimum and maximum bit times are relative to tBIT defined in the Timing Negotiation pulse. See the  
PECI 3.1 specification from Intel Corp. for further details.  
3: “#nodes” is the number of nodes on the PECI bus; host and client nodes are counted as one each.  
Extended trace lengths may appear as extra nodes. Refer also to Table 29-2, "PECI Routing Guide-  
lines". See the PECI 3.1 specification from Intel Corp. for further details.  
DS00002206H-page 634  
2016-2020 Microchip Technology Inc.  
MEC170x  
51.14 8042 Emulation CPU_Reset Timing  
FIGURE 51-19:  
KBRST TIMING  
td e la y  
ta ctive  
TABLE 51-16: KBRST TIMING PARAMETERS  
Name  
Description  
MIN  
TYP  
MAX  
Units  
tdelay  
tactive  
Delay prior to active pulse  
Active pulse width  
14  
6
15  
8
15.5  
8.5  
s  
s  
The KBRST pin is the CPU_RESET signal described in Section 12.11.2, "CPU_RESET Hardware Speed-Up"  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 635  
MEC170x  
51.15 Keyboard Scan Matrix Timing  
TABLE 51-17: ACTIVE PRE DRIVE MODE TIMING  
Value  
Parameter  
Symbol  
Units  
Notes  
MIN  
TYP  
MAX  
Active Predrive Mode  
tPREDRIVE  
41.7  
ns  
Note:  
The TYP value is based on two 48 MHz PLL clocks. The MIN and MAX values are dependent on the accu-  
racy of the 48 MHz PLL.  
DS00002206H-page 636  
2016-2020 Microchip Technology Inc.  
MEC170x  
51.16 PS/2 Timing  
FIGURE 51-20:  
PS/2 TRANSMIT TIMING  
t10  
t8 t9  
t7  
t17  
t2  
t6  
t5  
PS2_CLK  
1
2
10  
11  
t11  
t14  
t1  
t4  
PS2_DAT  
PS2_EN  
s
B0  
B1  
B2  
B3  
B4  
B5  
B6  
B7  
P
t12  
PS2_T/R  
t3  
t13  
XMIT_IDLE  
RDATA_RDY  
Write Tx Reg  
Interrupt  
t15  
Note 1  
TABLE 51-18: PS/2 CHANNEL TRANSMISSION TIMING PARAMETERS  
Name  
Description  
MIN  
TYP  
MAX  
Units  
t1  
The PS/2 Channel’s CLK and DATA lines  
are floated following PS2_EN=1 and  
PS2_T/R=0.  
1000  
ns  
t2  
PS2_T/R bit set to CLK driven low pre-  
paring the PS/2 Channel for data trans-  
mission.  
t3  
t4  
t5  
t6  
CLK line floated to XMIT_IDLE bit de-  
asserted.  
1.7  
90  
Trailing edge of WR to Transmit Register  
to DATA line driven low.  
45  
90  
Trailing edge of EC WR of Transmit Reg-  
ister to CLK line floated.  
130  
ns  
Initiation of Start of Transmit cycle by the  
PS/2 channel controller to the auxiliary  
peripheral’s responding by latching the  
Start bit and driving the CLK line low.  
0.002  
25.003  
ms  
t7  
t8  
t9  
Period of CLK  
60  
30  
302  
151  
µs  
Duration of CLK high (active)  
Duration of CLK low (inactive)  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 637  
MEC170x  
TABLE 51-18: PS/2 CHANNEL TRANSMISSION TIMING PARAMETERS (CONTINUED)  
Name  
Description  
MIN  
TYP  
MAX  
Units  
t10  
Duration of Data Frame. Falling edge of  
Start bit CLK (1st clk) to falling edge of  
Parity bit CLK (10th clk).  
2.002  
ms  
t11  
DATA output by MEC170x following the  
falling edge of CLK. The auxiliary periph-  
eral device samples DATA following the  
rising edge of CLK.  
1.0  
µs  
t12  
t13  
t14  
t15  
t17  
Rising edge following the 11th falling  
clock edge to PS_T/R bit driven low.  
3.5  
7.1  
µs  
ns  
Trailing edge of PS_T/R to XMIT_IDLE bit  
asserted.  
500  
DATA released to high-Z following the  
PS2_T/R bit going low.  
XMIT_IDLE bit driven high to interrupt  
generated.  
Trailing edge of CLK is held low prior to  
going high-Z  
FIGURE 51-21:  
PS/2 RECEIVE TIMING  
t7  
t3  
t4  
t2  
t5  
t11  
t10  
PS2_CLK  
t1  
t6  
PS2_DATA  
D0 D1  
D2 D3  
D4  
D5  
D6  
D7  
P
S
PS2_EN  
PS2_T/R  
t8  
t9  
RDATA_RDY  
Read Rx Reg  
Interrupt  
t12  
DS00002206H-page 638  
2016-2020 Microchip Technology Inc.  
MEC170x  
TABLE 51-19: PS/2 CHANNEL RECEIVE TIMING DIAGRAM PARAMETERS  
Name  
Description  
MIN  
TYP  
MAX  
Units  
t1  
The PS/2 Channel’s CLK and DATA lines  
are floated following PS2_EN=1 and  
PS2_T/R=0.  
1000  
ns  
t2  
t3  
t4  
t5  
Period of CLK  
60  
30  
302  
151  
µs  
Duration of CLK high (active)  
Duration of CLK low (inactive)  
DATA setup time to falling edge of CLK.  
MEC170x samples the data line on the  
falling CLK edge.  
1
2
t6  
t7  
DATA hold time from falling edge of CLK.  
MEC170x samples the data line on the  
falling CLK edge.  
Duration of Data Frame. Falling edge of  
Start bit CLK (1st clk) to falling edge of  
Parity bit CLK (10th clk).  
2.002  
ms  
t8  
t9  
Falling edge of 11th CLK to RDATA_RDY  
asserted.  
1.6  
µs  
ns  
Trailing edge of the EC’s RD signal of the  
Receive Register to RDATA_RDY bit de-  
asserted.  
500  
t10  
Trailing edge of the EC’s RD signal of the  
Receive Register to the CLK line  
released to high-Z.  
t11  
t12  
PS2_CLK is "Low" and PS2_DATA is "Hi-  
Z" when PS2_EN is de-asserted.  
RDATA_RDY asserted an interrupt is  
generated.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 639  
MEC170x  
51.17 PWM Timing  
FIGURE 51-22:  
PWM OUTPUT TIMING  
t1  
t2  
t3  
PWMx  
TABLE 51-20: PWM TIMING PARAMETERS  
Name  
Description  
MIN  
TYP  
MAX  
Units  
t1  
tf  
Period  
42ns  
23.3sec  
24MHz  
11.65  
11.65  
100  
Frequency  
High Time  
Low Time  
Duty cycle  
0.04Hz  
t2  
t3  
td  
0
0
0
sec  
sec  
%
DS00002206H-page 640  
2016-2020 Microchip Technology Inc.  
MEC170x  
51.18 Fan Tachometer Timing  
FIGURE 51-23:  
FAN TACHOMETER INPUT TIMING  
t1  
t2  
t3  
FAN_TACHx  
TABLE 51-21: FAN TACHOMETER INPUT TIMING PARAMETERS  
Name  
Description  
MIN  
TYP  
MAX  
Units  
t1  
t2  
Pulse Time  
100  
20  
µsec  
Pulse High Time  
Pulse Low Time  
t3  
20  
Note:  
tTACH is the clock used for the tachometer counter. It is 30.52 * prescaler, where the prescaler is pro-  
grammed in the Fan Tachometer Timebase Prescaler register.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 641  
MEC170x  
51.19 Blinking/Breathing PWM Timing  
FIGURE 51-24:  
BLINKING/BREATHING PWM OUTPUT TIMING  
t1  
t2  
t3  
LEDx  
TABLE 51-22: BLINKING/BREATHING PWM TIMING PARAMETERS, BLINKING MODE  
Name  
Description  
MIN  
TYP  
MAX  
Units  
t1  
tf  
Period  
7.8ms  
32sec  
128  
16  
Frequency  
High Time  
Low Time  
Duty cycle  
0.03125  
Hz  
sec  
sec  
%
t2  
t3  
td  
0
0
0
16  
100  
TABLE 51-23: BLINKING/BREATHING PWM TIMING PARAMETERS, GENERAL PURPOSE  
Name  
Description  
MIN  
TYP  
MAX  
Units  
t1  
tf  
Period  
5.3µs  
21.8ms  
187.5kHz  
10.9  
Frequency  
High Time  
Low Time  
Duty cycle  
45.8Hz  
t2  
t3  
td  
0
0
0
ms  
ms  
%
10.9  
100  
DS00002206H-page 642  
2016-2020 Microchip Technology Inc.  
MEC170x  
51.20 I2C/SMBus Timing  
FIGURE 51-25:  
I2C/SMBUS TIMING  
I2C_SDA  
tLOW  
tBUF  
tHD;STA  
tR  
tF  
I2C_SCL  
tHD;STA  
tSU;STO  
tHD;DAT tHIGH  
tSU;DAT tSU;STA  
TABLE 51-24: I2C/SMBUS TIMING PARAMETERS  
Standard-  
Mode  
MAX  
Fast-  
Mode  
Fast-  
Mode Plus  
Symbol  
Parameter  
Units  
MIN  
MIN  
MAX  
MIN  
MAX  
fSCL  
tBUF  
tSU STA  
SCL Clock Frequency  
Bus Free Time  
100  
400  
1000  
kHz  
µs  
µs  
µs  
µs  
µs  
µs  
µs  
µs  
µs  
µs  
4.7  
4.7  
4.0  
4.7  
4.0  
1.3  
0.6  
0.6  
1.3  
0.6  
0.5  
0.26  
0.26  
0.5  
START Condition Set-Up Time  
START Condition Hold Time  
SCL LOW Time  
;
tHD STA  
;
tLOW  
tHIGH  
tR  
SCL HIGH Time  
0.26  
SCL and SDA Rise Time  
SCL and SDA Fall Time  
Data Set-Up Time  
1.0  
0.3  
0.3  
0.3  
0.12  
0.12  
tF  
tSU DAT  
0.25  
0
0.1  
0
0.05  
0
;
tHD DAT  
Data Hold Time  
;
tSU STO  
STOP Condition Set-Up Time  
4.0  
0.6  
0.26  
;
2016-2020 Microchip Technology Inc.  
DS00002206H-page 643  
MEC170x  
51.21 BC-Link Master Interrupt Timing  
FIGURE 51-26:  
BC-LINK ERR INTERRUPT TIMING  
Approxinatley48 BC  
Clocks  
BUSY  
BC_ERR  
BC_ERR Interrupt  
BC_Busy_CLR Interrupt  
(Controlled by Hardware)  
51.22 BC-Link Master Timing  
FIGURE 51-27:  
BC-LINK READ TIMING  
tC  
BC_CLK  
BC_DAT  
Bit  
n-1  
Bit  
n
tIH  
tIS  
Bit Read  
DS00002206H-page 644  
2016-2020 Microchip Technology Inc.  
MEC170x  
FIGURE 51-28:  
BC-LINK WRITE TIMING  
tC  
BC_CLK  
Bit n-1  
Bit n  
BC_DAT  
tOH  
tOS  
TABLE 51-25: BC-LINK MASTER TIMING DIAGRAM PARAMETERS  
Name  
Description  
MIN  
TYP  
MAX  
Units  
tC  
tf  
BC Clock Frequency  
BC Clock Period  
24  
MHz  
ns  
42  
tOS  
BC-Link Master DATA output setup time  
before rising edge of CLK.  
tc-tOH-  
nsec  
MAX  
tOH  
tIS  
BC-Link Master Data hold time after falling  
edge of CLK  
10  
nsec  
nsec  
nsec  
BC-Link Master DATA input setup time  
before rising edge of CLK.  
15  
0
tIH  
BC-Link Master DATA input hold time after  
rising edge of CLK.  
Note 1: The (tIH in Table 51-25) BC-Link Master DATA input must be stable before next rising edge of CLK.  
2: The BC-Link Clock frequency is limited by the application usage model (see BC-Link Master Section 40.5,  
"Signal Description"). The BC-Link Clock frequency is controlled by the BC-Link Clock Select Register.  
The timing budget equation is as follows for data from BC-Link slave to master:  
Tc > TOD(master-clk) + Tprop(clk) +TOD(slave) + Tprop(slave data) + TIS(master).  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 645  
MEC170x  
51.23 Quad SPI Master Controller - Serial Peripheral Interface (QMSPI) Timings  
FIGURE 51-29:  
SPI CLOCK TIMING  
Tr  
Tf  
SPI_CLK  
Th  
Tl  
Tp  
TABLE 51-26: SPI CLOCK TIMING PARAMETERS  
Name  
Description  
MIN  
TYP  
MAX  
Units  
Tr  
Tf  
SPI Clock Rise Time. Measured  
from 10% to 90%.  
3
ns  
ns  
ns  
SPI Clock Fall Time. Measured  
from 90% to 10%.  
3
Th/Tl  
SPI Clock High Time/SPI Clock  
Low Time  
40% of  
SPCLK  
Period  
50% of  
SPCLK  
Period  
60% of  
SPCLK  
Period  
Tp  
SPI Clock Period – As selected  
by SPI Clock Generator  
Register  
20.8  
5,333  
ns  
Note:  
Test conditions are as follows: output load is CL=30pF, pin drive strength setting is 4mA and slew rate set-  
ting is slow.  
DS00002206H-page 646  
2016-2020 Microchip Technology Inc.  
MEC170x  
FIGURE 51-30:  
SPI SETUP AND HOLD TIMES  
Setup and Hold Times for  
Full‐Duplex and Bidrectional Modes  
SPI_CLK  
(CLKPOL = 0,  
TCLKPH = 0,  
RCLKPH = 0)  
T1  
SPI_MOSI  
T2  
SPI_MISO  
T3  
Note:  
SPI_IO[3:0] obey the SPI_MOSI and SPI_MISO timing. In the 2-pin SPI Interface implementation, SPI_IO0  
pin is the SPI Master-Out/Slave-In (MOSI) pin and the SPI_IO1 pin is the Master-In/Slave-out (MISO) pin.  
TABLE 51-27: SPI SETUP AND HOLD TIMES PARAMETERS  
Name  
Description  
MIN  
TYP  
MAX  
Units  
T1  
T2  
T3  
Data Output Delay  
Data IN Setup Time  
Data IN Hold Time  
2
ns  
ns  
ns  
5.5  
0
Note:  
Test conditions are as follows: output load is CL=30pF, pin drive strength setting is 4mA and slew rate set-  
ting is slow  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 647  
MEC170x  
51.24 General Purpose Serial Peripheral Interface (GP-SPI) Timings  
Note that the following timing applies to all of the MEC170x Serial Peripheral Interface functions.  
FIGURE 51-31:  
SPI CLOCK TIMING  
Tr  
Tf  
SPICLK  
Th  
Tl  
Tp  
TABLE 51-28: SPI CLOCK TIMING PARAMETERS  
Name  
Description  
MIN  
TYP  
MAX  
Units  
Tr  
SPI Clock Rise Time. Measured  
from 10% to 90%.  
3
ns  
ns  
Tf  
Th/Tl  
Tp  
SPI Clock Fall Time. Measured  
from 90% to 10%.  
3
SPI Clock High Time/SPI Clock 40% of SPCLK 50% of SPCLK 60% of SPCLK ns  
Low Time  
Period  
Period  
Period  
SPI Clock Period – As selected by  
SPI Clock Generator Register  
20.8  
62500  
ns  
Note:  
Test conditions are as follows: output load is CL=30pF, pin drive strength setting is 4mA and slew rate set-  
ting is slow.  
DS00002206H-page 648  
2016-2020 Microchip Technology Inc.  
MEC170x  
FIGURE 51-32:  
SPI SETUP AND HOLD TIMES  
Setup and Hold Times for  
Full‐Duplex and Bidrectional Modes  
SPCLK  
(CLKPOL = 0,  
TCLKPH = 0,  
RCLKPH = 0)  
T1  
SPDOUT  
T2  
SPDIN  
T3  
Note:  
SPI IO[3:0] obey the SPI_MOSI and SPI_MISO timing. In the 2-pin SPI Interface implementation, SPI_IO0  
pin is the SPI Master-Out/Slave-In (MOSI) pin and the SPI_IO1 pin is the Master-In/Slave-out (MISO) pin.  
TABLE 51-29: SPI SETUP AND HOLD TIMES PARAMETERS  
Name  
Description  
MIN  
TYP  
MAX  
Units  
T1  
T2  
T3  
Data Output Delay  
Data IN Setup Time  
Data IN Hold Time  
2
ns  
ns  
ns  
5.5  
0
Note:  
Test conditions are as follows: output load is CL=30pF, pin drive strength setting is 4mA and slew rate set-  
ting is slow  
51.24.1 SPI INTERFACE TIMINGS  
The following timing diagrams represent a single-byte transfer over the SPI interface using different SPCLK phase set-  
tings. Data bits are transmitted in bit order starting with the MSB (LSBF=‘0’) or the LSB (LSBF=‘1’). See the SPI Control  
Register for information on the LSBF bit. The CS signal in each diagram is a generic bit-controlled chip select signal  
required by most peripheral devices. This signal and additional chip selects can be GPIO controlled. Note that these  
timings for Full Duplex Mode are also applicable to Half Duplex (or Bi-directional) mode.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 649  
MEC170x  
FIGURE 51-33:  
INTERFACE TIMING, FULL DUPLEX MODE (TCLKPH = 0, RCLKPH = 0)  
SPCLK (CLKPOL = 0)  
SPCLK (CLKPOL = 1)  
SPDOUT  
(TCLKPH = 0)  
SPDIN  
(RCLKPH = 0)  
CS (GPIO)  
FIRST DATA BIT SAMPLED BY  
MASTER AND SLAVE  
LAST DATA BIT SAMPLED BY  
MASTER AND SLAVE  
.
In this mode, data is available immediately when a device is selected and is sampled on the first and following odd  
SPCLK edges by the master and slave.  
FIGURE 51-34:  
SPI INTERFACE TIMING, FULL DUPLEX MODE (TCLKPH = 1, RCLKPH = 0)  
SPCLK (CLKPOL = 0)  
SPCLK (CLKPOL = 1)  
SPDOUT  
(TCLKPH = 1)  
SPDIN  
(RCLKPH = 0)  
CS (GPIO)  
FIRST DATA BIT SAMPLED BY  
SLAVE  
LAST DATA BIT SAMPLED BY  
MASTER  
FIRST DATA BIT SAMPLED BY  
MASTER  
LAST DATA BIT SAMPLED BY  
SLAVE  
.
In this mode, the master requires an initial SPCLK edge before data is available. The data from slave is available imme-  
diately when the slave device is selected. The.data is sampled on the first and following odd edges by the master. The  
data is sampled on the second and following even SPCLK edges by the slave.  
DS00002206H-page 650  
2016-2020 Microchip Technology Inc.  
MEC170x  
FIGURE 51-35:  
SPI INTERFACE TIMING, FULL DUPLEX MODE (TCLKPH = 0, RCLKPH = 1)  
SPCLK (CLKPOL = 0)  
SPCLK (CLKPOL = 1)  
SPDOUT  
(TCLKPH = 0)  
SPDIN  
(RCLKPH = 1)  
CS (GPIO)  
FIRST DATA BIT SAMPLED BY  
MASTER  
LAST DATA BIT SAMPLED BY  
SLAVE  
FIRST DATA BIT SAMPLED BY  
SLAVE  
LAST DATA BIT SAMPLED BY  
MASTER  
In this mode, the data from slave is available immediately when the slave device is selected. The slave device requires  
an initial SPCLK edge before data is available. The data is sampled on the second and following even SPCLK edges  
by the master. The data is sampled on the first and following odd edges by the slave.  
FIGURE 51-36:  
SPI INTERFACE TIMING - FULL DUPLEX MODE (TCLKPH = 1, RCLKPH = 1)  
SPCLK (CLKPOL = 0)  
SPCLK (CLKPOL = 1)  
SPDOUT  
(TCLKPH = 1)  
SPDIN  
(RCLKPH = 1)  
CS (GPIO)  
FIRST DATA BIT SAMPLED BY  
MASTER AND SLAVE  
LAST DATA BIT SAMPLED BY  
MASTER AND SLAVE  
In this mode, the master and slave require an initial SPCLK edge before data is available. Data is sampled on the second  
and following even SPCLK edges by the master and slave.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 651  
MEC170x  
51.25 Serial Debug Port Timing  
FIGURE 51-37:  
SERIAL DEBUG PORT TIMING PARAMETERS  
TFDP Clock  
tP  
fCLK  
tOD  
tOH  
tCLK-L  
tCLK-H  
TFDP Data  
TABLE 51-30: SERIAL DEBUG PORT INTERFACE TIMING PARAMETERS  
Name  
Description  
MIN  
TYP  
MAX  
Units  
fclk  
tP  
tOD  
tOH  
TFDP Clock frequency (see note)  
2.5  
-
24  
MHz  
s  
TFDP Clock Period.  
1/fclk  
TFDP Data output delay after falling edge of TFDP_CLK.  
TFDP Data hold time after falling edge of TFDP Clock  
5
nsec  
nsec  
nsec  
nsec  
tP - tOD  
tP/2 - 3  
tP/2 - 3  
tCLK-L TFDP Clock Low Time  
tP/2 + 3  
tP/2 + 3  
tCLK-H TFDP Clock high Time (see Note 1)  
Note 1: When the clock divider for the embedded controller is an odd number value greater than 2h, then tCLK-L  
=
tCLK-H + 15 ns. When the clock divider for the embedded controller is 0h, 1h, or an even number value  
greater than 2h, then tCLK-L = tCLK-H  
.
DS00002206H-page 652  
2016-2020 Microchip Technology Inc.  
MEC170x  
51.26 JTAG Interface Timing  
FIGURE 51-38:  
JTAG POWER-UP & ASYNCHRONOUS RESET TIMING  
2.8V  
VTR Power  
tsu  
tpw  
JTAG_RST#  
fclk  
JTAG_CLK  
FIGURE 51-39:  
JTAG SETUP & HOLD PARAMETERS  
JTAG_CLK  
tOD  
tOH  
JTAG_TDO  
tIS tIH  
JTAG_TDI  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 653  
MEC170x  
TABLE 51-31: JTAG INTERFACE TIMING PARAMETERS  
Name  
Description  
MIN  
TYP  
MAX  
Units  
tsu  
tpw  
fclk  
tOD  
tOH  
tIS  
JTAG_RST# de-assertion after VTR power is applied  
JTAG_RST# assertion pulse width  
5
ms  
500  
nsec  
MHz  
nsec  
nsec  
nsec  
nsec  
JTAG_CLK frequency (see note)  
48  
10  
TDO output delay after falling edge of TCLK.  
TDO hold time after falling edge of TCLK  
TDI setup time before rising edge of TCLK.  
TDI hold time after rising edge of TCLK.  
5
1 TCLK - tOD  
5
5
tIH  
Note:  
fclk is the maximum frequency to access a JTAG Register.  
DS00002206H-page 654  
2016-2020 Microchip Technology Inc.  
MEC170x  
APPENDIX A: DATA SHEET REVISION HISTORY  
Revision  
Section/Figure/Entry  
Cover page  
Correction  
DS00002206H (09-10-20)  
Removed following line from GP-SPI “One Full  
Duplex Serial Communication Interface Accessible  
by Host over LPC”. GP-SPI cannot be accessed by  
host over LPC.  
DS00002206G (07-23-20)  
Section TABLE 50-1:, "Power Typ value for VTR_REG Main Regulator Power Sup-  
Supply Operating Conditions" ply changed from 3.0 to 3.3.  
Table 38-1, "External Signal  
Description"  
All signal names start with QMSPI. This change will  
match the pin table  
Section 18.10.4.4, "Output  
GPIO[140:176] Register"  
bits 23:16 corrected to GPIO[167:160] Output  
Section 18.10.4.6, "Output  
GPIO[240:276] Register"  
Offset address corrected to 0x394.  
Section 10.4.3.2, "Clocks"  
eSPI_CLOCK supports up to max 51MHz operation.  
DS00002206F (08-23-19)  
Several template pages updated.  
Added VCI_ENABLE to RTC Added VCI_ENABLE to RTC Control Register bit 2.  
Control Register This bit is used to generate the RTL Alarm Interrupt.  
Updated Note in eSPI chapter Updated note on EC Firmware responsibility when  
HOST_RST_WARN/HOST_RST_ACK Virtual Wire  
are received/sent by EC.  
Updated Section 3.7 “Regis- Address 4000FC38h marked reserved.  
ter Map”  
Updated Table 1-1  
Added three rows for Root Of Trust, Secure Boot and  
Immutable code  
Updated Resets Block Dia-  
gram  
Removed PWR_INV from RESET_VCC path. This is  
not present in this path.  
Updated PWR_INV register  
access information  
Updated the definition of PWR_INV.  
Updated 4  
Power Sequencing Parameters -> Note 4: auto volt-  
age correction feature has been de-featured. Note  
updated.  
Updated Section 46.8.7  
Updated Section 46.8.9  
Updated Section 37.12.3  
OTP Lock Register exposed to customer  
PECI Disable Register exposed to customer  
Added ACTIVE bit explanation in Section 37.12.3  
DS00002206E (03-13-19)  
Updated DC Electrical Char- Fixed the Symbol of Pull up current and Pull down  
acteristics definition  
current to Rup and Rdn in Table 50-3  
Removed Power on Inhibit  
timer from VBAT Powered  
control register.  
Removed Power on Inhibit timer from VBAT Pow-  
ered control register.  
Updated BGPO Power Regis- “The GPIO input register for the GPIO that is multi-  
ter definition  
plexed with the BGPO always returns a ‘1b’” is  
replaced with “The GPIO Input register for the GPIO  
that is multiplexed with the BGPO always returns the  
value of the pin associated with BGPO[i].”  
Table 3-2 updated  
Table 11-5 updated  
GPIO240 default function is GPIO240. This is  
changed in Table 3-2  
Device Revision Register name updated in Table 11-  
5. Register name will not contain Hard Wire  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 655  
MEC170x  
Revision  
Section/Figure/Entry  
Correction  
Updated VCI_OUT logic fig-  
ure  
Updated Figure 46-2 and removed latch from the  
diagram. Design does not contain the latch.  
Added Note in eFuse chapter Added Note to storing Encrypted data in eFuse and  
VBAT registers for best security.  
DS00002206D (07-18-18)  
Updated note following  
Table 11-5, "Chip-Level  
(Global) Control/Configura-  
tion Registers"  
“Device ID values are in Table 1-1, "MEC170x Fea-  
ture List by Package", row 2.  
“Device ID for Device Revision values are in  
Table 11-5. Refer to errata sheet for the Device Revi-  
sion value.”  
Table 1-1, "MEC170x Feature Value for “SRAM Block (Primary use: code)” updated  
List by Package"  
from “316KB” to “416KB”.  
Note 15 in Pin Configuration  
Chapter  
Updated note to “The Voltage Regulator Capacitor  
(VR_CAP) pin requires an external 1uF capacitor.”  
2.7 “Signal Description by  
Interface”  
Changed VFLT_PLL definition to “Filter for PLL”.  
TABLE 4-1: “Power Source Removed VFLT_PLL as it is not a power pin.  
Definitions”  
Cover page first line changes “3.3V and 1.8V Operation” changed to “GPIO and  
Core Logic support 3.3V and 1.8V operation” and  
added “Analog and PLL are 3.3V Operation Only”.  
TABLE 50-12: “VBAT Sup-  
ply Current, I_VBAT  
(VBAT=3.0V)”  
Updated eSPI power numbers to table.  
FIGURE 51-6: “Clock Timing Updated Clock Timing diagram. removed TADJ.  
Diagram”  
TABLE 51-5: “Clock Timing Updated tsu description.  
Parameters”  
Updated Start-up delay from 0k Hz to Operating Fre-  
quency.  
Table 50-10, "Thermal Pack- Updated table with MEC1701/MEC1703-128-TF and  
aging Characteristics"  
MEC1703-169-XY package.  
TABLE 1-1: “MEC170x Fea- Moved XFBGA to WFBGA package for MEC1703-  
ture List by Package”  
169 pin.  
Added MEC1703-169-TF-WFBGA package.  
Added package information TF, SZ, TN and XY.  
Table 50-10: “Thermal Pack- Moved XFBGA to WFBGA,  
aging Characteristics”  
Added package information SZ, TN and XY.  
Product Identification System Changed MEC170X Product Identification.  
Chapter 2  
Changed nSYS_RST to RESET_SYS.  
Port 80 Host R/W Access Type table updated.  
GPIO100 powered by VTR3  
MEC1701/MEC1703-128 WFBGA-TF,  
MEC1705/MEC1704/MEC1701/MEC1703 144  
wFBGA-SZ, MEC1701 169 WFBGA-TN, MEC1703  
169 WFBGA-TN, MEC1703 169 WFBGA-XY.  
Added MEC1703-169  
WFBGA-TN ball out  
Added ball out in table MEC1703 169 WFBGA-TN  
and Section 2.7, "Signal Description by Interface"  
DS00002206H-page 656  
2016-2020 Microchip Technology Inc.  
MEC170x  
Revision  
Section/Figure/Entry  
Correction  
Added MEC1701-128  
WFBGA-TF Ball out  
Added ball out in table MEC1701/MEC1703-128  
WFBGA-TF and Section 2.7, "Signal Description by  
Interface"  
Changed MEC1703-169XF-  
BGA to MEC1703 169  
WFBGA-XY  
Changed name in table MEC1703 169 WFBGA-XY  
and Section 2.7, "Signal Description by Interface"  
Power Consumption in light  
sleep state  
In table Table 50-12, "VBAT Supply Current, I_VBAT  
(VBAT=3.0V)" and Table 50-13, "VBAT Supply Cur-  
rent, I_VBAT (VBAT=3.3V)", the EC clock should be  
off in light sleep condition.  
WDT_EVENT_COUNT  
description updated  
In Section 46.8.8, "WDT Event Count Register",  
updated the description of WDT_EVENT_COUNT  
register.  
Updated PCR Power Reset  
JTAG_RST#, RESET_SYS_STATUS and  
Status Register bit definitions VBAT_RESET_STATUS register field definition  
updated in Section 4.9.8, "PCR Power Reset Status  
Register".  
Added Note in Efuse pro-  
gramming section  
Added Note in Section 49.10.1, "Control Register" to  
make sure that both FSOURCE_EN_READ and  
FSOURCE_EN_PRGM change state together.  
DS00002206C (10-31-17)  
Document Features and Sec- Added SHA-384.  
tion 47.10.2, "Cryptographic  
Hashing," on page 593  
Table 1-1, “MEC170x Feature Added UPD Dead Battery Support in 169-pin pack-  
List by Package,” on page 6  
age of MEC1701 and MEC1703.  
Section 2.8, "UPD Dead Bat- Added pin information for UPD Dead Battery Inter-  
tery Interface Pins," on  
page 73  
face.  
Section 2.9, "Strapping  
Options," on page 73  
Added UPD Strap Options.  
Product Identification System Changed MEC1704 Product Identification to “Indus-  
on page 660  
trial Embedded Controller” and MEC1705 Product  
Identification to “Industrial Embedded Controller with  
EEPROM Integration”.  
Section 50.2.3, "Capacitive  
Loading Specifications," on  
page 606  
Changed “VCC” to “VTR”.  
Section 49.7.1, "eFUSE Pro- Programming voltage corrected to be in the range of  
gramming Sequence," on  
page 598  
1.52V to 1.60.  
Section 4.4.2, "Battery Circuit “Ground” changed to “Discharge”.  
Requirements," on page 149  
Removed “BGND” signal from data sheet.  
Section 2.4.1, "Default State," Changed default of GPIO064 to “LRESET#”.  
on page 13  
Section 49.9, "eFuse Memory Modified eFuse block.  
Map," on page 599  
Section 46.8.10, "GPIO Bank Added note below section.  
Power Register," on page 586  
Table 50-3, “DC Electrical  
Updated I0L and I0H values.  
Characteristics,” on page 608  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 657  
MEC170x  
Revision  
Section/Figure/Entry  
Correction  
Section 2.3, "Notes for Tables Added Note 16.  
in this Chapter," on page 12  
Table 17-5, “Reset Signals,”  
on page 318 and  
Removed “RESET_VCC” from table.  
Changed bit1 to reserved and added note to cus-  
tomer to change this register to “0”.  
Section 17.11.2, "Configura-  
tion Select Register," on  
page 333  
Table 50-4, Table 50-5,  
Table 50-6, Table 50-7 and  
Table 50-11  
Added characterization information for Industrial  
part.  
Section 2.4.1, "Default State," Added MEC1704 144 WFBGA pinout details.  
on page 13Section 2.5.9,  
"MEC1705/MEC1704/MEC17  
01/MEC1703 144 wFBGA-  
SZ," on page 26  
Section 50.1.1, "Absolute  
Added MEC1704 to the list of supported devices for  
Maximum Thermal Ratings," industrial temperature rating.  
on page 605  
Table 1-1, “MEC170x Feature Modified MEC1701 144 pin WFBGA UART to have 2  
List by Package,” on page 6  
pin UART.  
DS00002206B (03-03-17)  
DS00002206A (07-19-16)  
Updated to reflect Functional Rev C  
Document Release  
DS00002206H-page 658  
2016-2020 Microchip Technology Inc.  
MEC170x  
THE MICROCHIP WEB SITE  
Microchip provides online support via our WWW site at www.microchip.com. This web site is used as a means to make  
files and information easily available to customers. Accessible by using your favorite Internet browser, the web site con-  
tains the following information:  
Product Support – Data sheets and errata, application notes and sample programs, design resources, user’s  
guides and hardware support documents, latest software releases and archived software  
General Technical Support – Frequently Asked Questions (FAQ), technical support requests, online discussion  
groups, Microchip consultant program member listing  
Business of Microchip – Product selector and ordering guides, latest Microchip press releases, listing of semi-  
nars and events, listings of Microchip sales offices, distributors and factory representatives  
CUSTOMER CHANGE NOTIFICATION SERVICE  
Microchip’s customer notification service helps keep customers current on Microchip products. Subscribers will receive  
e-mail notification whenever there are changes, updates, revisions or errata related to a specified product family or  
development tool of interest.  
To register, access the Microchip web site at www.microchip.com. Under “Support”, click on “Customer Change Notifi-  
cation” and follow the registration instructions.  
CUSTOMER SUPPORT  
Users of Microchip products can receive assistance through several channels:  
• Distributor or Representative  
• Local Sales Office  
• Field Application Engineer (FAE)  
Technical Support  
Customers should contact their distributor, representative or field application engineer (FAE) for support. Local sales  
offices are also available to help customers. A listing of sales offices and locations is included in the back of this docu-  
ment.  
Technical support is available through the web site at: http://microchip.com/support  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 659  
MEC170x  
PRODUCT IDENTIFICATION SYSTEM  
Not all of the possible combinations of Device, Temperature Range and Package may be offered for sale. To order or  
obtain information, e.g., on pricing or delivery, refer to the factory or the listed sales office.  
[X](3)  
PART NO.(1)  
Device  
-
X
-
XX  
-
X(4)/XXX(2)  
-
Examples:  
Total Version/  
SRAM  
Temp Range/ Tape and Reel  
a)  
MEC1701H-C1-SZ = MEC1701, 256KB total  
SRAM, Standard ROM, ROM Version 1, 144-  
WFBGA, Tray packaging  
Revision  
Package  
Option  
b)  
MEC1701K-C1-TN-TR = MEC1701, 320KB total  
SRAM, Standard ROM, ROM Version 1, 169-  
WFBGA, Tape and Reel packaging  
(1)  
(1)  
Device:  
MEC1701  
Embedded Controller  
MEC1703  
MEC1705  
MEC1704  
Embedded Controller with EEPROM Inte-  
gration  
c)  
MEC1705Q-C1-I/SZ-TR = MEC1705,480KB total  
SRAM, Standard ROM,ROM Version 1, Industrial  
Temp,144-WFBGA, Tape and Reel Packaging  
(1)  
(1)  
Industrial Embedded Controller with  
EEPROM Integration  
Industrial Embedded Controller  
Total SRAM  
H
K
Q
256KB  
320KB  
480KB  
Note 1: These products meet the halogen maxi-  
mum concentration values per IEC61249-  
2-21.  
Version/  
Revision:  
B#  
C#  
B = Standard Blank Version, # = Version  
Revision Number  
C = Standard Provisioned Version, # = Ver-  
sion Revision Number  
2: All package options are RoHS compliant.  
For RoHS compliance and environmental  
information,  
www.microchip.com/pagehandler/en-us/  
aboutus/ehs.html.  
please  
visit  
http://  
o
o
Temperature Range Blank = 0 C to +70 C (Commercial)  
3: Tape and Reel identifier only appears in  
the catalog part number description. This  
identifier is used for ordering purposes  
and is not printed on the device package.  
Check with your Microchip Sales Office  
for package availability with the Tape and  
Reel option.  
o
o
I/  
= -40 C to +85 C (Industrial)  
(2)  
Package:  
TF  
SZ  
TN  
XY  
128 pin WFBGA , 7mm x 7mm body,  
0.50mm pitch  
(2)  
144 pin WFBGA , 9mm x 9mm body,  
0.65mm pitch  
(2))  
169 pin WFBGA , 11mm x 11mm body,  
4: Industrial Temperature is supported only  
0.8mm pitch  
169 pin WFBGA , 8mm x 8mm body,  
0.5mm pitch  
)
(2  
by CEC1702, MEC1705 and MEC1704.  
Tape and Reel  
Option:  
Blank  
TR  
=
=
Tray packaging  
Tape and Reel  
(3)  
DS00002206H-page 660  
2016-2020 Microchip Technology Inc.  
MEC170x  
Note the following details of the code protection feature on Microchip devices:  
Microchip products meet the specifications contained in their particular Microchip Data Sheet.  
Microchip believes that its family of products is secure when used in the intended manner and under normal conditions.  
There are dishonest and possibly illegal methods being used in attempts to breach the code protection features of the Microchip  
devices. We believe that these methods require using the Microchip products in a manner outside the operating specifications  
contained in Microchip's Data Sheets. Attempts to breach these code protection features, most likely, cannot be accomplished  
without violating Microchip's intellectual property rights.  
Microchip is willing to work with any customer who is concerned about the integrity of its code.  
Neither Microchip nor any other semiconductor manufacturer can guarantee the security of its code. Code protection does not  
mean that we are guaranteeing the product is "unbreakable." Code protection is constantly evolving. We at Microchip are  
committed to continuously improving the code protection features of our products. Attempts to break Microchip's code protection  
feature may be a violation of the Digital Millennium Copyright Act. If such acts allow unauthorized access to your software or  
other copyrighted work, you may have a right to sue for relief under that Act.  
Information contained in this publication is provided for the sole purpose of designing with and using Microchip products. Information regarding device  
applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application  
meets with your specifications.  
THIS INFORMATION IS PROVIDED BY MICROCHIP "AS IS". MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND  
WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION INCLUDING BUT  
NOT LIMITED TO ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE  
OR WARRANTIES RELATED TO ITS CONDITION, QUALITY, OR PERFORMANCE.  
IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE,  
COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE INFORMATION OR ITS USE, HOWEVER CAUSED, EVEN IF MICROCHIP  
HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW,  
MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THE INFORMATION OR ITS USE WILL NOT EXCEED THE AMOUNT  
OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THE INFORMATION. Use of Microchip devices in life support and/or  
safety applications is entirely at the buyer's risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages,  
claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights  
unless otherwise stated.  
Trademarks  
The Microchip name and logo, the Microchip logo, Adaptec, AnyRate, AVR, AVR logo, AVR Freaks, BesTime, BitCloud, chipKIT, chipKIT logo,  
CryptoMemory, CryptoRF, dsPIC, FlashFlex, flexPWR, HELDO, IGLOO, JukeBlox, KeeLoq, Kleer, LANCheck, LinkMD, maXStylus, maXTouch,  
MediaLB, megaAVR, Microsemi, Microsemi logo, MOST, MOST logo, MPLAB, OptoLyzer, PackeTime, PIC, picoPower, PICSTART, PIC32 logo,  
PolarFire, Prochip Designer, QTouch, SAM-BA, SenGenuity, SpyNIC, SST, SST Logo, SuperFlash, Symmetricom, SyncServer, Tachyon,  
TempTrackr, TimeSource, tinyAVR, UNI/O, Vectron, and XMEGA are registered trademarks of Microchip Technology Incorporated in the U.S.A. and  
other countries.  
APT, ClockWorks, The Embedded Control Solutions Company, EtherSynch, FlashTec, Hyper Speed Control, HyperLight Load, IntelliMOS, Libero,  
motorBench, mTouch, Powermite 3, Precision Edge, ProASIC, ProASIC Plus, ProASIC Plus logo, Quiet-Wire, SmartFusion, SyncWorld, Temux,  
TimeCesium, TimeHub, TimePictra, TimeProvider, Vite, WinPath, and ZL are registered trademarks of Microchip Technology Incorporated in the  
U.S.A.  
Adjacent Key Suppression, AKS, Analog-for-the-Digital Age, Any Capacitor, AnyIn, AnyOut, BlueSky, BodyCom, CodeGuard,  
CryptoAuthentication, CryptoAutomotive, CryptoCompanion, CryptoController, dsPICDEM, dsPICDEM.net, Dynamic Average Matching, DAM,  
ECAN, EtherGREEN, In-Circuit Serial Programming, ICSP, INICnet, Inter-Chip Connectivity, JitterBlocker, KleerNet, KleerNet logo, memBrain,  
Mindi, MiWi, MPASM, MPF, MPLAB Certified logo, MPLIB, MPLINK, MultiTRAK, NetDetach, Omniscient Code Generation, PICDEM, PICDEM.net,  
PICkit, PICtail, PowerSmart, PureSilicon, QMatrix, REAL ICE, Ripple Blocker, SAM-ICE, Serial Quad I/O, SMART-I.S., SQI, SuperSwitcher,  
SuperSwitcher II, Total Endurance, TSHARC, USBCheck, VariSense, ViewSpan, WiperLock, Wireless DNA, and ZENA are trademarks of  
Microchip Technology Incorporated in the U.S.A. and other countries.  
SQTP is a service mark of Microchip Technology Incorporated in the U.S.A.  
The Adaptec logo, Frequency on Demand, Silicon Storage Technology, and Symmcom are registered trademarks of Microchip Technology Inc. in  
other countries.  
GestIC is a registered trademark of Microchip Technology Germany II GmbH & Co. KG, a subsidiary of Microchip Technology Inc., in other  
countries.  
AMBA, Arm, Arm7, Arm7TDMI, Arm9, Arm11, Artisan, big.LITTLE, Cordio, CoreLink, CoreSight, Cortex, DesignStart, DynamIQ, Jazelle, Keil, Mali,  
Mbed, Mbed Enabled, NEON, POP, RealView, SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro,  
µVision, Versatile are trademarks or registered trademarks of Arm Limited (or its subsidiaries) in the US and/or elsewhere.  
All other trademarks mentioned herein are property of their respective companies.  
© 2016-2020, Microchip Technology Incorporated, All Rights Reserved.  
ISBN: 9781522467434  
For information regarding Microchip’s Quality Management Systems, please visit www.microchip.com/quality.  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 661  
Worldwide Sales and Service  
AMERICAS  
ASIA/PACIFIC  
ASIA/PACIFIC  
EUROPE  
Corporate Office  
2355 West Chandler Blvd.  
Chandler, AZ 85224-6199  
Tel: 480-792-7200  
Fax: 480-792-7277  
Technical Support:  
http://www.microchip.com/  
support  
Australia - Sydney  
Tel: 61-2-9868-6733  
India - Bangalore  
Tel: 91-80-3090-4444  
Austria - Wels  
Tel: 43-7242-2244-39  
Fax: 43-7242-2244-393  
China - Beijing  
Tel: 86-10-8569-7000  
India - New Delhi  
Tel: 91-11-4160-8631  
Denmark - Copenhagen  
Tel: 45-4485-5910  
Fax: 45-4485-2829  
China - Chengdu  
Tel: 86-28-8665-5511  
India - Pune  
Tel: 91-20-4121-0141  
Finland - Espoo  
Tel: 358-9-4520-820  
China - Chongqing  
Tel: 86-23-8980-9588  
Japan - Osaka  
Tel: 81-6-6152-7160  
Web Address:  
www.microchip.com  
France - Paris  
Tel: 33-1-69-53-63-20  
Fax: 33-1-69-30-90-79  
China - Dongguan  
Tel: 86-769-8702-9880  
Japan - Tokyo  
Tel: 81-3-6880- 3770  
Atlanta  
Duluth, GA  
Tel: 678-957-9614  
Fax: 678-957-1455  
China - Guangzhou  
Tel: 86-20-8755-8029  
Korea - Daegu  
Tel: 82-53-744-4301  
Germany - Garching  
Tel: 49-8931-9700  
China - Hangzhou  
Tel: 86-571-8792-8115  
Korea - Seoul  
Tel: 82-2-554-7200  
Germany - Haan  
Tel: 49-2129-3766400  
Austin, TX  
Tel: 512-257-3370  
China - Hong Kong SAR  
Tel: 852-2943-5100  
Malaysia - Kuala Lumpur  
Tel: 60-3-7651-7906  
Germany - Heilbronn  
Tel: 49-7131-72400  
Boston  
Westborough, MA  
Tel: 774-760-0087  
Fax: 774-760-0088  
China - Nanjing  
Tel: 86-25-8473-2460  
Malaysia - Penang  
Tel: 60-4-227-8870  
Germany - Karlsruhe  
Tel: 49-721-625370  
China - Qingdao  
Philippines - Manila  
Germany - Munich  
Tel: 49-89-627-144-0  
Fax: 49-89-627-144-44  
Tel: 86-532-8502-7355  
Tel: 63-2-634-9065  
Chicago  
Itasca, IL  
Tel: 630-285-0071  
Fax: 630-285-0075  
China - Shanghai  
Tel: 86-21-3326-8000  
Singapore  
Tel: 65-6334-8870  
Germany - Rosenheim  
Tel: 49-8031-354-560  
China - Shenyang  
Tel: 86-24-2334-2829  
Taiwan - Hsin Chu  
Tel: 886-3-577-8366  
Dallas  
Addison, TX  
Tel: 972-818-7423  
Fax: 972-818-2924  
Israel - Ra’anana  
Tel: 972-9-744-7705  
China - Shenzhen  
Tel: 86-755-8864-2200  
Taiwan - Kaohsiung  
Tel: 886-7-213-7830  
Italy - Milan  
Tel: 39-0331-742611  
Fax: 39-0331-466781  
China - Suzhou  
Tel: 86-186-6233-1526  
Taiwan - Taipei  
Tel: 886-2-2508-8600  
Detroit  
Novi, MI  
Tel: 248-848-4000  
China - Wuhan  
Tel: 86-27-5980-5300  
Thailand - Bangkok  
Tel: 66-2-694-1351  
Italy - Padova  
Tel: 39-049-7625286  
Houston, TX  
Tel: 281-894-5983  
China - Xian  
Tel: 86-29-8833-7252  
Vietnam - Ho Chi Minh  
Tel: 84-28-5448-2100  
Netherlands - Drunen  
Tel: 31-416-690399  
Fax: 31-416-690340  
Indianapolis  
Noblesville, IN  
Tel: 317-773-8323  
Fax: 317-773-5453  
Tel: 317-536-2380  
China - Xiamen  
Tel: 86-592-2388138  
Norway - Trondheim  
Tel: 47-7288-4388  
China - Zhuhai  
Tel: 86-756-3210040  
Poland - Warsaw  
Tel: 48-22-3325737  
Los Angeles  
Mission Viejo, CA  
Tel: 949-462-9523  
Fax: 949-462-9608  
Tel: 951-273-7800  
Romania - Bucharest  
Tel: 40-21-407-87-50  
Spain - Madrid  
Tel: 34-91-708-08-90  
Fax: 34-91-708-08-91  
Raleigh, NC  
Tel: 919-844-7510  
Sweden - Gothenberg  
Tel: 46-31-704-60-40  
New York, NY  
Tel: 631-435-6000  
Sweden - Stockholm  
Tel: 46-8-5090-4654  
San Jose, CA  
Tel: 408-735-9110  
Tel: 408-436-4270  
UK - Wokingham  
Tel: 44-118-921-5800  
Fax: 44-118-921-5820  
Canada - Toronto  
Tel: 905-695-1980  
Fax: 905-695-2078  
2016-2020 Microchip Technology Inc.  
DS00002206H-page 662  
02/28/20  

相关型号:

SI9130DB

5- and 3.3-V Step-Down Synchronous Converters

Warning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 211
-
VISHAY

SI9135LG-T1

SMBus Multi-Output Power-Supply Controller

Warning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 211
-
VISHAY

SI9135LG-T1-E3

SMBus Multi-Output Power-Supply Controller

Warning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 211
-
VISHAY

SI9135_11

SMBus Multi-Output Power-Supply Controller

Warning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 211
-
VISHAY

SI9136_11

Multi-Output Power-Supply Controller

Warning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 211
-
VISHAY

SI9130CG-T1-E3

Pin-Programmable Dual Controller - Portable PCs

Warning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 211
-
VISHAY

SI9130LG-T1-E3

Pin-Programmable Dual Controller - Portable PCs

Warning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 211
-
VISHAY

SI9130_11

Pin-Programmable Dual Controller - Portable PCs

Warning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 211
-
VISHAY

SI9137

Multi-Output, Sequence Selectable Power-Supply Controller for Mobile Applications

Warning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 211
-
VISHAY

SI9137DB

Multi-Output, Sequence Selectable Power-Supply Controller for Mobile Applications

Warning: Undefined variable $rtag in /www/wwwroot/website_ic37/www.icpdf.com/pdf/pdf/index.php on line 211
-
VISHAY