Freescale Semiconductor Microscope Magnifier MC9S12XDP512 User Manual

MC9S12XDP512  
Data Sheet  
HCS12X  
Microcontrollers  
MC9S12XDP512  
Rev. 2.11  
5/2005  
freescale.com  
Download from Www.Somanuals.com. All Manuals Search And Download.  
MC9S12XDP512 Data Sheet  
covers  
MC9S12XDT384 & MC9S12XA512  
MC9S12XDP512V2  
Rev. 2.11  
7/2005  
Download from Www.Somanuals.com. All Manuals Search And Download.  
To provide the most up-to-date information, the revision of our documents on the World Wide Web will be  
the most current. Your printed copy may be an earlier revision. To verify you have the latest information  
available, refer to:  
http://freescale.com/  
The following revision history table summarizes changes contained in this document.  
Revision History  
Revision  
Date  
Description  
Level  
02.07  
02.08  
April, 2005  
May, 2005  
New Book  
Minor corrections  
removed ESD Machine Model from electrical characteristics  
added thermal characteristics  
added more details to run current measurement configurations  
VDDA supply voltage range 3.15V - 3.6V fot ATD Operating Characteristics  
I/O Chararcteristics for alll pins except EXTAL, XTAL ....  
corrected VREG electrical spec  
May, 2005  
02.09  
IDD wait max 95mA  
May 2005  
July 2005  
02.10  
02.11  
Improvements to NVM reliabity spec, added part numbers  
Added ROM parts to App.  
Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc.  
This product incorporates SuperFlash® technology licensed from SST.  
© Freescale Semiconductor, Inc., 2005. All rights reserved.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
4
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Contents  
Chapter 13 Inter-Integrated Circuit (MC9S12XDP512) Block Description . .  
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3).  
Chapter 22 External Bus Interface (S12XEBIV2) . . . . . . . . . . . . . . . . . . .861  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
5
Download from Www.Somanuals.com. All Manuals Search And Download.  
Contents  
Section Number  
Title  
Page  
Chapter 1  
1.8 ATD0 External Trigger Input Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99  
1.9 ATD1 External Trigger Input Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100  
Chapter 2  
2.3 Memory Map and Register Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104  
2.3.1 Module Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
7
Download from Www.Somanuals.com. All Manuals Search And Download.  
2.8 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143  
2.8.1 Description of Flash Interrupt Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144  
Chapter 3  
3.7.1 EEPROM Reset Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175  
3.7.2 Reset While EEPROM Command Active . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175  
MC9S12XDP512 Data Sheet, Rev. 2.11  
8
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
3.8 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175  
3.8.1 Description of EEPROM Interrupt Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176  
Chapter 4  
4.4.5 Low-Power Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268  
4.5 Initialization and Application Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268  
Chapter 5  
5.1.3 Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273  
5.2.1 V  
and V  
— Operating and Ground Voltage Pins . . . . . . . . . . . . . . . . . . . . 274  
DDPLL  
SSPLL  
5.5.2 Clock Monitor Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307  
5.5.3 Computer Operating Properly Watchdog (COP) Reset . . . . . . . . . . . . . . . . . . . . . . . . . 307  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
9
Download from Www.Somanuals.com. All Manuals Search And Download.  
5.6.2 PLL Lock Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309  
5.6.3 Self Clock Mode Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309  
Chapter 6  
6.1.3 Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312  
6.4.3 Wait Mode Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315  
6.4.4 Stop Mode Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315  
Chapter 7  
7.2 External Signal Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319  
7.2.2 ETRIG3, ETRIG2, ETRIG1, ETRIG0 — External Trigger Pins . . . . . . . . . . . . . . . . . 319  
7.4.2 Digital Sub-Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343  
7.4.3 Operation in Low Power Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344  
MC9S12XDP512 Data Sheet, Rev. 2.11  
10  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
7.5 Resets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345  
7.6 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345  
Chapter 8  
8.2.1 ANx (x = 7, 6, 5, 4, 3, 2, 1, 0) — Analog Input Pin . . . . . . . . . . . . . . . . . . . . . . . . . . . 348  
8.2.2 ETRIG3, ETRIG2, ETRIG1, and ETRIG0 — External Trigger Pins . . . . . . . . . . . . . . 348  
8.5 Resets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372  
8.6 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372  
Chapter 9  
9.5.1 Incoming Interrupt Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397  
9.5.2 Outgoing Interrupt Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
11  
Download from Www.Somanuals.com. All Manuals Search And Download.  
9.9.1 Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482  
9.9.2 Code Example (Transmit "Hello World!" on SCI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482  
Chapter 10  
10.1.6 Reprogramming the Security Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504  
10.1.7 Complete Memory Erase (Special Modes) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504  
Chapter 11  
11.2.7 IOC1 — Input Capture and Output Compare Channel 1 . . . . . . . . . . . . . . . . . . . . . . . . 509  
11.2.8 IOC0 — Input Capture and Output Compare Channel 0 . . . . . . . . . . . . . . . . . . . . . . . . 509  
MC9S12XDP512 Data Sheet, Rev. 2.11  
12  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
11.4.2 Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558  
11.4.3 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559  
Chapter 12  
12.5 Resets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590  
12.6 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591  
Chapter 13  
13.2.2 IIC_SDA — Serial Data Line Pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595  
13.3 Memory Map and Register Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
13  
Download from Www.Somanuals.com. All Manuals Search And Download.  
13.7 Initialization/Application Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612  
13.7.1 IIC Programming Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612  
Chapter 14  
14.5.1 MSCAN initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671  
14.5.2 Bus-Off Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672  
MC9S12XDP512 Data Sheet, Rev. 2.11  
14  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Section Number  
Title  
Page  
Chapter 15  
15.5.4 Recovery from Wait Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709  
15.5.5 Recovery from Stop Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709  
Chapter 16  
16.2.1 MOSI — Master Out/Slave In Pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713  
16.3.1 Module Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713  
16.3.2 Register Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
15  
Download from Www.Somanuals.com. All Manuals Search And Download.  
16.4.6 Error Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732  
16.4.7 Low Power Mode Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732  
Chapter 17  
17.2.3 VDD, VSS — Regulator Output1 (Core Logic) Pins . . . . . . . . . . . . . . . . . . . . . . . . . . 737  
17.4.9 Description of Reset Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746  
17.4.10Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746  
Chapter 18  
18.1.2 Modes of Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749  
18.1.3 Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 750  
MC9S12XDP512 Data Sheet, Rev. 2.11  
16  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
18.5.2 Shutdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763  
18.5.3 Flag Clearing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763  
Chapter 19  
19.4.10Instruction Tracing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 788  
19.4.11Serial Communication Time Out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 789  
Chapter 20  
20.1.1 Glossary of Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791  
20.1.2 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 792  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
17  
Download from Www.Somanuals.com. All Manuals Search And Download.  
20.4.6 Tagging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826  
20.4.7 Breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827  
Chapter 21  
21.5.2 Interrupt Nesting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 858  
21.5.3 Wake Up from Stop or Wait Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859  
Chapter 22  
22.1.2 Modes of Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 861  
22.1.3 Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 862  
MC9S12XDP512 Data Sheet, Rev. 2.11  
18  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
22.5.1 Normal Expanded Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876  
22.5.2 Emulation Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 877  
Chapter 23  
23.5.2 Port Replacement Registers (PRRs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 912  
23.5.3 On-Chip ROM Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 914  
Appendix A  
A.1.2 Power Supply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 919  
A.1.3 Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 920  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
19  
Download from Www.Somanuals.com. All Manuals Search And Download.  
A.8.4 Emulation Expanded Mode (With Optional Access Stretching) . . . . . . . . . . . . . . . . . . . 961  
A.8.5 External Tag Trigger Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964  
Appendix B  
B.3 112-Pin LQFP Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 967  
B.4 80-Pin QFP Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 968  
MC9S12XDP512 Data Sheet, Rev. 2.11  
20  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Section Number  
Title  
Page  
MC9S12XDP512 Data Sheet, Rev. 2.11  
22  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1  
Device Overview (MC9S12XDP512V2)  
1.1  
Introduction  
The MC9S12XD family will retain the low cost, power consumption, EMC and code-size efficiency  
advantages currently enjoyed by users of Freescale's existing 16-Bit MC9S12 MCU Family.  
Based around an enhanced S12 core, the MC9S12XD-Family will deliver 2 to 5 times the performance of  
a 25-MHz S12 whilst retaining a high degree of pin and code compatibility with the S12.  
The MC9S12XD-Family introduces the performance boosting XGATE module. Using enhanced DMA  
functionality, this parallel processing module offloads the CPU by providing high-speed data processing  
and transfer between peripheral modules, RAM, and I/O ports. Providing up to 80 MIPS of performance  
additional to the CPU, the XGATE can access all peripherals and the RAM block.  
The MC9S12XDP512 is composed of standard on-chip peripherals including 512 Kbytes of Flash  
EEPROM, 32 Kbytes of RAM, 4 Kbytes of EEPROM, six asynchronous serial communications interfaces  
(SCI), three serial peripheral interfaces (SPI), an 8-channel IC/OC enhanced capture timer, an 8-channel,  
10-bit analog-to-digital converter, a 16-channel, 10-bit analog-to-digital converter, an 8-channel  
pulse-width modulator (PWM), five CAN 2.0 A, B software compatible modules (MSCAN12), two  
inter-IC bus blocks, and a periodic interrupt timer. The MC9S12XDP512 has full 16-bit data paths  
throughout. The non-multiplexed expanded bus interface available on the 144-pin versions allows an easy  
interface to external memories.  
The inclusion of a PLL circuit allows power consumption and performance to be adjusted to suit  
operational requirements. System power consumption can be further improved with the new “fast exit from  
stop mode” feature.  
In addition to the I/O ports available in each module, up to 25 further I/O ports are available with interrupt  
capability allowing wake-up from stop or wait mode.  
The MC9S12XDP512 will be available in 144-pin LQFP with external bus interface and in 112-pin LQFP  
or 80-pin QFP package without external bus interface.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
23  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 1 Device Overview (MC9S12XDP512V2)  
1.1.1  
Features  
HCS12X Core  
— 16-bit HCS12X CPU  
– Upward compatible with MC9S12 instruction set  
– Interrupt stacking and programmer’s model identical to MC9S12  
– Instruction queue  
– Enhanced indexed addressing  
– Enhanced instruction set  
— EBI (external bus interface)  
— MMC (module mapping control)  
— INT (interrupt controller)  
— DBG (debug module to monitor HCS12X CPU and XGATE bus activity)  
— BDM (background debug mode)  
XGATE (peripheral coprocessor)  
— Parallel processing module off loads the CPU by providing high-speed data processing and  
transfer  
— Data transfer between Flash EEPROM, RAM, peripheral modules, and I/O ports  
PIT (periodic interrupt timer)  
— Four timers with independent time-out periods  
24  
— Time-out periods selectable between 1 and 2 bus clock cycles  
CRG (clock and reset generator)  
— Low noise/low power Pierce oscillator  
— PLL  
— COP watchdog  
— Real time interrupt  
— Clock monitor  
— Fast wake-up from stop mode  
8-bit ports with interrupt functionality  
— Digital filtering  
— Programmable rising or falling edge trigger  
Memory  
— 512-Kbyte Flash EEPROM  
— 4-Kbyte EEPROM  
— 32-Kbyte RAM  
One 8-channel and one 16-channel ADC (analog-to-digital converter)  
— 10-bit resolution  
— External conversion trigger capability  
MC9S12XDP512 Data Sheet, Rev. 2.11  
24  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 1 Device Overview (MC9S12XDP512V2)  
Five 1 M bit per second, CAN 2.0 A, B software compatible modules  
— Five receive and three transmit buffers  
— Flexible identifier filter programmable as 2 x 32 bit, 4 x 16 bit, or 8 x 8 bit  
— Four separate interrupt channels for Rx, Tx, error, and wake-up  
— Low-pass filter wake-up function  
— Loop-back for self-test operation  
ECT (enhanced capture timer)  
— 16-bit main counter with 7-bit prescaler  
— 8 programmable input capture or output compare channels  
— Four 8-bit or two 16-bit pulse accumulators  
8 PWM (pulse-width modulator) channels  
— Programmable period and duty cycle  
— 8-bit 8-channel or 16-bit 4-channel  
— Separate control for each pulse width and duty cycle  
— Center-aligned or left-aligned outputs  
— Programmable clock select logic with a wide range of frequencies  
— Fast emergency shutdown input  
— Usable as interrupt inputs  
Serial interfaces  
— Six asynchronous serial communication interfaces (SCI) with additional LIN support and  
selectable IrDA 1.4 return-to-zero-inverted (RZI) format with programmable pulse width  
— Three Synchronous Serial Peripheral Interfaces (SPI)  
Two IIC (Inter-IC bus) Modules  
— Compatible with IIC bus standard  
— Multi-master operation  
— Software programmable for one of 256 different serial clock frequencies  
On-Chip Voltage Regulator  
— Two parallel, linear voltage regulators with bandgap reference  
— Low-voltage detect (LVD) with low-voltage interrupt (LVI)  
— Power-on reset (POR) circuit  
— 3.3-V–5.5-V operation  
— Low-voltage reset (LVR)  
— Ultra low-power wake-up timer  
144 -pin LQFP, 112-pin LQFP, and 80-pin QFP packages  
— I/O lines with 5-V input and drive capability  
— Input threshold on external bus interface inputs switchable for 3.3-V or 5-V operation  
— 5-V A/D converter inputs  
— Operation at 80 MHz equivalent to 40-MHz bus speed  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
25  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
Development support  
— Single-wire background debug™ mode (BDM)  
— Four on-chip hardware breakpoints  
1.1.2  
Modes of Operation  
User modes:  
Normal and emulation operating modes  
— Normal single-chip mode  
— Normal expanded mode  
— Emulation of single-chip mode  
— Emulation of expanded mode  
Special Operating Modes  
— Special single-chip mode with active background debug mode  
— Special test mode (Freescale use only)  
Low-power modes:  
System stop modes  
— Pseudo stop mode  
— Full stop mode  
System wait mode  
1.1.3  
Block Diagram  
Figure 1-1 shows a block diagram of the MC9S12XDP512 device.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
26  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 1 Device Overview (MC9S12XDP512V2)  
V
V
V
V
V
DDA  
V
V
V
V
RH  
RH  
RH  
512/384/256/128/64-Kbyte Flash  
32/20/16/14/10/8/4-Kbyte RAM  
4/2/1-Kbyte EEPROM  
ATD0  
ATD1  
AN8  
AN9  
AN10  
AN11  
AN12  
AN13  
AN14  
AN15  
AN16  
AN17  
AN18  
AN19  
AN20  
AN21  
AN22  
AN23  
RL  
RL  
RL  
V
DDA  
DDA  
SSA  
V
V
SSA  
SSA  
AN0  
AN1  
AN2  
AN3  
AN4  
AN5  
AN6  
AN7  
PAD00  
PAD01  
PAD02  
PAD03  
PAD04  
PAD05  
PAD06  
PAD08  
PAD09  
PAD10  
PAD11  
PAD12  
PAD13  
PAD14  
PAD15  
PAD16  
PAD17  
PAD18  
PAD19  
PAD20  
PAD21  
PAD22  
PAD23  
PT0  
V
DDR  
V
SSR  
V
Voltage Regulator  
REGEN  
V
DD1,2  
V
SS1,2  
Single-Wire  
Background  
Debug Module  
PAD07  
BKGD  
CPU12X  
XFC  
Enhanced Multilevel  
Interrupt Module  
V
DDPLL  
Clock  
PLL  
Periodic Interrupt  
COP Watchdog  
Clock Monitor  
Breakpoints  
V
and Reset  
Generation  
Module  
SSPLL  
EXTAL  
XGATE  
Peripheral Co-Processor  
XTAL  
RESET  
TEST  
IOC0  
PE0  
PE1  
PE2  
PE3  
PE4  
PE5  
PE6  
PE7  
PK0  
XIRQ  
IRQ  
R/W/WE  
LSTRB/LDS/EROMCTL  
ECLK  
MODA/RE/TAGLO  
MODB/TAGHI  
ECLKX2/XCLKS  
IQSTAT0  
IOC1  
IOC2  
IOC3  
IOC4  
IOC5  
IOC6  
IOC7  
RXD  
TXD  
PT1  
PT2  
PT3  
PT4  
PT5  
Enhanced Capture  
Timer  
PT6  
PT7  
PS0  
PS1  
PS2  
PS3  
PS4  
PS5  
PS6  
PS7  
PM0  
PM1  
PM2  
PM3  
PM4  
PM5  
PM6  
PM7  
SCI0  
SCI1  
ADDR16  
PK1  
PK2  
PK3  
PK4  
PK5  
IQSTAT1  
IQSTAT2  
ADDR17  
ADDR18  
ADDR19  
ADDR20  
ADDR21  
RXD  
TXD  
IQSTAT3  
8-Bit PPAGE  
MISO  
MOSI  
SCK  
ACC0  
ACC1  
ACC2  
Allows 4-MByte  
Program space  
SPI0  
ADDR22 PK6  
EWAIT PK7  
ADDR15 PA7  
ADDR14 PA6  
ADDR13 PA5  
ADDR12 PA4  
ADDR11 PA3  
ADDR10 PA2  
ADDR9 PA1  
ADDR8 PA0  
ADDR7 PB7  
ADDR6 PB6  
ADDR5 PB5  
ADDR4 PB4  
ADDR3 PB3  
ADDR2 PB2  
ADDR1 PB1  
ADDR0 PB0  
DATA15 PC7  
DATA14 PC6  
DATA13 PC5  
DATA12 PC4  
DATA11 PC3  
DATA10 PC2  
DATA9 PC1  
DATA8 PC0  
DATA7 PD7  
DATA6 PD6  
DATA5 PD5  
DATA4 PD4  
DATA3 PD3  
DATA2 PD2  
DATA1 PD1  
DATA0 PD0  
SS  
ROMCTL/EWAIT  
RXCAN  
TXCAN  
RXCAN  
TXCAN  
RXCAN  
TXCAN  
RXCAN  
TXCAN  
CAN0  
Timer  
4-Channel  
16-Bit with Prescaler  
for Internal Timebases  
CAN1  
CAN2  
RXD  
SCI3  
CAN3  
TXD  
RXCAN  
TXCAN  
Digital Supply 2.5 V  
CAN4  
V
DD1,2  
RXD  
TXD  
KWJ0  
KWJ1  
KWJ2  
KWJ4  
KWJ5  
KWJ6  
KWJ7  
KWP0  
KWP1  
KWP2  
KWP3  
KWP4  
KWP5  
KWP6  
KWP7  
KWH0  
KWH1  
KWH2  
KWH3  
KWH4  
KWH5  
KWH6  
KWH7  
PJ0 CS3  
PJ1  
PJ2 CS1  
PJ4 CS0  
PJ5 CS2  
PJ6  
PJ7  
PP0  
PP1  
PP2  
PP3  
PP4  
PP5  
PP6  
PP7  
PH0  
PH1  
PH2  
PH3  
PH4  
PH5  
PH6  
PH7  
V
SCI2  
SS1,2  
SDA  
SCL  
SDA  
SCL  
PWM0  
PWM1  
PWM2  
PWM3  
PWM4  
PWM5  
PWM6  
PWM7  
MISO  
MOSI  
SCK  
SS  
MISO  
MOSI  
SCK  
IIC1  
PLL Supply 2.5 V  
V
DDPLL  
UDS  
IIC0  
V
SSPLL  
Analog Supply 3-5 V  
VDDA  
VSSA  
PWM  
I/O Supply 3-5 V  
V
DDX1,2  
V
SSX1,2  
Voltage Regulator 3-5 V  
V
DDR1,2  
SPI1  
V
SSR1,2  
RXD  
TXD  
RXD  
TXD  
SCI4  
SCI5  
SPI2  
SS  
Figure 1-1. MC9S12XD-Family Block Diagram  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
27  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
1.1.4  
Device Memory Map  
Table 1-1shows the device register memory map of the MC9S12XDP512.  
Table 1-1. Device Register Memory Map  
Size  
(Bytes)  
Address  
Module  
0x0000–0x0009  
0x000A–0x000B  
0x000C–0x000D  
0x000E–0x000F  
0x0010–0x0017  
0x0018–0x0019  
0x001A–0x001B  
0x001C–0x001F  
0x0020–0x002F  
0x0030–0x0031  
0x0032–0x0033  
0x0034–0x003F  
0x0040–0x007F  
0x0080–0x00AF  
0x00B0–0x00B7  
0x00B8–0x00BF  
0x00C0–0x00C7  
0x00C8–0x00CF  
0x00D0–0x00D7  
0x00D8–0x00DF  
0x00E0–0x00E7  
0x00E8–0x00EF  
0x00F0–0x00F7  
0x00F8–0x00FF  
0x0100–0x010F  
0x0110–0x011B  
0x011C–0x011F  
0x0120–0x012F  
0x0130–0x0137  
0x0138–0x013F  
0x0140–0x017F  
PIM (port integration module)  
MMC (memory map control)  
PIM (port integration module)  
EBI (external bus interface)  
MMC (memory map control)  
Reserved  
10  
2
2
2
8
2
Device ID register  
2
PIM (port integration module)  
DBG (debug module)  
4
16  
2
MMC (memory map control)  
PIM (port integration module)  
CRG (clock and reset generator)  
ECT (enhanced capture timer 16-bit 8-channel)s  
ATD1 (analog-to-digital converter 10-bit 16-channel)  
IIC1 (inter IC bus)  
2
12  
64  
48  
8
SCI2 (serial communications interface)  
SCI3 (serial communications interface)  
SCI0 (serial communications interface)  
SCI1 (serial communications interface)  
SPI0 (serial peripheral interface)  
IIC0 (inter IC bus)  
8
8
8
8
8
8
Reserved  
8
SPI1 (serial peripheral interface)  
SPI2 (serial peripheral interface)  
Flash control register  
8
8
16  
12  
4
EEPROM control register  
MMC (memory map control)  
INT (interrupt module)  
16  
8
SCI4 (serial communications interface)  
SCI5 (serial communications interface)  
CAN0 (scalable CAN)  
8
64  
MC9S12XDP512 Data Sheet, Rev. 2.11  
28  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 1 Device Overview (MC9S12XDP512V2)  
Table 1-1. Device Register Memory Map (continued)  
Size  
(Bytes)  
Address  
Module  
0x0180–0x01BF  
0x01C0–0x01FF  
0x0200–0x023F  
0x0240–0x027F  
0x0280–0x02BF  
0x02C0–0x02DF  
0x02E0–0x02EF  
0x02F0–0x02F7  
0x02F8–0x02FF  
0x0300–0x0327  
0x0328–0x033F  
0x0340–0x0367  
0x0368–0x037F  
0x0380–0x03BF  
0x03C0–0x03FF  
0x0400–0x07FF  
CAN1 (scalable CAN)  
CAN2 (scalable CAN)  
CAN3 (scalable CAN)  
64  
64  
64  
64  
64  
32  
16  
8
PIM (port integration module)  
CAN4 (scalable CAN)  
ATD0 (analog-to-digital converter 10 bit 8-channel)  
Reserved  
Voltage regulator  
Reserved  
8
PWM (pulse-width modulator 8 channels)  
40  
24  
40  
24  
64  
64  
1024  
Reserved  
Periodic interrupt timer  
Reserved  
XGATE  
Reserved  
Reserved  
NOTE  
Reserved register space shown in Table 1-1 is not allocated to any module.  
This register space is reserved for future use. Writing to these locations have  
no effect. Read access to these locations returns zero.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
29  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
1.1.5  
Address Mapping  
1.1.5.1  
Local-to-Global Address Mapping  
$00_0000  
$00_0800  
2K Registers  
$0000  
2K Registers  
$0F_8000  
RAM  
6*4K paged  
$0800  
$0F_DFFF  
$0F_E000  
EEPROM  
1K paged  
8K RAM  
$0C00  
$1000  
$0F_FFFF  
$10_0000  
EPAGE  
RPAGE  
1K EEPROM  
RAM  
4K paged  
$13_F000  
EEPROM  
3*1K paged  
$2000  
$4000  
$8000  
$13_FC00  
$14_0000  
1K EEPROM  
8K RAM  
Unpaged Flash  
PPAGE  
Flash  
16K paged  
PPAGE = $E0  
$78_0000  
PPAGES  
29 * 16K  
$C000  
$FFFF  
Unpaged Flash  
Vectors  
PPAGE = $FD  
$7F_4000  
$7F_8000  
Unpaged 16K  
or PPAGE $FD  
PPAGE = $FE  
PPAGE = $FF  
Unpaged 16K  
or PPAGE $FE  
$7F_C000  
$7F_FFFF  
Unpaged 16K  
or PPAGE $FF  
Figure 1-2. Local-to-Global Address Mapping S12X_CPU/S12X_BDM  
MC9S12XDP512 Data Sheet, Rev. 2.11  
30  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 1 Device Overview (MC9S12XDP512V2)  
Device Global Memory Map  
XGATE  
Local Memory Map  
$00_0000  
2K Registers  
$00_0800  
$00_1000  
$0000  
2K Registers  
$0F_8000  
$0800  
RAM  
$0F_FFFF  
$10_0000  
FLASH  
$7FFF  
$8000  
RAM  
$78_0800  
30KB FLASH  
$FFFF  
$78_7FFF  
$78_8000  
Not Used by XGATE  
$7F_FFFF  
Figure 1-3. Local-to-Global Address Mapping XGATE  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
31  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
1.1.5.2  
Logical Address Map  
$0000 2-K Register Space  
$07FF  
$0000  
$0800  
$0C00  
$0800 4-Kbytes EEPROM  
four * 1K pages accessible through $0800–$0BFF  
$0FFF  
$1000  
$1000  
$2000  
32-Kbytes RAM  
eight * 4K pages accessible  
through $1000–$1FFF  
$3FFF  
$4000  
$4000  
$8000  
$C000  
16-K Fixed Flash EEPROM  
$7FFF  
$8000  
16-K Page Window  
thirtytwo * 16-K Flash EEPROM Pages  
EXT  
$BFFF  
$BF00  
BDM visible on PPAGE = $FF  
(If Active)  
$BFFF  
$C000  
16-K Fixed Flash EEPROM  
2-K, 4-K, 8-K, or 16-K Protected Boot Sector  
$FFFF  
$FF00  
BDM  
(If Active, except for specific BDM hardware  
command, for details refer to BDM BlockGuide)  
$FF00  
$FFFF  
Vectors  
Vectors  
Vectors  
$FFFF  
Normal  
Expanded  
Special  
Single Chip  
Single Chip  
Figure 1-4. Memory Map  
MC9S12XDP512 Data Sheet, Rev. 2.11  
32  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
1.1.6  
Detailed Register Map  
The following tables show the detailed register map of the MC9S12XDP512.  
0x0000–0x0009 Port Integration Module (PIM) Map 1 of 5  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0x0000  
PORTA  
PA7  
PA6  
PA5  
PA4  
PA3  
PA2  
PA1  
PA 0  
0x0001  
0x0002  
0x0003  
0x0004  
0x0005  
0x0006  
0x0007  
0x0008  
0x0009  
PORTB  
DDRA  
PB7  
DDRA7  
DDRB7  
PC7  
PB6  
DDRA6  
DDRB6  
PC6  
PB5  
DDRA5  
DDRB5  
PC5  
PB4  
DDRA4  
DDRB4  
PC4  
PB3  
DDRA3  
DDRB3  
PC3  
PB2  
DDRA2  
DDRB2  
PC2  
PB1  
DDRA1  
DDRB1  
PC1  
PB0  
DDRA0  
DDRB0  
PC0  
W
R
W
R
DDRB  
W
R
PORTC  
PORTD  
DDRC  
DDRD  
PORTE  
DDRE  
W
R
PD7  
PD6  
PD5  
PD4  
PD3  
PD2  
PD1  
PD0  
W
R
DDRC7  
DDRD7  
PE7  
DDRC6  
DDRD6  
PE6  
DDRC5  
DDRD5  
PE5  
DDRC4  
DDRD4  
PE4  
DDRC3  
DDRD3  
PE3  
DDRC2  
DDRD2  
PE2  
DDRC1  
DDRC0  
W
R
DDRD1  
PE1  
DDRD0  
PE0  
W
R
W
R
0
0
DDRE7  
DDRE6  
DDRE5  
DDRE4  
DDRE3  
DDRE2  
W
0x000A–0x000B Module Mapping Control (S12XMMC) Map 1 of 4  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0
0
0
0
0
0x000A  
MMCCTL0  
CS2E  
0
CS1E  
0
CS0E  
0
0
0
0x000B  
MODE  
MODC  
MODB  
MODA  
W
0x000C–0x000D Port Integration Module (PIM) Map 2 of 5  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0
0x000C  
PUCR  
PUPKE  
BKPUE  
0
PUPEE  
PUPDE  
PUPCE  
PUPBE  
PUPAE  
0
0x000D  
RDRIV  
RDPK  
RDPE  
RDPD  
RDPC  
RDPB  
RDPA  
W
0x000E–0x000F External Bus Interface (S12XEBI) Map  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0
0x000E  
EBICTL0  
ITHRS  
HDBE  
0
ASIZ4  
0
ASIZ3  
0
ASIZ2  
ASIZ1  
ASIZ0  
0
0x000F  
EBICTL1  
EWAITE  
EXSTR2  
EXSTR1  
EXSTR0  
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
33  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x0010–0x0017 Module Mapping Control (S12XMMC) Map 2 of 4  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0
0x0010  
GPAGE  
GP6  
GP5  
GP4  
GP3  
GP2  
GP1  
GP0  
0x0011  
0x0012  
0x0013  
0x0014  
0x0015  
0x0016  
0x0017  
DIRECT  
Reserved  
MMCCTL1  
Reserved  
Reserved  
RPAGE  
DP15  
0
DP14  
0
DP13  
0
DP12  
0
DP11  
0
DP10  
0
DP9  
0
DP8  
0
W
R
W
R
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
EROMON ROMHM  
ROMON  
0
W
R
0
0
0
0
W
R
0
W
R
RP7  
EP7  
RP6  
EP6  
RP5  
EP5  
RP4  
EP4  
RP3  
EP3  
RP2  
EP2  
RP1  
EP1  
RP0  
EP0  
W
R
EPAGE  
W
0x0018–0x001B Miscellaneous Peripheral  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0
0
0
0
0
0
0
0
0x0018  
Reserved  
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0x0019  
0x001A  
0x001B  
Reserved  
PARTIDH  
PARTIDL  
W
R
W
R
W
0x001C–0x001F Port Integration Module (PIM) Map 3 of 5  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0
0
0
0
0x001C  
ECLKCTL  
NECLK  
0
NCLKX2  
0
EDIV1  
0
EDIV0  
0
0
0
0
0
0
0
0
0
0
0
0
0
0x001D  
0x001E  
0x001F  
Reserved  
IRQCR  
W
R
0
0
0
0
IRQE  
0
IRQEN  
0
W
R
Reserved  
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
34  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x0020–0x0027 Debug Module (S12XDBG) Map  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0
0x0020  
DBGC1  
ARM  
TBF  
XGSBPE  
0
BDM  
0
DBGBRK  
COMRV  
TRIG  
EXTF  
0
SSF2  
SSF1  
SSF0  
0x0021  
0x0022  
0x0023  
0x0024  
0x0025  
0x0026  
0x0027  
DBGSR  
DBGTCR  
DBGC2  
W
R
TSOURCE  
TRANGE  
TRCMOD  
CDCM  
TALIGN  
ABCM  
W
R
0
Bit 15  
Bit 7  
0
0
0
0
W
R
Bit 14  
Bit 6  
Bit 13  
Bit 5  
Bit 12  
Bit 4  
Bit 11  
Bit 3  
Bit 10  
Bit 2  
Bit 9  
Bit 1  
Bit 8  
Bit 0  
DBGTBH  
DBGTBL  
DBGCNT  
DBGSCRX  
W
R
W
R
CNT  
W
R
0
0
0
0
SC3  
RW  
RW  
19  
11  
3
SC2  
RWE  
RWE  
18  
SC1  
SRC  
SRC  
17  
9
SC0  
W
R
0
DBGXCTL  
(COMPA/C)  
1
0x0028  
NDB  
SZ  
Bit 22  
14  
TAG  
TAG  
21  
13  
5
BRK  
BRK  
20  
12  
4
COMPE  
COMPE  
Bit 16  
Bit 8  
W
R
DBGXCTL  
(COMPB/D)  
2
0x0028  
SZE  
0
W
R
0x0029  
0x002A  
0x002B  
0x002C  
0x002D  
0x002E  
0x002F  
DBGXAH  
DBGXAM  
DBGXAL  
W
R
Bit 15  
Bit 7  
10  
W
R
6
2
1
Bit 0  
W
R
DBGXDH  
DBGXDL  
DBGXDHM  
DBGXDLM  
Bit 15  
Bit 7  
14  
13  
5
12  
4
11  
3
10  
9
Bit 8  
W
R
6
2
1
Bit 0  
W
R
Bit 15  
Bit 7  
14  
13  
5
12  
4
11  
3
10  
9
Bit 8  
W
R
6
2
1
Bit 0  
W
1
This represents the contents if the Comparator A or C control register is blended into this address  
This represents the contents if the Comparator B or D control register is blended into this address  
2
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
35  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x0030–0x0031 Module Mapping Control (S12XMMC) Map 3 of 4  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0x0030  
PPAGE  
PIX7  
0
PIX6  
0
PIX5  
0
PIX4  
0
PIX3  
0
PIX2  
0
PIX1  
0
PIX0  
0
0x0031  
Reserved  
W
0x0032–0x0033 Port Integration Module (PIM) Map 4 of 5  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0x0032  
PORTK  
PK7  
PK6  
PK5  
PK4  
PK3  
PK2  
PK1  
PK0  
0x0033  
DDRK  
DDRK7  
DDRK6  
DDRK5  
DDRK4  
DDRK3  
DDRK2  
DDRK1  
DDRK0  
W
0x0034–0x003F Clock and Reset Generator (CRG) Map  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0
0
0x0034  
SYNR  
SYN5  
SYN4  
SYN3  
SYN2  
SYN1  
SYN0  
0
0
0
0
0x0035  
0x0036  
0x0037  
0x0038  
0x0039  
0x003A  
0x003B  
0x003C  
0x003D  
0x003E  
0x003F  
REFDV  
CTFLG  
REFDV5  
0
REFDV4  
0
REFDV3  
0
REFDV2  
0
REFDV1  
0
REFDV0  
0
W
R
W
R
Reserved For Factory Test  
LOCK  
TRACK  
SCM  
0
CRGFLG  
CRGINT  
CLKSEL  
PLLCTL  
RTICTL  
COPCTL  
FORBYP  
CTCTL  
RTIF  
RTIE  
PORF  
ILAF  
LVRF  
0
LOCKIF  
SCMIF  
SCMIE  
RTIWAI  
PCE  
W
R
0
0
0
LOCKIE  
W
R
0
0
PLLSEL  
CME  
PSTP  
PLLON  
RTR6  
PLLWAI  
COPWAI  
SCME  
RTR0  
W
R
AUTO  
ACQ  
FSTWKP  
PRE  
W
R
RTDEC  
RTR5  
0
RTR4  
0
RTR3  
0
RTR2  
RTR1  
W
R
WCOP  
0
RSBCK  
0
CR2  
0
CR1  
0
CR0  
0
W
R
0
0
0
0
W
R
Reserved For Factory Test  
0
0
0
0
0
0
W
R
Reserved For Factory Test  
0
0
6
0
5
0
4
0
3
0
2
0
1
0
ARMCOP  
W
Bit 7  
Bit 0  
MC9S12XDP512 Data Sheet, Rev. 2.11  
36  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x0040–0x007F Enhanced Capture Timer 16-Bit 8-Channels (ECT) Map (Sheet 1 of 3)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0x0040  
TIOS  
IOS7  
IOS6  
IOS5  
IOS4  
IOS3  
IOS2  
IOS1  
IOS0  
0
0
0
0
0
0
0
0
0x0041  
0x0042  
0x0043  
0x0044  
0x0045  
0x0046  
0x0047  
0x0048  
0x0049  
0x004A  
0x004B  
0x004C  
0x004D  
0x004E  
0x004F  
0x0050  
0x0051  
0x0052  
0x0053  
0x0054  
0x0055  
CFORC  
OC7M  
W
R
FOC7  
FOC6  
FOC5  
FOC4  
FOC3  
FOC2  
FOC1  
FOC0  
OC7M7  
OC7M6  
OC7M5  
OC7M4  
OC7M3  
OC7M2  
OC7M1  
OC7M0  
W
R
OC7D  
OC7D7  
Bit 15  
OC7D6  
14  
OC7D5  
13  
OC7D4  
12  
OC7D3  
11  
OC7D2  
10  
OC7D1  
9
OC7D0  
Bit 8  
W
R
TCNT (hi)  
TCNT (lo)  
TSCR1  
TTOV  
W
R
Bit 7  
6
5
4
3
2
0
1
0
Bit 0  
0
W
R
TEN  
TOV7  
OM7  
OM3  
EDG7B  
EDG3B  
C7I  
TSWAI  
TOV6  
OL7  
TSFRZ  
TOV5  
TFFCA  
TOV4  
OL6  
PRNT  
TOV3  
OM5  
W
R
TOV2  
OL5  
TOV1  
OM4  
TOV0  
OL4  
W
R
TCTL1  
TCTL2  
TCTL3  
TCTL4  
TIE  
OM6  
W
R
OL3  
OM2  
OL2  
OM1  
OL1  
OM0  
OL0  
W
R
EDG7A  
EDG3A  
EDG6B  
EDG2B  
EDG6A  
EDG2A  
EDG5B  
EDG1B  
C3I  
EDG5A  
EDG1A  
C2I  
EDG4B  
EDG0B  
C1I  
EDG4A  
EDG0A  
C0I  
W
R
W
R
C6I  
0
C5I  
0
C4I  
0
W
R
TSCR2  
TFLG1  
TFLG2  
TC0 (hi)  
TC0 (lo)  
TC1 (hi)  
TC1 (lo)  
TC2 (hi)  
TC2 (lo)  
TOI  
TCRE  
PR2  
PR1  
PR0  
W
R
C7F  
C6F  
0
C5F  
0
C4F  
0
C3F  
0
C2F  
0
C1F  
0
C0F  
0
W
R
TOF  
W
R
Bit 15  
Bit 7  
14  
6
13  
5
12  
4
11  
3
10  
2
9
1
9
1
9
1
Bit 8  
Bit 0  
Bit 8  
Bit 0  
Bit 8  
Bit 0  
W
R
W
R
Bit 15  
Bit 7  
14  
6
13  
5
12  
4
11  
3
10  
2
W
R
W
R
Bit 15  
Bit 7  
14  
6
13  
5
12  
4
11  
3
10  
2
W
R
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
37  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x0040–0x007F Enhanced Capture Timer 16-Bit 8-Channels (ECT) Map (Sheet 2 of 3)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0x0056  
TC3 (hi)  
Bit 15  
14  
13  
12  
11  
10  
9
Bit 8  
0x0057  
0x0058  
0x0059  
0x005A  
0x005B  
0x005C  
0x005D  
0x005E  
0x005F  
0x0060  
0x0061  
0x0062  
0x0063  
0x0064  
0x0065  
0x0066  
0x0067  
0x0068  
0x0069  
0x006A  
0x006B  
0x006C  
TC3 (lo)  
TC4 (hi)  
TC4 (lo)  
TC5 (hi)  
TC5 (lo)  
TC6 (hi)  
TC6 (lo)  
TC7 (hi)  
TC7 (lo)  
PACTL  
Bit 7  
Bit 15  
Bit 7  
6
14  
6
5
13  
5
4
12  
4
3
11  
3
2
10  
2
1
Bit 0  
Bit 8  
Bit 0  
Bit 8  
Bit 0  
Bit 8  
Bit 0  
Bit 8  
Bit 0  
PAI  
W
R
9
W
R
1
W
R
Bit 15  
Bit 7  
14  
6
13  
5
12  
4
11  
3
10  
2
9
W
R
1
W
R
Bit 15  
Bit 7  
14  
6
13  
5
12  
4
11  
3
10  
2
9
W
R
1
W
R
Bit 15  
14  
6
13  
5
12  
4
11  
3
10  
2
9
W
R
Bit 7  
0
1
W
R
PAEN  
0
PAMOD  
0
PEDGE  
0
CLK1  
0
CLK0  
0
PAOVI  
W
R
0
PAFLG  
PAOVF  
PAIF  
Bit 0  
Bit 0  
Bit 0  
Bit 0  
W
R
PACN3 (hi)  
PACN2 (lo)  
PACN1 (hi)  
PACN0 (lo)  
MCCTL  
MCFLG  
ICPAR  
Bit 7  
Bit 7  
Bit 7  
Bit 7  
MCZI  
6
6
6
6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
1
1
1
1
W
R
W
R
W
R
W
R
0
ICLAT  
0
0
MODMC  
0
RDMCL  
0
MCEN  
POLF2  
MCPR1  
POLF1  
MCPR0  
POLF0  
W
R
FLMC  
POLF3  
MCZF  
0
W
R
0
0
0
PA3EN  
DLY3  
PA2EN  
DLY2  
PA1EN  
DLY1  
PA0EN  
DLY0  
W
R
DLYCT  
DLY7  
DLY6  
DLY5  
DLY4  
W
R
ICOVW  
NOVW7  
NOVW6  
NOVW5  
NOVW4  
NOVW3  
NOVW2  
NOVW1  
NOVW0  
W
R
ICSYS  
SH37  
0
SH26  
0
SH15  
0
SH04  
0
TFMOD  
0
PACMX  
0
BUFEN  
0
LATQ  
0
W
R
Reserved  
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
38  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x0040–0x007F Enhanced Capture Timer 16-Bit 8-Channels (ECT) Map (Sheet 3 of 3)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0
0
0
0
0
0
0
0
0x006D  
TIMTST  
Reserved For Factory Test  
0x006E  
0x006F  
0x0070  
0x0071  
0x0072  
0x0073  
0x0074  
0x0075  
0x0076  
0x0077  
0x0078  
0x0079  
0x007A  
0x007B  
0x007C  
0x007D  
0x007E  
0x007F  
PTPSR  
PTMCPSR  
PBCTL  
PTPS7  
PTPS6  
PTPS5  
PTPS4 PTPS3  
PTPS2  
PTPS1  
PTPS0  
W
R
PTMPS7 PTMPS6 PTMPS5 PTMPS4 PTMPS3 PTMPS2 PTMPS1 PTMPS0  
W
R
0
0
0
0
0
0
PBEN  
0
PBOVI  
W
R
0
0
0
0
0
0
PBFLG  
PBOVF  
PA3H1  
W
R
PA3H7  
PA2H7  
PA1H7  
PA0H7  
PA3H6  
PA2H6  
PA1H6  
PA0H6  
PA3H5  
PA2H5  
PA1H5  
PA0H5  
PA3H4  
PA2H4  
PA1H4  
PA0H4  
PA3H3  
PA2H3  
PA1H3  
PA0H3  
PA3H2  
PA2H2  
PA1H2  
PA0H2  
PA3H0  
PA2H0  
PA1H 0  
PA0H0  
PA3H  
W
R
PA2H1  
PA1H1  
PA0H1  
PA2H  
W
R
PA1H  
W
R
PA0H  
W
R
MCCNT (hi)  
MCCNT (lo)  
TC0H (hi)  
TC0H (lo)  
TC1H (hi)  
TC1H (lo)  
TC2H (hi)  
TC2H (lo)  
TC3H (hi)  
TC3H (lo)  
Bit 15  
14  
13  
12  
11  
10  
9
Bit 8  
W
R
Bit 7  
6
5
4
3
2
1
9
Bit 0  
Bit 8  
W
R
Bit 15  
14  
13  
12  
11  
10  
W
R
Bit 7  
Bit 15  
Bit 7  
6
14  
6
5
13  
5
4
12  
4
3
11  
3
2
10  
2
1
9
1
9
1
9
1
Bit 0  
Bit 8  
Bit 0  
Bit 8  
Bit 0  
Bit 8  
Bit 0  
W
R
W
R
W
R
Bit 15  
Bit 7  
14  
6
13  
5
12  
4
11  
3
10  
2
W
R
W
R
Bit 15  
Bit 7  
14  
6
13  
5
12  
4
11  
3
10  
2
W
R
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
39  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x0080–0x00AF Analog-to-Digital Converter 10-bit 16-Channels (ATD1) Map (Sheet 1 of  
3)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0
0
0
0
0x0080  
ATD1CTL0  
WRAP3  
WRAP2  
WRAP1  
WRAP0  
0
0
0
ETRIG  
SEL  
ETRIG  
CH3  
ETRIG  
CH2  
ETRIG  
CH1  
ETRIG  
CH0  
0x0081  
0x0082  
0x0083  
0x0084  
0x0085  
0x0086  
0x0087  
ATD1CTL1  
ATD1CTL2  
ATD1CTL3  
ATD1CTL4  
ATD1CTL5  
ATD1STAT0  
Reserved  
W
R
ASCIF  
ADPU  
0
AFFC  
S8C  
AWAI  
S4C  
ETRIGLE ETRIGP  
ETRIGE  
FIFO  
ASCIE  
FRZ1  
PRS1  
W
R
S2C  
PRS4  
MULT  
S1C  
FRZ0  
PRS0  
W
R
SRES8  
DJM  
SMP1  
SMP0  
SCAN  
PRS3  
PRS2  
W
R
DSGN  
0
CD  
CC  
CB  
CA  
W
R
CC3  
CC2  
CC1  
CC0  
SCF  
0
ETORF  
0
FIFOR  
0
W
R
0
U
0
0
U
0
U
0
U
W
R
U
0
U
0
U
U
0x0088 ATD1TEST0  
0x0089 ATD1TEST1  
0x008A ATD1STAT2  
0x008B ATD1STAT1  
0x008C ATD1DIEN0  
W
R
Reserved For Factory Test  
0
0
0
0
0
0
W
R
Reserved For Factory Test  
CCF15  
CCF7  
CCF14  
CCF6  
CCF13  
CCF5  
CCF12  
CCF11  
CCF10  
CCF2  
CCF9  
CCF1  
CCF8  
CCF0  
W
R
CCF4  
CCF3  
W
R
IEN15  
IEN14  
IEN13  
IEN12  
IEN11  
IEN10  
IEN9  
IEN8  
W
R
0x008D  
ATD1DIEN  
IEN7  
IEN6  
IEN5  
IEN4  
IEN3  
IEN2  
IEN1  
IEN0  
W
R
PTAD15  
PTAD14  
PTAD13  
PTAD12  
PTAD11  
PTAD10  
PTAD9  
PTAD8  
0x008E ATD1PTAD0  
0x008F ATD1PTAD1  
W
R
PTAD7  
Bit15  
Bit7  
PTAD6  
14  
PTAD5  
PTAD4  
PTAD3  
PTAD2  
PTAD1  
PTAD0  
Bit8  
0
W
R
13  
0
12  
0
11  
0
10  
0
9
0
9
0
9
0
0x0090  
0x0091  
0x0092  
0x0093  
0x0094  
0x0095  
ATD1DR0H  
ATD1DR0L  
ATD1DR1H  
ATD1DR1L  
ATD1DR2H  
ATD1DR2L  
W
R
Bit6  
14  
W
R
Bit15  
Bit7  
13  
0
12  
0
11  
0
10  
0
Bit8  
0
W
R
Bit6  
14  
W
R
Bit15  
Bit7  
13  
0
12  
0
11  
0
10  
0
Bit8  
0
W
R
Bit6  
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
40  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x0080–0x00AF Analog-to-Digital Converter 10-bit 16-Channels (ATD1) Map (Sheet 2 of  
3)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
Bit15  
14  
13  
12  
11  
10  
9
Bit8  
0x0096  
ATD1DR3H  
Bit7  
Bit15  
Bit7  
Bit6  
14  
0
13  
0
0
12  
0
0
11  
0
0
10  
0
0
9
0
9
0
9
0
9
0
9
0
9
0
9
0
9
0
9
0
9
0
0
Bit8  
0
0x0097  
0x0098  
0x0099  
0x009A  
0x009B  
0x009C  
0x009D  
0x009E  
0x009F  
0x00A0  
0x00A1  
0x00A2  
0x00A3  
ATD1DR3L  
ATD1DR4H  
ATD1DR4L  
ATD1DR5H  
ATD1DR5L  
ATD1DR6H  
ATD1DR6L  
ATD1DR7H  
ATD1DR7L  
ATD1DR8H  
ATD1DR8L  
ATD1DR9H  
ATD1DR9L  
W
R
W
R
Bit6  
14  
W
R
Bit15  
Bit7  
13  
0
12  
0
11  
0
10  
0
Bit8  
0
W
R
Bit6  
14  
W
R
Bit15  
Bit7  
13  
0
12  
0
11  
0
10  
0
Bit8  
0
W
R
Bit6  
14  
W
R
Bit15  
Bit7  
13  
0
12  
0
11  
0
10  
0
Bit8  
0
W
R
Bit6  
14  
W
R
Bit15  
Bit7  
13  
0
12  
0
11  
0
10  
0
Bit8  
0
W
R
Bit6  
14  
W
R
Bit15  
Bit7  
13  
0
12  
0
11  
0
10  
0
Bit8  
0
W
R
Bit6  
14  
W
R
Bit15  
Bit7  
13  
0
12  
0
11  
0
10  
0
Bit8  
0
0x00A4 ATD1DR10H  
0x00A5 ATD1DR10L  
0x00A6 ATD1DR11H  
0x00A7 ATD1DR11L  
0x00A8 ATD1DR12H  
0x00A9 ATD1DR12L  
0x00AA ATD1DR13H  
0x00AB ATD1DR13L  
W
R
Bit6  
14  
W
R
Bit15  
Bit7  
13  
0
12  
0
11  
0
10  
0
Bit8  
0
W
R
Bit6  
14  
W
R
Bit15  
Bit7  
13  
0
12  
0
11  
0
10  
0
Bit8  
0
W
R
Bit6  
14  
W
R
Bit15  
Bit7  
13  
0
12  
0
11  
0
10  
0
Bit8  
0
W
R
Bit6  
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
41  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x0080–0x00AF Analog-to-Digital Converter 10-bit 16-Channels (ATD1) Map (Sheet 3 of  
3)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
Bit15  
14  
13  
12  
11  
10  
9
Bit8  
0x00AC ATD1DR14H  
0x00AD ATD1DR14L  
0x00AE ATD1DR15H  
0x00AF ATD1DR15L  
Bit7  
Bit15  
Bit7  
Bit6  
14  
0
13  
0
0
12  
0
0
11  
0
0
10  
0
0
9
0
0
Bit8  
0
W
R
W
R
Bit6  
W
0x00B0–0x00B7 Inter IC Bus (IIC1) Map  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0
0x00B0  
IBAD  
ADR7  
ADR6  
ADR5  
ADR4  
ADR3  
ADR2  
ADR1  
0x00B1  
0x00B2  
0x00B3  
0x00B4  
0x00B5  
0x00B6  
0x00B7  
IBFD  
IBCR  
IBC7  
IBC6  
IBC5  
IBC4  
TX/RX  
IBAL  
IBC3  
IBC2  
IBC1  
0
IBC0  
W
R
0
IBEN  
TCF  
IBIE  
MS/SL  
IBB  
TXAK  
0
IBSWAI  
RXAK  
W
R
RSTA  
SRW  
IAAS  
IBSR  
IBIF  
W
R
IBDR  
D7  
0
D6  
0
D5  
0
D4  
0
D3  
0
D2  
0
D1  
0
D 0  
0
W
R
Reserved  
Reserved  
Reserved  
W
R
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
W
R
W
0x00B8–0x00BF Asynchronous Serial Interface (SCI2) Map  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
1
0x00B8  
SCI2BDH  
IREN  
TNP1  
TNP0  
SBR12  
SBR11  
SBR10  
SBR9  
SBR8  
1
0x00B9  
0x00BA  
SCI2BDL  
SBR7  
LOOPS  
SBR6  
SBR5  
SBR4  
SBR3  
SBR2  
ILT  
SBR1  
PE  
SBR0  
PT  
W
R
1
SCI2CR1  
SCISWAI  
0
RSRC  
0
M
0
WAKE  
0
W
R
2
2
2
0x00B8 SCI2ASR1  
0x00B9 SCI2ACR1  
0x00BA SCI2ACR2  
RXEDGIF  
BERRV  
0
BERRIF  
BERRIE  
BKDIF  
BKDIE  
BKDFE  
W
R
0
0
0
0
0
0
0
0
RXEDGIE  
0
W
R
BERRM1 BERRM0  
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
42  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x00B8–0x00BF Asynchronous Serial Interface (SCI2) Map (continued)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0x00BB  
SCI2CR2  
TIE  
TCIE  
TC  
RIE  
ILIE  
TE  
RE  
NF  
RWU  
FE  
SBK  
PF  
TDRE  
RDRF  
IDLE  
OR  
0x00BC  
0x00BD  
0x00BE  
0x00BF  
SCI2SR1  
SCI2SR2  
SCI2DRH  
SCI2DRL  
W
R
0
0
0
RAF  
0
AMAP  
R8  
TXPOL  
0
RXPOL  
0
BRK13  
0
TXDIR  
0
W
R
T8  
W
R
R7  
T7  
R6  
T6  
R5  
T5  
R4  
T4  
R3  
T3  
R2  
T2  
R1  
T1  
R0  
T0  
W
1
Those registers are accessible if the AMAP bit in the SCI2SR2 register is set to zero  
Those registers are accessible if the AMAP bit in the SCI2SR2 register is set to one  
2
0x00C0–0x00C7 Asynchronous Serial Interface (SCI3) Map  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
1
0x00C0  
SCI3BDH  
IREN  
TNP1  
TNP0  
SBR12  
SBR11  
SBR10  
SBR9  
SBR8  
1
0x00C1  
0x00C2  
SCI3BDL  
SBR7  
LOOPS  
SBR6  
SBR5  
SBR4  
SBR3  
SBR2  
ILT  
SBR1  
PE  
SBR0  
PT  
W
R
1
SCI3CR1  
SCISWAI  
0
RSRC  
0
M
0
WAKE  
0
W
R
2
2
2
0x00C0 SCI3ASR1  
0x00C1 SCI3ACR1  
0x00C2 SCI3ACR2  
RXEDGIF  
BERRV  
0
BERRIF  
BERRIE  
BKDIF  
BKDIE  
BKDFE  
W
R
0
0
0
0
0
0
0
0
RXEDGIE  
0
W
R
BERRM1 BERRM0  
W
R
0x00C3  
0x00C4  
0x00C5  
0x00C6  
0x00C7  
SCI3CR2  
SCI3SR1  
SCI3SR2  
SCI3DRH  
SCI3DRL  
TIE  
TCIE  
TC  
RIE  
ILIE  
TE  
RE  
NF  
RWU  
FE  
SBK  
PF  
W
R
TDRE  
RDRF  
IDLE  
OR  
W
R
0
0
0
RAF  
0
AMAP  
R8  
TXPOL  
0
RXPOL  
0
BRK13  
0
TXDIR  
0
W
R
T8  
W
R
R7  
T7  
R6  
T6  
R5  
T5  
R4  
T4  
R3  
T3  
R2  
T2  
R1  
T1  
R0  
T0  
W
1
2
Those registers are accessible if the AMAP bit in the SCI3SR2 register is set to zero  
Those registers are accessible if the AMAP bit in the SCI3SR2 register is set to one  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
43  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x00C8–0x00CF Asynchronous Serial Interface (SCI0) Map  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
1
0x00C8  
SCI0BDH  
IREN  
TNP1  
TNP0  
SBR12  
SBR11  
SBR10  
SBR9  
SBR8  
1
0x00C9  
0x00CA  
SCI0BDL  
SBR7  
LOOPS  
SBR6  
SBR5  
SBR4  
SBR3  
SBR2  
ILT  
SBR1  
PE  
SBR0  
PT  
W
R
1
SCI0CR1  
SCISWAI  
0
RSRC  
0
M
0
WAKE  
0
W
R
2
2
2
0x00C8 SCI0ASR1  
0x00C9 SCI0ACR1  
0x00CA SCI0ACR2  
RXEDGIF  
BERRV  
0
BERRIF  
BERRIE  
BKDIF  
BKDIE  
BKDFE  
W
R
0
0
0
0
0
0
0
0
RXEDGIE  
0
W
R
BERRM1 BERRM0  
W
R
0x00CB  
0x00CC  
0x00CD  
0x00CE  
0x00CF  
SCI0CR2  
SCI0SR1  
SCI0SR2  
SCI0DRH  
SCI0DRL  
TIE  
TCIE  
TC  
RIE  
ILIE  
TE  
RE  
NF  
RWU  
FE  
SBK  
PF  
W
R
TDRE  
RDRF  
IDLE  
OR  
W
R
0
0
0
RAF  
0
AMAP  
R8  
TXPOL  
0
RXPOL  
0
BRK13  
0
TXDIR  
0
W
R
T8  
W
R
R7  
T7  
R6  
T6  
R5  
T5  
R4  
T4  
R3  
T3  
R2  
T2  
R1  
T1  
R0  
T0  
W
1
2
Those registers are accessible if the AMAP bit in the SCI0SR2 register is set to zero  
Those registers are accessible if the AMAP bit in the SCI0SR2 register is set to one  
0x00D0–0x00D7 Asynchronous Serial Interface (SCI1) Map  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
1
0x00D0  
SCI1BDH  
IREN  
TNP1  
TNP0  
SBR12  
SBR11  
SBR10  
SBR9  
SBR8  
1
0x00D1  
0x00D2  
SCI1BDL  
SBR7  
LOOPS  
SBR6  
SBR5  
SBR4  
SBR3  
SBR2  
ILT  
SBR1  
PE  
SBR0  
PT  
W
R
1
SCI1CR1  
SCISWAI  
0
RSRC  
0
M
0
WAKE  
0
W
R
2
2
2
0x00D0 SCI1ASR1  
0x00D1 SCI1ACR1  
0x00D2 SCI1ACR2  
RXEDGIF  
BERRV  
0
BERRIF  
BERRIE  
BKDIF  
BKDIE  
BKDFE  
W
R
0
0
0
0
0
0
0
0
RXEDGIE  
0
W
R
BERRM1 BERRM0  
W
R
0x00D3  
0x00D4  
SCI1CR2  
SCI1SR1  
TIE  
TCIE  
TC  
RIE  
ILIE  
TE  
RE  
NF  
RWU  
FE  
SBK  
PF  
W
R
TDRE  
RDRF  
IDLE  
OR  
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
44  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x00D0–0x00D7 Asynchronous Serial Interface (SCI1) Map (continued)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0
0
RAF  
0x00D5  
SCI1SR2  
AMAP  
R8  
TXPOL  
0
RXPOL  
0
BRK13  
0
TXDIR  
0
0
0
0x00D6  
0x00D7  
SCI1DRH  
SCI1DRL  
T8  
W
R
R7  
T7  
R6  
T6  
R5  
T5  
R4  
T4  
R3  
T3  
R2  
T2  
R1  
T1  
R0  
T0  
W
1
Those registers are accessible if the AMAP bit in the SCI1SR2 register is set to zero  
Those registers are accessible if the AMAP bit in the SCI1SR2 register is set to one  
2
0x00D8–0x00DF Serial Peripheral Interface (SPI0) Map  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0x00D8  
SPI0CR1  
SPIE  
0
SPE  
0
SPTIE  
0
MSTR  
CPOL  
CPHA  
0
SSOE  
LSBFE  
0x00D9  
0x00DA  
0x00DB  
0x00DC  
0x00DD  
0x00DE  
0x00DF  
SPI0CR2  
SPI0BR  
MODFEN BIDIROE  
SPISWAI  
SPC0  
W
R
0
SPIF  
0
0
SPPR2  
0
SPPR1  
SPTEF  
SPPR0  
SPR2  
0
SPR1  
0
SPR0  
0
W
R
MODF  
0
0
0
SPI0SR  
W
R
0
0
0
0
0
Reserved  
SPI0DR  
Reserved  
Reserved  
W
R
Bit7  
0
6
0
5
0
4
0
3
0
2
0
1
0
Bit0  
0
W
R
W
R
0
0
0
0
0
0
0
0
W
0x00E0–0x00E7 Inter IC Bus (IIC0) Map  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0
0x00E0  
IBAD  
ADR7  
ADR6  
ADR5  
ADR4  
ADR3  
ADR2  
ADR1  
0x00E1  
0x00E2  
0x00E3  
0x00E4  
IBFD  
IBCR  
IBSR  
IBDR  
IBC7  
IBC6  
IBC5  
IBC4  
TX/RX  
IBAL  
D4  
IBC3  
IBC2  
IBC1  
0
IBC0  
W
R
0
IBEN  
TCF  
IBIE  
MS/SL  
IBB  
TXAK  
0
IBSWAI  
RXAK  
W
R
RSTA  
SRW  
IAAS  
IBIF  
D1  
W
R
D7  
D6  
D5  
D3  
D2  
D 0  
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
45  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x00E0–0x00E7 Inter IC Bus (IIC0) Map (continued)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0
0
0
0
0
0
0
0
0x00E5  
Reserved  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0x00E6  
0x00E7  
Reserved  
Reserved  
W
R
W
0x00E8–0x00EF Reserved  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0
0
0
0
0
0
0
0
0x00E8  
Reserved  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0x00E9  
0x00EA  
0x00EB  
0x00EC  
0x00ED  
0x00EE  
0x00EF  
Reserved  
Reserved  
Reserved  
Reserved  
Reserved  
Reserved  
Reserved  
W
R
W
R
W
R
W
R
W
R
W
R
W
0x00F0–0x00F7 Serial Peripheral Interface (SPI1) Map  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0x00F0  
SPI1CR1  
SPIE  
0
SPE  
0
SPTIE  
0
MSTR  
CPOL  
CPHA  
0
SSOE  
LSBFE  
0x00F1  
0x00F2  
0x00F3  
0x00F4  
0x00F5  
0x00F6  
0x00F7  
SPI1CR2  
SPI1BR  
MODFEN BIDIROE  
SPISWAI  
SPC0  
W
R
0
SPIF  
0
0
SPPR2  
0
SPPR1  
SPTEF  
SPPR0  
SPR2  
0
SPR1  
0
SPR0  
0
W
R
MODF  
0
0
0
SPI1SR  
W
R
0
0
0
0
0
Reserved  
SPI1DR  
Reserved  
Reserved  
W
R
Bit7  
0
6
0
5
0
4
0
3
0
2
0
1
0
Bit0  
0
W
R
W
R
0
0
0
0
0
0
0
0
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
46  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x00F8–0x00FF Serial Peripheral Interface (SPI2) Map  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0x00F8  
SPI2CR1  
SPIE  
0
SPE  
0
SPTIE  
0
MSTR  
CPOL  
CPHA  
0
SSOE  
LSBFE  
0x00F9  
0x00FA  
0x00FB  
0x00FC  
0x00FD  
0x00FE  
0x00FF  
SPI2CR2  
SPI2BR  
MODFEN BIDIROE  
SPISWAI  
SPC0  
W
R
0
SPIF  
0
0
SPPR2  
0
SPPR1  
SPTEF  
SPPR0  
SPR2  
0
SPR1  
0
SPR0  
0
W
R
MODF  
0
0
0
SPI2SR  
W
R
0
0
0
0
0
Reserved  
SPI2DR  
Reserved  
Reserved  
W
R
Bit7  
0
6
0
5
0
4
0
3
0
2
0
1
0
Bit0  
0
W
R
W
R
0
0
0
0
0
0
0
0
W
0x0100–0x010F Flash Control Register (FTX512K4) Map  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
FDIVLD  
0x0100  
FCLKDIV  
PRDIV8  
FDIV5  
RNV5  
FDIV4  
RNV4  
FDIV3  
RNV3  
FDIV2  
RNV2  
FDIV1  
SEC1  
FDIV0  
SEC0  
KEYEN1 KEYEN0  
0x0101  
0x0102  
0x0103  
0x0104  
0x0105  
0x0106  
0x0107  
0x0108  
0x0109  
0x010A  
0x010B  
FSEC  
FTSTMOD  
FCNFG  
FPROT  
W
R
0
0
0
0
0
0
0
0
0
MRDS  
WRALL  
0
W
R
CBEIE  
CCIE  
KEYACC  
FPHDIS  
PVIOL  
W
R
RNV6  
FPOPEN  
FPHS1  
FPHS0  
0
FPLDIS  
BLANK  
FPLS1  
0
FPLS0  
0
W
R
CCIF  
NV6  
FSTAT  
CBEIF  
0
ACCERR  
W
R
FCMD  
CMDB[6:0]  
NV3  
W
R
NV7  
NV5  
NV4  
NV2  
NV1  
NV0  
FCTL  
W
R
FADDRHI  
FADDRHI  
FADDRLO  
FDATAHI  
FDATALO  
W
R
FADDRLO  
FDATAHI  
FDATALO  
W
R
W
R
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
47  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x0100–0x010F Flash Control Register (FTX512K4) Map (continued)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0
0
0
0
0
0
0
0
0x010C  
Reserved  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0x010D  
0x010E  
0x010F  
Reserved  
Reserved  
Reserved  
W
R
W
R
W
0x0110–0x011B EEPROM Control Register (EETX4K) Map  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
EDIVLD  
0x0110  
ECLKDIV  
PRDIV8  
0
EDIV5  
0
EDIV4  
0
EDIV3  
0
EDIV2  
0
EDIV1  
0
EDIV0  
0
0
0
0x0111  
0x0112  
0x0113  
0x0114  
0x0115  
0x0116  
0x0117  
0x0118  
0x0119  
0x011A  
0x011B  
Reserved  
Reserved  
ECNFG  
W
R
0
0
0
0
0
0
0
0
0
0
0
0
0
W
R
CBEIE  
CCIE  
W
R
RNV6  
RNV5  
RNV4  
EPROT  
EPOPEN  
EPDIS  
0
EPS2  
EPS1  
0
EPS0  
0
W
R
CCIF  
BLANK  
ESTAT  
CBEIF  
0
PVIOL  
ACCERR  
W
R
ECMD  
CMDB[6:0]  
0
W
R
0
0
0
0
0
0
0
0
0
0
0
Reserved  
EADDRHI  
EADDRLO  
EDATAHI  
EDATALO  
W
R
0
EABHI  
W
R
EABLO  
W
R
EDHI  
W
R
EDLO  
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
48  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x011C–0x011F Memory Map Control (S12XMMC) Map 4 of 4  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0
0
0
0
0
0x011C  
RAMWPC  
RPWE  
1
AVIE  
AVIF  
0x011D  
0x011E  
0x011F  
RAMXGU  
RAMSHL  
RAMSHU  
XGU6  
SHL6  
SHU6  
XGU5  
SHL5  
SHU5  
XGU4  
SHL4  
SHU4  
XGU3  
SHL3  
SHU3  
XGU2  
SHL2  
SHU2  
XGU1  
SHL1  
SHU1  
XGU0  
SHL0  
SHU0  
W
R
1
1
W
R
W
0x0120–0x012F Interrupt Module (S12XINT) Map  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0
0
0
0
0
0
0
0
0x0120  
Reserved  
0x0121  
0x0122  
0x0123  
0x0124  
0x0125  
IVBR  
IVB_ADDR[7:0]  
W
R
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Reserved  
Reserved  
Reserved  
Reserved  
W
R
W
R
W
R
W
R
0x0126 INT_XGPRIO  
0x0127 INT_CFADDR  
0x0128 INT_CFDATA0  
0x0129 INT_CFDATA1  
0x012A INT_CFDATA2  
0x012B INT_CFDATA3  
0x012C INT_CFDATA4  
0x012D INT_CFDATA5  
0x012E INT_CFDATA6  
0x012F INT_CFDATA7  
XILVL[2:0]  
0
W
R
0
0
INT_CFADDR[7:4]  
W
R
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
RQST  
RQST  
RQST  
RQST  
RQST  
RQST  
RQST  
RQST  
PRIOLVL[2:0]  
PRIOLVL[2:0]  
PRIOLVL[2:0]  
PRIOLVL[2:0]  
PRIOLVL[2:0]  
PRIOLVL[2:0]  
PRIOLVL[2:0]  
PRIOLVL[2:0]  
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
49  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x00130–0x0137 Asynchronous Serial Interface (SCI4) Map  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
1
0x0130  
SCI4BDH  
IREN  
TNP1  
TNP0  
SBR12  
SBR11  
SBR10  
SBR9  
SBR8  
1
0x0131  
0x0132  
0x0130  
0x0131  
0x0132  
0x0133  
0x0134  
0x0135  
0x0136  
0x0137  
SCI4BDL  
SBR7  
LOOPS  
SBR6  
SBR5  
SBR4  
SBR3  
SBR2  
ILT  
SBR1  
PE  
SBR0  
PT  
W
R
1
SCI4CR1  
SCI4ASR1  
SCI4ACR1  
SCI4ACR2  
SCI4CR2  
SCI4SR1  
SCI4SR2  
SCI4DRH  
SCI4DRL  
SCISWAI  
0
RSRC  
0
M
0
WAKE  
0
W
R
2
2
2
RXEDGIF  
BERRV  
0
BERRIF  
BERRIE  
BKDIF  
BKDIE  
BKDFE  
W
R
0
0
0
0
0
0
0
0
RXEDGIE  
0
W
R
BERRM1 BERRM0  
W
R
TIE  
TCIE  
TC  
RIE  
ILIE  
TE  
RE  
NF  
RWU  
FE  
SBK  
PF  
W
R
TDRE  
RDRF  
IDLE  
OR  
W
R
0
0
0
RAF  
0
AMAP  
R8  
TXPOL  
0
RXPOL  
0
BRK13  
0
TXDIR  
0
W
R
T8  
W
R
R7  
T7  
R6  
T6  
R5  
T5  
R4  
T4  
R3  
T3  
R2  
T2  
R1  
T1  
R0  
T0  
W
1
Those registers are accessible if the AMAP bit in the SCI4SR2 register is set to zero  
Those registers are accessible if the AMAP bit in the SCI4SR2 register is set to one  
2
0x0138–0x013F Asynchronous Serial Interface (SCI5) Map  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
1
0x0138  
SCI5BDH  
IREN  
TNP1  
TNP0  
SBR12  
SBR11  
SBR10  
SBR9  
SBR8  
1
1
0x0139  
0x013A  
0x0138  
0x0139  
SCI5BDL  
SBR7  
LOOPS  
SBR6  
SBR5  
SBR4  
SBR3  
SBR2  
ILT  
SBR1  
PE  
SBR0  
PT  
W
R
SCI5CR1  
SCI5ASR1  
SCI5ACR1  
SCISWAI  
0
RSRC  
0
M
0
WAKE  
0
W
R
2
2
2
RXEDGIF  
BERRV  
0
BERRIF  
BERRIE  
BKDIF  
BKDIE  
BKDFE  
W
R
0
0
0
0
0
0
0
0
RXEDGIE  
0
W
R
0x013A SCI5ACR2  
BERRM1 BERRM0  
W
R
0x013B  
0x013C  
SCI5CR2  
SCI5SR1  
TIE  
TCIE  
TC  
RIE  
ILIE  
TE  
RE  
NF  
RWU  
FE  
SBK  
PF  
W
R
TDRE  
RDRF  
IDLE  
OR  
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
50  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x0138–0x013F Asynchronous Serial Interface (SCI5) Map (continued)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0
0
RAF  
0x013D  
SCI5SR2  
AMAP  
R8  
TXPOL  
0
RXPOL  
0
BRK13  
0
TXDIR  
0
0
0
0x013E  
0x013F  
SCI5DRH  
SCI5DRL  
T8  
W
R
R7  
T7  
R6  
T6  
R5  
T5  
R4  
T4  
R3  
T3  
R2  
T2  
R1  
T1  
R0  
T0  
W
1
Those registers are accessible if the AMAP bit in the SCI5SR2 register is set to zero  
Those registers are accessible if the AMAP bit in the SCI5SR2 register is set to one  
2
0x0140–0x017F Freescale Scalable CAN — MSCAN (CAN0) Map  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
RXACT  
SYNCH  
0x0140  
CAN0CTL0  
RXFRM  
CSWAI  
TIME  
WUPE  
SLPRQ  
SLPAK  
INITRQ  
INITAK  
0x0141  
0x0142  
0x0143  
0x0144  
0x0145  
0x0146  
0x0147  
0x0148  
0x0149  
CAN0CTL1  
CAN0BTR0  
CAN0BTR1  
CAN0RFLG  
CAN0RIER  
CAN0TFLG  
CAN0TIER  
CAN0TARQ  
CAN0TAAK  
CANE  
SJW1  
SAMP  
WUPIF  
CLKSRC  
SJW0  
LOOPB  
BRP5  
LISTEN  
BRP4  
BORM  
BRP3  
WUPM  
BRP2  
W
R
BRP1  
TSEG11  
OVRIF  
OVRIE  
TXE1  
BRP0  
TSEG10  
RXF  
W
R
TSEG22  
CSCIF  
TSEG21  
RSTAT1  
TSEG20  
RSTAT0  
TSEG13  
TSTAT1  
TSEG12  
TSTAT0  
W
R
W
R
WUPIE  
0
CSCIE  
0
RSTATE1 RSTATE0 TSTATE1 TSTATE0  
RXFIE  
TXE0  
W
R
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
TXE2  
W
R
0
0
0
0
0
0
0
0
0
0
0
0
0
0
TXEIE2  
TXEIE1  
TXEIE0  
W
R
ABTRQ2 ABTRQ1 ABTRQ0  
W
R
ABTAK2  
ABTAK1  
ABTAK0  
W
R
0x014A CAN0TBSEL  
TX2  
TX1  
TX0  
W
R
IDHIT2  
IDHIT1  
IDHIT0  
0x014B  
0x014C  
0x014D  
CAN0IDAC  
Reserved  
IDAM1  
0
IDAM0  
0
W
R
0
0
0
0
0
W
R
0
0
CAN0MISC  
BOHOLD  
W
R
RXERR7 RXERR6 RXERR5 RXERR4 RXERR3 RXERR2 RXERR1 RXERR0  
TXERR7 TXERR6 TXERR5 TXERR4 TXERR3 TXERR2 TXERR1 TXERR0  
0x014E CAN0RXERR  
0x014F CAN0TXERR  
W
R
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
51  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x0140–0x017F Freescale Scalable CAN — MSCAN (CAN0) Map (continued)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0x0150– CAN0IDAR0–  
0x0153 CAN0IDAR3  
AC7  
AC6  
AC5  
AC4  
AC3  
AC2  
AC1  
AC0  
0x0154– CAN0IDMR0–  
0x0157 CAN0IDMR3  
AM7  
AC7  
AM6  
AC6  
AM5  
AC5  
AM4  
AC4  
AM3  
AC3  
AM2  
AC2  
AM1  
AC1  
AM0  
AC0  
W
R
0x0158– CAN0IDAR4–  
0x015B CAN0IDAR7  
W
R
0x015C  
CAN0IDMR4–  
AM7  
AM6  
AM5  
AM4  
AM3  
AM2  
AM1  
AM0  
W
CAN0IDMR7  
0x015F  
R
FOREGROUND RECEIVE BUFFER  
(See Detailed MSCAN Foreground Receive and Transmit Buffer Layout)  
0x0160–  
CAN0RXFG  
0x016F  
W
R
0x0170–  
CAN0TXFG  
0x017F  
FOREGROUND TRANSMIT BUFFER  
(See Detailed MSCAN Foreground Receive and Transmit Buffer Layout)  
W
Detailed MSCAN Foreground Receive and Transmit Buffer Layout  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
Extended ID  
R
R
ID28  
ID10  
ID27  
ID9  
ID26  
ID8  
ID25  
ID7  
ID24  
ID6  
ID23  
ID5  
ID22  
ID4  
ID21  
ID3  
0xXXX0 Standard ID  
CANxRIDR0  
W
R
Extended ID  
ID20  
ID2  
ID19  
ID1  
ID18  
ID0  
SRR=1  
RTR  
IDE=1  
IDE=0  
ID17  
ID9  
ID16  
ID8  
ID15  
ID7  
0xXXX1 Standard ID  
CANxRIDR1  
R
W
R
Extended ID  
ID14  
ID6  
ID13  
ID5  
ID12  
ID4  
ID11  
ID3  
ID10  
ID2  
0xXXX2 Standard ID  
CANxRIDR2  
R
W
R
Extended ID  
ID1  
ID0  
RTR  
0xXXX3 Standard ID  
CANxRIDR3  
R
W
R
0xXXX4  
DB7  
DB6  
DB5  
DB4  
DB3  
DB2  
DB1  
DB0  
CANxRDSR0–  
W
CANxRDSR7  
0xXXXB  
R
W
R
DLC3  
DLC2  
DLC1  
DLC0  
0xXXXC CANRxDLR  
0xXXXD  
Reserved  
W
R
TSR15  
TSR7  
TSR14  
TSR6  
TSR13  
TSR5  
TSR12  
TSR4  
TSR11  
TSR3  
TSR10  
TSR2  
TSR9  
TSR1  
TSR8  
TSR0  
0xXXXE CANxRTSRH  
W
R
0xXXXF CANxRTSRL  
Extended ID  
W
R
ID28  
ID10  
ID27  
ID9  
ID26  
ID8  
ID25  
ID7  
ID24  
ID6  
ID23  
ID5  
ID22  
ID4  
ID21  
ID3  
CANxTIDR0  
0xXX10  
W
R
Standard ID  
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
52  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
Detailed MSCAN Foreground Receive and Transmit Buffer Layout (continued)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
Extended ID  
CANxTIDR1  
Standard ID  
R
W
R
ID20  
ID19  
ID18  
SRR=1  
IDE=1  
ID17  
ID16  
ID15  
0xXX0x  
XX10  
ID2  
ID1  
ID0  
RTR  
ID11  
IDE=0  
ID10  
W
R
Extended ID  
CANxTIDR2  
Standard ID  
ID14  
ID13  
ID12  
ID9  
ID1  
ID8  
ID0  
ID7  
W
R
0xXX12  
0xXX13  
W
R
Extended ID  
CANxTIDR3  
Standard ID  
ID6  
ID5  
ID4  
ID3  
ID2  
RTR  
W
R
W
R
0xXX14  
0xXX1B  
CANxTDSR0–  
CANxTDSR7  
DB7  
DB6  
DB5  
DB4  
DB3  
DB2  
DB1  
DB0  
W
R
W
R
0xXX1C CANxTDLR  
0xXX1D CANxTTBPR  
0xXX1E CANxTTSRH  
0xXX1F CANxTTSRL  
DLC3  
DLC2  
DLC1  
DLC0  
PRIO7  
TSR15  
PRIO6  
TSR14  
PRIO5  
TSR13  
PRIO4  
TSR12  
PRIO3  
TSR11  
PRIO2  
TSR10  
PRIO1  
TSR9  
PRIO0  
TSR8  
W
R
W
R
TSR7  
TSR6  
TSR5  
TSR4  
TSR3  
TSR2  
TSR1  
TSR0  
W
0x0180–0x01BF Freescale Scalable CAN — MSCAN (CAN1) Map (Sheet 1 of 3)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
RXACT  
SYNCH  
0x0180  
CAN1CTL0  
RXFRM  
CSWAI  
TIME  
WUPE  
SLPRQ  
SLPAK  
INITRQ  
INITAK  
0x0181  
0x0182  
0x0183  
0x0184  
0x0185  
0x0186  
0x0187  
0x0188  
CAN1CTL1  
CAN1BTR0  
CAN1BTR1  
CAN1RFLG  
CAN1RIER  
CAN1TFLG  
CAN1TIER  
CAN1TARQ  
CANE  
SJW1  
SAMP  
WUPIF  
CLKSRC  
SJW0  
LOOPB  
BRP5  
LISTEN  
BRP4  
BORM  
BRP3  
WUPM  
BRP2  
W
R
BRP1  
TSEG11  
OVRIF  
OVRIE  
TXE1  
BRP0  
TSEG10  
RXF  
W
R
TSEG22  
CSCIF  
TSEG21  
RSTAT1  
TSEG20  
RSTAT0  
TSEG13  
TSTAT1  
TSEG12  
TSTAT0  
W
R
W
R
WUPIE  
0
CSCIE  
0
RSTATE1 RSTATE0 TSTATE1 TSTATE0  
RXFIE  
TXE0  
W
R
0
0
0
0
0
0
0
0
0
TXE2  
W
R
0
0
0
0
TXEIE2  
TXEIE1  
TXEIE0  
W
R
ABTRQ2 ABTRQ1 ABTRQ0  
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
53  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x0180–0x01BF Freescale Scalable CAN — MSCAN (CAN1) Map (Sheet 2 of 3)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0
0
0
0
0
ABTAK2  
ABTAK1  
ABTAK0  
0x0189  
CAN1TAAK  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0x018A CAN1TBSEL  
TX2  
TX1  
TX0  
W
R
IDHIT2  
IDHIT1  
IDHIT0  
0x018B  
0x018C  
0x018D  
CAN1IDAC  
Reserved  
IDAM1  
0
IDAM0  
0
W
R
0
0
0
0
0
W
R
0
0
CAN1MISC  
BOHOLD  
W
R
RXERR7 RXERR6 RXERR5 RXERR4 RXERR3 RXERR2 RXERR1 RXERR0  
TXERR7 TXERR6 TXERR5 TXERR4 TXERR3 TXERR2 TXERR1 TXERR0  
0x018E CAN1RXERR  
0x018F CAN1TXERR  
0x0190 CAN1IDAR0  
0x0191 CAN1IDAR1  
0x0192 CAN1IDAR2  
0x0193 CAN1IDAR3  
0x0194 CAN1IDMR0  
0x0195 CAN1IDMR1  
0x0196 CAN1IDMR2  
0x0197 CAN1IDMR3  
0x0198 CAN1IDAR4  
0x0199 CAN1IDAR5  
0x019A CAN1IDAR6  
0x019B CAN1IDAR7  
0x019C CAN1IDMR4  
0x019D CAN1IDMR5  
0x019E CAN1IDMR6  
W
R
W
R
AC7  
AC7  
AC7  
AC7  
AM7  
AM7  
AM7  
AM7  
AC7  
AC7  
AC7  
AC7  
AM7  
AM7  
AM7  
AC6  
AC6  
AC6  
AC6  
AM6  
AM6  
AM6  
AM6  
AC6  
AC6  
AC6  
AC6  
AM6  
AM6  
AM6  
AC5  
AC5  
AC5  
AC5  
AM5  
AM5  
AM5  
AM5  
AC5  
AC5  
AC5  
AC5  
AM5  
AM5  
AM5  
AC4  
AC4  
AC4  
AC4  
AM4  
AM4  
AM4  
AM4  
AC4  
AC4  
AC4  
AC4  
AM4  
AM4  
AM4  
AC3  
AC3  
AC3  
AC3  
AM3  
AM3  
AM3  
AM3  
AC3  
AC3  
AC3  
AC3  
AM3  
AM3  
AM3  
AC2  
AC2  
AC2  
AC2  
AM2  
AM2  
AM2  
AM2  
AC2  
AC2  
AC2  
AC2  
AM2  
AM2  
AM2  
AC1  
AC1  
AC1  
AC1  
AM1  
AM1  
AM1  
AM1  
AC1  
AC1  
AC1  
AC1  
AM1  
AM1  
AM1  
AC0  
AC0  
AC0  
AC0  
AM0  
AM0  
AM0  
AM0  
AC0  
AC0  
AC0  
AC0  
AM0  
AM0  
AM0  
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
54  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x0180–0x01BF Freescale Scalable CAN — MSCAN (CAN1) Map (Sheet 3 of 3)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0x019F CAN1IDMR7  
AM7  
AM6  
AM5  
AM4  
AM3  
AM2  
AM1  
AM0  
FOREGROUND RECEIVE BUFFER  
0x01A0–  
CAN1RXFG  
0x01AF  
(See Detailed MSCAN Foreground Receive and Transmit Buffer Layout)  
W
R
0x01B0–  
CAN1TXFG  
0x01BF  
FOREGROUND TRANSMIT BUFFER  
(See Detailed MSCAN Foreground Receive and Transmit Buffer Layout)  
W
0x01C0–0x01FF Freescale Scalable CAN — MSCAN (CAN2) Map  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
RXACT  
SYNCH  
0x01C0  
CAN2CTL0  
RXFRM  
CSWAI  
TIME  
WUPE  
SLPRQ  
SLPAK  
INITRQ  
INITAK  
0x01C1  
CAN2CTL1  
CANE  
SJW1  
SAMP  
WUPIF  
CLKSRC  
SJW0  
LOOPB  
BRP5  
LISTEN  
BRP4  
BORM  
BRP3  
WUPM  
BRP2  
W
R
0x01C2 CAN2BTR0  
0x01C3 CAN2BTR1  
0x01C4 CAN2RFLG  
BRP1  
TSEG11  
OVRIF  
OVRIE  
TXE1  
BRP0  
TSEG10  
RXF  
W
R
TSEG22  
CSCIF  
TSEG21  
RSTAT1  
TSEG20  
RSTAT0  
TSEG13  
TSTAT1  
TSEG12  
TSTAT0  
W
R
W
R
0x01C5  
0x01C6 CAN2TFLG  
0x01C7 CAN2TIER  
0x01C8 CAN2TARQ  
0x01C9 CAN2TAAK  
0x01CA CAN2TBSEL  
CAN2RIER  
WUPIE  
0
CSCIE  
0
RSTATE1 RSTATE0 TSTATE1 TSTATE0  
RXFIE  
TXE0  
W
R
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
TXE2  
W
R
0
0
0
0
0
0
0
0
0
0
0
0
0
0
TXEIE2  
TXEIE1  
TXEIE0  
W
R
ABTRQ2 ABTRQ1 ABTRQ0  
W
R
ABTAK2  
ABTAK1  
ABTAK0  
W
R
TX2  
TX1  
TX0  
W
R
IDHIT2  
IDHIT1  
IDHIT0  
0x01CB  
0x01CC  
CAN2IDAC  
Reserved  
IDAM1  
0
IDAM0  
0
W
R
0
0
0
0
0
W
R
0
0
0x01CD CAN2MISC  
0x01CE CAN2RXERR  
0x01CF CAN2TXERR  
0x01D0 CAN2IDAR0  
BOHOLD  
W
R
RXERR7 RXERR6 RXERR5 RXERR4 RXERR3 RXERR2 RXERR1 RXERR0  
TXERR7 TXERR6 TXERR5 TXERR4 TXERR3 TXERR2 TXERR1 TXERR0  
W
R
W
R
AC7  
AC6  
AC5  
AC4  
AC3  
AC2  
AC1  
AC0  
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
55  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x01C0–0x01FF Freescale Scalable CAN — MSCAN (CAN2) Map (continued)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0x01D1 CAN2IDAR1  
0x01D2 CAN2IDAR2  
0x01D3 CAN2IDAR3  
0x01D4 CAN2IDMR0  
0x01D5 CAN2IDMR1  
0x01D6 CAN2IDMR2  
0x01D7 CAN2IDMR3  
0x01D8 CAN2IDAR4  
0x01D9 CAN2IDAR5  
0x01DA CAN2IDAR6  
0x01DB CAN2IDAR7  
0x01DC CAN2IDMR4  
0x01DD CAN2IDMR5  
0x01DE CAN2IDMR6  
0x01DF CAN2IDMR7  
AC7  
AC6  
AC5  
AC4  
AC3  
AC2  
AC1  
AC0  
AC7  
AC7  
AM7  
AM7  
AM7  
AM7  
AC7  
AC7  
AC7  
AC7  
AM7  
AM7  
AM7  
AM7  
AC6  
AC6  
AM6  
AM6  
AM6  
AM6  
AC6  
AC6  
AC6  
AC6  
AM6  
AM6  
AM6  
AM6  
AC5  
AC5  
AM5  
AM5  
AM5  
AM5  
AC5  
AC5  
AC5  
AC5  
AM5  
AM5  
AM5  
AM5  
AC4  
AC4  
AM4  
AM4  
AM4  
AM4  
AC4  
AC4  
AC4  
AC4  
AM4  
AM4  
AM4  
AM4  
AC3  
AC3  
AM3  
AM3  
AM3  
AM3  
AC3  
AC3  
AC3  
AC3  
AM3  
AM3  
AM3  
AM3  
AC2  
AC2  
AM2  
AM2  
AM2  
AM2  
AC2  
AC2  
AC2  
AC2  
AM2  
AM2  
AM2  
AM2  
AC1  
AC1  
AM1  
AM1  
AM1  
AM1  
AC1  
AC1  
AC1  
AC1  
AM1  
AM1  
AM1  
AM1  
AC0  
AC0  
AM0  
AM0  
AM0  
AM0  
AC0  
AC0  
AC0  
AC0  
AM0  
AM0  
AM0  
AM0  
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
FOREGROUND RECEIVE BUFFER  
0x01E0–  
CAN2RXFG  
0x01EF  
(See Detailed MSCAN Foreground Receive and Transmit Buffer Layout)  
W
R
0x01F0–  
CAN2TXFG  
0x01FF  
FOREGROUND TRANSMIT BUFFER  
(See Detailed MSCAN Foreground Receive and Transmit Buffer Layout)  
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
56  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x0200–0x023F Freescale Scalable CAN — MSCAN (CAN3)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
RXACT  
SYNCH  
0x0200  
CAN3CTL0  
RXFRM  
CSWAI  
TIME  
WUPE  
SLPRQ  
SLPAK  
INITRQ  
INITAK  
0x0201  
0x0202  
0x0203  
0x0204  
0x0205  
0x0206  
0x0207  
0x0208  
0x0209  
CAN3CTL1  
CAN3BTR0  
CAN3BTR1  
CAN3RFLG  
CAN3RIER  
CAN3TFLG  
CAN3TIER  
CAN3TARQ  
CAN3TAAK  
CANE  
SJW1  
SAMP  
WUPIF  
CLKSRC  
SJW0  
LOOPB  
BRP5  
LISTEN  
BRP4  
BORM  
BRP3  
WUPM  
BRP2  
W
R
BRP1  
TSEG11  
OVRIF  
OVRIE  
TXE1  
BRP0  
TSEG10  
RXF  
W
R
TSEG22  
CSCIF  
TSEG21  
RSTAT1  
TSEG20  
RSTAT0  
TSEG13  
TSTAT1  
TSEG12  
TSTAT0  
W
R
W
R
WUPIE  
0
CSCIE  
0
RSTATE1 RSTATE0 TSTATE1 TSTATE0  
RXFIE  
TXE0  
W
R
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
TXE2  
W
R
0
0
0
0
0
0
0
0
0
0
0
0
0
0
TXEIE2  
TXEIE1  
TXEIE0  
W
R
ABTRQ2 ABTRQ1 ABTRQ0  
W
R
ABTAK2  
ABTAK1  
ABTAK0  
W
R
0x020A CAN3TBSEL  
TX2  
TX1  
TX0  
W
R
IDHIT2  
IDHIT1  
IDHIT0  
0x020B  
0x020C  
0x020D  
CAN3IDAC  
Reserved  
Reserved  
IDAM1  
0
IDAM0  
0
W
R
0
0
0
0
0
W
R
0
0
BOHOLD  
W
R
RXERR7 RXERR6 RXERR5 RXERR4 RXERR3 RXERR2 RXERR1 RXERR0  
TXERR7 TXERR6 TXERR5 TXERR4 TXERR3 TXERR2 TXERR1 TXERR0  
0x020E CAN3RXERR  
0x020F CAN3TXERR  
0x0210 CAN3IDAR0  
0x0211 CAN3IDAR1  
0x0212 CAN3IDAR2  
0x0213 CAN3IDAR3  
0x0214 CAN3IDMR0  
0x0215 CAN3IDMR1  
W
R
W
R
AC7  
AC7  
AC7  
AC7  
AM7  
AM7  
AC6  
AC6  
AC6  
AC6  
AM6  
AM6  
AC5  
AC5  
AC5  
AC5  
AM5  
AM5  
AC4  
AC4  
AC4  
AC4  
AM4  
AM4  
AC3  
AC3  
AC3  
AC3  
AM3  
AM3  
AC2  
AC2  
AC2  
AC2  
AM2  
AM2  
AC1  
AC1  
AC1  
AC1  
AM1  
AM1  
AC0  
AC0  
AC0  
AC0  
AM0  
AM0  
W
R
W
R
W
R
W
R
W
R
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
57  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x0200–0x023F Freescale Scalable CAN — MSCAN (CAN3) (continued)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0x0216 CAN3IDMR2  
0x0217 CAN3IDMR3  
0x0218 CAN3IDAR4  
0x0219 CAN3IDAR5  
0x021A CAN3IDAR6  
0x021B CAN3IDAR7  
0x021C CAN3IDMR4  
0x021D CAN3IDMR5  
0x021E CAN3IDMR6  
0x021F CAN3IDMR7  
AM7  
AM6  
AM5  
AM4  
AM3  
AM2  
AM1  
AM0  
AM7  
AC7  
AC7  
AC7  
AC7  
AM7  
AM7  
AM7  
AM7  
AM6  
AC6  
AC6  
AC6  
AC6  
AM6  
AM6  
AM6  
AM6  
AM5  
AC5  
AC5  
AC5  
AC5  
AM5  
AM5  
AM5  
AM5  
AM4  
AC4  
AC4  
AC4  
AC4  
AM4  
AM4  
AM4  
AM4  
AM3  
AC3  
AC3  
AC3  
AC3  
AM3  
AM3  
AM3  
AM3  
AM2  
AC2  
AC2  
AC2  
AC2  
AM2  
AM2  
AM2  
AM2  
AM1  
AC1  
AC1  
AC1  
AC1  
AM1  
AM1  
AM1  
AM1  
AM0  
AC0  
AC0  
AC0  
AC0  
AM0  
AM0  
AM0  
AM0  
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
FOREGROUND RECEIVE BUFFER  
0x0220–  
CAN3RXFG  
0x022F  
(See Detailed MSCAN Foreground Receive and Transmit Buffer Layout)  
W
R
0x0230–  
CAN3TXFG  
0x023F  
FOREGROUND TRANSMIT BUFFER  
(See Detailed MSCAN Foreground Receive and Transmit Buffer Layout)  
W
0x0240–0x027F Port Integration Module PIM_9DX (PIM) Map (Sheet 1 of 4)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
0x0240  
PTT  
PTT7  
PTT6  
PTT5  
PTT4  
PTT3  
PTT2  
PTT1  
PTT0  
PTIT7  
PTIT6  
PTIT5  
PTIT4  
PTIT3  
PTIT2  
PTIT1  
PTIT0  
0x0241  
0x0242  
0x0243  
0x0244  
0x0245  
0x0246  
0x0247  
PTIT  
DDRT  
DDRT7  
RDRT7  
PERT7  
DDRT7  
RDRT6  
PERT6  
DDRT5  
RDRT5  
PERT5  
DDRT4  
RDRT4  
PERT4  
DDRT3  
RDRT3  
PERT3  
DDRT2  
RDRT2  
PERT2  
DDRT1  
RDRT1  
PERT1  
DDRT0  
RDRT0  
PERT0  
RDRT  
PERT  
PPST  
PPST7  
0
PPST6  
0
PPST5  
0
PPST4  
0
PPST3  
0
PPST2  
0
PPST1  
0
PPST0  
0
Reserved  
Reserved  
0
0
0
0
0
0
0
0
MC9S12XDP512 Data Sheet, Rev. 2.11  
58  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x0240–0x027F Port Integration Module PIM_9DX (PIM) Map (Sheet 2 of 4)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
0x0248  
PTS  
PTS7  
PTS6  
PTS5  
PTS4  
PTS3  
PTS2  
PTS1  
PTS0  
PTIS7  
PTIS6  
PTIS5  
PTIS4  
PTIS3  
PTIS2  
PTIS1  
PTIS0  
0x0249  
0x024A  
0x024B  
0x024C  
0x024D  
0x024E  
0x024F  
0x0250  
0x0251  
0x0252  
0x0253  
0x0254  
0x0255  
0x0256  
0x0257  
0x0258  
0x0259  
0x025A  
0x025B  
0x025C  
0x025D  
0x025E  
0x025F  
PTIS  
DDRS  
RDRS  
PERS  
PPSS  
WOMS  
Reserved  
PTM  
DDRS7  
RDRS7  
PERS7  
PPSS7  
DDRS7  
RDRS6  
PERS6  
PPSS6  
DDRS5  
RDRS5  
PERS5  
PPSS5  
DDRS4  
RDRS4  
PERS4  
PPSS4  
DDRS3  
RDRS3  
PERS3  
PPSS3  
DDRS2  
RDRS2  
PERS2  
PPSS2  
DDRS1  
RDRS1  
PERS1  
PPSS1  
DDRS0  
RDRS0  
PERS0  
PPSS0  
WOMS7  
0
WOMS6  
0
WOMS5  
0
WOMS4  
0
WOMS3  
0
WOMS2  
0
WOMS1  
0
WOMS0  
0
PTM7  
PTM6  
PTM5  
PTM4  
PTM3  
PTM2  
PTM1  
PTM0  
PTIM7  
PTIM6  
PTIM5  
PTIM4  
PTIM3  
PTIM2  
PTIM1  
PTIM0  
PTIM  
DDRM  
RDRM  
PERM  
PPSM  
WOMM  
MODRR  
PTP  
DDRM7  
RDRM7  
PERM7  
PPSM7  
DDRM7  
RDRM6  
PERM6  
PPSM6  
DDRM5  
RDRM5  
PERM5  
PPSM5  
DDRM4  
RDRM4  
PERM4  
PPSM4  
DDRM3  
RDRM3  
PERM3  
PPSM3  
DDRM2  
RDRM2  
PERM2  
PPSM2  
DDRM1  
RDRM1  
PERM1  
PPSM1  
DDRM0  
RDRM0  
PERM0  
PPSM0  
WOMM7 WOMM6 WOMM5 WOMM4 WOMM3 WOMM2 WOMM1 WOMM0  
0
MODRR6 MODRR5 MODRR4 MODRR3 MODRR2 MODRR1 MODRR0  
PTP7  
PTP6  
PTP5  
PTP4  
PTP3  
PTP2  
PTP1  
PTP0  
PTIP7  
PTIP6  
PTIP5  
PTIP4  
PTIP3  
PTIP2  
PTIP1  
PTIP0  
PTIP  
DDRP  
RDRP  
PERP  
PPSP  
PIEP  
DDRP7  
RDRP7  
PERP7  
PPSP7  
PIEP7  
DDRP7  
RDRP6  
PERP6  
PPSP6  
PIEP6  
DDRP5  
RDRP5  
PERP5  
PPSP5  
PIEP5  
DDRP4  
RDRP4  
PERP4  
PPSP4  
PIEP4  
DDRP3  
RDRP3  
PERP3  
PPSP3  
PIEP3  
DDRP2  
RDRP2  
PERP2  
PPSP2  
PIEP2  
DDRP1  
RDRP1  
PERP1  
PPSP1  
PIEP1  
DDRP0  
RDRP0  
PERP0  
PPSS0  
PIEP0  
PIFP  
PIFP7  
PIFP6  
PIFP5  
PIFP4  
PIFP3  
PIFP2  
PIFP1  
PIFP0  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
59  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x0240–0x027F Port Integration Module PIM_9DX (PIM) Map (Sheet 3 of 4)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
0x0260  
PTH  
PTH7  
PTH6  
PTH5  
PTH4  
PTH3  
PTH2  
PTH1  
PTH0  
PTIH7  
PTIH6  
PTIH5  
PTIH4  
PTIH3  
PTIH2  
PTIH1  
PTIH0  
0x0261  
0x0262  
0x0263  
0x0264  
0x0265  
0x0266  
0x0267  
0x0268  
0x0269  
0x026A  
0x026B  
0x026C  
0x026D  
0x026E  
0x026F  
0x0270  
0x0271  
0x0272  
0x0273  
0x0274  
0x0275  
0x0276  
0x0277  
PTIH  
DDRH  
RDRH  
PERH  
DDRH7  
RDRH7  
PERH7  
PPSH7  
PIEH7  
DDRH7  
RDRH6  
PERH6  
PPSH6  
PIEH6  
DDRH5  
RDRH5  
PERH5  
PPSH5  
PIEH5  
DDRH4  
RDRH4  
PERH4  
PPSH4  
PIEH4  
DDRH3  
RDRH3  
PERH3  
PPSH3  
PIEH3  
DDRH2  
RDRH2  
PERH2  
PPSH2  
PIEH2  
DDRH1  
RDRH1  
PERH1  
PPSH1  
PIEH1  
DDRH0  
RDRH0  
PERH0  
PPSH0  
PIEH0  
PPSH  
PIEH  
PIFH  
PIFH7  
PIFH6  
PIFH5  
PIFH4  
PIFH3  
0
PIFH2  
PIFH1  
PIFH0  
PTJ  
PTJ7  
PTJ6  
PTJ5  
PTJ4  
PTJ2  
PTJ1  
PTJ0  
PTIJ7  
PTIJ6  
PTIJ5  
PTIJ4  
0
0
0
0
0
0
0
0
PTIJ2  
PTIJ1  
PTIJ0  
PTIJ  
DDRJ  
DDRJ7  
RDRJ7  
PERJ7  
PPSJ7  
PIEJ7  
DDRJ7  
RDRJ6  
PERJ6  
PPSJ6  
PIEJ6  
DDRJ5  
RDRJ5  
PERJ5  
PPSJ5  
PIEJ5  
DDRJ4  
RDRJ4  
PERJ4  
PPSJ4  
PIEJ4  
DDRJ2  
RDRJ2  
PERJ2  
PPSJ2  
PIEJ2  
DDRJ1  
RDRJ1  
PERJ1  
PPSJ1  
PIEJ1  
DDRJ0  
RDRJ0  
PERJ0  
PPSJ0  
PIEJ0  
RDRJ  
PERJ  
PPSJ  
PIEJ  
PIFJ  
PIFJ7  
0
PIFJ6  
0
PIFJ5  
0
PIFJ4  
0
PIFJ2  
0
PIFJ1  
0
PIFJ0  
0
Reserved  
PT1AD0  
Reserved  
DDR1AD0  
Reserved  
RDR1AD0  
Reserved  
PER1AD0  
PT1AD07 PT1AD06 PT1AD05 PT1AD04 PT1AD03 PT1AD02 PT1AD01 PT1AD00  
0
0
0
0
0
0
0
0
DDR1AD0 DDR1AD0 DDR1AD0 DDR1AD0 DDR1AD0 DDR1AD0 DDR1AD0 DDR1AD0  
7
6
5
4
3
2
1
1
0
0
0
0
0
0
0
0
RDR1AD0 RDR1AD0 RDR1AD0 RDR1AD0 RDR1AD0 RDR1AD0 RDR1AD0 RDR1AD0  
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
PER1AD0 PER1AD0 PER1AD0 PER1AD0 PER1AD0 PER1AD0 PER1AD0 PER1AD0  
7
6
5
4
3
2
1
0
MC9S12XDP512 Data Sheet, Rev. 2.11  
60  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x0240–0x027F Port Integration Module PIM_9DX (PIM) Map (Sheet 4 of 4)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
PT0AD1  
23  
PT0AD1  
22  
PT0AD1  
21  
PT0AD1  
20  
PT0AD1  
19  
PT0AD1  
18  
PT0AD1  
17  
PT0AD1  
16  
0x0278  
PT0AD1  
PT1AD1  
15  
PT1AD1  
14  
PT1AD1  
13  
PT1AD1  
12  
PT1AD1  
11  
PT1AD1  
10  
PT1AD1  
9
PT1AD1  
8
0x0279  
0x027A  
0x027B  
0x027C  
0x027D  
0x027E  
0x027F  
PT1AD1  
DDR0AD1  
DDR1AD1  
RDR0AD1  
RDR1AD1  
PER0AD1  
PER1AD1  
DDR0AD1 DDR0AD1 DDR0AD1 DDR0AD1 DDR0AD1 DDR0AD1 DDR0AD1 DDR0AD1  
23 22 21 20 19 18 17 16  
DDR1AD1 DDR1AD1 DDR1AD1 DDR1AD1 DDR1AD1 DDR1AD1 DDR1AD1 DDR1AD1  
15 14 13 12 11 10  
RDR0AD1 RDR0AD1 RDR0AD1 RDR0AD1 RDR0AD1 RDR0AD1 RDR0AD1 RDR0AD1  
23 22 21 20 19 18 17 16  
RDR1AD1 RDR1AD1 RDR1AD1 RDR1AD1 RDR1AD1 RDR1AD1 RDR1AD1 RDR1AD1  
15 14 13 12 11 10  
PER0AD1 PER0AD1 PER0AD1 PER0AD1 PER0AD1 PER0AD1 PER0AD1 PER0AD1  
23 22 21 20 19 18 17 16  
PER1AD1 PER1AD1 PER1AD1 PER1AD1 PER1AD1 PER1A1D PER1AD1 PER1AD1  
9
8
9
8
15  
14  
13  
12  
11  
10  
9
8
0x0280–0x02BF Freescale Scalable CAN — MSCAN (CAN4) Map  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
RXACT  
SYNCH  
0x0280  
CAN4CTL0  
RXFRM  
CSWAI  
TIME  
WUPE  
SLPRQ  
SLPAK  
INITRQ  
INITAK  
0x0281  
0x0282  
0x0283  
0x0284  
0x0285  
0x0286  
0x0287  
0x0288  
0x0289  
CAN4CTL1  
CAN4BTR0  
CAN4BTR1  
CAN4RFLG  
CAN4RIER  
CAN4TFLG  
CAN4TIER  
CAN4TARQ  
CAN4TAAK  
CANE  
SJW1  
SAMP  
WUPIF  
CLKSRC  
SJW0  
LOOPB  
BRP5  
LISTEN  
BRP4  
BORM  
BRP3  
WUPM  
BRP2  
W
R
BRP1  
TSEG11  
OVRIF  
OVRIE  
TXE1  
BRP0  
TSEG10  
RXF  
W
R
TSEG22  
CSCIF  
TSEG21  
RSTAT1  
TSEG20  
RSTAT0  
TSEG13  
TSTAT1  
TSEG12  
TSTAT0  
W
R
W
R
WUPIE  
0
CSCIE  
0
RSTATE1 RSTATE0 TSTATE1 TSTATE0  
RXFIE  
TXE0  
W
R
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
TXE2  
W
R
0
0
0
0
0
0
0
0
0
0
0
0
TXEIE2  
TXEIE1  
TXEIE0  
W
R
ABTRQ2 ABTRQ1 ABTRQ0  
W
R
ABTAK2  
ABTAK1  
ABTAK0  
W
R
0x028A CAN4TBSEL  
TX2  
TX1  
TX0  
W
R
IDHIT2  
IDHIT1  
IDHIT0  
0x028B  
0x028C  
CAN4IDAC  
Reserved  
IDAM1  
0
IDAM0  
0
W
R
0
0
0
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
61  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x0280–0x02BF Freescale Scalable CAN — MSCAN (CAN4) Map (continued)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0
0
0
0
0
0
0
0x028D  
CAN4MISC  
BOHOLD  
RXERR7 RXERR6 RXERR5 RXERR4 RXERR3 RXERR2 RXERR1 RXERR0  
TXERR7 TXERR6 TXERR5 TXERR4 TXERR3 TXERR2 TXERR1 TXERR0  
0x028E CAN4RXERR  
0x028F CAN4TXERR  
0x0290 CAN4IDAR0  
0x0291 CAN4IDAR1  
0x0292 CAN4IDAR2  
0x0293 CAN4IDAR3  
0x0294 CAN4IDMR0  
0x0295 CAN4IDMR1  
0x0296 CAN4IDMR2  
0x0297 CAN4IDMR3  
0x0298 CAN4IDAR4  
0x0299 CAN4IDAR5  
0x029A CAN4IDAR6  
0x029B CAN4IDAR7  
0x029C CAN4IDMR4  
0x029D CAN4IDMR5  
0x029E CAN4IDMR6  
0x029F CAN4IDMR7  
W
R
W
R
AC7  
AC7  
AC7  
AC7  
AM7  
AM7  
AM7  
AM7  
AC7  
AC7  
AC7  
AC7  
AM7  
AM7  
AM7  
AM7  
AC6  
AC6  
AC6  
AC6  
AM6  
AM6  
AM6  
AM6  
AC6  
AC6  
AC6  
AC6  
AM6  
AM6  
AM6  
AM6  
AC5  
AC5  
AC5  
AC5  
AM5  
AM5  
AM5  
AM5  
AC5  
AC5  
AC5  
AC5  
AM5  
AM5  
AM5  
AM5  
AC4  
AC4  
AC4  
AC4  
AM4  
AM4  
AM4  
AM4  
AC4  
AC4  
AC4  
AC4  
AM4  
AM4  
AM4  
AM4  
AC3  
AC3  
AC3  
AC3  
AM3  
AM3  
AM3  
AM3  
AC3  
AC3  
AC3  
AC3  
AM3  
AM3  
AM3  
AM3  
AC2  
AC2  
AC2  
AC2  
AM2  
AM2  
AM2  
AM2  
AC2  
AC2  
AC2  
AC2  
AM2  
AM2  
AM2  
AM2  
AC1  
AC1  
AC1  
AC1  
AM1  
AM1  
AM1  
AM1  
AC1  
AC1  
AC1  
AC1  
AM1  
AM1  
AM1  
AM1  
AC0  
AC0  
AC0  
AC0  
AM0  
AM0  
AM0  
AM0  
AC0  
AC0  
AC0  
AC0  
AM0  
AM0  
AM0  
AM0  
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
FOREGROUND RECEIVE BUFFER  
0x02A0–  
CAN4RXFG  
0x02AF  
(See Detailed MSCAN Foreground Receive and Transmit Buffer Layout)  
W
R
0x02B0–  
CAN4TXFG  
0x02BF  
FOREGROUND TRANSMIT BUFFER  
(See Detailed MSCAN Foreground Receive and Transmit Buffer Layout)  
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
62  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x02C0–0x02DF Analog-to-Digital Converter 10-Bit 8-Channel (ATD0) Map  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0
0
0
0
0
0x02C0  
ATD0CTL0  
WRAP2  
WRAP1  
WRAP0  
0
0
0
0
ETRIG  
SEL  
ETRIG  
CH2  
ETRIG  
CH1  
ETRIG  
CH0  
0x02C1  
0x02C2  
0x02C3  
0x02C4  
0x02C5  
ATD0CTL1  
ATD0CTL2  
ATD0CTL3  
ATD0CTL4  
ATD0CTL5  
W
R
ASCIF  
ADPU  
0
AFFC  
S8C  
AWAI  
S4C  
ETRIGLE ETRIGP  
ETRIGE  
FIFO  
ASCIE  
FRZ1  
PRS1  
W
R
S2C  
PRS4  
MULT  
S1C  
FRZ0  
PRS0  
W
R
SRES8  
DJM  
SMP1  
SMP0  
SCAN  
PRS3  
0
PRS2  
W
R
DSGN  
0
CC  
CB  
CA  
W
R
0
CC2  
CC1  
CC0  
0x02C6 ATD0STAT0  
0x02C7 Reserved  
SCF  
U
ETORF  
U
FIFOR  
U
W
R
U
U
U
U
U
U
W
R
U
U
U
U
U
U
U
0x02C8 ATD0TEST0  
0x02C9 ATD0TEST1  
W
R
U
0
U
0
0
0
0
0
0
0
0
0
0
0
SC  
0
W
R
0x02CA  
Reserved  
W
R
CCF7  
0
CCF6  
0
CCF5  
0
CCF4  
0
CCF3  
0
CCF2  
0
CCF1  
0
CCF0  
0
0x02CB ATD0STAT1  
W
R
0x02CC  
0x02CD  
0x02CE  
Reserved  
ATD0DIEN  
Reserved  
W
R
IEN7  
0
IEN6  
0
IEN5  
0
IEN4  
0
IEN3  
0
IEN2  
0
IEN1  
0
IEN0  
0
W
R
W
R
Bit7  
Bit15  
Bit7  
6
5
13  
0
4
12  
0
3
11  
0
2
10  
0
1
9
0
9
0
9
0
BIT 0  
Bit8  
0
0x02CF ATD0PTAD0  
W
R
14  
0x02D0  
0x02D1  
0x02D2  
0x02D3  
0x02D4  
0x02D5  
ATD0DR0H  
ATD0DR0L  
ATD0DR1H  
ATD0DR1L  
ATD0DR2H  
ATD0DR2L  
W
R
Bit6  
14  
W
R
Bit15  
Bit7  
13  
0
12  
0
11  
0
10  
0
Bit8  
0
W
R
Bit6  
14  
W
R
Bit15  
Bit7  
13  
0
12  
0
11  
0
10  
0
Bit8  
0
W
R
Bit6  
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
63  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x02C0–0x02DF Analog-to-Digital Converter 10-Bit 8-Channel (ATD0) Map (continued)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
Bit15  
14  
13  
12  
11  
10  
9
Bit8  
0x02D6  
ATD0DR3H  
Bit7  
Bit15  
Bit7  
Bit6  
14  
0
13  
0
0
12  
0
0
11  
0
0
10  
0
0
9
0
9
0
9
0
9
0
0
Bit8  
0
0x02D7  
0x02D8  
0x02D9  
ATD0DR3L  
ATD0DR4H  
ATD0DR4L  
W
R
W
R
Bit6  
14  
W
R
Bit15  
Bit7  
13  
0
12  
0
11  
0
10  
0
Bit8  
0
0x02DA ATD0DR5H  
0x02DB ATD0DR5L  
0x02DC ATD0DR6H  
0x02DD ATD0DR6L  
0x02DE ATD0DR7H  
0x02DF ATD0DR7L  
W
R
Bit6  
14  
W
R
Bit15  
Bit7  
13  
0
12  
0
11  
0
10  
0
Bit8  
0
W
R
Bit6  
14  
W
R
Bit15  
Bit7  
13  
0
12  
0
11  
0
10  
0
Bit8  
0
W
R
Bit6  
W
0x02E0–0x02EF Reserved  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
0
0
0
0
0
0
0
0
0x02E0–  
0x02EF  
Reserved  
0x02F0–0x02F7 Voltage Regulator (VREG_3V3) Map  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
0x02F0 VREGHTCL  
0x02F1 VREGCTRL  
0x02F2 VREGAPICL  
0x02F3 VREGAPITR  
0x02F4 VREGAPIRH  
0x02F5 VREGAPIRL  
Reserved for Factory Test  
0
0
0
0
0
0
0
0
0
LVDS  
LVIE  
LVIF  
APICLK  
APIFE  
APITR0  
APIR10  
APIE  
0
APIF  
0
APITR5  
0
APITR4  
0
APITR3  
0
APITR2  
0
APITR1  
APIR11  
APIR9  
APIR8  
APIR7  
0
APIR6  
0
APIR5  
0
APIR4  
0
APIR3  
0
APIR2  
0
APIR1  
0
APIR0  
0
0x02F6  
0x02F7  
Reserved  
Reserved  
0
0
0
0
0
0
0
0
MC9S12XDP512 Data Sheet, Rev. 2.11  
64  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x02F8–0x02FF Reserved  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
0
0
0
0
0
0
0
0
0x02F8–  
0x02FF  
Reserved  
W
0x0300–0x0327 Pulse Width Modulator 8-Bit 8-Channel (PWM) Map  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0x0300  
PWME  
PWME7  
PWME6  
PWME5  
PWME4  
PWME3  
PWME2  
PWME1  
PWME0  
0x0301  
0x0302  
PWMPOL  
PWMCLK  
PPOL7  
PPOL6  
PCLK6  
PCKB2  
CAE6  
PPOL5  
PCLK5  
PCKB1  
CAE5  
PPOL4  
PCLK4  
PCKB0  
CAE4  
PPOL3  
PPOL2  
PCLK2  
PCKA2  
CAE2  
PPOL1  
PCLK1  
PCKA1  
PPOL0  
PCLK0  
PCKA0  
W
R
PCLK7  
0
PCLK3  
0
W
R
0x0303 PWMPRCLK  
W
R
0x0304  
0x0305  
0x0306  
0x0307  
0x0308  
0x0309  
PWMCAE  
PWMCTL  
CAE7  
CAE3  
CAE1  
0
CAE0  
0
W
R
CON67  
0
CON45  
0
CON23  
0
CON01  
0
PSWAI  
0
PFRZ  
0
W
R
0
0
0
0
PWMTST  
Test Only  
W
R
0
0
6
0
5
0
4
0
3
0
2
PWMPRSC  
PWMSCLA  
PWMSCLB  
W
R
Bit 7  
1
Bit 0  
W
R
Bit 7  
0
6
0
5
0
4
0
3
0
2
0
1
0
Bit 0  
0
W
R
0x030A PWMSCNTA  
0x030B PWMSCNTB  
W
R
0
0
0
0
0
0
0
0
W
R
Bit 7  
0
6
0
6
0
6
0
6
0
6
0
6
0
6
0
6
0
5
0
5
0
5
0
5
0
5
0
5
0
5
0
5
0
4
0
4
0
4
0
4
0
4
0
4
0
4
0
4
0
3
0
3
0
3
0
3
0
3
0
3
0
3
0
3
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
2
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
Bit 0  
0
0x030C  
0x030D  
0x030E  
0x030F  
0x0310  
0x0311  
0x0312  
0x0313  
PWMCNT0  
PWMCNT1  
PWMCNT2  
PWMCNT3  
PWMCNT4  
PWMCNT5  
PWMCNT6  
PWMCNT7  
W
R
Bit 7  
0
Bit 0  
0
W
R
Bit 7  
0
Bit 0  
0
W
R
Bit 7  
0
Bit 0  
0
W
R
Bit 7  
0
Bit 0  
0
W
R
Bit 7  
0
Bit 0  
0
W
R
Bit 7  
0
Bit 0  
0
W
R
Bit 7  
0
Bit 0  
0
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
65  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x0300–0x0327 Pulse Width Modulator 8-Bit 8-Channel (PWM) Map  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0x0314  
PWMPER0  
Bit 7  
6
5
4
3
2
1
Bit 0  
0x0315  
0x0316  
0x0317  
0x0318  
0x0319  
0x031A  
0x031B  
0x031C  
0x031D  
0x031E  
0x031F  
0x0320  
0x0321  
0x0322  
0x0323  
PWMPER1  
PWMPER2  
PWMPER3  
PWMPER4  
PWMPER5  
PWMPER6  
PWMPER7  
PWMDTY0  
PWMDTY1  
PWMDTY2  
PWMDTY3  
PWMDTY4  
PWMDTY5  
PWMDTY6  
PWMDTY7  
Bit 7  
Bit 7  
Bit 7  
Bit 7  
Bit 7  
Bit 7  
Bit 7  
Bit 7  
Bit 7  
Bit 7  
Bit 7  
Bit 7  
Bit 7  
Bit 7  
Bit 7  
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
5
5
5
5
5
5
5
5
5
5
5
5
5
5
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
3
3
3
3
3
3
3
3
3
3
3
3
3
3
2
2
2
2
2
2
2
2
2
2
2
2
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
Bit 0  
Bit 0  
Bit 0  
Bit 0  
Bit 0  
Bit 0  
Bit 0  
Bit 0  
Bit 0  
Bit 0  
Bit 0  
Bit 0  
Bit 0  
Bit 0  
Bit 0  
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
5
0
3
0
2
W
R
PWM7IN  
PWM7  
ENA  
0x0324  
PWMSDN  
PWMIF  
PWMIE  
PWMLVL  
PWM7INL  
W
PWM  
RSTRT  
R
W
R
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0x0325  
0x0326  
0x0327  
Reserved  
Reserved  
Reserved  
W
R
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
66  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x0328–0x033F Reserved  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
0
0
0
0
0
0
0
0
0x0328–  
0x033F  
Reserved  
W
0x0340–0x0367 Periodic Interrupt Timer (PIT) Map  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0
0
0
0
PFLMT1  
0
0
PFLMT0  
0
0x0340  
PITCFLMT  
PITE  
0
PITSWAI  
0
PITFRZ  
0
0
0
0
0
0
0x0341  
0x0342  
0x0343  
0x0344  
0x0345  
0x0346  
0x0347  
0x0348  
0x0349  
PITFLT  
PITCE  
W
R
PFLT3  
PFLT2  
PFLT1  
PFLT0  
0
0
0
0
0
0
0
0
0
0
0
0
PCE3  
PMUX3  
PINTE3  
PTF3  
PCE2  
PMUX2  
PINTE2  
PTF2  
PCE1  
PMUX1  
PINTE1  
PTF1  
PCE0  
PMUX0  
PINTE0  
PTF0  
W
R
PITMUX  
PITINTE  
PITTF  
W
R
W
R
0
W
R
PITMTLD0  
PITMTLD1  
PITLD0 (hi)  
PITLD0 (lo)  
PMTLD7 PMTLD6 PMTLD5 PMTLD4 PMTLD3 PMTLD2 PMTLD1 PMTLD0  
PMTLD7 PMTLD6 PMTLD5 PMTLD4 PMTLD3 PMTLD2 PMTLD1 PMTLD0  
W
R
W
R
PLD15  
PLD7  
PLD14  
PLD6  
PLD13  
PLD5  
PLD12  
PLD4  
PLD11  
PLD3  
PLD10  
PLD2  
PLD9  
PLD1  
PLD8  
PLD0  
W
R
W
R
0x034A PITCNT0 (hi)  
0x034B PITCNT0 (lo)  
PCNT15  
PCNT7  
PLD15  
PLD7  
PCNT14  
PCNT6  
PLD14  
PLD6  
PCNT13  
PCNT5  
PLD13  
PLD5  
PCNT12  
PCNT4  
PLD12  
PLD4  
PCNT11  
PCNT3  
PLD11  
PLD3  
PCNT10  
PCNT2  
PLD10  
PLD2  
PCNT9  
PCNT1  
PLD9  
PCNT8  
PCNT0  
PLD8  
W
R
W
R
0x034C  
0x034D  
PITLD1 (hi)  
PITLD1 (lo)  
W
R
PLD1  
PLD0  
W
R
0x034E PITCNT1 (hi)  
0x034F PITCNT1 (lo)  
PCNT15  
PCNT7  
PLD15  
PLD7  
PCNT14  
PCNT6  
PLD14  
PLD6  
PCNT13  
PCNT5  
PLD13  
PLD5  
PCNT12  
PCNT4  
PLD12  
PLD4  
PCNT11  
PCNT3  
PLD11  
PLD3  
PCNT10  
PCNT2  
PLD10  
PLD2  
PCNT9  
PCNT1  
PLD9  
PCNT8  
PCNT0  
PLD8  
W
R
W
R
0x0350  
0x0351  
PITLD2 (hi)  
PITLD2 (lo)  
W
R
PLD1  
PLD0  
W
R
0x0352 PITCNT2 (hi)  
0x0353 PITCNT2 (lo)  
PCNT15  
PCNT7  
PCNT14  
PCNT6  
PCNT13  
PCNT5  
PCNT12  
PCNT4  
PCNT11  
PCNT3  
PCNT10  
PCNT2  
PCNT9  
PCNT1  
PCNT8  
PCNT0  
W
R
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
67  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x0340–0x0367 Periodic Interrupt Timer (PIT) Map (continued)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0x0354  
PITLD3 (hi)  
PLD15  
PLD14  
PLD13  
PLD12  
PLD11  
PLD10  
PLD9  
PLD8  
0x0355  
PITLD3 (lo)  
PLD7  
PLD6  
PLD5  
PLD4  
PLD3  
PLD2  
PLD1  
PLD0  
W
R
0x0356 PITCNT3 (hi)  
0x0357 PITCNT3 (lo)  
PCNT15  
PCNT14  
PCNT13  
PCNT12  
PCNT11  
PCNT10  
PCNT9  
PCNT8  
W
R
PCNT7  
0
PCNT6  
0
PCNT5  
0
PCNT4  
0
PCNT3  
0
PCNT2  
0
PCNT1  
0
PCNT0  
0
W
R
0x0358–  
Reserved  
0x0367  
W
0x0368–0x037F Reserved  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
0
0
0
0
0
0
0
0
0x0368–  
0x037F  
Reserved  
W
0x0380–0x03BF XGATE Map (Sheet 1 of 3)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
0
0
0
0
0
0
0
0x0380  
XGMCTL  
XGIEM  
W
XGS  
WEIFM  
XGEM  
XGFRZM XGDBGM XGSSM XGFACTM  
R
W
R
0
0x0381  
0x0382  
0x0383  
0x0384  
0x0385  
0x0386  
0x0387  
0x0388  
0x0389  
0x038A  
0x023B  
0x023C  
XGMCTL  
XGCHID  
Reserved  
XGVBR  
XGVBR  
XGVBR  
XGVBR  
XGIF  
XGE  
0
XGFRZ  
XGDBG  
XGSS  
XGFACT  
XGSWEIF  
XGIE  
XGCHID[6:0]  
W
R
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
W
R
W
R
00  
W
R
XGVBR[15:8]  
W
R
0
XGVBR[7:1]  
0
W
R
0
0
0
0
0
0
XGIF_78  
W
R
XGIF  
XGIF_77 XGIF_76 XGIF_75 XGIF_74 XGIF_73 XGIF_72 XGIF_71 XGIF_70  
XGIF_6F XGIF_6E XGIF_6D XGIF_6C XGIF_6B XGIF_6A XGIF_69 XGIF_68  
XGIF_67 XGIF_66 XGIF_65 XGIF_64 XGIF_63 XGIF_62 XGIF_61 XGIF_60  
XGIF_5F XGIF_5E XGIF_5D XGIF_5C XGIF_5B XGIF_5A XGIF_59 XGIF_58  
W
R
XGIF  
W
R
XGIF  
W
R
XGIF  
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
68  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x0380–0x03BF XGATE Map (Sheet 2 of 3)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0x038D  
XGIF  
XGIF_57 XGIF_56 XGIF_55 XGIF_54 XGIF_53 XGIF_52 XGIF_51 XGIF_50  
XGIF_4F XGIF_4E XGIF_4D XGIF_4C XGIF_4B XGIF_4A XGIF_49 XGIF_48  
XGIF_47 XGIF_46 XGIF_45 XGIF_44 XGIF_43 XGIF_42 XGIF_41 XGIF_40  
XGIF_3F XGIF_3E XGIF_3D XGIF_3C XGIF_3B XGIF_3A XGIF_39 XGIF_38  
XGIF_37 XGIF_36 XGIF_35 XGIF_34 XGIF_33 XGIF_32 XGIF_31 XGIF_30  
XGIF_2F XGIF_2E XGIF_2D XGIF_2C XGIF_2B XGIF_2A XGIF_29 XGIF_28  
XGIF_27 XGIF_26 XGIF_25 XGIF_24 XGIF_23 XGIF_22 XGIF_21 XGIF_20  
XGIF_1F XGIF_1E XGIF_1D XGIF_1C XGIF_1B XGIF_1A XGIF_19 XGIF_18  
XGIF_17 XGIF_16 XGIF_15 XGIF_14 XGIF_13 XGIF_12 XGIF_11 XGIF_10  
0x038E  
0x038F  
0x0390  
0x0391  
0x0392  
0x0393  
0x0394  
0x0395  
0x0396  
0x0397  
XGIF  
XGIF  
XGIF  
XGIF  
XGIF  
XGIF  
XGIF  
XGIF  
XGIF  
XGIF  
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
0
XGIF_0F XGIF_0E XGIF_0D XGIF_0C XGIF_0B XGIF_0A XGIF_09  
W
R
0
0
0
0
0
0
0
0
0
0
0
0
0
0
W
R
0
0
0x0398 XGSWT (hi)  
0x0399 XGSWT (lo)  
0x039A XGSEM (hi)  
0x039B XGSEM (lo)  
W
R
XGSWTM[7:0]  
XGSWT[7:0]  
W
R
0
0
0
0
0
0
0
0
W
R
XGSEMM[7:0]  
XGSEM[7:0]  
W
R
0
0
0
0
0
0
0
0
0
0
0
0
0x039C  
0x039D  
0x039E  
0x039F  
0x03A0  
0x03A1  
0x03A2  
0x03A3  
Reserved  
XGCCR  
W
R
XGN  
XGZ  
XGV  
XGC  
W
R
XGPC (hi)  
XGPC (lo)  
Reserved  
Reserved  
XGR1 (hi)  
XGR1 (lo)  
XGPC[15:8]  
XGPC[7:0]  
W
R
W
R
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
W
R
W
R
XGR1[15:8]  
XGR1[7:0]  
W
R
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
69  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
0x0380–0x03BF XGATE Map (Sheet 3 of 3)  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
W
R
0x03A4  
XGR2 (hi)  
XGR2[15:8]  
0x03A5  
0x03A6  
0x03A7  
0x03A8  
0x03A9  
0x03AA  
0x03AB  
0x03AC  
0x03AD  
0x03AE  
0x03AF  
XGR2 (lo)  
XGR3 (hi)  
XGR3 (lo)  
XGR4 (hi)  
XGR4 (lo)  
XGR5 (hi)  
XGR5(lo)  
XGR6 (hi)  
XGR6 (lo)  
XGR7 (hi)  
XGR7 (lo)  
Reserved  
XGR2[7:0]  
XGR3[15:8]  
XGR3[7:0]  
XGR4[15:8]  
XGR4[7:0]  
XGR5[15:8]  
XGR5[7:0]  
XGR6[15:8]  
XGR6[7:0]  
XGR7[15:8]  
XGR7[7:0]  
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
R
0
0
0
0
0
0
0
0
0x03B0–  
0x03BF  
W
0x03C0–0x07FF Reserved  
Address  
Name  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
R
0
0
0
0
0
0
0
0
0x03C0  
–0x07FF  
Reserved  
W
MC9S12XDP512 Data Sheet, Rev. 2.11  
70  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
1.1.7  
Part ID Assignments  
The part ID is located in two 8-bit registers PARTIDH and PARTIDL (addresses 0x001A and 0x001B).  
The read-only value is a unique part ID for each revision of the chip. Table 1-2 shows the assigned part ID  
number and Mask Set number.  
Table 1-2. Assigned Part ID Numbers  
1
Device  
Mask Set Number  
Part ID  
MC9S12XDP512  
MC9S12XDT384  
L15Y  
L15Y  
0xC410  
0xC410  
1
The coding is as follows:  
Bit 15-12: Major family identifier  
Bit 11-8: Minor family identifier  
Bit 7-4: Major mask set revision number including FAB transfers  
Bit 3-0: Minor — non full — mask set revision  
1.2  
Signal Description  
This section describes signals that connect off-chip. It includes a pinout diagram, a table of signal  
properties, and detailed discussion of signals. It is built from the signal description sections of the Block  
User Guides of the individual IP blocks on the device.  
1.2.1  
Device Pinout  
The XD-Family of devices offers pin-compatible packaged devices to assist with system development and  
accommodate expansion of the application.  
The MC9S12XD-Family and MC9S12XA-Family devices are offered in the following package options:  
144-pin LQFP package with an external bus interface (address/data bus)  
112-pin LQFP without external bus interface  
80-pin QFP without external bus interface  
Most pins perform two or more functions, as described in more detail in Section 1.2.2, “Signal Properties  
Summary”. Figure 1-5, Figure 1-6, and Figure 1-7 show the pin assignments for the various packages.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
71  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 1 Device Overview (MC9S12XDP512V2)  
1
2
3
4
5
6
7
8
108  
107  
106  
105  
104  
103  
102  
101  
100  
99  
98  
97  
96  
95  
94  
93  
92  
91  
90  
89  
88  
87  
86  
85  
84  
83  
82  
81  
80  
79  
78  
77  
76  
75  
SS1/PWM3/KWP3/PP3  
SCK1/PWM2/KWP2/PP2  
MOSI1/PWM1/KWP1/PP1  
MISO1/PWM0/KWP0/PP0  
CS1/KWJ2/PJ2  
ACC2/ADDR22/PK6  
IQSTAT3/ADDR19/PK3  
IQSTAT2/ADDR18/PK2  
IQSTAT1/ADDR17/PK1  
IQSTAT0/ADDR16/PK0  
IOC0/PT0  
VRH  
VDDA  
PAD17/AN17  
PAD16/AN16  
PAD15/AN15  
PAD07/AN07  
PAD14/AN14  
PAD06/AN06  
PAD13/AN13  
PAD05/AN05  
PAD12/AN12  
PAD04/AN04  
PAD11/AN11  
PAD03/AN03  
PAD10/AN10  
PAD02/AN02  
PAD09/AN09  
PAD01/AN01  
PAD08/AN08  
PAD00/AN00  
VSS2  
9
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
35  
36  
IOC1/PT1  
IOC2/PT2  
IOC3/PT3  
VDD1  
VSS1  
IOC4/PT4  
MC9S12XD-Family  
144-Pin LQFP  
IOC5/PT5  
IOC6/PT6  
IOC7/PT7  
ACC1/ADDR21/PK5  
ACC0/ADDR20/PK4  
TXD2/KWJ1/PJ1  
CS3/RXD2/KWJ0/PJ0  
MODC/BKGD  
VDD2  
PD7/DATA7  
PD6/DATA6  
PD5/DATA5  
PD4/DATA4  
VDDR2  
VDDX2  
VSSX2  
Pins shown in BOLD-ITALICS are not available on the  
DATA8/PC0  
VSSR2  
112-Pin LQFP or the 80-Pin QFP package option  
DATA9/PC1  
PA7/ADDR15  
PA6/ADDR14  
PA5/ADDR13  
PA4/ADDR12  
PA3/ADDR11  
PA2/ADDR10  
PA1/ADDR9  
PA0/ADDR8  
DATA10/PC2  
DATA11/PC3  
Pins shown in BOLD are not available on the  
UDS/ADDR0/PB0  
ADDR1/PB1  
80-Pin QFP package option  
ADDR2/PB2  
74  
73  
ADDR3/PB3  
ADDR4/PB4  
Figure 1-5. MC9S12XD-Family Pin Assignment 144-Pin LQFP Package  
MC9S12XDP512 Data Sheet, Rev. 2.11  
72  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
SS1/PWM3/KWP3/PP3  
SCK1/PWM2/KWP2/PP2  
84  
83  
82  
81  
80  
79  
78  
77  
76  
75  
74  
73  
72  
71  
70  
69  
68  
67  
66  
65  
64  
63  
62  
61  
60  
59  
58  
57  
1
V
V
RH  
2
DDA  
MOSI1/PWM1/KWP1/PP1  
MISO1/PWM0/KWP0/PP0  
3
PAD15/AN15  
PAD07/AN07  
PAD14/AN14  
PAD06/AN06  
PAD13/AN13  
PAD05/AN05  
PAD12/AN12  
PAD04/AN04  
PAD11/AN11  
PAD03/AN03  
PAD10/AN10  
PAD02/AN02  
PAD09/AN09  
PAD01/AN01  
PAD08/AN08  
PAD00/AN00  
4
PK3  
PK2  
PK1  
PK0  
5
6
7
8
IOC0/PT0  
IOC1/PT1  
IOC2/PT2  
IOC3/PT3  
VDD1  
9
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
MC9S12XD-Family  
112-Pin LQFP  
VSS1  
IOC4/PT4  
IOC5/PT5  
IOC6/PT6  
IOC7/PT7  
PK5  
Pins shown in BOLD are not available on the  
80-Pin QFP package option  
V
SS2  
PK4  
V
DD2  
TXD2/KWJ1/PJ1  
CS3/RXD2/KWJ0/PJ0  
MODC/BKGD  
PB0  
PA7  
PA6  
PA5  
PA4  
PA3  
PA2  
PA1  
PA0  
PB1  
PB2  
PB3  
PB4  
Figure 1-6. MC9S12XD-Family Pin Assignments 112-Pin LQFP Package  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
73  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
60  
59  
58  
57  
56  
55  
54  
53  
52  
51  
50  
49  
48  
47  
46  
45  
44  
43  
42  
41  
SS1/PWM3/KWP3/PP3  
SCK1/PWM2/KWP2/PP2  
MOSI1/PWM1/KWP1/PP1  
MISO1/PWM0/KWP0/PP0  
IOC0/PT0  
1
V
V
RH  
2
DDA  
3
PAD07/AN07  
PAD06/AN06  
PAD05/AN05  
PAD04/AN04  
PAD03/AN03  
PAD02/AN02  
PAD01/AN01  
PAD00/AN00  
4
5
IOC1/PT1  
IOC2/PT2  
6
7
IOC3/PT3  
V
8
9
DD1  
V
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
SS1  
MC9S12XD-Family  
80-Pin QFP  
IOC4/PT4  
IOC5/PT5  
IOC6/PT6  
IOC7/PT7  
MODC/BKGD  
PB0  
V
SS2  
V
DD2  
PA7  
PA6  
PA5  
PA4  
PA3  
PA2  
PA1  
PA0  
PB1  
PB2  
PB3  
PB4  
Figure 1-7. MC9S12XD-Family Pin Assignments 80-Pin QFP Package  
MC9S12XDP512 Data Sheet, Rev. 2.11  
74  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
Signal Properties Summary  
Table 1-3 summarizes the pin functionality.  
Table 1-3. Signal Properties Summary (Sheet 1 of 4)  
Internal Pull  
Resistor  
Pin  
Name  
Pin  
Name  
Pin  
Name  
Pin  
Name  
Pin  
Name  
Power  
Supply  
Description  
Reset  
Function 1 Function 2 Function 3 Function 4 Function 5  
CTRL  
State  
EXTAL  
XTAL  
V
V
NA  
NA  
NA  
NA  
Oscillator pins  
DDPLL  
DDPLL  
RESET  
TEST  
V
PULLUP  
External reset  
DDR  
N.A.  
RESET pin DOWN Test input  
V
V
PUCR  
Up  
Voltage regulator enable  
Input  
REGEN  
DDX  
XFC  
V
NA  
NA  
Up  
PLL loop filter  
DDPLL  
BKGD  
MODC  
V
Always on  
Background debug  
DDR  
PAD[23:08] AN[23:8]  
V
PER0  
AD1/  
PER1  
AD1  
Disabled Port AD inputs of ATD1,  
analog inputs of ATD1  
DDA  
PAD[07:00]  
AN[7:0]  
V
PER1  
AD0  
Disabled Port AD inputs of ATD0,  
analog inputs of ATD0  
DDA  
DDR  
DDR  
DDR  
PA[7:0] ADDR[15:8] IVD[15:8]  
V
V
V
PUCR  
PUCR  
PUCR  
Disabled Port A I/O, address bus,  
internal visibility data  
PB[7:1]  
PB0  
ADDR[7:1]  
ADDR0  
IVD[7:0]  
UDS  
Disabled Port B I/O, address bus,  
internal visibility data  
Disabled Port B I/O, address bus,  
upper data strobe  
PC[7:0]  
PD[7:0]  
PE7  
DATA[15:8]  
DATA[7:0]  
ECLKX2  
V
V
V
PUCR  
PUCR  
PUCR  
Disabled Port C I/O, data bus  
Disabled Port D I/O, data bus  
DDR  
DDR  
DDR  
XCLKS  
Up  
Port E I/O, system clock  
output, clock select  
PE6  
PE5  
TAGHI  
RE  
MODB  
MODA  
V
V
While RESET  
pin is low: down  
Port E I/O, tag high, mode  
input  
DDR  
DDR  
TAGLO  
While RESET  
pin is low: down  
Port E I/O, read enable,  
mode input, tag low input  
PE4  
PE3  
ECLK  
V
V
PUCR  
PUCR  
Up  
Port E I/O, bus clock output  
DDR  
LSTRB  
LDS  
EROMCTL  
Up  
Port E I/O, low byte data  
strobe, EROMON control  
DDR  
PE2  
PE1  
R/W  
IRQ  
WE  
V
V
PUCR  
PUCR  
Up  
Up  
Port E I/O, read/write  
DDR  
DDR  
Port E Input, maskable  
interrupt  
PE0  
XIRQ  
V
PUCR  
Up  
Port E input, non-maskable  
interrupt  
DDR  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
75  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 1 Device Overview (MC9S12XDP512V2)  
Table 1-3. Signal Properties Summary (Sheet 2 of 4)  
Internal Pull  
Resistor  
Pin  
Name  
Pin  
Name  
Pin  
Name  
Pin  
Name  
Pin  
Name  
Power  
Supply  
Description  
Reset  
State  
Function 1 Function 2 Function 3 Function 4 Function 5  
CTRL  
PH7  
PH6  
PH5  
PH4  
PH3  
PH2  
PH1  
PH0  
PJ7  
KWH7  
KWH6  
KWH5  
KWH4  
KWH3  
KWH2  
KWH1  
KWH0  
KWJ7  
SS2  
SCK2  
TXD5  
RXD5  
TXD4  
RXD4  
V
V
V
V
V
V
V
V
V
PERH/PPSH Disabled Port H I/O, interrupt, SS of  
SPI2, TXD of SCI5  
DDR  
DDR  
DDR  
DDR  
DDR  
DDR  
DDR  
DDR  
DDX  
PERH/  
PPSH  
Disabled Port H I/O, interrupt, SCK of  
SPI2, RXD of SCI5  
MOSI2  
MISO2  
SS1  
PERH/  
PPSH  
Disabled Port H I/O, interrupt, MOSI  
of SPI2, TXD of SCI4  
PERH/PPSH Disabled Port H I/O, interrupt, MISO  
of SPI2, RXD of SCI4  
PERH/PPSH Disabled Port H I/O, interrupt, SS of  
SPI1  
SCK1  
PERH/PPSH Disabled Port H I/O, interrupt, SCK of  
SPI1  
MOSI1  
MISO1  
TXCAN4  
PERH/PPSH Disabled Port H I/O, interrupt, MOSI  
of SPI1  
PERH/PPSH Disabled Port H I/O, interrupt, MISO  
of SPI1  
SCL0  
TXCAN0  
PERJ/  
PPSJ  
Up  
Port J I/O, interrupt, TX of  
CAN4, SCL of IIC0, TX of  
CAN0  
PJ6  
KWJ6  
RXCAN4  
SDA0  
RXCAN0  
V
PERJ/  
PPSJ  
Up  
Port J I/O, interrupt, RX of  
CAN4, SDA of IIC0, RX of  
CAN0  
DDX  
PJ5  
PJ4  
KWJ5  
KWJ4  
KWJ2  
KWJ1  
KWJ0  
EWAIT  
SCL1  
SDA1  
CS2  
CS0  
V
V
V
V
V
V
V
PERJ/  
PPSJ  
Up  
Up  
Up  
Up  
Up  
Up  
Up  
Port J I/O, interrupt, SCL of  
IIC1, chip select 2  
DDX  
DDX  
DDX  
DDX  
DDX  
DDX  
DDX  
PERJ/  
PPSJ  
Port J I/O, interrupt, SDA of  
IIC1, chip select 0  
PJ2  
CS1  
PERJ/  
PPSJ  
Port J I/O, interrupt, chip  
select 1  
PJ1  
TXD2  
PERJ/  
PPSJ  
Port J I/O, interrupt, TXD of  
SCI2  
PJ0  
RXD2  
CS3  
PERJ/  
PPSJ  
Port J I/O, interrupt, RXD of  
SCI2  
PK7  
ROMCTL  
ACC[2:0]  
PUCR  
Port K I/O, EWAIT input,  
ROM on control  
PK[6:4]  
ADDR  
[22:20]  
PUCR  
Port K I/O, extended  
addresses, access source  
for external access  
PK3  
PK2  
PK1  
ADDR19  
ADDR18  
ADDR17  
IQSTAT3  
IQSTAT2  
IQSTAT1  
V
V
V
PUCR  
PUCR  
PUCR  
Up  
Up  
Up  
Extended address, PIPE  
status  
DDX  
DDX  
DDX  
Extended address, PIPE  
status  
Extended address, PIPE  
status  
MC9S12XDP512 Data Sheet, Rev. 2.11  
76  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
Table 1-3. Signal Properties Summary (Sheet 3 of 4)  
Internal Pull  
Resistor  
Pin  
Name  
Pin  
Name  
Pin  
Name  
Pin  
Name  
Pin  
Name  
Power  
Supply  
Description  
Reset  
Function 1 Function 2 Function 3 Function 4 Function 5  
CTRL  
State  
PK0  
PM7  
PM6  
PM5  
PM4  
PM3  
PM2  
ADDR16  
TXCAN3  
RXCAN3  
TXCAN2  
RXCAN2  
TXCAN1  
RXCAN1  
IQSTAT0  
TXD3  
V
V
V
V
V
V
V
PUCR  
Up  
Extended address, PIPE  
status  
DDX  
DDX  
DDX  
DDX  
DDX  
DDX  
DDX  
TXCAN4  
RXCAN4  
TXCAN4  
RXCAN4  
PERM/  
PPSM  
Disabled Port M I/O, TX of CAN3 and  
CAN4, TXD of SCI3  
RXD3  
PERM/PPSM Disabled Port M I/O RX of CAN3 and  
CAN4, RXD of SCI3  
TXCAN0  
RXCAN0  
TXCAN0  
RXCAN0  
SCK0  
MOSI0  
SS0  
PERM/PPSM Disabled Port M I/OCAN0, CAN2,  
CAN4, SCK of SPI0  
PERM/PPSM Disabled Port M I/O, CAN0, CAN2,  
CAN4, MOSI of SPI0  
PERM/PPSM Disabled Port M I/O TX of CAN1,  
CAN0, SS of SPI0  
MISO0  
PERM/PPSM Disabled Port M I/O, RX of CAN1,  
CAN0, MISO of SPI0  
PM1  
PM0  
PP7  
TXCAN0  
RXCAN0  
KWP7  
V
V
V
PERM/PPSM Disabled Port M I/O, TX of CAN0  
PERM/PPSM Disabled Port M I/O, RX of CAN0  
DDX  
DDX  
DDX  
PWM7  
SCK2  
PERP/  
PPSP  
Disabled Port P I/O, interrupt, channel  
7
of PWM, SCK of SPI2  
PP6  
PP5  
PP4  
PP3  
PP2  
PP1  
PP0  
PS7  
PS6  
PS5  
PS4  
KWP6  
KWP5  
KWP4  
KWP3  
KWP2  
KWP1  
KWP0  
SS0  
PWM6  
PWM5  
PWM4  
PWM3  
PWM2  
PWM1  
PWM0  
SS2  
MOSI2  
MISO2  
SS1  
V
V
V
V
V
V
V
V
V
V
V
PERP/  
PPSP  
Disabled Port P I/O, interrupt, channel  
6 of PWM, SS of SPI2  
DDX  
DDX  
DDX  
DDX  
DDX  
DDX  
DDX  
DDX  
DDX  
DDX  
DDX  
PERP/  
PPSP  
Disabled Port P I/O, interrupt, channel  
5 of PWM, MOSI of SPI2  
PERP/  
PPSP  
Disabled Port P I/O, interrupt, channel  
4 of PWM, MISO2 of SPI2  
PERP/  
PPSP  
Disabled Port P I/O, interrupt, channel  
3 of PWM, SS of SPI1  
SCK1  
MOSI1  
MISO1  
PERP/  
PPSP  
Disabled Port P I/O, interrupt, channel  
2 of PWM, SCK of SPI1  
PERP/  
PPSP  
Disabled Port P I/O, interrupt, channel  
1 of PWM, MOSI of SPI1  
PERP/  
PPSP  
Disabled Port P I/O, interrupt, channel  
0 of PWM, MISO2 of SPI1  
PERS/  
PPSS  
Up  
Up  
Up  
Up  
Port S I/O, SS of SPI0  
Port S I/O, SCK of SPI0  
Port S I/O, MOSI of SPI0  
Port S I/O, MISO of SPI0  
SCK0  
MOSI0  
MISO0  
PERS/  
PPSS  
PERS/  
PPSS  
PERS/  
PPSS  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
77  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
Table 1-3. Signal Properties Summary (Sheet 4 of 4)  
Internal Pull  
Resistor  
Pin  
Name  
Pin  
Name  
Pin  
Name  
Pin  
Name  
Pin  
Name  
Power  
Supply  
Description  
Reset  
Function 1 Function 2 Function 3 Function 4 Function 5  
CTRL  
State  
PS3  
PS2  
TXD1  
RXD1  
V
V
V
V
V
PERS/  
PPSS  
Up  
Port S I/O, TXD of SCI1  
Port S I/O, RXD of SCI1  
Port S I/O, TXD of SCI0  
Port S I/O, RXD of SCI0  
DDX  
DDX  
DDX  
DDX  
DDX  
PERS/  
PPSS  
Up  
Up  
Up  
PS1  
TXD0  
PERS/  
PPSS  
PS0  
RXD0  
PERS/  
PPSS  
PT[7:0]  
IOC[7:0]  
PERT/  
PPST  
Disabled Port T I/O, timer channels  
NOTE  
pins should be configured as outputs after reset in order to avoid current  
drawn from floating inputs. Refer to Table 1-3 for affected pins.  
1.2.3  
Detailed Signal Descriptions  
EXTAL, XTAL — Oscillator Pins  
1.2.3.1  
EXTAL and XTAL are the crystal driver and external clock pins. On reset all the device clocks are derived  
from the EXTAL input frequency. XTAL is the crystal output.  
1.2.3.2  
RESET — External Reset Pin  
The RESET pin is an active low bidirectional control signal. It acts as an input to initialize the MCU to a  
known start-up state, and an output when an internal MCU function causes a reset.The RESET pin has an  
internal pullup device.  
1.2.3.3  
TEST — Test Pin  
This input only pin is reserved for test. This pin has a pulldown device.  
NOTE  
The TEST pin must be tied to V in all applications.  
SS  
1.2.3.4  
V
— Voltage Regulator Enable Pin  
REGEN  
This input only pin enables or disables the on-chip voltage regulator. The input has a pullup device.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
78  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 1 Device Overview (MC9S12XDP512V2)  
1.2.3.5  
XFC — PLL Loop Filter Pin  
Please ask your Freescale representative for the interactive application note to compute PLL loop filter  
elements. Any current leakage on this pin must be avoided.  
V
V
DDPLL  
DDPLL  
C
S
MCU  
C
P
R
0
XFC  
Figure 1-8. PLL Loop Filter Connections  
1.2.3.6  
BKGD / MODC — Background Debug and Mode Pin  
The BKGD/MODC pin is used as a pseudo-open-drain pin for the background debug communication. It  
is used as a MCU operating mode select pin during reset. The state of this pin is latched to the MODC bit  
at the rising edge of RESET. The BKGD pin has a pullup device.  
1.2.3.7  
PAD[23:8] / AN[23:8] — Port AD Input Pins of ATD1  
PAD[23:8] are general-purpose input or output pins and analog inputs AN[23:8] of the analog-to-digital  
converter ATD1.  
1.2.3.8  
PAD[7:0] / AN[7:0] — Port AD Input Pins of ATD0  
PAD[7:0] are general-purpose input or output pins and analog inputs AN[7:0] of the analog-to-digital  
converter ATD0.  
1.2.3.9  
PA[7:0] / ADDR[15:8] / IVD[15:8] — Port A I/O Pins  
PA[7:0] are general-purpose input or output pins. In MCU expanded modes of operation, these pins are  
used for the external address bus. In MCU emulation modes of operation, these pins are used for external  
address bus and internal visibility read data.  
1.2.3.10 PB[7:1] / ADDR[7:1] / IVD[7:1] — Port B I/O Pins  
PB[7:1] are general-purpose input or output pins. In MCU expanded modes of operation, these pins are  
used for the external address bus. In MCU emulation modes of operation, these pins are used for external  
address bus and internal visibility read data.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
79  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
1.2.3.11 PB0 / ADDR0 / UDS / IVD[0] — Port B I/O Pin 0  
PB0 is a general-purpose input or output pin. In MCU expanded modes of operation, this pin is used for  
the external address bus ADDR0 or as upper data strobe signal. In MCU emulation modes of operation,  
this pin is used for external address bus ADDR0 and internal visibility read data IVD0.  
1.2.3.12 PC[7:0] / DATA [15:8] — Port C I/O Pins  
PC[7:0] are general-purpose input or output pins. In MCU expanded modes of operation, these pins are  
used for the external data bus.  
The input voltage thresholds for PC[7:0] can be configured to reduced levels, to allow data from an external  
3.3-V peripheral to be read by the MCU operating at 5.0 V. The input voltage thresholds for PC[7:0] are  
configured to reduced levels out of reset in expanded and emulation modes. The input voltage thresholds  
for PC[7:0] are configured to 5-V levels out of reset in normal modes.  
1.2.3.13 PD[7:0] / DATA [7:0] — Port D I/O Pins  
PD[7:0] are general-purpose input or output pins. In MCU expanded modes of operation, these pins are  
used for the external data bus.  
The input voltage thresholds for PD[7:0] can be configured to reduced levels, to allow data from an  
external 3.3-V peripheral to be read by the MCU operating at 5.0 V. The input voltage thresholds for  
PD[7:0] are configured to reduced levels out of reset in expanded and emulation modes. The input voltage  
thresholds for PC[7:0] are configured to 5-V levels out of reset in normal modes.  
1.2.3.14 PE7 / ECLKX2 / XCLKS — Port E I/O Pin 7  
PE7 is a general-purpose input or output pin. The XCLKS is an input signal which controls whether a  
crystal in combination with the internal loop controlled (low power) Pierce oscillator is used or whether  
full swing Pierce oscillator/external clock circuitry is used.  
The XCLKS signal selects the oscillator configuration during reset low phase while a clock quality check  
is ongoing. This is the case for:  
Power on reset or low-voltage reset  
Clock monitor reset  
Any reset while in self-clock mode or full stop mode  
The selected oscillator configuration is frozen with the rising edge of reset.  
The pin can be configured to drive the internal system clock ECLKX2.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
80  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
EXTAL  
MCU  
C
1
Crystal or  
Ceramic Resonator  
XTAL  
C
2
V
SSPLL  
Figure 1-9. Loop Controlled Pierce Oscillator Connections (PE7 = 1)  
EXTAL  
C
1
MCU  
Crystal or  
Ceramic Resonator  
R
B
R
S
XTAL  
C
2
V
SSPLL  
Figure 1-10. Full Swing Pierce Oscillator Connections (PE7 = 0)  
CMOS-Compatible  
External Oscillator  
EXTAL  
MCU  
XTAL  
Not Connected  
Figure 1-11. External Clock Connections (PE7 = 0)  
1.2.3.15 PE6 / MODB / TAGHI — Port E I/O Pin 6  
PE6 is a general-purpose input or output pin. It is used as a MCU operating mode select pin during reset.  
The state of this pin is latched to the MODB bit at the rising edge of RESET. This pin is an input with a  
pull-down device which is only active when RESET is low. TAGHI is used to tag the high half of the  
instruction word being read into the instruction queue.  
The input voltage threshold for PE6 can be configured to reduced levels, to allow data from an external  
3.3-V peripheral to be read by the MCU operating at 5.0 V. The input voltage threshold for PE6 is  
configured to reduced levels out of reset in expanded and emulation modes.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
81  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
1.2.3.16 PE5 / MODA / TAGLO / RE — Port E I/O Pin 5  
PE5 is a general-purpose input or output pin. It is used as a MCU operating mode select pin during reset.  
The state of this pin is latched to the MODA bit at the rising edge of RESET. This pin is shared with the  
read enable RE output. This pin is an input with a pull-down device which is only active when RESET is  
low. TAGLO is used to tag the low half of the instruction word being read into the instruction queue.  
The input voltage threshold for PE5 can be configured to reduced levels, to allow data from an external  
3.3-V peripheral to be read by the MCU operating at 5.0 V. The input voltage threshold for PE5 is  
configured to reduced levels out of reset in expanded and emulation modes.  
1.2.3.17 PE4 / ECLK — Port E I/O Pin 4  
PE4 is a general-purpose input or output pin. It can be configured to drive the internal bus clock ECLK.  
ECLK can be used as a timing reference.  
1.2.3.18 PE3 / LSTRB / LDS / EROMCTL— Port E I/O Pin 3  
PE3 is a general-purpose input or output pin. In MCU expanded modes of operation, LSTRB or LDS can  
be used for the low byte strobe function to indicate the type of bus access. At the rising edge of RESET  
the state of this pin is latched to the EROMON bit.  
1.2.3.19 PE2 / R/W / WE— Port E I/O Pin 2  
PE2 is a general-purpose input or output pin. In MCU expanded modes of operations, this pin drives the  
read/write output signal or write enable output signal for the external bus. It indicates the direction of data  
on the external bus.  
1.2.3.20 PE1 / IRQ — Port E Input Pin 1  
PE1 is a general-purpose input pin and the maskable interrupt request input that provides a means of  
applying asynchronous interrupt requests. This will wake up the MCU from stop or wait mode.  
1.2.3.21 PE0 / XIRQ — Port E Input Pin 0  
PE0 is a general-purpose input pin and the non-maskable interrupt request input that provides a means of  
applying asynchronous interrupt requests. This will wake up the MCU from stop or wait mode.  
1.2.3.22 PH7 / KWH7 / SS2 / TXD5 — Port H I/O Pin 7  
PH7 is a general-purpose input or output pin. It can be configured to generate an interrupt causing the  
MCU to exit stop or wait mode. It can be configured as slave select pin SS of the serial peripheral  
interface 2 (SPI2). It can be configured as the transmit pin TXD of serial communication interface 5  
(SCI5).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
82  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
1.2.3.23 PH6 / KWH6 / SCK2 / RXD5 — Port H I/O Pin 6  
PH6 is a general-purpose input or output pin. It can be configured to generate an interrupt causing the  
MCU to exit stop or wait mode. It can be configured as serial clock pin SCK of the serial peripheral  
interface 2 (SPI2). It can be configured as the receive pin (RXD) of serial communication interface 5  
(SCI5).  
1.2.3.24 PH5 / KWH5 / MOSI2 / TXD4 — Port H I/O Pin 5  
PH5 is a general-purpose input or output pin. It can be configured to generate an interrupt causing the  
MCU to exit stop or wait mode. It can be configured as master output (during master mode) or slave input  
pin (during slave mode) MOSI of the serial peripheral interface 2 (SPI2). It can be configured as the  
transmit pin TXD of serial communication interface 4 (SCI4).  
1.2.3.25 PH4 / KWH4 / MISO2 / RXD4 — Port H I/O Pin 4  
PH4 is a general-purpose input or output pin. It can be configured to generate an interrupt causing the  
MCU to exit stop or wait mode. It can be configured as master input (during master mode) or slave output  
(during slave mode) pin MISO of the serial peripheral interface 2 (SPI2). It can be configured as the receive  
pin RXD of serial communication interface 4 (SCI4).  
1.2.3.26 PH3 / KWH3 / SS1 — Port H I/O Pin 3  
PH3 is a general-purpose input or output pin. It can be configured to generate an interrupt causing the  
MCU to exit stop or wait mode. It can be configured as slave select pin SS of the serial peripheral  
interface 1 (SPI1).  
1.2.3.27 PH2 / KWH2 / SCK1 — Port H I/O Pin 2  
PH2 is a general-purpose input or output pin. It can be configured to generate an interrupt causing the  
MCU to exit stop or wait mode. It can be configured as serial clock pin SCK of the serial peripheral  
interface 1 (SPI1).  
1.2.3.28 PH1 / KWH1 / MOSI1 — Port H I/O Pin 1  
PH1 is a general-purpose input or output pin. It can be configured to generate an interrupt causing the  
MCU to exit stop or wait mode. It can be configured as master output (during master mode) or slave input  
pin (during slave mode) MOSI of the serial peripheral interface 1 (SPI1).  
1.2.3.29 PH0 / KWH0 / MISO1 — Port H I/O Pin 0  
PH0 is a general-purpose input or output pin. It can be configured to generate an interrupt causing the  
MCU to exit stop or wait mode. It can be configured as master input (during master mode) or slave output  
(during slave mode) pin MISO of the serial peripheral interface 1 (SPI1).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
83  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
1.2.3.30 PJ7 / KWJ7 / TXCAN4 / SCL0 / TXCAN0— PORT J I/O Pin 7  
PJ7 is a general-purpose input or output pin. It can be configured to generate an interrupt causing the MCU  
to exit stop or wait mode. It can be configured as the transmit pin TXCAN for the scalable controller area  
network controller 0 or 4 (CAN0 or CAN4) or as the serial clock pin SCL of the IIC0 module.  
1.2.3.31 PJ6 / KWJ6 / RXCAN4 / SDA0 / RXCAN0 — PORT J I/O Pin 6  
PJ6 is a general-purpose input or output pin. It can be configured to generate an interrupt causing the MCU  
to exit stop or wait mode. It can be configured as the receive pin RXCAN for the scalable controller area  
network controller 0 or 4 (CAN0 or CAN4) or as the serial data pin SDA of the IIC0 module.  
1.2.3.32 PJ5 / KWJ5 / SCL1 / CS2 — PORT J I/O Pin 5  
PJ5 is a general-purpose input or output pin. It can be configured to generate an interrupt causing the MCU  
to exit stop or wait mode. It can be configured as the serial clock pin SCL of the IIC1 module. It can be  
configured to provide a chip-select output.  
1.2.3.33 PJ4 / KWJ4 / SDA1 / CS0 — PORT J I/O Pin 4  
PJ4 is a general-purpose input or output pin. It can be configured to generate an interrupt causing the MCU  
to exit stop or wait mode. It can be configured as the serial data pin SDA of the IIC1 module. It can be  
configured to provide a chip-select output.  
1.2.3.34 PJ2 / KWJ2 / CS1 — PORT J I/O Pin 2  
PJ2 is a general-purpose input or output pins. It can be configured to generate an interrupt causing the  
MCU to exit stop or wait mode. It can be configured to provide a chip-select output.  
1.2.3.35 PJ1 / KWJ1 / TXD2 — PORT J I/O Pin 1  
PJ1 is a general-purpose input or output pin. It can be configured to generate an interrupt causing the MCU  
to exit stop or wait mode. It can be configured as the transmit pin TXD of the serial communication  
interface 2 (SCI2).  
1.2.3.36 PJ0 / KWJ0 / RXD2 / CS3 — PORT J I/O Pin 0  
PJ0 is a general-purpose input or output pin. It can be configured to generate an interrupt causing the MCU  
to exit stop or wait mode. It can be configured as the receive pin RXD of the serial communication interface  
2 (SCI2).It can be configured to provide a chip-select output.  
1.2.3.37 PK7 / EWAIT / ROMCTL — Port K I/O Pin 7  
PK7 is a general-purpose input or output pin. During MCU emulation modes and normal expanded modes  
of operation, this pin is used to enable the Flash EEPROM memory in the memory map (ROMCTL). At  
the rising edge of RESET, the state of this pin is latched to the ROMON bit. The EWAIT input signal  
MC9S12XDP512 Data Sheet, Rev. 2.11  
84  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
maintains the external bus access until the external device is ready to capture data (write) or provide data  
(read).  
The input voltage threshold for PK7 can be configured to reduced levels, to allow data from an external  
3.3-V peripheral to be read by the MCU operating at 5.0 V. The input voltage threshold for PK7 is  
configured to reduced levels out of reset in expanded and emulation modes.  
1.2.3.38 PK[6:4] / ADDR[22:20] / ACC[2:0] — Port K I/O Pin [6:4]  
PK[6:4] are general-purpose input or output pins. During MCU expanded modes of operation, the  
ACC[2:0] signals are used to indicate the access source of the bus cycle. This pins also provide the  
expanded addresses ADDR[22:20] for the external bus. In Emulation modes ACC[2:0] is available and is  
time multiplexed with the high addresses  
1.2.3.39 PK[3:0] / ADDR[19:16] / IQSTAT[3:0] — Port K I/O Pins [3:0]  
PK3-PK0 are general-purpose input or output pins. In MCU expanded modes of operation, these pins  
provide the expanded address ADDR[19:16] for the external bus and carry instruction pipe information.  
1.2.3.40 PM7 / TXCAN3 / TXCAN4 / TXD3 — Port M I/O Pin 7  
PM7 is a general-purpose input or output pin. It can be configured as the transmit pin TXCAN of the  
scalable controller area network controller 3 or 4 (CAN3 or CAN4). PM7 can be configured as the transmit  
pin TXD3 of the serial communication interface 3 (SCI3).  
1.2.3.41 PM6 / RXCAN3 / RXCAN4 / RXD3 — Port M I/O Pin 6  
PM6 is a general-purpose input or output pin. It can be configured as the receive pin RXCAN of the  
scalable controller area network controller 3 or 4 (CAN3 or CAN4). PM6 can be configured as the receive  
pin RXD3 of the serial communication interface 3 (SCI3).  
1.2.3.42 PM5 / TXCAN0 / TXCAN2 / TXCAN4 / SCK0 — Port M I/O Pin 5  
PM5 is a general-purpose input or output pin. It can be configured as the transmit pin TXCAN of the  
scalable controller area network controllers 0, 2 or 4 (CAN0, CAN2, or CAN4). It can be configured as  
the serial clock pin SCK of the serial peripheral interface 0 (SPI0).  
1.2.3.43 PM4 / RXCAN0 / RXCAN2 / RXCAN4 / MOSI0 — Port M I/O Pin 4  
PM4 is a general-purpose input or output pin. It can be configured as the receive pin RXCAN of the  
scalable controller area network controllers 0, 2, or 4 (CAN0, CAN2, or CAN4). It can be configured as  
the master output (during master mode) or slave input pin (during slave mode) MOSI for the serial  
peripheral interface 0 (SPI0).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
85  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
1.2.3.44 PM3 / TXCAN1 / TXCAN0 / SS0 — Port M I/O Pin 3  
PM3 is a general-purpose input or output pin. It can be configured as the transmit pin TXCAN of the  
scalable controller area network controllers 1 or 0 (CAN1 or CAN0). It can be configured as the slave  
select pin SS of the serial peripheral interface 0 (SPI0).  
1.2.3.45 PM2 / RXCAN1 / RXCAN0 / MISO0 — Port M I/O Pin 2  
PM2 is a general-purpose input or output pin. It can be configured as the receive pin RXCAN of the  
scalable controller area network controllers 1 or 0 (CAN1 or CAN0). It can be configured as the master  
input (during master mode) or slave output pin (during slave mode) MISO for the serial peripheral  
interface 0 (SPI0).  
1.2.3.46 PM1 / TXCAN0 — Port M I/O Pin 1  
PM1 is a general-purpose input or output pin. It can be configured as the transmit pin TXCAN of the  
scalable controller area network controller 0 (CAN0).  
1.2.3.47 PM0 / RXCAN0 — Port M I/O Pin 0  
PM0 is a general-purpose input or output pin. It can be configured as the receive pin RXCAN of the  
scalable controller area network controller 0 (CAN0).  
1.2.3.48 PP7 / KWP7 / PWM7 / SCK2 — Port P I/O Pin 7  
PP7 is a general-purpose input or output pin. It can be configured to generate an interrupt causing the MCU  
to exit stop or wait mode. It can be configured as pulse width modulator (PWM) channel 7 output. It can  
be configured as serial clock pin SCK of the serial peripheral interface 2 (SPI2).  
1.2.3.49 PP6 / KWP6 / PWM6 / SS2 — Port P I/O Pin 6  
PP6 is a general-purpose input or output pin. It can be configured to generate an interrupt causing the MCU  
to exit stop or wait mode. It can be configured as pulse width modulator (PWM) channel 6 output. It can  
be configured as slave select pin SS of the serial peripheral interface 2 (SPI2).  
1.2.3.50 PP5 / KWP5 / PWM5 / MOSI2 — Port P I/O Pin 5  
PP5 is a general-purpose input or output pin. It can be configured to generate an interrupt causing the MCU  
to exit stop or wait mode. It can be configured as pulse width modulator (PWM) channel 5 output. It can  
be configured as master output (during master mode) or slave input pin (during slave mode) MOSI of the  
serial peripheral interface 2 (SPI2).  
1.2.3.51 PP4 / KWP4 / PWM4 / MISO2 — Port P I/O Pin 4  
PP4 is a general-purpose input or output pin. It can be configured to generate an interrupt causing the MCU  
to exit stop or wait mode. It can be configured as pulse width modulator (PWM) channel 4 output. It can  
MC9S12XDP512 Data Sheet, Rev. 2.11  
86  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
be configured as master input (during master mode) or slave output (during slave mode) pin MISO of the  
serial peripheral interface 2 (SPI2).  
1.2.3.52 PP3 / KWP3 / PWM3 / SS1 — Port P I/O Pin 3  
PP3 is a general-purpose input or output pin. It can be configured to generate an interrupt causing the MCU  
to exit stop or wait mode. It can be configured as pulse width modulator (PWM) channel 3 output. It can  
be configured as slave select pin SS of the serial peripheral interface 1 (SPI1).  
1.2.3.53 PP2 / KWP2 / PWM2 / SCK1 — Port P I/O Pin 2  
PP2 is a general-purpose input or output pin. It can be configured to generate an interrupt causing the MCU  
to exit stop or wait mode. It can be configured as pulse width modulator (PWM) channel 2 output. It can  
be configured as serial clock pin SCK of the serial peripheral interface 1 (SPI1).  
1.2.3.54 PP1 / KWP1 / PWM1 / MOSI1 — Port P I/O Pin 1  
PP1 is a general-purpose input or output pin. It can be configured to generate an interrupt causing the MCU  
to exit stop or wait mode. It can be configured as pulse width modulator (PWM) channel 1 output. It can  
be configured as master output (during master mode) or slave input pin (during slave mode) MOSI of the  
serial peripheral interface 1 (SPI1).  
1.2.3.55 PP0 / KWP0 / PWM0 / MISO1 — Port P I/O Pin 0  
PP0 is a general-purpose input or output pin. It can be configured to generate an interrupt causing the MCU  
to exit stop or wait mode. It can be configured as pulse width modulator (PWM) channel 0 output. It can  
be configured as master input (during master mode) or slave output (during slave mode) pin MISO of the  
serial peripheral interface 1 (SPI1).  
1.2.3.56 PS7 / SS0 — Port S I/O Pin 7  
PS7 is a general-purpose input or output pin. It can be configured as the slave select pin SS of the serial  
peripheral interface 0 (SPI0).  
1.2.3.57 PS6 / SCK0 — Port S I/O Pin 6  
PS6 is a general-purpose input or output pin. It can be configured as the serial clock pin SCK of the serial  
peripheral interface 0 (SPI0).  
1.2.3.58 PS5 / MOSI0 — Port S I/O Pin 5  
PS5 is a general-purpose input or output pin. It can be configured as master output (during master mode)  
or slave input pin (during slave mode) MOSI of the serial peripheral interface 0 (SPI0).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
87  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
1.2.3.59 PS4 / MISO0 — Port S I/O Pin 4  
PS4 is a general-purpose input or output pin. It can be configured as master input (during master mode) or  
slave output pin (during slave mode) MOSI of the serial peripheral interface 0 (SPI0).  
1.2.3.60 PS3 / TXD1 — Port S I/O Pin 3  
PS3 is a general-purpose input or output pin. It can be configured as the transmit pin TXD of serial  
communication interface 1 (SCI1).  
1.2.3.61 PS2 / RXD1 — Port S I/O Pin 2  
PS2 is a general-purpose input or output pin. It can be configured as the receive pin RXD of serial  
communication interface 1 (SCI1).  
1.2.3.62 PS1 / TXD0 — Port S I/O Pin 1  
PS1 is a general-purpose input or output pin. It can be configured as the transmit pin TXD of serial  
communication interface 0 (SCI0).  
1.2.3.63 PS0 / RXD0 — Port S I/O Pin 0  
PS0 is a general-purpose input or output pin. It can be configured as the receive pin RXD of serial  
communication interface 0 (SCI0).  
1.2.3.64 PT[7:0] / IOC[7:0] — Port T I/O Pins [7:0]  
PT[7:0] are general-purpose input or output pins. They can be configured as input capture or output  
compare pins IOC[7:0] of the enhanced capture timer (ECT).  
1.2.4  
Power Supply Pins  
MC9S12XDP512 power and ground pins are described below.  
NOTE  
All V pins must be connected together in the application.  
SS  
1.2.4.1  
V
, V  
, V  
,V  
— Power and Ground Pins for I/O Drivers  
DDX1  
DDX2  
SSX1 SSX2  
External power and ground for I/O drivers. Because fast signal transitions place high, short-duration  
current demands on the power supply, use bypass capacitors with high-frequency characteristics and place  
them as close to the MCU as possible. Bypass requirements depend on how heavily the MCU pins are  
loaded.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
88  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 1 Device Overview (MC9S12XDP512V2)  
1.2.4.2  
V
, V  
, V  
, V — Power and Ground Pins for I/O Drivers  
SSR2  
DDR1  
DDR2  
SSR1  
and for Internal Voltage Regulator  
External power and ground for I/O drivers and input to the internal voltage regulator. Because fast signal  
transitions place high, short-duration current demands on the power supply, use bypass capacitors with  
high-frequency characteristics and place them as close to the MCU as possible. Bypass requirements  
depend on how heavily the MCU pins are loaded.  
1.2.4.3  
V
, V  
, V  
, V  
— Core Power Pins  
SS2  
DD1  
DD2  
SS1  
Power is supplied to the MCU through V and V . Because fast signal transitions place high,  
DD  
SS  
short-duration current demands on the power supply, use bypass capacitors with high-frequency  
characteristics and place them as close to the MCU as possible. This 2.5-V supply is derived from the  
internal voltage regulator. There is no static load on those pins allowed. The internal voltage regulator is  
turned off, if V  
is tied to ground.  
REGEN  
NOTE  
No load allowed except for bypass capacitors.  
1.2.4.4  
V
, V  
— Power Supply Pins for ATD and V  
SSA REG  
DDA  
V
, V  
are the power supply and ground input pins for the voltage regulator and the analog-to-digital  
DDA SSA  
converters.  
1.2.4.5  
V , V — ATD Reference Voltage Input Pins  
RH RL  
V
and V are the reference voltage input pins for the analog-to-digital converter.  
RL  
RH  
1.2.4.6  
V
, V  
— Power Supply Pins for PLL  
SSPLL  
DDPLL  
Provides operating voltage and ground for the oscillator and the phased-locked loop. This allows the  
supply voltage to the oscillator and PLL to be bypassed independently. This 2.5-V voltage is generated by  
the internal voltage regulator.  
NOTE  
No load allowed except for bypass capacitors.  
1.2.4.7  
V
— On--Chip Voltage Regulator Enable  
REGEN  
Enables the internal 5 V to 2.5 V voltage regulator. If this pin is tied low, V  
supplied externally.  
and V  
must be  
DD1,2  
DDPLL  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
89  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
Table 1-4. MC9S12XDP512 Power and Ground Connection Summary  
Pin Number  
Nominal  
Voltage  
Mnemonic  
Description  
144-Pin  
LQFP  
112-Pin  
LQFP  
80-Pin  
QFP  
V
15, 87  
16, 88  
53  
13, 65  
14, 66  
41  
9, 49  
10, 50  
29  
2.5 V  
0V  
Internal power and ground generated by  
internal regulator  
DD1, 2  
V
SS1, 2  
V
5.0 V  
0 V  
External power and ground, supply to pin  
drivers and internal voltage regulator  
DDR1  
V
52  
40  
28  
SSR1  
DDX1  
V
139  
138  
26  
107  
106  
N.A.  
N.A.  
N.A.  
N.A.  
83  
77  
5.0 V  
0 V  
External power and ground, supply to pin  
drivers  
V
76  
SSX1  
V
N.A.  
N.A.  
N.A.  
N.A.  
59  
5.0 V  
0 V  
External power and ground, supply to pin  
drivers  
DDX2  
V
27  
SSX2  
DDR2  
V
82  
5.0 V  
0 V  
External power and ground, supply to pin  
drivers  
V
81  
SSR2  
V
107  
110  
5.0 V  
0 V  
Operating voltage and ground for the  
analog-to-digital converters and the  
reference for the internal voltage regulator,  
allows the supply voltage to the A/D to be  
bypassed independently.  
DDA  
SSA  
V
86  
62  
V
109  
108  
55  
85  
84  
43  
45  
61  
60  
31  
33  
0 V  
5.0 V  
2.5 V  
0 V  
Reference voltages for the analog-to-digital  
converter.  
RL  
V
RH  
V
Provides operating voltage and ground for  
the phased-locked loop. This allows the  
supply voltage to the PLL to be bypassed  
independently. Internal power and ground  
generated by internal regulator.  
DDPLL  
V
57  
SSPLL  
V
127  
97  
N.A.  
5V  
Internal voltage regulator enable/disable  
REGEN  
MC9S12XDP512 Data Sheet, Rev. 2.11  
90  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
1.3  
System Clock Description  
The clock and reset generator module (CRG) provides the internal clock signals for the core and all  
peripheral modules. Figure 1-12 shows the clock connections from the CRG to all modules.  
Consult the CRG Block User Guide for details on clock generation.  
SCI0 . . SCI 5  
CAN0 . . CAN4  
SPI0 . . SPI2  
IIC0 & IIC1  
ATD0 & ATD1  
Bus Clock  
PIT  
EXTAL  
Oscillator Clock  
ECT  
CRG  
PIM  
XTAL  
Core Clock  
RAM  
S12X  
XGATE  
FLASH  
EEPROM  
Figure 1-12. Clock Connections  
The MCU’s system clock can be supplied in several ways enabling a range of system operating frequencies  
to be supported:  
The on-chip phase locked loop (PLL)  
the PLL self clocking  
the oscillator  
The clock generated by the PLL or oscillator provides the main system clock frequencies core clock and  
bus clock. As shown in Figure 1-12, this system clocks are used throughout the MCU to drive the core, the  
memories, and the peripherals.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
91  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 1 Device Overview (MC9S12XDP512V2)  
The program Flash memory and the EEPROM are supplied by the bus clock and the oscillator clock.The  
oscillator clock is used as a time base to derive the program and erase times for the NVM’s. Consult the  
FTX512k4 Block Guide and the EETX4K Block Guide for more details on the operation of the NVM’s.  
The CAN modules may be configured to have their clock sources derived either from the bus clock or  
directly from the oscillator clock. This allows the user to select its clock based on the required jitter  
performance. Consult MSCAN block description for more details on the operation and configuration of  
the CAN blocks.  
In order to ensure the presence of the clock the MCU includes an on-chip clock monitor connected to the  
output of the oscillator. The clock monitor can be configured to invoke the PLL self-clocking mode or to  
generate a system reset if it is allowed to time out as a result of no oscillator clock being present.  
In addition to the clock monitor, the MCU also provides a clock quality checker which performs a more  
accurate check of the clock. The clock quality checker counts a predetermined number of clock edges  
within a defined time window to insure that the clock is running. The checker can be invoked following  
specific events such as on wake-up or clock monitor failure.  
1.4  
Chip Configuration Summary  
The MCU can operate in six different modes. The different modes, the state of ROMCTL and EROMCTL  
signal on rising edge of RESET, and the security state of the MCU affects the following device  
characteristics:  
External bus interface configuration  
Flash in memory map, or not  
Debug features enabled or disabled  
The operating mode out of reset is determined by the states of the MODC, MODB, and MODA signals  
during reset (see Table 1-5). The MODC, MODB, and MODA bits in the MODE register show the current  
operating mode and provide limited mode switching during operation. The states of the MODC, MODB,  
and MODA signals are latched into these bits on the rising edge of RESET.  
In normal expanded mode and in emulation modes the ROMON bit and the EROMON bit in the  
MMCCTL1 register defines if the on chip flash memory is the memory map, or not. (See Table 1-5.) For  
a detailed description of the ROMON and EROMON bits refer to the S12X_MMC Block Guide.  
The state of the ROMCTL signal is latched into the ROMON bit in the MMCCTL1 register on the rising  
edge of RESET. The state of the EROMCTL signal is latched into the EROMON bit in the MISC register  
on the rising edge of RESET.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
92  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 1 Device Overview (MC9S12XDP512V2)  
Table 1-5. Chip Modes and Data Sources  
BKGD =  
MODC  
PE6 =  
MODB  
PE5 =  
MODA  
PK7 =  
ROMCTL  
PE3 =  
EROMCTL  
1
Chip Modes  
Data Source  
Normal single chip  
Special single chip  
Emulation single chip  
1
0
0
0
0
0
0
0
1
X
X
Internal  
X
X
0
1
0
1
1
0
1
0
1
Emulation memory  
Internal Flash  
Normal expanded  
1
0
0
1
1
1
X
X
X
0
External application  
Internal Flash  
Emulation expanded  
External application  
Emulation memory  
Internal Flash  
1
Special test  
0
1
0
X
X
External application  
Internal Flash  
1
Internal means resources inside the MCU are read/written.  
Internal Flash means Flash resources inside the MCU are read/written.  
Emulation memory means resources inside the emulator are read/written (PRU registers, Flash replacement, RAM, EEPROM,  
and register space are always considered internal).  
External application means resources residing outside the MCU are read/written.  
The configuration of the oscillator can be selected using the XCLKS signal (see Table 1-6). For a detailed  
description please refer to the CRG Block Guide.  
Table 1-6. Clock Selection Based on PE7  
PE7 = XCLKS  
Description  
0
1
Full swing Pierce oscillator or external clock source selected  
Loop controlled Pierce oscillator selected  
The logic level on the voltage regulator enable pin V  
regulator is enabled or disabled (see Table 1-7).  
determines whether the on-chip voltage  
REGEN  
Table 1-7. Voltage Regulator VREGEN  
V
Description  
REGEN  
1
0
Internal voltage regulator enabled  
Internal voltage regulator disabled, V  
supplied externally  
and V  
must be  
DDPLL  
DD1,2  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
93  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
1.5  
Modes of Operation  
1.5.1  
User Modes  
1.5.1.1  
Normal Expanded Mode  
Ports K, A, and B are configured as a 23-bit address bus, ports C and D are configured as a 16-bit data bus,  
and port E provides bus control and status signals. This mode allows 16-bit external memory and  
peripheral devices to be interfaced to the system. The fastest external bus rate is divide by 2 from the  
internal bus rate.  
1.5.1.2  
Normal Single-Chip Mode  
There is no external bus in this mode. The processor program is executed from internal memory. Ports A,  
B,C,D, K, and most pins of port E are available as general-purpose I/O.  
1.5.1.3  
Special Single-Chip Mode  
This mode is used for debugging single-chip operation, boot-strapping, or security related operations. The  
background debug module BDM is active in this mode. The CPU executes a monitor program located in  
an on-chip ROM. BDM firmware is waiting for additional serial commands through the BKGD pin. There  
is no external bus after reset in this mode.  
1.5.1.4  
Emulation of Expanded Mode  
Developers use this mode for emulation systems in which the users target application is normal expanded  
mode. Code is executed from external memory or from internal memory depending on the state of  
ROMON and EROMON bit. In this mode the internal operation is visible on external bus interface.  
1.5.1.5  
Emulation of Single-Chip Mode  
Developers use this mode for emulation systems in which the user’s target application is normal  
single-chip mode. Code is executed from external memory or from internal memory depending on the state  
of ROMON and EROMON bit. In this mode the internal operation is visible on external bus interface.  
1.5.1.6  
Special Test Mode  
Freescale internal use only.  
1.5.2  
Low-Power Modes  
The microcontroller features two main low-power modes. Consult the respective Block Guide for  
information on the module behavior in system stop, system pseudo stop, and system wait mode. An  
important source of information about the clock system is the Clock and Reset Generator Block Guide  
(CRG).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
94  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 1 Device Overview (MC9S12XDP512V2)  
1.5.2.1  
System Stop Modes  
The system stop modes are entered if the CPU executes the STOP instruction and the XGATE doesn’t  
execute a thread and the XGFACT bit in the XGMCTL register is cleared. Depending on the state of the  
PSTP bit in the CLKSEL register the MCU goes into pseudo stop mode or full stop mode. Please refer to  
CRG Block Guide. Asserting RESET, XIRQ, IRQ or any other interrupt ends the system stop modes.  
1.5.2.2  
Pseudo Stop Mode  
In this mode the clocks are stopped but the oscillator is still running and the real time interrupt (RTI) or  
watchdog (COP) submodule can stay active. Other peripherals are turned off. This mode consumes more  
current than the system stop mode, but the wake up time from this mode is significantly shorter.  
1.5.2.3  
Full Stop Mode  
The oscillator is stopped in this mode. All clocks are switched off. All counters and dividers remain frozen.  
1.5.2.4  
System Wait Mode  
This mode is entered when the CPU executes the WAI instruction. In this mode the CPU will not execute  
instructions. The internal CPU clock is switched off. All peripherals and the XGATE can be active in  
system wait mode. For further power consumption the peripherals can individually turn off their local  
clocks. Asserting RESET, XIRQ, IRQ or any other interrupt that has not been masked ends system wait  
mode.  
1.5.3  
Freeze Mode  
The enhanced capture timer, pulse width modulator, analog-to-digital converters, the periodic interrupt  
timer and the XGATE module provide a software programmable option to freeze the module status during  
the background debug module is active. This is useful when debugging application software. For detailed  
description of the behavior of the ATD0, ATD1, ECT, PWM, XGATE and PIT when the background debug  
module is active consult the corresponding Block Guides.  
1.6  
Resets and Interrupts  
Consult the S12XCPU Block Guide for information on exception processing.  
Vectors  
Table 1-8 lists all interrupt sources and vectors in the default order of priority. The interrupt module  
(S12XINT) provides an interrupt vector base register (IVBR) to relocate the vectors. Associated with each  
I-bit maskable service request is a configuration register. It selects if the service request is enabled, the  
service request priority level and whether the service request is handled either by the S12X CPU or by the  
XGATE module.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
95  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 1 Device Overview (MC9S12XDP512V2)  
Table 1-8. Interrupt Vector Locations (Sheet 1 of 3)  
XGATE  
Channel ID  
CCR  
Mask  
1
Vector Address  
Interrupt Source  
Local Enable  
2
$FFFE  
$FFFC  
$FFFA  
System reset or illegal access reset  
Clock monitor reset  
None  
None  
None  
None  
None  
X Bit  
I bit  
None  
PLLCTL (CME, SCME)  
COP rate select  
None  
COP watchdog reset  
Vector base + $F8  
Vector base+ $F6  
Vector base+ $F4  
Vector base+ $F2  
Vector base+ $F0  
Vector base+ $EE  
Vector base + $EC  
Vector base+ $EA  
Vector base+ $E8  
Vector base+ $E6  
Vector base+ $E4  
Vector base + $E2  
Vector base+ $E0  
Vector base+ $DE  
Vector base+ $DC  
Vector base + $DA  
Vector base + $D8  
Vector base+ $D6  
Unimplemented instruction trap  
SWI  
None  
XIRQ  
None  
IRQ  
IRQCR (IRQEN)  
CRGINT (RTIE)  
TIE (C0I)  
$78  
$77  
$76  
$75  
$74  
$73  
$72  
$71  
$70  
$6F  
$6E  
$6D  
$6C  
$6B  
Real time interrupt  
I bit  
Enhanced capture timer channel 0  
Enhanced capture timer channel 1  
Enhanced capture timer channel 2  
Enhanced capture timer channel 3  
Enhanced capture timer channel 4  
Enhanced capture timer channel 5  
Enhanced capture timer channel 6  
Enhanced capture timer channel 7  
Enhanced capture timer overflow  
Pulse accumulator A overflow  
Pulse accumulator input edge  
SPI0  
I bit  
I bit  
TIE (C1I)  
I bit  
TIE (C2I)  
I bit  
TIE (C3I)  
I bit  
TIE (C4I)  
I bit  
TIE (C5I)  
I bit  
TIE (C6I)  
I bit  
TIE (C7I)  
I bit  
TSRC2 (TOF)  
PACTL (PAOVI)  
PACTL (PAI)  
SPI0CR1 (SPIE, SPTIE)  
I bit  
I bit  
I bit  
SCI0  
I bit  
SCI0CR2  
(TIE, TCIE, RIE, ILIE)  
Vector base + $D4  
$6A  
SCI1  
I bit  
SCI1CR2  
(TIE, TCIE, RIE, ILIE)  
Vector base + $D2  
Vector base + $D0  
Vector base + $CE  
Vector base + $CC  
Vector base + $CA  
Vector base + $C8  
Vector base + $C6  
Vector base + $C4  
Vector base + $C2  
Vector base + $C0  
Vector base + $BE  
$69  
$68  
$67  
$66  
$65  
$64  
$63  
$62  
$61  
$60  
$5F  
ATD0  
ATD1  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
ATD0CTL2 (ASCIE)  
ATD1CTL2 (ASCIE)  
PIEJ (PIEJ7-PIEJ0)  
PIEH (PIEH7-PIEH0)  
MCCTL(MCZI)  
Port J  
Port H  
Modulus down counter underflow  
Pulse accumulator B overflow  
CRG PLL lock  
PBCTL(PBOVI)  
CRGINT(LOCKIE)  
CRGINT (SCMIE)  
CRG self-clock mode  
Reserved  
IIC0 bus  
SPI1  
I bit  
I bit  
IBCR0 (IBIE)  
SPI1CR1 (SPIE, SPTIE)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
96  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 1 Device Overview (MC9S12XDP512V2)  
Table 1-8. Interrupt Vector Locations (Sheet 2 of 3)  
XGATE  
Channel ID  
CCR  
Mask  
1
Vector Address  
Interrupt Source  
Local Enable  
2
Vector base + $BC  
Vector base + $BA  
Vector base + $B8  
Vector base + $B6  
Vector base + $B4  
Vector base + $B2  
Vector base + $B0  
Vector base + $AE  
Vector base + $AC  
Vector base + $AA  
Vector base + $A8  
Vector base + $A6  
Vector base + $A4  
Vector base + $A2  
Vector base + $A0  
Vector base + $9E  
Vector base+ $9C  
Vector base+ $9A  
Vector base + $98  
Vector base + $96  
Vector base + $94  
Vector base + $92  
Vector base + $90  
Vector base + $8E  
Vector base+ $8C  
Vector base + $8A  
$5E  
$5D  
$5C  
$5B  
$5A  
$59  
$58  
$57  
$56  
$55  
$54  
$53  
$52  
$51  
$50  
$4F  
$4E  
$4D  
$4C  
$4B  
$4A  
$49  
$48  
$47  
$46  
$45  
SPI2  
EEPROM  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
SPI2CR1 (SPIE, SPTIE)  
ECNFG (CCIE, CBEIE)  
FCNFG (CCIE, CBEIE)  
CAN0RIER (WUPIE)  
FLASH  
CAN0 wake-up  
CAN0 errors  
CAN0RIER (CSCIE, OVRIE)  
CAN0RIER (RXFIE)  
CAN0 receive  
CAN0 transmit  
CAN1 wake-up  
CAN1 errors  
CAN0TIER (TXEIE[2:0])  
CAN1RIER (WUPIE)  
CAN1RIER (CSCIE, OVRIE)  
CAN1RIER (RXFIE)  
CAN1 receive  
CAN1 transmit  
CAN2 wake-up  
CAN2 errors  
CAN1TIER (TXEIE[2:0])  
CAN2RIER (WUPIE)  
CAN2RIER (CSCIE, OVRIE)  
CAN2RIER (RXFIE)  
CAN2 receive  
CAN2 transmit  
CAN3 wake-up  
CAN3 errors  
CAN2TIER (TXEIE[2:0])  
CAN3RIER (WUPIE)  
CAN3RIER (CSCIE, OVRIE)  
CAN3RIER (RXFIE)  
CAN3 receive  
CAN3 transmit  
CAN4 wake-up  
CAN4 errors  
CAN3TIER (TXEIE[2:0])  
CAN4RIER (WUPIE)  
CAN4RIER (CSCIE, OVRIE)  
CAN4RIER (RXFIE)  
CAN4 receive  
CAN4 transmit  
Port P Interrupt  
PWM emergency shutdown  
SCI2  
CAN4TIER (TXEIE[2:0])  
PIEP (PIEP7-PIEP0)  
PWMSDN (PWMIE)  
SCI2CR2  
(TIE, TCIE, RIE, ILIE)  
Vector base + $88  
Vector base + $86  
Vector base + $84  
$44  
$43  
$42  
SCI3  
SCI4  
SCI5  
I bit  
I bit  
I bit  
SCI3CR2  
(TIE, TCIE, RIE, ILIE)  
SCI4CR2  
(TIE, TCIE, RIE, ILIE)  
SCI5CR2  
(TIE, TCIE, RIE, ILIE)  
Vector base + $82  
Vector base + $80  
$41  
$40  
IIC1 Bus  
I bit  
I bit  
IBCR (IBIE)  
Low-voltage interrupt (LVI)  
VREGCTRL (LVIE)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
97  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 1 Device Overview (MC9S12XDP512V2)  
Table 1-8. Interrupt Vector Locations (Sheet 3 of 3)  
XGATE  
Channel ID  
CCR  
Mask  
1
Vector Address  
Interrupt Source  
Local Enable  
2
Vector base + $7E  
Vector base + $7C  
Vector base + $7A  
Vector base + $78  
Vector base + $76  
Vector base + $74  
Vector base + $72  
Vector base + $70  
Vector base + $6E  
Vector base + $6C  
Vector base + $6A  
Vector base + $68  
Vector base + $66  
Vector base + $64  
Vector base + $62  
Vector base + $60  
$3F  
$3E  
$3D  
$3C  
$3B  
$3A  
$39  
$38  
$37  
$36  
$35  
$34  
$33  
$32  
Autonomous periodical interrupt (API)  
I bit  
VREGAPICTRL (APIE)  
Reserved  
Periodic interrupt timer channel 0  
Periodic interrupt timer channel 1  
Periodic interrupt timer channel 2  
Periodic interrupt timer channel 3  
XGATE software trigger 0  
XGATE software trigger 1  
XGATE software trigger 2  
XGATE software trigger 3  
XGATE software trigger 4  
XGATE software trigger 5  
XGATE software trigger 6  
XGATE software trigger 7  
XGATE software error interrupt  
S12XCPU RAM access violation  
Reserved  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
I bit  
PITINTE (PINTE0)  
PITINTE (PINTE1)  
PITINTE (PINTE2)  
PITINTE (PINTE3)  
XGMCTL (XGIE)  
XGMCTL (XGIE)  
XGMCTL (XGIE)  
XGMCTL (XGIE)  
XGMCTL (XGIE)  
XGMCTL (XGIE)  
XGMCTL (XGIE)  
XGMCTL (XGIE)  
XGMCTL (XGIE)  
RAMWPC (AVIE)  
Vector base+ $12  
to  
Vector base + $5E  
Vector base + $10  
Spurious interrupt  
None  
1
2
16 bits vector address based  
For detailed description of XGATE channel ID refer to XGATE Block Guide  
1.6.2  
Effects of Reset  
When a reset occurs, MCU registers and control bits are changed to known start-up states. Refer to the  
respective module Block Guides for register reset states.  
1.6.2.1  
I/O Pins  
Refer to the PIM Block Guide for reset configurations of all peripheral module ports.  
1.6.2.2  
Memory  
The RAM array is not initialized out of reset.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
98  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 1 Device Overview (MC9S12XDP512V2)  
1.7  
COP Configuration  
The COP timeout rate bits CR[2:0] and the WCOP bit in the COPCTL register are loaded on rising edge  
of RESET from the Flash control register FCTL ($0107) located in the Flash EEPROM block. See  
Table 1-9 and Table 1-10 for coding. The FCTL register is loaded from the Flash configuration field byte  
at global address $7FFF0E during the reset sequence  
NOTE  
If the MCU is secured the COP timeout rate is always set to the longest  
period (CR[2:0] = 111) after COP reset.  
Table 1-9. Initial COP Rate Configuration  
NV[2:0] in  
CR[2:0] in  
FCTL Register  
COPCTL Register  
000  
001  
010  
011  
100  
101  
110  
111  
111  
110  
101  
100  
011  
010  
001  
000  
Table 1-10. Initial WCOP Configuration  
NV[3] in  
WCOP in  
FCTL Register  
COPCTL Register  
1
0
0
1
1.8  
ATD0 External Trigger Input Connection  
The ATD_10B8C module includes four external trigger inputs ETRIG0, ETRIG1, ETRIG, and ETRIG3.  
The external trigger allows the user to synchronize ATD conversion to external trigger events. Table 1-11  
shows the connection of the external trigger inputs on MC9S12XDP512.  
Table 1-11. ATD0 External Trigger Sources  
External Trigger  
Connectivity  
Input  
ETRIG0  
ETRIG1  
ETRIG2  
ETRIG3  
Pulse width modulator channel 1  
Pulse width modulator channel 3  
Periodic interrupt timer hardware trigger 0  
Periodic interrupt timer hardware trigger 1  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
99  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 1 Device Overview (MC9S12XDP512V2)  
Consult the ATD_10B8C Block Guide for information about the analog-to-digital converter module.  
When the ATD_10B8C Block Guide refers to freeze mode this is equivalent to active BDM mode.  
1.9  
ATD1 External Trigger Input Connection  
The ATD_10B16C module includes four external trigger inputs ETRIG0, ETRIG1, ETRIG, and ETRIG3.  
The external trigger feature allows the user to synchronize ATD conversion to external trigger events.  
Table 1-12 shows the connection of the external trigger inputs on MC9S12XDP512.  
Table 1-12. ATD1 External Trigger Sources  
External Trigger  
Connectivity  
Input  
ETRIG0  
ETRIG1  
ETRIG2  
ETRIG3  
Pulse width modulator channel 1  
Pulse width modulator channel 3  
Periodic interrupt timer hardware trigger 0  
Periodic interrupt timer hardware trigger 1  
Consult the ATD_10B16C Block Guide for information about the analog-to-digital converter module.  
When the ATD_10B16C Block Guide refers to freeze mode this is equivalent to active BDM mode.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
100  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 2  
512 Kbyte Flash Module (S12XFTX512K4V2)  
2.1  
Introduction  
This document describes the FTX512K4 module that includes a 512K Kbyte Flash (nonvolatile) memory.  
The Flash memory may be read as either bytes, aligned words or misaligned words. Read access time is  
one bus cycle for bytes and aligned words, and two bus cycles for misaligned words.  
The Flash memory is ideal for program and data storage for single-supply applications allowing for field  
reprogramming without requiring external voltage sources for program or erase. Program and erase  
functions are controlled by a command driven interface. The Flash module supports both block erase and  
sector erase. An erased bit reads 1 and a programmed bit reads 0. The high voltage required to program  
and erase the Flash memory is generated internally. It is not possible to read from a Flash block while it is  
being erased or programmed.  
CAUTION  
A Flash word must be in the erased state before being programmed.  
Cumulative programming of bits within a Flash word is not allowed.  
2.1.1  
Glossary  
Command Write Sequence — A three-step MCU instruction sequence to execute built-in algorithms  
(including program and erase) on the Flash memory.  
Multiple-Input Signature Register (MISR) — A Multiple-Input Signature Register is an output  
response analyzer implemented using a linear feedback shift-register (LFSR). A 16-bit MISR is used to  
compress data and generate a signature that is particular to the data read from a Flash block.  
2.1.2  
Features  
512 Kbytes of Flash memory comprised of four 128 Kbyte blocks with each block divided into  
128 sectors of 1024 bytes  
Automated program and erase algorithm  
Interrupts on Flash command completion, command buffer empty  
Fast sector erase and word program operation  
2-stage command pipeline for faster multi-word program times  
Sector erase abort feature for critical interrupt response  
Flexible protection scheme to prevent accidental program or erase  
Single power supply for all Flash operations including program and erase  
BookTitle, Rev. 2.4  
Freescale Semiconductor  
101  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
512 Kbyte Flash Module (S12XFTX512K4V2)  
Security feature to prevent unauthorized access to the Flash memory  
Code integrity check using built-in data compression  
2.1.3  
Modes of Operation  
Program, erase, erase verify, and data compress operations (please refer to Section 2.4.1, “Flash Command  
Operations” for details).  
2.1.4  
Block Diagram  
A block diagram of the Flash module is shown in Figure 2-1.  
BookTitle, Rev. 2.4  
102  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
512 Kbyte Flash Module (S12XFTX512K4V2)  
FTX512K4  
Flash Block 0  
64K * 16 Bits  
sector 0  
sector 1  
Flash  
Interface  
Command Pipeline  
sector 127  
Command  
Interrupt  
Request  
Flash Block 1  
64K * 16 Bits  
cmd1  
cmd2  
addr1  
addr2  
data1_0  
data1_1  
data1_2  
data1_3  
data2_0  
data2_1  
data2_2  
data2_3  
sector 0  
sector 1  
Registers  
sector 127  
Flash Block 2  
64K * 16 Bits  
Protection  
Security  
sector 0  
sector 1  
sector 127  
Oscillator  
Clock  
Clock  
Divider  
Flash Block 3  
64K * 16 Bits  
FCLK  
sector 0  
sector 1  
sector 127  
Figure 2-1. FTX512K4 Block Diagram  
2.2  
External Signal Description  
The Flash module contains no signals that connect off-chip.  
BookTitle, Rev. 2.4  
Freescale Semiconductor  
103  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
512 Kbyte Flash Module (S12XFTX512K4V2)  
2.3  
Memory Map and Register Definition  
This section describes the memory map and registers for the Flash module.  
2.3.1  
Module Memory Map  
addresses between global addresses 0x78_0000 and 0x7F_FFFF. The FPROT register, described in  
Section 2.3.2.5, “Flash Protection Register (FPROT)”, can be set to protect regions in the Flash memory  
from accidental program or erase. Three separate memory regions, one growing upward from global  
address 0x7F_8000 in the Flash memory (called the lower region), one growing downward from global  
address 0x7F_FFFF in the Flash memory (called the higher region), and the remaining addresses in the  
Flash memory, can be activated for protection. The Flash memory addresses covered by these protectable  
regions are shown in the Flash memory map. The higher address region is mainly targeted to hold the boot  
loader code since it covers the vector space. The lower address region can be used for EEPROM emulation  
in an MCU without an EEPROM module since it can be left unprotected while the remaining addresses  
are protected from program or erase. Default protection settings as well as security information that allows  
the MCU to restrict access to the Flash module are stored in the Flash configuration field as described in  
Table 2-1.  
Table 2-1. Flash Configuration Field  
Size  
(Bytes)  
Global Address  
Description  
0x7F_FF00 – 0x7F_FF07  
8
Backdoor Comparison Key  
Refer to Section 2.6.1, “Unsecuring the MCU using Backdoor Key Access”  
0x7F_FF08 – 0x7F_FF0C  
0x7F_FF0D  
5
1
Reserved  
Flash Protection byte  
0x7F_FF0E  
0x7F_FF0F  
1
1
Flash Nonvolatile byte  
Flash Security byte  
Refer to Section 2.3.2.2, “Flash Security Register (FSEC)”  
BookTitle, Rev. 2.4  
104  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
512 Kbyte Flash Module (S12XFTX512K4V2)  
MODULE BASE + 0x0000  
Flash Registers  
16 bytes  
MODULE BASE + 0x000F  
FLASH START = 0x78_0000  
Flash Protected/Unprotected Region  
480 Kbytes  
0x7F_8000  
0x7F_8400  
0x7F_8800  
Flash Protected/Unprotected Lower Region  
1, 2, 4, 8 Kbytes  
0x7F_9000  
0x7F_A000  
Flash Protected/Unprotected Region  
8 Kbytes (up to 29 Kbytes)  
0x7F_C000  
Flash Protected/Unprotected Higher Region  
2, 4, 8, 16 Kbytes  
0x7F_E000  
0x7F_F000  
0x7F_F800  
Flash Configuration Field  
16 bytes (0x7F_FF00 - 0x7F_FF0F)  
FLASH END = 0x7F_FFFF  
Figure 2-2. Flash Memory Map  
BookTitle, Rev. 2.4  
Freescale Semiconductor  
105  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
512 Kbyte Flash Module (S12XFTX512K4V2)  
0x0000 and 0x000F. A summary of the Flash module registers is given in Table 2-2 while their  
accessibility is detailed in Section 2.3.2, “Register Descriptions”.  
Table 2-2. Flash Register Map  
Module  
Base +  
Normal Mode  
Access  
Register Name  
0x0000  
0x0001  
0x0002  
0x0003  
0x0004  
0x0005  
0x0006  
0x0007  
0x0008  
0x0009  
0x000A  
0x000B  
0x000C  
0x000D  
0x000E  
0x000F  
Flash Clock Divider Register (FCLKDIV)  
Flash Security Register (FSEC)  
R/W  
R
Flash Test Mode Register (FTSTMOD)  
Flash Configuration Register (FCNFG)  
Flash Protection Register (FPROT)  
Flash Status Register (FSTAT)  
R/W  
R/W  
R/W  
R/W  
R/W  
R
Flash Command Register (FCMD)  
Flash Control Register (FCTL)  
1
Flash High Address Register (FADDRHI)  
Flash Low Address Register (FADDRLO)  
Flash High Data Register (FDATAHI)  
Flash Low Data Register (FDATALO)  
R
1
R
R
R
1
RESERVED1  
R
1
RESERVED2  
R
1
RESERVED3  
R
1
RESERVED4  
R
1 Intended for factory test purposes only.  
BookTitle, Rev. 2.4  
106  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
512 Kbyte Flash Module (S12XFTX512K4V2)  
2.3.2  
Register Descriptions  
Register  
Name  
Bit 7  
6
5
4
3
2
1
Bit 0  
0x0000  
FCLKDIV  
R
FDIVLD  
PRDIV8  
FDIV5  
RNV5  
FDIV4  
RNV4  
FDIV3  
RNV3  
FDIV2  
RNV2  
FDIV1  
FDIV0  
W
0x0001  
FSEC  
R
KEYEN  
SEC  
W
0x0002  
FTSTMOD  
R
0
0
0
0
0
0
0
0
0
0
0
MRDS  
W
0x0003  
FCNFG  
R
CBEIE  
CCIE  
KEYACC  
FPHDIS  
PVIOL  
W
0x0004  
FPROT  
R
RNV6  
FPOPEN  
FPHS  
FPLDIS  
BLANK  
FPLS  
W
0x0005  
FSTAT  
R
CCIF  
NV6  
0
0
0
CBEIF  
0
ACCERR  
W
0x0006  
FCMD  
R
CMDB  
NV3  
W
0x0007  
FCTL  
R
NV7  
NV5  
NV4  
NV2  
NV1  
NV0  
W
0x0008  
R
FADDRHI  
FADDRHI  
W
0x0009  
FADDRLO  
R
FADDRLO  
FDATAHI  
FDATALO  
W
0x000A  
FDATAHI  
R
W
0x000B  
R
FDATALO  
W
0x000C  
R
0
0
0
0
0
0
0
0
RESERVED1  
W
Figure 2-3. FTX512K4 Register Summary  
BookTitle, Rev. 2.4  
Freescale Semiconductor  
107  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
512 Kbyte Flash Module (S12XFTX512K4V2)  
Register  
Bit 7  
6
5
4
3
2
1
Bit 0  
Name  
0x000D  
R
0
0
0
0
0
0
0
0
RESERVED2  
W
0x000E  
RESERVED3  
R
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
W
0x000F  
R
RESERVED4  
W
Figure 2-3. FTX512K4 Register Summary (continued)  
2.3.2.1  
Flash Clock Divider Register (FCLKDIV)  
The FCLKDIV register is used to control timed events in program and erase algorithms.  
Module Base + 0x0000  
7
6
5
4
3
2
1
0
R
W
FDIVLD  
PRDIV8  
FDIV5  
FDIV4  
FDIV3  
FDIV2  
FDIV1  
FDIV0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 2-4. Flash Clock Divider Register (FCLKDIV)  
All bits in the FCLKDIV register are readable, bits 6-0 are write once and bit 7 is not writable.  
Table 2-3. FCLKDIV Field Descriptions  
Field  
Description  
7
Clock Divider Loaded.  
FDIVLD  
0 Register has not been written.  
1 Register has been written to since the last reset.  
6
Enable Prescalar by 8.  
PRDIV8  
0 The oscillator clock is directly fed into the clock divider.  
1 The oscillator clock is divided by 8 before feeding into the clock divider.  
5-0  
Clock Divider Bits — The combination of PRDIV8 and FDIV[5:0] must divide the oscillator clock down to a  
FDIV[5:0] frequency of 150 kHz–200 kHz. The maximum divide ratio is 512. Please refer to Section 2.4.1.1, “Writing the  
FCLKDIV Register” for more information.  
BookTitle, Rev. 2.4  
108  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
512 Kbyte Flash Module (S12XFTX512K4V2)  
2.3.2.2  
Flash Security Register (FSEC)  
The FSEC register holds all bits associated with the security of the MCU and Flash module.  
Module Base + 0x0001  
7
6
5
4
3
2
1
0
R
W
KEYEN  
RNV5  
RNV4  
RNV3  
RNV2  
SEC  
Reset  
F
F
F
F
F
F
F
F
= Unimplemented or Reserved  
Figure 2-5. Flash Security Register (FSEC)  
All bits in the FSEC register are readable but are not writable.  
The FSEC register is loaded from the Flash Configuration Field at address 0x7F_FF0F during the reset  
sequence, indicated by F in Figure 2-5.  
Table 2-4. FSEC Field Descriptions  
Field  
Description  
7-6  
Backdoor Key Security Enable Bits — The KEYEN[1:0] bits define the enabling of backdoor key access to the  
KEYEN[1:0] Flash module as shown in Table 2-5.  
5-2  
Reserved Nonvolatile Bits — The RNV[5:2] bits should remain in the erased state for future enhancements.  
RNV[5:2]  
1-0  
Flash Security Bits — The SEC[1:0] bits define the security state of the MCU as shown in Table 2-6. If the Flash  
SEC[1:0]  
module is unsecured using backdoor key access, the SEC[1:0] bits are forced to 1:0.  
Table 2-5. Flash KEYEN States  
KEYEN[1:0]  
Status of Backdoor Key Access  
00  
DISABLED  
DISABLED  
ENABLED  
DISABLED  
1
01  
10  
11  
1 Preferred KEYEN state to disable Backdoor Key Access.  
Table 2-6. Flash Security States  
SEC[1:0]  
Status of Security  
00  
SECURED  
SECURED  
1
01  
10  
11  
UNSECURED  
SECURED  
The security function in the Flash module is described in Section 2.6, “Flash Module Security”.  
BookTitle, Rev. 2.4  
Freescale Semiconductor  
109  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
512 Kbyte Flash Module (S12XFTX512K4V2)  
2.3.2.3  
Flash Test Mode Register (FTSTMOD)  
The FTSTMOD register is used to control Flash test features.  
Module Base + 0x0002  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
MRDS  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 2-6. Flash Test Mode Register (FTSTMOD —Normal Mode)  
Module Base + 0x0002  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
MRDS  
WRALL  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 2-7. Flash Test Mode Register (FTSTMOD — Special Mode)  
MRDS bits are readable and writable while all remaining bits read 0 and are not writable in normal mode.  
The WRALL bit is writable only in special mode to simplify mass erase and erase verify operations. When  
writing to the FTSTMOD register in special mode, all unimplemented/reserved bits must be written to 0.  
Table 2-7. FTSTMOD Field Descriptions  
Field  
Description  
6–5  
Margin Read Setting — The MRDS[1:0] bits are used to set the sense-amp margin level for reads of the Flash  
MRDS[1:0] array as shown in Table 2-8.  
4
Write to all Register Banks — If the WRALL bit is set, all banked FDATA registers sharing the same register  
WRALL  
address will be written simultaneously during a register write.  
0 Write only to the FDATA register bank selected using BKSEL.  
1 Write to all FDATA register banks.  
Table 2-8. FTSTMOD Margin Read Settings  
MRDS[1:0]  
Margin Read Setting  
00  
01  
10  
11  
Normal  
1
Program Margin  
2
Erase Margin  
Normal  
1 Flash array reads will be sensitive to program margin.  
2 Flash array reads will be sensitive to erase margin.  
BookTitle, Rev. 2.4  
110  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
512 Kbyte Flash Module (S12XFTX512K4V2)  
2.3.2.4  
Flash Configuration Register (FCNFG)  
The FCNFG register enables the Flash interrupts and gates the security backdoor writes.  
Module Base + 0x0003  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
CBEIE  
CCIE  
KEYACC  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 2-8. Flash Configuration Register (FCNFG — Normal Mode)  
Module Base + 0x0003  
7
6
5
4
3
2
1
0
R
0
0
0
CBEIE  
W
CCIE  
KEYACC  
BKSEL  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 2-9. Flash Configuration Register (FCNFG — Special Mode)  
CBEIE, CCIE and KEYACC bits are readable and writable while all remaining bits read 0 and are not  
writable in normal mode. KEYACC is only writable if KEYEN (see Section 2.3.2.2, “Flash Security  
Register (FSEC)” is set to the enabled state. BKSEL is readable and writable in special mode to simplify  
mass erase and erase verify operations. When writing to the FCNFG register in special mode, all  
unimplemented/ reserved bits must be written to 0.  
Table 2-9. FCNFG Field Descriptions  
Field  
Description  
7
Command Buffer Empty Interrupt Enable — The CBEIE bit enables an interrupt in case of an empty command  
CBEIE  
buffer in the Flash module.  
0 Command buffer empty interrupt disabled.  
1 An interrupt will be requested whenever the CBEIF flag (see Section 2.3.2.6, “Flash Status Register (FSTAT)”)  
is set.  
6
Command Complete Interrupt Enable — The CCIE bit enables an interrupt in case all commands have been  
CCIE  
completed in the Flash module.  
0 Command complete interrupt disabled.  
1 An interrupt will be requested whenever the CCIF flag (see Section 2.3.2.6, “Flash Status Register (FSTAT)”)  
is set.  
5
Enable Security Key Writing  
KEYACC  
0 Flash writes are interpreted as the start of a command write sequence.  
1 Writes to Flash array are interpreted as keys to open the backdoor. Reads of the Flash array return invalid  
data.  
1–0  
Block Select — The BKSEL[1:0] bits indicates which register bank is active according to Table 2-10.  
BKSEL[1:0]  
BookTitle, Rev. 2.4  
Freescale Semiconductor  
111  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
512 Kbyte Flash Module (S12XFTX512K4V2)  
Table 2-10. Flash Register Bank Selects  
BKSEL[1:0]  
Selected Block  
00  
01  
10  
11  
Flash Block 0  
Flash Block 1  
Flash Block 2  
Flash Block 3  
2.3.2.5  
Flash Protection Register (FPROT)  
The FPROT register defines which Flash sectors are protected against program or erase operations.  
Module Base + 0x0004  
7
6
5
4
3
2
1
0
R
W
RNV6  
FPOPEN  
FPHDIS  
FPHS  
FPLDIS  
FPLS  
Reset  
F
F
F
F
F
F
F
F
= Unimplemented or Reserved  
Figure 2-10. Flash Protection Register (FPROT)  
All bits in the FPROT register are readable and writable with restrictions (see Section 2.3.2.5.1, “Flash  
Protection Restrictions”) except for RNV[6] which is only readable.  
During the reset sequence, the FPROT register is loaded from the Flash Configuration Field at global  
address 0x7F_FF0D. To change the Flash protection that will be loaded during the reset sequence, the  
upper sector of the Flash memory must be unprotected, then the Flash Protect/Security byte located as  
described in Table 2-1 must be reprogrammed.  
Trying to alter data in any protected area in the Flash memory will result in a protection violation error and  
the PVIOL flag will be set in the FSTAT register. The mass erase of a Flash block is not possible if any of  
the Flash sectors contained in the Flash block are protected.  
Table 2-11. FPROT Field Descriptions  
Field  
Description  
7
Flash Protection Open — The FPOPEN bit determines the protection function for program or erase as shown  
FPOPEN in Table 2-12.  
0 The FPHDIS and FPLDIS bits define unprotected address ranges as specified by the corresponding  
FPHS[1:0] and FPLS[1:0] bits. For an MCU without an EEPROM module, the FPOPEN clear state allows the  
main part of the Flash block to be protected while a small address range can remain unprotected for EEPROM  
emulation.  
1 The FPHDIS and FPLDIS bits enable protection for the address range specified by the corresponding  
FPHS[1:0] and FPLS[1:0] bits.  
6
Reserved Nonvolatile Bit — The RNV[6] bit should remain in the erased state for future enhancements.  
RNV6  
BookTitle, Rev. 2.4  
112  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
512 Kbyte Flash Module (S12XFTX512K4V2)  
Table 2-11. FPROT Field Descriptions (continued)  
Field  
Description  
5
Flash Protection Higher Address Range Disable — The FPHDIS bit determines whether there is a  
protected/unprotected area in a specific region of the Flash memory ending with global address 0x7F_FFFF.  
0 Protection/Unprotection enabled.  
FPHDIS  
1 Protection/Unprotection disabled.  
4–3  
Flash Protection Higher Address Size — The FPHS[1:0] bits determine the size of the protected/unprotected  
FPHS[1:0] area as shown inTable 2-13. The FPHS[1:0] bits can only be written to while the FPHDIS bit is set.  
2
Flash Protection Lower Address Range Disable — The FPLDIS bit determines whether there is a  
protected/unprotected area in a specific region of the Flash memory beginning with global address 0x7F_8000.  
0 Protection/Unprotection enabled.  
FPLDIS  
1 Protection/Unprotection disabled.  
1–0  
Flash Protection Lower Address Size — The FPLS[1:0] bits determine the size of the protected/unprotected  
FPLS[1:0] area as shown in Table 2-14. The FPLS[1:0] bits can only be written to while the FPLDIS bit is set.  
Table 2-12. Flash Protection Function  
1
FPOPEN  
FPHDIS  
FPLDIS  
Function  
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
No Protection  
Protected Low Range  
Protected High Range  
Protected High and Low Ranges  
Full Flash memory Protected  
Unprotected Low Range  
Unprotected High Range  
Unprotected High and Low Ranges  
1 For range sizes, refer to Table 2-13 and Table 2-14.  
Table 2-13. Flash Protection Higher Address Range  
Global  
FPHS[1:0]  
Protected Size  
Address Range  
00  
01  
10  
11  
0x7F_F800–0x7F_FFFF  
0x7F_F000–0x7F_FFFF  
0x7F_E000–0x7F_FFFF  
0x7F_C000–0x7F_FFFF  
2 Kbytes  
4 Kbytes  
8 Kbytes  
16 Kbytes  
Table 2-14. Flash Protection Lower Address Range  
Global  
FPLS[1:0]  
Protected Size  
Address Range  
00  
01  
10  
11  
0x7F_8000–0x7F_83FF  
0x7F_8000–0x7F_87FF  
0x7F_8000–0x7F_8FFF  
0x7F_8000–0x7F_9FFF  
1 Kbytes  
2 Kbytes  
4 Kbytes  
8 Kbytes  
BookTitle, Rev. 2.4  
Freescale Semiconductor  
113  
Download from Www.Somanuals.com. All Manuals Search And Download.  
512 Kbyte Flash Module (S12XFTX512K4V2)  
All possible Flash protection scenarios are shown in Figure 2-11. Although the protection scheme is  
loaded from the Flash array at global address 0x7F_FF0D during the reset sequence, it can be changed by  
the user. This protection scheme can be used by applications requiring re-programming in single chip  
mode while providing as much protection as possible if re-programming is not required.  
BookTitle, Rev. 2.4  
114  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
512 Kbyte Flash Module (S12XFTX512K4V2)  
FPHDIS=1  
FPLDIS=1  
FPHDIS=1  
FPLDIS=0  
FPHDIS=0  
FPLDIS=1  
FPHDIS=0  
FPLDIS=0  
7
6
5
4
Scenario  
0x78_0000  
0x7F_8000  
FPLS[1:0]  
FPOPEN=1  
FPHS[1:0]  
0x7F_FFFF  
0x78_0000  
Scenario  
3
2
1
0
0x7F_8000  
FPLS[1:0]  
FPOPEN=0  
FPHS[1:0]  
0x7F_FFFF  
Protected region with size  
Unprotected region  
Protected region  
defined by FPLS  
Protected region with size  
defined by FPHS  
not defined by FPLS, FPHS  
Figure 2-11. Flash Protection Scenarios  
BookTitle, Rev. 2.4  
Freescale Semiconductor  
115  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
512 Kbyte Flash Module (S12XFTX512K4V2)  
2.3.2.5.1  
Flash Protection Restrictions  
The general guideline is that Flash protection can only be added and not removed. Table 2-15 specifies all  
valid transitions between Flash protection scenarios. Any attempt to write an invalid scenario to the  
FPROT register will be ignored and the FPROT register will remain unchanged. The contents of the  
FPROT register reflect the active protection scenario. See the FPHS and FPLS descriptions for additional  
restrictions.  
Table 2-15. Flash Protection Scenario Transitions  
1
To Protection Scenario  
From  
Protection Scenario  
0
1
X
X
2
3
X
X
X
X
X
X
X
X
4
5
6
7
0
1
2
3
4
5
6
7
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
1 Allowed transitions marked with X.  
2.3.2.6  
Flash Status Register (FSTAT)  
The FSTAT register defines the operational status of the module.  
Module Base + 0x0005  
7
6
5
4
3
2
1
0
R
W
CCIF  
0
BLANK  
0
0
CBEIF  
PVIOL  
ACCERR  
Reset  
1
1
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 2-12. Flash Status Register (FSTAT — Normal Mode)  
Module Base + 0x0005  
7
6
5
4
3
2
1
0
R
CCIF  
0
BLANK  
0
CBEIF  
W
PVIOL  
ACCERR  
FAIL  
0
Reset  
1
1
0
0
0
0
0
= Unimplemented or Reserved  
Figure 2-13. Flash Status Register (FSTAT — Special Mode)  
BookTitle, Rev. 2.4  
116  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
512 Kbyte Flash Module (S12XFTX512K4V2)  
CBEIF, PVIOL, and ACCERR are readable and writable, CCIF and BLANK are readable and not writable,  
remaining bits read 0 and are not writable in normal mode. FAIL is readable and writable in special mode.  
FAIL must be clear in special mode when starting a command write sequence.  
Table 2-16. FSTAT Field Descriptions  
Field  
Description  
7
Command Buffer Empty Interrupt Flag — The CBEIF flag indicates that the address, data and command  
buffers are empty so that a new command write sequence can be started. Writing a 0 to the CBEIF flag has no  
effect on CBEIF. Writing a 0 to CBEIF after writing an aligned word to the Flash address space, but before CBEIF  
is cleared, will abort a command write sequence and cause the ACCERR flag to be set. Writing a 0 to CBEIF  
outside of a command write sequence will not set the ACCERR flag. The CBEIF flag is cleared by writing a 1 to  
CBEIF. The CBEIF flag is used together with the CBEIE bit in the FCNFG register to generate an interrupt  
request (see Figure 2-32).  
CBEIF  
0 Command buffers are full.  
1 Command buffers are ready to accept a new command.  
6
Command Complete Interrupt Flag — The CCIF flag indicates that there are no more commands pending. The  
CCIF flag is cleared when CBEIF is cleared and sets automatically upon completion of all active and pending  
commands. The CCIF flag does not set when an active commands completes and a pending command is  
fetched from the command buffer. Writing to the CCIF flag has no effect on CCIF. The CCIF flag is used together  
with the CCIE bit in the FCNFG register to generate an interrupt request (see Figure 2-32).  
0 Command in progress.  
CCIF  
1 All commands are completed.  
5
Protection Violation Flag —The PVIOL flag indicates an attempt was made to program or erase an address in  
a protected area of the Flash memory during a command write sequence. Writing a 0 to the PVIOL flag has no  
effect on PVIOL. The PVIOL flag is cleared by writing a 1 to PVIOL. While PVIOL is set, it is not possible to launch  
a command or start a command write sequence.  
PVIOL  
0 No protection violation detected.  
1 Protection violation has occurred.  
4
Access Error Flag — The ACCERR flag indicates an illegal access has occurred to the Flash memory caused  
ACCERR by either a violation of the command write sequence (see Section 2.4.1.2, “Command Write Sequence”), issuing  
an illegal Flash command (see Table 2-18), launching the sector erase abort command terminating a sector  
erase operation early (see Section 2.4.2.6, “Sector Erase Abort Command”) or the execution of a CPU STOP  
instruction while a command is executing (CCIF = 0). Writing a 0 to the ACCERR flag has no effect on ACCERR.  
The ACCERR flag is cleared by writing a 1 to ACCERR.While ACCERR is set, it is not possible to launch a  
command or start a command write sequence. If ACCERR is set by an erase verify operation or a data compress  
operation, any buffered command will not launch.  
0 No access error detected.  
1 Access error has occurred.  
2
Flag Indicating the Erase Verify Operation Status — When the CCIF flag is set after completion of an erase  
verify command, the BLANK flag indicates the result of the erase verify operation. The BLANK flag is cleared by  
the Flash module when CBEIF is cleared as part of a new valid command write sequence. Writing to the BLANK  
flag has no effect on BLANK.  
BLANK  
0 Flash block verified as not erased.  
1 Flash block verified as erased.  
1
Flag Indicating a Failed Flash Operation — The FAIL flag will set if the erase verify operation fails (selected  
FAIL  
Flash block verified as not erased). Writing a 0 to the FAIL flag has no effect on FAIL. The FAIL flag is cleared by  
writing a 1 to FAIL.  
0 Flash operation completed without error.  
1 Flash operation failed.  
BookTitle, Rev. 2.4  
Freescale Semiconductor  
117  
Download from Www.Somanuals.com. All Manuals Search And Download.  
512 Kbyte Flash Module (S12XFTX512K4V2)  
2.3.2.7  
Flash Command Register (FCMD)  
The FCMD register is the Flash command register.  
Module Base + 0x0006  
7
6
5
4
3
2
1
0
R
W
0
CMDB  
Reset  
1
1
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 2-14. Flash Command Register (FCMD)  
All CMDB bits are readable and writable during a command write sequence while bit 7 reads 0 and is not  
writable.  
Table 2-17. FCMD Field Descriptions  
Field  
6-0  
Flash Command — Valid Flash commands are shown in Table 2-18. Writing any command other than those  
CMDB[6:0] listed in Table 2-18 sets the ACCERR flag in the FSTAT register.  
Table 2-18. Valid Flash Command List  
CMDB[6:0]  
NVM Command  
0x05  
0x06  
0x20  
0x40  
0x41  
0x47  
Erase Verify  
Data Compress  
Word Program  
Sector Erase  
Mass Erase  
Sector Erase Abort  
2.3.2.8  
Flash Control Register (FCTL)  
The FCTL register is the Flash control register.  
Module Base + 0x0007  
7
6
5
4
3
2
1
0
R
W
NV7  
NV6  
NV5  
NV4  
NV3  
NV2  
NV1  
NV0  
Reset  
F
F
F
F
F
F
F
F
= Unimplemented or Reserved  
Figure 2-15. Flash Control Register (FCTL)  
BookTitle, Rev. 2.4  
118  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
512 Kbyte Flash Module (S12XFTX512K4V2)  
All bits in the FCTL register are readable but are not writable.  
The FCTL register is loaded from the Flash Configuration Field byte at global address 0x7F_FF0E during  
the reset sequence, indicated by F in Figure 2-15.  
Table 2-19. FCTL Field Descriptions  
Field  
Description  
7-0  
Non volatile Bits — The NV[7:0] bits are available as nonvolatile bits. Refer to the Device User Guide for proper  
NV[7:0]  
use of the NV bits.  
2.3.2.9  
Flash Address Registers (FADDR)  
The FADDRHI and FADDRLO registers are the Flash address registers.  
Module Base + 0x0008  
7
6
5
4
3
2
1
0
R
W
FADDRHI  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 2-16. Flash Address High Register (FADDRHI)  
Module Base + 0x0009  
7
6
5
4
3
2
1
0
R
FADDRLO  
W
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 2-17. Flash Address Low Register (FADDRLO)  
All FADDRHI and FADDRLO bits are readable but are not writable. After an array write as part of a  
command write sequence, the FADDR registers will contain the mapped MCU address written.  
2.3.2.10 Flash Data Registers (FDATA)  
The FDATAHI and FDATALO registers are the Flash data registers.  
BookTitle, Rev. 2.4  
Freescale Semiconductor  
119  
Download from Www.Somanuals.com. All Manuals Search And Download.  
512 Kbyte Flash Module (S12XFTX512K4V2)  
Module Base + 0x000A  
7
6
5
4
3
2
1
0
R
W
FDATAHI  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 2-18. Flash Data High Register (FDATAHI)  
Module Base + 0x000B  
7
6
5
4
3
2
1
0
R
FDATALO  
W
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 2-19. Flash Data Low Register (FDATALO)  
All FDATAHI and FDATALO bits are readable but are not writable. At the completion of a data compress  
operation, the resulting 16-bit signature is stored in the FDATA registers. The data compression signature  
is readable in the FDATA registers until a new command write sequence is started.  
2.3.2.11 RESERVED1  
This register is reserved for factory testing and is not accessible.  
Module Base + 0x000C  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
0
0
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 2-20. RESERVED1  
All bits read 0 and are not writable.  
2.3.2.12 RESERVED2  
This register is reserved for factory testing and is not accessible.  
BookTitle, Rev. 2.4  
120  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
512 Kbyte Flash Module (S12XFTX512K4V2)  
Module Base + 0x000D  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
0
0
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 2-21. RESERVED2  
All bits read 0 and are not writable.  
2.3.2.13 RESERVED3  
This register is reserved for factory testing and is not accessible.  
Module Base + 0x000E  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
0
0
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 2-22. RESERVED3  
All bits read 0 and are not writable.  
2.3.2.14 RESERVED4  
This register is reserved for factory testing and is not accessible.  
Module Base + 0x000F  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
0
0
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 2-23. RESERVED4  
All bits read 0 and are not writable.  
BookTitle, Rev. 2.4  
Freescale Semiconductor  
121  
Download from Www.Somanuals.com. All Manuals Search And Download.  
512 Kbyte Flash Module (S12XFTX512K4V2)  
2.4  
Functional Description  
2.4.1  
Flash Command Operations  
Write operations are used to execute program, erase, erase verify, erase abort, and data compress  
algorithms described in this section. The program and erase algorithms are controlled by a state machine  
whose timebase, FCLK, is derived from the oscillator clock via a programmable divider. The command  
register, as well as the associated address and data registers, operate as a buffer and a register (2-stage  
FIFO) so that a second command along with the necessary data and address can be stored to the buffer  
while the first command is still in progress. This pipelined operation allows a time optimization when  
programming more than one word on a specific row in the Flash block as the high voltage generation can  
be kept active in between two programming commands. The pipelined operation also allows a  
simplification of command launching. Buffer empty as well as command completion are signalled by flags  
in the Flash status register with corresponding interrupts generated, if enabled.  
The next sections describe:  
1. How to write the FCLKDIV register  
2. Command write sequences to program, erase, erase verify, erase abort, and data compress  
operations on the Flash memory  
3. Valid Flash commands  
4. Effects resulting from illegal Flash command write sequences or aborting Flash operations  
2.4.1.1  
Writing the FCLKDIV Register  
Prior to issuing any Flash command after a reset, the user is required to write the FCLKDIV register to  
divide the oscillator clock down to within the 150 kHz to 200 kHz range. Since the program and erase  
timings are also a function of the bus clock, the FCLKDIV determination must take this information into  
account.  
If we define:  
FCLK as the clock of the Flash timing control block  
Tbus as the period of the bus clock  
INT(x) as taking the integer part of x (e.g. INT(4.323) = 4)  
then FCLKDIV register bits PRDIV8 and FDIV[5:0] are to be set as described in Figure 2-24.  
For example, if the oscillator clock frequency is 950kHz and the bus clock frequency is 10MHz,  
FCLKDIV bits FDIV[5:0] should be set to 0x04 (000100) and bit PRDIV8 set to 0. The resulting FCLK  
frequency is then 190kHz. As a result, the Flash program and erase algorithm timings are increased over  
the optimum target by:  
(200 190) ⁄ 200 × 100 = 5%  
If the oscillator clock frequency is 16MHz and the bus clock frequency is 40MHz, FCLKDIV bits  
FDIV[5:0] should be set to 0x0A (001010) and bit PRDIV8 set to 1. The resulting FCLK frequency is then  
BookTitle, Rev. 2.4  
122  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
512 Kbyte Flash Module (S12XFTX512K4V2)  
182kHz. In this case, the Flash program and erase algorithm timings are increased over the optimum target  
by:  
(200 182) ⁄ 200 × 100 = 9%  
CAUTION  
Program and erase command execution time will increase proportionally  
with the period of FCLK. Because of the impact of clock synchronization  
on the accuracy of the functional timings, programming or erasing the Flash  
memory cannot be performed if the bus clock runs at less than 1 MHz.  
Programming or erasing the Flash memory with FCLK < 150 kHz should  
be avoided. Setting FCLKDIV to a value such that FCLK < 150 kHz can  
destroy the Flash memory due to overstress. Setting FCLKDIV to a value  
such that (1/FCLK+Tbus) < 5µs can result in incomplete programming or  
erasure of the Flash memory cells.  
If the FCLKDIV register is written, the FDIVLD bit is set automatically. If the FDIVLD bit is 0, the  
FCLKDIV register has not been written since the last reset. If the FCLKDIV register has not been written  
to, the Flash command loaded during a command write sequence will not execute and the ACCERR flag  
in the FSTAT register will set.  
BookTitle, Rev. 2.4  
Freescale Semiconductor  
123  
Download from Www.Somanuals.com. All Manuals Search And Download.  
512 Kbyte Flash Module (S12XFTX512K4V2)  
START  
no  
Tbus < 1µs?  
ALL COMMANDS IMPOSSIBLE  
yes  
PRDIV8=0 (reset)  
no  
oscillator_clock  
12.8MHz?  
yes  
PRDIV8=1  
PRDCLK=oscillator_clock/8  
PRDCLK=oscillator_clock  
no  
PRDCLK[MHz]*(5+Tbus[µs])  
an integer?  
FDIV[5:0]=INT(PRDCLK[MHz]*(5+Tbus[µs]))  
yes  
FDIV[5:0]=PRDCLK[MHz]*(5+Tbus[µs])-1  
TRY TO DECREASE Tbus  
FCLK=(PRDCLK)/(1+FDIV[5:0])  
yes  
1/FCLK[MHz] + Tbus[µs] > 5  
END  
AND  
FCLK > 0.15MHz  
?
no  
yes  
FDIV[5:0] > 4?  
no  
ALL COMMANDS IMPOSSIBLE  
Figure 2-24. Determination Procedure for PRDIV8 and FDIV Bits  
BookTitle, Rev. 2.4  
124  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
512 Kbyte Flash Module (S12XFTX512K4V2)  
2.4.1.2  
Command Write Sequence  
The Flash command controller is used to supervise the command write sequence to execute program,  
erase, erase verify, erase abort, and data compress algorithms.  
Before starting a command write sequence, the ACCERR and PVIOL flags in the FSTAT register must be  
clear (see Section 2.3.2.6, “Flash Status Register (FSTAT)”) and the CBEIF flag should be tested to  
determine the state of the address, data and command buffers. If the CBEIF flag is set, indicating the  
buffers are empty, a new command write sequence can be started. If the CBEIF flag is clear, indicating the  
buffers are not available, a new command write sequence will overwrite the contents of the address, data  
and command buffers.  
A command write sequence consists of three steps which must be strictly adhered to with writes to the  
Flash module not permitted between the steps. However, Flash register and array reads are allowed during  
a command write sequence. The basic command write sequence is as follows:  
1. Write to a valid address in the Flash memory. Addresses in multiple Flash blocks can be written to  
as long as the location is at the same relative address in each available Flash block. Multiple  
addresses must be written in Flash block order starting with the lower Flash block.  
2. Write a valid command to the FCMD register.  
3. Clear the CBEIF flag in the FSTAT register by writing a 1 to CBEIF to launch the command.  
The address written in step 1 will be stored in the FADDR registers and the data will be stored in the  
FDATA registers. If the CBEIF flag in the FSTAT register is clear when the first Flash array write occurs,  
the contents of the address and data buffers will be overwritten and the CBEIF flag will be set. When the  
CBEIF flag is cleared, the CCIF flag is cleared on the same bus cycle by the Flash command controller  
indicating that the command was successfully launched. For all command write sequences except data  
compress and sector erase abort, the CBEIF flag will set four bus cycles after the CCIF flag is cleared  
indicating that the address, data, and command buffers are ready for a new command write sequence to  
begin. For data compress and sector erase abort operations, the CBEIF flag will remain clear until the  
operation completes. Except for the sector erase abort command, a buffered command will wait for the  
active operation to be completed before being launched. The sector erase abort command is launched when  
the CBEIF flag is cleared as part of a sector erase abort command write sequence. Once a command is  
launched, the completion of the command operation is indicated by the setting of the CCIF flag in the  
FSTAT register. The CCIF flag will set upon completion of all active and buffered commands.  
2.4.2  
Flash Commands  
Table 2-20 summarizes the valid Flash commands along with the effects of the commands on the Flash  
block.  
Table 2-20. Flash Command Description  
NVM  
Command  
FCMDB  
Function on Flash Memory  
0x05  
Erase  
Verify  
Verify all memory bytes in the Flash block are erased.  
If the Flash block is erased, the BLANK flag in the FSTAT register will set upon command  
completion.  
BookTitle, Rev. 2.4  
Freescale Semiconductor  
125  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
512 Kbyte Flash Module (S12XFTX512K4V2)  
Table 2-20. Flash Command Description  
NVM  
Command  
FCMDB  
Function on Flash Memory  
0x06  
Data  
Compress  
Compress data from a selected portion of the Flash block.  
The resulting signature is stored in the FDATA register.  
0x20  
0x40  
Program  
Program a word (two bytes) in the Flash block.  
Sector  
Erase  
Erase all memory bytes in a sector of the Flash block.  
0x41  
0x47  
Mass  
Erase  
Erase all memory bytes in the Flash block.  
A mass erase of the full Flash block is only possible when FPLDIS, FPHDIS and  
FPOPEN bits in the FPROT register are set prior to launching the command.  
Sector  
Erase  
Abort  
Abort the sector erase operation.  
The sector erase operation will terminate according to a set procedure. The Flash sector  
should not be considered erased if the ACCERR flag is set upon command completion.  
CAUTION  
A Flash word must be in the erased state before being programmed.  
Cumulative programming of bits within a Flash word is not allowed.  
BookTitle, Rev. 2.4  
126  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
512 Kbyte Flash Module (S12XFTX512K4V2)  
2.4.2.1  
Erase Verify Command  
The erase verify operation will verify that a Flash block is erased.  
An example flow to execute the erase verify operation is shown in Figure 2-25. The erase verify command  
write sequence is as follows:  
1. Write to a Flash block address to start the command write sequence for the erase verify command.  
The address and data written will be ignored. Multiple Flash blocks can be simultaneously erase  
verified by writing to the same relative address in each Flash block.  
2. Write the erase verify command, 0x05, to the FCMD register.  
3. Clear the CBEIF flag in the FSTAT register by writing a 1 to CBEIF to launch the erase verify  
command.  
After launching the erase verify command, the CCIF flag in the FSTAT register will set after the operation  
has completed unless a new command write sequence has been buffered. The number of bus cycles  
required to execute the erase verify operation is equal to the number of addresses in a Flash block plus 14  
bus cycles as measured from the time the CBEIF flag is cleared until the CCIF flag is set. Upon completion  
of the erase verify operation, the BLANK flag in the FSTAT register will be set if all addresses in the  
selected Flash blocks are verified to be erased. If any address in a selected Flash block is not erased, the  
erase verify operation will terminate and the BLANK flag in the FSTAT register will remain clear. The  
MRDS bits in the FTSTMOD register will determine the sense-amp margin setting during the erase verify  
operation.  
BookTitle, Rev. 2.4  
Freescale Semiconductor  
127  
Download from Www.Somanuals.com. All Manuals Search And Download.  
512 Kbyte Flash Module (S12XFTX512K4V2)  
START  
Read: FCLKDIV register  
Clock Register  
Written  
NOTE: FCLKDIV needs to  
be set once after each reset.  
FDIVLD  
Set?  
no  
Check  
yes  
Write: FCLKDIV register  
Read: FSTAT register  
Address, Data,  
Command  
Buffer Empty Check  
CBEIF  
Set?  
no  
yes  
ACCERR/  
PVIOL  
Set?  
yes  
Access Error and  
Protection Violation  
Check  
Write: FSTAT register  
Clear ACCERR/PVIOL 0x30  
no  
Write: Flash Block Address  
and Dummy Data  
1.  
Simultaneous  
Multiple Flash Block  
Decision  
Next  
Flash  
Block?  
yes  
Decrement Global Address  
by 128K  
no  
Write: FCMD register  
2.  
3.  
Erase Verify Command 0x05  
Write: FSTAT register  
Clear CBEIF 0x80  
Read: FSTAT register  
Bit Polling for  
Command Completion  
Check  
no  
CCIF  
Set?  
yes  
Erase Verify  
Status  
no  
BLANK  
Set?  
yes  
Flash Block  
Erased  
Flash Block  
EXIT  
EXIT  
Not Erased  
Figure 2-25. Example Erase Verify Command Flow  
BookTitle, Rev. 2.4  
128  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
512 Kbyte Flash Module (S12XFTX512K4V2)  
2.4.2.2  
Data Compress Command  
The data compress operation will check Flash code integrity by compressing data from a selected portion  
of the Flash memory into a signature analyzer.  
An example flow to execute the data compress operation is shown in Figure 2-26. The data compress  
command write sequence is as follows:  
1. Write to a Flash block address to start the command write sequence for the data compress  
command. The address written determines the starting address for the data compress operation and  
the data written determines the number of consecutive words to compress. If the data value written  
is 0x0000, 64K addresses or 128 Kbytes will be compressed. Multiple Flash blocks can be  
simultaneously compressed by writing to the same relative address in each Flash block. If more  
than one Flash block is written to in this step, the first data written will determine the number of  
consecutive words to compress in each selected Flash block.  
2. Write the data compress command, 0x06, to the FCMD register.  
3. Clear the CBEIF flag in the FSTAT register by writing a 1 to CBEIF to launch the data compress  
command.  
After launching the data compress command, the CCIF flag in the FSTAT register will set after the data  
compress operation has completed. The number of bus cycles required to execute the data compress  
operation is equal to two times the number of consecutive words to compress plus the number of Flash  
blocks simultaneously compressed plus 18 bus cycles as measured from the time the CBEIF flag is cleared  
until the CCIF flag is set. Once the CCIF flag is set, the signature generated by the data compress operation  
is available in the FDATA registers. The signature in the FDATA registers can be compared to the expected  
signature to determine the integrity of the selected data stored in the selected Flash memory. If the last  
address of a Flash block is reached during the data compress operation, data compression will continue  
with the starting address of the same Flash block. The MRDS bits in the FTSTMOD register will determine  
the sense-amp margin setting during the data compress operation.  
NOTE  
Since the FDATA registers (or data buffer) are written to as part of the data  
compress operation, a command write sequence is not allowed to be  
buffered behind a data compress command write sequence. The CBEIF flag  
will not set after launching the data compress command to indicate that a  
command should not be buffered behind it. If an attempt is made to start a  
new command write sequence with a data compress operation active, the  
ACCERR flag in the FSTAT register will be set. A new command write  
sequence should only be started after reading the signature stored in the  
FDATA registers.  
In order to take corrective action, it is recommended that the data compress command be executed on a  
Flash sector or subset of a Flash sector. If the data compress operation on a Flash sector returns an invalid  
signature, the Flash sector should be erased using the sector erase command and then reprogrammed using  
the program command.  
The data compress command can be used to verify that a sector or sequential set of sectors are erased.  
BookTitle, Rev. 2.4  
Freescale Semiconductor  
129  
Download from Www.Somanuals.com. All Manuals Search And Download.  
512 Kbyte Flash Module (S12XFTX512K4V2)  
START  
Read: FCLKDIV register  
Clock Register  
Written  
NOTE: FCLKDIV needs to  
be set once after each reset.  
FDIVLD  
Set?  
no  
Check  
yes  
Write: FCLKDIV register  
Read: FSTAT register  
Address, Data,  
Command  
Buffer Empty Check  
CBEIF  
Set?  
no  
yes  
ACCERR/  
PVIOL  
Set?  
yes  
Access Error and  
Protection Violation  
Check  
Write: FSTAT register  
Clear ACCERR/PVIOL 0x30  
no  
Write: Flash Address to start  
compression and number of word  
addresses to compress  
1.  
NOTE: address used to select  
Flash block; data ignored.  
Simultaneous  
Multiple Flash Block  
Decision  
Next  
Flash  
Block?  
yes  
Decrement Global Address  
by 128K  
no  
Write: FCMD register  
2.  
3.  
Data Compress Command 0x06  
Write: FSTAT register  
Clear CBEIF 0x80  
Read: FSTAT register  
Bit Polling for  
Command Completion  
Check  
no  
no  
CCIF  
Set?  
yes  
Read: FDATA registers  
Data Compress Signature  
Signature  
Valid?  
Erase and Reprogram  
Flash Sector(s) Compressed  
yes  
EXIT  
Figure 2-26. Example Data Compress Command Flow  
BookTitle, Rev. 2.4  
130  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
512 Kbyte Flash Module (S12XFTX512K4V2)  
2.4.2.2.1  
Data Compress Operation  
The Flash module contains a 16-bit multiple-input signature register (MISR) for each Flash block to  
generate a 16-bit signature based on selected Flash array data. If multiple Flash blocks are selected for  
simultaneous compression, then the signature from each Flash block is further compressed to generate a  
single 16-bit signature. The final 16-bit signature, found in the FDATA registers after the data compress  
operation has completed, is based on the following logic equation which is executed on every data  
compression cycle during the operation:  
MISR[15:0] = {MISR[14:0], ^MISR[15,4,2,1]} ^ DATA[15:0]  
Eqn. 2-1  
where MISR is the content of the internal signature register associated with each Flash block and DATA  
is the data to be compressed as shown in Figure 2-27.  
DATA[0]  
DATA[1]  
DATA[2]  
DATA[3]  
DATA[4]  
DATA[5]  
DATA[15]  
...  
+
+
+
+
+
+
+
D Q  
M0  
>
D Q  
M1  
>
D Q  
M2  
>
D Q  
M3  
>
D Q  
M4  
>
D Q  
M5  
>
D Q  
M15  
>
+
+
+
+
= Exclusive-OR  
MISR[15:0] = Q[15:0]  
Figure 2-27. 16-Bit MISR Diagram  
During the data compress operation, the following steps are executed:  
1. MISR for each Flash block is reset to 0xFFFF.  
2. Initialized DATA equal to 0xFFFF is compressed into the MISR for each selected Flash block  
which results in the MISR containing 0x0001.  
3. DATA equal to the selected Flash array data range is read and compressed into the MISR for each  
selected Flash block with addresses incrementing.  
4. DATA equal to the selected Flash array data range is read and compressed into the MISR for each  
selected Flash block with addresses decrementing.  
5. If Flash block 0 is selected for compression, DATA equal to the contents of the MISR for Flash  
block 0 is compressed into the MISR for Flash block 0. If data in Flash block 0 was not selected  
for compression, the MISR for Flash block 0 contains 0xFFFF.  
6. If Flash block 1 is selected for compression, DATA equal to the contents of the MISR for Flash  
block 1 is compressed into the MISR for Flash block 0.  
7. If Flash block 2 is selected for compression, DATA equal to the contents of the MISR for Flash  
block 2 is compressed into the MISR for Flash block 0.  
8. If Flash block 3 is selected for compression, DATA equal to the contents of the MISR for Flash  
block 3 is compressed into the MISR for Flash block 0.  
9. The contents of the MISR for Flash block 0 are written to the FDATA registers.  
BookTitle, Rev. 2.4  
Freescale Semiconductor  
131  
Download from Www.Somanuals.com. All Manuals Search And Download.  
512 Kbyte Flash Module (S12XFTX512K4V2)  
2.4.2.3  
Program Command  
The program operation will program a previously erased word in the Flash memory using an embedded  
algorithm.  
An example flow to execute the program operation is shown in Figure 2-28. The program command write  
sequence is as follows:  
1. Write to a Flash block address to start the command write sequence for the program command. The  
data written will be programmed to the address written. Multiple Flash blocks can be  
simultaneously programmed by writing to the same relative address in each Flash block.  
2. Write the program command, 0x20, to the FCMD register.  
3. Clear the CBEIF flag in the FSTAT register by writing a 1 to CBEIF to launch the program  
command.  
If a word to be programmed is in a protected area of the Flash block, the PVIOL flag in the FSTAT register  
will set and the program command will not launch. Once the program command has successfully launched,  
the CCIF flag in the FSTAT register will set after the program operation has completed unless a new  
command write sequence has been buffered. By executing a new program command write sequence on  
sequential words after the CBEIF flag in the FSTAT register has been set, up to 55% faster programming  
time per word can be effectively achieved than by waiting for the CCIF flag to set after each program  
operation.  
BookTitle, Rev. 2.4  
132  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
512 Kbyte Flash Module (S12XFTX512K4V2)  
START  
Read: FCLKDIV register  
Clock Register  
NOTE: FCLKDIV needs to  
FDIVLD  
Set?  
no  
Written  
Check  
be set once after each reset.  
yes  
Write: FCLKDIV register  
Read: FSTAT register  
Address, Data,  
Command  
Buffer Empty Check  
CBEIF  
Set?  
no  
yes  
ACCERR/  
PVIOL  
Set?  
yes  
Access Error and  
Protection Violation  
Check  
Write: FSTAT register  
Clear ACCERR/PVIOL 0x30  
no  
Write: Flash Address  
and program Data  
1.  
Simultaneous  
Multiple Flash Block  
Decision  
Next  
Flash  
Block?  
yes  
Decrement Global Address  
by 128K  
no  
Write: FCMD register  
2.  
3.  
Program Command 0x20  
Write: FSTAT register  
Clear CBEIF 0x80  
Read: FSTAT register  
Bit Polling for  
Buffer Empty  
Check  
no  
CBEIF  
Set?  
yes  
Sequential  
Programming  
Decision  
yes  
Next  
Word?  
no  
Read: FSTAT register  
Bit Polling for  
Command Completion  
Check  
no  
CCIF  
Set?  
yes  
EXIT  
Figure 2-28. Example Program Command Flow  
BookTitle, Rev. 2.4  
Freescale Semiconductor  
133  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
512 Kbyte Flash Module (S12XFTX512K4V2)  
2.4.2.4  
Sector Erase Command  
The sector erase operation will erase all addresses in a 1 Kbyte sector of Flash memory using an embedded  
algorithm.  
An example flow to execute the sector erase operation is shown in Figure 2-29. The sector erase command  
write sequence is as follows:  
1. Write to a Flash block address to start the command write sequence for the sector erase command.  
The Flash address written determines the sector to be erased while global address bits [9:0] and the  
data written are ignored. Multiple Flash sectors can be simultaneously erased by writing to the  
same relative address in each Flash block.  
2. Write the sector erase command, 0x40, to the FCMD register.  
3. Clear the CBEIF flag in the FSTAT register by writing a 1 to CBEIF to launch the sector erase  
command.  
If a Flash sector to be erased is in a protected area of the Flash block, the PVIOL flag in the FSTAT register  
will set and the sector erase command will not launch. Once the sector erase command has successfully  
launched, the CCIF flag in the FSTAT register will set after the sector erase operation has completed unless  
a new command write sequence has been buffered.  
BookTitle, Rev. 2.4  
134  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
512 Kbyte Flash Module (S12XFTX512K4V2)  
START  
Read: FCLKDIV register  
Clock Register  
NOTE: FCLKDIV needs to  
FDIVLD  
Set?  
no  
Written  
Check  
be set once after each reset.  
yes  
Write: FCLKDIV register  
Read: FSTAT register  
Address, Data,  
Command  
Buffer Empty Check  
CBEIF  
Set?  
no  
yes  
ACCERR/  
PVIOL  
Set?  
yes  
Access Error and  
Protection Violation  
Check  
Write: FSTAT register  
Clear ACCERR/PVIOL 0x30  
no  
Write: Flash Sector Address  
and Dummy Data  
1.  
Simultaneous  
Multiple Flash Block  
Decision  
Next  
Flash  
yes  
Decrement Global Address  
by 128K  
Block?  
no  
Write: FCMD register  
2.  
3.  
Sector Erase Command 0x40  
Write: FSTAT register  
Clear CBEIF 0x80  
Read: FSTAT register  
Bit Polling for  
Command Completion  
Check  
no  
CCIF  
Set?  
yes  
EXIT  
Figure 2-29. Example Sector Erase Command Flow  
BookTitle, Rev. 2.4  
Freescale Semiconductor  
135  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
512 Kbyte Flash Module (S12XFTX512K4V2)  
2.4.2.5  
Mass Erase Command  
An example flow to execute the mass erase operation is shown in Figure 2-30. The mass erase command  
write sequence is as follows:  
1. Write to a Flash block address to start the command write sequence for the mass erase command.  
The address and data written will be ignored. Multiple Flash blocks can be simultaneously mass  
erased by writing to the same relative address in each Flash block.  
2. Write the mass erase command, 0x41, to the FCMD register.  
3. Clear the CBEIF flag in the FSTAT register by writing a 1 to CBEIF to launch the mass erase  
command.  
If a Flash block to be erased contains any protected area, the PVIOL flag in the FSTAT register will set and  
the mass erase command will not launch. Once the mass erase command has successfully launched, the  
CCIF flag in the FSTAT register will set after the mass erase operation has completed unless a new  
command write sequence has been buffered.  
BookTitle, Rev. 2.4  
136  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
512 Kbyte Flash Module (S12XFTX512K4V2)  
START  
Read: FCLKDIV register  
Clock Register  
NOTE: FCLKDIV needs to  
FDIVLD  
Set?  
no  
Written  
Check  
be set once after each reset.  
yes  
Write: FCLKDIV register  
Read: FSTAT register  
Address, Data,  
Command  
Buffer Empty Check  
CBEIF  
Set?  
no  
yes  
ACCERR/  
PVIOL  
Set?  
yes  
Access Error and  
Protection Violation  
Check  
Write: FSTAT register  
Clear ACCERR/PVIOL 0x30  
no  
Write: Flash Block Address  
and Dummy Data  
1.  
Simultaneous  
Multiple Flash Block  
Decision  
Next  
Flash  
Block?  
yes  
Decrement Global Address  
by 128K  
no  
Write: FCMD register  
2.  
3.  
Mass Erase Command 0x41  
Write: FSTAT register  
Clear CBEIF 0x80  
Read: FSTAT register  
Bit Polling for  
Command Completion  
Check  
no  
CCIF  
Set?  
yes  
EXIT  
Figure 2-30. Example Mass Erase Command Flow  
BookTitle, Rev. 2.4  
Freescale Semiconductor  
137  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
512 Kbyte Flash Module (S12XFTX512K4V2)  
2.4.2.6  
Sector Erase Abort Command  
The sector erase abort operation will terminate the active sector erase operation so that other sectors in a  
Flash block are available for read and program operations without waiting for the sector erase operation to  
complete.  
An example flow to execute the sector erase abort operation is shown in Figure 2-31. The sector erase abort  
command write sequence is as follows:  
1. Write to any Flash block address to start the command write sequence for the sector erase abort  
command. The address and data written are ignored.  
2. Write the sector erase abort command, 0x47, to the FCMD register.  
3. Clear the CBEIF flag in the FSTAT register by writing a 1 to CBEIF to launch the sector erase abort  
command.  
If the sector erase abort command is launched resulting in the early termination of an active sector erase  
operation, the ACCERR flag will set once the operation completes as indicated by the CCIF flag being set.  
The ACCERR flag sets to inform the user that the Flash sector may not be fully erased and a new sector  
erase command must be launched before programming any location in that specific sector. If the sector  
erase abort command is launched but the active sector erase operation completes normally, the ACCERR  
flag will not set upon completion of the operation as indicated by the CCIF flag being set. Therefore, if the  
ACCERR flag is not set after the sector erase abort command has completed, a Flash sector being erased  
when the abort command was launched will be fully erased. The maximum number of cycles required to  
abort a sector erase operation is equal to four FCLK periods (see Section 2.4.1.1, “Writing the FCLKDIV  
Register”) plus five bus cycles as measured from the time the CBEIF flag is cleared until the CCIF flag is  
set. If sectors in multiple Flash blocks are being simultaneously erased, the sector erase abort operation  
will be applied to all active Flash blocks without writing to each Flash block in the sector erase abort  
command write sequence.  
NOTE  
Since the ACCERR bit in the FSTAT register may be set at the completion  
of the sector erase abort operation, a command write sequence is not  
allowed to be buffered behind a sector erase abort command write sequence.  
The CBEIF flag will not set after launching the sector erase abort command  
to indicate that a command should not be buffered behind it. If an attempt is  
made to start a new command write sequence with a sector erase abort  
operation active, the ACCERR flag in the FSTAT register will be set. A new  
command write sequence may be started after clearing the ACCERR flag, if  
set.  
NOTE  
The sector erase abort command should be used sparingly since a sector  
erase operation that is aborted counts as a complete program/erase cycle.  
BookTitle, Rev. 2.4  
138  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
512 Kbyte Flash Module (S12XFTX512K4V2)  
Execute Sector Erase Command Flow  
Read: FSTAT register  
Erase  
Abort  
Needed?  
Bit Polling for  
Command  
Completion Check  
CCIF  
Set?  
no  
no  
yes  
yes  
Sector Erase  
Completed  
EXIT  
Write: Dummy Flash Address  
and Dummy Data  
1.  
2.  
3.  
Write: FCMD register  
Sector Erase Abort Cmd 0x47  
Write: FSTAT register  
Clear CBEIF 0x80  
Read: FSTAT register  
no  
Bit Polling for  
Command  
Completion Check  
CCIF  
Set?  
yes  
yes  
ACCERR  
Set?  
Access  
Error Check  
Write: FSTAT register  
Clear ACCERR 0x10  
no  
Sector Erase  
Completed  
Sector Erase  
Aborted  
EXIT  
EXIT  
Figure 2-31. Example Sector Erase Abort Command Flow  
BookTitle, Rev. 2.4  
Freescale Semiconductor  
139  
Download from Www.Somanuals.com. All Manuals Search And Download.  
512 Kbyte Flash Module (S12XFTX512K4V2)  
2.4.3  
Illegal Flash Operations  
The ACCERR flag will be set during the command write sequence if any of the following illegal steps are  
performed, causing the command write sequence to immediately abort:  
1. Writing to a Flash address before initializing the FCLKDIV register.  
2. Writing a byte or misaligned word to a valid Flash address.  
3. Starting a command write sequence while a data compress operation is active.  
4. Starting a command write sequence while a sector erase abort operation is active.  
5. Writing a Flash address in step 1 of a command write sequence that is not the same relative address  
as the first one written in the same command write sequence.  
6. Writing to any Flash register other than FCMD after writing to a Flash address.  
7. Writing a second command to the FCMD register in the same command write sequence.  
8. Writing an invalid command to the FCMD register.  
9. When security is enabled, writing a command other than mass erase to the FCMD register when  
the write originates from a non-secure memory location or from the Background Debug Mode.  
10. Writing to a Flash address after writing to the FCMD register.  
11. Writing to any Flash register other than FSTAT (to clear CBEIF) after writing to the FCMD  
register.  
12. Writing a 0 to the CBEIF flag in the FSTAT register to abort a command write sequence.  
The ACCERR flag will not be set if any Flash register is read during a valid command write sequence.  
The ACCERR flag will also be set if any of the following events occur:  
1. Launching the sector erase abort command while a sector erase operation is active which results in  
the early termination of the sector erase operation (see Section 2.4.2.6, “Sector Erase Abort  
Command”).  
2. The MCU enters stop mode and a program or erase operation is in progress. The operation is  
aborted immediately and any pending command is purged (see Section 2.5.2, “Stop Mode”).  
If the Flash memory is read during execution of an algorithm (CCIF = 0), the read operation will return  
invalid data and the ACCERR flag will not be set.  
If the ACCERR flag is set in the FSTAT register, the user must clear the ACCERR flag before starting  
another command write sequence (see Section 2.3.2.6, “Flash Status Register (FSTAT)”).  
The PVIOL flag will be set after the command is written to the FCMD register during a command write  
sequence if any of the following illegal operations are attempted, causing the command write sequence to  
immediately abort:  
1. Writing the program command if an address written in the command write sequence was in a  
protected area of the Flash memory  
2. Writing the sector erase command if an address written in the command write sequence was in a  
protected area of the Flash memory  
3. Writing the mass erase command to a Flash block while any Flash protection is enabled in the  
block  
BookTitle, Rev. 2.4  
140  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
512 Kbyte Flash Module (S12XFTX512K4V2)  
If the PVIOL flag is set in the FSTAT register, the user must clear the PVIOL flag before starting another  
command write sequence (see Section 2.3.2.6, “Flash Status Register (FSTAT)”).  
2.5  
Operating Modes  
Wait Mode  
2.5.1  
If a command is active (CCIF = 0) when the MCU enters wait mode, the active command and any buffered  
command will be completed.  
The Flash module can recover the MCU from wait mode if the CBEIF and CCIF interrupts are enabled  
(see Section 2.8, “Interrupts”).  
2.5.2  
Stop Mode  
If a command is active (CCIF = 0) when the MCU enters stop mode, the operation will be aborted and, if  
the operation is program or erase, the Flash array data being programmed or erased may be corrupted and  
the CCIF and ACCERR flags will be set. If active, the high voltage circuitry to the Flash memory will  
and any buffered command will not be launched. The ACCERR flag must be cleared before starting a  
command write sequence (see Section 2.4.1.2, “Command Write Sequence”).  
NOTE  
As active commands are immediately aborted when the MCU enters stop  
mode, it is strongly recommended that the user does not use the STOP  
instruction during program or erase operations.  
2.5.3  
Background Debug Mode  
In background debug mode (BDM), the FPROT register is writable. If the MCU is unsecured, then all  
Flash commands listed in Table 2-20 can be executed. If the MCU is secured and is in special single chip  
mode, only mass erase can be executed.  
2.6  
Flash Module Security  
The Flash module provides the necessary security information to the MCU. After each reset, the Flash  
module determines the security state of the MCU as defined in Section 2.3.2.2, “Flash Security Register  
(FSEC)”.  
The contents of the Flash security byte at 0x7F_FF0F in the Flash Configuration Field must be changed  
directly by programming 0x7F_FF0F when the MCU is unsecured and the higher address sector is  
unprotected. If the Flash security byte is left in a secured state, any reset will cause the MCU to initialize  
to a secure operating mode.  
BookTitle, Rev. 2.4  
Freescale Semiconductor  
141  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
512 Kbyte Flash Module (S12XFTX512K4V2)  
2.6.1  
Unsecuring the MCU using Backdoor Key Access  
contents of the backdoor keys (four 16-bit words programmed at addresses 0x7F_FF00–0x7F_FF07). If  
the KEYEN[1:0] bits are in the enabled state (see Section 2.3.2.2, “Flash Security Register (FSEC)”) and  
the KEYACC bit is set, a write to a backdoor key address in the Flash memory triggers a comparison  
between the written data and the backdoor key data stored in the Flash memory. If all four words of data  
are written to the correct addresses in the correct order and the data matches the backdoor keys stored in  
the Flash memory, the MCU will be unsecured. The data must be written to the backdoor keys sequentially  
starting with 0x7F_FF00–1 and ending with 0x7F_FF06–7. 0x0000 and 0xFFFF are not permitted as  
backdoor keys. While the KEYACC bit is set, reads of the Flash memory will return invalid data.  
The user code stored in the Flash memory must have a method of receiving the backdoor keys from an  
external stimulus. This external stimulus would typically be through one of the on-chip serial ports.  
If the KEYEN[1:0] bits are in the enabled state (see Section 2.3.2.2, “Flash Security Register (FSEC)”),  
the MCU can be unsecured by the backdoor key access sequence described below:  
1. Set the KEYACC bit in the Flash Configuration Register (FCNFG).  
2. Write the correct four 16-bit words to Flash addresses 0xFF00–0xFF07 sequentially starting with  
0x7F_FF00.  
3. Clear the KEYACC bit. Depending on the user code used to write the backdoor keys, a wait cycle  
(NOP) may be required before clearing the KEYACC bit.  
4. If all four 16-bit words match the backdoor keys stored in Flash addresses  
0x7F_FF00–0x7F_FF07, the MCU is unsecured and the SEC[1:0] bits in the FSEC register are  
forced to the unsecure state of 1:0.  
The backdoor key access sequence is monitored by an internal security state machine. An illegal operation  
during the backdoor key access sequence will cause the security state machine to lock, leaving the MCU  
in the secured state. A reset of the MCU will cause the security state machine to exit the lock state and  
allow a new backdoor key access sequence to be attempted. The following operations during the backdoor  
key access sequence will lock the security state machine:  
1. If any of the four 16-bit words does not match the backdoor keys programmed in the Flash array.  
2. If the four 16-bit words are written in the wrong sequence.  
3. If more than four 16-bit words are written.  
4. If any of the four 16-bit words written are 0x0000 or 0xFFFF.  
5. If the KEYACC bit does not remain set while the four 16-bit words are written.  
6. If any two of the four 16-bit words are written on successive MCU clock cycles.  
After the backdoor keys have been correctly matched, the MCU will be unsecured. Once the MCU is  
unsecured, the Flash security byte can be programmed to the unsecure state, if desired.  
In the unsecure state, the user has full control of the contents of the backdoor keys by programming  
addresses 0x7F_FF00–0x7F_FF07 in the Flash Configuration Field.  
The security as defined in the Flash security byte (0x7F_FF0F) is not changed by using the backdoor key  
access sequence to unsecure. The backdoor keys stored in addresses 0x7F_FF00–0x7F_FF07 are  
BookTitle, Rev. 2.4  
142  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
512 Kbyte Flash Module (S12XFTX512K4V2)  
unaffected by the backdoor key access sequence. After the next reset of the MCU, the security state of the  
Flash module is determined by the Flash security byte (0x7F_FF0F). The backdoor key access sequence  
has no effect on the program and erase protections defined in the Flash protection register.  
It is not possible to unsecure the MCU in special single chip mode by using the backdoor key access  
sequence in background debug mode (BDM).  
2.6.2  
Unsecuring the MCU in Special Single Chip Mode using BDM  
The MCU can be unsecured in special single chip mode by erasing the Flash module by the following  
method:  
Reset the MCU into special single chip mode, delay while the erase test is performed by the BDM  
secure ROM, send BDM commands to disable protection in the Flash module, and execute a mass  
erase command write sequence to erase the Flash memory.  
After the CCIF flag sets to indicate that the mass operation has completed, reset the MCU into special  
single chip mode. The BDM secure ROM will verify that the Flash memory is erased and will assert the  
UNSEC bit in the BDM status register. This BDM action will cause the MCU to override the Flash security  
state and the MCU will be unsecured. All BDM commands will be enabled and the Flash security byte  
may be programmed to the unsecure state by the following method:  
Send BDM commands to execute a word program sequence to program the Flash security byte to  
the unsecured state and reset the MCU.  
2.7  
Resets  
2.7.1  
Flash Reset Sequence  
On each reset, the Flash module executes a reset sequence to hold CPU activity while loading the following  
registers from the Flash memory according to Table 2-1:  
FPROT — Flash Protection Register (see Section 2.3.2.5).  
FCTL - Flash Control Register (see Section 2.3.2.8).  
FSEC — Flash Security Register (see Section 2.3.2.2).  
2.7.2  
Reset While Flash Command Active  
If a reset occurs while any Flash command is in progress, that command will be immediately aborted. The  
state of the word being programmed or the sector/block being erased is not guaranteed.  
2.8  
Interrupts  
The Flash module can generate an interrupt when all Flash command operations have completed, when the  
Flash address, data and command buffers are empty.  
BookTitle, Rev. 2.4  
Freescale Semiconductor  
143  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
512 Kbyte Flash Module (S12XFTX512K4V2)  
Table 2-21. Flash Interrupt Sources  
Interrupt Source  
Interrupt Flag  
Local Enable  
Global (CCR) Mask  
Flash Address, Data and Command Buffers empty  
CBEIF  
CBEIE  
I Bit  
(FSTAT register)  
(FCNFG register)  
All Flash commands completed  
CCIF  
CCIE  
I Bit  
(FSTAT register)  
(FCNFG register)  
NOTE  
Vector addresses and their relative interrupt priority are determined at the  
MCU level.  
2.8.1  
The logic used for generating interrupts is shown in Figure 2-32.  
The Flash module uses the CBEIF and CCIF flags in combination with the CBIE and CCIE enable bits to  
generate the Flash command interrupt request.  
CBEIF  
CBEIE  
Flash Command Interrupt Request  
CCIF  
CCIE  
For a detailed description of the register bits, refer to Section 2.3.2.4, “Flash Configuration Register  
(FCNFG)” and Section 2.3.2.6, “Flash Status Register (FSTAT)” .  
BookTitle, Rev. 2.4  
144  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 3  
4 Kbyte EEPROM Module (S12XEETX4KV2)  
3.1  
Introduction  
This document describes the module which includes a Kbyte EEPROM (nonvolatile) memory. The  
EEPROM memory may be read as either bytes, aligned words, or misaligned words. Read access time is  
one bus cycle for bytes and aligned words, and two bus cycles for misaligned words.  
The EEPROM memory is ideal for data storage for single-supply applications allowing for field  
reprogramming without requiring external voltage sources for program or erase. Program and erase  
functions are controlled by a command driven interface. The EEPROM module supports both block erase  
(all memory bytes) and sector erase (4 memory bytes). An erased bit reads 1 and a programmed bit reads  
0. The high voltage required to program and erase the EEPROM memory is generated internally. It is not  
possible to read from the EEPROM block while it is being erased or programmed.  
CAUTION  
An EEPROM word (2 bytes) must be in the erased state before being  
programmed. Cumulative programming of bits within a word is not allowed.  
3.1.1  
Glossary  
Command Write Sequence — A three-step MCU instruction sequence to execute built-in algorithms  
(including program and erase) on the EEPROM memory.  
3.1.2  
Features  
Automated program and erase algorithm  
Interrupts on EEPROM command completion and command buffer empty  
Fast sector erase and word program operation  
2-stage command pipeline  
Sector erase abort feature for critical interrupt response  
Flexible protection scheme to prevent accidental program or erase  
Single power supply for all EEPROM operations including program and erase  
3.1.3  
Modes of Operation  
Program, erase and erase verify operations (please refer to Section 3.4.1, “EEPROM Command  
Operations” for details).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
145  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
3.1.4  
Block Diagram  
A block diagram of the EEPROM module is shown in .  
3.2  
External Signal Description  
The EEPROM module contains no signals that connect off-chip.  
3.3  
Memory Map and Register Definition  
This section describes the memory map and registers for the EEPROM module.  
3.3.1  
Module Memory Map  
The EEPROM memory map is shown in . The HCS12X architecture places the EEPROM memory  
addresses between global addresses . The EPROT register, described in Section 3.3.2.5, “EEPROM  
Protection Register (EPROT)”, can be set to protect the upper region in the EEPROM memory from  
accidental program or erase. The EEPROM addresses covered by this protectable region are shown in the  
EEPROM memory map. The default protection setting is stored in the EEPROM configuration field as  
described in Table 3-1.  
Table 3-1. EEPROM Configuration Field  
Size  
(bytes)  
Global Address  
Description  
0x13_FFFC  
0x13_FFFD  
1
1
EEPROM Protection byte  
Refer to Section 3.3.2.5, “EEPROM Protection Register (EPROT)”  
0x13_FFFE – 0x13_FFFF  
2
Reserved  
MC9S12XDP512 Data Sheet, Rev. 2.11  
146  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
module base + 0x0000 and 0x000B. A summary of the EEPROM module registers is given in Table 3-2  
while their accessibility is detailed in Section 3.3.2, “Register Descriptions”.  
Table 3-2. EEPROM Register Map  
Module  
Base +  
Normal Mode  
Access  
Register Name  
0x0000  
0x0001  
0x0002  
0x0003  
0x0004  
0x0005  
0x0006  
0x0007  
0x0008  
0x0009  
0x000A  
0x000B  
EEPROM Clock Divider Register (ECLKDIV)  
R/W  
R
1
RESERVED1  
1
RESERVED2  
R
EEPROM Configuration Register (ECNFG)  
EEPROM Protection Register (EPROT)  
EEPROM Status Register (ESTAT)  
R/W  
R/W  
R/W  
R/W  
R
EEPROM Command Register (ECMD)  
1
RESERVED3  
1
EEPROM High Address Register (EADDRHI)  
R
1
EEPROM Low Address Register (EADDRLO)  
R
1
EEPROM High Data Register (EDATAHI)  
R
1
EEPROM Low Data Register (EDATALO)  
R
1
Intended for factory test purposes only.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
147  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
3.3.2  
Register Descriptions  
Register  
Name  
Bit 7  
6
PRDIV8  
0
5
EDIV5  
0
4
EDIV4  
0
3
EDIV3  
0
2
EDIV2  
0
1
EDIV1  
0
Bit 0  
EDIV0  
0
0x0000  
ECLKDIV  
R
EDIVLD  
W
0x0001  
RESERVED1  
R
0
0
W
0x0002  
RESERVED2  
R
0
0
0
0
0
0
0
0
0
0
0
0
0
W
0x0003  
ECNFG  
R
CBEIE  
CCIE  
W
0x0004  
EPROT  
R
RNV6  
RNV5  
RNV4  
EPOPEN  
EPDIS  
0
EPS2  
EPS1  
0
EPS0  
0
W
0x0005  
ESTAT  
R
CCIF  
BLANK  
CBEIF  
0
PVIOL  
ACCERR  
W
0x0006  
ECMD  
R
CMDB  
0
W
0x0007  
R
0
0
0
0
0
0
0
RESERVED3  
W
0x0009  
R
EABLO  
EADDRLO  
W
0x000A  
R
EDHI  
EDATAHI  
W
0x000B  
R
EDLO  
EDATALO  
W
= Unimplemented or Reserved  
Figure 3-1. MC9S12XDP512 Register Summary  
3.3.2.1  
EEPROM Clock Divider Register (ECLKDIV)  
The ECLKDIV register is used to control timed events in program and erase algorithms.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
148  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
Module Base + 0x0000  
7
6
5
4
3
2
1
0
R
W
EDIVLD  
PRDIV8  
EDIV5  
EDIV4  
EDIV3  
EDIV2  
EDIV1  
EDIV0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 3-2. EEPROM Clock Divider Register (ECLKDIV)  
All bits in the ECLKDIV register are readable, bits 6–0 are write once and bit 7 is not writable.  
Table 3-3. ECLKDIV Field Descriptions  
Field  
Description  
7
Clock Divider Loaded  
EDIVLD  
0 Register has not been written.  
1 Register has been written to since the last reset.  
6
Enable Prescalar by 8  
PRDIV8  
0 The oscillator clock is directly fed into the ECLKDIV divider.  
1 Enables a Prescalar by 8, to divide the oscillator clock before feeding into the clock divider.  
5–0  
Clock Divider Bits — The combination of PRDIV8 and EDIV[5:0] effectively divides the EEPROM module input  
EDIV[5:0] oscillator clock down to a frequency of 150 kHz – 200 kHz. The maximum divide ratio is 512. Please refer to  
Section 3.4.1.1, “Writing the ECLKDIV Register” for more information.  
3.3.2.2  
RESERVED1  
This register is reserved for factory testing and is not accessible.  
Module Base + 0x0001  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
0
0
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 3-3. RESERVED1  
All bits read 0 and are not writable.  
3.3.2.3  
RESERVED2  
This register is reserved for factory testing and is not accessible.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
149  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
Module Base + 0x0002  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
0
0
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 3-4. RESERVED2  
All bits read 0 and are not writable.  
3.3.2.4  
EEPROM Configuration Register (ECNFG)  
The ECNFG register enables the EEPROM interrupts.  
Module Base + 0x0003  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
CBEIE  
CCIE  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 3-5. EEPROM Configuration Register (ECNFG)  
CBEIE and CCIE bits are readable and writable while all remaining bits read 0 and are not writable.  
Table 3-4. ECNFG Field Descriptions  
Field  
Description  
7
Command Buffer Empty Interrupt Enable — The CBEIE bit enables an interrupt in case of an empty command  
buffer in the EEPROM module.  
CBEIE  
0 Command Buffer Empty interrupt disabled.  
1 An interrupt will be requested whenever the CBEIF flag (see Section 3.3.2.6, “EEPROM Status Register  
(ESTAT)”) is set.  
6
Command Complete Interrupt Enable — The CCIE bit enables an interrupt in case all commands have been  
completed in the EEPROM module.  
CCIE  
1 An interrupt will be requested whenever the CCIF flag (see Section 3.3.2.6, “EEPROM Status Register  
(ESTAT)”) is set.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
150  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
3.3.2.5  
EEPROM Protection Register (EPROT)  
The EPROT register defines which EEPROM sectors are protected against program or erase operations.  
Module Base + 0x0004  
7
6
5
4
3
2
1
0
R
W
RNV6  
RNV5  
RNV4  
EPOPEN  
EPDIS  
EPS2  
EPS1  
EPS0  
Reset  
F
F
F
F
F
F
F
F
= Unimplemented or Reserved  
Figure 3-6. EEPROM Protection Register (EPROT)  
During the reset sequence, the EPROT register is loaded from the EEPROM Protection byte at address  
offset 0x0FFD (see Table 3-1).All bits in the EPROT register are readable and writable except for  
RNV[6:4] which are only readable. The EPOPEN and EPDIS bits can only be written to the protected  
state. The EPS bits can be written anytime until bit EPDIS is cleared. If the EPOPEN bit is cleared, the  
state of the EPDIS and EPS bits is irrelevant.  
To change the EEPROM protection that will be loaded during the reset sequence, the EEPROM memory  
must be unprotected, then the EEPROM Protection byte must be reprogrammed. Trying to alter data in any  
protected area in the EEPROM memory will result in a protection violation error and the PVIOL flag will  
be set in the ESTAT register. The mass erase of an EEPROM block is possible only when protection is  
fully disabled by setting the EPOPEN and EPDIS bits.  
Table 3-5. EPROT Field Descriptions  
Field  
Description  
7
Opens the EEPROM for Program or Erase  
EPOPEN 0 The entire EEPROM memory is protected from program and erase.  
1 The EEPROM sectors not protected are enabled for program or erase.  
6–4  
Reserved Nonvolatile Bits — The RNV[6:4] bits should remain in the erased state “1” for future enhancements.  
RNV[6:4]  
3
EEPROM Protection Address Range Disable — The EPDIS bit determines whether there is a protected area  
in a specific region of the EEPROM memory ending with address offset 0x0FFF.  
0 Protection enabled.  
EPDIS  
1 Protection disabled.  
2–0  
EEPROM Protection Address Size — The EPS[2:0] bits determine the size of the protected area as shown  
EPS[2:0]  
inTable 3-6. The EPS bits can only be written to while the EPDIS bit is set.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
151  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
Table 3-6. EEPROM Protection Address Range  
EPS[2:0]  
Address Offset Range  
Protected Size  
000  
001  
010  
011  
100  
101  
110  
111  
0x0FC0 – 0x0FFF  
0x0F80 – 0x0FFF  
0x0F40 – 0x0FFF  
0x0F00 – 0x0FFF  
0x0EC0 – 0x0FFF  
0x0E80 – 0x0FFF  
0x0E40 – 0x0FFF  
0x0E00 – 0x0FFF  
64 bytes  
128 bytes  
192 bytes  
256 bytes  
320 bytes  
384 bytes  
448 bytes  
512 bytes  
3.3.2.6  
EEPROM Status Register (ESTAT)  
The ESTAT register defines the operational status of the module.  
Module Base + 0x0005  
7
6
5
4
3
2
1
0
R
W
CCIF  
0
BLANK  
0
0
CBEIF  
PVIOL  
ACCERR  
Reset  
1
1
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 3-7. EEPROM Status Register (ESTAT — Normal Mode)  
Module Base + 0x0005  
7
6
5
4
3
2
1
0
R
CCIF  
0
BLANK  
0
CBEIF  
W
PVIOL  
ACCERR  
FAIL  
Reset  
1
1
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 3-8. EEPROM Status Register (ESTAT — Special Mode)  
CBEIF, PVIOL, and ACCERR are readable and writable, CCIF and BLANK are readable and not writable,  
remaining bits read 0 and are not writable in normal mode. FAIL is readable and writable in special mode.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
152  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
Table 3-7. ESTAT Field Descriptions  
Field  
Description  
7
Command Buffer Empty Interrupt Flag — The CBEIF flag indicates that the address, data, and command  
buffers are empty so that a new command write sequence can be started. The CBEIF flag is cleared by writing  
a 1 to CBEIF. Writing a 0 to the CBEIF flag has no effect on CBEIF. Writing a 0 to CBEIF after writing an aligned  
word to the EEPROM address space but before CBEIF is cleared will abort a command write sequence and  
cause the ACCERR flag to be set. Writing a 0 to CBEIF outside of a command write sequence will not set the  
ACCERR flag. The CBEIF flag is used together with the CBEIE bit in the ECNFG register to generate an interrupt  
request (see Figure 3-21).  
CBEIF  
0 Buffers are full.  
1 Buffers are ready to accept a new command.  
6
Command Complete Interrupt Flag — The CCIF flag indicates that there are no more commands pending. The  
CCIF flag is cleared when CBEIF is clear and sets automatically upon completion of all active and pending  
commands. The CCIF flag does not set when an active commands completes and a pending command is  
fetched from the command buffer. Writing to the CCIF flag has no effect on CCIF. The CCIF flag is used together  
with the CCIE bit in the ECNFG register to generate an interrupt request (see Figure 3-21).  
0 Command in progress.  
CCIF  
1 All commands are completed.  
5
Protection Violation Flag — The PVIOL flag indicates an attempt was made to program or erase an address  
in a protected area of the EEPROM memory during a command write sequence. The PVIOL flag is cleared by  
writing a 1 to PVIOL. Writing a 0 to the PVIOL flag has no effect on PVIOL. While PVIOL is set, it is not possible  
to launch a command or start a command write sequence.  
PVIOL  
0 No failure.  
1 A protection violation has occurred.  
4
ACCERR caused by either a violation of the command write sequence (see Section 3.4.1.2, “Command Write Sequence”),  
issuing an illegal EEPROM command (see Table 3-9), launching the sector erase abort command terminating a  
sector erase operation early (see Section 3.4.2.5, “Sector Erase Abort Command”) or the execution of a CPU  
STOP instruction while a command is executing (CCIF = 0). The ACCERR flag is cleared by writing a 1 to  
ACCERR. Writing a 0 to the ACCERR flag has no effect on ACCERR. While ACCERR is set, it is not possible to  
launch a command or start a command write sequence. If ACCERR is set by an erase verify operation, any  
buffered command will not launch.  
0 No access error detected.  
1 Access error has occurred.  
2
Flag Indicating the Erase Verify Operation Status — When the CCIF flag is set after completion of an erase  
verify command, the BLANK flag indicates the result of the erase verify operation. The BLANK flag is cleared by  
the EEPROM module when CBEIF is cleared as part of a new valid command write sequence. Writing to the  
BLANK flag has no effect on BLANK.  
BLANK  
0 EEPROM block verified as not erased.  
1 EEPROM block verified as erased.  
1
FAIL  
Flag Indicating a Failed EEPROM Operation — The FAIL flag will set if the erase verify operation fails  
(EEPROM block verified as not erased). The FAIL flag is cleared by writing a 1 to FAIL. Writing a 0 to the FAIL  
flag has no effect on FAIL.  
0 EEPROM operation completed without error.  
1 EEPROM operation failed.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
153  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
3.3.2.7  
EEPROM Command Register (ECMD)  
The ECMD register is the EEPROM command register.  
Module Base + 0x0006  
7
6
5
4
3
2
1
0
R
W
0
CMDB  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 3-9. EEPROM Command Register (ECMD)  
All CMDB bits are readable and writable during a command write sequence while bit 7 reads 0 and is not  
writable.  
Table 3-8. ECMD Field Descriptions  
Field  
Description  
6–0  
EEPROM Command Bits — Valid EEPROM commands are shown in Table 3-9. Writing any command other  
CMDB[6:0] than those listed in Table 3-9 sets the ACCERR flag in the ESTAT register.  
Table 3-9. Valid EEPROM Command List  
CMDB[6:0]  
Command  
0x05  
0x20  
0x40  
0x41  
0x47  
0x60  
Erase Verify  
Word Program  
Sector Erase  
Mass Erase  
Sector Erase Abort  
Sector Modify  
3.3.2.8  
RESERVED3  
This register is reserved for factory testing and is not accessible.  
Module Base + 0x0007  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
0
0
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 3-10. RESERVED3  
MC9S12XDP512 Data Sheet, Rev. 2.11  
154  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
All bits read 0 and are not writable.  
EEPROM Address Registers (EADDR)  
The EADDRHI and EADDRLO registers are the EEPROM address registers.  
Module Base + 0x0009  
7
6
5
4
3
2
1
0
R
W
EABLO  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 3-11. EEPROM Address Low Register (EADDRLO)  
All EABHI and EABLO bits read 0 and are not writable in normal modes.  
All EABHI and EABLO bits are readable and writable in special modes.  
The MCU address bit AB0 is not stored in the EADDR registers since the EEPROM block is not byte  
addressable.  
3.3.2.9  
EEPROM Data Registers (EDATA)  
The EDATAHI and EDATALO registers are the EEPROM data registers.  
Module Base + 0x000A  
7
6
5
4
3
2
1
0
R
W
EDHI  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 3-12. EEPROM Data High Register (EDATAHI)  
Module Base + 0x000B  
7
6
5
4
3
2
1
0
R
EDLO  
W
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 3-13. EEPROM Data Low Register (EDATALO)  
All EDHI and EDLO bits read 0 and are not writable in normal modes.  
All EDHI and EDLO bits are readable and writable in special modes.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
155  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
3.4  
Functional Description  
3.4.1  
EEPROM Command Operations  
Write operations are used to execute program, erase, erase verify, sector erase abort, and sector modify  
algorithms described in this section. The program, erase, and sector modify algorithms are controlled by  
a state machine whose timebase, EECLK, is derived from the oscillator clock via a programmable divider.  
The command register as well as the associated address and data registers operate as a buffer and a register  
(2-stage FIFO) so that a second command along with the necessary data and address can be stored to the  
buffer while the first command is still in progress. Buffer empty as well as command completion are  
signalled by flags in the EEPROM status register with interrupts generated, if enabled.  
The next sections describe:  
1. How to write the ECLKDIV register  
2. Command write sequences to program, erase, erase verify, sector erase abort, and sector modify  
operations on the EEPROM memory  
3. Valid EEPROM commands  
4. Effects resulting from illegal EEPROM command write sequences or aborting EEPROM  
operations  
3.4.1.1  
Writing the ECLKDIV Register  
Prior to issuing any EEPROM command after a reset, the user is required to write the ECLKDIV register  
to divide the oscillator clock down to within the 150 kHz to 200 kHz range. Since the program and erase  
timings are also a function of the bus clock, the ECLKDIV determination must take this information into  
account.  
If we define:  
ECLK as the clock of the EEPROM timing control block  
Tbus as the period of the bus clock  
INT(x) as taking the integer part of x (e.g., INT(4.323)=4)  
then ECLKDIV register bits PRDIV8 and EDIV[5:0] are to be set as described in Figure 3-14.  
For example, if the oscillator clock frequency is 4 MHz and the bus clock frequency is 40 MHz, ECLKDIV  
bits EDIV[5:0] should be set to 0x14 (010100) and bit PRDIV8 set to 0. The resulting EECLK frequency  
is then 190 kHz. As a result, the EEPROM program and erase algorithm timings are increased over the  
optimum target by:  
(200 190) ⁄ 200 × 100 = 5%  
If the oscillator clock frequency is 16 MHz and the bus clock frequency is 40 MHz, ECLKDIV bits  
EDIV[5:0] should be set to 0x0A (001010) and bit PRDIV8 set to 1. The resulting EECLK frequency is  
then 182 kHz. In this case, the EEPROM program and erase algorithm timings are increased over the  
optimum target by:  
(200 182) ⁄ 200 × 100 = 9%  
MC9S12XDP512 Data Sheet, Rev. 2.11  
156  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
CAUTION  
Program and erase command execution time will increase proportionally  
with the period of EECLK. Because of the impact of clock synchronization  
on the accuracy of the functional timings, programming or erasing the  
EEPROM memory cannot be performed if the bus clock runs at less than 1  
MHz. Programming or erasing the EEPROM memory with EECLK < 150  
kHz should be avoided. Setting ECLKDIV to a value such that EECLK <  
150 kHz can destroy the EEPROM memory due to overstress. Setting  
ECLKDIV to a value such that (1/EECLK+Tbus) < 5 µs can result in  
incomplete programming or erasure of the EEPROM memory cells.  
If the ECLKDIV register is written, the EDIVLD bit is set automatically. If the EDIVLD bit is 0, the  
ECLKDIV register has not been written since the last reset. If the ECLKDIV register has not been written  
to, the EEPROM command loaded during a command write sequence will not execute and the ACCERR  
flag in the ESTAT register will set.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
157  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
START  
no  
Tbus < 1µs?  
ALL COMMANDS IMPOSSIBLE  
yes  
PRDIV8 = 0 (reset)  
no  
oscillator_clock  
>12.8 MHz?  
yes  
PRDIV8 = 1  
PRDCLK = oscillator_clock/8  
PRDCLK = oscillator_clock  
no  
PRDCLK[MHz]*(5+Tbus[µs])  
an integer?  
EDIV[5:0]=INT(PRDCLK[MHz]*(5+Tbus[µs]))  
yes  
EDIV[5:0]=PRDCLK[MHz]*(5+Tbus[µs])–1  
TRY TO DECREASE Tbus EECLK = (PRDCLK)/(1+EDIV[5:0])  
yes  
1/EECLK[MHz] + Tbus[ms] > 5  
END  
AND  
EECLK > 0.15 MHz  
?
no  
yes  
EDIV[5:0] > 4?  
no  
ALL COMMANDS IMPOSSIBLE  
Figure 3-14. Determination Procedure for PRDIV8 and EDIV Bits  
MC9S12XDP512 Data Sheet, Rev. 2.11  
158  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
3.4.1.2  
Command Write Sequence  
The EEPROM command controller is used to supervise the command write sequence to execute program,  
erase, erase verify, sector erase abort, and sector modify algorithms.  
Before starting a command write sequence, the ACCERR and PVIOL flags in the ESTAT register must be  
clear (see Section 3.3.2.6, “EEPROM Status Register (ESTAT)”) and the CBEIF flag should be tested to  
determine the state of the address, data and command buffers. If the CBEIF flag is set, indicating the  
buffers are empty, a new command write sequence can be started. If the CBEIF flag is clear, indicating the  
buffers are not available, a new command write sequence will overwrite the contents of the address, data  
and command buffers.  
A command write sequence consists of three steps which must be strictly adhered to with writes to the  
EEPROM module not permitted between the steps. However, EEPROM register and array reads are  
allowed during a command write sequence. The basic command write sequence is as follows:  
1. Write to one address in the EEPROM memory.  
2. Write a valid command to the ECMD register.  
3. Clear the CBEIF flag in the ESTAT register by writing a 1 to CBEIF to launch the command.  
The address written in step 1 will be stored in the EADDR registers and the data will be stored in the  
EDATA registers. If the CBEIF flag in the ESTAT register is clear when the first EEPROM array write  
occurs, the contents of the address and data buffers will be overwritten and the CBEIF flag will be set.  
When the CBEIF flag is cleared, the CCIF flag is cleared on the same bus cycle by the EEPROM command  
controller indicating that the command was successfully launched. For all command write sequences  
except sector erase abort, the CBEIF flag will set four bus cycles after the CCIF flag is cleared indicating  
that the address, data, and command buffers are ready for a new command write sequence to begin. For  
sector erase abort operations, the CBEIF flag will remain clear until the operation completes. Except for  
the sector erase abort command, a buffered command will wait for the active operation to be completed  
before being launched. The sector erase abort command is launched when the CBEIF flag is cleared as part  
of a sector erase abort command write sequence. Once a command is launched, the completion of the  
command operation is indicated by the setting of the CCIF flag in the ESTAT register. The CCIF flag will  
set upon completion of all active and buffered commands.  
3.4.2  
EEPROM Commands  
Table 3-10 summarizes the valid EEPROM commands along with the effects of the commands on the  
EEPROM block.  
Table 3-10. EEPROM Command Description  
ECMDB  
Command  
Function on EEPROM Memory  
0x05  
Erase  
Verify  
Verify all memory bytes in the EEPROM block are erased. If the EEPROM block is erased, the  
BLANK flag in the ESTAT register will set upon command completion.  
0x20  
0x40  
Program  
Program a word (two bytes) in the EEPROM block.  
Sector  
Erase  
Erase all four memory bytes in a sector of the EEPROM block.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
159  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
Table 3-10. EEPROM Command Description  
ECMDB  
Command  
Function on EEPROM Memory  
0x41  
Mass  
Erase  
Erase all memory bytes in the EEPROM block. A mass erase of the full EEPROM block is only  
possible when EPOPEN and EPDIS bits in the EPROT register are set prior to launching the  
command.  
0x47  
0x60  
Sector Erase  
Abort  
Abort the sector erase operation. The sector erase operation will terminate according to a set  
procedure. The EEPROM sector should not be considered erased if the ACCERR flag is set  
upon command completion.  
Sector  
Modify  
Erase all four memory bytes in a sector of the EEPROM block and reprogram the addressed  
word.  
CAUTION  
An EEPROM word (2 bytes) must be in the erased state before being  
programmed. Cumulative programming of bits within a word is not allowed.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
160  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
3.4.2.1  
Erase Verify Command  
The erase verify operation will verify that the EEPROM memory is erased.  
An example flow to execute the erase verify operation is shown in Figure 3-15. The erase verify command  
write sequence is as follows:  
1. Write to an EEPROM address to start the command write sequence for the erase verify command.  
The address and data written will be ignored.  
2. Write the erase verify command, 0x05, to the ECMD register.  
3. Clear the CBEIF flag in the ESTAT register by writing a 1 to CBEIF to launch the erase verify  
command.  
After launching the erase verify command, the CCIF flag in the ESTAT register will set after the operation  
has completed unless a new command write sequence has been buffered. The number of bus cycles  
required to execute the erase verify operation is equal to the number of words in the EEPROM memory  
plus 14 bus cycles as measured from the time the CBEIF flag is cleared until the CCIF flag is set. Upon  
completion of the erase verify operation, the BLANK flag in the ESTAT register will be set if all addresses  
in the EEPROM memory are verified to be erased. If any address in the EEPROM memory is not erased,  
the erase verify operation will terminate and the BLANK flag in the ESTAT register will remain clear.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
161  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
START  
Read: ECLKDIV register  
Clock Register  
EDIVLD  
Written  
NOTE: ECLKDIV needs to  
be set once after each reset.  
no  
Set?  
Check  
yes  
Write: ECLKDIV register  
Read: ESTAT register  
Address, Data,  
Command  
Buffer Empty Check  
CBEIF  
Set?  
no  
yes  
ACCERR/  
PVIOL  
Set?  
yes  
Access Error and  
Protection Violation  
Check  
Write: ESTAT register  
Clear ACCERR/PVIOL 0x30  
no  
Write: EEPROM Address  
and Dummy Data  
1.  
2.  
3.  
NOTE: command write sequence  
aborted by writing 0x00 to  
ESTAT register.  
Write: ECMD register  
Erase Verify Command 0x05  
NOTE: command write sequence  
aborted by writing 0x00 to  
ESTAT register.  
Write: ESTAT register  
Clear CBEIF 0x80  
Read: ESTAT register  
Bit Polling for  
Command Completion  
Check  
no  
CCIF  
Set?  
yes  
Erase Verify  
Status  
no  
BLANK  
Set?  
yes  
EEPROM Memory  
Erased  
EEPROM Memory  
Not Erased  
EXIT  
EXIT  
Figure 3-15. Example Erase Verify Command Flow  
MC9S12XDP512 Data Sheet, Rev. 2.11  
162  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
3.4.2.2  
Program Command  
The program operation will program a previously erased word in the EEPROM memory using an  
embedded algorithm.  
An example flow to execute the program operation is shown in Figure 3-16. The program command write  
sequence is as follows:  
1. Write to an EEPROM block address to start the command write sequence for the program  
command. The data written will be programmed to the address written.  
2. Write the program command, 0x20, to the ECMD register.  
3. Clear the CBEIF flag in the ESTAT register by writing a 1 to CBEIF to launch the program  
command.  
If a word to be programmed is in a protected area of the EEPROM memory, the PVIOL flag in the ESTAT  
register will set and the program command will not launch. Once the program command has successfully  
launched, the CCIF flag in the ESTAT register will set after the program operation has completed unless a  
new command write sequence has been buffered.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
163  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
START  
Read: ECLKDIV register  
Clock Register  
EDIVLD  
Written  
NOTE: ECLKDIV needs to  
be set once after each reset.  
no  
Set?  
Check  
yes  
Write: ECLKDIV register  
Read: ESTAT register  
Address, Data,  
Command  
Buffer Empty Check  
CBEIF  
Set?  
no  
yes  
ACCERR/  
PVIOL  
Set?  
yes  
Access Error and  
Protection Violation  
Check  
Write: ESTAT register  
Clear ACCERR/PVIOL 0x30  
no  
Write: EEPROM Address  
and program Data  
1.  
2.  
3.  
NOTE: command write sequence  
aborted by writing 0x00 to  
ESTAT register.  
Write: ECMD register  
Program Command 0x20  
NOTE: command write sequence  
aborted by writing 0x00 to  
ESTAT register.  
Write: ESTAT register  
Clear CBEIF 0x80  
Read: ESTAT register  
Bit Polling for  
Buffer Empty  
Check  
no  
CBEIF  
Set?  
yes  
Sequential  
Programming  
Decision  
yes  
Next  
Word?  
no  
Read: ESTAT register  
Bit Polling for  
Command Completion  
Check  
no  
CCIF  
Set?  
yes  
EXIT  
Figure 3-16. Example Program Command Flow  
MC9S12XDP512 Data Sheet, Rev. 2.11  
164  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
3.4.2.3  
Sector Erase Command  
The sector erase operation will erase both words in a sector of EEPROM memory using an embedded  
algorithm.  
An example flow to execute the sector erase operation is shown in Figure 3-17. The sector erase command  
write sequence is as follows:  
1. Write to an EEPROM memory address to start the command write sequence for the sector erase  
command. The EEPROM address written determines the sector to be erased while global address  
bits [1:0] and the data written are ignored.  
2. Write the sector erase command, 0x40, to the ECMD register.  
3. Clear the CBEIF flag in the ESTAT register by writing a 1 to CBEIF to launch the sector erase  
command.  
If an EEPROM sector to be erased is in a protected area of the EEPROM memory, the PVIOL flag in the  
ESTAT register will set and the sector erase command will not launch. Once the sector erase command has  
successfully launched, the CCIF flag in the ESTAT register will set after the sector erase operation has  
completed unless a new command write sequence has been buffered.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
165  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
START  
Read: ECLKDIV register  
Clock Register  
EDIVLD  
Written  
NOTE: ECLKDIV needs to  
be set once after each reset.  
no  
Set?  
Check  
yes  
Write: ECLKDIV register  
Read: ESTAT register  
Address, Data,  
Command  
Buffer Empty Check  
CBEIF  
Set?  
no  
yes  
ACCERR/  
PVIOL  
Set?  
yes  
Access Error and  
Protection Violation  
Check  
Write: ESTAT register  
Clear ACCERR/PVIOL 0x30  
no  
Write: EEPROM Sector Address  
and Dummy Data  
1.  
2.  
3.  
NOTE: command write sequence  
aborted by writing 0x00 to  
ESTAT register.  
Write: ECMD register  
Sector Erase Command 0x40  
NOTE: command write sequence  
aborted by writing 0x00 to  
ESTAT register.  
Write: ESTAT register  
Clear CBEIF 0x80  
Read: ESTAT register  
Bit Polling for  
Command Completion  
Check  
no  
CCIF  
Set?  
yes  
EXIT  
Figure 3-17. Example Sector Erase Command Flow  
MC9S12XDP512 Data Sheet, Rev. 2.11  
166  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
3.4.2.4  
Mass Erase Command  
The mass erase operation will erase all addresses in an EEPROM block using an embedded algorithm.  
An example flow to execute the mass erase operation is shown in Figure 3-18. The mass erase command  
write sequence is as follows:  
1. Write to an EEPROM memory address to start the command write sequence for the mass erase  
command. The address and data written will be ignored.  
2. Write the mass erase command, 0x41, to the ECMD register.  
3. Clear the CBEIF flag in the ESTAT register by writing a 1 to CBEIF to launch the mass erase  
command.  
If the EEPROM memory to be erased contains any protected area, the PVIOL flag in the ESTAT register  
will set and the mass erase command will not launch. Once the mass erase command has successfully  
launched, the CCIF flag in the ESTAT register will set after the mass erase operation has completed unless  
a new command write sequence has been buffered.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
167  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
START  
Read: ECLKDIV register  
Clock Register  
EDIVLD  
Written  
NOTE: ECLKDIV needs to  
be set once after each reset.  
no  
Set?  
Check  
yes  
Write: ECLKDIV register  
Read: ESTAT register  
Address, Data,  
Command  
Buffer Empty Check  
CBEIF  
Set?  
no  
yes  
ACCERR/  
PVIOL  
Set?  
yes  
Access Error and  
Protection Violation  
Check  
Write: ESTAT register  
Clear ACCERR/PVIOL 0x30  
no  
Write: EEPROM Address  
and Dummy Data  
1.  
2.  
3.  
NOTE: command write sequence  
aborted by writing 0x00 to  
ESTAT register.  
Write: ECMD register  
Mass Erase Command 0x41  
NOTE: command write sequence  
aborted by writing 0x00 to  
ESTAT register.  
Write: ESTAT register  
Clear CBEIF 0x80  
Read: ESTAT register  
Bit Polling for  
Command Completion  
Check  
no  
CCIF  
Set?  
yes  
EXIT  
Figure 3-18. Example Mass Erase Command Flow  
MC9S12XDP512 Data Sheet, Rev. 2.11  
168  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
3.4.2.5  
Sector Erase Abort Command  
The sector erase abort operation will terminate the active sector erase or sector modify operation so that  
other sectors in an EEPROM block are available for read and program operations without waiting for the  
sector erase or sector modify operation to complete.  
An example flow to execute the sector erase abort operation is shown in Figure 3-19. The sector erase abort  
command write sequence is as follows:  
1. Write to any EEPROM memory address to start the command write sequence for the sector erase  
abort command. The address and data written are ignored.  
2. Write the sector erase abort command, 0x47, to the ECMD register.  
3. Clear the CBEIF flag in the ESTAT register by writing a 1 to CBEIF to launch the sector erase abort  
command.  
If the sector erase abort command is launched resulting in the early termination of an active sector erase  
or sector modify operation, the ACCERR flag will set once the operation completes as indicated by the  
CCIF flag being set. The ACCERR flag sets to inform the user that the EEPROM sector may not be fully  
erased and a new sector erase or sector modify command must be launched before programming any  
location in that specific sector. If the sector erase abort command is launched but the active sector erase or  
sector modify operation completes normally, the ACCERR flag will not set upon completion of the  
operation as indicated by the CCIF flag being set. If the sector erase abort command is launched after the  
sector modify operation has completed the sector erase step, the program step will be allowed to complete.  
The maximum number of cycles required to abort a sector erase or sector modify operation is equal to four  
EECLK periods (see Section 3.4.1.1, “Writing the ECLKDIV Register”) plus five bus cycles as measured  
from the time the CBEIF flag is cleared until the CCIF flag is set.  
NOTE  
Since the ACCERR bit in the ESTAT register may be set at the completion  
of the sector erase abort operation, a command write sequence is not  
allowed to be buffered behind a sector erase abort command write sequence.  
The CBEIF flag will not set after launching the sector erase abort command  
to indicate that a command should not be buffered behind it. If an attempt is  
made to start a new command write sequence with a sector erase abort  
operation active, the ACCERR flag in the ESTAT register will be set. A new  
command write sequence may be started after clearing the ACCERR flag, if  
set.  
NOTE  
The sector erase abort command should be used sparingly since a sector  
erase operation that is aborted counts as a complete program/erase cycle.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
169  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
Execute Sector Erase/Modify Command Flow  
Read: ESTAT register  
Erase  
Abort  
Needed?  
Bit Polling for  
Command  
Completion Check  
CCIF  
Set?  
no  
no  
yes  
yes  
Sector Erase  
Completed  
EXIT  
Write: Dummy EEPROM Address  
and Dummy Data  
1.  
2.  
3.  
NOTE: command write sequence  
aborted by writing 0x00 to  
ESTAT register.  
Write: ECMD register  
Sector Erase Abort Cmd 0x47  
NOTE: command write sequence  
aborted by writing 0x00 to  
ESTAT register.  
Write: ESTAT register  
Clear CBEIF 0x80  
Read: ESTAT register  
no  
Bit Polling for  
Command  
Completion Check  
CCIF  
Set?  
yes  
yes  
ACCERR  
Set?  
Access  
Error Check  
Write: ESTAT register  
Clear ACCERR 0x10  
no  
Sector Erase  
Sector Erase  
or Modify  
Aborted  
EXIT  
EXIT  
or Modify  
Completed  
Figure 3-19. Example Sector Erase Abort Command Flow  
MC9S12XDP512 Data Sheet, Rev. 2.11  
170  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
3.4.2.6  
Sector Modify Command  
The sector modify operation will erase both words in a sector of EEPROM memory followed by a  
reprogram of the addressed word using an embedded algorithm.  
An example flow to execute the sector modify operation is shown in Figure 3-20. The sector modify  
command write sequence is as follows:  
1. Write to an EEPROM memory address to start the command write sequence for the sector modify  
command. The EEPROM address written determines the sector to be erased and word to be  
reprogrammed while byte address bit 0 is ignored.  
2. Write the sector modify command, 0x60, to the ECMD register.  
3. Clear the CBEIF flag in the ESTAT register by writing a 1 to CBEIF to launch the sector erase  
command.  
If an EEPROM sector to be modified is in a protected area of the EEPROM memory, the PVIOL flag in  
the ESTAT register will set and the sector modify command will not launch. Once the sector modify  
command has successfully launched, the CCIF flag in the ESTAT register will set after the sector modify  
operation has completed unless a new command write sequence has been buffered.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
171  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
START  
Read: ECLKDIV register  
Clock Register  
EDIVLD  
Written  
NOTE: ECLKDIV needs to  
be set once after each reset.  
no  
Set?  
Check  
yes  
Write: ECLKDIV register  
Read: ESTAT register  
Address, Data,  
Command  
Buffer Empty Check  
CBEIF  
Set?  
no  
yes  
ACCERR/  
PVIOL  
Set?  
yes  
Access Error and  
Protection Violation  
Check  
Write: ESTAT register  
Clear ACCERR/PVIOL 0x30  
no  
Write: EEPROM Word Address  
and program Data  
1.  
2.  
3.  
NOTE: command write sequence  
aborted by writing 0x00 to  
ESTAT register.  
Write: ECMD register  
Sector Modify Command 0x60  
NOTE: command write sequence  
aborted by writing 0x00 to  
ESTAT register.  
Write: ESTAT register  
Clear CBEIF 0x80  
Read: ESTAT register  
Bit Polling for  
Command Completion  
Check  
no  
CCIF  
Set?  
yes  
EXIT  
Figure 3-20. Example Sector Modify Command Flow  
MC9S12XDP512 Data Sheet, Rev. 2.11  
172  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
3.4.3  
Illegal EEPROM Operations  
The ACCERR flag will be set during the command write sequence if any of the following illegal steps are  
performed, causing the command write sequence to immediately abort:  
1. Writing to an EEPROM address before initializing the ECLKDIV register.  
2. Writing a byte or misaligned word to a valid EEPROM address.  
3. Starting a command write sequence while a sector erase abort operation is active.  
4. Writing to any EEPROM register other than ECMD after writing to an EEPROM address.  
5. Writing a second command to the ECMD register in the same command write sequence.  
6. Writing an invalid command to the ECMD register.  
7. Writing to an EEPROM address after writing to the ECMD register.  
8. Writing to any EEPROM register other than ESTAT (to clear CBEIF) after writing to the ECMD  
register.  
9. Writing a 0 to the CBEIF flag in the ESTAT register to abort a command write sequence.  
The ACCERR flag will not be set if any EEPROM register is read during a valid command write sequence.  
The ACCERR flag will also be set if any of the following events occur:  
1. Launching the sector erase abort command while a sector erase or sector modify operation is active  
which results in the early termination of the sector erase or sector modify operation (see  
Section 3.4.2.5, “Sector Erase Abort Command”).  
2. The MCU enters stop mode and a command operation is in progress. The operation is aborted  
immediately and any pending command is purged (see Section 3.5.2, “Stop Mode”).  
If the EEPROM memory is read during execution of an algorithm (CCIF = 0), the read operation will  
return invalid data and the ACCERR flag will not be set.  
If the ACCERR flag is set in the ESTAT register, the user must clear the ACCERR flag before starting  
another command write sequence (see Section 3.3.2.6, “EEPROM Status Register (ESTAT)”).  
The PVIOL flag will be set after the command is written to the ECMD register during a command write  
sequence if any of the following illegal operations are attempted, causing the command write sequence to  
immediately abort:  
1. Writing the program command if the address written in the command write sequence was in a  
protected area of the EEPROM memory.  
2. Writing the sector erase command if the address written in the command write sequence was in a  
protected area of the EEPROM memory.  
3. Writing the mass erase command to the EEPROM memory while any EEPROM protection is  
enabled.  
4. Writing the sector modify command if the address written in the command write sequence was in  
a protected area of the EEPROM memory.  
If the PVIOL flag is set in the ESTAT register, the user must clear the PVIOL flag before starting another  
command write sequence (see Section 3.3.2.6, “EEPROM Status Register (ESTAT)”).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
173  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
3.5  
Operating Modes  
Wait Mode  
3.5.1  
If a command is active (CCIF = 0) when the MCU enters the wait mode, the active command and any  
buffered command will be completed.  
The EEPROM module can recover the MCU from wait mode if the CBEIF and CCIF interrupts are enabled  
(see Section 3.8, “Interrupts”).  
3.5.2  
Stop Mode  
If a command is active (CCIF = 0) when the MCU enters the stop mode, the operation will be aborted and,  
if the operation is program, sector erase, mass erase, or sector modify, the EEPROM array data being  
programmed or erased may be corrupted and the CCIF and ACCERR flags will be set. If active, the high  
voltage circuitry to the EEPROM memory will immediately be switched off when entering stop mode.  
Upon exit from stop mode, the CBEIF flag is set and any buffered command will not be launched. The  
ACCERR flag must be cleared before starting a command write sequence (see Section 3.4.1.2, “Command  
Write Sequence”).  
NOTE  
As active commands are immediately aborted when the MCU enters stop  
mode, it is strongly recommended that the user does not use the STOP  
instruction during program, sector erase, mass erase, or sector modify  
operations.  
3.5.3  
Background Debug Mode  
In background debug mode (BDM), the EPROT register is writable. If the MCU is unsecured, then all  
EEPROM commands listed in Table 3-10 can be executed. If the MCU is secured and is in special single  
chip mode, the only command available to execute is mass erase.  
3.6  
EEPROM Module Security  
The EEPROM module does not provide any security information to the MCU. After each reset, the  
security state of the MCU is a function of information provided by the Flash module (see the specific FTX  
Block Guide).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
174  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
3.6.1  
Unsecuring the MCU in Special Single Chip Mode using BDM  
Before the MCU can be unsecured in special single chip mode, the EEPROM memory must be erased  
using the following method :  
Reset the MCU into special single chip mode, delay while the erase test is performed by the BDM  
secure ROM, send BDM commands to disable protection in the EEPROM module, and execute a  
mass erase command write sequence to erase the EEPROM memory.  
After the CCIF flag sets to indicate that the EEPROM mass operation has completed and assuming that the  
Flash memory has also been erased, reset the MCU into special single chip mode. The BDM secure ROM  
will verify that the Flash and EEPROM memory are erased and will assert the UNSEC bit in the BDM  
status register. This BDM action will cause the MCU to override the Flash security state and the MCU will  
be unsecured. Once the MCU is unsecured, BDM commands will be enabled and the Flash security byte  
may be programmed to the unsecure state.  
3.7  
Resets  
3.7.1  
EEPROM Reset Sequence  
On each reset, the EEPROM module executes a reset sequence to hold CPU activity while loading the  
EPROT register from the EEPROM memory according to Table 3-1.  
3.7.2  
Reset While EEPROM Command Active  
If a reset occurs while any EEPROM command is in progress, that command will be immediately aborted.  
The state of a word being programmed or the sector / block being erased is not guaranteed.  
3.8  
Interrupts  
The EEPROM module can generate an interrupt when all EEPROM command operations have completed,  
when the EEPROM address, data, and command buffers are empty.  
Table 3-11. EEPROM Interrupt Sources  
Interrupt Source  
Interrupt Flag  
Local Enable  
Global (CCR) Mask  
EEPROM address, data, and command buffers empty  
CBEIF  
CBEIE  
I Bit  
(ESTAT register)  
(ECNFG register)  
All EEPROM commands completed  
CCIF  
CCIE  
I Bit  
(ESTAT register)  
(ECNFG register)  
NOTE  
Vector addresses and their relative interrupt priority are determined at the  
MCU level.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
175  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
Chapter 3 4 Kbyte EEPROM Module (S12XEETX4KV2)  
3.8.1  
Description of EEPROM Interrupt Operation  
The logic used for generating interrupts is shown in Figure 3-21.  
The EEPROM module uses the CBEIF and CCIF flags in combination with the CBIE and CCIE enable  
bits to generate the EEPROM command interrupt request.  
CBEIF  
CBEIE  
EEPROM Command Interrupt Request  
CCIF  
CCIE  
For a detailed description of the register bits, refer to Section 3.3.2.4, “EEPROM Configuration Register  
(ECNFG)” and Section 3.3.2.6, “EEPROM Status Register (ESTAT)” .  
MC9S12XDP512 Data Sheet, Rev. 2.11  
176  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 4  
Port Integration Module (S12XDP512PIMV2)  
4.1  
Introduction  
The S12XD family port integration module (below referred to as PIM) establishes the interface between  
the peripheral modules including the non-multiplexed external bus interface module (S12X_EBI) and the  
I/O pins for all ports. It controls the electrical pin properties as well as the signal prioritization and  
multiplexing on shared pins.  
This document covers the description of:  
Port A, B used as address output of the S12X_EBI  
Port C, D used as data I/O of the S12X_EBI  
Port E associated with the S12X_EBI control signals and the IRQ, XIRQ interrupt inputs  
Port K associated with address output and control signals of the S12X_EBI  
Port T connected to the Enhanced Capture Timer (ECT) module  
Port S associated with 2 SCI and 1 SPI modules  
Port M associated with 4 MSCAN modules and 1 SCI module  
Port P connected to the PWM and 2 SPI modules — inputs can be used as an external interrupt  
source  
Port H associated with 2 SCI modules — inputs can be used as an external interrupt source  
Port J associated with 1 MSCAN, 1 SCI, and 2 IIC modules — inputs can be used as an external  
interrupt source  
Port AD0 and AD1 associated with one 8-channel and one 16-channel ATD module  
Most I/O pins can be configured by register bits to select data direction and drive strength, to enable and  
select pull-up or pull-down devices. Interrupts can be enabled on specific pins resulting in status flags.  
The I/O’s of 2 MSCAN and all 3 SPI modules can be routed from their default location to alternative port  
pins.  
NOTE  
The implementation of the PIM is device dependent. Therefore some  
functions are not available on certain derivatives or 112-pin and 80-pin  
package options.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
177  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.1.1  
Features  
A full-featured PIM module includes these distinctive registers:  
Data and data direction registers for Ports A, B, C, D, E, K, T, S, M, P, H, J, AD0, and AD1 when  
used as general-purpose I/O  
Control registers to enable/disable pull-device and select pull-ups/pull-downs on Ports T, S, M, P,  
H, and J on per-pin basis  
Control registers to enable/disable pull-up devices on Ports AD0, and AD1 on per-pin basis  
Single control register to enable/disable pull-ups on Ports A, B, C, D, E, and K on per-port basis  
and on BKGD pin  
Control registers to enable/disable reduced output drive on Ports T, S, M, P, H, J, AD0, and AD1  
on per-pin basis  
Single control register to enable/disable reduced output drive on Ports A, B, C, D, E, and K on  
per-port basis  
Control registers to enable/disable open-drain (wired-OR) mode on Ports S and M  
Control registers to enable/disable pin interrupts on Ports P, H, and J  
Interrupt flag register for pin interrupts on Ports P, H, and J  
Control register to configure IRQ pin operation  
Free-running clock outputs  
A standard port pin has the following minimum features:  
Input/output selection  
5V output drive with two selectable drive strengths  
5V digital and analog input  
Input with selectable pull-up or pull-down device  
Optional features:  
Open drain for wired-OR connections  
Interrupt inputs with glitch filtering  
Reduced input threshold to support low voltage applications  
Block Diagram  
Figure 4-1 is a block diagram of the MC9S12XDP512.  
Signals shown in Bold are not available in 80-pin packages.  
Signals shown in Bold-Italics are neither available in 112-pin nor in 80-pin packages.  
Shaded labels denote alternative module routing ports.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
178  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Port Integration Module  
PAD23  
PAD21  
PAD19  
PAD17  
PAD15  
PAD13  
PAD11  
PAD09  
AN15,14  
PAD22  
PAD20  
PAD18  
PAD16  
PAD14  
PAD12  
PAD10  
PAD08  
TXD  
RXD  
TXD  
RXD  
PH7  
PH6  
PH5  
PH4  
PH3  
PH2  
PH1  
PH0  
AN13,12  
AN11,10  
AN9,8  
AN7,6  
AN5,4  
AN3,2  
AN1,0  
SCI5  
SCI4  
AN7  
AN6  
AN5  
AN4  
AN3  
AN2  
AN1  
AN0  
PAD07  
PAD06  
PAD05  
PAD04  
PAD03  
PAD02  
PAD01  
PAD00  
TXCAN  
RXCAN  
SCL  
SDA  
SCL  
PJ7  
PJ6  
CAN4  
IIC0  
PJ5  
PJ4  
PJ2  
PJ1  
PJ0  
IIC1  
SDA  
TXD  
RXD  
SCI2  
IOC7  
IOC6  
IOC5  
IOC4  
IOC3  
IOC2  
IOC1  
IOC0  
PT7  
PT6  
PT5  
PT4  
PT3  
PT2  
PT1  
PT0  
PM7  
PM6  
PM5  
PM4  
PM3  
PM2  
PM1  
PM0  
TXCAN  
RXCAN  
TXCAN  
RXCAN  
TXCAN  
RXCAN  
TXCAN  
RXCAN  
TXD  
RXD  
CAN3  
CAN2  
CAN1  
CAN0  
SCI3  
PWM7  
SCK  
PP7  
PP6  
PP5  
PP4  
PP3  
PP2  
PP1  
PP0  
SPI2  
PWM6  
PWM5  
PWM4  
PWM3  
PWM2  
PWM1  
PWM0  
SS  
MOSI  
MISO  
SS  
SCK  
MOSI  
MISO  
PA7  
PA6  
PA5  
PA4  
PA3  
PA2  
PA1  
PA0  
ADDR15  
ADDR14  
ADDR13  
ADDR12  
ADDR11  
ADDR10  
ADDR9  
SPI1  
SS  
PS7  
PS6  
PS5  
PS4  
PS3  
PS2  
PS1  
PS0  
SPI0  
ADDR8  
SCK  
MOSI  
MISO  
TXD  
RXD  
TXD  
RXD  
PB7  
PB6  
PB5  
PB4  
PB3  
PB2  
PB1  
PB0  
ADDR7  
ADDR6  
ADDR5  
ADDR4  
ADDR3  
ADDR2  
ADDR1  
ADDR0/UDS  
SCI1  
SCI0  
BKGD/MODC  
ECLKX2/XCLKS  
TAGHI/MODB  
TAGLO/RE/MODA  
ECLK  
BKGD  
PE7  
PE6  
PE5  
PE4  
PE3  
PE2  
PE1  
PE0  
PC7  
PC6  
PC5  
PC4  
PC3  
PC2  
PC1  
PC0  
DATA15  
DATA14  
DATA13  
DATA12  
DATA11  
DATA10  
DATA9  
S12X_EBI  
S12X_BDM  
S12X_DBG  
S12X_INT  
LDS/LSTRB  
WE/R/W  
IRQ  
XIRQ  
DATA8  
PK7  
PK6  
PK5  
PK4  
PK3  
PK2  
PK1  
PK0  
EWAIT/ROMCTL  
NOACC/ADDR22  
PD7  
PD6  
PD5  
PD4  
PD3  
PD2  
PD1  
PD0  
DATA7  
DATA6  
DATA5  
DATA4  
DATA3  
DATA2  
DATA1  
DATA0  
ADDR21  
ADRR20  
ADDR19  
ADDR18  
ADDR17  
ADDR16  
Figure 4-1. MC9S12XDP512 Block Diagram  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
179  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.2  
External Signal Description  
This section lists and describes the signals that do connect off-chip.  
4.2.1  
Signal Properties  
Table 4-1 shows all the pins and their functions that are controlled by the MC9S12XDP512. Refer to  
Section 4.4, “Functional Description” for the availability of the individual pins in the different package  
options.  
NOTE  
If there is more than one function associated with a pin, the priority is  
indicated by the position in the table from top (highest priority) to bottom  
(lowest priority).  
Table 4-1. Pin Functions and Priorities (Sheet 1 of 7)  
Pin Function  
and Priority  
Pin Function  
after Reset  
Port  
Pin Name  
I/O  
Description  
MODC input during RESET  
1
BKGD  
MODC  
I
BKGD  
BKGD  
I/O S12X_BDM communication pin  
A
B
PA[7:0]  
PB[7:1]  
PB[0]  
ADDR[15:8]  
mux  
IVD[15:8]  
O
High-order external bus address output  
(multiplexed with IVIS data)  
Mode  
dependent  
3
2
GPIO  
I/O General-purpose I/O  
ADDR[7:1]  
mux  
O
Low-order external bus address output  
(multiplexed with IVIS data)  
Mode  
dependent  
3
2
IVD[7:1]  
GPIO  
I/O General-purpose I/O  
ADDR[0]  
mux  
O
Low-order external bus address output  
(multiplexed with IVIS data)  
2
IVD0  
UDS  
GPIO  
O
Upper data strobe  
I/O General-purpose I/O  
C
D
PC[7:0]  
PD[7:0]  
DATA[15:8]  
I/O High-order bidirectional data input/output  
Configurable for reduced input threshold  
Mode  
dependent  
3
GPIO  
I/O General-purpose I/O  
DATA[7:0]  
I/O Low-order bidirectional data input/output  
Configurable for reduced input threshold  
Mode  
dependent  
3
GPIO  
I/O General-purpose I/O  
MC9S12XDP512 Data Sheet, Rev. 2.11  
180  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Table 4-1. Pin Functions and Priorities (Sheet 2 of 7)  
Pin Function  
and Priority  
Pin Function  
after Reset  
Port  
Pin Name  
I/O  
Description  
1
I
I
External clock selection input during RESET  
XCLKS  
PE[7]  
ECLKX2  
GPIO  
Free-running clock output at Core Clock rate (ECLK x 2)  
I/O General-purpose I/O  
1
I
I
MODB input during RESET  
MODB  
Instruction tagging low pin  
Configurable for reduced input threshold  
PE[6]  
PE[5]  
TAGHI  
GPIO  
I/O General-purpose I/O  
1
I
MODA input during RESET  
Read enable signal  
MODA  
RE  
O
Instruction tagging low pin  
Configurable for reduced input threshold  
TAGLO  
GPIO  
ECLK  
GPIO  
I
I/O General-purpose I/O  
Free-running clock output at the Bus Clock rate or  
programmable divided in normal modes  
Mode  
O
E
3
PE[4]  
PE[3]  
dependent  
I/O General-purpose I/O  
1
I
EROMON bit control input during RESET  
Low strobe bar output  
EROMCTL  
LSTRB  
LDS  
O
O
Lower data strobe  
GPIO  
R/W  
I/O General-purpose I/O  
O
O
Read/write output for external bus  
Write enable signal  
PE[2]  
WE  
GPIO  
IRQ  
I/O General-purpose I/O  
Maskable level- or falling edge-sensitive interrupt input  
I/O General-purpose I/O  
Non-maskable level-sensitive interrupt input  
I
PE[1]  
PE[0]  
GPIO  
XIRQ  
GPIO  
I
I/O General-purpose I/O  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
181  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Table 4-1. Pin Functions and Priorities (Sheet 3 of 7)  
Pin Function  
and Priority  
Pin Function  
after Reset  
Port  
Pin Name  
I/O  
Description  
1
I
I
ROMON bit control input during RESET  
ROMCTL  
External Wait signal  
Configurable for reduced input threshold  
PK[7]  
EWAIT  
GPIO  
I/O General-purpose I/O  
ADDR[22:20]  
mux  
Extended external bus address output  
(multiplexed with access master output)  
Mode  
O
K
PK[6:4]  
PK[3:0]  
2
3
ACC[2:0]  
dependent  
GPIO  
I/O General-purpose I/O  
ADDR[19:16]  
mux  
Extended external bus address output  
(multiplexed with instruction pipe status bits)  
O
2
IQSTAT[3:0]  
GPIO  
IOC[7:0]  
GPIO  
I/O General-purpose I/O  
I/O Enhanced Capture Timer Channels 7–0 input/output  
I/O General-purpose I/O  
T
PT[7:0]  
PS7  
GPIO  
Serial Peripheral Interface 0 slave select output in master  
mode, input in slave mode or master mode.  
SS0  
I/O  
GPIO  
SCK0  
GPIO  
MOSI0  
GPIO  
MISO0  
GPIO  
TXD1  
GPIO  
RXD1  
GPIO  
TXD0  
GPIO  
RXD0  
GPIO  
I/O General-purpose I/O  
I/O Serial Peripheral Interface 0 serial clock pin  
I/O General-purpose I/O  
PS6  
PS5  
PS4  
PS3  
PS2  
PS1  
PS0  
I/O Serial Peripheral Interface 0 master out/slave in pin  
I/O General-purpose I/O  
I/O Serial Peripheral Interface 0 master in/slave out pin  
I/O General-purpose I/O  
S
GPIO  
O
Serial Communication Interface 1 transmit pin  
I/O General-purpose I/O  
Serial Communication Interface 1 receive pin  
I/O General-purpose I/O  
Serial Communication Interface 0 transmit pin  
I/O General-purpose I/O  
Serial Communication Interface 0 receive pin  
I
O
I
I/O General-purpose I/O  
MC9S12XDP512 Data Sheet, Rev. 2.11  
182  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Table 4-1. Pin Functions and Priorities (Sheet 4 of 7)  
Pin Function  
and Priority  
Pin Function  
after Reset  
Port  
Pin Name  
I/O  
Description  
TXCAN3  
TXCAN4  
TXD3  
O
O
O
MSCAN3 transmit pin  
MSCAN4 transmit pin  
PM7  
Serial Communication Interface 3 transmit pin  
GPIO  
I/O General-purpose I/O  
RXCAN3  
RXCAN4  
RXD3  
I
I
I
MSCAN3 receive pin  
MSCAN4 receive pin  
PM6  
PM5  
Serial Communication Interface 3 receive pin  
GPIO  
I/O General-purpose I/O  
TXCAN2  
TXCAN0  
TXCAN4  
O
O
O
MSCAN2 transmit pin  
MSCAN0 transmit pin  
MSCAN4 transmit pin  
Serial Peripheral Interface 0 serial clock pin  
SCK0  
I/O If CAN0 is routed to PM[3:2] the SPI0 can still be used in  
bidirectional master mode.  
GPIO  
I/O General-purpose I/O  
RXCAN2  
RXCAN0  
RXCAN4  
I
I
I
MSCAN2 receive pin  
MSCAN0 receive pin  
M
GPIO  
MSCAN4 receive pin  
PM4  
Serial Peripheral Interface 0 master out/slave in pin  
MOSI0  
I/O If CAN0 is routed to PM[3:2] the SPI0 can still be used in  
bidirectional master mode.  
GPIO  
I/O General-purpose I/O  
TXCAN1  
TXCAN0  
O
O
MSCAN1 transmit pin  
MSCAN0 transmit pin  
PM3  
PM2  
Serial Peripheral Interface 0 slave select output in master  
mode, input for slave mode or master mode.  
SS0  
I/O  
GPIO  
RXCAN1  
RXCAN0  
MISO0  
GPIO  
I/O General-purpose I/O  
I
I
MSCAN1 receive pin  
MSCAN0 receive pin  
I/O Serial Peripheral Interface 0 master in/slave out pin  
I/O General-purpose I/O  
TXCAN0  
GPIO  
O
MSCAN0 transmit pin  
I/O General-purpose I/O  
MSCAN0 receive pin  
PM1  
PM0  
RXCAN0  
GPIO  
I
I/O General-purpose I/O  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
183  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Table 4-1. Pin Functions and Priorities (Sheet 5 of 7)  
Pin Function  
and Priority  
Pin Function  
after Reset  
Port  
Pin Name  
I/O  
Description  
PWM7  
SCK2  
I/O Pulse Width Modulator input/output channel 7  
I/O Serial Peripheral Interface 2 serial clock pin  
I/O General-purpose I/O with interrupt  
PP7  
GPIO/KWP7  
PWM6  
O
Pulse Width Modulator output channel 6  
Serial Peripheral Interface 2 slave select output in master  
mode, input for slave mode or master mode.  
PP6  
SS2  
I/O  
GPIO/KWP6  
PWM5  
I/O General-purpose I/O with interrupt  
Pulse Width Modulator output channel 5  
O
PP5  
PP4  
MOSI2  
I/O Serial Peripheral Interface 2 master out/slave in pin  
I/O General-purpose I/O with interrupt  
GPIO/KWP5  
PWM4  
O
Pulse Width Modulator output channel 4  
MISO2  
I/O Serial Peripheral Interface 2 master in/slave out pin  
I/O General-purpose I/O with interrupt  
GPIO/KWP4  
PWM3  
P
GPIO  
O
Pulse Width Modulator output channel 3  
Serial Peripheral Interface 1 slave select output in master  
mode, input for slave mode or master mode.  
PP3  
SS1  
I/O  
GPIO/KWP3  
PWM2  
I/O General-purpose I/O with interrupt  
Pulse Width Modulator output channel 2  
O
PP2  
PP1  
PP0  
SCK1  
I/O Serial Peripheral Interface 1 serial clock pin  
I/O General-purpose I/O with interrupt  
GPIO/KWP2  
PWM1  
O
Pulse Width Modulator output channel 1  
MOSI1  
I/O Serial Peripheral Interface 1 master out/slave in pin  
I/O General-purpose I/O with interrupt  
GPIO/KWP1  
PWM0  
O
Pulse Width Modulator output channel 0  
MISO1  
I/O Serial Peripheral Interface 1 master in/slave out pin  
I/O General-purpose I/O with interrupt  
GPIO/KWP0  
MC9S12XDP512 Data Sheet, Rev. 2.11  
184  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Table 4-1. Pin Functions and Priorities (Sheet 6 of 7)  
Pin Function  
and Priority  
Pin Function  
after Reset  
Port  
Pin Name  
I/O  
Description  
Serial Peripheral Interface 2 slave select output in master  
mode, input for slave mode or master mode  
SS2  
I/O  
O
PH7  
TXD5  
GPIO/KWH7  
SCK2  
Serial Communication Interface 5 transmit pin  
I/O General-purpose I/O with interrupt  
I/O Serial Peripheral Interface 2 serial clock pin  
PH6  
PH5  
RXD5  
I
Serial Communication Interface 5 receive pin  
GPIO/KWH6  
MOSI2  
I/O General-purpose I/O with interrupt  
I/O Serial Peripheral Interface 2 master out/slave in pin  
TXD4  
O
Serial Communication Interface 4 transmit pin  
GPIO/KWH5  
MISO2  
I/O General-purpose I/O with interrupt  
I/O Serial Peripheral Interface 2 master in/slave out pin  
H
GPIO  
PH4  
PH3  
RXD4  
I
Serial Communication Interface 4 receive pin  
GPIO/KWH4  
I/O General-purpose I/O with interrupt  
Serial Peripheral Interface 1 slave select output in master  
mode, input for slave mode or master mode.  
SS1  
I/O  
GPIO/KWH3  
SCK1  
I/O General-purpose I/O with interrupt  
I/O Serial Peripheral Interface 1 serial clock pin  
I/O General-purpose I/O with interrupt  
PH2  
PH1  
PH0  
GPIO/KWH2  
MOSI1  
I/O Serial Peripheral Interface 1 master out/slave in pin  
I/O General-purpose I/O with interrupt  
GPIO/KWH1  
MISO1  
I/O Serial Peripheral Interface 1 master in/slave out pin  
I/O General-purpose I/O with interrupt  
GPIO/KWH0  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
185  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Table 4-1. Pin Functions and Priorities (Sheet 7 of 7)  
Pin Function  
and Priority  
Pin Function  
after Reset  
Port  
Pin Name  
I/O  
Description  
TXCAN4  
SCL0  
O
O
O
MSCAN4 transmit pin  
Inter Integrated Circuit 0 serial clock line  
MSCAN0 transmit pin  
PJ7  
TXCAN0  
GPIO/KWJ7  
RXCAN4  
SDA0  
I/O General-purpose I/O with interrupt  
MSCAN4 receive pin  
I/O Inter Integrated Circuit 0 serial data line  
MSCAN0 receive pin  
I/O General-purpose I/O with interrupt  
I
PJ6  
RXCAN0  
GPIO/KWJ6  
SCL1  
I
O
O
Inter Integrated Circuit 1 serial clock line  
Chip select 2  
PJ5  
PJ4  
CS2  
J
GPIO/KWJ7  
SDA1  
I/O General-purpose I/O with interrupt  
GPIO  
I/O Inter Integrated Circuit 1 serial data line  
CS0  
O
Chip select 0  
I/O General-purpose I/O with interrupt  
Chip select 1  
I/O General-purpose I/O with interrupt  
Serial Communication Interface 2 transmit pin  
I/O General-purpose I/O with interrupt  
GPIO/KWJ6  
CS1  
O
PJ2  
PJ1  
GPIO/KWJ2  
TXD2  
O
GPIO/KWJ1  
RXD2  
I
Serial Communication Interface 2 receive pin  
Chip select 3  
PJ0  
CS3  
O
GPIO/KWJ0  
GPIO  
I/O General-purpose I/O with interrupt  
I/O General-purpose I/O  
AD0  
AD1  
PAD[07:00]  
PAD[23:08]  
GPIO  
GPIO  
AN[7:0]  
GPIO  
I
ATD0 analog inputs  
I/O General-purpose I/O  
ATD1 analog inputs  
AN[15:0]  
I
1
2
3
Function active when RESET asserted.  
Only available in emulation modes or in Special Test Mode with IVIS on.  
Refer also to Table 4-70 and S12X_EBI section.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
186  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3  
Memory Map and Register Definition  
This section provides a detailed description of all MC9S12XDP512 registers.  
Module Memory Map  
Table 4-2 shows the register map of the port integration module.  
Table 4-2. PIM Memory Map (Sheet 1 of 3)  
Address  
Use  
Port A Data Register (PORTA)  
Access  
0x0000  
0x0001  
0x0002  
0x0003  
0x0004  
0x0005  
0x0006  
0x0007  
0x0008  
0x0009  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
Port B Data Register (PORTB)  
Port A Data Direction Register (DDRA)  
Port B Data Direction Register (DDRB)  
Port C Data Register (PORTC)  
Port D Data Register (PORTD)  
Port C Data Direction Register (DDRC)  
Port D Data Direction Register (DDRD)  
Port E Data Register (PORTE)  
1
Read / Write  
Read / Write  
1
Port E Data Direction Register (DDRE)  
Non-PIM Address Range  
0x000A  
:
0x000B  
1
1
0x000C  
0x000D  
Pull-up Up Control Register (PUCR)  
Reduced Drive Register (RDRIV)  
Non-PIM Address Range  
Read / Write  
Read / Write  
0x000E  
:
0x001B  
1
1
0x001C  
0x001D  
0x001E  
0x001F  
ECLK Control Register (ECLKCTL)  
PIM Reserved  
Read / Write  
IRQ Control Register (IRQCR)  
PIM Reserved  
Read / Write  
0x0020  
:
Non-PIM Address Range  
0x0031  
0x0032  
0x0033  
Port K Data Register (PORTK)  
Port K Data Direction Register (DDRK)  
Non-PIM Address Range  
Read / Write  
Read / Write  
0x0034  
:
0x023F  
0x0240  
Port T Data Register (PTT)  
Read / Write  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
187  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Table 4-2. PIM Memory Map (Sheet 2 of 3)  
Address  
Use  
Access  
0x0241  
0x0242  
0x0243  
0x0244  
0x0245  
0x0246  
0x0247  
0x0248  
0x0249  
0x024A  
0x024B  
0x024C  
0x024D  
0x024E  
0x024F  
0x0250  
0x0251  
0x0252  
0x0253  
0x0254  
0x0255  
0x0256  
0x0257  
0x0258  
0x0259  
0x025A  
0x025B  
0x025C  
0x025D  
0x025E  
0x025F  
0x0260  
0x0261  
0x0262  
0x0263  
Port T Input Register (PTIT)  
Read  
Port T Data Direction Register (DDRT)  
Port T Reduced Drive Register (RDRT)  
Port T Pull Device Enable Register (PERT)  
Port T Polarity Select Register (PPST)  
Reserved  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
Reserved  
Port S Data Register (PTS)  
Read / Write  
Read  
Port S Input Register (PTIS)  
Port S Data Direction Register (DDRS)  
Port S Reduced Drive Register (RDRS)  
Port S Pull Device Enable Register (PERS)  
Port S Polarity Select Register (PPSS)  
Port S Wired-OR Mode Register (WOMS)  
Reserved  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
Port M Data Register (PTM)  
Read / Write  
Read  
Port M Input Register (PTIM)  
Port M Data Direction Register (DDRM)  
Port M Reduced Drive Register (RDRM)  
Port M Pull Device Enable Register (PERM)  
Port M Polarity Select Register (PPSM)  
Port M Wired-OR Mode Register (WOMM)  
Module Routing Register (MODRR)  
Port P Data Register (PTP)  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
Read  
Port P Input Register (PTIP)  
Port P Data Direction Register (DDRP)  
Port P Reduced Drive Register (RDRP)  
Port P Pull Device Enable Register (PERP)  
Port P Polarity Select Register (PPSP)  
Port P Interrupt Enable Register (PIEP)  
Port P Interrupt Flag Register (PIFP)  
Port H Data Register (PTH)  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
Read  
Port H Input Register (PTIH)  
Port H Data Direction Register (DDRH)  
Port H Reduced Drive Register (RDRH)  
Read / Write  
Read / Write  
MC9S12XDP512 Data Sheet, Rev. 2.11  
188  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Table 4-2. PIM Memory Map (Sheet 3 of 3)  
Address  
Use  
Access  
0x0264  
0x0265  
0x0266  
0x0267  
0x0268  
0x0269  
0x026A  
0x026B  
0x026C  
0x026D  
0x026E  
0x026F  
0x0270  
0x0271  
0x0272  
0x0273  
0x0274  
0x0275  
0x0276  
0x0277  
0x0278  
0x0279  
0x027A  
0x027B  
0x027C  
0x027D  
0x027E  
Port H Pull Device Enable Register (PERH)  
Port H Polarity Select Register (PPSH)  
Port H Interrupt Enable Register (PIEH)  
Port H Interrupt Flag Register (PIFH)  
Port J Data Register (PTJ)  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
1
Read / Write  
Read  
Port J Input Register (PTIJ)  
1
1
1
1
1
1
Port J Data Direction Register (DDRJ)  
Port J Reduced Drive Register (RDRJ)  
Port J Pull Device Enable Register (PERJ)  
Port J Polarity Select Register (PPSJ)  
Port J Interrupt Enable Register (PIEJ)  
Port J Interrupt Flag Register (PIFJ)  
Reserved  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
Port AD0 Data Register 1 (PT1AD0)  
Reserved  
Read / Write  
Port AD0 Data Direction Register 1 (DDR1AD0)  
Reserved  
Read / Write  
Port AD0 Reduced Drive Register 1 (RDR1AD0)  
Reserved  
Read / Write  
Port AD0 Pull Up Enable Register 1 (PER1AD0)  
Port AD1 Data Register 0 (PT0AD1)  
Port AD1 Data Register 1 (PT1AD1)  
Port AD1 Data Direction Register 0 (DDR0AD1)  
Port AD1 Data Direction Register 1 (DDR1AD1)  
Port AD1 Reduced Drive Register 0 (RDR0AD1)  
Port AD1 Reduced Drive Register 1 (RDR1AD1)  
Port AD1 Pull Up Enable Register 0 (PER0AD1)  
Port AD1 Pull Up Enable Register 1 (PER1AD1)  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
Read / Write  
1
Write access not applicable for one or more register bits. Refer to Section 4.3.2, “Register  
Descriptions”.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
189  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Register Descriptions  
Table 4-3 summarizes the effect on the various configuration bits, data direction (DDR), output level (IO),  
reduced drive (RDR), pull enable (PE), pull select (PS), and interrupt enable (IE) for the ports.  
The configuration bit PS is used for two purposes:  
1. Configure the sensitive interrupt edge (rising or falling), if interrupt is enabled.  
2. Select either a pull-up or pull-down device if PE is active.  
Table 4-3. Pin Configuration Summary  
1
2
DDR  
IO  
RDR  
PE  
PS  
IE  
Function  
Pull Device  
Interrupt  
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
x
x
x
x
x
x
x
0
1
0
1
0
1
0
1
x
x
x
x
x
x
x
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
x
x
x
x
x
x
x
x
x
0
1
0
1
0
1
x
x
x
x
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
Input  
Input  
Input  
Input  
Input  
Input  
Input  
Disabled  
Pull Up  
Disabled  
Disabled  
Pull Down  
Disabled  
Disabled  
Pull Up  
Disabled  
Falling edge  
Rising edge  
Falling edge  
Rising edge  
Disabled  
Pull Down  
Disabled  
Disabled  
Disabled  
Disabled  
Disabled  
Disabled  
Disabled  
Disabled  
Output, full drive to 0  
Output, full drive to 1  
Disabled  
Output, reduced drive to 0  
Output, reduced drive to 1  
Output, full drive to 0  
Disabled  
Disabled  
Falling edge  
Rising edge  
Falling edge  
Rising edge  
Output, full drive to 1  
Output, reduced drive to 0  
Output, reduced drive to 1  
1
2
Always “0” on Port A, B, C, D, E, K, AD0, and AD1.  
Applicable only on Port P, H, and J.  
NOTE  
All register bits in this module are completely synchronous to internal  
clocks during a register read.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
190  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Register  
Name  
Bit 7  
6
5
4
3
2
1
Bit 0  
0x0000  
PORTA  
R
PA7  
PA6  
PA5  
PA4  
PA3  
PA2  
PA1  
PA0  
W
0x0001  
PORTB  
R
PB7  
DDRA7  
DDRB7  
PC7  
PB6  
DDRA6  
DDRB6  
PC6  
PB5  
DDRA5  
DDRB5  
PC5  
PB4  
DDRA4  
DDRB4  
PC4  
PB3  
DDRA3  
DDRB3  
PC3  
PB2  
DDRA2  
DDRB2  
PC2  
PB1  
DDRA1  
DDRB1  
PC1  
PB0  
DDRA0  
DDRB0  
PC0  
W
0x0002  
DDRA  
R
W
0x0003  
DDRB  
R
W
0x0004  
PORTC  
R
W
0x0005  
PORTD  
R
PD7  
PD6  
PD5  
PD4  
PD3  
PD2  
PD1  
PD0  
W
0x0006  
DDRC  
R
DDRC7  
DDRD7  
PE7  
DDRC6  
DDRD6  
PE6  
DDRC5  
DDRD5  
PE5  
DDRC4  
DDRD4  
PE4  
DDRC3  
DDRD3  
PE3  
DDRC2  
DDRD2  
PE2  
DDRC1  
DDRC0  
W
0x0007  
DDRD  
R
DDRD1  
PE1  
DDRD0  
PE0  
W
0x0008  
PORTE  
R
W
0x0009  
DDRE  
R
0
0
DDRE7  
DDRE6  
DDRE5  
DDRE4  
DDRE3  
DDRE2  
W
0x000A  
0x000B  
Non-PIM  
Address  
Range  
R
W
Non-PIM Address Range  
0x000C  
PUCR  
R
0
0
PUPKE  
RDPK  
BKPUE  
0
PUPEE  
RDPE  
PUPDE  
RDPD  
PUPCE  
RDPC  
PUPBE  
RDPB  
PUPAE  
RDPA  
W
0x000D  
RDRIV  
R
W
= Unimplemented or Reserved  
Figure 4-2. PIM Register Summary (Sheet 1 of 6)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
191  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Register  
Bit 7  
6
5
4
3
2
1
Bit 0  
Name  
0x000E–  
0x001B  
Non-PIM  
Address  
Range  
R
W
Non-PIM Address Range  
0x001C  
ECLKCTL  
R
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NECLK  
0
NCLKX2  
0
EDIV1  
0
EDIV0  
0
W
0x001D  
Reserved  
R
W
0x001E  
IRQCR  
R
0
0
0
0
IRQE  
0
IRQEN  
0
W
0x001F  
R
Reserved  
W
0x0020–  
0x0031  
Non-PIM  
Address  
Range  
R
W
Non-PIM Address Range  
0x0032  
PORTK  
R
PK7  
PK6  
PK5  
PK4  
PK3  
PK2  
PK1  
PK0  
W
0x0033  
DDRK  
R
DDRK7  
DDRK6  
DDRK5  
DDRK4  
DDRK3  
DDRK2  
DDRK1  
DDRK0  
W
0x0034–  
9x023F  
Non-PIM  
Address  
Range  
R
W
Non-PIM Address Range  
0x0240  
PTT  
R
PTT7  
PTT6  
PTT5  
PTT4  
PTT3  
PTT2  
PTT1  
PTT0  
W
0x0241  
PTIT  
R
PTIT7  
PTIT6  
PTIT5  
PTIT4  
PTIT3  
PTIT2  
PTIT1  
PTIT0  
W
0x0242  
DDRT  
R
DDRT7  
RDRT7  
DDRT6  
RDRT6  
DDRT5  
RDRT5  
DDRT4  
RDRT4  
DDRT3  
RDRT3  
DDRT2  
RDRT2  
DDRT1  
RDRT1  
DDRT0  
RDRT0  
W
0x0243  
RDRT  
R
W
= Unimplemented or Reserved  
Figure 4-2. PIM Register Summary (Sheet 2 of 6)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
192  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Register  
Name  
Bit 7  
6
5
4
3
2
1
Bit 0  
0x0244  
PERT  
R
PERT7  
PERT6  
PERT5  
PERT4  
PERT3  
PERT2  
PERT1  
PERT0  
W
0x0245  
PPST  
R
PPST7  
0
PPST6  
0
PPST5  
0
PPST4  
0
PPST3  
0
PPST2  
0
PPST1  
0
PPST0  
0
W
0x0246  
R
Reserved  
W
0x0247  
R
0
0
0
0
0
0
0
0
Reserved  
W
0x0248  
PTS  
R
PTS7  
PTS6  
PTS5  
PTS4  
PTS3  
PTS2  
PTS1  
PTS0  
W
0x0249  
PTIS  
R
PTIS7  
PTIS6  
PTIS5  
PTIS4  
PTIS3  
PTIS2  
PTIS1  
PTIS0  
W
0x024A  
DDRS  
R
DDRS7  
RDRS7  
PERS7  
PPSS7  
DDRS6  
RDRS6  
PERS6  
PPSS6  
DDRS5  
RDRS5  
PERS5  
PPSS5  
DDRS4  
RDRS4  
PERS4  
PPSS4  
DDRS3  
RDRS3  
PERS3  
PPSS3  
DDRS2  
RDRS2  
PERS2  
PPSS2  
DDRS1  
RDRS1  
PERS1  
PPSS1  
DDRS0  
RDRS0  
PERS0  
PPSS0  
W
0x024B  
RDRS  
R
W
0x024C  
PERS  
R
W
0x024D  
PPSS  
R
W
0x024E  
WOMS  
R
WOMS7  
0
WOMS6  
0
WOMS5  
0
WOMS4  
0
WOMS3  
0
WOMS2  
0
WOMS1  
0
WOMS0  
0
W
0x024F  
R
Reserved  
W
0x0250  
PTM  
R
PTM7  
PTM6  
PTM5  
PTM4  
PTM3  
PTM2  
PTM1  
PTM0  
W
0x0251  
PTIM  
R
PTIM7  
PTIM6  
PTIM5  
PTIM4  
PTIM3  
PTIM2  
PTIM1  
PTIM0  
W
0x0252  
DDRM  
R
DDRM7  
DDRM6  
DDRM5  
DDRM4  
DDRM3  
DDRM2  
DDRM1  
DDRM0  
W
= Unimplemented or Reserved  
Figure 4-2. PIM Register Summary (Sheet 3 of 6)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
193  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Register  
Bit 7  
6
5
4
3
2
1
Bit 0  
Name  
0x0253  
RDRM  
R
RDRM7  
PERM7  
PPSM7  
RDRM6  
PERM6  
PPSM6  
WOMM6  
MODRR6  
RDRM5  
PERM5  
PPSM5  
WOMM5  
MODRR5  
RDRM4  
PERM4  
PPSM4  
WOMM4  
MODRR4  
RDRM3  
PERM3  
PPSM3  
WOMM3  
MODRR3  
RDRM2  
PERM2  
PPSM2  
WOMM2  
MODRR2  
RDRM1  
PERM1  
PPSM1  
WOMM1  
MODRR1  
RDRM0  
PERM0  
PPSM0  
WOMM0  
MODRR0  
W
0x0254  
PERM  
R
W
0x0255  
PPSM  
R
W
0x0256  
WOMM  
R
WOMM7  
0
W
0x0257  
MODRR  
R
W
0x0258  
PTP  
R
PTP7  
PTP6  
PTP5  
PTP4  
PTP3  
PTP2  
PTP1  
PTP0  
W
0x0259  
PTIP  
R
PTIP7  
PTIP6  
PTIP5  
PTIP4  
PTIP3  
PTIP2  
PTIP1  
PTIP0  
W
0x025A  
DDRP  
R
DDRP7  
RDRP7  
PERP7  
PPSP7  
PIEP7  
DDRP6  
RDRP6  
PERP6  
PPSP6  
PIEP6  
DDRP5  
RDRP5  
PERP5  
PPSP5  
PIEP5  
DDRP4  
RDRP4  
PERP4  
PPSP4  
PIEP4  
DDRP3  
RDRP3  
PERP3  
PPSP3  
PIEP3  
DDRP2  
RDRP2  
PERP2  
PPSP2  
PIEP2  
DDRP1  
RDRP1  
PERP1  
PPSP1  
PIEP1  
DDRP0  
RDRP0  
PERP0  
PPSP0  
PIEP0  
W
0x025B  
RDRP  
R
W
0x025C  
PERP  
R
W
0x025D  
PPSP  
R
W
0x025E  
PIEP  
R
W
0x025F  
PIFP  
R
PIFP7  
PIFP6  
PIFP5  
PIFP4  
PIFP3  
PIFP2  
PIFP1  
PIFP0  
W
0x0260  
PTH  
R
PTH7  
PTH6  
PTH5  
PTH4  
PTH3  
PTH2  
PTH1  
PTH0  
W
0x0261  
PTIH  
R
PTIH7  
PTIH6  
PTIH5  
PTIH4  
PTIH3  
PTIH2  
PTIH1  
PTIH0  
W
= Unimplemented or Reserved  
Figure 4-2. PIM Register Summary (Sheet 4 of 6)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
194  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Register  
Name  
Bit 7  
6
5
4
3
2
1
Bit 0  
0x0262  
DDRH  
R
DDRH7  
DDRH6  
DDRH5  
DDRH4  
DDRH3  
DDRH2  
DDRH1  
DDRH0  
W
0x0263  
RDRH  
R
RDRH7  
PERH7  
PPSH7  
PIEH7  
PIFH7  
RDRH6  
PERH6  
PPSH6  
PIEH6  
PIFH6  
RDRH5  
PERH5  
PPSH5  
PIEH5  
PIFH5  
RDRH4  
PERH4  
PPSH4  
PIEH4  
PIFH4  
RDRH3  
PERH3  
PPSH3  
PIEH3  
RDRH2  
PERH2  
PPSH2  
PIEH2  
PIFH2  
RDRH1  
PERH1  
PPSH1  
PIEH1  
PIFH1  
RDRH0  
PERH0  
PPSH0  
PIEH0  
PIFH0  
W
0x0264  
PERH  
R
W
0x0265  
PPSH  
R
W
0x0266  
PIEH  
R
W
0x0267  
PIFH  
R
PIFH3  
0
W
0x0268  
PTJ  
R
PTJ7  
PTJ6  
PTJ5  
PTJ4  
PTJ2  
PTJ1  
PTJ0  
W
0x0269  
PTIJ  
R
PTIJ7  
PTIJ6  
PTIJ5  
PTIJ4  
0
0
0
0
0
0
0
0
PTIJ2  
PTIJ1  
PTIJ0  
W
0x026A  
DDRJ  
R
DDRJ7  
RDRJ7  
PERJ7  
PPSJ7  
PIEJ7  
DDRJ6  
RDRJ6  
PERJ6  
PPSJ6  
PIEJ6  
DDRJ5  
RDRJ5  
PERJ5  
PPSJ5  
PIEJ5  
DDRJ4  
RDRJ4  
PERJ4  
PPSJ4  
PIEJ4  
DDRJ2  
RDRJ2  
PERJ2  
PPSJ2  
PIEJ2  
DDRJ1  
RDRJ1  
PERJ1  
PPSJ1  
PIEJ1  
DDRJ0  
RDRJ0  
PERJ0  
PPSJ0  
PIEJ0  
W
0x026B  
RDRJ  
R
W
0x026C  
PERJ  
R
W
0x026D  
PPSJ  
R
W
0x026E  
PIEJ  
R
W
0x026F  
PIFJ  
R
PPSJ7  
0
PPSJ6  
0
PPSJ5  
0
PPSJ4  
0
PPSJ2  
0
PPSJ1  
0
PPSJ0  
0
W
0x0270  
R
Reserved  
W
= Unimplemented or Reserved  
Figure 4-2. PIM Register Summary (Sheet 5 of 6)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
195  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Register  
Bit 7  
PT1AD07  
0
6
PT1AD06  
0
5
PT1AD05  
0
4
PT1AD04  
0
3
PT1AD03  
0
2
PT1AD02  
0
1
PT1AD01  
0
Bit 0  
PT1AD00  
0
Name  
0x0271  
R
PT1AD0  
W
0x0272  
R
Reserved  
W
0x0273  
Name  
R
DDR1AD07 DDR1AD06 DDR1AD05 DDR1AD04 DDR1AD03 DDR1AD02 DDR1AD01 DDR1AD00  
W
0x0274  
R
0
0
0
0
0
0
0
0
Reserved  
W
0x0275  
RDR1AD0  
R
RDR1AD07 RDR1AD06 RDR1AD05 RDR1AD04 RDR1AD03 RDR1AD02 RDR1AD01 RDR1AD00  
W
0x0276  
R
0
0
0
0
0
0
0
0
Reserved  
W
0x0277  
PER1AD0  
R
PER1AD07 PER1AD06 PER1AD05 PER1AD04 PER1AD03 PER1AD02 PER1AD01 PER1AD00  
PT0AD123 PT0AD122 PT0AD121 PT0AD120 PT0AD119 PT0AD118 PT0AD117 PT0AD116  
W
0x0278  
PT0AD1  
R
W
0x0279  
PT1AD1  
R
PT1AD115 PT1AD114 PT1AD113 PT1AD112 PT1AD111 PT1AD110  
PT1AD19  
PT1AD18  
W
0x027A  
DDR0AD1  
R
DDR0AD123 DDR0AD122 DDR0AD121 DDR0AD120 DDR0AD119 DDR0AD118 DDR0AD117 DDR0AD116  
DDR1AD115 DDR1AD114 DDR1AD113 DDR1AD112 DDR1AD111 DDR1AD110 DDR1AD19 DDR1AD18  
RDR0AD123 RDR0AD122 RDR0AD121 RDR0AD120 RDR0AD119 RDR0AD118 RDR0AD117 RDR0AD116  
RDR1AD115 RDR1AD114 RDR1AD113 RDR1AD112 RDR1AD111 RDR1AD110 RDR1AD19 RDR1AD18  
PER0AD123 PER0AD122 PER0AD121 PER0AD120 PER0AD119 PER0AD118 PER0AD117 PER0AD116  
PER1AD115 PER1AD114 PER1AD113 PER1AD112 PER1AD111 PER1AD110 PER1AD19 PER1AD18  
W
0x027B  
DDR1AD1  
R
W
0x027C  
RDR0AD1  
R
W
0x027D  
RDR1AD1  
R
W
0x027E  
PER0AD1  
R
W
0x027F  
PER1AD1  
R
W
= Unimplemented or Reserved  
Figure 4-2. PIM Register Summary (Sheet 6 of 6)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
196  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.1  
Port A Data Register (PORTA)  
0x0000 (PRR)  
7
6
5
4
3
2
1
0
R
PA7  
PA6  
PA5  
PA4  
PA3  
PA2  
PA1  
PA0  
W
Alt. ADDR15  
ADDR14  
mux  
ADDR13  
mux  
ADDR12  
mux  
ADDR11  
mux  
ADDR10  
mux  
ADDR9  
mux  
ADDR8  
mux  
Function  
mux  
IVD15  
IVD14  
IVD13  
IVD12  
IVD11  
IVD10  
IVD9  
IVD8  
Reset  
0
0
0
0
0
0
0
0
Figure 4-3. Port A Data Register (PORTA)  
Read: Anytime. In emulation modes, read operations will return the data from the external bus, in all other  
modes the data source is depending on the data direction value.  
Write: Anytime. In emulation modes, write operations will also be directed to the external bus.  
Table 4-4. PORTA Field Descriptions  
Field  
Description  
7–0  
PA[7:0]  
Port A — Port A pins 7–0 are associated with address outputs ADDR15 through ADDR8 respectively in  
expanded modes. When this port is not used for external addresses, these pins can be used as general purpose  
I/O. If the data direction bits of the associated I/O pins are set to logic level “1”, a read returns the value of the  
port register, otherwise the buffered pin input state is read.  
4.3.2.2  
Port B Data Register (PORTB)  
0x0001 (PRR)  
7
6
5
4
3
2
1
0
R
W
PB7  
PB6  
PB5  
PB4  
PB3  
PB2  
PB1  
PB0  
Alt.  
Function  
ADDR0  
mux  
IVD0  
or  
ADDR7  
mux  
IVD7  
ADDR6  
mux  
IVD6  
ADDR5  
mux  
IVD5  
ADDR4  
mux  
IVD4  
ADDR3  
mux  
IVD3  
ADDR2  
mux  
IVD2  
ADDR1  
mux  
IVD1  
UDS  
Reset  
0
0
0
0
0
0
0
0
Figure 4-4. Port B Data Register (PORTB)  
Read: Anytime. In emulation modes, read operations will return the data from the external bus, in all other  
modes the data source is depending on the data direction value.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
197  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Write: Anytime. In emulation modes, write operations will also be directed to the external bus.  
Table 4-5. PORTB Field Descriptions  
Field  
Description  
7–0  
PB[7:0]  
Port B — Port B pins 7–0 are associated with address outputs ADDR7 through ADDR1 respectively in expanded  
modes. Pin 0 is associated with output ADDR0 in emulation modes and special test mode and with Upper Data  
Select (UDS) in normal expanded mode. When this port is not used for external addresses, these pins can be  
used as general purpose I/O. If the data direction bits of the associated I/O pins are set to logic level “1”, a read  
returns the value of the port register, otherwise the buffered pin input state is read.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
198  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.3  
Port A Data Direction Register (DDRA)  
0x0002 (PRR)  
7
6
5
4
3
2
1
0
R
DDRA7  
0
DDRA6  
DDRA5  
DDRA4  
DDRA3  
DDRA2  
DDRA1  
DDRA0  
W
Reset  
0
0
0
0
0
0
0
Figure 4-5. Port A Data Direction Register (DDRA)  
Read: Anytime. In emulation modes, read operations will return the data from the external bus, in all other  
modes the data are read from this register.  
Write: Anytime. In emulation modes, write operations will also be directed to the external bus.  
Table 4-6. DDRA Field Descriptions  
Field  
Description  
7–0  
Data Direction Port A — This register controls the data direction for port A. When Port A is operating as a general  
DDRA[7:0] purpose I/O port, DDRA determines whether each pin is an input or output. A logic level “1” causes the  
associated port pin to be an output and a logic level “0” causes the associated pin to be a high-impedance input.  
0 Associated pin is configured as input.  
1 Associated pin is configured as output.  
Note: Due to internal synchronization circuits, it can take up to 2 bus clock cycles until the correct value is read  
on PORTA after changing the DDRA register.  
4.3.2.4  
Port B Data Direction Register (DDRB)  
0x0003 (PRR)  
7
6
5
4
3
2
1
0
R
DDRB7  
0
DDRB6  
DDRB5  
DDRB4  
DDRB3  
DDRB2  
DDRB1  
DDRB0  
W
Reset  
0
0
0
0
0
0
0
Figure 4-6. Port B Data Direction Register (DDRB)  
Read: Anytime. In emulation modes, read operations will return the data from the external bus, in all other  
modes the data are read from this register.  
Write: Anytime. In emulation modes, write operations will also be directed to the external bus.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
199  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Table 4-7. DDRB Field Descriptions  
Field  
Description  
7–0  
Data Direction Port B — This register controls the data direction for port B. When Port B is operating as a general  
DDRB[7:0] purpose I/O port, DDRB determines whether each pin is an input or output. A logic level “1” causes the  
associated port pin to be an output and a logic level “0” causes the associated pin to be a high-impedance input.  
0 Associated pin is configured as input.  
1 Associated pin is configured as output.  
Note: Due to internal synchronization circuits, it can take up to 2 bus clock cycles until the correct value is read  
on PORTB after changing the DDRB register.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
200  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.5  
Port C Data Register (PORTC)  
0x0004 (PRR)  
7
6
5
4
3
2
1
0
R
PC7  
PC6  
PC5  
PC4  
PC3  
PC2  
PC1  
PC0  
W
Exp.:  
DATA15  
0
DATA14  
0
DATA13  
0
DATA12  
0
DATA11  
0
DATA10  
0
DATA9  
0
DATA8  
0
Reset  
Figure 4-7. Port C Data Register (PORTC)  
Read: Anytime. In emulation modes, read operations will return the data from the external bus, in all other  
modes the data source is depending on the data direction value.  
Write: Anytime. In emulation modes, write operations will also be directed to the external bus.  
Table 4-8. PORTC Field Descriptions  
Field  
Description  
7–0  
PC[7:0]  
Port C — Port C pins 7–0 are associated with data I/O lines DATA15 through DATA8 respectively in expanded  
modes. When this port is not used for external data, these pins can be used as general purpose I/O. If the data  
direction bits of the associated I/O pins are set to logic level “1”, a read returns the value of the port register,  
otherwise the buffered pin input state is read.  
4.3.2.6  
Port D Data Register (PORTD)  
0x0005 (PRR)  
7
6
5
4
3
2
1
0
R
PD7  
PD6  
PD5  
PD4  
PD3  
PD2  
PD1  
PD0  
W
Exp.:  
DATA7  
0
DATA6  
0
DATA5  
0
DATA4  
0
DATA3  
0
DATA2  
0
DATA1  
0
DATA0  
0
Reset  
Figure 4-8. Port D Data Register (PORTD)  
Read: Anytime. In emulation modes, read operations will return the data from the external bus, in all other  
modes the data source is depending on the data direction value.  
Write: Anytime. In emulation modes, write operations will also be directed to the external bus.  
Table 4-9. PORTD Field Descriptions  
Field  
Description  
7–0  
PD[7:0]  
Port D — Port D pins 7–0 are associated with data I/O lines DATA7 through DATA0 respectively in expanded  
modes. When this port is not used for external data, these pins can be used as general purpose I/O. — If the  
data direction bits of the associated I/O pins are set to logic level “1”, a read returns the value of the port register,  
otherwise the buffered pin input state is read.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
201  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.7  
Port C Data Direction Register (DDRC)  
0x0006 (PRR)  
7
6
5
4
3
2
1
0
R
DDRC7  
0
DDRC6  
DDRC5  
DDRC4  
DDRC3  
DDRC2  
DDRC1  
DDRC0  
W
Reset  
0
0
0
0
0
0
0
Figure 4-9. Port C Data Direction Register (DDRC)  
Read: Anytime. In emulation modes, read operations will return the data from the external bus, in all other  
modes the data are read from this register.  
Write: Anytime. In emulation modes, write operations will also be directed to the external bus.  
Table 4-10. DDRC Field Descriptions  
Field  
Description  
7–0  
Data Direction Port C — This register controls the data direction for port C. When Port C is operating as a general  
DDRC[7:0] purpose I/O port, DDRC determines whether each pin is an input or output. A logic level “1” causes the  
associated port pin to be an output and a logic level “0” causes the associated pin to be a high-impedance input.  
0 Associated pin is configured as input.  
1 Associated pin is configured as output.  
Note: Due to internal synchronization circuits, it can take up to 2 bus clock cycles until the correct value is read  
on PORTC after changing the DDRC register.  
4.3.2.8  
Port D Data Direction Register (DDRD)  
0x0007 (PRR)  
7
6
5
4
3
2
1
0
R
DDRD7  
0
DDRD6  
DDRD5  
DDRD4  
DDRD3  
DDRD2  
DDRD1  
DDRD0  
W
Reset  
0
0
0
0
0
0
0
Figure 4-10. Port D Data Direction Register (DDRD)  
Read: Anytime. In emulation modes, read operations will return the data from the external bus, in all other  
modes the data are read from this register.  
Write: Anytime. In emulation modes, write operations will also be directed to the external bus.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
202  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Table 4-11. DDRD Field Descriptions  
Field  
Description  
7–0  
Data Direction Port D — This register controls the data direction for port D. When Port D is operating as a general  
DDRD[7:0] purpose I/O port, DDRD determines whether each pin is an input or output. A logic level “1” causes the  
associated port pin to be an output and a logic level “0” causes the associated pin to be a high-impedance input.  
0 Associated pin is configured as input.  
1 Associated pin is configured as output.  
Note: Due to internal synchronization circuits, it can take up to 2 bus clock cycles until the correct value is read  
on PORTD after changing the DDRD register.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
203  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.9  
Port E Data Register (PORTE)  
0x0008 (PRR)  
7
6
5
4
3
2
1
0
R
PE1  
PE0  
PE7  
PE6  
PE5  
PE4  
PE3  
PE2  
W
MODA  
or  
RE  
or  
TAGLO  
EROMCTL  
or  
LSTRB  
or  
XCLKS  
or  
ECLKX2  
MODB  
or  
TAGHI  
R/W  
or  
WE  
Alt.  
Func.  
ECLK  
0
IRQ  
XIRQ  
LDS  
1
1
Reset  
0
0
0
0
0
= Unimplemented or Reserved  
Figure 4-11. Port E Data Register (PORTE)  
1
These registers are reset to zero. Two bus clock cycles after reset release the register values are updated with the associated  
pin values.  
Read: Anytime. In emulation modes, read operations will return the data from the external bus, in all other  
modes the data source is depending on the data direction value.  
Write: Anytime. In emulation modes, write operations will also be directed to the external bus.  
Table 4-12. PORTE Field Descriptions  
Field  
Description  
7–0  
PE[7:0]  
Port E — Port E bits 7–0 are associated with external bus control signals and interrupt inputs. These include  
mode select (MODB, MODA), E clock, double frequency E clock, Instruction Tagging High and Low (TAGHI,  
TAGLO), Read/Write (R/W), Read Enable and Write Enable (RE, WE), Lower Data Select (LDS), IRQ, and XIRQ.  
When not used for any of these specific functions, Port E pins 7–2 can be used as general purpose I/O and  
pins 1–0 can be used as general purpose inputs.  
If the data direction bits of the associated I/O pins are set to logic level “1”, a read returns the value of the port  
register, otherwise the buffered pin input state is read.  
Pins 6 and 5 are inputs with enabled pull-down devices while RESET pin is low.  
Pins 7 and 3 are inputs with enabled pull-up devices while RESET pin is low.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
204  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.10 Port E Data Direction Register (DDRE)  
0x0009 (PRR)  
7
6
5
4
3
2
1
0
R
W
0
0
DDRE7  
DDRE6  
DDRE5  
DDRE4  
DDRE3  
DDRE2  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 4-12. Port E Data Direction Register (DDRE)  
Read: Anytime. In emulation modes, read operations will return the data from the external bus, in all other  
modes the data are read from this register.  
Write: Anytime. In emulation modes, write operations will also be directed to the external bus.  
Table 4-13. DDRE Field Descriptions  
Field  
Description  
7–0  
Data Direction Port E — his register controls the data direction for port E. When Port E is operating as a general  
DDRE[7:2] purpose I/O port, DDRE determines whether each pin is an input or output. A logic level “1” causes the  
associated port pin to be an output and a logic level “0” causes the associated pin to be a high-impedance input.  
Port E bit 1 (associated with IRQ) and bit 0 (associated with XIRQ) cannot be configured as outputs. Port E, bits  
1 and 0, can be read regardless of whether the alternate interrupt function is enabled.  
0 Associated pin is configured as input.  
1 Associated pin is configured as output.  
Note: Due to internal synchronization circuits, it can take up to 2 bus clock cycles until the correct value is read  
on PORTE after changing the DDRE register.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
205  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.11 S12X_EBI Ports, BKGD, VREGEN Pin Pull-up Control Register (PUCR)  
0x000C (PRR)  
7
6
5
4
3
2
1
0
R
W
0
PUPKE  
BKPUE  
PUPEE  
PUPDE  
PUPCE  
PUPBE  
PUPAE  
Reset  
1
1
0
1
0
0
0
0
= Unimplemented or Reserved  
Figure 4-13. S12X_EBI Ports, BKGD, VREGEN Pin Pull-up Control Register (PUCR)  
Read: Anytime in single-chip modes.  
Write: Anytime, except BKPUE which is writable in special test mode only.  
This register is used to enable pull-up devices for the associated ports A, B, C, D, E, and K. Pull-up devices  
are assigned on a per-port basis and apply to any pin in the corresponding port that is currently configured  
as an input.  
Table 4-14. PUCR Field Descriptions  
Field  
Description  
7
Pull-up Port K Enable  
PUPKE  
0 Port K pull-up devices are disabled.  
1 Enable pull-up devices for Port K input pins.  
6
BKGD and VREGEN Pin Pull-up Enable  
BKPUE  
0 BKGD and V  
pull-up devices are disabled.  
REGEN  
1 Enable pull-up devices on BKGD and V  
pins.  
REGEN  
4
Pull-up Port E Enable  
PUPEE  
0 Port E pull-up devices on bit 7, 4–0 are disabled.  
1 Enable pull-up devices for Port E input pins bits 7, 4–0.  
Note: Bits 5 and 6 of Port E have pull-down devices which are only enabled during reset. This bit has no effect  
on these pins.  
3
Pull-up Port D Enable  
PUPDE  
0 Port D pull-up devices are disabled.  
1 Enable pull-up devices for all Port D input pins.  
2
Pull-up Port C Enable  
PUPCE  
0 Port C pull-up devices are disabled.  
1 Enable pull-up devices for all Port C input pins.  
1
Pull-up Port B Enable  
PUPBE  
0 Port B pull-up devices are disabled.  
1 Enable pull-up devices for all Port B input pins.  
0
Pull-up Port A Enable  
PUPAE  
0 Port A pull-up devices are disabled.  
1 Enable pull-up devices for all Port A input pins.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
206  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.12 S12X_EBI Ports Reduced Drive Register (RDRIV)  
0x000D (PRR)  
7
6
5
4
3
2
1
0
R
0
0
RDPK  
0
RDPE  
RDPD  
RDPC  
RDPB  
RDPA  
W
Reset  
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 4-14. S12X_EBI Ports Reduced Drive Register (RDRIV)  
Read: Anytime. In emulation modes, read operations will return the data from the external bus, in all other  
modes the data are read from this register.  
Write: Anytime. In emulation modes, write operations will also be directed to the external bus.  
This register is used to select reduced drive for the pins associated with the S12X_EBI ports A, B, C, D,  
E, and K. If enabled, the pins drive at about 1/6 of the full drive strength. The reduced drive function is  
independent of which function is being used on a particular pin.  
The reduced drive functionality does not take effect on the pins in emulation modes.  
Table 4-15. RDRIV Field Descriptions  
Field  
Description  
7
Reduced Drive of Port K  
RDPK  
0 All port K output pins have full drive enabled.  
1 All port K output pins have reduced drive enabled.  
4
Reduced Drive of Port E  
RDPE  
0 All port E output pins have full drive enabled.  
1 All port E output pins have reduced drive enabled.  
3
Reduced Drive of Port D  
RDPD  
0 All port D output pins have full drive enabled.  
1 All port D output pins have reduced drive enabled.  
2
Reduced Drive of Port C  
RDPC  
0 All port C output pins have full drive enabled.  
1 All port C output pins have reduced drive enabled.  
1
Reduced Drive of Port B  
RDPB  
0 All port B output pins have full drive enabled.  
1 All port B output pins have reduced drive enabled.  
0
Reduced Drive of Ports A  
RDPA  
0 All Port A output pins have full drive enabled.  
1 All port A output pins have reduced drive enabled.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
207  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.13 ECLK Control Register (ECLKCTL)  
0x001C (PRR)  
7
6
5
4
3
2
1
0
R
0
0
0
0
NECLK  
NCLKX2  
EDIV1  
EDIV0  
W
1
Reset  
Mode  
1
1
1
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
0
0
0
0
0
0
0
0
0
Mode  
Dependent  
SS  
ES  
ST  
EX  
NS  
NX  
Special  
Single-Chip  
0
1
0
0
1
0
Emulation  
Single-Chip  
Special  
Test  
Emulation  
Expanded  
Normal  
Single-Chip  
Normal  
Expanded  
= Unimplemented or Reserved  
Figure 4-15. ECLK Control Register (ECLKCTL)  
1
Reset values in emulation modes are identical to those of the target mode.  
Read: Anytime. In emulation modes, read operations will return the data from the external bus, in all other  
modes the data are read from this register.  
Write: Anytime. In emulation modes, write operations will also be directed to the external bus.  
The ECLKCTL register is used to control the availability of the free-running clocks and the free-running  
clock divider.  
Table 4-16. ECLKCTL Field Descriptions  
Field  
Description  
7
No ECLK — This bit controls the availability of a free-running clock on the ECLK pin. Clock output is always  
NECLK  
active in emulation modes and if enabled in all other operating modes.  
0 ECLK enabled  
1 ECLK disabled  
MC9S12XDP512 Data Sheet, Rev. 2.11  
208  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Table 4-16. ECLKCTL Field Descriptions (continued)  
Field  
Description  
6
No ECLKX2 — This bit controls the availability of a free-running clock on the ECLKX2 pin. This clock has a fixed  
NCLKX2  
rate of twice the internal bus clock. Clock output is always active in emulation modes and if enabled in all other  
operating modes.  
0 ECLKX2 is enabled  
1 ECLKX2 is disabled  
1–0  
Free-Running ECLK Divider — These bits determine the rate of the free-running clock on the ECLK pin. The  
EDIV[1:0] usage of the bits is shown in Table 4-17. Divider is always disabled in emulation modes and active as  
programmed in all other operating modes.  
Table 4-17. Free-Running ECLK Clock Rate  
EDIV[1:0]  
Rate of Free-Running ECLK  
ECLK = Bus clock rate  
00  
01  
10  
11  
ECLK = Bus clock rate divided by 2  
ECLK = Bus clock rate divided by 3  
ECLK = Bus clock rate divided by 4  
4.3.2.14 IRQ Control Register (IRQCR)  
0x001E  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
IRQE  
IRQEN  
Reset  
0
1
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 4-16. IRQ Control Register (IRQCR)  
Read: See individual bit descriptions below.  
Write: See individual bit descriptions below.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
209  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Table 4-18. IRQCR Field Descriptions  
Field  
Description  
7
IRQ Select Edge Sensitive Only  
IRQE  
Special modes: Read or write anytime.  
Normal and emulation modes: Read anytime, write once.  
0 IRQ configured for low level recognition.  
1 IRQ configured to respond only to falling edges. Falling edges on the IRQ pin will be detected anytime  
IRQE = 1 and will be cleared only upon a reset or the servicing of the IRQ interrupt.  
6
External IRQ Enable  
IRQEN  
Read or write anytime.  
0 External IRQ pin is disconnected from interrupt logic.  
1 External IRQ pin is connected to interrupt logic.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
210  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.15 Port K Data Register (PORTK)  
0x0032 (PRR)  
7
6
5
4
3
2
1
0
R
PK7  
PK6  
PK5  
PK4  
PK3  
PK2  
PK1  
PK0  
W
ROMCTL  
or  
EWAIT  
ADDR22  
mux  
NOACC  
ADDR19  
mux  
IQSTAT3  
ADDR18  
mux  
IQSTAT2  
ADDR17  
mux  
IQSTAT1  
ADDR16  
mux  
IQSTAT0  
Alt.  
Func.  
ADDR21  
0
ADDR20  
0
Reset  
0
0
0
0
0
0
Figure 4-17. Port K Data Register (PORTK)  
Read: Anytime. In emulation modes, read operations will return the data from the external bus, in all other  
modes the data source is depending on the data direction value.  
Write: Anytime. In emulation modes, write operations will also be directed to the external bus.  
Table 4-19. PORTK Field Descriptions  
Field  
Description  
7–0  
PK[7:0]  
Port K — Port K pins 7–0 are associated with external bus control signals and internal memory expansion  
emulation pins. These include ADDR22-ADDR16, No-Access (NOACC), External Wait (EWAIT) and instruction  
pipe signals IQSTAT3-IQSTAT0. Bits 6-0 carry the external addresses in all expanded modes. In emulation or  
special test mode with internal visibility enabled the address is multiplexed with the alternate functions NOACC  
and IQSTAT on the respective pins. In single-chip modes the port pins can be used as general-purpose I/O. If  
the data direction bits of the associated I/O pins are set to logic level “1”, a read returns the value of the port  
register, otherwise the buffered pin input state is read.  
4.3.2.16 Port K Data Direction Register (DDRK)  
0x0033 (PRR)  
7
6
5
4
3
2
1
0
R
W
DDRK7  
DDRK6  
DDRK5  
DDRK4  
DDRK3  
DDRK2  
DDRK1  
DDRK0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-18. Port K Data Direction Register (DDRK)  
Read: Anytime. In emulation modes, read operations will return the data from the external bus, in all other  
modes the data are read from this register.  
Write: Anytime. In emulation modes, write operations will also be directed to the external bus.  
This register controls the data direction for port K. When Port K is operating as a general purpose I/O port,  
DDRK determines whether each pin is an input or output. A logic level “1” causes the associated port pin  
to be an output and a logic level “0” causes the associated pin to be a high-impedance input.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
211  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Table 4-20. DDRK Field Descriptions  
Field  
Description  
7–0  
Data Direction Port K  
DDRK[7:0] 0 Associated pin is configured as input.  
1 Associated pin is configured as output.  
Note: Due to internal synchronization circuits, it can take up to 2 bus clock cycles until the correct value is read  
on PORTK after changing the DDRK register.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
212  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.17 Port T Data Register (PTT)  
0x0240  
7
6
5
4
3
2
1
0
R
W
PTT7  
PTT6  
PTT5  
PTT4  
PTT3  
PTT2  
PTT1  
PTT0  
ECT  
Reset  
IOC7  
0
IOC6  
0
IOC5  
0
IOC4  
0
IOC3  
0
IOC2  
0
IOC1  
0
IOC0  
0
Figure 4-19. Port T Data Register (PTT)  
Read: Anytime.  
Write: Anytime.  
Table 4-21. PTT Field Descriptions  
Description  
Field  
7–0  
Port T — Port T bits 7–0 are associated with ECT channels IOC7–IOC0 (refer to ECT section). When not used  
PTT[7:0]  
with the ECT, these pins can be used as general purpose I/O.  
If the data direction bits of the associated I/O pins are set to logic level “1”, a read returns the value of the port  
register, otherwise the buffered pin input state is read.  
4.3.2.18 Port T Input Register (PTIT)  
0x0241  
7
6
5
4
3
2
1
0
R
PTIT7  
PTIT6  
PTIT5  
PTIT4  
PTIT3  
PTIT2  
PTIT1  
PTIT0  
W
1
Reset  
= Unimplemented or Reserved  
Figure 4-20. Port T Input Register (PTIT)  
1
These registers are reset to zero. Two bus clock cycles after reset release the register values are updated with the associated  
pin values.  
Read: Anytime.  
Write: Never, writes to this register have no effect.  
Table 4-22. PTIT Field Descriptions  
Field  
Description  
7–0  
Port T Input — This register always reads back the buffered state of the associated pins. This can also be used  
PTIT[7:0] to detect overload or short circuit conditions on output pins.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
213  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.19 Port T Data Direction Register (DDRT)  
0x0242  
7
6
5
4
3
2
1
0
R
W
DDRT7  
DDRT6  
DDRT5  
DDRT4  
DDRT3  
DDRT2  
DDRT1  
DDRT0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-21. Port T Data Direction Register (DDRT)  
Read: Anytime.  
Write: Anytime.  
This register configures each port T pin as either input or output.  
The ECT forces the I/O state to be an output for each timer port associated with an enabled output compare.  
In this case the data direction bits will not change.  
The DDRT bits revert to controlling the I/O direction of a pin when the associated timer output compare  
is disabled.  
The timer input capture always monitors the state of the pin.  
Table 4-23. DDRT Field Descriptions  
Field  
Description  
7–0  
Data Direction Port T  
DDRT[7:0] 0 Associated pin is configured as input.  
1 Associated pin is configured as output.  
Note: Due to internal synchronization circuits, it can take up to 2 bus clock cycles until the correct value is read  
on PTT or PTIT registers, when changing the DDRT register.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
214  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.20 Port T Reduced Drive Register (RDRT)  
0x0243  
7
6
5
4
3
2
1
0
R
W
RDRT7  
RDRT6  
RDRT5  
RDRT4  
RDRT3  
RDRT2  
RDRT1  
RDRT0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-22. Port T Reduced Drive Register (RDRT)  
Read: Anytime.  
Write: Anytime.  
This register configures the drive strength of each port T output pin as either full or reduced. If the port is  
used as input this bit is ignored.  
Table 4-24. RDRT Field Descriptions  
Field  
Description  
7–0  
Reduced Drive Port T  
RDRT[7:0] 0 Full drive strength at output.  
1 Associated pin drives at about 1/6 of the full drive strength.  
4.3.2.21 Port T Pull Device Enable Register (PERT)  
0x0244  
7
6
5
4
3
2
1
0
R
W
PERT7  
PERT6  
PERT5  
PERT4  
PERT3  
PERT2  
PERT1  
PERT0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-23. Port T Pull Device Enable Register (PERT)  
Read: Anytime.  
Write: Anytime.  
This register configures whether a pull-up or a pull-down device is activated, if the port is used as input.  
This bit has no effect if the port is used as output. Out of reset no pull device is enabled.  
Table 4-25. PERT Field Descriptions  
Field  
Description  
7–0  
Pull Device Enable Port T  
PERT[7:0] 0 Pull-up or pull-down device is disabled.  
1 Either a pull-up or pull-down device is enabled.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
215  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.22 Port T Polarity Select Register (PPST)  
0x0245  
7
6
5
4
3
2
1
0
R
W
PPST7  
PPST6  
PPST5  
PPST4  
PPST3  
PPST2  
PPST1  
PPST0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-24. Port T Polarity Select Register (PPST)  
Read: Anytime.  
Write: Anytime.  
This register selects whether a pull-down or a pull-up device is connected to the pin.  
Table 4-26. PPST Field Descriptions  
Field  
Description  
7–0  
Pull Select Port T  
PPST[7:0] 0 A pull-up device is connected to the associated port T pin, if enabled by the associated bit in register PERT  
and if the port is used as input.  
1 A pull-down device is connected to the associated port T pin, if enabled by the associated bit in register PERT  
and if the port is used as input.  
4.3.2.23 Port S Data Register (PTS)  
0x0248  
7
6
5
4
3
2
1
0
R
W
PTS7  
PTS6  
PTS5  
PTS4  
PTS3  
PTS2  
PTS1  
PTS0  
SCI/SPI  
Reset  
SS0  
0
SCK0  
0
MOSI0  
0
MISO0  
0
TXD1  
0
RXD1  
0
TXD0  
0
RXD0  
0
Figure 4-25. Port S Data Register (PTS)  
Read: Anytime.  
Write: Anytime.  
Port S pins 7–4 are associated with the SPI0. The SPI0 pin configuration is determined by several status  
bits in the SPI0 module. Refer to SPI section for details. When not used with the SPI0, these pins can be  
used as general purpose I/O.  
Port S bits 3–0 are associated with the SCI1 and SCI0. The SCI ports associated with transmit pins 3 and  
1 are configured as outputs if the transmitter is enabled. The SCI ports associated with receive pins 2 and  
0 are configured as inputs if the receiver is enabled. Refer to SCI section for details. When not used with  
the SCI, these pins can be used as general purpose I/O.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
216  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
If the data direction bits of the associated I/O pins are set to logic level “1”, a read returns the value of the  
port register, otherwise the buffered pin input state is read.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
217  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.24 Port S Input Register (PTIS)  
0x0249  
7
6
5
4
3
2
1
0
R
PTIS7  
PTIS6  
PTIS5  
PTIS4  
PTIS3  
PTIS2  
PTIS1  
PTIS0  
W
1
Reset  
= Unimplemented or Reserved  
Figure 4-26. Port S Input Register (PTIS)  
1
These registers are reset to zero. Two bus clock cycles after reset release the register values are updated with the associated  
pin values.  
Read: Anytime.  
Write: Never, writes to this register have no effect.  
This register always reads back the buffered state of the associated pins. This also can be used to detect  
overload or short circuit conditions on output pins.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
218  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.25 Port S Data Direction Register (DDRS)  
0x024A  
7
6
5
4
3
2
1
0
R
W
DDRS7  
DDRS6  
DDRS5  
DDRS4  
DDRS3  
DDRS2  
DDRS1  
DDRS0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-27. Port S Data Direction Register (DDRS)  
Read: Anytime.  
Write: Anytime.  
This register configures each port S pin as either input or output.  
If SPI0 is enabled, the SPI0 determines the pin direction. Refer to SPI section for details.  
If the associated SCI transmit or receive channel is enabled this register has no effect on the pins. The pin  
is forced to be an output if a SCI transmit channel is enabled, it is forced to be an input if the SCI receive  
channel is enabled.  
The DDRS bits revert to controlling the I/O direction of a pin when the associated channel is disabled.  
Table 4-27. DDRS Field Descriptions  
Field  
Description  
7–0  
Data Direction Port S  
DDRS[7:0] 0 Associated pin is configured as input.  
1 Associated pin is configured as output.  
Note: Due to internal synchronization circuits, it can take up to 2 bus clock cycles until the correct value is read  
on PTS or PTIS registers, when changing the DDRS register.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
219  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.26 Port S Reduced Drive Register (RDRS)  
0x024B  
7
6
5
4
3
2
1
0
R
W
RDRS7  
RDRS6  
RDRS5  
RDRS4  
RDRS3  
RDRS2  
RDRS1  
RDRS0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-28. Port S Reduced Drive Register (RDRS)  
Read: Anytime.  
Write: Anytime.  
This register configures the drive strength of each port S output pin as either full or reduced. If the port is  
used as input this bit is ignored.  
Table 4-28. RDRS Field Descriptions  
Field  
Description  
7–0  
Reduced Drive Port S  
RDRS[7:0] 0 Full drive strength at output.  
1 Associated pin drives at about 1/6 of the full drive strength.  
4.3.2.27 Port S Pull Device Enable Register (PERS)  
0x024C  
7
6
5
4
3
2
1
0
R
W
PERS7  
PERS6  
PERS5  
PERS4  
PERS3  
PERS2  
PERS1  
PERS0  
Reset  
1
1
1
1
1
1
1
1
Figure 4-29. Port S Pull Device Enable Register (PERS)  
Read: Anytime.  
Write: Anytime.  
This register configures whether a pull-up or a pull-down device is activated, if the port is used as input or  
as output in wired-OR (open drain) mode. This bit has no effect if the port is used as push-pull output. Out  
of reset a pull-up device is enabled.  
Table 4-29. PERS Field Descriptions  
Field  
Description  
7–0  
Pull Device Enable Port S  
PERS[7:0] 0 Pull-up or pull-down device is disabled.  
1 Either a pull-up or pull-down device is enabled.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
220  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.28 Port S Polarity Select Register (PPSS)  
0x024D  
7
6
5
4
3
2
1
0
R
W
PPSS7  
PPSS6  
PPSS5  
PPSS4  
PPSS3  
PPSS2  
PPSS1  
PPSS0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-30. Port S Polarity Select Register (PPSS)  
Read: Anytime.  
Write: Anytime.  
This register selects whether a pull-down or a pull-up device is connected to the pin.  
Table 4-30. PPSS Field Descriptions  
Field  
Description  
7–0  
Pull Select Port S  
PPSS[7:0] 0 A pull-up device is connected to the associated port S pin, if enabled by the associated bit in register PERS  
and if the port is used as input or as wired-OR output.  
1 A pull-down device is connected to the associated port S pin, if enabled by the associated bit in register PERS  
and if the port is used as input.  
4.3.2.29 Port S Wired-OR Mode Register (WOMS)  
0x024E  
7
6
5
4
3
2
1
0
R
W
WOMS7  
WOMS6  
WOMS5  
WOMS4  
WOMS3  
WOMS2  
WOMS1  
WOMS0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-31. Port S Wired-OR Mode Register (WOMS)  
Read: Anytime.  
Write: Anytime.  
This register configures the output pins as wired-OR. If enabled the output is driven active low only  
(open-drain). A logic level of “1” is not driven. It applies also to the SPI and SCI outputs and allows a  
multipoint connection of several serial modules. These bits have no influence on pins used as inputs.  
Table 4-31. WOMS Field Descriptions  
Field  
Description  
7–0  
Wired-OR Mode Port S  
WOMS[7:0] 0 Output buffers operate as push-pull outputs.  
1 Output buffers operate as open-drain outputs.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
221  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.30 Port M Data Register (PTM)  
0x0250  
7
6
5
4
3
2
1
0
R
PTM7  
PTM6  
PTM5  
PTM4  
PTM3  
PTM2  
PTM1  
PTM0  
W
CAN TXCAN3  
RXCAN3  
RXCAN4  
0
TXCAN2  
TXCAN0  
RXCAN2  
RXCAN0  
TXCAN1  
TXCAN0  
RXCAN1  
RXCAN0  
TXCAN0  
RXCAN0  
Routed  
CAN0  
Routed  
CAN4  
TXCAN4  
TXCAN4  
RXCAN4  
Routed  
SPIO  
SCK0  
0
MOSI0  
0
SS0  
0
MISO0  
0
Reset  
0
0
0
Figure 4-32. Port M Data Register (PTM)  
Read: Anytime.  
Write: Anytime.  
Port M pins 75–0 are associated with the CAN0, CAN1, CAN2, CAN3, SCI3, as well as the routed CAN0,  
CAN4, and SPI0 modules. When not used with any of the peripherals, these pins can be used as general  
purpose I/O.  
If the data direction bits of the associated I/O pins are set to logic level “1”, a read returns the value of the  
port register, otherwise the buffered pin input state is read.  
Table 4-32. PTM Field Descriptions  
Field  
Description  
7–6  
PTM[7:6]  
The CAN3 function (TXCAN3 and RXCAN3) takes precedence over the CAN4, SCI3 and the general purpose  
I/O function if the CAN3 module is enabled. Refer to MSCAN section for details.  
The CAN4 function (TXCAN4 and RXCAN4) takes precedence over the SCI3 and the general purpose I/O  
function if the CAN4 module is enabled. Refer to MSCAN section for details.  
The SCI3 function (TXD3 and RXD3) takes precedence over the general purpose I/O function if the SCI3 module  
is enabled. Refer to SCI section for details.  
5–4  
PTM[5:4]  
The CAN2 function (TXCAN2 and RXCAN2) takes precedence over the routed CAN0, routed CAN4, the routed  
SPI0 and the general purpose I/O function if the CAN2 module is enabled{pim_9xd_prio.m}.  
The routed CAN0 function (TXCAN0 and RXCAN0) takes precedence over the routed CAN4, the routed SPI0  
and the general purpose I/O function if the routed CAN0 module is enabled.  
The routed CAN4 function (TXCAN4 and RXCAN4) takes precedence over the routed SPI0 and general purpose  
I/O function if the routed CAN4 module is enabled. Refer to MSCAN section for details.  
The routed SPI0 function (SCK0 and MOSI0) takes precedence of the general purpose I/O function if the routed  
SPI0 is enabled. Refer to SPI section for details.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
222  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Table 4-32. PTM Field Descriptions (continued)  
Field  
Description  
3–2  
PTM[3:2]  
The CAN1 function (TXCAN1 and RXCAN1) takes precedence over the routed CAN0, the routed SPI0 and the  
general purpose I/O function if the CAN1 module is enabled.  
The routed CAN0 function (TXCAN0 and RXCAN0) takes precedence over the routed SPI0 and the general  
purpose I/O function if the routed CAN0 module is enabled. Refer to MSCAN section for details.  
The routed SPI0 function (SS0 and MISO0) takes precedence of the general purpose I/O function if the routed  
SPI0 is enabled and not in bidirectional mode. Refer to SPI section for details.  
1–0  
The CAN0 function (TXCAN0 and RXCAN0) takes precedence over the general purpose I/O function if the CAN0  
PTM[1:0]  
module is enabled. Refer to MSCAN section for details.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
223  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.31 Port M Input Register (PTIM)  
0x0251  
7
6
5
4
3
2
1
0
R
PTIM7  
PTIM6  
PTIM5  
PTIM4  
PTIM3  
PTIM2  
PTIM1  
PTIM0  
W
1
Reset  
= Unimplemented or Reserved  
Figure 4-33. Port M Input Register (PTIM)  
1
These registers are reset to zero. Two bus clock cycles after reset release the register values are updated with the associated  
pin values.  
Read: Anytime.  
Write: Never, writes to this register have no effect.  
This register always reads back the buffered state of the associated pins. This can also be used to detect  
overload or short circuit conditions on output pins.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
224  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.32 Port M Data Direction Register (DDRM)  
0x0252  
7
6
5
4
3
2
1
0
R
W
DDRM7  
DDRM6  
DDRM5  
DDRM4  
DDRM3  
DDRM2  
DDRM1  
DDRM0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-34. Port M Data Direction Register (DDRM)  
Read: Anytime.  
Write: Anytime.  
This register configures each port M pin as either input or output.  
The CAN/SCI3 forces the I/O state to be an output for each port line associated with an enabled output  
(TXCAN[3:0], TXD3). TheyAlso forces the I/O state to be an input for each port line associated with an  
enabled input (RXCAN[3:0], RXD3). In those cases the data direction bits will not change.  
The DDRM bits revert to controlling the I/O direction of a pin when the associated peripheral module is  
disabled.  
Table 4-33. DDRM Field Descriptions  
Field  
Description  
7–0  
Data Direction Port M  
DDRM[7:0] 0 Associated pin is configured as input.  
1 Associated pin is configured as output.  
Note: Due to internal synchronization circuits, it can take up to 2 bus clock cycles until the correct value is read  
on PTM or PTIM registers, when changing the DDRM register.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
225  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.33 Port M Reduced Drive Register (RDRM)  
0x0253  
7
6
5
4
3
2
1
0
R
W
RDRM7  
RDRM6  
RDRM5  
RDRM4  
RDRM3  
RDRM2  
RDRM1  
RDRM0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-35. Port M Reduced Drive Register (RDRM)  
Read: Anytime.  
Write: Anytime.  
This register configures the drive strength of each Port M output pin as either full or reduced. If the port  
is used as input this bit is ignored.  
Table 4-34. RDRM Field Descriptions  
Field  
Description  
7–0  
Reduced Drive Port M  
RDRM[7:0] 0 Full drive strength at output.  
1 Associated pin drives at about 1/6 of the full drive strength.  
4.3.2.34 Port M Pull Device Enable Register (PERM)  
0x0254  
7
6
5
4
3
2
1
0
R
W
PERM7  
PERM6  
PERM5  
PERM4  
PERM3  
PERM2  
PERM1  
PERM0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-36. Port M Pull Device Enable Register (PERM)  
Read: Anytime.  
Write: Anytime.  
This register configures whether a pull-up or a pull-down device is activated, if the port is used as input or  
wired-OR output. This bit has no effect if the port is used as push-pull output. Out of reset no pull device  
is enabled.  
Table 4-35. PERM Field Descriptions  
Field  
Description  
7–0  
Pull Device Enable Port M  
PERM[7:0] 0 Pull-up or pull-down device is disabled.  
1 Either a pull-up or pull-down device is enabled.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
226  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.35 Port M Polarity Select Register (PPSM)  
0x0255  
7
6
5
4
3
2
1
0
R
W
PPSM7  
PPSM6  
PPSM5  
PPSM4  
PPSM3  
PPSM2  
PPSM1  
PPSM0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-37. Port M Polarity Select Register (PPSM)  
Read: Anytime.  
Write: Anytime.  
This register selects whether a pull-down or a pull-up device is connected to the pin. If CAN is active a  
pull-up device can be activated on the RXCAN[3:0] inputs, but not a pull-down.  
Table 4-36. PPSM Field Descriptions  
Field  
Description  
7–0  
Pull Select Port M  
PPSM[7:0] 0 A pull-up device is connected to the associated port M pin, if enabled by the associated bit in register PERM  
and if the port is used as general purpose or RXCAN input.  
1 A pull-down device is connected to the associated port M pin, if enabled by the associated bit in register PERM  
and if the port is used as a general purpose but not as RXCAN.  
4.3.2.36 Port M Wired-OR Mode Register (WOMM)  
0x0256  
7
6
5
4
3
2
1
0
R
W
WOMM7  
WOMM6  
WOMM5  
WOMM4  
WOMM3  
WOMM2  
WOMM1  
WOMM0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-38. Port M Wired-OR Mode Register (WOMM)  
Read: Anytime.  
Write: Anytime.  
This register configures the output pins as wired-OR. If enabled the output is driven active low only  
(open-drain). A logic level of “1” is not driven. It applies also to the CAN outputs and allows a multipoint  
connection of several serial modules. This bit has no influence on pins used as inputs.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
227  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Table 4-37. WOMM Field Descriptions  
Field  
Description  
7–0  
Wired-OR Mode Port M  
WOMM[7:0] 0 Output buffers operate as push-pull outputs.  
1 Output buffers operate as open-drain outputs.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
228  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.37 Module Routing Register (MODRR)  
0x0257  
7
6
5
4
3
2
1
0
R
W
0
MODRR6  
MODRR5  
MODRR4  
MODRR3  
MODRR2  
MODRR1  
MODRR0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 4-39. Module Routing Register (MODRR)  
Read: Anytime.  
Write: Anytime.  
This register configures the re-routing of CAN0, CAN4, SPI0, SPI1, and SPI2 on alternative ports.  
Table 4-38. Module Routing Summary  
MODRR  
3
Related Pins  
Module  
CAN0  
6
5
4
2
1
0
RXCAN  
TXCAN  
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
0
0
1
1
x
x
x
x
0
1
0
1
0
0
1
1
x
x
x
x
0
1
0
1
x
x
x
x
PM0  
PM2  
PM4  
PJ6  
PM1  
PM3  
PM5  
PJ7  
PJ6  
PJ7  
PM4  
PM6  
PM5  
PM7  
CAN4  
Reserved  
MISO  
MOSI  
SCK  
SS  
x
x
x
x
0
1
x
x
0
1
x
x
0
1
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
PS4  
PM2  
PP0  
PH0  
PP4  
PH4  
PS5  
PM4  
PP1  
PH1  
PP5  
PH5  
PS6  
PM5  
PP2  
PH2  
PP7  
PH6  
PS7  
PM3  
PP3  
PH3  
PP6  
PH7  
SPI0  
SPI1  
SPI2  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
229  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.38 Port P Data Register (PTP)  
0x0258  
7
6
5
4
3
2
1
0
R
W
PTP7  
PTP6  
PTP5  
PTP4  
PTP3  
PTP2  
PTP1  
PTP0  
PWM  
SPI  
PWM7  
SCK2  
0
PWM6  
SS2  
0
PWM5  
MOSI2  
0
PWM4  
MISO2  
0
PWM3  
SS1  
0
PWM2  
SCK1  
0
PWM1  
MOSI1  
0
PWM0  
MISO1  
0
Reset  
Figure 4-40. Port P Data Register (PTP)  
Read: Anytime.  
Write: Anytime.  
Port P pins 7, and 5–0 are associated with the PWM as well as the SPI1 and SPI2 modules. These pins can  
be used as general purpose I/O when not used with any of the peripherals.  
If the data direction bits of the associated I/O pins are set to logic level “1”, a read returns the value of the  
port register, otherwise the buffered pin input state is read.  
The PWM function takes precedence over the general purpose I/O and the SPI2 or SPI1 function if the  
associated PWM channel is enabled. While channels 6 and 5-0 are output only if the respective channel is  
enabled, channel 7 can be PWM output or input if the shutdown feature is enabled. Refer to PWM section  
for details.  
The SPI2 function takes precedence over the general purpose I/O function if enabled. Refer to SPI section  
for details.  
The SPI1 function takes precedence over the general purpose I/O function if enabled. Refer to SPI section  
for details.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
230  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.39 Port P Input Register (PTIP)  
0x0259  
7
6
5
4
3
2
1
0
R
PTIP7  
PTIP6  
PTIP5  
PTIP4  
PTIP3  
PTIP2  
PTIP1  
PTIP0  
W
1
Reset  
= Unimplemented or Reserved  
Figure 4-41. Port P Input Register (PTIP)  
1
These registers are reset to zero. Two bus clock cycles after reset release the register values are updated with the associated  
pin values.  
Read: Anytime.  
Write: Never, writes to this register have no effect.  
This register always reads back the buffered state of the associated pins. This can also be used to detect  
overload or short circuit conditions on output pins.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
231  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.40 Port P Data Direction Register (DDRP)  
0x025A  
7
6
5
4
3
2
1
0
R
W
DDRP7  
DDRP6  
DDRP5  
DDRP4  
DDRP3  
DDRP2  
DDRP1  
DDRP0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-42. Port P Data Direction Register (DDRP)  
Read: Anytime.  
Write: Anytime.  
This register configures each port P pin as either input or output.  
If the associated PWM channel or SPI module is enabled this register has no effect on the pins.  
The PWM forces the I/O state to be an output for each port line associated with an enabled PWM7–0  
channel. Channel 7 can force the pin to input if the shutdown feature is enabled. Refer to PWM section for  
details.  
If a SPI module is enabled, the SPI determines the pin direction. Refer to SPI section for details.  
The DDRP bits revert to controlling the I/O direction of a pin when the associated peripherals are disabled.  
Table 4-39. DDRP Field Descriptions  
Field  
Description  
7–0  
Data Direction Port P  
DDRP[7:0] 0 Associated pin is configured as input.  
1 Associated pin is configured as output.  
Note: Due to internal synchronization circuits, it can take up to 2 bus clock cycles until the correct value is read  
on PTP or PTIP registers, when changing the DDRP register.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
232  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.41 Port P Reduced Drive Register (RDRP)  
0x025B  
7
6
5
4
3
2
1
0
R
W
RDRP7  
RDRP6  
RDRP5  
RDRP4  
RDRP3  
RDRP2  
RDRP1  
RDRP0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-43. Port P Reduced Drive Register (RDRP)  
Read: Anytime.  
Write: Anytime.  
This register configures the drive strength of each port P output pin as either full or reduced. If the port is  
used as input this bit is ignored.  
Table 4-40. RDRP Field Descriptions  
Field  
Description  
7–0  
Reduced Drive Port P  
RDRP[7:0] 0 Full drive strength at output.  
1 Associated pin drives at about 1/6 of the full drive strength.  
4.3.2.42 Port P Pull Device Enable Register (PERP)  
0x025C  
7
6
5
4
3
2
1
0
R
W
PERP7  
PERP6  
PERP5  
PERP4  
PERP3  
PERP2  
PERP1  
PERP0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-44. Port P Pull Device Enable Register (PERP)  
Read: Anytime.  
Write: Anytime.  
This register configures whether a pull-up or a pull-down device is activated, if the port is used as input.  
This bit has no effect if the port is used as output. Out of reset no pull device is enabled.  
Table 4-41. PERP Field Descriptions  
Field  
Description  
7–0  
Pull Device Enable Port P  
PERP[7:0] 0 Pull-up or pull-down device is disabled.  
1 Either a pull-up or pull-down device is enabled.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
233  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.43 Port P Polarity Select Register (PPSP)  
0x025D  
7
6
5
4
3
2
1
0
R
W
PPSP7  
PPSP6  
PPSP5  
PPSP4  
PPSP3  
PPSP2  
PPSP1  
PPSP0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-45. Port P Polarity Select Register (PPSP)  
Read: Anytime.  
Write: Anytime.  
This register serves a dual purpose by selecting the polarity of the active interrupt edge as well as selecting  
a pull-up or pull-down device if enabled.  
Table 4-42. PPSP Field Descriptions  
Field  
Description  
7–0  
Polarity Select Port P  
PPSP[7:0] 0 Falling edge on the associated port P pin sets the associated flag bit in the PIFP register.A pull-up device is  
connected to the associated port P pin, if enabled by the associated bit in register PERP and if the port is used  
as input.  
1 Rising edge on the associated port P pin sets the associated flag bit in the PIFP register.A pull-down device  
is connected to the associated port P pin, if enabled by the associated bit in register PERP and if the port is  
used as input.  
4.3.2.44 Port P Interrupt Enable Register (PIEP)  
0x025E  
7
6
5
4
3
2
1
0
R
W
PIEP7  
PIEP6  
PIEP5  
PIEP4  
PIEP3  
PIEP2  
PIEP1  
PIEP0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-46. Port P Interrupt Enable Register (PIEP)  
Read: Anytime.  
Write: Anytime.  
This register disables or enables on a per-pin basis the edge sensitive external interrupt associated with  
Port P.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
234  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Table 4-43. PIEP Field Descriptions  
Field  
Description  
7–0  
Interrupt Enable Port P  
PIEP[7:0] 0 Interrupt is disabled (interrupt flag masked).  
1 Interrupt is enabled.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
235  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.45 Port P Interrupt Flag Register (PIFP)  
0x025F  
7
6
5
4
3
2
1
0
R
W
PIFP7  
PIFP6  
PIFP5  
PIFP4  
PIFP3  
PIFP2  
PIFP1  
PIFP0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-47. Port P Interrupt Flag Register (PIFP)  
Read: Anytime.  
Write: Anytime.  
Each flag is set by an active edge on the associated input pin. This could be a rising or a falling edge based  
on the state of the PPSP register. To clear this flag, write logic level “1” to the corresponding bit in the  
PIFP register. Writing a “0” has no effect.  
Table 4-44. PIFP Field Descriptions  
Field  
Description  
7–0  
Interrupt Flags Port P  
PIFP[7:0] 0 No active edge pending. Writing a “0” has no effect.  
1 Active edge on the associated bit has occurred (an interrupt will occur if the associated enable bit is set).  
Writing a logic level “1” clears the associated flag.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
236  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.46 Port H Data Register (PTH)  
0x0260  
7
6
5
4
3
2
1
0
R
PTH7  
PTH6  
PTH5  
PTH4  
PTH3  
PTH2  
PTH1  
PTH0  
W
Routed  
SPI  
SS2  
0
SCK2  
0
MOSI2  
0
MISO2  
0
SS1  
0
SCK1  
0
MOSI1  
0
MISO1  
0
Reset  
Figure 4-48. Port H Data Register (PTH)  
Read: Anytime.  
Write: Anytime.  
Port H pins 7–0 are associated with the SCI4 and SCI5 as well as the routed SPI1 and SPI2 modules.  
These pins can be used as general purpose I/O when not used with any of the peripherals.  
If the data direction bits of the associated I/O pins are set to logic level “1”, a read returns the value of the  
port register, otherwise the buffered pin input state is read.  
The routed SPI2 function takes precedence over the SCI4 and SCI5 and the general purpose I/O function  
if the routed SPI2 module is enabled. Refer to SPI section for details.  
The routed SPI1 function takes precedence over the general purpose I/O function if the routed SPI1 is  
enabled. Refer to SPI section for details.  
The SCI4 and SCI5 function takes precedence over the general purpose I/O function if the SCI4 or SCI5  
is enabled. Refer to SCI section for details.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
237  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.47 Port H Input Register (PTIH)  
0x0261  
7
6
5
4
3
2
1
0
R
PTIH7  
PTIH6  
PTIH5  
PTIH4  
PTIH3  
PTIH2  
PTIH1  
PTIH0  
W
1
Reset  
= Unimplemented or Reserved  
Figure 4-49. Port H Input Register (PTIH)  
1
These registers are reset to zero. Two bus clock cycles after reset release the register values are updated with the associated  
pin values.  
Read: Anytime.  
Write: Never, writes to this register have no effect.  
This register always reads back the buffered state of the associated pins. This can also be used to detect  
overload or short circuit conditions on output pins.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
238  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.48 Port H Data Direction Register (DDRH)  
0x0262  
7
6
5
4
3
2
1
0
R
W
DDRH7  
DDRH6  
DDRH5  
DDRH4  
DDRH3  
DDRH2  
DDRH1  
DDRH0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-50. Port H Data Direction Register (DDRH)  
Read: Anytime.  
Write: Anytime.  
This register configures each port H pin as either input or output.  
If the associated SCI channel or routed SPI module is enabled this register has no effect on the pins.  
The SCI forces the I/O state to be an output for each port line associated with an enabled output (TXD5,  
TXD4). It also forces the I/O state to be an input for each port line associated with an enabled input (RXD5,  
RXD4). In those cases the data direction bits will not change.  
If a SPI module is enabled, the SPI determines the pin direction. Refer to SPI section for details.  
The DDRH bits revert to controlling the I/O direction of a pin when the associated peripheral modules are  
disabled.  
Table 4-45. DDRH Field Descriptions  
Field  
Description  
7–0  
Data Direction Port H  
DDRH[7:0] 0 Associated pin is configured as input.  
1 Associated pin is configured as output.  
Note: Due to internal synchronization circuits, it can take up to 2 bus clock cycles until the correct value is read  
on PTH or PTIH registers, when changing the DDRH register.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
239  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.49 Port H Reduced Drive Register (RDRH)  
0x0263  
7
6
5
4
3
2
1
0
R
W
RDRH7  
RDRH6  
RDRH5  
RDRH4  
RDRH3  
RDRH2  
RDRH1  
RDRH0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-51. Port H Reduced Drive Register (RDRH)  
Read: Anytime.  
Write: Anytime.  
This register configures the drive strength of each Port H output pin as either full or reduced. If the port is  
used as input this bit is ignored.  
Table 4-46. RDRH Field Descriptions  
Field  
Description  
7–0  
Reduced Drive Port H  
RDRH[7:0] 0 Full drive strength at output.  
1 Associated pin drives at about 1/6 of the full drive strength.  
4.3.2.50 Port H Pull Device Enable Register (PERH)  
0x0264  
7
6
5
4
3
2
1
0
R
W
PERH7  
PERH6  
PERH5  
PERH4  
PERH3  
PERH2  
PERH1  
PERH0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-52. Port H Pull Device Enable Register (PERH)  
Read: Anytime.  
Write: Anytime.  
This register configures whether a pull-up or a pull-down device is activated, if the port is used as input.  
This bit has no effect if the port is used as output. Out of reset no pull device is enabled.  
Table 4-47. PERH Field Descriptions  
Field  
Description  
7–0  
Pull Device Enable Port H  
PERH[7:0] 0 Pull-up or pull-down device is disabled.  
1 Either a pull-up or pull-down device is enabled.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
240  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.51 Port H Polarity Select Register (PPSH)  
0x0265  
7
6
5
4
3
2
1
0
R
W
PPSH7  
PPSH6  
PPSH5  
PPSH4  
PPSH3  
PPSH2  
PPSH1  
PPSH0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-53. Port H Polarity Select Register (PPSH)  
Read: Anytime.  
Write: Anytime.  
This register serves a dual purpose by selecting the polarity of the active interrupt edge as well as selecting  
a pull-up or pull-down device if enabled.  
Table 4-48. PPSH Field Descriptions  
Field  
Description  
7–0  
Polarity Select Port H  
PPSH[7:0] 0 Falling edge on the associated port H pin sets the associated flag bit in the PIFH register.  
A pull-up device is connected to the associated port H pin, if enabled by the associated bit in register PERH  
and if the port is used as input.  
1 Rising edge on the associated port H pin sets the associated flag bit in the PIFH register.  
A pull-down device is connected to the associated port H pin, if enabled by the associated bit in register PERH  
and if the port is used as input.  
4.3.2.52 Port H Interrupt Enable Register (PIEH)  
0x0266  
7
6
5
4
3
2
1
0
R
W
PIEH7  
PIEH6  
PIEH5  
PIEH4  
PIEH3  
PIEH2  
PIEH1  
PIEH0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-54. Port H Interrupt Enable Register (PIEH)  
Read: Anytime.  
Write: Anytime.  
This register disables or enables on a per-pin basis the edge sensitive external interrupt associated with  
Port H.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
241  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Table 4-49. PIEH Field Descriptions  
Field  
Description  
7–0  
Interrupt Enable Port H  
PIEH[7:0] 0 Interrupt is disabled (interrupt flag masked).  
1 Interrupt is enabled.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
242  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.53 Port H Interrupt Flag Register (PIFH)  
0x0267  
7
6
5
4
3
2
1
0
R
W
PIFH7  
PIFH6  
PIFH5  
PIFH4  
PIFH3  
PIFH2  
PIFH1  
PIFH0  
Reset  
0
0
0
0
0
0
0
0
Figure 4-55. Port H Interrupt Flag Register (PIFH)  
Read: Anytime.  
Write: Anytime.  
Each flag is set by an active edge on the associated input pin. This could be a rising or a falling edge based  
on the state of the PPSH register. To clear this flag, write logic level “1” to the corresponding bit in the  
PIFH register. Writing a “0” has no effect.  
Table 4-50. PIFH Field Descriptions  
Field  
Description  
7–0  
Interrupt Flags Port H  
PIFH[7:0] 0 No active edge pending. Writing a “0” has no effect.  
1 Active edge on the associated bit has occurred (an interrupt will occur if the associated enable bit is set).  
Writing a logic level “1” clears the associated flag.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
243  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.54 Port J Data Register (PTJ)  
0x0268  
7
6
5
4
3
2
1
0
R
0
PTJ7  
PTJ6  
PTJ5  
PTJ4  
PTJ2  
PTJ1  
PTJ0  
W
CAN4/  
SCI2  
TXCAN4  
SCL0  
RXCAN4  
SDA0  
TXD2  
RXD2  
IICO  
IIC1  
SCL1  
SDA1  
Routed  
CAN0  
TXCAN0  
RXCAN0  
Alt.  
Function  
CS2  
0
CS0  
0
CS1  
0
CS3  
0
Reset  
0
0
0
0
= Unimplemented or Reserved  
Figure 4-56. Port J Data Register (PTJ)  
Read: Anytime.  
Write: Anytime.  
Port J pins 7–4 and 2–0 are associated with the CAN4, SCI2, IIC0 and IIC1, the routed CAN0 modules  
and chip select signals (CS0, CS1, CS2, CS3). These pins can be used as general purpose I/O when not  
used with any of the peripherals.  
If the data direction bits of the associated I/O pins are set to logic level “1”, a read returns the value of the  
port register, otherwise the buffered pin input state is read.  
Table 4-51. PTJ Field Descriptions  
Field  
Description  
7–6  
PJ[7:0]  
The CAN4 function (TXCAN4 and RXCAN4) takes precedence over the IIC0, the routed CAN0 and the general  
purpose I/O function if the CAN4 module is enabled.  
The IIC0 function (SCL0 and SDA0) takes precedence over the routed CAN0 and the general purpose I/O  
function if the IIC0 is enabled. If the IIC0 module takes precedence the SDA0 and SCL0 outputs are configured  
as open drain outputs. Refer to IIC section for details.  
The routed CAN0 function (TXCAN0 and RXCAN0) takes precedence over the general purpose I/O function if  
the routed CAN0 module is enabled. Refer to MSCAN section for details.  
5-4  
PJ[5:4]  
The IIC1 function (SCL1 and SDA1) takes precedence over the chip select (CS0, CS2) and general purpose I/O  
function if the IIC1 is enabled. The chip selects (CS0, CS2) take precedence over the general purpose I/O. If the  
IIC1 module takes precedence the SDA1 and SCL1 outputs are configured as open drain outputs. Refer to IIC  
section for details.  
2
The chip select function (CS1) takes precedence over the general purpose I/O.  
PJ2  
MC9S12XDP512 Data Sheet, Rev. 2.11  
244  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Table 4-51. PTJ Field Descriptions (continued)  
Field  
Description  
1
The SCI2 function takes precedence over the general purpose I/O function if the SCI2 module is enabled. Refer  
PJ1  
to SCI section for details.  
0
PJ0  
The SCI2 function takes precedence over the chip select (CS3) and the general purpose I/O function if the SCI2  
module is enabled. The chip select (CS3) takes precedence over the general purpose I/O function. Refer to SCI  
section for details.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
245  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.55 Port J Input Register (PTIJ)  
0x0269  
7
6
5
4
3
2
1
0
R
PTIJ7  
PTIJ6  
PTIJ5  
PTIJ4  
0
PTIJ2  
PTIJ1  
PTIJ0  
W
1
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 4-57. Port J Input Register (PTIJ)  
1
These registers are reset to zero. Two bus clock cycles after reset release the register values are updated with the associated  
pin values.  
Read: Anytime.  
Write: Never, writes to this register have no effect.  
This register always reads back the buffered state of the associated pins. This can be used to detect  
overload or short circuit conditions on output pins.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
246  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.56 Port J Data Direction Register (DDRJ)  
0x026A  
7
6
5
4
3
2
1
0
R
W
0
DDRJ7  
DDRJ6  
DDRJ5  
DDRJ4  
DDRJ2  
DDRJ1  
DDRJ0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 4-58. Port J Data Direction Register (DDRJ)  
Read: Anytime.  
Write: Anytime.  
This register configures each port J pin as either input or output.  
The CAN forces the I/O state to be an output on PJ7 (TXCAN4) and an input on pin PJ6 (RXCAN4). The  
IIC takes control of the I/O if enabled. In these cases the data direction bits will not change.  
The SCI2 forces the I/O state to be an output for each port line associated with an enabled output (TXD2).  
It also forces the I/O state to be an input for each port line associated with an enabled input (RXD2). In  
these cases the data direction bits will not change.  
The DDRJ bits revert to controlling the I/O direction of a pin when the associated peripheral module is  
disabled.  
Table 4-52. DDRJ Field Descriptions  
Field  
Description  
7–0  
Data Direction Port J  
DDRJ[7:4] 0 Associated pin is configured as input.  
DDRJ[2:0] 1 Associated pin is configured as output.  
Note: Due to internal synchronization circuits, it can take up to 2 bus clock cycles until the correct value is read  
on PTJ or PTIJ registers, when changing the DDRJ register.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
247  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.57 Port J Reduced Drive Register (RDRJ)  
0x026B  
7
6
5
4
3
2
1
0
R
W
0
RDRJ7  
RDRJ6  
RDRJ5  
RDRJ4  
RDRJ2  
RDRJ1  
RDRJ0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 4-59. Port J Reduced Drive Register (RDRJ)  
Read: Anytime.  
Write: Anytime.  
This register configures the drive strength of each port J output pin as either full or reduced. If the port is  
used as input this bit is ignored.  
Table 4-53. RDRJ Field Descriptions  
Field  
Description  
7–0  
Reduced Drive Port J  
RDRJ[7:4] 0 Full drive strength at output.  
RDRJ[2:0] 1 Associated pin drives at about 1/6 of the full drive strength.  
4.3.2.58 Port J Pull Device Enable Register (PERJ)  
0x026C  
7
6
5
4
3
2
1
0
R
W
0
PERJ7  
PERJ6  
PERJ5  
PERJ4  
PERJ2  
PERJ1  
PERJ0  
Reset  
1
1
1
1
0
1
1
1
= Unimplemented or Reserved  
Figure 4-60. Port J Pull Device Enable Register (PERJ)  
Read: Anytime.  
Write: Anytime.  
This register configures whether a pull-up or a pull-down device is activated, if the port is used as input or  
as wired-OR output. This bit has no effect if the port is used as push-pull output. Out of reset a pull-up  
device is enabled.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
248  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Table 4-54. PERJ Field Descriptions  
Field  
Description  
7–0  
Pull Device Enable Port J  
PERJ[7:4] 0 Pull-up or pull-down device is disabled.  
PERJ[2:0] 1 Either a pull-up or pull-down device is enabled.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
249  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.59 Port J Polarity Select Register (PPSJ)  
0x026D  
7
6
5
4
3
2
1
0
R
W
0
PPSJ7  
PPSJ6  
PPSJ5  
PPSJ4  
PPSJ2  
PPSJ1  
PPSJ0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 4-61. Port J Polarity Select Register (PPSJ)  
Read: Anytime.  
Write: Anytime.  
This register serves a dual purpose by selecting the polarity of the active interrupt edge as well as selecting  
a pull-up or pull-down device if enabled.  
Table 4-55. PPSJ Field Descriptions  
Field  
Description  
7–0  
Polarity Select Port J  
PPSJ[7:4]  
PPSJ[2:0]  
0
Falling edge on the associated port J pin sets the associated flag bit in the PIFJ register.  
A pull-up device is connected to the associated port J pin, if enabled by the associated bit in register PERJ  
and if the port is used as general purpose input or as IIC port.  
1
Rising edge on the associated port J pin sets the associated flag bit in the PIFJ register.  
A pull-down device is connected to the associated port J pin, if enabled by the associated bit in register PERJ  
and if the port is used as input.  
4.3.2.60 Port J Interrupt Enable Register (PIEJ)  
0x026E  
7
6
5
4
3
2
1
0
R
W
0
PIEJ7  
PIEJ6  
PIEJ5  
PIEJ4  
PIEJ2  
PIEJ1  
PIEJ0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 4-62. Port J Interrupt Enable Register (PIEJ)  
This register disables or enables on a per-pin basis the edge sensitive external interrupt associated with  
Port J.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
250  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Table 4-56. PIEJ Field Descriptions  
Field  
Description  
7–0  
Interrupt Enable Port J  
PIEJ[7:4]  
PIEJ[2:0]  
0 Interrupt is disabled (interrupt flag masked).  
1 Interrupt is enabled.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
251  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.61 Port J Interrupt Flag Register (PIFJ)  
0x026F  
7
6
5
4
3
2
1
0
R
W
0
PIFJ7  
PIFJ6  
PIFJ5  
PIFJ4  
PIFJ2  
PIFJ1  
PIFJ0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 4-63. Port J Interrupt Flag Register (PIFJ)  
Read: Anytime.  
Write: Anytime.  
Each flag is set by an active edge on the associated input pin. This could be a rising or a falling edge based  
on the state of the PPSJ register. To clear this flag, write logic level “1” to the corresponding bit in the PIFJ  
register. Writing a “0” has no effect.  
Table 4-57. PIEJ Field Descriptions  
Field  
Description  
7–0  
Interrupt Flags Port J  
PIFJ[7:4]  
PIFJ[2:0]  
0 No active edge pending. Writing a “0” has no effect.  
1 Active edge on the associated bit has occurred (an interrupt will occur if the associated enable bit is set).  
Writing a logic level “1” clears the associated flag.  
4.3.2.62 Port AD0 Data Register 1 (PT1AD0)  
0x0271  
7
6
5
4
3
2
1
0
R
W
PT1AD07  
PT1AD06  
PT1AD05  
PT1AD04  
PT1AD03  
PT1AD02  
PT1AD01  
PT1AD00  
Reset  
0
0
0
0
0
0
0
0
Figure 4-64. Port AD0 Data Register 1 (PT1AD0)  
Read: Anytime.  
Write: Anytime.  
This register is associated with AD0 pins PAD[23:10]. These pins can also be used as general purpose I/O.  
If the data direction bits of the associated I/O pins are set to 1, a read returns the value of the port register,  
otherwise the value at the pins is read.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
252  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.63 Port AD0 Data Direction Register 1 (DDR1AD0)  
0x0273  
7
6
5
4
3
2
1
0
R
DDR1AD07 DDR1AD06 DDR1AD05 DDR1AD04 DDR1AD03 DDR1AD02 DDR1AD01 DDR1AD00  
W
Reset  
0
0
0
0
0
0
0
0
Figure 4-65. Port AD0 Data Direction Register 1 (DDR1AD0)  
Read: Anytime.  
Write: Anytime.  
This register configures pins PAD[07:00] as either input or output.  
Table 4-58. DDR1AD0 Field Descriptions  
Field  
Description  
7–0  
Data Direction Port AD0 Register 1  
DDR1AD0[7:0] 0 Associated pin is configured as input.  
1 Associated pin is configured as output.  
Note: Due to internal synchronization circuits, it can take up to 2 bus clock cycles until the correct value is  
read on PTAD01 register, when changing the DDR1AD0 register.  
Note: To use the digital input function on port AD0 the ATD0 digital input enable register (ATD0DIEN) has to  
be set to logic level “1”.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
253  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.64 Port AD0 Reduced Drive Register 1 (RDR1AD0)  
0x0275  
7
6
5
4
3
2
1
0
R
W
RDR1AD07 RDR1AD06 RDR1AD05 RDR1AD04 RDR1AD03 RDR1AD02 RDR1AD01 RDR1AD00  
Reset  
0
0
0
0
0
0
0
0
Figure 4-66. Port AD0 Reduced Drive Register 1 (RDR1AD0)  
Read: Anytime.  
Write: Anytime.  
This register configures the drive strength of each output pin PAD[07:00] as either full or reduced. If the  
port is used as input this bit is ignored.  
Table 4-59. RDR1AD0 Field Descriptions  
Field  
Description  
7–0  
Reduced Drive Port AD0 Register 1  
RDR1AD0[7:0] 0 Full drive strength at output.  
1 Associated pin drives at about 1/6 of the full drive strength.  
4.3.2.65 Port AD0 Pull Up Enable Register 1 (PER1AD0)  
0x0277  
7
6
5
4
3
2
1
0
R
W
PER1AD07 PER1AD06 PER1AD05 PER1AD04 PER1AD03 PER1AD02 PER1AD01 PER1AD00  
Reset  
0
0
0
0
0
0
0
0
Figure 4-67. Port AD0 Pull Up Enable Register 1 (PER1AD0)  
Read: Anytime.  
Write: Anytime.  
This register activates a pull-up device on the respective pin PAD[07:00] if the port is used as input. This  
bit has no effect if the port is used as output. Out of reset no pull device is enabled.  
Table 4-60. PER1AD0 Field Descriptions  
Field  
Description  
7–0  
Pull Device Enable Port AD0 Register 1  
PER1AD0[7:0] 0 Pull-up device is disabled.  
1 Pull-up device is enabled.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
254  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.66 Port AD1 Data Register 0 (PT0AD1)  
0x0278  
7
6
5
4
3
2
1
0
R
W
PT0AD123  
PT0AD122  
PT0AD121  
PT0AD120  
PT0AD119  
PT0AD118  
PT0AD117  
PT0AD116  
Reset  
0
0
0
0
0
0
0
0
Figure 4-68. Port AD1 Data Register 0 (PT0AD1)  
Read: Anytime.  
Write: Anytime.  
This register is associated with AD1 pins PAD[23:16]. These pins can also be used as general purpose I/O.  
If the data direction bits of the associated I/O pins are set to 1, a read returns the value of the port register,  
otherwise the value at the pins is read.  
4.3.2.67 Port AD1 Data Register 1 (PT1AD1)  
0x0279  
7
6
5
4
3
2
1
0
R
W
PT1AD115  
PT1AD114  
PT1AD113  
PT1AD112  
PT1AD111  
PT1AD110  
PT1AD19  
PT1AD18  
Reset  
0
0
0
0
0
0
0
0
Figure 4-69. Port AD1 Data Register 1 (PT1AD1)  
Read: Anytime.  
Write: Anytime.  
This register is associated with AD1 pins PAD[15:08]. These pins can also be used as general purpose I/O.  
If the data direction bits of the associated I/O pins are set to 1, a read returns the value of the port register,  
otherwise the value at the pins is read.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
255  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.68 Port AD1 Data Direction Register 0 (DDR0AD1)  
0x027A  
7
6
5
4
3
2
1
0
R
W
DDR0AD123 DDR0AD122 DDR0AD121 DDR0AD120 DDR0AD119 DDR0AD118 DDR0AD117 DDR0AD116  
Reset  
0
0
0
0
0
0
0
0
Figure 4-70. Port AD1 Data Direction Register 0 (DDR0AD1)  
Read: Anytime.  
Write: Anytime.  
This register configures pin PAD[23:16] as either input or output.  
Table 4-61. DDR0AD1 Field Descriptions  
Field  
Description  
7–0  
Data Direction Port AD1 Register 0  
DDR0AD1[23:16] 0 Associated pin is configured as input.  
1 Associated pin is configured as output.  
Note: Due to internal synchronization circuits, it can take up to 2 bus clock cycles until the correct value is  
read on PTAD10 register, when changing the DDR0AD1 register.  
Note: To use the digital input function on Port AD1 the ATD1 digital input enable register (ATD1DIEN0) has  
to be set to logic level “1”.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
256  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.69 Port AD1 Data Direction Register 1 (DDR1AD1)  
0x027B  
7
6
5
4
3
2
1
0
R
DDR1AD115 DDR1AD114 DDR1AD113 DDR1AD112 DDR1AD111 DDR1AD110 DDR1AD19 DDR1AD18  
W
Reset  
0
0
0
0
0
0
0
0
Figure 4-71. Port AD1 Data Direction Register 1 (DDR1AD1)  
Read: Anytime.  
Write: Anytime.  
This register configures pins PAD[15:08] as either input or output.  
Table 4-62. DDR1AD1 Field Descriptions  
Field  
Description  
7–0  
Data Direction Port AD1 Register 1  
DDR1AD1[15:8] 0 Associated pin is configured as input.  
1 Associated pin is configured as output.  
Note: Due to internal synchronization circuits, it can take up to 2 bus clock cycles until the correct value is  
read on PTAD11 register, when changing the DDR1AD1 register.  
Note: To use the digital input function on port AD1 the ATD1 digital input enable register (ATD1DIEN1) has  
to be set to logic level “1”.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
257  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.70 Port AD1 Reduced Drive Register 0 (RDR0AD1)  
0x027C  
7
6
5
4
3
2
1
0
R
W
RDR0AD123 RDR0AD122 RDR0AD121 RDR0AD120 RDR0AD119 RDR0AD118 RDR0AD117 RDR0AD116  
Reset  
0
0
0
0
0
0
0
0
Figure 4-72. Port AD1 Reduced Drive Register 0 (RDR0AD1)  
Read: Anytime.  
Write: Anytime.  
This register configures the drive strength of each PAD[23:16] output pin as either full or reduced. If the  
port is used as input this bit is ignored.  
Table 4-63. RDR0AD1 Field Descriptions  
Field  
Description  
7–0  
Reduced Drive Port AD1 Register 0  
RDR0AD1[23:16] 0 Full drive strength at output.  
1 Associated pin drives at about 1/6 of the full drive strength.  
4.3.2.71 Port AD1 Reduced Drive Register 1 (RDR1AD1)  
0x027D  
7
6
5
4
3
2
1
0
R
W
RDR1AD115 RDR1AD114 RDR1AD113 RDR1AD112 RDR1AD111 RDR1AD110 RDR1AD19 RDR1AD18  
Reset  
0
0
0
0
0
0
0
0
Figure 4-73. Port AD1 Reduced Drive Register 1 (RDR1AD1)  
Read: Anytime.  
Write: Anytime.  
This register configures the drive strength of each PAD[15:08] output pin as either full or reduced. If the  
port is used as input this bit is ignored.  
Table 4-64. RDR1AD1 Field Descriptions  
Field  
Description  
7–0  
Reduced Drive Port AD1 Register 1  
RDR1AD1[15:8] 0 Full drive strength at output.  
1 Associated pin drives at about 1/6 of the full drive strength.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
258  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.3.2.72 Port AD1 Pull Up Enable Register 0 (PER0AD1)  
0x027E  
7
6
5
4
3
2
1
0
R
PER0AD123 PER0AD122 PER0AD121 PER0AD120 PER0AD119 PER0AD118 PER0AD117 PER0AD116  
W
Reset  
0
0
0
0
0
0
0
0
Figure 4-74. Port AD1 Pull Up Enable Register 0 (PER0AD1)  
Read: Anytime.  
Write: Anytime.  
This register activates a pull-up device on the respective PAD[23:16] pin if the port is used as input. This  
bit has no effect if the port is used as output. Out of reset no pull-up device is enabled.  
Table 4-65. PER0AD1 Field Descriptions  
Field  
Description  
7–0  
Pull Device Enable Port AD1 Register 0  
PER0AD1[23:16] 0 Pull-up device is disabled.  
1 Pull-up device is enabled.  
4.3.2.73 Port AD1 Pull Up Enable Register 1 (PER1AD1)  
0x027F  
7
6
5
4
3
2
1
0
R
W
PER1AD115 PER1AD114 PER1AD113 PER1AD112 PER1AD111 PER1AD110 PER1AD19 PER1AD18  
Reset  
0
0
0
0
0
0
0
0
Figure 4-75. Port AD1 Pull Up Enable Register 1 (PER1AD1)  
Read: Anytime.  
Write: Anytime.  
This register activates a pull-up device on the respective PAD[15:08] pin if the port is used as input. This  
bit has no effect if the port is used as output. Out of reset no pull-up device is enabled.  
Table 4-66. PER1AD1 Field Descriptions  
Field  
Description  
7–0  
Pull Device Enable Port AD1 Register 1  
PER1AD1[15:8] 0 Pull-up device is disabled.  
1 Pull-up device is enabled.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
259  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.4  
Functional Description  
Each pin except PE0, PE1, and BKGD can act as general purpose I/O. In addition each pin can act as an  
output from the external bus interface module or a peripheral module or an input to the external bus  
interface module or a peripheral module.  
A set of configuration registers is common to all ports with exceptions in the expanded bus interface and  
ATD ports (Table 4-67). All registers can be written at any time; however a specific configuration might  
not become active.  
Example: Selecting a pull-up device  
This device does not become active while the port is used as a push-pull output.  
1
Table 4-67. Register Availability per Port  
Data  
Direction  
Reduced  
Drive  
Pull  
Enable  
Polarity  
Select  
Wired-OR Interrupt  
Interrupt  
Flag  
Port  
Data  
Input  
Mode  
Enable  
A
B
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  
yes  
yes  
yes  
yes  
yes  
C
D
E
K
T
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
S
yes  
yes  
yes  
yes  
yes  
M
P
yes  
yes  
yes  
yes  
yes  
yes  
H
J
AD0  
AD1  
1
Each cell represents one register with individual configuration bits  
4.4.1  
Registers  
4.4.1.1  
Data Register  
This register holds the value driven out to the pin if the pin is used as a general purpose I/O.  
Writing to this register has only an effect on the pin if the pin is used as general purpose output. When  
reading this address, the buffered state of the pin is returned if the associated data direction register bit is  
set to “0”.  
If the data direction register bits are set to logic level “1”, the contents of the data register is returned. This  
is independent of any other configuration (Figure 4-76).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
260  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.4.1.2  
Input Register  
This is a read-only register and always returns the buffered state of the pin (Figure 4-76).  
4.4.1.3  
Data Direction Register  
This register defines whether the pin is used as an input or an output.  
If a peripheral module controls the pin the contents of the data direction register is ignored (Figure 4-76).  
PTI  
0
1
PIN  
0
PT  
1
0
DDR  
1
data out  
Module  
output enable  
module enable  
Figure 4-76. Illustration of I/O Pin Functionality  
4.4.1.4  
Reduced Drive Register  
If the pin is used as an output this register allows the configuration of the drive strength.  
4.4.1.5  
Pull Device Enable Register  
This register turns on a pull-up or pull-down device. It becomes active only if the pin is used as an input  
or as a wired-OR output.  
4.4.1.6  
Polarity Select Register  
This register selects either a pull-up or pull-down device if enabled. It becomes active only if the pin is  
used as an input. A pull-up device can be activated if the pin is used as a wired-OR output. If the pin is  
used as an interrupt input this register selects the active interrupt edge.  
4.4.1.7  
Wired-OR Mode Register  
If the pin is used as an output this register turns off the active high drive. This allows wired-OR type  
connections of outputs.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
261  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.4.1.8  
Interrupt Enable Register  
If the pin is used as an interrupt input this register serves as a mask to the interrupt flag to enable/disable  
the interrupt.  
4.4.1.9  
Interrupt Flag Register  
If the pin is used as an interrupt input this register holds the interrupt flag after a valid pin event.  
4.4.1.10 Module Routing Register  
This register supports the re-routing of the CAN0, CAN4, SPI0, SPI1, and SPI2 pins to alternative ports.  
This allows a software re-configuration of the pinouts of the different package options with respect to  
above peripherals.  
NOTE  
The purpose of the module routing register is to provide maximum  
flexibility for derivatives with a lower number of MSCAN and SPI modules.  
Table 4-68. Module Implementations on Derivatives  
MSCAN Modules  
SPI Modules  
SPI1  
Number  
of Modules  
CAN0  
CAN1  
CAN2  
CAN3  
CAN4  
SPI0  
SPI2  
5
4
3
2
1
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
yes  
4.4.2  
Ports  
4.4.2.1  
BKGD Pin  
The BKGD pin is associated with the S12X_BDM and S12X_EBI modules. During reset, the BKGD pin  
is used as MODC input.  
4.4.2.2  
Port A and B  
Port A pins PA[7:0] and Port B pins PB[7:0] can be used for either general-purpose I/O, or, in 144-pin  
packages, also with the external bus interface. In this case port A and port B are associated with the  
external address bus outputs ADDR15–ADDR8 and ADDR7–ADDR0, respectively. PB0 is the ADDR0  
or UDS output.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
262  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.4.2.3  
Port C and D  
Port C pins PC[7:0] and port D pins PD[7:0] can be used for either general-purpose I/O, or, in 144-pin  
packages, also with the external bus interface. In this case port C and port D are associated with the  
external data bus inputs/outputs DATA15–DATA8 and DATA7–DATA0, respectively.  
These pins are configured for reduced input threshold in certain operating modes (refer to S12X_EBI  
section).  
NOTE  
Port C and D are neither available in 112-pin nor in 80-pin packages.  
4.4.2.4  
Port E  
Port E is associated with the external bus control outputs R/W, LSTRB, LDS and RE, the free-running  
clock outputs ECLK and ECLK2X, as well as with the TAGHI, TAGLO, MODA and MODB and  
interrupt inputs IRQ and XIRQ.  
Port E pins PE[7:2] can be used for either general-purpose I/O or with the alternative functions.  
Port E pin PE[7] an be used for either general-purpose I/O or as the free-running clock ECLKX2 output  
running at the core clock rate. The clock output is always enabled in emulation modes.  
Port E pin PE[4] an be used for either general-purpose I/O or as the free-running clock ECLK output  
running at the bus clock rate or at the programmed divided clock rate. The clock output is always enabled  
in emulation modes.  
Port E pin PE[1] can be used for either general-purpose input or as the level- or falling edge-sensitive IRQ  
interrupt input. IRQ will be enabled by setting the IRQEN configuration bit (Section 4.3.2.14, “IRQ  
Control Register (IRQCR)”) and clearing the I-bit in the CPU’s condition code register. It is inhibited at  
reset so this pin is initially configured as a simple input with a pull-up.  
Port E pin PE[0] can be used for either general-purpose input or as the level-sensitive XIRQ interrupt  
input. XIRQ can be enabled by clearing the X-bit in the CPU’s condition code register. It is inhibited at  
reset so this pin is initially configured as a high-impedance input with a pull-up.  
Port E pins PE[5] and PE[6] are configured for reduced input threshold in certain modes (refer to  
S12X_EBI section).  
4.4.2.5  
Port K  
Port K pins PK[7:0] can be used for either general-purpose I/O, or, in 144-pin packages, also with the  
external bus interface. In this case port K pins PK[6:0] are associated with the external address bus outputs  
ADDR22–ADDR16 and PK7 is associated to the EWAIT input.  
Port K pin PE[7] is configured for reduced input threshold in certain modes (refer to S12X_EBI section).  
NOTE  
Port K is not available in 80-pin packages. PK[6] is not available in 112-pin  
packages.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
263  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.4.2.6  
Port T  
This port is associated with the ECT module. Port T pins PT[7:0] can be used for either general-purpose  
I/O, or with the channels of the enhanced capture timer.  
4.4.2.7  
Port S  
This port is associated with SCI0, SCI1 and SPI0. Port S pins PS[7:0] can be used either for general-  
The SPI0 pins can be re-routed. Refer to Section 4.3.2.37, “Module Routing Register (MODRR)”.  
NOTE  
PS[7:4] are not available in 80-pin packages.  
4.4.2.8  
Port M  
This port is associated with the SCI3, CAN4–0 and SPI0. Port M pins PM[7:0] can be used for either  
The CAN0, CAN4 and SPI0 pins can be re-routed. Refer to Section 4.3.2.37, “Module Routing Register  
(MODRR)”.  
NOTE  
PM[7:6] are not available in 80-pin packages.  
4.4.2.9  
Port P  
This port is associated with the PWM, SPI1 and SPI2. Port P pins PP[7:0] can be used for either general  
purpose I/O, or with the PWM and SPI subsystems.  
The pins are shared between the PWM channels and the SPI1 and SPI2 modules. If the PWM is enabled  
the pins become PWM output channels with the exception of pin 7 which can be PWM input or output. If  
SPI1 or SPI2 are enabled and PWM is disabled, the respective pin configuration is determined by status  
bits in the SPI modules.  
The SPI1 and SPI2 pins can be re-routed. Refer to Section 4.3.2.37, “Module Routing Register  
(MODRR)”.  
Port P offers 8 I/O pins with edge triggered interrupt capability in wired-OR fashion (Section 4.4.3, “Pin  
Interrupts).  
NOTE  
PP[6] is not available in 80-pin packages.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
264  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.4.2.10 Port H  
general purpose I/O, or with the SPI and SCI subsystems. Port H pins can be used with the routed SPI1  
and SPI2 modules. Refer to Section 4.3.2.37, “Module Routing Register (MODRR)”.  
Port H offers 8 I/O pins with edge triggered interrupt capability (Section 4.4.3, “Pin Interrupts).  
NOTE  
Port H is not available in 80-pin packages.  
4.4.2.11 Port J  
This port is associated with the chip selects CS0, CS1, CS2 and CS3 as well as with CAN4, CAN0, IIC1,  
CAN, IIC, or SCI subsystems. If IIC takes precedence the associated pins become IIC open-drain output  
pins. The CAN4 pins can be re-routed. Refer to Section 4.3.2.37, “Module Routing Register (MODRR)”.  
Port J pins can be used with the routed CAN0 modules. Refer to Section 4.3.2.37, “Module Routing  
Register (MODRR)”.  
Port J offers 7 I/O pins with edge triggered interrupt capability (Section 4.4.3, “Pin Interrupts).  
NOTE  
PJ[5,4,2] are not available in 112-pin packages. PJ[5,4,2,1,0] are not  
available in 80-pin packages.  
4.4.2.12 Port AD0  
This port is associated with the ATD0. Port AD0 pins PAD07–PAD00 can be used for either general  
purpose I/O, or with the ATD0 subsystem.  
4.4.2.13 Port AD1  
This port is associated with the ATD1. Port AD1 pins PAD23–PAD08 can be used for either general  
purpose I/O, or with the ATD1 subsystem.  
NOTE  
PAD[23:16] are not available in 112-pin packages. PAD[23:08] are not  
available in 80-pin packages.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
265  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
4.4.3  
Pin Interrupts  
Ports P, H and J offer pin interrupt capability. The interrupt enable as well as the sensitivity to rising or  
falling edges can be individually configured on per-pin basis. All bits/pins in a port share the same  
interrupt vector. Interrupts can be used with the pins configured as inputs or outputs.  
An interrupt is generated when a bit in the port interrupt flag register and its corresponding port interrupt  
enable bit are both set. The pin interrupt feature is also capable to wake up the CPU when it is in STOP or  
WAIT mode.  
A digital filter on each pin prevents pulses (Figure 4-78) shorter than a specified time from generating an  
interrupt. The minimum time varies over process conditions, temperature and voltage (Figure 4-77 and  
Table 4-69).  
Glitch, filtered out, no interrupt flag set  
Valid pulse, interrupt flag set  
uncertain  
t
pign  
t
pval  
Figure 4-77. Interrupt Glitch Filter on Port P, H, and J (PPS = 0)  
Table 4-69. Pulse Detection Criteria  
Mode  
Pulse  
1
STOP  
3  
Unit  
STOP  
Ignored  
Uncertain  
Valid  
t
Bus clocks  
Bus clocks  
Bus clocks  
t
t  
pulse  
pulse  
pign  
3 < t  
t
< 4  
t
< t  
< t  
pval  
pulse  
pign  
pulse  
4  
t
t  
pulse  
pulse  
pval  
1
These values include the spread of the oscillator frequency over temperature,  
voltage and process.  
t
pulse  
Figure 4-78. Pulse Illustration  
MC9S12XDP512 Data Sheet, Rev. 2.11  
266  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
A valid edge on an input is detected if 4 consecutive samples of a passive level are followed by  
4 consecutive samples of an active level directly or indirectly.  
The filters are continuously clocked by the bus clock in run and wait mode. In stop mode, the clock is  
generated by an RC-oscillator in the port integration module. To maximize current saving the RC  
oscillator runs only if the following condition is true on any pin individually:  
Sample count <= 4 and interrupt enabled (PIE = 1) and interrupt flag not set (PIF = 0).  
4.4.4  
Expanded Bus Pin Functions  
All peripheral ports T, S, M, P, H, J, AD0, and AD1 start up as general purpose inputs after reset.  
Depending on the external mode pin condition, the external bus interface related ports A, B, C, D, E, and  
K start up as general purpose inputs on reset or are configured for their alternate functions.  
Table 4-70 lists the pin functions in relationship with the different operating modes. If two entries per pin  
are displayed, a ‘mux’ indicates time-multiplexing between the two functions and an ‘or’ means that a  
configuration bit exists which can be altered after reset to select the respective function (displayed in  
italics). Refer to S12X_EBI section for details.  
Table 4-70. Expanded Bus Pin Functions versus Operating Modes  
Single-Chip Modes  
Expanded Modes  
Pin  
Normal  
Single-Chip  
Special  
Single-Chip  
Normal  
Expanded  
Emulation  
Single-Chip  
Emulation  
Expanded  
Special  
Test  
PK7  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
or  
EWAIT  
GPIO  
GPIO  
or  
EWAIT  
GPIO  
PK[6:4]  
PK[3:0]  
PA[7:0]  
PB[7:1]  
PB0  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
ADDR[22:20]  
ADDR[22:20]  
mux  
ACC[2:0]  
ADDR[22:20]  
mux  
ACC[2:0]  
ADDR[22:20]  
ADDR[19:16]  
ADDR[15:8]  
ADDR[7:1]  
ADDR0  
or  
GPIO  
ADDR[19:16]  
ADDR[19:16]  
mux  
IQSTAT[3:0]  
ADDR[19:16]  
mux  
IQSTAT[3:0]  
or  
GPIO  
ADDR[15:8]  
or  
ADDR[15:8]  
mux  
IVD[15:8]  
ADDR[15:8]  
mux  
IVD[15:8]  
GPIO  
ADDR[7:1]  
or  
ADDR[7:1]  
mux  
IVD[7:1]  
ADDR[7:1]  
mux  
IVD[7:1]  
GPIO  
UDS  
or  
GPIO  
ADDR0  
mux  
IVD0  
ADDR0  
mux  
IVD0  
PC[7:0]  
DATA[15:8]  
or  
DATA[15:8]  
DATA[15:8]  
DATA[15:8]  
or  
GPIO  
GPIO  
PD[7:0]  
PE7  
DATA[7:0]  
DATA[7:0]  
ECLKX2  
DATA[7:0]  
ECLKX2  
DATA[7:0]  
GPIO  
or  
GPIO  
or  
GPIO  
or  
GPIO  
or  
ECLKX2  
ECLKX2  
ECLKX2  
ECLKX2  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
267  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Table 4-70. Expanded Bus Pin Functions versus Operating Modes (continued)  
Single-Chip Modes  
Expanded Modes  
Pin  
Normal  
Single-Chip  
Special  
Single-Chip  
Normal  
Expanded  
Emulation  
Single-Chip  
Emulation  
Expanded  
Special  
Test  
PE6  
PE5  
PE4  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
RE  
TAGHI  
TAGLO  
ECLK  
TAGHI  
TAGLO  
ECLK  
GPIO  
GPIO  
GPIO  
or  
ECLK  
or  
ECLK  
or  
ECLK  
or  
ECLK  
GPIO  
GPIO  
GPIO  
PE3  
GPIO  
GPIO  
LDS  
or  
GPIO  
LSTRB  
LSTRB  
R/W  
LSTRB  
PE2  
PJ5  
GPIO  
GPIO  
GPIO  
GPIO  
WE  
R/W  
R/W  
GPIO  
or  
GPIO  
GPIO  
or  
GPIO  
or  
CS2  
CS2  
CS2  
PJ4  
PJ2  
PJ0  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
GPIO  
or  
CS0  
or  
CS0  
or  
CS0  
(1)  
(1)  
GPIO  
or  
CS1  
GPIO  
or  
CS1  
GPIO  
or  
CS1  
GPIO  
or  
GPIO  
or  
GPIO  
or  
CS3  
CS3  
CS3  
1
Depending on ROMON bit. Refer to Device Guide, S12X_EBI section and S12X_MMC section for details.  
4.4.5  
Low-Power Options  
Run Mode  
4.4.5.1  
No low-power options exist for this module in run mode.  
4.4.5.2  
Wait Mode  
No low-power options exist for this module in wait mode.  
4.4.5.3  
Stop Mode  
All clocks are stopped. There are asynchronous paths to generate interrupts from stop on port P, H, and J.  
4.5  
Initialization and Application Information  
It is not recommended to write PORTx and DDRx in a word access. When changing the register  
pins from inputs to outputs, the data may have extra transitions during the write access. Initialize  
the port data register before enabling the outputs.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
268  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
Power consumption will increase the more the voltages on general purpose input pins deviate from  
the supply voltages towards mid-range because the digital input buffers operate in the linear region.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
269  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 4 Port Integration Module (S12XDP512PIMV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
270  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 5  
Clocks and Reset Generator (S12CRGV6)  
5.1  
Introduction  
This specification describes the function of the clocks and reset generator (MC9S12XDP512).  
5.1.1  
Features  
The main features of this block are:  
Phase locked loop (PLL) frequency multiplier  
— Reference divider  
— Automatic bandwidth control mode for low-jitter operation  
— Automatic frequency lock detector  
— Interrupt request on entry or exit from locked condition  
— Self clock mode in absence of reference clock  
System clock generator  
— Clock quality check  
— User selectable fast wake-up from Stop in self-clock mode for power saving and immediate  
program execution  
— Clock switch for either oscillator or PLL based system clocks  
Computer operating properly (COP) watchdog timer with time-out clear window  
System reset generation from the following possible sources:  
— Power on reset  
— Low voltage reset  
— Illegal address reset  
— COP reset  
— Loss of clock reset  
— External pin reset  
Real-time interrupt (RTI)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
271  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
5.1.2  
Modes of Operation  
This subsection lists and briefly describes all operating modes supported by the CRG.  
Run mode  
All functional parts of the CRG are running during normal run mode. If RTI or COP functionality  
is required, the individual bits of the associated rate select registers (COPCTL, RTICTL) have to  
be set to a nonzero value.  
Wait mode  
In this mode, the PLL can be disabled automatically depending on the PLLSEL bit in the CLKSEL  
register.  
Stop mode  
Depending on the setting of the PSTP bit, stop mode can be differentiated between full stop mode  
(PSTP = 0) and pseudo stop mode (PSTP = 1).  
— Full stop mode  
The oscillator is disabled and thus all system and core clocks are stopped. The COP and the  
RTI remain frozen.  
— Pseudo stop mode  
The oscillator continues to run and most of the system and core clocks are stopped. If the  
respective enable bits are set, the COP and RTI will continue to run, or else they remain frozen.  
Self clock mode  
Self clock mode will be entered if the clock monitor enable bit (CME) and the self clock mode  
enable bit (SCME) are both asserted and the clock monitor in the oscillator block detects a loss of  
clock. As soon as self clock mode is entered, the MC9S12XDP512 starts to perform a clock quality  
check. Self clock mode remains active until the clock quality check indicates that the required  
quality of the incoming clock signal is met (frequency and amplitude). Self clock mode should be  
used for safety purposes only. It provides reduced functionality to the MCU in case a loss of clock  
is causing severe system conditions.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
272  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
5.1.3  
Block Diagram  
Figure 5-1 shows a block diagram of the MC9S12XDP512.  
Illegal Address Reset  
S12X_MMC  
Power on Reset  
Voltage  
Regulator  
Low Voltage Reset  
CRG  
CM fail  
RESET  
Reset  
Generator  
System Reset  
Clock  
Monitor  
XCLKS  
Clock Quality  
Checker  
OSCCLK  
Oscillator  
EXTAL  
XTAL  
Bus Clock  
Core Clock  
COP  
RTI  
Oscillator Clock  
Registers  
XFC  
PLLCLK  
Real Time Interrupt  
PLL Lock Interrupt  
V
DDPLL  
Clock and Reset  
Control  
PLL  
V
SSPLL  
Self Clock Mode  
Interrupt  
Figure 5-1. CRG Block Diagram  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
273  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
5.2  
External Signal Description  
This section lists and describes the signals that connect off chip.  
5.2.1  
V
and V  
— Operating and Ground Voltage Pins  
SSPLL  
DDPLL  
These pins provide operating voltage (V  
) and ground (V  
) for the PLL circuitry. This allows  
DDPLL  
SSPLL  
the supply voltage to the PLL to be independently bypassed. Even if PLL usage is not required, V  
DDPLL  
and V  
must be connected to properly.  
SSPLL  
5.2.2  
XFC — External Loop Filter Pin  
A passive external loop filter must be placed on the XFC pin. The filter is a second-order, low-pass filter  
that eliminates the VCO input ripple. The value of the external filter network and the reference frequency  
determines the speed of the corrections and the stability of the PLL. Refer to the device specification for  
calculation of PLL Loop Filter (XFC) components. If PLL usage is not required, the XFC pin must be tied  
to V  
.
DDPLL  
V
DDPLL  
C
C
P
S
MCU  
R
S
XFC  
Figure 5-2. PLL Loop Filter Connections  
5.2.3  
RESET — Reset Pin  
RESET is an active low bidirectional reset pin. As an input. it initializes the MCU asynchronously to a  
known start-up state. As an open-drain output, it indicates that a system reset (internal to the MCU) has  
been triggered.  
5.3  
Memory Map and Register Definition  
This section provides a detailed description of all registers accessible in the MC9S12XDP512.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
274  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
5.3.1  
Module Memory Map  
Table 5-1 gives an overview on all MC9S12XDP512 registers.  
Table 5-1. MC9S12XDP512 Memory Map  
Address  
Offset  
Use  
Access  
0x_00  
0x_01  
0x_02  
0x_03  
0x_04  
0x_05  
0x_06  
0x_07  
0x_08  
0x_09  
0x_0A  
0x_0B  
CRG Synthesizer Register (SYNR)  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
CRG Reference Divider Register (REFDV)  
1
CRG Test Flags Register (CTFLG)  
CRG Flags Register (CRGFLG)  
CRG Interrupt Enable Register (CRGINT)  
CRG Clock Select Register (CLKSEL)  
CRG PLL Control Register (PLLCTL)  
CRG RTI Control Register (RTICTL)  
CRG COP Control Register (COPCTL)  
2
CRG Force and Bypass Test Register (FORBYP)  
3
CRG Test Control Register (CTCTL)  
CRG COP Arm/Timer Reset (ARMCOP)  
1
2
3
CTFLG is intended for factory test purposes only.  
FORBYP is intended for factory test purposes only.  
CTCTL is intended for factory test purposes only.  
NOTE  
Register Address = Base Address + Address Offset, where the Base Address  
is defined at the MCU level and the Address Offset is defined at the module  
level.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
275  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
5.3.2  
Register Descriptions  
This section describes in address order all the MC9S12XDP512 registers and their individual bits.  
Register  
Name  
Bit 7  
6
5
4
3
2
1
Bit 0  
0x_00  
SYNR  
R
0
0
SYN5  
SYN4  
SYN3  
SYN2  
SYN1  
SYN0  
W
0x_01  
REFDV  
R
0
0
0
0
REFDV5  
0
REFDV4  
0
REFDV3  
0
REFDV2  
0
REFDV1  
0
REFDV0  
0
W
0x_02  
R
CTFLG  
W
0x_03  
CRGFLG  
R
LOCK  
0
TRACK  
SCM  
0
RTIF  
RTIE  
PORF  
ILAF  
LVRF  
0
LOCKIF  
SCMIF  
SCMIE  
RTIWAI  
PCE  
W
0x_04  
CRGINT  
R
0
0
LOCKIE  
0
W
0x_05  
CLKSEL  
R
0
PLLSEL  
CME  
PSTP  
PLLON  
RTR6  
PLLWAI  
COPWAI  
SCME  
RTR0  
W
0x_06  
PLLCTL  
R
AUTO  
RTR5  
ACQ  
FSTWKP  
PRE  
W
0x_07  
RTICTL  
R
RTDEC  
RTR4  
0
RTR3  
0
RTR2  
RTR1  
W
0x_08  
COPCTL  
R
0
WCOP  
0
RSBCK  
0
CR2  
0
CR1  
0
CR0  
0
W
WRTMASK  
0x_09  
FORBYP  
R
0
0
0
0
0
W
0x_0A  
R
1
0
0
0
0
0
CTCTL  
W
0x_0B  
R
0
0
0
0
0
0
0
0
ARMCOP  
W
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
= Unimplemented or Reserved  
Figure 5-3. S12CRGV6 Register Summary  
MC9S12XDP512 Data Sheet, Rev. 2.11  
276  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
5.3.2.1  
CRG Synthesizer Register (SYNR)  
The SYNR register controls the multiplication factor of the PLL. If the PLL is on, the count in the loop  
divider (SYNR) register effectively multiplies up the PLL clock (PLLCLK) from the reference frequency  
by 2 x (SYNR + 1). PLLCLK will not be below the minimum VCO frequency (f  
).  
SCM  
(SYNR + 1)  
PLLCLK = 2xOSCCLKx-----------------------------------  
(REFDV + 1)  
NOTE  
If PLL is selected (PLLSEL=1), Bus Clock = PLLCLK / 2  
Bus Clock must not exceed the maximum operating system frequency.  
Module Base +0x_00  
7
6
5
4
3
2
1
0
R
W
0
0
SYN5  
SYN4  
SYN3  
SYN2  
SYN1  
SYN0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 5-4. CRG Synthesizer Register (SYNR)  
Read: Anytime  
Write: Anytime except if PLLSEL = 1  
NOTE  
Write to this register initializes the lock detector bit and the track detector  
bit.  
5.3.2.2  
CRG Reference Divider Register (REFDV)  
The REFDV register provides a finer granularity for the PLL multiplier steps. The count in the reference  
divider divides OSCCLK frequency by REFDV + 1.  
Module Base +0x_01  
7
6
5
4
3
2
1
0
R
W
0
0
REFDV5  
REFDV4  
REFDV3  
REFDV2  
REFDV1  
REFDV0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 5-5. CRG Reference Divider Register (REFDV)  
Read: Anytime  
Write: Anytime except when PLLSEL = 1  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
277  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
NOTE  
Write to this register initializes the lock detector bit and the track detector  
bit.  
5.3.2.3  
Reserved Register (CTFLG)  
This register is reserved for factory testing of the MC9S12XDP512 module and is not available in normal  
modes.  
Module Base +0x_02  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
0
0
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 5-6. Reserved Register (CTFLG)  
Read: Always reads 0x_00 in normal modes  
Write: Unimplemented in normal modes  
NOTE  
Writing to this register when in special mode can alter the MC9S12XDP512  
fucntionality.  
5.3.2.4  
CRG Flags Register (CRGFLG)  
This register provides CRG status bits and flags.  
Module Base +0x_03  
7
6
5
4
3
2
1
0
R
W
LOCK  
TRACK  
SCM  
RTIF  
PORF  
LVRF  
LOCKIF  
SCMIF  
1
2
Reset  
0
0
0
0
0
0
1. PORF is set to 1 when a power on reset occurs. Unaffected by system reset.  
2. LVRF is set to 1 when a low-voltage reset occurs. Unaffected by system reset.  
= Unimplemented or Reserved  
Figure 5-7. CRG Flags Register (CRGFLG)  
Read: Anytime  
Write: Refer to each bit for individual write conditions  
MC9S12XDP512 Data Sheet, Rev. 2.11  
278  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
Table 5-2. CRGFLG Field Descriptions  
Field  
Description  
7
RTIF  
Real Time Interrupt Flag — RTIF is set to 1 at the end of the RTI period. This flag can only be cleared by writing  
a 1. Writing a 0 has no effect. If enabled (RTIE = 1), RTIF causes an interrupt request.  
0 RTI time-out has not yet occurred.  
1 RTI time-out has occurred.  
6
Power on Reset Flag — PORF is set to 1 when a power on reset occurs. This flag can only be cleared by writing  
a 1. Writing a 0 has no effect.  
PORF  
0 Power on reset has not occurred.  
1 Power on reset has occurred.  
5
Low Voltage Reset Flag — If low voltage reset feature is not available (see device specification) LVRF always  
reads 0. LVRF is set to 1 when a low voltage reset occurs. This flag can only be cleared by writing a 1. Writing  
a 0 has no effect.  
LVRF  
0 Low voltage reset has not occurred.  
1 Low voltage reset has occurred.  
4
PLL Lock Interrupt Flag — LOCKIF is set to 1 when LOCK status bit changes. This flag can only be cleared  
by writing a 1. Writing a 0 has no effect.If enabled (LOCKIE = 1), LOCKIF causes an interrupt request.  
0 No change in LOCK bit.  
LOCKIF  
1 LOCK bit has changed.  
3
Lock Status Bit — LOCK reflects the current state of PLL lock condition. This bit is cleared in self clock mode.  
Writes have no effect.  
LOCK  
0 PLL VCO is not within the desired tolerance of the target frequency.  
1 PLL VCO is within the desired tolerance of the target frequency.  
2
Track Status Bit — TRACK reflects the current state of PLL track condition. This bit is cleared in self clock  
TRACK  
mode. Writes have no effect.  
0 Acquisition mode status.  
1Tracking mode status.  
1
Self Clock Mode Interrupt Flag — SCMIF is set to 1 when SCM status bit changes. This flag can only be  
cleared by writing a 1. Writing a 0 has no effect. If enabled (SCMIE = 1), SCMIF causes an interrupt request.  
0 No change in SCM bit.  
SCMIF  
1 SCM bit has changed.  
0
SCM  
Self Clock Mode Status Bit — SCM reflects the current clocking mode. Writes have no effect.  
0 MCU is operating normally with OSCCLK available.  
1 MCU is operating in self clock mode with OSCCLK in an unknown state. All clocks are derived from PLLCLK  
running at its minimum frequency f  
.
SCM  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
279  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
5.3.2.5  
CRG Interrupt Enable Register (CRGINT)  
This register enables CRG interrupt requests.  
Module Base +0x_04  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
RTIE  
ILAF  
LOCKIE  
SCMIE  
1
Reset  
0
0
0
0
0
0
0
1. ILAF is set to 1 when an illegal address reset occurs. Unaffected by system reset. Cleared by power on or low  
voltage reset.  
= Unimplemented or Reserved  
Figure 5-8. CRG Interrupt Enable Register (CRGINT)  
Read: Anytime  
Write: Anytime  
Table 5-3. CRGINT Field Descriptions  
Description  
Field  
7
Real Time Interrupt Enable Bit  
0 Interrupt requests from RTI are disabled.  
RTIE  
1 Interrupt will be requested whenever RTIF is set.  
6
ILAF  
Illegal Address Reset Flag — ILAF is set to 1 when an illegal address reset occurs. Refer to S12XMMC Block  
Guide for details. This flag can only be cleared by writing a 1. Writing a 0 has no effect.  
0 Illegal address reset has not occurred.  
1 Illegal address reset has occurred.  
4
Lock Interrupt Enable Bit  
LOCKIE  
0 LOCK interrupt requests are disabled.  
1 Interrupt will be requested whenever LOCKIF is set.  
1
Self ClockMmode Interrupt Enable Bit  
0 SCM interrupt requests are disabled.  
SCMIE  
1 Interrupt will be requested whenever SCMIF is set.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
280  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
5.3.2.6  
CRG Clock Select Register (CLKSEL)  
This register controls CRG clock selection. Refer to Figure 5-17 for more details on the effect of each bit.  
Module Base +0x_05  
7
6
5
4
3
2
1
0
R
W
0
0
0
PLLSEL  
PSTP  
PLLWAI  
RTIWAI  
COPWAI  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 5-9. CRG Clock Select Register (CLKSEL)  
Read: Anytime  
Write: Refer to each bit for individual write conditions  
Table 5-4. CLKSEL Field Descriptions  
Field  
Description  
7
PLL Select Bit — Write anytime. Writing a1 when LOCK = 0 and AUTO = 1, or TRACK = 0 and AUTO = 0 has  
no effect This prevents the selection of an unstable PLLCLK as SYSCLK. PLLSEL bit is cleared when the MCU  
enters self clock mode, Stop mode or wait mode with PLLWAI bit set.  
PLLSEL  
0 System clocks are derived from OSCCLK (Bus Clock = OSCCLK / 2).  
1 System clocks are derived from PLLCLK (Bus Clock = PLLCLK / 2).  
6
Pseudo Stop Bit  
PSTP  
Write: Anytime  
This bit controls the functionality of the oscillator during stop mode.  
0 Oscillator is disabled in stop mode.  
1 Oscillator continues to run in stop mode (pseudo stop).  
Note: Pseudo stop mode allows for faster STOP recovery and reduces the mechanical stress and aging of the  
resonator in case of frequent STOP conditions at the expense of a slightly increased power consumption.  
3
PLL Stops in Wait Mode Bit  
PLLWAI  
Write: Anytime  
If PLLWAI is set, the MC9S12XDP512 will clear the PLLSEL bit before entering wait mode. The PLLON bit  
remains set during wait mode, but the PLL is powered down. Upon exiting wait mode, the PLLSEL bit has to be  
set manually if PLL clock is required.  
While the PLLWAI bit is set, the AUTO bit is set to 1 in order to allow the PLL to automatically lock on the selected  
target frequency after exiting wait mode.  
0 PLL keeps running in wait mode.  
1 PLL stops in wait mode.  
1
RTI Stops in Wait Mode Bit  
RTIWAI  
Write: Anytime  
0 RTI keeps running in wait mode.  
1 RTI stops and initializes the RTI dividers whenever the part goes into wait mode.  
0
COP Stops in Wait Mode Bit  
COPWAI  
Normal modes: Write once  
Special modes: Write anytime  
0 COP keeps running in wait mode.  
1 COP stops and initializes the COP counter whenever the part goes into wait mode.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
281  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
5.3.2.7  
CRG PLL Control Register (PLLCTL)  
This register controls the PLL functionality.  
Module Base +0x_06  
7
6
5
4
3
2
1
0
R
W
CME  
PLLON  
AUTO  
ACQ  
FSTWKP  
PRE  
PCE  
SCME  
Reset  
1
1
1
1
0
0
0
1
Figure 5-10. CRG PLL Control Register (PLLCTL)  
Read: Anytime  
Write: Refer to each bit for individual write conditions  
Table 5-5. PLLCTL Field Descriptions  
Field  
Description  
7
Clock Monitor Enable Bit — CME enables the clock monitor. Write anytime except when SCM = 1.  
CME  
0 Clock monitor is disabled.  
1 Clock monitor is enabled. Slow or stopped clocks will cause a clock monitor reset sequence or self clock  
mode.  
Note: Operating with CME = 0 will not detect any loss of clock. In case of poor clock quality, this could cause  
unpredictable operation of the MCU!  
Note: In stop mode (PSTP = 0) the clock monitor is disabled independently of the CME bit setting and any loss  
of external clock will not be detected. Also after wake-up from stop mode (PSTP = 0) with fast wake-up  
enabled (FSTWKP = 1) the clock monitor is disabled independently of the CME bit setting and any loss  
of external clock will not be detected.  
6
Phase Lock Loop On Bit — PLLON turns on the PLL circuitry. In self clock mode, the PLL is turned on, but the  
PLLON bit reads the last latched value. Write anytime except when PLLSEL = 1.  
0 PLL is turned off.  
PLLON  
1 PLL is turned on. If AUTO bit is set, the PLL will lock automatically.  
5
Automatic Bandwidth Control Bit — AUTO selects either the high bandwidth (acquisition) mode or the low  
bandwidth (tracking) mode depending on how close to the desired frequency the VCO is running. Write anytime  
except when PLLWAI = 1, because PLLWAI sets the AUTO bit to 1.  
AUTO  
0 Automatic mode control is disabled and the PLL is under software control, using ACQ bit.  
1 Automatic mode control is enabled and ACQ bit has no effect.  
4
Acquisition Bit  
ACQ  
Write anytime. If AUTO=1 this bit has no effect.  
0 Low bandwidth filter is selected.  
1 High bandwidth filter is selected.  
3
Fast Wake-up from Full Stop Bit — FSTWKP enables fast wake-up from full stop mode. Write anytime. If  
self-clock mode is disabled (SCME = 0) this bit has no effect.  
FSTWKP  
0 Fast wake-up from full stop mode is disabled.  
When waking up from full stop mode the system will immediately resume operation in self-clock mode (see  
Section 5.4.1.4, “Clock Quality Checker”). The SCMIF flag will not be set. The system will remain in self-clock  
mode with oscillator and clock monitor disabled until FSTWKP bit is cleared. The clearing of FSTWKP will  
start the oscillator, the clock monitor and the clock quality check. If the clock quality check is successful, the  
CRG will switch all system clocks to OSCCLK. The SCMIF flag will be set. See application examples in  
Figure 5-23 and Figure 5-24.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
282  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
Table 5-5. PLLCTL Field Descriptions (continued)  
Field  
Description  
2
PRE  
RTI Enable during Pseudo Stop Bit — PRE enables the RTI during pseudo stop mode. Write anytime.  
0 RTI stops running during pseudo stop mode.  
1 RTI continues running during pseudo stop mode.  
Note: If the PRE bit is cleared the RTI dividers will go static while pseudo stop mode is active. The RTI dividers  
will not initialize like in wait mode with RTIWAI bit set.  
1
PCE  
COP Enable during Pseudo Stop Bit — PCE enables the COP during pseudo stop mode. Write anytime.  
0 COP stops running during pseudo stop mode  
1 COP continues running during pseudo stop mode  
Note: If the PCE bit is cleared, the COP dividers will go static while pseudo stop mode is active. The COP  
dividers will not initialize like in wait mode with COPWAI bit set.  
0
Self Clock Mode Enable Bit  
SCME  
Normal modes: Write once  
Special modes: Write anytime  
SCME can not be cleared while operating in self clock mode (SCM = 1).  
0 Detection of crystal clock failure causes clock monitor reset (see Section 5.5.2, “Clock Monitor Reset”).  
1 Detection of crystal clock failure forces the MCU in self clock mode (see Section 5.4.2.2, “Self Clock Mode”).  
5.3.2.8  
CRG RTI Control Register (RTICTL)  
This register selects the timeout period for the real time interrupt.  
Module Base +0x_07  
7
6
5
4
3
2
1
0
R
W
RTDEC  
RTR6  
RTR5  
RTR4  
RTR3  
RTR2  
RTR1  
RTR0  
Reset  
0
0
0
0
0
0
0
0
Figure 5-11. CRG RTI Control Register (RTICTL)  
Read: Anytime  
Write: Anytime  
NOTE  
A write to this register initializes the RTI counter.  
Table 5-6. RTICTL Field Descriptions  
Description  
Field  
7
Decimal or Binary Divider Select Bit — RTDEC selects decimal or binary based prescaler values.  
0 Binary based divider value. See Table 5-7  
RTDEC  
1 Decimal based divider value. See Table 5-8  
6–4  
Real Time Interrupt Prescale Rate Select Bits — These bits select the prescale rate for the RTI. See Table 5-7  
RTR[6:4]  
and Table 5-8.  
3–0  
RTR[3:0]  
Real Time Interrupt Modulus Counter Select Bits — These bits select the modulus counter target value to  
provide additional granularity.Table 5-7 and Table 5-8 show all possible divide values selectable by the RTICTL  
register. The source clock for the RTI is OSCCLK.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
283  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
Table 5-7. RTI Frequency Divide Rates for RTDEC = 0  
RTR[6:4] =  
RTR[3:0]  
000  
(OFF)  
001  
010  
011  
100  
101  
110  
111  
10  
11  
12  
13  
14  
15  
16  
(2  
)
(2  
)
(2  
)
(2  
)
(2  
)
(2  
)
(2  
)
10  
11  
12  
13  
14  
15  
16  
0000 (÷1)  
0001 (÷2)  
0010 (÷3)  
0011 (÷4)  
0100 (÷5)  
0101 (÷6)  
0110 (÷7)  
0111 (÷8)  
1000 (÷9)  
1001 (÷10)  
1010 (÷11)  
1011 (÷12)  
1100 (÷13)  
1101 (÷14)  
1110 (÷15)  
1111 (÷16)  
OFF*  
OFF  
OFF  
OFF  
OFF  
OFF  
OFF  
OFF  
OFF  
OFF  
OFF  
OFF  
OFF  
OFF  
OFF  
OFF  
2
2
2
2
2
2
2
10  
10  
10  
10  
10  
10  
10  
10  
11  
11  
11  
11  
11  
11  
11  
11  
12  
12  
12  
12  
12  
12  
12  
12  
13  
13  
13  
13  
13  
13  
13  
13  
14  
14  
14  
14  
14  
14  
14  
14  
15  
15  
15  
15  
15  
15  
15  
15  
16  
16  
16  
16  
16  
16  
16  
16  
2x2  
3x2  
4x2  
5x2  
6x2  
7x2  
8x2  
9x2  
2x2  
3x2  
4x2  
5x2  
6x2  
7x2  
8x2  
9x2  
2x2  
3x2  
4x2  
5x2  
6x2  
7x2  
8x2  
9x2  
2x2  
3x2  
4x2  
5x2  
6x2  
7x2  
8x2  
9x2  
2x2  
3x2  
4x2  
5x2  
6x2  
7x2  
8x2  
9x2  
2x2  
3x2  
4x2  
5x2  
6x2  
7x2  
8x2  
9x2  
2x2  
3x2  
4x2  
5x2  
6x2  
7x2  
8x2  
9x2  
10  
10  
10  
10  
10  
10  
10  
11  
11  
11  
11  
11  
11  
11  
12  
12  
12  
12  
12  
12  
12  
13  
13  
13  
13  
13  
13  
13  
14  
14  
14  
14  
14  
14  
14  
15  
15  
15  
15  
15  
15  
15  
16  
16  
16  
16  
16  
16  
16  
10x2  
11x2  
12x2  
13x2  
14x2  
15x2  
16x2  
10x2  
11x2  
12x2  
13x2  
14x2  
15x2  
16x2  
10x2  
11x2  
12x2  
13x2  
14x2  
15x2  
16x2  
10x2  
11x2  
12x2  
13x2  
14x2  
15x2  
16x2  
10x2  
11x2  
12x2  
13x2  
14x2  
15x2  
16x2  
10x2  
11x2  
12x2  
13x2  
14x2  
15x2  
16x2  
10x2  
11x2  
12x2  
13x2  
14x2  
15x2  
16x2  
* Denotes the default value out of reset.This value should be used to disable the RTI to ensure future backwards compatibility.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
284  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
Table 5-8. RTI Frequency Divide Rates for RTDEC = 1  
RTR[6:4] =  
100  
RTR[3:0]  
000  
(1x10 )  
001  
(2x10 )  
010  
(5x10 )  
011  
(10x10 )  
101  
(50x10 )  
110  
(100x10 )  
111  
(200x10 )  
3
3
3
3
3
3
3
3
(20x10 )  
3
3
3
3
3
3
3
3
0000 (÷1)  
0001 (÷2)  
0010 (÷3)  
0011 (÷4)  
0100 (÷5)  
0101 (÷6)  
0110 (÷7)  
0111 (÷8)  
1000 (÷9)  
1001 (÷10)  
1010 (÷11)  
1011 (÷12)  
1100 (÷13)  
1101 (÷14)  
1110 (÷15)  
1111 (÷16)  
1x10  
2x10  
5x10  
10x10  
20x10  
50x10  
100x10  
200x10  
3
3
3
3
3
3
3
3
2x10  
4x10  
10x10  
20x10  
40x10  
100x10  
200x10  
400x10  
3
3
3
3
3
3
3
3
3x10  
6x10  
15x10  
30x10  
60x10  
150x10  
300x10  
600x10  
3
3
3
3
3
3
3
3
4x10  
8x10  
20x10  
40x10  
80x10  
200x10  
400x10  
800x10  
3
3
3
3
3
3
3
6
5x10  
10x10  
25x10  
50x10  
100x10  
250x10  
500x10  
1x10  
3
3
3
3
3
3
3
6
6x10  
12x10  
30x10  
60x10  
120x10  
300x10  
600x10  
1.2x10  
3
3
3
3
3
3
3
6
7x10  
14x10  
35x10  
70x10  
140x10  
350x10  
700x10  
1.4x10  
3
3
3
3
3
3
3
6
8x10  
16x10  
40x10  
80x10  
160x10  
400x10  
800x10  
1.6x10  
3
3
3
3
3
3
3
6
9x10  
18x10  
45x10  
90x10  
180x10  
450x10  
900x10  
1.8x10  
3
3
3
3
3
3
6
6
10 x10  
20x10  
50x10  
100x10  
200x10  
500x10  
1x10  
2x10  
3
3
3
3
3
3
6
6
11 x10  
22x10  
55x10  
110x10  
220x10  
550x10  
1.1x10  
2.2x10  
3
3
3
3
3
3
6
6
12x10  
24x10  
60x10  
120x10  
240x10  
600x10  
1.2x10  
2.4x10  
3
3
3
3
3
3
6
6
13x10  
26x10  
65x10  
130x10  
260x10  
650x10  
1.3x10  
2.6x10  
3
3
3
3
3
3
6
6
14x10  
28x10  
70x10  
140x10  
280x10  
700x10  
1.4x10  
2.8x10  
3
3
3
3
3
3
6
6
15x10  
30x10  
75x10  
150x10  
300x10  
750x10  
1.5x10  
3x10  
3
3
3
3
3
3
6
6
16x10  
32x10  
80x10  
160x10  
320x10  
800x10  
1.6x10  
3.2x10  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
285  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
5.3.2.9  
CRG COP Control Register (COPCTL)  
This register controls the COP (computer operating properly) watchdog.  
Module Base +0x_08  
7
6
5
4
3
2
1
0
R
0
0
0
WCOP  
RSBCK  
CR2  
CR1  
CR0  
W
WRTMASK  
0
1
Reset  
0
0
0
1. Refer to Device User Guide (Section: CRG) for reset values of WCOP, CR2, CR1, and CR0.  
= Unimplemented or Reserved  
Figure 5-12. CRG COP Control Register (COPCTL)  
Read: Anytime  
Write:  
1. RSBCK: Anytime in special modes; write to “1” but not to “0” in all other modes  
2. WCOP, CR2, CR1, CR0:  
— Anytime in special modes  
— Write once in all other modes  
Writing CR[2:0] to “000” has no effect, but counts for the “write once” condition.  
Writing WCOP to “0” has no effect, but counts for the “write once” condition.  
The COP time-out period is restarted if one these two conditions is true:  
1. Writing a nonzero value to CR[2:0] (anytime in special modes, once in all other modes) with  
WRTMASK = 0.  
or  
2. Changing RSBCK bit from “0” to “1”.  
Table 5-9. COPCTL Field Descriptions  
Field  
Description  
7
Window COP Mode Bit — When set, a write to the ARMCOP register must occur in the last 25% of the selected  
period. A write during the first 75% of the selected period will reset the part. As long as all writes occur during  
this window, 0x_55 can be written as often as desired. Once 0x_AA is written after the 0x_55, the time-out logic  
restarts and the user must wait until the next window before writing to ARMCOP. Table 5-10 shows the duration  
of this window for the seven available COP rates.  
WCOP  
0 Normal COP operation  
1 Window COP operation  
6
COP and RTI Stop in Active BDM Mode Bit  
RSBCK  
0 Allows the COP and RTI to keep running in active BDM mode.  
1 Stops the COP and RTI counters whenever the part is in active BDM mode.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
286  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
Table 5-9. COPCTL Field Descriptions (continued)  
Field  
Description  
5
Write Mask for WCOP and CR[2:0] Bit — This write-only bit serves as a mask for the WCOP and CR[2:0] bits  
WRTMASK while writing the COPCTL register. It is intended for BDM writing the RSBCK without touching the contents of  
WCOP and CR[2:0].  
0 Write of WCOP and CR[2:0] has an effect with this write of COPCTL  
1 Write of WCOP and CR[2:0] has no effect with this write of COPCTL. (Does not count for “write once”.)  
2–0  
CR[1:0]  
COP Watchdog Timer Rate Select — These bits select the COP time-out rate (see Table 5-10). The COP  
time-out period is OSCCLK period divided by CR[2:0] value. Writing a nonzero value to CR[2:0] enables the  
COP counter and starts the time-out period. A COP counter time-out causes a system reset. This can be  
avoided by periodically (before time-out) reinitializing the COP counter via the ARMCOP register.  
While all of the following three conditions are true the CR[2:0], WCOP bits are ignored and the COP operates  
24  
at highest time-out period (2  
cycles) in normal COP mode (Window COP mode disabled):  
1) COP is enabled (CR[2:0] is not 000)  
2) BDM mode active  
3) RSBCK = 0  
4) Operation in emulation or special modes  
1
Table 5-10. COP Watchdog Rates  
OSCCLK  
Cycles to Time-out  
CR2  
CR1  
CR0  
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
COP disabled  
14  
2
16  
2
18  
2
20  
2
22  
2
23  
2
24  
2
1
OSCCLK cycles are referenced from the previous COP time-out reset  
(writing 0x_55/0x_AA to the ARMCOP register)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
287  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
5.3.2.10 Reserved Register (FORBYP)  
NOTE  
This reserved register is designed for factory test purposes only, and is not  
intended for general user access. Writing to this register when in special  
modes can alter the CRG’s functionality.  
Module Base +0x_09  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
0
0
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 5-13. Reserved Register (FORBYP)  
Read: Always read 0x_00 except in special modes  
Write: Only in special modes  
5.3.2.11 Reserved Register (CTCTL)  
NOTE  
This reserved register is designed for factory test purposes only, and is not  
intended for general user access. Writing to this register when in special test  
modes can alter the CRG’s functionality.  
Module Base +0x_0A  
7
6
5
4
3
2
1
0
R
W
1
0
0
0
0
0
0
0
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 5-14. Reserved Register (CTCTL)  
Read: always read 0x_80 except in special modes  
Write: only in special modes  
MC9S12XDP512 Data Sheet, Rev. 2.11  
288  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
5.3.2.12 CRG COP Timer Arm/Reset Register (ARMCOP)  
This register is used to restart the COP time-out period.  
Module Base +0x_0B  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
0
0
Bit 7  
0
Bit 6  
0
Bit 5  
0
Bit 4  
0
Bit 3  
0
Bit 2  
0
Bit 1  
0
Bit 0  
0
Reset  
Figure 5-15. ARMCOP Register Diagram  
Read: Always reads 0x_00  
Write: Anytime  
When the COP is disabled (CR[2:0] = “000”) writing to this register has no effect.  
When the COP is enabled by setting CR[2:0] nonzero, the following applies:  
Writing any value other than 0x_55 or 0x_AA causes a COP reset. To restart the COP time-out  
period you must write 0x_55 followed by a write of 0x_AA. Other instructions may be executed  
between these writes but the sequence (0x_55, 0x_AA) must be completed prior to COP end of  
time-out period to avoid a COP reset. Sequences of 0x_55 writes or sequences of 0x_AA writes  
are allowed. When the WCOP bit is set, 0x_55 and 0x_AA writes must be done in the last 25% of  
the selected time-out period; writing any value in the first 75% of the selected period will cause a  
COP reset.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
289  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
5.4  
Functional Description  
5.4.1  
Functional Blocks  
5.4.1.1  
Phase Locked Loop (PLL)  
The PLL is used to run the MCU from a different time base than the incoming OSCCLK. For increased  
flexibility, OSCCLK can be divided in a range of 1 to 16 to generate the reference frequency. This offers  
a finer multiplication granularity. The PLL can multiply this reference clock by a multiple of 2, 4, 6,...  
126,128 based on the SYNR register.  
[SYNR + 1]  
PLLCLK = 2 × OSCCLK ×  
-----------------------------------  
[REFDV + 1]  
CAUTION  
Although it is possible to set the two dividers to command a very high clock  
frequency, do not exceed the specified bus frequency limit for the MCU.  
If (PLLSEL = 1), Bus Clock = PLLCLK / 2  
The PLL is a frequency generator that operates in either acquisition mode or tracking mode, depending on  
the difference between the output frequency and the target frequency. The PLL can change between  
acquisition and tracking modes either automatically or manually.  
The VCO has a minimum operating frequency, which corresponds to the self clock mode frequency f  
.
SCM  
REFERENCE  
LOCK  
LOCK  
DETECTOR  
REFDV <5:0>  
FEEDBACK  
EXTAL  
XTAL  
REDUCED  
CONSUMPTION  
OSCILLATOR  
OSCCLK  
REFERENCE  
PROGRAMMABLE  
DIVIDER  
V
/V  
DDPLL SSPLL  
UP  
PDET  
PHASE  
DETECTOR  
CPUMP  
VCO  
DOWN  
CRYSTAL  
MONITOR  
V
DDPLL  
LOOP  
PROGRAMMABLE  
DIVIDER  
LOOP  
FILTER  
XFC  
PIN  
supplied by:  
SYN <5:0>  
V
/V  
DDPLL SSPLL  
PLLCLK  
V
/V  
DD SS  
Figure 5-16. PLL Functional Diagram  
MC9S12XDP512 Data Sheet, Rev. 2.11  
290  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
5.4.1.1.1  
PLL Operation  
The oscillator output clock signal (OSCCLK) is fed through the reference programmable divider and is  
divided in a range of 1 to 64 (REFDV + 1) to output the REFERENCE clock. The VCO output clock,  
(PLLCLK) is fed back through the programmable loop divider and is divided in a range of 2 to 128 in  
increments of [2 x (SYNR + 1)] to output the FEEDBACK clock. Figure 5-16.  
The phase detector then compares the FEEDBACK clock, with the REFERENCE clock. Correction pulses  
are generated based on the phase difference between the two signals. The loop filter then slightly alters the  
DC voltage on the external filter capacitor connected to XFC pin, based on the width and direction of the  
correction pulse. The filter can make fast or slow corrections depending on its mode, as described in the  
next subsection. The values of the external filter network and the reference frequency determine the speed  
of the corrections and the stability of the PLL.  
The minimum VCO frequency is reached with the XFC pin forced to V  
frequency.  
. This is the self clock mode  
DDPLL  
5.4.1.1.2  
Acquisition and Tracking Modes  
The lock detector compares the frequencies of the FEEDBACK clock, and the REFERENCE clock.  
Therefore, the speed of the lock detector is directly proportional to the final reference frequency. The  
circuit determines the mode of the PLL and the lock condition based on this comparison.  
The PLL filter can be manually or automatically configured into one of two possible operating modes:  
Acquisition mode  
In acquisition mode, the filter can make large frequency corrections to the VCO. This mode is used  
at PLL start-up or when the PLL has suffered a severe noise hit and the VCO frequency is far off  
the desired frequency. When in acquisition mode, the TRACK status bit is cleared in the CRGFLG  
register.  
Tracking mode  
In tracking mode, the filter makes only small corrections to the frequency of the VCO. PLL jitter  
is much lower in tracking mode, but the response to noise is also slower. The PLL enters tracking  
mode when the VCO frequency is nearly correct and the TRACK bit is set in the CRGFLG register.  
The PLL can change the bandwidth or operational mode of the loop filter manually or automatically.  
In automatic bandwidth control mode (AUTO = 1), the lock detector automatically switches between  
acquisition and tracking modes. Automatic bandwidth control mode also is used to determine when the  
PLL clock (PLLCLK) is safe to use as the source for the system and core clocks. If PLL LOCK interrupt  
requests are enabled, the software can wait for an interrupt request and then check the LOCK bit. If  
interrupt requests are disabled, software can poll the LOCK bit continuously (during PLL start-up, usually)  
or at periodic intervals. In either case, only when the LOCK bit is set, is the PLLCLK clock safe to use as  
the source for the system and core clocks. If the PLL is selected as the source for the system and core  
clocks and the LOCK bit is clear, the PLL has suffered a severe noise hit and the software must take  
appropriate action, depending on the application.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
291  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
The following conditions apply when the PLL is in automatic bandwidth control mode (AUTO = 1):  
The TRACK bit is a read-only indicator of the mode of the filter.  
The TRACK bit is set when the VCO frequency is within a certain tolerance, , and is clear when  
trk  
the VCO frequency is out of a certain tolerance, .  
unt  
The LOCK bit is a read-only indicator of the locked state of the PLL.  
The LOCK bit is set when the VCO frequency is within a certain tolerance, ∆  
, and is cleared  
Lock  
when the VCO frequency is out of a certain tolerance, .  
unl  
Interrupt requests can occur if enabled (LOCKIE = 1) when the lock condition changes, toggling  
the LOCK bit.  
The PLL can also operate in manual mode (AUTO = 0). Manual mode is used by systems that do not  
require an indicator of the lock condition for proper operation. Such systems typically operate well below  
the maximum system frequency (f ) and require fast start-up. The following conditions apply when in  
sys  
manual mode:  
ACQ is a writable control bit that controls the mode of the filter. Before turning on the PLL in  
manual mode, the ACQ bit should be asserted to configure the filter in acquisition mode.  
After turning on the PLL by setting the PLLON bit software must wait a given time (t ) before  
acq  
entering tracking mode (ACQ = 0).  
After entering tracking mode software must wait a given time (t ) before selecting the PLLCLK  
al  
as the source for system and core clocks (PLLSEL = 1).  
5.4.1.2  
System Clocks Generator  
PLLSEL or SCM  
STOP  
PHASE  
LOCK  
LOOP  
PLLCLK  
1
0
SYSCLK  
CORE CLOCK  
BUS CLOCK  
÷2  
CLOCK PHASE  
GENERATOR  
SCM  
WAIT(RTIWAI),  
STOP(PSTP,PRE),  
RTI ENABLE  
EXTAL  
XTAL  
1
RTI  
OSCCLK  
OSCILLATOR  
0
WAIT(COPWAI),  
STOP(PSTP,PCE),  
COP ENABLE  
COP  
CLOCK  
MONITOR  
STOP  
GATING  
CONDITION  
OSCILLATOR  
CLOCK  
= CLOCK GATE  
Figure 5-17. System Clocks Generator  
MC9S12XDP512 Data Sheet, Rev. 2.11  
292  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
The clock generator creates the clocks used in the MCU (see Figure 5-17). The gating condition placed on  
top of the individual clock gates indicates the dependencies of different modes (STOP, WAIT) and the  
setting of the respective configuration bits.  
The peripheral modules use the bus clock. Some peripheral modules also use the oscillator clock. The  
memory blocks use the bus clock. If the MCU enters self clock mode (see Section 5.4.2.2, “Self Clock  
Mode”) oscillator clock source is switched to PLLCLK running at its minimum frequency f  
. The bus  
SCM  
clock is used to generate the clock visible at the ECLK pin. The core clock signal is the clock for the CPU.  
The core clock is twice the bus clock as shown in Figure 5-18. But note that a CPU cycle corresponds to  
one bus clock.  
PLL clock mode is selected with PLLSEL bit in the CLKSEL registerr. When selected, the PLL output  
clock drives SYSCLK for the main system including the CPU and peripherals. The PLL cannot be turned  
off by clearing the PLLON bit, if the PLL clock is selected. When PLLSEL is changed, it takes a maximum  
of 4 OSCCLK plus 4 PLLCLK cycles to make the transition. During the transition, all clocks freeze and  
CPU activity ceases.  
CORE CLOCK  
BUS CLOCK / ECLK  
Figure 5-18. Core Clock and Bus Clock Relationship  
5.4.1.3  
Clock Monitor (CM)  
If no OSCCLK edges are detected within a certain time, the clock monitor within the oscillator block  
generates a clock monitor fail event. The MC9S12XDP512 then asserts self clock mode or generates a  
system reset depending on the state of SCME bit. If the clock monitor is disabled or the presence of clocks  
is detected no failure is indicated by the oscillator block.The clock monitor function is enabled/disabled  
by the CME control bit.  
5.4.1.4  
Clock Quality Checker  
The clock monitor performs a coarse check on the incoming clock signal. The clock quality checker  
provides a more accurate check in addition to the clock monitor.  
A clock quality check is triggered by any of the following events:  
Power on reset (POR)  
Low voltage reset (LVR)  
Wake-up from full stop mode (exit full stop)  
Clock monitor fail indication (CM fail)  
1
A time window of 50,000 VCO clock cycles is called check window.  
1. VCO clock cycles are generated by the PLL when running at minimum frequency f  
.
SCM  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
293  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
A number greater equal than 4096 rising OSCCLK edges within a check window is called osc ok. Note that  
osc ok immediately terminates the current check window. See Figure 5-19 as an example.  
check window  
3
1
2
49999  
50000  
VCO  
Clock  
1
2
3
4
5
4096  
OSCCLK  
4095  
osc ok  
The sequence for clock quality check is shown in Figure 5-20.  
CM fail  
Clock OK  
no  
exit full stop  
POR  
yes  
SCME = 1 &  
FSTWKP = 1  
?
FSTWKP = 0  
?
num = 0  
Enter SCM  
LVR  
yes  
no  
Clock Monitor Reset  
Enter SCM  
num = 0  
num = 50  
no  
yes  
SCM  
active?  
check window  
num=num–1  
yes  
yes  
no  
no  
no  
osc ok  
?
SCME=1  
?
num > 0  
?
yes  
yes  
SCM  
active?  
Switch to OSCCLK  
Exit SCM  
no  
Figure 5-20. Sequence for Clock Quality Check  
MC9S12XDP512 Data Sheet, Rev. 2.11  
294  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
NOTE  
Remember that in parallel to additional actions caused by self clock mode  
1
or clock monitor reset handling the clock quality checker continues to  
check the OSCCLK signal.  
The clock quality checker enables the PLL and the voltage regulator  
(VREG) anytime a clock check has to be performed. An ongoing clock  
quality check could also cause a running PLL (f  
during pseudo stop mode or wait mode.  
) and an active VREG  
SCM  
5.4.1.5  
Computer Operating Properly Watchdog (COP)  
The COP (free running watchdog timer) enables the user to check that a program is running and  
intended sequence; thus a system reset is initiated (see Section 5.4.1.5, “Computer Operating Properly  
Watchdog (COP)”). The COP runs with a gated OSCCLK. Three control bits in the COPCTL register  
allow selection of seven COP time-out periods.  
When COP is enabled, the program must write 0x_55 and 0x_AA (in this order) to the ARMCOP register  
during the selected time-out period. Once this is done, the COP time-out period is restarted. If the program  
fails to do this and the COP times out, the part will reset. Also, if any value other than 0x_55 or 0x_AA is  
written, the part is immediately reset.  
Windowed COP operation is enabled by setting WCOP in the COPCTL register. In this mode, writes to  
the ARMCOP register to clear the COP timer must occur in the last 25% of the selected time-out period.  
A premature write will immediately reset the part.  
If PCE bit is set, the COP will continue to run in pseudo stop mode.  
5.4.1.6  
Real Time Interrupt (RTI)  
The RTI can be used to generate a hardware interrupt at a fixed periodic rate. If enabled (by setting  
RTIE = 1), this interrupt will occur at the rate selected by the RTICTL register. The RTI runs with a gated  
OSCCLK. At the end of the RTI time-out period the RTIF flag is set to 1 and a new RTI time-out period  
starts immediately.  
A write to the RTICTL register restarts the RTI time-out period.  
If the PRE bit is set, the RTI will continue to run in pseudo stop mode.  
5.4.2  
Operating Modes  
Normal Mode  
5.4.2.1  
The MC9S12XDP512 block behaves as described within this specification in all normal modes.  
1. A Clock Monitor Reset will always set the SCME bit to logical 1.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
295  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
5.4.2.2  
Self Clock Mode  
The VCO has a minimum operating frequency, f  
. If the external clock frequency is not available due  
SCM  
to a failure or due to long crystal start-up time, the bus clock and the core clock are derived from the VCO  
running at minimum operating frequency; this mode of operation is called self clock mode. This requires  
CME = 1 and SCME = 1. If the MCU was clocked by the PLL clock prior to entering self clock mode, the  
PLLSEL bit will be cleared. If the external clock signal has stabilized again, the CRG will automatically  
select OSCCLK to be the system clock and return to normal mode. Section 5.4.1.4, “Clock Quality  
Checker” for more information on entering and leaving self clock mode.  
NOTE  
In order to detect a potential clock loss the CME bit should be always  
enabled (CME = 1)!  
If CME bit is disabled and the MCU is configured to run on PLL clock  
(PLLCLK), a loss of external clock (OSCCLK) will not be detected and will  
cause the system clock to drift towards the VCO’s minimum frequency  
f
. As soon as the external clock is available again the system clock  
SCM  
ramps up to its PLL target frequency. If the MCU is running on external  
clock any loss of clock will cause the system to go static.  
5.4.3  
Low Power Options  
This section summarizes the low power options available in the MC9S12XDP512.  
5.4.3.1  
Run Mode  
The RTI can be stopped by setting the associated rate select bits to 0.  
The COP can be stopped by setting the associated rate select bits to 0.  
5.4.3.2  
Wait Mode  
The WAI instruction puts the MCU in a low power consumption stand-by mode depending on setting of  
the individual bits in the CLKSEL register. All individual wait mode configuration bits can be superposed.  
This provides enhanced granularity in reducing the level of power consumption during wait mode.  
Table 5-11 lists the individual configuration bits and the parts of the MCU that are affected in wait mode  
.
Table 5-11. MCU Configuration During Wait Mode  
PLLWAI  
RTIWAI  
COPWAI  
PLL  
RTI  
Stopped  
Stopped  
COP  
Stopped  
After executing the WAI instruction the core requests the CRG to switch MCU into wait mode. The CRG  
then checks whether the PLLWAI bit is asserted (Figure 5-21). Depending on the configuration, the CRG  
switches the system and core clocks to OSCCLK by clearing the PLLSEL bit and disables the PLL. As  
soon as all clocks are switched off wait mode is active.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
296  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
CPU Req’s  
Wait Mode.  
No  
PLLWAI=1  
?
Yes  
Clear PLLSEL,  
Disable PLL  
No  
Enter  
Wait Mode  
No  
CME=1  
INT  
?
?
Wait Mode left  
due to external reset  
Yes  
Yes  
Exit Wait w.  
ext.RESET  
No  
CM Fail  
?
Yes  
No  
Exit Wait w.  
CMRESET  
SCME=1  
?
Yes  
Exit  
Wait Mode  
No  
SCMIE=1  
?
Yes  
Generate  
SCM Interrupt  
No  
SCM=1  
?
(Wakeup from Wait)  
Exit  
Wait Mode  
Yes  
Enter  
SCM  
Enter  
SCM  
Continue w.  
Normal OP  
Figure 5-21. Wait Mode Entry/Exit Sequence  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
297  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
There are four different scenarios for the CRG to restart the MCU from wait mode:  
External reset  
Clock monitor reset  
COP reset  
Any interrupt  
If the MCU gets an external reset or COP reset during wait mode active, the CRG asynchronously restores  
all configuration bits in the register space to its default settings and starts the reset generator. After  
completing the reset sequence processing begins by fetching the normal or COP reset vector. Wait mode  
is left and the MCU is in run mode again.  
If the clock monitor is enabled (CME = 1) the MCU is able to leave wait mode when loss of  
oscillator/external clock is detected by a clock monitor fail. If the SCME bit is not asserted the CRG  
generates a clock monitor fail reset (CMRESET). The CRG’s behavior for CMRESET is the same  
compared to external reset, but another reset vector is fetched after completion of the reset sequence. If the  
interrupt the CRG enters self-clock mode and starts the clock quality checker (Section 5.4.1.4, “Clock  
Quality Checker”). Then the MCU continues with normal operation.If the SCM interrupt is blocked by  
SCMIE = 0, the SCMIF flag will be asserted and clock quality checks will be performed but the MCU will  
not wake-up from wait-mode.  
If any other interrupt source (e.g., RTI) triggers exit from wait mode, the MCU immediately continues with  
normal operation. If the PLL has been powered-down during wait mode, the PLLSEL bit is cleared and  
the MCU runs on OSCCLK after leaving wait mode. The software must manually set the PLLSEL bit  
again, in order to switch system and core clocks to the PLLCLK.  
If wait mode is entered from self-clock mode the CRG will continue to check the clock quality until clock  
check is successful. The PLL and voltage regulator (VREG) will remain enabled.  
Table 5-12 summarizes the outcome of a clock loss while in wait mode.  
5.4.3.3  
System Stop Mode  
All clocks are stopped in STOP mode, dependent of the setting of the PCE, PRE, and PSTP bit. The  
oscillator is disabled in STOP mode unless the PSTP bit is set. All counters and dividers remain frozen but  
do not initialize. If the PRE or PCE bits are set, the RTI or COP continues to run in pseudo stop mode. In  
addition to disabling system and core clocks the CRG requests other functional units of the MCU (e.g.,  
voltage-regulator) to enter their individual power saving modes (if available). This is the main difference  
between pseudo stop mode and wait mode.  
If the PLLSEL bit is still set when entering stop mode, the CRG will switch the system and core clocks to  
OSCCLK by clearing the PLLSEL bit. Then the CRG disables the PLL, disables the core clock and finally  
disables the remaining system clocks. As soon as all clocks are switched off, stop mode is active.  
If pseudo stop mode (PSTP = 1) is entered from self-clock mode, the CRG will continue to check the clock  
quality until clock check is successful. The PLL and the voltage regulator (VREG) will remain enabled. If  
full stop mode (PSTP = 0) is entered from self-clock mode, an ongoing clock quality check will be  
stopped. A complete timeout window check will be started when stop mode is left again.  
Wake-up from stop mode also depends on the setting of the PSTP bit.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
298  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
Table 5-12. Outcome of Clock Loss in Wait Mode  
CME  
SCME  
SCMIE  
CRG Actions  
Clock failure -->  
0
X
X
No action, clock loss not detected.  
Clock failure -->  
1
0
X
CRG performs Clock Monitor Reset immediately  
Clock failure -->  
Scenario 1: OSCCLK recovers prior to exiting wait mode.  
– MCU remains in wait mode,  
– VREG enabled,  
– PLL enabled,  
– SCM activated,  
– Start clock quality check,  
– Set SCMIF interrupt flag.  
Some time later OSCCLK recovers.  
– CM no longer indicates a failure,  
– 4096 OSCCLK cycles later clock quality check indicates clock o.k.,  
– SCM deactivated,  
– PLL disabled depending on PLLWAI,  
– VREG remains enabled (never gets disabled in wait mode).  
– MCU remains in wait mode.  
Some time later either a wakeup interrupt occurs (no SCM interrupt)  
– Exit wait mode using OSCCLK as system clock (SYSCLK),  
– Continue normal operation.  
1
1
0
or an External Reset is applied.  
– Exit wait mode using OSCCLK as system clock,  
– Start reset sequence.  
Scenario 2: OSCCLK does not recover prior to exiting wait mode.  
– MCU remains in wait mode,  
– VREG enabled,  
– PLL enabled,  
– SCM activated,  
– Start clock quality check,  
– Set SCMIF interrupt flag,  
– Keep performing clock quality checks (could continue infinitely) while in wait mode.  
Some time later either a wakeup interrupt occurs (no SCM interrupt)  
– Exit wait mode in SCM using PLL clock (f  
) as system clock,  
SCM  
– Continue to perform additional clock quality checks until OSCCLK is o.k. again.  
or an External RESET is applied.  
– Exit wait mode in SCM using PLL clock (f  
– Start reset sequence,  
) as system clock,  
SCM  
– Continue to perform additional clock quality checks until OSCCLKis o.k.again.  
Clock failure -->  
– VREG enabled,  
– PLL enabled,  
– SCM activated,  
1
1
1
– Start clock quality check,  
– SCMIF set.  
SCMIF generates self clock mode wakeup interrupt.  
– Exit wait mode in SCM using PLL clock (f  
) as system clock,  
SCM  
– Continue to perform a additional clock quality checks until OSCCLK is o.k. again.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
299  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
Core req’s  
Stop Mode.  
Clear PLLSEL,  
Disable PLL  
Stop Mode left  
due to external reset  
Enter  
Stop Mode  
Exit Stop w.  
ext.RESET  
No  
No  
No  
Yes  
No  
No  
CME=1  
?
INT  
?
INT  
?
Yes  
PSTP=1  
?
Yes  
Yes  
Yes  
SCME=1 &  
FSTWKP=1  
?
CM fail  
?
No  
Yes  
No  
no  
Clock  
OK  
?
Exit Stop w.  
CMRESET  
SCME=1  
?
No  
Yes  
Exit Stop w.  
CMRESET  
SCME=1  
?
Yes  
Exit  
Stop Mode  
Yes  
No  
Exit  
Stop Mode  
SCMIE=1  
?
Yes  
Generate  
SCM Interrupt  
(Wakeup from Stop)  
No  
Exit  
Stop Mode  
Exit  
Stop Mode  
Exit  
Stop Mode  
SCM=1  
?
Yes  
Enter SCM  
SCMIF not  
set!  
Enter  
SCM  
Enter  
SCM  
Enter  
SCM  
Continue w.  
normal OP  
Figure 5-22. Stop Mode Entry/Exit Sequence  
MC9S12XDP512 Data Sheet, Rev. 2.11  
300  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
5.4.3.3.1  
Wake-up from Pseudo Stop Mode (PSTP=1)  
Wake-up from pseudo stop mode is the same as wake-up from wait mode. There are also four different  
scenarios for the CRG to restart the MCU from pseudo stop mode:  
External reset  
Clock monitor fail  
COP reset  
Wake-up interrupt  
If the MCU gets an external reset or COP reset during pseudo stop mode active, the CRG asynchronously  
restores all configuration bits in the register space to its default settings and starts the reset generator. After  
completing the reset sequence processing begins by fetching the normal or COP reset vector. pseudo stop  
mode is left and the MCU is in run mode again.  
If the clock monitor is enabled (CME = 1), the MCU is able to leave pseudo stop mode when loss of  
oscillator/external clock is detected by a clock monitor fail. If the SCME bit is not asserted the CRG  
generates a clock monitor fail reset (CMRESET). The CRG’s behavior for CMRESET is the same  
compared to external reset, but another reset vector is fetched after completion of the reset sequence. If the  
interrupt the CRG enters self-clock mode and starts the clock quality checker (Section 5.4.1.4, “Clock  
Quality Checker”). Then the MCU continues with normal operation. If the SCM interrupt is blocked by  
SCMIE=0, the SCMIF flag will be asserted but the CRG will not wake-up from pseudo stop mode.  
If any other interrupt source (e.g., RTI) triggers exit from pseudo stop mode, the MCU immediately  
continues with normal operation. Because the PLL has been powered-down during stop mode, the  
PLLSEL bit is cleared and the MCU runs on OSCCLK after leaving stop mode. The software must set the  
PLLSEL bit again, in order to switch system and core clocks to the PLLCLK.  
Table 5-13 summarizes the outcome of a clock loss while in pseudo stop mode.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
301  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
Table 5-13. Outcome of Clock Loss in Pseudo Stop Mode  
CME  
SCME  
SCMIE  
CRG Actions  
Clock failure -->  
0
X
X
No action, clock loss not detected.  
Clock failure -->  
1
0
X
CRG performs Clock Monitor Reset immediately  
Clock Monitor failure -->  
Scenario 1: OSCCLK recovers prior to exiting pseudo stop mode.  
– MCU remains in pseudo stop mode,  
– VREG enabled,  
– PLL enabled,  
– SCM activated,  
– Start clock quality check,  
– Set SCMIF interrupt flag.  
Some time later OSCCLK recovers.  
– CM no longer indicates a failure,  
– 4096 OSCCLK cycles later clock quality check indicates clock o.k.,  
– SCM deactivated,  
– PLL disabled,  
– VREG disabled.  
– MCU remains in pseudo stop mode.  
Some time later either a wakeup interrupt occurs (no SCM interrupt)  
– Exit pseudo stop mode using OSCCLK as system clock (SYSCLK),  
– Continue normal operation.  
1
1
0
or an External Reset is applied.  
– Exit pseudo stop mode using OSCCLK as system clock,  
– Start reset sequence.  
Scenario 2: OSCCLK does not recover prior to exiting pseudo stop mode.  
– MCU remains in pseudo stop mode,  
– VREG enabled,  
– PLL enabled,  
– SCM activated,  
– Start clock quality check,  
– Set SCMIF interrupt flag,  
– Keep performing clock quality checks (could continue infinitely) while  
in pseudo stop mode.  
Some time later either a wakeup interrupt occurs (no SCM interrupt)  
– Exit pseudo stop mode in SCM using PLL clock (f  
) as system clock  
SCM  
– Continue to perform additional clock quality checks until OSCCLK is o.k. again.  
or an External RESET is applied.  
– Exit pseudo stop mode in SCM using PLL clock (f  
– Start reset sequence,  
) as system clock  
SCM  
– Continue to perform additional clock quality checks until OSCCLK is o.k.again.  
Clock failure -->  
– VREG enabled,  
– PLL enabled,  
– SCM activated,  
1
1
1
– Start clock quality check,  
– SCMIF set.  
SCMIF generates self clock mode wakeup interrupt.  
– Exit pseudo stop mode in SCM using PLL clock (f  
) as system clock,  
SCM  
– Continue to perform a additional clock quality checks until OSCCLK is o.k. again.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
302  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
5.4.3.3.2  
Wake-up from Full Stop (PSTP = 0)  
The MCU requires an external interrupt or an external reset in order to wake-up from stop-mode.  
If the MCU gets an external reset during full stop mode active, the CRG asynchronously restores all  
configuration bits in the register space to its default settings and will perform a maximum of 50 clock  
check_windows (see Section 5.4.1.4, “Clock Quality Checker”). After completing the clock quality check  
the CRG starts the reset generator. After completing the reset sequence processing begins by fetching the  
normal reset vector. Full stop-mode is left and the MCU is in run mode again.  
If the MCU is woken-up by an interrupt and the fast wake-up feature is disabled (FSTWKP = 0 or  
SCME = 0), the CRG will also perform a maximum of 50 clock check_windows (see Section 5.4.1.4,  
“Clock Quality Checker”). If the clock quality check is successful, the CRG will release all system and  
core clocks and will continue with normal operation. If all clock checks within the Timeout-Window are  
failing, the CRG will switch to self-clock mode or generate a clock monitor reset (CMRESET) depending  
on the setting of the SCME bit.  
If the MCU is woken-up by an interrupt and the fast wake-up feature is enabled (FSTWKP = 1 and  
SCME = 1), the system will immediately resume operation in self-clock mode (see Section 5.4.1.4, “Clock  
Quality Checker”). The SCMIF flag will not be set. The system will remain in self-clock mode with  
oscillator disabled until FSTWKP bit is cleared. The clearing of FSTWKP will start the oscillator and the  
clock quality check. If the clock quality check is successful, the CRG will switch all system clocks to  
oscillator clock. The SCMIF flag will be set. See application examples in Figure 5-23 and Figure 5-24.  
Because the PLL has been powered-down during stop-mode the PLLSEL bit is cleared and the MCU runs  
on OSCCLK after leaving stop-mode. The software must manually set the PLLSEL bit again, in order to  
switch system and core clocks to the PLLCLK.  
NOTE  
In full stop mode or self-clock mode caused by the fast wake-up feature, the  
clock monitor and the oscillator are disabled.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
303  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
CPU resumes program execution immediately  
Instruction  
IRQ Service  
IRQ Service  
Interrupt  
IRQ Service  
STOP  
FSTWKP=1  
STOP  
STOP  
SCME=1  
Interrupt  
Interrupt  
Power Saving  
Oscillator Clock  
Oscillator Disabled  
PLL Clock  
Core Clock  
Self-Clock Mode  
Figure 5-23. Fast Wake-up from Full Stop Mode: Example 1  
.
CPU resumes program execution immediately  
Instruction  
Freq. Critical  
Instr. Possible  
Freq. Uncritical  
Instructions  
FSTWKP=1  
SCME=1  
IRQ Service  
FSTWKP=0  
STOP  
SCMIE=1  
IRQ Interrupt  
SCM Interrupt  
Clock Quality Check  
Oscillator Clock  
Oscillator Disabled  
OSC Startup  
PLL Clock  
Core Clock  
Self-Clock Mode  
Figure 5-24. Fast Wake-up from Full Stop Mode: Example 2  
MC9S12XDP512 Data Sheet, Rev. 2.11  
304  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
5.5  
Resets  
This section describes how to reset the MC9S12XDP512, and how the MC9S12XDP512 itself controls the  
reset of the MCU. It explains all special reset requirements. Since the reset generator for the MCU is part  
of the CRG, this section also describes all automatic actions that occur during or as a result of individual  
reset conditions. The reset values of registers and signals are provided in Section 5.3, “Memory Map and  
Register Definition”. All reset sources are listed in Table 5-14. Refer to MCU specification for related  
vector addresses and priorities.  
Table 5-14. Reset Summary  
Reset Source  
Local Enable  
Power on Reset  
Low Voltage Reset  
External Reset  
None  
None  
None  
Illegal Address Reset  
Clock Monitor Reset  
COP Watchdog Reset  
None  
PLLCTL (CME = 1, SCME = 0)  
COPCTL (CR[2:0] nonzero)  
5.5.1  
Description of Reset Operation  
The reset sequence is initiated by any of the following events:  
Low level is detected at the RESET pin (external reset)  
Power on is detected  
Low voltage is detected  
Illegal Address Reset is detected (see S12XMMC Block Guide for details)  
COP watchdog times out  
Clock monitor failure is detected and self-clock mode was disabled (SCME=0)  
Upon detection of any reset event, an internal circuit drives the RESET pin low for 128 SYSCLK cycles  
(see Figure 5-25). Since entry into reset is asynchronous, it does not require a running SYSCLK. However,  
the internal reset circuit of the MC9S12XDP512 cannot sequence out of current reset condition without a  
running SYSCLK. The number of 128 SYSCLK cycles might be increased by n = 3 to 6 additional  
SYSCLK cycles depending on the internal synchronization latency. After 128 + n SYSCLK cycles the  
RESET pin is released. The reset generator of the MC9S12XDP512 waits for additional 64 SYSCLK  
cycles and then samples the RESET pin to determine the originating source. Table 5-15 shows which  
vector will be fetched.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
305  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
Table 5-15. Reset Vector Selection  
Sampled RESET Pin  
(64 cycles  
Clock Monitor  
Reset Pending  
COP  
Reset Pending  
Vector Fetch  
after release)  
1
1
1
0
0
1
0
X
0
X
1
POR / LVR / Illegal Address Reset / External Reset  
Clock Monitor Reset  
COP Reset  
X
POR / LVR / Illegal Address Reset / External Reset  
with rise of RESET pin  
NOTE  
External circuitry connected to the RESET pin should not include a large  
capacitance that would interfere with the ability of this signal to rise to a  
valid logic 1 within 64 SYSCLK cycles after the low drive is released.  
The internal reset of the MCU remains asserted while the reset generator completes the 192 SYSCLK long  
reset sequence. The reset generator circuitry always makes sure the internal reset is deasserted  
synchronously after completion of the 192 SYSCLK cycles. In case the RESET pin is externally driven  
low for more than these 192 SYSCLK cycles (external reset), the internal reset remains asserted too.  
RESET  
) (  
) (  
CRG drives RESET pin low  
RESET pin  
released  
)
(
)
)
(
SYSCLK  
(
128 + n cycles  
64 cycles  
With n being  
Possibly  
Possibly  
RESET  
min 3 / max 6  
cycles depending  
on internal  
synchronization  
delay  
SYSCLK  
not  
running  
driven low  
externally  
Figure 5-25. RESET Timing  
MC9S12XDP512 Data Sheet, Rev. 2.11  
306  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
5.5.2  
Clock Monitor Reset  
The MC9S12XDP512 generates a clock monitor reset in case all of the following conditions are true:  
Clock monitor is enabled (CME = 1)  
Loss of clock is detected  
Self-clock mode is disabled (SCME = 0).  
The reset event asynchronously forces the configuration registers to their default settings (see Section 5.3,  
“Memory Map and Register Definition”). In detail the CME and the SCME are reset to logical ‘1’ (which  
doesn’t change the state of the CME bit, because it has already been set). As a consequence the CRG  
immediately enters self clock mode and starts its internal reset sequence. In parallel the clock quality check  
starts. As soon as clock quality check indicates a valid oscillator clock the CRG switches to OSCCLK and  
leaves self clock mode. Since the clock quality checker is running in parallel to the reset generator, the  
CRG may leave self clock mode while still completing the internal reset sequence. When the reset  
sequence is finished, the CRG checks the internally latched state of the clock monitor fail circuit. If a clock  
monitor fail is indicated, processing begins by fetching the clock monitor reset vector.  
5.5.3  
Computer Operating Properly Watchdog (COP) Reset  
When COP is enabled, the CRG expects sequential write of 0x_55 and 0x_AA (in this order) to the  
ARMCOP register during the selected time-out period. Once this is done, the COP time-out period restarts.  
If the program fails to do this the CRG will generate a reset. Also, if any value other than 0x_55 or 0x_AA  
is written, the CRG immediately generates a reset. In case windowed COP operation is enabled writes  
(0x_55 or 0x_AA) to the ARMCOP register must occur in the last 25% of the selected time-out period. A  
premature write the CRG will immediately generate a reset.  
As soon as the reset sequence is completed the reset generator checks the reset condition. If no clock  
monitor failure is indicated and the latched state of the COP timeout is true, processing begins by fetching  
the COP vector.  
5.5.4  
Power On Reset, Low Voltage Reset  
The on-chip voltage regulator detects when V to the MCU has reached a certain level and asserts power  
DD  
on reset or low voltage reset or both. As soon as a power on reset or low voltage reset is triggered the CRG  
performs a quality check on the incoming clock signal. As soon as clock quality check indicates a valid  
oscillator clock signal, the reset sequence starts using the oscillator clock. If after 50 check windows the  
clock quality check indicated a non-valid oscillator clock, the reset sequence starts using self-clock mode.  
Figure 5-26 and Figure 5-27 show the power-up sequence for cases when the RESET pin is tied to V  
and when the RESET pin is held low.  
DD  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
307  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
Clock Quality Check  
(no Self-Clock Mode)  
RESET  
) (  
Internal POR  
) (  
128 SYSCLK  
Internal RESET  
64 SYSCLK  
) (  
Figure 5-26. RESET Pin Tied to V (by a pull-up resistor)  
DD  
Clock Quality Check  
(no Self Clock Mode)  
RESET  
) (  
Internal POR  
) (  
128 SYSCLK  
64 SYSCLK  
Internal RESET  
) (  
Figure 5-27. RESET Pin Held Low Externally  
5.6  
Interrupts  
The interrupts/reset vectors requested by the CRG are listed in Table 5-16. Refer to MCU specification for  
related vector addresses and priorities.  
Table 5-16. CRG Interrupt Vectors  
CCR  
Mask  
Interrupt Source  
Local Enable  
Real time interrupt  
LOCK interrupt  
SCM interrupt  
I bit  
I bit  
I bit  
CRGINT (RTIE)  
CRGINT (LOCKIE)  
CRGINT (SCMIE)  
5.6.1  
Real Time Interrupt  
The MC9S12XDP512 generates a real time interrupt when the selected interrupt time period elapses. RTI  
interrupts are locally disabled by setting the RTIE bit to 0. The real time interrupt flag (RTIF) is set to1  
when a timeout occurs, and is cleared to 0 by writing a 1 to the RTIF bit.  
The RTI continues to run during pseudo stop mode if the PRE bit is set to 1. This feature can be used for  
periodic wakeup from pseudo stop if the RTI interrupt is enabled.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
308  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
5.6.2  
PLL Lock Interrupt  
The MC9S12XDP512 generates a PLL Lock interrupt when the LOCK condition of the PLL has changed,  
either from a locked state to an unlocked state or vice versa. Lock interrupts are locally disabled by setting  
the LOCKIE bit to 0. The PLL Lock interrupt flag (LOCKIF) is set to1 when the LOCK condition has  
changed, and is cleared to 0 by writing a 1 to the LOCKIF bit.  
5.6.3  
Self Clock Mode Interrupt  
The MC9S12XDP512 generates a self clock mode interrupt when the SCM condition of the system has  
changed, either entered or exited self clock mode. SCM conditions can only change if the self clock mode  
enable bit (SCME) is set to 1. SCM conditions are caused by a failing clock quality check after power on  
reset (POR) or low voltage reset (LVR) or recovery from full stop mode (PSTP = 0) or clock monitor  
failure. For details on the clock quality check refer to Section 5.4.1.4, “Clock Quality Checker”. If the  
clock monitor is enabled (CME = 1) a loss of external clock will also cause a SCM condition (SCME = 1).  
SCM interrupts are locally disabled by setting the SCMIE bit to 0. The SCM interrupt flag (SCMIF) is set  
to1 when the SCM condition has changed, and is cleared to 0 by writing a 1 to the SCMIF bit.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
309  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 5 Clocks and Reset Generator (S12CRGV6)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
310  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 6  
Pierce Oscillator (S12XOSCLCPV1)  
6.1  
Introduction  
The Pierce oscillator (XOSC) module provides a robust, low-noise and low-power clock source. The  
module will be operated from the V supply rail (2.5 V nominal) and require the minimum number  
DDPLL  
of external components. It is designed for optimal start-up margin with typical crystal oscillators.  
6.1.1  
Features  
The XOSC will contain circuitry to dynamically control current gain in the output amplitude. This ensures  
a signal with low harmonic distortion, low power and good noise immunity.  
High noise immunity due to input hysteresis  
Low RF emissions with peak-to-peak swing limited dynamically  
Transconductance (gm) sized for optimum start-up margin for typical oscillators  
Dynamic gain control eliminates the need for external current limiting resistor  
Integrated resistor eliminates the need for external bias resistor  
Low power consumption:  
— Operates from 2.5 V (nominal) supply  
— Amplitude control limits power  
Clock monitor  
6.1.2  
Modes of Operation  
Two modes of operation exist:  
1. Loop controlled Pierce oscillator  
2. External square wave mode featuring also full swing Pierce without internal feedback resistor  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
311  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 6 Pierce Oscillator (S12XOSCLCPV1)  
6.1.3  
Block Diagram  
Figure 6-1 shows a block diagram of the XOSC.  
Monitor_Failure  
OSCCLK  
Clock  
Monitor  
Peak  
Detector  
Gain Control  
V
= 2.5 V  
DDPLL  
Rf  
XTAL  
EXTAL  
Figure 6-1. XOSC Block Diagram  
6.2  
External Signal Description  
This section lists and describes the signals that connect off chip  
6.2.1  
V
and V  
— Operating and Ground Voltage Pins  
SSPLL  
DDPLL  
Theses pins provides operating voltage (V  
) and ground (V  
) for the XOSC circuitry. This  
DDPLL  
SSPLL  
allows the supply voltage to the XOSC to be independently bypassed.  
6.2.2  
EXTAL and XTAL — Input and Output Pins  
These pins provide the interface for either a crystal or a CMOS compatible clock to control the internal  
clock generator circuitry. EXTAL is the external clock input or the input to the crystal oscillator amplifier.  
XTAL is the output of the crystal oscillator amplifier. The MCU internal system clock is derived from the  
MC9S12XDP512 Data Sheet, Rev. 2.11  
312  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 6 Pierce Oscillator (S12XOSCLCPV1)  
EXTAL input frequency. In full stop mode (PSTP = 0), the EXTAL pin is pulled down by an internal  
resistor of typical 200 k.  
NOTE  
Freescale recommends an evaluation of the application board and chosen  
resonator or crystal by the resonator or crystal supplier.  
Loop controlled circuit is not suited for overtone resonators and crystals.  
EXTAL  
C1  
MCU  
Crystal or  
Ceramic Resonator  
XTAL  
C2  
V
SSPLL  
Figure 6-2. Loop Controlled Pierce Oscillator Connections (XCLKS = 0)  
NOTE  
Full swing Pierce circuit is not suited for overtone resonators and crystals  
without a careful component selection.  
EXTAL  
C1  
MCU  
RB  
Crystal or  
Ceramic Resonator  
RS*  
XTAL  
C2  
V
SSPLL  
* R can be zero (shorted) when use with higher frequency crystals.  
s
Refer to manufacturer’s data.  
Figure 6-3. Full Swing Pierce Oscillator Connections (XCLKS = 1)  
CMOS Compatible  
External Oscillator  
EXTAL  
MCU  
(V  
Level)  
DDPLL  
XTAL  
Not Connected  
Figure 6-4. External Clock Connections (XCLKS = 1)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
313  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 6 Pierce Oscillator (S12XOSCLCPV1)  
6.2.3  
XCLKS — Input Signal  
The XCLKS is an input signal which controls whether a crystal in combination with the internal loop  
controlled (low power) Pierce oscillator is used or whether full swing Pierce oscillator/external clock  
circuitry is used. Refer to the Device Overview chapter for polarity and sampling conditions of the XCLKS  
pin. Table 6-1 lists the state coding of the sampled XCLKS signal.  
.
Table 6-1. Clock Selection Based on XCLKS  
XCLKS  
Description  
0
1
Loop controlled Pierce oscillator selected  
Full swing Pierce oscillator/external clock selected  
6.3  
Memory Map and Register Definition  
The CRG contains the registers and associated bits for controlling and monitoring the oscillator module.  
6.4  
Functional Description  
The XOSC module has control circuitry to maintain the crystal oscillator circuit voltage level to an optimal  
level which is determined by the amount of hysteresis being used and the maximum oscillation range.  
The oscillator block has two external pins, EXTAL and XTAL. The oscillator input pin, EXTAL, is  
intended to be connected to either a crystal or an external clock source. The selection of loop controlled  
Pierce oscillator or full swing Pierce oscillator/external clock depends on the XCLKS signal which is  
sampled during reset. The XTAL pin is an output signal that provides crystal circuit feedback.  
A buffered EXTAL signal becomes the internal clock. To improve noise immunity, the oscillator is  
powered by the V  
and V  
power supply pins.  
DDPLL  
SSPLL  
6.4.1  
Gain Control  
A closed loop control system will be utilized whereby the amplifier is modulated to keep the output  
waveform sinusoidal and to limit the oscillation amplitude. The output peak to peak voltage will be kept  
above twice the maximum hysteresis level of the input buffer. Electrical specification details are provided  
in the Electrical Characteristics appendix.  
6.4.2  
Clock Monitor  
The clock monitor circuit is based on an internal RC time delay so that it can operate without any MCU  
clocks. If no OSCCLK edges are detected within this RC time delay, the clock monitor indicates failure  
which asserts self-clock mode or generates a system reset depending on the state of SCME bit. If the clock  
monitor is disabled or the presence of clocks is detected no failure is indicated.The clock monitor function  
is enabled/disabled by the CME control bit, described in the CRG block description chapter.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
314  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
Chapter 6 Pierce Oscillator (S12XOSCLCPV1)  
6.4.3  
Wait Mode Operation  
During wait mode, XOSC is not impacted.  
6.4.4  
Stop Mode Operation  
XOSC is placed in a static state when the part is in stop mode except when pseudo-stop mode is enabled.  
During pseudo-stop mode, XOSC is not impacted.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
315  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 6 Pierce Oscillator (S12XOSCLCPV1)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
316  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 7  
Analog-to-Digital Converter (ATD10B16CV4)  
7.1  
Introduction  
The ATD10B16C is a 16-channel, 10-bit, multiplexed input successive approximation analog-to-digital  
converter. Refer to the Electrical Specifications chapter for ATD accuracy.  
7.1.1  
Features  
8-/10-bit resolution  
7 µs, 10-bit single conversion time  
Sample buffer amplifier  
Programmable sample time  
Left/right justified, signed/unsigned result data  
External trigger control  
Conversion completion interrupt generation  
Analog input multiplexer for 16 analog input channels  
Analog/digital input pin multiplexing  
1 to 16 conversion sequence lengths  
Continuous conversion mode  
Multiple channel scans  
Configurable external trigger functionality on any AD channel or any of four additional trigger  
inputs. The four additional trigger inputs can be chip external or internal. Refer to device  
specification for availability and connectivity  
Configurable location for channel wrap around (when converting multiple channels in a sequence)  
7.1.2  
Modes of Operation  
There is software programmable selection between performing single or continuous conversion on a  
single channel or multiple channels.  
7.1.3  
Block Diagram  
Refer to Figure 7-1 for a block diagram of the ATD0B16C block.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
317  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
Bus Clock  
Clock  
ATD clock  
ATD10B16C  
Prescaler  
Trigger  
Mux  
ETRIG0  
ETRIG1  
ETRIG2  
Sequence Complete  
Interrupt  
Mode and  
Timing Control  
ETRIG3  
(see Device Overview  
chapter for availability  
and connectivity)  
ATDDIEN  
ATDCTL1  
Results  
ATD 0  
ATD 1  
ATD 2  
ATD 3  
ATD 4  
ATD 5  
ATD 6  
ATD 7  
ATD 8  
ATD 9  
ATD 10  
ATD 11  
ATD 12  
ATD 13  
ATD 14  
ATD 15  
PORTAD  
V
DDA  
V
SSA  
Successive  
V
RH  
Approximation  
Register (SAR)  
and DAC  
V
RL  
AN15  
AN14  
AN13  
AN12  
AN11  
AN10  
AN9  
+
Sample & Hold  
1
-
1
AN8  
Comparator  
Analog  
MUX  
AN7  
AN6  
AN5  
AN4  
AN3  
AN2  
AN1  
AN0  
Figure 7-1. ATD10B16C Block Diagram  
MC9S12XDP512 Data Sheet, Rev. 2.11  
318  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
7.2  
External Signal Description  
This section lists all inputs to the ATD10B16C block.  
7.2.1  
ANx (x = 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0) — Analog Input  
Channel x Pins  
This pin serves as the analog input channel x. It can also be configured as general-purpose digital input  
and/or external trigger for the ATD conversion.  
7.2.2  
ETRIG3, ETRIG2, ETRIG1, ETRIG0 — External Trigger Pins  
These inputs can be configured to serve as an external trigger for the ATD conversion.  
Refer to the Device Overview chapter for availability and connectivity of these inputs.  
7.2.3  
V , V — High Reference Voltage Pin, Low Reference Voltage Pin  
RL  
RH  
is the high reference voltage, V is the low reference voltage for ATD conversion.  
V
RH  
RL  
7.2.4  
V
, V  
— Analog Circuitry Power Supply Pins  
DDA  
These pins are the power supplies for the analog circuitry of the MC9S12XDP512 block.  
SSA  
7.3  
Memory Map and Register Definition  
This section provides a detailed description of all registers accessible in the ATD10B16C.  
Module Memory Map  
Table 7-1 gives an overview of all ATD10B16C registers  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
319  
Download from Www.Somanuals.com. All Manuals Search And Download.  
             
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
.
Table 7-1. MC9S12XDP512 Memory Map  
Address Offset  
Use  
Access  
0x0000  
0x0001  
ATD Control Register 0 (ATDCTL0)  
ATD Control Register 1 (ATDCTL1)  
ATD Control Register 2 (ATDCTL2)  
ATD Control Register 3 (ATDCTL3)  
ATD Control Register 4 (ATDCTL4)  
ATD Control Register 5 (ATDCTL5)  
ATD Status Register 0 (ATDSTAT0)  
Unimplemented  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
0x0002  
0x0003  
0x0004  
0x0005  
0x0006  
0x0007  
1
0x0008  
ATD Test Register 0 (ATDTEST0)  
R
0x0009  
ATD Test Register 1 (ATDTEST1)  
ATD Status Register 2 (ATDSTAT2)  
R/W  
R
0x000A  
0x000B  
ATD Status Register 1 (ATDSTAT1)  
R
0x000C  
ATD Input Enable Register 0 (ATDDIEN0)  
ATD Input Enable Register 1 (ATDDIEN1)  
Port Data Register 0 (PORTAD0)  
R/W  
R/W  
R
0x000D  
0x000E  
0x000F  
Port Data Register 1 (PORTAD1)  
R
0x0010, 0x0011  
0x0012, 0x0013  
0x0014, 0x0015  
0x0016, 0x0017  
0x0018, 0x0019  
0x001A, 0x001B  
0x001C, 0x001D  
0x001E, 0x001F  
0x0020, 0x0021  
0x0022, 0x0023  
0x0024, 0x0025  
0x0026, 0x0027  
0x0028, 0x0029  
0x002A, 0x002B  
0x002C, 0x002D  
0x002E, 0x002F  
ATD Result Register 0 (ATDDR0H, ATDDR0L)  
ATD Result Register 1 (ATDDR1H, ATDDR1L)  
ATD Result Register 2 (ATDDR2H, ATDDR2L)  
ATD Result Register 3 (ATDDR3H, ATDDR3L)  
ATD Result Register 4 (ATDDR4H, ATDDR4L)  
ATD Result Register 5 (ATDDR5H, ATDDR5L)  
ATD Result Register 6 (ATDDR6H, ATDDR6L)  
ATD Result Register 7 (ATDDR7H, ATDDR7L)  
ATD Result Register 8 (ATDDR8H, ATDDR8L)  
ATD Result Register 9 (ATDDR9H, ATDDR9L)  
ATD Result Register 10 (ATDDR10H, ATDDR10L)  
ATD Result Register 11 (ATDDR11H, ATDDR11L)  
ATD Result Register 12 (ATDDR12H, ATDDR12L)  
ATD Result Register 13 (ATDDR13H, ATDDR13L)  
ATD Result Register 14 (ATDDR14H, ATDDR14L)  
ATD Result Register 15 (ATDDR15H, ATDDR15L)  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
1
ATDTEST0 is intended for factory test purposes only.  
NOTE  
Register Address = Base Address + Address Offset, where the Base Address  
is defined at the MCU level and the Address Offset is defined at the module  
level.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
320  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
7.3.2  
Register Descriptions  
This section describes in address order all the ATD10B16C registers and their individual bits.  
Register  
Name  
Bit 7  
6
5
4
3
2
1
Bit 0  
0x0000  
ATDCTL0  
R
0
0
0
0
WRAP3  
WRAP2  
WRAP1  
WRAP0  
W
0x0001  
ATDCTL1  
R
0
0
0
ETRIGSEL  
ETRIGCH3 ETRIGCH2 ETRIGCH1 ETRIGCH0  
ASCIF  
W
0x0002  
ATDCTL2  
R
ADPU  
0
AFFC  
S8C  
AWAI  
S4C  
ETRIGLE  
S2C  
ETRIGP  
ETRIGE  
ASCIE  
FRZ1  
PRS1  
W
0x0003  
ATDCTL3  
R
S1C  
FIFO  
FRZ0  
PRS0  
W
0x0004  
ATDCTL4  
R
SRES8  
DJM  
SMP1  
SMP0  
SCAN  
ETORF  
PRS4  
PRS3  
PRS2  
W
0x0005  
ATDCTL5  
R
DSGN  
0
MULT  
CD  
CC  
CB  
CA  
W
0x0006  
ATDSTAT0  
R
CC3  
CC2  
CC1  
CC0  
SCF  
FIFOR  
W
0x0007  
R
Unimplemented  
W
0x0008  
R
Unimplemented  
ATDTEST0  
W
0x0009  
ATDTEST1  
R
Unimplemented  
CCF12  
SC  
W
0x000A  
ATDSTAT2  
R
CCF15  
CCF7  
CCF14  
CCF6  
CCF13  
CCF5  
CCF11  
CCF3  
CCF10  
CCF2  
CCF9  
CCF1  
CCF8  
W
0x000B  
ATDSTAT1  
R
CCF4  
CCF0  
IEN8  
W
0x000C  
ATDDIEN0  
R
IEN15  
IEN14  
IEN13  
IEN12  
IEN11  
IEN10  
IEN9  
W
= Unimplemented or Reserved  
u = Unaffected  
Figure 7-2. ATD Register Summary  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
321  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
Register  
Bit 7  
6
5
4
3
2
1
Bit 0  
IEN0  
Name  
0x000D  
ATDDIEN1  
R
IEN7  
IEN6  
IEN5  
IEN4  
IEN3  
IEN2  
IEN1  
PTAD9  
W
0x000E  
R
PTAD15  
PTAD14  
PTAD13  
PTAD12  
PTAD11  
PTAD10  
PTAD8  
PORTAD0  
W
0x000F  
R
PTAD7  
PTAD6  
PTAD5  
PTAD4  
PTAD3  
PTAD2  
PTAD1  
PTAD0  
PORTAD1  
W
R BIT 9 MSB  
BIT 7 MSB  
BIT 8  
BIT 6  
BIT 7  
BIT 5  
BIT 6  
BIT 4  
BIT 5  
BIT 3  
BIT 4  
BIT 2  
BIT 3  
BIT 1  
BIT 2  
BIT 0  
0x0010–0x002F  
ATDDRxH–  
ATDDRxL  
W
R
BIT 1  
u
BIT 0  
u
0
0
0
0
0
0
0
0
0
0
0
0
W
= Unimplemented or Reserved  
u = Unaffected  
Figure 7-2. ATD Register Summary (continued)  
7.3.2.1  
ATD Control Register 0 (ATDCTL0)  
Writes to this register will abort current conversion sequence but will not start a new sequence.  
Module Base + 0x0000  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
WRAP3  
WRAP2  
WRAP1  
WRAP0  
Reset  
0
0
0
0
1
1
1
1
= Unimplemented or Reserved  
Figure 7-3. ATD Control Register 0 (ATDCTL0)  
Read: Anytime  
Write: Anytime  
Table 7-2. ATDCTL0 Field Descriptions  
Description  
Field  
3:0  
Wrap Around Channel Select Bits — These bits determine the channel for wrap around when doing  
WRAP[3:0] multi-channel conversions. The coding is summarized in Table 7-3.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
322  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
Table 7-3. Multi-Channel Wrap Around Coding  
Multiple Channel Conversions  
(MULT = 1) Wrap Around to AN0  
after Converting  
WRAP3  
WRAP2  
WRAP1  
WRAP0  
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Reserved  
AN1  
AN2  
AN3  
AN4  
AN5  
AN6  
AN7  
AN8  
AN9  
AN10  
AN11  
AN12  
AN13  
AN14  
AN15  
7.3.2.2  
ATD Control Register 1 (ATDCTL1)  
Writes to this register will abort current conversion sequence but will not start a new sequence.  
Module Base + 0x0001  
7
6
5
4
3
2
1
0
R
W
0
0
0
ETRIGSEL  
ETRIGCH3 ETRIGCH2 ETRIGCH1 ETRIGCH0  
Reset  
0
0
0
0
1
1
1
1
= Unimplemented or Reserved  
Figure 7-4. ATD Control Register 1 (ATDCTL1)  
Read: Anytime  
Write: Anytime  
Table 7-4. ATDCTL1 Field Descriptions  
Description  
Field  
7
External Trigger Source Select — This bit selects the external trigger source to be either one of the AD  
ETRIGSEL channels or one of the ETRIG[3:0] inputs. See device specification for availability and connectivity of  
ETRIG[3:0] inputs. If ETRIG[3:0] input option is not available, writing a 1 to ETRISEL only sets the bit but has  
no effect, that means one of the AD channels (selected by ETRIGCH[3:0]) remains the source for external  
trigger. The coding is summarized in Table 7-5.  
3:0  
External Trigger Channel Select — These bits select one of the AD channels or one of the ETRIG[3:0] inputs  
ETRIGCH[3:0] as source for the external trigger. The coding is summarized in Table 7-5.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
323  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
Table 7-5. External Trigger Channel Select Coding  
ETRIGSEL ETRIGCH3 ETRIGCH2 ETRIGCH1 ETRIGCH0  
External Trigger Source  
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
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
X
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
X
X
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
X
X
AN0  
AN1  
AN2  
AN3  
AN4  
AN5  
AN6  
AN7  
AN8  
AN9  
AN10  
AN11  
AN12  
AN13  
AN14  
AN15  
1
ETRIG0  
1
ETRIG1  
1
ETRIG2  
1
ETRIG3  
Reserved  
Reserved  
1
Only if ETRIG[3:0] input option is available (see device specification), else ETRISEL is ignored, that means  
external trigger source remains on one of the AD channels selected by ETRIGCH[3:0]  
7.3.2.3  
ATD Control Register 2 (ATDCTL2)  
This register controls power down, interrupt and external trigger. Writes to this register will abort current  
conversion sequence but will not start a new sequence.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
324  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
Module Base + 0x0002  
7
6
5
4
3
2
1
0
R
ASCIF  
ADPU  
W
AFFC  
AWAI  
ETRIGLE  
ETRIGP  
ETRIGE  
ASCIE  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 7-5. ATD Control Register 2 (ATDCTL2)  
Read: Anytime  
Write: Anytime  
Table 7-6. ATDCTL2 Field Descriptions  
Description  
Field  
7
ATD Power Down — This bit provides on/off control over the ATD10B16C block allowing reduced MCU power  
ADPU  
consumption. Because analog electronic is turned off when powered down, the ATD requires a recovery time  
period after ADPU bit is enabled.  
0 Power down ATD  
1 Normal ATD functionality  
6
ATD Fast Flag Clear All  
AFFC  
0 ATD flag clearing operates normally (read the status register ATDSTAT1 before reading the result register  
to clear the associate CCF flag).  
1 Changes all ATD conversion complete flags to a fast clear sequence. Any access to a result register will  
cause the associate CCF flag to clear automatically.  
5
ATD Power Down in Wait Mode — When entering Wait Mode this bit provides on/off control over the  
ATD10B16C block allowing reduced MCU power. Because analog electronic is turned off when powered down,  
the ATD requires a recovery time period after exit from Wait mode.  
AWAI  
0 ATD continues to run in Wait mode  
1 Halt conversion and power down ATD during Wait mode  
After exiting Wait mode with an interrupt conversion will resume. But due to the recovery time the result of  
this conversion should be ignored.  
4
External Trigger Level/Edge Control — This bit controls the sensitivity of the external trigger signal. See  
ETRIGLE  
Table 7-7 for details.  
3
External Trigger Polarity — This bit controls the polarity of the external trigger signal. See Table 7-7 for  
ETRIGP  
details.  
2
External Trigger Mode Enable — This bit enables the external trigger on one of the AD channels or one of  
ETRIGE  
the ETRIG[3:0] inputs as described in Table 7-5. If external trigger source is one of the AD channels, the digital  
input buffer of this channel is enabled. The external trigger allows to synchronize the start of conversion with  
external events.  
0 Disable external trigger  
1 Enable external trigger  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
325  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
Table 7-6. ATDCTL2 Field Descriptions (continued)  
Field  
Description  
1
ATD Sequence Complete Interrupt Enable  
ASCIE  
0 ATD Sequence Complete interrupt requests are disabled.  
0
ATD Sequence Complete Interrupt Flag — If ASCIE = 1 the ASCIF flag equals the SCF flag (see  
Section 7.3.2.7, “ATD Status Register 0 (ATDSTAT0)”), else ASCIF reads zero. Writes have no effect.  
0 No ATD interrupt occurred  
ASCIF  
1 ATD sequence complete interrupt pending  
Table 7-7. External Trigger Configurations  
ETRIGLE  
ETRIGP  
External Trigger Sensitivity  
0
0
1
1
0
1
0
1
Falling Edge  
Ring Edge  
Low Level  
High Level  
MC9S12XDP512 Data Sheet, Rev. 2.11  
326  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
7.3.2.4  
ATD Control Register 3 (ATDCTL3)  
This register controls the conversion sequence length, FIFO for results registers and behavior in Freeze  
Mode. Writes to this register will abort current conversion sequence but will not start a new sequence.  
Module Base + 0x0003  
7
6
5
4
3
2
1
0
R
W
0
S8C  
S4C  
S2C  
S1C  
FIFO  
FRZ1  
FRZ0  
Reset  
0
0
1
0
0
0
0
0
= Unimplemented or Reserved  
Figure 7-6. ATD Control Register 3 (ATDCTL3)  
Read: Anytime  
Write: Anytime  
Table 7-8. ATDCTL3 Field Descriptions  
Description  
Field  
6
S8C  
Conversion Sequence Length — This bit controls the number of conversions per sequence. Table 7-9 shows  
all combinations. At reset, S4C is set to 1 (sequence length is 4). This is to maintain software continuity to HC12  
Family.  
5
S4C  
Conversion Sequence Length — This bit controls the number of conversions per sequence. Table 7-9 shows  
all combinations. At reset, S4C is set to 1 (sequence length is 4). This is to maintain software continuity to HC12  
Family.  
4
S2C  
Conversion Sequence Length — This bit controls the number of conversions per sequence. Table 7-9 shows  
all combinations. At reset, S4C is set to 1 (sequence length is 4). This is to maintain software continuity to HC12  
Family.  
3
S1C  
Conversion Sequence Length — This bit controls the number of conversions per sequence. Table 7-9 shows  
all combinations. At reset, S4C is set to 1 (sequence length is 4). This is to maintain software continuity to HC12  
Family.  
2
Result Register FIFO Mode —If this bit is zero (non-FIFO mode), the A/D conversion results map into the  
result registers based on the conversion sequence; the result of the first conversion appears in the first result  
register, the second result in the second result register, and so on.  
FIFO  
If this bit is one (FIFO mode) the conversion counter is not reset at the beginning or ending of a conversion  
sequence; conversion results are placed in consecutive result registers between sequences. The result  
register counter wraps around when it reaches the end of the result register file. The conversion counter value  
in ATDSTAT0 can be used to determine where in the result register file, the current conversion result will be  
placed.  
Finally, which result registers hold valid data can be tracked using the conversion complete flags. Fast flag clear  
mode may or may not be useful in a particular application to track valid data.  
0 Conversion results are placed in the corresponding result register up to the selected sequence length.  
1 Conversion results are placed in consecutive result registers (wrap around at end).  
1:0  
FRZ[1:0]  
Background Debug Freeze Enable When debugging an application, it is useful in many cases to have the  
ATD pause when a breakpoint (Freeze Mode) is encountered. These 2 bits determine how the ATD will respond  
to a breakpoint as shown in Table 7-10. Leakage onto the storage node and comparator reference capacitors  
may compromise the accuracy of an immediately frozen conversion depending on the length of the freeze  
period.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
327  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
Table 7-9. Conversion Sequence Length Coding  
Number of Conversions  
per Sequence  
S8C  
S4C  
S2C  
S1C  
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
16  
1
2
3
4
5
6
7
8
9
10  
11  
12  
13  
14  
15  
Table 7-10. ATD Behavior in Freeze Mode (Breakpoint)  
FRZ1  
FRZ0  
Behavior in Freeze Mode  
0
0
1
1
0
1
0
1
Continue conversion  
Reserved  
Finish current conversion, then freeze  
Freeze Immediately  
MC9S12XDP512 Data Sheet, Rev. 2.11  
328  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
7.3.2.5  
ATD Control Register 4 (ATDCTL4)  
This register selects the conversion clock frequency, the length of the second phase of the sample time and  
the resolution of the A/D conversion (i.e., 8-bits or 10-bits). Writes to this register will abort current  
conversion sequence but will not start a new sequence.  
Module Base + 0x0004  
7
6
5
4
3
2
1
0
R
W
SRES8  
SMP1  
SMP0  
PRS4  
PRS3  
PRS2  
PRS1  
PRS0  
Reset  
0
0
0
0
0
1
0
1
Figure 7-7. ATD Control Register 4 (ATDCTL4)  
Read: Anytime  
Write: Anytime  
Table 7-11. ATDCTL4 Field Descriptions  
Description  
Field  
7
A/D Resolution Select — This bit selects the resolution of A/D conversion results as either 8 or 10 bits. The  
SRES8  
A/D converter has an accuracy of 10 bits. However, if low resolution is required, the conversion can be speeded  
up by selecting 8-bit resolution.  
0 10 bit resolution  
1 8 bit resolution  
6:5  
SMP[1:0]  
Sample Time Select —These two bits select the length of the second phase of the sample time in units of ATD  
conversion clock cycles. Note that the ATD conversion clock period is itself a function of the prescaler value  
(bits PRS4-0). The sample time consists of two phases. The first phase is two ATD conversion clock cycles  
long and transfers the sample quickly (via the buffer amplifier) onto the A/D machine’s storage node. The  
second phase attaches the external analog signal directly to the storage node for final charging and high  
accuracy. Table 7-12 lists the lengths available for the second sample phase.  
4:0  
ATD Clock Prescaler — These 5 bits are the binary value prescaler value PRS. The ATD conversion clock  
PRS[4:0]  
frequency is calculated as follows:  
[BusClock]  
ATDclock =  
× 0.5  
--------------------------------  
[PRS + 1]  
Note: The maximum ATD conversion clock frequency is half the bus clock. The default (after reset) prescaler  
value is 5 which results in a default ATD conversion clock frequency that is bus clock divided by 12.  
Table 7-13 illustrates the divide-by operation and the appropriate range of the bus clock.  
Table 7-12. Sample Time Select  
SMP1  
SMP0  
Length of 2nd Phase of Sample Time  
0
0
1
1
0
1
0
1
2 A/D conversion clock periods  
4 A/D conversion clock periods  
8 A/D conversion clock periods  
16 A/D conversion clock periods  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
329  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
Table 7-13. Clock Prescaler Values  
Total Divisor  
Value  
1
2
Prescale Value  
Max. Bus Clock  
Min. Bus Clock  
00000  
00001  
00010  
00011  
00100  
00101  
00110  
00111  
01000  
01001  
01010  
01011  
01100  
01101  
01110  
01111  
10000  
10001  
10010  
10011  
10100  
10101  
10110  
10111  
11000  
11001  
11010  
11011  
11100  
11101  
11110  
11111  
Divide by 2  
Divide by 4  
4 MHz  
8 MHz  
1 MHz  
2 MHz  
Divide by 6  
12 MHz  
16 MHz  
20 MHz  
24 MHz  
28 MHz  
32 MHz  
36 MHz  
40 MHz  
44 MHz  
48 MHz  
52 MHz  
56 MHz  
60 MHz  
64 MHz  
68 MHz  
72 MHz  
76 MHz  
80 MHz  
84 MHz  
88 MHz  
92 MHz  
96 MHz  
100 MHz  
104 MHz  
108 MHz  
112 MHz  
116 MHz  
120 MHz  
124 MHz  
128 MHz  
3 MHz  
Divide by 8  
4 MHz  
Divide by 10  
Divide by 12  
Divide by 14  
Divide by 16  
Divide by 18  
Divide by 20  
Divide by 22  
Divide by 24  
Divide by 26  
Divide by 28  
Divide by 30  
Divide by 32  
Divide by 34  
Divide by 36  
Divide by 38  
Divide by 40  
Divide by 42  
Divide by 44  
Divide by 46  
Divide by 48  
Divide by 50  
Divide by 52  
Divide by 54  
Divide by 56  
Divide by 58  
Divide by 60  
Divide by 62  
Divide by 64  
5 MHz  
6 MHz  
7 MHz  
8 MHz  
9 MHz  
10 MHz  
11 MHz  
12 MHz  
13 MHz  
14 MHz  
15 MHz  
16 MHz  
17 MHz  
18 MHz  
19 MHz  
20 MHz  
21 MHz  
22 MHz  
23 MHz  
24 MHz  
25 MHz  
26 MHz  
27 MHz  
28 MHz  
29 MHz  
30 MHz  
31 MHz  
32 MHz  
1
2
Maximum ATD conversion clock frequency is 2 MHz. The maximum allowed bus clock frequency is  
shown in this column.  
Minimum ATD conversion clock frequency is 500 kHz. The minimum allowed bus clock frequency is  
shown in this column.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
330  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
7.3.2.6  
ATD Control Register 5 (ATDCTL5)  
This register selects the type of conversion sequence and the analog input channels sampled. Writes to this  
register will abort current conversion sequence and start a new conversion sequence. If external trigger is  
enabled (ETRIGE = 1) an initial write to ATDCTL5 is required to allow starting of a conversion sequence  
which will then occur on each trigger event. Start of conversion means the beginning of the sampling  
phase.  
Module Base + 0x0005  
7
6
5
4
3
2
1
0
R
W
DJM  
DSGN  
SCAN  
MULT  
CD  
CC  
CB  
CA  
Reset  
0
0
0
0
0
0
0
0
Figure 7-8. ATD Control Register 5 (ATDCTL5)  
Read: Anytime  
Write: Anytime  
Table 7-14. ATDCTL5 Field Descriptions  
Description  
Field  
7
DJM  
Result Register Data Justification — This bit controls justification of conversion data in the result registers.  
See Section 7.3.2.16, “ATD Conversion Result Registers (ATDDRx)” for details.  
0 Left justified data in the result registers.  
1 Right justified data in the result registers.  
6
conversion data representation in the result registers. Signed data is represented as 2’s complement. Signed  
data is not available in right justification. See <st-bold>7.3.2.16 ATD Conversion Result Registers (ATDDRx)  
for details.  
DSGN  
1 Signed data representation in the result registers.  
Table 7-15 summarizes the result data formats available and how they are set up using the control bits.  
Table 7-16 illustrates the difference between the signed and unsigned, left justified output codes for an input  
signal range between 0 and 5.12 Volts.  
5
Continuous Conversion Sequence Mode — This bit selects whether conversion sequences are performed  
continuously or only once. If external trigger is enabled (ETRIGE=1) setting this bit has no effect, that means  
each trigger event starts a single conversion sequence.  
SCAN  
0 Single conversion sequence  
1 Continuous conversion sequences (scan mode)  
4
Multi-Channel Sample Mode — When MULT is 0, the ATD sequence controller samples only from the  
specified analog input channel for an entire conversion sequence. The analog channel is selected by channel  
selection code (control bits CD/CC/CB/CA located in ATDCTL5). When MULT is 1, the ATD sequence controller  
samples across channels. The number of channels sampled is determined by the sequence length value (S8C,  
S4C, S2C, S1C). The first analog channel examined is determined by channel selection code (CC, CB, CA  
control bits); subsequent channels sampled in the sequence are determined by incrementing the channel  
selection code or wrapping around to AN0 (channel 0.  
MULT  
0 Sample only one channel  
1 Sample across several channels  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
331  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
Table 7-14. ATDCTL5 Field Descriptions (continued)  
Field  
Description  
3:0  
C[D:A}  
Analog Input Channel Select Code — These bits select the analog input channel(s) whose signals are  
sampled and converted to digital codes. Table 7-17 lists the coding used to select the various analog input  
channels.  
In the case of single channel conversions (MULT = 0), this selection code specified the channel to be examined.  
In the case of multiple channel conversions (MULT = 1), this selection code represents the first channel to be  
examined in the conversion sequence. Subsequent channels are determined by incrementing the channel  
selection code or wrapping around to AN0 (after converting the channel defined by the Wrap Around Channel  
Select Bits WRAP[3:0] in ATDCTL0). In case starting with a channel number higher than the one defined by  
WRAP[3:0] the first wrap around will be AN15 to AN0.  
Table 7-15. Available Result Data Formats.  
Result Data Formats  
Description and Bus Bit Mapping  
SRES8  
DJM  
DSGN  
1
1
1
0
0
0
0
0
1
0
0
1
0
1
X
0
1
X
8-bit / left justified / unsigned — bits 15:8  
8-bit / left justified / signed — bits 15:8  
8-bit / right justified / unsigned — bits 7:0  
10-bit / left justified / unsigned — bits 15:6  
10-bit / left justified / signed -— bits 15:6  
10-bit / right justified / unsigned — bits 9:0  
Table 7-16. Left Justified, Signed and Unsigned ATD Output Codes.  
Input Signal  
Signed  
8-Bit Codes  
Unsigned  
8-Bit Codes  
Signed  
10-Bit Codes  
Unsigned  
10-Bit Codes  
V
= 0 Volts  
RL  
V
= 5.12 Volts  
RH  
5.120 Volts  
5.100  
7F  
7F  
7E  
FF  
FF  
FE  
7FC0  
7F00  
7E00  
FFC0  
FF00  
FE00  
5.080  
2.580  
2.560  
2.540  
01  
00  
FF  
81  
80  
7F  
0100  
0000  
FF00  
8100  
8000  
7F00  
0.020  
0.000  
81  
80  
01  
00  
8100  
8000  
0100  
0000  
MC9S12XDP512 Data Sheet, Rev. 2.11  
332  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
Table 7-17. Analog Input Channel Select Coding  
Analog Input  
Channel  
CD  
CC  
CB  
CA  
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
AN0  
AN1  
AN2  
AN3  
AN4  
AN5  
AN6  
AN7  
AN8  
AN9  
AN10  
AN11  
AN12  
AN13  
AN14  
AN15  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
333  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
7.3.2.7  
ATD Status Register 0 (ATDSTAT0)  
This read-only register contains the Sequence Complete Flag, overrun flags for external trigger and FIFO  
mode, and the conversion counter.  
Module Base + 0x0006  
7
6
5
4
3
2
1
0
R
W
0
CC3  
CC2  
CC1  
CC0  
SCF  
ETORF  
FIFOR  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 7-9. ATD Status Register 0 (ATDSTAT0)  
Read: Anytime  
Write: Anytime (No effect on CC[3:0])  
Table 7-18. ATDSTAT0 Field Descriptions  
Field  
Description  
7
SCF  
Sequence Complete Flag — This flag is set upon completion of a conversion sequence. If conversion  
sequences are continuously performed (SCAN = 1), the flag is set after each one is completed. This flag is  
cleared when one of the following occurs:  
• Write “1” to SCF  
• Write to ATDCTL5 (a new conversion sequence is started)  
• If AFFC = 1 and read of a result register  
0 Conversion sequence not completed  
1 Conversion sequence has completed  
5
External Trigger Overrun Flag —While in edge trigger mode (ETRIGLE = 0), if additional active edges are  
detected while a conversion sequence is in process the overrun flag is set. This flag is cleared when one of the  
following occurs:  
ETORF  
• Write “1” to ETORF  
• Write to ATDCTL0,1,2,3,4 (a conversion sequence is aborted)  
• Write to ATDCTL5 (a new conversion sequence is started)  
0 No External trigger over run error has occurred  
1 External trigger over run error has occurred  
4
FIFO Over Run Flag — This bit indicates that a result register has been written to before its associated  
conversion complete flag (CCF) has been cleared. This flag is most useful when using the FIFO mode because  
the flag potentially indicates that result registers are out of sync with the input channels. However, it is also  
practical for non-FIFO modes, and indicates that a result register has been over written before it has been read  
(i.e., the old data has been lost). This flag is cleared when one of the following occurs:  
• Write “1” to FIFOR  
FIFOR  
• Start a new conversion sequence (write to ATDCTL5 or external trigger)  
0 No over run has occurred  
1 Overrun condition exists (result register has been written while associated CCFx flag remained set)  
3:0  
CC[3:0}  
Conversion Counter — These 4 read-only bits are the binary value of the conversion counter. The conversion  
counter points to the result register that will receive the result of the current conversion. For example, CC3 = 0,  
CC2 = 1, CC1 = 1, CC0 = 0 indicates that the result of the current conversion will be in ATD Result Register 6.  
If in non-FIFO mode (FIFO = 0) the conversion counter is initialized to zero at the begin and end of the  
conversion sequence. If in FIFO mode (FIFO = 1) the register counter is not initialized. The conversion  
counters wraps around when its maximum value is reached.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
334  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
7.3.2.8  
Reserved Register 0 (ATDTEST0)  
Module Base + 0x0008  
7
6
5
4
3
2
1
0
R
W
u
1
u
u
u
u
u
u
u
Reset  
0
0
0
0
0
0
0
= Unimplemented or Reserved  
u = Unaffected  
Figure 7-10. Reserved Register 0 (ATDTEST0)  
Read: Anytime, returns unpredictable values  
Write: Anytime in special modes, unimplemented in normal modes  
NOTE  
Writing to this register when in special modes can alter functionality.  
7.3.2.9  
ATD Test Register 1 (ATDTEST1)  
This register contains the SC bit used to enable special channel conversions.  
Module Base + 0x0009  
7
6
5
4
3
2
1
0
R
W
u
u
u
u
u
u
u
SC  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
u = Unaffected  
Figure 7-11. Reserved Register 1 (ATDTEST1)  
Read: Anytime, returns unpredictable values for bit 7 and bit 6  
Write: Anytime  
NOTE  
Writing to this register when in special modes can alter functionality.  
Table 7-19. ATDTEST1 Field Descriptions  
Description  
Field  
0
SC  
Special Channel Conversion Bit — If this bit is set, then special channel conversion can be selected using  
CC, CB, and CA of ATDCTL5. Table 7-20 lists the coding.  
0 Special channel conversions disabled  
1 Special channel conversions enabled  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
335  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
Table 7-20. Special Channel Select Coding  
SC  
CD  
CC  
CB  
CA  
Analog Input Channel  
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
X
X
0
0
1
1
X
X
0
1
0
1
X
Reserved  
V
RH  
V
RL  
(V +V ) / 2  
RH  
RL  
Reserved  
Reserved  
7.3.2.10 ATD Status Register 2 (ATDSTAT2)  
This read-only register contains the Conversion Complete Flags CCF15 to CCF8.  
Module Base + 0x000A  
7
6
5
4
3
2
1
0
R
W
CCF15  
CCF14  
CCF13  
CCF12  
CCF11  
CCF10  
CCF9  
CCF8  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 7-12. ATD Status Register 2 (ATDSTAT2)  
Read: Anytime  
Write: Anytime, no effect  
Table 7-21. ATDSTAT2 Field Descriptions  
Description  
Field  
7:0  
CCF[15:8]  
Conversion Complete Flag Bits — A conversion complete flag is set at the end of each conversion in a  
conversion sequence. The flags are associated with the conversion position in a sequence (and also the result  
register number). Therefore, CCF8 is set when the ninth conversion in a sequence is complete and the result  
is available in result register ATDDR8; CCF9 is set when the tenth conversion in a sequence is complete and  
the result is available in ATDDR9, and so forth. A flag CCFx (x = 15, 14, 13, 12, 11, 10, 9, 8) is cleared when  
one of the following occurs:  
• Write to ATDCTL5 (a new conversion sequence is started)  
• If AFFC = 0 and read of ATDSTAT2 followed by read of result register ATDDRx  
• If AFFC = 1 and read of result register ATDDRx  
In case of a concurrent set and clear on CCFx: The clearing by method A) will overwrite the set. The clearing  
by methods B) or C) will be overwritten by the set.  
0 Conversion number x not completed  
1 Conversion number x has completed, result ready in ATDDRx  
MC9S12XDP512 Data Sheet, Rev. 2.11  
336  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
7.3.2.11 ATD Status Register 1 (ATDSTAT1)  
This read-only register contains the Conversion Complete Flags CCF7 to CCF0  
Module Base + 0x000B  
7
6
5
4
3
2
1
0
R
W
CCF7  
CCF6  
CCF5  
CCF4  
CCF3  
CCF2  
CCF1  
CCF0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 7-13. ATD Status Register 1 (ATDSTAT1)  
Read: Anytime  
Write: Anytime, no effect  
Table 7-22. ATDSTAT1 Field Descriptions  
Description  
Field  
7:0  
CCF[7:0]  
Conversion Complete Flag Bits — A conversion complete flag is set at the end of each conversion in a  
conversion sequence. The flags are associated with the conversion position in a sequence (and also the result  
register number). Therefore, CCF0 is set when the first conversion in a sequence is complete and the result is  
available in result register ATDDR0; CCF1 is set when the second conversion in a sequence is complete and  
the result is available in ATDDR1, and so forth. A CCF flag is cleared when one of the following occurs:  
• Write to ATDCTL5 (a new conversion sequence is started)  
• If AFFC = 0 and read of ATDSTAT1 followed by read of result register ATDDRx  
• If AFFC = 1 and read of result register ATDDRx  
In case of a concurrent set and clear on CCFx: The clearing by method A) will overwrite the set. The clearing  
by methods B) or C) will be overwritten by the set.  
Conversion number x not completed  
Conversion number x has completed, result ready in ATDDRx  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
337  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
7.3.2.12 ATD Input Enable Register 0 (ATDDIEN0)  
Module Base + 0x000C  
7
6
5
4
3
2
1
0
R
W
IEN15  
IEN14  
IEN13  
IEN12  
IEN11  
IEN10  
IEN9  
IEN8  
Reset  
0
0
0
0
0
0
0
0
Figure 7-14. ATD Input Enable Register 0 (ATDDIEN0)  
Read: Anytime  
Write: anytime  
Table 7-23. ATDDIEN0 Field Descriptions  
Description  
Field  
7:0  
IEN[15:8]  
ATD Digital Input Enable on Channel Bits — This bit controls the digital input buffer from the analog input  
pin (ANx) to PTADx data register.  
0 Disable digital input buffer to PTADx  
1 Enable digital input buffer to PTADx.  
Note: Setting this bit will enable the corresponding digital input buffer continuously. If this bit is set while  
simultaneously using it as an analog port, there is potentially increased power consumption because the  
digital input buffer maybe in the linear region.  
7.3.2.13 ATD Input Enable Register 1 (ATDDIEN1)  
Module Base + 0x000D  
7
6
5
4
3
2
1
0
R
W
IEN7  
IEN6  
IEN5  
IEN4  
IEN3  
IEN2  
IEN1  
IEN0  
Reset  
0
0
0
0
0
0
0
0
Figure 7-15. ATD Input Enable Register 1 (ATDDIEN1)  
Read: Anytime  
Write: Anytime  
Table 7-24. ATDDIEN1 Field Descriptions  
Description  
Field  
7:0  
IEN[7:0]  
ATD Digital Input Enable on Channel Bits — This bit controls the digital input buffer from the analog input  
pin (ANx) to PTADx data register.  
0 Disable digital input buffer to PTADx  
1 Enable digital input buffer to PTADx.  
Note: Setting this bit will enable the corresponding digital input buffer continuously. If this bit is set while  
simultaneously using it as an analog port, there is potentially increased power consumption because the  
digital input buffer maybe in the linear region.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
338  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
7.3.2.14 Port Data Register 0 (PORTAD0)  
The data port associated with the ATD is input-only. The port pins are shared with the analog A/D inputs  
AN[15:8].  
Module Base + 0x000E  
7
6
5
4
3
2
1
0
R
W
PTAD15  
PTAD14  
PTAD13  
PTAD12  
PTAD11  
PTAD10  
PTAD9  
PTAD8  
Reset  
1
1
1
1
1
1
1
1
Pin  
Function  
AN15  
AN14  
AN13  
AN12  
AN11  
AN10  
AN9  
AN8  
= Unimplemented or Reserved  
Figure 7-16. Port Data Register 0 (PORTAD0)  
Read: Anytime  
Write: Anytime, no effect  
The A/D input channels may be used for general-purpose digital input.  
Table 7-25. PORTAD0 Field Descriptions  
Field  
Description  
A/D Channel x (ANx) Digital Input Bits— If the digital input buffer on the ANx pin is enabled (IENx = 1) or  
7:0  
PTAD[15:8] channel x is enabled as external trigger (ETRIGE = 1, ETRIGCH[3-0] = x, ETRIGSEL = 0) read returns the  
logic level on ANx pin (signal potentials not meeting V or V specifications will have an indeterminate value)).  
IL  
IH  
If the digital input buffers are disabled (IENx = 0) and channel x is not enabled as external trigger, read returns  
a “1”.  
Reset sets all PORTAD0 bits to “1”.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
339  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
7.3.2.15 Port Data Register 1 (PORTAD1)  
The data port associated with the ATD is input-only. The port pins are shared with the analog A/D inputs  
AN7-0.  
Module Base + 0x000F  
7
6
5
4
3
2
1
0
R
W
PTAD7  
PTAD6  
PTAD5  
PTAD4  
PTAD3  
PTAD2  
PTAD1  
PTAD0  
Reset  
1
1
1
1
1
1
1
1
Pin  
Function  
AN 7  
AN6  
AN5  
AN4  
AN3  
AN2  
AN1  
AN0  
= Unimplemented or Reserved  
Figure 7-17. Port Data Register 1 (PORTAD1)  
Read: Anytime  
Write: Anytime, no effect  
The A/D input channels may be used for general-purpose digital input.  
Table 7-26. PORTAD1 Field Descriptions  
Field  
Description  
7:0  
A/D Channel x (ANx) Digital Input Bits — If the digital input buffer on the ANx pin is enabled (IENx=1) or  
PTAD[7:8]  
channel x is enabled as external trigger (ETRIGE = 1, ETRIGCH[3-0] = x, ETRIGSEL = 0) read returns the  
logic level on ANx pin (signal potentials not meeting V or V specifications will have an indeterminate value)).  
IL  
IH  
If the digital input buffers are disabled (IENx = 0) and channel x is not enabled as external trigger, read returns  
a “1”.  
Reset sets all PORTAD1 bits to “1”.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
340  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
7.3.2.16 ATD Conversion Result Registers (ATDDRx)  
The A/D conversion results are stored in 16 read-only result registers. The result data is formatted in the  
result registers bases on two criteria. First there is left and right justification; this selection is made using  
the DJM control bit in ATDCTL5. Second there is signed and unsigned data; this selection is made using  
the DSGN control bit in ATDCTL5. Signed data is stored in 2’s complement format and only exists in left  
justified format. Signed data selected for right justified format is ignored.  
Read: Anytime  
Write: Anytime in special mode, unimplemented in normal modes  
7.3.2.16.1  
Left Justified Result Data  
Module Base + 0x0010 = ATDDR0H  
0x0012 = ATDDR1H  
0x0018 = ATDDR4H  
0x001A = ATDDR5H  
0x001C = ATDDR6H  
0x001E = ATDDR7H  
0x0020 = ATDDR8H  
0x0022 = ATDDR9H  
0x0024 = ATDDR10H  
0x0026 = ATDDR11H  
0x0028 = ATDDR12H  
0x002A = ATDDR13H  
0x002C = ATDDR14H  
0x002E = ATDDR15H  
0x0014 = ATDDR2H  
0x0016 = ATDDR3H  
7
6
5
4
3
2
1
0
R (10-BIT) BIT 9 MSB  
R (8-BIT) BIT 7 MSB  
BIT 8  
BIT 6  
BIT 7  
BIT 5  
BIT 6  
BIT 4  
BIT 5  
BIT 3  
BIT 4  
BIT 2  
BIT 3  
BIT 1  
BIT 2  
BIT 0  
W
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 7-18. Left Justified, ATD Conversion Result Register x, High Byte (ATDDRxH)  
Module Base + 0x0011 = ATDDR0L  
0x0013 = ATDDR1L  
0x0019 = ATDDR4L  
0x001B = ATDDR5L  
0x001D = ATDDR6L  
0x001F = ATDDR7L  
0x0021 = ATDDR8L  
0x0023 = ATDDR9L  
0x0025 = ATDDR10L  
0x0027 = ATDDR11L  
0x0029 = ATDDR12L  
0x002B = ATDDR13L  
0x002D = ATDDR14L  
0x002F = ATDDR15L  
0x0015 = ATDDR2L  
0x0017 = ATDDR3L  
7
6
5
4
3
2
1
0
R (10-BIT)  
R (8-BIT)  
BIT 1  
u
BIT 0  
u
0
0
0
0
0
0
0
0
0
0
0
0
W
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
u = Unaffected  
Figure 7-19. Left Justified, ATD Conversion Result Register x, Low Byte (ATDDRxL)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
341  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
7.3.2.16.2  
Right Justified Result Data  
Module Base + 0x0010 = ATDDR0H,  
0x0012 = ATDDR1H,  
0x0018 = ATDDR4H,  
0x001A = ATDDR5H,  
0x001C = ATDDR6H,  
0x001E = ATDDR7H  
0x0020 = ATDDR8H,  
0x0022 = ATDDR9H,  
0x0024 = ATDDR10H,  
0x0026 = ATDDR11H  
0x0028 = ATDDR12H,  
0x002A = ATDDR13H,  
0x002C = ATDDR14H,  
0x002E = ATDDR15H  
0x0014 = ATDDR2H,  
0x0016 = ATDDR3H  
7
6
5
4
3
2
1
0
R (10-BIT)  
R (8-BIT)  
0
0
0
0
0
0
0
0
0
0
0
0
BIT 9 MSB  
0
BIT 8  
0
W
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 7-20. Right Justified, ATD Conversion Result Register x, High Byte (ATDDRxH)  
Module Base + 0x0011 = ATDDR0L,  
0x0013 = ATDDR1L,  
0x0019 = ATDDR4L,  
0x001B = ATDDR5L,  
0x001D = ATDDR6L,  
0x001F = ATDDR7L  
0x0021 = ATDDR8L,  
0x0023 = ATDDR9L,  
0x0025 = ATDDR10L,  
0x0027 = ATDDR11L  
0x0029 = ATDDR12L,  
0x002B = ATDDR13L,  
0x002D = ATDDR14L,  
0x002F = ATDDR15L  
0x0015 = ATDDR2L,  
0x0017 = ATDDR3L  
7
6
5
4
3
2
1
0
R (10-BIT)  
R (8-BIT) BIT 7 MSB  
BIT 7  
BIT 6  
BIT 6  
BIT 5  
BIT 5  
BIT 4  
BIT 4  
BIT 3  
BIT 3  
BIT 2  
BIT 2  
BIT 1  
BIT 1  
BIT 0  
BIT 0  
W
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 7-21. Right Justified, ATD Conversion Result Register x, Low Byte (ATDDRxL)  
7.4  
Functional Description  
The ATD10B16C is structured in an analog and a digital sub-block.  
7.4.1  
Analog Sub-block  
The analog sub-block contains all analog electronics required to perform a single conversion. Separate  
power supplies V and V allow to isolate noise of other MCU circuitry from the analog sub-block.  
DDA  
SSA  
7.4.1.1  
Sample and Hold Machine  
The sample and hold (S/H) machine accepts analog signals from the external world and stores them as  
capacitor charge on a storage node.  
The sample process uses a two stage approach. During the first stage, the sample amplifier is used to  
quickly charge the storage node.The second stage connects the input directly to the storage node to  
complete the sample for high accuracy.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
342  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
When not sampling, the sample and hold machine disables its own clocks. The analog electronics continue  
drawing their quiescent current. The power down (ADPU) bit must be set to disable both the digital clocks  
and the analog power consumption.  
The input analog signals are unipolar and must fall within the potential range of V  
to VDDA.  
SSA  
7.4.1.2  
Analog Input Multiplexer  
The analog input multiplexer connects one of the 16 external analog input channels to the sample and hold  
machine.  
7.4.1.3  
Sample Buffer Amplifier  
The sample amplifier is used to buffer the input analog signal so that the storage node can be quickly  
charged to the sample potential.  
7.4.1.4  
Analog-to-Digital (A/D) Machine  
The A/D machine performs analog to digital conversions. The resolution is program selectable at either 8  
or 10 bits. The A/D machine uses a successive approximation architecture. It functions by comparing the  
stored analog sample potential with a series of digitally generated analog potentials. By following a binary  
search algorithm, the A/D machine locates the approximating potential that is nearest to the sampled  
potential.  
When not converting the A/D machine disables its own clocks. The analog electronics continue drawing  
quiescent current. The power down (ADPU) bit must be set to disable both the digital clocks and the analog  
power consumption.  
Only analog input signals within the potential range of V to V (A/D reference potentials) will result  
RL  
RH  
in a non-railed digital output codes.  
7.4.2  
Digital Sub-Block  
This subsection explains some of the digital features in more detail. See register descriptions for all details.  
7.4.2.1  
External Trigger Input  
The external trigger feature allows the user to synchronize ATD conversions to the external environment  
events rather than relying on software to signal the ATD module when ATD conversions are to take place.  
The external trigger signal (out of reset ATD channel 15, configurable in ATDCTL1) is programmable to  
be edge or level sensitive with polarity control. Table 7-27 gives a brief description of the different  
combinations of control bits and their effect on the external trigger function.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
343  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
Table 7-27. External Trigger Control Bits  
ETRIGLE ETRIGP ETRIGE SCAN  
Description  
X
X
0
0
1
1
X
X
0
1
0
1
0
0
1
1
1
1
0
1
Ignores external trigger. Performs one conversion sequence and stops.  
Ignores external trigger. Performs continuous conversion sequences.  
Falling edge triggered. Performs one conversion sequence per trigger.  
Rising edge triggered. Performs one conversion sequence per trigger.  
Trigger active low. Performs continuous conversions while trigger is active.  
Trigger active high. Performs continuous conversions while trigger is active.  
X
X
X
X
During a conversion, if additional active edges are detected the overrun error flag ETORF is set.  
In either level or edge triggered modes, the first conversion begins when the trigger is received. In both  
cases, the maximum latency time is one bus clock cycle plus any skew or delay introduced by the trigger  
circuitry.  
After ETRIGE is enabled, conversions cannot be started by a write to ATDCTL5, but rather must be  
triggered externally.  
If the level mode is active and the external trigger both de-asserts and re-asserts itself during a conversion  
sequence, this does not constitute an overrun. Therefore, the flag is not set. If the trigger remains asserted  
in level mode while a sequence is completing, another sequence will be triggered immediately.  
7.4.2.2  
General-Purpose Digital Input Port Operation  
The input channel pins can be multiplexed between analog and digital data. As analog inputs, they are  
multiplexed and sampled to supply signals to the A/D converter. As digital inputs, they supply external  
input data that can be accessed through the digital port registers (PORTAD0 & PORTAD1) (input-only).  
The analog/digital multiplex operation is performed in the input pads. The input pad is always connected  
to the analog inputs of the ATD10B16C. The input pad signal is buffered to the digital port registers. This  
buffer can be turned on or off with the ATDDIEN0 & ATDDIEN1 register. This is important so that the  
buffer does not draw excess current when analog potentials are presented at its input.  
7.4.3  
Operation in Low Power Modes  
The ATD10B16C can be configured for lower MCU power consumption in three different ways:  
Stop Mode  
Stop Mode: This halts A/D conversion. Exit from Stop mode will resume A/D conversion, But due  
to the recovery time the result of this conversion should be ignored.  
Entering stop mode causes all clocks to halt and thus the system is placed in a minimum power  
standby mode. This halts any conversion sequence in progress. During recovery from stop mode,  
there must be a minimum delay for the stop recovery time t before initiating a new ATD  
SR  
conversion sequence.  
Wait Mode  
Wait Mode with AWAI = 1: This halts A/D conversion. Exit from Wait mode will resume A/D  
conversion, but due to the recovery time the result of this conversion should be ignored.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
344  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
Entering wait mode, the ATD conversion either continues or halts for low power depending on the  
logical value of the AWAIT bit.  
Freeze Mode  
Writing ADPU = 0 (Note that all ATD registers remain accessible.): This aborts any A/D  
conversion in progress.  
In freeze mode, the ATD10B16C will behave according to the logical values of the FRZ1 and FRZ0  
bits. This is useful for debugging and emulation.  
NOTE  
The reset value for the ADPU bit is zero. Therefore, when this module is  
reset, it is reset into the power down state.  
7.5  
Resets  
At reset the ATD10B16C is in a power down state. The reset state of each individual bit is listed within  
Section 7.3, “Memory Map and Register Definition,which details the registers and their bit fields.  
7.6  
Interrupts  
The interrupt requested by the ATD10B16C is listed in Table 7-28. Refer to MCU specification for related  
vector address and priority.  
Table 7-28. ATD Interrupt Vectors  
Interrupt Source  
CCR Mask  
Local Enable  
Sequence Complete Interrupt  
I bit  
ASCIE in ATDCTL2  
See Section 7.3.2, “Register Descriptions,for further details.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
345  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 7 Analog-to-Digital Converter (ATD10B16CV4)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
346  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 8  
Analog-to-Digital Converter (ATD10B8CV3)  
8.1  
Introduction  
The ATD10B8C is an 8-channel, 10-bit, multiplexed input successive approximation analog-to-digital  
converter. Refer to device electrical specifications for ATD accuracy.  
8.1.1  
Features  
8/10-bit resolution  
7 µsec, 10-bit single conversion time  
Sample buffer amplifier  
Programmable sample time  
Left/right justified, signed/unsigned result data  
External trigger control  
Conversion completion interrupt generation  
Analog input multiplexer for 8 analog input channels  
Analog/digital input pin multiplexing  
1-to-8 conversion sequence lengths  
Continuous conversion mode  
Multiple channel scans  
Configurable external trigger functionality on any AD channel or any of four additional external  
trigger inputs. The four additional trigger inputs can be chip external or internal. Refer to the device  
overview chapter for availability and connectivity.  
Configurable location for channel wrap around (when converting multiple channels in a sequence).  
8.1.2  
Modes of Operation  
8.1.2.1  
Conversion Modes  
There is software programmable selection between performing single or continuous conversion on a single  
channel or multiple channels.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
347  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 8 Analog-to-Digital Converter (ATD10B8CV3)  
8.1.2.2  
MCU Operating Modes  
Stop mode  
Entering stop mode causes all clocks to halt and thus the system is placed in a minimum power  
standby mode. This aborts any conversion sequence in progress. During recovery from stop mode,  
there must be a minimum delay for the stop recovery time t before initiating a new ATD  
SR  
conversion sequence.  
Wait mode  
Entering wait mode the ATD conversion either continues or aborts for low power depending on the  
logical value of the AWAIT bit.  
Freeze mode  
In freeze mode the ATD will behave according to the logical values of the FRZ1 and FRZ0 bits.  
This is useful for debugging and emulation.  
8.1.3  
Block Diagram  
Figure 8-1 shows a block diagram of the ATD.  
8.2  
External Signal Description  
This section lists all inputs to the ATD block.  
8.2.1  
ANx (x = 7, 6, 5, 4, 3, 2, 1, 0) — Analog Input Pin  
This pin serves as the analog input channel x. It can also be configured as general purpose digital port pin  
and/or external trigger for the ATD conversion.  
8.2.2  
ETRIG3, ETRIG2, ETRIG1, and ETRIG0 — External Trigger Pins  
These inputs can be configured to serve as an external trigger for the ATD conversion.  
Refer to the device overview chapter for availability and connectivity of these inputs.  
8.2.3  
V
and V — High and Low Reference Voltage Pins  
RL  
RH  
is the high reference voltage and V is the low reference voltage for ATD conversion.  
V
RH  
RL  
8.2.4  
V
and V  
— Power Supply Pins  
DDA  
SSA  
These pins are the power supplies for the analog circuitry of the ATD block.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
348  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
Chapter 8 Analog-to-Digital Converter (ATD10B8CV3)  
Bus Clock  
ATD clock  
Clock  
Prescaler  
ATD10B8C  
Trigger  
Mux  
ETRIG0  
Sequence Complete  
Mode and  
Timing Control  
ETRIG1  
ETRIG2  
ETRIG3  
Interrupt  
(See Device Overview  
chapter for availability  
and connectivity)  
ATDDIEN  
ATDCTL1  
PORTAD  
Results  
ATD 0  
V
DDA  
V
SSA  
ATD 1  
ATD 2  
ATD 3  
ATD 4  
ATD 5  
ATD 6  
ATD 7  
Successive  
V
RH  
Approximation  
Register (SAR)  
and DAC  
V
RL  
AN7  
AN6  
AN5  
AN4  
AN3  
+
Sample & Hold  
1
1
Comparator  
Analog  
MUX  
AN2  
AN1  
AN0  
Figure 8-1. ATD Block Diagram  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
349  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 8 Analog-to-Digital Converter (ATD10B8CV3)  
8.3  
Memory Map and Register Definition  
This section provides a detailed description of all registers accessible in the ATD.  
Module Memory Map  
Figure 8-2 gives an overview of all ATD registers.  
NOTE  
Register Address = Base Address + Address Offset, where the Base Address  
is defined at the MCU level and the Address Offset is defined at the module  
level.  
8.3.2  
Register Descriptions  
This section describes in address order all the ATD registers and their individual bits.  
Register  
Name  
Bit 7  
6
5
4
3
2
1
Bit 0  
0x0000  
ATDCTL0  
R
0
0
0
0
0
WRAP2  
WRAP1  
WRAP0  
W
0x0001  
ATDCTL1  
R
0
0
0
0
ETRIGSEL  
ETRIGCH2 ETRIGCH1 ETRIGCH0  
ASCIF  
W
0x0002  
ATDCTL2  
R
ADPU  
0
AFFC  
S8C  
AWAI  
S4C  
ETRIGLE  
S2C  
ETRIGP  
S1C  
ETRIGE  
ASCIE  
FRZ1  
PRS1  
W
0x0003  
ATDCTL3  
R
FIFO  
FRZ0  
PRS0  
W
0x0004  
ATDCTL4  
R
SRES8  
DJM  
SMP1  
SMP0  
SCAN  
ETORF  
PRS4  
PRS3  
0
PRS2  
W
0x0005  
ATDCTL5  
R
DSGN  
0
MULT  
CC  
CB  
CA  
W
0x0006  
ATDSTAT0  
R
0
CC2  
CC1  
CC0  
SCF  
FIFOR  
W
0x0007  
Unimplemente  
d
R
W
0x0008  
ATDTEST0  
R
U
U
U
U
U
0
U
0
U
0
U
0
U
0
U
W
0x0009  
ATDTEST1  
R
SC  
W
= Unimplemented or Reserved  
Figure 8-2. ATD Register Summary (Sheet 1 of 5)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
350  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 8 Analog-to-Digital Converter (ATD10B8CV3)  
Register  
Name  
Bit 7  
6
5
4
3
2
1
Bit 0  
0x000A  
Unimplemente  
d
R
W
0x000B  
R
CCF7  
CCF6  
CCF5  
CCF4  
CCF3  
CCF2  
CCF1  
CCF0  
ATDSTAT1  
W
0x000C  
Unimplemente  
d
R
W
0x000D  
ATDDIEN  
R
IEN7  
IEN6  
IEN5  
IEN4  
IEN3  
IEN2  
IEN1  
IEN0  
W
0x000E  
Unimplemente  
d
R
W
0x000F  
R
PTAD7  
PTAD6  
PTAD5  
PTAD4  
PTAD3  
PTAD2  
PTAD1  
PTAD0  
PORTAD  
W
Note: The read portion of the left justified result data registers has been divided to show the bit position when reading 10-bit and  
8-bit conversion data. For more detailed information refer to Section 8.3.2.13, “ATD Conversion Result Registers  
(ATDDRx)”.  
0x0010  
ATDDR0H  
10-BIT  
8-BIT  
W
BIT 9 MSB  
BIT 7 MSB  
BIT 8  
BIT 6  
BIT 7  
BIT 5  
BIT 6  
BIT 4  
BIT 5  
BIT 3  
BIT 4  
BIT 2  
BIT 3  
BIT 1  
BIT 2  
BIT 0  
0x0011  
ATDDR0L  
10-BIT  
8-BIT  
W
BIT 1  
U
BIT 0  
U
0
0
0
0
0
0
0
0
0
0
0
0
0x0012  
ATDDR1H  
10-BIT  
8-BIT  
W
BIT 9 MSB  
BIT 7 MSB  
BIT 8  
BIT 6  
BIT 7  
BIT 5  
BIT 6  
BIT 4  
BIT 5  
BIT 3  
BIT 4  
BIT 2  
BIT 3  
BIT 1  
BIT 2  
BIT 0  
0x0013  
ATDDR1L  
10-BIT  
8-BIT  
W
BIT 1  
U
BIT 0  
U
0
0
0
0
0
0
0
0
0
0
0
0
0x0014  
ATDDR2H  
10-BIT  
8-BIT  
W
BIT 9 MSB  
BIT 7 MSB  
BIT 8  
BIT 6  
BIT 7  
BIT 5  
BIT 6  
BIT 4  
BIT 5  
BIT 3  
BIT 4  
BIT 2  
BIT 3  
BIT 1  
BIT 2  
BIT 0  
0x0015  
ATDDR2L  
10-BIT  
8-BIT  
W
BIT 1  
U
BIT 0  
U
0
0
0
0
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 8-2. ATD Register Summary (Sheet 2 of 5)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
351  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 8 Analog-to-Digital Converter (ATD10B8CV3)  
Register  
Bit 7  
6
5
4
3
2
1
Bit 0  
Name  
0x0016  
ATDDR3H  
10-BIT  
8-BIT  
W
BIT 9 MSB  
BIT 7 MSB  
BIT 8  
BIT 6  
BIT 7  
BIT 5  
BIT 6  
BIT 4  
BIT 5  
BIT 3  
BIT 4  
BIT 2  
BIT 3  
BIT 1  
BIT 2  
BIT 0  
0x0017  
ATDDR3L  
10-BIT  
8-BIT  
W
BIT 1  
U
BIT 0  
U
0
0
0
0
0
0
0
0
0
0
0
0
0x0018  
ATDDR4H  
10-BIT  
8-BIT  
W
BIT 9 MSB  
BIT 7 MSB  
BIT 8  
BIT 6  
BIT 7  
BIT 5  
BIT 6  
BIT 4  
BIT 5  
BIT 3  
BIT 4  
BIT 2  
BIT 3  
BIT 1  
BIT 2  
BIT 0  
0x0019  
ATDDR4L  
10-BIT  
8-BIT  
W
BIT 1  
U
BIT 0  
U
0
0
0
0
0
0
0
0
0
0
0
0
0x001A  
ATDD45H  
10-BIT  
8-BIT  
W
BIT 9 MSB  
BIT 7 MSB  
BIT 8  
BIT 6  
BIT 7  
BIT 5  
BIT 6  
BIT 4  
BIT 5  
BIT 3  
BIT 4  
BIT 2  
BIT 3  
BIT 1  
BIT 2  
BIT 0  
0x001B  
ATDD45L  
10-BIT  
8-BIT  
W
BIT 1  
U
BIT 0  
U
0
0
0
0
0
0
0
0
0
0
0
0
0x001C  
ATDD46H  
10-BIT  
8-BIT  
W
BIT 9 MSB  
BIT 7 MSB  
BIT 8  
BIT 6  
BIT 7  
BIT 5  
BIT 6  
BIT 4  
BIT 5  
BIT 3  
BIT 4  
BIT 2  
BIT 3  
BIT 1  
BIT 2  
BIT 0  
0x001D  
ATDDR6L  
10-BIT  
8-BIT  
W
BIT 1  
U
BIT 0  
U
0
0
0
0
0
0
0
0
0
0
0
0
0x001E  
ATDD47H  
10-BIT  
8-BIT  
W
BIT 9 MSB  
BIT 7 MSB  
BIT 8  
BIT 6  
BIT 7  
BIT 5  
BIT 6  
BIT 4  
BIT 5  
BIT 3  
BIT 4  
BIT 2  
BIT 3  
BIT 1  
BIT 2  
BIT 0  
0x001F  
ATDD47L  
10-BIT  
8-BIT  
W
BIT 1  
U
BIT 0  
U
0
0
0
0
0
0
0
0
0
0
0
0
Note: The read portion of the right justified result data registers has been divided to show the bit position when reading 10-bit  
and 8-bit conversion data. For more detailed information refer to Section 8.3.2.13, “ATD Conversion Result Registers  
(ATDDRx)”.  
0x0010  
ATDDR0H  
10-BIT  
8-BIT  
W
0
0
0
0
0
0
0
0
0
0
0
0
BIT 9 MSB  
0
BIT 8  
0
= Unimplemented or Reserved  
Figure 8-2. ATD Register Summary (Sheet 3 of 5)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
352  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 8 Analog-to-Digital Converter (ATD10B8CV3)  
Register  
Name  
Bit 7  
6
5
4
3
2
1
Bit 0  
0x0011  
ATDDR0L  
10-BIT  
8-BIT  
W
BIT 7  
BIT 7 MSB  
BIT 6  
BIT 6  
BIT 5  
BIT 5  
BIT 4  
BIT 4  
BIT 3  
BIT 3  
BIT 2  
BIT 2  
BIT 1  
BIT 1  
BIT 0  
BIT 0  
0x0012  
ATDDR1H  
10-BIT  
8-BIT  
W
0
0
0
0
0
0
0
0
0
0
0
0
BIT 9 MSB  
0
BIT 8  
0
0x0013  
ATDDR1L  
10-BIT  
8-BIT  
W
BIT 7  
BIT 7 MSB  
BIT 6  
BIT 6  
BIT 5  
BIT 5  
BIT 4  
BIT 4  
BIT 3  
BIT 3  
BIT 2  
BIT 2  
BIT 1  
BIT 1  
BIT 0  
BIT 0  
0x0014  
ATDDR2H  
10-BIT  
8-BIT  
W
0
0
0
0
0
0
0
0
0
0
0
0
BIT 9 MSB  
0
BIT 8  
0
0x0015  
ATDDR2L  
10-BIT  
8-BIT  
W
BIT 7  
BIT 7 MSB  
BIT 6  
BIT 6  
BIT 5  
BIT 5  
BIT 4  
BIT 4  
BIT 3  
BIT 3  
BIT 2  
BIT 2  
BIT 1  
BIT 1  
BIT 0  
BIT 0  
0x0016  
ATDDR3H  
10-BIT  
8-BIT  
W
0
0
0
0
0
0
0
0
0
0
0
0
BIT 9 MSB  
0
BIT 8  
0
0x0017  
ATDDR3L  
10-BIT  
8-BIT  
W
BIT 7  
BIT 7 MSB  
BIT 6  
BIT 6  
BIT 5  
BIT 5  
BIT 4  
BIT 4  
BIT 3  
BIT 3  
BIT 2  
BIT 2  
BIT 1  
BIT 1  
BIT 0  
BIT 0  
0x0018  
ATDDR4H  
10-BIT  
8-BIT  
W
0
0
0
0
0
0
0
0
0
0
0
0
BIT 9 MSB  
0
BIT 8  
0
0x0019  
ATDDR4L  
10-BIT  
8-BIT  
W
BIT 7  
BIT 7 MSB  
BIT 6  
BIT 6  
BIT 5  
BIT 5  
BIT 4  
BIT 4  
BIT 3  
BIT 3  
BIT 2  
BIT 2  
BIT 1  
BIT 1  
BIT 0  
BIT 0  
0x001A  
ATDD45H  
10-BIT  
8-BIT  
W
0
0
0
0
0
0
0
0
0
0
0
0
BIT 9 MSB  
0
BIT 8  
0
0x001B  
ATDD45L  
10-BIT  
8-BIT  
W
BIT 7  
BIT 7 MSB  
BIT 6  
BIT 6  
BIT 5  
BIT 5  
BIT 4  
BIT 4  
BIT 3  
BIT 3  
BIT 2  
BIT 2  
BIT 1  
BIT 1  
BIT 0  
BIT 0  
0x001C  
ATDD46H  
10-BIT  
8-BIT  
W
0
0
0
0
0
0
0
0
0
0
0
0
BIT 9 MSB  
0
BIT 8  
0
= Unimplemented or Reserved  
Figure 8-2. ATD Register Summary (Sheet 4 of 5)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
353  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 8 Analog-to-Digital Converter (ATD10B8CV3)  
Register  
Bit 7  
6
5
4
3
2
1
Bit 0  
Name  
0x001D  
ATDDR6L  
10-BIT  
8-BIT  
W
BIT 7  
BIT 7 MSB  
BIT 6  
BIT 6  
BIT 5  
BIT 5  
BIT 4  
BIT 4  
BIT 3  
BIT 3  
BIT 2  
BIT 2  
BIT 1  
BIT 1  
BIT 0  
BIT 0  
0x001E  
ATDD47H  
10-BIT  
8-BIT  
W
0
0
0
0
0
0
0
0
0
0
0
0
BIT 9 MSB  
0
BIT 8  
0
0x001F  
ATDD47L  
10-BIT  
8-BIT  
BIT 7  
BIT 7 MSB  
BIT 6  
BIT 6  
BIT 5  
BIT 5  
BIT 4  
BIT 4  
BIT 3  
BIT 3  
BIT 2  
BIT 2  
BIT 1  
BIT 1  
BIT 0  
BIT 0  
= Unimplemented or Reserved  
Figure 8-2. ATD Register Summary (Sheet 5 of 5)  
8.3.2.1  
ATD Control Register 0 (ATDCTL0)  
Writes to this register will abort current conversion sequence but will not start a new sequence.  
Module Base + 0x0000  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
WRAP2  
WRAP1  
WRAP0  
Reset  
0
0
0
0
0
1
1
1
= Unimplemented or Reserved  
Figure 8-3. ATD Control Register 0 (ATDCTL0)  
Read: Anytime  
Write: Anytime  
Table 8-1. ATDCTL0 Field Descriptions  
Field  
2–0  
Wrap Around Channel Select Bits — These bits determine the channel for wrap around when doing  
WRAP[2:0] multi-channel conversions. The coding is summarized in Table 8-2.  
Table 8-2. Multi-Channel Wrap Around Coding  
Multiple Channel Conversions (MULT = 1)  
Wrap Around to AN0 after Converting  
WRAP2  
WRAP1  
WRAP0  
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
Reserved  
AN1  
AN2  
AN3  
AN4  
AN5  
MC9S12XDP512 Data Sheet, Rev. 2.11  
354  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 8 Analog-to-Digital Converter (ATD10B8CV3)  
Table 8-2. Multi-Channel Wrap Around Coding  
Multiple Channel Conversions (MULT = 1)  
Wrap Around to AN0 after Converting  
WRAP2  
WRAP1  
WRAP0  
1
1
1
1
0
1
AN6  
AN7  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
355  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 8 Analog-to-Digital Converter (ATD10B8CV3)  
8.3.2.2  
ATD Control Register 1 (ATDCTL1)  
Writes to this register will abort current conversion sequence but will not start a new sequence.  
Module Base + 0x0001  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
ETRIGSEL  
ETRIGCH2 ETRIGCH1 ETRIGCH0  
Reset  
0
0
0
0
0
1
1
1
= Unimplemented or Reserved  
Figure 8-4. ATD Control Register 1 (ATDCTL1)  
Read: Anytime  
Write: Anytime  
Table 8-3. ATDCTL1 Field Descriptions  
Description  
Field  
7
External Trigger Source Select — This bit selects the external trigger source to be either one of the AD  
ETRIGSEL channels or one of the ETRIG3–0 inputs. See the device overview chapter for availability and connectivity of  
ETRIG3–0 inputs. If ETRIG3–0 input option is not available, writing a 1 to ETRISEL only sets the bit but has  
not effect, that means still one of the AD channels (selected by ETRIGCH2–0) is the source for external trigger.  
The coding is summarized in Table 8-4.  
2–0  
External Trigger Channel Select — These bits select one of the AD channels or one of the ETRIG3–0 inputs  
ETRIGCH[2:0] as source for the external trigger. The coding is summarized in Table 8-4.  
Table 8-4. External Trigger Channel Select Coding  
ETRIGSEL ETRIGCH2 ETRIGCH1 ETRIGCH0  
External trigger source is  
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
X
0
1
0
1
0
1
0
1
0
1
0
1
X
AN0  
AN1  
AN2  
AN3  
AN4  
AN5  
AN6  
AN7  
1
1
1
1
ETRIG0  
ETRIG1  
ETRIG2  
ETRIG3  
Reserved  
1
Only if ETRIG3–0 input option is available (see device overview chapter), else ETRISEL is  
ignored, that means external trigger source is still on one of the AD channels selected by  
ETRIGCH2–0  
MC9S12XDP512 Data Sheet, Rev. 2.11  
356  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 8 Analog-to-Digital Converter (ATD10B8CV3)  
8.3.2.3  
ATD Control Register 2 (ATDCTL2)  
This register controls power down, interrupt and external trigger. Writes to this register will abort current  
conversion sequence but will not start a new sequence.  
Module Base + 0x0002  
7
6
5
4
3
2
1
0
R
W
ASCIF  
ADPU  
AFFC  
AWAI  
ETRIGLE  
ETRIGP  
ETRIGE  
ASCIE  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 8-5. ATD Control Register 2 (ATDCTL2)  
Read: Anytime  
Write: Anytime  
Table 8-5. ATDCTL2 Field Descriptions  
Description  
Field  
7
ATD Power Up — This bit provides on/off control over the ATD block allowing reduced MCU power  
ADPU  
consumption. Because analog electronic is turned off when powered down, the ATD requires a recovery time  
period after ADPU bit is enabled.  
0 Power down ATD  
1 Normal ATD functionality  
6
ATD Fast Flag Clear All  
AFFC  
0 ATD flag clearing operates normally (read the status register ATDSTAT1 before reading the result register to  
clear the associate CCF flag).  
1 Changes all ATD conversion complete flags to a fast clear sequence. Any access to a result register will  
cause the associate CCF flag to clear automatically.  
5
ATD Power Down in Wait Mode — When entering wait mode this bit provides on/off control over the ATD block  
allowing reduced MCU power. Because analog electronic is turned off when powered down, the ATD requires  
a recovery time period after exit from Wait mode.  
AWAI  
0 ATD continues to run in Wait mode  
1 Halt conversion and power down ATD during wait mode  
After exiting wait mode with an interrupt conversion will resume. But due to the recovery time the result of  
this conversion should be ignored.  
4
External Trigger Level/Edge Control — This bit controls the sensitivity of the external trigger signal. See  
ETRIGLE  
Table 8-6 for details.  
3
External Trigger Polarity — This bit controls the polarity of the external trigger signal. See Table 8-6 for  
ETRIGP  
details.  
2
External Trigger Mode Enable — This bit enables the external trigger on one of the AD channels or one of  
the ETRIG3–0 inputs as described in Table 8-4. If external trigger source is one of the AD channels, the digital  
input buffer of this channel is enabled. The external trigger allows to synchronize sample and ATD conversions  
processes with external events.  
ETRIGE  
0 Disable external trigger  
1 Enable external trigger  
Note: If using one of the AD channel as external trigger (ETRIGSEL = 0) the conversion results for this channel  
have no meaning while external trigger mode is enabled.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
357  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 8 Analog-to-Digital Converter (ATD10B8CV3)  
Table 8-5. ATDCTL2 Field Descriptions (continued)  
Field  
Description  
1
ATD Sequence Complete Interrupt Enable  
ASCIE  
0 ATD Sequence Complete interrupt requests are disabled.  
0
ATD Sequence Complete Interrupt Flag — If ASCIE = 1 the ASCIF flag equals the SCF flag (see  
Section 8.3.2.7, “ATD Status Register 0 (ATDSTAT0)”), else ASCIF reads zero. Writes have no effect.  
0 No ATD interrupt occurred  
ASCIF  
1 ATD sequence complete interrupt pending  
Table 8-6. External Trigger Configurations  
ETRIGLE  
ETRIGP  
External Trigger Sensitivity  
0
0
1
1
0
1
0
1
Falling edge  
Rising edge  
Low level  
High level  
8.3.2.4  
ATD Control Register 3 (ATDCTL3)  
This register controls the conversion sequence length, FIFO for results registers and behavior in freeze  
mode. Writes to this register will abort current conversion sequence but will not start a new sequence.  
Module Base + 0x0003  
7
6
5
4
3
2
1
0
R
W
0
S8C  
S4C  
S2C  
S1C  
FIFO  
FRZ1  
FRZ0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 8-6. ATD Control Register 3 (ATDCTL3)  
Read: Anytime  
Write: Anytime  
Table 8-7. ATDCTL3 Field Descriptions  
Description  
Field  
6–3  
Conversion Sequence Length — These bits control the number of conversions per sequence. Table 8-8 shows  
S8C, S4C, all combinations. At reset, S4C is set to 1 (sequence length is 4). This is to maintain software continuity to HC12  
S2C, S1C Family.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
358  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 8 Analog-to-Digital Converter (ATD10B8CV3)  
Table 8-7. ATDCTL3 Field Descriptions (continued)  
Field  
Description  
2
Result Register FIFO Mode — If this bit is zero (non-FIFO mode), the A/D conversion results map into the result  
registers based on the conversion sequence; the result of the first conversion appears in the first result register,  
the second result in the second result register, and so on.  
FIFO  
If this bit is one (FIFO mode) the conversion counter is not reset at the beginning or end of a conversion  
sequence; conversion results are placed in consecutive result registers between sequences. The result register  
counter wraps around when it reaches the end of the result register file. The conversion counter value in  
ATDSTAT0 can be used to determine where in the result register file, the current conversion result will be placed.  
Finally, which result registers hold valid data can be tracked using the conversion complete flags. Fast flag clear  
mode may or may not be useful in a particular application to track valid data.  
0 Conversion results are placed in the corresponding result register up to the selected sequence length.  
1 Conversion results are placed in consecutive result registers (wrap around at end).  
1–0  
FRZ[1:0]  
Background Debug Freeze Enable — When debugging an application, it is useful in many cases to have the  
ATD pause when a breakpoint (Freeze Mode) is encountered. These 2 bits determine how the ATD will respond  
to a breakpoint as shown in Table 8-9. Leakage onto the storage node and comparator reference capacitors may  
compromise the accuracy of an immediately frozen conversion depending on the length of the freeze period.  
Table 8-8. Conversion Sequence Length Coding  
Number of Conversions  
S8C  
S4C  
S2C  
S1C  
per Sequence  
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
X
0
0
1
1
0
0
1
1
X
0
1
0
1
0
1
0
1
X
8
1
2
3
4
5
6
7
8
Table 8-9. ATD Behavior in Freeze Mode (Breakpoint)  
FRZ1  
FRZ0  
Behavior in Freeze Mode  
0
0
1
1
0
1
0
1
Continue conversion  
Reserved  
Finish current conversion, then freeze  
Freeze Immediately  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
359  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 8 Analog-to-Digital Converter (ATD10B8CV3)  
8.3.2.5  
ATD Control Register 4 (ATDCTL4)  
This register selects the conversion clock frequency, the length of the second phase of the sample time and  
the resolution of the A/D conversion (i.e.: 8-bits or 10-bits). Writes to this register will abort current  
conversion sequence but will not start a new sequence.  
Module Base + 0x0004  
7
6
5
4
3
2
1
0
R
W
SRES8  
SMP1  
SMP0  
PRS4  
PRS3  
PRS2  
PRS1  
PRS0  
Reset  
0
0
0
0
0
1
0
1
Figure 8-7. ATD Control Register 4 (ATDCTL4)  
Read: Anytime  
Write: Anytime  
Table 8-10. ATDCTL4 Field Descriptions  
Description  
Field  
7
A/D Resolution Select — This bit selects the resolution of A/D conversion results as either 8 or 10 bits. The  
SRES8  
A/D converter has an accuracy of 10 bits; however, if low resolution is required, the conversion can be speeded  
up by selecting 8-bit resolution.  
0 10-bit resolution  
8-bit resolution  
6–5  
SMP[1:0]  
Sample Time Select — These two bits select the length of the second phase of the sample time in units of  
ATD conversion clock cycles. Note that the ATD conversion clock period is itself a function of the prescaler value  
(bits PRS4–0). The sample time consists of two phases. The first phase is two ATD conversion clock cycles  
long and transfers the sample quickly (via the buffer amplifier) onto the A/D machine’s storage node. The  
second phase attaches the external analog signal directly to the storage node for final charging and high  
accuracy. Table 8-11 lists the lengths available for the second sample phase.  
4–0  
ATD Clock Prescaler — These 5 bits are the binary value prescaler value PRS. The ATD conversion clock  
PRS[4:0]  
frequency is calculated as follows:  
[BusClock]  
ATDclock =  
× 0.5  
--------------------------------  
[PRS + 1]  
Note: The maximum ATD conversion clock frequency is half the bus clock. The default (after reset) prescaler  
value is 5 which results in a default ATD conversion clock frequency that is bus clock divided by 12.  
Table 8-12 illustrates the divide-by operation and the appropriate range of the bus clock.  
Table 8-11. Sample Time Select  
SMP1  
SMP0  
Length of 2nd Phase of Sample Time  
0
0
1
1
0
1
0
1
2 A/D conversion clock periods  
4 A/D conversion clock periods  
8 A/D conversion clock periods  
16 A/D conversion clock periods  
MC9S12XDP512 Data Sheet, Rev. 2.11  
360  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 8 Analog-to-Digital Converter (ATD10B8CV3)  
Table 8-12. Clock Prescaler Values  
Total Divisor  
Value  
1
2
Prescale Value  
Max. Bus Clock  
Min. Bus Clock  
00000  
00001  
00010  
00011  
00100  
00101  
00110  
00111  
01000  
01001  
01010  
01011  
01100  
01101  
01110  
01111  
10000  
10001  
10010  
10011  
10100  
10101  
10110  
10111  
11000  
11001  
11010  
11011  
11100  
11101  
11110  
11111  
Divide by 2  
Divide by 4  
Divide by 6  
4 MHz  
8 MHz  
1 MHz  
2 MHz  
3 MHz  
4 MHz  
5 MHz  
6 MHz  
7 MHz  
8 MHz  
9 MHz  
12 MHz  
16 MHz  
20 MHz  
24 MHz  
28 MHz  
32 MHz  
36 MHz  
40 MHz  
44 MHz  
48 MHz  
52 MHz  
56 MHz  
60 MHz  
64 MHz  
68 MHz  
72 MHz  
76 MHz  
80 MHz  
84 MHz  
88 MHz  
92 MHz  
96 MHz  
100 MHz  
104 MHz  
108 MHz  
112 MHz  
116 MHz  
120 MHz  
124 MHz  
128 MHz  
Divide by 8  
Divide by 10  
Divide by 12  
Divide by 14  
Divide by 16  
Divide by 18  
Divide by 20  
Divide by 22  
Divide by 24  
Divide by 26  
Divide by 28  
Divide by 30  
Divide by 32  
Divide by 34  
Divide by 36  
Divide by 38  
Divide by 40  
Divide by 42  
Divide by 44  
Divide by 46  
Divide by 48  
Divide by 50  
Divide by 52  
Divide by 54  
Divide by 56  
Divide by 58  
Divide by 60  
Divide by 62  
Divide by 64  
10 MHz  
11 MHz  
12 MHz  
13 MHz  
14 MHz  
15 MHz  
16 MHz  
17 MHz  
18 MHz  
19 MHz  
20 MHz  
21 MHz  
22 MHz  
23 MHz  
24 MHz  
25 MHz  
26 MHz  
27 MHz  
28 MHz  
29 MHz  
30 MHz  
31 MHz  
32 MHz  
1
2
Maximum ATD conversion clock frequency is 2 MHz. The maximum allowed bus clock frequency is  
shown in this column.  
Minimum ATD conversion clock frequency is 500 kHz. The minimum allowed bus clock frequency is  
shown in this column.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
361  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 8 Analog-to-Digital Converter (ATD10B8CV3)  
8.3.2.6  
ATD Control Register 5 (ATDCTL5)  
This register selects the type of conversion sequence and the analog input channels sampled. Writes to this  
register will abort current conversion sequence and start a new conversion sequence.  
Module Base + 0x0005  
7
6
5
4
3
2
1
0
R
W
0
DJM  
DSGN  
SCAN  
MULT  
CC  
CB  
CA  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 8-8. ATD Control Register 5 (ATDCTL5)  
Read: Anytime  
Write: Anytime  
Table 8-13. ATDCTL5 Field Descriptions  
Description  
Field  
7
DJM  
Result Register Data Justification — This bit controls justification of conversion data in the result registers.  
See Section 8.3.2.13, “ATD Conversion Result Registers (ATDDRx),for details.  
0 Left justified data in the result registers  
1 Right justified data in the result registers  
6
conversion data representation in the result registers. Signed data is represented as 2’s complement. Signed  
data is not available in right justification. See Section 8.3.2.13, “ATD Conversion Result Registers (ATDDRx),”  
for details.  
DSGN  
1 Signed data representation in the result registers  
Table 8-14 summarizes the result data formats available and how they are set up using the control bits.  
Table 8-15 illustrates the difference between the signed and unsigned, left justified output codes for an input  
signal range between 0 and 5.12 Volts.  
5
Continuous Conversion Sequence Mode — This bit selects whether conversion sequences are performed  
continuously or only once.  
SCAN  
0 Single conversion sequence  
1 Continuous conversion sequences (scan mode)  
4
Multi-Channel Sample Mode — When MULT is 0, the ATD sequence controller samples only from the specified  
analog input channel for an entire conversion sequence. The analog channel is selected by channel selection  
code (control bits CC/CB/CA located in ATDCTL5). When MULT is 1, the ATD sequence controller samples  
across channels. The number of channels sampled is determined by the sequence length value (S8C, S4C,  
S2C, S1C). The first analog channel examined is determined by channel selection code (CC, CB, CA control  
bits); subsequent channels sampled in the sequence are determined by incrementing the channel selection  
code.  
MULT  
0 Sample only one channel  
1 Sample across several channels  
2–0  
Analog Input Channel Select Code — These bits select the analog input channel(s) whose signals are  
CC, CB, CA sampled and converted to digital codes. Table 8-16 lists the coding used to select the various analog input  
channels. In the case of single channel scans (MULT = 0), this selection code specified the channel examined.  
In the case of multi-channel scans (MULT = 1), this selection code represents the first channel to be examined  
in the conversion sequence. Subsequent channels are determined by incrementing channel selection code;  
selection codes that reach the maximum value wrap around to the minimum value.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
362  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 8 Analog-to-Digital Converter (ATD10B8CV3)  
Table 8-14. Available Result Data Formats  
Result Data Formats  
Description and Bus Bit Mapping  
SRES8  
DJM  
DSGN  
1
1
1
0
0
0
0
0
1
0
0
1
0
1
X
0
1
X
8-bit / left justified / unsigned — bits 8–15  
8-bit / left justified / signed — bits 8–15  
8-bit / right justified / unsigned — bits 0–7  
10-bit / left justified / unsigned — bits 6–15  
10-bit / left justified / signed — bits 6–15  
10-bit / right justified / unsigned — bits 0–9  
Table 8-15. Left Justified, Signed, and Unsigned ATD Output Codes  
Input Signal  
Signed  
8-Bit  
Unsigned  
8-Bit  
Signed  
10-Bit  
Unsigned  
10-Bit  
V
= 0 Volts  
RL  
V
= 5.12 Volts  
Codes  
Codes  
Codes  
Codes  
RH  
5.120 Volts  
5.100  
7F  
7F  
7E  
FF  
FF  
FE  
7FC0  
7F00  
7E00  
FFC0  
FF00  
FE00  
5.080  
2.580  
2.560  
2.540  
01  
00  
FF  
81  
80  
7F  
0100  
0000  
FF00  
8100  
8000  
7F00  
0.020  
0.000  
81  
80  
01  
00  
8100  
8000  
0100  
0000  
Table 8-16. Analog Input Channel Select Coding  
Analog Input  
CC  
CB  
CA  
Channel  
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
AN0  
AN1  
AN2  
AN3  
AN4  
AN5  
AN6  
AN7  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
363  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 8 Analog-to-Digital Converter (ATD10B8CV3)  
8.3.2.7  
ATD Status Register 0 (ATDSTAT0)  
This read-only register contains the sequence complete flag, overrun flags for external trigger and FIFO  
mode, and the conversion counter.  
Module Base + 0x0006  
7
6
5
4
3
2
1
0
R
W
0
0
CC2  
CC1  
CC0  
SCF  
ETORF  
FIFOR  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 8-9. ATD Status Register 0 (ATDSTAT0)  
Read: Anytime  
Write: Anytime (No effect on (CC2, CC1, CC0))  
Table 8-17. ATDSTAT0 Field Descriptions  
Field  
Description  
7
SCF  
Sequence Complete Flag — This flag is set upon completion of a conversion sequence. If conversion  
sequences are continuously performed (SCAN = 1), the flag is set after each one is completed. This flag is  
cleared when one of the following occurs:  
A) Write “1” to SCF  
B) Write to ATDCTL5 (a new conversion sequence is started)  
C) If AFFC=1 and read of a result register  
0 Conversion sequence not completed  
1 Conversion sequence has completed  
5
External Trigger Overrun Flag — While in edge trigger mode (ETRIGLE = 0), if additional active edges are  
detected while a conversion sequence is in process the overrun flag is set. This flag is cleared when one of the  
following occurs:  
ETORF  
A) Write “1” to ETORF  
B) Write to ATDCTL2, ATDCTL3 or ATDCTL4 (a conversion sequence is aborted)  
C) Write to ATDCTL5 (a new conversion sequence is started)  
0 No External trigger over run error has occurred  
1 External trigger over run error has occurred  
4
FIFO Over Run Flag — This bit indicates that a result register has been written to before its associated  
conversion complete flag (CCF) has been cleared. This flag is most useful when using the FIFO mode because  
the flag potentially indicates that result registers are out of sync with the input channels. However, it is also  
practical for non-FIFO modes, and indicates that a result register has been over written before it has been read  
(i.e., the old data has been lost). This flag is cleared when one of the following occurs:  
A) Write “1” to FIFOR  
FIFOR  
B) Start a new conversion sequence (write to ATDCTL5 or external trigger)  
0 No over run has occurred  
1 An over run condition exists  
2–0  
CC[2:0]  
Conversion Counter — These 3 read-only bits are the binary value of the conversion counter. The conversion  
counter points to the result register that will receive the result of the current conversion. E.g. CC2 = 1, CC1 = 1,  
CC0 = 0 indicates that the result of the current conversion will be in ATD result register 6. If in non-FIFO mode  
(FIFO = 0) the conversion counter is initialized to zero at the begin and end of the conversion sequence. If in  
FIFO mode (FIFO = 1) the register counter is not initialized. The conversion counters wraps around when its  
maximum value is reached.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
364  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 8 Analog-to-Digital Converter (ATD10B8CV3)  
8.3.2.8  
Reserved Register (ATDTEST0)  
Module Base + 0x0008  
7
6
5
4
3
2
1
0
R
W
U
1
U
U
U
U
U
U
U
Reset  
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 8-10. Reserved Register (ATDTEST0)  
Read: Anytime, returns unpredictable values  
Write: Anytime in special modes, unimplemented in normal modes  
NOTE  
Writing to this register when in special modes can alter functionality.  
8.3.2.9  
ATD Test Register 1 (ATDTEST1)  
This register contains the SC bit used to enable special channel conversions.  
Module Base + 0x0009  
7
6
5
4
3
2
1
0
R
W
U
U
0
0
0
0
0
SC  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 8-11. ATD Test Register 1 (ATDTEST1)  
Read: Anytime, returns unpredictable values for Bit7 and Bit6  
Write: Anytime  
Table 8-18. ATDTEST1 Field Descriptions  
Field  
Description  
0
SC  
Special Channel Conversion Bit — If this bit is set, then special channel conversion can be selected using CC,  
CB and CA of ATDCTL5. Table 8-19 lists the coding.  
0 Special channel conversions disabled  
1 Special channel conversions enabled  
Note: Always write remaining bits of ATDTEST1 (Bit7 to Bit1) zero when writing SC bit. Not doing so might result  
in unpredictable ATD behavior.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
365  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 8 Analog-to-Digital Converter (ATD10B8CV3)  
Table 8-19. Special Channel Select Coding  
SC  
CC  
CB  
CA  
Analog Input Channel  
1
1
1
1
1
0
1
1
1
1
X
0
0
1
1
X
0
1
0
1
Reserved  
V
RH  
V
RL  
(V +V ) / 2  
RH  
RL  
Reserved  
8.3.2.10 ATD Status Register 1 (ATDSTAT1)  
This read-only register contains the conversion complete flags.  
Module Base + 0x000B  
7
6
5
4
3
2
1
0
R
W
CCF7  
CCF6  
CCF5  
CCF4  
CCF3  
CCF2  
CCF1  
CCF0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 8-12. ATD Status Register 1 (ATDSTAT1)  
Read: Anytime  
Write: Anytime, no effect  
Table 8-20. ATDSTAT1 Field Descriptions  
Description  
Field  
7–0  
CCF[7:0]  
Conversion Complete Flag x (x = 7, 6, 5, 4, 3, 2, 1, 0) — A conversion complete flag is set at the end of each  
conversion in a conversion sequence. The flags are associated with the conversion position in a sequence (and  
also the result register number). Therefore, CCF0 is set when the first conversion in a sequence is complete and  
the result is available in result register ATDDR0; CCF1 is set when the second conversion in a sequence is  
complete and the result is available in ATDDR1, and so forth. A flag CCFx (x = 7, 6, 5, 4, 3, 2,1, 70) is cleared  
when one of the following occurs:  
A) Write to ATDCTL5 (a new conversion sequence is started)  
B) If AFFC=0 and read of ATDSTAT1 followed by read of result register ATDDRx  
C) If AFFC=1 and read of result register ATDDRx  
In case of a concurrent set and clear on CCFx: The clearing by method A) will overwrite the set. The clearing by  
methods B) or C) will be overwritten by the set.  
0 Conversion number x not completed  
1 Conversion number x has completed, result ready in ATDDRx  
MC9S12XDP512 Data Sheet, Rev. 2.11  
366  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 8 Analog-to-Digital Converter (ATD10B8CV3)  
8.3.2.11 ATD Input Enable Register (ATDDIEN)  
Module Base + 0x000D  
7
6
5
4
3
2
1
0
R
W
IEN7  
IEN6  
IEN5  
IEN4  
IEN3  
IEN2  
IEN1  
IEN0  
Reset  
0
0
0
0
0
0
0
0
Figure 8-13. ATD Input Enable Register (ATDDIEN)  
Read: Anytime  
Write: Anytime  
Table 8-21. ATDDIEN Field Descriptions  
Description  
Field  
7–0  
IEN[7:0]  
ATD Digital Input Enable on channel x (x = 7, 6, 5, 4, 3, 2, 1, 0) — This bit controls the digital input buffer from  
the analog input pin (ANx) to PTADx data register.  
0 Disable digital input buffer to PTADx  
1 Enable digital input buffer to PTADx.  
Note: Setting this bit will enable the corresponding digital input buffer continuously. If this bit is set while  
simultaneously using it as an analog port, there is potentially increased power consumption because the  
digital input buffer maybe in the linear region.  
8.3.2.12 Port Data Register (PORTAD)  
The data port associated with the ATD can be configured as general-purpose I/O or input only, as specified  
in the device overview. The port pins are shared with the analog A/D inputs AN7–0.  
Module Base + 0x000F  
7
6
5
4
3
2
1
0
R
W
PTAD7  
PTAD6  
PTAD5  
PTAD4  
PTAD3  
PTAD2  
PTAD1  
PTAD0  
Reset  
1
1
1
1
1
1
1
1
Pin  
Function  
AN7  
AN6  
AN5  
AN4  
AN3  
AN2  
AN1  
AN0  
= Unimplemented or Reserved  
Figure 8-14. Port Data Register (PORTAD)  
Read: Anytime  
Write: Anytime, no effect  
The A/D input channels may be used for general purpose digital input.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
367  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 8 Analog-to-Digital Converter (ATD10B8CV3)  
Table 8-22. PORTAD Field Descriptions  
Field  
Description  
7–0  
A/D Channel x (ANx) Digital Input (x = 7, 6, 5, 4, 3, 2, 1, 0) — If the digital input buffer on the ANx pin is enabled  
PTAD[7:0] (IENx = 1) or channel x is enabled as external trigger (ETRIGE = 1,ETRIGCH[2–0] = x,ETRIGSEL = 0) read  
returns the logic level on ANx pin (signal potentials not meeting V or V specifications will have an  
IL  
IH  
indeterminate value).  
If the digital input buffers are disabled (IENx = 0) and channel x is not enabled as external trigger, read returns  
a “1”.  
Reset sets all PORTAD0 bits to “1”.  
8.3.2.13 ATD Conversion Result Registers (ATDDRx)  
The A/D conversion results are stored in 8 read-only result registers. The result data is formatted in the  
result registers based on two criteria. First there is left and right justification; this selection is made using  
the DJM control bit in ATDCTL5. Second there is signed and unsigned data; this selection is made using  
the DSGN control bit in ATDCTL5. Signed data is stored in 2’s complement format and only exists in left  
justified format. Signed data selected for right justified format is ignored.  
Read: Anytime  
Write: Anytime in special mode, unimplemented in normal modes  
8.3.2.13.1 Left Justified Result Data  
Module Base + 0x0010 = ATDDR0H, 0x0012 = ATDDR1H, 0x0014 = ATDDR2H, 0x0016 = ATDDR3H  
Module Base + 0x0018 = ATDDR4H, 0x001A = ATDDR5H, 0x001C = ATDDR6H, 0x001E = ATDDR7H  
7
6
5
4
3
2
1
0
R
R
BIT 9 MSB  
BIT 7 MSB  
BIT 8  
BIT 6  
BIT 7  
BIT 5  
BIT 6  
BIT 4  
BIT 5  
BIT 3  
BIT 4  
BIT 2  
BIT 3  
BIT 1  
BIT 2  
BIT 0  
10-bit data  
8-bit data  
W
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 8-15. Left Justified, ATD Conversion Result Register, High Byte (ATDDRxH)  
Module Base + 0x0011 = ATDDR0L, 0x0013 = ATDDR1L, 0x0015 = ATDDR2L, 0x0017 = ATDDR3L  
Module Base + 0x0019 = ATDDR4L, 0x001B = ATDDR5L, 0x001D = ATDDR6L, 0x001F = ATDDR7L  
7
6
5
4
3
2
1
0
R
R
BIT 1  
U
BIT 0  
U
0
0
0
0
0
0
0
0
0
0
0
0
W
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 8-16. Left Justified, ATD Conversion Result Register, Low Byte (ATDDRxL)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
368  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 8 Analog-to-Digital Converter (ATD10B8CV3)  
8.3.2.13.2 Right Justified Result Data  
Module Base + 0x0010 = ATDDR0H, 0x0012 = ATDDR1H, 0x0014 = ATDDR2H, 0x0016 = ATDDR3H  
Module Base + 0x0018 = ATDDR4H, 0x001A = ATDDR5H, 0x001C = ATDDR6H, 0x001E = ATDDR7H  
7
6
5
4
3
2
1
0
R
R
0
0
0
0
0
0
0
0
0
0
0
0
BIT 9 MSB  
0
BIT 8  
0
10-bit data  
8-bit data  
W
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 8-17. Right Justified, ATD Conversion Result Register, High Byte (ATDDRxH)  
Module Base + 0x0011 = ATDDR0L, 0x0013 = ATDDR1L, 0x0015 = ATDDR2L, 0x0017 = ATDDR3L  
Module Base + 0x0019 = ATDDR4L, 0x001B = ATDDR5L, 0x001D = ATDDR6L, 0x001F = ATDDR7L  
7
6
5
4
3
2
1
0
R
R
BIT 7  
BIT 7 MSB  
BIT 6  
BIT 6  
BIT 5  
BIT 5  
BIT 4  
BIT 4  
BIT 3  
BIT 3  
BIT 2  
BIT 2  
BIT 1  
BIT 1  
BIT 0  
BIT 0  
10-bit data  
8-bit data  
W
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 8-18. Right Justified, ATD Conversion Result Register, Low Byte (ATDDRxL)  
8.4  
Functional Description  
The ATD is structured in an analog and a digital sub-block.  
8.4.1  
Analog Sub-Block  
The analog sub-block contains all analog electronics required to perform a single conversion. Separate  
power supplies V and V allow to isolate noise of other MCU circuitry from the analog sub-block.  
DDA  
SSA  
8.4.1.1  
Sample and Hold Machine  
The sample and hold (S/H) machine accepts analog signals from the external surroundings and stores them  
as capacitor charge on a storage node.  
The sample process uses a two stage approach. During the first stage, the sample amplifier is used to  
quickly charge the storage node.The second stage connects the input directly to the storage node to  
complete the sample for high accuracy.  
When not sampling, the sample and hold machine disables its own clocks. The analog electronics still draw  
their quiescent current. The power down (ADPU) bit must be set to disable both the digital clocks and the  
analog power consumption.  
The input analog signals are unipolar and must fall within the potential range of V  
to V  
.
SSA  
DDA  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
369  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 8 Analog-to-Digital Converter (ATD10B8CV3)  
8.4.1.2  
Analog Input Multiplexer  
The analog input multiplexer connects one of the 8 external analog input channels to the sample and hold  
machine.  
8.4.1.3  
Sample Buffer Amplifier  
The sample amplifier is used to buffer the input analog signal so that the storage node can be quickly  
charged to the sample potential.  
8.4.1.4  
Analog-to-Digital (A/D) Machine  
The A/D Machine performs analog to digital conversions. The resolution is program selectable at either 8  
or 10 bits. The A/D machine uses a successive approximation architecture. It functions by comparing the  
stored analog sample potential with a series of digitally generated analog potentials. By following a binary  
search algorithm, the A/D machine locates the approximating potential that is nearest to the sampled  
potential.  
When not converting the A/D machine disables its own clocks. The analog electronics still draws quiescent  
current. The power down (ADPU) bit must be set to disable both the digital clocks and the analog power  
consumption.  
Only analog input signals within the potential range of V to V (A/D reference potentials) will result  
RL  
RH  
in a non-railed digital output codes.  
8.4.2  
Digital Sub-Block  
This subsection explains some of the digital features in more detail. See register descriptions for all details.  
8.4.2.1  
External Trigger Input  
The external trigger feature allows the user to synchronize ATD conversions to the external environment  
events rather than relying on software to signal the ATD module when ATD conversions are to take place.  
The external trigger signal (out of reset ATD channel 7, configurable in ATDCTL1) is programmable to  
be edge or level sensitive with polarity control. Table 8-23 gives a brief description of the different  
combinations of control bits and their effect on the external trigger function.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
370  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 8 Analog-to-Digital Converter (ATD10B8CV3)  
Table 8-23. External Trigger Control Bits  
ETRIGLE  
ETRIGP  
ETRIGE  
SCAN  
Description  
X
X
0
0
Ignores external trigger. Performs one  
conversion sequence and stops.  
X
0
0
1
X
0
1
0
0
1
1
1
1
X
X
X
Ignores external trigger. Performs  
continuous conversion sequences.  
Falling edge triggered. Performs one  
conversion sequence per trigger.  
Rising edge triggered. Performs one  
conversion sequence per trigger.  
Trigger active low. Performs  
continuous conversions while trigger  
is active.  
1
1
1
X
Trigger active high. Performs  
continuous conversions while trigger  
is active.  
During a conversion, if additional active edges are detected the overrun error flag ETORF is set.  
In either level or edge triggered modes, the first conversion begins when the trigger is received. In both  
cases, the maximum latency time is one bus clock cycle plus any skew or delay introduced by the trigger  
circuitry.  
NOTE  
The conversion results for the external trigger ATD channel 7 have no  
meaning while external trigger mode is enabled.  
Once ETRIGE is enabled, conversions cannot be started by a write to ATDCTL5, but rather must be  
triggered externally.  
If the level mode is active and the external trigger both de-asserts and re-asserts itself during a conversion  
sequence, this does not constitute an overrun; therefore, the flag is not set. If the trigger is left asserted in  
level mode while a sequence is completing, another sequence will be triggered immediately.  
8.4.2.2  
General Purpose Digital Input Port Operation  
The input channel pins can be multiplexed between analog and digital data. As analog inputs, they are  
multiplexed and sampled to supply signals to the A/D converter. As digital inputs, they supply external  
input data that can be accessed through the digital port register PORTAD (input-only).  
The analog/digital multiplex operation is performed in the input pads. The input pad is always connected  
to the analog inputs of the ATD. The input pad signal is buffered to the digital port registers. This buffer  
can be turned on or off with the ATDDIEN register. This is important so that the buffer does not draw  
excess current when analog potentials are presented at its input.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
371  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 8 Analog-to-Digital Converter (ATD10B8CV3)  
8.4.2.3  
Low Power Modes  
The ATD can be configured for lower MCU power consumption in 3 different ways:  
1. Stop mode: This halts A/D conversion. Exit from stop mode will resume A/D conversion, but due  
to the recovery time the result of this conversion should be ignored.  
2. Wait mode with AWAI = 1: This halts A/D conversion. Exit from wait mode will resume A/D  
conversion, but due to the recovery time the result of this conversion should be ignored.  
3. Writing ADPU = 0 (Note that all ATD registers remain accessible.): This aborts any A/D  
conversion in progress.  
Note that the reset value for the ADPU bit is zero. Therefore, when this module is reset, it is reset into the  
power down state.  
8.5  
Resets  
At reset the ATD is in a power down state. The reset state of each individual bit is listed within the Register  
Description section (see Section 8.3, “Memory Map and Register Definition”), which details the registers  
and their bit-field.  
8.6  
Interrupts  
The interrupt requested by the ATD is listed in Table 8-24. Refer to the device overview chapter for related  
vector address and priority.  
Table 8-24. ATD Interrupt Vectors  
CCR  
Mask  
Interrupt Source  
Local Enable  
Sequence complete  
interrupt  
I bit  
ASCIE in ATDCTL2  
See register descriptions for further details.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
372  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 9  
XGATE (S12XGATEV2)  
9.1  
Introduction  
The XGATE module is a peripheral co-processor that allows autonomous data transfers between the  
MCU’s peripherals and the internal memories. It has a built in RISC core that is able to pre-process the  
transferred data and perform complex communication protocols.  
The XGATE module is intended to increase the MCU’s data throughput by lowering the S12X_CPU’s  
Figure 9-1 gives an overview on the XGATE architecture.  
XGATE registers (Section 9.3, “Memory Map and Register Definition”)  
XGATE RISC core (Section 9.4.1, “XGATE RISC Core)  
Hardware semaphores (Section 9.4.4, “Semaphores”)  
Interrupt handling (Section 9.5, “Interrupts”)  
Debug features (Section 9.6, “Debug Mode”)  
Security (Section 9.7, “Security”)  
Instruction set (Section 9.8, “Instruction Set”)  
9.1.1  
Features  
The XGATE module includes these features:  
Data movement between various targets (i.e Flash, RAM, and peripheral modules)  
Data manipulation through built in RISC core  
Provides up to 112 XGATE channels  
— 104 hardware triggered channels  
— 8 software triggered channels  
Hardware semaphores which are shared between the S12X_CPU and the XGATE module  
Able to trigger S12X_CPU interrupts upon completion of an XGATE transfer  
Software error detection to catch erratic application code  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
373  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 9 XGATE (S12XGATEV2)  
9.1.2  
Modes of Operation  
There are four run modes on S12X devices.  
Run mode, wait mode, stop mode  
The XGATE is able to operate in all of these three system modes. Clock activity will be  
automatically stopped when the XGATE module is idle.  
Freeze mode (BDM active)  
In freeze mode all clocks of the XGATE module may be stopped, depending on the module  
configuration (see Section 9.3.2.1, “XGATE Control Register (XGMCTL)”).  
9.1.3  
Block Diagram  
Figure Figure 9-1 shows a block diagram of the XGATE.  
Peripheral Interrupts  
S12X_INT  
XGATE  
Interrupt Flags  
Semaphores  
Software  
RISC Core  
Triggers  
Software Triggers  
S12X_DBG  
S12X_MMC  
Peripherals  
Figure 9-1. XGATE Block Diagram  
9.2  
External Signal Description  
The XGATE module has no external pins.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
374  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 9 XGATE (S12XGATEV2)  
9.3  
Memory Map and Register Definition  
This section provides a detailed description of address space and registers used by the XGATE module.  
The memory map for the XGATE module is given below in Table 9-1.The address listed for each register  
is the sum of a base address and an address offset. The base address is defined at the SoC level and the  
address offset is defined at the module level. Reserved registers read zero. Write accesses to the reserved  
registers have no effect.  
9.3.1  
Module Memory Map  
Table 9-1. Module Memory Map  
Address Offset  
Use  
Access  
1
0x0000, 0x0001  
0x0002  
XGATE Module Control Register (XGMCTL)  
XGATE Channel ID Register (XGCHID)  
Read/Write  
1,2  
Read/Write  
0x0003  
0x0004, 0x0005  
Reserved  
None  
1
0x0006, 0x0007  
XGATE Vector Base Address (XGVBR)  
Read/Write  
Read/Write  
0x0008, 0x0009,  
0x000A, 0x000B,  
0x000C, 0x000D,  
0x000E, 0x000F,  
0x0010, 0x0011,  
0x0012, 0x0013,  
0x0014, 0x0015,  
0x0016, 0x0017  
1
XGATE Interrupt Flag Vector (XGIF)  
0x0018, 0x0019  
0x001A, 0x001B  
0x001C  
XGATE Software Trigger Register (XGSWT)  
XGATE Semaphore Register (XGSEM)  
Reserved  
Read/Write  
3
Read/Write  
None  
1,4  
0x001D  
XGATE Condition Code Register (XGCCR)  
XGATE Program Counter (XGPC)  
Reserved  
Read/Write  
Read/Write  
None  
4
0x001E, 0x001F  
0x0020, 0x0021  
0x0022, 0x0023  
0x0024, 0x0025  
0x0026, 0x0027  
0x0028, 0x0029  
0x002A,0x002B  
0x002C, 0x002D  
0x002E, 0x002F  
4
4
4
4
4
4
4
XGATE Register 1 (XGR1)  
XGATE Register 2 (XGR2)  
XGATE Register 3 (XGR3)  
XGATE Register 4 (XGR4)  
XGATE Register 5 (XGR5)  
XGATE Register 6 (XGR6)  
XGATE Register 7 (XGR7)  
Read/Write  
Read/Write  
Read/Write  
Read/Write  
Read/Write  
Read/Write  
Read/Write  
0x0030, 0x0031,  
0x0032, 0x0033,  
0x0034, 0x0035,  
0x0036, 0x0037,  
0x0038, 0x0039  
Reserved  
None  
1
2
3
4
Write only if in Debug Mode.  
See Section 9.4.4, “Semaphores”  
Read and Write only if in Debug Mode.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
375  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 9 XGATE (S12XGATEV2)  
9.3.2  
Register Descriptions  
This section consists of register descriptions in address order. Each description includes a standard register  
diagram with an associated figure number. Details of register bit and field function follow the register  
diagrams, in bit order.  
Register  
Name  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
0x0000  
XGMCTL  
R
0
0
0
0
0
0
0
0
0
XG  
FACT  
XG  
SWEIF  
XGE XGFRZ XGDBG XGSS  
XGIE  
XG XG  
FRZM DBGM  
XG  
FACTM  
XG  
SWEIFM  
XGEM  
XGSSM  
XGIEM  
W
0x0002  
R
0
XGCHID[6:0]  
XGMCHID  
W
0x0003  
R
Reserved  
W
0x0004  
R
Reserved  
W
0x0005  
R
Reserved  
W
0x0006  
XGVBR  
R
0
XGVBR[15:1]  
W
127 126 125 124 123 122 121 120 119 118 117 116 115 114 113 112  
0x0008  
XGIF  
R
0
0
0
0
0
0
0
XGIF_78 XGF_77 XGIF_76 XGIF_75 XGIF_74 XGIF_73 XGIF_72 XGIF_71 XGIF_70  
W
111 110 109 108 107 106 105 104 103 102 101 100  
99  
98  
97  
96  
0x000A  
XGIF  
R
XGIF_6E XGIF_6D XGIF_6C XGIF_6B XGIF_6A XGIF_69 XGIF_68 XGF_67 XGIF_66 XGIF_65 XGIF_64 XGIF_63 XGIF_62 XGIF_61 XGIF_60  
W XGIF_6F  
95  
94  
93  
92  
91  
90  
89  
88  
87  
86  
85  
84  
83  
82  
81  
80  
0x000C  
XGIF  
R
XGIF_5E XGIF_5D XGIF_5C XGIF_5B XGIF_5A XGIF_59 XGIF_58 XGF_57 XGIF_56 XGIF_55 XGIF_54 XGIF_53 XGIF_52 XGIF_51 XGIF_50  
W XGIF_5F  
79  
R
78  
77  
76  
75  
74  
73  
72  
71  
70  
69  
68  
67  
66  
65  
64  
0x000E  
XGIF  
XGIF_4E XGIF_4D XGIF_4C XGIF_4B XGIF_4A XGIF_49 XGIF_48 XGF _47 XGIF_46 XGIF_45 XGIF_44 XGIF_43 XGIF_42 XGIF_41 XGIF_40  
W XGIF_4F  
= Unimplemented or Reserved  
Figure 9-2. XGATE Register Summary (Sheet 1 of 3)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
376  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 9 XGATE (S12XGATEV2)  
Register  
Name  
63  
62  
61  
60  
59  
58  
57  
56  
55  
54  
53  
52  
51  
50  
49  
48  
0x0010  
XGIF  
R
XGIF_3E XGIF_3D XGIF_3C XGIF_3B XGIF_3A XGIF_39 XGIF_38 XGF _37 XGIF_36 XGIF_35 XGIF_34 XGIF_33 XGIF_32 XGIF_31 XGIF_30  
W XGIF_3F  
47  
R
46  
45  
44  
43  
42  
41  
40  
39  
38  
37  
36  
35  
34  
33  
32  
0x0012  
XGIF  
XGIF_2E XGIF_2D XGIF_2C XGIF_2B XGIF_2A XGIF_29 XGIF_28 XGF _27 XGIF_26 XGIF_25 XGIF_24 XGIF_23 XGIF_22 XGIF_21 XGIF_20  
W XGIF_2F  
31  
R
30  
29  
28  
27  
26  
25  
24  
23  
22  
21  
20  
19  
18  
17  
16  
0x0014  
XGIF  
XGIF_1E XGIF_1D XGIF_1C XGIF_1B XGIF_1A XGIF_19 XGIF_18 XGF _17 XGIF_16 XGIF_15 XGIF_14 XGIF_13 XGIF_12 XGIF_11 XGIF_10  
W XGIF_1F  
15  
R
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
0x0016  
XGIF  
0
0
0
0
0
0
0
0
0
XGIF_0E XGIF_0D XGIF_0C XGIF_0B XGIF_0A XGIF_09  
W XGIF_0F  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
0x0018  
XGSWTM  
R
0
0
0
0
0
0
0
0
XGSWT[7:0]  
XGSEM[7:0]  
W
XGSWTM[7:0]  
0x001A  
XGSEMM  
R
0
0
0
0
0
0
0
0
W
XGSEMM[7:0]  
0x001C  
R
Reserved  
W
0x001D  
XGCCR  
R
0
0
0
0
XGN XGZ XGV XGC  
W
0x001E  
XGPC  
R
XGPC  
W
0x0020  
R
Reserved  
W
0x0021  
R
Reserved  
W
0x0022  
XGR1  
R
XGR1  
XGR2  
W
0x0024  
XGR2  
R
W
= Unimplemented or Reserved  
Figure 9-2. XGATE Register Summary (Sheet 2 of 3)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
377  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Register  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
Name  
0x0026  
XGR3  
R
XGR3  
W
0x0028  
XGR4  
R
XGR4  
XGR5  
XGR6  
XGR7  
W
0x002A  
XGR5  
R
W
0x002C  
XGR6  
R
W
0x002E  
XGR7  
R
W
= Unimplemented or Reserved  
Figure 9-2. XGATE Register Summary (Sheet 3 of 3)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
378  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
9.3.2.1  
XGATE Control Register (XGMCTL)  
All module level switches and flags are located in the module control register Figure 9-3.  
Module Base +0x00000  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
R
0
0
0
0
0
0
0
0
0
XG  
SWEIF  
XGE XGFRZ XGDBG XGSS XGFACT  
XGIE  
W
XG XG  
FRZM DBGM SSM FACTM  
XG  
XG  
XG  
SWEIFM  
XGEM  
XGIEM  
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 9-3. XGATE Control Register (XGMCTL)  
Read: Anytime  
Write: Anytime  
Table 9-2. XGMCTL Field Descriptions (Sheet 1 of 3)  
Description  
Field  
15  
XGE Mask — This bit controls the write access to the XGE bit. The XGE bit can only be set or cleared if a "1" is  
XGEM  
written to the XGEM bit in the same register access.  
Read:  
This bit will always read "0".  
Write:  
0 Disable write access to the XGE in the same bus cycle  
1 Enable write access to the XGE in the same bus cycle  
14  
XGFRZ Mask — This bit controls the write access to the XGFRZ bit. The XGFRZ bit can only be set or cleared  
XGFRZM if a "1" is written to the XGFRZM bit in the same register access.  
Read:  
This bit will always read "0".  
Write:  
0 Disable write access to the XGFRZ in the same bus cycle  
1 Enable write access to the XGFRZ in the same bus cycle  
13  
XGDBG Mask — This bit controls the write access to the XGDBG bit. The XGDBG bit can only be set or cleared  
XGDBGM if a "1" is written to the XGDBGM bit in the same register access.  
Read:  
This bit will always read "0".  
Write:  
0 Disable write access to the XGDBG in the same bus cycle  
1 Enable write access to the XGDBG in the same bus cycle  
12  
XGSS Mask — This bit controls the write access to the XGSS bit. The XGSS bit can only be set or cleared if a  
XGSSM  
"1" is written to the XGSSM bit in the same register access.  
Read:  
This bit will always read "0".  
Write:  
0 Disable write access to the XGSS in the same bus cycle  
1 Enable write access to the XGSS in the same bus cycle  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
379  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 9 XGATE (S12XGATEV2)  
Table 9-2. XGMCTL Field Descriptions (Sheet 2 of 3)  
Description  
Field  
11  
XGFACT Mask — This bit controls the write access to the XGFACT bit. The XGFACT bit can only be set or  
XGFACTM cleared if a "1" is written to the XGFACTM bit in the same register access.  
Read:  
This bit will always read "0".  
Write:  
0 Disable write access to the XGFACT in the same bus cycle  
1 Enable write access to the XGFACT in the same bus cycle  
9
XGSWEIF Mask — This bit controls the write access to the XGSWEIF bit. The XGSWEIF bit can only be cleared  
XGSWEIFM if a "1" is written to the XGSWEIFM bit in the same register access.  
Read:  
This bit will always read "0".  
Write:  
0 Disable write access to the XGSWEIF in the same bus cycle  
1 Enable write access to the XGSWEIF in the same bus cycle  
8
XGIE Mask — This bit controls the write access to the XGIE bit. The XGIE bit can only be set or cleared if a "1"  
XGIEM  
is written to the XGIEM bit in the same register access.  
Read:  
This bit will always read "0".  
Write:  
0 Disable write access to the XGIE in the same bus cycle  
1 Enable write access to the XGIE in the same bus cycle  
7
XGATE Module Enable — This bit enables the XGATE module. If the XGATE module is disabled, pending  
XGE  
XGATE requests will be ignored. The thread that is executed by the RISC core while the XGE bit is cleared will  
continue to run.  
Read:  
0 XGATE module is disabled  
1 XGATE module is enabled  
Write:  
0 Disable XGATE module  
1 Enable XGATE module  
6
Halt XGATE in Freeze Mode — The XGFRZ bit controls the XGATE operation in Freeze Mode (BDM active).  
XGFRZ  
Read:  
0 RISC core operates normally in Freeze (BDM active)  
1 RISC core stops in Freeze Mode (BDM active)  
Write:  
0 Don’t stop RISC core in Freeze Mode (BDM active)  
1 Stop RISC core in Freeze Mode (BDM active)  
5
XGATE Debug Mode — This bit indicates that the XGATE is in Debug Mode (see Section 9.6, “Debug Mode”).  
XGDBG  
Debug Mode can be entered by Software Breakpoints (BRK instruction), Tagged or Forced Breakpoints (see  
S12X_DBG Section), or by writing a "1" to this bit.  
Read:  
0 RISC core is not in Debug Mode  
1 RISC core is in Debug Mode  
Write:  
0 Leave Debug Mode  
1 Enter Debug Mode  
Note: Freeze Mode and Software Error Interrupts have no effect on the XGDBG bit.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
380  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Table 9-2. XGMCTL Field Descriptions (Sheet 3 of 3)  
Description  
Field  
4
XGATE Single Step — This bit forces the execution of a single instruction if the XGATE is in DEBUG Mode and  
XGSS  
no software error has occurred (XGSWEIF cleared).  
Read:  
0 No single step in progress  
1 Single step in progress  
Write  
0 No effect  
1 Execute a single RISC instruction  
Note: Invoking a Single Step will cause the XGATE to temporarily leave Debug Mode until the instruction has  
been executed.  
3
Fake XGATE Activity — This bit forces the XGATE to flag activity to the MCU even when it is idle. When it is set  
XGFACT  
the MCU will never enter system stop mode which assures that peripheral modules will be clocked during XGATE  
idle periods  
Read:  
0 XGATE will only flag activity if it is not idle or in debug mode.  
1 XGATE will always signal activity to the MCU.  
Write:  
0 Only flag activity if not idle or in debug mode.  
1 Always signal XGATE activity.  
1
XGATE Software Error Interrupt Flag — This bit signals a pending Software Error Interrupt. It is set if the RISC  
XGSWEIF core detects an error condition (see Section 9.4.5, “Software Error Detection”). The RISC core is stopped while  
this bit is set. Clearing this bit will terminate the current thread and cause the XGATE to become idle.  
Read:  
0 Software Error Interrupt is not pending  
1 Software Error Interrupt is pending if XGIE is set  
Write:  
0 No effect  
1 Clears the XGSWEIF bit  
0
XGATE Interrupt Enable — This bit acts as a global interrupt enable for the XGATE module  
XGIE  
Read:  
0 All XGATE interrupts disabled  
1 All XGATE interrupts enabled  
Write:  
0 Disable all XGATE interrupts  
1 Enable all XGATE interrupts  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
381  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
9.3.2.2  
The XGATE channel ID register (Figure 9-4) shows the identifier of the XGATE channel that is currently  
active. This register will read “$00” if the XGATE module is idle. In debug mode this register can be used  
to start and terminate threads (see Section 9.6.1, “Debug Features”).  
Module Base +0x0002  
7
6
5
4
3
2
1
0
R
W
0
XGCHID[6:0]  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 9-4. XGATE Channel ID Register (XGCHID)  
Read: Anytime  
Write: In Debug Mode  
Table 9-3. XGCHID Field Descriptions  
Description  
Field  
6–0  
Request Identifier — ID of the currently active channel  
XGCHID[6:0]  
9.3.2.3  
The vector base address register (Figure 9-5 and Figure 9-6) determines the location of the XGATE vector  
block.  
Module Base +0x0006  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
R
W
0
XGVBR[15:1]  
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 9-5. XGATE Vector Base Address Register (XGVBR)  
Read: Anytime  
Write: Only if the module is disabled (XGE = 0) and idle (XGCHID = $00))  
Table 9-4. XGVBR Field Descriptions  
Field  
Description  
Vector Base Address — The XGVBR register holds the start address of the vector block in the XGATE  
15–1  
XBVBR[15:1] memory map.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
382  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 9 XGATE (S12XGATEV2)  
9.3.2.4  
XGATE Channel Interrupt Flag Vector (XGIF)  
The interrupt flag vector (Figure 9-6) provides access to the interrupt flags bits of each channel. Each flag  
may be cleared by writing a "1" to its bit location.  
Module Base +0x0008  
127  
126  
125  
124  
123  
122  
121  
120  
119  
118  
117  
116  
115  
114  
113  
112  
R
W
0
0
0
0
0
0
0
XGIF_78 XGF_77 XGIF_76 XGIF_75 XGIF_74 XGIF_73 XGIF_72 XGIF_71 XGIF_70  
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
111  
110  
109  
108  
107  
106  
105  
104  
103  
102  
101  
100  
99  
98  
97  
96  
R
W
XGIF_6F XGIF_6E XGIF_6D XGIF_6C XGIF_6B XGIF_6A XGIF_69 XGIF_68 XGF_67 XGIF_66 XGIF_65 XGIF_64 XGIF_63 XGIF_62 XGIF_61 XGIF_60  
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
95  
94  
93  
92  
91  
90  
89  
88  
87  
86  
85  
84  
83  
82  
81  
80  
R
W
XGIF_5F XGIF_5E XGIF_5D XGIF_5C XGIF_5B XGIF_5A XGIF_59 XGIF_58 XGF_57 XGIF_56 XGIF_55 XGIF_54 XGIF_53 XGIF_52 XGIF_51 XGIF_50  
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
79  
78  
77  
76  
75  
74  
73  
72  
71  
70  
69  
68  
67  
66  
65  
64  
R
W
XGIF_4F XGIF_4E XGIF_4D XGIF_4C XGIF_4B XGIF_4A XGIF_49 XGIF_48 XGF _47 XGIF_46 XGIF_45 XGIF_44 XGIF_43 XGIF_42 XGIF_41 XGIF_40  
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
63  
62  
61  
60  
59  
58  
57  
56  
55  
54  
53  
52  
51  
50  
49  
48  
R
W
XGIF_3F XGIF_3E XGIF_3D XGIF_3C XGIF_3B XGIF_3A XGIF_39 XGIF_38 XGF _37 XGIF_36 XGIF_35 XGIF_34 XGIF_33 XGIF_32 XGIF_31 XGIF_30  
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
47  
46  
45  
44  
43  
42  
41  
40  
39  
38  
37  
36  
35  
34  
33  
32  
R
W
XGIF_2F XGIF_2E XGIF_2D XGIF_2C XGIF_2B XGIF_2A XGIF_29 XGIF_28 XGF _27 XGIF_26 XGIF_25 XGIF_24 XGIF_23 XGIF_22 XGIF_21 XGIF_20  
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
31  
30  
29  
28  
27  
26  
25  
24  
23  
22  
21  
20  
19  
18  
17  
16  
R
W
XGIF_1F XGIF_1E XGIF_1D XGIF_1C XGIF_1B XGIF_1A XGIF_19 XGIF_18 XGF _17 XGIF_16 XGIF_15 XGIF_14 XGIF_13 XGIF_12 XGIF_11 XGIF_10  
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
0
0
0
XGIF_0F XGIF_0E XGIF_0D XGIF_0C XGIF_0B XGIF_0A XGIF_09  
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 9-6. XGATE Channel Interrupt Flag Vector (XGIF)  
Read: Anytime  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
383  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 9 XGATE (S12XGATEV2)  
Write: Anytime  
Table 9-5. XGIV Field Descriptions  
Description  
Field  
127–9  
Channel Interrupt Flags — These bits signal pending channel interrupts. They can only be set by the RISC  
XGIF[78:9]  
core. Each flag can be cleared by writing a "1" to its bit location. Unimplemented interrupt flags will always read  
"0". Refer to Section “Interrupts” of the SoC Guide for a list of implemented Interrupts.  
Read:  
0 Channel interrupt is not pending  
1 Channel interrupt is pending if XGIE is set  
Write:  
0 No effect  
1 Clears the interrupt flag  
NOTE  
Suggested Mnemonics for accessing the interrupt flag vector on a word  
basis are:  
XGIF_7F_70 (XGIF[127:112]),  
XGIF_6F_60 (XGIF[111:96]),  
XGIF_5F_50 (XGIF[95:80]),  
XGIF_4F_40 (XGIF[79:64]),  
XGIF_3F_30 (XGIF[63:48]),  
XGIF_2F_20 (XGIF[47:32]),  
XGIF_1F_10 (XGIF[31:16]),  
XGIF_0F_00 (XGIF[15:0])  
MC9S12XDP512 Data Sheet, Rev. 2.11  
384  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
9.3.2.5  
XGATE Software Trigger Register (XGSWT)  
The eight software triggers of the XGATE module can be set and cleared through the XGATE software  
trigger register (Figure 9-7). The upper byte of this register, the software trigger mask, controls the write  
access to the lower byte, the software trigger bits. These bits can be set or cleared if a "1" is written to the  
associated mask in the same bus cycle.  
Module Base +0x00018  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
0
0
XGSWT[7:0]  
XGSWTM[7:0]  
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Figure 9-7. XGATE Software Trigger Register (XGSWT)  
Read: Anytime  
Write: Anytime  
Table 9-6. XGSWT Field Descriptions  
Description  
Field  
15–8  
Software Trigger Mask — These bits control the write access to the XGSWT bits. Each XGSWT bit can only  
XGSWTM[7:0] be written if a "1" is written to the corresponding XGSWTM bit in the same access.  
Read:  
These bits will always read "0".  
Write:  
0 Disable write access to the XGSWT in the same bus cycle  
1 Enable write access to the corresponding XGSWT bit in the same bus cycle  
7–0  
Software Trigger Bits — These bits act as interrupt flags that are able to trigger XGATE software channels.  
XGSWT[7:0] They can only be set and cleared by software.  
Read:  
0 No software trigger pending  
1 Software trigger pending if the XGIE bit is set  
Write:  
0 Clear Software Trigger  
1 Set Software Trigger  
NOTE  
The XGATE channel IDs that are associated with the eight software triggers  
are determined on chip integration level. (see Section “Interrupts” of the Soc  
Guide)  
XGATE software triggers work like any peripheral interrupt. They can be  
used as XGATE requests as well as S12X_CPU interrupts. The target of the  
software trigger must be selected in the S12X_INT module.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
385  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 9 XGATE (S12XGATEV2)  
9.3.2.6  
XGATE Semaphore Register (XGSEM)  
The XGATE provides a set of eight hardware semaphores that can be shared between the S12X_CPU and  
the XGATE RISC core. Each semaphore can either be unlocked, locked by the S12X_CPU or locked by  
instructions. The S12X_CPU has access to the semaphores through the XGATE semaphore register  
(Figure 9-8). Refer to section Section 9.4.4, “Semaphores” for details.  
Module Base +0x0001A  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
0
0
XGSEM[7:0]  
XGSEMM[7:0]  
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Figure 9-8. XGATE Semaphore Register (XGSEM)  
Read: Anytime  
Write: Anytime (see Section 9.4.4, “Semaphores”)  
Table 9-7. XGSEM Field Descriptions  
Field  
Description  
15–8  
Semaphore Mask — These bits control the write access to the XGSEM bits.  
XGSEMM[7:0] Read:  
These bits will always read "0".  
Write:  
0 Disable write access to the XGSEM in the same bus cycle  
1 Enable write access to the XGSEM in the same bus cycle  
7–0  
Semaphore Bits — These bits indicate whether a semaphore is locked by the S12X_CPU. A semaphore can  
XGSEM[7:0] be attempted to be set by writing a "1" to the XGSEM bit and to the corresponding XGSEMM bit in the same  
write access. Only unlocked semaphores can be set. A semaphore can be cleared by writing a "0" to the  
XGSEM bit and a "1" to the corresponding XGSEMM bit in the same write access.  
Read:  
0 Semaphore is unlocked or locked by the RISC core  
1 Semaphore is locked by the S12X_CPU  
Write:  
0 Clear semaphore if it was locked by the S12X_CPU  
1 Attempt to lock semaphore by the S12X_CPU  
MC9S12XDP512 Data Sheet, Rev. 2.11  
386  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 9 XGATE (S12XGATEV2)  
9.3.2.7  
The XGCCR register (Figure 9-9) provides access to the RISC core’s condition code register.  
Module Base +0x001D  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
XGN  
XGZ  
XGV  
XGC  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 9-9. XGATE Condition Code Register (XGCCR)  
Read: In debug mode if unsecured  
Write: In debug mode if unsecured  
Table 9-8. XGCCR Field Descriptions  
Field  
Description  
3
XGN  
Sign Flag — The RISC core’s Sign flag  
Zero Flag — The RISC core’s Zero flag  
2
XGZ  
1
XGV  
Overflow Flag — The RISC core’s Overflow flag  
Carry Flag — The RISC core’s Carry flag  
0
XGC  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
387  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 9 XGATE (S12XGATEV2)  
9.3.2.8  
The XGPC register (Figure 9-10) provides access to the RISC core’s program counter.  
Module Base +0x0001E  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
R
W
XGPC  
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Figure 9-10. XGATE Program Counter Register (XGPC)  
Figure 9-11.  
Read: In debug mode if unsecured  
Write: In debug mode if unsecured  
Table 9-9. XGPC Field Descriptions  
Description  
Field  
15–0  
Program Counter — The RISC core’s program counter  
XGPC[15:0]  
9.3.2.9  
The XGR1 register (Figure 9-12) provides access to the RISC core’s register 1.  
Module Base +0x00022  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
R
W
XGR1  
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Figure 9-12. XGATE Register 1 (XGR1)  
Read: In debug mode if unsecured  
Write: In debug mode if unsecured  
Table 9-10. XGR1 Field Descriptions  
Field  
Description  
15–0  
XGATE Register 1 — The RISC core’s register 1  
XGR1[15:0]  
MC9S12XDP512 Data Sheet, Rev. 2.11  
388  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 9 XGATE (S12XGATEV2)  
The XGR2 register (Figure 9-13) provides access to the RISC core’s register 2.  
Module Base +0x00024  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
R
W
XGR2  
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Figure 9-13. XGATE Register 2 (XGR2)  
Read: In debug mode if unsecured  
Write: In debug mode if unsecured  
Table 9-11. XGR2 Field Descriptions  
Field  
Description  
15–0  
XGATE Register 2 — The RISC core’s register 2  
XGR2[15:0]  
The XGR3 register (Figure 9-14) provides access to the RISC core’s register 3.  
Module Base +0x00026  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
R
W
XGR3  
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Figure 9-14. XGATE Register 3 (XGR3)  
Read: In debug mode if unsecured  
Write: In debug mode if unsecured  
Table 9-12. XGR3 Field Descriptions  
Field  
Description  
15–0  
XGATE Register 3 — The RISC core’s register 3  
XGR3[15:0]  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
389  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 9 XGATE (S12XGATEV2)  
The XGR4 register (Figure 9-15) provides access to the RISC core’s register 4.  
Module Base +0x00028  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
R
W
XGR4  
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Figure 9-15. XGATE Register 4 (XGR4)  
Read: In debug mode if unsecured  
Write: In debug mode if unsecured  
Table 9-13. XGR4 Field Descriptions  
Field  
Description  
15–0  
XGATE Register 4 — The RISC core’s register 4  
XGR4[15:0]  
The XGR5 register (Figure 9-16) provides access to the RISC core’s register 5.  
Module Base +0x0002A  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
R
W
XGR5  
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Figure 9-16. XGATE Register 5 (XGR5)  
Read: In debug mode if unsecured  
Write: In debug mode if unsecured  
Table 9-14. XGR5 Field Descriptions  
Field  
Description  
15–0  
XGATE Register 5 — The RISC core’s register 5  
XGR5[15:0]  
MC9S12XDP512 Data Sheet, Rev. 2.11  
390  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 9 XGATE (S12XGATEV2)  
The XGR6 register (Figure 9-17) provides access to the RISC core’s register 6.  
Module Base +0x0002C  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
R
W
XGR6  
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Figure 9-17. XGATE Register 6 (XGR6)  
Read: In debug mode if unsecured  
Write: In debug mode if unsecured  
Table 9-15. XGR6 Field Descriptions  
Field  
Description  
15–0  
XGATE Register 6 — The RISC core’s register 6  
XGR6[15:0]  
The XGR7 register (Figure 9-18) provides access to the RISC core’s register 7.  
Module Base +0x0002E  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
R
W
XGR7  
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Figure 9-18. XGATE Register 7 (XGR7)  
Read: In debug mode if unsecured  
Write: In debug mode if unsecured  
Table 9-16. XGR7 Field Descriptions  
Field  
Description  
15–0  
XGATE Register 7 — The RISC core’s register 7  
XGR7[15:0]  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
391  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 9 XGATE (S12XGATEV2)  
9.4  
Functional Description  
The core of the XGATE module is a RISC processor which is able to access the MCU’s internal memories  
and peripherals (see Figure 9-1). The RISC processor always remains in an idle state until it is triggered  
by an XGATE request. Then it executes a code sequence that is associated with the request and optionally  
triggers an interrupt to the S12X_CPU upon completion. Code sequences are not interruptible. A new  
XGATE request can only be serviced when the previous sequence is finished and the RISC core becomes  
idle.  
The XGATE module also provides a set of hardware semaphores which are necessary to ensure data  
consistency whenever RAM locations or peripherals are shared with the S12X_CPU.  
The following sections describe the components of the XGATE module in further detail.  
9.4.1  
XGATE RISC Core  
The RISC core is a 16-bit processor with an instruction set that is well suited for data transfers, bit  
manipulations, and simple arithmetic operations (see Section 9.8, “Instruction Set”).  
It is able to access the MCU’s internal memories and peripherals without blocking these resources from  
1
the S12X_CPU . Whenever the S12X_CPU and the RISC core access the same resource, the RISC core  
1
will be stalled until the resource becomes available again .  
The XGATE offers a high access rate to the MCU’s internal RAM. Depending on the bus load, the RISC  
core can perform up to two RAM accesses per S12X_CPU bus cycle. A minimum throughput of one RAM  
access per S12X_CPU bus cycle is guaranteed.  
Bus accesses to peripheral registers or flash are slower. A transfer rate of one bus access per S12X_CPU  
cycle can not be exceeded.  
The XGATE module is intended to execute short interrupt service routines that are triggered by peripheral  
modules or by software.  
1. With the exception of PRR registers (see Section “S12X_MMC”).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
392  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 9 XGATE (S12XGATEV2)  
9.4.2  
Programmer’s Model  
Register Block  
Program Counter  
PC  
15  
0
0
0
0
0
0
0
15  
0
R7  
15  
R6  
Condition  
Code  
15  
R5  
Register  
15  
N Z V C  
R4  
15  
3
1
2
0
R3  
15  
R2  
15  
R1  
(Variable Pointer)  
0
15  
R0 = 0  
Figure 9-19. Programmer’s Model  
The programmer’s model of the XGATE RISC core is shown in Figure 9-19. The processor offers a set of  
seven general purpose registers (R1 - R7), which serve as accumulators and index registers. An additional  
eighth register (R0) is tied to the value “$0000”. Register R1 has an additional functionality. It is preloaded  
with the initial variable pointer of the channel’s service request vector (see Figure 9-20). The initial content  
of the remaining general purpose registers is undefined.  
The 16 bit program counter allows the addressing of a 64 kbyte address space.  
The condition code register contains four bits: the sign bit (S), the zero flag (Z), the overflow flag (V), and  
the carry bit (C). The initial content of the condition code register is undefined.  
9.4.3  
Memory Map  
The XGATE’s RISC core is able to access an address space of 64K bytes. The allocation of memory blocks  
within this address space is determined on chip level. Refer to the S12X_MMC Section for a detailed  
information.  
position in the XGATE memory map can be adjusted through the XGVBR register (see Section 9.3.2.3,  
“XGATE Vector Base Address Register (XGVBR)”). Figure 9-20 shows the layout of the vector block.  
Each vector consists of two 16-bit words. The first contains the start address of the service routine. This  
value will be loaded into the program counter before a service routine is executed. The second word is a  
pointer to the service routine’s variable space. This value will be loaded into register R1 before a service  
routine is executed.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
393  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 9 XGATE (S12XGATEV2)  
XGVBR  
+$0000  
unused  
Code  
+$0024  
Channel $09 Initial Program Counter  
Channel $09 Initial Variable Pointer  
Channel $0A Initial Program Counter  
Channel $0A Initial Variable Pointer  
Channel $0B Initial Program Counter  
Channel $0B Initial Variable Pointer  
Channel $0C Initial Program Counter  
Channel $0C Initial Variable Pointer  
+$0028  
+$002C  
+$0030  
Variables  
Code  
+$01E0  
Variables  
Channel $78 Initial Program Counter  
Channel $78 Initial Variable Pointer  
Figure 9-20. XGATE Vector Block  
9.4.4  
Semaphores  
The XGATE module offers a set of eight hardware semaphores. These semaphores provide a mechanism  
to protect system resources that are shared between two concurrent threads of program execution; one  
thread running on the S12X_CPU and one running on the XGATE RISC core.  
by XGATE”. The S12X_CPU can check and change a semaphore’s state through the XGATE semaphore  
register (XGSEM, see Section 9.3.2.6, “XGATE Semaphore Register (XGSEM)”). The RISC core does  
this through its SSEM and CSEM instructions.  
If the S12X_CPU and the RISC core attempt to lock an unlocked semaphore at the same time, it will be  
Figure 9-21 illustrates the valid state transitions.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
394  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 9 XGATE (S12XGATEV2)  
%1 XGSEM  
%1 XGSEM  
%0 XGSEM  
SSEM Instruction  
CSEM Instruction  
SSEM Instruction  
LOCKED BY  
XGATE  
LOCKED BY  
S12X_CPU  
UNLOCKED  
%0 XGSEM  
CSEM Instruction  
Figure 9-21. Semaphore State Transitions  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
395  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 9 XGATE (S12XGATEV2)  
Figure 9-22 gives an example of the typical usage of the XGATE hardware semaphores.  
Two concurrent threads are running on the system. One is running on the S12X_CPU and the other is  
running on the RISC core. They both have a critical section of code that accesses the same system resource.  
To guarantee that the system resource is only accessed by one thread at a time, the critical code sequence  
must be embedded in a semaphore lock/release sequence as shown.  
S12X_CPU  
XGATE  
.........  
.........  
%1 XGSEMx  
XGSEM %1?  
SSEM  
BCC?  
critical  
code  
sequence  
critical  
code  
sequence  
XGSEM %0  
CSEM  
.........  
.........  
Figure 9-22. Algorithm for Locking and Releasing Semaphores  
9.4.5  
Software Error Detection  
The XGATE module will immediately terminate program execution after detecting an error condition  
caused by erratic application code. There are three error conditions:  
Execution of an illegal opcode  
Illegal vector or opcode fetches  
Illegal load or store accesses  
All opcodes which are not listed in section Section 9.8, “Instruction Set” are illegal opcodes. Illegal vector  
and opcode fetches as well as illegal load and store accesses are defined on chip level. Refer to the  
S12X_MMC Section for a detailed information.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
396  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 9 XGATE (S12XGATEV2)  
9.5  
Interrupts  
9.5.1  
Incoming Interrupt Requests  
XGATE threads are triggered by interrupt requests which are routed to the XGATE module (see  
S12X_INT Section). Only a subset of the MCU’s interrupt requests can be routed to the XGATE. Which  
specific interrupt requests these are and which channel ID they are assigned to is documented in Section  
“Interrupts” of the SoC Guide.  
9.5.2  
Outgoing Interrupt Requests  
There are three types of interrupt requests which can be triggered by the XGATE module:  
4. Channel interrupts  
For each XGATE channel there is an associated interrupt flag in the XGATE interrupt flag vector  
(XGIF, see Section 9.3.2.4, “XGATE Channel Interrupt Flag Vector (XGIF)”). These flags can be  
set through the "SIF" instruction by the RISC core. They are typically used to flag an interrupt to  
the S12X_CPU when the XGATE has completed one of its tasks.  
5. Software triggers  
Software triggers are interrupt flags, which can be set and cleared by software (see Section 9.3.2.5,  
“XGATE Software Trigger Register (XGSWT)”). They are typically used to trigger XGATE tasks  
by the S12X_CPU software. However these interrupts can also be routed to the S12X_CPU (see  
S12X_INT Section) and triggered by the XGATE software.  
6. Software error interrupt  
The software error interrupt signals to the S12X_CPU the detection of an error condition in the  
XGATE application code (see Section 9.4.5, “Software Error Detection”).  
All XGATE interrupts can be disabled by the XGIE bit in the XGATE module control register (XGMCTL,  
see Section 9.3.2.1, “XGATE Control Register (XGMCTL)”).  
9.6  
Debug Mode  
The XGATE debug mode is a feature to allow debugging of application code.  
9.6.1  
Debug Features  
In debug mode the RISC core will be halted and the following debug features will be enabled:  
1
Read and Write accesses to RISC core registers (XGCCR, XGPC, XGR1–XGR7)  
All RISC core registers can be modified. Leaving debug mode will cause the RISC core to continue  
program execution with the modified register values.  
1. Only possible if MCU is unsecured  
Freescale Semiconductor  
MC9S12XDP512 Data Sheet, Rev. 2.11  
397  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
Chapter 9 XGATE (S12XGATEV2)  
Single Stepping  
Writing a "1" to the XGSS bit will call the RISC core to execute a single instruction. All RISC core  
registers will be updated accordingly.  
Write accesses to the XGCHID register  
Three operations can be performed by writing to the XGCHID register:  
– Change of channel ID  
If a non-zero value is written to the XGCHID while a thread is active (XGCHID $00), then  
the current channel ID will be changed without any influence on the program counter or the  
other RISC core registers.  
– Start of a thread  
If a non-zero value is written to the XGCHID while the XGATE is idle (XGCHID = $00),  
then the thread that is associated with the new channel ID will be executed upon leaving  
debug mode.  
– Termination of a thread  
If zero is written to the XGCHID while a thread is active (XGCHID $00), then the current  
thread will be terminated and the XGATE will become idle.  
9.6.2  
Entering Debug Mode  
Debug mode can be entered in four ways:  
1. Setting XGDBG to "1"  
Writing a "1" to XGDBG and XGDBGM in the same write access causes the XGATE to enter  
debug mode upon completion of the current instruction.  
NOTE  
After writing to the XGDBG bit the XGATE will not immediately enter  
debug mode. Depending on the instruction that is executed at this time there  
may be a delay of several clock cycles. The XGDBG will read "0" until  
debug mode is entered.  
2. Software breakpoints  
XGATE programs which are stored in the internal RAM allow the use of software breakpoints. A  
software breakpoint is set by replacing an instruction of the program code with the "BRK"  
instruction.  
As soon as the program execution reaches the "BRK" instruction, the XGATE enters debug mode.  
Additionally a software breakpoint request is sent to the S12X_DBG module (see section 4.9 of  
the S12X_DBG Section).  
Upon entering debug mode, the program counter will point to the "BRK" instruction. The other  
RISC core registers will hold the result of the previous instruction.  
To resume program execution, the "BRK" instruction must be replaced by the original instruction  
before leaving debug mode.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
398  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 9 XGATE (S12XGATEV2)  
3. Tagged Breakpoints  
The S12X_DBG module is able to place tags on fetched opcodes. The XGATE is able to enter  
debug mode right before a tagged opcode is executed (see section 4.9 of the S12X_DBG Section).  
Upon entering debug mode, the program counter will point to the tagged instruction. The other  
RISC core registers will hold the result of the previous instruction.  
4. Forced Breakpoints  
Forced breakpoints are triggered by the S12X_DBG module (see section 4.9 of the S12X_DBG  
Section). When a forced breakpoint occurs, the XGATE will enter debug mode upon completion  
of the current instruction.  
9.6.3  
Leaving Debug Mode  
Debug mode can only be left by setting the XGDBG bit to "0". If a thread is active (XGCHID has not been  
cleared in debug mode), program execution will resume at the value of XGPC.  
9.7  
Security  
In order to protect XGATE application code on secured S12X devices, a few restrictions in the debug  
features have been made. These are:  
Registers XGCCR, XGPC, and XGR1–XGR7 will read zero on a secured device  
Registers XGCCR, XGPC, and XGR1–XGR7 can not be written on a secured device  
Single stepping is not possible on a secured device  
9.8  
Instruction Set  
9.8.1  
Addressing Modes  
For the ease of implementation the architecture is a strict Load/Store RISC machine, which means all  
operations must have one of the eight general purpose registers R0 … R7 as their source as well their  
destination.  
All word accesses must work with a word aligned address, that is A[0] = 0!  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
399  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 9 XGATE (S12XGATEV2)  
9.8.1.1  
Naming Conventions  
RD  
Destination register, allowed range is R0–R7  
Low byte of the destination register, bits [7:0]  
High byte of the destination register, bits [15:8]  
Source register, allowed range is R0–R7  
Low byte of the source register, bits [7:0]  
High byte of the source register, bits[15:8]  
RD.L  
RD.H  
RS, RS1, RS2  
RS.L, RS1.L, RS2.L  
RS.H, RS1.H, RS2.H  
RB  
Base register for indexed addressing modes, allowed  
range is R0–R7  
RI  
Offset register for indexed addressing modes with  
register offset, allowed range is R0–R7  
RI+  
Offset register for indexed addressing modes with  
register offset and post-increment,  
Allowed range is R0–R7 (R0+ is equivalent to R0)  
–RI  
Offset register for indexed addressing modes with  
register offset and pre-decrement,  
Allowed range is R0–R7 (–R0 is equivalent to R0)  
NOTE  
Even though register R1 is intended to be used as a pointer to the variable  
segment, it may be used as a general purpose data register as well.  
Selecting R0 as destination register will discard the result of the instruction.  
Only the condition code register will be updated  
9.8.1.2  
Inherent Addressing Mode (INH)  
Instructions that use this addressing mode either have no operands or all operands are in internal XGATE  
registers:.  
Examples  
BRK  
RTS  
9.8.1.3  
Immediate 3-Bit Wide (IMM3)  
Operands for immediate mode instructions are included in the instruction stream and are fetched into the  
instruction queue along with the rest of the 16 Bit instruction. The ’#’ symbol is used to indicate an  
immediate addressing mode operand. This address mode is used for semaphore instructions.  
Examples:  
CSEM  
SSEM  
#1  
#3  
; Unlock semaphore 1  
; Lock Semaphore 3  
MC9S12XDP512 Data Sheet, Rev. 2.11  
400  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
9.8.1.4  
Immediate 4-Bit Wide (IMM4)  
The 4-bit wide immediate addressing mode is supported by all shift instructions.  
RD = RD imm4  
Examples:  
LSL  
LSR  
R4,#1  
R4,#3  
; R4 = R4 << 1; shift register R4 by 1 bit to the left  
; R4 = R4 >> 3; shift register R4 by 3 bits to the right  
9.8.1.5  
Immediate 8-Bit Wide (IMM8)  
The 8-bit wide immediate addressing mode is supported by four major commands (ADD, SUB, LD,  
CMP).  
RD = RD imm8  
Examples:  
ADDL  
SUBL  
LDH  
R1,#1  
R2,#2  
R3,#3  
R4,#4  
; adds an 8 Bit value to register R1  
; subtracts an 8 Bit value from register R2  
; loads an 8 bit immediate into the high byte of Register R3  
; compares the low byte of register R4 with an immediate value  
CMPL  
9.8.1.6  
Immediate 16-Bit Wide (IMM16)  
The 16-bit wide immediate addressing mode is a construct to simplify assembler code. Instructions which  
offer this mode are translated into two opcodes using the eight bit wide immediate addressing mode.  
RD = RD imm16  
Examples:  
LDW  
ADD  
R4,#$1234  
R4,#$5678  
; translated to LDL R4,#$34; LDH R4,#$12  
; translated to ADDL R4,#$78; ADDH R4,#$56  
9.8.1.7  
Monadic Addressing (MON)  
In this addressing mode only one operand is explicitly given. This operand can either be the source (f(RD)),  
the target (RD = f()), or both source and target of the operation (RD = f(RD)).  
Examples:  
JAL  
SIF  
R1  
R2  
; PC = R1, R1 = PC+2  
; Trigger IRQ associated with the channel number in R2.L  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
401  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
9.8.1.8  
Dyadic Addressing (DYA)  
In this mode the result of an operation between two registers is stored in one of the registers used as  
operands.  
RD = RD RS is the general register to register format, with register RD being the first operand and RS  
the second. RD and RS can be any of the 8 general purpose registers R0 … R7. If R0 is used as the  
destination register, only the condition code flags are updated. This addressing mode is used only for shift  
operations with a variable shift value  
Examples:  
LSL  
LSR  
R4,R5  
R4,R5  
; R4 = R4 << R5  
; R4 = R4 >> R5  
9.8.1.9  
Triadic Addressing (TRI)  
In this mode the result of an operation between two or three registers is stored into a third one.  
RD = RS1 RS2 is the general format used in the order RD, RS1, RS1. RD, RS1, RS2 can be any of the  
8 general purpose registers R0 … R7. If R0 is used as the destination register RD, only the condition code  
flags are updated. This addressing mode is used for all arithmetic and logical operations.  
Examples:  
ADC  
SUB  
R5,R6,R7  
R5,R6,R7  
; R5 = R6 + R7 + Carry  
; R5 = R6 - R7  
9.8.1.10 Relative Addressing 9-Bit Wide (REL9)  
A 9-bit signed word address offset is included in the instruction word. This addressing mode is used for  
conditional branch instructions.  
Examples:  
BCC  
BEQ  
REL9  
REL9  
; PC = PC + 2 + (REL9 << 1)  
; PC = PC + 2 + (REL9 << 1)  
9.8.1.11 Relative Addressing 10-Bit Wide (REL10)  
An 11-bit signed word address offset is included in the instruction word. This addressing mode is used for  
the unconditional branch instruction.  
Examples:  
BRA  
REL10  
; PC = PC + 2 + (REL10 << 1)  
9.8.1.12 Index Register plus Immediate Offset (IDO5)  
(RS, #offset5) provides an unsigned offset from the base register.  
Examples:  
LDB  
STW  
R4,(R1,#offset) ; loads a byte from R1+offset into R4  
R4,(R1,#offset) ; stores R4 as a word to R1+offset  
MC9S12XDP512 Data Sheet, Rev. 2.11  
402  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
9.8.1.13 Index Register plus Register Offset (IDR)  
For load and store instructions (RS, RI) provides a variable offset in a register.  
Examples:  
LDB  
STW  
R4,(R1,R2)  
R4,(R1,R2)  
; loads a byte from R1+R2 into R4  
; stores R4 as a word to R1+R2  
9.8.1.14 Index Register plus Register Offset with Post-increment (IDR+)  
[RS, RI+] provides a variable offset in a register, which is incremented after accessing the memory. In case  
of a byte access the index register will be incremented by one. In case of a word access it will be  
incremented by two.  
Examples:  
LDB  
STW  
R4,(R1,R2+)  
R4,(R1,R2+)  
; loads a byte from R1+R2 into R4, R2+=1  
; stores R4 as a word to R1+R2, R2+=2  
9.8.1.15 Index Register plus Register Offset with Pre-decrement (–IDR)  
[RS, -RI] provides a variable offset in a register, which is decremented before accessing the memory. In  
case of a byte access the index register will be decremented by one. In case of a word access it will be  
decremented by two.  
Examples:  
LDB  
STW  
R4,(R1,-R2)  
R4,(R1,-R2)  
; R2 -=1, loads a byte from R1+R2 into R4  
; R2 -=2, stores R4 as a word to R1+R2  
9.8.2  
Instruction Summary and Usage  
Load & Store Instructions  
9.8.2.1  
Any register can be loaded either with an immediate or from the address space using indexed addressing  
modes.  
LDL  
LDW  
RD,#IMM8  
RD,(RB,RI)  
; loads an immediate 8 bit value to the lower byte of RD  
; loads data using RB+RI as effective address  
LDB  
RD,(RB, RI+)  
; loads data using RB+RI as effective address  
; followed by an increment of RI depending on  
; the size of the operation  
The same set of modes is available for the store instructions  
STB  
RS,(RB, RI)  
; stores data using RB+RI as effective address  
STW  
RS,(RB, RI+)  
; stores data using RB+RI as effective address  
; followed by an increment of RI depending on  
; the size of the operation.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
403  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 9 XGATE (S12XGATEV2)  
9.8.2.2  
Logic and Arithmetic Instructions  
All logic and arithmetic instructions support the 8-bit immediate addressing mode (IMM8: RD = RD ∗  
#IMM8) and the triadic addressing mode (TRI: RD = RS1 RS2).  
All arithmetic is considered as signed, sign, overflow, zero and carry flag will be updated. The carry will  
not be affected for logical operations.  
ADDL  
ANDH  
R2,#1  
R4,#$FE  
; increment R2  
; R4.H = R4.H & $FE, clear lower bit of higher byte  
ADD  
SUB  
R3,R4,R5  
R3,R4,R5  
; R3 = R4 + R5  
; R3 = R4 - R5  
AND  
OR  
R3,R4,R5  
R3,R4,R5  
; R3 = R4 & R5 logical AND on the whole word  
; R3 = R4 | R5  
9.8.2.3  
Register – Register Transfers  
This group comprises transfers from and to some special registers  
TFR  
R3,CCR  
; transfers the condition code register to the low byte of  
; register R3  
Branch Instructions  
The branch offset is +255 words or -256 words counted from the beginning of the next instruction. Since  
instructions have a fixed 16 bit width, the branch offsets are word aligned by shifting the offset value by 2.  
BEQ  
label  
; if Z flag = 1 branch to label  
An unconditional branch allows a +511 words or -512 words branch distance.  
BRA  
label  
9.8.2.4  
Shift Instructions  
Shift operations allow the use of a 4 bit wide immediate value to identify a shift width within a 16 bit word.  
For shift operations a value of 0 does not shift at all, while a value of 15 shifts the register RD by 15 bits.  
In a second form the shift value is contained in the bits 3:0 of the register RS.  
Examples:  
LSL  
LSR  
ASR  
R4,#1  
R4,#3  
R4,R2  
; R4 = R4 << 1; shift register R4 by 1 bit to the left  
; R4 = R4 >> 3; shift register R4 by 3 bits to the right  
; R4 = R4 >> R2;arithmetic shift register R4 right by the amount  
;
of bits contained in R2[3:0].  
MC9S12XDP512 Data Sheet, Rev. 2.11  
404  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
9.8.2.5  
Bit Field Operations  
This addressing mode is used to identify the position and size of a bit field for insertion or extraction. The  
width and offset are coded in the lower byte of the source register 2, RS2. The content of the upper byte is  
ignored. An offset of 0 denotes the right most position and a width of 0 denotes 1 bit. These instructions  
are very useful to extract, insert, clear, set or toggle portions of a 16 bit word.  
W4  
O4  
RS2  
RS1  
15  
15  
5
2
0
W4=3, O4=2  
Bit Field Extract  
Bit Field Insert  
3
0
RD  
Figure 9-23. Bit Field Addressing  
BFEXT  
R3,R4,R5 ; R5: W4 bits offset O4, will be extracted from R4 into R3  
9.8.2.6  
Special Instructions for DMA Usage  
The XGATE offers a number of additional instructions for flag manipulation, program flow control and  
debugging:  
1. SIF: Set a channel interrupt flag  
2. SSEM: Test and set a hardware semaphore  
3. CSEM: Clear a hardware semaphore  
4. BRK: Software breakpoint  
5. NOP: No Operation  
6. RTS: Terminate the current thread  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
405  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Cycle Notation  
Table 9-17 show the XGATE access detail notation. Each code letter equals one XGATE cycle. Each letter  
implies additional wait cycles if memories or peripherals are not accessible. Memories or peripherals are  
not accessible if they are blocked by the S12X_CPU. In addition to this Peripherals are only accessible  
every other XGATE cycle. Uppercase letters denote 16-bit operations. Lowercase letters denote 8-bit  
operations. The XGATE is able to perform two bus or wait cycles per S12X_CPU cycle.  
Table 9-17. Access Detail Notation  
V— Vector fetch: always an aligned word read, lasts for at least one RISC core cycle  
P— Program word fetch: always an aligned word read, lasts for at least one RISC core cycle  
r— 8-bit data read: lasts for at least one RISC core cycle  
R— 16-bit data read: lasts for at least one RISC core cycle  
w— 8-bit data write: lasts for at least one RISC core cycle  
W— 16-bit data write: lasts for at least one RISC core cycle  
A— Alignment cycle: no read or write, lasts for zero or one RISC core cycles  
f— Free cycle: no read or write, lasts for one RISC core cycles  
Special Cases  
PP/P— Branch: PPif branch taken, Pif not  
9.8.4  
Thread Execution  
When the RISC core is triggered by an interrupt request (see Figure 9-1) it first executes a vector fetch  
sequence which performs three bus accesses:  
1. A V-cycle to fetch the initial content of the program counter.  
2. A V-cycle to fetch the initial content of the data segment pointer (R1).  
3. A P-cycle to load the initial opcode.  
Afterwards a sequence of instructions (thread) is executed which is terminated by an "RTS" instruction. If  
further interrupt requests are pending after a thread has been terminated, a new vector fetch will be  
performed. Otherwise the RISC core will idle until a new interrupt request is received. A thread can not be  
interrupted by an interrupt request.  
9.8.5  
Instruction Glossary  
This section describes the XGATE instruction set in alphabetical order.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
406  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 9 XGATE (S12XGATEV2)  
Add with Carry  
ADC  
ADC  
Operation  
RS1 + RS2 + C RD  
Adds the content of register RS1, the content of register RS2 and the value of the Carry bit using binary  
addition and stores the result in the destination register RD. The Zero Flag is also carried forward from the  
previous operation allowing 32 and more bit additions.  
Example:  
ADC  
ADC  
BCC  
R6,R2,R2  
R7,R3,R3 ; R7:R6 = R5:R4 + R3:R2  
; conditional branch on 32 bit addition  
CCR Effects  
N
Z
V
C
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000 and Z was set before this operation; cleared otherwise.  
V: Set if a two´s complement overflow resulted from the operation; cleared otherwise.  
RS1[15] & RS2[15] & RD[15]  
| RS1[15] & RS2[15] & RD[15]  
new  
new  
C: Set if there is a carry from bit 15 of the result; cleared otherwise.  
RS1[15] & RS2[15] | RS1[15] & RD[15]  
| RS2[15] & RD[15]  
new  
new  
Code and CPU Cycles  
Address  
Mode  
Source Form  
ADC RD, RS1, RS2  
Machine Code  
RD RS1  
Cycles  
TRI  
0
0
0
1
1
RS2  
1
1
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
407  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Add without Carry  
ADD  
ADD  
Operation  
RS1 + RS2 RDRD + IMM16 RD (translates to ADDL RD, #IMM16[7:0]; ADDH RD, #[15:8])  
Performs a 16-bit addition and stores the result in the destination register RD.  
CCR Effects  
N
Z
V
C
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: Set if a two´s complement overflow resulted from the operation; cleared otherwise.  
RS1[15] & RS2[15] & RD[15]  
| RS1[15] & RS2[15] & RD[15]  
new  
new  
RD[15] & IMM16[15] & RD[15]  
| RD[15] & IMM16[15] & RD[15]  
old new  
old  
new  
C: Set if there is a carry from bit 15 of the result; cleared otherwise.  
RS1[15] & RS2[15] | RS1[15] & RD[15]  
| RS2[15] & RD[15]  
new  
new  
RD[15] & IMM16[15] | RD[15] & RD[15]  
| IMM16[15] & RD[15]  
new  
old  
old  
new  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
ADD RD, RS1, RS2  
ADD RD, #IMM16  
TRI  
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
RD  
RD  
RD  
RS1  
RS2  
1
0
P
P
P
IMM8  
IMM8  
IMM16[7:0]  
IMM16[15:8]  
MC9S12XDP512 Data Sheet, Rev. 2.11  
408  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Add Immediate 8-Bit Constant  
(High Byte)  
ADDH  
ADDH  
Operation  
RD + IMM8:$00 RD  
Adds the content of high byte of register RD and a signed immediate 8-Bit constant using binary addition  
and stores the result in the high byte of the destination register RD. This instruction can be used after an  
ADDL for a 16-bit immediate addition.  
Example:  
ADDL  
ADDH  
R2,#LOWBYTE  
R2,#HIGHBYTE  
; R2 = R2 + 16 Bit immediate  
CCR Effects  
N
Z
V
C
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: Set if a two´s complement overflow resulted from the operation; cleared otherwise.  
RD[15] & IMM8[7] & RD[15]  
| RD[15] & IMM8[7] & RD[15]  
old  
new  
old new  
C: Set if there is a carry from the bit 15 of the result; cleared otherwise.  
RD[15] & IMM8[7] | RD[15] & RD[15]  
| IMM8[7] & RD[15]  
old  
old  
new  
new  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
ADDH RD, #IMM8  
IMM8  
1
1
1
0
1
RD  
IMM8  
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
409  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Add Immediate 8-Bit Constant  
(Low Byte)  
ADDL  
ADDL  
Operation  
RD + $00:IMM8 RD  
Adds the content of register RD and an unsigned immediate 8-Bit constant using binary addition and stores  
the result in the destination register RD. This instruction must be used first for a 16-bit immediate addition  
in conjunction with the ADDH instruction.  
CCR Effects  
N
Z
V
C
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: Set if a two´s complement overflow resulted from the 8-bit operation; cleared otherwise.  
RD[15] & RD[15]  
old  
new  
C: Set if there is a carry from bit 7 to bit 8 of the result; cleared otherwise.  
RD[15] & RD[15]  
old  
new  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
ADDL RD, #IMM8  
IMM8  
1
1
1
0
0
RD  
IMM8  
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
410  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Logical AND  
AND  
AND  
Operation  
RS1 & RS2 RDRD & IMM16 RD (translates to ANDL RD, #IMM[7:0]; ANDH RD,  
#IMM16[15:8])  
Performs a bit wise logical AND of two 16-bit values and stores the result in the destination register RD.  
Remark: There is no complement to the BITH and BITL functions. This can be imitated by using R0 as a  
destination register. AND R0, RS1, RS2 performs a bit wise test without storing a result.  
CCR Effects  
N
Z
V
C
0
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: 0; cleared.  
C: Not affected.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
Cycles  
AND RD, RS1, RS2  
AND RD, #IMM16  
TRI  
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
RD  
RD  
RD  
RS1  
RS2  
0
0
P
P
P
IMM8  
IMM8  
IMM16[7:0]  
IMM16[15:8]  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
411  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Logical AND Immediate 8-Bit Constant  
(High Byte)  
ANDH  
ANDH  
Operation  
RD.H & IMM8 RD.H  
Performs a bit wise logical AND between the high byte of register RD and an immediate 8-Bit constant  
and stores the result in the destination register RD.H. The low byte of RD is not affected.  
CCR Effects  
N
Z
V
C
0
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the 8-bit result is $00; cleared otherwise.  
V: 0; cleared.  
C: Not affected.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
Cycles  
ANDH RD, #IMM8  
IMM8  
1
0
0
0
1
RD  
IMM8  
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
412  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Logical AND Immediate 8-Bit Constant  
(Low Byte)  
ANDL  
ANDL  
Operation  
RD.L & IMM8 RD.L  
Performs a bit wise logical AND between the low byte of register RD and an immediate 8-Bit constant and  
stores the result in the destination register RD.L. The high byte of RD is not affected.  
CCR Effects  
N
Z
V
C
0
N: Set if bit 7 of the result is set; cleared otherwise.  
Z: Set if the 8-Bit result is $00; cleared otherwise.  
V: 0; cleared.  
C: Not affected.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
Cycles  
ANDL RD, #IMM8  
IMM8  
1
0
0
0
0
RD  
IMM8  
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
413  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Arithmetic Shift Right  
ASR  
ASR  
Operation  
n
b15  
RD  
C
n = RS or IMM4  
Shifts the bits in register RD n positions to the right. The higher n bits of the register RD become filled  
with the sign bit (RD[15]). The carry flag will be updated to the bit contained in RD[n-1] before the shift  
for n > 0.  
n can range from 0 to 16.  
In immediate address mode, n is determined by the operand IMM4. n is considered to be 16 in IMM4 is  
equal to 0.  
In dyadic address mode, n is determined by the content of RS. n is considered to be 16 if the content of RS  
is greater than 15.  
CCR Effects  
N
Z
V
C
0
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: Set if a two´s complement overflow resulted from the operation; cleared otherwise.  
RD[15] ^ RD[15]  
old  
new  
C: Set if n > 0 and RD[n-1] = 1; if n = 0 unaffected.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
Cycles  
ASR RD, #IMM4  
ASR RD, RS  
IMM4  
DYA  
0
0
0
0
0
0
0
0
1
1
RD  
RD  
IMM4  
RS  
1
0
0
0
0
0
1
1
P
P
1
MC9S12XDP512 Data Sheet, Rev. 2.11  
414  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Branch if Carry Cleared  
(Same as BHS)  
BCC  
BCC  
Operation  
If C = 0, then PC + $0002 + (REL9 << 1) PC  
Tests the Carry flag and branches if C = 0.  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
BCC REL9  
REL9  
0
0
1
0
0
0
0
REL9  
PP/P  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
415  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Branch if Carry Set  
(Same as BLO)  
BCS  
BCS  
Operation  
If C = 1, then PC + $0002 + (REL9 << 1) PC  
Tests the Carry flag and branches if C = 1.  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
BCS REL9  
REL9  
0
0
1
0
0
0
1
REL9  
PP/P  
MC9S12XDP512 Data Sheet, Rev. 2.11  
416  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Branch if Equal  
BEQ  
BEQ  
Operation  
If Z = 1, then PC + $0002 + (REL9 << 1) PC  
Tests the Zero flag and branches if Z = 1.  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
BEQ REL9  
REL9  
0
0
1
0
0
1
1
REL9  
PP/P  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
417  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Bit Field Extract  
BFEXT  
BFEXT  
Operation  
RS1[(o+w):o] RD[w:0]; 0 RD[15:(w+1)]  
w = (RS2[7:4])  
o = (RS2[3:0])  
Extracts w+1 bits from register RS1 starting at position o and writes them right aligned into register RD.  
The remaining bits in RD will be cleared. If (o+w) > 15 only bits [15:o] get extracted.  
15  
15  
7
4
3
0
0
W4  
O4  
RS2  
RS1  
5
2
W4=3, O4=2  
Bit Field Extract  
15  
3
0
0
RD  
CCR Effects  
N
0
Z
V
0
C
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: 0; cleared.  
C: Not affected.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
RD RS1  
Cycles  
BFEXT RD, RS1, RS2  
TRI  
0
1
1
0
0
RS2  
1
1
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
418  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Bit Field Find First One  
BFFO  
BFFO  
Operation  
FirstOne (RS) RD;  
Searches the first “1” beginning from the MSB=15 down to LSB=0 in register RS and places the result into  
the destination register RD. The upper bits of RD are cleared. In case the content of RS is equal to $0000,  
RD will be cleared and the carry flag will be set. This is used to distinguish a “1” in position 0 versus no  
“1” in the whole RS register at all.  
CCR Effects  
N
Z
V
C
0
0
N: 0; cleared.  
Z: Set if the result is $0000; cleared otherwise.  
V: 0; cleared.  
1
C: Set if RS = $0000 ; cleared otherwise.  
1
Before executing the instruction  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
RD RS  
Cycles  
BFFO RD, RS  
DYA  
0
0
0
0
1
1
0
0
0
0
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
419  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Bit Field Insert  
BFINS  
BFINS  
Operation  
RS1[w:0] RD[(w+o):o];  
w = (RS2[7:4])  
o = (RS2[3:0])  
Extracts w+1 bits from register RS1 starting at position 0 and writes them into register RD at position o.  
The remaining bits in RD are not affected. If (o+w) > 15 the upper bits are ignored. Using R0 as a RS1,  
this command can be used to clear bits.  
15  
7
4
3
0
W4  
O4  
RS2  
RS1  
15  
3
0
Bit Field Insert  
15  
5
2
0
W4=3, O4=2  
RD  
CCR Effects  
N
Z
V
C
0
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: 0; cleared.  
C: Not affected.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
RD RS1  
Cycles  
BFINS RD, RS1, RS2  
TRI  
0
1
1
0
1
RS2  
1
1
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
420  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Bit Field Insert and Invert  
BFINSI  
BFINSI  
Operation  
!RS1[w:0] RD[w+o:o];  
w = (RS2[7:4])  
o = (RS2[3:0])  
Extracts w+1 bits from register RS1 starting at position 0, inverts them and writes into register RD at  
position o. The remaining bits in RD are not affected. If (o+w) > 15 the upper bits are ignored. Using R0  
as a RS1, this command can be used to set bits.  
15  
7
4
3
0
W4  
O4  
RS2  
RS1  
15  
3
0
Inverted Bit Field Insert  
15  
5
2
0
W4=3, O4=2  
RD  
CCR Effects  
N
Z
V
C
0
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: 0; cleared.  
C: Not affected.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
RD RS1  
Cycles  
BFINSI RD, RS1, RS2  
TRI  
0
1
1
1
0
RS2  
1
1
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
421  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Bit Field Insert and XNOR  
BFINSX  
BFINSX  
Operation  
!(RS1[w:0] ^ RD[w+o:o]) RD[w+o:o];  
w = (RS2[7:4])  
o = (RS2[3:0])  
Extracts w+1 bits from register RS1 starting at position 0, performs an XNOR with RD[w+o:o] and writes  
the bits back. The remaining bits in RD are not affected. If (o+w) > 15 the upper bits are ignored. Using  
R0 as a RS1, this command can be used to toggle bits.  
15  
7
4
3
0
W4  
O4  
RS2  
RS1  
15  
3
0
Bit Field Insert XNOR  
15  
5
2
0
W4=3, O4=2  
RD  
CCR Effects  
N
Z
V
C
0
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: 0; cleared.  
C: Not affected.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
RD RS1  
Cycles  
BFINSX RD, RS1, RS2  
TRI  
0
1
1
1
1
RS2  
1
1
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
422  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Branch if Greater than or Equal to Zero  
BGE  
BGE  
Operation  
If N ^ V = 0, then PC + $0002 + (REL9 << 1) PC  
Branch instruction to compare signed numbers.  
Branch if RS1 RS2:  
SUB  
R0,RS1,RS2  
BGE  
REL9  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
BGE REL9  
REL9  
0
0
1
1
0
1
0
REL9  
PP/P  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
423  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Branch if Greater than Zero  
BGT  
BGT  
Operation  
If Z | (N ^ V) = 0, then PC + $0002 + (REL9 << 1) PC  
Branch instruction to compare signed numbers.  
Branch if RS1 > RS2:  
SUB  
R0,RS1,RS2  
BGE  
REL9  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
BGT REL9  
REL9  
0
0
1
1
1
0
0
REL9  
PP/P  
MC9S12XDP512 Data Sheet, Rev. 2.11  
424  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Branch if Higher  
BHI  
BHI  
Operation  
If C | Z = 0, then PC + $0002 + (REL9 << 1) PC  
Branch instruction to compare unsigned numbers.  
Branch if RS1 > RS2:  
SUB  
R0,RS1,RS2  
BHI  
REL9  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
BHI REL9  
REL9  
0
0
1
1
0
0
0
REL9  
PP/P  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
425  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Branch if Higher or Same  
(Same as BCC)  
BHS  
BHS  
Operation  
If C = 0, then PC + $0002 + (REL9 << 1) PC  
Branch instruction to compare unsigned numbers.  
Branch if RS1 RS2:  
SUB  
R0,RS1,RS2  
BHS  
REL9  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
BHS REL9  
REL9  
0
0
1
0
0
0
0
REL9  
PP/P  
MC9S12XDP512 Data Sheet, Rev. 2.11  
426  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Bit Test Immediate 8-Bit Constant  
(High Byte)  
BITH  
BITH  
Operation  
RD.H & IMM8 NONE  
Performs a bit wise logical AND between the high byte of register RD and an immediate 8-Bit constant.  
Only the condition code flags get updated, but no result is written back  
CCR Effects  
N
Z
V
C
0
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the 8-bit result is $00; cleared otherwise.  
V: 0; cleared.  
C: Not affected.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
Cycles  
BITH RD, #IMM8  
IMM8  
1
0
0
1
1
RD  
IMM8  
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
427  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Bit Test Immediate 8-Bit Constant  
(Low Byte)  
BITL  
BITL  
Operation  
RD.L & IMM8 NONE  
Performs a bit wise logical AND between the low byte of register RD and an immediate 8-Bit constant.  
Only the condition code flags get updated, but no result is written back.  
CCR Effects  
N
Z
V
C
0
N: Set if bit 7 of the result is set; cleared otherwise.  
Z: Set if the 8-bit result is $00; cleared otherwise.  
V: 0; cleared.  
C: Not affected.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
Cycles  
BITL RD, #IMM8  
IMM8  
1
0
0
1
0
RD  
IMM8  
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
428  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Branch if Less or Equal to Zero  
BLE  
BLE  
Operation  
If Z | (N ^ V) = 1, then PC + $0002 + (REL9 << 1) PC  
Branch instruction to compare signed numbers.  
Branch if RS1 RS2:  
SUB  
R0,RS1,RS2  
BLE  
REL9  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
BLE REL9  
REL9  
0
0
1
1
1
0
1
REL9  
PP/P  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
429  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Branch if Carry Set  
(Same as BCS)  
BLO  
BLO  
Operation  
If C = 1, then PC + $0002 + (REL9 << 1) PC  
Branch instruction to compare unsigned numbers.  
Branch if RS1 < RS2:  
SUB  
R0,RS1,RS2  
BLO  
REL9  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
BLO REL9  
REL9  
0
0
1
0
0
0
1
REL9  
PP/P  
MC9S12XDP512 Data Sheet, Rev. 2.11  
430  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Branch if Lower or Same  
BLS  
BLS  
Operation  
If C | Z = 1, then PC + $0002 + (REL9 << 1) PC  
Branch instruction to compare unsigned numbers.  
Branch if RS1 RS2:  
SUB  
R0,RS1,RS2  
BLS  
REL9  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
BLS REL9  
REL9  
0
0
1
1
0
0
1
REL9  
PP/P  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
431  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Branch if Lower than Zero  
BLT  
BLT  
Operation  
If N ^ V = 1, then PC + $0002 + (REL9 << 1) PC  
Branch instruction to compare signed numbers.  
Branch if RS1 < RS2:  
SUB  
R0,RS1,RS2  
BLT  
REL9  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
BLT REL9  
REL9  
0
0
1
1
0
1
1
REL9  
PP/P  
MC9S12XDP512 Data Sheet, Rev. 2.11  
432  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Branch if Minus  
BMI  
BMI  
Operation  
If N = 1, then PC + $0002 + (REL9 << 1) PC  
Tests the Sign flag and branches if N = 1.  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
BMI REL9  
REL9  
0
0
1
0
1
0
1
REL9  
PP/P  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
433  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Branch if Not Equal  
BNE  
BNE  
Operation  
If Z = 0, then PC + $0002 + (REL9 << 1) PC  
Tests the Zero flag and branches if Z = 0.  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
BNE REL9  
REL9  
0
0
1
0
0
1
0
REL9  
PP/P  
MC9S12XDP512 Data Sheet, Rev. 2.11  
434  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Branch if Plus  
BPL  
BPL  
Operation  
If N = 0, then PC + $0002 + (REL9 << 1) PC  
Tests the Sign flag and branches if N = 0.  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
BPL REL9  
REL9  
0
0
1
0
1
0
0
REL9  
PP/P  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
435  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Branch Always  
BRA  
BRA  
Operation  
PC + $0002 + (REL10 << 1) PC  
Branches always  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
BRA REL10  
REL10  
0
0
1
1
1
1
REL10  
PP  
MC9S12XDP512 Data Sheet, Rev. 2.11  
436  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Break  
BRK  
BRK  
Operation  
Put XGATE into Debug Mode (see Section 9.6.2, “Entering Debug Mode”)and signals a Software  
breakpoint to the S12X_DBG module (see section 4.9 of the S12X_DBG Section).  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
BRK  
INH  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
PAff  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
437  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Branch if Overflow Cleared  
BVC  
BVC  
Operation  
If V = 0, then PC + $0002 + (REL9 << 1) PC  
Tests the Overflow flag and branches if V = 0.  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
BVC REL9  
REL9  
0
0
1
0
1
1
0
REL9  
PP/P  
MC9S12XDP512 Data Sheet, Rev. 2.11  
438  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Branch if Overflow Set  
BVS  
BVS  
Operation  
If V = 1, then PC + $0002 + (REL9 << 1) PC  
Tests the Overflow flag and branches if V = 1.  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
BVS REL9  
REL9  
0
0
1
0
1
1
1
REL9  
PP/P  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
439  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Compare  
CMP  
CMP  
Operation  
RS2 – RS1 NONE (translates to SUB R0, RS1, RS2)  
RD – IMM16 NONE (translates to CMPL RD, #IMM16[7:0]; CPCH RD, #IMM16[15:8])  
Subtracts two 16-bit values and discards the result.  
CCR Effects  
N
Z
V
C
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: Set if a two´s complement overflow resulted from the operation; cleared otherwise.  
RS1[15] & RS2[15] & result[15] | RS1[15] & RS2[15] & result[15]  
RD[15] & IMM16[15] & result[15] | RD[15] & IMM16[15] & result[15]  
C: Set if there is a carry from the bit 15 of the result; cleared otherwise.  
RS1[15] & RS2[15] | RS1[15] & result[15] | RS2[15] & result[15]  
RD[15] & IMM16[15] | RD[15] & result[15] | IMM16[15] & result[15]  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
CMP RS1, RS2  
CMP RS, #IMM16  
TRI  
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
RS1  
RS2  
0
0
P
P
P
IMM8  
IMM8  
RS  
RS  
IMM16[7:0]  
IMM16[15:8]  
MC9S12XDP512 Data Sheet, Rev. 2.11  
440  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Compare Immediate 8-Bit Constant  
(Low Byte)  
CMPL  
CMPL  
Operation  
RS.L – IMM8 NONE, only condition code flags get updated  
Subtracts the 8-Bit constant IMM8 contained in the instruction code from the low byte of the source  
register RS.L using binary subtraction and updates the condition code register accordingly.  
Remark: There is no equivalent operation using triadic addressing. Comparing the values of two registers  
can be performed by using the subtract instruction with R0 as destination register.  
CCR Effects  
N
Z
V
C
N: Set if bit 7 of the result is set; cleared otherwise.  
Z: Set if the 8-bit result is $00; cleared otherwise.  
V: Set if a two´s complement overflow resulted from the 8-bit operation; cleared otherwise.  
RS[7] & IMM8[7] & result[7] | RS[7] & IMM8[7] & result[7]  
C: Set if there is a carry from the Bit 7 to Bit 8 of the result; cleared otherwise.  
RS[7] & IMM8[7] | RS[7] & result[7] | IMM8[7] & result[7]  
Code and CPU Cycles  
Address  
Mode  
Source Form  
CMPL RS, #IMM8  
Machine Code  
Cycles  
IMM8  
1
1
0
1
0
RS  
IMM8  
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
441  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
One’s Complement  
COM  
COM  
Operation  
~RS RD (translates to XNOR RD, R0, RS)  
~RD RD (translates to XNOR RD, R0, RD)  
Performs a one’s complement on a general purpose register.  
CCR Effects  
N
Z
V
C
0
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: 0; cleared.  
C: Not affected.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
Cycles  
COM RD, RS  
COM RD  
TRI  
TRI  
0
0
0
0
0
0
1
1
0
0
RD  
RD  
0
0
0
0
0
0
RS  
RD  
1
1
1
1
P
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
442  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Compare with Carry  
CPC  
CPC  
Operation  
RS2 – RS1 − Χ ⇒ NONE (translates to SBC R0, RS1, RS2)  
Subtracts the carry bit and the content of register RS2 from the content of register RS1 using binary  
subtraction and discards the result.  
CCR Effects  
N
Z
V
C
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: Set if a two´s complement overflow resulted from the operation; cleared otherwise.  
RS1[15] & RS2[15] & result[15] | RS1[15] & RS2[15] & result[15]  
C: Set if there is a carry from the bit 15 of the result; cleared otherwise.  
RS1[15] & RS2[15] | RS1[15] & result[15] | RS2[15] & result[15]  
Code and CPU Cycles  
Address  
Mode  
Source Form  
CPC RS1, RS2  
Machine Code  
RS1  
Cycles  
TRI  
0
0
0
1
1
0
0
0
RS2  
0
1
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
443  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Compare Immediate 8-Bit Constant with  
Carry (High Byte)  
CPCH  
CPCH  
Operation  
RS.H - IMM8 - C NONE, only condition code flags get updated  
Subtracts the carry bit and the 8-Bit constant IMM8 contained in the instruction code from the high byte  
of the source register RD using binary subtraction and updates the condition code register accordingly. The  
carry bit and Zero bits are taken into account to allow a 16-Bit compare in the form of  
CMPL  
CPCH  
BCC  
R2,#LOWBYTE  
R2,#HIGHBYTE  
; branch condition  
Remark: There is no equivalent operation using triadic addressing. Comparing the values of two registers  
can be performed by using the subtract instruction with R0 as destination register.  
CCR Effects  
N
Z
V
C
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $00 and Z was set before this operation; cleared otherwise.  
V: Set if a two´s complement overflow resulted from the operation; cleared otherwise.  
RS[15] & IMM8[7] & result[15] | RS[15] & IMM8[7] & result[15]  
C: Set if there is a carry from the bit 15 of the result; cleared otherwise.  
RS[15] & IMM8[7] | RS[15] & result[15] | IMM8[7] & result[15]  
Code and CPU Cycles  
Address  
Mode  
Source Form  
CPCH RD, #IMM8  
Machine Code  
Cycles  
IMM8  
1
1
0
1
1
RS  
IMM8  
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
444  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Clear Semaphore  
CSEM  
CSEM  
Operation  
Unlocks a semaphore that was locked by the RISC core.  
In monadic address mode, bits RS[2:0] select the semaphore to be cleared.  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
CSEM #IMM3  
CSEM RS  
IMM3  
MON  
0
0
0
0
0
0
0
0
0
0
IMM3  
RS  
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
PA  
PA  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
445  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Logical Shift Left with Carry  
CSL  
CSL  
Operation  
n
C
RD  
C
C
C
C
n bits  
n = RS or IMM4  
Shifts the bits in register RD n positions to the left. The lower n bits of the register RD become filled with  
the carry flag. The carry flag will be updated to the bit contained in RD[16-n] before the shift for n > 0.  
n can range from 0 to 16.  
In immediate address mode, n is determined by the operand IMM4. n is considered to be 16 in IMM4 is  
equal to 0.  
In dyadic address mode, n is determined by the content of RS. n is considered to be 16 if the content of RS  
is greater than 15.  
CCR Effects  
N
Z
V
C
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: Set if a two´s complement overflow resulted from the operation; cleared otherwise.  
RD[15] ^ RD[15]  
old  
new  
C: Set if n > 0 and RD[16-n] = 1; if n = 0 unaffected.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
Cycles  
CSL RD, #IMM4  
CSL RD, RS  
IMM4  
DYA  
0
0
0
0
0
0
0
0
1
1
RD  
RD  
IMM4  
RS  
1
0
0
0
1
1
0
0
P
P
1
MC9S12XDP512 Data Sheet, Rev. 2.11  
446  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Logical Shift Right with Carry  
CSR  
CSR  
Operation  
n
C
C
C
C
RD  
C
n bits  
n = RS or IMM4  
Shifts the bits in register RD n positions to the right. The higher n bits of the register RD become filled  
with the carry flag. The carry flag will be updated to the bit contained in RD[n-1] before the shift for n > 0.  
n can range from 0 to 16.  
In immediate address mode, n is determined by the operand IMM4. n is considered to be 16 in IMM4 is  
equal to 0.  
In dyadic address mode, n is determined by the content of RS. n is considered to be 16 if the content of RS  
is greater than 15.  
CCR Effects  
N
Z
V
C
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: Set if a two´s complement overflow resulted from the operation; cleared otherwise.  
RD[15] ^ RD[15]  
old  
new  
C: Set if n > 0 and RD[n-1] = 1; if n = 0 unaffected.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
Cycles  
CSR RD, #IMM4  
CSR RD, RS  
IMM4  
DYA  
0
0
0
0
0
0
0
0
1
1
RD  
RD  
IMM4  
RS  
1
0
0
0
1
1
1
1
P
P
1
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
447  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Jump and Link  
JAL  
JAL  
Operation  
PC + $0002 RD; RD PC  
Jumps to the address stored in RD and saves the return address in RD.  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
RD  
Cycles  
JAL RD  
MON  
0
0
0
0
0
1
1
1
1
0
1
1
0
PP  
MC9S12XDP512 Data Sheet, Rev. 2.11  
448  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Load Byte from Memory  
(Low Byte)  
LDB  
LDB  
Operation  
M[RB, #OFFS5] ⇒ RD.L; $00 RD.H  
M[RB, RI] ⇒ RD.L; $00 RD.H  
M[RB, RI] RD.L; $00 RD.H; RI+1 RI;  
RI-1 RI; M[RS, RI] RD.L; $00 RD.H  
1
Loads a byte from memory into the low byte of register RD. The high byte is cleared.  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
LDB RD, (RB, #OFFS5)  
LDB RD, (RS, RI)  
IDO5  
IDR  
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
RD  
RD  
RD  
RD  
RB  
RB  
RB  
RB  
OFFS5  
Pr  
Pr  
Pr  
Pr  
RI  
0
0
1
0
1
0
LDB RD, (RS, RI+)  
LDB RD, (RS, -RI)  
IDR+  
-IDR  
RI  
RI  
1.If the same general purpose register is used as index (RI) and destination register (RD), the content of the register will not  
be incremented after the data move: M[RB, RI] RD.L; $00 RD.H  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
449  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Load Immediate 8-Bit Constant  
(High Byte)  
LDH  
LDH  
Operation  
IMM8 RD.H;  
Loads an eight bit immediate constant into the high byte of register RD. The low byte is not affected.  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
LDH RD, #IMM8  
IMM8  
1
1
1
1
1
RD  
IMM8  
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
450  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Load Immediate 8-Bit Constant  
(Low Byte)  
LDL  
LDL  
Operation  
IMM8 RD.L; $00 RD.H  
Loads an eight bit immediate constant into the low byte of register RD. The high byte is cleared.  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
LDL RD, #IMM8  
IMM8  
1
1
1
1
0
RD  
IMM8  
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
451  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Load Word from Memory  
LDW  
LDW  
Operation  
M[RB, #OFFS5] ⇒ RD  
M[RB, RI] ⇒ RD  
M[RB, RI] RD; RI+2 RI  
RI-2 RI; M[RS, RI] RD  
1
IMM16 RD (translates to LDL RD, #IMM16[7:0]; LDH RD, #IMM16[15:8])  
Loads a 16-bit value into the register RD.  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
LDW RD, (RB, #OFFS5)  
LDW RD, (RB, RI)  
LDW RD, (RB, RI+)  
LDW RD, (RB, -RI)  
LDW RD, #IMM16  
IDO5  
IDR  
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
RD  
RD  
RD  
RD  
RD  
RD  
RB  
RB  
RB  
RB  
OFFS5  
PR  
PR  
PR  
PR  
P
RI  
RI  
0
0
1
0
1
0
IDR+  
-IDR  
IMM8  
IMM8  
RI  
IMM16[7:0]  
IMM16[15:8]  
P
1. If the same general purpose register is used as index (RI) and destination register (RD), the content of the register will not be  
incremented after the data move: M[RB, RI] RD  
MC9S12XDP512 Data Sheet, Rev. 2.11  
452  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Logical Shift Left  
LSL  
LSL  
Operation  
n
C
RD  
0
0
0
0
n bits  
n = RS or IMM4  
Shifts the bits in register RD n positions to the left. The lower n bits of the register RD become filled with  
zeros. The carry flag will be updated to the bit contained in RD[16-n] before the shift for n > 0.  
n can range from 0 to 16.  
In immediate address mode, n is determined by the operand IMM4. n is considered to be 16 in IMM4 is  
equal to 0.  
In dyadic address mode, n is determined by the content of RS. n is considered to be 16 if the content of RS  
is greater than 15.  
CCR Effects  
N
Z
V
C
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: Set if a two´s complement overflow resulted from the operation; cleared otherwise.  
RD[15] ^ RD[15]  
old  
new  
C: Set if n > 0 and RD[16-n] = 1; if n = 0 unaffected.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
Cycles  
LSL RD, #IMM4  
LSL RD, RS  
IMM4  
DYA  
0
0
0
0
0
0
0
0
1
1
RD  
RD  
IMM4  
RS  
1
0
1
1
0
0
0
0
P
P
1
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
453  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Logical Shift Right  
LSR  
LSR  
Operation  
n
0
0
0
0
RD  
C
n bits  
n = RS or IMM4  
Shifts the bits in register RD n positions to the right. The higher n bits of the register RD become filled  
with zeros. The carry flag will be updated to the bit contained in RD[n-1] before the shift for n > 0.  
n can range from 0 to 16.  
In immediate address mode, n is determined by the operand IMM4. n is considered to be 16 in IMM4 is  
equal to 0.  
In dyadic address mode, n is determined by the content of RS. n is considered to be 16 if the content of RS  
is greater than 15.  
CCR Effects  
N
Z
V
C
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: Set if a two´s complement overflow resulted from the operation; cleared otherwise.  
RD[15] ^ RD[15]  
old  
new  
C: Set if n > 0 and RD[n-1] = 1; if n = 0 unaffected.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
Cycles  
LSR RD, #IMM4  
LSR RD, RS  
IMM4  
DYA  
0
0
0
0
0
0
0
0
1
1
RD  
RD  
IMM4  
RS  
1
0
1
1
0
0
1
1
P
P
1
MC9S12XDP512 Data Sheet, Rev. 2.11  
454  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Move Register Content  
MOV  
MOV  
Operation  
RS RD (translates to OR RD, R0, RS)  
Copies the content of RS to RD.  
CCR Effects  
N
Z
V
C
0
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: 0; cleared.  
C: Not affected.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
RD  
Cycles  
MOV RD, RS  
TRI  
0
0
0
1
0
0
0
0
RS  
1
0
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
455  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Two’s Complement  
NEG  
NEG  
Operation  
–RS RD (translates to SUB RD, R0, RS)  
–RD RD (translates to SUB RD, R0, RD)  
Performs a two’s complement on a general purpose register.  
CCR Effects  
N
Z
V
C
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: Set if a two´s complement overflow resulted from the operation; cleared otherwise.  
RS[15] & RD[15]  
new  
C: Set if there is a carry from the bit 15 of the result; cleared otherwise  
RS[15] | RD[15]  
new  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
NEG RD, RS  
NEG RD  
TRI  
TRI  
0 0 0 1 1  
0 0 0 1 1  
RD  
RD  
0 0 0  
0 0 0  
RS  
RD  
0 0  
0 0  
P
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
456  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
No Operation  
NOP  
NOP  
Operation  
No Operation for one cycle.  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
NOP  
INH  
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
457  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Logical OR  
OR  
OR  
Operation  
RS1 | RS2 RDRD | IMM16RD (translates to ORL RD, #IMM16[7:0]; ORH RD, #IMM16[15:8]  
Performs a bit wise logical OR between two 16-bit values and stores the result in the destination  
register RD.  
CCR Effects  
N
Z
V
C
0
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: 0; cleared.  
C: Not affected.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
Cycles  
OR RD, RS1, RS2  
OR RD, #IMM16  
TRI  
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
RD  
RD  
RD  
RS1  
RS2  
1
0
P
P
P
IMM8  
IMM8  
IMM16[7:0]  
IMM16[15:8]  
MC9S12XDP512 Data Sheet, Rev. 2.11  
458  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Logical OR Immediate 8-Bit Constant  
(High Byte)  
ORH  
ORH  
Operation  
RD.H | IMM8 RD.H  
Performs a bit wise logical OR between the high byte of register RD and an immediate 8-Bit constant and  
stores the result in the destination register RD.H. The low byte of RD is not affected.  
CCR Effects  
N
Z
V
C
0
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the 8-Bit result is $00; cleared otherwise.  
V: 0; cleared.  
C: Not affected.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
Cycles  
ORH RD, #IMM8  
IMM8  
1
0
1
0
1
RD  
IMM8  
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
459  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Logical OR Immediate 8-Bit Constant  
(Low Byte)  
ORL  
ORL  
Operation  
RD.L | IMM8 RD.L  
Performs a bit wise logical OR between the low byte of register RD and an immediate 8-Bit constant and  
stores the result in the destination register RD.L. The high byte of RD is not affected.  
CCR Effects  
N
Z
V
C
0
N: Set if bit 7 of the result is set; cleared otherwise.  
Z: Set if the 8-Bit result is $00; cleared otherwise.  
V: 0; cleared.  
C: Not affected.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
Cycles  
ORL RD, #IMM8  
IMM8  
1
0
1
0
0
RD  
IMM8  
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
460  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Calculate Parity  
PAR  
PAR  
Operation  
Calculates the number of ones in the register RD. The Carry flag will be set if the number is odd, otherwise  
it will be cleared.  
CCR Effects  
N
Z
V
C
0
0
N: 0; cleared.  
Z: Set if RD is $0000; cleared otherwise.  
V: 0; cleared.  
C: Set if there the number of ones in the register RD is odd; cleared otherwise.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
RD  
Cycles  
PAR, RD  
MON  
0
0
0
0
0
1
1
1
1
0
1
0
1
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
461  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Rotate Left  
ROL  
ROL  
Operation  
RD  
n bits  
n = RS or IMM4  
Rotates the bits in register RD n positions to the left. The lower n bits of the register RD are filled with the  
upper n bits. Two source forms are available. In the first form, the parameter n is contained in the  
instruction code as an immediate operand. In the second form, the parameter is contained in the lower bits  
of the source register RS[3:0]. All other bits in RS are ignored. If n is zero, no shift will take place and the  
register RD will be unaffected; however, the condition code flags will be updated.  
CCR Effects  
N
Z
V
C
0
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: 0; cleared.  
C: Not affected.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
Cycles  
ROL RD, #IMM4  
ROL RD, RS  
IMM4  
DYA  
0
0
0
0
0
0
0
0
1
1
RD  
RD  
IMM4  
RS  
1
0
1
1
1
1
0
0
P
P
1
MC9S12XDP512 Data Sheet, Rev. 2.11  
462  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Rotate Right  
ROR  
ROR  
Operation  
RD  
n bits  
n = RS or IMM4  
Rotates the bits in register RD n positions to the right. The upper n bits of the register RD are filled with  
the lower n bits. Two source forms are available. In the first form, the parameter n is contained in the  
instruction code as an immediate operand. In the second form, the parameter is contained in the lower bits  
of the source register RS[3:0]. All other bits in RS are ignored. If n is zero no shift will take place and the  
register RD will be unaffected; however, the condition code flags will be updated.  
CCR Effects  
N
Z
V
C
0
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: 0; cleared.  
C: Not affected.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
Cycles  
ROR RD, #IMM4  
ROR RD, RS  
IMM4  
DYA  
0
0
0
0
0
0
0
0
1
1
RD  
RD  
IMM4  
RS  
1
0
1
1
1
1
1
1
P
P
1
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
463  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Return to Scheduler  
RTS  
RTS  
Operation  
Terminates the current thread of program execution and remains idle until a new thread is started by the  
hardware scheduler.  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
RTS  
INH  
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
PA  
MC9S12XDP512 Data Sheet, Rev. 2.11  
464  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Subtract with Carry  
SBC  
SBC  
Operation  
RS1 - RS2 - C RD  
Subtracts the content of register RS2 and the value of the Carry bit from the content of register RS1 using  
binary subtraction and stores the result in the destination register RD. Also the zero flag is carried forward  
from the previous operation allowing 32 and more bit subtractions.  
Example:  
SUB  
SBC  
BCC  
R6,R4,R2  
R7,R5,R3  
; R7:R6 = R5:R4 - R3:R2  
; conditional branch on 32 bit subtraction  
CCR Effects  
N
Z
V
C
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000 and Z was set before this operation; cleared otherwise.  
V: Set if a two´s complement overflow resulted from the operation; cleared otherwise.  
RS1[15] & RS2[15] & RD[15]  
| RS1[15] & RS2[15] & RD[15]  
new  
new  
C: Set if there is a carry from bit 15 of the result; cleared otherwise.  
RS1[15] & RS2[15] | RS1[15] & RD[15]  
| RS2[15] & RD[15]  
new  
new  
Code and CPU Cycles  
Address  
Mode  
Source Form  
SBC RD, RS1, RS2  
Machine Code  
RD RS1  
Cycles  
TRI  
0
0
0
1
1
RS2  
0
1
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
465  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Set Semaphore  
SSEM  
SSEM  
Operation  
Attempts to set a semaphore. The state of the semaphore will be stored in the Carry-Flag:  
1 = Semaphore is locked by the RISC core  
0 = Semaphore is locked by the S12X_CPU  
In monadic address mode, bits RS[2:0] select the semaphore to be set.  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Set if semaphore is locked by the RISC core; cleared otherwise.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
Cycles  
SSEM #IMM3  
SSEM RS  
IMM3  
MON  
0
0
0
0
0
0
0
0
0
0
IMM3  
RS  
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
PA  
PA  
MC9S12XDP512 Data Sheet, Rev. 2.11  
466  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Sign Extend Byte to Word  
SEX  
SEX  
Operation  
The result in RD is the 16-bit sign extended representation of the original two’s complement number in the  
low byte of RD.L.  
CCR Effects  
N
Z
V
C
0
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: 0; cleared.  
C: Not affected.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
RD  
Cycles  
SEX RD  
MON  
0
0
0
0
0
1
1
1
1
0
1
0
0
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
467  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Set Interrupt Flag  
SIF  
SIF  
Operation  
Sets the Interrupt Flag of an XGATE Channel. This instruction supports two source forms. If inherent  
address mode is used, then the interrupt flag of the current channel (XGCHID) will be set. If the monadic  
address form is used, the interrupt flag associated with the channel id number contained in RS[6:0] is set.  
The content of RS[15:7] is ignored.  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
SIF  
INH  
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
PA  
PA  
SIF RS  
MON  
RS  
MC9S12XDP512 Data Sheet, Rev. 2.11  
468  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Store Byte to Memory  
(Low Byte)  
STB  
STB  
Operation  
RS.LM[RB, #OFFS5]  
RS.LM[RB, RI]  
RS.LM[RB, RI]; RI+1 RI;  
1
RI–1 RI; RS.L M[RB, RI]  
Stores the low byte of register RD to memory.  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
STB RS, (RB, #OFFS5),  
STB RS, (RB, RI)  
IDO5  
IDR  
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
RS  
RS  
RS  
RS  
RB  
RB  
RB  
RB  
OFFS5  
Pw  
Pw  
Pw  
Pw  
RI  
0
0
1
0
1
0
STB RS, (RB, RI+)  
STB RS, (RB, -RI)  
IDR+  
-IDR  
RI  
RI  
1. If the same general purpose register is used as index (RI) and source register (RS), the unmodified content of the source  
register is written to the memory: RS.L M[RB, RS-1]; RS-1 RS  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
469  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Store Word to Memory  
STW  
STW  
Operation  
RS M[RB, #OFFS5]  
RS M[RB, RI]  
RS M[RB, RI]; RI+2 RI;  
1
RI–2 RI; RS M[RB, RI]  
Stores the content of register RS to memory.  
CCR Effects  
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
STW RS, (RB, #OFFS5)  
STW RS, (RB, RI)  
IDO5  
IDR  
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
RS  
RS  
RS  
RS  
RB  
RB  
RB  
RB  
OFFS5  
PW  
PW  
PW  
PW  
RI  
RI  
RI  
0
0
1
0
1
0
STW RS, (RB, RI+)  
STW RS, (RB, -RI)  
IDR+  
-IDR  
1. If the same general purpose register is used as index (RI) and source register (RS), the unmodified content of the source  
register is written to the memory: RS M[RB, RS–2]; RS–2 RS  
MC9S12XDP512 Data Sheet, Rev. 2.11  
470  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Subtract without Carry  
SUB  
SUB  
Operation  
RS1 – RS2 RDRD IMM16 RD (translates to SUBL RD, #IMM16[7:0]; SUBH RD, #IMM[15:8])  
Subtracts two 16-bit values and stores the result in the destination register RD.  
CCR Effects  
N
Z
V
C
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: Set if a two´s complement overflow resulted from the operation; cleared otherwise.  
RS1[15] & RS2[15] & RD[15]  
| RS1[15] & RS2[15] & RD[15]  
new  
new  
C: Set if there is a carry from the bit 15 of the result; cleared otherwise.  
RS1[15] & RS2[15] | RS1[15] & RD[15]  
| RS2[15] & RD[15]  
new  
new  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
RD RS1  
Cycles  
SUB RD, RS1, RS2  
TRI  
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
RS2  
0
0
P
P
P
SUB RD, #IMM16  
IMM8  
IMM8  
RD  
RD  
IMM16[7:0]  
IMM16[15:8]  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
471  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Subtract Immediate 8-Bit Constant  
(High Byte)  
SUBH  
SUBH  
Operation  
RD – IMM8:$00 RD  
Subtracts a signed immediate 8-Bit constant from the content of high byte of register RD and using binary  
subtraction and stores the result in the high byte of destination register RD. This instruction can be used  
after an SUBL for a 16-bit immediate subtraction.  
Example:  
SUBL  
SUBH  
R2,#LOWBYTE  
R2,#HIGHBYTE  
; R2 = R2 - 16 Bit immediate  
CCR Effects  
N
Z
V
C
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: Set if a two´s complement overflow resulted from the operation; cleared otherwise.  
RD[15] & IMM8[7] & RD[15]  
| RD[15] & IMM8[7] & RD[15]  
old  
new  
old new  
C: Set if there is a carry from the bit 15 of the result; cleared otherwise.  
RD[15] & IMM8[7] | RD[15] & RD[15]  
| IMM8[7] & RD[15]  
old  
old  
new  
new  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
SUBH RD, #IMM8  
IMM8  
1
1
0
0
1
RD  
IMM8  
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
472  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Subtract Immediate 8-Bit Constant  
(Low Byte)  
SUBL  
SUBL  
Operation  
RD – $00:IMM8 RD  
Subtracts an immediate 8 Bit constant from the content of register RD using binary subtraction and stores  
the result in the destination register RD.  
CCR Effects  
N
Z
V
C
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: Set if a two´s complement overflow resulted from the 8-bit operation; cleared otherwise.  
RD[15] & RD[15]  
old  
new  
C: Set if there is a carry from the bit 7 to bit 8 of the result; cleared otherwise.  
RD[15] & RD[15]  
old  
new  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
SUBL RD, #IMM8  
IMM8  
1
1
0
0
0
RD  
IMM8  
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
473  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Transfer from and to Special Registers  
TFR  
TFR  
Operation  
TFR RD,CCR: CCR RD[3:0], 0 RD[15:4]  
TFR CCR,RD: RD[3:0] CCR  
TFR RD,PC: PC+4 RD  
Transfers the content of one RISC core register to another.  
The TFR RD,PC instruction can be used to implement relative subroutine calls.  
Example:  
TFR  
BRA  
R7,PC  
SUBR  
;Return address (RETADDR) is stored in R7  
;Relative branch to subroutine (SUBR)  
RETADDR ...  
SUBR  
...  
JAL  
R7  
;Jump to return address (RETADDR)  
CCR Effects  
TFR RD,CCR, TFR RD,PC:  
TFR CCR,RS:  
N
Z
V
C
N
Z
V
C
N: Not affected.  
Z: Not affected.  
V: Not affected.  
C: Not affected.  
N: RS[3].  
Z: RS[2].  
V: RS[1].  
C: RS[0].  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
Cycles  
TFR RD,CCR  
TFR CCR,RS  
TFR RD,PC  
CCR RD  
RS CCR  
PC+4 RD  
MON  
MON  
MON  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
RD  
RS  
RD  
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
P
P
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
474  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Test Register  
TST  
TST  
Operation  
RS – 0 NONE (translates to SUB R0, RS, R0)  
Subtracts zero from the content of register RS using binary subtraction and discards the result.  
CCR Effects  
N
Z
V
C
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: Set if a two´s complement overflow resulted from the operation; cleared otherwise.  
RS[15] & result[15]  
C: Set if there is a carry from the bit 15 of the result; cleared otherwise.  
RS1[15] & result[15]  
Code and CPU Cycles  
Address  
Mode  
Source Form  
Machine Code  
RS1  
Cycles  
TST RS  
TRI  
0
0
0
1
1
0
0
0
0
0
0
0
0
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
475  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Logical Exclusive NOR  
XNOR  
XNOR  
Operation  
~(RS1 ^ RS2) RD~(RD ^ IMM16) RD  
(translates to XNOR RD, #IMM[15:8]; XNOR RD, #IMM16[7:0])  
Performs a bit wise logical exclusive NOR between two 16-bit values and stores the result in the  
destination register RD.  
Remark: Using R0 as a source registers will calculate the one’s complement of the other source register.  
Using R0 as both source operands will fill RD with $FFFF.  
CCR Effects  
N
Z
V
C
0
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the result is $0000; cleared otherwise.  
V: 0; cleared.  
C: Not affected.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
Cycles  
XNOR RD, RS1, RS2  
XNOR RD, #IMM16  
TRI  
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
RD  
RD  
RD  
RS1  
RS2  
1
1
P
P
P
IMM8  
IMM8  
IMM16[7:0]  
IMM16[15:8]  
MC9S12XDP512 Data Sheet, Rev. 2.11  
476  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Logical Exclusive NOR Immediate  
8-Bit Constant (High Byte)  
XNORH  
XNORH  
Operation  
~(RD.H ^ IMM8) RD.H  
Performs a bit wise logical exclusive NOR between the high byte of register RD and an immediate 8-Bit  
constant and stores the result in the destination register RD.H. The low byte of RD is not affected.  
CCR Effects  
N
Z
V
C
0
N: Set if bit 15 of the result is set; cleared otherwise.  
Z: Set if the 8-bit result is $00; cleared otherwise.  
V: 0; cleared.  
C: Not affected.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
Cycles  
XNORH RD, #IMM8  
IMM8  
1
0
1
1
1
RD  
IMM8  
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
477  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Logical Exclusive NOR Immediate  
8-Bit Constant (Low Byte)  
XNORL  
XNORL  
Operation  
~(RD.L ^ IMM8) RD.L  
Performs a bit wise logical exclusive NOR between the low byte of register RD and an immediate 8-Bit  
constant and stores the result in the destination register RD.L. The high byte of RD is not affected.  
CCR Effects  
N
Z
V
C
0
N: Set if bit 7 of the result is set; cleared otherwise.  
Z: Set if the 8-bit result is $00; cleared otherwise.  
V: 0; cleared.  
C: Not affected.  
Code and CPU Cycles  
Address  
Source Form  
Mode  
Machine Code  
Cycles  
XNORL RD, #IMM8  
IMM8  
1
0
1
1
0
RD  
IMM8  
P
MC9S12XDP512 Data Sheet, Rev. 2.11  
478  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
9.8.6  
Instruction Coding  
Table 9-18 summarizes all XGATE instructions in the order of their machine coding.  
Table 9-18. Instruction Set Summary (Sheet 1 of 3)  
Functionality  
15 14 13 12 11 10  
9
8
7
6
5
4
3
2
1
0
Return to Scheduler and Others  
BRK  
0
0
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
0
1
0
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
NOP  
RTS  
SIF  
Semaphore Instructions  
CSEM IMM3  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
IMM3  
RS  
IMM3  
RS  
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
1
1
0
1
0
1
CSEM RS  
SSEM IMM3  
SSEM RS  
Single Register Instructions  
SEX RD  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
RD  
RD  
RD  
RS  
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
PAR RD  
JAL RD  
SIF RS  
Special Move instructions  
TFR RD,CCR  
TFR CCR,RS  
TFR RD,PC  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
RD  
RS  
RD  
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
Shift instructions Dyadic  
BFFO RD, RS  
ASR RD, RS  
0
0
0
0
0
0
0
0
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
RD  
RD  
RD  
RD  
RD  
RD  
RD  
RD  
RS  
RS  
RS  
RS  
RS  
RS  
RS  
RS  
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
CSL RD, RS  
CSR RD, RS  
LSL RD, RS  
LSR RD, RS  
ROL RD, RS  
ROR RD, RS  
Shift instructions immediate  
ASR RD, #IMM4  
CSL RD, #IMM4  
CSR RD, #IMM4  
LSL RD, #IMM4  
LSR RD, #IMM4  
ROL RD, #IMM4  
ROR RD, #IMM4  
0
0
0
0
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
RD  
RD  
RD  
RD  
RD  
RD  
RD  
IMM4  
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
IMM4  
IMM4  
IMM4  
IMM4  
IMM4  
IMM4  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
479  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 9 XGATE (S12XGATEV2)  
Functionality  
Table 9-18. Instruction Set Summary (Sheet 2 of 3)  
15 14 13 12 11 10  
9
8
7
6
5
4
3
2
1
0
Logical Triadic  
AND RD, RS1, RS2  
OR RD, RS1, RS2  
XNOR RD, RS1, RS2  
Arithmetic Triadic  
SUB RD, RS1, RS2  
SBC RD, RS1, RS2  
ADD RD, RS1, RS2  
ADC RD, RS1, RS2  
Branches  
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
RD  
RD  
RD  
RS1  
RS1  
RS1  
RS2  
RS2  
RS2  
0
1
1
0
0
1
For compare use SUB R0,Rs1,Rs2  
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
RD  
RD  
RD  
RD  
RS1  
RS1  
RS1  
RS1  
RS2  
RS2  
RS2  
RS2  
0
0
1
1
0
1
0
1
BCC REL9  
BCS REL9  
BNE REL9  
BEQ REL9  
BPL REL9  
BMI REL9  
BVC REL9  
BVS REL9  
BHI REL9  
BLS REL9  
BGE REL9  
BLT REL9  
BGT REL9  
BLE REL9  
BRA REL10  
0
0
0
0
0
0
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
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
REL9  
REL9  
REL9  
REL9  
REL9  
REL9  
REL9  
REL9  
REL9  
REL9  
REL9  
REL9  
REL9  
REL9  
REL10  
Load and Store Instructions  
LDB RD, (RB, #OFFS5)  
LDW RD, (RB, #OFFS5)  
STB RS, (RB, #OFFS5)  
STW RS, (RB, #OFFS5)  
LDB RD, (RB, RI)  
LDW RD, (RB, RI)  
STB RS, (RB, RI)  
STW RS, (RB, RI)  
LDB RD, (RB, RI+)  
LDW RD, (RB, RI+)  
STB RS, (RB, RI+)  
STW RS, (RB, RI+)  
LDB RD, (RB, –RI)  
LDW RD, (RB, –RI)  
STB RS, (RB, –RI)  
STW RS, (RB, –RI)  
Bit Field Instructions  
BFEXT RD, RS1, RS2  
BFINS RD, RS1, RS2  
BFINSI RD, RS1, RS2  
BFINSX RD, RS1, RS2  
Logic Immediate Instructions  
ANDL RD, #IMM8  
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
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
RD  
RD  
RS  
RS  
RD  
RD  
RS  
RS  
RD  
RD  
RS  
RS  
RD  
RD  
RS  
RS  
RB  
RB  
RB  
RB  
RB  
RB  
RB  
RB  
RB  
RB  
RB  
RB  
RB  
RB  
RB  
RB  
OFFS5  
OFFS5  
OFFS5  
OFFS5  
RI  
RI  
RI  
RI  
RI  
RI  
RI  
RI  
RI  
RI  
RI  
RI  
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
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
RD  
RD  
RD  
RD  
RS1  
RS1  
RS1  
RS1  
RS2  
RS2  
RS2  
RS2  
1
1
1
1
1
1
1
1
1
0
0
0
0
RD  
IMM8  
MC9S12XDP512 Data Sheet, Rev. 2.11  
480  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
Table 9-18. Instruction Set Summary (Sheet 3 of 3)  
Functionality  
ANDH RD, #IMM8  
BITL RD, #IMM8  
BITH RD, #IMM8  
ORL RD, #IMM8  
ORH RD, #IMM8  
15 14 13 12 11 10  
9
8
7
6
5
4
3
2
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
RD  
RD  
RD  
RD  
RD  
RD  
RD  
IMM8  
IMM8  
IMM8  
IMM8  
IMM8  
IMM8  
IMM8  
XNORL RD, #IMM8  
XNORH RD, #IMM8  
Arithmetic Immediate Instructions  
SUBL RD, #IMM8  
SUBH RD, #IMM8  
CMPL RS, #IMM8  
CPCH RS, #IMM8  
ADDL RD, #IMM8  
ADDH RD, #IMM8  
LDL RD, #IMM8  
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
RD  
RD  
RS  
RS  
RD  
RD  
RD  
RD  
IMM8  
IMM8  
IMM8  
IMM8  
IMM8  
IMM8  
IMM8  
IMM8  
LDH RD, #IMM8  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
481  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
9.9  
Initialization and Application Information  
9.9.1  
Initialization  
The recommended initialization of the XGATE is as follows:  
1. Clear the XGE bit to suppress any incoming service requests.  
2. Make sure that no thread is running on the XGATE. This can be done in several ways:  
a) Poll the XGCHID register until it reads $00. Also poll XGDBG and XGSWEIF to make sure  
that the XGATE has not been stopped.  
b) Enter Debug Mode by setting the XGDBG bit. Clear the XGCHID register. Clear the XGDBG  
bit.  
The recommended method is a).  
3. Set the XGVBR register to the lowest address of the XGATE vector space.  
4. Clear all Channel ID flags.  
5. Copy XGATE vectors and code into the RAM.  
6. Initialize the S12X_INT module.  
7. Enable the XGATE by setting the XGE bit.  
The following code example implements the XGATE initialization sequence.  
9.9.2  
Code Example (Transmit "Hello World!" on SCI)  
CPU  
;###########################################  
;# SYMBOLS  
;###########################################  
S12  
#
SCI_REGS  
SCIBDH  
SCICR2  
SCISR1  
SCIDRL  
TIE  
TE  
RE  
SCI_VEC  
EQU  
EQU  
EQU  
EQU  
EQU  
EQU  
EQU  
EQU  
EQU  
$00C8  
;SCI register space  
;SCI Baud Rate Register  
;SCI Control Register 2  
;SCI Status Register 1  
;SCI Control Register 2  
;TIE bit mask  
;TE bit mask  
;RE bit mask  
;SCI vector number  
SCI_REGS+$00  
SCI_REGS+$03  
SCI_REGS+$04  
SCI_REGS+$07  
$80  
$08  
$04  
$D6  
INT_REGS  
INT_CFADDR  
INT_CFDATA  
RQST  
EQU  
EQU  
EQU  
EQU  
$0120  
;S12X_INT register space  
INT_REGS+$07  
INT_REGS+$08  
$80  
;Interrupt Configuration Address Register  
;Interrupt Configuration Data Registers  
;RQST bit mask  
XGATE_REGS  
XGMCTL  
XGMCTL_CLEAR  
XGEM  
XGDBGM  
XGE  
EQU  
EQU  
EQU  
EQU  
EQU  
EQU  
EQU  
EQU  
$0380  
;XGATE register space  
XGATE_REGS+$00 ;XGATE Module Control Register  
$F902  
$8000  
$2000  
$0080  
$0020  
$0002  
XGDBG  
XGSWEIF  
MC9S12XDP512 Data Sheet, Rev. 2.11  
482  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 9 XGATE (S12XGATEV2)  
XGCHID  
XGVBR  
XGIF  
XGSWT  
XGSEM  
EQU  
EQU  
EQU  
EQU  
EQU  
XGATE_REGS+$02 ;XGATE Channel ID Register  
XGATE_REGS+$06 ;XGATE Vector Base Register  
XGATE_REGS+$08 ;XGATE Interrupt Flag Vector  
XGATE_REGS+$18 ;XGATE Software Trigger Register  
XGATE_REGS+$1A ;XGATE Semaphore Register  
RPAGE  
EQU  
$0016  
RAM_SIZE  
EQU  
EQU  
EQU  
EQU  
EQU  
20*$400  
;20k RAM  
RAM_START_GLOBAL  
RAM_START_XGATE  
RAM_START_S12  
RPAGE_VALUE  
$10_0000-RAM_SIZE  
$1_0000-RAM_SIZE  
$1000  
RAM_START_GLOBAL>>12  
XGATE_VECTORS  
XGATE_DATA  
EQU  
EQU  
RAM_START_S12  
RAM_START_S12+(4*128)  
XGATE_OFFSET  
BUS_FREQ_HZ  
EQU  
EQU  
(RAM_START_XGATE+(4*128))-XGATE_DATA_BEGIN  
40_000000  
;###########################################  
;# RESET VECTOR  
;###########################################  
#
ORG  
DW  
$FFFE  
START_OF_CODE  
ORG  
$3000  
START_OF_CODE  
;###########################################  
;# INITIALIZE SCI  
;###########################################  
#
INIT_SCI  
MOVW  
MOVB  
#(BUS_FREQ_HZ/(16*9600)), SCIBDH  
#(TIE|TE|RE), SCICR2 ;enable tx buffer empty interrupt  
;set baud rate  
;###########################################  
;# INITIALIZE S12X_INT  
#
;###########################################  
SEI  
INIT_INT  
;disable interrupts  
MOVB  
MOVB  
#(SCI_VEC&$F0), INT_CFADDR ;switch SCI interrupts to XGATE  
#RQST|$01, INT_CFDATA+((SCI_VEC&$0F)>>1)  
;###########################################  
;# INITIALIZE XGATE  
;###########################################  
#
INIT_XGATE  
MOVW  
#XGMCTL_CLEAR, XGMCTL  
;clear all XGMCTL bits  
BRSET XGCHID, $FF, INIT_XGATE ;wait until current thread is done  
MOVW  
#$10000-RAM_SIZE, XGVBR ;set vector base register  
LDX  
LDD  
STD  
STD  
STD  
STD  
STD  
STD  
#XGIF  
#$FFFF  
2,X+  
2,X+  
2,X+  
2,X+  
2,X+  
2,X+  
;clear all channel interrupt flags  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
483  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
STD  
STD  
2,X+  
2,X+  
MOVW  
#$FF00, XGSWT  
;clear all software triggers  
;###########################################  
;# INITIALIZE XGATE VECTOR SPACE  
;###########################################  
#
INIT_XGATE_VECTOR_SPACE MOVB  
#(RAM_START_GLOBAL>>12), RPAGE ;set all vectors to dummy  
service routine  
LDX  
#128  
LDY  
LDD  
#RAM_START_S12  
#XGATE_DUMMY+XGATE_OFFSET  
INIT_XGATE_VECTOR_SPACE_LOOP  
STD  
4,Y+  
DBNE  
X,INIT_XGATE_VECTOR_SPACE_LOOP  
;set SCI INTERRUPT VECTOR  
MOVW #XGATE_CODE_BEGIN+XGATE_OFFSET,RAM_START_S12+(2*SCI_VEC)  
#XGATE_DATA_BEGIN+XGATE_OFFSET, RAM_START_S12+(2*SCI_VEC)+2  
MOVW  
;###########################################  
;#  
COPY XGATE CODE  
#
;###########################################  
COPY_XGATE_CODE  
COPY_XGATE_CODE_LOOP  
LDX  
#XGATE_DATA_BEGIN  
2,X+, 2,Y+  
2,X+, 2,Y+  
2,X+, 2,Y+  
2,X+, 2,Y+  
MOVW  
MOVW  
MOVW  
MOVW  
CPX  
#XGATE_CODE_END  
COPY_XGATE_CODE_LOOP  
BLS  
;###########################################  
;# START XGATE  
;###########################################  
#
START_XGATE  
MOVB  
BRA  
#(XGE|XGDBGM|XGSWEIF), XGMCTL ;enable XGATE  
*
CPU  
XGATE  
;###########################################  
;# XGATE DATA  
#
;###########################################  
ALIGN 1  
XGATE_DATA_BEGIN  
XGATE_DATA_SCI_PTR  
XGATE_DATA_MSG_IDX  
XGATE_DATA_MSG  
DW  
DB  
FCC  
DB  
SCI_REGS  
XGATE_DATA_MSG-XGATE_DATA_BEGIN  
"Hello World!"  
$0D  
;pointer to SCI register space  
;string pointer  
;ASCII string  
;CR  
XGATE_DATA_END  
;###########################################  
;# XGATE CODE  
#
;###########################################  
ALIGN 1  
XGATE_CODE_BEGIN  
LDW  
LDB  
LDB  
STB  
LDB  
R2,(R1,#(XGATE_DATA_SCI_PTR-XGATE_DATA_BEGIN));SCI -> R2  
R3,(R1,#(XGATE_DATA_MSG_IDX-XGATE_DATA_BEGIN));msg -> R3  
R4,(R1,R3+)  
;curr. char -> R4  
R3,(R1,#(XGATE_DATA_MSG_IDX-XGATE_DATA_BEGIN));R3 -> idx  
R0,(R2,#(SCISR1-SCI_REGS))  
;initiate SCI transmit  
MC9S12XDP512 Data Sheet, Rev. 2.11  
484  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
STB  
CMPL  
BEQ  
RTS  
LDL  
STB  
LDL  
STB  
RTS  
EQU  
R4,(R2,#(SCIDRL-SCI_REGS))  
R4,#$0D  
XGATE_CODE_DONE  
;initiate SCI transmit  
XGATE_CODE_DONE  
R4,#$00  
R4,(R2,#(SCICR2-SCI_REGS))  
R3,#(XGATE_DATA_MSG-XGATE_DATA_BEGIN);reset R3  
R3,(R1,#(XGATE_DATA_MSG_IDX-XGATE_DATA_BEGIN))  
;disable SCI interrupts  
XGATE_CODE_END  
XGATE_DUMMY  
XGATE_CODE_END  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
485  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
486  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
487  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
488  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
489  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
490  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
491  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
492  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
493  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
494  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
495  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
496  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
497  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 9 XGATE (S12XGATEV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
498  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 10  
Security (S12X9SECV2)  
10.1 Introduction  
This specification describes the function of the security mechanism in the S12X chip family  
(MC9S12XDP512).  
10.1.1 Features  
The user must be reminded that part of the security must lie with the application code. An extreme example  
would be application code that dumps the contents of the internal memory. This would defeat the purpose  
of security. At the same time, the user may also wish to put a backdoor in the application program. An  
example of this is the user downloads a security key through the SCI, which allows access to a  
programming routine that updates parameters stored in another section of the Flash memory.  
The security features of the S12X chip family (in secure mode) are:  
Protect the contents of non-volatile memories (Flash, EEPROM)  
Execution of NVM commands is restricted  
Disable access to internal memory via background debug module (BDM)  
Disable access to internal Flash/EEPROM in expanded modes  
Disable debugging features for CPU and XGATE  
Table 10-1 gives an overview over availability of security relevant features in unsecure and secure modes.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
499  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 10 Security (S12X9SECV2)  
Table 10-1. Features Availability in Unsecure and Secure Modes  
Unsecure Mode  
Secure Mode  
NS  
SS  
NX  
NS  
SS  
NX  
ES  
EX  
ST  
1
1
1
1
Flash Array Access  
EEPROM Array Access  
NVM Commands  
BDM  
2
2
2
2
2
2
2
2
2
2
3
DBG Module Trace  
XGATE Debugging  
External Bus Interface  
Internal status visible  
multiplexed on  
external bus  
Internal accesses visible  
on external bus  
1
Availability of Flash arrays in the memory map depends on ROMCTL/EROMCTL pins and/or the state of  
the ROMON/EROMON bits in the MMCCTL1 register. Please refer to the S12X_MMC block guide for  
detailed information.  
2
3
Restricted NVM command set only. Please refer to the FTX/EETX block guides for detailed information.  
BDM hardware commands restricted to peripheral registers only.  
10.1.2 Modes of Operation  
10.1.3 Securing the Microcontroller  
Once the user has programmed the Flash and EEPROM, the chip can be secured by programming the  
security bits located in the options/security byte in the Flash memory array. These non-volatile bits will  
keep the device secured through reset and power-down.  
The options/security byte is located at address 0xFF0F (= global address 0x7F_FF0F) in the Flash memory  
array. This byte can be erased and programmed like any other Flash location. Two bits of this byte are used  
for security (SEC[1:0]). On devices which have a memory page window, the Flash options/security byte  
is also available at address 0xBF0F by selecting page 0x3F with the PPAGE register. The contents of this  
byte are copied into the Flash security register (FSEC) during a reset sequence.  
7
6
5
4
3
2
1
0
0xFF0F KEYEN1 KEYEN0  
NV5  
NV4  
NV3  
NV2  
SEC1  
SEC0  
Figure 10-1. Flash Options/Security Byte  
MC9S12XDP512 Data Sheet, Rev. 2.11  
500  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
The meaning of the bits KEYEN[1:0] is shown in Table 10-2. Please refer to Section 10.1.5.1,  
“Unsecuring the MCU Using the Backdoor Key Access” for more information.  
Table 10-2. Backdoor Key Access Enable Bits  
Backdoor Key  
KEYEN[1:0]  
Access Enabled  
00  
01  
10  
11  
0 (disabled)  
0 (disabled)  
1 (enabled)  
0 (disabled)  
The meaning of the security bits SEC[1:0] is shown in Table 10-3. For security reasons, the state of device  
security is controlled by two bits. To put the device in unsecured mode, these bits must be programmed to  
SEC[1:0] = ‘10’. All other combinations put the device in a secured mode. The recommended value to put  
the device in secured state is the inverse of the unsecured state, i.e. SEC[1:0] = ‘01’.  
Table 10-3. Security Bits  
SEC[1:0]  
Security State  
00  
01  
10  
11  
1 (secured)  
1 (secured)  
0 (unsecured)  
1 (secured)  
NOTE  
Please refer to the Flash block guide (FTX) for actual security configuration  
(in section “Flash Module Security”).  
10.1.4 Operation of the Secured Microcontroller  
By securing the device, unauthorized access to the EEPROM and Flash memory contents can be prevented.  
However, it must be understood that the security of the EEPROM and Flash memory contents also depends  
on the design of the application program. For example, if the application has the capability of downloading  
code through a serial port and then executing that code (e.g. an application containing bootloader code),  
then this capability could potentially be used to read the EEPROM and Flash memory contents even when  
the microcontroller is in the secure state. In this example, the security of the application could be enhanced  
by requiring a challenge/response authentication before any code can be downloaded.  
Secured operation has the following effects on the microcontroller:  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
501  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 10 Security (S12X9SECV2)  
10.1.4.1 Normal Single Chip Mode (NS)  
Background debug module (BDM) operation is completely disabled.  
Execution of Flash and EEPROM commands is restricted. Please refer to the NVM block guide  
(FTX) for details.  
Tracing code execution using the DBG module is disabled.  
Debugging XGATE code (breakpoints, single-stepping) is disabled.  
10.1.4.2 Special Single Chip Mode (SS)  
BDM firmware commands are disabled.  
BDM hardware commands are restricted to the register space.  
Execution of Flash and EEPROM commands is restricted. Please refer to the NVM block guide  
(FTX) for details.  
Tracing code execution using the DBG module is disabled.  
Debugging XGATE code (breakpoints, single-stepping) is disabled.  
Special single chip mode means BDM is active after reset. The availability of BDM firmware commands  
depends on the security state of the device. The BDM secure firmware first performs a blank check of both  
the Flash memory and the EEPROM. If the blank check succeeds, security will be temporarily turned off  
and the state of the security bits in the appropriate Flash memory location can be changed If the blank  
check fails, security will remain active, only the BDM hardware commands will be enabled, and the  
accessible memory space is restricted to the peripheral register area. This will allow the BDM to be used  
to erase the EEPROM and Flash memory without giving access to their contents. After erasing both Flash  
memory and EEPROM, another reset into special single chip mode will cause the blank check to succeed  
and the options/security byte can be programmed to “unsecured” state via BDM.  
While the BDM is executing the blank check, the BDM interface is completely blocked, which means that  
all BDM commands are temporarily blocked.  
10.1.4.3 Expanded Modes (NX, ES, EX, and ST)  
BDM operation is completely disabled.  
Internal Flash memory and EEPROM are disabled.  
Execution of Flash and EEPROM commands is restricted. Please refer to the NVM block guide  
(FTX) for details.  
Tracing code execution using the DBG module is disabled.  
Debugging XGATE code (breakpoints, single-stepping) is disabled.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
502  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 10 Security (S12X9SECV2)  
10.1.5 Unsecuring the Microcontroller  
Unsecuring the microcontroller can be done by three different methods:  
1. Backdoor key access  
2. Reprogramming the security bits  
3. Complete memory erase (special modes)  
10.1.5.1 Unsecuring the MCU Using the Backdoor Key Access  
In normal modes (single chip and expanded), security can be temporarily disabled using the backdoor key  
access method. This method requires that:  
The backdoor key at 0xFF00–0xFF07 (= global addresses 0x7F_FF00–0x7F_FF07) has been  
programmed to a valid value.  
The KEYEN[1:0] bits within the Flash options/security byte select ‘enabled’.  
In single chip mode, the application program programmed into the microcontroller must be  
designed to have the capability to write to the backdoor key locations.  
The backdoor key values themselves would not normally be stored within the application data, which  
means the application program would have to be designed to receive the backdoor key values from an  
external source (e.g. through a serial port). It is not possible to download the backdoor keys using  
background debug mode.  
The backdoor key access method allows debugging of a secured microcontroller without having to erase  
the Flash. This is particularly useful for failure analysis.  
NOTE  
No word of the backdoor key is allowed to have the value 0x0000 or  
0xFFFF.  
10.1.5.2 Backdoor Key Access Sequence  
These are the necessary steps for a successful backdoor key access sequence:  
1. Set the KEYACC bit in the Flash configuration register FCNFG.  
2. Write the first 16-bit word of the backdoor key to 0xFF00 (0x7F_FF00).  
3. Write the second 16-bit word of the backdoor key to 0xFF02 (0x7F_FF02).  
4. Write the third 16-bit word of the backdoor key to 0xFF04 (0x7F_FF04).  
5. Write the fourth 16-bit word of the backdoor key to 0xFF06 (0x7F_FF06).  
6. Clear the KEYACC bit in the Flash Configuration register FCNFG.  
NOTE  
Flash cannot be read while KEYACC is set. Therefore the code for the  
backdoor key access sequence must execute from RAM.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
503  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 10 Security (S12X9SECV2)  
If all four 16-bit words match the Flash contents at 0xFF00–0xFF07 (0x7F_FF00–0x7F_FF07), the  
microcontroller will be unsecured and the security bits SEC[1:0] in the Flash Security register FSEC will  
be forced to the unsecured state (‘10’). The contents of the Flash options/security byte are not changed by  
this procedure, and so the microcontroller will revert to the secure state after the next reset unless further  
action is taken as detailed below.  
If any of the four 16-bit words does not match the Flash contents at 0xFF00–0xFF07  
(0x7F_FF00–0x7F_FF07), the microcontroller will remain secured.  
10.1.6 Reprogramming the Security Bits  
In normal single chip mode (NS), security can also be disabled by erasing and reprogramming the security  
bits within Flash options/security byte to the unsecured value. Because the erase operation will erase the  
entire sector from 0xFE00–0xFFFF (0x7F_FE00–0x7F_FFFF), the backdoor key and the interrupt vectors  
will also be erased; this method is not recommended for normal single chip mode. The application  
software can only erase and program the Flash options/security byte if the Flash sector containing the Flash  
options/security byte is not protected (see Flash protection). Thus Flash protection is a useful means of  
preventing this method. The microcontroller will enter the unsecured state after the next reset following  
the programming of the security bits to the unsecured value.  
This method requires that:  
The application software previously programmed into the microcontroller has been designed to  
have the capability to erase and program the Flash options/security byte, or security is first disabled  
using the backdoor key method, allowing BDM to be used to issue commands to erase and program  
the Flash options/security byte.  
The Flash sector containing the Flash options/security byte is not protected.  
10.1.7 Complete Memory Erase (Special Modes)  
The microcontroller can be unsecured in special modes by erasing the entire EEPROM and Flash memory  
contents.  
When a secure microcontroller is reset into special single chip mode (SS), the BDM firmware verifies  
whether the EEPROM and Flash memory are erased. If any EEPROM or Flash memory address is not  
erased, only BDM hardware commands are enabled. BDM hardware commands can then be used to write  
to the EEPROM and Flash registers to mass erase the EEPROM and all Flash memory blocks.  
When next reset into special single chip mode, the BDM firmware will again verify whether all EEPROM  
and Flash memory are erased, and this being the case, will enable all BDM commands, allowing the Flash  
options/security byte to be programmed to the unsecured value. The security bits SEC[1:0] in the Flash  
security register will indicate the unsecure state following the next reset.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
504  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 10 Security (S12X9SECV2)  
Special single chip erase and unsecure sequence:  
1. Reset into special single chip mode.  
2. Write an appropriate value to the ECLKDIV register for correct timing.  
3. Write 0xFF to the EPROT register to disable protection.  
4. Write 0x30 to the ESTAT register to clear the PVIOL and ACCERR bits.  
5. Write 0x0000 to the EDATA register (0x011A–0x011B).  
6. Write 0x0000 to the EADDR register (0x0118–0x0119).  
7. Write 0x41 (mass erase) to the ECMD register.  
8. Write 0x80 to the ESTAT register to clear CBEIF.  
9. Write an appropriate value to the FCLKDIV register for correct timing.  
10. Write 0x00 to the FCNFG register to select Flash block 0.  
11. Write 0x10 to the FTSTMOD register (0x0102) to set the WRALL bit, so the following writes  
affect all Flash blocks.  
12. Write 0xFF to the FPROT register to disable protection.  
13. Write 0x30 to the FSTAT register to clear the PVIOL and ACCERR bits.  
14. Write 0x0000 to the FDATA register (0x010A–0x010B).  
15. Write 0x0000 to the FADDR register (0x0108–0x0109).  
16. Write 0x41 (mass erase) to the FCMD register.  
17. Write 0x80 to the FSTAT register to clear CBEIF.  
18. Wait until all CCIF flags are set.  
19. Reset back into special single chip mode.  
20. Write an appropriate value to the FCLKDIV register for correct timing.  
21. Write 0x00 to the FCNFG register to select Flash block 0.  
22. Write 0xFF to the FPROT register to disable protection.  
23. Write 0xFFBE to Flash address 0xFF0E.  
24. Write 0x20 (program) to the FCMD register.  
25. Write 0x80 to the FSTAT register to clear CBEIF.  
26. Wait until the CCIF flag in FSTAT is are set.  
27. Reset into any mode.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
505  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 10 Security (S12X9SECV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
506  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11  
Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.1 Introduction  
The HCS12 enhanced capture timer module has the features of the HCS12 standard timer module  
enhanced by additional features in order to enlarge the field of applications, in particular for automotive  
ABS applications.  
This design specification describes the standard timer as well as the additional features.  
The basic timer consists of a 16-bit, software-programmable counter driven by a prescaler. This timer can  
be used for many purposes, including input waveform measurements while simultaneously generating an  
output waveform. Pulse widths can vary from microseconds to many seconds.  
A full access for the counter registers or the input capture/output compare registers will take place in one  
clock cycle. Accessing high byte and low byte separately for all of these registers will not yield the same  
result as accessing them in one word.  
11.1.1 Features  
16-bit buffer register for four input capture (IC) channels.  
Four 8-bit pulse accumulators with 8-bit buffer registers associated with the four buffered IC  
channels. Configurable also as two 16-bit pulse accumulators.  
16-bit modulus down-counter with 8-bit prescaler.  
Four user-selectable delay counters for input noise immunity increase.  
11.1.2 Modes of Operation  
Stop — Timer and modulus counter are off since clocks are stopped.  
Freeze — Timer and modulus counter keep on running, unless the TSFRZ bit in the TSCR1 register  
is set to one.  
Wait — Counters keep on running, unless the TSWAI bit in the TSCR1 register is set to one.  
Normal — Timer and modulus counter keep on running, unless the TEN bit in the TSCR1 register  
or the MCEN bit in the MCCTL register are cleared.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
507  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.1.3 Block Diagram  
Channel 0  
Input Capture  
Output Compare  
Channel 1  
Prescaler  
Bus Clock  
IOC0  
IOC1  
16-bit Counter  
Input Capture  
Modulus Counter  
Output Compare  
16-Bit Modulus Counter  
Interrupt  
Channel 2  
Input Capture  
Timer Overflow  
Interrupt  
Timer Channel 0  
Interrupt  
IOC2  
IOC3  
Output Compare  
Channel 3  
Input Capture  
Output Compare  
Registers  
Channel 4  
Input Capture  
IOC4  
IOC5  
Output Compare  
Channel 5  
Input Capture  
Output Compare  
Timer Channel 7  
Interrupt  
Channel 6  
Input Capture  
PA Overflow  
16-Bit  
IOC6  
IOC7  
Interrupt  
Output Compare  
Pulse Accumulator A  
PA Input  
Interrupt  
PB Overflow  
Channel 7  
Input Capture  
16-Bit  
Pulse Accumulator B  
Interrupt  
Output Compare  
Figure 11-1. ECT Block Diagram  
MC9S12XDP512 Data Sheet, Rev. 2.11  
508  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.2 External Signal Description  
The ECT module has a total of eight external pins.  
11.2.1 IOC7 — Input Capture and Output Compare Channel 7  
This pin serves as input capture or output compare for channel 7.  
11.2.2 IOC6 — Input Capture and Output Compare Channel 6  
This pin serves as input capture or output compare for channel 6.  
11.2.3 IOC5 — Input Capture and Output Compare Channel 5  
This pin serves as input capture or output compare for channel 5.  
11.2.4 IOC4 — Input Capture and Output Compare Channel 4  
This pin serves as input capture or output compare for channel 4.  
11.2.5 IOC3 — Input Capture and Output Compare Channel 3  
This pin serves as input capture or output compare for channel 3.  
11.2.6 IOC2 — Input Capture and Output Compare Channel 2  
This pin serves as input capture or output compare for channel 2.  
11.2.7 IOC1 — Input Capture and Output Compare Channel 1  
This pin serves as input capture or output compare for channel 1.  
11.2.8 IOC0 — Input Capture and Output Compare Channel 0  
This pin serves as input capture or output compare for channel 0.  
For the description of interrupts see Section 11.4.3, “Interrupts”.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
509  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                 
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.3 Memory Map and Register Definition  
This section provides a detailed description of all memory and registers.  
11.3.1 Module Memory Map  
The memory map for the ECT module is given below in Table 11-1. The address listed for each register is  
the address offset. The total address for each register is the sum of the base address for the ECT module  
and the address offset for each register.  
Table 11-1. MC9S12XDP512 Memory Map  
Address  
Offset  
Register  
Access  
0x0000  
0x0001  
0x0002  
0x0003  
0x0004  
0x0005  
0x0006  
0x0007  
0x0008  
0x0009  
0x000A  
0x000B  
0x000C  
0x000D  
0x000E  
0x000F  
0x0010  
0x0011  
0x0012  
0x0013  
0x0014  
0x0015  
0x0016  
0x0017  
0x0018  
0x0019  
0x001A  
0x001B  
0x001C  
0x001D  
Timer Input Capture/Output Compare Select (TIOS)  
Timer Compare Force Register (CFORC)  
R/W  
1
R/W  
Output Compare 7 Mask Register (OC7M)  
R/W  
R/W  
Output Compare 7 Data Register (OC7D)  
2
Timer Count Register High (TCNT)  
R/W  
2
Timer Count Register Low (TCNT)  
R/W  
Timer System Control Register 1 (TSCR1)  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
Timer Toggle Overflow Register (TTOV)  
Timer Control Register 1 (TCTL1)  
Timer Control Register 2 (TCTL2)  
Timer Control Register 3 (TCTL3)  
Timer Control Register 4 (TCTL4)  
Timer Interrupt Enable Register (TIE)  
Timer System Control Register 2 (TSCR2)  
Main Timer Interrupt Flag 1 (TFLG1)  
Main Timer Interrupt Flag 2 (TFLG2)  
3
Timer Input Capture/Output Compare Register 0 High (TC0)  
Timer Input Capture/Output Compare Register 0 Low (TC0)  
Timer Input Capture/Output Compare Register 1 High (TC1)  
Timer Input Capture/Output Compare Register 1 Low (TC1)  
Timer Input Capture/Output Compare Register 2 High (TC2)  
Timer Input Capture/Output Compare Register 2 Low (TC2)  
Timer Input Capture/Output Compare Register 3 High (TC3)  
Timer Input Capture/Output Compare Register 3 Low (TC3)  
Timer Input Capture/Output Compare Register 4 High (TC4)  
Timer Input Capture/Output Compare Register 4 Low (TC4)  
Timer Input Capture/Output Compare Register 5 High (TC5)  
Timer Input Capture/Output Compare Register 5 Low (TC5)  
Timer Input Capture/Output Compare Register 6 High (TC6)  
Timer Input Capture/Output Compare Register 6 Low (TC6)  
R/W  
3
R/W  
3
R/W  
3
R/W  
3
R/W  
3
R/W  
3
R/W  
3
R/W  
3
R/W  
3
R/W  
3
R/W  
3
R/W  
3
R/W  
3
R/W  
MC9S12XDP512 Data Sheet, Rev. 2.11  
510  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
Table 11-1. MC9S12XDP512 Memory Map (continued)  
Address  
Offset  
Register  
Access  
3
0x001E  
0x001F  
0x0020  
0x0021  
0x0022  
0x0023  
0x0024  
0x0025  
0x0026  
0x0027  
0x0028  
0x0029  
0x002A  
0x002B  
0x002C  
0x002D  
0x002E  
0x002F  
0x0030  
0x0031  
0x0032  
0x0033  
0x0034  
0x0035  
0x0036  
0x0037  
0x0038  
0x0039  
0x003A  
0x003B  
0x003C  
0x003D  
0x003E  
0x003F  
Timer Input Capture/Output Compare Register 7 High (TC7)  
Timer Input Capture/Output Compare Register 7 Low (TC7)  
16-Bit Pulse Accumulator A Control Register (PACTL)  
Pulse Accumulator A Flag Register (PAFLG)  
R/W  
3
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
Pulse Accumulator Count Register 3 (PACN3)  
Pulse Accumulator Count Register 2 (PACN2)  
Pulse Accumulator Count Register 1 (PACN1)  
Pulse Accumulator Count Register 0 (PACN0)  
16-Bit Modulus Down Counter Register (MCCTL)  
16-Bit Modulus Down Counter Flag Register (MCFLG)  
Input Control Pulse Accumulator Register (ICPAR)  
Delay Counter Control Register (DLYCT)  
Input Control Overwrite Register (ICOVW)  
4
Input Control System Control Register (ICSYS)  
Reserved  
R/W  
--  
2
Timer Test Register (TIMTST)  
R/W  
Precision Timer Prescaler Select Register (PTPSR)  
Precision Timer Modulus Counter Prescaler Select Register (PTMCPSR)  
16-Bit Pulse Accumulator B Control Register (PBCTL)  
16-Bit Pulse Accumulator B Flag Register (PBFLG)  
8-Bit Pulse Accumulator Holding Register 3 (PA3H)  
8-Bit Pulse Accumulator Holding Register 2 (PA2H)  
8-Bit Pulse Accumulator Holding Register 1 (PA1H)  
8-Bit Pulse Accumulator Holding Register 0 (PA0H)  
Modulus Down-Counter Count Register High (MCCNT)  
Modulus Down-Counter Count Register Low (MCCNT)  
Timer Input Capture Holding Register 0 High (TC0H)  
Timer Input Capture Holding Register 0 Low (TC0H)  
Timer Input Capture Holding Register 1 High(TC1H)  
Timer Input Capture Holding Register 1 Low (TC1H)  
Timer Input Capture Holding Register 2 High (TC2H)  
Timer Input Capture Holding Register 2 Low (TC2H)  
Timer Input Capture Holding Register 3 High (TC3H)  
Timer Input Capture Holding Register 3 Low (TC3H)  
R/W  
R/W  
R/W  
R/W  
5
R/W  
5
R/W  
5
R/W  
5
R/W  
R/W  
R/W  
5
R/W  
5
R/W  
5
R/W  
5
R/W  
5
R/W  
5
R/W  
5
R/W  
5
R/W  
1
2
3
4
5
Always read 0x0000.  
Only writable in special modes (test_mode = 1).  
Writes to these registers have no meaning or effect during input capture.  
May be written once when not in test00mode but writes are always permitted when test00mode is enabled.  
Writes have no effect.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
511  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.3.2 Register Descriptions  
This section consists of register descriptions in address order. Each description includes a standard register  
diagram with an associated figure number. Details of register bit and field function follow the register  
diagrams, in bit order.  
Register  
Name  
Bit 7  
6
5
4
3
2
1
Bit 0  
0x0000  
TIOS  
R
IOS7  
IOS6  
IOS5  
IOS4  
IOS3  
IOS2  
IOS1  
IOS0  
W
0x0001  
CFORC  
R
0
0
0
0
0
0
0
0
W
FOC7  
FOC6  
FOC5  
FOC4  
FOC3  
FOC2  
FOC1  
FOC0  
0x0002  
OC7M  
R
OC7M7  
OC7D7  
TCNT15  
TCNT7  
TEN  
OC7M6  
OC7D6  
TCNT14  
TCNT6  
TSWAI  
TOV6  
OC7M5  
OC7D5  
TCNT13  
TCNT5  
TSFRZ  
TOV5  
OC7M4  
OC7D4  
TCNT12  
TCNT4  
TFFCA  
TOV4  
OC7M3  
OC7D3  
TCNT11  
TCNT3  
PRNT  
TOV3  
OC7M2  
OC7D2  
TCNT10  
OC7M1  
OC7D1  
TCNT9  
OC7M0  
OC7D0  
TCNT8  
W
0x0003  
OC7D  
R
W
0x0004  
TCNT (High)  
R
W
0x0005  
TCNT (Low)  
R
TCNT2  
0
TCNT1  
0
TCNT0  
0
W
0x0006  
TSCR1  
R
W
0x0007  
TTOF  
R
TOV7  
TOV2  
OL5  
TOV1  
OM4  
TOV0  
OL4  
W
0x0008  
TCTL1  
R
OM7  
OL7  
OM6  
OL6  
OM5  
W
0x0009  
TCTL2  
R
OM3  
OL3  
OM2  
OL2  
OM1  
OL1  
OM0  
OL0  
W
0x000A  
TCTL3  
R
EDG7B  
EDG3B  
C7I  
EDG7A  
EDG3A  
C6I  
EDG6B  
EDG2B  
C5I  
EDG6A  
EDG2A  
C4I  
EDG5B  
EDG1B  
C3I  
EDG5A  
EDG1A  
C2I  
EDG4B  
EDG0B  
C1I  
EDG4A  
EDG0A  
C0I  
W
0x000B  
TCTL4  
R
W
0x000C  
TIE  
R
W
= Unimplemented or Reserved  
Figure 11-2. ECT Register Summary (Sheet 1 of 5)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
512  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
Register  
Name  
Bit 7  
6
5
4
3
2
1
Bit 0  
0x000D  
TSCR2  
R
0
0
0
TOI  
TCRE  
PR2  
PR1  
PR0  
W
0x000E  
TFLG1  
R
C7F  
TOF  
C6F  
0
C5F  
0
C4F  
0
C3F  
0
C2F  
0
C1F  
0
C0F  
0
W
0x000F  
TFLG2  
R
W
0x0010  
TC0 (High)  
R
Bit 15  
Bit 7  
Bit 14  
Bit 6  
Bit 13  
Bit 5  
Bit 12  
Bit 4  
Bit 11  
Bit 3  
Bit 10  
Bit 2  
Bit 9  
Bit 1  
Bit 9  
Bit 1  
Bit 9  
Bit 1  
Bit 9  
Bit 1  
Bit 9  
Bit 1  
Bit 9  
Bit 1  
Bit 8  
Bit 0  
Bit 8  
Bit 0  
Bit 8  
Bit 0  
Bit 8  
Bit 0  
Bit 8  
Bit 0  
Bit 8  
Bit 0  
W
0x0011  
TC0 (Low)  
R
W
0x0012  
TC1 (High)  
R
Bit 15  
Bit 7  
Bit 14  
Bit 6  
Bit 13  
Bit 5  
Bit 12  
Bit 4  
Bit 11  
Bit 3  
Bit 10  
Bit 2  
W
0x0013  
TC1 (Low)  
R
W
0x0014  
TC2 (High)  
R
Bit 15  
Bit 7  
Bit 14  
Bit 6  
Bit 13  
Bit 5  
Bit 12  
Bit 4  
Bit 11  
Bit 3  
Bit 10  
Bit 2  
W
0x0015  
TC2 (Low)  
R
W
0x0016  
TC3 (High)  
R
Bit 15  
Bit 7  
Bit 14  
Bit 6  
Bit 13  
Bit 5  
Bit 12  
Bit 4  
Bit 11  
Bit 3  
Bit 10  
Bit 2  
W
0x0017  
TC3 (Low)  
R
W
0x0018  
TC4 (High)  
R
Bit 15  
Bit 7  
Bit 14  
Bit 6  
Bit 13  
Bit 5  
Bit 12  
Bit 4  
Bit 11  
Bit 3  
Bit 10  
Bit 2  
W
0x0019  
TC4 (Low)  
R
W
0x001A  
TC5 (High)  
R
Bit 15  
Bit 7  
Bit 14  
Bit 6  
Bit 13  
Bit 5  
Bit 12  
Bit 4  
Bit 11  
Bit 3  
Bit 10  
Bit 2  
W
0x001B  
TC5 (Low)  
R
W
= Unimplemented or Reserved  
Figure 11-2. ECT Register Summary (Sheet 2 of 5)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
513  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
Register  
Bit 7  
6
5
4
3
2
1
Bit 0  
Name  
0x001C  
TC6 (High)  
R
Bit 15  
Bit 14  
Bit 13  
Bit 12  
Bit 11  
Bit 10  
Bit 9  
Bit 8  
W
0x001D  
TC6 (Low)  
R
Bit 7  
Bit 6  
Bit 14  
Bit 6  
Bit 5  
Bit 13  
Bit 5  
Bit 4  
Bit 12  
Bit 4  
Bit 3  
Bit 11  
Bit 3  
Bit 2  
Bit 10  
Bit 2  
Bit 1  
Bit 9  
Bit 0  
Bit 8  
Bit 0  
PAI  
W
0x001E  
TC7 (High)  
R
Bit 15  
W
0x001F  
TC7 (Low)  
R
Bit 7  
0
Bit 1  
W
0x0020  
PACTL  
R
PAEN  
0
PAMOD  
0
PEDGE  
0
CLK1  
0
CLK0  
0
PA0VI  
PA0VF  
W
0x0021  
PAFLG  
R
0
PAIF  
W
0x0022  
PACN3  
R
PACNT7(15) PACNT6(14) PACNT5(13) PACNT4(12) PACNT3(11) PACNT2(10) PACNT1(9) PACNT0(8)  
W
0x0023  
PACN2  
R
PACNT7  
PACNT6  
PACNT5  
PACNT4  
PACNT3  
PACNT2  
PACNT1  
PACNT0  
W
0x0024  
PACN1  
R
PACNT7(15) PACNT6(14) PACNT5(13) PACNT4(12) PACNT3(11) PACNT2(10) PACNT1(9) PACNT0(8)  
W
0x0025  
PACN0  
R
PACNT7  
MCZI  
PACNT6  
PACNT5  
PACNT4  
PACNT3  
PACNT2  
PACNT1  
PACNT0  
W
0x0026  
MCCTL  
R
0
0
MODMC  
0
RDMCL  
0
MCEN  
POLF2  
MCPR1  
POLF1  
MCPR0  
POLF0  
W
ICLAT  
FLMC  
0x0027  
MCFLG  
R
0
0
POLF3  
MCZF  
0
W
0x0028  
ICPAR  
R
0
0
PA3EN  
DLY3  
PA2EN  
DLY2  
PA1EN  
DLY1  
PA0EN  
DLY0  
W
0x0029  
DLYCT  
R
DLY7  
DLY6  
DLY5  
DLY4  
W
0x002A  
ICOVW  
R
NOVW7  
NOVW6  
NOVW5  
NOVW4  
NOVW3  
NOVW2  
NOVW1  
NOVW0  
W
= Unimplemented or Reserved  
Figure 11-2. ECT Register Summary (Sheet 3 of 5)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
514  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
Register  
Name  
Bit 7  
6
5
4
3
2
1
Bit 0  
0x002B  
ICSYS  
R
SH37  
SH26  
SH15  
SH04  
TFMOD  
PACMX  
BUFEN  
LATQ  
W
0x002C  
Reserved  
R
Reserved  
W
0x002D  
TIMTST  
R
Timer Test Register  
W
0x002E  
PTPSR  
R
PTPS7  
PTPS6  
PTPS5  
PTPS4  
PTPS3  
PTPS2  
PTPS1  
PTMPS1  
PBOVI  
PTPS0  
W
0x002F  
PTMCPSR  
R
PTMPS7  
0
PTMPS6  
PTMPS5  
0
PTMPS4  
0
PTMPS3  
0
PTMPS2  
0
PTMPS0  
0
W
0x0030  
PBCTL  
R
PBEN  
0
W
0x0031  
PBFLG  
R
0
0
0
0
0
0
PBOVF  
PA3H1  
W
0x0032  
PA3H  
R
PA3H7  
PA2H7  
PA1H7  
PA0H7  
PA3H6  
PA2H6  
PA1H6  
PA0H6  
PA3H5  
PA2H5  
PA1H5  
PA0H5  
PA3H4  
PA2H4  
PA1H4  
PA0H4  
PA3H3  
PA2H3  
PA1H3  
PA0H3  
PA3H2  
PA2H2  
PA1H2  
PA0H2  
PA3H0  
PA2H0  
PA1H0  
PA0H0  
W
0x0033  
PA2H  
R
PA2H1  
PA1H1  
PA0H1  
W
0x0034  
PA1H  
R
W
0x0035  
PA0H  
R
W
0x0036  
MCCNT  
(High)  
R
MCCNT15 MCCNT14 MCCNT13 MCCNT12 MCCNT11 MCCNT10  
MCCNT9  
MCCNT8  
W
0x0037  
MCCNT  
(Low)  
R
MCCNT7  
TC15  
MCCNT6  
TC14  
MCCNT5  
TC13  
MCCNT4  
TC12  
MCCNT3  
TC11  
MCCNT2  
TC10  
MCCNT1  
TC9  
MCCNT9  
TC8  
W
0x0038  
R
TC0H (High)  
W
0x0039  
R
TC7  
TC6  
TC5  
TC4  
TC3  
TC2  
TC1  
TC0  
TC0H (Low)  
= Unimplemented or Reserved  
Figure 11-2. ECT Register Summary (Sheet 4 of 5)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
515  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
Register  
Bit 7  
6
5
4
3
2
1
Bit 0  
Name  
0x003A  
R
TC15  
TC14  
TC13  
TC12  
TC11  
TC10  
TC9  
TC8  
TC1H (High)  
W
0x003B  
TC1H (Low)  
R
TC7  
TC15  
TC7  
TC6  
TC14  
TC6  
TC5  
TC13  
TC5  
TC4  
TC12  
TC4  
TC3  
TC11  
TC3  
TC2  
TC10  
TC2  
TC1  
TC9  
TC1  
TC9  
TC1  
TC0  
TC8  
TC0  
TC8  
TC0  
W
0x003C  
TC2H (High)  
R
W
0x003D  
TC2H (Low)  
R
W
0x003E  
TC3H (High)  
R
TC15  
TC7  
TC14  
TC6  
TC13  
TC5  
TC12  
TC4  
TC11  
TC3  
TC10  
TC2  
W
0x003F  
R
TC3H (Low)  
W
= Unimplemented or Reserved  
Figure 11-2. ECT Register Summary (Sheet 5 of 5)  
11.3.2.1 Timer Input Capture/Output Compare Select Register (TIOS)  
Module Base + 0x0000  
7
6
5
4
3
2
1
0
R
W
IOS7  
IOS6  
IOS5  
IOS4  
IOS3  
IOS2  
IOS1  
IOS0  
Reset  
0
0
0
0
0
0
0
0
Figure 11-3. Timer Input Capture/Output Compare Register (TIOS)  
Read or write: Anytime  
All bits reset to zero.  
Table 11-2. TIOS Field Descriptions  
Description  
Field  
7:0  
IOS[7:0]  
Input Capture or Output Compare Channel Configuration  
0 The corresponding channel acts as an input capture.  
1 The corresponding channel acts as an output compare.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
516  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.3.2.2 Timer Compare Force Register (CFORC)  
Module Base + 0x0001  
7
6
5
4
3
2
1
0
R
W
0
FOC7  
0
0
0
0
0
0
0
0
FOC6  
0
FOC5  
0
FOC4  
0
FOC3  
0
FOC2  
0
FOC1  
0
FOC0  
0
Reset  
Figure 11-4. Timer Compare Force Register (CFORC)  
Read or write: Anytime but reads will always return 0x0000 (1 state is transient).  
All bits reset to zero.  
Table 11-3. CFORC Field Descriptions  
Field  
Description  
7:0  
FOC[7:0]  
Force Output Compare Action for Channel 7:0 — A write to this register with the corresponding data bit(s) set  
causes the action which is programmed for output compare “x” to occur immediately. The action taken is the  
same as if a successful comparison had just taken place with the TCx register except the interrupt flag does not  
get set.  
Note: A successful channel 7 output compare overrides any channel 6:0 compares. If a forced output compare  
on any channel occurs at the same time as the successful output compare, then the forced output compare  
action will take precedence and the interrupt flag will not get set.  
11.3.2.3 Output Compare 7 Mask Register (OC7M)  
Module Base + 0x0002  
7
6
5
4
3
2
1
0
R
W
OC7M7  
OC7M6  
OC7M5  
OC7M4  
OC7M3  
OC7M2  
OC7M1  
OC7M0  
Reset  
0
0
0
0
0
0
0
0
Figure 11-5. Output Compare 7 Mask Register (OC7M)  
Read or write: Anytime  
All bits reset to zero.  
Table 11-4. OC7M Field Descriptions  
Description  
Field  
7:0  
Output Compare Mask Action for Channel 7:0  
OC7M[7:0] 0 The corresponding OC7Dx bit in the output compare 7 data register will not be transferred to the timer port on  
a successful channel 7 output compare, even if the corresponding pin is setup for output compare.  
1 The corresponding OC7Dx bit in the output compare 7 data register will be transferred to the timer port on a  
successful channel 7 output compare.  
Note: The corresponding channel must also be setup for output compare (IOSx = 1) for data to be transferred  
from the output compare 7 data register to the timer port.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
517  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.3.2.4 Output Compare 7 Data Register (OC7D)  
Module Base + 0x0003  
7
6
5
4
3
2
1
0
R
W
OC7D7  
OC7D6  
OC7D5  
OC7D4  
OC7D3  
OC7D2  
OC7D1  
OC7D0  
Reset  
0
0
0
0
0
0
0
0
Figure 11-6. Output Compare 7 Data Register (OC7D)  
Read or write: Anytime  
All bits reset to zero.  
Table 11-5. OC7D Field Descriptions  
Description  
Field  
7:0  
Output Compare 7 Data Bits — A channel 7 output compare can cause bits in the output compare 7 data  
OC7D[7:0] register to transfer to the timer port data register depending on the output compare 7 mask register.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
518  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.3.2.5 Timer Count Register (TCNT)  
Module Base + 0x0004  
15  
14  
13  
12  
11  
10  
9
8
R
W
TCNT15  
TCNT14  
TCNT13  
TCNT12  
TCNT11  
TCNT10  
TCNT9  
TCNT8  
Reset  
0
0
0
0
0
0
0
0
Figure 11-7. Timer Count Register High (TCNT)  
Module Base + 0x0005  
7
6
5
4
3
2
1
0
R
TCNT7  
W
TCNT6  
TCNT5  
TCNT4  
TCNT3  
TCNT2  
TCNT1  
TCNT0  
Reset  
0
0
0
0
0
0
0
0
Figure 11-8. Timer Count Register Low (TCNT)  
Read: Anytime  
Write: Has no meaning or effect  
All bits reset to zero.  
Table 11-6. TCNT Field Descriptions  
Description  
Field  
15:0  
Timer Counter Bits — The 16-bit main timer is an up counter. A read to this register will return the current value  
TCNT[15:0] of the counter. Access to the counter register will take place in one clock cycle.  
Note: A separate read/write for high byte and low byte in test mode will give a different result than accessing  
them as a word. The period of the first count after a write to the TCNT registers may be a different size  
because the write is not synchronized with the prescaler clock.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
519  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.3.2.6 Timer System Control Register 1 (TSCR1)  
Module Base + 0x0006  
7
6
5
4
3
2
1
0
R
W
0
0
0
TEN  
TSWAI  
TSFRZ  
TFFCA  
PRNT  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 11-9. Timer System Control Register 1 (TSCR1)  
Read or write: Anytime except PRNT bit is write once  
All bits reset to zero.  
Table 11-7. TSCR1 Field Descriptions  
Field  
Description  
7
Timer Enable  
TEN  
0 Disables the main timer, including the counter. Can be used for reducing power consumption.  
1 Allows the timer to function normally.  
Note: If for any reason the timer is not active, there is no ÷64 clock for the pulse accumulator since the ÷64 is  
generated by the timer prescaler.  
6
Timer Module Stops While in Wait  
TSWAI  
0 Allows the timer module to continue running during wait.  
1 Disables the timer counter, pulse accumulators and modulus down counter when the MCU is in wait mode.  
Timer interrupts cannot be used to get the MCU out of wait.  
5
Timer and Modulus Counter Stop While in Freeze Mode  
TSFRZ  
0 Allows the timer and modulus counter to continue running while in freeze mode.  
1 Disables the timer and modulus counter whenever the MCU is in freeze mode. This is useful for emulation.  
The pulse accumulators do not stop in freeze mode.  
4
Timer Fast Flag Clear All  
TFFCA  
0 Allows the timer flag clearing to function normally.  
1 A read from an input capture or a write to the output compare channel registers causes the corresponding  
channel flag, CxF, to be cleared in the TFLG1 register. Any access to the TCNT register clears the TOF flag  
in the TFLG2 register. Any access to the PACN3 and PACN2 registers clears the PAOVF and PAIF flags in the  
PAFLG register. Any access to the PACN1 and PACN0 registers clears the PBOVF flag in the PBFLG register.  
Any access to the MCCNT register clears the MCZF flag in the MCFLG register. This has the advantage of  
eliminating software overhead in a separate clear sequence. Extra care is required to avoid accidental flag  
clearing due to unintended accesses.  
Note: The flags cannot be cleared via the normal flag clearing mechanism (writing a one to the flag) when  
TFFCA = 1.  
3
Precision Timer  
PRNT  
0 Enables legacy timer. Only bits DLY0 and DLY1 of the DLYCT register are used for the delay selection of the  
delay counter. PR0, PR1, and PR2 bits of the TSCR2 register are used for timer counter prescaler selection.  
MCPR0 and MCPR1 bits of the MCCTL register are used for modulus down counter prescaler selection.  
1 Enables precision timer. All bits in the DLYCT register are used for the delay selection, all bits of the PTPSR  
register are used for Precision Timer Prescaler Selection, and all bits of PTMCPSR register are used for the  
prescaler Precision Timer Modulus Counter Prescaler selection.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
520  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.3.2.7 Timer Toggle On Overflow Register 1 (TTOV)  
Module Base + 0x0007  
7
6
5
4
3
2
1
0
R
TOV7  
W
TOV6  
TOV5  
TOV4  
TOV3  
TOV2  
TOV1  
TOV0  
Reset  
0
0
0
0
0
0
0
0
Figure 11-10. Timer Toggle On Overflow Register 1 (TTOV)  
Read or write: Anytime  
All bits reset to zero.  
Table 11-8. TTOV Field Descriptions  
Description  
Field  
7:0  
TOV[7:0]  
Toggle On Overflow Bits — TOV97:0] toggles output compare pin on timer counter overflow. This feature only  
takes effect when in output compare mode. When set, it takes precedence over forced output compare but not  
channel 7 override events.  
0 Toggle output compare pin on overflow feature disabled.  
1 Toggle output compare pin on overflow feature enabled.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
521  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.3.2.8 Timer Control Register 1/Timer Control Register 2 (TCTL1/TCTL2)  
Module Base + 0x0008  
7
6
5
4
3
2
1
0
R
W
OM7  
OL7  
OM6  
OL6  
OM5  
OL5  
OM4  
OL4  
Reset  
0
0
0
0
0
0
0
0
Figure 11-11. Timer Control Register 1 (TCTL1)  
Module Base + 0x0009  
7
6
5
4
3
2
1
0
R
OM3  
W
OL3  
OM2  
OL2  
OM1  
OL1  
OM0  
OL0  
Reset  
0
0
0
0
0
0
0
0
Figure 11-12. Timer Control Register 2 (TCTL2)  
Read or write: Anytime  
All bits reset to zero.  
Table 11-9. TCTL1/TCTL2 Field Descriptions  
Description  
Field  
OM[7:0]  
7, 5, 3, 1  
OMx — Output Mode  
OLx — Output Level  
These eight pairs of control bits are encoded to specify the output action to be taken as a result of a successful  
OCx compare. When either OMx or OLx is one, the pin associated with OCx becomes an output tied to OCx.  
See Table 11-10.  
OL[7:0]  
6, 4, 2, 0  
Table 11-10. Compare Result Output Action  
OMx  
OLx  
Action  
0
0
1
1
0
1
0
1
Timer disconnected from output pin logic  
Toggle OCx output line  
Clear OCx output line to zero  
Set OCx output line to one  
NOTE  
To enable output action by OMx and OLx bits on timer port, the  
corresponding bit in OC7M should be cleared.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
522  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.3.2.9 Timer Control Register 3/Timer Control Register 4 (TCTL3/TCTL4)  
Module Base + 0x000A  
7
6
5
4
3
2
1
0
R
W
EDG7B  
EDG7A  
EDG6B  
EDG6A  
EDG5B  
EDG5A  
EDG4B  
EDG4A  
Reset  
0
0
0
0
0
0
0
0
Figure 11-13. Timer Control Register 3 (TCTL3)  
Module Base + 0x000B  
7
6
5
4
3
2
1
0
R
EDG3B  
W
EDG3A  
EDG2B  
EDG2A  
EDG1B  
EDG1A  
EDG0B  
EDG0A  
Reset  
0
0
0
0
0
0
0
0
Figure 11-14. Timer Control Register 4 (TCTL4)  
Read or write: Anytime  
All bits reset to zero.  
Table 11-11. TCTL3/TCTL4 Field Descriptions  
Description  
Field  
EDG[7:0]B Input Capture Edge Control — These eight pairs of control bits configure the input capture edge detector  
7, 5, 3, 1  
circuits for each input capture channel. The four pairs of control bits in TCTL4 also configure the input capture  
edge control for the four 8-bit pulse accumulators PAC0–PAC3.EDG0B and EDG0A in TCTL4 also determine the  
active edge for the 16-bit pulse accumulator PACB. See Table 11-12.  
EDG[7:0]A  
6, 4, 2, 0  
Table 11-12. Edge Detector Circuit Configuration  
EDGxB  
EDGxA  
Configuration  
Capture disabled  
0
0
1
1
0
1
0
1
Capture on rising edges only  
Capture on falling edges only  
Capture on any edge (rising or falling)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
523  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.3.2.10 Timer Interrupt Enable Register (TIE)  
Module Base + 0x000C  
7
6
5
4
3
2
1
0
R
W
C7I  
C6I  
C5I  
C4I  
C3I  
C2I  
C1I  
C0I  
Reset  
0
0
0
0
0
0
0
0
Figure 11-15. Timer Interrupt Enable Register (TIE)  
Read or write: Anytime  
All bits reset to zero.  
The bits C7I–C0I correspond bit-for-bit with the flags in the TFLG1 status register.  
Table 11-13. TIE Field Descriptions  
Field  
Description  
Input Capture/Output Compare “x” Interrupt Enable  
7:0  
C[7:0]I  
0 The corresponding flag is disabled from causing a hardware interrupt.  
1 The corresponding flag is enabled to cause an interrupt.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
524  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.3.2.11 Timer System Control Register 2 (TSCR2)  
Module Base + 0x000D  
7
6
5
4
3
2
1
0
R
0
0
0
TOI  
W
TCRE  
PR2  
PR1  
PR0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 11-16. Timer System Control Register 2 (TSCR2)  
Read or write: Anytime  
All bits reset to zero.  
Table 11-14. TSCR2 Field Descriptions  
Description  
Field  
7
TOI  
Timer Overflow Interrupt Enable  
0 Timer overflow interrupt disabled.  
1 Hardware interrupt requested when TOF flag set.  
3
Timer Counter Reset Enable — This bit allows the timer counter to be reset by a successful channel 7 output  
compare. This mode of operation is similar to an up-counting modulus counter.  
0 Counter reset disabled and counter free runs.  
TCRE  
1 Counter reset by a successful output compare on channel 7.  
Note: If register TC7 = 0x0000 and TCRE = 1, then the TCNT register will stay at 0x0000 continuously. If register  
TC7 = 0xFFFF and TCRE = 1, the TOF flag will never be set when TCNT is reset from 0xFFFF to 0x0000.  
2:0  
PR[2:0]  
Timer Prescaler Select — These three bits specify the division rate of the main Timer prescaler when the PRNT  
bit of register TSCR1 is set to 0. The newly selected prescale factor will not take effect until the next synchronized  
edge where all prescale counter stages equal zero. See Table 11-15.  
Table 11-15. Prescaler Selection  
PR2  
PR1  
PR0  
Prescale Factor  
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
2
4
8
16  
32  
64  
128  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
525  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.3.2.12 Main Timer Interrupt Flag 1 (TFLG1)  
Module Base + 0x000E  
7
6
5
4
3
2
1
0
R
W
C7F  
C6F  
C5F  
C4F  
C3F  
C2F  
C1F  
C0F  
Reset  
0
0
0
0
0
0
0
0
Figure 11-17. Main Timer Interrupt Flag 1 (TFLG1)  
Read: Anytime  
Write used in the flag clearing mechanism. Writing a one to the flag clears the flag. Writing a zero will not  
affect the current status of the bit.  
NOTE  
mechanism (writing a one to the flag). Reference Section 11.3.2.6, “Timer  
System Control Register 1 (TSCR1)”.  
All bits reset to zero.  
clearing mechanism (writing a one to the flag) or via the fast flag clearing mechanism (reference TFFCA  
bit in Section 11.3.2.6, “Timer System Control Register 1 (TSCR1)”).  
Use of the TFMOD bit in the ICSYS register in conjunction with the use of the ICOVW register allows a  
timer interrupt to be generated after capturing two values in the capture and holding registers, instead of  
generating an interrupt for every capture.  
Table 11-16. TFLG1 Field Descriptions  
Field  
Description  
7:0  
C[7:0]F  
Input Capture/Output Compare Channel “x” Flag — A CxF flag is set when a corresponding input capture or  
output compare is detected. C0F can also be set by 16-bit Pulse Accumulator B (PACB). C3F–C0F can also be  
set by 8-bit pulse accumulators PAC3–PAC0.  
If the delay counter is enabled, the CxF flag will not be set until after the delay.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
526  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.3.2.13 Main Timer Interrupt Flag 2 (TFLG2)  
Module Base + 0x000F  
7
6
5
4
3
2
1
0
R
0
0
0
0
0
0
0
TOF  
W
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 11-18. Main Timer Interrupt Flag 2 (TFLG2)  
Read: Anytime  
Write used in the flag clearing mechanism. Writing a one to the flag clears the flag. Writing a zero will not  
affect the current status of the bit.  
NOTE  
mechanism (writing a one to the flag). Reference Section 11.3.2.6, “Timer  
System Control Register 1 (TSCR1)”.  
All bits reset to zero.  
clearing mechanism (writing a one to the flag) or via the fast flag clearing mechanism (Reference TFFCA  
bit in Section 11.3.2.6, “Timer System Control Register 1 (TSCR1)”).  
Table 11-17. TFLG2 Field Descriptions  
Field  
Description  
7
Timer Overflow Flag — Set when 16-bit free-running timer overflows from 0xFFFF to 0x0000.  
TOF  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
527  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.3.2.14 Timer Input Capture/Output Compare Registers 0–7  
Module Base + 0x0010  
15  
14  
13  
12  
11  
10  
9
8
R
W
Bit 15  
Bit 14  
Bit 13  
Bit 12  
Bit 11  
Bit 10  
Bit 9  
Bit 8  
Reset  
0
0
0
0
0
0
0
0
Figure 11-19. Timer Input Capture/Output Compare Register 0 High (TC0)  
Module Base + 0x0011  
7
6
5
4
3
2
1
0
R
Bit 7  
W
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
Reset  
0
0
0
0
0
0
0
0
Figure 11-20. Timer Input Capture/Output Compare Register 0 Low (TC0)  
Module Base + 0x0012  
15  
14  
13  
12  
11  
10  
9
8
R
Bit 15  
W
Bit 14  
Bit 13  
Bit 12  
Bit 11  
Bit 10  
Bit 9  
Bit 8  
Reset  
0
0
0
0
0
0
0
0
Figure 11-21. Timer Input Capture/Output Compare Register 1 High (TC1)  
Module Base + 0x0013  
7
6
5
4
3
2
1
0
R
Bit 7  
W
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
Reset  
0
0
0
0
0
0
0
0
Figure 11-22. Timer Input Capture/Output Compare Register 1 Low (TC1)  
Module Base + 0x0014  
15  
14  
13  
12  
11  
10  
9
8
R
Bit 15  
W
Bit 14  
Bit 13  
Bit 12  
Bit 11  
Bit 10  
Bit 9  
Bit 8  
Reset  
0
0
0
0
0
0
0
0
Figure 11-23. Timer Input Capture/Output Compare Register 2 High (TC2)  
Module Base + 0x0015  
7
6
5
4
3
2
1
0
R
Bit 7  
W
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
Reset  
0
0
0
0
0
0
0
0
Figure 11-24. Timer Input Capture/Output Compare Register 2 Low (TC2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
528  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
Module Base + 0x0016  
15  
14  
13  
12  
11  
10  
9
8
R
Bit 15  
W
Bit 14  
Bit 13  
Bit 12  
Bit 11  
Bit 10  
Bit 9  
Bit 8  
Reset  
0
0
0
0
0
0
0
0
Figure 11-25. Timer Input Capture/Output Compare Register 3 High (TC3)  
Module Base + 0x0017  
7
6
5
4
3
2
1
0
R
Bit 7  
W
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
Reset  
0
0
0
0
0
0
0
0
Figure 11-26. Timer Input Capture/Output Compare Register 3 Low (TC3)  
Module Base + 0x0018  
15  
14  
13  
12  
11  
10  
9
8
R
Bit 15  
W
Bit 14  
Bit 13  
Bit 12  
Bit 11  
Bit 10  
Bit 9  
Bit 8  
Reset  
0
0
0
0
0
0
0
0
Figure 11-27. Timer Input Capture/Output Compare Register 4 High (TC4)  
Module Base + 0x0019  
7
6
5
4
3
2
1
0
R
Bit 7  
W
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
Reset  
0
0
0
0
0
0
0
0
Figure 11-28. Timer Input Capture/Output Compare Register 4 Low (TC4)  
Module Base + 0x001A  
15  
14  
13  
12  
11  
10  
9
8
R
Bit 15  
W
Bit 14  
Bit 13  
Bit 12  
Bit 11  
Bit 10  
Bit 9  
Bit 8  
Reset  
0
0
0
0
0
0
0
0
Figure 11-29. Timer Input Capture/Output Compare Register 5 High (TC5)  
Module Base + 0x001B  
7
6
5
4
3
2
1
0
R
Bit 7  
W
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
Reset  
0
0
0
0
0
0
0
0
Figure 11-30. Timer Input Capture/Output Compare Register 5 Low (TC5)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
529  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
Module Base + 0x001C  
15  
14  
13  
12  
11  
10  
9
8
R
W
Bit 15  
Bit 14  
Bit 13  
Bit 12  
Bit 11  
Bit 10  
Bit 9  
Bit 8  
Reset  
0
0
0
0
0
0
0
0
Figure 11-31. Timer Input Capture/Output Compare Register 6 High (TC6)  
Module Base + 0x001D  
7
6
5
4
3
2
1
0
R
Bit 7  
W
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
Reset  
0
0
0
0
0
0
0
0
Figure 11-32. Timer Input Capture/Output Compare Register 6 Low (TC6)  
Module Base + 0x001E  
15  
14  
13  
12  
11  
10  
9
8
R
Bit 15  
W
Bit 14  
Bit 13  
Bit 12  
Bit 11  
Bit 10  
Bit 9  
Bit 8  
Reset  
0
0
0
0
0
0
0
0
Figure 11-33. Timer Input Capture/Output Compare Register 7 High (TC7)  
Module Base + 0x001F  
7
6
5
4
3
2
1
0
R
Bit 7  
W
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
Reset  
0
0
0
0
0
0
0
0
Figure 11-34. Timer Input Capture/Output Compare Register 7 Low (TC7)  
Read: Anytime  
Write anytime for output compare function. Writes to these registers have no meaning or effect during  
input capture.  
All bits reset to zero.  
Depending on the TIOS bit for the corresponding channel, these registers are used to latch the value of the  
free-running counter when a defined transition is sensed by the corresponding input capture edge detector  
or to trigger an output action for output compare.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
530  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.3.2.15 16-Bit Pulse Accumulator A Control Register (PACTL)  
Module Base + 0x0020  
7
6
5
4
3
2
1
0
R
W
0
0
PAEN  
PAMOD  
PEDGE  
CLK1  
CLK0  
PAOVI  
PAI  
Reset  
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 11-35. 16-Bit Pulse Accumulator Control Register (PACTL)  
Read: Anytime  
Write: Anytime  
All bits reset to zero.  
Table 11-18. PACTL Field Descriptions  
Description  
Field  
6
Pulse Accumulator A System Enable PAEN is independent from TEN. With timer disabled, the pulse  
accumulator can still function unless pulse accumulator is disabled.  
PAEN  
0 16-Bit Pulse Accumulator A system disabled. 8-bit PAC3 and PAC2 can be enabled when their related enable  
bits in ICPAR are set. Pulse Accumulator Input Edge Flag (PAIF) function is disabled.  
1 16-Bit Pulse Accumulator A system enabled. The two 8-bit pulse accumulators PAC3 and PAC2 are cascaded  
to form the PACA 16-bit pulse accumulator. When PACA in enabled, the PACN3 and PACN2 registers contents  
are respectively the high and low byte of the PACA. PA3EN and PA2EN control bits in ICPAR have no effect.  
Pulse Accumulator Input Edge Flag (PAIF) function is enabled. The PACA shares the input pin with IC7.  
5
Pulse Accumulator Mode — This bit is active only when the Pulse Accumulator A is enabled (PAEN = 1).  
PAMOD  
0 Event counter mode  
1 Gated time accumulation mode  
4
Pulse Accumulator Edge Control — This bit is active only when the Pulse Accumulator A is enabled  
PEDGE  
(PAEN = 1). Refer to Table 11-19.  
For PAMOD bit = 0 (event counter mode).  
0 Falling edges on PT7 pin cause the count to be incremented  
1 Rising edges on PT7 pin cause the count to be incremented  
For PAMOD bit = 1 (gated time accumulation mode).  
0 PT7 input pin high enables bus clock divided by 64 to Pulse Accumulator and the trailing falling edge on PT7  
sets the PAIF flag.  
1 PT7 input pin low enables bus clock divided by 64 to Pulse Accumulator and the trailing rising edge on PT7  
sets the PAIF flag.  
If the timer is not active (TEN = 0 in TSCR1), there is no divide-by-64 since the ÷64 clock is generated by the  
timer prescaler.  
3:2  
Clock Select Bits — For the description of PACLK please refer to Figure 11-70.  
CLK[1:0]  
If the pulse accumulator is disabled (PAEN = 0), the prescaler clock from the timer is always used as an input  
clock to the timer counter. The change from one selected clock to the other happens immediately after these bits  
are written. Refer to Table 11-20.  
2
Pulse Accumulator A Overflow Interrupt Enable  
0 Interrupt inhibited  
PAOVI  
1 Interrupt requested if PAOVF is set  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
531  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
Table 11-18. PACTL Field Descriptions (continued)  
Field  
Description  
0
PAI  
Pulse Accumulator Input Interrupt Enable  
0 Interrupt inhibited  
1 Interrupt requested if PAIF is set  
.
Table 11-19. Pin Action  
PAMOD  
PEDGE  
Pin Action  
0
0
1
1
0
1
0
1
Falling edge  
Rising edge  
Divide by 64 clock enabled with pin high level  
Divide by 64 clock enabled with pin low level  
Table 11-20. Clock Selection  
Clock Source  
CLK1  
CLK0  
0
0
1
1
0
1
0
1
Use timer prescaler clock as timer counter clock  
Use PACLK as input to timer counter clock  
Use PACLK/256 as timer counter clock frequency  
Use PACLK/65536 as timer counter clock frequency  
11.3.2.16 Pulse Accumulator A Flag Register (PAFLG)  
Module Base + 0x0021  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
PAOVF  
PAIF  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 11-36. Pulse Accumulator A Flag Register (PAFLG)  
Read: Anytime  
Write used in the flag clearing mechanism. Writing a one to the flag clears the flag. Writing a zero will not  
affect the current status of the bit.  
NOTE  
mechanism (writing a one to the flag). Reference Section 11.3.2.6, “Timer  
System Control Register 1 (TSCR1)”.  
All bits reset to zero.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
532  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
clearing mechanism (writing a one to the flag) or via the fast flag clearing mechanism (Reference TFFCA  
bit in Section 11.3.2.6, “Timer System Control Register 1 (TSCR1)”).  
Table 11-21. PAFLG Field Descriptions  
Field  
Description  
1
Pulse Accumulator A Overflow Flag — Set when the 16-bit pulse accumulator A overflows from 0xFFFF to  
PAOVF  
0x0000, or when 8-bit pulse accumulator 3 (PAC3) overflows from 0x00FF to 0x0000.  
When PACMX = 1, PAOVF bit can also be set if 8-bit pulse accumulator 3 (PAC3) reaches 0x00FF followed by  
an active edge on PT3.  
0
PAIF  
Pulse Accumulator Input edge Flag — Set when the selected edge is detected at the PT7 input pin. In event  
mode the event edge triggers PAIF and in gated time accumulation mode the trailing edge of the gate signal at  
the PT7 input pin triggers PAIF.  
11.3.2.17 Pulse Accumulators Count Registers (PACN3 and PACN2)  
Module Base + 0x0022  
7
6
5
4
3
2
1
0
R
W
PACNT7(15) PACNT6(14) PACNT5(13) PACNT4(12) PACNT3(11) PACNT2(10) PACNT1(9) PACNT0(8)  
Reset  
0
0
0
0
0
0
0
0
Figure 11-37. Pulse Accumulators Count Register 3 (PACN3)  
Module Base + 0x0023  
7
6
5
4
3
2
1
0
R
PACNT7  
W
PACNT6  
PACNT5  
PACNT4  
PACNT3  
PACNT2  
PACNT1  
PACNT0  
Reset  
0
0
0
0
0
0
0
0
Figure 11-38. Pulse Accumulators Count Register 2 (PACN2)  
Read: Anytime  
Write: Anytime  
All bits reset to zero.  
The two 8-bit pulse accumulators PAC3 and PAC2 are cascaded to form the PACA 16-bit pulse  
accumulator. When PACA in enabled (PAEN = 1 in PACTL), the PACN3 and PACN2 registers contents  
are respectively the high and low byte of the PACA.  
When PACN3 overflows from 0x00FF to 0x0000, the interrupt flag PAOVF in PAFLG is set.  
Full count register access will take place in one clock cycle.  
NOTE  
A separate read/write for high byte and low byte will give a different result  
than accessing them as a word.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
533  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
When clocking pulse and write to the registers occurs simultaneously, write  
takes priority and the register is not incremented.  
11.3.2.18 Pulse Accumulators Count Registers (PACN1 and PACN0)  
Module Base + 0x0024  
7
6
5
4
3
2
1
0
R
W
PACNT7(15) PACNT6(14) PACNT5(13) PACNT4(12) PACNT3(11) PACNT2(10) PACNT1(9) PACNT0(8)  
Reset  
0
0
0
0
0
0
0
0
Figure 11-39. Pulse Accumulators Count Register 1 (PACN1)  
Module Base + 0x0025  
7
6
5
4
3
2
1
0
R
PACNT7  
W
PACNT6  
PACNT5  
PACNT4  
PACNT3  
PACNT2  
PACNT1  
PACNT0  
Reset  
0
0
0
0
0
0
0
0
Figure 11-40. Pulse Accumulators Count Register 0 (PACN0)  
Read: Anytime  
Write: Anytime  
All bits reset to zero.  
The two 8-bit pulse accumulators PAC1 and PAC0 are cascaded to form the PACB 16-bit pulse  
accumulator. When PACB in enabled, (PBEN = 1 in PBCTL) the PACN1 and PACN0 registers contents  
are respectively the high and low byte of the PACB.  
When PACN1 overflows from 0x00FF to 0x0000, the interrupt flag PBOVF in PBFLG is set.  
Full count register access will take place in one clock cycle.  
NOTE  
A separate read/write for high byte and low byte will give a different result  
than accessing them as a word.  
When clocking pulse and write to the registers occurs simultaneously, write  
takes priority and the register is not incremented.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
534  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.3.2.19 16-Bit Modulus Down-Counter Control Register (MCCTL)  
Module Base + 0x0026  
7
6
5
4
3
2
1
0
R
0
0
MCZI  
W
MODMC  
RDMCL  
MCEN  
MCPR1  
MCPR0  
ICLAT  
0
FLMC  
0
Reset  
0
0
0
0
0
0
Figure 11-41. 16-Bit Modulus Down-Counter Control Register (MCCTL)  
Read: Anytime  
Write: Anytime  
All bits reset to zero.  
Table 11-22. MCCTL Field Descriptions  
Description  
Field  
7
Modulus Counter Underflow Interrupt Enable  
0 Modulus counter interrupt is disabled.  
MCZI  
1 Modulus counter interrupt is enabled.  
6
Modulus Mode Enable  
MODMC  
0 The modulus counter counts down from the value written to it and will stop at 0x0000.  
1 Modulus mode is enabled. When the modulus counter reaches 0x0000, the counter is loaded with the latest  
value written to the modulus count register.  
Note: For proper operation, the MCEN bit should be cleared before modifying the MODMC bit in order to reset  
the modulus counter to 0xFFFF.  
5
Read Modulus Down-Counter Load  
RDMCL  
0 Reads of the modulus count register (MCCNT) will return the present value of the count register.  
1 Reads of the modulus count register (MCCNT) will return the contents of the load register.  
4
Input Capture Force Latch Action — When input capture latch mode is enabled (LATQ and BUFEN bit in  
ICSYS are set), a write one to this bit immediately forces the contents of the input capture registers TC0 to TC3  
and their corresponding 8-bit pulse accumulators to be latched into the associated holding registers. The pulse  
accumulators will be automatically cleared when the latch action occurs.  
ICLAT  
Writing zero to this bit has no effect. Read of this bit will always return zero.  
3
Force Load Register into the Modulus Counter Count Register — This bit is active only when the modulus  
FLMC  
down-counter is enabled (MCEN = 1).  
A write one into this bit loads the load register into the modulus counter count register (MCCNT). This also resets  
the modulus counter prescaler.  
Write zero to this bit has no effect. Read of this bit will return always zero.  
2
Modulus Down-Counter Enable  
MCEN  
0 Modulus counter disabled. The modulus counter (MCCNT) is preset to 0xFFFF. This will prevent an early  
interrupt flag when the modulus down-counter is enabled.  
1 Modulus counter is enabled.  
1:0  
Modulus Counter Prescaler Select — These two bits specify the division rate of the modulus counter prescaler  
MCPR[1:0] when PRNT of TSCR1 is set to 0. The newly selected prescaler division rate will not be effective until a load of  
the load register into the modulus counter count register occurs.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
535  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
Table 11-23. Modulus Counter Prescaler Select  
MCPR1  
MCPR0  
Prescaler Division  
0
0
1
1
0
1
0
1
1
4
8
16  
11.3.2.20 16-Bit Modulus Down-Counter FLAG Register (MCFLG)  
Module Base + 0x0027  
7
6
5
4
3
2
1
0
R
W
0
0
0
POLF3  
POLF2  
POLF1  
POLF0  
MCZF  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 11-42. 16-Bit Modulus Down-Counter FLAG Register (MCFLG)  
Read: Anytime  
Write only used in the flag clearing mechanism for bit 7. Writing a one to bit 7 clears the flag. Writing a  
zero will not affect the current status of the bit.  
NOTE  
mechanism (writing a one to the flag). Reference Section 11.3.2.6, “Timer  
System Control Register 1 (TSCR1)”.  
All bits reset to zero.  
Table 11-24. MCFLG Field Descriptions  
Field  
Description  
7
Modulus Counter Underflow Flag — The flag is set when the modulus down-counter reaches 0x0000.  
MCZF  
The flag indicates when interrupt conditions have occurred. The flag can be cleared via the normal flag clearing  
mechanism (writing a one to the flag) or via the fast flag clearing mechanism (Reference TFFCA bit in  
Section 11.3.2.6, “Timer System Control Register 1 (TSCR1)”).  
3:0  
First Input Capture Polarity Status — These are read only bits. Writes to these bits have no effect.  
POLF[3:0]  
Each status bit gives the polarity of the first edge which has caused an input capture to occur after capture latch  
has been read.  
Each POLFx corresponds to a timer PORTx input.  
0 The first input capture has been caused by a falling edge.  
1 The first input capture has been caused by a rising edge.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
536  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.3.2.21 ICPAR — Input Control Pulse Accumulators Register (ICPAR)  
Module Base + 0x0028  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
PA3EN  
PA2EN  
PA1EN  
PA0EN  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 11-43. Input Control Pulse Accumulators Register (ICPAR)  
Read: Anytime  
Write: Anytime.  
All bits reset to zero.  
The 8-bit pulse accumulators PAC3 and PAC2 can be enabled only if PAEN in PACTL is cleared. If PAEN  
is set, PA3EN and PA2EN have no effect.  
The 8-bit pulse accumulators PAC1 and PAC0 can be enabled only if PBEN in PBCTL is cleared. If PBEN  
is set, PA1EN and PA0EN have no effect.  
Table 11-25. ICPAR Field Descriptions  
Field  
Description  
3:0  
8-Bit Pulse Accumulator ‘x’ Enable  
PA[3:0]EN 0 8-Bit Pulse Accumulator is disabled.  
1 8-Bit Pulse Accumulator is enabled.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
537  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.3.2.22 Delay Counter Control Register (DLYCT)  
Module Base + 0x0029  
7
6
5
4
3
2
1
0
R
W
DLY7  
DLY6  
DLY5  
DLY4  
DLY3  
DLY2  
DLY1  
DLY0  
Reset  
0
0
0
0
0
0
0
0
Figure 11-44. Delay Counter Control Register (DLYCT)  
Read: Anytime  
Write: Anytime  
All bits reset to zero.  
Table 11-26. DLYCT Field Descriptions  
Description  
Field  
7:0  
Delay Counter Select — When the PRNT bit of TSCR1 register is set to 0, only bits DLY0, DLY1 are used to  
DLY[7:0]  
calculate the delay.Table 11-27 shows the delay settings in this case.  
When the PRNT bit of TSCR1 register is set to 1, all bits are used to set a more precise delay. Table 11-28 shows  
the delay settings in this case. After detection of a valid edge on an input capture pin, the delay counter counts  
the pre-selected number of [(dly_cnt + 1)*4]bus clock cycles, then it will generate a pulse on its output if the level  
of input signal, after the preset delay, is the opposite of the level before the transition.This will avoid reaction to  
narrow input pulses.  
Delay between two active edges of the input signal period should be longer than the selected counter delay.  
Note: It is recommended to not write to this register while the timer is enabled, that is when TEN is set in register  
TSCR1.  
Table 11-27. Delay Counter Select when PRNT = 0  
DLY1  
DLY0  
Delay  
0
0
1
1
0
1
0
1
Disabled  
256 bus clock cycles  
512 bus clock cycles  
1024 bus clock cycles  
Table 11-28. Delay Counter Select Examples when PRNT = 1  
DLY7  
DLY6  
DLY5  
DLY4  
DLY3  
DLY2  
DLY1  
DLY0  
Delay  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
Disabled (bypassed)  
8 bus clock cycles  
12 bus clock cycles  
16 bus clock cycles  
20 bus clock cycles  
24 bus clock cycles  
28 bus clock cycles  
32 bus clock cycles  
64 bus clock cycles  
128 bus clock cycles  
256 bus clock cycles  
512 bus clock cycles  
MC9S12XDP512 Data Sheet, Rev. 2.11  
538  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
Table 11-28. Delay Counter Select Examples when PRNT = 1  
DLY7  
DLY6  
DLY5  
DLY4  
DLY3  
DLY2  
DLY1  
DLY0  
Delay  
1
1
1
1
1
1
1
1
1024 bus clock cycles  
11.3.2.23 Input Control Overwrite Register (ICOVW)  
Module Base + 0x002A  
7
6
5
4
3
2
1
0
R
W
NOVW7  
NOVW6  
NOVW5  
NOVW4  
NOVW3  
NOVW2  
NOVW1  
NOVW0  
Reset  
0
0
0
0
0
0
0
0
Figure 11-45. Input Control Overwrite Register (ICOVW)  
Read: Anytime  
Write: Anytime  
All bits reset to zero.  
Table 11-29. ICOVW Field Descriptions  
Description  
Field  
7:0  
No Input Capture Overwrite  
NOVW[7:0] 0 The contents of the related capture register or holding register can be overwritten when a new input capture  
1 The related capture register or holding register cannot be written by an event unless they are empty (see  
Section 11.4.1.1, “IC Channels”). This will prevent the captured value being overwritten until it is read or  
latched in the holding register.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
539  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.3.2.24 Input Control System Control Register (ICSYS)  
Module Base + 0x002B  
7
6
5
4
3
2
1
0
R
W
SH37  
SH26  
SH15  
SH04  
TFMOD  
PACMX  
BUFEN  
LATQ  
Reset  
0
0
0
0
0
0
0
0
Figure 11-46. Input Control System Register (ICSYS)  
Read: Anytime  
Write: Once in normal modes  
All bits reset to zero.  
Table 11-30. ICSYS Field Descriptions  
Description  
Field  
7:4  
SHxy  
Share Input action of Input Capture Channels x and y  
0 Normal operation  
1 The channel input ‘x’ causes the same action on the channel ‘y’. The port pin ‘x’ and the corresponding edge  
detector is used to be active on the channel ‘y’.  
3
Timer Flag Setting Mode — Use of the TFMOD bit in conjunction with the use of the ICOVW register allows a  
timer interrupt to be generated after capturing two values in the capture and holding registers instead of  
generating an interrupt for every capture.  
TFMOD  
By setting TFMOD in queue mode, when NOVWx bit is set and the corresponding capture and holding registers  
are emptied, an input capture event will first update the related input capture register with the main timer  
contents. At the next event, the TCx data is transferred to the TCxH register, the TCx is updated and the CxF  
interrupt flag is set. In all other input capture cases the interrupt flag is set by a valid external event on PTx.  
0 The timer flags C3F–C0F in TFLG1 are set when a valid input capture transition on the corresponding port pin  
occurs.  
1 If in queue mode (BUFEN = 1 and LATQ = 0), the timer flags C3F–C0F in TFLG1 are set only when a latch  
on the corresponding holding register occurs. If the queue mode is not engaged, the timer flags C3F–C0F are  
set the same way as for TFMOD = 0.  
2
8-Bit Pulse Accumulators Maximum Count  
PACMX  
0 Normal operation. When the 8-bit pulse accumulator has reached the value 0x00FF, with the next active edge,  
it will be incremented to 0x0000.  
1 When the 8-bit pulse accumulator has reached the value 0x00FF, it will not be incremented further. The value  
0x00FF indicates a count of 255 or more.  
1
IC Buffer Enable  
BUFFEN  
0 Input capture and pulse accumulator holding registers are disabled.  
1 Input capture and pulse accumulator holding registers are enabled. The latching mode is defined by LATQ  
control bit.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
540  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
Table 11-30. ICSYS Field Descriptions (continued)  
Field  
Description  
0
Input Control Latch or Queue Mode Enable — The BUFEN control bit should be set in order to enable the IC  
LATQ  
and pulse accumulators holding registers. Otherwise LATQ latching modes are disabled.  
Write one into ICLAT bit in MCCTL, when LATQ and BUFEN are set will produce latching of input capture and  
pulse accumulators registers into their holding registers.  
0 Queue mode of Input Capture is enabled. The main timer value is memorized in the IC register by a valid input  
pin transition. With a new occurrence of a capture, the value of the IC register will be transferred to its holding  
register and the IC register memorizes the new timer value.  
1 Latch mode is enabled. Latching function occurs when modulus down-counter reaches zero or a zero is  
written into the count register MCCNT (see Section 11.4.1.1.2, “Buffered IC Channels”). With a latching event  
the contents of IC registers and 8-bit pulse accumulators are transferred to their holding registers. 8-bit pulse  
accumulators are cleared.  
11.3.2.25 Precision Timer Prescaler Select Register (PTPSR)  
Module Base + 0x002E  
7
6
5
4
3
2
1
0
R
W
PTPS7  
PTPS6  
PTPS5  
PTPS4  
PTPS3  
PTPS2  
PTPS1  
PTPS0  
Reset  
0
0
0
0
0
0
0
0
Figure 11-47. Precision Timer Prescaler Select Register (PTPSR)  
Read: Anytime  
Write: Anytime  
All bits reset to zero.  
Table 11-31. PTPSR Field Descriptions  
Description  
Field  
7:0  
Precision Timer Prescaler Select Bits — These eight bits specify the division rate of the main Timer prescaler.  
PTPS[7:0] These are effective only when the PRNT bit of TSCR1 is set to 1. Table 11-32 shows some selection examples  
in this case.  
The newly selected prescale factor will not take effect until the next synchronized edge where all prescale counter  
stages equal zero.  
Table 11-32. Precision Timer Prescaler Selection Examples when PRNT = 1  
Prescale  
PTPS7  
PTPS6  
PTPS5  
PTPS4  
PTPS3  
PTPS2  
PTPS1  
PTPS0  
Factor  
0
0
0
0
0
0
0
0
0
0
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
0
0
1
1
0
0
0
1
0
1
0
1
1
2
3
4
5
6
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
541  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
Table 11-32. Precision Timer Prescaler Selection Examples when PRNT = 1  
Prescale  
Factor  
PTPS7  
PTPS6  
PTPS5  
PTPS4  
PTPS3  
PTPS2  
PTPS1  
PTPS0  
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
7
8
16  
32  
64  
128  
256  
11.3.2.26 Precision Timer Modulus Counter Prescaler Select Register (PTMCPSR)  
Module Base + 0x002F  
7
6
5
4
3
2
1
0
R
W
PTMPS7  
PTMPS6  
PTMPS5  
PTMPS4  
PTMPS3  
PTMPS2  
PTMPS1  
PTMPS0  
Reset  
0
0
0
0
0
0
0
0
Figure 11-48. Precision Timer Modulus Counter Prescaler Select Register (PTMCPSR)  
Read: Anytime  
Write: Anytime  
All bits reset to zero.  
Table 11-33. PTMCPSR Field Descriptions  
Description  
Field  
7:0  
Precision Timer Modulus Counter Prescaler Select Bits — These eight bits specify the division rate of the  
PTMPS[7:0] modulus counter prescaler. These are effective only when the PRNT bit of TSCR1 is set to 1. Table 11-34 shows  
some possible division rates.  
The newly selected prescaler division rate will not be effective until a load of the load register into the modulus  
counter count register occurs.  
Table 11-34. Precision Timer Modulus Counter Prescaler Select Examples when PRNT = 1  
Prescaler  
PTMPS7  
PTMPS6  
PTMPS5  
PTMPS4  
PTMPS3  
PTMPS2  
PTMPS1  
PTMPS0  
Division  
Rate  
0
0
0
0
0
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
0
0
1
1
0
0
1
0
1
0
1
2
3
4
5
MC9S12XDP512 Data Sheet, Rev. 2.11  
542  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
Table 11-34. Precision Timer Modulus Counter Prescaler Select Examples when PRNT = 1 (continued)  
Prescaler  
PTMPS7  
PTMPS6  
PTMPS5  
PTMPS4  
PTMPS3  
PTMPS2  
PTMPS1  
PTMPS0  
Division  
Rate  
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
6
7
8
16  
32  
64  
128  
256  
11.3.2.27 16-Bit Pulse Accumulator B Control Register (PBCTL)  
Module Base + 0x0030  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
PBEN  
PBOVI  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 11-49. 16-Bit Pulse Accumulator B Control Register (PBCTL)  
Read: Anytime  
Write: Anytime  
All bits reset to zero.  
Table 11-35. PBCTL Field Descriptions  
Description  
Field  
6
Pulse Accumulator B System Enable — PBEN is independent from TEN. With timer disabled, the pulse  
accumulator can still function unless pulse accumulator is disabled.  
0 16-bit pulse accumulator system disabled. 8-bit PAC1 and PAC0 can be enabled when their related enable  
bits in ICPAR are set.  
PBEN  
1 Pulse accumulator B system enabled. The two 8-bit pulse accumulators PAC1 and PAC0 are cascaded to form  
the PACB 16-bit pulse accumulator B. When PACB is enabled, the PACN1 and PACN0 registers contents are  
respectively the high and low byte of the PACB.  
PA1EN and PA0EN control bits in ICPAR have no effect.  
The PACB shares the input pin with IC0.  
1
Pulse Accumulator B Overflow Interrupt Enable  
0 Interrupt inhibited  
PBOVI  
1 Interrupt requested if PBOVF is set  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
543  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.3.2.28 Pulse Accumulator B Flag Register (PBFLG)  
Module Base + 0x0031  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
0
PBOVF  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 11-50. Pulse Accumulator B Flag Register (PBFLG)  
Read: Anytime  
Write used in the flag clearing mechanism. Writing a one to the flag clears the flag. Writing a zero will not  
affect the current status of the bit.  
NOTE  
mechanism (writing a one to the flag). Reference Section 11.3.2.6, “Timer  
System Control Register 1 (TSCR1)”.  
All bits reset to zero.  
clearing mechanism (writing a one to the flag) or via the fast flag clearing mechanism (Reference TFFCA  
bit in Section 11.3.2.6, “Timer System Control Register 1 (TSCR1)”).  
Table 11-36. PBFLG Field Descriptions  
Field  
Description  
1
Pulse Accumulator B Overflow Flag — This bit is set when the 16-bit pulse accumulator B overflows from  
PBOVF  
0xFFFF to 0x0000, or when 8-bit pulse accumulator 1 (PAC1) overflows from 0x00FF to 0x0000.  
When PACMX = 1, PBOVF bit can also be set if 8-bit pulse accumulator 1 (PAC1) reaches 0x00FF and an active  
edge follows on PT1.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
544  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.3.2.29 8-Bit Pulse Accumulators Holding Registers (PA3H–PA0H)  
Module Base + 0x0032  
7
6
5
4
3
2
1
0
R
W
PA3H7  
0
PA3H6  
PA3H5  
PA3H4  
PA3H3  
PA3H2  
PA3H1  
PA3H0  
Reset  
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 11-51. 8-Bit Pulse Accumulators Holding Register 3 (PA3H)  
Module Base + 0x0033  
7
6
5
4
3
2
1
0
R
W
PA2H7  
PA2H6  
PA2H5  
PA2H4  
PA2H3  
PA2H2  
PA2H1  
PA2H0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 11-52. 8-Bit Pulse Accumulators Holding Register 2 (PA2H)  
Module Base + 0x0034  
7
6
5
4
3
2
1
0
R
W
PA1H7  
PA1H6  
PA1H5  
PA1H4  
PA1H3  
PA1H2  
PA1H1  
PA1H0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 11-53. 8-Bit Pulse Accumulators Holding Register 1 (PA1H)  
Module Base + 0x0035  
7
6
5
4
3
2
1
0
R
W
PA0H7  
PA0H6  
PA0H5  
PA0H4  
PA0H3  
PA0H2  
PA0H1  
PA0H0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 11-54. 8-Bit Pulse Accumulators Holding Register 0 (PA0H)  
Read: Anytime.  
Write: Has no effect.  
All bits reset to zero.  
These registers are used to latch the value of the corresponding pulse accumulator when the related bits in  
register ICPAR are enabled (see Section 11.4.1.3, “Pulse Accumulators”).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
545  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.3.2.30 Modulus Down-Counter Count Register (MCCNT)  
Module Base + 0x0036  
15  
14  
13  
12  
11  
10  
9
8
R
W
MCCNT15  
MCCNT14  
MCCNT13  
MCCNT12  
MCCNT11  
MCCNT10  
MCCNT9  
MCCNT8  
Reset  
1
1
1
1
1
1
1
1
Figure 11-55. Modulus Down-Counter Count Register High (MCCNT)  
Module Base + 0x0037  
7
6
5
4
3
2
1
0
R
MCCNT7  
W
MCCNT6  
MCCNT5  
MCCNT4  
MCCNT3  
MCCNT2  
MCCNT1  
MCCNT9  
Reset  
1
1
1
1
1
1
1
1
Figure 11-56. Modulus Down-Counter Count Register Low (MCCNT)  
Read: Anytime  
Write: Anytime.  
All bits reset to one.  
A full access for the counter register will take place in one clock cycle.  
NOTE  
A separate read/write for high byte and low byte will give different results  
than accessing them as a word.  
If the RDMCL bit in MCCTL register is cleared, reads of the MCCNT register will return the present value  
of the count register. If the RDMCL bit is set, reads of the MCCNT will return the contents of the load  
register.  
If a 0x0000 is written into MCCNT when LATQ and BUFEN in ICSYS register are set, the input capture  
and pulse accumulator registers will be latched.  
With a 0x0000 write to the MCCNT, the modulus counter will stay at zero and does not set the MCZF flag  
in MCFLG register.  
If the modulus down counter is enabled (MCEN = 1) and modulus mode is enabled (MODMC = 1), a write  
to MCCNT will update the load register with the value written to it. The count register will not be updated  
with the new value until the next counter underflow.  
If modulus mode is not enabled (MODMC = 0), a write to MCCNT will clear the modulus prescaler and  
will immediately update the counter register with the value written to it and down-counts to 0x0000 and  
stops.  
The FLMC bit in MCCTL can be used to immediately update the count register with the new value if an  
immediate load is desired.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
546  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.3.2.31 Timer Input Capture Holding Registers 0–3 (TCxH)  
Module Base + 0x0038  
15  
14  
13  
12  
11  
10  
9
8
R
W
TC15  
0
TC14  
TC13  
TC12  
TC11  
TC10  
TC9  
TC8  
Reset  
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 11-57. Timer Input Capture Holding Register 0 High (TC0H)  
Module Base + 0x0039  
7
6
5
4
3
2
1
0
R
W
TC7  
TC6  
TC5  
TC4  
TC3  
TC2  
TC1  
TC0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 11-58. Timer Input Capture Holding Register 0 Low (TC0H)  
Module Base + 0x003A  
15  
14  
13  
12  
11  
10  
9
8
R
W
TC15  
TC14  
TC13  
TC12  
TC11  
TC10  
TC9  
TC8  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 11-59. Timer Input Capture Holding Register 1 High (TC1H)  
Module Base + 0x003B  
7
6
5
4
3
2
1
0
R
W
TC7  
TC6  
TC5  
TC4  
TC3  
TC2  
TC1  
TC0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 11-60. Timer Input Capture Holding Register 1 Low (TC1H)  
Module Base + 0x003C  
15  
14  
13  
12  
11  
10  
9
8
R
W
TC15  
TC14  
TC13  
TC12  
TC11  
TC10  
TC9  
TC8  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 11-61. Timer Input Capture Holding Register 2 High (TC2H)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
547  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
Module Base + 0x003D  
7
6
5
4
3
2
1
0
R
W
TC7  
TC6  
TC5  
TC4  
TC3  
TC2  
TC1  
TC0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 11-62. Timer Input Capture Holding Register 2 Low (TC2H)  
Module Base + 0x003E  
15  
14  
13  
12  
11  
10  
9
8
R
W
TC15  
0
TC14  
TC13  
TC12  
TC11  
TC10  
TC9  
TC8  
Reset  
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 11-63. Timer Input Capture Holding Register 3 High (TC3H)  
Module Base + 0x003F  
7
6
5
4
3
2
1
0
R
W
TC7  
TC6  
TC5  
TC4  
TC3  
TC2  
TC1  
TC0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 11-64. Timer Input Capture Holding Register 3 Low (TC3H)  
Read: Anytime  
Write: Has no effect.  
All bits reset to zero.  
These registers are used to latch the value of the input capture registers TC0–TC3. The corresponding  
IOSx bits in TIOS should be cleared (see Section 11.4.1.1, “IC Channels”).  
11.4 Functional Description  
This section provides a complete functional description of the ECT block, detailing the operation of the  
design from the end user perspective in a number of subsections.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
548  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
16-Bit Free-Running  
16-Bit Load Register  
÷ 1, 2, ..., 128  
Main Timer  
÷ 1, 4, 8, 16  
16-Bit Modulus  
Down Counter  
Bus Clock  
Modulus Prescaler  
Bus Clock  
P0  
Timer Prescaler  
RESET  
0
Comparator  
Pin Logic  
Pin Logic  
Pin Logic  
Pin Logic  
Pin Logic  
Delay  
Counter  
TC0 Capture/Compare Reg.  
PAC0  
EDG0  
EDG1  
EDG2  
EDG3  
TC0H Hold Reg.  
PA0H Hold Reg.  
RESET  
0
Comparator  
P1  
P2  
P3  
Delay  
Counter  
TC1 Capture/Compare Reg.  
PAC1  
TC1H Hold Reg.  
PA1H Hold Reg.  
RESET  
0
Comparator  
Delay  
Counter  
TC2 Capture/Compare Reg.  
PAC2  
TC2H Hold Reg.  
PA2H Hold Reg.  
RESET  
0
Comparator  
Delay  
Counter  
TC3 Capture/Compare Reg.  
PAC3  
TC3H Hold Reg.  
PA3H Hold Reg.  
Comparator  
P4  
P5  
EDG4  
TC4 Capture/Compare Reg.  
MUX  
MUX  
ICLAT, LATQ, BUFEN  
(Force Latch)  
EDG0  
SH04  
Comparator  
Pin Logic  
Pin Logic  
Pin Logic  
EDG5  
EDG1  
TC5 Capture/Compare Reg.  
Write 0x0000  
to Modulus Counter  
SH15  
LATQ  
(MDC Latch Enable)  
Comparator  
P6  
P7  
EDG6  
TC6 Capture/Compare Reg.  
MUX  
MUX  
EDG2  
SH26  
Comparator  
EDG7  
TC7 Capture/Compare Reg.  
EDG3  
SH37  
Figure 11-65. Detailed Timer Block Diagram in Latch Mode when PRNT = 0  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
549  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
16-Bit Free-Running  
16-Bit Load Register  
÷ 1, 2,3, ..., 256  
Main Timer  
÷ 1, 2,3, ..., 256  
16-Bit Modulus  
Down Counter  
Bus Clock  
Modulus Prescaler  
Bus Clock  
P0  
Timer Prescaler  
RESET  
0
Comparator  
Pin Logic  
Pin Logic  
Pin Logic  
Pin Logic  
Pin Logic  
Delay  
Counter  
TC0 Capture/Compare Reg.  
PAC0  
EDG0  
8, 12, 16, ..., 1024  
TC0H Hold Reg.  
PA0H Hold Reg.  
RESET  
0
Comparator  
P1  
P2  
P3  
Delay  
Counter  
TC1 Capture/Compare Reg.  
PAC1  
EDG1  
8, 12, 16, ..., 1024  
TC1H Hold Reg.  
PA1H Hold Reg.  
RESET  
0
Comparator  
Delay  
Counter  
TC2 Capture/Compare Reg.  
PAC2  
EDG2  
8, 12, 16, ..., 1024  
TC2H Hold Reg.  
PA2H Hold Reg.  
RESET  
0
Comparator  
Delay  
Counter  
TC3 Capture/Compare Reg.  
PAC3  
EDG3  
8, 12, 16, ..., 1024  
TC3H Hold Reg.  
PA3H Hold Reg.  
Comparator  
P4  
P5  
EDG4  
MUX  
TC4 Capture/Compare Reg.  
ICLAT, LATQ, BUFEN  
(Force Latch)  
EDG0  
SH04  
Comparator  
Pin Logic  
Pin Logic  
Pin Logic  
EDG5  
TC5 Capture/Compare Reg.  
Write 0x0000  
to Modulus Counter  
MUX  
MUX  
MUX  
EDG1  
SH15  
LATQ  
(MDC Latch Enable)  
Comparator  
P6  
P7  
EDG6  
TC6 Capture/Compare Reg.  
EDG2  
SH26  
Comparator  
EDG7  
TC7 Capture/Compare Reg.  
EDG3  
SH37  
Figure 11-66. Detailed Timer Block Diagram in Latch Mode when PRNT = 1  
MC9S12XDP512 Data Sheet, Rev. 2.11  
550  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
÷1, 2, ..., 128  
Timer  
Prescaler  
16-Bit Free-Running  
16-Bit Load Register  
Bus Clock  
Main Timer  
÷ 1, 4, 8, 16  
16-Bit Modulus  
Down Counter  
Modulus  
Prescaler  
Bus Clock  
RESET  
0
Comparator  
P0  
Pin Logic  
Pin Logic  
Pin Logic  
Pin Logic  
Pin Logic  
Delay  
Counter  
TC0 Capture/Compare Reg.  
PAC0  
EDG0  
EDG1  
EDG2  
EDG3  
TC0H Hold Reg.  
PA0H Hold Reg.  
RESET  
0
Comparator  
P1  
P2  
P3  
Delay  
Counter  
TC1 Capture/Compare Reg.  
PAC1  
TC1H Hold Reg.  
PA1H Hold Reg.  
RESET  
0
Comparator  
Delay  
Counter  
TC2 Capture/Compare Reg.  
PAC2  
PA2H Hold Reg.  
TC2H Hold Reg.  
RESET  
0
Comparator  
Delay  
Counter  
TC3 Capture/Compare Reg.  
PAC3  
TC3H Hold Reg.  
PA3H Hold Reg.  
Comparator  
LATQ, BUFEN  
(Queue Mode)  
P4  
P5  
EDG4  
EDG0  
TC4 Capture/Compare Reg.  
MUX  
SH04  
EDG5  
EDG1  
Read TC3H  
Hold Reg.  
Comparator  
Pin Logic  
Pin Logic  
Pin Logic  
TC5 Capture/Compare Reg.  
MUX  
Read TC2H  
Hold Reg.  
SH15  
Comparator  
P6  
P7  
EDG6  
EDG2  
TC6 Capture/Compare Reg.  
MUX  
Read TC1H  
Hold Reg.  
SH26  
Comparator  
Read TC0H  
Hold Reg.  
EDG7  
TC7 Capture/Compare Reg.  
MUX  
EDG3  
SH37  
Figure 11-67. Detailed Timer Block Diagram in Queue Mode when PRNT = 0  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
551  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
÷1, 2, 3, ... 256  
16-Bit Free-Running  
Timer  
Prescaler  
16-Bit Load Register  
Bus Clock  
÷ 1, 2, 3, ... 256  
Main Timer  
16-Bit Modulus  
Down Counter  
Modulus  
Prescaler  
Bus Clock  
RESET  
0
Comparator  
P0  
Pin Logic  
Delay  
Counter  
TC0 Capture/Compare Reg.  
PAC0  
EDG0  
8, 12, 16, ... 1024  
TC0H Hold Reg.  
PA0H Hold Reg.  
RESET  
0
Comparator  
P1  
P2  
P3  
Pin Logic  
Pin Logic  
Pin Logic  
Delay  
Counter  
TC1 Capture/Compare Reg.  
PAC1  
EDG1  
8, 12, 16, ... 1024  
TC1H Hold Reg.  
PA1H Hold Reg.  
RESET  
0
Comparator  
Delay  
Counter  
TC2 Capture/Compare Reg.  
PAC2  
EDG2  
8, 12, 16, ... 1024  
PA2H Hold Reg.  
TC2H Hold Reg.  
RESET  
0
Comparator  
Delay  
Counter  
TC3 Capture/Compare Reg.  
PAC3  
EDG3  
8, 12, 16, ... 1024  
TC3H Hold Reg.  
PA3H Hold Reg.  
Comparator  
LATQ, BUFEN  
P4  
P5  
Pin Logic  
Pin Logic  
EDG4  
MUX  
TC4 Capture/Compare Reg.  
(Queue Mode)  
EDG0  
SH04  
EDG5  
EDG1  
Read TC3H  
Hold Reg.  
Comparator  
TC5 Capture/Compare Reg.  
MUX  
Read TC2H  
Hold Reg.  
SH15  
Comparator  
Pin Logic  
Pin Logic  
P6  
P7  
EDG6  
EDG2  
TC6 Capture/Compare Reg.  
MUX  
Read TC1H  
Hold Reg.  
SH26  
Comparator  
Read TC0H  
Hold Reg.  
EDG7  
TC7 Capture/Compare Reg.  
MUX  
EDG3  
SH37  
Figure 11-68. Detailed Timer Block Diagram in Queue Mode when PRNT = 1  
MC9S12XDP512 Data Sheet, Rev. 2.11  
552  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
Load Holding Register and Reset Pulse Accumulator  
0
0
0
0
8, 12,16, ..., 1024  
Delay Counter  
EDG0  
8-Bit PAC0 (PACN0)  
P0  
P1  
P2  
P3  
Edge Detector  
Edge Detector  
Edge Detector  
Edge Detector  
PA0H Holding  
Register  
Interrupt  
8, 12,16, ..., 1024  
Delay Counter  
EDG1  
8-Bit PAC1 (PACN1)  
PA1H Holding  
Register  
8, 12,16, ..., 1024  
Delay Counter  
EDG2  
8-Bit PAC2 (PACN2)  
PA2H Holding  
Register  
Interrupt  
8, 12,16, ..., 1024  
Delay Counter  
EDG3  
8-Bit PAC3 (PACN3)  
PA3H Holding  
Register  
Figure 11-69. 8-Bit Pulse Accumulators Block Diagram  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
553  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
TIMCLK (Timer Clock)  
CLK1  
4:1 MUX  
CLK0  
Clock Select  
(PAMOD)  
Prescaled Clock  
(PCLK)  
Edge Detector  
P7  
Interrupt  
8-Bit PAC3  
(PACN3)  
8-Bit PAC2  
(PACN2)  
MUX  
PACA  
Divide by 64  
Bus Clock  
Interrupt  
8-Bit PAC1  
(PACN1)  
8-Bit PAC0  
(PACN0)  
Delay Counter  
Edge Detector  
PACB  
P0  
Figure 11-70. 16-Bit Pulse Accumulators Block Diagram  
16-Bit Main Timer  
Edge  
Detector  
Delay  
Counter  
Px  
Set CxF  
Interrupt  
TCx Input  
Capture Register  
TCxH I.C.  
Holding Register  
BUFEN LATQ TFMOD  
Figure 11-71. Block Diagram for Port 7 with Output Compare/Pulse Accumulator A  
MC9S12XDP512 Data Sheet, Rev. 2.11  
554  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.4.1 Enhanced Capture Timer Modes of Operation  
The enhanced capture timer has 8 input capture, output compare (IC/OC) channels, same as on the HC12  
standard timer (timer channels TC0 to TC7). When channels are selected as input capture by selecting the  
IOSx bit in TIOS register, they are called input capture (IC) channels.  
Four IC channels (channels 7–4) are the same as on the standard timer with one capture register each that  
memorizes the timer value captured by an action on the associated input pin.  
Four other IC channels (channels 3–0), in addition to the capture register, also have one buffer each called  
a holding register. This allows two different timer values to be saved without generating any interrupts.  
Four 8-bit pulse accumulators are associated with the four buffered IC channels (channels 3–0). Each pulse  
accumulator has a holding register to memorize their value by an action on its external input. Each pair of  
pulse accumulators can be used as a 16-bit pulse accumulator.  
The 16-bit modulus down-counter can control the transfer of the IC registers and the pulse accumulators  
contents to the respective holding registers for a given period, every time the count reaches zero.  
The modulus down-counter can also be used as a stand-alone time base with periodic interrupt capability.  
11.4.1.1 IC Channels  
The IC channels are composed of four standard IC registers and four buffered IC channels.  
An IC register is empty when it has been read or latched into the holding register.  
A holding register is empty when it has been read.  
11.4.1.1.1  
Non-Buffered IC Channels  
The main timer value is memorized in the IC register by a valid input pin transition. If the corresponding  
NOVWx bit of the ICOVW register is cleared, with a new occurrence of a capture, the contents of IC  
register are overwritten by the new value. If the corresponding NOVWx bit of the ICOVW register is set,  
the capture register cannot be written unless it is empty. This will prevent the captured value from being  
overwritten until it is read.  
11.4.1.1.2  
Buffered IC Channels  
There are two modes of operations for the buffered IC channels:  
1. IC latch mode (LATQ = 1)  
The main timer value is memorized in the IC register by a valid input pin transition (see  
Figure 11-65 and Figure 11-66).  
The value of the buffered IC register is latched to its holding register by the modulus counter for a  
given period when the count reaches zero, by a write 0x0000 to the modulus counter or by a write  
to ICLAT in the MCCTL register.  
If the corresponding NOVWx bit of the ICOVW register is cleared, with a new occurrence of a  
capture, the contents of IC register are overwritten by the new value. In case of latching, the  
contents of its holding register are overwritten.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
555  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
If the corresponding NOVWx bit of the ICOVW register is set, the capture register or its holding  
register cannot be written by an event unless they are empty (see Section 11.4.1.1, “IC Channels”).  
This will prevent the captured value from being overwritten until it is read or latched in the holding  
register.  
2. IC Queue Mode (LATQ = 0)  
The main timer value is memorized in the IC register by a valid input pin transition (see  
Figure 11-67 and Figure 11-68).  
If the corresponding NOVWx bit of the ICOVW register is cleared, with a new occurrence of a  
capture, the value of the IC register will be transferred to its holding register and the IC register  
memorizes the new timer value.  
If the corresponding NOVWx bit of the ICOVW register is set, the capture register or its holding  
register cannot be written by an event unless they are empty (see Section 11.4.1.1, “IC Channels”).  
In queue mode, reads of the holding register will latch the corresponding pulse accumulator value  
to its holding register.  
11.4.1.1.3  
Delayed IC Channels  
There are four delay counters in this module associated with IC channels 0–3. The use of this feature is  
explained in the diagram and notes below.  
BUS CLOCK  
0
1
2
3
253 254  
255 256  
DLY_CNT  
INPUT ON  
CH0–3  
Rejected  
Rejected  
Accepted  
Accepted  
255 Cycles  
255.5 Cycles  
255.5 Cycles  
INPUT ON  
CH0–3  
INPUT ON  
CH0–3  
INPUT ON  
CH0–3  
256 Cycles  
Figure 11-72. Channel Input Validity with Delay Counter Feature  
In Figure 11-72 a delay counter value of 256 bus cycles is considered.  
1. Input pulses with a duration of (DLY_CNT – 1) cycles or shorter are rejected.  
2. Input pulses with a duration between (DLY_CNT – 1) and DLY_CNT cycles may be rejected or  
accepted, depending on their relative alignment with the sample points.  
3. Input pulses with a duration between (DLY_CNT – 1) and DLY_CNT cycles may be rejected or  
accepted, depending on their relative alignment with the sample points.  
4. Input pulses with a duration of DLY_CNT or longer are accepted.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
556  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.4.1.2 OC Channel Initialization  
Internal register whose output drives OCx when TIOS is set, can be force loaded with a desired data by  
writing to CFORC register before OCx is configured for output compare action. This allows a glitch free  
switch over of port from general purpose I/O to timer output once the output compare is enabled.  
11.4.1.3 Pulse Accumulators  
There are four 8-bit pulse accumulators with four 8-bit holding registers associated with the four IC  
buffered channels 3–0. A pulse accumulator counts the number of active edges at the input of its channel.  
The minimum pulse width for the PAI input is greater than two bus clocks.The maximum input frequency  
on the pulse accumulator channel is one half the bus frequency or Eclk.  
The user can prevent the 8-bit pulse accumulators from counting further than 0x00FF by utilizing the  
PACMX control bit in the ICSYS register. In this case, a value of 0x00FF means that 255 counts or more  
have occurred.  
Each pair of pulse accumulators can be used as a 16-bit pulse accumulator (see Figure 11-70).  
To operate the 16-bit pulse accumulators A and B (PACA and PACB) independently of input capture or  
output compare 7 and 0 respectively, the user must set the corresponding bits: IOSx = 1, OMx = 0, and  
OLx = 0. OC7M7 or OC7M0 in the OC7M register must also be cleared.  
There are two modes of operation for the pulse accumulators:  
Pulse accumulator latch mode  
The value of the pulse accumulator is transferred to its holding register when the modulus  
down-counter reaches zero, a write 0x0000 to the modulus counter or when the force latch control  
bit ICLAT is written.  
At the same time the pulse accumulator is cleared.  
Pulse accumulator queue mode  
When queue mode is enabled, reads of an input capture holding register will transfer the contents  
of the associated pulse accumulator to its holding register.  
At the same time the pulse accumulator is cleared.  
11.4.1.4 Modulus Down-Counter  
The modulus down-counter can be used as a time base to generate a periodic interrupt. It can also be used  
to latch the values of the IC registers and the pulse accumulators to their holding registers.  
The action of latching can be programmed to be periodic or only once.  
11.4.1.5 Precision Timer  
By enabling the PRNT bit of the TSCR1 register, the performance of the timer can be enhanced. In this  
case, it is possible to set additional prescaler settings for the main timer counter and modulus down counter  
and enhance delay counter settings compared to the settings in the present ECT timer.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
557  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.4.1.6 Flag Clearing Mechanisms  
The flags in the ECT can be cleared one of two ways:  
1. Normal flag clearing mechanism (TFFCA = 0)  
Any of the ECT flags can be cleared by writing a one to the flag.  
2. Fast flag clearing mechanism (TFFCA = 1)  
With the timer fast flag clear all (TFFCA) enabled, the ECT flags can only be cleared by accessing  
the various registers associated with the ECT modes of operation as described below. The flags  
cannot be cleared via the normal flag clearing mechanism. This fast flag clearing mechanism has  
the advantage of eliminating the software overhead required by a separate clear sequence. Extra  
care must be taken to avoid accidental flag clearing due to unintended accesses.  
— Input capture  
A read from an input capture channel register causes the corresponding channel flag, CxF, to  
be cleared in the TFLG1 register.  
— Output compare  
A write to the output compare channel register causes the corresponding channel flag, CxF, to  
be cleared in the TFLG1 register.  
— Timer counter  
Any access to the TCNT register clears the TOF flag in the TFLG2 register.  
— Pulse accumulator A  
Any access to the PACN3 and PACN2 registers clears the PAOVF and PAIF flags in the  
PAFLG register.  
— Pulse accumulator B  
Any access to the PACN1 and PACN0 registers clears the PBOVF flag in the PBFLG register.  
— Modulus down counter  
Any access to the MCCNT register clears the MCZF flag in the MCFLG register.  
11.4.2 Reset  
The reset state of each individual bit is listed within the register description section (Section 11.3,  
“Memory Map and Register Definition”) which details the registers and their bit-fields.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
558  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
11.4.3 Interrupts  
This section describes interrupts originated by the ECT block. The MCU must service the interrupt  
requests. Table 11-37 lists the interrupts generated by the ECT to communicate with the MCU.  
Table 11-37. ECT Interrupts  
Interrupt Source  
Timer channel 7–0  
Description  
Active high timer channel interrupts 7–0  
Active high modulus counter interrupt  
Active high pulse accumulator B interrupt  
Active high pulse accumulator A input interrupt  
Pulse accumulator overflow interrupt  
Timer 0verflow interrupt  
Modulus counter underflow  
Pulse accumulator B overflow  
Pulse accumulator A input  
Pulse accumulator A overflow  
Timer overflow  
The ECT only originates interrupt requests. The following is a description of how the module makes a  
request and how the MCU should acknowledge that request. The interrupt vector offset and interrupt  
number are chip dependent.  
11.4.3.1 Channel [7:0] Interrupt  
This active high output will be asserted by the module to request a timer channel 7–0 interrupt to be  
serviced by the system controller.  
11.4.3.2 Modulus Counter Interrupt  
This active high output will be asserted by the module to request a modulus counter underflow interrupt to  
be serviced by the system controller.  
11.4.3.3 Pulse Accumulator B Overflow Interrupt  
This active high output will be asserted by the module to request a timer pulse accumulator B overflow  
interrupt to be serviced by the system controller.  
11.4.3.4 Pulse Accumulator A Input Interrupt  
This active high output will be asserted by the module to request a timer pulse accumulator A input  
interrupt to be serviced by the system controller.  
11.4.3.5 Pulse Accumulator A Overflow Interrupt  
This active high output will be asserted by the module to request a timer pulse accumulator A overflow  
interrupt to be serviced by the system controller.  
11.4.3.6 Timer Overflow Interrupt  
This active high output will be asserted by the module to request a timer overflow interrupt to be serviced  
by the system controller.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
559  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 11 Enhanced Capture Timer (S12MC9S12XDP51216B8CV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
560  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 12  
Pulse-Width Modulator (S12PWM8B8CV1)  
12.1 Introduction  
The PWM definition is based on the HC12 PWM definitions. It contains the basic features from the HC11  
with some of the enhancements incorporated on the HC12: center aligned output mode and four available  
clock sources.The PWM module has eight channels with independent control of left and center aligned  
outputs on each channel.  
Each of the eight channels has a programmable period and duty cycle as well as a dedicated counter. A  
flexible clock select scheme allows a total of four different clock sources to be used with the counters. Each  
of the modulators can create independent continuous waveforms with software-selectable duty rates from  
0% to 100%. The PWM outputs can be programmed as left aligned outputs or center aligned outputs.  
12.1.1 Features  
The PWM block includes these distinctive features:  
Eight independent PWM channels with programmable period and duty cycle  
Dedicated counter for each PWM channel  
Programmable PWM enable/disable for each channel  
Software selection of PWM duty pulse polarity for each channel  
Period and duty cycle are double buffered. Change takes effect when the end of the effective period  
is reached (PWM counter reaches zero) or when the channel is disabled.  
Programmable center or left aligned outputs on individual channels  
Eight 8-bit channel or four 16-bit channel PWM resolution  
Four clock sources (A, B, SA, and SB) provide for a wide range of frequencies  
Programmable clock select logic  
Emergency shutdown  
12.1.2 Modes of Operation  
There is a software programmable option for low power consumption in wait mode that disables the input  
clock to the prescaler.  
In freeze mode there is a software programmable option to disable the input clock to the prescaler. This is  
useful for emulation.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
561  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
12.1.3 Block Diagram  
Figure 12-1 shows the block diagram for the 8-bit 8-channel PWM block.  
PWM8B8C  
PWM Channels  
Channel 7  
PWM7  
PWM6  
Period and Duty  
Counter  
Counter  
Channel 6  
Period and Duty  
PWM Clock  
Bus Clock  
Clock Select  
Control  
Channel 5  
PWM5  
PWM4  
PWM3  
PWM2  
Period and Duty  
Counter  
Counter  
Counter  
Counter  
Channel 4  
Period and Duty  
Channel 3  
Period and Duty  
Enable  
Channel 2  
Polarity  
Period and Duty  
Alignment  
Channel 1  
PWM1  
PWM0  
Period and Duty  
Counter  
Counter  
Channel 0  
Period and Duty  
Figure 12-1. PWM Block Diagram  
12.2 External Signal Description  
The PWM module has a total of 8 external pins.  
12.2.1 PWM7 — PWM Channel 7  
This pin serves as waveform output of PWM channel 7 and as an input for the emergency shutdown  
feature.  
12.2.2 PWM6 — PWM Channel 6  
This pin serves as waveform output of PWM channel 6.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
562  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
12.2.3 PWM5 — PWM Channel 5  
This pin serves as waveform output of PWM channel 5.  
12.2.4 PWM4 — PWM Channel 4  
This pin serves as waveform output of PWM channel 4.  
12.2.5 PWM3 — PWM Channel 3  
This pin serves as waveform output of PWM channel 3.  
12.2.6 PWM3 — PWM Channel 2  
This pin serves as waveform output of PWM channel 2.  
12.2.7 PWM3 — PWM Channel 1  
This pin serves as waveform output of PWM channel 1.  
12.2.8 PWM3 — PWM Channel 0  
This pin serves as waveform output of PWM channel 0.  
12.3 Memory Map and Register Definition  
This section describes in detail all the registers and register bits in the PWM module.  
The special-purpose registers and register bit functions that are not normally available to device end users,  
such as factory test control registers and reserved registers, are clearly identified by means of shading the  
appropriate portions of address maps and register diagrams. Notes explaining the reasons for restricting  
access to the registers and functions are also explained in the individual register descriptions.  
12.3.1 Module Memory Map  
This section describes the content of the registers in the PWM module. The base address of the PWM  
module is determined at the MCU level when the MCU is defined. The register decode map is fixed and  
begins at the first address of the module address offset. The figure below shows the registers associated  
with the PWM and their relative offset from the base address. The register detail description follows the  
order they appear in the register map.  
Reserved bits within a register will always read as 0 and the write will be unimplemented. Unimplemented  
functions are indicated by shading the bit. .  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
563  
Download from Www.Somanuals.com. All Manuals Search And Download.  
               
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
NOTE  
Register Address = Base Address + Address Offset, where the Base Address  
is defined at the MCU level and the Address Offset is defined at the module  
level.  
12.3.2 Register Descriptions  
This section describes in detail all the registers and register bits in the PWM module.  
Register  
Name  
Bit 7  
6
5
4
3
2
1
Bit 0  
0x0000  
PWME  
R
PWME7  
PWME6  
PWME5  
PWME4  
PWME3  
PWME2  
PWME1  
PWME0  
W
0x0001  
PWMPOL  
R
PPOL7  
PPOL6  
PCLKL6  
PCKB2  
CAE6  
PPOL5  
PCLK5  
PCKB1  
CAE5  
PPOL4  
PCLK4  
PCKB0  
CAE4  
PPOL3  
PPOL2  
PCLK2  
PCKA2  
CAE2  
PPOL1  
PCLK1  
PCKA1  
PPOL0  
PCLK0  
PCKA0  
W
0x0002  
PWMCLK  
R
PCLK7  
0
PCLK3  
0
W
0x0003  
PWMPRCLK  
R
W
0x0004  
PWMCAE  
R
CAE7  
CAE3  
CAE1  
0
CAE0  
0
W
0x0005  
PWMCTL  
R
CON67  
0
CON45  
0
CON23  
0
CON01  
0
PSWAI  
0
PFRZ  
0
W
0x0006  
PWMTST  
R
0
0
0
0
1
W
0x0007  
PWMPRSC  
R
0
0
6
0
5
0
4
0
3
0
2
1
W
0x0008  
PWMSCLA  
R
Bit 7  
1
Bit 0  
W
0x0009  
PWMSCLB  
R
Bit 7  
0
6
0
5
0
4
0
3
0
2
0
1
0
Bit 0  
0
W
R
PWMSCNTA  
W
1
= Unimplemented or Reserved  
Figure 12-2. PWM Register Summary (Sheet 1 of 3)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
564  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
Register  
Name  
Bit 7  
6
5
4
3
2
1
Bit 0  
R
0
0
0
0
0
0
0
0
PWMSCNTB  
W
1
0x000C  
PWMCNT0  
R
Bit 7  
0
6
0
5
0
4
0
3
0
2
0
1
0
Bit 0  
0
W
0x000D  
PWMCNT1  
R
Bit 7  
0
6
0
5
0
4
0
3
0
2
0
1
0
Bit 0  
0
W
0x000E  
PWMCNT2  
R
Bit 7  
0
6
0
5
0
4
0
3
0
2
0
1
0
Bit 0  
0
W
0x000F  
PWMCNT3  
R
Bit 7  
0
6
0
5
0
4
0
3
0
2
0
1
0
Bit 0  
0
W
0x0010  
PWMCNT4  
R
Bit 7  
0
6
0
5
0
4
0
3
0
2
0
1
0
Bit 0  
0
W
0x0011  
PWMCNT5  
R
Bit 7  
0
6
0
5
0
4
0
3
0
2
0
1
0
Bit 0  
0
W
0x0012  
PWMCNT6  
R
Bit 7  
0
6
0
5
0
4
0
3
0
2
0
1
0
Bit 0  
0
W
0x0013  
PWMCNT7  
R
Bit 7  
0
6
0
5
0
4
0
3
0
2
0
1
0
Bit 0  
0
W
0x0014  
PWMPER0  
R
Bit 7  
Bit 7  
Bit 7  
Bit 7  
Bit 7  
Bit 7  
6
6
6
6
6
6
5
5
5
5
5
5
4
4
4
4
4
4
3
3
3
3
3
3
2
2
2
2
2
2
1
1
1
1
1
1
Bit 0  
Bit 0  
Bit 0  
Bit 0  
Bit 0  
Bit 0  
W
0x0015  
PWMPER1  
R
W
0x0016  
PWMPER2  
R
W
0x0017  
PWMPER3  
R
W
0x0018  
PWMPER4  
R
W
0x0019  
PWMPER5  
R
W
= Unimplemented or Reserved  
Figure 12-2. PWM Register Summary (Sheet 2 of 3)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
565  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
Register  
Bit 7  
6
5
4
3
2
1
Bit 0  
Name  
0x001A  
PWMPER6  
R
Bit 7  
6
5
4
3
2
1
Bit 0  
W
0x001B  
PWMPER7  
R
Bit 7  
Bit 7  
Bit 7  
Bit 7  
Bit 7  
Bit 7  
Bit 7  
Bit 7  
Bit 7  
PWMIF  
6
5
5
5
5
5
5
5
5
5
4
3
3
3
3
3
3
3
3
2
2
2
2
2
2
2
2
1
1
1
1
1
1
1
1
1
Bit 0  
Bit 0  
Bit 0  
Bit 0  
Bit 0  
Bit 0  
Bit 0  
Bit 0  
Bit 0  
W
0x001C  
PWMDTY0  
R
6
4
W
0x001D  
PWMDTY1  
R
6
4
W
0x001E  
PWMDTY2  
R
6
4
W
0x001F  
PWMDTY3  
R
6
4
W
0x0010  
PWMDTY4  
R
6
4
W
0x0021  
PWMDTY5  
R
6
4
W
0x0022  
PWMDTY6  
R
6
6
4
4
W
0x0023  
PWMDTY7  
R
3
0
2
W
0x0024  
PWMSDN  
R
0
PWM7IN  
PWMIE  
PWMLVL  
PWM7INL PWM7ENA  
W
PWMRSTRT  
= Unimplemented or Reserved  
Figure 12-2. PWM Register Summary (Sheet 3 of 3)  
1
Intended for factory test purposes only.  
12.3.2.1 PWM Enable Register (PWME)  
Each PWM channel has an enable bit (PWMEx) to start its waveform output. When any of the PWMEx  
bits are set (PWMEx = 1), the associated PWM output is enabled immediately. However, the actual PWM  
waveform is not available on the associated PWM output until its clock source begins its next cycle due to  
the synchronization of PWMEx and the clock source.  
NOTE  
The first PWM cycle after enabling the channel can be irregular.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
566  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
An exception to this is when channels are concatenated. Once concatenated mode is enabled (CONxx bits  
set in PWMCTL register), enabling/disabling the corresponding 16-bit PWM channel is controlled by the  
low order PWMEx bit.In this case, the high order bytes PWMEx bits have no effect and their  
corresponding PWM output lines are disabled.  
While in run mode, if all eight PWM channels are disabled (PWME7–0 = 0), the prescaler counter shuts  
off for power savings.  
Module Base + 0x0000  
7
6
5
4
3
2
1
0
R
W
PWME7  
PWME6  
PWME5  
PWME4  
PWME3  
PWME2  
PWME1  
PWME0  
Reset  
0
0
0
0
0
0
0
0
Figure 12-3. PWM Enable Register (PWME)  
Read: Anytime  
Write: Anytime  
Table 12-1. PWME Field Descriptions  
Description  
Field  
7
Pulse Width Channel 7 Enable  
PWME7  
0 Pulse width channel 7 is disabled.  
1 Pulse width channel 7 is enabled. The pulse modulated signal becomes available at PWM output bit 7 when  
its clock source begins its next cycle.  
6
Pulse Width Channel 6 Enable  
PWME6  
0 Pulse width channel 6 is disabled.  
1 Pulse width channel 6 is enabled. The pulse modulated signal becomes available at PWM output bit6 when  
its clock source begins its next cycle. If CON67=1, then bit has no effect and PWM output line 6 is disabled.  
5
Pulse Width Channel 5 Enable  
PWME5  
0 Pulse width channel 5 is disabled.  
1 Pulse width channel 5 is enabled. The pulse modulated signal becomes available at PWM output bit 5 when  
its clock source begins its next cycle.  
4
Pulse Width Channel 4 Enable  
PWME4  
0 Pulse width channel 4 is disabled.  
1 Pulse width channel 4 is enabled. The pulse modulated signal becomes available at PWM, output bit 4 when  
its clock source begins its next cycle. If CON45 = 1, then bit has no effect and PWM output bit4 is disabled.  
3
Pulse Width Channel 3 Enable  
PWME3  
0 Pulse width channel 3 is disabled.  
1 Pulse width channel 3 is enabled. The pulse modulated signal becomes available at PWM, output bit 3 when  
its clock source begins its next cycle.  
2
Pulse Width Channel 2 Enable  
PWME2  
0 Pulse width channel 2 is disabled.  
1 Pulse width channel 2 is enabled. The pulse modulated signal becomes available at PWM, output bit 2 when  
its clock source begins its next cycle. If CON23 = 1, then bit has no effect and PWM output bit2 is disabled.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
567  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
Table 12-1. PWME Field Descriptions (continued)  
Field  
Description  
1
Pulse Width Channel 1 Enable  
PWME1  
0
Pulse width channel 1 is disabled.  
1
Pulse width channel 1 is enabled. The pulse modulated signal becomes available at PWM, output bit 1 when  
its clock source begins its next cycle.  
0
Pulse Width Channel 0 Enable  
PWME0  
0 Pulse width channel 0 is disabled.  
1 Pulse width channel 0 is enabled. The pulse modulated signal becomes available at PWM, output bit 0 when  
its clock source begins its next cycle. If CON01 = 1, then bit has no effect and PWM output line0 is disabled.  
12.3.2.2 PWM Polarity Register (PWMPOL)  
The starting polarity of each PWM channel waveform is determined by the associated PPOLx bit in the  
PWMPOL register. If the polarity bit is one, the PWM channel output is high at the beginning of the cycle  
and then goes low when the duty count is reached. Conversely, if the polarity bit is zero, the output starts  
low and then goes high when the duty count is reached.  
Module Base + 0x0001  
7
6
5
4
3
2
1
0
R
W
PPOL7  
PPOL6  
PPOL5  
PPOL4  
PPOL3  
PPOL2  
PPOL1  
PPOL0  
Reset  
0
0
0
0
0
0
0
0
Figure 12-4. PWM Polarity Register (PWMPOL)  
Read: Anytime  
Write: Anytime  
NOTE  
PPOLx register bits can be written anytime. If the polarity is changed while  
a PWM signal is being generated, a truncated or stretched pulse can occur  
during the transition  
Table 12-2. PWMPOL Field Descriptions  
Description  
Field  
7–0  
Pulse Width Channel 7–0 Polarity Bits  
PPOL[7:0] 0 PWM channel 7–0 outputs are low at the beginning of the period, then go high when the duty count is  
reached.  
1 PWM channel 7–0 outputs are high at the beginning of the period, then go low when the duty count is  
reached.  
12.3.2.3 PWM Clock Select Register (PWMCLK)  
Each PWM channel has a choice of two clocks to use as the clock source for that channel as described  
below.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
568  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
Module Base + 0x0002  
7
6
5
4
3
2
1
0
R
PCLK7  
W
PCLKL6  
PCLK5  
PCLK4  
PCLK3  
PCLK2  
PCLK1  
PCLK0  
Reset  
0
0
0
0
0
0
0
0
Figure 12-5. PWM Clock Select Register (PWMCLK)  
Read: Anytime  
Write: Anytime  
NOTE  
Register bits PCLK0 to PCLK7 can be written anytime. If a clock select is  
changed while a PWM signal is being generated, a truncated or stretched  
pulse can occur during the transition.  
Table 12-3. PWMCLK Field Descriptions  
Description  
Field  
7
Pulse Width Channel 7 Clock Select  
PCLK7  
0 Clock B is the clock source for PWM channel 7.  
1 Clock SB is the clock source for PWM channel 7.  
6
Pulse Width Channel 6 Clock Select  
PCLK6  
0 Clock B is the clock source for PWM channel 6.  
1 Clock SB is the clock source for PWM channel 6.  
5
Pulse Width Channel 5 Clock Select  
PCLK5  
0 Clock A is the clock source for PWM channel 5.  
1 Clock SA is the clock source for PWM channel 5.  
4
Pulse Width Channel 4 Clock Select  
PCLK4  
0 Clock A is the clock source for PWM channel 4.  
1 Clock SA is the clock source for PWM channel 4.  
3
Pulse Width Channel 3 Clock Select  
PCLK3  
0 Clock B is the clock source for PWM channel 3.  
1 Clock SB is the clock source for PWM channel 3.  
2
Pulse Width Channel 2 Clock Select  
PCLK2  
0 Clock B is the clock source for PWM channel 2.  
1 Clock SB is the clock source for PWM channel 2.  
1
Pulse Width Channel 1 Clock Select  
PCLK1  
0 Clock A is the clock source for PWM channel 1.  
1 Clock SA is the clock source for PWM channel 1.  
0
Pulse Width Channel 0 Clock Select  
PCLK0  
0 Clock A is the clock source for PWM channel 0.  
1 Clock SA is the clock source for PWM channel 0.  
12.3.2.4 PWM Prescale Clock Select Register (PWMPRCLK)  
This register selects the prescale clock source for clocks A and B independently.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
569  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
Module Base + 0x0003  
7
6
5
4
3
2
1
0
R
W
0
0
PCKB2  
PCKB1  
PCKB0  
PCKA2  
PCKA1  
PCKA0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 12-6. PWM Prescale Clock Select Register (PWMPRCLK)  
Read: Anytime  
Write: Anytime  
NOTE  
PCKB2–0 and PCKA2–0 register bits can be written anytime. If the clock  
pre-scale is changed while a PWM signal is being generated, a truncated or  
stretched pulse can occur during the transition.  
Table 12-4. PWMPRCLK Field Descriptions  
Description  
Field  
6–4  
Prescaler Select for Clock B — Clock B is one of two clock sources which can be used for channels 2, 3, 6, or  
PCKB[2:0] 7. These three bits determine the rate of clock B, as shown in Table 12-5.  
2–0 Prescaler Select for Clock A — Clock A is one of two clock sources which can be used for channels 0, 1, 4 or  
PCKA[2:0] 5. These three bits determine the rate of clock A, as shown in Table 12-6.  
s
Table 12-5. Clock B Prescaler Selects  
PCKB2  
PCKB1  
PCKB0  
Value of Clock B  
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Bus clock  
Bus clock / 2  
Bus clock / 4  
Bus clock / 8  
Bus clock / 16  
Bus clock / 32  
Bus clock / 64  
Bus clock / 128  
Table 12-6. Clock A Prescaler Selects  
PCKA2  
PCKA1  
PCKA0  
Value of Clock A  
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Bus clock  
Bus clock / 2  
Bus clock / 4  
Bus clock / 8  
Bus clock / 16  
Bus clock / 32  
Bus clock / 64  
Bus clock / 128  
MC9S12XDP512 Data Sheet, Rev. 2.11  
570  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
12.3.2.5 PWM Center Align Enable Register (PWMCAE)  
The PWMCAE register contains eight control bits for the selection of center aligned outputs or left aligned  
center aligned. If the CAEx bit is cleared, the corresponding PWM output will be left aligned. See  
Section 12.4.2.5, “Left Aligned Outputs” and Section 12.4.2.6, “Center Aligned Outputs” for a more  
detailed description of the PWM output modes.  
Module Base + 0x0004  
7
6
5
4
3
2
1
0
R
W
CAE7  
CAE6  
CAE5  
CAE4  
CAE3  
CAE2  
CAE1  
CAE0  
Reset  
0
0
0
0
0
0
0
0
Figure 12-7. PWM Center Align Enable Register (PWMCAE)  
Read: Anytime  
Write: Anytime  
NOTE  
Write these bits only when the corresponding channel is disabled.  
Table 12-7. PWMCAE Field Descriptions  
Description  
Field  
7–0  
CAE[7:0]  
Center Aligned Output Modes on Channels 7–0  
0 Channels 7–0 operate in left aligned output mode.  
1 Channels 7–0 operate in center aligned output mode.  
12.3.2.6 PWM Control Register (PWMCTL)  
The PWMCTL register provides for various control of the PWM module.  
Module Base + 0x0005  
7
6
5
4
3
2
1
0
R
W
0
0
CON67  
CON45  
CON23  
CON01  
PSWAI  
PFRZ  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 12-8. PWM Control Register (PWMCTL)  
Read: Anytime  
Write: Anytime  
There are three control bits for concatenation, each of which is used to concatenate a pair of PWM  
channels into one 16-bit channel. When channels 6 and 7are concatenated, channel 6 registers become the  
high order bytes of the double byte channel. When channels 4 and 5 are concatenated, channel 4 registers  
become the high order bytes of the double byte channel. When channels 2 and 3 are concatenated, channel  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
571  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
2 registers become the high order bytes of the double byte channel. When channels 0 and 1 are  
See Section 12.4.2.7, “PWM 16-Bit Functions” for a more detailed description of the concatenation PWM  
Function.  
NOTE  
Change these bits only when both corresponding channels are disabled.  
Table 12-8. PWMCTL Field Descriptions  
Field  
Description  
7
Concatenate Channels 6 and 7  
CON67  
0 Channels 6 and 7 are separate 8-bit PWMs.  
1 Channels 6 and 7 are concatenated to create one 16-bit PWM channel. Channel 6 becomes the high order  
byte and channel 7 becomes the low order byte. Channel 7 output pin is used as the output for this 16-bit  
PWM (bit 7 of port PWMP). Channel 7 clock select control-bit determines the clock source, channel 7 polarity  
bit determines the polarity, channel 7 enable bit enables the output and channel 7 center aligned enable bit  
determines the output mode.  
6
Concatenate Channels 4 and 5  
CON45  
0 Channels 4 and 5 are separate 8-bit PWMs.  
1 Channels 4 and 5 are concatenated to create one 16-bit PWM channel. Channel 4 becomes the high order  
byte and channel 5 becomes the low order byte. Channel 5 output pin is used as the output for this 16-bit  
PWM (bit 5 of port PWMP). Channel 5 clock select control-bit determines the clock source, channel 5 polarity  
bit determines the polarity, channel 5 enable bit enables the output and channel 5 center aligned enable bit  
determines the output mode.  
5
Concatenate Channels 2 and 3  
CON23  
0 Channels 2 and 3 are separate 8-bit PWMs.  
1 Channels 2 and 3 are concatenated to create one 16-bit PWM channel. Channel 2 becomes the high order  
byte and channel 3 becomes the low order byte. Channel 3 output pin is used as the output for this 16-bit  
PWM (bit 3 of port PWMP). Channel 3 clock select control-bit determines the clock source, channel 3 polarity  
bit determines the polarity, channel 3 enable bit enables the output and channel 3 center aligned enable bit  
determines the output mode.  
4
Concatenate Channels 0 and 1  
CON01  
0 Channels 0 and 1 are separate 8-bit PWMs.  
1 Channels 0 and 1 are concatenated to create one 16-bit PWM channel. Channel 0 becomes the high order  
byte and channel 1 becomes the low order byte. Channel 1 output pin is used as the output for this 16-bit  
PWM (bit 1 of port PWMP). Channel 1 clock select control-bit determines the clock source, channel 1 polarity  
bit determines the polarity, channel 1 enable bit enables the output and channel 1 center aligned enable bit  
determines the output mode.  
3
PWM Stops in Wait Mode — Enabling this bit allows for lower power consumption in wait mode by disabling  
the input clock to the prescaler.  
PSWAI  
0 Allow the clock to the prescaler to continue while in wait mode.  
1 Stop the input clock to the prescaler whenever the MCU is in wait mode.  
2
PWM Counters Stop in Freeze Mode — In freeze mode, there is an option to disable the input clock to the  
prescaler by setting the PFRZ bit in the PWMCTL register. If this bit is set, whenever the MCU is in freeze mode,  
the input clock to the prescaler is disabled. This feature is useful during emulation as it allows the PWM function  
to be suspended. In this way, the counters of the PWM can be stopped while in freeze mode so that once normal  
program flow is continued, the counters are re-enabled to simulate real-time operations. Since the registers can  
still be accessed in this mode, to re-enable the prescaler clock, either disable the PFRZ bit or exit freeze mode.  
0 Allow PWM to continue while in freeze mode.  
PFREZ  
1 Disable PWM input clock to the prescaler whenever the part is in freeze mode. This is useful for emulation.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
572  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
12.3.2.7 Reserved Register (PWMTST)  
This register is reserved for factory testing of the PWM module and is not available in normal modes.  
Module Base + 0x0006  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
0
0
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 12-9. Reserved Register (PWMTST)  
Read: Always read $00 in normal modes  
Write: Unimplemented in normal modes  
NOTE  
Writing to this register when in special modes can alter the PWM  
functionality.  
12.3.2.8 Reserved Register (PWMPRSC)  
This register is reserved for factory testing of the PWM module and is not available in normal modes.  
Module Base + 0x0007  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
0
0
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 12-10. Reserved Register (PWMPRSC)  
Read: Always read $00 in normal modes  
Write: Unimplemented in normal modes  
NOTE  
Writing to this register when in special modes can alter the PWM  
functionality.  
12.3.2.9 PWM Scale A Register (PWMSCLA)  
PWMSCLA is the programmable scale value used in scaling clock A to generate clock SA. Clock SA is  
generated by taking clock A, dividing it by the value in the PWMSCLA register and dividing that by two.  
Clock SA = Clock A / (2 * PWMSCLA)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
573  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
NOTE  
When PWMSCLA = $00, PWMSCLA value is considered a full scale value  
of 256. Clock A is thus divided by 512.  
Any value written to this register will cause the scale counter to load the new scale value (PWMSCLA).  
Module Base + 0x0008  
7
6
5
4
3
2
1
0
R
W
Bit 7  
6
5
4
3
2
1
Bit 0  
Reset  
0
0
0
0
0
0
0
0
Figure 12-11. PWM Scale A Register (PWMSCLA)  
Read: Anytime  
Write: Anytime (causes the scale counter to load the PWMSCLA value)  
12.3.2.10 PWM Scale B Register (PWMSCLB)  
PWMSCLB is the programmable scale value used in scaling clock B to generate clock SB. Clock SB is  
generated by taking clock B, dividing it by the value in the PWMSCLB register and dividing that by two.  
Clock SB = Clock B / (2 * PWMSCLB)  
NOTE  
When PWMSCLB = $00, PWMSCLB value is considered a full scale value  
of 256. Clock B is thus divided by 512.  
Any value written to this register will cause the scale counter to load the new scale value (PWMSCLB).  
Module Base + 0x0009  
7
6
5
4
3
2
1
0
R
W
Bit 7  
6
5
4
3
2
1
Bit 0  
Reset  
0
0
0
0
0
0
0
0
Figure 12-12. PWM Scale B Register (PWMSCLB)  
Read: Anytime  
Write: Anytime (causes the scale counter to load the PWMSCLB value).  
12.3.2.11 Reserved Registers (PWMSCNTx)  
The registers PWMSCNTA and PWMSCNTB are reserved for factory testing of the PWM module and are  
not available in normal modes.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
574  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
Module Base + 0x000A, 0x000B  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
0
0
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 12-13. Reserved Registers (PWMSCNTx)  
Read: Always read $00 in normal modes  
Write: Unimplemented in normal modes  
NOTE  
Writing to these registers when in special modes can alter the PWM  
functionality.  
12.3.2.12 PWM Channel Counter Registers (PWMCNTx)  
Each channel has a dedicated 8-bit up/down counter which runs at the rate of the selected clock source.  
The counter can be read at any time without affecting the count or the operation of the PWM channel. In  
left aligned output mode, the counter counts from 0 to the value in the period register - 1. In center aligned  
output mode, the counter counts from 0 up to the value in the period register and then back down to 0.  
Any value written to the counter causes the counter to reset to $00, the counter direction to be set to up,  
according to the polarity bit. The counter is also cleared at the end of the effective period (see  
Section 12.4.2.5, “Left Aligned Outputs” and Section 12.4.2.6, “Center Aligned Outputs” for more  
details). When the channel is disabled (PWMEx = 0), the PWMCNTx register does not count. When a  
PWMCNTx register. For more detailed information on the operation of the counters, see Section 12.4.2.4,  
“PWM Timer Counters”.  
In concatenated mode, writes to the 16-bit counter by using a 16-bit access or writes to either the low or  
high order byte of the counter will reset the 16-bit counter. Reads of the 16-bit counter must be made by  
16-bit access to maintain data coherency.  
NOTE  
Writing to the counter while the channel is enabled can cause an irregular PWM cycle to occur.  
Module Base + 0x000C = PWMCNT0, 0x000D = PWMCNT1, 0x000E = PWMCNT2, 0x000F = PWMCNT3  
Module Base + 0x0010 = PWMCNT4, 0x0011 = PWMCNT5, 0x0012 = PWMCNT6, 0x0013 = PWMCNT7  
7
6
5
4
3
2
1
0
R
W
Bit 7  
6
5
4
3
2
1
Bit 0  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Reset  
Figure 12-14. PWM Channel Counter Registers (PWMCNTx)  
Read: Anytime  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
575  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
Write: Anytime (any value written causes PWM counter to be reset to $00).  
12.3.2.13 PWM Channel Period Registers (PWMPERx)  
There is a dedicated period register for each channel. The value in this register determines the period of  
the associated PWM channel.  
The period registers for each channel are double buffered so that if they change while the channel is  
enabled, the change will NOT take effect until one of the following occurs:  
The effective period ends  
The counter is written (counter resets to $00)  
The channel is disabled  
In this way, the output of the PWM will always be either the old waveform or the new waveform, not some  
variation in between. If the channel is not enabled, then writes to the period register will go directly to the  
latches as well as the buffer.  
NOTE  
Reads of this register return the most recent value written. Reads do not  
necessarily return the value of the currently active period due to the double  
See Section 12.4.2.3, “PWM Period and Duty” for more information.  
To calculate the output period, take the selected clock source period for the channel of interest (A, B, SA,  
or SB) and multiply it by the value in the period register for that channel:  
Left aligned output (CAEx = 0)  
PWMxPeriod=ChannelClockPeriod*PWMPERxCenterAlignedOutput(CAEx=1)  
For boundary case programming values, please refer to Section 12.4.2.8, “PWM Boundary Cases”.  
Module Base + 0x0014 = PWMPER0, 0x0015 = PWMPER1, 0x0016 = PWMPER2, 0x0017 = PWMPER3  
Module Base + 0x0018 = PWMPER4, 0x0019 = PWMPER5, 0x001A = PWMPER6, 0x001B = PWMPER7  
7
6
5
4
3
2
1
0
R
W
Bit 7  
6
5
4
3
2
1
Bit 0  
Reset  
1
1
1
1
1
1
1
1
Figure 12-15. PWM Channel Period Registers (PWMPERx)  
Read: Anytime  
Write: Anytime  
MC9S12XDP512 Data Sheet, Rev. 2.11  
576  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
12.3.2.14 PWM Channel Duty Registers (PWMDTYx)  
There is a dedicated duty register for each channel. The value in this register determines the duty of the  
associated PWM channel. The duty value is compared to the counter and if it is equal to the counter value  
a match occurs and the output changes state.  
The duty registers for each channel are double buffered so that if they change while the channel is enabled,  
the change will NOT take effect until one of the following occurs:  
The effective period ends  
The counter is written (counter resets to $00)  
The channel is disabled  
In this way, the output of the PWM will always be either the old duty waveform or the new duty waveform,  
not some variation in between. If the channel is not enabled, then writes to the duty register will go directly  
to the latches as well as the buffer.  
NOTE  
Reads of this register return the most recent value written. Reads do not  
necessarily return the value of the currently active duty due to the double  
See Section 12.4.2.3, “PWM Period and Duty” for more information.  
NOTE  
Depending on the polarity bit, the duty registers will contain the count of  
either the high time or the low time. If the polarity bit is one, the output starts  
high and then goes low when the duty count is reached, so the duty registers  
contain a count of the high time. If the polarity bit is zero, the output starts  
low and then goes high when the duty count is reached, so the duty registers  
contain a count of the low time.  
To calculate the output duty cycle (high time as a% of period) for a particular channel:  
Polarity = 0 (PPOL x =0)  
Duty Cycle = [(PWMPERx-PWMDTYx)/PWMPERx] * 100%  
Polarity = 1 (PPOLx = 1)  
For boundary case programming values, please refer to Section 12.4.2.8, “PWM Boundary Cases”.  
Module Base + 0x001C = PWMDTY0, 0x001D = PWMDTY1, 0x001E = PWMDTY2, 0x001F = PWMDTY3  
Module Base + 0x0020 = PWMDTY4, 0x0021 = PWMDTY5, 0x0022 = PWMDTY6, 0x0023 = PWMDTY7  
7
6
5
4
3
2
1
0
R
W
Bit 7  
6
5
4
3
2
1
Bit 0  
Reset  
1
1
1
1
1
1
1
1
Figure 12-16. PWM Channel Duty Registers (PWMDTYx)  
Read: Anytime  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
577  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
Write: Anytime  
12.3.2.15 PWM Shutdown Register (PWMSDN)  
The PWMSDN register provides for the shutdown functionality of the PWM module in the emergency  
cases. For proper operation, channel 7 must be driven to the active level for a minimum of two bus clocks.  
Module Base + 0x0024  
7
6
5
4
3
2
1
0
R
W
0
0
PWM7IN  
PWMIF  
PWMIE  
PWMLVL  
PWM7INL  
PWM7ENA  
PWMRSTRT  
0
Reset  
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 12-17. PWM Shutdown Register (PWMSDN)  
Read: Anytime  
Write: Anytime  
Table 12-9. PWMSDN Field Descriptions  
Description  
Field  
7
PWM Interrupt Flag — Any change from passive to asserted (active) state or from active to passive state will  
be flagged by setting the PWMIF flag = 1. The flag is cleared by writing a logic 1 to it. Writing a 0 has no effect.  
0 No change on PWM7IN input.  
PWMIF  
1 Change on PWM7IN input  
6
PWM Interrupt Enable — If interrupt is enabled an interrupt to the CPU is asserted.  
0 PWM interrupt is disabled.  
PWMIE  
1 PWM interrupt is enabled.  
5
PWM Restart — The PWM can only be restarted if the PWM channel input 7 is de-asserted. After writing a logic  
PWMRSTRT 1 to the PWMRSTRT bit (trigger event) the PWM channels start running after the corresponding counter passes  
next “counter == 0” phase. Also, if the PWM7ENA bit is reset to 0, the PWM do not start before the counter  
passes $00. The bit is always read as “0”.  
4
PWM Shutdown Output Level If active level as defined by the PWM7IN input, gets asserted all enabled PWM  
channels are immediately driven to the level defined by PWMLVL.  
0 PWM outputs are forced to 0  
PWMLVL  
1 Outputs are forced to 1.  
2
PWM Channel 7 Input Status — This reflects the current status of the PWM7 pin.  
PWM7IN  
1
PWM Shutdown Active Input Level for Channel 7 — If the emergency shutdown feature is enabled  
PWM7INL (PWM7ENA = 1), this bit determines the active level of the PWM7channel.  
0 Active level is low  
1 Active level is high  
0
PWM Emergency Shutdown Enable — If this bit is logic 1, the pin associated with channel 7 is forced to input  
PWM7ENA and the emergency shutdown feature is enabled. All the other bits in this register are meaningful only if  
PWM7ENA = 1.  
0 PWM emergency feature disabled.  
1 PWM emergency feature is enabled.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
578  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
12.4 Functional Description  
12.4.1 PWM Clock Select  
There are four available clocks: clock A, clock B, clock SA (scaled A), and clock SB (scaled B). These  
four clocks are based on the bus clock.  
Clock A and B can be software selected to be 1, 1/2, 1/4, 1/8,..., 1/64, 1/128 times the bus clock. Clock SA  
uses clock A as an input and divides it further with a reloadable counter. Similarly, clock SB uses clock B  
as an input and divides it further with a reloadable counter. The rates available for clock SA are software  
selectable to be clock A divided by 2, 4, 6, 8,..., or 512 in increments of divide by 2. Similar rates are  
available for clock SB. Each PWM channel has the capability of selecting one of two clocks, either the  
pre-scaled clock (clock A or B) or the scaled clock (clock SA or SB).  
The block diagram in Figure 12-18 shows the four different clocks and how the scaled clocks are created.  
12.4.1.1 Prescale  
The input clock to the PWM prescaler is the bus clock. It can be disabled whenever the part is in freeze  
mode by setting the PFRZ bit in the PWMCTL register. If this bit is set, whenever the MCU is in freeze  
mode (freeze mode signal active) the input clock to the prescaler is disabled. This is useful for emulation  
in order to freeze the PWM. The input clock can also be disabled when all eight PWM channels are  
disabled (PWME7-0 = 0). This is useful for reducing power by disabling the prescale counter.  
Clock A and clock B are scaled values of the input clock. The value is software selectable for both clock  
A and clock B and has options of 1, 1/2, 1/4, 1/8, 1/16, 1/32, 1/64, or 1/128 times the bus clock. The value  
selected for clock A is determined by the PCKA2, PCKA1, PCKA0 bits in the PWMPRCLK register. The  
value selected for clock B is determined by the PCKB2, PCKB1, PCKB0 bits also in the PWMPRCLK  
register.  
12.4.1.2 Clock Scale  
The scaled A clock uses clock A as an input and divides it further with a user programmable value and  
then divides this by 2. The scaled B clock uses clock B as an input and divides it further with a user  
programmable value and then divides this by 2. The rates available for clock SA are software selectable to  
be clock A divided by 2, 4, 6, 8,..., or 512 in increments of divide by 2. Similar rates are available for clock  
SB.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
579  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
Clock A  
M
U
X
Clock to  
PWM Ch 0  
Clock A/2, A/4, A/6,....A/512  
PCLK0  
Count = 1  
Load  
8-Bit Down  
Counter  
M
U
X
Clock to  
PWM Ch 1  
PCLK1  
Clock SA  
DIV 2  
PWMSCLA  
M
U
X
Clock to  
PWM Ch 2  
M
U
X
PCLK2  
M
U
X
Clock to  
PWM Ch 3  
PCLK3  
Clock B  
M
U
X
Clock to  
PWM Ch 4  
Clock B/2, B/4, B/6,....B/512  
PCLK4  
M
U
X
Count = 1  
8-Bit Down  
Counter  
M
U
X
Clock to  
PWM Ch 5  
Load  
Clock SB  
PCLK5  
PWMSCLB  
DIV 2  
M
U
X
Clock to  
PWM Ch 6  
PCLK6  
M
U
X
Clock to  
PWM Ch 7  
PCLK7  
Prescale  
Scale  
Clock Select  
Figure 12-18. PWM Clock Select Block Diagram  
MC9S12XDP512 Data Sheet, Rev. 2.11  
580  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
Clock A is used as an input to an 8-bit down counter. This down counter loads a user programmable scale  
value from the scale register (PWMSCLA). When the down counter reaches one, a pulse is output and the  
8-bit counter is re-loaded. The output signal from this circuit is further divided by two. This gives a greater  
range with only a slight reduction in granularity. Clock SA equals clock A divided by two times the value  
in the PWMSCLA register.  
NOTE  
Clock SA = Clock A / (2 * PWMSCLA)  
When PWMSCLA = $00, PWMSCLA value is considered a full scale value  
of 256. Clock A is thus divided by 512.  
Similarly, clock B is used as an input to an 8-bit down counter followed by a divide by two producing clock  
SB. Thus, clock SB equals clock B divided by two times the value in the PWMSCLB register.  
NOTE  
Clock SB = Clock B / (2 * PWMSCLB)  
When PWMSCLB = $00, PWMSCLB value is considered a full scale value  
of 256. Clock B is thus divided by 512.  
As an example, consider the case in which the user writes $FF into the PWMSCLA register. Clock A for  
this case will be E divided by 4. A pulse will occur at a rate of once every 255x4 E cycles. Passing this  
through the divide by two circuit produces a clock signal at an E divided by 2040 rate. Similarly, a value  
of $01 in the PWMSCLA register when clock A is E divided by 4 will produce a clock at an E divided by  
8 rate.  
Writing to PWMSCLA or PWMSCLB causes the associated 8-bit down counter to be re-loaded.  
Otherwise, when changing rates the counter would have to count down to $01 before counting at the proper  
rate. Forcing the associated counter to re-load the scale register value every time PWMSCLA or  
PWMSCLB is written prevents this.  
NOTE  
Writing to the scale registers while channels are operating can cause  
irregularities in the PWM outputs.  
12.4.1.3 Clock Select  
Each PWM channel has the capability of selecting one of two clocks. For channels 0, 1, 4, and 5 the clock  
choices are clock A or clock SA. For channels 2, 3, 6, and 7 the choices are clock B or clock SB. The clock  
selection is done with the PCLKx control bits in the PWMCLK register.  
NOTE  
Changing clock control bits while channels are operating can cause  
irregularities in the PWM outputs.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
581  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
12.4.2 PWM Channel Timers  
The main part of the PWM module are the actual timers. Each of the timer channels has a counter, a period  
register and a duty register (each are 8-bit). The waveform output period is controlled by a match between  
the period register and the value in the counter. The duty is controlled by a match between the duty register  
and the counter value and causes the state of the output to change during the period. The starting polarity  
of the output is also selectable on a per channel basis. Shown below in Figure 12-19 is the block diagram  
for the PWM timer.  
Clock Source  
From Port PWMP  
8-Bit Counter  
Data Register  
Gate  
PWMCNTx  
(Clock Edge  
Sync)  
Up/Down  
Reset  
8-bit Compare =  
PWMDTYx  
T
M
U
X
M
U
X
Q
Q
To Pin  
Driver  
R
8-bit Compare =  
PWMPERx  
PPOLx  
T
Q
CAEx  
Q
R
PWMEx  
Figure 12-19. PWM Timer Channel Block Diagram  
12.4.2.1 PWM Enable  
Each PWM channel has an enable bit (PWMEx) to start its waveform output. When any of the PWMEx  
bits are set (PWMEx = 1), the associated PWM output signal is enabled immediately. However, the actual  
PWM waveform is not available on the associated PWM output until its clock source begins its next cycle  
due to the synchronization of PWMEx and the clock source. An exception to this is when channels are  
concatenated. Refer to Section 12.4.2.7, “PWM 16-Bit Functions” for more detail.  
NOTE  
The first PWM cycle after enabling the channel can be irregular.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
582  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
On the front end of the PWM timer, the clock is enabled to the PWM circuit by the PWMEx bit being high.  
There is an edge-synchronizing circuit to guarantee that the clock will only be enabled or disabled at an  
edge. When the channel is disabled (PWMEx = 0), the counter for the channel does not count.  
12.4.2.2 PWM Polarity  
Each channel has a polarity bit to allow starting a waveform cycle with a high or low signal. This is shown  
on the block diagram as a mux select of either the Q output or the Q output of the PWM output flip flop.  
When one of the bits in the PWMPOL register is set, the associated PWM channel output is high at the  
beginning of the waveform, then goes low when the duty count is reached. Conversely, if the polarity bit  
is zero, the output starts low and then goes high when the duty count is reached.  
12.4.2.3 PWM Period and Duty  
Dedicated period and duty registers exist for each channel and are double buffered so that if they change  
while the channel is enabled, the change will NOT take effect until one of the following occurs:  
The effective period ends  
The counter is written (counter resets to $00)  
The channel is disabled  
In this way, the output of the PWM will always be either the old waveform or the new waveform, not some  
variation in between. If the channel is not enabled, then writes to the period and duty registers will go  
directly to the latches as well as the buffer.  
A change in duty or period can be forced into effect “immediately” by writing the new value to the duty  
and/or period registers and then writing to the counter. This forces the counter to reset and the new duty  
and/or period values to be latched. In addition, since the counter is readable, it is possible to know where  
the count is with respect to the duty value and software can be used to make adjustments  
NOTE  
When forcing a new period or duty into effect immediately, an irregular  
PWM cycle can occur.  
Depending on the polarity bit, the duty registers will contain the count of  
either the high time or the low time.  
12.4.2.4 PWM Timer Counters  
Each channel has a dedicated 8-bit up/down counter which runs at the rate of the selected clock source (see  
Section 12.4.1, “PWM Clock Select” for the available clock sources and rates). The counter compares to  
two registers, a duty register and a period register as shown in Figure 12-19. When the PWM counter  
state. A match between the PWM counter and the period register behaves differently depending on what  
output mode is selected as shown in Figure 12-19 and described in Section 12.4.2.5, “Left Aligned  
Outputs” and Section 12.4.2.6, “Center Aligned Outputs”.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
583  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
Each channel counter can be read at anytime without affecting the count or the operation of the PWM  
channel.  
Any value written to the counter causes the counter to reset to $00, the counter direction to be set to up,  
the immediate load of both duty and period registers with values from the buffers, and the output to change  
according to the polarity bit. When the channel is disabled (PWMEx = 0), the counter stops. When a  
channel becomes enabled (PWMEx = 1), the associated PWM counter continues from the count in the  
PWMCNTx register. This allows the waveform to continue where it left off when the channel is  
re-enabled. When the channel is disabled, writing “0” to the period register will cause the counter to reset  
on the next selected clock.  
NOTE  
If the user wants to start a new “clean” PWM waveform without any  
“history” from the old waveform, the user must write to channel counter  
(PWMCNTx) prior to enabling the PWM channel (PWMEx = 1).  
Generally, writes to the counter are done prior to enabling a channel in order to start from a known state.  
However, writing a counter can also be done while the PWM channel is enabled (counting). The effect is  
similar to writing the counter when the channel is disabled, except that the new period is started  
immediately with the output set according to the polarity bit.  
NOTE  
Writing to the counter while the channel is enabled can cause an irregular  
PWM cycle to occur.  
The counter is cleared at the end of the effective period (see Section 12.4.2.5, “Left Aligned Outputs” and  
Section 12.4.2.6, “Center Aligned Outputs” for more details).  
Table 12-10. PWM Timer Counter Conditions  
Counter Clears ($00)  
Counter Counts  
Counter Stops  
When PWMCNTx register written to  
any value  
When PWM channel is enabled  
(PWMEx = 1). Counts from last value in  
PWMCNTx.  
When PWM channel is disabled  
(PWMEx = 0)  
Effective period ends  
12.4.2.5 Left Aligned Outputs  
The PWM timer provides the choice of two types of outputs, left aligned or center aligned. They are  
selected with the CAEx bits in the PWMCAE register. If the CAEx bit is cleared (CAEx = 0), the  
corresponding PWM output will be left aligned.  
In left aligned output mode, the 8-bit counter is configured as an up counter only. It compares to two  
registers, a duty register and a period register as shown in the block diagram in Figure 12-19. When the  
PWM counter matches the duty register the output flip-flop changes state causing the PWM waveform to  
output flip-flop, as shown in Figure 12-19, as well as performing a load from the double buffer period and  
duty register to the associated registers, as described in Section 12.4.2.3, “PWM Period and Duty”. The  
counter counts from 0 to the value in the period register – 1.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
584  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
NOTE  
Changing the PWM output mode from left aligned to center aligned output  
(or vice versa) while channels are operating can cause irregularities in the  
PWM output. It is recommended to program the output mode before  
enabling the PWM channel.  
PPOLx = 0  
PPOLx = 1  
PWMDTYx  
Period = PWMPERx  
Figure 12-20. PWM Left Aligned Output Waveform  
To calculate the output frequency in left aligned output mode for a particular channel, take the selected  
clock source frequency for the channel (A, B, SA, or SB) and divide it by the value in the period register  
for that channel.  
PWMx Frequency = Clock (A, B, SA, or SB) / PWMPERx  
PWMx Duty Cycle (high time as a% of period):  
— Polarity = 0 (PPOLx = 0)  
Duty Cycle = [(PWMPERx-PWMDTYx)/PWMPERx] * 100%  
— Polarity = 1 (PPOLx = 1)  
Duty Cycle = [PWMDTYx / PWMPERx] * 100%  
As an example of a left aligned output, consider the following case:  
Clock Source = E, where E = 10 MHz (100 ns period)  
PPOLx = 0  
PWMPERx = 4  
PWMDTYx = 1  
PWMx Frequency = 10 MHz/4 = 2.5 MHz  
PWMx Period = 400 ns  
The output waveform generated is shown in Figure 12-21.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
585  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
E = 100 ns  
Duty Cycle = 75%  
Period = 400 ns  
Figure 12-21. PWM Left Aligned Output Example Waveform  
12.4.2.6 Center Aligned Outputs  
For center aligned output mode selection, set the CAEx bit (CAEx = 1) in the PWMCAE register and the  
corresponding PWM output will be center aligned.  
The 8-bit counter operates as an up/down counter in this mode and is set to up whenever the counter is  
equal to $00. The counter compares to two registers, a duty register and a period register as shown in the  
block diagram in Figure 12-19. When the PWM counter matches the duty register, the output flip-flop  
changes state, causing the PWM waveform to also change state. A match between the PWM counter and  
the period register changes the counter direction from an up-count to a down-count. When the PWM  
counter decrements and matches the duty register again, the output flip-flop changes state causing the  
direction changes from a down-count back to an up-count and a load from the double buffer period and  
duty registers to the associated registers is performed, as described in Section 12.4.2.3, “PWM Period and  
Duty”. The counter counts from 0 up to the value in the period register and then back down to 0. Thus the  
effective period is PWMPERx*2.  
NOTE  
Changing the PWM output mode from left aligned to center aligned output  
(or vice versa) while channels are operating can cause irregularities in the  
PWM output. It is recommended to program the output mode before  
enabling the PWM channel.  
PPOLx = 0  
PPOLx = 1  
PWMDTYx  
PWMPERx  
PWMDTYx  
PWMPERx  
Period = PWMPERx*2  
Figure 12-22. PWM Center Aligned Output Waveform  
MC9S12XDP512 Data Sheet, Rev. 2.11  
586  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
To calculate the output frequency in center aligned output mode for a particular channel, take the selected  
clock source frequency for the channel (A, B, SA, or SB) and divide it by twice the value in the period  
register for that channel.  
PWMx Frequency = Clock (A, B, SA, or SB) / (2*PWMPERx)  
PWMx Duty Cycle (high time as a% of period):  
— Polarity = 0 (PPOLx = 0)  
Duty Cycle = [(PWMPERx-PWMDTYx)/PWMPERx] * 100%  
— Polarity = 1 (PPOLx = 1)  
Duty Cycle = [PWMDTYx / PWMPERx] * 100%  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
587  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
As an example of a center aligned output, consider the following case:  
Clock Source = E, where E = 10 MHz (100 ns period)  
PPOLx = 0  
PWMPERx = 4  
PWMDTYx = 1  
PWMx Frequency = 10 MHz/8 = 1.25 MHz  
PWMx Period = 800 ns  
Shown in Figure 12-23 is the output waveform generated.  
E = 100 ns  
E = 100 ns  
DUTY CYCLE = 75%  
PERIOD = 800 ns  
Figure 12-23. PWM Center Aligned Output Example Waveform  
12.4.2.7 PWM 16-Bit Functions  
The PWM timer also has the option of generating 8-channels of 8-bits or 4-channels of 16-bits for greater  
PWM resolution. This 16-bit channel option is achieved through the concatenation of two 8-bit channels.  
The PWMCTL register contains four control bits, each of which is used to concatenate a pair of PWM  
channels into one 16-bit channel. Channels 6 and 7 are concatenated with the CON67 bit, channels 4 and  
5 are concatenated with the CON45 bit, channels 2 and 3 are concatenated with the CON23 bit, and  
channels 0 and 1 are concatenated with the CON01 bit.  
NOTE  
Change these bits only when both corresponding channels are disabled.  
When channels 6 and 7 are concatenated, channel 6 registers become the high order bytes of the double  
byte channel, as shown in Figure 12-24. Similarly, when channels 4 and 5 are concatenated, channel 4  
registers become the high order bytes of the double byte channel. When channels 2 and 3 are concatenated,  
channel 2 registers become the high order bytes of the double byte channel. When channels 0 and 1 are  
concatenated, channel 0 registers become the high order bytes of the double byte channel.  
When using the 16-bit concatenated mode, the clock source is determined by the low order 8-bit channel  
clock select control bits. That is channel 7 when channels 6 and 7 are concatenated, channel 5 when  
channels 4 and 5 are concatenated, channel 3 when channels 2 and 3 are concatenated, and channel 1 when  
channels 0 and 1 are concatenated. The resulting PWM is output to the pins of the corresponding low order  
8-bit channel as also shown in Figure 12-24. The polarity of the resulting PWM output is controlled by the  
PPOLx bit of the corresponding low order 8-bit channel as well.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
588  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
Clock Source 7  
High  
Low  
PWMCNT6  
PWCNT7  
PWM7  
Period/Duty Compare  
Clock Source 5  
Clock Source 3  
Clock Source 1  
High  
Low  
PWMCNT4  
PWCNT5  
PWM5  
PWM3  
PWM1  
Period/Duty Compare  
High  
Low  
PWMCNT2  
PWCNT3  
Period/Duty Compare  
High  
Low  
PWMCNT0  
PWCNT1  
Period/Duty Compare  
Figure 12-24. PWM 16-Bit Mode  
Once concatenated mode is enabled (CONxx bits set in PWMCTL register), enabling/disabling the  
corresponding 16-bit PWM channel is controlled by the low order PWMEx bit. In this case, the high order  
bytes PWMEx bits have no effect and their corresponding PWM output is disabled.  
In concatenated mode, writes to the 16-bit counter by using a 16-bit access or writes to either the low or  
high order byte of the counter will reset the 16-bit counter. Reads of the 16-bit counter must be made by  
16-bit access to maintain data coherency.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
589  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
Either left aligned or center aligned output mode can be used in concatenated mode and is controlled by  
Table 12-11 is used to summarize which channels are used to set the various control bits when in 16-bit  
mode.  
Table 12-11. 16-bit Concatenation Mode Summary  
PWMx  
Output  
CONxx  
PWMEx  
PPOLx  
PCLKx  
CAEx  
CON67  
CON45  
CON23  
CON01  
PWME7  
PWME5  
PWME3  
PWME1  
PPOL7  
PPOL5  
PPOL3  
PPOL1  
PCLK7  
PCLK5  
PCLK3  
PCLK1  
CAE7  
CAE5  
CAE3  
CAE1  
PWM7  
PWM5  
PWM3  
PWM1  
12.4.2.8 PWM Boundary Cases  
Table 12-12 summarizes the boundary conditions for the PWM regardless of the output mode (left aligned  
or center aligned) and 8-bit (normal) or 16-bit (concatenation).  
Table 12-12. PWM Boundary Cases  
PWMDTYx  
PWMPERx  
PPOLx  
PWMx Output  
$00  
>$00  
1
Always low  
(indicates no duty)  
$00  
>$00  
0
1
0
Always high  
Always high  
Always low  
(indicates no duty)  
1
XX  
$00  
(indicates no period)  
1
XX  
$00  
(indicates no period)  
>= PWMPERx  
>= PWMPERx  
XX  
XX  
1
0
Always high  
Always low  
1
Counter = $00 and does not count.  
12.5 Resets  
The reset state of each individual bit is listed within the Section 12.3.2, “Register Descriptions” which  
details the registers and their bit-fields. All special functions or modes which are initialized during or just  
following reset are described within this section.  
The 8-bit up/down counter is configured as an up counter out of reset.  
All the channels are disabled and all the counters do not count.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
590  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
12.6 Interrupts  
The PWM module has only one interrupt which is generated at the time of emergency shutdown, if the  
corresponding enable bit (PWMIE) is set. This bit is the enable for the interrupt. The interrupt flag PWMIF  
is set whenever the input level of the PWM7 channel changes while PWM7ENA = 1 or when PWMENA  
is being asserted while the level at PWM7 is active.  
In stop mode or wait mode (with the PSWAI bit set), the emergency shutdown feature will drive the PWM  
outputs to their shutdown output levels but the PWMIF flag will not be set.  
A description of the registers involved and affected due to this interrupt is explained in Section 12.3.2.15,  
“PWM Shutdown Register (PWMSDN)”.  
The PWM block only generates the interrupt and does not service it. The interrupt signal name is PWM  
interrupt signal.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
591  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 12 Pulse-Width Modulator (S12PWM8B8CV1)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
592  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 13  
Inter-Integrated Circuit (MC9S12XDP512) Block Description  
13.1 Introduction  
The inter-IC bus (IIC) is a two-wire, bidirectional serial bus that provides a simple, efficient method of data  
exchange between devices. Being a two-wire device, the IIC bus minimizes the need for large numbers of  
connections between devices, and eliminates the need for an address decoder.  
This bus is suitable for applications requiring occasional communications over a short distance between a  
number of devices. It also provides flexibility, allowing additional devices to be connected to the bus for  
further expansion and system development.  
The interface is designed to operate up to 100 kbps with maximum bus loading and timing. The device is  
capable of operating at higher baud rates, up to a maximum of clock/20, with reduced bus loading. The  
maximum communication length and the number of devices that can be connected are limited by a  
maximum bus capacitance of 400 pF.  
13.1.1 Features  
The IIC module has the following key features:  
Compatible with I2C bus standard  
Multi-master operation  
Software programmable for one of 256 different serial clock frequencies  
Software selectable acknowledge bit  
Interrupt driven byte-by-byte data transfer  
Arbitration lost interrupt with automatic mode switching from master to slave  
Calling address identification interrupt  
Start and stop signal generation/detection  
Repeated start signal generation  
Acknowledge bit generation/detection  
Bus busy detection  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
593  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 13 Inter-Integrated Circuit (MC9S12XDP512) Block Description  
13.1.2 Modes of Operation  
The IIC functions the same in normal, special, and emulation modes. It has two low power modes: wait  
and stop modes.  
13.1.3 Block Diagram  
The block diagram of the IIC module is shown in Figure 13-1.  
IIC  
Start  
Stop  
Arbitration  
Registers  
Control  
Interrupt  
In/Out  
Data  
Shift  
SCL  
Clock  
Control  
bus_clock  
SDA  
Register  
Address  
Compare  
Figure 13-1. IIC Block Diagram  
MC9S12XDP512 Data Sheet, Rev. 2.11  
594  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 13 Inter-Integrated Circuit (MC9S12XDP512) Block Description  
13.2 External Signal Description  
The MC9S12XDP512 module has two external pins.  
13.2.1 IIC_SCL — Serial Clock Line Pin  
This is the bidirectional serial clock line (SCL) of the module, compatible to the IIC bus specification.  
13.2.2 IIC_SDA — Serial Data Line Pin  
This is the bidirectional serial data line (SDA) of the module, compatible to the IIC bus specification.  
13.3 Memory Map and Register Definition  
This section provides a detailed description of all memory and registers for the IIC module.  
13.3.1 Module Memory Map  
The memory map for the IIC module is given below in Table 13-1. The address listed for each register is  
the address offset.The total address for each register is the sum of the base address for the IIC module and  
the address offset for each register.  
Table 13-1. IIC Memory Map  
Address  
Offset  
Use  
Access  
0x0000  
0x0001  
0x0002  
0x0003  
0x0004  
IIC-Bus Address Register (IBAD)  
R/W  
R/W  
R/W  
R/W  
R/W  
IIC-Bus Frequency Divider Register (IBFD)  
IIC-Bus Control Register (IBCR)  
IIC-Bus Status Register (IBSR)  
IIC-Bus Data I/O Register (IBDR)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
595  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
Chapter 13 Inter-Integrated Circuit (MC9S12XDP512) Block Description  
13.3.2 Register Descriptions  
This section consists of register descriptions in address order. Each description includes a standard register  
diagram with an associated figure number. Details of register bit and field function follow the register  
diagrams, in bit order.  
Register  
Name  
Bit 7  
6
5
4
3
2
1
Bit 0  
0x0000  
IBAD  
R
0
ADR7  
ADR6  
ADR5  
ADR4  
ADR3  
ADR2  
ADR1  
W
0x0001  
IBFD  
R
IBC7  
IBC6  
IBC5  
IBC4  
Tx/Rx  
IBAL  
D4  
IBC3  
IBC2  
IBC1  
0
IBC0  
W
0x0002  
IBCR  
R
0
IBEN  
TCF  
IBIE  
MS/SL  
IBB  
TXAK  
0
IBSWAI  
RXAK  
W
RSTA  
0x0003  
IBSR  
R
IAAS  
SRW  
D2  
IBIF  
D1  
W
0x0004  
IBDR  
R
D7  
D6  
D5  
D3  
D0  
W
= Unimplemented or Reserved  
Figure 13-2. IIC Register Summary  
13.3.2.1 IIC Address Register (IBAD)  
Offset Module Base +0x0000  
7
6
5
4
3
2
1
0
R
W
0
ADR7  
ADR6  
ADR5  
ADR4  
ADR3  
ADR2  
ADR1  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 13-3. IIC Bus Address Register (IBAD)  
Read and write anytime  
This register contains the address the IIC bus will respond to when addressed as a slave; note that it is not  
the address sent on the bus during the address transfer.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
596  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 13 Inter-Integrated Circuit (MC9S12XDP512) Block Description  
Table 13-2. IBAD Field Descriptions  
Field  
Description  
7:1  
Slave Address — Bit 1 to bit 7 contain the specific slave address to be used by the IIC bus module.The default  
ADR[7:1]  
mode of IIC bus is slave mode for an address match on the bus.  
0
Reserved — Bit 0 of the IBAD is reserved for future compatibility. This bit will always read 0.  
Reserved  
13.3.2.2 IIC Frequency Divider Register (IBFD)  
Offset Module Base + 0x0001  
7
6
5
4
3
2
1
0
R
W
IBC7  
IBC6  
IBC5  
IBC4  
IBC3  
IBC2  
IBC1  
IBC0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 13-4. IIC Bus Frequency Divider Register (IBFD)  
Read and write anytime  
Table 13-3. IBFD Field Descriptions  
Description  
Field  
7:0  
IBC[7:0]  
I Bus Clock Rate 7:0 — This field is used to prescale the clock for bit rate selection. The bit clock generator is  
implemented as a prescale divider — IBC7:6, prescaled shift register — IBC5:3 select the prescaler divider and  
IBC2-0 select the shift register tap point. The IBC bits are decoded to give the tap and prescale values as shown  
in Table 13-4.  
Table 13-4. I-Bus Tap and Prescale Values  
IBC2-0  
(bin)  
SCL Tap  
(clocks)  
SDA Tap  
(clocks)  
000  
001  
010  
011  
100  
101  
110  
111  
5
6
1
1
2
2
3
3
4
4
7
8
9
10  
12  
15  
IBC5-3  
(bin)  
scl2start  
(clocks)  
scl2stop  
(clocks)  
scl2tap  
(clocks)  
tap2tap  
(clocks)  
000  
001  
2
2
7
7
4
4
1
2
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
597  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 13 Inter-Integrated Circuit (MC9S12XDP512) Block Description  
IBC5-3  
(bin)  
scl2start  
(clocks)  
scl2stop  
(clocks)  
scl2tap  
(clocks)  
tap2tap  
(clocks)  
010  
011  
100  
101  
110  
111  
2
6
9
9
6
6
4
8
14  
30  
62  
126  
17  
33  
65  
129  
14  
30  
62  
126  
16  
32  
64  
128  
Table 13-5. Multiplier Factor  
IBC7-6  
MUL  
00  
01  
10  
11  
01  
02  
04  
RESERVED  
The number of clocks from the falling edge of SCL to the first tap (Tap[1]) is defined by the values shown  
IBC5-3  
in the scl2tap column of Table 13-4, all subsequent tap points are separated by 2  
as shown in the  
tap2tap column in Table 13-4. The SCL Tap is used to generated the SCL period and the SDA Tap is used  
to determine the delay from the falling edge of SCL to SDA changing, the SDA hold time.  
IBC7–6 defines the multiplier factor MUL. The values of MUL are shown in the Table 13-5.  
SCL Divider  
SCL  
SDA Hold  
SDA  
MC9S12XDP512 Data Sheet, Rev. 2.11  
598  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 13 Inter-Integrated Circuit (MC9S12XDP512) Block Description  
SDA  
SCL  
SCL Hold(stop)  
SCL Hold(start)  
START condition  
STOP condition  
Figure 13-5. SCL Divider and SDA Hold  
The equation used to generate the divider values from the IBFD bits is:  
SCL Divider = MUL x {2 x (scl2tap + [(SCL_Tap -1) x tap2tap] + 2)}  
The SDA hold delay is equal to the CPU clock period multiplied by the SDA Hold value shown in  
Table 13-6. The equation used to generate the SDA Hold value from the IBFD bits is:  
SDA Hold = MUL x {scl2tap + [(SDA_Tap - 1) x tap2tap] + 3}  
The equation for SCL Hold values to generate the start and stop conditions from the IBFD bits is:  
SCL Hold(start) = MUL x [scl2start + (SCL_Tap - 1) x tap2tap]  
SCL Hold(stop) = MUL x [scl2stop + (SCL_Tap - 1) x tap2tap]  
Table 13-6. IIC Divider and Hold Values (Sheet 1 of 5)  
IBC[7:0]  
(hex)  
SCL Divider  
(clocks)  
SDA Hold  
(clocks)  
SCL Hold  
(start)  
SCL Hold  
(stop)  
MUL=1  
00  
01  
02  
03  
04  
05  
06  
07  
08  
09  
0A  
0B  
0C  
0D  
0E  
0F  
10  
20  
22  
24  
26  
28  
30  
34  
40  
28  
32  
36  
40  
44  
48  
56  
68  
48  
7
7
6
11  
12  
13  
14  
15  
16  
18  
21  
15  
17  
19  
21  
23  
25  
29  
35  
25  
7
8
8
8
9
9
10  
11  
13  
16  
10  
12  
14  
16  
18  
20  
24  
30  
18  
9
10  
10  
7
7
9
9
11  
11  
13  
13  
9
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
599  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 13 Inter-Integrated Circuit (MC9S12XDP512) Block Description  
Table 13-6. IIC Divider and Hold Values (Sheet 2 of 5)  
IBC[7:0]  
(hex)  
SCL Divider  
(clocks)  
SDA Hold  
(clocks)  
SCL Hold  
(start)  
SCL Hold  
(stop)  
11  
12  
13  
14  
15  
16  
17  
18  
19  
1A  
1B  
1C  
1D  
1E  
1F  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
2A  
2B  
2C  
2D  
2E  
2F  
30  
31  
32  
33  
34  
35  
36  
37  
38  
39  
3A  
3B  
3C  
3D  
56  
64  
9
22  
26  
29  
33  
13  
72  
13  
30  
37  
80  
17  
34  
41  
88  
17  
38  
45  
104  
128  
80  
21  
46  
53  
21  
58  
65  
9
38  
41  
96  
9
46  
49  
112  
128  
144  
160  
192  
240  
160  
192  
224  
256  
288  
320  
384  
480  
320  
384  
448  
512  
576  
640  
768  
960  
640  
768  
896  
1024  
1152  
1280  
1536  
1920  
1280  
1536  
1792  
2048  
2304  
2560  
17  
54  
57  
17  
62  
65  
25  
70  
73  
25  
78  
81  
33  
94  
97  
33  
118  
78  
121  
81  
17  
17  
94  
97  
33  
110  
126  
142  
158  
190  
238  
158  
190  
222  
254  
286  
318  
382  
478  
318  
382  
446  
510  
574  
638  
766  
958  
638  
766  
894  
1022  
1150  
1278  
113  
129  
145  
161  
193  
241  
161  
193  
225  
257  
289  
321  
385  
481  
321  
385  
449  
513  
577  
641  
769  
961  
641  
769  
897  
1025  
1153  
1281  
33  
49  
49  
65  
65  
33  
33  
65  
65  
97  
97  
129  
129  
65  
65  
129  
129  
193  
193  
257  
257  
129  
129  
257  
257  
385  
385  
MC9S12XDP512 Data Sheet, Rev. 2.11  
600  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 13 Inter-Integrated Circuit (MC9S12XDP512) Block Description  
Table 13-6. IIC Divider and Hold Values (Sheet 3 of 5)  
IBC[7:0]  
(hex)  
SCL Divider  
(clocks)  
SDA Hold  
(clocks)  
SCL Hold  
(start)  
SCL Hold  
(stop)  
3E  
3F  
3072  
3840  
513  
513  
1534  
1918  
1537  
1921  
MUL=2  
40  
41  
42  
43  
44  
45  
46  
47  
48  
49  
4A  
4B  
4C  
4D  
4E  
4F  
50  
51  
52  
53  
54  
55  
56  
57  
58  
59  
5A  
5B  
5C  
5D  
5E  
5F  
60  
61  
62  
63  
64  
65  
66  
67  
68  
69  
40  
44  
14  
14  
16  
16  
18  
18  
20  
20  
14  
14  
18  
18  
22  
22  
26  
26  
18  
18  
26  
26  
34  
34  
42  
42  
18  
18  
34  
34  
50  
50  
66  
66  
34  
34  
66  
66  
98  
98  
130  
130  
66  
66  
12  
14  
22  
24  
48  
16  
26  
52  
18  
28  
56  
20  
30  
60  
22  
32  
68  
26  
36  
80  
32  
42  
56  
20  
30  
64  
24  
34  
72  
28  
38  
80  
32  
42  
88  
36  
46  
96  
40  
50  
112  
136  
96  
48  
58  
60  
70  
36  
50  
112  
128  
144  
160  
176  
208  
256  
160  
192  
224  
256  
288  
320  
384  
480  
320  
384  
448  
512  
576  
640  
768  
960  
640  
768  
44  
58  
52  
66  
60  
74  
68  
82  
76  
90  
92  
106  
130  
82  
116  
76  
92  
98  
108  
124  
140  
156  
188  
236  
156  
188  
220  
252  
284  
316  
380  
476  
316  
380  
114  
130  
146  
162  
194  
242  
162  
194  
226  
258  
290  
322  
386  
482  
322  
386  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
601  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 13 Inter-Integrated Circuit (MC9S12XDP512) Block Description  
Table 13-6. IIC Divider and Hold Values (Sheet 4 of 5)  
IBC[7:0]  
(hex)  
SCL Divider  
(clocks)  
SDA Hold  
(clocks)  
SCL Hold  
(start)  
SCL Hold  
(stop)  
6A  
6B  
6C  
6D  
6E  
6F  
70  
71  
72  
73  
74  
75  
76  
77  
78  
79  
7A  
7B  
7C  
7D  
7E  
7F  
896  
130  
130  
194  
194  
258  
258  
130  
130  
258  
258  
386  
386  
514  
514  
258  
258  
514  
514  
770  
770  
1026  
1026  
444  
508  
450  
514  
1024  
1152  
1280  
1536  
1920  
1280  
1536  
1792  
2048  
2304  
2560  
3072  
3840  
2560  
3072  
3584  
4096  
4608  
5120  
6144  
7680  
572  
578  
636  
642  
764  
770  
956  
962  
636  
642  
764  
770  
892  
898  
1020  
1148  
1276  
1532  
1916  
1276  
1532  
1788  
2044  
2300  
2556  
3068  
3836  
1026  
1154  
1282  
1538  
1922  
1282  
1538  
1794  
2050  
2306  
2562  
3074  
3842  
MUL=4  
80  
81  
82  
83  
84  
85  
86  
87  
88  
89  
8A  
8B  
8C  
8D  
8E  
8F  
90  
91  
92  
93  
94  
95  
80  
28  
28  
32  
32  
36  
36  
40  
40  
28  
28  
36  
36  
44  
44  
52  
52  
36  
36  
52  
52  
68  
68  
24  
28  
44  
48  
88  
96  
32  
52  
104  
112  
120  
136  
160  
112  
128  
144  
160  
176  
192  
224  
272  
192  
224  
256  
288  
320  
352  
36  
56  
40  
60  
44  
64  
52  
72  
64  
84  
40  
60  
48  
68  
56  
76  
64  
84  
72  
92  
80  
100  
116  
140  
100  
116  
132  
148  
164  
180  
96  
120  
72  
88  
104  
120  
136  
152  
MC9S12XDP512 Data Sheet, Rev. 2.11  
602  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 13 Inter-Integrated Circuit (MC9S12XDP512) Block Description  
Table 13-6. IIC Divider and Hold Values (Sheet 5 of 5)  
IBC[7:0]  
(hex)  
SCL Divider  
(clocks)  
SDA Hold  
(clocks)  
SCL Hold  
(start)  
SCL Hold  
(stop)  
96  
97  
416  
512  
84  
84  
184  
232  
212  
260  
98  
320  
36  
152  
164  
99  
384  
36  
184  
196  
9A  
9B  
9C  
9D  
9E  
9F  
A0  
A1  
A2  
A3  
A4  
A5  
A6  
A7  
A8  
A9  
AA  
AB  
AC  
AD  
AE  
AF  
B0  
B1  
B2  
B3  
B4  
B5  
B6  
B7  
B8  
B9  
BA  
BB  
BC  
BD  
BE  
BF  
448  
68  
216  
228  
512  
68  
248  
260  
576  
100  
100  
132  
132  
68  
280  
292  
640  
312  
324  
768  
376  
388  
960  
472  
484  
640  
312  
324  
768  
68  
376  
388  
896  
132  
132  
196  
196  
260  
260  
132  
132  
260  
260  
388  
388  
516  
516  
260  
260  
516  
516  
772  
772  
1028  
1028  
516  
516  
1028  
1028  
1540  
1540  
2052  
2052  
440  
452  
1024  
1152  
1280  
1536  
1920  
1280  
1536  
1792  
2048  
2304  
2560  
3072  
3840  
2560  
3072  
3584  
4096  
4608  
5120  
6144  
7680  
5120  
6144  
7168  
8192  
9216  
10240  
12288  
15360  
504  
516  
568  
580  
632  
644  
760  
772  
952  
964  
632  
644  
760  
772  
888  
900  
1016  
1144  
1272  
1528  
1912  
1272  
1528  
1784  
2040  
2296  
2552  
3064  
3832  
2552  
3064  
3576  
4088  
4600  
5112  
6136  
7672  
1028  
1156  
1284  
1540  
1924  
1284  
1540  
1796  
2052  
2308  
2564  
3076  
3844  
2564  
3076  
3588  
4100  
4612  
5124  
6148  
7684  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
603  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 13 Inter-Integrated Circuit (MC9S12XDP512) Block Description  
13.3.2.3 IIC Control Register (IBCR)  
Offset Module Base + 0x0002  
7
6
5
4
3
2
1
0
R
W
0
0
IBEN  
IBIE  
MS/SL  
Tx/Rx  
TXAK  
IBSWAI  
RSTA  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 13-6. IIC Bus Control Register (IBCR)  
Read and write anytime  
Table 13-7. IBCR Field Descriptions  
Description  
Field  
7
I-Bus Enable — This bit controls the software reset of the entire IIC bus module.  
IBEN  
0 The module is reset and disabled. This is the power-on reset situation. When low the interface is held in reset  
but registers can be accessed  
1 The IIC bus module is enabled.This bit must be set before any other IBCR bits have any effect  
If the IIC bus module is enabled in the middle of a byte transfer the interface behaves as follows: slave mode  
ignores the current transfer on the bus and starts operating whenever a subsequent start condition is detected.  
Master mode will not be aware that the bus is busy, hence if a start cycle is initiated then the current bus cycle  
may become corrupt. This would ultimately result in either the current bus master or the IIC bus module losing  
arbitration, after which bus operation would return to normal.  
6
I-Bus Interrupt Enable  
IBIE  
0
Interrupts from the IIC bus module are disabled. Note that this does not clear any currently pending interrupt  
condition  
1 Interrupts from the IIC bus module are enabled. An IIC bus interrupt occurs provided the IBIF bit in the status  
register is also set.  
5
Master/Slave Mode Select Bit — Upon reset, this bit is cleared. When this bit is changed from 0 to 1, a START  
MS/SL  
signal is generated on the bus, and the master mode is selected. When this bit is changed from 1 to 0, a STOP  
signal is generated and the operation mode changes from master to slave.A STOP signal should only be  
generated if the IBIF flag is set. MS/SL is cleared without generating a STOP signal when the master loses  
arbitration.  
0 Slave Mode  
1 Master Mode  
4
Transmit/Receive Mode Select Bit — This bit selects the direction of master and slave transfers. When  
Tx/Rx  
addressed as a slave this bit should be set by software according to the SRW bit in the status register. In master  
mode this bit should be set according to the type of transfer required. Therefore, for address cycles, this bit will  
always be high.  
0 Receive  
1 Transmit  
3
Transmit Acknowledge Enable — This bit specifies the value driven onto SDA during data acknowledge cycles  
for both master and slave receivers. The IIC module will always acknowledge address matches, provided it is  
enabled, regardless of the value of TXAK. Note that values written to this bit are only used when the IIC bus is a  
receiver, not a transmitter.  
TXAK  
0 An acknowledge signal will be sent out to the bus at the 9th clock bit after receiving one byte data  
1 No acknowledge signal response is sent (i.e., acknowledge bit = 1)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
604  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 13 Inter-Integrated Circuit (MC9S12XDP512) Block Description  
Table 13-7. IBCR Field Descriptions (continued)  
Field  
Description  
2
Repeat Start — Writing a 1 to this bit will generate a repeated START condition on the bus, provided it is the  
current bus master. This bit will always be read as a low. Attempting a repeated start at the wrong time, if the bus  
is owned by another master, will result in loss of arbitration.  
RSTA  
1 Generate repeat start cycle  
1
Reserved — Bit 1 of the IBCR is reserved for future compatibility. This bit will always read 0.  
RESERVED  
0
I Bus Interface Stop in Wait Mode  
IBSWAI  
0 IIC bus module clock operates normally  
1 Halt IIC bus module clock generation in wait mode  
Wait mode is entered via execution of a CPU WAI instruction. In the event that the IBSWAI bit is set, all  
clocks internal to the IIC will be stopped and any transmission currently in progress will halt.If the CPU  
were woken up by a source other than the IIC module, then clocks would restart and the IIC would resume  
from where was during the previous transmission. It is not possible for the IIC to wake up the CPU when  
its internal clocks are stopped.  
If it were the case that the IBSWAI bit was cleared when the WAI instruction was executed, the IIC internal  
clocks and interface would remain alive, continuing the operation which was currently underway. It is also  
possible to configure the IIC such that it will wake up the CPU via an interrupt at the conclusion of the  
current operation. See the discussion on the IBIF and IBIE bits in the IBSR and IBCR, respectively.  
13.3.2.4 IIC Status Register (IBSR)  
Offset Module Base + 0x0003  
7
6
5
4
3
2
1
0
R
W
TCF  
IAAS  
IBB  
0
SRW  
RXAK  
IBAL  
IBIF  
Reset  
1
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 13-7. IIC Bus Status Register (IBSR)  
This status register is read-only with exception of bit 1 (IBIF) and bit 4 (IBAL), which are software  
clearable.  
Table 13-8. IBSR Field Descriptions  
Field  
Description  
7
Data Transferring Bit — While one byte of data is being transferred, this bit is cleared. It is set by the falling  
TCF  
edge of the 9th clock of a byte transfer. Note that this bit is only valid during or immediately following a transfer  
to the IIC module or from the IIC module.  
0 Transfer in progress  
1 Transfer complete  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
605  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 13 Inter-Integrated Circuit (MC9S12XDP512) Block Description  
Table 13-8. IBSR Field Descriptions (continued)  
Field  
Description  
6
Addressed as a Slave Bit — When its own specific address (I-bus address register) is matched with the calling  
address, this bit is set.The CPU is interrupted provided the IBIE is set.Then the CPU needs to check the SRW  
bit and set its Tx/Rx mode accordingly.Writing to the I-bus control register clears this bit.  
0 Not addressed  
IAAS  
1 Addressed as a slave  
5
Bus Busy Bit  
IBB  
0 This bit indicates the status of the bus. When a START signal is detected, the IBB is set. If a STOP signal is  
detected, IBB is cleared and the bus enters idle state.  
1 Bus is busy  
4
IBAL  
Arbitration Lost — The arbitration lost bit (IBAL) is set by hardware when the arbitration procedure is lost.  
Arbitration is lost in the following circumstances:  
1. SDA sampled low when the master drives a high during an address or data transmit cycle.  
2. SDA sampled low when the master drives a high during the acknowledge bit of a data receive cycle.  
3. A start cycle is attempted when the bus is busy.  
4. A repeated start cycle is requested in slave mode.  
5. A stop condition is detected when the master did not request it.  
This bit must be cleared by software, by writing a one to it. A write of 0 has no effect on this bit.  
3
Reserved — Bit 3 of IBSR is reserved for future use. A read operation on this bit will return 0.  
RESERVED  
2
Slave Read/Write — When IAAS is set this bit indicates the value of the R/W command bit of the calling address  
sent from the master  
SRW  
This bit is only valid when the I-bus is in slave mode, a complete address transfer has occurred with an address  
match and no other transfers have been initiated.  
Checking this bit, the CPU can select slave transmit/receive mode according to the command of the master.  
0 Slave receive, master writing to slave  
1 Slave transmit, master reading from slave  
1
IBIF  
I-Bus Interrupt — The IBIF bit is set when one of the following conditions occurs:  
— Arbitration lost (IBAL bit set)  
— Byte transfer complete (TCF bit set)  
— Addressed as slave (IAAS bit set)  
It will cause a processor interrupt request if the IBIE bit is set. This bit must be cleared by software, writing a one  
to it. A write of 0 has no effect on this bit.  
0
Received Acknowledge — The value of SDA during the acknowledge bit of a bus cycle. If the received  
acknowledge bit (RXAK) is low, it indicates an acknowledge signal has been received after the completion of 8  
bits data transmission on the bus. If RXAK is high, it means no acknowledge signal is detected at the 9th clock.  
0 Acknowledge received  
RXAK  
1 No acknowledge received  
MC9S12XDP512 Data Sheet, Rev. 2.11  
606  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 13 Inter-Integrated Circuit (MC9S12XDP512) Block Description  
13.3.2.5 IIC Data I/O Register (IBDR)  
Offset Module Base + 0x0004  
7
6
5
4
3
2
1
0
R
W
D7  
D6  
D5  
D4  
D3  
D2  
D1  
D0  
Reset  
0
0
0
0
0
0
0
0
Figure 13-8. IIC Bus Data I/O Register (IBDR)  
In master transmit mode, when data is written to the IBDR a data transfer is initiated. The most significant  
bit is sent first. In master receive mode, reading this register initiates next byte data receiving. In slave  
mode, the same functions are available after an address match has occurred.Note that the Tx/Rx bit in the  
IBCR must correctly reflect the desired direction of transfer in master and slave modes for the transmission  
to begin. For instance, if the IIC is configured for master transmit but a master receive is desired, then  
reading the IBDR will not initiate the receive.  
Reading the IBDR will return the last byte received while the IIC is configured in either master receive or  
slave receive modes. The IBDR does not reflect every byte that is transmitted on the IIC bus, nor can  
software verify that a byte has been written to the IBDR correctly by reading it back.  
In master transmit mode, the first byte of data written to IBDR following assertion of MS/SL is used for  
the address transfer and should com.prise of the calling address (in position D7:D1) concatenated with the  
required R/W bit (in position D0).  
13.4 Functional Description  
This section provides a complete functional description of the MC9S12XDP512.  
13.4.1  
I-Bus Protocol  
The IIC bus system uses a serial data line (SDA) and a serial clock line (SCL) for data transfer. All devices  
connected to it must have open drain or open collector outputs. Logic AND function is exercised on both  
lines with external pull-up resistors. The value of these resistors is system dependent.  
Normally, a standard communication is composed of four parts: START signal, slave address transmission,  
data transfer and STOP signal. They are described briefly in the following sections and illustrated in  
Figure 13-9.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
607  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 13 Inter-Integrated Circuit (MC9S12XDP512) Block Description  
MSB  
1
LSB  
8
MSB  
1
LSB  
8
SCL  
SDA  
2
3
4
5
6
7
9
2
3
4
5
6
7
9
AD7 AD6 AD5 AD4 AD3 AD2 AD1 R/W  
XXX  
D7 D6 D5 D4 D3 D2 D1 D0  
Start  
Signal  
Calling Address  
Read/ Ack  
Bit  
Data Byte  
No Stop  
Ack Signal  
Bit  
Write  
MSB  
1
LSB  
MSB  
LSB  
8
SCL  
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
9
SDA  
AD7 AD6 AD5 AD4 AD3 AD2 AD1 R/W  
XX  
AD7 AD6 AD5 AD4 AD3 AD2 AD1 R/W  
Start  
Signal  
Calling Address  
Read/ Ack  
Bit  
Repeated  
Start  
Signal  
New Calling Address  
No Stop  
Ack Signal  
Bit  
Read/  
Write  
Write  
Figure 13-9. IIC-Bus Transmission Signals  
13.4.1.1 START Signal  
When the bus is free, i.e. no master device is engaging the bus (both SCL and SDA lines are at logical  
high), a master may initiate communication by sending a START signal.As shown in Figure 13-9, a  
START signal is defined as a high-to-low transition of SDA while SCL is high. This signal denotes the  
beginning of a new data transfer (each data transfer may contain several bytes of data) and brings all slaves  
out of their idle states.  
SDA  
SCL  
START Condition  
STOP Condition  
Figure 13-10. Start and Stop Conditions  
MC9S12XDP512 Data Sheet, Rev. 2.11  
608  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 13 Inter-Integrated Circuit (MC9S12XDP512) Block Description  
13.4.1.2 Slave Address Transmission  
The first byte of data transfer immediately after the START signal is the slave address transmitted by the  
master. This is a seven-bit calling address followed by a R/W bit. The R/W bit tells the slave the desired  
direction of data transfer.  
1 = Read transfer, the slave transmits data to the master.  
0 = Write transfer, the master transmits data to the slave.  
Only the slave with a calling address that matches the one transmitted by the master will respond by  
sending back an acknowledge bit. This is done by pulling the SDA low at the 9th clock (see Figure 13-9).  
No two slaves in the system may have the same address. If the IIC bus is master, it must not transmit an  
address that is equal to its own slave address. The IIC bus cannot be master and slave at the same  
time.However, if arbitration is lost during an address cycle the IIC bus will revert to slave mode and operate  
correctly even if it is being addressed by another master.  
13.4.1.3 Data Transfer  
As soon as successful slave addressing is achieved, the data transfer can proceed byte-by-byte in a  
direction specified by the R/W bit sent by the calling master  
All transfers that come after an address cycle are referred to as data transfers, even if they carry sub-address  
information for the slave device.  
Each data byte is 8 bits long. Data may be changed only while SCL is low and must be held stable while  
SCL is high as shown in Figure 13-9. There is one clock pulse on SCL for each data bit, the MSB being  
transferred first. Each data byte has to be followed by an acknowledge bit, which is signalled from the  
receiving device by pulling the SDA low at the ninth clock. So one complete data byte transfer needs nine  
clock pulses.  
If the slave receiver does not acknowledge the master, the SDA line must be left high by the slave. The  
master can then generate a stop signal to abort the data transfer or a start signal (repeated start) to  
commence a new calling.  
If the master receiver does not acknowledge the slave transmitter after a byte transmission, it means 'end  
of data' to the slave, so the slave releases the SDA line for the master to generate STOP or START signal.  
13.4.1.4 STOP Signal  
The master can terminate the communication by generating a STOP signal to free the bus. However, the  
master may generate a START signal followed by a calling command without generating a STOP signal  
first. This is called repeated START. A STOP signal is defined as a low-to-high transition of SDA while  
SCL at logical 1 (see Figure 13-9).  
The master can generate a STOP even if the slave has generated an acknowledge at which point the slave  
must release the bus.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
609  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 13 Inter-Integrated Circuit (MC9S12XDP512) Block Description  
13.4.1.5 Repeated START Signal  
As shown in Figure 13-9, a repeated START signal is a START signal generated without first generating a  
STOP signal to terminate the communication. This is used by the master to communicate with another  
slave or with the same slave in different mode (transmit/receive mode) without releasing the bus.  
13.4.1.6 Arbitration Procedure  
The Inter-IC bus is a true multi-master bus that allows more than one master to be connected on it. If two  
or more masters try to control the bus at the same time, a clock synchronization procedure determines the  
bus clock, for which the low period is equal to the longest clock low period and the high is equal to the  
shortest one among the masters. The relative priority of the contending masters is determined by a data  
arbitration procedure, a bus master loses arbitration if it transmits logic 1 while another master transmits  
logic 0. The losing masters immediately switch over to slave receive mode and stop driving SDA output.  
In this case the transition from master to slave mode does not generate a STOP condition. Meanwhile, a  
status bit is set by hardware to indicate loss of arbitration.  
13.4.1.7 Clock Synchronization  
Because wire-AND logic is performed on SCL line, a high-to-low transition on SCL line affects all the  
devices connected on the bus. The devices start counting their low period and as soon as a device's clock  
has gone low, it holds the SCL line low until the clock high state is reached.However, the change of low to  
high in this device clock may not change the state of the SCL line if another device clock is within its low  
period. Therefore, synchronized clock SCL is held low by the device with the longest low period. Devices  
with shorter low periods enter a high wait state during this time (see Figure 13-10). When all devices  
concerned have counted off their low period, the synchronized clock SCL line is released and pulled high.  
There is then no difference between the device clocks and the state of the SCL line and all the devices start  
counting their high periods.The first device to complete its high period pulls the SCL line low again.  
Start Counting High Period  
WAIT  
SCL1  
SCL2  
SCL  
Internal Counter Reset  
Figure 13-11. IIC-Bus Clock Synchronization  
MC9S12XDP512 Data Sheet, Rev. 2.11  
610  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 13 Inter-Integrated Circuit (MC9S12XDP512) Block Description  
13.4.1.8 Handshaking  
The clock synchronization mechanism can be used as a handshake in data transfer. Slave devices may hold  
the SCL low after completion of one byte transfer (9 bits). In such case, it halts the bus clock and forces  
the master clock into wait states until the slave releases the SCL line.  
13.4.1.9 Clock Stretching  
The clock synchronization mechanism can be used by slaves to slow down the bit rate of a transfer. After  
the master has driven SCL low the slave can drive SCL low for the required period and then release it.If  
the slave SCL low period is greater than the master SCL low period then the resulting SCL bus signal low  
period is stretched.  
13.4.2 Operation in Run Mode  
This is the basic mode of operation.  
13.4.3 Operation in Wait Mode  
IIC operation in wait mode can be configured. Depending on the state of internal bits, the IIC can operate  
normally when the CPU is in wait mode or the IIC clock generation can be turned off and the IIC module  
enters a power conservation state during wait mode. In the later case, any transmission or reception in  
progress stops at wait mode entry.  
13.4.4 Operation in Stop Mode  
The IIC is inactive in stop mode for reduced power consumption. The STOP instruction does not affect IIC  
register states.  
13.5 Resets  
The reset state of each individual bit is listed in Section 13.3, “Memory Map and Register Definition,”  
which details the registers and their bit-fields.  
13.6 Interrupts  
MC9S12XDP512 uses only one interrupt vector.  
Table 13-9. Interrupt Summary  
Interrupt Offset  
Vector  
Priority  
Source  
Description  
IIC  
IBAL, TCF, IAAS When either of IBAL, TCF or IAAS bits is set  
Interrupt  
bits in IBSR  
register  
may cause an interrupt based on arbitration  
lost, transfer complete or address detect  
conditions  
Internally there are three types of interrupts in IIC. The interrupt service routine can determine the interrupt  
type by reading the status register.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
611  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
Chapter 13 Inter-Integrated Circuit (MC9S12XDP512) Block Description  
IIC Interrupt can be generated on  
1. Arbitration lost condition (IBAL bit set)  
2. Byte transfer condition (TCF bit set)  
3. Address detect condition (IAAS bit set)  
The IIC interrupt is enabled by the IBIE bit in the IIC control register. It must be cleared by writing 0 to  
the IBF bit in the interrupt service routine.  
13.7 Initialization/Application Information  
13.7.1 IIC Programming Examples  
13.7.1.1 Initialization Sequence  
Reset will put the IIC bus control register to its default status. Before the interface can be used to transfer  
serial data, an initialization procedure must be carried out, as follows:  
1. Update the frequency divider register (IBFD) and select the required division ratio to obtain SCL  
frequency from system clock.  
2. Update the IIC bus address register (IBAD) to define its slave address.  
3. Set the IBEN bit of the IIC bus control register (IBCR) to enable the IIC interface system.  
4. Modify the bits of the IIC bus control register (IBCR) to select master/slave mode, transmit/receive  
mode and interrupt enable or not.  
13.7.1.2 Generation of START  
After completion of the initialization procedure, serial data can be transmitted by selecting the 'master  
transmitter' mode. If the device is connected to a multi-master bus system, the state of the IIC bus busy bit  
(IBB) must be tested to check whether the serial bus is free.  
If the bus is free (IBB=0), the start condition and the first byte (the slave address) can be sent. The data  
written to the data register comprises the slave calling address and the LSB set to indicate the direction of  
transfer required from the slave.  
The bus free time (i.e., the time between a STOP condition and the following START condition) is built  
into the hardware that generates the START cycle. Depending on the relative frequencies of the system  
clock and the SCL period it may be necessary to wait until the IIC is busy after writing the calling address  
to the IBDR before proceeding with the following instructions. This is illustrated in the following example.  
An example of a program which generates the START signal and transmits the first byte of data (slave  
address) is shown below:  
CHFLAG  
TXSTART  
BRSET  
BSET  
IBSR,#$20,*  
IBCR,#$30  
;WAIT FOR IBB FLAG TO CLEAR  
;SET TRANSMIT AND MASTER MODE;i.e. GENERATE START CONDITION  
MOVB  
CALLING,IBDR ;TRANSMIT THE CALLING ADDRESS, D0=R/W  
IBFREE  
BRCLR IBSR,#$20,*  
;WAIT FOR IBB FLAG TO SET  
MC9S12XDP512 Data Sheet, Rev. 2.11  
612  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 13 Inter-Integrated Circuit (MC9S12XDP512) Block Description  
13.7.1.3 Post-Transfer Software Response  
Transmission or reception of a byte will set the data transferring bit (TCF) to 1, which indicates one byte  
communication is finished. The IIC bus interrupt bit (IBIF) is set also; an interrupt will be generated if the  
interrupt function is enabled during initialization by setting the IBIE bit. Software must clear the IBIF bit  
in the interrupt routine first. The TCF bit will be cleared by reading from the IIC bus data I/O register  
(IBDR) in receive mode or writing to IBDR in transmit mode.  
Software may service the IIC I/O in the main program by monitoring the IBIF bit if the interrupt function  
is disabled. Note that polling should monitor the IBIF bit rather than the TCF bit because their operation  
is different when arbitration is lost.  
Note that when an interrupt occurs at the end of the address cycle the master will always be in transmit  
mode, i.e. the address is transmitted. If master receive mode is required, indicated by R/W bit in IBDR,  
then the Tx/Rx bit should be toggled at this stage.  
During slave mode address cycles (IAAS=1), the SRW bit in the status register is read to determine the  
direction of the subsequent transfer and the Tx/Rx bit is programmed accordingly. For slave mode data  
cycles (IAAS=0) the SRW bit is not valid, the Tx/Rx bit in the control register should be read to determine  
the direction of the current transfer.  
The following is an example of a software response by a 'master transmitter' in the interrupt routine.  
ISR  
BCLR  
IBSR,#$02  
;CLEAR THE IBIF FLAG  
BRCLR  
BRCLR  
BRSET  
MOVB  
IBCR,#$20,SLAVE  
IBCR,#$10,RECEIVE  
IBSR,#$01,END  
DATABUF,IBDR  
;BRANCH IF IN SLAVE MODE  
;BRANCH IF IN RECEIVE MODE  
;IF NO ACK, END OF TRANSMISSION  
;TRANSMIT NEXT BYTE OF DATA  
TRANSMIT  
13.7.1.4 Generation of STOP  
A data transfer ends with a STOP signal generated by the 'master' device. A master transmitter can simply  
generate a STOP signal after all the data has been transmitted. The following is an example showing how  
a stop condition is generated by a master transmitter.  
MASTX  
TST  
BEQ  
TXCNT  
END  
;GET VALUE FROM THE TRANSMITING COUNTER  
;END IF NO MORE DATA  
BRSET  
MOVB  
DEC  
IBSR,#$01,END  
DATABUF,IBDR  
TXCNT  
;END IF NO ACK  
;TRANSMIT NEXT BYTE OF DATA  
;DECREASE THE TXCNT  
;EXIT  
BRA  
EMASTX  
END  
EMASTX  
BCLR  
RTI  
IBCR,#$20  
;GENERATE A STOP CONDITION  
;RETURN FROM INTERRUPT  
If a master receiver wants to terminate a data transfer, it must inform the slave transmitter by not  
acknowledging the last byte of data which can be done by setting the transmit acknowledge bit (TXAK)  
before reading the 2nd last byte of data. Before reading the last byte of data, a STOP signal must be  
generated first. The following is an example showing how a STOP signal is generated by a master receiver.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
613  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 13 Inter-Integrated Circuit (MC9S12XDP512) Block Description  
MASR  
DEC  
BEQ  
MOVB  
DEC  
BNE  
RXCNT  
ENMASR  
RXCNT,D1  
D1  
NXMAR  
IBCR,#$08  
;DECREASE THE RXCNT  
;LAST BYTE TO BE READ  
;CHECK SECOND LAST BYTE  
;TO BE READ  
;NOT LAST OR SECOND LAST  
;SECOND LAST, DISABLE ACK  
;TRANSMITTING  
LAMAR  
BSET  
BRA  
NXMAR  
ENMASR  
NXMAR  
BCLR  
MOVB  
RTI  
IBCR,#$20  
IBDR,RXBUF  
;LAST ONE, GENERATE ‘STOP’ SIGNAL  
;READ DATA AND STORE  
13.7.1.5 Generation of Repeated START  
At the end of data transfer, if the master continues to want to communicate on the bus, it can generate  
another START signal followed by another slave address without first generating a STOP signal. A  
program example is as shown.  
RESTART  
BSET  
IBCR,#$04  
;ANOTHER START (RESTART)  
MOVB  
CALLING,IBDR  
;TRANSMIT THE CALLING ADDRESS;D0=R/W  
13.7.1.6 Slave Mode  
In the slave interrupt service routine, the module addressed as slave bit (IAAS) should be tested to check  
if a calling of its own address has just been received. If IAAS is set, software should set the transmit/receive  
mode select bit (Tx/Rx bit of IBCR) according to the R/W command bit (SRW). Writing to the IBCR  
clears the IAAS automatically. Note that the only time IAAS is read as set is from the interrupt at the end  
of the address cycle where an address match occurred, interrupts resulting from subsequent data transfers  
will have IAAS cleared. A data transfer may now be initiated by writing information to IBDR, for slave  
transmits, or dummy reading from IBDR, in slave receive mode. The slave will drive SCL low in-between  
byte transfers, SCL is released when the IBDR is accessed in the required mode.  
In slave transmitter routine, the received acknowledge bit (RXAK) must be tested before transmitting the  
next byte of data. Setting RXAK means an 'end of data' signal from the master receiver, after which it must  
be switched from transmitter mode to receiver mode by software. A dummy read then releases the SCL  
line so that the master can generate a STOP signal.  
13.7.1.7 Arbitration Lost  
If several masters try to engage the bus simultaneously, only one master wins and the others lose  
arbitration. The devices which lost arbitration are immediately switched to slave receive mode by the  
hardware. Their data output to the SDA line is stopped, but SCL continues to be generated until the end of  
the byte during which arbitration was lost. An interrupt occurs at the falling edge of the ninth clock of this  
transfer with IBAL=1 and MS/SL=0. If one master attempts to start transmission while the bus is being  
engaged by another master, the hardware will inhibit the transmission; switch the MS/SL bit from 1 to 0  
without generating STOP condition; generate an interrupt to CPU and set the IBAL to indicate that the  
attempt to engage the bus is failed. When considering these cases, the slave service routine should test the  
IBAL first and the software should clear the IBAL bit if it is set.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
614  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 13 Inter-Integrated Circuit (MC9S12XDP512) Block Description  
Clear  
IBIF  
Master  
N
Mode  
?
Y
Arbitration  
Y
TX  
RX  
Tx/Rx  
?
Lost  
?
N
Last Byte  
Transmitted  
Clear IBAL  
Y
N
?
N
Last  
Byte To Be Read  
?
Y
N
RXAK=0  
?
IAAS=1  
?
IAAS=1  
?
Y
N
Y
Y
N
Data Transfer  
Address Transfer  
Y
(Read)  
End Of  
Addr Cycle  
(Master Rx)  
?
2nd Last  
Byte To Be Read  
?
Y
Y
SRW=1  
?
TX/RX  
?
RX  
TX  
(Write)  
N
N
N
ACK From  
Receiver  
?
Y
Write Next  
Byte To IBDR  
Generate  
Stop Signal  
Set TX  
Mode  
Set TXAK =1  
N
Read Data  
From IBDR  
And Store  
Tx Next  
Byte  
Write Data  
To IBDR  
Switch To  
Rx Mode  
Set RX  
Mode  
Switch To  
Rx Mode  
Read Data  
From IBDR  
And Store  
Dummy Read  
From IBDR  
Generate  
Stop Signal  
Dummy Read  
From IBDR  
Dummy Read  
From IBDR  
RTI  
Figure 13-12. Flow-Chart of Typical IIC Interrupt Routine  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
615  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 13 Inter-Integrated Circuit (MC9S12XDP512) Block Description  
MC9S12XDP512 Data Sheet, Rev. 2.11  
616  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 14  
Freescale’s Scalable Controller Area Network  
(S12MSCANV3)  
14.1 Introduction  
Freescale’s scalable controller area network (S12MSCANV3) definition is based on the MSCAN12  
definition, which is the specific implementation of the MSCAN concept targeted for the M68HC12  
microcontroller family.  
The module is a communication controller implementing the CAN 2.0A/B protocol as defined in the  
Bosch specification dated September 1991. For users to fully understand the MSCAN specification, it is  
recommended that the Bosch specification be read first to familiarize the reader with the terms and  
concepts contained within this document.  
Though not exclusively intended for automotive applications, CAN protocol is designed to meet the  
specific requirements of a vehicle serial data bus: real-time processing, reliable operation in the EMI  
environment of a vehicle, cost-effectiveness, and required bandwidth.  
MSCAN uses an advanced buffer arrangement resulting in predictable real-time behavior and simplified  
application software.  
14.1.1 Glossary  
ACK: Acknowledge of CAN message  
CAN: Controller Area Network  
CRC: Cyclic Redundancy Code  
EOF: End of Frame  
FIFO: First-In-First-Out Memory  
IFS: Inter-Frame Sequence  
SOF: Start of Frame  
CPU bus: CPU related read/write data bus  
CAN bus: CAN protocol related serial bus  
oscillator clock: Direct clock from external oscillator  
bus clock: CPU bus realated clock  
CAN clock: CAN protocol related clock  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
617  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
14.1.2 Block Diagram  
MSCAN  
CANCLK  
Oscillator Clock  
Tq Clk  
MUX  
Presc.  
Bus Clock  
RXCAN  
TXCAN  
Receive/  
Transmit  
Engine  
Transmit Interrupt Req.  
Receive Interrupt Req.  
Errors Interrupt Req.  
Wake-Up Interrupt Req.  
Message  
Filtering  
and  
Control  
and  
Status  
Buffering  
Configuration  
Registers  
Wake-Up  
Low Pass Filter  
Figure 14-1. MSCAN Block Diagram  
14.1.3 Features  
The basic features of the MSCAN are as follows:  
Implementation of the CAN protocol — Version 2.0A/B  
— Standard and extended data frames  
— Zero to eight bytes data length  
1
— Programmable bit rate up to 1 Mbps  
— Support for remote frames  
Five receive buffers with FIFO storage scheme  
Three transmit buffers with internal prioritization using a “local priority” concept  
Flexible maskable identifier filter supports two full-size (32-bit) extended identifier filters, or four  
16-bit filters, or eight 8-bit filters  
Programmable wakeup functionality with integrated low-pass filter  
Programmable loopback mode supports self-test operation  
Programmable listen-only mode for monitoring of CAN bus  
Programmable bus-off recovery functionality  
Separate signalling and interrupt capabilities for all CAN receiver and transmitter error states  
(warning, error passive, bus-off)  
Programmable MSCAN clock source either bus clock or oscillator clock  
Internal timer for time-stamping of received and transmitted messages  
1. Depending on the actual bit timing and the clock jitter of the PLL.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
618  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
Three low-power modes: sleep, power down, and MSCAN enable  
Global initialization of configuration registers  
14.1.4 Modes of Operation  
The following modes of operation are specific to the MSCAN. See Section 14.4, “Functional Description,”  
MSCAN Power Down Mode  
14.2 External Signal Description  
The MSCAN uses two external pins:  
14.2.1 RXCAN — CAN Receiver Input Pin  
RXCAN is the MSCAN receiver input pin.  
14.2.2 TXCAN — CAN Transmitter Output Pin  
TXCAN is the MSCAN transmitter output pin. The TXCAN output pin represents the logic level on the  
CAN bus:  
0 = Dominant state  
1 = Recessive state  
14.2.3 CAN System  
A typical CAN system with MSCAN is shown in Figure 14-2. Each CAN station is connected physically  
to the CAN bus lines through a transceiver device. The transceiver is capable of driving the large current  
needed for the CAN bus and has current protection against defective CAN or defective stations.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
619  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
CAN node 2  
CAN node n  
CAN node 1  
MCU  
CAN Controller  
(MSCAN)  
TXCAN  
RXCAN  
Transceiver  
CAN_H  
CAN_L  
CAN Bus  
Figure 14-2. CAN System  
14.3 Memory Map and Register Definition  
This section provides a detailed description of all registers accessible in the MSCAN.  
14.3.1 Module Memory Map  
Table 14-1 gives an overview on all registers and their individual bits in the MSCAN memory map. The  
register address results from the addition of base address and address offset. The base address is  
determined at the MCU level and can be found in the Memory block description chapter. The address offset  
is defined at the module level.  
The MSCAN occupies 64 bytes in the memory space. The base address of the MSCAN module is  
determined at the MCU level when the MCU is defined. The register decode map is fixed and begins at the  
first address of the module address offset.  
Table 14-1 shows the individual registers associated with the MSCAN and their relative offset from the  
base address. The detailed register descriptions follow in the order they appear in the register map.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
620  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
Table 14-1. MSCAN Memory Map  
Offset  
Address  
Access  
1
0x0000  
0x0001  
0x0002  
0x0003  
0x0004  
0x0005  
0x0006  
0x0007  
0x0008  
0x0009  
0x000A  
0x000B  
0x000C  
0x000D  
0x000E  
0x000F  
0x0010  
0x0011  
0x0012  
0x0013  
0x0014  
0x0015  
0x0016  
0x0017  
0x0018  
0x0019  
0x001A  
0x001B  
0x001C  
0x001D  
0x001E  
0x001F  
R/W  
1
R/W  
R/W  
R/W  
1
R/W  
MSCAN Transmit Buffer Selection Register (CANTBSEL)  
R/W  
1
R/W  
1
R/W  
1
R/W  
R
1
R/W  
1
R/W  
1
R/W  
MSCAN Receive Error Counter (CANRXERR)  
MSCAN Transmit Error Counter (CANTXERR)  
MSCAN Identifier Acceptance Register 0(CANIDAR0)  
MSCAN Identifier Acceptance Register 1(CANIDAR1)  
MSCAN Identifier Acceptance Register 2 (CANIDAR2)  
MSCAN Identifier Acceptance Register 3 (CANIDAR3)  
MSCAN Identifier Mask Register 0 (CANIDMR0)  
MSCAN Identifier Mask Register 1 (CANIDMR1)  
MSCAN Identifier Mask Register 2 (CANIDMR2)  
MSCAN Identifier Mask Register 3 (CANIDMR3)  
MSCAN Identifier Acceptance Register 4 (CANIDAR4)  
MSCAN Identifier Acceptance Register 5 (CANIDAR5)  
MSCAN Identifier Acceptance Register 6 (CANIDAR6)  
MSCAN Identifier Acceptance Register 7 (CANIDAR7)  
MSCAN Identifier Mask Register 4 (CANIDMR4)  
MSCAN Identifier Mask Register 5 (CANIDMR5)  
MSCAN Identifier Mask Register 6 (CANIDMR6)  
MSCAN Identifier Mask Register 7 (CANIDMR7)  
Foreground Receive Buffer (CANRXFG)  
R
R
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
2
0x0020  
R
-0x002F  
2
0x0030  
Foreground Transmit Buffer (CANTXFG)  
R /W  
-0x003F  
1
2
Refer to detailed register description for write access restrictions on per bit basis.  
Reserved bits and unused bits within the TX- and RX-buffers (CANTXFG, CANRXFG) will be read  
as “x”, because of RAM-based implementation.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
621  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
14.3.2 Register Descriptions  
This section describes in detail all the registers and register bits in the MSCAN module. Each description  
includes a standard register diagram with an associated figure number. Details of register bit and field  
function follow the register diagrams, in bit order. All bits of all registers in this module are completely  
synchronous to internal clocks during a register read.  
14.3.2.1 MSCAN Control Register 0 (CANCTL0)  
The CANCTL0 register provides various control bits of the MSCAN module as described below.  
Module Base + 0x0000  
7
6
5
4
3
2
1
0
R
W
RXACT  
SYNCH  
RXFRM  
CSWAI  
TIME  
WUPE  
SLPRQ  
INITRQ  
Reset:  
0
0
0
0
0
0
0
1
= Unimplemented  
Figure 14-3. MSCAN Control Register 0 (CANCTL0)  
NOTE  
The CANCTL0 register, except WUPE, INITRQ, and SLPRQ, is held in the  
reset state when the initialization mode is active (INITRQ = 1 and  
INITAK = 1). This register is writable again as soon as the initialization  
mode is exited (INITRQ = 0 and INITAK = 0).  
Read: Anytime  
Write: Anytime when out of initialization mode; exceptions are read-only RXACT and SYNCH, RXFRM  
(which is set by the module only), and INITRQ (which is also writable in initialization mode).  
Table 14-2. CANCTL0 Register Field Descriptions  
Field  
Description  
7
Received Frame Flag — This bit is read and clear only. It is set when a receiver has received a valid message  
correctly, independently of the filter configuration. After it is set, it remains set until cleared by software or reset.  
Clearing is done by writing a 1. Writing a 0 is ignored. This bit is not valid in loopback mode.  
0 No valid message was received since last clearing this flag  
1
RXFRM  
1 A valid message was received since last clearing of this flag  
6
RXACT  
controlled by the receiver front end. This bit is not valid in loopback mode.  
2
0 MSCAN is transmitting or idle  
2
1 MSCAN is receiving a message (including when arbitration is lost)  
5
CAN Stops in Wait Mode — Enabling this bit allows for lower power consumption in wait mode by disabling all  
the clocks at the CPU bus interface to the MSCAN module.  
3
CSWAI  
0 The module is not affected during wait mode  
1 The module ceases to be clocked during wait mode  
4
Synchronized Status — This read-only flag indicates whether the MSCAN is synchronized to the CAN bus and  
able to participate in the communication process. It is set and cleared by the MSCAN.  
0 MSCAN is not synchronized to the CAN bus  
SYNCH  
1 MSCAN is synchronized to the CAN bus  
MC9S12XDP512 Data Sheet, Rev. 2.11  
622  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
Table 14-2. CANCTL0 Register Field Descriptions (continued)  
Field  
Description  
3
Timer Enable — This bit activates an internal 16-bit wide free running timer which is clocked by the bit clock rate.  
active TX/RX buffer. As soon as a message is acknowledged on the CAN bus, the time stamp will be written to  
the highest bytes (0x000E, 0x000F) in the appropriate buffer (see Section 14.3.3, “Programmer’s Model of  
Message Storage”). The internal timer is reset (all bits set to 0) when disabled. This bit is held low in initialization  
mode.  
TIME  
0 Disable internal MSCAN timer  
2
Wake-Up Enable — This configuration bit allows the MSCAN to restart from sleep mode when traffic on CAN is  
detected (see Section 14.4.6.4, “MSCAN Sleep Mode”).  
4
WUPE  
0 Wake-up disabled — The MSCAN ignores traffic on CAN  
1
Sleep Mode Request — This bit requests the MSCAN to enter sleep mode, which is an internal power saving  
mode (see Section 14.4.6.4, “MSCAN Sleep Mode”). The sleep mode request is serviced when the CAN bus is  
idle, i.e., the module is not receiving a message and all transmit buffers are empty. The module indicates entry  
to sleep mode by setting SLPAK = 1 (see Section 14.3.2.2, “MSCAN Control Register 1 (CANCTL1)”). Sleep  
mode will be active until SLPRQ is cleared by the CPU or, depending on the setting of WUPE, the MSCAN  
detects activity on the CAN bus and clears SLPRQ itself.  
5
SLPRQ  
0 Running — The MSCAN functions normally  
0
Initialization Mode Request — When this bit is set by the CPU, the MSCAN skips to initialization mode (see  
synchronization to the CAN bus is lost. The module indicates entry to initialization mode by setting INITAK = 1  
(Section 14.3.2.2, “MSCAN Control Register 1 (CANCTL1)”).  
6,7  
INITRQ  
8
9
The following registers enter their hard reset state and restore their default values: CANCTL0 , CANRFLG ,  
10  
CANRIER , CANTFLG, CANTIER, CANTARQ, CANTAAK, and CANTBSEL.  
The registers CANCTL1, CANBTR0, CANBTR1, CANIDAC, CANIDAR0-7, and CANIDMR0-7 can only be  
written by the CPU when the MSCAN is in initialization mode (INITRQ = 1 and INITAK = 1). The values of the  
error counters are not affected by initialization mode.  
When this bit is cleared by the CPU, the MSCAN restarts and then tries to synchronize to the CAN bus. If the  
MSCAN is not in bus-off state, it synchronizes after 11 consecutive recessive bits on the CAN bus; if the MSCAN  
is in bus-off state, it continues to wait for 128 occurrences of 11 consecutive recessive bits.  
Writing to otherbits in CANCTL0, CANRFLG, CANRIER, CANTFLG, or CANTIER must be done only after  
initialization mode is exited, which is INITRQ = 0 and INITAK = 0.  
0 Normal operation  
1 MSCAN in initialization mode  
1
2
The MSCAN must be in normal mode for this bit to become set.  
In order to protect from accidentally violating the CAN protocol, the TXCAN pin is immediately forced to a recessive state when  
the CPU enters wait (CSWAI = 1) or stop mode (see Section 14.4.6.2, “Operation in Wait Mode” and Section 14.4.6.3,  
The CPU has to make sure that the WUPE register and the WUPIE wake-up interrupt enable register (see Section 14.3.2.6,  
“MSCAN Receiver Interrupt Enable Register (CANRIER)) is enabled, if the recovery mechanism from stop or wait is required.  
The CPU cannot clear SLPRQ before the MSCAN has entered sleep mode (SLPRQ = 1 and SLPAK = 1).  
The CPU cannot clear INITRQ before the MSCAN has entered initialization mode (INITRQ = 1 and INITAK = 1).  
In order to protect from accidentally violating the CAN protocol, the TXCAN pin is immediately forced to a recessive state when  
the initialization mode is requested by the CPU. Thus, the recommended procedure is to bring the MSCAN into sleep mode  
(SLPRQ = 1 and SLPAK = 1) before requesting initialization mode.  
Not including WUPE, INITRQ, and SLPRQ.  
TSTAT1 and TSTAT0 are not affected by initialization mode.  
RSTAT1 and RSTAT0 are not affected by initialization mode.  
4
5
6
7
8
9
10  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
623  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
14.3.2.2 MSCAN Control Register 1 (CANCTL1)  
The CANCTL1 register provides various control bits and handshake status information of the MSCAN  
module as described below.  
Module Base 0x0001  
+
7
6
5
4
3
2
1
0
R
W
SLPAK  
INITAK  
CANE  
CLKSRC  
LOOPB  
LISTEN  
BORM  
WUPM  
Reset:  
0
0
0
1
0
0
0
1
= Unimplemented  
Figure 14-4. MSCAN Control Register 1 (CANCTL1)  
Read: Anytime  
Write: Anytime when INITRQ = 1 and INITAK = 1, except CANE which is write once in normal and  
anytime in special system operation modes when the MSCAN is in initialization mode (INITRQ = 1 and  
INITAK = 1).  
Table 14-3. CANCTL1 Register Field Descriptions  
Field  
Description  
7
MSCAN Enable  
CANE  
0 MSCAN module is disabled  
1 MSCAN module is enabled  
6
MSCAN Clock Source — This bit defines the clock source for the MSCAN module (only for systems with a clock  
generation module; Section 14.4.3.2, “Clock System,and Section Figure 14-42., “MSCAN Clocking Scheme,).  
0 MSCAN clock source is the oscillator clock  
CLKSRC  
1 MSCAN clock source is the bus clock  
5
Loopback Self Test Mode — When this bit is set, the MSCAN performs an internal loopback which can be used  
for self test operation. The bit stream output of the transmitter is fed back to the receiver internally. The RXCAN  
input pin is ignored and the TXCAN output goes to the recessive state (logic 1). The MSCAN behaves as it does  
normally when transmitting and treats its own transmitted message as a message received from a remote node.  
In this state, the MSCAN ignores the bit sent during the ACK slot in the CAN frame acknowledge field to ensure  
proper reception of its own message. Both transmit and receive interrupts are generated.  
0 Loopback self test disabled  
LOOPB  
1 Loopback self test enabled  
4
Listen Only Mode — This bit configures the MSCAN as a CAN bus monitor. When LISTEN is set, all valid CAN  
messages with matching ID are received, but no acknowledgement or error frames are sent out (see  
Section 14.4.5.4, “Listen-Only Mode”). In addition, the error counters are frozen. Listen only mode supports  
applications which require “hot plugging” or throughput analysis. The MSCAN is unable to transmit any  
messages when listen only mode is active.  
LISTEN  
0 Normal operation  
1 Listen only mode activated  
3
Bus-Off Recovery Mode — This bits configures the bus-off state recovery mode of the MSCAN. Refer to  
Section 14.5.2, “Bus-Off Recovery,” for details.  
BORM  
0 Automatic bus-off recovery (see Bosch CAN 2.0A/B protocol specification)  
1 Bus-off recovery upon user request  
MC9S12XDP512 Data Sheet, Rev. 2.11  
624  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
Table 14-3. CANCTL1 Register Field Descriptions (continued)  
Field  
Description  
2
Wake-Up Mode — If WUPE in CANCTL0 is enabled, this bit defines whether the integrated low-pass filter is  
applied to protect the MSCAN from spurious wake-up (see Section 14.4.6.4, “MSCAN Sleep Mode”).  
0 MSCAN wakes up the CPU after any recessive to dominant edge on the CAN bus  
WUPM  
1 MSCAN wakes up the CPU only in case of a dominant pulse on the CAN bus that has a length of T  
wup  
1
Sleep Mode Acknowledge — This flag indicates whether the MSCAN module has entered sleep mode (see  
Section 14.4.6.4, “MSCAN Sleep Mode”). It is used as a handshake flag for the SLPRQ sleep mode request.  
Sleep mode is active when SLPRQ = 1 and SLPAK = 1. Depending on the setting of WUPE, the MSCAN will  
clear the flag if it detects activity on the CAN bus while in sleep mode.  
SLPAK  
0 Running — The MSCAN operates normally  
1 Sleep mode active — The MSCAN has entered sleep mode  
0
Initialization Mode Acknowledge — This flag indicates whether the MSCAN module is in initialization mode  
(see Section 14.4.6.5, “MSCAN Initialization Mode”). It is used as a handshake flag for the INITRQ initialization  
mode request. Initialization mode is active when INITRQ = 1 and INITAK = 1. The registers CANCTL1,  
CANBTR0, CANBTR1, CANIDAC, CANIDAR0–CANIDAR7, and CANIDMR0–CANIDMR7 can be written only by  
the CPU when the MSCAN is in initialization mode.  
INITAK  
0 Running — The MSCAN operates normally  
1 Initialization mode active — The MSCAN has entered initialization mode  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
625  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
14.3.2.3 MSCAN Bus Timing Register 0 (CANBTR0)  
The CANBTR0 register configures various CAN bus timing parameters of the MSCAN module.  
Module Base + 0x0002  
7
6
5
4
3
2
1
0
R
W
SJW1  
SJW0  
BRP5  
BRP4  
BRP3  
BRP2  
BRP1  
BRP0  
Reset:  
0
0
0
0
0
0
0
0
Figure 14-5. MSCAN Bus Timing Register 0 (CANBTR0)  
Read: Anytime  
Write: Anytime in initialization mode (INITRQ = 1 and INITAK = 1)  
Table 14-4. CANBTR0 Register Field Descriptions  
Field  
Description  
7:6  
SJW[1:0]  
Synchronization Jump Width — The synchronization jump width defines the maximum number of time quanta  
(Tq) clock cycles a bit can be shortened or lengthened to achieve resynchronization to data transitions on the  
CAN bus (see Table 14-5).  
5:0  
Baud Rate Prescaler — These bits determine the time quanta (Tq) clock which is used to build up the bit timing  
BRP[5:0]  
(see Table 14-6).  
Table 14-5. Synchronization Jump Width  
SJW1  
SJW0  
Synchronization Jump Width  
0
0
1
1
0
1
0
1
1 Tq clock cycle  
2 Tq clock cycles  
3 Tq clock cycles  
4 Tq clock cycles  
Table 14-6. Baud Rate Prescaler  
BRP5  
BRP4  
BRP3  
BRP2  
BRP1  
BRP0  
Prescaler value (P)  
0
0
0
0
:
0
0
0
0
:
0
0
0
0
:
0
0
0
0
:
0
0
1
1
:
0
1
0
1
:
1
2
3
4
:
1
1
1
1
1
1
64  
MC9S12XDP512 Data Sheet, Rev. 2.11  
626  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
14.3.2.4 MSCAN Bus Timing Register 1 (CANBTR1)  
The CANBTR1 register configures various CAN bus timing parameters of the MSCAN module.  
Module Base + 0x0003  
7
6
5
4
3
2
1
0
R
W
SAMP  
TSEG22  
TSEG21  
TSEG20  
TSEG13  
TSEG12  
TSEG11  
TSEG10  
Reset:  
0
0
0
0
0
0
0
0
Figure 14-6. MSCAN Bus Timing Register 1 (CANBTR1)  
Read: Anytime  
Write: Anytime in initialization mode (INITRQ = 1 and INITAK = 1)  
Table 14-7. CANBTR1 Register Field Descriptions  
Field  
Description  
7
Sampling — This bit determines the number of CAN bus samples taken per bit time.  
SAMP  
0 One sample per bit.  
1 Three samples per bit .  
1
If SAMP = 0, the resulting bit value is equal to the value of the single bit positioned at the sample point. If  
SAMP = 1, the resulting bit value is determined by using majority rule on the three total samples. For higher bit  
rates, it is recommended that only one sample is taken per bit time (SAMP = 0).  
6:4  
Time Segment 2 — Time segments within the bit time fix the number of clock cycles per bit time and the location  
TSEG2[2:0] of the sample point (see Figure 14-43). Time segment 2 (TSEG2) values are programmable as shown in  
Table 14-8.  
3:0  
Time Segment 1 — Time segments within the bit time fix the number of clock cycles per bit time and the location  
TSEG1[3:0] of the sample point (see Figure 14-43). Time segment 1 (TSEG1) values are programmable as shown in  
Table 14-9.  
1
In this case, PHASE_SEG1 must be at least 2 time quanta (Tq).  
Table 14-8. Time Segment 2 Values  
TSEG22  
TSEG21  
TSEG20  
Time Segment 2  
1
0
0
:
0
0
:
0
1
:
1 Tq clock cycle  
2 Tq clock cycles  
:
1
1
1
1
0
1
7 Tq clock cycles  
8 Tq clock cycles  
1
This setting is not valid. Please refer to Table 14-36 for valid settings.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
627  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
Table 14-9. Time Segment 1 Values  
TSEG13  
TSEG12  
TSEG11  
TSEG10  
Time segment 1  
1
0
0
0
0
:
0
0
0
0
:
0
0
1
1
:
0
1
0
1
:
1 Tq clock cycle  
1
2 Tq clock cycles  
3 Tq clock cycles  
1
4 Tq clock cycles  
:
1
1
1
1
1
1
0
1
15 Tq clock cycles  
16 Tq clock cycles  
1
This setting is not valid. Please refer to Table 14-36 for valid settings.  
The bit time is determined by the oscillator frequency, the baud rate prescaler, and the number of time  
quanta (Tq) clock cycles per bit (as shown in Table 14-8 and Table 14-9).  
Eqn. 14-1  
(Prescaler value)  
-----------------------------------------------------  
f
Bit Time=  
• (1 + TimeSegment1 + TimeSegment2)  
CANCLK  
14.3.2.5 MSCAN Receiver Flag Register (CANRFLG)  
A flag can be cleared only by software (writing a 1 to the corresponding bit position) when the condition  
which caused the setting is no longer valid. Every flag has an associated interrupt enable bit in the  
CANRIER register.  
Module Base + 0x0004  
7
6
5
4
3
2
1
0
R
W
RSTAT1  
RSTAT0  
TSTAT1  
TSTAT0  
WUPIF  
CSCIF  
OVRIF  
RXF  
Reset:  
0
0
0
0
0
0
0
0
= Unimplemented  
Figure 14-7. MSCAN Receiver Flag Register (CANRFLG)  
NOTE  
1
The CANRFLG register is held in the reset state when the initialization  
mode is active (INITRQ = 1 and INITAK = 1). This register is writable again  
as soon as the initialization mode is exited (INITRQ = 0 and INITAK = 0).  
Read: Anytime  
Write: Anytime when out of initialization mode, except RSTAT[1:0] and TSTAT[1:0] flags which are  
read-only; write of 1 clears flag; write of 0 is ignored.  
1. The RSTAT[1:0], TSTAT[1:0] bits are not affected by initialization mode.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
628  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
Table 14-10. CANRFLG Register Field Descriptions  
Field  
7
Wake-Up Interrupt Flag — If the MSCAN detects CAN bus activity while in sleep mode (see Section 14.4.6.4,  
“MSCAN Sleep Mode,) and WUPE = 1 in CANTCTL0 (see Section 14.3.2.1, “MSCAN Control Register 0  
(CANCTL0)”), the module will set WUPIF. If not masked, a wake-up interrupt is pending while this flag is set.  
WUPIF  
0
1
No wake-up activity observed while in sleep mode  
MSCAN detected activity on the CAN bus and requested wake-up  
6
CAN Status Change Interrupt Flag — This flag is set when the MSCAN changes its current CAN bus status  
4-bit (RSTAT[1:0], TSTAT[1:0]) status register, which is split into separate sections for TEC/REC, informs the  
system on the actual CAN bus status (see Section 14.3.2.6, “MSCAN Receiver Interrupt Enable Register  
(CANRIER)”). If not masked, an error interrupt is pending while this flag is set. CSCIF provides a blocking  
interrupt. That guarantees that the receiver/transmitter status bits (RSTAT/TSTAT) are only updated when no CAN  
status change interrupt is pending. If the TECs/RECs change their current value after the CSCIF is asserted,  
which would cause an additional state change in the RSTAT/TSTAT bits, these bits keep their status until the  
current CSCIF interrupt is cleared again.  
CSCIF  
0
1
No change in CAN bus status occurred since last interrupt  
MSCAN changed current CAN bus status  
5:4  
Receiver Status Bits — The values of the error counters control the actual CAN bus status of the MSCAN. As  
RSTAT[1:0] soon as the status change interrupt flag (CSCIF) is set, these bits indicate the appropriate receiver related CAN  
bus status of the MSCAN. The coding for the bits RSTAT1, RSTAT0 is:  
00  
01  
10  
11  
RxOK: 0 receive error counter 96  
RxWRN: 96 < receive error counter 127  
RxERR: 127 < receive error counter  
1
Bus-off : transmit error counter > 255  
3:2  
Transmitter Status Bits — The values of the error counters control the actual CAN bus status of the MSCAN.  
TSTAT[1:0] As soon as the status change interrupt flag (CSCIF) is set, these bits indicate the appropriate transmitter related  
CAN bus status of the MSCAN. The coding for the bits TSTAT1, TSTAT0 is:  
00  
01  
10  
11  
TxOK: 0 transmit error counter 96  
TxWRN: 96 < transmit error counter 127  
TxERR: 127 < transmit error counter 255  
Bus-Off: transmit error counter > 255  
1
Overrun Interrupt Flag — This flag is set when a data overrun condition occurs. If not masked, an error interrupt  
OVRIF  
is pending while this flag is set.  
0
1
No data overrun condition  
A data overrun detected  
0
RXF  
Receive Buffer Full Flag — RXF is set by the MSCAN when a new message is shifted in the receiver FIFO. This  
flag indicates whether the shifted buffer is loaded with a correctly received message (matching identifier,  
matching cyclic redundancy code (CRC) and no other errors detected). After the CPU has read that message  
from the RxFG buffer in the receiver FIFO, the RXF flag must be cleared to release the buffer. A set RXF flag  
prohibits the shifting of the next FIFO entry into the foreground buffer (RxFG). If not masked, a receive interrupt  
is pending while this flag is set.  
2
0
1
No new message available within the RxFG  
The receiver FIFO is not empty. A new message is available in the RxFG  
1
2
Redundant Information for the most critical CAN bus status which is “bus-off”. This only occurs if the Tx error counter exceeds  
a number of 255 errors. Bus-off affects the receiver state. As soon as the transmitter leaves its bus-off state the receiver state  
skips to RxOK too. Refer also to TSTAT[1:0] coding in this register.  
To ensure data integrity, do not read the receive buffer registers while the RXF flag is cleared. For MCUs with dual CPUs,  
reading the receive buffer registers while the RXF flag is cleared may result in a CPU fault condition.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
629  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
14.3.2.6 MSCAN Receiver Interrupt Enable Register (CANRIER)  
This register contains the interrupt enable bits for the interrupt flags described in the CANRFLG register.  
Module Base + 0x0005  
7
6
5
4
3
2
1
0
R
W
WUPIE  
CSCIE  
RSTATE1  
RSTATE0  
TSTATE1  
TSTATE0  
OVRIE  
RXFIE  
Reset:  
0
0
0
0
0
0
0
0
Figure 14-8. MSCAN Receiver Interrupt Enable Register (CANRIER)  
NOTE  
The CANRIER register is held in the reset state when the initialization mode  
is active (INITRQ=1 and INITAK=1). This register is writable when not in  
initialization mode (INITRQ=0 and INITAK=0).  
The RSTATE[1:0], TSTATE[1:0] bits are not affected by initialization  
mode.  
Read: Anytime  
Write: Anytime when not in initialization mode  
Table 14-11. CANRIER Register Field Descriptions  
Field  
Description  
7
Wake-Up Interrupt Enable  
1
WUPIE  
0
No interrupt request is generated from this event.  
1
A wake-up event causes a Wake-Up interrupt request.  
6
CAN Status Change Interrupt Enable  
CSCIE  
0
No interrupt request is generated from this event.  
1
A CAN Status Change event causes an error interrupt request.  
5:4  
Receiver Status Change Enable — These RSTAT enable bits control the sensitivity level in which receiver state  
RSTATE[1:0] changes are causing CSCIF interrupts. Independent of the chosen sensitivity level the RSTAT ags continue to  
indicate the actual receiver state and are only updated if no CSCIF interrupt is pending.  
00 Do not generate any CSCIF interrupt caused by receiver state changes.  
01 Generate CSCIF interrupt only if the receiver enters or leaves “bus-off” state. Discard other receiver state  
changes for generating CSCIF interrupt.  
2
10 Generate CSCIF interrupt only if the receiver enters or leaves “RxErr” or “bus-off” state. Discard other  
receiver state changes for generating CSCIF interrupt.  
11 Generate CSCIF interrupt on all state changes.  
3:2  
Transmitter Status Change Enable — These TSTAT enable bits control the sensitivity level in which transmitter  
TSTATE[1:0] state changes are causing CSCIF interrupts. Independent of the chosen sensitivity level, the TSTAT ags  
continue to indicate the actual transmitter state and are only updated if no CSCIF interrupt is pending.  
00 Do not generate any CSCIF interrupt caused by transmitter state changes.  
01 Generate CSCIF interrupt only if the transmitter enters or leaves “bus-off” state. Discard other transmitter  
state changes for generating CSCIF interrupt.  
10 Generate CSCIF interrupt only if the transmitter enters or leaves “TxErr” or “bus-off” state. Discard other  
transmitter state changes for generating CSCIF interrupt.  
11 Generate CSCIF interrupt on all state changes.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
630  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
Table 14-11. CANRIER Register Field Descriptions (continued)  
Field  
Description  
1
Overrun Interrupt Enable  
OVRIE  
0
No interrupt request is generated from this event.  
1
An overrun event causes an error interrupt request.  
0
Receiver Full Interrupt Enable  
RXFIE  
0
1
A receive buffer full (successful message reception) event causes a receiver interrupt request.  
1
2
WUPIE and WUPE (see Section 14.3.2.1, “MSCAN Control Register 0 (CANCTL0)”) must both be enabled if the recovery  
mechanism from stop or wait is required.  
Bus-off state is defined by the CAN standard (see Bosch CAN 2.0A/B protocol specification: for only transmitters. Because the  
only possible state change for the transmitter from bus-off to TxOK also forces the receiver to skip its current state to RxOK,  
the coding of the RXSTAT[1:0] flags define an additional bus-off state for the receiver (see Section 14.3.2.5, “MSCAN Receiver  
Flag Register (CANRFLG)”).  
14.3.2.7 MSCAN Transmitter Flag Register (CANTFLG)  
The transmit buffer empty flags each have an associated interrupt enable bit in the CANTIER register.  
Module Base + 0x0006  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
TXE2  
TXE1  
TXE0  
Reset:  
0
0
0
0
0
1
1
1
= Unimplemented  
Figure 14-9. MSCAN Transmitter Flag Register (CANTFLG)  
NOTE  
The CANTFLG register is held in the reset state when the initialization  
mode is active (INITRQ = 1 and INITAK = 1). This register is writable when  
not in initialization mode (INITRQ = 0 and INITAK = 0).  
Read: Anytime  
Write: Anytime for TXEx flags when not in initialization mode; write of 1 clears flag, write of 0 is ignored  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
631  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
Table 14-12. CANTFLG Register Field Descriptions  
Field  
Description  
2:0  
TXE[2:0]  
Transmitter Buffer Empty — This flag indicates that the associated transmit message buffer is empty, and thus  
not scheduled for transmission. The CPU must clear the flag after a message is set up in the transmit buffer and  
the MSCAN when the transmission request is successfully aborted due to a pending abort request (see  
Section 14.3.2.9, “MSCAN Transmitter Message Abort Request Register (CANTARQ)”). If not masked, a  
is cleared (see Section 14.3.2.9, “MSCAN Transmitter Message Abort Request Register (CANTARQ)”).  
When listen-mode is active (see Section 14.3.2.2, “MSCAN Control Register 1 (CANCTL1)”) the TXEx flags  
cannot be cleared and no transmission is started.  
Read and write accesses to the transmit buffer will be blocked, if the corresponding TXEx bit is cleared  
(TXEx = 0) and the buffer is scheduled for transmission.  
0 The associated message buffer is full (loaded with a message due for transmission)  
1 The associated message buffer is empty (not scheduled)  
14.3.2.8 MSCAN Transmitter Interrupt Enable Register (CANTIER)  
This register contains the interrupt enable bits for the transmit buffer empty interrupt flags.  
Module Base + 0x0007  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
TXEIE2  
TXEIE1  
TXEIE0  
Reset:  
0
0
0
0
0
0
0
0
= Unimplemented  
Figure 14-10. MSCAN Transmitter Interrupt Enable Register (CANTIER)  
NOTE  
The CANTIER register is held in the reset state when the initialization mode  
is active (INITRQ = 1 and INITAK = 1). This register is writable when not  
in initialization mode (INITRQ = 0 and INITAK = 0).  
Read: Anytime  
Write: Anytime when not in initialization mode  
Table 14-13. CANTIER Register Field Descriptions  
Field  
Description  
2:0  
Transmitter Empty Interrupt Enable  
TXEIE[2:0] 0 No interrupt request is generated from this event.  
1 A transmitter empty (transmit buffer available for transmission) event causes a transmitter empty interrupt  
request.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
632  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
14.3.2.9 MSCAN Transmitter Message Abort Request Register (CANTARQ)  
The CANTARQ register allows abort request of queued messages as described below.  
Module Base + 0x0008  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
ABTRQ2  
ABTRQ1  
ABTRQ0  
Reset:  
0
0
0
0
0
0
0
0
= Unimplemented  
Figure 14-11. MSCAN Transmitter Message Abort Request Register (CANTARQ)  
NOTE  
The CANTARQ register is held in the reset state when the initialization  
mode is active (INITRQ = 1 and INITAK = 1). This register is writable when  
not in initialization mode (INITRQ = 0 and INITAK = 0).  
Read: Anytime  
Write: Anytime when not in initialization mode  
Table 14-14. CANTARQ Register Field Descriptions  
Field  
Description  
Abort Request — The CPU sets the ABTRQx bit to request that a scheduled message buffer (TXEx = 0) be  
2:0  
Section 14.3.2.7, “MSCAN Transmitter Flag Register (CANTFLG)”) and abort acknowledge flags (ABTAK, see  
Section 14.3.2.10, “MSCAN Transmitter Message Abort Acknowledge Register (CANTAAK)”) are set and a  
transmit interrupt occurs if enabled. The CPU cannot reset ABTRQx. ABTRQx is reset whenever the associated  
TXE flag is set.  
0 No abort request  
1 Abort request pending  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
633  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
14.3.2.10 MSCAN Transmitter Message Abort Acknowledge Register (CANTAAK)  
The CANTAAK register indicates the successful abort of a queued message, if requested by the  
appropriate bits in the CANTARQ register.  
Module Base + 0x0009  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
ABTAK2  
ABTAK1  
ABTAK0  
Reset:  
0
0
0
0
0
0
0
0
= Unimplemented  
Figure 14-12. MSCAN Transmitter Message Abort Acknowledge Register (CANTAAK)  
NOTE  
The CANTAAK register is held in the reset state when the initialization  
mode is active (INITRQ = 1 and INITAK = 1).  
Read: Anytime  
Write: Unimplemented for ABTAKx flags  
Table 14-15. CANTAAK Register Field Descriptions  
Field  
Description  
Abort Acknowledge — This flag acknowledges that a message was aborted due to a pending abort request  
2:0  
ABTAK[2:0] from the CPU. After a particular message buffer is flagged empty, this flag can be used by the application  
software to identify whether the message was aborted successfully or was sent anyway. The ABTAKx flag is  
cleared whenever the corresponding TXE flag is cleared.  
0 The message was not aborted.  
1 The message was aborted.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
634  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
14.3.2.11 MSCAN Transmit Buffer Selection Register (CANTBSEL)  
The CANTBSEL register allows the selection of the actual transmit message buffer, which then will be  
accessible in the CANTXFG register space.  
Module Base + 0x000A  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
TX2  
TX1  
TX0  
Reset:  
0
0
0
0
0
0
0
0
= Unimplemented  
Figure 14-13. MSCAN Transmit Buffer Selection Register (CANTBSEL)  
NOTE  
The CANTBSEL register is held in the reset state when the initialization  
mode is active (INITRQ = 1 and INITAK=1). This register is writable when  
not in initialization mode (INITRQ = 0 and INITAK = 0).  
Read: Find the lowest ordered bit set to 1, all other bits will be read as 0  
Write: Anytime when not in initialization mode  
Table 14-16. CANTBSEL Register Field Descriptions  
Field  
Description  
2:0  
TX[2:0]  
Transmit Buffer Select — The lowest numbered bit places the respective transmit buffer in the CANTXFG  
register space (e.g., TX1 = 1 and TX0 = 1 selects transmit buffer TX0; TX1 = 1 and TX0 = 0 selects transmit  
buffer TX1). Read and write accesses to the selected transmit buffer will be blocked, if the corresponding TXEx  
bit is cleared and the buffer is scheduled for transmission (see Section 14.3.2.7, “MSCAN Transmitter Flag  
Register (CANTFLG)”).  
0 The associated message buffer is deselected  
1 The associated message buffer is selected, if lowest numbered bit  
The following gives a short programming example of the usage of the CANTBSEL register:  
To get the next available transmit buffer, application software must read the CANTFLG register and write  
this value back into the CANTBSEL register. In this example Tx buffers TX1 and TX2 are available. The  
value read from CANTFLG is therefore 0b0000_0110. When writing this value back to CANTBSEL, the  
Tx buffer TX1 is selected in the CANTXFG because the lowest numbered bit set to 1 is at bit position 1.  
Reading back this value out of CANTBSEL results in 0b0000_0010, because only the lowest numbered  
bit position set to 1 is presented. This mechanism eases the application software the selection of the next  
available Tx buffer.  
LDD CANTFLG; value read is 0b0000_0110  
STD CANTBSEL; value written is 0b0000_0110  
LDD CANTBSEL; value read is 0b0000_0010  
If all transmit message buffers are deselected, no accesses are allowed to the CANTXFG registers.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
635  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
14.3.2.12 MSCAN Identifier Acceptance Control Register (CANIDAC)  
The CANIDAC register is used for identifier acceptance control as described below.  
Module Base + 0x000B  
7
6
5
4
3
2
1
0
R
W
0
0
0
IDHIT2  
IDHIT1  
IDHIT0  
IDAM1  
IDAM0  
Reset:  
0
0
0
0
0
0
0
0
= Unimplemented  
Figure 14-14. MSCAN Identifier Acceptance Control Register (CANIDAC)  
Read: Anytime  
Write: Anytime in initialization mode (INITRQ = 1 and INITAK = 1), except bits IDHITx, which are  
read-only  
Table 14-17. CANIDAC Register Field Descriptions  
Field  
Description  
5:4  
Identifier Acceptance Mode — The CPU sets these flags to define the identifier acceptance filter organization  
IDAM[1:0] (see Section 14.4.3, “Identifier Acceptance Filter”). Table 14-18 summarizes the different settings. In filter closed  
2:0  
Identifier Acceptance Hit Indicator — The MSCAN sets these flags to indicate an identifier acceptance hit (see  
IDHIT[2:0] Section 14.4.3, “Identifier Acceptance Filter”). Table 14-19 summarizes the different settings.  
Table 14-18. Identifier Acceptance Mode Settings  
IDAM1  
IDAM0  
Identifier Acceptance Mode  
0
0
1
1
0
1
0
1
Two 32-bit acceptance filters  
Four 16-bit acceptance filters  
Eight 8-bit acceptance filters  
Filter closed  
Table 14-19. Identifier Acceptance Hit Indication  
IDHIT2  
IDHIT1  
IDHIT0  
Identifier Acceptance Hit  
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Filter 0 hit  
Filter 1 hit  
Filter 2 hit  
Filter 3 hit  
Filter 4 hit  
Filter 5 hit  
Filter 6 hit  
Filter 7 hit  
MC9S12XDP512 Data Sheet, Rev. 2.11  
636  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
The IDHITx indicators are always related to the message in the foreground buffer (RxFG). When a  
message gets shifted into the foreground buffer of the receiver FIFO the indicators are updated as well.  
14.3.2.13 MSCAN Reserved Register  
This register is reserved for factory testing of the MSCAN module and is not available in normal system  
operation modes.  
Module Base + 0x000C  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
0
0
Reset:  
0
0
0
0
0
0
0
0
= Unimplemented  
Figure 14-15. MSCAN Reserved Register  
Read: Always read 0x0000 in normal system operation modes  
Write: Unimplemented in normal system operation modes  
NOTE  
Writing to this register when in special modes can alter the MSCAN  
functionality.  
14.3.2.14 MSCAN Miscellaneous Register (CANMISC)  
This register provides additional features.  
Module Base + 0x000D  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
0
BOHOLD  
Reset:  
0
0
0
0
0
0
0
0
= Unimplemented  
Figure 14-16. MSCAN Miscellaneous Register (CANMISC)  
Read: Anytime  
Write: Anytime; write of ‘1’ clears flag; write of ‘0’ ignored  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
637  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
Table 14-20. CANMISC Register Field Descriptions  
Field  
Description  
0
BOHOLD (CANCTL1), this bit indicates whether the module has entered the bus-off state. Clearing this bit requests the  
recovery from bus-off. Refer to Section 14.5.2, “Bus-Off Recovery,” for details.  
0 Module is not bus-off or recovery has been requested by user in bus-off state  
1 Module is bus-off and holds this state until user request  
14.3.2.15 MSCAN Receive Error Counter (CANRXERR)  
This register reflects the status of the MSCAN receive error counter.  
Module Base + 0x000E  
7
6
5
4
3
2
1
0
R
W
RXERR7  
RXERR6  
RXERR5  
RXERR4  
RXERR3  
RXERR2  
RXERR1  
RXERR0  
Reset:  
0
0
0
0
0
0
0
0
= Unimplemented  
Figure 14-17. MSCAN Receive Error Counter (CANRXERR)  
Read: Only when in sleep mode (SLPRQ = 1 and SLPAK = 1) or initialization mode (INITRQ = 1 and  
INITAK = 1)  
Write: Unimplemented  
NOTE  
Reading this register when in any other mode other than sleep or  
initialization mode may return an incorrect value. For MCUs with dual  
CPUs, this may result in a CPU fault condition.  
Writing to this register when in special modes can alter the MSCAN  
functionality.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
638  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
14.3.2.16 MSCAN Transmit Error Counter (CANTXERR)  
This register reflects the status of the MSCAN transmit error counter.  
Module Base + 0x000F  
7
6
5
4
3
2
1
0
R
W
TXERR7  
TXERR6  
TXERR5  
TXERR4  
TXERR3  
TXERR2  
TXERR1  
TXERR0  
Reset:  
0
0
0
0
0
0
0
0
= Unimplemented  
Figure 14-18. MSCAN Transmit Error Counter (CANTXERR)  
Read: Only when in sleep mode (SLPRQ = 1 and SLPAK = 1) or initialization mode (INITRQ = 1 and  
INITAK = 1)  
Write: Unimplemented  
NOTE  
Reading this register when in any other mode other than sleep or  
initialization mode, may return an incorrect value. For MCUs with dual  
CPUs, this may result in a CPU fault condition.  
Writing to this register when in special modes can alter the MSCAN  
functionality.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
639  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
14.3.2.17 MSCAN Identifier Acceptance Registers (CANIDAR0-7)  
On reception, each message is written into the background receive buffer. The CPU is only signalled to  
read the message if it passes the criteria in the identifier acceptance and identifier mask registers  
(accepted); otherwise, the message is overwritten by the next message (dropped).  
“Identifier Registers (IDR0–IDR3)”) of incoming messages in a bit by bit manner (see Section 14.4.3,  
“Identifier Acceptance Filter”).  
For extended identifiers, all four acceptance and mask registers are applied. For standard identifiers, only  
the first two (CANIDAR0/1, CANIDMR0/1) are applied.  
Module Base + 0x0010 (CANIDAR0)  
0x0011 (CANIDAR1)  
0x0012 (CANIDAR2)  
0x0013 (CANIDAR3)  
7
6
5
4
3
2
1
0
R
W
AC7  
AC6  
AC5  
AC4  
AC3  
AC2  
AC1  
AC0  
Reset  
0
0
0
0
0
0
0
0
7
6
5
4
3
2
1
0
R
W
AC7  
AC6  
AC5  
AC4  
AC3  
AC2  
AC1  
AC0  
Reset  
0
0
0
0
0
0
0
0
7
6
5
4
3
2
1
0
R
W
AC7  
AC6  
AC5  
AC4  
AC3  
AC2  
AC1  
AC0  
Reset  
0
0
0
0
0
0
0
0
7
6
5
4
3
2
1
0
R
W
AC7  
AC6  
AC5  
AC4  
AC3  
AC2  
AC1  
AC0  
Reset  
0
0
0
0
0
0
0
0
Figure 14-19. MSCAN Identifier Acceptance Registers (First Bank) — CANIDAR0–CANIDAR3  
Read: Anytime  
Write: Anytime in initialization mode (INITRQ = 1 and INITAK = 1)  
Table 14-21. CANIDAR0–CANIDAR3 Register Field Descriptions  
Field  
Description  
7:0  
AC[7:0]  
Acceptance Code Bits — AC[7:0] comprise a user-defined sequence of bits with which the corresponding bits  
of the related identifier register (IDRn) of the receive message buffer are compared. The result of this comparison  
is then masked with the corresponding identifier mask register.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
640  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
Module Base + 0x0018 (CANIDAR4)  
0x0019 (CANIDAR5)  
0x001A (CANIDAR6)  
0x001B (CANIDAR7)  
7
6
5
4
3
2
1
0
R
W
AC7  
AC6  
AC5  
AC4  
AC3  
AC2  
AC1  
AC0  
Reset  
0
0
0
0
0
0
0
0
7
6
5
4
3
2
1
0
R
W
AC7  
AC6  
AC5  
AC4  
AC3  
AC2  
AC1  
AC0  
Reset  
0
0
0
0
0
0
0
0
7
6
5
4
3
2
1
0
R
W
AC7  
AC6  
AC5  
AC4  
AC3  
AC2  
AC1  
AC0  
Reset  
0
0
0
0
0
0
0
0
7
6
5
4
3
2
1
0
R
W
AC7  
AC6  
AC5  
AC4  
AC3  
AC2  
AC1  
AC0  
Reset  
0
0
0
0
0
0
0
0
Figure 14-20. MSCAN Identifier Acceptance Registers (Second Bank) — CANIDAR4–CANIDAR7  
Read: Anytime  
Write: Anytime in initialization mode (INITRQ = 1 and INITAK = 1)  
Table 14-22. CANIDAR4–CANIDAR7 Register Field Descriptions  
Field  
Description  
7:0  
AC[7:0]  
Acceptance Code Bits — AC[7:0] comprise a user-defined sequence of bits with which the corresponding bits  
of the related identifier register (IDRn) of the receive message buffer are compared. The result of this comparison  
is then masked with the corresponding identifier mask register.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
641  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
14.3.2.18 MSCAN Identifier Mask Registers (CANIDMR0–CANIDMR7)  
The identifier mask register specifies which of the corresponding bits in the identifier acceptance register  
are relevant for acceptance filtering. To receive standard identifiers in 32 bit filter mode, it is required to  
program the last three bits (AM[2:0]) in the mask registers CANIDMR1 and CANIDMR5 to “don’t care.”  
To receive standard identifiers in 16 bit filter mode, it is required to program the last three bits (AM[2:0])  
in the mask registers CANIDMR1, CANIDMR3, CANIDMR5, and CANIDMR7 to “don’t care.”  
Module Base + 0x0014 (CANIDMR0)  
0x0015 (CANIDMR1)  
0x0016 (CANIDMR2)  
0x0017 (CANIDMR3)  
7
6
5
4
3
2
1
0
R
W
AM7  
AM6  
AM5  
AM4  
AM3  
AM2  
AM1  
AM0  
Reset  
0
0
0
0
0
0
0
0
7
6
5
4
3
2
1
0
R
W
AM7  
AM6  
AM5  
AM4  
AM3  
AM2  
AM1  
AM0  
Reset  
0
0
0
0
0
0
0
0
7
6
5
4
3
2
1
0
R
W
AM7  
AM6  
AM5  
AM4  
AM3  
AM2  
AM1  
AM0  
Reset  
0
0
0
0
0
0
0
0
7
6
5
4
3
2
1
0
R
W
AM7  
AM6  
AM5  
AM4  
AM3  
AM2  
AM1  
AM0  
Reset  
0
0
0
0
0
0
0
0
Figure 14-21. MSCAN Identifier Mask Registers (First Bank) — CANIDMR0–CANIDMR3  
Read: Anytime  
Write: Anytime in initialization mode (INITRQ = 1 and INITAK = 1)  
Table 14-23. CANIDMR0–CANIDMR3 Register Field Descriptions  
Field  
Description  
7:0  
AM[7:0]  
Acceptance Mask Bits — If a particular bit in this register is cleared, this indicates that the corresponding bit in  
the identifier acceptance register must be the same as its identifier bit before a match is detected. The message  
is accepted if all such bits match. If a bit is set, it indicates that the state of the corresponding bit in the identifier  
acceptance register does not affect whether or not the message is accepted.  
0 Match corresponding acceptance code register and identifier bits  
1 Ignore corresponding acceptance code register bit  
MC9S12XDP512 Data Sheet, Rev. 2.11  
642  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
Module Base + 0x001C (CANIDMR4)  
0x001D (CANIDMR5)  
0x001E (CANIDMR6)  
0x001F (CANIDMR7)  
7
6
5
4
3
2
1
0
R
W
AM7  
AM6  
AM5  
AM4  
AM3  
AM2  
AM1  
AM0  
Reset  
0
0
0
0
0
0
0
0
7
6
5
4
3
2
1
0
R
W
AM7  
AM6  
AM5  
AM4  
AM3  
AM2  
AM1  
AM0  
Reset  
0
0
0
0
0
0
0
0
7
6
5
4
3
2
1
0
R
W
AM7  
AM6  
AM5  
AM4  
AM3  
AM2  
AM1  
AM0  
Reset  
0
0
0
0
0
0
0
0
7
6
5
4
3
2
1
0
R
W
AM7  
AM6  
AM5  
AM4  
AM3  
AM2  
AM1  
AM0  
Reset  
0
0
0
0
0
0
0
0
Figure 14-22. MSCAN Identifier Mask Registers (Second Bank) — CANIDMR4–CANIDMR7  
Read: Anytime  
Write: Anytime in initialization mode (INITRQ = 1 and INITAK = 1)  
Table 14-24. CANIDMR4–CANIDMR7 Register Field Descriptions  
Field  
Description  
7:0  
AM[7:0]  
Acceptance Mask Bits — If a particular bit in this register is cleared, this indicates that the corresponding bit in  
the identifier acceptance register must be the same as its identifier bit before a match is detected. The message  
is accepted if all such bits match. If a bit is set, it indicates that the state of the corresponding bit in the identifier  
acceptance register does not affect whether or not the message is accepted.  
0 Match corresponding acceptance code register and identifier bits  
1 Ignore corresponding acceptance code register bit  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
643  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
14.3.3 Programmer’s Model of Message Storage  
The following section details the organization of the receive and transmit message buffers and the  
associated control registers.  
To simplify the programmer interface, the receive and transmit message buffers have the same outline.  
Each message buffer allocates 16 bytes in the memory map containing a 13 byte data structure.  
An additional transmit buffer priority register (TBPR) is defined for the transmit buffers. Within the last  
two bytes of this memory map, the MSCAN stores a special 16-bit time stamp, which is sampled from an  
transmit and receiver buffers, if the TIME bit is set (see Section 14.3.2.1, “MSCAN Control Register 0  
(CANCTL0)”).  
The time stamp register is written by the MSCAN. The CPU can only read these registers.  
Table 14-25. Message Buffer Organization  
Offset  
Address  
Register  
Access  
0x00X0  
0x00X1  
0x00X2  
0x00X3  
0x00X4  
0x00X5  
0x00X6  
0x00X7  
0x00X8  
0x00X9  
0x00XA  
0x00XB  
0x00XC  
0x00XD  
0x00XE  
0x00XF  
Identifier Register 0  
Identifier Register 1  
Identifier Register 2  
Identifier Register 3  
Data Segment Register 0  
Data Segment Register 1  
Data Segment Register 2  
Data Segment Register 3  
Data Segment Register 4  
Data Segment Register 5  
Data Segment Register 6  
Data Segment Register 7  
Data Length Register  
1
Transmit Buffer Priority Register  
2
Time Stamp Register (High Byte)  
3
Time Stamp Register (Low Byte)  
1
2
Not applicable for receive buffers  
Read-only for CPU  
Read-only for CPU  
Figure 14-23 shows the common 13-byte data structure of receive and transmit buffers for extended  
identifiers. The mapping of standard identifiers into the IDR registers is shown in Figure 14-24.  
1
All bits of the receive and transmit buffers are ‘x’ out of reset because of RAM-based implementation .  
All reserved or unused bits of the receive and transmit buffers always read ‘x’.  
1. Exception: The transmit priority registers are 0 out of reset.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
644  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
Register  
Name  
Bit 7  
6
5
4
3
2
1
Bit0  
R
0x00X0  
IDR0  
ID28  
ID27  
ID26  
ID25  
ID24  
ID23  
ID22  
ID21  
W
R
0x00X1  
IDR1  
ID20  
ID14  
ID6  
ID19  
ID13  
ID5  
ID18  
ID12  
ID4  
SRR (=1)  
ID11  
ID3  
IDE (=1)  
ID10  
ID2  
ID17  
ID9  
ID16  
ID8  
ID15  
ID7  
W
R
0x00X2  
IDR2  
W
R
0x00X3  
IDR3  
ID1  
ID0  
RTR  
DB0  
DB0  
DB0  
DB0  
DB0  
DB0  
DB0  
DB0  
DLC0  
W
R
0x00X4  
DSR0  
DB7  
DB7  
DB7  
DB7  
DB7  
DB7  
DB7  
DB7  
DB6  
DB6  
DB6  
DB6  
DB6  
DB6  
DB6  
DB6  
DB5  
DB5  
DB5  
DB5  
DB5  
DB5  
DB5  
DB5  
DB4  
DB4  
DB4  
DB4  
DB4  
DB4  
DB4  
DB4  
DB3  
DB3  
DB3  
DB3  
DB3  
DB3  
DB3  
DB3  
DLC3  
DB2  
DB2  
DB2  
DB2  
DB2  
DB2  
DB2  
DB2  
DLC2  
DB1  
DB1  
DB1  
DB1  
DB1  
DB1  
DB1  
DB1  
DLC1  
W
R
0x00X5  
DSR1  
W
R
0x00X6  
DSR2  
W
R
0x00X7  
DSR3  
W
R
0x00X8  
DSR4  
W
R
0x00X9  
DSR5  
W
R
0x00XA  
DSR6  
W
R
0x00XB  
DSR7  
W
R
0x00XC  
DLR  
W
= Unused, always read ‘x’  
Figure 14-23. Receive/Transmit Message Buffer — Extended Identifier Mapping  
Section 14.3.2.11, “MSCAN Transmit Buffer Selection Register (CANTBSEL)”). For receive buffers,  
only when RXF flag is set (see Section 14.3.2.5, “MSCAN Receiver Flag Register (CANRFLG)”).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
645  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
Flag Register (CANTFLG)”) and the corresponding transmit buffer is selected in CANTBSEL (see  
Section 14.3.2.11, “MSCAN Transmit Buffer Selection Register (CANTBSEL)”). Unimplemented for  
receive buffers.  
Reset: Undefined (0x00XX) because of RAM-based implementation  
Register  
Name  
Bit 7  
6
5
4
3
2
1
Bit 0  
R
IDR0  
0x00X0  
ID10  
ID9  
ID8  
ID7  
ID6  
ID5  
ID4  
ID3  
W
R
IDR1  
0x00X1  
ID2  
ID1  
ID0  
RTR  
IDE (=0)  
W
R
IDR2  
0x00X2  
W
R
IDR3  
0x00X3  
W
= Unused, always read ‘x’  
Figure 14-24. Receive/Transmit Message Buffer — Standard Identifier Mapping  
14.3.3.1 Identifier Registers (IDR0–IDR3)  
The identifier registers for an extended format identifier consist of a total of 32 bits; ID[28:0], SRR, IDE,  
and RTR bits. The identifier registers for a standard format identifier consist of a total of 13 bits; ID[10:0],  
RTR, and IDE bits.  
14.3.3.1.1  
IDR0–IDR3 for Extended Identifier Mapping  
Module Base + 0x00X1  
7
6
5
4
3
2
1
0
R
ID28  
W
ID27  
ID26  
ID25  
ID24  
ID23  
ID22  
ID21  
Reset:  
x
x
x
x
x
x
x
x
Figure 14-25. Identifier Register 0 (IDR0) — Extended Identifier Mapping  
Table 14-26. IDR0 Register Field Descriptions — Extended  
Description  
Field  
7:0  
ID[28:21]  
Extended Format Identifier — The identifiers consist of 29 bits (ID[28:0]) for the extended format. ID28 is the  
most significant bit and is transmitted first on the CAN bus during the arbitration procedure. The priority of an  
identifier is defined to be highest for the smallest binary number.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
646  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
Module Base + 0x00X1  
7
6
5
4
3
2
1
0
R
ID20  
W
ID19  
ID18  
SRR (=1)  
IDE (=1)  
ID17  
ID16  
ID15  
Reset:  
x
x
x
x
x
x
x
x
Figure 14-26. Identifier Register 1 (IDR1) — Extended Identifier Mapping  
Table 14-27. IDR1 Register Field Descriptions — Extended  
Description  
Field  
7:5  
ID[20:18]  
Extended Format Identifier — The identifiers consist of 29 bits (ID[28:0]) for the extended format. ID28 is the  
most significant bit and is transmitted first on the CAN bus during the arbitration procedure. The priority of an  
identifier is defined to be highest for the smallest binary number.  
4
Substitute Remote Request — This fixed recessive bit is used only in extended format. It must be set to 1 by  
SRR  
the user for transmission buffers and is stored as received on the CAN bus for receive buffers.  
3
IDE  
ID Extended — This flag indicates whether the extended or standard identifier format is applied in this buffer. In  
the case of a receive buffer, the flag is set as received and indicates to the CPU how to process the buffer  
identifier registers. In the case of a transmit buffer, the flag indicates to the MSCAN what type of identifier to send.  
0 Standard format (11 bit)  
1 Extended format (29 bit)  
2:0  
ID[17:15]  
Extended Format Identifier — The identifiers consist of 29 bits (ID[28:0]) for the extended format. ID28 is the  
most significant bit and is transmitted first on the CAN bus during the arbitration procedure. The priority of an  
identifier is defined to be highest for the smallest binary number.  
Module Base + 0x00X2  
7
6
5
4
3
2
1
0
R
ID14  
W
ID13  
ID12  
ID11  
ID10  
ID9  
ID8  
ID7  
Reset:  
x
x
x
x
x
x
x
x
Figure 14-27. Identifier Register 2 (IDR2) — Extended Identifier Mapping  
Table 14-28. IDR2 Register Field Descriptions — Extended  
Description  
Field  
7:0  
ID[14:7]  
Extended Format Identifier — The identifiers consist of 29 bits (ID[28:0]) for the extended format. ID28 is the  
most significant bit and is transmitted first on the CAN bus during the arbitration procedure. The priority of an  
identifier is defined to be highest for the smallest binary number.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
647  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
Module Base + 0x00X3  
7
6
5
4
3
2
1
0
R
W
ID6  
ID5  
ID4  
ID3  
ID2  
ID1  
ID0  
RTR  
Reset:  
x
x
x
x
x
x
x
x
Figure 14-28. Identifier Register 3 (IDR3) — Extended Identifier Mapping  
Table 14-29. IDR3 Register Field Descriptions — Extended  
Description  
Field  
7:1  
ID[6:0]  
Extended Format Identifier — The identifiers consist of 29 bits (ID[28:0]) for the extended format. ID28 is the  
most significant bit and is transmitted first on the CAN bus during the arbitration procedure. The priority of an  
identifier is defined to be highest for the smallest binary number.  
0
Remote Transmission Request — This flag reflects the status of the remote transmission request bit in the  
RTR  
CAN frame. In the case of a receive buffer, it indicates the status of the received frame and supports the  
transmission of an answering frame in software. In the case of a transmit buffer, this flag defines the setting of  
the RTR bit to be sent.  
0 Data frame  
1 Remote frame  
14.3.3.1.2  
IDR0–IDR3 for Standard Identifier Mapping  
Module Base + 0x00X0  
7
6
5
4
3
2
1
0
R
ID10  
W
ID9  
ID8  
ID7  
ID6  
ID5  
ID4  
ID3  
Reset:  
x
x
x
x
x
x
x
x
Figure 14-29. Identifier Register 0 — Standard Mapping  
Table 14-30. IDR0 Register Field Descriptions — Standard  
Description  
Field  
7:0  
ID[10:3]  
Standard Format Identifier — The identifiers consist of 11 bits (ID[10:0]) for the standard format. ID10 is the  
most significant bit and is transmitted first on the CAN bus during the arbitration procedure. The priority of an  
identifier is defined to be highest for the smallest binary number. See also ID bits in Table 14-31.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
648  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
Module Base + 0x00X1  
7
6
5
4
3
2
1
0
R
ID2  
W
ID1  
ID0  
RTR  
IDE (=0)  
Reset:  
x
x
x
x
x
x
x
x
= Unused; always read ‘x’  
Figure 14-30. Identifier Register 1 — Standard Mapping  
Table 14-31. IDR1 Register Field Descriptions  
Description  
Field  
7:5  
ID[2:0]  
Standard Format Identifier — The identifiers consist of 11 bits (ID[10:0]) for the standard format. ID10 is the  
most significant bit and is transmitted first on the CAN bus during the arbitration procedure. The priority of an  
identifier is defined to be highest for the smallest binary number. See also ID bits in Table 14-30.  
4
Remote Transmission Request — This flag reflects the status of the Remote Transmission Request bit in the  
RTR  
CAN frame. In the case of a receive buffer, it indicates the status of the received frame and supports the  
transmission of an answering frame in software. In the case of a transmit buffer, this flag defines the setting of  
the RTR bit to be sent.  
0 Data frame  
1 Remote frame  
3
IDE  
ID Extended — This flag indicates whether the extended or standard identifier format is applied in this buffer. In  
the case of a receive buffer, the flag is set as received and indicates to the CPU how to process the buffer  
identifier registers. In the case of a transmit buffer, the flag indicates to the MSCAN what type of identifier to send.  
0 Standard format (11 bit)  
1 Extended format (29 bit)  
Module Base + 0x00X2  
7
6
5
4
3
2
1
0
R
W
Reset:  
x
x
x
x
x
x
x
x
= Unused; always read ‘x’  
Figure 14-31. Identifier Register 2 — Standard Mapping  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
649  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
Module Base + 0x00X3  
7
6
5
4
3
2
1
0
R
W
Reset:  
x
x
x
x
x
x
x
x
= Unused; always read ‘x’  
Figure 14-32. Identifier Register 3 — Standard Mapping  
14.3.3.2 Data Segment Registers (DSR0-7)  
The eight data segment registers, each with bits DB[7:0], contain the data to be transmitted or received.  
The number of bytes to be transmitted or received is determined by the data length code in the  
corresponding DLR register.  
Module Base + 0x0004 (DSR0)  
0x0005 (DSR1)  
0x0006 (DSR2)  
0x0007 (DSR3)  
0x0008 (DSR4)  
0x0009 (DSR5)  
0x000A (DSR6)  
0x000B (DSR7)  
7
6
5
4
3
2
1
0
R
W
DB7  
DB6  
DB5  
DB4  
DB3  
DB2  
DB1  
DB0  
Reset:  
x
x
x
x
x
x
x
x
Figure 14-33. Data Segment Registers (DSR0–DSR7) — Extended Identifier Mapping  
Table 14-32. DSR0–DSR7 Register Field Descriptions  
Field  
Description  
7:0  
Data bits 7:0  
DB[7:0]  
MC9S12XDP512 Data Sheet, Rev. 2.11  
650  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
14.3.3.3 Data Length Register (DLR)  
This register keeps the data length field of the CAN frame.  
Module Base + 0x00XB  
7
6
5
4
3
2
1
0
R
W
DLC3  
DLC2  
DLC1  
DLC0  
Reset:  
x
x
x
x
x
x
x
x
= Unused; always read “x”  
Figure 14-34. Data Length Register (DLR) — Extended Identifier Mapping  
Table 14-33. DLR Register Field Descriptions  
Description  
Field  
3:0  
DLC[3:0]  
Data Length Code Bits — The data length code contains the number of bytes (data byte count) of the respective  
message. During the transmission of a remote frame, the data length code is transmitted as programmed while  
the number of transmitted data bytes is always 0. The data byte count ranges from 0 to 8 for a data frame.  
Table 14-34 shows the effect of setting the DLC bits.  
Table 14-34. Data Length Codes  
Data Length Code  
Data Byte  
Count  
DLC3  
DLC2  
DLC1  
DLC0  
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
2
3
4
5
6
7
8
14.3.3.4 Transmit Buffer Priority Register (TBPR)  
This register defines the local priority of the associated message buffer. The local priority is used for the  
internal prioritization process of the MSCAN and is defined to be highest for the smallest binary number.  
The MSCAN implements the following internal prioritization mechanisms:  
All transmission buffers with a cleared TXEx flag participate in the prioritization immediately  
before the SOF (start of frame) is sent.  
The transmission buffer with the lowest local priority field wins the prioritization.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
651  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
In cases of more than one buffer having the same lowest priority, the message buffer with the lower index  
number wins.  
Module Base + 0xXXXD  
7
6
5
4
3
2
1
0
R
W
PRIO7  
PRIO6  
PRIO5  
PRIO4  
PRIO3  
PRIO2  
PRIO1  
PRIO0  
Reset:  
0
0
0
0
0
0
0
0
(CANTFLG)”) and the corresponding transmit buffer is selected in CANTBSEL (see Section 14.3.2.11,  
“MSCAN Transmit Buffer Selection Register (CANTBSEL)”).  
(CANTFLG)”) and the corresponding transmit buffer is selected in CANTBSEL (see Section 14.3.2.11,  
“MSCAN Transmit Buffer Selection Register (CANTBSEL)”).  
14.3.3.5 Time Stamp Register (TSRH–TSRL)  
active transmit or receive buffer as soon as a message has been acknowledged on the CAN bus (see  
Section 14.3.2.1, “MSCAN Control Register 0 (CANCTL0)”). The time stamp is written on the bit sample  
point for the recessive bit of the ACK delimiter in the CAN frame. In case of a transmission, the CPU can  
only read the time stamp after the respective transmit buffer has been flagged empty.  
The timer value, which is used for stamping, is taken from a free running internal CAN bit clock. A timer  
overrun is not indicated by the MSCAN. The timer is reset (all bits set to 0) during initialization mode. The  
CPU can only read the time stamp registers.  
Module Base + 0xXXXE  
7
6
5
4
3
2
1
0
R
W
TSR15  
TSR14  
TSR13  
TSR12  
TSR11  
TSR10  
TSR9  
TSR8  
Reset:  
x
x
x
x
x
x
x
x
Figure 14-36. Time Stamp Register — High Byte (TSRH)  
Module Base + 0xXXXF  
7
6
5
4
3
2
1
0
R
W
TSR7  
TSR6  
TSR5  
TSR4  
TSR3  
TSR2  
TSR1  
TSR0  
Reset:  
x
x
x
x
x
x
x
x
Figure 14-37. Time Stamp Register — Low Byte (TSRL)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
652  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
(CANTFLG)”) and the corresponding transmit buffer is selected in CANTBSEL (see Section 14.3.2.11,  
“MSCAN Transmit Buffer Selection Register (CANTBSEL)”).  
Write: Unimplemented  
14.4 Functional Description  
14.4.1 General  
This section provides a complete functional description of the MSCAN. It describes each of the features  
and modes listed in the introduction.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
653  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
14.4.2 Message Storage  
CAN  
Receive / Transmit  
Engine  
CPU12  
Memory Mapped  
I/O  
Rx0  
Rx1  
Rx2  
MSCAN  
Rx3  
Rx4  
RXF  
CPU bus  
Receiver  
TXE0  
Tx0  
PRIO  
TXE1  
Tx1  
CPU bus  
MSCAN  
PRIO  
TXE2  
Tx2  
PRIO  
Transmitter  
Figure 14-38. User Model for Message Buffer Organization  
MSCAN facilitates a sophisticated message storage system which addresses the requirements of a broad  
range of network applications.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
654  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
14.4.2.1 Message Transmit Background  
Modern application layer software is built upon two fundamental assumptions:  
Any CAN node is able to send out a stream of scheduled messages without releasing the CAN bus  
between the two messages. Such nodes arbitrate for the CAN bus immediately after sending the  
previous message and only release the CAN bus in case of lost arbitration.  
The internal message queue within any CAN node is organized such that the highest priority  
message is sent out first, if more than one message is ready to be sent.  
The behavior described in the bullets above cannot be achieved with a single transmit buffer. That buffer  
must be reloaded immediately after the previous message is sent. This loading process lasts a finite amount  
of time and must be completed within the inter-frame sequence (IFS) to be able to send an uninterrupted  
stream of messages. Even if this is feasible for limited CAN bus speeds, it requires that the CPU reacts  
with short latencies to the transmit interrupt.  
A double buffer scheme de-couples the reloading of the transmit buffer from the actual message sending  
and, therefore, reduces the reactiveness requirements of the CPU. Problems can arise if the sending of a  
message is finished while the CPU re-loads the second buffer. No buffer would then be ready for  
transmission, and the CAN bus would be released.  
At least three transmit buffers are required to meet the first of the above requirements under all  
circumstances. The MSCAN has three transmit buffers.  
The second requirement calls for some sort of internal prioritization which the MSCAN implements with  
the “local priority” concept described in Section 14.4.2.2, “Transmit Structures.”  
14.4.2.2 Transmit Structures  
The MSCAN triple transmit buffer scheme optimizes real-time performance by allowing multiple  
messages to be set up in advance. The three buffers are arranged as shown in Figure 14-38.  
Section 14.3.3, “Programmer’s Model of Message Storage”). An additional Section 14.3.3.4, “Transmit  
“Transmit Buffer Priority Register (TBPR)”). The remaining two bytes are used for time stamping of a  
message, if required (see Section 14.3.3.5, “Time Stamp Register (TSRH–TSRL)”).  
To transmit a message, the CPU must identify an available transmit buffer, which is indicated by a set  
(CANTFLG)”). If a transmit buffer is available, the CPU must set a pointer to this buffer by writing to the  
(CANTBSEL)”). This makes the respective buffer accessible within the CANTXFG address space (see  
Section 14.3.3, “Programmer’s Model of Message Storage”). The algorithmic feature associated with the  
CANTBSEL register simplifies the transmit buffer selection. In addition, this scheme makes the handler  
software simpler because only one address area is applicable for the transmit process, and the required  
address space is minimized.  
The CPU then stores the identifier, the control bits, and the data content into one of the transmit buffers.  
Finally, the buffer is flagged as ready for transmission by clearing the associated TXE flag.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
655  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
The MSCAN then schedules the message for transmission and signals the successful transmission of the  
buffer by setting the associated TXE flag. A transmit interrupt (see Section 14.4.8.2, “Transmit Interrupt”)  
1
is generated when TXEx is set and can be used to drive the application software to re-load the buffer.  
If more than one buffer is scheduled for transmission when the CAN bus becomes available for arbitration,  
the MSCAN uses the local priority setting of the three buffers to determine the prioritization. For this  
purpose, every transmit buffer has an 8-bit local priority field (PRIO). The application software programs  
this field when the message is set up. The local priority reflects the priority of this particular message  
relative to the set of messages being transmitted from this node. The lowest binary value of the PRIO field  
is defined to be the highest priority. The internal scheduling process takes place whenever the MSCAN  
arbitrates for the CAN bus. This is also the case after the occurrence of a transmission error.  
When a high priority message is scheduled by the application software, it may become necessary to abort  
transmission cannot be aborted, the user must request the abort by setting the corresponding abort request  
bit (ABTRQ) (see Section 14.3.2.9, “MSCAN Transmitter Message Abort Request Register  
(CANTARQ)”.) The MSCAN then grants the request, if possible, by:  
1. Setting the corresponding abort acknowledge flag (ABTAK) in the CANTAAK register.  
2. Setting the associated TXE flag to release the buffer.  
3. Generating a transmit interrupt. The transmit interrupt handler software can determine from the  
setting of the ABTAK flag whether the message was aborted (ABTAK = 1) or sent (ABTAK = 0).  
14.4.2.3 Receive Structures  
The received messages are stored in a five stage input FIFO. The five message buffers are alternately  
mapped into a single memory area (see Figure 14-38). The background receive buffer (RxBG) is  
exclusively associated with the MSCAN, but the foreground receive buffer (RxFG) is addressable by the  
CPU (see Figure 14-38). This scheme simplifies the handler software because only one address area is  
applicable for the receive process.  
All receive buffers have a size of 15 bytes to store the CAN control bits, the identifier (standard or  
extended), the data contents, and a time stamp, if enabled (see Section 14.3.3, “Programmer’s Model of  
Message Storage”)[<f-helvetica><st-bold>1.].  
The receiver full flag (RXF) (see Section 14.3.2.5, “MSCAN Receiver Flag Register (CANRFLG)”)  
signals the status of the foreground receive buffer. When the buffer contains a correctly received message  
with a matching identifier, this flag is set.  
On reception, each message is checked to see whether it passes the filter (see Section 14.4.3, “Identifier  
2
valid message, the MSCAN shifts the content of RxBG into the receiver FIFO , sets the RXF flag, and  
3
generates a receive interrupt (see Section 14.4.8.3, “Receive Interrupt”) to the CPU . The user’s receive  
handler must read the received message from the RxFG and then reset the RXF flag to acknowledge the  
interrupt and to release the foreground buffer. A new message, which can follow immediately after the IFS  
1. The transmit interrupt occurs only if not masked. A polling scheme can be applied on TXEx also.  
2. Only if the RXF flag is not set.  
3. The receive interrupt occurs only if not masked. A polling scheme can be applied on RXF also.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
656  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
field of the CAN frame, is received into the next available RxBG. If the MSCAN receives an invalid  
message in its RxBG (wrong identifier, transmission errors, etc.) the actual contents of the buffer will be  
over-written by the next message. The buffer will then not be shifted into the FIFO.  
When the MSCAN module is transmitting, the MSCAN receives its own transmitted messages into the  
background receive buffer, RxBG, but does not shift it into the receiver FIFO, generate a receive interrupt,  
or acknowledge its own messages on the CAN bus. The exception to this rule is in loopback mode (see  
Section 14.3.2.2, “MSCAN Control Register 1 (CANCTL1)”) where the MSCAN treats its own messages  
exactly like all other incoming messages. The MSCAN receives its own transmitted messages in the event  
that it loses arbitration. If arbitration is lost, the MSCAN must be prepared to become a receiver.  
An overrun condition occurs when all receive message buffers in the FIFO are filled with correctly  
received messages with accepted identifiers and another message is correctly received from the CAN bus  
with an accepted identifier. The latter message is discarded and an error interrupt with overrun indication  
is generated if enabled (see Section 14.4.8.5, “Error Interrupt”). The MSCAN remains able to transmit  
messages while the receiver FIFO being filled, but all incoming messages are discarded. As soon as a  
receive buffer in the FIFO is available again, new valid messages will be accepted.  
The MSCAN identifier acceptance registers (see Section 14.3.2.12, “MSCAN Identifier Acceptance  
(ID[10:0] or ID[28:0]). Any of these bits can be marked ‘don’t care’ in the MSCAN identifier mask  
registers (see Section 14.3.2.18, “MSCAN Identifier Mask Registers (CANIDMR0–CANIDMR7)”).  
A filter hit is indicated to the application software by a set receive buffer full flag (RXF = 1) and three bits  
in the CANIDAC register (see Section 14.3.2.12, “MSCAN Identifier Acceptance Control Register  
(CANIDAC)”). These identifier hit flags (IDHIT[2:0]) clearly identify the filter section that caused the  
acceptance. They simplify the application software’s task to identify the cause of the receiver interrupt. If  
more than one hit occurs (two or more filters match), the lower hit has priority.  
A very flexible programmable generic identifier acceptance filter has been introduced to reduce the CPU  
interrupt loading. The filter is programmable to operate in four different modes (see Bosch CAN 2.0A/B  
protocol specification):  
Two identifier acceptance filters, each to be applied to:  
— The full 29 bits of the extended identifier and to the following bits of the CAN 2.0B frame:  
– Remote transmission request (RTR)  
– Identifier extension (IDE)  
– Substitute remote request (SRR)  
1
— The 11 bits of the standard identifier plus the RTR and IDE bits of the CAN 2.0A/B messages .  
This mode implements two filters for a full length CAN 2.0B compliant extended identifier.  
Figure 14-39 shows how the first 32-bit filter bank (CANIDAR0–CANIDAR3,  
CANIDMR0–CANIDMR3) produces a filter 0 hit. Similarly, the second filter bank  
(CANIDAR4–CANIDAR7, CANIDMR4–CANIDMR7) produces a filter 1 hit.  
1.Although this mode can be used for standard identifiers, it is recommended to use the four or eight identifier acceptance  
filters for standard identifiers  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
657  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
Four identifier acceptance filters, each to be applied to  
— a) the 14 most significant bits of the extended identifier plus the SRR and IDE bits of CAN 2.0B  
messages or  
— b) the 11 bits of the standard identifier, the RTR and IDE bits of CAN 2.0A/B messages.  
Figure 14-40 shows how the first 32-bit filter bank (CANIDAR0–CANIDA3,  
CANIDMR0–3CANIDMR) produces filter 0 and 1 hits. Similarly, the second filter bank  
(CANIDAR4–CANIDAR7, CANIDMR4–CANIDMR7) produces filter 2 and 3 hits.  
Eight identifier acceptance filters, each to be applied to the first 8 bits of the identifier. This mode  
implements eight independent filters for the first 8 bits of a CAN 2.0A/B compliant standard  
identifier or a CAN 2.0B compliant extended identifier. Figure 14-41 shows how the first 32-bit  
filter bank (CANIDAR0–CANIDAR3, CANIDMR0–CANIDMR3) produces filter 0 to 3 hits.  
Similarly, the second filter bank (CANIDAR4–CANIDAR7, CANIDMR4–CANIDMR7)  
produces filter 4 to 7 hits.  
Closed filter. No CAN message is copied into the foreground buffer RxFG, and the RXF flag is  
never set.  
CAN 2.0B  
Extended Identifier  
ID28  
ID10  
IDR0  
IDR0  
ID21 ID20  
ID3 ID2  
IDR1  
IDR1  
ID15 ID14  
IDR2  
ID7 ID6  
IDR3  
RTR  
CAN 2.0A/B  
Standard Identifier  
IDE  
AM7  
AC7  
CANIDMR0  
CANIDAR0  
AM0 AM7  
AC0 AC7  
CANIDMR1  
CANIDAR1  
AM0 AM7  
AC0 AC7  
CANIDMR2  
CANIDAR2  
AM0 AM7  
AC0 AC7  
CANIDMR3  
CANIDAR3  
AM0  
AC0  
ID Accepted (Filter 0 Hit)  
Figure 14-39. 32-bit Maskable Identifier Acceptance Filter  
MC9S12XDP512 Data Sheet, Rev. 2.11  
658  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
CAN 2.0B  
Extended Identifier  
ID28  
ID10  
IDR0  
IDR0  
ID21 ID20  
ID3 ID2  
IDR1  
IDR1  
ID15 ID14  
IDE
IDR2  
ID7 ID6  
IDR3  
RTR  
CAN 2.0A/B  
Standard Identifier  
AM7  
AC7  
CANIDMR0  
CANIDAR0  
AM0 AM7  
AC0 AC7  
CANIDMR1  
CANIDAR1  
AM0  
AC0  
ID Accepted (Filter 0 Hit)  
AM7  
AC7  
CANIDMR2  
CANIDAR2  
AM0 AM7  
AC0 AC7  
CANIDMR3  
AM0  
AC0  
CANIDAR3  
ID Accepted (Filter 1 Hit)  
Figure 14-40. 16-bit Maskable Identifier Acceptance Filters  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
659  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
CAN 2.0B  
Extended Identifier ID28  
IDR0  
IDR0  
ID21 ID20  
ID3 ID2  
IDR1  
IDR1  
ID15 ID14  
IDE
IDR2  
ID7 ID6  
IDR3  
RTR  
CAN 2.0A/B  
ID10  
Standard Identifier  
AM7  
AC7  
CIDMR0  
CIDAR0  
AM0  
AC0  
ID Accepted (Filter 0 Hit)  
AM7  
AC7  
CIDMR1  
AM0  
AC0  
CIDAR1  
ID Accepted (Filter 1 Hit)  
AM7  
AC7  
CIDMR2  
AM0  
AC0  
CIDAR2  
ID Accepted (Filter 2 Hit)  
AM7  
AC7  
CIDMR3  
AM0  
AC0  
CIDAR3  
ID Accepted (Filter 3 Hit)  
Figure 14-41. 8-bit Maskable Identifier Acceptance Filters  
MC9S12XDP512 Data Sheet, Rev. 2.11  
660  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
14.4.3.1 Protocol Violation Protection  
The MSCAN protects the user from accidentally violating the CAN protocol through programming errors.  
The protection logic implements the following features:  
The receive and transmit error counters cannot be written or otherwise manipulated.  
All registers which control the configuration of the MSCAN cannot be modified while the MSCAN  
handshake bits in the CANCTL0/CANCTL1 registers (see Section 14.3.2.1, “MSCAN Control  
Register 0 (CANCTL0)”) serve as a lock to protect the following registers:  
— MSCAN control 1 register (CANCTL1)  
— MSCAN bus timing registers 0 and 1 (CANBTR0, CANBTR1)  
— MSCAN identifier acceptance control register (CANIDAC)  
— MSCAN identifier acceptance registers (CANIDAR0–CANIDAR7)  
— MSCAN identifier mask registers (CANIDMR0–CANIDMR7)  
The TXCAN pin is immediately forced to a recessive state when the MSCAN goes into the power  
down mode or initialization mode (see Section 14.4.6.6, “MSCAN Power Down Mode,” and  
Section 14.4.6.5, “MSCAN Initialization Mode”).  
The MSCAN enable bit (CANE) is writable only once in normal system operation modes, which  
provides further protection against inadvertently disabling the MSCAN.  
14.4.3.2 Clock System  
Figure 14-42 shows the structure of the MSCAN clock generation circuitry.  
MSCAN  
Bus Clock  
Time quanta clock (Tq)  
CANCLK  
Prescaler  
(1 .. 64)  
CLKSRC  
CLKSRC  
Oscillator Clock  
Figure 14-42. MSCAN Clocking Scheme  
The clock source bit (CLKSRC) in the CANCTL1 register (14.3.2.2/14-624) defines whether the internal  
CANCLK is connected to the output of a crystal oscillator (oscillator clock) or to the bus clock.  
The clock source has to be chosen such that the tight oscillator tolerance requirements (up to 0.4%) of the  
CAN protocol are met. Additionally, for high CAN bus rates (1 Mbps), a 45% to 55% duty cycle of the  
clock is required.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
661  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
If the bus clock is generated from a PLL, it is recommended to select the oscillator clock rather than the  
bus clock due to jitter considerations, especially at the faster CAN bus rates.  
For microcontrollers without a clock and reset generator (CRG), CANCLK is driven from the crystal  
oscillator (oscillator clock).  
A programmable prescaler generates the time quanta (Tq) clock from CANCLK. A time quantum is the  
atomic unit of time handled by the MSCAN.  
Eqn. 14-2  
f
CANCLK  
= -----------------------------------------------------  
Tq  
(Prescaler value)  
A bit time is subdivided into three segments as described in the Bosch CAN specification. (see  
Figure 14-43):  
SYNC_SEG: This segment has a fixed length of one time quantum. Signal edges are expected to  
happen within this section.  
Time Segment 1: This segment includes the PROP_SEG and the PHASE_SEG1 of the CAN  
standard. It can be programmed by setting the parameter TSEG1 to consist of 4 to 16 time quanta.  
Time Segment 2: This segment represents the PHASE_SEG2 of the CAN standard. It can be  
programmed by setting the TSEG2 parameter to be 2 to 8 time quanta long.  
Eqn. 14-3  
f
Tq  
Bit Rate= --------------------------------------------------------------------------------  
(number of Time Quanta)  
NRZ Signal  
Time Segment 1  
Time Segment 2  
(PHASE_SEG2)  
SYNC_SEG  
1
(PROP_SEG + PHASE_SEG1)  
4 ... 16  
2 ... 8  
8 ... 25 Time Quanta  
= 1 Bit Time  
Transmit Point  
Sample Point  
(single or triple sampling)  
Figure 14-43. Segments within the Bit Time  
MC9S12XDP512 Data Sheet, Rev. 2.11  
662  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
Table 14-35. Time Segment Syntax  
Syntax  
Description  
System expects transitions to occur on the CAN bus during this  
period.  
SYNC_SEG  
A node in transmit mode transfers a new value to the CAN bus at  
this point.  
Transmit Point  
Sample Point  
A node in receive mode samples the CAN bus at this point. If the  
three samples per bit option is selected, then this point marks the  
position of the third sample.  
The synchronization jump width (see the Bosch CAN specification for details) can be programmed in a  
range of 1 to 4 time quanta by setting the SJW parameter.  
registers (CANBTR0, CANBTR1) (see Section 14.3.2.3, “MSCAN Bus Timing Register 0 (CANBTR0)”  
and Section 14.3.2.4, “MSCAN Bus Timing Register 1 (CANBTR1)”).  
Table 14-36 gives an overview of the CAN compliant segment settings and the related parameter values.  
NOTE  
It is the user’s responsibility to ensure the bit time settings are in compliance  
with the CAN standard.  
Table 14-36. CAN Standard Compliant Bit Time Segment Settings  
Synchronization  
Time Segment 1  
TSEG1  
Time Segment 2  
TSEG2  
SJW  
Jump Width  
5 .. 10  
4 .. 11  
5 .. 12  
6 .. 13  
7 .. 14  
8 .. 15  
9 .. 16  
4 .. 9  
3 .. 10  
4 .. 11  
5 .. 12  
6 .. 13  
7 .. 14  
8 .. 15  
2
3
4
5
6
7
8
1
2
3
4
5
6
7
1 .. 2  
1 .. 3  
1 .. 4  
1 .. 4  
1 .. 4  
1 .. 4  
1 .. 4  
0 .. 1  
0 .. 2  
0 .. 3  
0 .. 3  
0 .. 3  
0 .. 3  
0 .. 3  
14.4.4 Timer Link  
The MSCAN generates an internal time stamp whenever a valid frame is received or transmitted and the  
TIME bit is enabled. Because the CAN specification defines a frame to be valid if no errors occur before  
the end of frame (EOF) field is transmitted successfully, the actual value of an internal timer is written at  
EOF to the appropriate time stamp position within the transmit buffer. For receive frames, the time stamp  
is written to the receive buffer.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
663  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
14.4.5 Modes of Operation  
14.4.5.1 Normal Modes  
The MSCAN module behaves as described within this specification in all normal system operation modes.  
14.4.5.2 Special Modes  
The MSCAN module behaves as described within this specification in all special system operation modes.  
14.4.5.3 Emulation Modes  
In all emulation modes, the MSCAN module behaves just like normal system operation modes as  
described within this specification.  
14.4.5.4 Listen-Only Mode  
In an optional CAN bus monitoring mode (listen-only), the CAN node is able to receive valid data frames  
and valid remote frames, but it sends only “recessive” bits on the CAN bus. In addition, it cannot start a  
transmision. If the MAC sub-layer is required to send a “dominant” bit (ACK bit, overload flag, or active  
error flag), the bit is rerouted internally so that the MAC sub-layer monitors this “dominant” bit, although  
the CAN bus may remain in recessive state externally.  
14.4.5.5 Security Modes  
The MSCAN module has no security features.  
14.4.6 Low-Power Options  
If the MSCAN is disabled (CANE = 0), the MSCAN clocks are stopped for power saving.  
If the MSCAN is enabled (CANE = 1), the MSCAN has two additional modes with reduced power  
consumption, compared to normal mode: sleep and power down mode. In sleep mode, power consumption  
is reduced by stopping all clocks except those to access the registers from the CPU side. In power down  
Table 14-37 summarizes the combinations of MSCAN and CPU modes. A particular combination of  
modes is entered by the given settings on the CSWAI and SLPRQ/SLPAK bits.  
For all modes, an MSCAN wake-up interrupt can occur only if the MSCAN is in sleep mode (SLPRQ = 1  
and SLPAK = 1), wake-up functionality is enabled (WUPE = 1), and the wake-up interrupt is enabled  
(WUPIE = 1).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
664  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
Table 14-37. CPU vs. MSCAN Operating Modes  
MSCAN Mode  
Reduced Power Consumption  
CPU Mode  
Normal  
Disabled  
(CANE=0)  
Sleep  
Power Down  
1
CSWAI = X  
SLPRQ = 1  
SLPAK = 1  
CSWAI = X  
SLPRQ = X  
SLPAK = X  
CSWAI = X  
RUN  
SLPRQ = 0  
SLPAK = 0  
CSWAI = 0  
SLPRQ = 0  
SLPAK = 0  
CSWAI = 0  
SLPRQ = 1  
SLPAK = 1  
CSWAI = 1  
SLPRQ = X  
SLPAK = X  
CSWAI = X  
SLPRQ = X  
SLPAK = X  
WAIT  
CSWAI = X  
SLPRQ = X  
SLPAK = X  
CSWAI = X  
SLPRQ = X  
SLPAK = X  
STOP  
1
‘X’ means don’t care.  
As shown in Table 14-37, only MSCAN sleep mode is available as low power option when the CPU is in  
run mode.  
14.4.6.2 Operation in Wait Mode  
The WAI instruction puts the MCU in a low power consumption stand-by mode. If the CSWAI bit is set,  
additional power can be saved in power down mode because the CPU clocks are stopped. After leaving  
this power down mode, the MSCAN restarts its internal controllers and enters normal mode again.  
(registers can be accessed via background debug mode). The MSCAN can also operate in any of the  
low-power modes depending on the values of the SLPRQ/SLPAK and CSWAI bits as seen in Table 14-37.  
14.4.6.3 Operation in Stop Mode  
The STOP instruction puts the MCU in a low power consumption stand-by mode. In stop mode, the  
MSCAN is set in power down mode regardless of the value of the SLPRQ/SLPAK and CSWAI bits  
Table 14-37.  
14.4.6.4 MSCAN Sleep Mode  
The CPU can request the MSCAN to enter this low power mode by asserting the SLPRQ bit in the  
CANCTL0 register. The time when the MSCAN enters sleep mode depends on a fixed synchronization  
delay and its current activity:  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
665  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
If there are one or more message buffers scheduled for transmission (TXEx = 0), the MSCAN will  
continue to transmit until all transmit message buffers are empty (TXEx = 1, transmitted  
successfully or aborted) and then goes into sleep mode.  
If the MSCAN is receiving, it continues to receive and goes into sleep mode as soon as the CAN  
bus next becomes idle.  
If the MSCAN is neither transmitting nor receiving, it immediately goes into sleep mode.  
Bus Clock Domain  
CAN Clock Domain  
SLPRQ  
Flag  
SYNC  
SYNC  
SLPRQ  
sync.  
SLPRQ  
CPU  
Sleep Request  
SLPAK  
Flag  
sync.  
SLPAK  
SLPAK  
MSCAN  
in Sleep Mode  
Figure 14-44. Sleep Request / Acknowledge Cycle  
NOTE  
The application software must avoid setting up a transmission (by clearing  
one or more TXEx flag(s)) and immediately request sleep mode (by setting  
SLPRQ). Whether the MSCAN starts transmitting or goes into sleep mode  
directly depends on the exact sequence of operations.  
If sleep mode is active, the SLPRQ and SLPAK bits are set (Figure 14-44). The application software must  
use SLPAK as a handshake indication for the request (SLPRQ) to go into sleep mode.  
When in sleep mode (SLPRQ = 1 and SLPAK = 1), the MSCAN stops its internal clocks. However, clocks  
that allow register accesses from the CPU side continue to run.  
If the MSCAN is in bus-off state, it stops counting the 128 occurrences of 11 consecutive recessive bits  
due to the stopped clocks. The TXCAN pin remains in a recessive state. If RXF = 1, the message can be  
read and RXF can be cleared. Shifting a new message into the foreground buffer of the receiver FIFO  
(RxFG) does not take place while in sleep mode.  
It is possible to access the transmit buffers and to clear the associated TXE flags. No message abort takes  
place while in sleep mode.  
If the WUPE bit in CANCLT0 is not asserted, the MSCAN will mask any activity it detects on CAN. The  
RXCAN pin is therefore held internally in a recessive state. This locks the MSCAN in sleep mode  
(Figure 14-45).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
666  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
The MSCAN is able to leave sleep mode (wake up) only when:  
CAN bus activity occurs and WUPE = 1  
or  
the CPU clears the SLPRQ bit  
NOTE  
The CPU cannot clear the SLPRQ bit before sleep mode (SLPRQ = 1 and  
SLPAK = 1) is active.  
After wake-up, the MSCAN waits for 11 consecutive recessive bits to synchronize to the CAN bus. As a  
consequence, if the MSCAN is woken-up by a CAN frame, this frame is not received.  
The receive message buffers (RxFG and RxBG) contain messages if they were received before sleep mode  
was entered. All pending actions will be executed upon wake-up; copying of RxBG into RxFG, message  
aborts and message transmissions. If the MSCAN remains in bus-off state after sleep mode was exited, it  
continues counting the 128 occurrences of 11 consecutive recessive bits.  
CAN Activity  
(CAN Activity & WUPE) | SLPRQ  
Wait  
StartUp  
for Idle  
CAN Activity  
SLPRQ  
CAN Activity &  
SLPRQ  
Sleep  
Idle  
(CAN Activity & WUPE) |  
CAN Activity  
CAN Activity &  
SLPRQ  
CAN Activity  
Tx/Rx  
Message  
Active  
CAN Activity  
Figure 14-45. Simplified State Transitions for Entering/Leaving Sleep Mode  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
667  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
14.4.6.5 MSCAN Initialization Mode  
In initialization mode, any on-going transmission or reception is immediately aborted and synchronization  
to the CAN bus is lost, potentially causing CAN protocol violations. To protect the CAN bus system from  
fatal consequences of violations, the MSCAN immediately drives the TXCAN pin into a recessive state.  
NOTE  
The user is responsible for ensuring that the MSCAN is not active when  
initialization mode is entered. The recommended procedure is to bring the  
MSCAN into sleep mode (SLPRQ = 1 and SLPAK = 1) before setting the  
INITRQ bit in the CANCTL0 register. Otherwise, the abort of an on-going  
message can cause an error condition and can impact other CAN bus  
devices.  
In initialization mode, the MSCAN is stopped. However, interface registers remain accessible. This mode  
is used to reset the CANCTL0, CANRFLG, CANRIER, CANTFLG, CANTIER, CANTARQ,  
configuration of the CANBTR0, CANBTR1 bit timing registers; CANIDAC; and the CANIDAR,  
CANIDMR message filters. See Section 14.3.2.1, “MSCAN Control Register 0 (CANCTL0),” for a  
detailed description of the initialization mode.  
Bus Clock Domain  
CAN Clock Domain  
INIT  
Flag  
SYNC  
SYNC  
INITRQ  
sync.  
INITRQ  
CPU  
Init Request  
INITAK  
Flag  
sync.  
INITAK  
INITAK  
Figure 14-46. Initialization Request/Acknowledge Cycle  
using a special handshake mechanism. This handshake causes additional synchronization delay (see  
Section Figure 14-46., “Initialization Request/Acknowledge Cycle”).  
If there is no message transfer ongoing on the CAN bus, the minimum delay will be two additional bus  
clocks and three additional CAN clocks. When all parts of the MSCAN are in initialization mode, the  
INITAK flag is set. The application software must use INITAK as a handshake indication for the request  
(INITRQ) to go into initialization mode.  
NOTE  
The CPU cannot clear INITRQ before initialization mode (INITRQ = 1 and  
INITAK = 1) is active.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
668  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
14.4.6.6 MSCAN Power Down Mode  
The MSCAN is in power down mode (Table 14-37) when  
CPU is in stop mode  
or  
CPU is in wait mode and the CSWAI bit is set  
When entering the power down mode, the MSCAN immediately stops all ongoing transmissions and  
receptions, potentially causing CAN protocol violations. To protect the CAN bus system from fatal  
consequences of violations to the above rule, the MSCAN immediately drives the TXCAN pin into a  
recessive state.  
NOTE  
The user is responsible for ensuring that the MSCAN is not active when  
power down mode is entered. The recommended procedure is to bring the  
MSCAN into Sleep mode before the STOP or WAI instruction (if CSWAI  
is set) is executed. Otherwise, the abort of an ongoing message can cause an  
error condition and impact other CAN bus devices.  
In power down mode, all clocks are stopped and no registers can be accessed. If the MSCAN was not in  
sleep mode before power down mode became active, the module performs an internal recovery cycle after  
powering up. This causes some fixed delay before the module enters normal mode again.  
14.4.6.7 Programmable Wake-Up Function  
The MSCAN can be programmed to wake up the MSCAN as soon as CAN bus activity is detected (see  
existing CAN bus action can be modified by applying a low-pass filter function to the RXCAN input line  
while in sleep mode (see control bit WUPM in Section 14.3.2.2, “MSCAN Control Register 1  
(CANCTL1)”).  
This feature can be used to protect the MSCAN from wake-up due to short glitches on the CAN bus lines.  
Such glitches can result from—for example—electromagnetic interference within noisy environments.  
14.4.7 Reset Initialization  
The reset state of each individual bit is listed in Section 14.3.2, “Register Descriptions,” which details all  
the registers and their bit-fields.  
14.4.8 Interrupts  
This section describes all interrupts originated by the MSCAN. It documents the enable bits and generated  
flags. Each interrupt is listed and described separately.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
669  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
(for details see sections from Section 14.3.2.6, “MSCAN Receiver Interrupt Enable Register  
(CANRIER),” to Section 14.3.2.8, “MSCAN Transmitter Interrupt Enable Register (CANTIER)”).  
NOTE  
The dedicated interrupt vector addresses are defined in the Resets and  
Interrupts chapter.  
Table 14-38. Interrupt Vectors  
Interrupt Source  
CCR Mask  
Local Enable  
CANRIER (WUPIE)  
Wake-Up Interrupt (WUPIF)  
Error Interrupts Interrupt (CSCIF, OVRIF)  
Receive Interrupt (RXF)  
I bit  
I bit  
I bit  
I bit  
CANRIER (CSCIE, OVRIE)  
CANRIER (RXFIE)  
Transmit Interrupts (TXE[2:0])  
CANTIER (TXEIE[2:0])  
14.4.8.2 Transmit Interrupt  
At least one of the three transmit buffers is empty (not scheduled) and can be loaded to schedule a message  
for transmission. The TXEx flag of the empty message buffer is set.  
14.4.8.3 Receive Interrupt  
A message is successfully received and shifted into the foreground buffer (RxFG) of the receiver FIFO.  
This interrupt is generated immediately after receiving the EOF symbol. The RXF flag is set. If there are  
multiple messages in the receiver FIFO, the RXF flag is set as soon as the next message is shifted to the  
foreground buffer.  
14.4.8.4 Wake-Up Interrupt  
A wake-up interrupt is generated if activity on the CAN bus occurs during MSCN internal sleep mode.  
WUPE (see Section 14.3.2.1, “MSCAN Control Register 0 (CANCTL0)”) must be enabled.  
14.4.8.5 Error Interrupt  
An error interrupt is generated if an overrun of the receiver FIFO, error, warning, or bus-off condition  
occurrs. Section 14.3.2.5, “MSCAN Receiver Flag Register (CANRFLG) indicates one of the following  
conditions:  
Overrun — An overrun condition of the receiver FIFO as described in Section 14.4.2.3, “Receive  
Structures,” occurred.  
CAN Status Change — The actual value of the transmit and receive error counters control the  
CAN bus state of the MSCAN. As soon as the error counters skip into a critical range  
(Tx/Rx-warning, Tx/Rx-error, bus-off) the MSCAN flags an error condition. The status change,  
which caused the error condition, is indicated by the TSTAT and RSTAT ags (see  
MC9S12XDP512 Data Sheet, Rev. 2.11  
670  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Section 14.3.2.5, “MSCAN Receiver Flag Register (CANRFLG)” and Section 14.3.2.6, “MSCAN  
Receiver Interrupt Enable Register (CANRIER)”).  
14.4.8.6 Interrupt Acknowledge  
Receiver Flag Register (CANRFLG)” or the Section 14.3.2.7, “MSCAN Transmitter Flag Register  
(CANTFLG).” Interrupts are pending as long as one of the corresponding flags is set. The flags in  
CANRFLG and CANTFLG must be reset within the interrupt handler to handshake the interrupt. The flags  
are reset by writing a 1 to the corresponding bit position. A flag cannot be cleared if the respective  
condition prevails.  
NOTE  
It must be guaranteed that the CPU clears only the bit causing the current  
interrupt. For this reason, bit manipulation instructions (BSET) must not be  
used to clear interrupt flags. These instructions may cause accidental  
clearing of interrupt flags which are set after entering the current interrupt  
service routine.  
14.4.8.7 Recovery from Stop or Wait  
The MSCAN can recover from stop or wait via the wake-up interrupt. This interrupt can only occur if the  
MSCAN was in sleep mode (SLPRQ = 1 and SLPAK = 1) before entering power down mode, the wake-up  
option is enabled (WUPE = 1), and the wake-up interrupt is enabled (WUPIE = 1).  
14.5 Initialization/Application Information  
14.5.1 MSCAN initialization  
The procedure to initially start up the MSCAN module out of reset is as follows:  
1. Assert CANE  
2. Write to the configuration registers in initialization mode  
3. Clear INITRQ to leave initialization mode and enter normal mode  
If the configuration of registers which are writable in initialization mode needs to be changed only when  
the MSCAN module is in normal mode:  
1. Bring the module into sleep mode by setting SLPRQ and awaiting SLPAK to assert after the CAN  
bus becomes idle.  
2. Enter initialization mode: assert INITRQ and await INITAK  
3. Write to the configuration registers in initialization mode  
4. Clear INITRQ to leave initialization mode and continue in normal mode  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
671  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 14 Freescale’s Scalable Controller Area Network (S12MSCANV3)  
14.5.2 Bus-Off Recovery  
The bus-off recovery is user configurable. The bus-off state can either be left automatically or on user  
request.  
For reasons of backwards compatibility, the MSCAN defaults to automatic recovery after reset. In this  
case, the MSCAN will become error active again after counting 128 occurrences of 11 consecutive  
If the MSCAN is configured for user request (BORM set in Section 14.3.2.2, “MSCAN Control Register  
1 (CANCTL1)”), the recovery from bus-off starts after both independent events have become true:  
BOHOLD in Section 14.3.2.14, “MSCAN Miscellaneous Register (CANMISC) has been cleared  
by the user  
These two events may occur in any order.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
672  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 15  
Serial Communication Interface (S12MC9S12XDP512V5)  
15.1 Introduction  
This block guide provides an overview of the serial communication interface (SCI) module.  
The SCI allows asynchronous serial communications with peripheral devices and other CPUs.  
15.1.1 Features  
The SCI includes these distinctive features:  
Full-duplex or single-wire operation  
Standard mark/space non-return-to-zero (NRZ) format  
Selectable IrDA 1.4 return-to-zero-inverted (RZI) format with programmable pulse widths  
13-bit baud rate selection  
Programmable 8-bit or 9-bit data format  
Separately enabled transmitter and receiver  
Programmable polarity for transmitter and receiver  
Programmable transmitter output parity  
Two receiver wakeup methods:  
— Idle line wakeup  
— Address mark wakeup  
Interrupt-driven operation with eight flags:  
— Transmitter empty  
— Transmission complete  
— Receiver full  
— Idle receiver input  
— Receiver overrun  
— Noise error  
— Framing error  
— Parity error  
— Receive wakeup on active edge  
— Transmit collision detect supporting LIN  
— Break Detect supporting LIN  
Receiver framing error detection  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
673  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
Hardware parity checking  
1/16 bit-time noise detection  
15.1.2 Modes of Operation  
The SCI functions the same in normal, special, and emulation modes. It has two low power modes, wait  
and stop modes.  
Run mode  
Wait mode  
Stop mode  
15.1.3 Block Diagram  
Figure 15-1 is a high level block diagram of the SCI module, showing the interaction of various function  
blocks.  
SCI Data Register  
RXD Data In  
Infrared  
Decoder  
Receive Shift Register  
IDLE  
Receive  
Interrupt  
Generation  
RDRF/OR  
BRKD  
Receive & Wakeup  
Control  
SCI  
Interrupt  
Request  
RXEDG  
Bus Clock  
Baud Rate  
Generator  
BERR  
Data Format Control  
Transmit Control  
Transmit  
Interrupt  
Generation  
TDRE  
TC  
1/16  
Infrared  
Encoder  
Data Out TXD  
Transmit Shift Register  
SCI Data Register  
Figure 15-1. SCI Block Diagram  
MC9S12XDP512 Data Sheet, Rev. 2.11  
674  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
15.2 External Signal Description  
The SCI module has a total of two external pins.  
15.2.1 TXD — Transmit Pin  
The TXD pin transmits SCI (standard or infrared) data. It will idle high in either mode and is high  
impedance anytime the transmitter is disabled.  
15.2.2 RXD — Receive Pin  
The RXD pin receives SCI (standard or infrared) data. An idle line is detected as a line high. This input is  
ignored when the receiver is disabled and should be terminated to a known voltage.  
15.3 Memory Map and Register Definition  
This section provides a detailed description of all the SCI registers.  
15.3.1 Module Memory Map and Register Definition  
The memory map for the SCI module is given below in Table 1-1. The address listed for each register is  
the address offset. The total address for each register is the sum of the base address for the SCI module and  
the address offset for each register.  
Table 15-1. MC9S12XDP512 Memory Map  
Address  
Offset  
Name  
Access  
1
0x0000  
0x0001  
0x0002  
0x000a  
0x001a  
0x002a  
SCI Baud Rate Register High (SCIBDH)  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R
1
1
2
2
2
SCI Baud Rate Register Low (SCIBDL)  
SCI Control Register1 (SCICR1)  
SCI Alternative Status Register 1 (SCIASR1)  
SCI Alternative Control Register 1 (SCIACR1)  
SCI Alternative Control Register 2 (SCIACR2)  
SCI Control Register 2 (SCICR2)  
0x0003  
0x0004  
0x0005  
0x0006  
0x0007  
SCI Status Register 1 (SCISR1)  
SCI Status Register 2(SCISR2)  
R/W  
R/W  
R/W  
SCI Data Register High (SCIDRH)  
SCI Data Register Low (SCIDRL)  
1
2
Those registers are accessible if the AMAP bit in the SCISR2 register is set to zero  
Those registers are accessible if the AMAP bit in the SCISR2 register is set to one  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
675  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
15.3.2 Register Descriptions  
This section consists of register descriptions in address order. Each description includes a standard register  
diagram with an associated figure number. Writes to a reserved register locations do not have any effect  
and reads of these locations return a zero. Details of register bit and field function follow the register  
diagrams, in bit order.  
Register  
Name  
Bit 7  
6
5
4
3
2
1
Bit 0  
0x0000  
SCIBDH  
R
1
IREN  
TNP1  
TNP0  
SBR12  
SBR11  
SBR10  
SBR9  
SBR8  
W
0x0001  
SCIBDL  
R
1
SBR7  
LOOPS  
SBR6  
SBR5  
SBR4  
SBR3  
SBR2  
ILT  
SBR1  
PE  
SBR0  
PT  
W
0x0002  
R
1
SCISWAI  
0
RSRC  
0
M
0
WAKE  
0
SCICR1  
W
0x000a  
SCIASR1  
R
2
2
2
RXEDGIF  
BERRV  
0
BERRIF  
BERRIE  
BERRM0  
BKDIF  
BKDIE  
BKDFE  
W
0x001a  
SCIACR1  
R
0
0
0
0
0
0
0
0
RXEDGIE  
0
W
0x002a  
SCIACR2  
R
BERRM1  
W
0x0003  
SCICR2  
R
TIE  
TCIE  
TC  
RIE  
ILIE  
TE  
RE  
NF  
RWU  
FE  
SBK  
PF  
W
0x0004  
R
TDRE  
RDRF  
IDLE  
OR  
SCISR1  
W
0x0005  
SCISR2  
R
0
0
0
RAF  
0
AMAP  
R8  
TXPOL  
0
RXPOL  
0
BRK13  
0
TXDIR  
0
W
0x0006  
SCIDRH  
R
T8  
W
0x0007  
SCIDRL  
R
R7  
T7  
R6  
T6  
R5  
T5  
R4  
T4  
R3  
T3  
R2  
T2  
R1  
T1  
R0  
T0  
W
1.These registers are accessible if the AMAP bit in the SCISR2 register is set to zero.  
2,These registers are accessible if the AMAP bit in the SCISR2 register is set to one.  
= Unimplemented or Reserved  
Figure 15-2. MC9S12XDP512 Register Summary  
MC9S12XDP512 Data Sheet, Rev. 2.11  
676  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
15.3.2.1 SCI Baud Rate Registers (SCIBDH, SCIBDL)  
Module Base + 0x0000  
7
6
5
4
3
2
1
0
R
IREN  
W
TNP1  
TNP0  
SBR12  
SBR11  
SBR10  
SBR9  
SBR8  
Reset  
0
0
0
0
0
0
0
0
Figure 15-3. SCI Baud Rate Register (SCIBDH)  
Module Base + 0x0001  
7
6
5
4
3
2
1
0
R
SBR7  
W
SBR6  
SBR5  
SBR4  
SBR3  
SBR2  
SBR1  
SBR0  
Reset  
0
0
0
0
0
0
0
0
Figure 15-4. SCI Baud Rate Register (SCIBDL)  
Read: Anytime, if AMAP = 0. If only SCIBDH is written to, a read will not return the correct data until  
SCIBDL is written to as well, following a write to SCIBDH.  
Write: Anytime, if AMAP = 0.  
NOTE  
Those two registers are only visible in the memory map if AMAP = 0 (reset  
condition).  
The SCI baud rate register is used by to determine the baud rate of the SCI, and to control the infrared  
modulation/demodulation submodule.  
Table 15-2. SCIBDH and SCIBDL Field Descriptions  
Field  
Description  
7
Infrared Enable Bit — This bit enables/disables the infrared modulation/demodulation submodule.  
IREN  
0 IR disabled  
1 IR enabled  
6:5  
Transmitter Narrow Pulse Bits — These bits enable whether the SCI transmits a 1/16, 3/16, 1/32 or 1/4 narrow  
TNP[1:0]  
pulse. See Table 15-3.  
4:0  
7:0  
SCI Baud Rate Bits — The baud rate for the SCI is determined by the bits in this register. The baud rate is  
calculated two different ways depending on the state of the IREN bit.  
SBR[12:0] The formulas for calculating the baud rate are:  
When IREN = 0 then,  
SCI baud rate = SCI bus clock / (16 x SBR[12:0])  
When IREN = 1 then,  
SCI baud rate = SCI bus clock / (32 x SBR[12:1])  
Note: The baud rate generator is disabled after reset and not started until the TE bit or the RE bit is set for the  
first time. The baud rate generator is disabled when (SBR[12:0] = 0 and IREN = 0) or (SBR[12:1] = 0 and  
IREN = 1).  
Note: Writing to SCIBDH has no effect without writing to SCIBDL, because writing to SCIBDH puts the data in  
a temporary location until SCIBDL is written to.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
677  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
Table 15-3. IRSCI Transmit Pulse Width  
TNP[1:0]  
Narrow Pulse Width  
11  
10  
01  
00  
1/4  
1/32  
1/16  
3/16  
15.3.2.2 SCI Control Register 1 (SCICR1)  
Module Base + 0x0002  
7
6
5
4
3
2
1
0
R
W
LOOPS  
SCISWAI  
RSRC  
M
WAKE  
ILT  
PE  
PT  
Reset  
0
0
0
0
0
0
0
0
Figure 15-5. SCI Control Register 1 (SCICR1)  
Read: Anytime, if AMAP = 0.  
Write: Anytime, if AMAP = 0.  
NOTE  
This register is only visible in the memory map if AMAP = 0 (reset  
condition).  
Table 15-4. SCICR1 Field Descriptions  
Description  
Field  
7
Loop Select Bit — LOOPS enables loop operation. In loop operation, the RXD pin is disconnected from the SCI  
and the transmitter output is internally connected to the receiver input. Both the transmitter and the receiver must  
be enabled to use the loop function.  
LOOPS  
0 Normal operation enabled  
1 Loop operation enabled  
The receiver input is determined by the RSRC bit.  
6
SCI Stop in Wait Mode Bit — SCISWAI disables the SCI in wait mode.  
SCISWAI 0 SCI enabled in wait mode  
1 SCI disabled in wait mode  
5
Receiver Source Bit — When LOOPS = 1, the RSRC bit determines the source for the receiver shift register  
RSRC  
input. See Table 15-5.  
0 Receiver input internally connected to transmitter output  
1 Receiver input connected externally to transmitter  
4
M
Data Format Mode Bit — MODE determines whether data characters are eight or nine bits long.  
0 One start bit, eight data bits, one stop bit  
1 One start bit, nine data bits, one stop bit  
3
Wakeup Condition Bit — WAKE determines which condition wakes up the SCI: a logic 1 (address mark) in the  
WAKE  
most significant bit position of a received data character or an idle condition on the RXD pin.  
0 Idle line wakeup  
1 Address mark wakeup  
MC9S12XDP512 Data Sheet, Rev. 2.11  
678  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
Table 15-4. SCICR1 Field Descriptions (continued)  
Field  
Description  
2
ILT  
Idle Line Type Bit — ILT determines when the receiver starts counting logic 1s as idle character bits. The  
counting begins either after the start bit or after the stop bit. If the count begins after the start bit, then a string of  
logic 1s preceding the stop bit may cause false recognition of an idle character. Beginning the count after the  
stop bit avoids false idle character recognition, but requires properly synchronized transmissions.  
0 Idle character bit count begins after start bit  
1 Idle character bit count begins after stop bit  
1
Parity Enable Bit — PE enables the parity function. When enabled, the parity function inserts a parity bit in the  
PE  
most significant bit position.  
0 Parity function disabled  
1 Parity function enabled  
0
Parity Type Bit — PT determines whether the SCI generates and checks for even parity or odd parity. With even  
PT  
parity, an even number of 1s clears the parity bit and an odd number of 1s sets the parity bit. With odd parity, an  
odd number of 1s clears the parity bit and an even number of 1s sets the parity bit.  
1 Even parity  
1 Odd parity  
Table 15-5. Loop Functions  
LOOPS  
RSRC  
Function  
0
1
1
x
0
1
Normal operation  
Loop mode with transmitter output internally connected to receiver input  
Single-wire mode with TXD pin connected to receiver input  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
679  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
15.3.2.3 SCI Alternative Status Register 1 (SCIASR1)  
Module Base + 0x000a  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
BERRV  
RXEDGIF  
BERRIF  
BKDIF  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 15-6. SCI Alternative Status Register 1 (SCIASR1)  
Read: Anytime, if AMAP = 1  
Write: Anytime, if AMAP = 1  
Table 15-6. SCIASR1 Field Descriptions  
Description  
Field  
7
Receive Input Active Edge Interrupt Flag — RXEDGIF is asserted, if an active edge (falling if RXPOL = 0,  
RXEDGIF rising if RXPOL = 1) on the RXD input occurs. RXEDGIF bit is cleared by writing a “1” to it.  
0 No active receive on the receive input has occurred  
1 An active edge on the receive input has occurred  
2
Bit Error Value — BERRV reflects the state of the RXD input when the bit error detect circuitry is enabled and  
a mismatch to the expected value happened. The value is only meaningful, if BERRIF = 1.  
0 A low input was sampled, when a high was expected  
BERRV  
1 A high input reassembled, when a low was expected  
1
Bit Error Interrupt Flag — BERRIF is asserted, when the bit error detect circuitry is enabled and if the value  
sampled at the RXD input does not match the transmitted value. If the BERRIE interrupt enable bit is set an  
interrupt will be generated. The BERRIF bit is cleared by writing a “1” to it.  
0 No mismatch detected  
BERRIF  
1 A mismatch has occurred  
0
Break Detect Interrupt Flag — BKDIF is asserted, if the break detect circuitry is enabled and a break signal is  
BKDIF  
received. If the BKDIE interrupt enable bit is set an interrupt will be generated. The BKDIF bit is cleared by writing  
a “1” to it.  
0 No break signal was received  
1 A break signal was received  
MC9S12XDP512 Data Sheet, Rev. 2.11  
680  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
15.3.2.4 SCI Alternative Control Register 1 (SCIACR1)  
Module Base + 0x001a  
7
6
5
4
3
2
1
0
R
0
0
0
0
0
RXEDGIE  
W
BERRIE  
BKDIE  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 15-7. SCI Alternative Control Register 1 (SCIACR1)  
Read: Anytime, if AMAP = 1  
Write: Anytime, if AMAP = 1  
Table 15-7. SCIACR1 Field Descriptions  
Description  
Field  
7
Receive Input Active Edge Interrupt Enable — RXEDGIE enables the receive input active edge interrupt flag,  
RSEDGIE RXEDGIF, to generate interrupt requests.  
0 RXEDGIF interrupt requests disabled  
1 RXEDGIF interrupt requests enabled  
1
Bit Error Interrupt Enable — BERRIE enables the bit error interrupt flag, BERRIF, to generate interrupt  
BERRIE  
requests.  
0 BERRIF interrupt requests disabled  
1 BERRIF interrupt requests enabled  
0
Break Detect Interrupt Enable — BKDIE enables the break detect interrupt flag, BKDIF, to generate interrupt  
BKDIE  
requests.  
0 BKDIF interrupt requests disabled  
1 BKDIF interrupt requests enabled  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
681  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
15.3.2.5 SCI Alternative Control Register 2 (SCIACR2)  
Module Base + 0x002a  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
BERRM1  
BERRM0  
BKDFE  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 15-8. SCI Alternative Control Register 2 (SCIACR2)  
Read: Anytime, if AMAP = 1  
Write: Anytime, if AMAP = 1  
Table 15-8. SCIACR2 Field Descriptions  
Description  
Field  
2:1  
Bit Error Mode — Those two bits determines the functionality of the bit error detect feature. See Table 15-9.  
BERRM[1:0]  
0
Break Detect Feature Enable — BKDFE enables the break detect circuitry.  
0 Break detect circuit disabled  
BKDFE  
1 Break detect circuit enabled  
Table 15-9. Bit Error Mode Coding  
BERRM1  
BERRM0  
Function  
0
0
0
1
Bit error detect circuit is disabled  
Receive input sampling occurs during the 9th time tick of a transmitted bit  
(refer to Figure 15-19)  
1
1
0
1
Receive input sampling occurs during the 13th time tick of a transmitted bit  
(refer to Figure 15-19)  
Reserved  
MC9S12XDP512 Data Sheet, Rev. 2.11  
682  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
15.3.2.6 SCI Control Register 2 (SCICR2)  
Module Base + 0x0003  
7
6
5
4
3
2
1
0
R
TIE  
W
TCIE  
RIE  
ILIE  
TE  
RE  
RWU  
SBK  
Reset  
0
0
0
0
0
0
0
0
Figure 15-9. SCI Control Register 2 (SCICR2)  
Read: Anytime  
Write: Anytime  
Table 15-10. SCICR2 Field Descriptions  
Description  
Field  
7
Transmitter Interrupt Enable Bit — TIE enables the transmit data register empty flag, TDRE, to generate  
TIE  
interrupt requests.  
0 TDRE interrupt requests disabled  
1 TDRE interrupt requests enabled  
6
Transmission Complete Interrupt Enable Bit — TCIE enables the transmission complete flag, TC, to generate  
TCIE  
interrupt requests.  
0 TC interrupt requests disabled  
1 TC interrupt requests enabled  
5
RIE  
Receiver Full Interrupt Enable Bit — RIE enables the receive data register full flag, RDRF, or the overrun flag,  
OR, to generate interrupt requests.  
0 RDRF and OR interrupt requests disabled  
1 RDRF and OR interrupt requests enabled  
4
ILIE  
Idle Line Interrupt Enable Bit — ILIE enables the idle line flag, IDLE, to generate interrupt requests.  
0 IDLE interrupt requests disabled  
1 IDLE interrupt requests enabled  
3
Transmitter Enable Bit — TE enables the SCI transmitter and configures the TXD pin as being controlled by  
TE  
the SCI. The TE bit can be used to queue an idle preamble.  
0 Transmitter disabled  
1 Transmitter enabled  
2
RE  
Receiver Enable Bit — RE enables the SCI receiver.  
0 Receiver disabled  
1 Receiver enabled  
1
Receiver Wakeup Bit — Standby state  
RWU  
0 Normal operation.  
1 RWU enables the wakeup function and inhibits further receiver interrupt requests. Normally, hardware wakes  
the receiver by automatically clearing RWU.  
0
Send Break Bit Toggling SBK sends one break character (10 or 11 logic 0s, respectively 13 or 14 logics 0s  
SBK  
if BRK13 is set). Toggling implies clearing the SBK bit before the break character has finished transmitting. As  
long as SBK is set, the transmitter continues to send complete break characters (10 or 11 bits, respectively 13  
or 14 bits).  
0 No break characters  
1 Transmit break characters  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
683  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
15.3.2.7 SCI Status Register 1 (SCISR1)  
The SCISR1 and SCISR2 registers provides inputs to the MCU for generation of SCI interrupts. Also,  
these registers can be polled by the MCU to check the status of these bits. The flag-clearing procedures  
require that the status register be read followed by a read or write to the SCI data register.It is permissible  
to execute other instructions between the two steps as long as it does not compromise the handling of I/O,  
but the order of operations is important for flag clearing.  
Module Base + 0x0004  
7
6
5
4
3
2
1
0
R
W
TDRE  
TC  
RDRF  
IDLE  
OR  
NF  
FE  
PF  
Reset  
1
1
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 15-10. SCI Status Register 1 (SCISR1)  
Read: Anytime  
Write: Has no meaning or effect  
Table 15-11. SCISR1 Field Descriptions  
Description  
Field  
7
Transmit Data Register Empty Flag — TDRE is set when the transmit shift register receives a byte from the  
SCI data register. When TDRE is 1, the transmit data register (SCIDRH/L) is empty and can receive a new value  
to transmit.Clear TDRE by reading SCI status register 1 (SCISR1), with TDRE set and then writing to SCI data  
register low (SCIDRL).  
TDRE  
0 No byte transferred to transmit shift register  
1 Byte transferred to transmit shift register; transmit data register empty  
6
TC  
Transmit Complete Flag — TC is set low when there is a transmission in progress or when a preamble or break  
character is loaded. TC is set high when the TDRE flag is set and no data, preamble, or break character is being  
transmitted.When TC is set, the TXD pin becomes idle (logic 1). Clear TC by reading SCI status register 1  
(SCISR1) with TC set and then writing to SCI data register low (SCIDRL). TC is cleared automatically when data,  
preamble, or break is queued and ready to be sent. TC is cleared in the event of a simultaneous set and clear of  
the TC flag (transmission not complete).  
0 Transmission in progress  
1 No transmission in progress  
5
Receive Data Register Full Flag — RDRF is set when the data in the receive shift register transfers to the SCI  
data register. Clear RDRF by reading SCI status register 1 (SCISR1) with RDRF set and then reading SCI data  
register low (SCIDRL).  
RDRF  
0 Data not available in SCI data register  
1 Received data available in SCI data register  
4
IDLE  
Idle Line Flag — IDLE is set when 10 consecutive logic 1s (if M = 0) or 11 consecutive logic 1s (if M =1) appear  
on the receiver input. Once the IDLE flag is cleared, a valid frame must again set the RDRF flag before an idle  
condition can set the IDLE flag.Clear IDLE by reading SCI status register 1 (SCISR1) with IDLE set and then  
reading SCI data register low (SCIDRL).  
0 Receiver input is either active now or has never become active since the IDLE flag was last cleared  
1 Receiver input has become idle  
Note: When the receiver wakeup bit (RWU) is set, an idle line condition does not set the IDLE flag.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
684  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
Table 15-11. SCISR1 Field Descriptions (continued)  
Field  
Description  
3
Overrun Flag — OR is set when software fails to read the SCI data register before the receive shift register  
OR  
receives the next frame. The OR bit is set immediately after the stop bit has been completely received for the  
second frame. The data in the shift register is lost, but the data already in the SCI data registers is not affected.  
Clear OR by reading SCI status register 1 (SCISR1) with OR set and then reading SCI data register low  
(SCIDRL).  
0 No overrun  
1 Overrun  
Note: OR flag may read back as set when RDRF flag is clear. This may happen if the following sequence of  
events occurs:  
1. After the first frame is received, read status register SCISR1 (returns RDRF set and OR flag clear);  
2. Receive second frame without reading the first frame in the data register (the second frame is not  
received and OR flag is set);  
3. Read data register SCIDRL (returns first frame and clears RDRF flag in the status register);  
4. Read status register SCISR1 (returns RDRF clear and OR set).  
Event 3 may be at exactly the same time as event 2 or any time after. When this happens, a dummy  
SCIDRL read following event 4 will be required to clear the OR flag if further frames are to be received.  
2
Noise Flag — NF is set when the SCI detects noise on the receiver input. NF bit is set during the same cycle as  
NF  
the RDRF flag but does not get set in the case of an overrun. Clear NF by reading SCI status register 1(SCISR1),  
and then reading SCI data register low (SCIDRL).  
0 No noise  
1 Noise  
1
Framing Error Flag — FE is set when a logic 0 is accepted as the stop bit. FE bit is set during the same cycle  
FE  
as the RDRF flag but does not get set in the case of an overrun. FE inhibits further data reception until it is  
cleared. Clear FE by reading SCI status register 1 (SCISR1) with FE set and then reading the SCI data register  
low (SCIDRL).  
0 No framing error  
1 Framing error  
0
Parity Error Flag — PF is set when the parity enable bit (PE) is set and the parity of the received data does not  
PF  
match the parity type bit (PT). PF bit is set during the same cycle as the RDRF flag but does not get set in the  
case of an overrun. Clear PF by reading SCI status register 1 (SCISR1), and then reading SCI data register low  
(SCIDRL).  
0 No parity error  
1 Parity error  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
685  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
15.3.2.8 SCI Status Register 2 (SCISR2)  
Module Base + 0x0005  
7
6
5
4
3
2
1
0
R
W
0
0
RAF  
AMAP  
TXPOL  
RXPOL  
BRK13  
TXDIR  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 15-11. SCI Status Register 2 (SCISR2)  
Read: Anytime  
Write: Anytime  
Table 15-12. SCISR2 Field Descriptions  
Description  
Field  
7
Alternative Map — This bit controls which registers sharing the same address space are accessible. In the reset  
condition the SCI behaves as previous versions. Setting AMAP=1 allows the access to another set of control and  
status registers and hides the baud rate and SCI control Register 1.  
AMAP  
0 The registers labelled SCIBDH (0x000),SCIBDL (0x001), SCICR1 (0x0002) are accessible  
1 The registers labelled SCIASR1 (0x000a),SCIACR1 (0x001a), SCIACR2 (0x0002a) are accessible  
4
Transmit Polarity — This bit control the polarity of the transmitted data. In NRZ format, a one is represented by  
a mark and a zero is represented by a space for normal polarity, and the opposite for inverted polarity. In IrDA  
format, a zero is represented by short high pulse in the middle of a bit time remaining idle low for a one for normal  
polarity, and a zero is represented by short low pulse in the middle of a bit time remaining idle high for a one for  
inverted polarity.  
TXPOL  
0 Normal polarity  
1 Inverted polarity  
3
Receive Polarity — This bit control the polarity of the received data. In NRZ format, a one is represented by a  
mark and a zero is represented by a space for normal polarity, and the opposite for inverted polarity. In IrDA  
format, a zero is represented by short high pulse in the middle of a bit time remaining idle low for a one for normal  
polarity, and a zero is represented by short low pulse in the middle of a bit time remaining idle high for a one for  
inverted polarity.  
RXPOL  
0 Normal polarity  
1 Inverted polarity  
2
Break Transmit Character Length — This bit determines whether the transmit break character is 10 or 11 bit  
respectively 13 or 14 bits long. The detection of a framing error is not affected by this bit.  
0 Break character is 10 or 11 bit long  
BRK13  
1 Break character is 13 or 14 bit long  
1
Transmitter Pin Data Direction in Single-Wire Mode — This bit determines whether the TXD pin is going to  
be used as an input or output, in the single-wire mode of operation. This bit is only relevant in the single-wire  
mode of operation.  
TXDIR  
0 TXD pin to be used as an input in single-wire mode  
1 TXD pin to be used as an output in single-wire mode  
0
RAF  
Receiver Active Flag — RAF is set when the receiver detects a logic 0 during the RT1 time period of the start  
bit search. RAF is cleared when the receiver detects an idle character.  
0 No reception in progress  
1 Reception in progress  
MC9S12XDP512 Data Sheet, Rev. 2.11  
686  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
15.3.2.9 SCI Data Registers (SCIDRH, SCIDRL)  
Module Base + 0x0006  
7
6
5
4
3
2
1
0
R
W
R8  
0
0
0
0
0
0
0
T8  
Reset  
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 15-12. SCI Data Registers (SCIDRH)  
Module Base + 0x0007  
7
6
5
4
3
2
1
0
R
W
R7  
T7  
0
R6  
R5  
R4  
R3  
R2  
R1  
R0  
T6  
0
T5  
0
T4  
0
T3  
0
T2  
0
T1  
0
T0  
0
Reset  
Figure 15-13. SCI Data Registers (SCIDRL)  
Read: Anytime; reading accesses SCI receive data register  
Write: Anytime; writing accesses SCI transmit data register; writing to R8 has no effect  
Table 15-13. SCIDRH and SCIDRL Field Descriptions  
Field  
Description  
SCIDRH  
Received Bit 8 — R8 is the ninth data bit received when the SCI is configured for 9-bit data format (M = 1).  
Transmit Bit 8 — T8 is the ninth data bit transmitted when the SCI is configured for 9-bit data format (M = 1).  
7
R8  
SCIDRH  
6
T8  
SCIDRL  
7:0  
R7:R0 — Received bits seven through zero for 9-bit or 8-bit data formats  
T7:T0 Transmit bits seven through zero for 9-bit or 8-bit formats  
R[7:0]  
T[7:0]  
NOTE  
If the value of T8 is the same as in the previous transmission, T8 does not  
have to be rewritten.The same value is transmitted until T8 is rewritten  
In 8-bit data format, only SCI data register low (SCIDRL) needs to be  
accessed.  
When transmitting in 9-bit data format and using 8-bit write instructions,  
write first to SCI data register high (SCIDRH), then SCIDRL.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
687  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
15.4 Functional Description  
This section provides a complete functional description of the SCI block, detailing the operation of the  
design from the end user perspective in a number of subsections.  
Figure 15-14 shows the structure of the SCI module. The SCI allows full duplex, asynchronous, serial  
communication between the CPU and remote devices, including other CPUs. The SCI transmitter and  
receiver operate independently, although they use the same baud rate generator. The CPU monitors the  
status of the SCI, writes the data to be transmitted, and processes received data.  
R8  
IREN  
SCI Data  
Register  
NF  
FE  
Infrared  
Receive  
Decoder  
Ir_RXD  
RXD  
SCRXD  
Receive  
Shift Register  
PF  
RAF  
IDLE  
RDRF  
OR  
IDLE  
ILIE  
RE  
RWU  
Receive  
and Wakeup  
Control  
LOOPS  
RSRC  
RIE  
TIE  
M
WAKE  
ILT  
Bus  
Clock  
Baud Rate  
Generator  
Data Format  
Control  
TDRE  
TC  
TDRE  
TC  
PE  
SCI  
Interrupt  
Request  
SBR12:SBR0  
PT  
TCIE  
TE  
Transmit  
Control  
RXEDGIE  
÷16  
LOOPS  
SBK  
Active Edge  
Detect  
RXEDGIF  
BKDIF  
RSRC  
Transmit  
Shift Register  
T8  
Break Detect  
RXD  
BKDIE  
SCI Data  
Register  
BKDFE  
LIN Transmit  
Collision  
Detect  
BERRIF  
BERRIE  
SCTXD  
R16XCLK  
R32XCLK  
BERRM[1:0]  
Infrared  
Transmit  
Encoder  
Ir_TXD  
TXD  
TNP[1:0]  
IREN  
Figure 15-14. Detailed SCI Block Diagram  
MC9S12XDP512 Data Sheet, Rev. 2.11  
688  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
15.4.1 Infrared Interface Submodule  
This module provides the capability of transmitting narrow pulses to an IR LED and receiving narrow  
pulses and transforming them to serial bits, which are sent to the SCI. The IrDA physical layer  
specification defines a half-duplex infrared communication link for exchange data. The full standard  
includes data rates up to 16 Mbits/s. This design covers only data rates between 2.4 Kbits/s and 115.2  
Kbits/s.  
The infrared submodule consists of two major blocks: the transmit encoder and the receive decoder. The  
SCI transmits serial bits of data which are encoded by the infrared submodule to transmit a narrow pulse  
for every zero bit. No pulse is transmitted for every one bit. When receiving data, the IR pulses should be  
detected using an IR photo diode and transformed to CMOS levels by the IR receive decoder (external  
from the MCU). The narrow pulses are then stretched by the infrared submodule to get back to a serial bit  
stream to be received by the SCI.The polarity of transmitted pulses and expected receive pulses can be  
inverted so that a direct connection can be made to external IrDA transceiver modules that uses active low  
pulses.  
The infrared submodule receives its clock sources from the SCI. One of these two clocks are selected in  
the infrared submodule in order to generate either 3/16, 1/16, 1/32 or 1/4 narrow pulses during  
transmission. The infrared block receives two clock sources from the SCI, R16XCLK and R32XCLK,  
which are configured to generate the narrow pulse width during transmission. The R16XCLK and  
R32XCLK are internal clocks with frequencies 16 and 32 times the baud rate respectively. Both  
R16XCLK and R32XCLK clocks are used for transmitting data. The receive decoder uses only the  
R16XCLK clock.  
15.4.1.1 Infrared Transmit Encoder  
The infrared transmit encoder converts serial bits of data from transmit shift register to the TXD pin. A  
narrow pulse is transmitted for a zero bit and no pulse for a one bit. The narrow pulse is sent in the middle  
of the bit with a duration of 1/32, 1/16, 3/16 or 1/4 of a bit time. A narrow high pulse is transmitted for a  
zero bit when TXPOL is cleared, while a narrow low pulse is transmitted for a zero bit when TXPOL is set.  
15.4.1.2 Infrared Receive Decoder  
The infrared receive block converts data from the RXD pin to the receive shift register. A narrow pulse is  
expected for each zero received and no pulse is expected for each one received. A narrow high pulse is  
expected for a zero bit when RXPOL is cleared, while a narrow low pulse is expected for a zero bit when  
RXPOL is set. This receive decoder meets the edge jitter requirement as defined by the IrDA serial infrared  
physical layer specification.  
15.4.2 LIN Support  
This module provides some basic support for the LIN protocol. At first this is a break detect circuitry  
making it easier for the LIN software to distinguish a break character from an incoming data stream. As a  
further addition is supports a collision detection at the bit level as well as cancelling pending transmissions.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
689  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
15.4.3 Data Format  
The SCI uses the standard NRZ mark/space data format. When Infrared is enabled, the SCI uses RZI data  
format where zeroes are represented by light pulses and ones remain low. See Figure 15-15 below.  
8-Bit Data Format  
(Bit M in SCICR1 Clear)  
Possible  
Parity  
Next  
Start  
Bit  
Bit  
Start  
Bit  
Standard  
SCI Data  
STOP  
Bit  
Bit 0  
Bit 1  
Bit 2  
Bit 3  
Bit 4  
Bit 5  
Bit 6  
Bit 7  
Infrared  
SCI Data  
9-Bit Data Format  
(Bit M in SCICR1 Set)  
POSSIBLE  
PARITY  
Bit  
NEXT  
START  
Bit  
Start  
Bit  
Standard  
SCI Data  
Bit 0  
Bit 1  
Bit 2  
Bit 3  
Bit 4  
Bit 5  
Bit 6  
Bit 7  
Bit 8  
STOP  
Bit  
Infrared  
SCI Data  
Figure 15-15. SCI Data Formats  
Each data character is contained in a frame that includes a start bit, eight or nine data bits, and a stop bit.  
Clearing the M bit in SCI control register 1 configures the SCI for 8-bit data characters. A frame with eight  
data bits has a total of 10 bits. Setting the M bit configures the SCI for nine-bit data characters. A frame  
with nine data bits has a total of 11 bits.  
Table 15-14. Example of 8-Bit Data Formats  
Start  
Bit  
Data  
Bits  
Address  
Bits  
Parity  
Bits  
Stop  
Bit  
1
1
1
8
7
7
0
0
0
1
1
1
1
1
The address bit identifies the frame as an address  
character. See Section 15.4.6.6, “Receiver Wakeup”.  
When the SCI is configured for 9-bit data characters, the ninth data bit is the T8 bit in SCI data register  
high (SCIDRH). It remains unchanged after transmission and can be used repeatedly without rewriting it.  
A frame with nine data bits has a total of 11 bits.  
Table 15-15. Example of 9-Bit Data Formats  
Start  
Bit  
Data  
Bits  
Address  
Bits  
Parity  
Bits  
Stop  
Bit  
1
1
1
9
8
8
0
0
0
1
1
1
1
1
The address bit identifies the frame as an address  
character. See Section 15.4.6.6, “Receiver Wakeup”.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
690  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
15.4.4 Baud Rate Generation  
A 13-bit modulus counter in the baud rate generator derives the baud rate for both the receiver and the  
transmitter. The value from 0 to 8191 written to the SBR12:SBR0 bits determines the bus clock divisor.  
The SBR bits are in the SCI baud rate registers (SCIBDH and SCIBDL). The baud rate clock is  
synchronized with the bus clock and drives the receiver. The baud rate clock divided by 16 drives the  
transmitter. The receiver has an acquisition rate of 16 samples per bit time.  
Baud rate generation is subject to one source of error:  
Integer division of the bus clock may not give the exact target frequency.  
Table 15-16 lists some examples of achieving target baud rates with a bus clock frequency of 25 MHz.  
When IREN = 0 then,  
SCI baud rate = SCI bus clock / (16 * SCIBR[12:0])  
Table 15-16. Baud Rates (Example: Bus Clock = 25 MHz)  
Bits  
SBR[12:0]  
Receiver  
Clock (Hz)  
Transmitter  
Clock (Hz)  
Target  
Baud Rate  
Error  
(%)  
41  
81  
609,756.1  
308,642.0  
153,374.2  
76,687.1  
38,402.5  
19,201.2  
9600.6  
38,109.8  
19,290.1  
9585.9  
4792.9  
2400.2  
1200.1  
600.0  
38,400  
19,200  
9,600  
4,800  
2,400  
1,200  
600  
.76  
.47  
.16  
.15  
.01  
.01  
.00  
.00  
.00  
.00  
163  
326  
651  
1302  
2604  
5208  
10417  
14204  
4800.0  
300.0  
300  
2400.0  
150.0  
150  
1760.1  
110.0  
110  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
691  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
15.4.5 Transmitter  
Internal Bus  
Bus  
Clock  
÷ 16  
Baud Divider  
SCI Data Registers  
SBR12:SBR0  
TXPOL  
11-Bit Transmit Register  
SCTXD  
H
8
7
6
5
4
3
2
1
0
L
M
LOOP  
CONTROL  
To Receiver  
T8  
PE  
PT  
Parity  
Generation  
LOOPS  
RSRC  
TIE  
TDRE IRQ  
TC IRQ  
TDRE  
Transmitter Control  
TC  
TCIE  
TE  
SBK  
BERRM[1:0]  
SCTXD  
SCRXD  
BERRIF  
TCIE  
Transmit  
Collision Detect  
BER IRQ  
(From Receiver)  
Figure 15-16. Transmitter Block Diagram  
15.4.5.1 Transmitter Character Length  
The SCI transmitter can accommodate either 8-bit or 9-bit data characters. The state of the M bit in SCI  
control register 1 (SCICR1) determines the length of data characters. When transmitting 9-bit data, bit T8  
in SCI data register high (SCIDRH) is the ninth bit (bit 8).  
15.4.5.2 Character Transmission  
To transmit data, the MCU writes the data bits to the SCI data registers (SCIDRH/SCIDRL), which in turn  
are transferred to the transmitter shift register. The transmit shift register then shifts a frame out through  
the TXD pin, after it has prefaced them with a start bit and appended them with a stop bit. The SCI data  
registers (SCIDRH and SCIDRL) are the write-only buffers between the internal data bus and the transmit  
shift register.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
692  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
The SCI also sets a flag, the transmit data register empty flag (TDRE), every time it transfers data from the  
buffer (SCIDRH/L) to the transmitter shift register.The transmit driver routine may respond to this flag by  
writing another byte to the Transmitter buffer (SCIDRH/SCIDRL), while the shift register is still shifting  
out the first byte.  
To initiate an SCI transmission:  
1. Configure the SCI:  
a) Select a baud rate. Write this value to the SCI baud registers (SCIBDH/L) to begin the baud  
rate generator. Remember that the baud rate generator is disabled when the baud rate is zero.  
Writing to the SCIBDH has no effect without also writing to SCIBDL.  
b) Write to SCICR1 to configure word length, parity, and other configuration bits  
(LOOPS,RSRC,M,WAKE,ILT,PE,PT).  
c) Enable the transmitter, interrupts, receive, and wake up as required, by writing to the SCICR2  
register bits (TIE,TCIE,RIE,ILIE,TE,RE,RWU,SBK). A preamble or idle character will now  
be shifted out of the transmitter shift register.  
2. Transmit Procedure for each byte:  
a) Poll the TDRE flag by reading the SCISR1 or responding to the TDRE interrupt. Keep in mind  
that the TDRE bit resets to one.  
b) If the TDRE flag is set, write the data to be transmitted to SCIDRH/L, where the ninth bit is  
written to the T8 bit in SCIDRH if the SCI is in 9-bit data format. A new transmission will not  
result until the TDRE flag has been cleared.  
3. Repeat step 2 for each subsequent transmission.  
NOTE  
The TDRE flag is set when the shift register is loaded with the next data to  
be transmitted from SCIDRH/L, which happens, generally speaking, a little  
over half-way through the stop bit of the previous frame. Specifically, this  
transfer occurs 9/16ths of a bit time AFTER the start of the stop bit of the  
previous frame.  
Writing the TE bit from 0 to a 1 automatically loads the transmit shift register with a preamble of 10 logic  
1s (if M = 0) or 11 logic 1s (if M = 1). After the preamble shifts out, control logic transfers the data from  
the SCI data register into the transmit shift register. A logic 0 start bit automatically goes into the least  
significant bit position of the transmit shift register. A logic 1 stop bit goes into the most significant bit  
position.  
Hardware supports odd or even parity. When parity is enabled, the most significant bit (MSB) of the data  
character is the parity bit.  
The transmit data register empty flag, TDRE, in SCI status register 1 (SCISR1) becomes set when the SCI  
data register transfers a byte to the transmit shift register. The TDRE flag indicates that the SCI data  
register can accept new data from the internal data bus. If the transmit interrupt enable bit, TIE, in SCI  
control register 2 (SCICR2) is also set, the TDRE flag generates a transmitter interrupt request.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
693  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
When the transmit shift register is not transmitting a frame, the TXD pin goes to the idle condition, logic  
1. If at any time software clears the TE bit in SCI control register 2 (SCICR2), the transmitter enable signal  
goes low and the transmit signal goes idle.  
If software clears TE while a transmission is in progress (TC = 0), the frame in the transmit shift register  
continues to shift out. To avoid accidentally cutting off the last frame in a message, always wait for TDRE  
to go high after the last frame before clearing TE.  
To separate messages with preambles with minimum idle line time, use this sequence between messages:  
1. Write the last byte of the first message to SCIDRH/L.  
2. Wait for the TDRE flag to go high, indicating the transfer of the last frame to the transmit shift  
register.  
3. Queue a preamble by clearing and then setting the TE bit.  
4. Write the first byte of the second message to SCIDRH/L.  
15.4.5.3 Break Characters  
Writing a logic 1 to the send break bit, SBK, in SCI control register 2 (SCICR2) loads the transmit shift  
register with a break character. A break character contains all logic 0s and has no start, stop, or parity bit.  
Break character length depends on the M bit in SCI control register 1 (SCICR1). As long as SBK is at logic  
1, transmitter logic continuously loads break characters into the transmit shift register. After software  
clears the SBK bit, the shift register finishes transmitting the last break character and then transmits at least  
one logic 1. The automatic logic 1 at the end of a break character guarantees the recognition of the start bit  
of the next frame.  
The SCI recognizes a break character when there are 10 or 11(M = 0 or M = 1) consecutive zero received.  
Depending if the break detect feature is enabled or not receiving a break character has these effects on SCI  
registers.  
If the break detect feature is disabled (BKDFE = 0):  
Sets the framing error flag, FE  
Sets the receive data register full flag, RDRF  
Clears the SCI data registers (SCIDRH/L)  
May set the overrun flag, OR, noise flag, NF, parity error flag, PE, or the receiver active flag, RAF  
(see 3.4.4 and 3.4.5 SCI Status Register 1 and 2)  
1
If the break detect feature is enabled (BKDFE = 1) there are two scenarios  
The break is detected right from a start bit or is detected during a byte reception.  
Sets the break detect interrupt flag, BLDIF  
Does not change the data register full flag, RDRF or overrun flag OR  
Does not change the framing error flag FE, parity error flag PE.  
Does not clear the SCI data registers (SCIDRH/L)  
May set noise flag NF, or receiver active flag RAF.  
1. A Break character in this context are either 10 or 11 consecutive zero received bits  
MC9S12XDP512 Data Sheet, Rev. 2.11  
694  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
Figure 15-17 shows two cases of break detect. In trace RXD_1 the break symbol starts with the start bit,  
while in RXD_2 the break starts in the middle of a transmission. If BRKDFE = 1, in RXD_1 case there  
will be no byte transferred to the receive buffer and the RDRF flag will not be modified. Also no framing  
error or parity error will be flagged from this transfer. In RXD_2 case, however the break signal starts later  
during the transmission. At the expected stop bit position the byte received so far will be transferred to the  
receive buffer, the receive data register full flag will be set, a framing error and if enabled and appropriate  
a parity error will be set. Once the break is detected the BRKDIF flag will be set.  
Start Bit Position  
Stop Bit Position  
BRKDIF = 1  
RXD_1  
. . .  
10  
Zero Bit Counter  
1
2
3
4
5
6
7
8
9
FE = 1  
BRKDIF = 1  
RXD_2  
. . .  
1
2
3
4
5
6
7
8
9
10  
Zero Bit Counter  
Figure 15-17. Break Detection if BRKDFE = 1 (M = 0)  
15.4.5.4 Idle Characters  
An idle character (or preamble) contains all logic 1s and has no start, stop, or parity bit. Idle character  
length depends on the M bit in SCI control register 1 (SCICR1). The preamble is a synchronizing idle  
character that begins the first transmission initiated after writing the TE bit from 0 to 1.  
If the TE bit is cleared during a transmission, the TXD pin becomes idle after completion of the  
transmission in progress. Clearing and then setting the TE bit during a transmission queues an idle  
character to be sent after the frame currently being transmitted.  
NOTE  
When queueing an idle character, return the TE bit to logic 1 before the stop  
bit of the current frame shifts out through the TXD pin. Setting TE after the  
stop bit appears on TXD causes data previously written to the SCI data  
register to be lost. Toggle the TE bit for a queued idle character while the  
TDRE flag is set and immediately before writing the next byte to the SCI  
data register.  
If the TE bit is clear and the transmission is complete, the SCI is not the  
master of the TXD pin  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
695  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
15.4.5.5 LIN Transmit Collision Detection  
This module allows to check for collisions on the LIN bus.  
LIN Physical Interface  
Synchronizer Stage  
Receive Shift  
Register  
Compare  
RXD Pin  
Bit Error  
LIN Bus  
Bus Clock  
Sample  
Point  
Transmit Shift  
Register  
TXD Pin  
Figure 15-18. Collision Detect Principle  
If the bit error circuit is enabled (BERRM[1:0] = 0:1 or = 1:0]), the error detect circuit will compare the  
transmitted and the received data stream at a point in time and flag any mismatch. The timing checks run  
when transmitter is active (not idle). As soon as a mismatch between the transmitted data and the received  
data is detected the following happens:  
The next bit transmitted will have a high level (TXPOL = 0) or low level (TXPOL = 1)  
The transmission is aborted and the byte in transmit buffer is discarded.  
the transmit data register empty and the transmission complete flag will be set  
The bit error interrupt flag, BERRIF, will be set.  
No further transmissions will take place until the BERRIF is cleared.  
0
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15  
0
Output Transmit  
Shift Register  
Input Receive  
Shift Register  
BERRM[1:0] = 0:1  
BERRM[1:0] = 1:1  
Compare Sample Points  
Figure 15-19. Timing Diagram Bit Error Detection  
If the bit error detect feature is disabled, the bit error interrupt flag is cleared.  
NOTE  
The RXPOL and TXPOL bit should be set the same when transmission  
collision detect feature is enabled, otherwise the bit error interrupt flag may  
be set incorrectly.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
696  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
15.4.6 Receiver  
Internal Bus  
SBR12:SBR0  
SCI Data Register  
Bus  
Clock  
Baud Divider  
11-Bit Receive Shift Register  
RXPOL  
Data  
Recovery  
H
8
7
6
5
4
3
2
1
0
L
SCRXD  
Loop  
Control  
From TXD Pin  
or Transmitter  
RE  
RAF  
FE  
NF  
PE  
LOOPS  
RSRC  
M
WAKE  
ILT  
RWU  
Wakeup  
Logic  
PE  
PT  
R8  
Parity  
Checking  
Idle IRQ  
IDLE  
ILIE  
RDRF/OR  
IRQ  
BRKDFE  
RDRF  
OR  
RIE  
Break  
Detect Logic  
BRKDIF  
BRKDIE  
Break IRQ  
Active Edge  
Detect Logic  
RXEDGIF  
RXEDGIE  
RX Active Edge IRQ  
Figure 15-20. SCI Receiver Block Diagram  
15.4.6.1 Receiver Character Length  
The SCI receiver can accommodate either 8-bit or 9-bit data characters. The state of the M bit in SCI  
control register 1 (SCICR1) determines the length of data characters. When receiving 9-bit data, bit R8 in  
SCI data register high (SCIDRH) is the ninth bit (bit 8).  
15.4.6.2 Character Reception  
During an SCI reception, the receive shift register shifts a frame in from the RXD pin. The SCI data register  
is the read-only buffer between the internal data bus and the receive shift register.  
After a complete frame shifts into the receive shift register, the data portion of the frame transfers to the  
SCI data register. The receive data register full flag, RDRF, in SCI status register 1 (SCISR1) becomes set,  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
697  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
indicating that the received byte can be read. If the receive interrupt enable bit, RIE, in SCI control  
register 2 (SCICR2) is also set, the RDRF flag generates an RDRF interrupt request.  
15.4.6.3 Data Sampling  
The RT clock rate. The RT clock is an internal signal with a frequency 16 times the baud rate. To adjust  
for baud rate mismatch, the RT clock (see Figure 15-21) is re-synchronized:  
After every start bit  
After the receiver detects a data bit change from logic 1 to logic 0 (after the majority of data bit  
samples at RT8, RT9, and RT10 returns a valid logic 1 and the majority of the next RT8, RT9, and  
RT10 samples returns a valid logic 0)  
To locate the start bit, data recovery logic does an asynchronous search for a logic 0 preceded by three logic  
1s.When the falling edge of a possible start bit occurs, the RT clock begins to count to 16.  
Start Bit  
LSB  
RXD  
Samples  
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
Start Bit  
Qualification  
Start Bit  
Verification  
Data  
Sampling  
RT Clock  
RT CLock Count  
Reset RT Clock  
Figure 15-21. Receiver Data Sampling  
To verify the start bit and to detect noise, data recovery logic takes samples at RT3, RT5, and RT7.  
Figure 15-17 summarizes the results of the start bit verification samples.  
Table 15-17. Start Bit Verification  
RT3, RT5, and RT7 Samples  
Start Bit Verification  
Noise Flag  
000  
001  
010  
011  
100  
101  
110  
111  
Yes  
Yes  
Yes  
No  
0
1
1
0
1
0
0
0
Yes  
No  
No  
No  
If start bit verification is not successful, the RT clock is reset and a new search for a start bit begins.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
698  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
To determine the value of a data bit and to detect noise, recovery logic takes samples at RT8, RT9, and  
RT10. Table 15-18 summarizes the results of the data bit samples.  
Table 15-18. Data Bit Recovery  
RT8, RT9, and RT10 Samples  
Data Bit Determination  
Noise Flag  
000  
001  
010  
011  
100  
101  
110  
111  
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
NOTE  
The RT8, RT9, and RT10 samples do not affect start bit verification. If any  
or all of the RT8, RT9, and RT10 start bit samples are logic 1s following a  
successful start bit verification, the noise flag (NF) is set and the receiver  
assumes that the bit is a start bit (logic 0).  
To verify a stop bit and to detect noise, recovery logic takes samples at RT8, RT9, and RT10. Table 15-19  
summarizes the results of the stop bit samples.  
Table 15-19. Stop Bit Recovery  
RT8, RT9, and RT10 Samples  
Framing Error Flag  
Noise Flag  
000  
001  
010  
011  
100  
101  
110  
111  
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
699  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
In Figure 15-22 the verification samples RT3 and RT5 determine that the first low detected was noise and  
not the beginning of a start bit. The RT clock is reset and the start bit search begins again. The noise flag  
is not set because the noise occurred before the start bit was found.  
Start Bit  
LSB  
RXD  
Samples  
1
1
1
0
1
1
1
0
0
0
0
0
0
0
RT Clock  
RT Clock Count  
Reset RT Clock  
Figure 15-22. Start Bit Search Example 1  
In Figure 15-23, verification sample at RT3 is high. The RT3 sample sets the noise flag. Although the  
perceived bit time is misaligned, the data samples RT8, RT9, and RT10 are within the bit time and data  
recovery is successful.  
Perceived Start Bit  
Actual Start Bit  
LSB  
RXD  
Samples  
1
1
1
1
1
0
1
0
0
0
0
0
RT Clock  
RT Clock Count  
Reset RT Clock  
Figure 15-23. Start Bit Search Example 2  
MC9S12XDP512 Data Sheet, Rev. 2.11  
700  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
In Figure 15-24, a large burst of noise is perceived as the beginning of a start bit, although the test sample  
at RT5 is high. The RT5 sample sets the noise flag. Although this is a worst-case misalignment of perceived  
bit time, the data samples RT8, RT9, and RT10 are within the bit time and data recovery is successful.  
Perceived Start Bit  
Actual Start Bit  
LSB  
RXD  
Samples  
1
1
1
0
0
1
0
0
0
0
RT Clock  
RT Clock Count  
Reset RT Clock  
Figure 15-24. Start Bit Search Example 3  
Figure 15-25 shows the effect of noise early in the start bit time. Although this noise does not affect proper  
synchronization with the start bit time, it does set the noise flag.  
Perceived and Actual Start Bit  
LSB  
RXD  
Samples  
1
1
1
1
1
1
1
1
1
0
1
0
RT Clock  
RT Clock Count  
Reset RT Clock  
Figure 15-25. Start Bit Search Example 4  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
701  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
Figure 15-26 shows a burst of noise near the beginning of the start bit that resets the RT clock. The sample  
after the reset is low but is not preceded by three high samples that would qualify as a falling edge.  
Depending on the timing of the start bit search and on the data, the frame may be missed entirely or it may  
set the framing error flag.  
Start Bit  
LSB  
No Start Bit Found  
RXD  
Samples  
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
RT Clock  
RT Clock Count  
Reset RT Clock  
Figure 15-26. Start Bit Search Example 5  
In Figure 15-27, a noise burst makes the majority of data samples RT8, RT9, and RT10 high. This sets the  
noise flag but does not reset the RT clock. In start bits only, the RT8, RT9, and RT10 data samples are  
ignored.  
Start Bit  
LSB  
RXD  
Samples  
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
RT Clock  
RT Clock Count  
Reset RT Clock  
Figure 15-27. Start Bit Search Example 6  
15.4.6.4 Framing Errors  
If the data recovery logic does not detect a logic 1 where the stop bit should be in an incoming frame, it  
sets the framing error flag, FE, in SCI status register 1 (SCISR1). A break character also sets the FE flag  
because a break character has no stop bit. The FE flag is set at the same time that the RDRF flag is set.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
702  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
15.4.6.5 Baud Rate Tolerance  
A transmitting device may be operating at a baud rate below or above the receiver baud rate. Accumulated  
bit time misalignment can cause one of the three stop bit data samples (RT8, RT9, and RT10) to fall outside  
the actual stop bit. A noise error will occur if the RT8, RT9, and RT10 samples are not all the same logical  
values. A framing error will occur if the receiver clock is misaligned in such a way that the majority of the  
RT8, RT9, and RT10 stop bit samples are a logic zero.  
As the receiver samples an incoming frame, it re-synchronizes the RT clock on any valid falling edge  
within the frame. Re synchronization within frames will correct a misalignment between transmitter bit  
times and receiver bit times.  
Slow Data Tolerance  
Figure 15-28 shows how much a slow received frame can be misaligned without causing a noise error or  
a framing error. The slow stop bit begins at RT8 instead of RT1 but arrives in time for the stop bit data  
samples at RT8, RT9, and RT10.  
MSB  
Stop  
Receiver  
RT Clock  
Data  
Samples  
Figure 15-28. Slow Data  
Let’s take RTr as receiver RT clock and RTt as transmitter RT clock.  
For an 8-bit data character, it takes the receiver 9 bit times x 16 RTr cycles +7 RTr cycles = 151 RTr cycles  
to start data sampling of the stop bit.  
With the misaligned character shown in Figure 15-28, the receiver counts 151 RTr cycles at the point when  
the count of the transmitting device is 9 bit times x 16 RTt cycles = 144 RTt cycles.  
The maximum percent difference between the receiver count and the transmitter count of a slow 8-bit data  
character with no errors is:  
((151 – 144) / 151) x 100 = 4.63%  
For a 9-bit data character, it takes the receiver 10 bit times x 16 RTr cycles + 7 RTr cycles = 167 RTr cycles  
to start data sampling of the stop bit.  
With the misaligned character shown in Figure 15-28, the receiver counts 167 RTr cycles at the point when  
the count of the transmitting device is 10 bit times x 16 RTt cycles = 160 RTt cycles.  
The maximum percent difference between the receiver count and the transmitter count of a slow 9-bit  
character with no errors is:  
((167 – 160) / 167) X 100 = 4.19%  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
703  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
Fast Data Tolerance  
Figure 15-29 shows how much a fast received frame can be misaligned. The fast stop bit ends at RT10  
instead of RT16 but is still sampled at RT8, RT9, and RT10.  
Stop  
Idle or Next Frame  
Receiver  
RT Clock  
Data  
Samples  
Figure 15-29. Fast Data  
For an 8-bit data character, it takes the receiver 9 bit times x 16 RTr cycles + 10 RTr cycles = 154 RTr cycles  
to finish data sampling of the stop bit.  
With the misaligned character shown in Figure 15-29, the receiver counts 154 RTr cycles at the point when  
the count of the transmitting device is 10 bit times x 16 RTt cycles = 160 RTt cycles.  
The maximum percent difference between the receiver count and the transmitter count of a fast 8-bit  
character with no errors is:  
((160 – 154) / 160) x 100 = 3.75%  
For a 9-bit data character, it takes the receiver 10 bit times x 16 RTr cycles + 10 RTr cycles = 170 RTr cycles  
to finish data sampling of the stop bit.  
With the misaligned character shown in Figure 15-29, the receiver counts 170 RTr cycles at the point when  
the count of the transmitting device is 11 bit times x 16 RTt cycles = 176 RTt cycles.  
The maximum percent difference between the receiver count and the transmitter count of a fast 9-bit  
character with no errors is:  
((176 – 170) /176) x 100 = 3.40%  
15.4.6.6 Receiver Wakeup  
To enable the SCI to ignore transmissions intended only for other receivers in multiple-receiver systems,  
the receiver can be put into a standby state. Setting the receiver wakeup bit, RWU, in SCI control register 2  
(SCICR2) puts the receiver into standby state during which receiver interrupts are disabled.The SCI will  
still load the receive data into the SCIDRH/L registers, but it will not set the RDRF flag.  
The transmitting device can address messages to selected receivers by including addressing information in  
the initial frame or frames of each message.  
The WAKE bit in SCI control register 1 (SCICR1) determines how the SCI is brought out of the standby  
state to process an incoming message. The WAKE bit enables either idle line wakeup or address mark  
wakeup.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
704  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
15.4.6.6.1  
Idle Input line Wakeup (WAKE = 0)  
In this wakeup method, an idle condition on the RXD pin clears the RWU bit and wakes up the SCI. The  
initial frame or frames of every message contain addressing information. All receivers evaluate the  
addressing information, and receivers for which the message is addressed process the frames that follow.  
Any receiver for which a message is not addressed can set its RWU bit and return to the standby state. The  
RWU bit remains set and the receiver remains on standby until another idle character appears on the RXD  
pin.  
Idle line wakeup requires that messages be separated by at least one idle character and that no message  
contains idle characters.  
The idle character that wakes a receiver does not set the receiver idle bit, IDLE, or the receive data register  
full flag, RDRF.  
The idle line type bit, ILT, determines whether the receiver begins counting logic 1s as idle character bits  
after the start bit or after the stop bit. ILT is in SCI control register 1 (SCICR1).  
15.4.6.6.2  
Address Mark Wakeup (WAKE = 1)  
In this wakeup method, a logic 1 in the most significant bit (MSB) position of a frame clears the RWU bit  
and wakes up the SCI. The logic 1 in the MSB position marks a frame as an address frame that contains  
addressing information. All receivers evaluate the addressing information, and the receivers for which the  
message is addressed process the frames that follow.Any receiver for which a message is not addressed can  
set its RWU bit and return to the standby state. The RWU bit remains set and the receiver remains on  
standby until another address frame appears on the RXD pin.  
The logic 1 MSB of an address frame clears the receiver’s RWU bit before the stop bit is received and sets  
the RDRF flag.  
Address mark wakeup allows messages to contain idle characters but requires that the MSB be reserved  
for use in address frames.  
NOTE  
With the WAKE bit clear, setting the RWU bit after the RXD pin has been  
idle can cause the receiver to wake up immediately.  
15.4.7 Single-Wire Operation  
Normally, the SCI uses two pins for transmitting and receiving. In single-wire operation, the RXD pin is  
disconnected from the SCI. The SCI uses the TXD pin for both receiving and transmitting.  
Transmitter  
TXD  
Receiver  
RXD  
Figure 15-30. Single-Wire Operation (LOOPS = 1, RSRC = 1)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
705  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
Enable single-wire operation by setting the LOOPS bit and the receiver source bit, RSRC, in SCI control  
register 1 (SCICR1). Setting the LOOPS bit disables the path from the RXD pin to the receiver. Setting  
the RSRC bit connects the TXD pin to the receiver. Both the transmitter and receiver must be enabled  
(TE = 1 and RE = 1).The TXDIR bit (SCISR2[1]) determines whether the TXD pin is going to be used as  
an input (TXDIR = 0) or an output (TXDIR = 1) in this mode of operation.  
NOTE  
In single-wire operation data from the TXD pin is inverted if RXPOL is set.  
15.4.8 Loop Operation  
In loop operation the transmitter output goes to the receiver input. The RXD pin is disconnected from the  
SCI.  
Transmitter  
TXD  
Receiver  
RXD  
Figure 15-31. Loop Operation (LOOPS = 1, RSRC = 0)  
Enable loop operation by setting the LOOPS bit and clearing the RSRC bit in SCI control register 1  
(SCICR1). Setting the LOOPS bit disables the path from the RXD pin to the receiver. Clearing the RSRC  
bit connects the transmitter output to the receiver input. Both the transmitter and receiver must be enabled  
(TE = 1 and RE = 1).  
NOTE  
In loop operation data from the transmitter is not recognized by the receiver  
if RXPOL and TXPOL are not the same.  
15.5 Initialization/Application Information  
See Section 15.3.2, “Register Descriptions”.  
15.5.2 Modes of Operation  
15.5.2.1 Run Mode  
Normal mode of operation.  
To initialize a SCI transmission, see Section 15.4.5.2, “Character Transmission”.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
706  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
15.5.2.2 Wait Mode  
SCI operation in wait mode depends on the state of the SCISWAI bit in the SCI control register 1  
(SCICR1).  
If SCISWAI is clear, the SCI operates normally when the CPU is in wait mode.  
If SCISWAI is set, SCI clock generation ceases and the SCI module enters a power-conservation  
state when the CPU is in wait mode. Setting SCISWAI does not affect the state of the receiver  
enable bit, RE, or the transmitter enable bit, TE.  
If SCISWAI is set, any transmission or reception in progress stops at wait mode entry. The  
transmission or reception resumes when either an internal or external interrupt brings the CPU out  
of wait mode. Exiting wait mode by reset aborts any transmission or reception in progress and  
resets the SCI.  
15.5.2.3 Stop Mode  
The SCI is inactive during stop mode for reduced power consumption. The STOP instruction does not  
affect the SCI register states, but the SCI bus clock will be disabled. The SCI operation resumes from  
where it left off after an external interrupt brings the CPU out of stop mode. Exiting stop mode by reset  
aborts any transmission or reception in progress and resets the SCI.  
The receive input active edge detect circuit is still active in stop mode. An active edge on the receive input  
can be used to bring the CPU out of stop mode.  
15.5.3 Interrupt Operation  
This section describes the interrupt originated by the SCI block.The MCU must service the interrupt  
requests. Table 15-20 lists the eight interrupt sources of the SCI.  
Table 15-20. SCI Interrupt Sources  
Interrupt  
Source  
Local Enable  
Description  
TDRE  
SCISR1[7]  
TIE  
Active high level. Indicates that a byte was transferred from SCIDRH/L to the  
transmit shift register.  
TC  
SCISR1[6]  
SCISR1[5]  
TCIE  
RIE  
Active high level. Indicates that a transmit is complete.  
RDRF  
Active high level. The RDRF interrupt indicates that received data is available  
in the SCI data register.  
OR  
SCISR1[3]  
SCISR1[4]  
Active high level. This interrupt indicates that an overrun condition has occurred.  
Active high level. Indicates that receiver input has become idle.  
IDLE  
ILIE  
RXEDGIF SCIASR1[7]  
RXEDGIE  
Active high level. Indicates that an active edge (falling for RXPOL = 0, rising for  
RXPOL = 1) was detected.  
BERRIF SCIASR1[1]  
BERRIE  
BRKDIE  
Active high level. Indicates that a mismatch between transmitted and received data  
in a single wire application has happened.  
BKDIF  
SCIASR1[0]  
Active high level. Indicates that a break character has been received.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
707  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
15.5.3.1 Description of Interrupt Operation  
The SCI only originates interrupt requests. The following is a description of how the SCI makes a request  
and how the MCU should acknowledge that request. The interrupt vector offset and interrupt number are  
chip dependent. The SCI only has a single interrupt line (SCI Interrupt Signal, active high operation) and  
all the following interrupts, when generated, are ORed together and issued through that port.  
15.5.3.1.1  
TDRE Description  
The TDRE interrupt is set high by the SCI when the transmit shift register receives a byte from the SCI  
data register. A TDRE interrupt indicates that the transmit data register (SCIDRH/L) is empty and that a  
new byte can be written to the SCIDRH/L for transmission.Clear TDRE by reading SCI status register 1  
with TDRE set and then writing to SCI data register low (SCIDRL).  
15.5.3.1.2  
TC Description  
The TC interrupt is set by the SCI when a transmission has been completed. Transmission is completed  
when all bits including the stop bit (if transmitted) have been shifted out and no data is queued to be  
transmitted. No stop bit is transmitted when sending a break character and the TC flag is set (providing  
there is no more data queued for transmission) when the break character has been shifted out. A TC  
interrupt indicates that there is no transmission in progress. TC is set high when the TDRE flag is set and  
no data, preamble, or break character is being transmitted. When TC is set, the TXD pin becomes idle  
(logic 1). Clear TC by reading SCI status register 1 (SCISR1) with TC set and then writing to SCI data  
register low (SCIDRL).TC is cleared automatically when data, preamble, or break is queued and ready to  
be sent.  
15.5.3.1.3  
RDRF Description  
The RDRF interrupt is set when the data in the receive shift register transfers to the SCI data register. A  
RDRF interrupt indicates that the received data has been transferred to the SCI data register and that the  
byte can now be read by the MCU. The RDRF interrupt is cleared by reading the SCI status register one  
(SCISR1) and then reading SCI data register low (SCIDRL).  
15.5.3.1.4  
OR Description  
The OR interrupt is set when software fails to read the SCI data register before the receive shift register  
receives the next frame. The newly acquired data in the shift register will be lost in this case, but the data  
already in the SCI data registers is not affected. The OR interrupt is cleared by reading the SCI status  
register one (SCISR1) and then reading SCI data register low (SCIDRL).  
15.5.3.1.5  
IDLE Description  
The IDLE interrupt is set when 10 consecutive logic 1s (if M = 0) or 11 consecutive logic 1s (if M = 1)  
appear on the receiver input. Once the IDLE is cleared, a valid frame must again set the RDRF flag before  
an idle condition can set the IDLE flag. Clear IDLE by reading SCI status register 1 (SCISR1) with IDLE  
set and then reading SCI data register low (SCIDRL).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
708  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
15.5.3.1.6  
RXEDGIF Description  
The RXEDGIF interrupt is set when an active edge (falling if RXPOL = 0, rising if RXPOL = 1) on the  
RXD pin is detected. Clear RXEDGIF by writing a “1” to the SCIASR1 SCI alternative status register 1.  
15.5.3.1.7  
BERRIF Description  
The BERRIF interrupt is set when a mismatch between the transmitted and the received data in a single  
wire application like LIN was detected. Clear BERRIF by writing a “1” to the SCIASR1 SCI alternative  
status register 1. This flag is also cleared if the bit error detect feature is disabled.  
15.5.3.1.8  
BKDIF Description  
The BKDIF interrupt is set when a break signal was received. Clear BKDIF by writing a “1” to the  
SCIASR1 SCI alternative status register 1. This flag is also cleared if break detect feature is disabled.  
15.5.4 Recovery from Wait Mode  
The SCI interrupt request can be used to bring the CPU out of wait mode.  
15.5.5 Recovery from Stop Mode  
An active edge on the receive input can be used to bring the CPU out of stop mode.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
709  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 15 Serial Communication Interface (S12MC9S12XDP512V5)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
710  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 16  
Serial Peripheral Interface (S12SPIV4)  
16.1 Introduction  
The SPI module allows a duplex, synchronous, serial communication between the MCU and peripheral  
devices. Software can poll the SPI status flags or the SPI operation can be interrupt driven.  
16.1.1 Features  
The MC9S12XDP512 includes these distinctive features:  
Master mode and slave mode  
Bidirectional mode  
Slave select output  
Mode fault error flag with CPU interrupt capability  
Double-buffered data register  
Serial clock with programmable polarity and phase  
Control of SPI operation during wait mode  
16.1.2 Modes of Operation  
The SPI functions in three modes: run, wait, and stop.  
Run mode  
This is the basic mode of operation.  
Wait mode  
SPI operation in wait mode is a configurable low power mode, controlled by the SPISWAI bit  
located in the SPICR2 register. In wait mode, if the SPISWAI bit is clear, the SPI operates like in  
run mode. If the SPISWAI bit is set, the SPI goes into a power conservative state, with the SPI clock  
generation turned off. If the SPI is configured as a master, any transmission in progress stops, but  
is resumed after CPU goes into run mode. If the SPI is configured as a slave, reception and  
transmission of a byte continues, so that the slave stays synchronized to the master.  
Stop mode  
The SPI is inactive in stop mode for reduced power consumption. If the SPI is configured as a  
master, any transmission in progress stops, but is resumed after CPU goes into run mode. If the SPI  
is configured as a slave, reception and transmission of a byte continues, so that the slave stays  
synchronized to the master.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
711  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 16 Serial Peripheral Interface (S12SPIV4)  
This is a high level description only, detailed descriptions of operating modes are contained in  
Section 16.4.7, “Low Power Mode Options”.  
16.1.3 Block Diagram  
Figure 16-1 gives an overview on the SPI architecture. The main parts of the SPI are status, control and  
data registers, shifter logic, baud rate generator, master/slave control logic, and port control logic.  
SPI  
2
SPI Control Register 1  
BIDIROE  
2
SPI Control Register 2  
SPC0  
SPI Status Register  
SPIF  
Slave  
Control  
CPOL  
CPHA  
MOSI  
MODF SPTEF  
Phase +  
Polarity  
Control  
SCK In  
Interrupt Control  
Slave Baud Rate  
SPI  
Interrupt  
Request  
Master Baud Rate  
Phase +  
Polarity  
Control  
SCK Out  
Port  
Control  
Logic  
SCK  
SS  
Baud Rate Generator  
Counter  
Master  
Control  
Bus Clock  
Baud Rate  
Prescaler  
Clock Select  
Shift  
Clock  
Sample  
Clock  
SPPR  
3
3
SPR  
Shifter  
LSBFE=0  
LSBFE=1  
SPI Baud Rate Register  
Data In  
LSBFE=1  
8
MSB  
SPI Data Register  
LSB  
8
LSBFE=0  
Data Out  
LSBFE=0  
LSBFE=1  
Figure 16-1. SPI Block Diagram  
MC9S12XDP512 Data Sheet, Rev. 2.11  
712  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 16 Serial Peripheral Interface (S12SPIV4)  
16.2 External Signal Description  
This section lists the name and description of all ports including inputs and outputs that do, or may, connect  
off chip. The MC9S12XDP512 module has a total of four external pins.  
16.2.1 MOSI — Master Out/Slave In Pin  
This pin is used to transmit data out of the SPI module when it is configured as a master and receive data  
when it is configured as slave.  
16.2.2 MISO — Master In/Slave Out Pin  
This pin is used to transmit data out of the SPI module when it is configured as a slave and receive data  
when it is configured as master.  
16.2.3 SS — Slave Select Pin  
This pin is used to output the select signal from the SPI module to another peripheral with which a data  
transfer is to take place when it is configured as a master and it is used as an input to receive the slave select  
signal when the SPI is configured as slave.  
16.2.4 SCK — Serial Clock Pin  
In master mode, this is the synchronous output clock. In slave mode, this is the synchronous input clock.  
16.3 Memory Map and Register Definition  
This section provides a detailed description of address space and registers used by the SPI.  
The memory map for the MC9S12XDP512 is given in Table 16-1. The address listed for each register is  
the sum of a base address and an address offset. The base address is defined at the SoC level and the address  
offset is defined at the module level. Reads from the reserved bits return zeros and writes to the reserved  
bits have no effect.  
16.3.1 Module Memory Map  
Table 16-1. MC9S12XDP512V4 Memory Map  
Address  
Use  
Access  
0x___0  
0x___1  
0x___2  
0x___3  
0x___4  
0x___5  
0x___6  
0x___7  
SPI Control Register 1 (SPICR1)  
SPI Control Register 2 (SPICR2)  
SPI Baud Rate Register (SPIBR)  
SPI Status Register (SPISR)  
Reserved  
Read / Write  
1
Read / Write  
Read / Write  
1
2
Read  
2 3  
SPI Data Register (SPIDR)  
Reserved  
Read / Write  
2 3  
2 3  
Reserved  
1
2
Certain bits are non-writable.  
Writes to this register are ignored.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
713  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                   
Chapter 16 Serial Peripheral Interface (S12SPIV4)  
3
Reading from this register returns all zeros.  
16.3.2 Register Descriptions  
This section consists of register descriptions in address order. Each description includes a standard register  
diagram with an associated figure number. Details of register bit and field function follow the register  
diagrams, in bit order.  
Register  
Name  
Bit 7  
SPIE  
0
6
SPE  
0
5
SPTIE  
0
4
3
2
CPHA  
0
1
Bit 0  
0x___0  
SPICR1  
R
MSTR  
CPOL  
SSOE  
LSBFE  
W
0x___1  
SPICR2  
R
MODFEN  
BIDIROE  
0
SPISWAI  
SPC0  
W
0x___2  
SPIBR  
R
0
SPPR2  
0
SPPR1  
SPTEF  
SPPR0  
MODF  
SPR2  
0
SPR1  
0
SPR0  
0
W
0x___3  
SPISR  
R
SPIF  
0
W
0x___4  
R
Reserved  
W
0x___5  
SPIDR  
R
Bit 7  
6
5
4
3
2
1
Bit 0  
W
0x___6  
R
Reserved  
W
0x___7  
R
Reserved  
W
= Unimplemented or Reserved  
Figure 16-2. SPI Register Summary  
MC9S12XDP512 Data Sheet, Rev. 2.11  
714  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 16 Serial Peripheral Interface (S12SPIV4)  
16.3.2.1 SPI Control Register 1 (SPICR1)  
Module Base +0x___0  
7
6
5
4
3
2
1
0
R
W
SPIE  
SPE  
SPTIE  
MSTR  
CPOL  
CPHA  
SSOE  
LSBFE  
Reset  
0
0
0
0
0
1
0
0
Figure 16-3. SPI Control Register 1 (SPICR1)  
Read: Anytime  
Write: Anytime  
Table 16-2. SPICR1 Field Descriptions  
Description  
Field  
7
SPI Interrupt Enable Bit — This bit enables SPI interrupt requests, if SPIF or MODF status flag is set.  
SPIE  
0 SPI interrupts disabled.  
1 SPI interrupts enabled.  
6
SPE  
SPI System Enable Bit — This bit enables the SPI system and dedicates the SPI port pins to SPI system  
functions. If SPE is cleared, SPI is disabled and forced into idle state, status bits in SPISR register are reset.  
0 SPI disabled (lower power consumption).  
1 SPI enabled, port pins are dedicated to SPI functions.  
5
SPI Transmit Interrupt Enable — This bit enables SPI interrupt requests, if SPTEF flag is set.  
0 SPTEF interrupt disabled.  
SPTIE  
1 SPTEF interrupt enabled.  
4
SPI Master/Slave Mode Select Bit — This bit selects whether the SPI operates in master or slave mode.  
Switching the SPI from master to slave or vice versa forces the SPI system into idle state.  
0 SPI is in slave mode.  
MSTR  
1 SPI is in master mode.  
3
SPI Clock Polarity Bit — This bit selects an inverted or non-inverted SPI clock. To transmit data between SPI  
modules, the SPI modules must have identical CPOL values. In master mode, a change of this bit will abort a  
transmission in progress and force the SPI system into idle state.  
CPOL  
0 Active-high clocks selected. In idle state SCK is low.  
1 Active-low clocks selected. In idle state SCK is high.  
2
SPI Clock Phase Bit — This bit is used to select the SPI clock format. In master mode, a change of this bit will  
abort a transmission in progress and force the SPI system into idle state.  
CPHA  
0 Sampling of data occurs at odd edges (1,3,5,...,15) of the SCK clock.  
1 Sampling of data occurs at even edges (2,4,6,...,16) of the SCK clock.  
1
Slave Select Output Enable — The SS output feature is enabled only in master mode, if MODFEN is set, by  
asserting the SSOE as shown in Table 16-3. In master mode, a change of this bit will abort a transmission in  
progress and force the SPI system into idle state.  
SSOE  
0
LSB-First Enable — This bit does not affect the position of the MSB and LSB in the data register. Reads and  
writes of the data register always have the MSB in bit 7. In master mode, a change of this bit will abort a  
transmission in progress and force the SPI system into idle state.  
LSBFE  
0 Data is transferred most significant bit first.  
1 Data is transferred least significant bit first.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
715  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 16 Serial Peripheral Interface (S12SPIV4)  
Table 16-3. SS Input / Output Selection  
MODFEN  
SSOE  
Master Mode  
Slave Mode  
0
0
1
1
0
1
0
1
SS not used by SPI  
SS not used by SPI  
SS input  
SS input  
SS input  
SS input  
SS input with MODF feature  
SS is slave select output  
16.3.2.2 SPI Control Register 2 (SPICR2)  
Module Base +0x___1  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
MODFEN  
BIDIROE  
SPISWAI  
0
SPC0  
Reset  
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 16-4. SPI Control Register 2 (SPICR2)  
Read: Anytime  
Write: Anytime; writes to the reserved bits have no effect  
Table 16-4. SPICR2 Field Descriptions  
Field  
Description  
Mode Fault Enable Bit — This bit allows the MODF failure to be detected. If the SPI is in master mode and  
4
MODFEN MODFEN is cleared, then the SS port pin is not used by the SPI. In slave mode, the SS is available only as an  
input regardless of the value of MODFEN. For an overview on the impact of the MODFEN bit on the SS port pin  
configuration, refer to Table 16-5. In master mode, a change of this bit will abort a transmission in progress and  
force the SPI system into idle state.  
0 SS port pin is not used by the SPI.  
1 SS port pin with MODF feature.  
3
Output Enable in the Bidirectional Mode of Operation — This bit controls the MOSI and MISO output buffer  
of the SPI, when in bidirectional mode of operation (SPC0 is set). In master mode, this bit controls the output  
buffer of the MOSI port, in slave mode it controls the output buffer of the MISO port. In master mode, with SPC0  
set, a change of this bit will abort a transmission in progress and force the SPI into idle state.  
0 Output buffer disabled.  
BIDIROE  
1 Output buffer enabled.  
1
SPI Stop in Wait Mode Bit — This bit is used for power conservation while in wait mode.  
0 SPI clock operates normally in wait mode.  
SPISWAI  
1 Stop SPI clock generation when in wait mode.  
0
Serial Pin Control Bit 0 — This bit enables bidirectional pin configurations as shown in Table 16-5. In master  
SPC0  
mode, a change of this bit will abort a transmission in progress and force the SPI system into idle state.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
716  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 16 Serial Peripheral Interface (S12SPIV4)  
Table 16-5. Bidirectional Pin Configurations  
Pin Mode  
SPC0  
BIDIROE  
MISO  
MOSI  
Master Mode of Operation  
Normal  
0
1
X
0
1
Master In  
Master Out  
Master In  
Bidirectional  
MISO not used by SPI  
Master I/O  
Slave Mode of Operation  
Normal  
0
1
X
0
1
Slave Out  
Slave In  
Slave In  
Bidirectional  
MOSI not used by SPI  
Slave I/O  
16.3.2.3 SPI Baud Rate Register (SPIBR)  
Module Base +0x___2  
7
6
5
4
3
2
1
0
R
W
0
0
SPPR2  
SPPR1  
SPPR0  
SPR2  
SPR1  
SPR0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 16-5. SPI Baud Rate Register (SPIBR)  
Read: Anytime  
Write: Anytime; writes to the reserved bits have no effect  
Table 16-6. SPIBR Field Descriptions  
Field  
Description  
SPI Baud Rate Preselection Bits These bits specify the SPI baud rates as shown in Table 16-7. In master  
6–4  
SPPR[2:0] mode, a change of these bits will abort a transmission in progress and force the SPI system into idle state.  
2–0  
SPI Baud Rate Selection Bits These bits specify the SPI baud rates as shown in Table 16-7. In master mode,  
SPR[2:0]  
a change of these bits will abort a transmission in progress and force the SPI system into idle state.  
The baud rate divisor equation is as follows:  
(SPR + 1)  
BaudRateDivisor = (SPPR + 1) 2  
Eqn. 16-1  
Eqn. 16-2  
The baud rate can be calculated with the following equation:  
Baud Rate = BusClock / BaudRateDivisor  
NOTE  
For maximum allowed baud rates, please refer to the SPI Electrical  
Specification in the Electricals chapter of this data sheet.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
717  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 16 Serial Peripheral Interface (S12SPIV4)  
Table 16-7. Example SPI Baud Rate Selection (25 MHz Bus Clock)  
Baud Rate  
Divisor  
SPPR2  
SPPR1  
SPPR0  
SPR2  
SPR1  
SPR0  
Baud Rate  
0
0
0
0
0
0
0
0
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
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
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
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
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
2
4
12.5 MHz  
6.25 MHz  
8
3.125 MHz  
1.5625 MHz  
781.25 kHz  
390.63 kHz  
195.31 kHz  
97.66 kHz  
6.25 MHz  
16  
32  
64  
128  
256  
4
8
3.125 MHz  
1.5625 MHz  
781.25 kHz  
390.63 kHz  
195.31 kHz  
97.66 kHz  
48.83 kHz  
4.16667 MHz  
2.08333 MHz  
1.04167 MHz  
520.83 kHz  
260.42 kHz  
130.21 kHz  
65.10 kHz  
32.55 kHz  
3.125 MHz  
1.5625 MHz  
781.25 kHz  
390.63 kHz  
195.31 kHz  
97.66 kHz  
48.83 kHz  
24.41 kHz  
2.5 MHz  
16  
32  
64  
128  
256  
512  
6
12  
24  
48  
96  
192  
384  
768  
8
16  
32  
64  
128  
256  
512  
1024  
10  
20  
1.25 MHz  
40  
625 kHz  
80  
312.5 kHz  
156.25 kHz  
78.13 kHz  
39.06 kHz  
160  
320  
640  
MC9S12XDP512 Data Sheet, Rev. 2.11  
718  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 16 Serial Peripheral Interface (S12SPIV4)  
Table 16-7. Example SPI Baud Rate Selection (25 MHz Bus Clock) (continued)  
Baud Rate  
Divisor  
SPPR2  
SPPR1  
SPPR0  
SPR2  
SPR1  
SPR0  
Baud Rate  
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
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
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1280  
12  
19.53 kHz  
2.08333 MHz  
1.04167 MHz  
520.83 kHz  
260.42 kHz  
130.21 kHz  
65.10 kHz  
24  
48  
96  
192  
384  
768  
1536  
14  
32.55 kHz  
16.28 kHz  
1.78571 MHz  
892.86 kHz  
446.43 kHz  
223.21 kHz  
111.61 kHz  
55.80 kHz  
28  
56  
112  
224  
448  
896  
1792  
16  
27.90 kHz  
13.95 kHz  
1.5625 MHz  
781.25 kHz  
390.63 kHz  
195.31 kHz  
97.66 kHz  
32  
64  
128  
256  
512  
1024  
2048  
48.83 kHz  
24.41 kHz  
12.21 kHz  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
719  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 16 Serial Peripheral Interface (S12SPIV4)  
16.3.2.4 SPI Status Register (SPISR)  
Module Base +0x___3  
7
6
5
4
3
2
1
0
R
W
SPIF  
0
SPTEF  
MODF  
0
0
0
0
Reset  
0
0
1
0
0
0
0
0
= Unimplemented or Reserved  
Figure 16-6. SPI Status Register (SPISR)  
Read: Anytime  
Write: Has no effect  
Table 16-8. SPISR Field Descriptions  
Description  
Field  
7
SPIF Interrupt Flag — This bit is set after a received data byte has been transferred into the SPI data register.  
SPIF  
This bit is cleared by reading the SPISR register (with SPIF set) followed by a read access to the SPI data  
register.  
0 Transfer not yet complete.  
1 New data copied to SPIDR.  
5
SPI Transmit Empty Interrupt Flag — If set, this bit indicates that the transmit data register is empty. To clear  
this bit and place data into the transmit data register, SPISR must be read with SPTEF = 1, followed by a write  
to SPIDR. Any write to the SPI data register without reading SPTEF = 1, is effectively ignored.  
0 SPI data register not empty.  
SPTEF  
1 SPI data register empty.  
4
Mode Fault Flag — This bit is set if the SS input becomes low while the SPI is configured as a master and mode  
fault detection is enabled, MODFEN bit of SPICR2 register is set. Refer to MODFEN bit description in  
Section 16.3.2.2, “SPI Control Register 2 (SPICR2)”. The flag is cleared automatically by a read of the SPI status  
register (with MODF set) followed by a write to the SPI control register 1.  
0 Mode fault has not occurred.  
MODF  
1 Mode fault has occurred.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
720  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 16 Serial Peripheral Interface (S12SPIV4)  
16.3.2.5 SPI Data Register (SPIDR)  
Module Base +0x___5  
7
6
5
4
3
2
1
0
R
W
Bit 7  
6
5
4
3
2
2
Bit 0  
Reset  
0
0
0
0
0
0
0
0
Figure 16-7. SPI Data Register (SPIDR)  
Read: Anytime; normally read only when SPIF is set  
Write: Anytime  
The SPI data register is both the input and output register for SPI data. A write to this register  
allows a data byte to be queued and transmitted. For an SPI configured as a master, a queued data  
byte is transmitted immediately after the previous transmission has completed. The SPI transmitter  
empty flag SPTEF in the SPISR register indicates when the SPI data register is ready to accept new  
data.  
Received data in the SPIDR is valid when SPIF is set.  
If SPIF is cleared and a byte has been received, the received byte is transferred from the receive  
shift register to the SPIDR and SPIF is set.  
If SPIF is set and not serviced, and a second byte has been received, the second received byte is  
kept as valid byte in the receive shift register until the start of another transmission. The byte in the  
SPIDR does not change.  
If SPIF is set and a valid byte is in the receive shift register, and SPIF is serviced before the start of  
a third transmission, the byte in the receive shift register is transferred into the SPIDR and SPIF  
remains set (see Figure 16-8).  
If SPIF is set and a valid byte is in the receive shift register, and SPIF is serviced after the start of  
a third transmission, the byte in the receive shift register has become invalid and is not transferred  
into the SPIDR (see Figure 16-9).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
721  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 16 Serial Peripheral Interface (S12SPIV4)  
Data A Received  
Data B Received  
Data C Received  
SPIF Serviced  
Receive Shift Register  
Data B  
Data A  
Data C  
SPIF  
Data C  
SPI Data Register  
Data B  
Data A  
= Unspecified  
= Reception in progress  
Figure 16-8. Reception with SPIF Serviced in Time  
Data A Received  
Data B Received  
Data C Received  
Data B Lost  
SPIF Serviced  
Receive Shift Register  
SPIF  
Data B  
Data C  
Data C  
Data A  
SPI Data Register  
Data A  
= Unspecified  
= Reception in progress  
Figure 16-9. Reception with SPIF Serviced too Late  
MC9S12XDP512 Data Sheet, Rev. 2.11  
722  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 16 Serial Peripheral Interface (S12SPIV4)  
16.4 Functional Description  
The SPI module allows a duplex, synchronous, serial communication between the MCU and peripheral  
devices. Software can poll the SPI status flags or SPI operation can be interrupt driven.  
The SPI system is enabled by setting the SPI enable (SPE) bit in SPI control register 1. While SPE is set,  
the four associated SPI port pins are dedicated to the SPI function as:  
Slave select (SS)  
Serial clock (SCK)  
Master out/slave in (MOSI)  
Master in/slave out (MISO)  
The main element of the SPI system is the SPI data register. The 8-bit data register in the master and the  
8-bit data register in the slave are linked by the MOSI and MISO pins to form a distributed 16-bit register.  
When a data transfer operation is performed, this 16-bit register is serially shifted eight bit positions by the  
S-clock from the master, so data is exchanged between the master and the slave. Data written to the master  
SPI data register becomes the output data for the slave, and data read from the master SPI data register after  
a transfer operation is the input data from the slave.  
A read of SPISR with SPTEF = 1 followed by a write to SPIDR puts data into the transmit data register.  
When a transfer is complete and SPIF is cleared, received data is moved into the receive data register. This  
8-bit data register acts as the SPI receive data register for reads and as the SPI transmit data register for  
writes. A single SPI register address is used for reading data from the read data buffer and for writing data  
to the transmit data register.  
The clock phase control bit (CPHA) and a clock polarity control bit (CPOL) in the SPI control register 1  
(SPICR1) select one of four possible clock formats to be used by the SPI system. The CPOL bit simply  
different protocols by sampling data on odd numbered SCK edges or on even numbered SCK edges (see  
Section 16.4.3, “Transmission Formats”).  
The SPI can be configured to operate as a master or as a slave. When the MSTR bit in SPI control register1  
is set, master mode is selected, when the MSTR bit is clear, slave mode is selected.  
NOTE  
A change of CPOL or MSTR bit while there is a received byte pending in  
the receive shift register will destroy the received byte and must be avoided.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
723  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 16 Serial Peripheral Interface (S12SPIV4)  
16.4.1 Master Mode  
The SPI operates in master mode when the MSTR bit is set. Only a master SPI module can initiate  
transmissions. A transmission begins by writing to the master SPI data register. If the shift register is  
empty, the byte immediately transfers to the shift register. The byte begins shifting out on the MOSI pin  
under the control of the serial clock.  
S-clock  
The SPR2, SPR1, and SPR0 baud rate selection bits, in conjunction with the SPPR2, SPPR1, and  
SPPR0 baud rate preselection bits in the SPI baud rate register, control the baud rate generator and  
determine the speed of the transmission. The SCK pin is the SPI clock output. Through the SCK  
pin, the baud rate generator of the master controls the shift register of the slave peripheral.  
MOSI, MISO pin  
In master mode, the function of the serial data output pin (MOSI) and the serial data input pin  
(MISO) is determined by the SPC0 and BIDIROE control bits.  
SS pin  
If MODFEN and SSOE are set, the SS pin is configured as slave select output. The SS output  
becomes low during each transmission and is high when the SPI is in idle state.  
If MODFEN is set and SSOE is cleared, the SS pin is configured as input for detecting mode fault  
error. If the SS input becomes low this indicates a mode fault error where another master tries to  
drive the MOSI and SCK lines. In this case, the SPI immediately switches to slave mode, by  
clearing the MSTR bit and also disables the slave output buffer MISO (or SISO in bidirectional  
mode). So the result is that all outputs are disabled and SCK, MOSI, and MISO are inputs. If a  
transmission is in progress when the mode fault occurs, the transmission is aborted and the SPI is  
forced into idle state.  
This mode fault error also sets the mode fault (MODF) flag in the SPI status register (SPISR). If  
the SPI interrupt enable bit (SPIE) is set when the MODF flag becomes set, then an SPI interrupt  
sequence is also requested.  
When a write to the SPI data register in the master occurs, there is a half SCK-cycle delay. After  
depending on the clock format specified by the SPI clock phase bit, CPHA, in SPI control register 1  
(see Section 16.4.3, “Transmission Formats”).  
NOTE  
A change of the bits CPOL, CPHA, SSOE, LSBFE, MODFEN, SPC0, or  
BIDIROE with SPC0 set, SPPR2-SPPR0 and SPR2-SPR0 in master mode  
will abort a transmission in progress and force the SPI into idle state. The  
remote slave cannot detect this, therefore the master must ensure that the  
remote slave is returned to idle state.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
724  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 16 Serial Peripheral Interface (S12SPIV4)  
16.4.2 Slave Mode  
The SPI operates in slave mode when the MSTR bit in SPI control register 1 is clear.  
SCK clock  
In slave mode, SCK is the SPI clock input from the master.  
MISO, MOSI pin  
In slave mode, the function of the serial data output pin (MISO) and serial data input pin (MOSI)  
is determined by the SPC0 bit and BIDIROE bit in SPI control register 2.  
SS pin  
The SS pin is the slave select input. Before a data transmission occurs, the SS pin of the slave SPI  
must be low. SS must remain low until the transmission is complete. If SS goes high, the SPI is  
forced into idle state.  
The SS input also controls the serial data output pin, if SS is high (not selected), the serial data  
output pin is high impedance, and, if SS is low, the first bit in the SPI data register is driven out of  
the serial data output pin. Also, if the slave is not selected (SS is high), then the SCK input is  
ignored and no internal shifting of the SPI shift register occurs.  
Although the SPI is capable of duplex operation, some SPI peripherals are capable of only  
receiving SPI data in a slave mode. For these simpler devices, there is no serial data out pin.  
NOTE  
When peripherals with duplex capability are used, take care not to  
simultaneously enable two receivers whose serial outputs drive the same  
system slave’s serial data output line.  
As long as no more than one slave device drives the system slave’s serial data output line, it is possible for  
several slaves to receive the same transmission from a master, although the master would not receive return  
information from all of the receiving slaves.  
If the CPHA bit in SPI control register 1 is clear, odd numbered edges on the SCK input cause the data at  
the serial data input pin to be latched. Even numbered edges cause the value previously latched from the  
serial data input pin to shift into the LSB or MSB of the SPI shift register, depending on the LSBFE bit.  
If the CPHA bit is set, even numbered edges on the SCK input cause the data at the serial data input pin to  
be latched. Odd numbered edges cause the value previously latched from the serial data input pin to shift  
into the LSB or MSB of the SPI shift register, depending on the LSBFE bit.  
When CPHA is set, the first edge is used to get the first data bit onto the serial data output pin. When CPHA  
is clear and the SS input is low (slave selected), the first bit of the SPI data is driven out of the serial data  
output pin. After the eighth shift, the transfer is considered complete and the received data is transferred  
into the SPI data register. To indicate transfer is complete, the SPIF flag in the SPI status register is set.  
NOTE  
A change of the bits CPOL, CPHA, SSOE, LSBFE, MODFEN, SPC0, or  
BIDIROE with SPC0 set in slave mode will corrupt a transmission in  
progress and must be avoided.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
725  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 16 Serial Peripheral Interface (S12SPIV4)  
16.4.3 Transmission Formats  
During an SPI transmission, data is transmitted (shifted out serially) and received (shifted in serially)  
simultaneously. The serial clock (SCK) synchronizes shifting and sampling of the information on the two  
serial data lines. A slave select line allows selection of an individual slave SPI device; slave devices that  
are not selected do not interfere with SPI bus activities. Optionally, on a master SPI device, the slave select  
line can be used to indicate multiple-master bus contention.  
MASTER SPI  
SLAVE SPI  
MISO  
MOSI  
MISO  
MOSI  
SHIFT REGISTER  
SHIFT REGISTER  
SCK  
SS  
SCK  
SS  
BAUD RATE  
GENERATOR  
V
DD  
Figure 16-10. Master/Slave Transfer Block Diagram  
16.4.3.1 Clock Phase and Polarity Controls  
Using two bits in the SPI control register 1, software selects one of four combinations of serial clock phase  
and polarity.  
The CPOL clock polarity control bit specifies an active high or low clock and has no significant effect on  
the transmission format.  
The CPHA clock phase control bit selects one of two fundamentally different transmission formats.  
Clock phase and polarity should be identical for the master SPI device and the communicating slave  
device. In some cases, the phase and polarity are changed between transmissions to allow a master device  
to communicate with peripheral slaves having different requirements.  
16.4.3.2 CPHA = 0 Transfer Format  
The first edge on the SCK line is used to clock the first data bit of the slave into the master and the first  
data bit of the master into the slave. In some peripherals, the first bit of the slave’s data is available at the  
slave’s data out pin as soon as the slave is selected. In this format, the first SCK edge is issued a half cycle  
after SS has become low.  
A half SCK cycle later, the second edge appears on the SCK line. When this second edge occurs, the value  
previously latched from the serial data input pin is shifted into the LSB or MSB of the shift register,  
depending on LSBFE bit.  
After this second edge, the next bit of the SPI master data is transmitted out of the serial data output pin of  
the master to the serial input pin on the slave. This process continues for a total of 16 edges on the SCK  
line, with data being latched on odd numbered edges and shifted on even numbered edges.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
726  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 16 Serial Peripheral Interface (S12SPIV4)  
Data reception is double buffered. Data is shifted serially into the SPI shift register during the transfer and  
is transferred to the parallel SPI data register after the last bit is shifted in.  
After the 16th (last) SCK edge:  
Data that was previously in the master SPI data register should now be in the slave data register and  
the data that was in the slave data register should be in the master.  
The SPIF flag in the SPI status register is set, indicating that the transfer is complete.  
Figure 16-11 is a timing diagram of an SPI transfer where CPHA = 0. SCK waveforms are shown for  
CPOL = 0 and CPOL = 1. The diagram may be interpreted as a master or slave timing diagram because  
the SCK, MISO, and MOSI pins are connected directly between the master and the slave. The MISO signal  
is the output from the slave and the MOSI signal is the output from the master. The SS pin of the master  
must be either high or reconfigured as a general-purpose output not affecting the SPI.  
End of Idle State  
Begin of Idle State  
Begin  
3
End  
Transfer  
1
2
4
5
6
7
8
9
10 11 12 13 14 15 16  
SCK Edge Number  
SCK (CPOL = 0)  
SCK (CPOL = 1)  
SAMPLE I  
MOSI/MISO  
CHANGE O  
MOSI pin  
CHANGE O  
MISO pin  
SEL SS (O)  
Master only  
SEL SS (I)  
t
t
t
t
L
L
T
I
MSB first (LSBFE = 0): MSB  
LSB first (LSBFE = 1): LSB  
Bit 6  
Bit 1  
Bit 5  
Bit 2  
Bit 4  
Bit 3  
Bit 3  
Bit 4  
Bit 2  
Bit 5  
Bit 1  
Bit 6  
LSB Minimum 1/2 SCK  
for t , t , t  
MSB  
T
l
L
t = Minimum leading time before the first SCK edge  
L
t = Minimum trailing time after the last SCK edge  
T
t = Minimum idling time between transfers (minimum SS high time)  
I
t , t , and t are guaranteed for the master mode and required for the slave mode.  
L
T
I
Figure 16-11. SPI Clock Format 0 (CPHA = 0)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
727  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 16 Serial Peripheral Interface (S12SPIV4)  
In slave mode, if the SS line is not deasserted between the successive transmissions then the content of the  
SPI data register is not transmitted; instead the last received byte is transmitted. If the SS line is deasserted  
for at least minimum idle time (half SCK cycle) between successive transmissions, then the content of the  
SPI data register is transmitted.  
In master mode, with slave select output enabled the SS line is always deasserted and reasserted between  
successive transfers for at least minimum idle time.  
16.4.3.3 CPHA = 1 Transfer Format  
Some peripherals require the first SCK edge before the first data bit becomes available at the data out pin,  
the second edge clocks data into the system. In this format, the first SCK edge is issued by setting the  
CPHA bit at the beginning of the 8-cycle transfer operation.  
The first edge of SCK occurs immediately after the half SCK clock cycle synchronization delay. This first  
edge commands the slave to transfer its first data bit to the serial data input pin of the master.  
A half SCK cycle later, the second edge appears on the SCK pin. This is the latching edge for both the  
master and slave.  
When the third edge occurs, the value previously latched from the serial data input pin is shifted into the  
LSB or MSB of the SPI shift register, depending on LSBFE bit. After this edge, the next bit of the master  
data is coupled out of the serial data output pin of the master to the serial input pin on the slave.  
This process continues for a total of 16 edges on the SCK line with data being latched on even numbered  
edges and shifting taking place on odd numbered edges.  
Data reception is double buffered, data is serially shifted into the SPI shift register during the transfer and  
is transferred to the parallel SPI data register after the last bit is shifted in.  
After the 16th SCK edge:  
Data that was previously in the SPI data register of the master is now in the data register of the  
slave, and data that was in the data register of the slave is in the master.  
The SPIF flag bit in SPISR is set indicating that the transfer is complete.  
Figure 16-12 shows two clocking variations for CPHA = 1. The diagram may be interpreted as a master or  
slave timing diagram because the SCK, MISO, and MOSI pins are connected directly between the master  
and the slave. The MISO signal is the output from the slave, and the MOSI signal is the output from the  
master. The SS line is the slave select input to the slave. The SS pin of the master must be either high or  
reconfigured as a general-purpose output not affecting the SPI.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
728  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 16 Serial Peripheral Interface (S12SPIV4)  
End of Idle State  
SCK Edge Number  
SCK (CPOL = 0)  
Begin  
4
End  
Begin of Idle State  
Transfer  
1
2
3
5
6
7
8
9
10 11 12 13 14 15 16  
SCK (CPOL = 1)  
SAMPLE I  
MOSI/MISO  
CHANGE O  
MOSI pin  
CHANGE O  
MISO pin  
SEL SS (O)  
Master only  
SEL SS (I)  
t
t
t
t
L
L
T
I
MSB first (LSBFE = 0): MSB  
LSB first (LSBFE = 1): LSB  
Bit 6  
Bit 1  
Bit 5  
Bit 2  
Bit 4  
Bit 3  
Bit 3  
Bit 4  
Bit 2  
Bit 5  
Bit 1  
Bit 6  
LSB Minimum 1/2 SCK  
for t , t , t  
MSB  
T
l
L
t = Minimum leading time before the first SCK edge, not required for back-to-back transfers  
L
t = Minimum trailing time after the last SCK edge  
T
t = Minimum idling time between transfers (minimum SS high time), not required for back-to-back transfers  
I
Figure 16-12. SPI Clock Format 1 (CPHA = 1)  
The SS line can remain active low between successive transfers (can be tied low at all times). This format  
is sometimes preferred in systems having a single fixed master and a single slave that drive the MISO data  
line.  
Back-to-back transfers in master mode  
In master mode, if a transmission has completed and a new data byte is available in the SPI data  
register, this byte is sent out immediately without a trailing and minimum idle time.  
The SPI interrupt request flag (SPIF) is common to both the master and slave modes. SPIF gets set one  
half SCK cycle after the last SCK edge.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
729  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 16 Serial Peripheral Interface (S12SPIV4)  
16.4.4 SPI Baud Rate Generation  
Baud rate generation consists of a series of divider stages. Six bits in the SPI baud rate register (SPPR2,  
SPPR1, SPPR0, SPR2, SPR1, and SPR0) determine the divisor to the SPI module clock which results in  
the SPI baud rate.  
The SPI clock rate is determined by the product of the value in the baud rate preselection bits  
(SPPR2–SPPR0) and the value in the baud rate selection bits (SPR2–SPR0). The module clock divisor  
equation is shown in Equation 16-3.  
(SPR + 1)  
BaudRateDivisor = (SPPR + 1) 2  
Eqn. 16-3  
When all bits are clear (the default condition), the SPI module clock is divided by 2. When the selection  
bits (SPR2–SPR0) are 001 and the preselection bits (SPPR2–SPPR0) are 000, the module clock divisor  
becomes 4. When the selection bits are 010, the module clock divisor becomes 8, etc.  
When the preselection bits are 001, the divisor determined by the selection bits is multiplied by 2. When  
the preselection bits are 010, the divisor is multiplied by 3, etc. See Table 16-7 for baud rate calculations  
for all bit conditions, based on a 25 MHz bus clock. The two sets of selects allows the clock to be divided  
by a non-power of two to achieve other baud rates such as divide by 6, divide by 10, etc.  
The baud rate generator is activated only when the SPI is in master mode and a serial transfer is taking  
place. In the other cases, the divider is disabled to decrease I current.  
DD  
NOTE  
For maximum allowed baud rates, please refer to the SPI Electrical  
Specification in the Electricals chapter of this data sheet.  
16.4.5 Special Features  
16.4.5.1 SS Output  
The SS output feature automatically drives the SS pin low during transmission to select external devices  
and drives it high during idle to deselect external devices. When SS output is selected, the SS output pin  
is connected to the SS input pin of the external device.  
The SS output is available only in master mode during normal SPI operation by asserting SSOE and  
MODFEN bit as shown in Table 16-3.  
The mode fault feature is disabled while SS output is enabled.  
NOTE  
Care must be taken when using the SS output feature in a multimaster  
system because the mode fault feature is not available for detecting system  
errors between masters.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
730  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 16 Serial Peripheral Interface (S12SPIV4)  
16.4.5.2 Bidirectional Mode (MOMI or SISO)  
The bidirectional mode is selected when the SPC0 bit is set in SPI control register 2 (see Table 16-9). In  
this mode, the SPI uses only one serial data pin for the interface with external device(s). The MSTR bit  
decides which pin to use. The MOSI pin becomes the serial data I/O (MOMI) pin for the master mode, and  
the MISO pin becomes serial data I/O (SISO) pin for the slave mode. The MISO pin in master mode and  
MOSI pin in slave mode are not used by the SPI.  
Table 16-9. Normal Mode and Bidirectional Mode  
When SPE = 1  
Master Mode MSTR = 1  
Slave Mode MSTR = 0  
Serial Out  
Serial In  
MOSI  
MISO  
MOSI  
MISO  
Normal Mode  
SPC0 = 0  
SPI  
SPI  
Serial Out  
Serial In  
Serial In  
SPI  
Serial Out  
MOMI  
Bidirectional Mode  
SPC0 = 1  
BIDIROE  
SPI  
BIDIROE  
Serial In  
Serial Out  
SISO  
The direction of each serial I/O pin depends on the BIDIROE bit. If the pin is configured as an output,  
serial data from the shift register is driven out on the pin. The same pin is also the serial input to the shift  
register.  
The SCK is output for the master mode and input for the slave mode.  
The SS is the input or output for the master mode, and it is always the input for the slave mode.  
The bidirectional mode does not affect SCK and SS functions.  
NOTE  
In bidirectional master mode, with mode fault enabled, both data pins MISO  
and MOSI can be occupied by the SPI, though MOSI is normally used for  
transmissions in bidirectional mode and MISO is not used by the SPI. If a  
mode fault occurs, the SPI is automatically switched to slave mode. In this  
case MISO becomes occupied by the SPI and MOSI is not used. This must  
be considered, if the MISO pin is used for another purpose.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
731  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 16 Serial Peripheral Interface (S12SPIV4)  
16.4.6 Error Conditions  
The SPI has one error condition:  
Mode fault error  
16.4.6.1 Mode Fault Error  
If the SS input becomes low while the SPI is configured as a master, it indicates a system error where more  
than one master may be trying to drive the MOSI and SCK lines simultaneously. This condition is not  
permitted in normal operation, the MODF bit in the SPI status register is set automatically, provided the  
MODFEN bit is set.  
In the special case where the SPI is in master mode and MODFEN bit is cleared, the SS pin is not used by  
the SPI. In this special case, the mode fault error function is inhibited and MODF remains cleared. In case  
the SPI system is configured as a slave, the SS pin is a dedicated input pin. Mode fault error doesn’t occur  
in slave mode.  
If a mode fault error occurs, the SPI is switched to slave mode, with the exception that the slave output  
buffer is disabled. So SCK, MISO, and MOSI pins are forced to be high impedance inputs to avoid any  
possibility of conflict with another output driver. A transmission in progress is aborted and the SPI is  
forced into idle state.  
If the mode fault error occurs in the bidirectional mode for a SPI system configured in master mode, output  
enable of the MOMI (MOSI in bidirectional mode) is cleared if it was set. No mode fault error occurs in  
the bidirectional mode for SPI system configured in slave mode.  
The mode fault flag is cleared automatically by a read of the SPI status register (with MODF set) followed  
by a write to SPI control register 1. If the mode fault flag is cleared, the SPI becomes a normal master or  
slave again.  
NOTE  
If a mode fault error occurs and a received data byte is pending in the receive  
shift register, this data byte will be lost.  
16.4.7 Low Power Mode Options  
16.4.7.1 SPI in Run Mode  
In run mode with the SPI system enable (SPE) bit in the SPI control register clear, the SPI system is in a  
low-power, disabled state. SPI registers remain accessible, but clocks to the core of this module are  
disabled.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
732  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 16 Serial Peripheral Interface (S12SPIV4)  
16.4.7.2 SPI in Wait Mode  
SPI operation in wait mode depends upon the state of the SPISWAI bit in SPI control register 2.  
If SPISWAI is clear, the SPI operates normally when the CPU is in wait mode  
If SPISWAI is set, SPI clock generation ceases and the SPI module enters a power conservation  
state when the CPU is in wait mode.  
– If SPISWAI is set and the SPI is configured for master, any transmission and reception in  
progress stops at wait mode entry. The transmission and reception resumes when the SPI exits  
wait mode.  
– If SPISWAI is set and the SPI is configured as a slave, any transmission and reception in  
progress continues if the SCK continues to be driven from the master. This keeps the slave  
synchronized to the master and the SCK.  
If the master transmits several bytes while the slave is in wait mode, the slave will continue to  
send out bytes consistent with the operation mode at the start of wait mode (i.e., if the slave is  
currently sending its SPIDR to the master, it will continue to send the same byte. Else if the  
slave is currently sending the last received byte from the master, it will continue to send each  
previous master byte).  
NOTE  
Care must be taken when expecting data from a master while the slave is in  
wait or stop mode. Even though the shift register will continue to operate,  
the rest of the SPI is shut down (i.e., a SPIF interrupt will not be generated  
until exiting stop or wait mode). Also, the byte from the shift register will  
not be copied into the SPIDR register until after the slave SPI has exited wait  
or stop mode. In slave mode, a received byte pending in the receive shift  
register will be lost when entering wait or stop mode. An SPIF flag and  
SPIDR copy is generated only if wait mode is entered or exited during a  
tranmission. If the slave enters wait mode in idle mode and exits wait mode  
in idle mode, neither a SPIF nor a SPIDR copy will occur.  
16.4.7.3 SPI in Stop Mode  
Stop mode is dependent on the system. The SPI enters stop mode when the module clock is disabled (held  
high or low). If the SPI is in master mode and exchanging data when the CPU enters stop mode, the  
transmission is frozen until the CPU exits stop mode. After stop, data to and from the external SPI is  
exchanged correctly. In slave mode, the SPI will stay synchronized with the master.  
The stop mode is not dependent on the SPISWAI bit.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
733  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 16 Serial Peripheral Interface (S12SPIV4)  
16.4.7.4 Reset  
The reset values of registers and signals are described in Section 16.3, “Memory Map and Register  
Definition”, which details the registers and their bit fields.  
If a data transmission occurs in slave mode after reset without a write to SPIDR, it will transmit  
garbage, or the byte last received from the master before the reset.  
Reading from the SPIDR after reset will always read a byte of zeros.  
16.4.7.5 Interrupts  
The MC9S12XDP512 only originates interrupt requests when SPI is enabled (SPE bit in SPICR1 set). The  
following is a description of how the MC9S12XDP512 makes a request and how the MCU should  
acknowledge that request. The interrupt vector offset and interrupt priority are chip dependent.  
The interrupt flags MODF, SPIF, and SPTEF are logically ORed to generate an interrupt request.  
16.4.7.5.1  
MODF  
MODF occurs when the master detects an error on the SS pin. The master SPI must be configured for the  
MODF feature (see Table 16-3). After MODF is set, the current transfer is aborted and the following bit is  
changed:  
MSTR = 0, The master bit in SPICR1 resets.  
interrupt. This interrupt will stay active while the MODF flag is set. MODF has an automatic clearing  
process which is described in Section 16.3.2.4, “SPI Status Register (SPISR)”.  
16.4.7.5.2  
SPIF  
SPIF occurs when new data has been received and copied to the SPI data register. After SPIF is set, it does  
not clear until it is serviced. SPIF has an automatic clearing process, which is described in  
Section 16.3.2.4, “SPI Status Register (SPISR)”.  
16.4.7.5.3  
SPTEF  
SPTEF occurs when the SPI data register is ready to accept new data. After SPTEF is set, it does not clear  
until it is serviced. SPTEF has an automatic clearing process, which is described in Section 16.3.2.4, “SPI  
Status Register (SPISR)”.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
734  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 17  
Voltage Regulator (S12VREG3V3V5)  
17.1 Introduction  
Module VREG_3V3 is a dual output voltage regulator that provides two separate 2.5V (typical) supplies  
differing in the amount of current that can be sourced. The regulator input voltage range is from 3.3V up  
to 5V (typical).  
17.1.1 Features  
Module VREG_3V3 includes these distinctive features:  
Two parallel, linear voltage regulators  
— Bandgap reference  
Low-voltage detect (LVD) with low-voltage interrupt (LVI)  
Power-on reset (POR)  
Low-voltage reset (LVR)  
Autonomous periodical interrupt (API)  
17.1.2 Modes of Operation  
There are three modes VREG_3V3 can operate in:  
1. Full performance mode (FPM) (MCU is not in stop mode)  
The regulator is active, providing the nominal supply voltage of 2.5 V with full current sourcing  
capability at both outputs. Features LVD (low-voltage detect), LVR (low-voltage reset), and POR  
(power-on reset) are available. The API is available.  
2. Reduced power mode (RPM) (MCU is in stop mode)  
The purpose is to reduce power consumption of the device. The output voltage may degrade to a  
lower value than in full performance mode, additionally the current sourcing capability is  
substantially reduced. Only the POR is available in this mode, LVD and LVR are disabled. The API  
is available.  
3. Shutdown mode  
Controlled by VREGEN (see device level specification for connectivity of VREGEN).  
This mode is characterized by minimum power consumption. The regulator outputs are in a  
high-impedance state, only the POR feature is available, LVD and LVR are disabled. The API  
internal RC oscillator clock is not available.  
This mode must be used to disable the chip internal regulator VREG_3V3, i.e., to bypass the  
VREG_3V3 to use external supplies.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
735  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 17 Voltage Regulator (S12VREG3V3V5)  
17.1.3 Block Diagram  
Figure 17-1 shows the function principle of VREG_3V3 by means of a block diagram. The regulator core  
REG consists of two parallel subblocks, REG1 and REG2, providing two independent output voltages.  
V
V
DDPLL  
SSPLL  
REG2  
REG1  
V
DDR  
VBG  
V
DDA  
V
DD  
LVR  
LVD  
POR  
LVR  
POR  
V
V
SS  
SSA  
V
REGEN  
CTRL  
LVI  
API  
Rate  
Select  
API  
API  
Bus Clock  
LVD: Low-Voltage Detect  
LVR: Low-Voltage Reset  
POR: Power-On Reset  
REG: Regulator Core  
CTRL: Regulator Control  
API: Auto. Periodical Interrupt  
PIN  
Figure 17-1. VREG_3V3 Block Diagram  
MC9S12XDP512 Data Sheet, Rev. 2.11  
736  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 17 Voltage Regulator (S12VREG3V3V5)  
17.2 External Signal Description  
Due to the nature of VREG_3V3 being a voltage regulator providing the chip internal power supply  
voltages, most signals are power supply signals connected to pads.  
Table 17-1 shows all signals of VREG_3V3 associated with pins.  
Table 17-1. Signal Properties  
Name  
Function  
Reset State  
Pull Up  
V
Power input (positive supply)  
Quiet input (positive supply)  
Quiet input (ground)  
DDR  
V
V
DDA  
SSA  
V
Primary output (positive supply)  
Primary output (ground)  
DD  
V
SS  
V
Secondary output (positive supply)  
Secondary output (ground)  
Optional Regulator Enable  
DDPLL  
V
SSPLL  
V
(optional)  
REGEN  
NOTE  
Check device level specification for connectivity of the signals.  
17.2.1 VDDR — Regulator Power Input Pins  
Signal V  
is the power input of VREG_3V3. All currents sourced into the regulator loads flow through  
DDR  
this pin. A chip external decoupling capacitor (100 nF...220 nF, X7R ceramic) between V  
and V  
DDR  
SSR  
(if V  
is not available V ) can smooth ripple on V  
.
SSR  
SS  
DDR  
For entering Shutdown Mode, pin V  
should also be tied to ground on devices without VREGEN pin.  
DDR  
17.2.2 VDDA, VSSA — Regulator Reference Supply Pins  
Signals V  
/V  
which are supposed to be relatively quiet, are used to supply the analog parts of the  
DDA SSA,  
regulator. Internal precision reference circuits are supplied from these signals. A chip external decoupling  
capacitor (100 nF...220 nF, X7R ceramic) between V  
supply.  
and V  
can further improve the quality of this  
DDA  
SSA  
17.2.3 VDD, VSS — Regulator Output1 (Core Logic) Pins  
Signals V /V are the primary outputs of VREG_3V3 that provide the power supply for the core logic.  
DD SS  
These signals are connected to device pins to allow external decoupling capacitors (100 nF...220 nF, X7R  
ceramic).  
In Shutdown Mode an external supply driving V /V can replace the voltage regulator.  
DD SS  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
737  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
Chapter 17 Voltage Regulator (S12VREG3V3V5)  
17.2.4 VDDPLL, VSSPLL — Regulator Output2 (PLL) Pins  
Signals V  
/V  
are the secondary outputs of VREG_3V3 that provide the power supply for the  
DDPLL SSPLL  
PLL and oscillator. These signals are connected to device pins to allow external decoupling capacitors  
(100 nF...220 nF, X7R ceramic).  
In Shutdown Mode, an external supply driving V  
/V  
can replace the voltage regulator.  
DDPLL SSPLL  
17.2.5 V  
Optional Regulator Enable Pin  
REGEN —  
This optional signal is used to shutdown VREG_3V3. In that case, V /V and V  
/V must be  
DDPLL SSPLL  
DD SS  
provided externally. Shutdown mode is entered with VREGEN being low. If VREGEN is high, the  
VREG_3V3 is either in Full Performance Mode or in Reduced Power Mode.  
For the connectivity of VREGEN, see device specification.  
NOTE  
Switching from FPM or RPM to shutdown of VREG_3V3 and vice versa  
is not supported while MCU is powered.  
17.3 Memory Map and Register Definition  
This section provides a detailed description of all registers accessible in VREG_3V3.  
If enabled in the system, the VREG_3V3 will abort all read and write accesses to reserved registers within  
it’s memory slice.  
17.3.1 Module Memory Map  
Table 17-2 provides an overview of all used registers.  
Table 17-2. Memory Map  
Address  
Offset  
Use  
Access  
0x_00  
0x_01  
0x_02  
0x_03  
0x_04  
0x_05  
0x_06  
0x_07  
HT Control Register (VREGHTCL)  
Control Register (VREGCTRL)  
R/W  
R/W  
R/W  
R/W  
R/W  
Autonomous Periodical Interrupt Control Register (VREGAPICL)  
Autonomous Periodical Interrupt Trimming Register (VREGAPITR)  
Autonomous Periodical Interrupt Period High (VREGAPIRH)  
Autonomous Periodical Interrupt Period Low (VREGAPIRL)  
Reserved 06  
Reserved 07  
MC9S12XDP512 Data Sheet, Rev. 2.11  
738  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 17 Voltage Regulator (S12VREG3V3V5)  
17.3.2 Register Descriptions  
This section describes all the VREG_3V3 registers and their individual bits.  
17.3.2.1 HT Control Register (VREGHTCL)  
The VREGHTCL is reserved for test purposes. This register should not be written.  
Module Base + 0x_00  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
0
0
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 17-2. HT Control Register (VREGHTCL)  
17.3.2.2 Control Register (VREGCTRL)  
The VREGCTRL register allows the configuration of the VREG_3V3 low-voltage detect features.  
Module Base + 0x_01  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
LVDS  
LVIE  
LVIF  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 17-3. Control Register (VREGCTRL)  
Table 17-3. VREGCTRL Field Descriptions  
Description  
Field  
2
Low-Voltage Detect Status Bit — This read-only status bit reflects the input voltage. Writes have no effect.  
LVDS  
0 Input voltage V  
1 Input voltage V  
is above level V  
is below level V  
or RPM or shutdown mode.  
and FPM.  
DDA  
DDA  
LVID  
LVIA  
1
Low-Voltage Interrupt Enable Bit  
LVIE  
0 Interrupt request is disabled.  
1 Interrupt will be requested whenever LVIF is set.  
0
LVIF  
Low-Voltage Interrupt Flag LVIF is set to 1 when LVDS status bit changes. This flag can only be cleared by  
writing a 1. Writing a 0 has no effect. If enabled (LVIE = 1), LVIF causes an interrupt request.  
0 No change in LVDS bit.  
1 LVDS bit has changed.  
Note: On entering the Reduced Power Mode the LVIF is not cleared by the VREG_3V3.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
739  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 17 Voltage Regulator (S12VREG3V3V5)  
17.3.2.3 Autonomous Periodical Interrupt Control Register (VREGAPICL)  
The VREGAPICL register allows the configuration of the VREG_3V3 autonomous periodical interrupt  
features.  
Module Base + 0x_02  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
APICLK  
APIFE  
APIE  
APIF  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 17-4. Autonomous Periodical Interrupt Control Register (VREGAPICL)  
Table 17-4. VREGAPICL Field Descriptions  
Description  
Field  
7
Autonomous Periodical Interrupt Clock Select Bit — Selects the clock source for the API. Writable only if  
APIFE = 0; APICLK cannot be changed if APIFE is set by the same write operation.  
0 Autonomous periodical interrupt clock used as source.  
APICLK  
1 Bus clock used as source.  
2
Autonomous Periodical Interrupt Feature Enable Bit — Enables the API feature and starts the API timer  
when set.  
APIFE  
0 Autonomous periodical interrupt is disabled.  
1 Autonomous periodical interrupt is enabled and timer starts running.  
1
Autonomous Periodical Interrupt Enable Bit  
0 API interrupt request is disabled.  
APIE  
1 API interrupt will be requested whenever APIF is set.  
0
APIF  
Autonomous Periodical Interrupt Flag — APIF is set to 1 when the in the API configured time has elapsed.  
This flag can only be cleared by writing a 1 to it. Clearing of the flag has precedence over setting.  
Writing a 0 has no effect. If enabled (APIE = 1), APIF causes an interrupt request.  
0 API timeout has not yet occurred.  
1 API timeout has occurred.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
740  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 17 Voltage Regulator (S12VREG3V3V5)  
17.3.2.4 Autonomous Periodical Interrupt Trimming Register (VREGAPITR)  
The VREGAPITR register allows to trim the API timeout period.  
Module Base + 0x_03  
7
6
5
4
3
2
1
0
R
W
0
0
APITR5  
APITR4  
APITR3  
APITR2  
APITR1  
APITR0  
1
1
1
1
1
1
Reset  
0
0
0
0
0
0
0
0
1. Reset value is either 0 or preset by factory. See Device User Guide for details.  
= Unimplemented or Reserved  
Figure 17-5. Autonomous Periodical Interrupt Trimming Register (VREGAPITR)  
Table 17-5. VREGAPITR Field Descriptions  
Field  
Description  
7–2  
Autonomous Periodical Interrupt Period Trimming Bits — See Table 17-6 for trimming effects.  
APITR[5:0]  
Table 17-6. Trimming Effect of APIT  
Bit  
Trimming Effect  
APITR[5]  
APITR[4]  
APITR[3]  
APITR[2]  
APITR[1]  
APITR[0]  
Increases period  
Decreases period less than APITR[5] increased it  
Decreases period less than APITR[4]  
Decreases period less than APITR[3]  
Decreases period less than APITR[2]  
Decreases period less than APITR[1]  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
741  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 17 Voltage Regulator (S12VREG3V3V5)  
17.3.2.5 Autonomous Periodical Interrupt Rate High and Low Register  
(VREGAPIRH / VREGAPIRL)  
The VREGAPIRH and VREGAPIRL register allows the configuration of the VREG_3V3 autonomous  
periodical interrupt rate.  
Module Base + 0x_04  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
APIR11  
APIR10  
APIR9  
APIR8  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 17-6. Autonomous Periodical Interrupt Rate High Register (VREGAPIRH)  
Module Base + 0x_05  
7
6
5
4
3
2
1
0
R
APIR7  
W
APIR6  
APIR5  
APIR4  
APIR3  
APIR2  
APIR1  
APIR0  
Reset  
0
0
0
0
0
0
0
0
Figure 17-7. Autonomous Periodical Interrupt Rate Low Register (VREGAPIRL)  
Table 17-7. VREGAPIRH / VREGAPIRL Field Descriptions  
Description  
Field  
11-0  
Autonomous Periodical Interrupt Rate Bits — These bits define the timeout period of the API. See Table 17-8  
APIR[11:0] for details of the effect of the autonomous periodical interrupt rate bits. Writable only if APIFE = 0 of VREGAPICL  
register.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
742  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 17 Voltage Regulator (S12VREG3V3V5)  
Table 17-8. Selectable Autonomous Periodical Interrupt Periods  
APICLK  
APIR[11:0]  
Selected Period  
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
000  
001  
002  
003  
004  
005  
.....  
0.2 ms  
0.4 ms  
0.6 ms  
0.8 ms  
1.0 ms  
1.2 ms  
.....  
1
FFD  
FFE  
FFF  
000  
001  
002  
003  
004  
005  
.....  
818.8 ms  
1
819 ms  
1
819.2 ms  
2 * bus clock period  
4 * bus clock period  
6 * bus clock period  
8 * bus clock period  
10 * bus clock period  
12 * bus clock period  
.....  
FFD  
FFE  
FFF  
8188 * bus clock period  
8190 * bus clock period  
8192 * bus clock period  
1
When trimmed within specified accuracy. See electrical specifications for details.  
You can calculate the selected period depending of APICLK as:  
Period = 2*(APIR[11:0] + 1) * 0.1 ms or period = 2*(APIR[11:0] + 1) * bus clock period  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
743  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 17 Voltage Regulator (S12VREG3V3V5)  
17.3.2.6 Reserved_06  
The Reserved_06 is reserved for test purposes.  
Module Base + 0x_06  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
0
0
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 17-8. Reserved_06  
17.3.2.7 Reserved_07  
The Reserved_07 is reserved for test purposes.  
Module Base + 0x_07  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
0
0
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 17-9. Reserved_07  
17.4 Functional Description  
17.4.1 General  
Module VREG_3V3 is a voltage regulator, as depicted in Figure 17-1. The regulator functional elements  
are the regulator core (REG), a low-voltage detect module (LVD), a control block (CTRL), a power-on  
reset module (POR), and a low-voltage reset module (LVR).  
17.4.2 Regulator Core (REG)  
Respectively its regulator core has two parallel, independent regulation loops (REG1 and REG2) that differ  
only in the amount of current that can be delivered.  
The regulator is a linear regulator with a bandgap reference when operated in Full Performance Mode. It  
acts as a voltage clamp in Reduced Power Mode. All load currents flow from input V  
to V or  
DDR  
SS  
V
. The reference circuits are supplied by V  
and V  
.
SSPLL  
DDA  
SSA  
17.4.2.1 Full Performance Mode  
In Full Performance Mode, the output voltage is compared with a reference voltage by an operational  
amplifier. The amplified input voltage difference drives the gate of an output transistor.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
744  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 17 Voltage Regulator (S12VREG3V3V5)  
17.4.2.2 Reduced Power Mode  
In Reduced Power Mode, the gate of the output transistor is connected directly to a reference voltage to  
reduce power consumption.  
17.4.3 Low-Voltage Detect (LVD)  
Subblock LVD is responsible for generating the low-voltage interrupt (LVI). LVD monitors the input  
voltage (V  
–V ) and continuously updates the status flag LVDS. Interrupt flag LVIF is set whenever  
DDA  
SSA  
status flag LVDS changes its value. The LVD is available in FPM and is inactive in Reduced Power Mode  
or Shutdown Mode.  
17.4.4 Power-On Reset (POR)  
This functional block monitors V . If V is below V  
, POR is asserted; if V exceeds V  
,
DD  
DD  
PORD  
DD  
PORD  
the POR is deasserted. POR asserted forces the MCU into Reset. POR Deasserted will trigger the power-on  
sequence.  
17.4.5 Low-Voltage Reset (LVR)  
Block LVR monitors the primary output voltage V . If it drops below the assertion level (V  
) signal,  
LVRA  
DD  
LVR asserts; if V rises above the deassertion level (V  
) signal, LVR deasserts. The LVR function  
DD  
LVRD  
is available only in Full Performance Mode.  
17.4.6 Regulator Control (CTRL)  
This part contains the register block of VREG_3V3 and further digital functionality needed to control the  
operating modes. CTRL also represents the interface to the digital core logic.  
17.4.7 Autonomous Periodical Interrupt (API)  
Subblock API can generate periodical interrupts independent of the clock source of the MCU. To enable  
the timer, the bit APIFE needs to be set.  
The API timer is either clocked by a trimmable internal RC oscillator or the bus clock. Timer operation  
will freeze when MCU clock source is selected and bus clock is turned off. See CRG specification for  
details. The clock source can be selected with bit APICLK. APICLK can only be written when APIFE is  
not set.  
The APIR[11:0] bits determine the interrupt period. APIR[11:0] can only be written when APIFE is  
cleared. As soon as APIFE is set, the timer starts running for the period selected by APIR[11:0] bits. When  
the configured time has elapsed, the flag APIF is set. An interrupt, indicated by flag APIF = 1, is triggered  
if interrupt enable bit APIE = 1. The timer is started automatically again after it has set APIF.  
The procedure to change APICLK or APIR[11:0] is first to clear APIFE, then write to APICLK or  
APIR[11:0], and afterwards set APIFE.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
745  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
Chapter 17 Voltage Regulator (S12VREG3V3V5)  
The API Trimming bits APITR[5:0] must be set so the minimum period equals 0.2 ms if stable frequency  
See Table 17-6 for the trimming effect of APITR.  
NOTE  
The first period after enabling the counter by APIFE might be reduced.  
The API internal RC oscillator clock is not available if VREG_3V3 is in  
Shutdown Mode.  
17.4.8 Resets  
This section describes how VREG_3V3 controls the reset of the MCU.The reset values of registers and  
signals are provided in Section 17.3, “Memory Map and Register Definition”. Possible reset sources are  
listed in Table 17-9.  
Table 17-9. Reset Sources  
Reset Source  
Local Enable  
Power-on reset  
Always active  
Low-voltage reset  
Available only in Full Performance Mode  
17.4.9 Description of Reset Operation  
17.4.9.1 Power-On Reset (POR)  
During chip power-up the digital core may not work if its supply voltage V is below the POR  
DD  
deassertion level (V  
). Therefore, signal POR, which forces the other blocks of the device into reset,  
PORD  
is kept high until V exceeds V  
. The MCU will run the start-up sequence after POR deassertion.  
DD  
PORD  
The power-on reset is active in all operation modes of VREG_3V3.  
17.4.9.2 Low-Voltage Reset (LVR)  
For details on low-voltage reset, see Section 17.4.5, “Low-Voltage Reset (LVR)”.  
17.4.10 Interrupts  
The interrupt vectors requested by VREG_3V3 are listed in Table 17-10. Vector addresses and interrupt  
priorities are defined at MCU level.  
Table 17-10. Interrupt Vectors  
Interrupt Source  
Local Enable  
Low-voltage interrupt (LVI)  
LVIE = 1; available only in Full Performance  
Mode  
MC9S12XDP512 Data Sheet, Rev. 2.11  
746  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 17 Voltage Regulator (S12VREG3V3V5)  
Table 17-10. Interrupt Vectors  
Interrupt Source  
Local Enable  
APIE = 1  
Autonomous periodical interrupt (API)  
17.4.10.1 Low-Voltage Interrupt (LVI)  
In FPM, VREG_3V3 monitors the input voltage V  
. Whenever V  
drops below level V  
the  
DDA  
DDA  
LVIA,  
status bit LVDS is set to 1. On the other hand, LVDS is reset to 0 when V  
rises above level V  
. An  
LVID  
DDA  
interrupt, indicated by flag LVIF = 1, is triggered by any change of the status bit LVDS if interrupt enable  
bit LVIE = 1.  
NOTE  
On entering the Reduced Power Mode, the LVIF is not cleared by the  
VREG_3V3.  
17.4.10.2 Autonomous Periodical Interrupt (API)  
As soon as the configured timeout period of the API has elapsed, the APIF bit is set. An interrupt, indicated  
by flag APIF = 1, is triggered if interrupt enable bit APIE = 1.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
747  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 17 Voltage Regulator (S12VREG3V3V5)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
748  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 18  
Periodic Interrupt Timer (S12PIT24B4CV1)  
18.1 Introduction  
The period interrupt timer (PIT) is an array of 24-bit timers that can be used to trigger peripheral modules  
or raise periodic interrupts. Refer to Figure 18-1 for a simplified block diagram.  
18.1.1 Features  
The MC9S12XDP512 includes these features:  
Four timers implemented as modulus down-counters with independent time-out periods.  
24  
Time-out periods selectable between 1 and 2 bus clock cycles. Time-out equals m*n bus clock  
cycles with 1 <= m <= 256 and 1 <= n <= 65536.  
Timers that can be enabled individually.  
Four time-out interrupts.  
Four time-out trigger output signals available to trigger peripheral modules.  
Start of timer channels can be aligned to each other.  
18.1.2 Modes of Operation  
Refer to the SoC guide for a detailed explanation of the chip modes.  
Run mode  
This is the basic mode of operation.  
Wait mode  
PIT operation in wait mode is controlled by the PITSWAI bit located in the PITCFLMT register.  
In wait mode, if the bus clock is globally enabled and if the PITSWAI bit is clear, the PIT operates  
like in run mode. In wait mode, if the PITSWAI bit is set, the PIT module is stalled.  
Stop mode  
In full stop mode or pseudo stop mode, the PIT module is stalled.  
Freeze mode  
PIT operation in freeze mode is controlled by the PITFRZ bit located in the PITCFLMT register.  
In freeze mode, if the PITFRZ bit is clear, the PIT operates like in run mode. In freeze mode, if the  
PITFRZ bit is set, the PIT module is stalled.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
749  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 18 Periodic Interrupt Timer (S12PIT24B4CV1)  
18.1.3 Block Diagram  
Figure 18-1 shows a block diagram of the PIT.  
Interrupt 0  
Trigger 0  
Micro Time  
Base 0  
Time-Out 0  
Time-Out 1  
Time-Out 2  
Time-Out 3  
16-Bit Timer 0  
16-Bit Timer 1  
16-Bit Timer 2  
16-Bit Timer 3  
Interface  
Interface  
Interface  
Interface  
8-Bit  
Micro Timer 0  
Bus Clock  
Interrupt 1  
Trigger 1  
Micro  
8-Bit  
Interrupt 2  
Trigger 2  
Time  
Micro Timer 1  
Base 1  
Interrupt 3  
Trigger 3  
Figure 18-1. MC9S12XDP512 Block Diagram  
18.2 External Signal Description  
The PIT module has no external pins.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
750  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 18 Periodic Interrupt Timer (S12PIT24B4CV1)  
18.3 Memory Map and Register Definition  
This section provides a detailed description of address space and registers used by the PIT.  
18.3.1 Module Memory Map  
The memory map for the MC9S12XDP512 is given below in Table 1-1. The address listed for each register  
is the sum of a base address and an address offset. The base address is defined at the SoC level and the  
address offset is defined at the module level. Reads from the reserved bits return zeros and writes to the  
reserved bits have no effect.  
Table 18-1. MC9S12XDP512 Memory Map  
Address  
Offset  
Use  
Access  
1
0x0000  
0x0001  
PIT Control and Force Load Micro Timer Register (PITCFLMT)  
PIT Force Load Timer Register (PITFLT)  
PIT Channel Enable Register (PITCE)  
PIT Multiplex Register (PITMUX)  
R/W  
1,2  
R/W  
1
0x0002  
R/W  
1
0x0003  
R/W  
1
0x0004  
PIT Interrupt Enable Register (PITINTE)  
PIT Time-Out Flag Register (PITTF)  
PIT Micro Timer Load Register 0 (PITMTLD0)  
PIT Micro Timer Load Register 1 (PITMTLD1)  
PIT Load Register 0 (PITLD0)  
R/W  
1
0x0005  
R/W  
0x0006  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
R/W  
0x0007  
0x0008, 0x0009  
0x000A, 0x000B  
0x000C, 0x000D  
0x000E, 0x000F  
0x0010, 0x0011  
0x0012, 0x0013  
0x0014, 0x0015  
0x0016, 0x0017  
0x0018 - 0x0027  
PIT Count Register 0 (PITCNT0)  
PIT Load Register 1 (PITLD1)  
PIT Count Register 1 (PITCNT1)  
PIT Load Register 2 (PITLD2)  
PIT Count Register 2 (PITCNT2)  
PIT Load Register 3 (PITLD3)  
PIT Count Register 3 (PITCNT3)  
3
Reserved Registers  
1
2
3
Certain bits are non-writable.  
Reading from this register returns all zeros.  
Reading from these registers returns all zeros. Writing to these registers has no effect.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
751  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 18 Periodic Interrupt Timer (S12PIT24B4CV1)  
18.3.2 Register Descriptions  
This section consists of register descriptions in address order. Each description includes a standard register  
diagram with an associated figure number. Details of register bit and field function follow the register  
diagrams, in bit order.  
Register  
Name  
Bit 7  
PITE  
0
6
PITSWAI  
0
5
PITFRZ  
0
4
3
2
1
Bit 0  
0x0000  
PITCFLMT  
R
0
0
0
0
0
W
PFLMT1  
PFLMT0  
0x0001  
PITFLT  
R
0
0
0
0
0
0
0
0
0
W
PFLT3  
PFLT2  
PFLT1  
PFLT0  
0x0002  
PITCE  
R
0
0
0
0
0
0
0
0
0
0
0
0
PCE3  
PMUX3  
PINTE3  
PTF3  
PCE2  
PMUX2  
PINTE2  
PTF2  
PCE1  
PMUX1  
PINTE1  
PTF1  
PCE0  
PMUX0  
PINTE0  
PTF0  
W
0x0003  
PITMUX  
R
W
0x0004  
PITINTE  
R
W
0x0005  
PITTF  
R
W
0x0006  
PITMTLD0  
R
PMTLD7  
PMTLD7  
PLD15  
PMTLD6  
PMTLD6  
PLD14  
PMTLD5  
PMTLD5  
PLD13  
PMTLD4  
PMTLD4  
PLD12  
PMTLD3  
PMTLD3  
PLD11  
PLD3  
PMTLD2  
PMTLD2  
PLD10  
PLD2  
PMTLD1  
PMTLD1  
PLD9  
PMTLD0  
PMTLD0  
PLD8  
W
0x0007  
PITMTLD1  
R
W
0x0008  
PITLD0 (High)  
R
W
0x0009  
PITLD0 (Low)  
R
PLD7  
PLD6  
PLD5  
PLD4  
PLD1  
PLD0  
W
0x000A  
PITCNT0 (High)  
R
PCNT15  
PCNT7  
PLD15  
PCNT14  
PCNT6  
PLD14  
PCNT13  
PCNT5  
PLD13  
PCNT12  
PCNT4  
PLD12  
PCNT11  
PCNT3  
PLD11  
PCNT10  
PCNT2  
PLD10  
PCNT9  
PCNT1  
PLD9  
PCNT8  
PCNT0  
PLD8  
W
0x000B  
PITCNT0 (Low)  
R
W
0x000C  
PITLD1 (High)  
R
W
= Unimplemented or Reserved  
Figure 18-2. PIT Register Summary (Sheet 1 of 2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
752  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 18 Periodic Interrupt Timer (S12PIT24B4CV1)  
Register  
Name  
Bit 7  
6
5
4
3
2
1
Bit 0  
0x000D  
PITLD1 (Low)  
R
PLD7  
PLD6  
PLD5  
PLD4  
PLD3  
PLD2  
PLD1  
PLD0  
W
0x000E  
PITCNT1 (High)  
R
PCNT15  
PCNT7  
PLD15  
PLD7  
PCNT14  
PCNT6  
PLD14  
PLD6  
PCNT13  
PCNT5  
PLD13  
PLD5  
PCNT12  
PCNT4  
PLD12  
PLD4  
PCNT11  
PCNT3  
PLD11  
PLD3  
PCNT10  
PCNT2  
PLD10  
PLD2  
PCNT9  
PCNT1  
PLD9  
PCNT8  
PCNT0  
PLD8  
W
0x000F  
PITCNT1 (Low)  
R
W
0x0010  
PITLD2 (High)  
R
W
0x0011  
PITLD2 (Low)  
R
PLD1  
PLD0  
W
0x0012  
PITCNT2 (High)  
R
PCNT15  
PCNT7  
PLD15  
PLD7  
PCNT14  
PCNT6  
PLD14  
PLD6  
PCNT13  
PCNT5  
PLD13  
PLD5  
PCNT12  
PCNT4  
PLD12  
PLD4  
PCNT11  
PCNT3  
PLD11  
PLD3  
PCNT10  
PCNT2  
PLD10  
PLD2  
PCNT9  
PCNT1  
PLD9  
PCNT8  
PCNT0  
PLD8  
W
0x0013  
PITCNT2 (Low)  
R
W
0x0014  
PITLD3 (High)  
R
W
0x0015  
PITLD3 (Low)  
R
PLD1  
PLD0  
W
0x0016  
PITCNT3 (High)  
R
PCNT15  
PCNT7  
PCNT14  
PCNT6  
PCNT13  
PCNT5  
PCNT12  
PCNT4  
PCNT11  
PCNT3  
PCNT10  
PCNT2  
PCNT9  
PCNT1  
PCNT8  
PCNT0  
W
0x0017  
PITCNT3 (Low)  
R
W
= Unimplemented or Reserved  
Figure 18-2. PIT Register Summary (Sheet 2 of 2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
753  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 18 Periodic Interrupt Timer (S12PIT24B4CV1)  
18.3.2.1 PIT Control and Force Load Micro Timer Register (PITCFLMT)  
Module Base + 0x0000  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
PITE  
PITSWAI  
PITFRZ  
PFLMT1  
0
PFLMT0  
0
Reset  
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 18-3. PIT Control and Force Load Micro Timer Register (PITCFLMT)  
Read: Anytime  
Write: Anytime; writes to the reserved bits have no effect  
Table 18-2. PITCFLMT Field Descriptions  
Field  
Description  
7
PITE  
PIT Module Enable Bit — This bit enables the PIT module. If PITE is cleared, the PIT module is disabled and  
flag bits in the PITTF register are cleared. When PITE is set, individually enabled timers (PCE set) start  
down-counting with the corresponding load register values.  
0 PIT disabled (lower power consumption).  
1 PIT is enabled.  
6
PIT Stop in Wait Mode Bit — This bit is used for power conservation while in wait mode.  
0 PIT operates normally in wait mode  
PITSWAI  
1 PIT clock generation stops and freezes the PIT module when in wait mode  
5
PIT Counter Freeze while in Freeze Mode Bit — When during debugging a breakpoint (freeze mode) is  
encountered it is useful in many cases to freeze the PIT counters to avoid e.g. interrupt generation. The PITFRZ  
bit controls the PIT operation while in freeze mode.  
PITFRZ  
0 PIT operates normally in freeze mode  
1 PIT counters are stalled when in freeze mode  
1:0  
PIT Force Load Bits for Micro Timer 1:0 — These bits have only an effect if the corresponding micro timer is  
PFLMT[1:0] active and if the PIT module is enabled (PITE set). Writing a one into a PFLMT bit loads the corresponding 8-bit  
micro timer load register into the 8-bit micro timer down-counter. Writing a zero has no effect. Reading these bits  
will always return zero.  
Note: A micro timer force load affects all timer channels that use the corresponding micro time base.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
754  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 18 Periodic Interrupt Timer (S12PIT24B4CV1)  
18.3.2.2 PIT Force Load Timer Register (PITFLT)  
Module Base + 0x0001  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
0
0
0
PFLT3  
0
PFLT2  
0
PFLT1  
0
PFLT0  
0
Reset  
0
0
0
0
= Unimplemented or Reserved  
Figure 18-4. PIT Force Load Timer Register (PITFLT)  
Read: Anytime  
Write: Anytime; writes to the reserved bits have no effect  
Table 18-3. PITFLT Field Descriptions  
Field  
Description  
PIT Force Load Bits for Timer 3-0 — These bits have only an effect if the corresponding timer channel (PCE  
3:0  
PFLT[3:0] set) is enabled and if the PIT module is enabled (PITE set). Writing a one into a PFLT bit loads the corresponding  
16-bit timer load register into the 16-bit timer down-counter. Writing a zero has no effect. Reading these bits will  
always return zero.  
18.3.2.3 PIT Channel Enable Register (PITCE)  
Module Base + 0x0002  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
PCE3  
PCE2  
PCE1  
PCE0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 18-5. PIT Channel Enable Register (PITCE)  
Read: Anytime  
Write: Anytime; writes to the reserved bits have no effect  
Table 18-4. PITCE Field Descriptions  
Field  
Description  
3:0  
PCE[3:0]  
PIT Enable Bits for Timer Channel 3:0 — These bits enable the PIT channels 3-0. If PCE is cleared, the PIT  
channel is disabled and the corresponding flag bit in the PITTF register is cleared. When PCE is set, and if the  
PIT module is enabled (PITE = 1) the 16-bit timer counter is loaded with the start count value and starts  
down-counting.  
0 The corresponding PIT channel is disabled.  
1 The corresponding PIT channel is enabled.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
755  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 18 Periodic Interrupt Timer (S12PIT24B4CV1)  
18.3.2.4 PIT Multiplex Register (PITMUX)  
Module Base + 0x0003  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
PMUX3  
PMUX2  
PMUX1  
PMUX0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 18-6. PIT Multiplex Register (PITMUX)  
Read: Anytime  
Write: Anytime; writes to the reserved bits have no effect  
Table 18-5. PITMUX Field Descriptions  
Field  
Description  
PIT Multiplex Bits for Timer Channel 3:0 — These bits select if the corresponding 16-bit timer is connected to  
3:0  
PMUX[3:0] micro time base 1 or 0. If PMUX is modified, the corresponding 16-bit timer is immediately switched to the other  
micro time base.  
0 The corresponding 16-bit timer counts with micro time base 0.  
1 The corresponding 16-bit timer counts with micro time base 1.  
18.3.2.5 PIT Interrupt Enable Register (PITINTE)  
Module Base + 0x0004  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
PINTE3  
PINTE2  
PINTE1  
PINTE0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 18-7. PIT Interrupt Enable Register (PITINTE)  
Read: Anytime  
Write: Anytime; writes to the reserved bits have no effect  
Table 18-6. PITINTE Field Descriptions  
Field  
Description  
PIT Time-out Interrupt Enable Bits for Timer Channel 3:0 — These bits enable an interrupt service request  
3:0  
PINTE[3:0] whenever the time-out flag PTF of the corresponding PIT channel is set. When an interrupt is pending (PTF set)  
enabling the interrupt will immediately cause an interrupt. To avoid this, the corresponding PTF flag has to be  
cleared first.  
0 Interrupt of the corresponding PIT channel is disabled.  
1 Interrupt of the corresponding PIT channel is enabled.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
756  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 18 Periodic Interrupt Timer (S12PIT24B4CV1)  
18.3.2.6 PIT Time-Out Flag Register (PITTF)  
Module Base + 0x0005  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
PTF3  
PTF2  
PTF1  
PTF0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 18-8. PIT Time-Out Flag Register (PITTF)  
Read: Anytime  
Write: Anytime (write to clear); writes to the reserved bits have no effect  
Table 18-7. PITTF Field Descriptions  
Field  
Description  
3:0  
PTF[3:0]  
PIT Time-out Flag Bits for Timer Channel 3:0 — PTF is set when the corresponding 16-bit timer modulus  
down-counter and the selected 8-bit micro timer modulus down-counter have counted to zero. The flag can be  
cleared by writing a one to the flag bit. Writing a zero has no effect. If flag clearing by writing a one and flag setting  
happen in the same bus clock cycle, the flag remains set. The flag bits are cleared if the PIT module is disabled  
or if the corresponding timer channel is disabled.  
0 Time-out of the corresponding PIT channel has not yet occurred.  
1 Time-out of the corresponding PIT channel has occurred.  
18.3.2.7 PIT Micro Timer Load Register 0 to 1 (PITMTLD0–1)  
Module Base + 0x0006  
7
6
5
4
3
2
1
0
R
W
PMTLD7  
PMTLD6  
PMTLD5  
PMTLD4  
PMTLD3  
PMTLD2  
PMTLD1  
PMTLD0  
Reset  
0
0
0
0
0
0
0
0
Figure 18-9. PIT Micro Timer Load Register 0 (PITMTLD0)  
Module Base + 0x0007  
7
6
5
4
3
2
1
0
R
PMTLD7  
W
PMTLD6  
PMTLD5  
PMTLD4  
PMTLD3  
PMTLD2  
PMTLD1  
PMTLD0  
Reset  
0
0
0
0
0
0
0
0
Figure 18-10. PIT Micro Timer Load Register 1 (PITMTLD1)  
Read: Anytime  
Write: Anytime  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
757  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 18 Periodic Interrupt Timer (S12PIT24B4CV1)  
Table 18-8. PITMTLD0–1 Field Descriptions  
Field  
Description  
7:0  
PIT Micro Timer Load Bits 7:0 — These bits set the 8-bit modulus down-counter load value of the micro timers.  
PMTLD[7:0] Writing a new value into the PITMTLD register will not restart the timer. When the micro timer has counted down  
to zero, the PMTLD register value will be loaded. The PFLMT bits in the PITCFLMT register can be used to  
immediately update the count register with the new value if an immediate load is desired.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
758  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 18 Periodic Interrupt Timer (S12PIT24B4CV1)  
18.3.2.8 PIT Load Register 0 to 3 (PITLD0–3)  
Module Base + 0x0008, 0x0009  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
R
W
PLD15 PLD14 PLD13 PLD12 PLD11 PLD10 PLD9 PLD8 PLD7 PLD6 PLD5 PLD4 PLD3 PLD2 PLD1 PLD0  
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Figure 18-11. PIT Load Register 0 (PITLD0)  
Module Base + 0x000C, 0x000D  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
R
W
PLD15 PLD14 PLD13 PLD12 PLD11 PLD10 PLD9 PLD8 PLD7 PLD6 PLD5 PLD4 PLD3 PLD2 PLD1 PLD0  
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Figure 18-12. PIT Load Register 1 (PITLD1)  
Module Base + 0x0010, 0x0011  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
R
W
PLD15 PLD14 PLD13 PLD12 PLD11 PLD10 PLD9 PLD8 PLD7 PLD6 PLD5 PLD4 PLD3 PLD2 PLD1 PLD0  
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Figure 18-13. PIT Load Register 2 (PITLD2)  
Module Base + 0x0014, 0x0015  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
R
W
PLD15 PLD14 PLD13 PLD12 PLD11 PLD10 PLD9 PLD8 PLD7 PLD6 PLD5 PLD4 PLD3 PLD2 PLD1 PLD0  
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Figure 18-14. PIT Load Register 3 (PITLD3)  
Read: Anytime  
Write: Anytime  
Table 18-9. PITLD0–3 Field Descriptions  
Description  
Field  
15:0  
PIT Load Bits 15:0 — These bits set the 16-bit modulus down-counter load value. Writing a new value into the  
PLD[15:0] PITLD register must be a 16-bit access, to ensure data consistency. It will not restart the timer. When the timer  
has counted down to zero the PTF time-out flag will be set and the register value will be loaded. The PFLT bits  
in the PITFLT register can be used to immediately update the count register with the new value if an immediate  
load is desired.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
759  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 18 Periodic Interrupt Timer (S12PIT24B4CV1)  
18.3.2.9 PIT Count Register 0 to 3 (PITCNT0–3)  
Module Base + 0x000A, 0x000B  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
R
W
PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Figure 18-15. PIT Count Register 0 (PITCNT0)  
Module Base + 0x000E, 0x000F  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
R
W
PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Figure 18-16. PIT Count Register 1 (PITCNT1)  
Module Base + 0x0012, 0x0013  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
R
W
PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Figure 18-17. PIT Count Register 2 (PITCNT2)  
Module Base + 0x0016, 0x0017  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
R
W
PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT PCNT  
15  
14  
13  
12  
11  
10  
9
8
7
6
5
4
3
2
1
0
Reset  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Figure 18-18. PIT Count Register 3 (PITCNT3)  
Read: Anytime  
Write: Has no meaning or effect  
Table 18-10. PITCNT0–3 Field Descriptions  
Field  
Description  
15:0  
PIT Count Bits 15-0 — These bits represent the current 16-bit modulus down-counter value. The read access  
PCNT[15:0] for the count register must take place in one clock cycle as a 16-bit access.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
760  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 18 Periodic Interrupt Timer (S12PIT24B4CV1)  
18.4 Functional Description  
Figure 18-19 shows a detailed block diagram of the PIT module. The main parts of the PIT are status,  
control and data registers, two 8-bit down-counters, four 16-bit down-counters and an interrupt/trigger  
interface.  
PIT_24B4C  
4
PFLT0  
PMUX0  
PITFLT Register  
PITMUX Register  
Timer 0  
PITLD0 Register  
PITCNT0 Register  
4
time-out 0  
PFLT1  
PITMLD0 Register  
8-Bit Micro Timer 0  
Timer 1  
Bus  
[1]  
Interrupt /  
time-  
out 1  
4
PITLD1 Register  
Clock  
Trigger Interface  
[0]  
PITCNT1 Register  
Hardware  
Trigger  
PFLT2  
[2]  
PITTF Register  
Timer 2  
PITMLD1 Register  
8-Bit Micro Timer 1  
4
time-  
out 2  
PITLD2 Register  
[1]  
PITCNT2 Register  
Interrupt  
Request  
PITINTE Register  
PITCFLMT Register  
PFLT3  
PFLMT  
Timer 3  
PITLD3 Register  
PMUX3  
PITCNT3 Register  
Time-Out 3  
Figure 18-19. MC9S12XDP512 Detailed Block Diagram  
18.4.1 Timer  
As shown in Figure 18-1and Figure 18-19, the 24-bit timers are built in a two-stage architecture with four  
16-bit modulus down-counters and two 8-bit modulus down-counters. The 16-bit timers are clocked with  
two selectable micro time bases which are generated with 8-bit modulus down-counters. Each 16-bit timer  
is connected to micro time base 0 or 1 via the PMUX[3:0] bit setting in the PIT Multiplex (PITMUX)  
register.  
A timer channel is enabled if the module enable bit PITE in the PIT control and force load micro timer  
(PITCFLMT) register is set and if the corresponding PCE bit in the PIT channel enable (PITCE) register  
is set. Two 8-bit modulus down-counters are used to generate two micro time bases. As soon as a micro  
time base is selected for an enabled timer channel, the corresponding micro timer modulus down-counter  
will load its start value as specified in the PITMTLD0 or PITMTLD1 register and will start down-counting.  
Whenever the micro timer down-counter has counted to zero the PITMTLD register is reloaded and the  
connected 16-bit modulus down-counters count one cycle.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
761  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 18 Periodic Interrupt Timer (S12PIT24B4CV1)  
Whenever a 16-bit timer counter and the connected 8-bit micro timer counter have counted to zero, the  
PITLD register is reloaded and the corresponding time-out flag PTF in the PIT time-out flag (PITTF)  
register is set, as shown in Figure 18-20. The time-out period is a function of the timer load (PITLD) and  
micro timer load (PITMTLD) registers and the bus clock f  
:
BUS  
time-out period = (PITMTLD + 1) * (PITLD + 1) / f  
.
BUS  
For example, for a 40 MHz bus clock, the maximum time-out period equals:  
256 * 65536 * 25 ns = 419.43 ms.  
The current 16-bit modulus down-counter value can be read via the PITCNT register. The micro timer  
down-counter values cannot be read.  
The 8-bit micro timers can individually be restarted by writing a one to the corresponding force load micro  
timer PFLMT bits in the PIT control and force load micro timer (PITCFLMT) register. The 16-bit timers  
can individually be restarted by writing a one to the corresponding force load timer PFLT bits in the PIT  
forceload timer (PITFLT) register. If desired, any group of timers and micro timers can be restarted at the  
same time by using one 16-bit write to the adjacent PITCFLMT and PITFLT registers with the relevant  
bits set, as shown in Figure 18-20.  
Bus Clock  
8-Bit Micro  
1
1
1
2
2
0
2
0
1
1
1
1
2
0
0
2
0
2
0
2
0
2
Timer Counter  
00  
0001  
0000  
0001  
0000  
0001  
0000  
0001  
PITCNT Register  
8-Bit Force Load  
16-Bit Force Load  
1
PTF Flag  
PITTRIG  
Time-Out Period  
After Restart  
Time-Out Period  
Note 1. The PTF flag clearing depends on the software  
Figure 18-20. PIT Trigger and Flag Signal Timing  
18.4.2 Interrupt Interface  
Each time-out event can be used to trigger an interrupt service request. For each timer channel, an  
individual bit PINTE in the PIT interrupt enable (PITINTE) register exists to enable this feature. If PINTE  
MC9S12XDP512 Data Sheet, Rev. 2.11  
762  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 18 Periodic Interrupt Timer (S12PIT24B4CV1)  
is set, an interrupt service is requested whenever the corresponding time-out flag PTF in the PIT time-out  
flag (PITTF) register is set. The flag can be cleared by writing a one to the flag bit.  
NOTE  
Be careful when resetting the PITE, PINTE or PITCE bits in case of pending  
PIT interrupt requests, to avoid spurious interrupt requests.  
18.4.3 Hardware Trigger  
The PIT module contains four hardware trigger signal lines PITTRIG[3:0], one for each timer channel.  
These signals can be connected on SoC level to peripheral modules enabling e.g. periodic ATD conversion  
(please refer to the SoC Guide for the mapping of PITTRIG[3:0] signals to peripheral modules).  
Whenever a timer channel time-out is reached, the corresponding PTF flag is set and the corresponding  
trigger signal PITTRIG triggers a rising edge. The trigger feature requires a minimum time-out period of  
two bus clock cycles because the trigger is asserted high for at least one bus clock cycle. For load register  
values PITLD = 0x0001 and PITMTLD = 0x0002 the flag setting, trigger timing and a restart with force  
load is shown in Figure 18-20.  
18.5 Initialization/Application Information  
18.5.1 Startup  
Set the configuration registers before the PITE bit in the PITCFLMT register is set. Before PITE is set, the  
configuration registers can be written in arbitrary order.  
18.5.2 Shutdown  
When the PITCE register bits, the PITINTE register bits or the PITE bit in the PITCFLMT register are  
cleared, the corresponding PIT interrupt flags are cleared. In case of a pending PIT interrupt request, a  
spurious interrupt can be generated. Two strategies, which avoid spurious interrupts, are recommended:  
1. Reset the PIT interrupt flags only in an ISR. When entering the ISR, the I mask bit in the CCR is  
set automatically. The I mask bit must not be cleared before the PIT interrupt flags are cleared.  
2. After setting the I mask bit with the SEI instruction, the PIT interrupt flags can be cleared. Then  
clear the I mask bit with the CLI instruction to re-enable interrupts.  
18.5.3 Flag Clearing  
A flag is cleared by writing a one to the flag bit. Always use store or move instructions to write a one in  
certain bit positions. Do not use the BSET instructions. Do not use any C-constructs that compile to BSET  
instructions. “BSET flag_register, #mask” must not be used for flag clearing because BSET is a  
read-modify-write instruction which writes back the “bit-wise or” of the flag_register and the mask into  
the flag_register. BSET would clear all flag bits that were set, independent from the mask.  
For example, to clear flag bit 0 use: MOVB #$01,PITTF.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
763  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
Chapter 18 Periodic Interrupt Timer (S12PIT24B4CV1)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
764  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 19  
Background Debug Module (S12XBDMV2)  
19.1 Introduction  
This section describes the functionality of the background debug module (BDM) sub-block of the  
HCS12X core platform.  
The background debug module (BDM) sub-block is a single-wire, background debug system implemented  
in on-chip hardware for minimal CPU intervention. All interfacing with the BDM is done via the BKGD  
pin.  
The BDM has enhanced capability for maintaining synchronization between the target and host while  
allowing more flexibility in clock rates. This includes a sync signal to determine the communication rate  
and a handshake signal to indicate when an operation is complete. The system is backwards compatible to  
the BDM of the S12 family with the following exceptions:  
TAGGO command no longer supported by BDM  
External instruction tagging feature now part of DBG module  
BDM register map and register content extended/modified  
Global page access functionality  
Enabled but not active out of reset in emulation modes  
CLKSW bit set out of reset in emulation mode.  
Family ID readable from firmware ROM at global address 0x7FFF0F (value for HCS12X devices  
is 0xC1)  
19.1.1 Features  
The BDM includes these distinctive features:  
Single-wire communication with host development system  
Enhanced capability for allowing more flexibility in clock rates  
SYNC command to determine communication rate  
GO_UNTIL command  
Hardware handshake protocol to increase the performance of the serial communication  
Active out of reset in special single chip mode  
Nine hardware commands using free cycles, if available, for minimal CPU intervention  
Hardware commands not requiring active BDM  
14 firmware commands execute from the standard BDM firmware lookup table  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
765  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 19 Background Debug Module (S12XBDMV2)  
Software control of BDM operation during wait mode  
Software selectable clocks  
Global page access functionality  
Enabled but not active out of reset in emulation modes  
CLKSW bit set out of reset in emulation mode.  
When secured, hardware commands are allowed to access the register space in special single chip  
mode, if the Flash and EEPROM erase tests fail.  
Family ID readable from firmware ROM at global address 0x7FFF0F (value for HCS12X devices  
is 0xC1)  
BDM hardware commands are operational until system stop mode is entered (all bus masters are  
in stop mode)  
19.1.2 Modes of Operation  
BDM is available in all operating modes but must be enabled before firmware commands are executed.  
Some systems may have a control bit that allows suspending the function during background debug mode.  
19.1.2.1 Regular Run Modes  
All of these operations refer to the part in run mode and not being secured. The BDM does not provide  
controls to conserve power during run mode.  
Normal modes  
General operation of the BDM is available and operates the same in all normal modes.  
Special single chip mode  
In special single chip mode, background operation is enabled and active out of reset. This allows  
programming a system with blank memory.  
Emulation modes  
In emulation mode, background operation is enabled but not active out of reset. This allows  
debugging and programming a system in this mode more easily.  
19.1.2.2 Secure Mode Operation  
mode operation. Secure operation prevents access to Flash or EEPROM other than allowing erasure. For  
more information please see Section 19.4.1, “Security”.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
766  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 19 Background Debug Module (S12XBDMV2)  
19.1.2.3 Low-Power Modes  
The BDM can be used until all bus masters (e.g., CPU or XGATE) are in stop mode. When CPU is in a  
low power mode (wait or stop mode) all BDM firmware commands as well as the hardware  
BACKGROUND command can not be used respectively are ignored. In this case the CPU can not enter  
BDM active mode, and only hardware read and write commands are available. Also the CPU can not enter  
a low power mode during BDM active mode.  
If all bus masters are in stop mode, the BDM clocks are stopped as well. When BDM clocks are disabled  
and one of the bus masters exits from stop mode the BDM clocks will restart and BDM will have a soft  
reset (clearing the instruction register, any command in progress and disable the ACK function). The BDM  
is now ready to receive a new command.  
19.1.3 Block Diagram  
A block diagram of the BDM is shown in Figure 19-1.  
Host  
Serial  
Interface  
Data  
System  
16-Bit Shift Register  
BKGD  
Control  
Register Block  
Address  
Data  
Bus Interface  
and  
Control Logic  
TRACE  
Instruction Code  
and  
Control  
Clocks  
BDMACT  
Execution  
ENBDM  
SDV  
Standard BDM Firmware  
LOOKUP TABLE  
Secured BDM Firmware  
LOOKUP TABLE  
UNSEC  
CLKSW  
BDMSTS  
Register  
Figure 19-1. BDM Block Diagram  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
767  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 19 Background Debug Module (S12XBDMV2)  
19.2 External Signal Description  
A single-wire interface pin called the background debug interface (BKGD) pin is used to communicate  
with the BDM system. During reset, this pin is a mode select input which selects between normal and  
special modes of operation. After reset, this pin becomes the dedicated serial interface pin for the  
background debug mode.  
19.3 Memory Map and Register Definition  
19.3.1 Module Memory Map  
Table 19-1 shows the BDM memory map when BDM is active.  
Table 19-1. BDM Memory Map  
Size  
Global Address  
Module  
(Bytes)  
0x7FFF00–0x7FFF0B  
0x7FFF0C–0x7FFF0E  
0x7FFF0F  
BDM registers  
BDM firmware ROM  
12  
3
Family ID (part of BDM firmware ROM)  
BDM firmware ROM  
1
0x7FFF10–0x7FFFFF  
240  
MC9S12XDP512 Data Sheet, Rev. 2.11  
768  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 19 Background Debug Module (S12XBDMV2)  
19.3.2 Register Descriptions  
A summary of the registers associated with the BDM is shown in Figure 19-2. Registers are accessed by  
host-driven communications to the BDM hardware using READ_BD and WRITE_BD commands.  
Global  
Address  
Register  
Name  
Bit 7  
6
5
4
3
2
1
Bit 0  
0x7FFF00 Reserved  
R
X
X
X
X
X
X
0
0
W
0x7FFF01  
BDMSTS  
R
BDMACT  
0
X
X
X
X
SDV  
X
TRACE  
UNSEC  
0
X
X
X
X
ENBDM  
X
CLKSW  
X
W
0x7FFF02 Reserved  
0x7FFF03 Reserved  
0x7FFF04 Reserved  
0x7FFF05 Reserved  
0x7FFF06 BDMCCRL  
R
X
X
X
X
X
X
X
X
X
X
X
X
W
R
X
X
X
X
X
X
X
W
R
X
W
R
X
W
R
CCR7  
0
CCR6  
0
CCR5  
0
CCR4  
0
CCR3  
0
CCR2  
CCR1  
CCR9  
CCR0  
CCR8  
W
0x7FFF07 BDMCCRH R  
W
CCR10  
0x7FFF08 BDMGPR  
0x7FFF09 Reserved  
0x7FFF0A Reserved  
0x7FFF0B Reserved  
R
BGAE  
0
BGP6  
0
BGP5  
0
BGP4  
0
BGP3  
0
BGP2  
0
BGP1  
0
BGP0  
0
W
R
W
R
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
W
R
W
= Unimplemented, Reserved  
= Indeterminate  
= Implemented (do not alter)  
= Always read zero  
X
0
Figure 19-2. BDM Register Summary  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
769  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 19 Background Debug Module (S12XBDMV2)  
19.3.2.1 BDM Status Register (BDMSTS)  
Register Global Address 0x7FFF01  
7
6
5
4
3
2
1
0
R
W
BDMACT  
0
SDV  
TRACE  
UNSEC  
0
ENBDM  
CLKSW  
Reset  
1
3
Special Single-Chip Mode  
Emulation Modes  
All Other Modes  
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
1
0
1
0
0
0
= Unimplemented, Reserved  
= Implemented (do not alter)  
0
= Always read zero  
1
ENBDM is read as 1 by a debugging environment in special single chip mode when the device is not secured or secured but  
fully erased (Flash and EEPROM). This is because the ENBDM bit is set by the standard firmware before a BDM command  
can be fully transmitted and executed.  
2
3
CLKSW is read as 1 by a debugging environment in emulation modes when the device is not secured and read as 0 when  
secured.  
UNSEC is read as 1 by a debugging environment in special single chip mode when the device is secured and fully erased,  
else it is 0 and can only be read if not secure (see also bit description).  
Figure 19-3. BDM Status Register (BDMSTS)  
Read: All modes through BDM operation when not secured  
Write: All modes through BDM operation when not secured, but subject to the following:  
— ENBDM should only be set via a BDM hardware command if the BDM firmware commands  
are needed. (This does not apply in special single chip and emulation modes).  
— BDMACT can only be set by BDM hardware upon entry into BDM. It can only be cleared by  
the standard BDM firmware lookup table upon exit from BDM active mode.  
— CLKSW can only be written via BDM hardware WRITE_BD commands.  
— All other bits, while writable via BDM hardware or standard BDM firmware write commands,  
should only be altered by the BDM hardware or standard firmware lookup table as part of BDM  
command execution.  
Table 19-2. BDMSTS Field Descriptions  
Field  
Description  
7
Enable BDM — This bit controls whether the BDM is enabled or disabled. When enabled, BDM can be made  
active to allow firmware commands to be executed. When disabled, BDM cannot be made active but BDM  
hardware commands are still allowed.  
ENBDM  
0 BDM disabled  
1 BDM enabled  
Note: ENBDM is set by the firmware out of reset in special single chip mode and by hardware in emulation  
modes. In special single chip mode with the device secured, this bit will not be set by the firmware until  
after the EEPROM and Flash erase verify tests are complete. In emulation modes with the device  
secured, the BDM operations are blocked.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
770  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 19 Background Debug Module (S12XBDMV2)  
Table 19-2. BDMSTS Field Descriptions (continued)  
Field  
Description  
6
BDM Active Status — This bit becomes set upon entering BDM. The standard BDM firmware lookup table is  
BDMACT  
then enabled and put into the memory map. BDMACT is cleared by a carefully timed store instruction in the  
standard BDM firmware as part of the exit sequence to return to user code and remove the BDM memory from  
the map.  
0 BDM not active  
1 BDM active  
4
SDV  
Shift Data Valid — This bit is set and cleared by the BDM hardware. It is set after data has been transmitted as  
part of a firmware or hardware read command or after data has been received as part of a firmware or hardware  
write command. It is cleared when the next BDM command has been received or BDM is exited. SDV is used  
by the standard BDM firmware to control program flow execution.  
0 Data phase of command not complete  
1 Data phase of command is complete  
3
TRACE1 BDM Firmware Command is Being Executed — This bit gets set when a BDM TRACE1 firmware  
command is first recognized. It will stay set until BDM firmware is exited by one of the following BDM commands:  
GO or GO_UNTIL.  
TRACE  
0 TRACE1 command is not being executed  
1 TRACE1 command is being executed  
2
Clock Switch — The CLKSW bit controls which clock the BDM operates with. It is only writable from a hardware  
BDM command. A minimum delay of 150 cycles at the clock speed that is active during the data portion of the  
command send to change the clock source should occur before the next command can be send. The delay  
should be obtained no matter which bit is modified to effectively change the clock source (either PLLSEL bit or  
CLKSW bit). This guarantees that the start of the next BDM command uses the new clock for timing subsequent  
BDM communications.  
CLKSW  
Table 19-3 shows the resulting BDM clock source based on the CLKSW and the PLLSEL (PLL select in the CRG  
module, the bit is part of the CLKSEL register) bits.  
Note: The BDM alternate clock source can only be selected when CLKSW = 0 and PLLSEL = 1. The BDM serial  
interface is now fully synchronized to the alternate clock source, when enabled. This eliminates frequency  
restriction on the alternate clock which was required on previous versions. Refer to the device  
specification to determine which clock connects to the alternate clock source input.  
Note: If the acknowledge function is turned on, changing the CLKSW bit will cause the ACK to be at the new  
rate for the write command which changes it.  
Note: In emulation mode, the CLKSW bit will be set out of RESET.  
1
Unsecure — If the device is secured this bit is only writable in special single chip mode from the BDM secure  
firmware. It is in a zero state as secure mode is entered so that the secure BDM firmware lookup table is enabled  
and put into the memory map overlapping the standard BDM firmware lookup table.  
UNSEC  
The secure BDM firmware lookup table verifies that the on-chip EEPROM and Flash EEPROM are erased. This  
being the case, the UNSEC bit is set and the BDM program jumps to the start of the standard BDM firmware  
lookup table and the secure BDM firmware lookup table is turned off. If the erase test fails, the UNSEC bit will  
not be asserted.  
0 System is in a secured mode.  
1 System is in a unsecured mode.  
Note: When UNSEC is set, security is off and the user can change the state of the secure bits in the on-chip  
Flash EEPROM. Note that if the user does not change the state of the bits to “unsecured” mode, the  
system will be secured again when it is next taken out of reset.After reset this bit has no meaning or effect  
when the security byte in the Flash EEPROM is configured for unsecure mode.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
771  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 19 Background Debug Module (S12XBDMV2)  
Table 19-3. BDM Clock Sources  
PLLSEL CLKSW  
BDMCLK  
0
0
1
1
0
1
0
1
Bus clock dependent on oscillator  
Bus clock dependent on oscillator  
Alternate clock (refer to the device specification to determine the alternate clock source)  
Bus clock dependent on the PLL  
19.3.2.2 BDM CCR LOW Holding Register (BDMCCRL)  
Register Global Address 0x7FFF06  
7
6
5
4
3
2
1
0
R
CCR7  
CCR6  
CCR5  
CCR4  
CCR3  
CCR2  
CCR1  
CCR0  
W
Reset  
Special Single-Chip Mode  
All Other Modes  
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
Figure 19-4. BDM CCR LOW Holding Register (BDMCCRL)  
Read: All modes through BDM operation when not secured  
Write: All modes through BDM operation when not secured  
NOTE  
When BDM is made active, the CPU stores the content of its CCR register  
L
in the BDMCCRL register. However, out of special single-chip reset, the  
BDMCCRL is set to 0xD8 and not 0xD0 which is the reset value of the  
CCR register in this CPU mode. Out of reset in all other modes the  
L
BDMCCRL register is read zero.  
When entering background debug mode, the BDM CCR LOW holding register is used to save the low byte  
of the condition code register of the user’s program. It is also used for temporary storage in the standard  
BDM firmware mode. The BDM CCR LOW holding register can be written to modify the CCR value.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
772  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 19 Background Debug Module (S12XBDMV2)  
19.3.2.3 BDM CCR HIGH Holding Register (BDMCCRH)  
Register Global Address 0x7FFF07  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
CCR10  
CCR9  
CCR8  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 19-5. BDM CCR HIGH Holding Register (BDMCCRH)  
Read: All modes through BDM operation when not secured  
Write: All modes through BDM operation when not secured  
When entering background debug mode, the BDM CCR HIGH holding register is used to save the high  
byte of the condition code register of the user’s program. The BDM CCR HIGH holding register can be  
written to modify the CCR value.  
19.3.2.4 BDM Global Page Index Register (BDMGPR)  
Register Global Address 0x7FFF08  
7
BGAE  
0
6
BGP6  
0
5
BGP5  
0
4
BGP4  
0
3
BGP3  
0
2
BGP2  
0
1
BGP1  
0
0
BGP0  
0
R
W
Reset  
Figure 19-6. BDM Global Page Register (BDMGPR)  
Read: All modes through BDM operation when not secured  
Write: All modes through BDM operation when not secured  
Table 19-4. BDMGPR Field Descriptions  
Field  
Description  
7
BDM Global Page Access Enable Bit — BGAE enables global page access for BDM hardware and firmware  
read/write instructions The BDM hardware commands used to access the BDM registers (READ_BD_ and  
WRITE_BD_) can not be used for global accesses even if the BGAE bit is set.  
0 BDM Global Access disabled  
BGAE  
1 BDM Global Access enabled  
6–0  
BDM Global Page Index Bits 6–0 — These bits define the extended address bits from 22 to 16. For more  
BGP[6:0]  
detailed information regarding the global page window scheme, please refer to the S12X_MMC Block Guide.  
19.3.3 Family ID Assignment  
The family ID is a 8-bit value located in the firmware ROM (at global address: 0x7FFF0F). The read-only  
value is a unique family ID which is 0xC1 for S12X devices.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
773  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 19 Background Debug Module (S12XBDMV2)  
19.4 Functional Description  
The BDM receives and executes commands from a host via a single wire serial interface. There are two  
types of BDM commands: hardware and firmware commands.  
Hardware commands are used to read and write target system memory locations and to enter active  
background debug mode, see Section 19.4.3, “BDM Hardware Commands”. Target system memory  
includes all memory that is accessible by the CPU.  
Firmware commands are used to read and write CPU resources and to exit from active background debug  
mode, see Section 19.4.4, “Standard BDM Firmware Commands”. The CPU resources referred to are the  
accumulator (D), X index register (X), Y index register (Y), stack pointer (SP), and program counter (PC).  
Hardware commands can be executed at any time and in any mode excluding a few exceptions as  
highlighted (see Section 19.4.3, “BDM Hardware Commands”) and in secure mode (see Section 19.4.1,  
“Security”). Firmware commands can only be executed when the system is not secure and is in active  
background debug mode (BDM).  
19.4.1 Security  
If the user resets into special single chip mode with the system secured, a secured mode BDM firmware  
lookup table is brought into the map overlapping a portion of the standard BDM firmware lookup table.  
The secure BDM firmware verifies that the on-chip EEPROM and Flash EEPROM are erased. This being  
the case, the UNSEC and ENBDM bit will get set. The BDM program jumps to the start of the standard  
BDM firmware and the secured mode BDM firmware is turned off and all BDM commands are allowed.  
If the EEPROM or Flash do not verify as erased, the BDM firmware sets the ENBDM bit, without asserting  
UNSEC, and the firmware enters a loop. This causes the BDM hardware commands to become enabled,  
but does not enable the firmware commands. This allows the BDM hardware to be used to erase the  
EEPROM and Flash.  
BDM operation is not possible in any other mode than special single chip mode when the device is secured.  
The device can only be unsecured via BDM serial interface in special single chip mode. For more  
information regarding security, please see the S12X_9SEC Block Guide.  
19.4.2 Enabling and Activating BDM  
The system must be in active BDM to execute standard BDM firmware commands. BDM can be activated  
only after being enabled. BDM is enabled by setting the ENBDM bit in the BDM status (BDMSTS)  
register. The ENBDM bit is set by writing to the BDM status (BDMSTS) register, via the single-wire  
interface, using a hardware command such as WRITE_BD_BYTE.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
774  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 19 Background Debug Module (S12XBDMV2)  
1
After being enabled, BDM is activated by one of the following :  
Hardware BACKGROUND command  
CPU BGND instruction  
2
External instruction tagging mechanism  
2
Breakpoint force or tag mechanism  
When BDM is activated, the CPU finishes executing the current instruction and then begins executing the  
firmware in the standard BDM firmware lookup table. When BDM is activated by a breakpoint, the type  
of breakpoint used determines if BDM becomes active before or after execution of the next instruction.  
NOTE  
If an attempt is made to activate BDM before being enabled, the CPU  
resumes normal instruction execution after a brief delay. If BDM is not  
enabled, any hardware BACKGROUND commands issued are ignored by  
the BDM and the CPU is not delayed.  
In active BDM, the BDM registers and standard BDM firmware lookup table are mapped to addresses  
0x7FFF00 to 0x7FFFFF. BDM registers are mapped to addresses 0x7FFF00 to 0x7FFF0B. The BDM uses  
these registers which are readable anytime by the BDM. However, these registers are not readable by user  
programs.  
19.4.3 BDM Hardware Commands  
Hardware commands are used to read and write target system memory locations and to enter active  
background debug mode. Target system memory includes all memory that is accessible by the CPU such  
as on-chip RAM, EEPROM, Flash EEPROM, I/O and control registers, and all external memory.  
Hardware commands are executed with minimal or no CPU intervention and do not require the system to  
be in active BDM for execution, although, they can still be executed in this mode. When executing a  
hardware command, the BDM sub-block waits for a free bus cycle so that the background access does not  
disturb the running application program. If a free cycle is not found within 128 clock cycles, the CPU is  
momentarily frozen so that the BDM can steal a cycle. When the BDM finds a free cycle, the operation  
does not intrude on normal CPU operation provided that it can be completed in a single cycle. However,  
if an operation requires multiple cycles the CPU is frozen until the operation is complete, even though the  
BDM found a free cycle.  
The BDM hardware commands are listed in Table 19-5.  
The READ_BD and WRITE_BD commands allow access to the BDM register locations. These locations  
are not normally in the system memory map but share addresses with the application in memory. To  
distinguish between physical memory locations that share the same address, BDM memory resources are  
enabled just for the READ_BD and WRITE_BD access cycle. This allows the BDM to access BDM  
locations unobtrusively, even if the addresses conflict with the application memory map.  
1. BDM is enabled and active immediately out of special single-chip reset.  
2. This method is provided by the S12X_DBG module.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
775  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 19 Background Debug Module (S12XBDMV2)  
Table 19-5. Hardware Commands  
Opcode  
(hex)  
Command  
Data  
Description  
BACKGROUND  
90  
None  
Enter background mode if firmware is enabled. If enabled, an ACK will be  
issued when the part enters active background mode.  
ACK_ENABLE  
ACK_DISABLE  
READ_BD_BYTE  
D5  
D6  
E4  
None  
None  
Enable Handshake. Issues an ACK pulse after the command is executed.  
Disable Handshake. This command does not issue an ACK pulse.  
16-bit address Read from memory with standard BDM firmware lookup table in map.  
16-bit data out Odd address data on low byte; even address data on high byte.  
READ_BD_WORD  
READ_BYTE  
EC  
E0  
E8  
C4  
CC  
C0  
C8  
16-bit address Read from memory with standard BDM firmware lookup table in map.  
16-bit data out Must be aligned access.  
16-bit address Read from memory with standard BDM firmware lookup table out of map.  
16-bit data out Odd address data on low byte; even address data on high byte.  
READ_WORD  
WRITE_BD_BYTE  
WRITE_BD_WORD  
WRITE_BYTE  
WRITE_WORD  
NOTE:  
16-bit address Read from memory with standard BDM firmware lookup table out of map.  
16-bit data out Must be aligned access.  
16-bit address Write to memory with standard BDM firmware lookup table in map.  
16-bit data in Odd address data on low byte; even address data on high byte.  
16-bit address Write to memory with standard BDM firmware lookup table in map.  
16-bit data in Must be aligned access.  
16-bit address Write to memory with standard BDM firmware lookup table out of map.  
16-bit data in Odd address data on low byte; even address data on high byte.  
16-bit address Write to memory with standard BDM firmware lookup table out of map.  
16-bit data in Must be aligned access.  
If enabled, ACK will occur when data is ready for transmission for all BDM READ commands and will occur after the write is  
complete for all BDM WRITE commands.  
19.4.4 Standard BDM Firmware Commands  
Firmware commands are used to access and manipulate CPU resources. The system must be in active  
BDM to execute standard BDM firmware commands, see Section 19.4.2, “Enabling and Activating  
BDM”. Normal instruction execution is suspended while the CPU executes the firmware located in the  
standard BDM firmware lookup table. The hardware command BACKGROUND is the usual way to  
activate BDM.  
As the system enters active BDM, the standard BDM firmware lookup table and BDM registers become  
visible in the on-chip memory map at 0x7FFF00–0x7FFFFF, and the CPU begins executing the standard  
BDM firmware. The standard BDM firmware watches for serial commands and executes them as they are  
received.  
The firmware commands are shown in Table 19-6.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
776  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 19 Background Debug Module (S12XBDMV2)  
Table 19-6. Firmware Commands  
Opcode  
(hex)  
1
Command  
Data  
Description  
2
READ_NEXT  
62  
63  
64  
65  
66  
67  
42  
16-bit data out Increment X index register by 2 (X = X + 2), then read word X points to.  
16-bit data out Read program counter.  
READ_PC  
READ_D  
READ_X  
READ_Y  
16-bit data out Read D accumulator.  
16-bit data out Read X index register.  
16-bit data out Read Y index register.  
16-bit data out Read stack pointer.  
vetica><st-superscri  
pt>  
16-bit data in Increment X index register by 2 (X = X + 2), then write word to location  
pointed to by X.  
WRITE_PC  
WRITE_D  
WRITE_X  
WRITE_Y  
WRITE_SP  
GO  
43  
44  
45  
46  
47  
08  
16-bit data in Write program counter.  
16-bit data in Write D accumulator.  
16-bit data in Write X index register.  
16-bit data in Write Y index register.  
16-bit data in Write stack pointer.  
none  
none  
none  
none  
Go to user program. If enabled, ACK will occur when leaving active  
background mode.  
3
GO_UNTIL  
0C  
10  
18  
Go to user program. If enabled, ACK will occur upon returning to active  
background mode.  
TRACE1  
Execute one user instruction then return to active BDM. If enabled,  
ACK will occur upon returning to active background mode.  
TAGGO -> GO  
(Previous enable tagging and go to user program.)  
This command will be deprecated and should not be used anymore.  
Opcode will be executed as a GO command.  
1
2
3
If enabled, ACK will occur when data is ready for transmission for all BDM READ commands and will occur after the write is  
complete for all BDM WRITE commands.  
When the firmware command READ_NEXT or WRITE_NEXT is used to access the BDM address space the BDM resources  
are accessed rather than user code. Writing BDM firmware is not possible.  
System stop disables the ACK function and ignored commands will not have an ACK-pulse (e.g., CPU in stop or wait mode).  
The GO_UNTIL command will not get an Acknowledge if CPU executes the wait or stop instruction before the “UNTIL”  
condition (BDM active again) is reached (see Section 19.4.7, “Serial Interface Hardware Handshake Protocol” last Note).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
777  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 19 Background Debug Module (S12XBDMV2)  
19.4.5 BDM Command Structure  
Hardware and firmware BDM commands start with an 8-bit opcode followed by a 16-bit address and/or a  
16-bit data word depending on the command. All the read commands return 16 bits of data despite the byte  
or word implication in the command name.  
8-bit reads return 16-bits of data, of which, only one byte will contain valid  
data. If reading an even address, the valid data will appear in the MSB. If  
reading an odd address, the valid data will appear in the LSB.  
16-bit misaligned reads and writes are generally not allowed. If attempted  
by BDM hardware command, the BDM will ignore the least significant bit  
of the address and will assume an even address from the remaining bits.  
The following cycle count information is only valid when the external wait  
function is not used (see wait bit of EBI sub-block). During an external wait  
function if the BDM serial interface is much faster than the bus, because of  
the BDM soft-reset after time-out (see Section 19.4.11, “Serial  
Communication Time Out”).  
For hardware data read commands, the external host must wait at least 150 bus clock cycles after sending  
the address before attempting to obtain the read data. This is to be certain that valid data is available in the  
BDM shift register, ready to be shifted out. For hardware write commands, the external host must wait  
150 bus clock cycles after sending the data to be written before attempting to send a new command. This  
is to avoid disturbing the BDM shift register before the write has been completed. The 150 bus clock cycle  
delay in both cases includes the maximum 128 cycle delay that can be incurred as the BDM waits for a  
free cycle before stealing a cycle.  
For firmware read commands, the external host should wait at least 48 bus clock cycles after sending the  
command opcode and before attempting to obtain the read data. This includes the potential of extra cycles  
when the access is external and stretched (+1 to maximum +7 cycles) or to registers of the PRU (port  
replacement unit) in emulation mode. The 48 cycle wait allows enough time for the requested data to be  
made available in the BDM shift register, ready to be shifted out.  
NOTE  
This timing has increased from previous BDM modules due to the new  
capability in which the BDM serial interface can potentially run faster than  
the bus. On previous BDM modules this extra time could be hidden within  
the serial time.  
For firmware write commands, the external host must wait 36 bus clock cycles after sending the data to be  
written before attempting to send a new command. This is to avoid disturbing the BDM shift register  
before the write has been completed.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
778  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 19 Background Debug Module (S12XBDMV2)  
The external host should wait at least for 76 bus clock cycles after a TRACE1 or GO command before  
starting any new serial command. This is to allow the CPU to exit gracefully from the standard BDM  
firmware lookup table and resume execution of the user code. Disturbing the BDM shift register  
prematurely may adversely affect the exit from the standard BDM firmware lookup table.  
NOTE  
If the bus rate of the target processor is unknown or could be changing or the  
external wait function is used, it is recommended that the ACK  
(acknowledge function) is used to indicate when an operation is complete.  
When using ACK, the delay times are automated.  
Figure 19-7 represents the BDM command structure. The command blocks illustrate a series of eight bit  
times starting with a falling edge. The bar across the top of the blocks indicates that the BKGD line idles  
1
in the high state. The time for an 8-bit command is 8 × 16 target clock cycles.  
8 Bits  
AT ~16 TC/Bit  
16 Bits  
AT ~16 TC/Bit  
150-BC  
Delay  
16 Bits  
AT ~16 TC/Bit  
Hardware  
Read  
Next  
Command  
Command  
Command  
Command  
Command  
Command  
Address  
Data  
150-BC  
Delay  
Hardware  
Write  
Next  
Command  
Address  
Data  
48-BC  
DELAY  
Firmware  
Read  
Next  
Command  
Data  
36-BC  
DELAY  
Firmware  
Write  
Next  
Command  
Data  
76-BC  
Delay  
GO,  
TRACE  
Next  
Command  
BC = Bus Clock Cycles  
TC = Target Clock Cycles  
Figure 19-7. BDM Command Structure  
1. Target clock cycles are cycles measured using the target MCU’s serial clock rate. See Section 19.4.6, “BDM Serial Interface”  
and Section 19.3.2.1, “BDM Status Register (BDMSTS)” for information on how serial clock rate is selected.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
779  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 19 Background Debug Module (S12XBDMV2)  
19.4.6 BDM Serial Interface  
The BDM communicates with external devices serially via the BKGD pin. During reset, this pin is a mode  
select input which selects between normal and special modes of operation. After reset, this pin becomes  
the dedicated serial interface pin for the BDM.  
The BDM serial interface is timed using the clock selected by the CLKSW bit in the status register see  
Section 19.3.2.1, “BDM Status Register (BDMSTS)”. This clock will be referred to as the target clock in  
the following explanation.  
The BDM serial interface uses a clocking scheme in which the external host generates a falling edge on  
the BKGD pin to indicate the start of each bit time. This falling edge is sent for every bit whether data is  
transmitted or received. Data is transferred most significant bit (MSB) first at 16 target clock cycles per  
bit. The interface times out if 512 clock cycles occur between falling edges from the host.  
The BKGD pin is a pseudo open-drain pin and has an weak on-chip active pull-up that is enabled at all  
times. It is assumed that there is an external pull-up and that drivers connected to BKGD do not typically  
drive the high level. Since R-C rise time could be unacceptably long, the target system and host provide  
brief driven-high (speedup) pulses to drive BKGD to a logic 1. The source of this speedup pulse is the host  
for transmit cases and the target for receive cases.  
The timing for host-to-target is shown in Figure 19-8 and that of target-to-host in Figure 19-9 and  
Figure 19-10. All four cases begin when the host drives the BKGD pin low to generate a falling edge. Since  
the host and target are operating from separate clocks, it can take the target system up to one full clock  
cycle to recognize this edge. The target measures delays from this perceived start of the bit time while the  
host measures delays from the point it actually drove BKGD low to start the bit up to one target clock cycle  
earlier. Synchronization between the host and target is established in this manner at the start of every bit  
Figure 19-8 shows an external host transmitting a logic 1 and transmitting a logic 0 to the BKGD pin of a  
target system. The host is asynchronous to the target, so there is up to a one clock-cycle delay from the  
host-generated falling edge to where the target recognizes this edge as the beginning of the bit time. Ten  
target clock cycles later, the target senses the bit level on the BKGD pin. Internal glitch detect logic  
requires the pin be driven high no later that eight target clock cycles after the falling edge for a logic 1  
transmission.  
Since the host drives the high speedup pulses in these two cases, the rising edges look like digitally driven  
signals.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
780  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 19 Background Debug Module (S12XBDMV2)  
BDM Clock  
(Target MCU)  
Host  
Transmit 1  
Host  
Transmit 0  
Perceived  
Target Senses Bit  
Start of Bit Time  
Earliest  
Start of  
Next Bit  
10 Cycles  
Synchronization  
Uncertainty  
Figure 19-8. BDM Host-to-Target Serial Bit Timing  
The receive cases are more complicated. Figure 19-9 shows the host receiving a logic 1 from the target  
system. Since the host is asynchronous to the target, there is up to one clock-cycle delay from the  
host-generated falling edge on BKGD to the perceived start of the bit time in the target. The host holds the  
BKGD pin low long enough for the target to recognize it (at least two target clock cycles). The host must  
release the low drive before the target drives a brief high speedup pulse seven target clock cycles after the  
perceived start of the bit time. The host should sample the bit level about 10 target clock cycles after it  
started the bit time.  
BDM Clock  
(Target MCU)  
Host  
Drive to  
High-Impedance  
BKGD Pin  
Target System  
Speedup  
Pulse  
High-Impedance  
High-Impedance  
Perceived  
Start of Bit Time  
R-C Rise  
BKGD Pin  
10 Cycles  
10 Cycles  
Earliest  
Start of  
Next Bit  
Host Samples  
BKGD Pin  
Figure 19-9. BDM Target-to-Host Serial Bit Timing (Logic 1)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
781  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 19 Background Debug Module (S12XBDMV2)  
Figure 19-10 shows the host receiving a logic 0 from the target. Since the host is asynchronous to the  
target, there is up to a one clock-cycle delay from the host-generated falling edge on BKGD to the start of  
the bit time as perceived by the target. The host initiates the bit time but the target finishes it. Since the  
target wants the host to receive a logic 0, it drives the BKGD pin low for 13 target clock cycles then briefly  
drives it high to speed up the rising edge. The host samples the bit level about 10 target clock cycles after  
starting the bit time.  
BDM Clock  
(Target MCU)  
Host  
High-Impedance  
Speedup Pulse  
Drive to  
BKGD Pin  
Target System  
Drive and  
Speedup Pulse  
Perceived  
Start of Bit Time  
BKGD Pin  
10 Cycles  
10 Cycles  
Earliest  
Start of  
Next Bit  
Host Samples  
BKGD Pin  
Figure 19-10. BDM Target-to-Host Serial Bit Timing (Logic 0)  
19.4.7 Serial Interface Hardware Handshake Protocol  
BDM commands that require CPU execution are ultimately treated at the MCU bus rate. Since the BDM  
clock source can be asynchronously related to the bus frequency, when CLKSW = 0, it is very helpful to  
provide a handshake protocol in which the host could determine when an issued command is executed by  
the CPU. The alternative is to always wait the amount of time equal to the appropriate number of cycles at  
the slowest possible rate the clock could be running. This sub-section will describe the hardware  
handshake protocol.  
The hardware handshake protocol signals to the host controller when an issued command was successfully  
executed by the target. This protocol is implemented by a 16 serial clock cycle low pulse followed by a  
brief speedup pulse in the BKGD pin. This pulse is generated by the target MCU when a command, issued  
by the host, has been successfully executed (see Figure 19-11). This pulse is referred to as the ACK pulse.  
After the ACK pulse has finished: the host can start the bit retrieval if the last issued command was a read  
command, or start a new command if the last command was a write command or a control command  
(BACKGROUND, GO, GO_UNTIL or TRACE1). The ACK pulse is not issued earlier than 32 serial clock  
cycles after the BDM command was issued. The end of the BDM command is assumed to be the 16th tick  
of the last bit. This minimum delay assures enough time for the host to perceive the ACK pulse. Note also  
that, there is no upper limit for the delay between the command and the related ACK pulse, since the  
command execution depends upon the CPU bus frequency, which in some cases could be very slow  
MC9S12XDP512 Data Sheet, Rev. 2.11  
782  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 19 Background Debug Module (S12XBDMV2)  
compared to the serial communication rate. This protocol allows a great flexibility for the POD designers,  
since it does not rely on any accurate time measurement or short response time to any event in the serial  
communication.  
BDM Clock  
(Target MCU)  
16 Cycles  
Target  
Transmits  
ACK Pulse  
High-Impedance  
32 Cycles  
High-Impedance  
Speedup Pulse  
Minimum Delay  
From the BDM Command  
BKGD Pin  
Earliest  
Start of  
Next Bit  
16th Tick of the  
Last Command Bit  
Figure 19-11. Target Acknowledge Pulse (ACK)  
NOTE  
If the ACK pulse was issued by the target, the host assumes the previous  
command was executed. If the CPU enters wait or stop prior to executing a  
hardware command, the ACK pulse will not be issued meaning that the  
BDM command was not executed. After entering wait or stop mode, the  
BDM command is no longer pending.  
Figure 19-12 shows the ACK handshake protocol in a command level timing diagram. The READ_BYTE  
instruction is used as an example. First, the 8-bit instruction opcode is sent by the host, followed by the  
address of the memory location to be read. The target BDM decodes the instruction. A bus cycle is grabbed  
(free or stolen) by the BDM and it executes the READ_BYTE operation. Having retrieved the data, the  
BDM issues an ACK pulse to the host controller, indicating that the addressed byte is ready to be retrieved.  
After detecting the ACK pulse, the host initiates the byte retrieval process. Note that data is sent in the form  
of a word and the host needs to determine which is the appropriate byte based on whether the address was  
odd or even.  
Target  
Host  
(2) Bytes are  
Retrieved  
New BDM  
Command  
BKGD Pin  
READ_BYTE  
Host  
Byte Address  
Target  
Host  
Target  
BDM Issues the  
ACK Pulse (out of scale)  
BDM Executes the  
READ_BYTE Command  
BDM Decodes  
the Command  
Figure 19-12. Handshake Protocol at Command Level  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
783  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 19 Background Debug Module (S12XBDMV2)  
Differently from the normal bit transfer (where the host initiates the transmission), the serial interface ACK  
handshake pulse is initiated by the target MCU by issuing a negative edge in the BKGD pin. The hardware  
handshake protocol in Figure 19-11 specifies the timing when the BKGD pin is being driven, so the host  
should follow this timing constraint in order to avoid the risk of an electrical conflict in the BKGD pin.  
NOTE  
The only place the BKGD pin can have an electrical conflict is when one  
side is driving low and the other side is issuing a speedup pulse (high). Other  
“highs” are pulled rather than driven. However, at low rates the time of the  
speedup pulse can become lengthy and so the potential conflict time  
becomes longer as well.  
The ACK handshake protocol does not support nested ACK pulses. If a BDM command is not  
acknowledge by an ACK pulse, the host needs to abort the pending command first in order to be able to  
issue a new BDM command. When the CPU enters wait or stop while the host issues a hardware command  
(e.g., WRITE_BYTE), the target discards the incoming command due to the wait or stop being detected.  
Therefore, the command is not acknowledged by the target, which means that the ACK pulse will not be  
issued in this case. After a certain time the host (not aware of stop or wait) should decide to abort any  
possible pending ACK pulse in order to be sure a new command can be issued. Therefore, the protocol  
provides a mechanism in which a command, and its corresponding ACK, can be aborted.  
NOTE  
The ACK pulse does not provide a time out. This means for the GO_UNTIL  
command that it can not be distinguished if a stop or wait has been executed  
(command discarded and ACK not issued) or if the “UNTIL” condition  
(BDM active) is just not reached yet. Hence in any case where the ACK  
aborted before issuing a new command. See the handshake abort procedure  
described in Section 19.4.8, “Hardware Handshake Abort Procedure”.  
19.4.8 Hardware Handshake Abort Procedure  
The abort procedure is based on the SYNC command. In order to abort a command, which had not issued  
the corresponding ACK pulse, the host controller should generate a low pulse in the BKGD pin by driving  
speedup pulse. By detecting this long low pulse in the BKGD pin, the target executes the SYNC protocol,  
see Section 19.4.9, “SYNC — Request Timed Reference Pulse”, and assumes that the pending command  
and therefore the related ACK pulse, are being aborted. Therefore, after the SYNC protocol has been  
completed the host is free to issue new BDM commands. For Firmware READ or WRITE commands it  
can not be guaranteed that the pending command is aborted when issuing a SYNC before the  
corresponding ACK pulse. There is a short latency time from the time the READ or WRITE access begins  
until it is finished and the corresponding ACK pulse is issued. The latency time depends on the firmware  
READ or WRITE command that is issued and if the serial interface is running on a different clock rate  
than the bus. When the SYNC command starts during this latency time the READ or WRITE command  
will not be aborted, but the corresponding ACK pulse will be aborted. A pending GO, TRACE1 or  
MC9S12XDP512 Data Sheet, Rev. 2.11  
784  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 19 Background Debug Module (S12XBDMV2)  
GO_UNTIL command can not be aborted. Only the corresponding ACK pulse can be aborted by the  
SYNC command.  
Although it is not recommended, the host could abort a pending BDM command by issuing a low pulse in  
the BKGD pin shorter than 128 serial clock cycles, which will not be interpreted as the SYNC command.  
The ACK is actually aborted when a negative edge is perceived by the target in the BKGD pin. The short  
abort pulse should have at least 4 clock cycles keeping the BKGD pin low, in order to allow the negative  
edge to be detected by the target. In this case, the target will not execute the SYNC protocol but the pending  
command will be aborted along with the ACK pulse. The potential problem with this abort procedure is  
when there is a conflict between the ACK pulse and the short abort pulse. In this case, the target may not  
perceive the abort pulse. The worst case is when the pending command is a read command (i.e.,  
READ_BYTE). If the abort pulse is not perceived by the target the host will attempt to send a new  
command after the abort pulse was issued, while the target expects the host to retrieve the accessed  
memory byte. In this case, host and target will run out of synchronism. However, if the command to be  
aborted is not a read command the short abort pulse could be used. After a command is aborted the target  
assumes the next negative edge, after the abort pulse, is the first bit of a new BDM command.  
NOTE  
The details about the short abort pulse are being provided only as a reference  
for the reader to better understand the BDM internal behavior. It is not  
recommended that this procedure be used in a real application.  
Since the host knows the target serial clock frequency, the SYNC command (used to abort a command)  
does not need to consider the lower possible target frequency. In this case, the host could issue a SYNC  
very close to the 128 serial clock cycles length. Providing a small overhead on the pulse length in order to  
assure the SYNC pulse will not be misinterpreted by the target. See Section 19.4.9, “SYNC — Request  
Figure 19-13 shows a SYNC command being issued after a READ_BYTE, which aborts the  
READ_BYTE command. Note that, after the command is aborted a new command could be issued by the  
host computer.  
READ_BYTE CMD is Aborted  
by the SYNC Request  
(Out of Scale)  
SYNC Response  
From the Target  
(Out of Scale)  
BKGD Pin READ_BYTE  
Host  
Memory Address  
Target  
READ_STATUS  
New BDM Command  
Host Target  
Host  
Target  
BDM Decode  
New BDM Command  
and Starts to Execute  
the READ_BYTE Command  
Figure 19-13. ACK Abort Procedure at the Command Level  
NOTE  
Figure 19-13 does not represent the signals in a true timing scale  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
785  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 19 Background Debug Module (S12XBDMV2)  
Figure 19-14 shows a conflict between the ACK pulse and the SYNC request pulse. This conflict could  
occur if a POD device is connected to the target BKGD pin and the target is already in debug active mode.  
Consider that the target CPU is executing a pending BDM command at the exact moment the POD is being  
connected to the BKGD pin. In this case, an ACK pulse is issued along with the SYNC command. In this  
case, there is an electrical conflict between the ACK speedup pulse and the SYNC pulse. Since this is not  
a probable situation, the protocol does not prevent this conflict from happening.  
At Least 128 Cycles  
BDM Clock  
(Target MCU)  
ACK Pulse  
Target MCU  
High-Impedance  
Electrical Conflict  
Drives to  
BKGD Pin  
Speedup Pulse  
Host and  
Target Drive  
to BKGD Pin  
Host  
Drives SYNC  
To BKGD Pin  
Host SYNC Request Pulse  
BKGD Pin  
16 Cycles  
Figure 19-14. ACK Pulse and SYNC Request Conflict  
NOTE  
This information is being provided so that the MCU integrator will be aware  
that such a conflict could eventually occur.  
The hardware handshake protocol is enabled by the ACK_ENABLE and disabled by the ACK_DISABLE  
BDM commands. This provides backwards compatibility with the existing POD devices which are not  
able to execute the hardware handshake protocol. It also allows for new POD devices, that support the  
hardware handshake protocol, to freely communicate with the target device. If desired, without the need  
for waiting for the ACK pulse.  
The commands are described as follows:  
ACK_ENABLE — enables the hardware handshake protocol. The target will issue the ACK pulse  
when a CPU command is executed by the CPU. The ACK_ENABLE command itself also has the  
ACK pulse as a response.  
ACK_DISABLE — disables the ACK pulse protocol. In this case, the host needs to use the worst  
case delay time at the appropriate places in the protocol.  
The default state of the BDM after reset is hardware handshake protocol disabled.  
All the read commands will ACK (if enabled) when the data bus cycle has completed and the data is then  
has been received by the BDM through the BKGD serial pin and when the data bus cycle is complete. See  
Section 19.4.3, “BDM Hardware Commands” and Section 19.4.4, “Standard BDM Firmware Commands”  
for more information on the BDM commands.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
786  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 19 Background Debug Module (S12XBDMV2)  
The ACK_ENABLE sends an ACK pulse when the command has been completed. This feature could be  
used by the host to evaluate if the target supports the hardware handshake protocol. If an ACK pulse is  
issued in response to this command, the host knows that the target supports the hardware handshake  
protocol. If the target does not support the hardware handshake protocol the ACK pulse is not issued. In  
this case, the ACK_ENABLE command is ignored by the target since it is not recognized as a valid  
command.  
The BACKGROUND command will issue an ACK pulse when the CPU changes from normal to  
background mode. The ACK pulse related to this command could be aborted using the SYNC command.  
The GO command will issue an ACK pulse when the CPU exits from background mode. The ACK pulse  
related to this command could be aborted using the SYNC command.  
The GO_UNTIL command is equivalent to a GO command with exception that the ACK pulse, in this  
case, is issued when the CPU enters into background mode. This command is an alternative to the GO  
command and should be used when the host wants to trace if a breakpoint match occurs and causes the  
CPU to enter active background mode. Note that the ACK is issued whenever the CPU enters BDM, which  
could be caused by a breakpoint match or by a BGND instruction being executed. The ACK pulse related  
to this command could be aborted using the SYNC command.  
The TRACE1 command has the related ACK pulse issued when the CPU enters background active mode  
after one instruction of the application program is executed. The ACK pulse related to this command could  
be aborted using the SYNC command.  
19.4.9 SYNC — Request Timed Reference Pulse  
The SYNC command is unlike other BDM commands because the host does not necessarily know the  
correct communication speed to use for BDM communications until after it has analyzed the response to  
the SYNC command. To issue a SYNC command, the host should perform the following steps:  
1. Drive the BKGD pin low for at least 128 cycles at the lowest possible BDM serial communication  
frequency (the lowest serial communication frequency is determined by the crystal oscillator or the  
clock chosen by CLKSW.)  
2. Drive BKGD high for a brief speedup pulse to get a fast rise time (this speedup pulse is typically  
one cycle of the host clock.)  
3. Remove all drive to the BKGD pin so it reverts to high impedance.  
4. Listen to the BKGD pin for the sync response pulse.  
Upon detecting the SYNC request from the host, the target performs the following steps:  
1. Discards any incomplete command received or bit retrieved.  
2. Waits for BKGD to return to a logic one.  
3. Delays 16 cycles to allow the host to stop driving the high speedup pulse.  
4. Drives BKGD low for 128 cycles at the current BDM serial communication frequency.  
5. Drives a one-cycle high speedup pulse to force a fast rise time on BKGD.  
6. Removes all drive to the BKGD pin so it reverts to high impedance.  
The host measures the low time of this 128 cycle SYNC response pulse and determines the correct speed  
for subsequent BDM communications. Typically, the host can determine the correct communication speed  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
787  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 19 Background Debug Module (S12XBDMV2)  
within a few percent of the actual target speed and the communication protocol can easily tolerate speed  
errors of several percent.  
As soon as the SYNC request is detected by the target, any partially received command or bit retrieved is  
discarded. This is referred to as a soft-reset, equivalent to a time-out in the serial communication. After the  
SYNC response, the target will consider the next negative edge (issued by the host) as the start of a new  
BDM command or the start of new SYNC request.  
Another use of the SYNC command pulse is to abort a pending ACK pulse. The behavior is exactly the  
same as in a regular SYNC command. Note that one of the possible causes for a command to not be  
acknowledged by the target is a host-target synchronization problem. In this case, the command may not  
have been understood by the target and so an ACK response pulse will not be issued.  
19.4.10 Instruction Tracing  
When a TRACE1 command is issued to the BDM in active BDM, the CPU exits the standard BDM  
firmware and executes a single instruction in the user code. Once this has occurred, the CPU is forced to  
return to the standard BDM firmware and the BDM is active and ready to receive a new command. If the  
TRACE1 command is issued again, the next user instruction will be executed. This facilitates stepping or  
tracing through the user code one instruction at a time.  
If an interrupt is pending when a TRACE1 command is issued, the interrupt stacking operation occurs but  
no user instruction is executed. Once back in standard BDM firmware execution, the program counter  
points to the first instruction in the interrupt service routine.  
Be aware when tracing through the user code that the execution of the user code is done step by step but  
all peripherals are free running. Hence possible timing relations between CPU code execution and  
occurrence of events of other peripherals no longer exist.  
When tracing through user code which contains stop or wait instructions the following will happen when  
the stop or wait instruction is traced:  
The CPU enters stop or wait mode and the TRACE1 command can not be finished before leaving  
the low power mode. This is the case because BDM active mode can not be entered after CPU  
executed the stop instruction. However all BDM hardware commands except the BACKGROUND  
command are operational after tracing a stop or wait instruction and still being in stop or wait  
mode. If system stop mode is entered (all bus masters are in stop mode) no BDM command is  
operational.  
As soon as stop or wait mode is exited the CPU enters BDM active mode and the saved PC value  
points to the entry of the corresponding interrupt service routine.  
In case the handshake feature is enabled the corresponding ACK pulse of the TRACE1 command  
will be discarded when tracing a stop or wait instruction. Hence there is no ACK pulse when BDM  
active mode is entered as part of the TRACE1 command after CPU exited from stop or wait mode.  
All valid commands sent during CPU being in stop or wait mode or after CPU exited from stop or  
wait mode will have an ACK pulse. The handshake feature becomes disabled only when system  
stop mode has been reached. Hence after a system stop mode the handshake feature must be  
enabled again by sending the ACK_ENABLE command.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
788  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 19 Background Debug Module (S12XBDMV2)  
19.4.11 Serial Communication Time Out  
The host initiates a host-to-target serial transmission by generating a falling edge on the BKGD pin. If  
BKGD is kept low for more than 128 target clock cycles, the target understands that a SYNC command  
was issued. In this case, the target will keep waiting for a rising edge on BKGD in order to answer the  
SYNC request pulse. If the rising edge is not detected, the target will keep waiting forever without any  
time-out limit.  
Consider now the case where the host returns BKGD to logic one before 128 cycles. This is interpreted as  
a valid bit transmission, and not as a SYNC request. The target will keep waiting for another falling edge  
marking the start of a new bit. If, however, a new falling edge is not detected by the target within 512 clock  
cycles since the last falling edge, a time-out occurs and the current command is discarded without affecting  
memory or the operating mode of the MCU. This is referred to as a soft-reset.  
If a read command is issued but the data is not retrieved within 512 serial clock cycles, a soft-reset will  
occur causing the command to be disregarded. The data is not available for retrieval after the time-out has  
occurred. This is the expected behavior if the handshake protocol is not enabled. However, consider the  
behavior where the BDM is running in a frequency much greater than the CPU frequency. In this case, the  
command could time out before the data is ready to be retrieved. In order to allow the data to be retrieved  
even with a large clock frequency mismatch (between BDM and CPU) when the hardware handshake  
protocol is enabled, the time out between a read command and the data retrieval is disabled. Therefore, the  
host could wait for more then 512 serial clock cycles and still be able to retrieve the data from an issued  
read command. However, once the handshake pulse (ACK pulse) is issued, the time-out feature is  
re-activated, meaning that the target will time out after 512 clock cycles. Therefore, the host needs to  
retrieve the data within a 512 serial clock cycles time frame after the ACK pulse had been issued. After  
that period, the read command is discarded and the data is no longer available for retrieval. Any negative  
edge in the BKGD pin after the time-out period is considered to be a new command or a SYNC request.  
Note that whenever a partially issued command, or partially retrieved data, has occurred the time out in the  
serial communication is active. This means that if a time frame higher than 512 serial clock cycles is  
observed between two consecutive negative edges and the command being issued or data being retrieved  
is not complete, a soft-reset will occur causing the partially received command or data retrieved to be  
disregarded. The next negative edge in the BKGD pin, after a soft-reset has occurred, is considered by the  
target as the start of a new BDM command, or the start of a SYNC request pulse.  
ff12  
READ_BACK  
equ  
$ff12  
;S12X read back value to solve MUCts02411  
;never touch data at this address !!!!  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
789  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 19 Background Debug Module (S12XBDMV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
790  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 20  
Debug (S12XDBGV2)  
20.1 Introduction  
The DBG module provides an on-chip trace buffer with flexible triggering capability to allow non-intrusive  
debug of application software. The DBG module is optimized for the HCS12X 16-bit architecture and  
allows debugging of both CPU and XGATE module operations.  
Typically the DBG module is used in conjunction with the BDM module, whereby the user configures the  
DBG module for a debugging session over the BDM interface. Once configured the DBG module is armed  
and the device leaves BDM mode returning control to the user program, which is then monitored by the  
DBG module. Alternatively, the DBG module can be configured over a serial interface using SWI routines.  
Comparators monitor the bus activity of the CPU and XGATE modules. When a match occurs, the control  
logic can trigger the state sequencer to a new state or tag an opcode. A tag hit, which occurs when the  
tagged opcode reaches the execution stage of the instruction queue, can also cause a state transition.  
On a transition to the final state, bus tracing is triggered and/or a breakpoint can be generated. Independent  
of comparator matches, a transition to final state with associated tracing and breakpoint can be triggered  
by the external TAGHI and TAGLO signals. This is done by an XGATE module S/W breakpoint request  
or by writing to the TRIG control bit.  
The trace buffer is visible through a 2-byte window in the register address map and can be read out using  
standard 16-bit word reads. Tracing is disabled when the MCU system is secured.  
20.1.1 Glossary of Terms  
COF: Change Of Flow. Change in the program flow due to a conditional branch, indexed jump or interrupt.  
BDM : Background Debug Mode  
DUG: Device User Guide, describing the features of the device into which the DBG is integrated.  
WORD: 16 bit data entity  
Data Line : 64 bit data entity  
XGATE : S12X family programmable Direct Memory Access Module  
CPU : S12X_CPU module  
Tag : Tags can be attached to XGATE or CPU opcodes as they enter the instruction pipe. If the tagged  
opcode reaches the execution stage a tag hit occurs.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
791  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 20 Debug (S12XDBGV2)  
20.1.2 Features  
Four comparators (A, B, C, and D):  
— Comparators A and C compare the full address and the full 16-bit data bus  
— Comparators A and C feature a data bus mask register  
— Comparators B and D compare the full address bus only  
— Each comparator can be configured to monitor either CPU or XGATE busses  
— Each comparator features control of R/W and byte/word access cycles  
— Comparisons can be used as triggers for the state sequencer  
Three comparator modes:  
— Simple address/data comparator match mode  
— Inside address range mode, Addmin Address Addmax  
— Outside address range match mode, Address < Addmin or Address > Addmax  
Two types of triggers:  
— Tagged: triggers just before a specific instruction begins execution  
— Force: triggers on the first instruction boundary after a match occurs.  
Three types of breakpoints:  
— CPU breakpoint entering BDM on breakpoint (BDM)  
— CPU breakpoint executing SWI on breakpoint (SWI)  
— XGATE breakpoint  
Three trigger modes independent of comparators:  
— External instruction tagging (associated with CPU instructions only)  
— XGATE S/W breakpoint request  
— TRIG bit immediate software trigger  
Three trace modes:  
— Normal: change of flow (COF) bus information is stored (see Section 20.4.5.2.1, “Normal  
Mode”) for change of flow definition.  
— Loop1: same as normal but inhibits consecutive duplicate source address entries  
— Detail: address and data for all cycles except free cycles and opcode fetches are stored  
4-stage state sequencer for trace buffer control:  
— Tracing session trigger linked to final state of state sequencer  
— Begin, end, and mid alignment of tracing to trigger  
20.1.3 Modes of Operation  
The DBG module can be used in all MCU functional modes.  
During BDM hardware accesses and when the BDM module is active, CPU monitoring is disabled. Thus  
breakpoints, comparators and bus tracing mapped to the CPU are disabled but accessing the DBG registers,  
including comparator registers, is still possible. While in active BDM or during hardware BDM accesses,  
MC9S12XDP512 Data Sheet, Rev. 2.11  
792  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 20 Debug (S12XDBGV2)  
XGATE activity can still be compared, traced and can be used to generate a breakpoint to the XGATE  
module. When the CPU enters active BDM mode through a BACKGROUND command, with the DBG  
module armed, the DBG remains armed.  
The DBG module tracing is disabled if the MCU is secure. Breakpoints can however still be generated if  
the MCU is secure.  
Table 20-1. Mode Dependent Restriction Summary  
BDM  
Enable  
BDM  
Active  
MCU  
Secure  
Comparator Matches  
Enabled  
Breakpoints  
Possible  
Tagging  
Possible  
Tracing  
Possible  
x
0
0
1
1
x
0
1
0
1
1
0
0
0
0
Yes  
Yes  
Yes  
Yes  
Yes  
No  
Only SWI  
Yes  
Active BDM not possible when not enabled  
Yes  
Yes  
Yes  
Yes  
XGATE only  
XGATE only  
XGATE only  
XGATE only  
20.1.4 Block Diagram  
Figure 20-1 shows a block diagram of the debug module.  
TAGS  
TAGHITS  
EXTERNAL TAGHI / TAGLO  
BREAKPOINT REQUESTS  
CPU & XGATE  
XGATE S/W BREAKPOINT REQUEST  
SECURE  
MATCH0  
TAG &  
TRIGGER  
CONTROL  
LOGIC  
TRIGGER  
COMPARATOR A  
CPU BUS  
MATCH1  
STATE  
COMPARATOR B  
SEQUENCER  
XGATE BUS  
MATCH2  
STATE  
COMPARATOR C  
MATCH3  
COMPARATOR D  
TRACE  
CONTROL  
TRIGGER  
TRACE  
BUFFER  
READ TRACE DATA (DBG READ DATA BUS)  
Figure 20-1. Debug Block Diagram  
20.2 External Signal Description  
The DBG sub-module features two external tag input signals (see Table 20-2). See Device User Guide  
(DUG) for the mapping of these signals to device pins. These tag pins may be used for the external tagging  
in emulation modes only  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
793  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 20 Debug (S12XDBGV2)  
.
Table 20-2. External System Pins Associated With DBG  
Pin Functions Description  
Pin Name  
TAGHI  
(See DUG)  
TAGHI  
When instruction tagging is on, tags the high half of the instruction word being read  
into the instruction queue.  
TAGLO  
(See DUG)  
TAGLO  
When instruction tagging is on, tags the low half of the instruction word being read  
into the instruction queue.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
794  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 20 Debug (S12XDBGV2)  
20.3 Memory Map and Register Definition  
A summary of the registers associated with the DBG sub-block is shown in Figure 20-2. Detailed  
descriptions of the registers and bits are given in the subsections that follow.  
20.3.1 Register Descriptions  
This section consists of the DBG control and trace buffer register descriptions in address order. Each  
comparator has a bank of registers that are visible through an 8-byte window between 0x0028 and 0x002F  
in the DBG module register address map. When ARM is set in DBGC1, the only bits in the DBG module  
registers that can be written are ARM, TRIG and COMRV[1:0]  
Register  
Name  
Address  
Bit 7  
ARM  
TBF  
6
5
XGSBPE  
0
4
BDM  
0
3
2
1
Bit 0  
0x0020  
DBGC1  
R
0
DBGBRK  
COMRV  
W
TRIG  
0x0021  
0x0022  
0x0023  
0x0024  
0x0025  
0x0026  
0x0027  
0x0028  
0x0028  
DBGSR  
DBGTCR  
DBGC2  
R
EXTF  
0
SSF2  
SSF1  
SSF0  
W
R
TSOURCE  
TRANGE  
TRCMOD  
TALIGN  
W
R
0
Bit 15  
Bit 7  
0
0
14  
6
0
13  
5
0
12  
4
CDCM  
ABCM  
W
DBGTBH  
DBGTBL  
DBGCNT  
DBGSCRX  
R
11  
3
10  
2
9
1
Bit 8  
Bit 0  
W
R
W
R
CNT  
W
R
0
0
0
0
SC3  
RW  
RW  
SC2  
RWE  
RWE  
SC1  
SRC  
SRC  
SC0  
W
1
DBGXCTL  
(COMPA/C)  
R
0
NDB  
SZ  
TAG  
TAG  
BRK  
BRK  
COMPE  
COMPE  
W
2
DBGXCTL  
(COMPB/D)  
R
SZE  
W
1. This represents the contents if the comparator A or C control register is blended into this address  
2. This represents the contents if the comparator B or D control register is blended into this address  
= Unimplemented or Reserved  
Figure 20-2. DBG Register Summary  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
795  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 20 Debug (S12XDBGV2)  
Register  
Address  
Bit 7  
6
5
4
3
2
1
Bit 0  
Name  
0x0029  
0x002A  
0x002B  
0x002C  
0x002D  
0x002E  
0x002F  
DBGXAH  
DBGXAM  
DBGXAL  
R
0
Bit 22  
21  
20  
19  
18  
17  
Bit 16  
W
R
Bit 15  
Bit 7  
14  
6
13  
5
12  
4
11  
3
10  
2
9
1
9
1
9
1
Bit 8  
Bit 0  
Bit 8  
Bit 0  
Bit 8  
Bit 0  
W
R
W
DBGXDH  
DBGXDL  
DBGXDHM  
DBGXDLM  
R
Bit 15  
Bit 7  
14  
6
13  
5
12  
4
11  
3
10  
2
W
R
W
R
Bit 15  
Bit 7  
14  
6
13  
5
12  
4
11  
3
10  
2
W
R
W
= Unimplemented or Reserved  
Figure 20-2. DBG Register Summary (continued)  
20.3.1.1 Debug Control Register 1 (DBGC1)  
0x0020  
7
6
5
4
3
2
1
0
R
W
0
ARM  
XGSBPE  
BDM  
DBGBRK  
COMRV  
TRIG  
0
Reset  
0
0
0
0
0
0
0
Figure 20-3. Debug Control Register (DBGC1)  
Read: Anytime  
Write: Bits 7,1,0 anytime, Bit 6 can be written anytime but always reads back as 0.  
Bits 5:2 anytime DBG is not armed.  
NOTE  
When disarming the DBG by clearing ARM with software, the contents of  
bits[5:2] are not affected by the write, since up until the write operation,  
ARM=1 preventing these bits from being written. These bits must be cleared  
using a second write if required.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
796  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 20 Debug (S12XDBGV2)  
Table 20-3. DBGC1 Field Descriptions  
Description  
Field  
7
ARM  
Arm Bit — The ARM bit controls whether the DBG module is armed. This bit can be set and cleared by user  
software and is automatically cleared on completion of a tracing session, or if a breakpoint is generated with  
tracing not enabled. On setting this bit the state sequencer enters State1. When ARM is set, the only bits in the  
DBG module registers that can be written are ARM and TRIG.  
0 Debugger disarmed  
1 Debugger armed  
6
Immediate Trigger Request Bit — This bit when written to 1 requests an immediate trigger independent of  
comparator or external tag signal status. When tracing is complete a forced breakpoint may be generated  
depending upon DBGBRK and BDM bit settings. This bit always reads back a “0”. Writing a “0” to this bit has no  
effect. If both TSOURCE bits are clear no tracing is carried out. If tracing has already commenced using BEGIN-  
or mid-trigger alignment, it continues until the end of the tracing session as defined by the TALIGN bit settings,  
thus TRIG has no affect. In secure mode tracing is disabled and writing to this bit has no effect.  
0 Do not trigger until the state sequencer enters the final state.  
TRIG  
1 Enter final state immediately and issue forced breakpoint request when trace buffer is full.  
5
XGATE S/W Breakpoint Enable — The XGSBPE bit controls whether an XGATE S/W breakpoint request is  
passed to the CPU. The XGATE S/W breakpoint request is handled by the DBG module, which can request an  
CPU breakpoint depending on the state of this bit.  
XGSBPE  
0 XGATE S/W breakpoint request is disabled  
1 XGATE S/W breakpoint request is enabled  
4
BDM  
Background Debug Mode Enable — This bit determines if a CPU breakpoint causes the system to enter  
background debug mode (BDM) or initiate a software interrupt (SWI). It has no affect on DBG functionality.  
This bit must be set if the BDM is enabled by the ENBDM bit in the BDM module to map breakpoints to BDM  
and must be cleared if the BDM module is disabled to map breakpoints to SWI.  
0 Go to software interrupt on a breakpoint  
1 Go to BDM on a breakpoint.  
3–2  
DBGBRK  
DBG Breakpoint Enable Bits — The DBGBRK bits control whether the debugger will request a breakpoint to  
either CPU, XGATE or both upon reaching the state sequencer final state. If tracing is enabled, the breakpoint  
is generated on completion of the tracing session. If tracing is not enabled, the breakpoint is generated  
immediately. Please refer to Section 20.4.7, “Breakpoints” for further details. XGATE generated breakpoints are  
independent of the DBGBRK bits. XGATE generates a forced breakpoint to the CPU only. See Table 20-4.  
1–0  
COMRV  
Comparator Register Visibility Bits — These bits determine which bank of comparator register is visible in the  
8-byte window of the DBG module address map, located between 0x0028 to 0x002F. Furthermore these bits  
determine which state control register is visible at the address 0x0027. See Table 20-5.  
Table 20-4. DBGBRK Encoding  
DBGBRK  
Resource Halted by Breakpoint  
00  
01  
10  
11  
No breakpoint generated  
XGATE breakpoint generated  
CPU breakpoint generated  
Breakpoints generated for CPU and XGATE  
Table 20-5. COMRV Encoding  
COMRV  
Visible Comparator  
Comparator A  
Visible State Control Register  
00  
DBGSCR1  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
797  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 20 Debug (S12XDBGV2)  
Table 20-5. COMRV Encoding  
COMRV  
Visible Comparator  
Visible State Control Register  
01  
10  
11  
Comparator B  
Comparator C  
Comparator D  
DBGSCR2  
DBGSCR3  
DBGSCR3  
20.3.1.2 Debug Status Register (DBGSR)  
0x0021  
7
6
5
4
3
2
1
0
R
W
TBF  
EXTF  
0
0
0
SSF2  
SSF1  
SSF0  
Reset  
POR  
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Unimplemented or Reserved  
Figure 20-4. Debug Status Register (DBGSR)  
Read: Anytime  
Write: Never  
Table 20-6. DBGSR Field Descriptions  
Description  
Field  
7
TBF  
Trace Buffer Full — The TBF bit indicates that the trace buffer has stored 64 or more lines of data since it was  
last armed. If this bit is set, then all 64 lines will be valid data, regardless of the value of DBGCNT bits CNT[6:0].  
The TBF bit is cleared when ARM in DBGC1 is written to a 1. The TBF is cleared by the power on reset  
initialization. Other system generated resets have no affect on this bit  
6
External Tag Hit Flag — The EXTF bit indicates if a tag hit condition from an external TAGHI/TAGLO tag was  
met since arming. This bit is cleared when ARM in DBGC1 is written to a 1.  
0 External tag hit has not occurred  
EXTF  
1 External tag hit has occurred  
2–0  
SSF[2:0}  
State Sequencer Flag Bits — The SSF bits indicate in which state the state sequencer is currently in. During  
a debug session on each transition to a new state these bits are updated. If the debug session is ended by  
software clearing the ARM bit, then these bits retain their value to reflect the last state of the state sequencer  
before disarming. If a debug session is ended by a breakpoint, then the state sequencer returns to state0 and  
these bits are cleared to indicate that state0 was entered during the session. On arming the module the state  
sequencer enters state1 and these bits are forced to SSF[2:0] = 001. See Table 20-7.  
Table 20-7. SSF[2:0] — State Sequence Flag Bit Encoding  
SSF[2:0]  
Current State  
000  
001  
State0 (disarmed)  
State1  
010  
State2  
011  
State3  
100  
Final State  
Reserved  
101,110,111  
MC9S12XDP512 Data Sheet, Rev. 2.11  
798  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 20 Debug (S12XDBGV2)  
20.3.1.3 Debug Trace Control Register (DBGTCR)  
0x0022  
7
6
5
4
3
2
1
0
R
W
TSOURCE  
TRANGE  
TRCMOD  
TALIGN  
Reset  
0
0
0
0
0
0
0
0
Figure 20-5. Debug Trace Control Register (DBGTCR)  
Read: Anytime  
Write: Bits 7:6 only when DBG is neither secure nor armed.  
Bits 5:0 anytime the module is disarmed.  
Table 20-8. DBGTCR Field Descriptions  
Field  
Description  
Trace Source Control Bits — The TSOURCE bits select the data source for the tracing session. If the MCU  
7–6  
TSOURCE system is secured, these bits cannot be set and tracing is inhibited. See Table 20-9.  
5–4 Trace Range Bits —The TRANGE bits allow filtering of trace information from a selected address range when  
TRANGE[5:4] tracing from the CPU in detail mode. The XGATE tracing range cannot be narrowed using these bits. To use a  
comparator for range filtering, the corresponding COMPE and SRC bits must remain cleared. If the COMPE bit  
is not clear then the comparator will also be used to generate state sequence triggers or tags. If the SRC bit is  
set the comparator is mapped to the XGATE busses, corrupting the trace. See Table 20-10.  
3–2  
Trace Mode Bits — See Section 20.4.5.2, “Trace Modes“ for detailed trace mode descriptions. In normal  
TRCMOD[3:2] mode, change of flow information is stored. In loop1 mode, change of flow information is stored but redundant  
entries into trace memory are inhibited. In detail mode, address and data for all memory and register accesses  
is stored. See Table 20-11  
1–0  
Trigger Align Bits — These bits control whether the trigger is aligned to the beginning, end or the middle of a  
TALIGN[1:0] tracing session. See Table 20-12.  
Table 20-9. TSOURCE Trace Source Bit Encoding  
TSOURCE  
Tracing Source  
00  
01  
No tracing requested  
CPU  
1
10  
XGATE  
1, 2  
11  
Both CPU and XGATE  
1
2
No range limitations are allowed. Thus tracing operates as if TRANGE = 00.  
No detail mode tracing supported. If TRCMOD =10, no information is stored.  
Table 20-10. TRANGE Trace Range Encoding  
TRANGE  
Tracing Source  
00  
01  
10  
Trace from all addresses (No filter)  
Trace only in address range from 0x0000 to comparator D  
Trace only in address range from comparator C to 0x7FFFFF  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
799  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 20 Debug (S12XDBGV2)  
Table 20-10. TRANGE Trace Range Encoding  
TRANGE  
Tracing Source  
11  
Trace only in range from comparator C to comparator D  
Table 20-11. TRCMOD Trace Mode Bit Encoding  
TRCMOD  
Description  
00  
01  
10  
11  
NORMAL  
LOOP1  
DETAIL  
Reserved  
Table 20-12. TALIGN Trace Alignment Encoding  
Description  
TALIGN  
00  
01  
10  
11  
Trigger at end of stored data  
Trigger before storing data  
Trace buffer entries before and after trigger  
Reserved  
20.3.1.4 Debug Control Register2 (DBGC2)  
0x0023  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
CDCM  
ABCM  
Reset  
0
0
0
0
0
0
0
0
Unimplemented or Reserved  
Figure 20-6. Debug Control Register2 (DBGC2)  
Read: Anytime  
Write: Anytime the module is disarmed.  
This register configures the comparators for range matching.  
Table 20-13. DBGC2 Field Descriptions  
Field  
Description  
C and D Comparator Match Control — These bits determine the C and D comparator match mapping as  
3–2  
CDCM[3:2] described in Table 20-14.  
1–0  
A and B Comparator Match Control — These bits determine the A and B comparator match mapping as  
ABCM[1:0] described in Table 20-15.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
800  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 20 Debug (S12XDBGV2)  
Table 20-14. CDCM Encoding  
Description  
CDCM  
00  
01  
10  
11  
Match2 mapped to comparator C match....... Match3 mapped to comparator D match.  
Match2 mapped to comparator C/D inside range....... Match3 disabled.  
Match2 mapped to comparator C/D outside range....... Match3 disabled.  
Reserved  
Table 20-15. ABCM Encoding  
Description  
ABCM  
00  
01  
10  
11  
Match0 mapped to comparator A match....... Match1 mapped to comparator B match.  
Match 0 mapped to comparator A/B inside range....... Match1 disabled.  
Match 0 mapped to comparator A/B outside range....... Match1 disabled.  
Reserved  
20.3.1.5 Debug Trace Buffer Register (DBGTBH:DBGTBL)  
0x0024  
15  
14  
13  
12  
11  
10  
9
8
R
W
Bit 15  
14  
13  
12  
11  
10  
9
Bit 8  
Reset  
X
X
X
X
X
X
X
X
Figure 20-7. Debug Trace Buffer Register (DBGTBH)  
0x0025  
7
6
5
4
3
2
1
0
R
W
Bit 7  
6
5
4
3
2
1
Bit 0  
Reset  
X
X
X
X
X
X
X
X
Figure 20-8. Debug Trace Buffer Register (DBGTBL)  
Read: Anytime when unlocked and not secured and not armed.  
Write: Aligned word writes when disarmed unlock the trace buffer for reading but do not affect trace buffer  
contents  
Table 20-16. DBGTB Field Descriptions  
Field  
Description  
15–0  
Bit[15:0]  
Trace Buffer Data Bits — The trace buffer register is a window through which the 64-bit wide data lines of the  
trace buffer may be read 16 bits at a time. Each valid read of DBGTB increments an internal trace buffer pointer  
which points to the next address to be read. When the ARM bit is written to 1 the trace buffer is locked to prevent  
reading. The trace buffer can only be unlocked for reading by writing to DBGTB with an aligned word write when  
the module is disarmed. The DBGTB register can be read only as an aligned word, any byte reads or misaligned  
access of these registers will return 0 and will not cause the trace buffer pointer to increment to the next trace  
buffer address. The same is true for word reads while the debugger is armed. System resets do not affect the  
trace buffer contents. The POR state is undefined.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
801  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 20 Debug (S12XDBGV2)  
20.3.1.6 Debug Count Register (DBGCNT)  
0x0026  
7
6
5
4
3
2
1
0
R
W
0
CNT  
Reset  
POR  
0
0
0
0
0
0
0
0
0
Unimplemented or Reserved  
Figure 20-9. Debug Count Register (DBGCNT)  
Read: Anytime  
Write: Never  
Table 20-17. DBGCNT Field Descriptions  
Description  
Field  
6–0  
CNT[6:0]  
Count Value — The CNT bits [6:0] indicate the number of valid data 64-bit data lines stored in the trace buffer.  
Table 20-18 shows the correlation between the CNT bits and the number of valid data lines in the trace buffer.  
When the CNT rolls over to 0, the TBF bit in DBGSR is set and incrementing of CNT will continue in end-trigger  
or mid-trigger mode. The DBGCNT register is cleared when ARM in DBGC1 is written to a 1. The DBGCNT  
register is cleared by power-on-reset initialization but is not cleared by other system resets. Thus should a reset  
occur during a debug session, the DBGCNT register still indicates after the reset, the number of valid trace buffer  
entries stored before the reset occurred. The DBGCNT register is not decremented when reading from the trace  
buffer.  
Table 20-18. CNT Decoding Table  
TBF (DBGSR)  
CNT[6:0]  
Description  
0
0
0
0
0000000  
0000001  
0000010  
No data valid  
1 line valid  
1
1
0000011  
0000100  
0000110  
..  
1.5 lines valid  
2 lines valid  
3 lines valid  
..  
1111100  
62 lines valid  
0
1
1111110  
0000000  
63 lines valid  
64 lines valid; if using begin-trigger alignment,  
ARM bit will be cleared and the tracing session ends.  
1
0000010  
64 lines valid,  
..  
..  
oldest data has been overwritten by most recent data  
1111110  
1
This applies to normal/loop1 modes when tracing from either CPU or XGATE only.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
802  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 20 Debug (S12XDBGV2)  
20.3.1.7 Debug State Control Registers  
Each of the state sequencer states 1 to 3 features a dedicated control register to determine if transitions  
from that state are allowed depending upon comparator matches or tag hits and to define the next state for  
the state sequencer following a match. The 3 debug state control registers are located at the same address  
in the register address map (0x0027). Each register can be accessed using the COMRV bits in DBGC1 to  
blend in the required register (see Table 20-19).  
Table 20-19. State Control Register Access Encoding  
COMRV  
Visible State Control Register  
00  
01  
10  
11  
DBGSCR1  
DBGSCR2  
DBGSCR3  
DBGSCR3  
20.3.1.8 Debug State Control Register 1 (DBGSCR1)  
0x0027  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
SC3  
SC2  
SC1  
SC0  
Reset  
0
0
0
0
0
0
0
0
Unimplemented or Reserved  
Figure 20-10. Debug State Control Register 1 (DBGSCR1)  
Read: Anytime  
Write: Anytime when DBG not armed.  
This register is visible at 0x0027 only with COMRV[1:0] = 00. The state control register 1 selects the  
control logic as depicted in Figure 20-1 and described in Section 20.3.1.11.1, “Debug Comparator Control  
Register (DBGXCTL)”. Comparators must be enabled by setting the comparator enable bit in the  
associated DBGXCTL control register.  
Table 20-20. DBGSCR1 Field Descriptions  
Field  
Description  
3–0  
State Control Bits — These bits select the targeted next state while in State1, based upon the match event.  
SC[3:0}  
See Table 20-21.  
The trigger priorities described in Table 20-38 dictate that in the case of simultaneous matches, the match on  
the lower channel number ([0,1,2,3) has priority. The SC[3:0] encoding ensures that a match leading to final  
state has priority over all other matches.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
803  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 20 Debug (S12XDBGV2)  
Table 20-21. State1 Sequencer Next Sate Selection  
Description  
SC[3:0]  
0000  
0001  
0010  
0011  
0100  
0101  
Any match triggers to state2  
Any match triggers to state3  
Any match triggers to final state  
Match2 triggers to State2....... Other matches have no effect  
Match2 triggers to State3....... Other matches have no effect  
Match2 triggers to final state....... Other matches have no effect  
0110  
0111  
1000  
1001  
1010  
1011  
1100  
1101  
1110  
1111  
Match0 triggers to State2....... Match1 triggers to State3....... Other matches have no effect  
Match1 triggers to State3....... Match0 triggers final state....... Other matches have no effect  
Match0 triggers to State2....... Match2 triggers to State3....... Other matches have no effect  
Match2 triggers to State3....... Match0 triggers final state....... Other matches have no effect  
Match1 triggers to State2....... Match3 triggers to State3....... Other matches have no effect  
Match3 triggers to State3....... Match1 triggers to final state....... Other matches have no effect  
Reserved  
Reserved  
Reserved  
Reserved  
20.3.1.9 Debug State Control Register 2 (DBGSCR2)  
0x0027  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
SC3  
SC2  
SC1  
SC0  
Reset  
0
0
0
0
0
0
0
0
Unimplemented or Reserved  
Figure 20-11. Debug State Control Register 2 (DBGSCR2)  
Read: Anytime  
Write: Anytime when DBG not armed.  
This register is visible at 0x0027 only with COMRV[1:0] = 01. The state control register 2 selects the  
control logic as depicted in Figure 20-1 and described in Section 20.3.1.11.1, “Debug Comparator Control  
Register (DBGXCTL)”. Comparators must be enabled by setting the comparator enable bit in the  
associated DBGXCTL control register.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
804  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 20 Debug (S12XDBGV2)  
Table 20-22. DBGSCR2 Field Descriptions  
Description  
Field  
3–0  
State Control Bits — These bits select the targeted next state while in State2, based upon the match event.  
SC[3:0}  
See Table 20-23.  
The trigger priorities described in Table 20-38 dictate that in the case of simultaneous matches, the match on  
the lower channel number ([0,1,2,3) has priority. The SC[3:0] encoding ensures that a match leading to final  
state has priority over all other matches.  
Table 20-23. State2 Sequencer Next State Selection  
Description  
SC[3:0]  
0000  
0001  
0010  
0011  
0100  
0101  
0110  
0111  
1000  
1001  
1010  
1011  
1100  
1101  
1110  
1111  
Any match triggers to state1  
Any match triggers to state3  
Any match triggers to final state  
Match3 triggers to State1....... Other matches have no effect  
Match3 triggers to State3....... Other matches have no effect  
Match3 triggers to final state....... Other matches have no effect  
Match0 triggers to State1....... Match1 triggers to State3....... Other matches have no effect  
Match1 triggers to State3....... Match0 triggers final state....... Other matches have no effect  
Match0 triggers to State1....... Match2 triggers to State3....... Other matches have no effect  
Match2 triggers to State3....... Match0 triggers final state....... Other matches have no effect  
Match1 triggers to State1....... Match3 triggers to State3....... Other matches have no effect  
Match3 triggers to State3....... Match1 triggers final state....... Other matches have no effect  
Reserved  
Reserved  
Reserved  
Reserved  
20.3.1.10 Debug State Control Register 3 (DBGSCR3)  
0x0027  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
SC3  
SC2  
SC1  
SC0  
Reset  
0
0
0
0
0
0
0
0
Unimplemented or Reserved  
Figure 20-12. Debug State Control Register 3 (DBGSCR3)  
Read: Anytime  
Write: Anytime when DBG not armed.  
This register is visible at 0x0027 only with COMRV[1]=1. The state control register 3 selects the targeted  
next state while in State3. The matches refer to the match channels of the comparator match control logic  
as depicted in Figure 20-1 and described in Section 20.3.1.11.1, “Debug Comparator Control Register  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
805  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
(DBGXCTL)”. Comparators must be enabled by setting the comparator enable bit in the associated  
DBGXCTL control register.  
Table 20-24. DBGSCR3 Field Descriptions  
Field  
Description  
3–0  
State Control Bits — These bits select the targeted next state while in State3, based upon the match event.  
SC[3:0]  
The trigger priorities described in Table 20-38 dictate that in the case of simultaneous matches, the match on  
the lower channel number (0,1,2,3) has priority. The SC[3:0] encoding ensures that a match leading to final state  
has priority over all other matches.  
Table 20-25. State3 Sequencer Next State Selection  
Description  
SC[3:0]  
0000  
0001  
0010  
0011  
0100  
0101  
0110  
0111  
1000  
1001  
1010  
1011  
1100  
1101  
1110  
1111  
Any match triggers to state1  
Any match triggers to state2  
Any match triggers to final state  
Match0 triggers to State1....... Other matches have no effect  
Match0 triggers to State2....... Other matches have no effect  
Match0 triggers to final state....... Other matches have no effect  
Match1 triggers to State1....... Other matches have no effect  
Match1 triggers to State2....... Other matches have no effect  
Match1 triggers to final state....... Other matches have no effect  
Match2 triggers to State2....... Match0 triggers to final state....... Other matches have no effect  
Match1 triggers to State1....... Match3 triggers to State2....... Other matches have no effect  
Match3 triggers to State2....... Match1 triggers to final state....... Other matches have no effect  
Match2 triggers to final state....... Other matches have no effect  
Match3 triggers to final state....... Other matches have no effect  
Reserved  
Reserved  
20.3.1.11 Comparator Register Descriptions  
Each comparator has a bank of registers that are visible through an 8-byte window in the DBG module  
register address map. Comparators A and C consist of 8 register bytes (3 address bus compare registers, 2  
data bus compare registers, 2 data bus mask registers and a control register).  
Comparators B and D consist of 4 register bytes (3 address bus compare registers and a control register).  
Each set of comparator registers is accessible in the same 8-byte window of the register address map and  
can be accessed using the COMRV bits in the DBGC1 register. If the Comparators B or D are accessed  
through the 8-byte window, then only the address and control bytes are visible, the 4 bytes associated with  
data bus and data bus masking read as 0 and cannot be written. Furthermore the control registers for  
comparators B and D differ from those of comparators A and C.  
Table 20-26. Comparator Register Layout  
0x0028  
CONTROL  
Read/Write  
MC9S12XDP512 Data Sheet, Rev. 2.11  
806  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 20 Debug (S12XDBGV2)  
Table 20-26. Comparator Register Layout  
0x0029  
0x002A  
0x002B  
0x002C  
0x002D  
0x002E  
0x002F  
ADDRESS HIGH  
Read/Write  
Read/Write  
Read/Write  
Read/Write  
Read/Write  
Read/Write  
Read/Write  
ADDRESS MEDIUM  
ADDRESS LOW  
DATA HIGH COMPARATOR  
DATA LOW COMPARATOR  
DATA HIGH MASK  
Comparator A and C only  
Comparator A and C only  
Comparator A and C only  
Comparator A and C only  
DATA LOW MASK  
20.3.1.11.1 Debug Comparator Control Register (DBGXCTL)  
The contents of this register bits 7 and 6 differ depending upon which comparator registers are visible in  
the 8-byte window of the DBG module register address map  
0x0028  
7
6
5
4
3
2
1
0
R
W
0
NDB  
TAG  
BRK  
RW  
RWE  
SRC  
COMPE  
Reset  
0
0
0
0
0
0
0
0
Unimplemented or Reserved  
Figure 20-13. Debug Comparator Control Register (Comparators A and C)  
0x0028  
7
6
5
4
3
2
1
0
R
W
SZE  
SZ  
TAG  
BRK  
RW  
RWE  
SRC  
COMPE  
Reset  
0
0
0
0
0
0
0
0
Figure 20-14. Debug Comparator Control Register (Comparators B and D)  
Read: Anytime  
Write: Anytime when DBG not armed.  
Table 20-27. DBGXCTL Field Descriptions  
Field  
Description  
Size Comparator Enable Bit — The SZE bit controls whether access size comparison is enabled for the  
7
(COMPB/D) associated comparator. This bit is ignored if the TAG bit in the same register is set.  
SZE  
0 Word/Byte access size is not used in comparison  
1 Word/Byte access size is used in comparison  
6
Not Data Bus Compare — The NDB bit controls whether the match occurs when the data bus matches the  
(COMPA/C) comparator register value or when the data bus differs from the register value. Furthermore database bits can  
NDB  
be individually masked using the comparator data mask registers. This bit is only available for comparators A  
and C. This bit is ignored if the TAG bit in the same register is set. This bit position has an SZ functionality for  
comparators B and D.  
0 Match on data bus equivalence to comparator register contents  
1 Match on data bus difference to comparator register contents  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
807  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 20 Debug (S12XDBGV2)  
Table 20-27. DBGXCTL Field Descriptions (continued)  
Description  
Field  
6
Size Comparator Value Bit — The SZ bit selects either word or byte access size in comparison for the  
(COMP B/D) associated comparator. This bit is ignored if the SZE bit is cleared or if the TAG bit in the same register is set.  
SZ  
This bit position has NDB functionality for comparators A and C  
0 Word access size will be compared  
1 Byte access size will be compared  
5
TAG  
Tag Select — This bit controls whether the comparator match will cause a trigger or tag the opcode at the  
matched address. Tagged opcodes trigger only if they reach the execution stage of the instruction queue.  
0 Trigger immediately on match  
1 On match, tag the opcode. If the opcode is about to be executed a trigger is generated  
4
BRK  
Break — This bit controls whether a comparator match can cause an immediate breakpoint independent of state  
sequencer state. The module breakpoints must be enabled using the DBGC1 bits DBGBRK[1:0].  
0 Breakpoints may only be generated from this channel when the state machine reaches final state.  
1 A match on this channel generates an immediate breakpoint, tracing, if active, is terminated and the module  
disarmed.  
3
RW  
Read/Write Comparator Value Bit — The RW bit controls whether read or write is used in compare for the  
associated comparator. The RW bit is not used if RWE = 0.  
0 Write cycle will be matched  
1 Read cycle will be matched  
2
Read/Write Enable Bit — The RWE bit controls whether read or write comparison is enabled for the associated  
comparator. This bit is not useful for tagged operations.  
1 Read/Write is used in comparison  
RWE  
0 Read/Write is not used in comparison  
1
SRC  
SRC — Determines mapping of comparator to CPU or XGATE  
0 The comparator is mapped to CPU busses  
1 The comparator is mapped to XGATE address and data busses  
0
Comparator Enable Bit— Determines if comparator is enabled  
0 The comparator is not enabled  
COMPE  
1 The comparator is enabled for state sequence triggers or tag generation  
Table 20-28 shows the effect for RWE and RW on the comparison conditions. These bits are not useful for  
tagged operations since the trigger occurs based on the tagged opcode reaching the execution stage of the  
instruction queue. Thus, these bits are ignored if tagged triggering is selected.  
Table 20-28. Read or Write Comparison Logic Table  
RWE Bit  
RW Bit  
RW Signal  
Comment  
0
0
1
1
1
1
x
x
0
0
1
1
0
1
0
1
0
1
RW not used in comparison  
RW not used in comparison  
Write data bus  
No match  
No match  
Read data bus  
MC9S12XDP512 Data Sheet, Rev. 2.11  
808  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 20 Debug (S12XDBGV2)  
20.3.1.11.2 Debug Comparator Address High Register (DBGXAH)  
0x0029  
7
6
5
4
3
2
1
0
R
W
0
Bit 22  
21  
20  
19  
18  
17  
Bit 16  
Reset  
0
0
0
0
0
0
0
0
Unimplemented or Reserved  
Figure 20-15. Debug Comparator Address High Register (DBGXAH)  
Read: Anytime  
Write: Anytime when DBG not armed.  
Table 20-29. DBGXAH Field Descriptions  
Field  
Description  
Comparator Address High Compare Bits — The comparator address high compare bits control whether the  
6–0  
Bits [22:16] selected comparator will compare the address bus bits [22:16] to a logic 1 or logic 0. This register byte is ignored  
for XGATE compares.  
0 Compare corresponding address bit to a logic 0  
1 Compare corresponding address bit to a logic 1  
20.3.1.11.3 Debug Comparator Address Mid Register (DBGXAM)  
0x002A  
7
6
5
4
3
2
1
0
R
W
Bit 15  
14  
13  
12  
11  
10  
9
Bit 8  
Reset  
0
0
0
0
0
0
0
0
Figure 20-16. Debug Comparator Address Mid Register (DBGXAM)  
Read: Anytime  
Write: Anytime when DBG not armed.  
Table 20-30. DBGXAM Field Descriptions  
Field  
Description  
Comparator Address Mid Compare Bits — The comparator address mid compare bits control whether the  
7–0  
Bits [15:8] selected comparator will compare the address bus bits [15:8] to a logic 1 or logic 0.  
0 Compare corresponding address bit to a logic 0  
1 Compare corresponding address bit to a logic 1  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
809  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 20 Debug (S12XDBGV2)  
20.3.1.11.4 Debug Comparator Address Low Register (DBGXAL)  
0x002B  
7
6
5
4
3
2
1
0
R
W
Bit 7  
6
5
4
3
2
1
Bit 0  
Reset  
0
0
0
0
0
0
0
0
Figure 20-17. Debug Comparator Address Low Register (DBGXAL)  
Read: Anytime  
Write: Anytime when DBG not armed.  
Table 20-31. DBGXAL Field Descriptions  
Field  
Description  
7–0  
Bits [7:0]  
Comparator Address Low Compare Bits — The comparator address low compare bits control whether the  
selected comparator will compare the address bus bits [7:0] to a logic 1 or logic 0.  
0 Compare corresponding address bit to a logic 0  
1 Compare corresponding address bit to a logic 1  
20.3.1.11.5 Debug Comparator Data High Register (DBGXDH)  
0x002C  
7
6
5
4
3
2
1
0
R
W
Bit 15  
14  
13  
12  
11  
10  
9
Bit 8  
Reset  
0
0
0
0
0
0
0
0
Figure 20-18. Debug Comparator Data High Register (DBGXDH)  
Read: Anytime  
Write: Anytime when DBG not armed.  
Table 20-32. DBGXDH Field Descriptions  
Field  
Description  
Comparator Data High Compare Bits — The comparator data high compare bits control whether the selected  
7–0  
Bits [15:8] comparator compares the data bus bits [15:8] to a logic 1 or logic 0. The comparator data compare bits are only  
used in comparison if the corresponding data mask bit is logic 1. This register is available only for comparators  
A and C.  
0 Compare corresponding data bit to a logic 0  
1 Compare corresponding data bit to a logic 1  
MC9S12XDP512 Data Sheet, Rev. 2.11  
810  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 20 Debug (S12XDBGV2)  
20.3.1.11.6 Debug Comparator Data Low Register (DBGXDL)  
0x002D  
7
6
5
4
3
2
1
0
R
W
Bit 7  
6
5
4
3
2
1
Bit 0  
Reset  
0
0
0
0
0
0
0
0
Figure 20-19. Debug Comparator Data Low Register (DBGXDL)  
Read: Anytime  
Write: Anytime when DBG not armed.  
Table 20-33. DBGXDL Field Descriptions  
Field  
Description  
7–0  
Bits [7:0]  
Comparator Data Low Compare Bits — The comparator data low compare bits control whether the selected  
comparator compares the data bus bits [7:0] to a logic 1 or logic 0. The comparator data compare bits are only  
used in comparison if the corresponding data mask bit is logic 1. This register is available only for comparators  
A and C.  
0 Compare corresponding data bit to a logic 0  
1 Compare corresponding data bit to a logic 1  
20.3.1.11.7 Debug Comparator Data High Mask Register (DBGXDHM)  
0x002E  
7
6
5
4
3
2
1
0
R
W
Bit 15  
14  
13  
12  
11  
10  
9
Bit 8  
Reset  
0
0
0
0
0
0
0
0
Figure 20-20. Debug Comparator Data High Mask Register (DBGXDHM)  
Read: Anytime  
Write: Anytime when DBG not armed.  
Table 20-34. DBGXDHM Field Descriptions  
Field  
Description  
Comparator Data High Mask Bits — The comparator data high mask bits control whether the selected  
7–0  
Bits [15:8] comparator compares the data bus bits [15:8] to the corresponding comparator data compare bits. This register  
is available only for comparators A and C.  
0 Do not compare corresponding data bit  
1 Compare corresponding data bit  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
811  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 20 Debug (S12XDBGV2)  
20.3.1.11.8 Debug Comparator Data Low Mask Register (DBGXDLM)  
0x002F  
7
6
5
4
3
2
1
0
R
W
Bit 7  
6
5
4
3
2
1
Bit 0  
Reset  
0
0
0
0
0
0
0
0
Figure 20-21. Debug Comparator Data Low Mask Register (DBGXDLM)  
Read: Anytime  
Write: Anytime when DBG not armed.  
Table 20-35. DBGXDLM Field Descriptions  
Field  
Description  
7–0  
Bits [7:0]  
Comparator Data Low Mask Bits — The comparator data low mask bits control whether the selected  
comparator compares the data bus bits [7:0] to the corresponding comparator data compare bits. This register  
is available only for comparators A and C.  
0 Do not compare corresponding data bit  
1 Compare corresponding data bit  
20.4 Functional Description  
This section provides a complete functional description of the DBG module. If the part is in secure mode,  
the DBG module can generate breakpoints but tracing is not possible.  
20.4.1 DBG Operation  
Arming the DBG module by setting ARM in DBGC1 allows triggering, and storing of data in the trace  
buffer and can be used to cause breakpoints to the CPU or the XGATE module. The DBG module is made  
up of 4 main blocks, the comparators, control logic, the state sequencer and the trace buffer.  
The comparators monitor the bus activity of the CPU and XGATE modules. Comparators can be  
configured to monitor address and databus. Comparators can also be configured to mask out individual  
data bus bits during a compare and to use R/W and word/byte access qualification in the comparison. When  
a match with a comparator register value occurs the associated control logic can trigger the state sequencer  
to another state (Figure 20-23). Either forced or tagged triggers are possible. Using a forced trigger, the  
trigger is generated immediately on a comparator match. Using a tagged trigger, at a comparator match,  
the instruction opcode is tagged and only if the instruction reaches the execution stage of the instruction  
queue is a trigger generated. In the case of a transition to final state, bus tracing is triggered and/or a  
breakpoint can be generated. Tracing of both CPU and/or XGATE bus activity is possible.  
Independent of the state sequencer, a breakpoint can be triggered by the external TAGHI / TAGLO signals,  
by an XGATE S/W breakpoint request or by writing to the TRIG bit in the DBGC1 control register.  
The trace buffer is visible through a 2-byte window in the register address map and can be read out using  
standard 16-bit word reads.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
812  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 20 Debug (S12XDBGV2)  
TAGS  
TAGHITS  
EXTERNAL TAGHI / TAGLO  
BREAKPOINT REQUESTS  
CPU & XGATE  
XGATE S/W BREAKPOINT REQUEST  
SECURE  
MATCH0  
MATCH1  
MATCH2  
MATCH3  
TAG &  
TRIGGER  
CONTROL  
LOGIC  
TRIGGER  
STATE  
COMPARATOR A  
CPU BUS  
STATE  
SEQUENCER  
COMPARATOR B  
COMPARATOR C  
XGATE BUS  
COMPARATOR D  
TRACE  
CONTROL  
TRIGGER  
TRACE  
BUFFER  
READ TRACE DATA (DBG READ DATA BUS)  
Figure 20-22. DBG Overview  
20.4.2 Comparator Modes  
The DBG contains 4 comparators, A, B, C, and D. Each comparator can be configured to monitor either  
CPU or XGATE busses using the SRC bit in the corresponding comparator control register. Each  
comparator compares the selected address bus with the address stored in DBGXAH, DBGXAM and  
DBGXAL. Furthermore comparators A and C also compare the data buses to the data stored in DBGXDH,  
DBGXDL and allow masking of individual data bus bits.  
All comparators are disabled in BDM and during BDM accesses.  
The comparator match control logic (see Figure 20-22) configures comparators to monitor the busses for  
an exact address or an address range, whereby either an access inside or outside the specified range  
generates a match condition. The comparator configuration is controlled by the control register contents  
and the range control by the DBGC2 contents.  
On a match a trigger can initiate a transition to another state sequencer state (see Section 20.4.3, “Trigger  
Modes”). The comparator control register also allows the type of access to be included in the comparison  
through the use of the RWE,RW,SZE and SZ bits. The RWE bit controls whether read or write comparison  
is enabled for the associated comparator and the RW bit selects either a read or write access for a valid  
match. Similarly the SZE and SZ bits allows the size of access (word or byte) to be considered in the  
compare. Only comparators B and D feature SZE and SZ.  
The TAG bit in each comparator control register is used to determine the triggering condition. By setting  
TAG, the comparator will qualify a match with the output of opcode tracking logic and a trigger occurs  
before the tagged instruction executes (tagged-type trigger). Whilst tagging the RW, RWE, SZE and SZ  
bits are ignored and the comparator register must be loaded with the exact opcode address.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
813  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 20 Debug (S12XDBGV2)  
If the TAG bit is clear (forced type trigger) a comparator match is generated when the selected address  
appears on the system address bus. If the selected address is an opcode address, the match is generated  
when the opcode is fetched from the memory. This precedes the instruction execution by an indefinite  
number of cycles due to instruction pipe lining. For a comparator match of an opcode at an odd address  
when TAG = 0, the corresponding even address must be contained in the comparator register. Thus for an  
opcode at odd address (n), the comparator register must contain address (n – 1).  
Once a successful comparator match has occurred, the condition that caused the original match is not  
verified again on subsequent matches. Thus if a particular data value is verified at a given address, this  
address may not still contain that data value when a subsequent match occurs.  
Comparators C and D can also be used to select an address range to trace from. This is determined by the  
TRANGE bits in the DBGTCR register. The TRANGE encoding is shown in Table 20-10. If the TRANGE  
bits select a range definition using comparator D, then comparator D is configured for trace range  
definition and cannot be used for address bus comparisons. Similarly if the TRANGE bits select a range  
definition using comparator C, then comparator C is configured for trace range definition and cannot be  
used for address bus comparisons.  
Section 20.3.1.4, “Debug Control Register2 (DBGC2)”). Comparator priority rules are described in the  
trigger priority (see Section 20.4.3.6, “Trigger Priorities”).  
20.4.2.1 Exact Address Comparator Match (Comparators A and C)  
With range comparisons disabled, the match condition is an exact equivalence of address/data bus with the  
value stored in the comparator address/data registers. Further qualification of the type of access (R/W,  
word/byte) is possible.  
Comparators A and C do not feature SZE or SZ control bits, thus the access size is not compared. The exact  
address is compared, thus with the comparator address register loaded with address (n) a misaligned word  
access of address (n-1) also accesses (n) but does not cause a match Table 20-37 lists access considerations  
without data bus compare. Table 20-36 lists access considerations with data bus comparison. To compare  
byte accesses DBGXDH must be loaded with the data byte. The low byte must be masked out using the  
DBGXDLM mask register. On word accesses data byte of the lower address is mapped to DBGXDH.  
Table 20-36. Comparator A and C Data Bus Considerations  
Access  
Address  
DBGxDH  
DBGxDL  
DBGxDHM  
DBGxDLM  
Example Valid Match  
Word  
Byte  
ADDR[n]  
ADDR[n]  
ADDR[n]  
ADDR[n]  
Data[n]  
Data[n]  
Data[n]  
x
Data[n+1]  
0x_FF  
0x_FF  
0x_FF  
0x_00  
0x_FF  
0x_00  
0x_00  
0x_FF  
MOVW #$WORD ADDR[n]  
MOVB #$BYTE ADDR[n]  
MOVW #$WORD ADDR[n]  
MOVW #$WORD ADDR[n]  
x
x
Word  
Word  
Data[n+1]  
Comparators A and C feature an NDB control bit to determine if a match occurs when the data bus differs  
to comparator register contents or when the data bus is equivalent to the comparator register contents.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
814  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 20 Debug (S12XDBGV2)  
20.4.2.2 Exact Address Comparator Match (Comparators B and D)  
Comparators B and D feature SZ and SZE control bits. If SZE is clear, then the comparator address match  
qualification functions the same as for comparators A and C.  
If the SZE bit is set the access size (word or byte) is compared with the SZ bit value such that only the  
specified type of access causes a match. Thus, if configured for a byte access of a particular address, a word  
access covering the same address does not lead to match.  
Table 20-37. Comparator Access Size Considerations  
Comparator  
Address  
SZE SZ8  
Condition For Valid Match  
1
1
Comparators  
A and C  
ADDR[n]  
-
-
Word and byte accesses of ADDR[n]  
MOVB #$BYTE ADDR[n]  
MOVW #$WORD ADDR[n]  
Comparators  
B and D  
ADDR[n]  
0
X
Word and byte accesses of ADDR[n]  
MOVB #$BYTE ADDR[n]  
MOVW #$WORD ADDR[n]  
1
Comparators  
B and D  
ADDR[n]  
ADDR[n]  
1
1
0
1
Word accesses of ADDR[n]  
MOVW #$WORD ADDR[n]  
Comparators  
B and D  
Byte accesses of ADDR[n]  
MOVB #$BYTE ADDR[n]  
1
A word access of ADDR[n-1] also accesses ADDR[n] but does not generate a match.  
The comparator address register must contain the exact address used in the code.  
20.4.2.3 Range Comparisons  
When using the AB comparator pair for a range comparison, the data bus can also be used for qualification  
by using the comparator A data and data mask registers. Furthermore the DBGACTL RW and RWE bits  
can be used to qualify the range comparison on either a read or a write access. The corresponding  
DBGBCTL bits are ignored. Similarly when using the CD comparator pair for a range comparison, the  
data bus can also be used for qualification by using the comparator C data and data mask registers.  
Furthermore the DBGCCTL RW and RWE bits can be used to qualify the range comparison on either a  
read or a write access if tagging is not selected. The corresponding DBGDCTL bits are ignored. The SZE  
and SZ control bits are ignored in range mode. The comparator A and C TAG bits are used to tag range  
comparisons for the AB and CD ranges respectively. The comparator B and D TAG bits are ignored in  
range modes. In order for a range comparison using comparators A and B, both COMPEA and COMPEB  
must be set; to disable range comparisons both must be cleared. Similarly for a range CD comparison, both  
COMPEC and COMPED must be set. If a range mode is selected SRCA and SRCB must select the same  
source (S12X or XGATE). Similarly SRCC and SRCD must select the same source. When configured for  
range comparisons and tagging, the ranges are accurate only to word boundaries.  
20.4.2.3.1  
Inside Range (CompAC_Addr Address CompBD_Addr)  
In the inside range comparator mode, either comparator pair A and B or comparator pair C and D can be  
configured for range comparisons. This configuration depends upon the control register (DBGC2). The  
match condition requires that a valid match for both comparators happens on the same bus cycle. A match  
condition on only one comparator is not valid. An aligned word access which straddles the range boundary  
will cause a trigger only if the aligned address is inside the range.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
815  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 20 Debug (S12XDBGV2)  
20.4.2.3.2  
Outside Range (Address < CompAC_Addr or Address > CompBD_Addr)  
In the outside range comparator mode, either comparator pair A and B or comparator pair C and D can be  
configured for range comparisons. A single match condition on either of the comparators is recognized as  
valid. An aligned word access which straddles the range boundary will cause a trigger only if the aligned  
address is outside the range.  
Outside range mode in combination with tagged triggers can be used to detect if the opcode fetches are  
from an unexpected range. In forced trigger modes the outside range trigger would typically be activated  
at any interrupt vector fetch or register access. This can be avoided by setting the upper range limit to  
0x7FFFFF or lower range limit to 0x000000 respectively.  
When comparing the XGATE address bus in outside range mode, the initial vector fetch as determined by  
the vector contained in the XGATE XGVBR register should be taken into consideration. The XGVBR  
register and hence vector address can be modified.  
20.4.3 Trigger Modes  
Trigger modes are used as qualifiers for a state sequencer change of state. The control logic determines the  
trigger mode and provides a trigger to the state sequencer. The individual trigger modes are described in  
the following sections.  
20.4.3.1 Trigger On Comparator Match  
If a comparator match occurs, a trigger occurs to initiate a transition to another state sequencer state and  
the corresponding flags in DBGSR are set. For a comparator match to trigger firstly the comparator must  
be enabled by setting the COMPE bit in the corresponding comparator control register. Secondly the state  
control register for the current state must enable the match for that state. The state control registers allow  
for different matches to be enabled in each of the states 1 to 3.  
20.4.3.2 Trigger On Comparator Related Taghit  
If either a CPU or XGATE taghit occurs a transition to another state sequencer state is initiated and the  
corresponding DBGSR flags are set. For a comparator related taghit to occur, the DBG must first generate  
tags based on comparator matches. When the tagged instruction reaches the execution stage of the  
instruction queue a taghit is generated by the CPU/XGATE.  
20.4.3.3 External Tag Trigger  
In external tagging trigger mode, the TAGLO and TAGHI pins (mapped to device pins) are used to tag an  
instruction. This function can be used as another breakpoint source. When the tagged opcode reaches the  
execution stage of the instruction queue a transition to the disarmed state0 occurs, ending the debug session  
and generating a breakpoint, if breakpoints are enabled. External tagging is only possible in device  
emulation modes.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
816  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 20 Debug (S12XDBGV2)  
20.4.3.4 Trigger On XGATE S/W Breakpoint Request  
The XGATE S/W breakpoint request issues a forced breakpoint request to the CPU immediately  
independent of DBG settings. If the debug module is armed triggers the state sequencer into the disarmed  
state. Active tracing sessions are terminated immediately, thus if tracing has not yet begun using begin-  
trigger, no trace information is stored. XGATE generated breakpoints are independent of the DBGBRK  
bits. The XGSBPE bit in DBGC1 determines if the XGATE S/W breakpoint function is enabled. The BDM  
bit in DBGC1 determines if the XGATE requested breakpoint causes the system to enter BDM mode or  
initiate a software interrupt (SWI).  
20.4.3.5 Immediate Trigger  
At any time independent of comparator matches or external tag signals it is possible to initiate a tracing  
session and/or breakpoint by writing to the TRIG bit in DBGC1. This triggers the state sequencer into the  
final state and issues a forced breakpoint request to both CPU and XGATE.  
20.4.3.6 Trigger Priorities  
In case of simultaneous triggers, the priority is resolved according to Table 20-38. The lower priority  
trigger is suppressed. It is thus possible to miss a lower priority trigger if it occurs simultaneously with a  
trigger of a higher priority. The trigger priorities described in Table 20-38 dictate that in the case of  
simultaneous matches, the match on the lower channel number ([0,1,2,3) has priority. The SC[3:0]  
encoding ensures that a match leading to final state has priority over all other matches independent of  
current state sequencer state. When configured for range modes a simultaneous match of comparators A  
and C generates an active match0 while match2 is suppressed.  
Table 20-38. Trigger Priorities  
Priority  
Source  
Action  
Highest  
XGATE  
Immediate forced breakpoint......(Tracing terminated immediately).  
Enter final state  
TRIG  
External TAGHI/TAGLO  
Match0 (force or tag hit)  
Match1 (force or tag hit)  
Match2 (force or tag hit)  
Match3 (force or tag hit)  
Enter State0  
Trigger to next state as defined by state control registers  
Trigger to next state as defined by state control registers  
Trigger to next state as defined by state control registers  
Trigger to next state as defined by state control registers  
Lowest  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
817  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 20 Debug (S12XDBGV2)  
20.4.4 State Sequence Control  
ARM = 0  
ARM = 1  
ARM = 0  
State 0  
(Disarmed)  
State1  
State2  
Session complete  
(disarm)  
State3  
Final State  
ARM=0  
Figure 20-23. State Sequencer Diagram  
The state sequence control allows a defined sequence of events to provide a trigger point for tracing of data  
in the trace buffer. Once the DBG module has been armed by setting the ARM bit in the DBGC1 register,  
then State1 of the state sequencer is entered. Further transitions between the states are then controlled by  
the state control registers and depend upon a selected trigger mode condition being met. From final state  
the only permitted transition is back to the disarmed state0. Transition between any of the states 1 to 3 is  
not restricted. Each transition updates the SSF[2:0] flags in DBGSR accordingly to indicate the current  
state.  
Alternatively writing to the TRIG bit in DBGSC1, the final state is entered and tracing starts immediately  
if the TSOURCE bits are configured for tracing.  
A tag hit through TAGHI/TAGLO causes a breakpoint, if breakpoints are enabled, and ends tracing  
immediately independent of the trigger alignment bits TALIGN[1:0].  
Furthermore, each comparator channel can be individually configured to generate an immediate  
breakpoint when a match occurs through the use of the BRK bits in the DBGxCTL registers independent  
of the state sequencer state. Thus it is possible to generate an immediate breakpoint on selected channels,  
while a state sequencer transition can be initiated by a match on other channels.  
An XGATE S/W breakpoint request, if enabled causes a transition to the final state and generates a  
breakpoint request to the CPU immediately.  
If neither tracing nor breakpoints are enabled then, when a forced match triggers to final state, it can only  
be returned to the disarmed state0 by clearing the ARM bit by software. This also applies to the case that  
BDM breakpoints are enabled, but the BDM is disabled. Furthermore if neither tracing nor breakpoints are  
enabled, forced triggers on channels with BRK set cause a transition to the state determined by the state  
sequencer as if the BRK bit were not being used.  
If neither tracing nor breakpoints are enabled then when a tagged match triggers to final state, the state  
sequencer returns to the disarmed state0.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
818  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 20 Debug (S12XDBGV2)  
20.4.4.1 Final State  
On entering final state a trigger may be issued to the trace buffer according to the trace position control as  
defined by the TALIGN field (see Section 20.3.1.3, “Debug Trace Control Register (DBGTCR)”). If the  
TSOURCE bits in the trace control register DBGTCR are cleared then the trace buffer is disabled and the  
transition to final state can only generate a breakpoint request. In this case or upon completion of a tracing  
session when tracing is enabled, the ARM bit in the DBGC1 register is cleared, returning the module to  
the disarmed state0. If tracing is enabled a breakpoint request can occur at the end of the tracing session.  
20.4.5 Trace Buffer Operation  
The trace buffer is a 64 lines deep by 64-bits wide RAM array. The DBG module stores trace information  
in the RAM array in a circular buffer format. The CPU accesses the RAM array through a register window  
(DBGTBH:DBGTBL) using 16-bit wide word accesses. After each complete 64-bit trace buffer line is  
read via the CPU, an internal pointer into the RAM is incremented so that the next read will receive fresh  
information. Data is stored in the format shown in Table 20-39. After each store the counter register bits  
DBGCNT[6:0] are incremented. Tracing of CPU activity is disabled when the BDM is active but tracing  
of XGATE activity is still possible. Reading the trace buffer while the BDM is active returns invalid data  
and the trace buffer pointer is not incremented.  
20.4.5.1 Trace Trigger Alignment  
Using the TALIGN bits (see Section 20.3.1.3, “Debug Trace Control Register (DBGTCR)”) it is possible  
to align the trigger with the end, the middle or the beginning of a tracing session.  
If end or mid tracing is selected, tracing begins when the ARM bit in DBGC1 is set and State1 is entered.  
The transition to final state if end is selected signals the end of the tracing session. The transition to final  
state if mid is selected signals that another 32 lines will be traced before ending the tracing session. Tracing  
with begin-trigger starts at the opcode of the trigger.  
20.4.5.1.1  
Storing with Begin-Trigger  
Storing with begin-trigger, data is not stored in the trace buffer until the final state is entered. Once the  
trigger condition is met the DBG module will remain armed until 64 lines are stored in the trace buffer. If  
the trigger is at the address of the change-of-flow instruction the change of flow associated with the trigger  
will be stored in the trace buffer. Using begin-trigger together with tagging, if the tagged instruction is  
about to be executed then the trace is started. Upon completion of the tracing session the breakpoint is  
generated, thus the breakpoint does not occur at the tagged instruction boundary.  
20.4.5.1.2  
Storing with Mid-Trigger  
Storing with mid-trigger, data is stored in the trace buffer as soon as the DBG module is armed. When the  
trigger condition is met, another 32 lines will be traced before ending the tracing session, irrespective of  
the number of lines stored before the trigger occurred, then the DBG module is disarmed and no more data  
is stored. If the trigger is at the address of a change of flow instruction the trigger event is not stored in the  
trace buffer. Using mid-trigger with tagging, if the tagged instruction is about to be executed then the trace  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
819  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 20 Debug (S12XDBGV2)  
is continued for another 32 lines. Upon tracing completion the breakpoint is generated, thus the breakpoint  
does not occur at the tagged instruction boundary.  
20.4.5.1.3  
Storing with End-Trigger  
Storing with end-trigger, data is stored in the trace buffer until the final state is entered, at which point the  
DBG module will become disarmed and no more data will be stored. If the trigger is at the address of a  
change of flow instruction the trigger event will not be stored in the trace buffer.  
20.4.5.2 Trace Modes  
The DBG module can operate in three trace modes. The mode is selected using the TRCMOD bits in the  
DBGTCR register. In each mode tracing of XGATE or CPU information is possible. The source for the  
trace is selected using the TSOURCE bits in the DBGTCR register. The modes are described in the  
following subsections. The trace buffer organization is shown in Table 20-39.  
20.4.5.2.1  
Normal Mode  
In normal mode, change of flow (COF) addresses will be stored.  
COF addresses are defined as follows for the CPU:  
Source address of taken conditional branches (long, short, bit-conditional, and loop primitives)  
Destination address of indexed JMP, JSR and CALL instruction.  
Destination address of RTI, RTS and RTC instructions  
Vector address of interrupts, except for SWI and BDM vectors  
LBRA, BRA, BSR, BGND as well as non-indexed JMP, JSR, and CALL instructions are not classified as  
change of flow and are not stored in the trace buffer.  
COF addresses are defined as follows for the XGATE:  
Source address of taken conditional branches  
Destination address of indexed JAL instructions.  
First XGATE code address, determined by the vector contained in the XGATE XGVBR register  
Change-of-flow addresses stored include the full 23-bit address bus in the case of CPU, the 16-bit address  
bus for the XGATE module and an information byte, which contains a source/destination bit to indicate  
whether the stored address was a source address or destination address.  
20.4.5.2.2  
Loop1 Mode  
Loop1 mode, similarly to normal mode also stores only COF address information to the trace buffer, it  
however allows the filtering out of redundant information.  
The intent of loop1 mode is to prevent the trace buffer from being filled entirely with duplicate information  
from a looping construct such as delays using the DBNE instruction or polling loops using  
BRSET/BRCLR instructions. Immediately after address information is placed in the trace buffer, the DBG  
module writes this value into a background register. This prevents consecutive duplicate address entries in  
the trace buffer resulting from repeated branches.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
820  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 20 Debug (S12XDBGV2)  
Loop1 mode only inhibits consecutive duplicate source address entries that would typically be stored in  
most tight looping constructs. It does not inhibit repeated entries of destination addresses or vector  
addresses, since repeated entries of these would most likely indicate a bug in the user’s code that the DBG  
module is designed to help find.  
NOTE  
In certain very tight loops, the source address will have already been fetched  
again before the background comparator is updated. This results in the  
source address being stored twice before further duplicate entries are  
suppressed. This condition occurs with branch-on-bit instructions when the  
branch is fetched by the first P-cycle of the branch or with loop-construct  
instructions in which the branch is fetched with the first or second P cycle.  
See examples below:  
LOOP  
INX  
BRCLR  
;1-byte instruction fetched by 1st P-cycle of BRCLR  
CMPTMP,#$0c,LOOP ;the BRCLR instruction also will be fetched by 1st P-cycle  
;of BRCLR  
LOOP2  
BRN*  
NOP  
; 2-byte instruction fetched by 1st P-cycle of DBNE  
; 1-byte instruction fetched by 2nd P-cycle of DBNE  
DBNE  
A,LOOP2  
; this instruction also fetched by 2nd P-cycle of DBNE  
20.4.5.2.3  
Detail Mode  
In detail mode, address and data for all memory and register accesses is stored in the trace buffer. In the  
case of XGATE tracing this means that initialization of the R1 register during a vector fetch is not traced.  
This mode is intended to supply additional information on indexed, indirect addressing modes where  
storing only the destination address would not provide all information required for a user to determine  
where the code is in error. This mode also features information byte storage to the trace buffer, for each  
address byte storage. The information byte indicates the size of access (word or byte), the type of access  
(read or write).  
When tracing CPU activity in detail mode, all cycles are traced except those when the CPU is either in a  
free or opcode fetch cycle. In this mode the XGATE program counter is also traced to provide a snapshot  
of the XGATE activity. CXINF information byte bits indicate the type of XGATE activity occurring at the  
time of the trace buffer entry. When tracing CPU activity alone in detail mode, the address range can be  
limited to a range specified by the TRANGE bits in DBGTCR. This function uses comparators C and D  
to define an address range inside which CPU activity should be traced (see Table 20-10). Thus, the traced  
CPU activity can be restricted to register range accesses.  
When tracing XGATE activity in detail mode, all cycles apart from opcode fetch and free cycles are stored  
to the trace buffer. Additionally the CPU program counter is stored at the time of the XGATE trace buffer  
entry to provide a snapshot of CPU activity.  
20.4.5.3 Trace Buffer Organization  
The buffer can be used to trace either from CPU, from XGATE or from both sources. An “X” prefix  
denotes information from the XGATE module, a “C” prefix denotes information from the CPU.  
ADRH,ADRM,ADRL denote address high, middle and low byte respectively. INF bytes contain control  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
821  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 20 Debug (S12XDBGV2)  
information (R/W, S/D etc.). The numerical suffix indicates which tracing step. The information format  
for loop1 mode is the same as that of normal mode. Whilst tracing from XGATE or CPU only, in normal  
or loop1 modes each array line contains data from entries made at 2 separate times, thus in this case the  
DBGCNT[0] is incremented after each separate entry. In all other modes, DBGCNT[0] remains cleared  
while the other DBGCNT bits are incremented on each trace buffer entry.  
XGATE and S12X_CPU COFs occur independently of each other and the profile of COFs for the 2 sources  
is totally different. When both sources are being traced in Normal or Loop1 mode, for each single entry  
from one source, there may be many entries from the other source and vice versa, depending on user code.  
COF events could occur far from each other in the time domain, on consecutive cycles or simultaneously.  
If a COF occurs in one source only in a particular cycle, then the trace buffer bytes that are mapped to the  
other source are redundant. Info byte bit CDV/XDV indicates that no useful information is stored in these  
bytes. This is the typical case. Only in the rare event that both XGATE and S12X_CPU COF cycles  
coincide is a valid trace buffer entry for both made, corresponding to the first line for mode "Both  
Normal/Loop1" in Table 20-39.  
Single byte data accesses in detail mode are always stored to the low byte of the trace buffer (CDATAL or  
XDATAL) and the high byte is cleared. When tracing word accesses, the byte at the lower address is always  
stored to trace buffer byte3 and the byte at the higher address is stored to byte2  
Table 20-39. Trace Buffer Organization  
8-Byte Wide Word Buffer  
Mode  
7
6
5
4
3
2
1
0
XGATE DETAIL  
CXINF1  
CXINF2  
CADRH1  
CADRH2  
CADRM1  
CADRM2  
CADRL1  
CADRL2  
XDATAH1  
XDATAH2  
XDATAL1  
XDATAL2  
XADRM1  
XADRM2  
XADRL1  
XADRL2  
CPU  
DETAIL  
CXINF1  
CXINF2  
CADRH1  
CADRH2  
CADRM1  
CADRM2  
CADRL1  
CADRL2  
CDATAH1  
CDATAH2  
CDATAL1  
CDATAL2  
XADRM1  
XADRM2  
XADRL1  
XADRL2  
Both  
NORMAL  
/ LOOP1  
XINF0  
XADRM0  
XADRM2  
XADRL0  
XADRL2  
CINF0  
CINF1  
CINF2  
CADRH0  
CADRH1  
CADRM0  
CADRM1  
CADRL0  
CADRL1  
1
XINF1  
2
XINF2  
XGATE  
NORMAL  
/ LOOP1  
XINF1  
XINF3  
XADRM1  
XADRM3  
XADRL1  
XADRL3  
XINF0  
XINF2  
XADRM0  
XADRM2  
XADRL0  
XADRL2  
CPU  
NORMAL  
/ LOOP1  
CINF1  
CINF3  
CADRH1  
CADRH3  
CADRM1  
CADRM3  
CADRL1  
CADRL3  
CINF0  
CINF2  
CADRH0  
CADRH2  
CADRM0  
CADRM2  
CADRL0  
CADRL2  
1
2
COF in CPU only. XGATE trace buffer entries in this tracing step are invalid  
COF in XGATE only. CPU trace buffer entries in this tracing step are invalid  
MC9S12XDP512 Data Sheet, Rev. 2.11  
822  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 20 Debug (S12XDBGV2)  
20.4.5.3.1  
Information Byte Organization  
The format of the control information byte for both CPU and XGATE modules is dependent upon the  
active trace mode and tracing source as described below. In normal mode or loop1 mode, tracing of  
XGATE activity XINF is used to store control information. In normal mode or loop1 mode, tracing of CPU  
activity CINF is used to store control information. In detail mode, CXINF contains the control information.  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
XSD  
0
0
XDV  
0
0
0
0
Figure 20-24. XGATE Information Byte XINF  
Table 20-40. XINF Field Descriptions  
Description  
Field  
7
XSD  
Source Destination Indicator — This bit indicates if the corresponding stored address is a source or  
destination address. This is only used in normal and loop1 mode tracing.  
0 Source Address  
1 Destination Address  
4
XDV  
Data Invalid Indicator — This bit indicates if the trace buffer entry is invalid. It is only used when tracing from  
both sources in normal and loop1 mode, to indicate that the XGATE trace buffer entry is valid.  
0 Trace buffer entry is invalid  
1 Trace buffer entry is valid  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
CSD  
0
0
CDV  
0
0
0
0
Figure 20-25. CPU Information Byte CINF  
Table 20-41. CINF Field Descriptions  
Description  
Field  
7
CSD  
Source Destination Indicator — This bit indicates if the corresponding stored address is a source or  
destination address. This is only used in normal and loop1 mode tracing.  
0 Source Address  
1 Destination Address  
4
CDV  
Data Invalid Indicator — This bit indicates if the trace buffer entry is invalid. It is only used when tracing from  
both sources in normal and loop1 mode, to indicate that the CPU trace buffer entry is valid.  
0 Trace buffer entry is invalid  
1 Trace buffer entry is valid  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
823  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 20 Debug (S12XDBGV2)  
Bit 7  
Bit 6  
Bit 5  
Bit 4  
Bit 3  
Bit 2  
Bit 1  
Bit 0  
CFREE  
CSZ  
CRW  
COCF  
XACK  
XSZ  
XRW  
XOCF  
Figure 20-26. Information Byte CXINF  
This describes the format of the information byte used only when tracing from CPU or XGATE in detail  
mode. When tracing from the CPU in detail mode, information is stored to the trace buffer on all cycles  
except opcode fetch and free cycles. The XGATE entry stored on the same line is a snapshot of the  
XGATE program counter. In this case the CSZ and CRW bits indicate the type of access being made by  
the CPU, while the XACK and XOCF bits indicate if the simultaneous XGATE cycle is a free cycle (no  
bus acknowledge) or opcode fetch cycle. Similarly when tracing from the XGATE in detail mode,  
information is stored to the trace buffer on all cycles except opcode fetch and free cycles. The CPU entry  
stored on the same line is a snapshot of the CPU program counter. In this case the XSZ and XRW bits  
indicate the type of access being made by the XGATE, while the CFREE and COCF bits indicate if the  
simultaneous CPU cycle is a free cycle or opcode fetch cycle.  
Table 20-42. CXINF Field Descriptions  
Field  
Description  
7
CPU Free Cycle Indicator — This bit indicates if the stored CPU address corresponds to a free cycle. This bit  
only contains valid information when tracing the XGATE accesses in detail mode.  
0 Stored information corresponds to free cycle  
CREE  
1 Stored information does not correspond to free cycle  
6
Access Type Indicator — This bit indicates if the access was a byte or word size access.This bit only contains  
CSZ  
valid information when tracing CPU activity in detail mode.  
0 Word Access  
1 Byte Access  
5
Read Write Indicator — This bit indicates if the corresponding stored address corresponds to a read or write  
CRW  
access. This bit only contains valid information when tracing CPU activity in detail mode.  
0 Write Access  
1 Read Access  
4
CPU Opcode Fetch Indicator — This bit indicates if the stored address corresponds to an opcode fetch cycle.  
This bit only contains valid information when tracing the XGATE accesses in detail mode.  
0 Stored information does not correspond to opcode fetch cycle  
COCF  
1 Stored information corresponds to opcode fetch cycle  
3
XGATE Access Indicator — This bit indicates if the stored XGATE address corresponds to a free cycle. This  
bit only contains valid information when tracing the CPU accesses in detail mode.  
0 Stored information corresponds to free cycle  
XACK  
1 Stored information does not correspond to free cycle  
2
Access Type Indicator — This bit indicates if the access was a byte or word size access. This bit only contains  
XSZ  
valid information when tracing XGATE activity in detail mode.  
0 Word Access  
1 Byte Access  
MC9S12XDP512 Data Sheet, Rev. 2.11  
824  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 20 Debug (S12XDBGV2)  
Table 20-42. CXINF Field Descriptions (continued)  
Description  
Field  
1
Read Write Indicator — This bit indicates if the corresponding stored address corresponds to a read or write  
XRW  
access. This bit only contains valid information when tracing XGATE activity in detail mode.  
0 Read/Write Access  
1 Access  
0
XGATE Opcode Fetch Indicator — This bit indicates if the stored address corresponds to an opcode fetch  
cycle.This bit only contains valid information when tracing the CPU accesses in detail mode.  
0 Stored information does not correspond to opcode fetch cycle  
XOCF  
1 Stored information corresponds to opcode fetch cycle  
20.4.5.3.2  
Reading Data from Trace Buffer  
The data stored in the trace buffer can be read using either the background debug module (BDM) module  
or the CPU provided the DBG module is not armed, is configured for tracing (at least one TSOURCE bit  
is set) and the system not secured. When the ARM bit is written to 1 the trace buffer is locked to prevent  
reading. The trace buffer can only be unlocked for reading by a single aligned word write to DBGTB when  
the module is disarmed. Multiple writes to the DBGTB are not allowed since they increment the pointer.  
The trace buffer can only be read through the DBGTB register using aligned word reads, any byte or  
misaligned reads return 0 and do not cause the trace buffer pointer to increment to the next trace buffer  
address. The trace buffer data is read out first-in first-out. By reading CNT in DBGCNT the number of  
valid 64-bit lines can be determined. DBGCNT will not decrement as data is read.  
Whilst reading an internal pointer is used to determine the next line to be read. After a tracing session, the  
pointer points to the oldest data entry, thus if no overflow has occurred, the pointer points to line0,  
otherwise it points to the line with the oldest entry. The pointer is initialized by each aligned write to  
DBGTBH to point to the oldest data again. This enables an interrupted trace buffer read sequence to be  
easily restarted from the oldest data entry.  
The least significant word of each 64-bit wide array line is read out first. This corresponds to the bytes 1  
and 0 of Table 20-39. The bytes containing invalid information (shaded in Table 20-39) are also read out.  
Reading the trace buffer while the DBG module is armed will return invalid data and no shifting of the  
RAM pointer will occur. Reading the trace buffer is not possible if both TSOURCE bits are cleared.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
825  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 20 Debug (S12XDBGV2)  
20.4.5.3.3  
Trace Buffer Reset State  
The trace buffer contents are not initialized by a system reset. Thus should a system reset occur, the trace  
session information from immediately before the reset occurred can be read out. The DBGCNT bits are  
not cleared by a system reset. Thus should a reset occur, the number of valid lines in the trace buffer is  
indicated by DBGCNT. The internal pointer to the current trace buffer address is initialized by unlocking  
the trace buffer thus points to the oldest valid data even if a reset occurred during the tracing session.  
Generally debugging occurrences of system resets is best handled using mid or end-trigger alignment since  
the reset may occur before the trace trigger, which in the begin-trigger alignment case means no  
information would be stored in the trace buffer.  
20.4.6  
Tagging  
A tag follows program information as it advances through the instruction queue. When a tagged instruction  
reaches the head of the queue a tag hit occurs and triggers the state sequencer.  
Each comparator control register features a TAG bit, which controls whether the comparator match will  
cause a trigger immediately or tag the opcode at the matched address. If a comparator is enabled for tagged  
comparisons, the address stored in the comparator match address registers must be an opcode address for  
the trigger to occur.  
Both CPU and XGATE opcodes can be tagged with the comparator register TAG bits.  
Using a begin-aligned trigger together with tagging, if the tagged instruction is about to be executed then  
the transition to the next state sequencer state occurs. If the transition is to the final state, tracing is started.  
Only upon completion of the tracing session can a breakpoint be generated. Similarly using a mid-aligned  
trigger with tagging, if the tagged instruction is about to be executed then the trace is continued for another  
32 lines. Upon tracing completion the breakpoint is generated. Using an end-aligned trigger, when the  
tagged instruction is about to be executed and the next transition is to final state then a breakpoint is  
generated immediately, before the tagged instruction is carried out.  
R/W monitoring is not useful for tagged operations since the trigger occurs based on the tagged opcode  
reaching the execution stage of the instruction queue. Similarly access size (SZ) monitoring and data bus  
monitoring is not useful if tagged triggering is selected, since the tag is attached to the opcode at the  
matched address and is not dependent on the data bus nor on the size of access. Thus these bits are ignored  
if tagged triggering is selected.  
When configured for range comparisons and tagging, the ranges are accurate only to word boundaries.  
CPU tagging is disabled when the BDM becomes active. Conversely, BDM firmware commands are not  
processed while tagging is active. XGATE tagging is possible when the BDM is active.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
826  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 20 Debug (S12XDBGV2)  
20.4.6.1 External Tagging using TAGHI and TAGLO  
External tagging using the external TAGHI and TAGLO pins can only be used to tag CPU opcodes; tagging  
of XGATE code using these pins is not possible. An external tag triggers the state sequencer into State0  
when the tagged opcode reaches the execution stage of the instruction queue.  
The pins operate independently, thus the state of one pin does not affect the function of the other. External  
tagging is possible in emulation modes only. The presence of logic level 0 on either pin at the rising edge  
of the external clock (ECLK) performs the function indicated in the Table 20-43. It is possible to tag both  
bytes of an instruction word. If a taghit comes from the low or high byte, a breakpoint generated according  
to the DBGBRK and BDM bits in DBGC1. Each time TAGHI or TAGLO are low on the rising edge of  
ECLK, the old tag is replaced by a new one  
Table 20-43. Tag Pin Function  
TAGHI  
TAGLO  
Tag  
1
1
0
0
1
0
1
0
No tag  
Low byte  
High byte  
Both bytes  
20.4.7 Breakpoints  
It is possible to select breakpoints to the XGATE and let the CPU continue operation, setting DBGBRK[0],  
or breakpoints to the CPU and let the XGATE continue operation setting, DBGBRK[1], or a breakpoint to  
both CPU and XGATE, setting both bits DBGBRK[1:0].  
There are several ways to generate breakpoints to the XGATE and CPU modules.  
Through XGATE software breakpoint requests.  
From comparator channel triggers to final state.  
Using software to write to the TRIG bit in the DBGC1 register.  
From taghits generated using the external TAGHI and TAGLO pins.  
20.4.7.1 XGATE Software Breakpoints  
The XGATE software breakpoint instruction BRK can request an CPU breakpoint, via the DBG module.  
In this case, if the XGSBPE bit is set, the DBG module immediately generates a forced breakpoint request  
to the CPU, the state sequencer is returned to state0 and tracing, if active, is terminated. If configured for  
begin-trigger and tracing has not yet been triggered from another source, the trace buffer contains no new  
information. Breakpoint requests from the XGATE module do not depend upon the state of the DBGBRK  
or ARM bits in DBGC1. They depend solely on the state of the XGSBPE and BDM bits. Thus it is not  
necessary to ARM the DBG module to use XGATE software breakpoints to generate breakpoints in the  
CPU program flow, but it is necessary to set XGSBPE. Furthermore if a breakpoint to BDM is required,  
the BDM bit must also be set. When the XGATE requests an CPU breakpoint, the XGATE program flow  
stops by default, independent of the DBG module. The user can thus determine if an XGATE breakpoint  
has occurred by reading out the XGATE program counter over the BDM interface.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
827  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 20 Debug (S12XDBGV2)  
20.4.7.2  
Breakpoints From Internal Comparator Channel Final State Triggers  
Breakpoints can be generated when internal comparator channels trigger the state sequencer to the final  
state. If configured for tagging, then the breakpoint is generated when the tagged opcode reaches the  
execution stage of the instruction queue. If an end aligned trigger is selected or no tracing is enabled,  
breakpoints can be generated immediately, depending on the state of the DBGBRK[n] bits.  
If a begin or mid aligned tracing session is selected by the TSOURCE bits, breakpoints are requested when  
the tracing session has completed, thus the breakpoint is requested only on completion of the subsequent  
trace (see Table 20-44). If the BRK bit is set on the triggering channel, then the breakpoint is generated  
immediately independent of tracing trigger alignment.  
Table 20-44. Setup for Both XGATE and CPU Breakpoints  
BRK  
TALIGN  
DBGBRK[n]  
Type of Debug Session  
0
00  
0
Fill trace buffer until trigger  
(no breakpoints — keep running)  
0
0
00  
01  
1
0
Fill trace buffer until trigger, then a breakpoint request occurs  
Start trace buffer at trigger  
(no breakpoints — keep running)  
0
0
01  
10  
1
0
Start trace buffer at trigger  
A breakpoint request occurs when trace buffer is full  
Start trace buffer at trigger  
End tracing 32 line entries after trigger  
(no breakpoints — keep running)  
0
10  
1
Start trace buffer at trigger  
End tracing 32 line entries after trigger  
Request breakpoint after the 32 further trace buffer entries  
1
1
x
00,01,10  
00,01,10  
11  
0
1
x
Terminate tracing immediately on trigger without breakpoint  
Terminate tracing and generate breakpoint immediately on trigger  
Reserved  
20.4.7.3  
Breakpoints Generated Via The TRIG Bit  
If a TRIG triggers occur, the final state is entered. Tracing trigger alignment is defined by the TALIGN  
bits. If a tracing session is selected by the TSOURCE bits, breakpoints are requested when the tracing  
session has completed, thus if begin or mid aligned triggering is selected, the breakpoint is requested only  
on completion of the subsequent trace. If no tracing session is selected, breakpoints are requested  
immediately. TRIG breakpoints are possible even if the DBG module is disarmed. TRIG bit breakpoints  
are enabled by setting DBGBRK[n].  
20.4.7.4 Breakpoints via TAGHI Or TAGLO Pin Taghits  
Tagging using the external TAGHI/TAGLO pins always ends the session immediately at the tag hit. It is  
always end aligned, independent of internal channel trigger alignment configuration. External tag  
breakpoints are always mapped to the CPU, are only possible in emulation modes and can be enabled by  
setting DBGBRK[1].  
MC9S12XDP512 Data Sheet, Rev. 2.11  
828  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 20 Debug (S12XDBGV2)  
20.4.7.5 DBG Breakpoint Priorities  
XGATE software breakpoints have the highest priority. Active tracing sessions are terminated  
immediately.  
If a TRIG triggers occur after begin or mid aligned tracing has already been triggered by a comparator  
instigated transition to final state, then TRIG no longer has an effect. When the associated tracing session  
is complete, the breakpoint occurs. Similarly if a TRIG is followed by a subsequent trigger from a  
comparator channel whose BRK=0, it has no effect, since tracing has already started.  
If a comparator tag hit occurs simultaneously with an external TAGHI/TAGLO hit, the state sequencer  
enters State0. TAGHI/TAGLO triggers are always end aligned, to end tracing immediately, independent of  
the tracing trigger alignment bits TALIGN[1:0].  
20.4.7.5.1  
DBG Breakpoint priorities, mapping and BDM interfacing  
Breakpoint operation is dependent on the state of the BDM module. If the BDM module is active, the CPU  
is executing out of BDM firmware and S12X breakpoints are disabled. In addition, while executing a BDM  
TRACE command, tagging into BDM is disabled.  
Table 20-45. Breakpoint Mapping Summary  
DBGBRK[1]  
(DBGC1[3])1  
BDM bit  
(DBGC1[4])  
BDM  
enabled  
BDM active  
Type of Debug Session  
0
1
1
X
0
0
X
0
1
X
0
No Breakpoint  
Breakpoint to SWI  
2
X
Illegal Configuration. Do Not Use.  
3
1
1
1
1
0
1
1
0
0
1
Illegal Configuration. Do Not Use.  
Breakpoint to BDM  
1
1
No Breakpoint  
1
All sources except XGATE software BKP, which are independent of this bit.  
2
The DBGC1[4] bit (BDM) must be set if using the BDM interface together with the DBG module. Failure to set this bit could  
result in XGATE generated breakpoints to SWI during BDM firmware execution corrupting the S12X PC return address,  
should the user have entered BDM via the BACKGROUND command or BGND instruction.  
3
End aligned tagged Breakpoint to SWI. Begin, Mid aligned and Forced Breakpoints disabled  
If BDM is not active, the breakpoint will give priority to BDM requests over SWI requests if the breakpoint  
happens to coincide with a SWI instruction in the user’s code. On returning from BDM, the SWI from user  
code gets executed.  
BDM cannot be entered from a breakpoint unless the ENABLE bit is set in the BDM. If entry to BDM via  
a BGND instruction is attempted and the ENABLE bit in the BDM is cleared, the CPU actually executes  
the BDM firmware code. It checks the ENABLE and returns if ENABLE is not set. If not serviced by the  
monitor then the breakpoint is re-asserted when the BDM returns to normal CPU flow.  
If the comparator register contents coincide with the SWI/BDM vector address then an SWI in user code  
and DBG breakpoint could occur simultaneously. The CPU ensures that BDM requests have a higher  
priority than SWI requests. Returning from the BDM/SWI service routine care must be taken to avoid  
re-triggering a breakpoint.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
829  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 20 Debug (S12XDBGV2)  
When program control returns from a tagged breakpoint using an RTI or BDM GO command without  
program counter modification it will return to the instruction whose tag generated the breakpoint. Thus  
care must be taken to avoid re triggering a breakpoint at the same location. This can be done by  
reconfiguring the DBG module in the SWI routine, (SWI configuration), or by executing a TRACE  
command before the GO (BDM configuration) to increment the program flow past the tagged instruction.  
Comparators should not be configured for the vector address range while tagging, since these addresses  
are not opcode addresses  
MC9S12XDP512 Data Sheet, Rev. 2.11  
830  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 20 Debug (S12XDBGV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
831  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 20 Debug (S12XDBGV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
832  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 20 Debug (S12XDBGV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
833  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 20 Debug (S12XDBGV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
834  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 20 Debug (S12XDBGV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
835  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 20 Debug (S12XDBGV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
836  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 20 Debug (S12XDBGV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
837  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 20 Debug (S12XDBGV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
838  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 20 Debug (S12XDBGV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
839  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 20 Debug (S12XDBGV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
840  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 20 Debug (S12XDBGV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
841  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 20 Debug (S12XDBGV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
842  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 21  
Interrupt (S12MC9S12XDP512V1)  
21.1 Introduction  
The XINT module decodes the priority of all system exception requests and provides the applicable vector  
for processing the exception to either the CPU or the XGATE module. The XINT module supports:  
I bit and X bit maskable interrupt requests  
A non-maskable unimplemented opcode trap  
A non-maskable software interrupt (SWI) or background debug mode request  
A spurious interrupt vector request  
Three system reset vector requests  
Each of the I bit maskable interrupt requests can be assigned to one of seven priority levels supporting a  
flexible priority scheme. For interrupt requests that are configured to be handled by the CPU, the priority  
scheme can be used to implement nested interrupt capability where interrupts from a lower level are  
automatically blocked if a higher level interrupt is being processed. Interrupt requests configured to be  
handled by the XGATE module cannot be nested because the XGATE module cannot be interrupted while  
processing.  
NOTE  
The HPRIO register and functionality of the XINT module is no longer  
supported, since it is superseded by the 7-level interrupt request priority  
scheme.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
PRELIMINARY  
843  
NON-DISCLOSURE AGREEMENT REQUIRED  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 21 Interrupt (S12MC9S12XDP512V1)  
21.1.1 Glossary  
The following terms and abbreviations are used in the document.  
Table 21-1. Terminology  
Term  
CCR  
DMA  
INT  
Meaning  
Condition Code Register (in the S12X CPU)  
Direct Memory Access  
Interrupt  
Interrupt Processing Level  
IPL  
Interrupt Service Routine  
ISR  
Micro-Controller Unit  
MCU  
XGATE  
IRQ  
please refer to the "XGATE Block Guide"  
refers to the interrupt request associated with the IRQ pin  
refers to the interrupt request associated with the XIRQ pin  
XIRQ  
21.1.2 Features  
Interrupt vector base register (IVBR)  
1
One spurious interrupt vector (at address vector base + 0x0010).  
2–113 I bit maskable interrupt vector requests (at addresses vector base + 0x0012–0x00F2).  
Each I bit maskable interrupt request has a configurable priority level and can be configured to be  
handled by either the CPU or the XGATE module .  
2
I bit maskable interrupts can be nested, depending on their priority levels.  
One X bit maskable interrupt vector request (at address vector base + 0x00F4).  
One non-maskable software interrupt request (SWI) or background debug mode vector request (at  
address vector base + 0x00F6).  
One non-maskable unimplemented opcode trap (TRAP) vector (at address vector base + 0x00F8).  
Three system reset vectors (at addresses 0xFFFA–0xFFFE).  
Determines the highest priority DMA and interrupt vector requests, drives the vector to the XGATE  
module or to the bus on CPU request, respectively.  
Wakes up the system from stop or wait mode when an appropriate interrupt request occurs or  
whenever XIRQ is asserted, even if X interrupt is masked.  
XGATE can wake up and execute code, even with the CPU remaining in stop or wait mode.  
21.1.3 Modes of Operation  
Run mode  
This is the basic mode of operation.  
1. The vector base is a 16-bit address which is accumulated from the contents of the interrupt vector base register (IVBR, used  
as upper byte) and 0x00 (used as lower byte).  
2. The IRQ interrupt can only be handled by the CPU  
MC9S12XDP512 Data Sheet, Rev. 2.11  
844  
PRELIMINARY  
Freescale Semiconductor  
NON-DISCLOSURE AGREEMENT REQUIRED  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 21 Interrupt (S12MC9S12XDP512V1)  
Wait mode  
In wait mode, the XINT module is frozen. It is however capable of either waking up the CPU if an  
interrupt occurs or waking up the XGATE if an XGATE request occurs. Please refer to  
Section 21.5.3, “Wake Up from Stop or Wait Mode” for details.  
Stop Mode  
In stop mode, the XINT module is frozen. It is however capable of either waking up the CPU if an  
interrupt occurs or waking up the XGATE if an XGATE request occurs. Please refer to  
Section 21.5.3, “Wake Up from Stop or Wait Mode” for details.  
Freeze mode (BDM active)  
In freeze mode (BDM active), the interrupt vector base register is overridden internally. Please  
refer to Section 21.3.1.1, “Interrupt Vector Base Register (IVBR)” for details.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
PRELIMINARY  
845  
NON-DISCLOSURE AGREEMENT REQUIRED  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 21 Interrupt (S12MC9S12XDP512V1)  
21.1.4 Block Diagram  
Figure 21-1 shows a block diagram of the XINT module.  
Peripheral  
Wake Up  
CPU  
Interrupt Requests  
Non I Bit Maskable  
Channels  
Vector  
Address  
IRQ Channel  
IVBR  
Interrupt  
Requests  
New  
IPL  
PRIOLVL2  
PRIOLVL1  
PRIOLVL0  
Current  
IPL  
RQST  
One Set Per Channel  
(Up to 112 Channels)  
INT_XGPRIO  
XGATE  
Requests  
Priority  
Decoder  
Wake up  
XGATE  
Vector  
ID  
XGATE  
Interrupts  
RQST  
PRIOLVLn  
DMA Request Route,  
Priority Level  
To XGATE Module  
= bits from the channel configuration  
in the associated configuration register  
INT_XGPRIO = XGATE Interrupt Priority  
IVBR  
IPL  
= Interrupt Vector Base  
= Interrupt Processing Level  
Figure 21-1. XINT Block Diagram  
MC9S12XDP512 Data Sheet, Rev. 2.11  
846  
PRELIMINARY  
Freescale Semiconductor  
NON-DISCLOSURE AGREEMENT REQUIRED  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 21 Interrupt (S12MC9S12XDP512V1)  
21.2 External Signal Description  
The XINT module has no external signals.  
21.3 Memory Map and Register Definition  
This section provides a detailed description of all registers accessible in the XINT.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
PRELIMINARY  
847  
NON-DISCLOSURE AGREEMENT REQUIRED  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 21 Interrupt (S12MC9S12XDP512V1)  
21.3.1 Register Descriptions  
This section describes in address order all the XINT registers and their individual bits.  
Register  
Name  
Address  
Bit 7  
6
5
4
3
2
1
Bit 0  
0x0121  
IVBR  
R
IVB_ADDR[7:0]  
W
0x0126 INT_XGPRIO  
0x0127 INT_CFADDR  
0x0128 INT_CFDATA0  
0x0129 INT_CFDATA1  
0x012A INT_CFDATA2  
0x012B INT_CFDATA3  
0x012C INT_CFDATA4  
0x012D INT_CFDATA5  
0x012E INT_CFDATA6  
0x012F INT_CFDATA7  
R
0
0
0
0
0
0
0
0
0
0
0
0
0
0
XILVL[2:0]  
0
W
R
0
0
INT_CFADDR[7:4]  
W
R
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
RQST  
RQST  
RQST  
RQST  
RQST  
RQST  
RQST  
RQST  
PRIOLVL[2:0]  
PRIOLVL[2:0]  
PRIOLVL[2:0]  
PRIOLVL[2:0]  
PRIOLVL[2:0]  
PRIOLVL[2:0]  
PRIOLVL[2:0]  
PRIOLVL[2:0]  
W
R
W
R
W
R
W
R
W
R
W
R
W
R
W
= Unimplemented or Reserved  
Figure 21-2. XINT Register Summary  
MC9S12XDP512 Data Sheet, Rev. 2.11  
848  
PRELIMINARY  
Freescale Semiconductor  
NON-DISCLOSURE AGREEMENT REQUIRED  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 21 Interrupt (S12MC9S12XDP512V1)  
21.3.1.1 Interrupt Vector Base Register (IVBR)  
Address: 0x0121  
7
6
5
4
3
2
1
0
R
W
IVB_ADDR[7:0]  
Reset  
1
1
1
1
1
1
1
1
Figure 21-3. Interrupt Vector Base Register (IVBR)  
Read: Anytime  
Write: Anytime  
Table 21-2. IVBR Field Descriptions  
Description  
Field  
7–0  
Interrupt Vector Base Address Bits — These bits represent the upper byte of all vector addresses. Out of  
IVB_ADDR[7:0] reset these bits are set to 0xFF (i.e., vectors are located at 0xFF10–0xFFFE) to ensure compatibility to  
HCS12.  
Note: A system reset will initialize the interrupt vector base register with “0xFF” before it is used to determine  
the reset vector address. Therefore, changing the IVBR has no effect on the location of the three reset  
vectors (0xFFFA–0xFFFE).  
Note: If the BDM is active (i.e., the CPU is in the process of executing BDM firmware code), the contents of  
IVBR are ignored and the upper byte of the vector address is fixed as “0xFF”.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
PRELIMINARY  
849  
NON-DISCLOSURE AGREEMENT REQUIRED  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 21 Interrupt (S12MC9S12XDP512V1)  
21.3.1.2 XGATE Interrupt Priority Configuration Register (INT_XGPRIO)  
Address: 0x0126  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
XILVL[2:0]  
Reset  
0
0
0
0
0
0
0
1
= Unimplemented or Reserved  
Figure 21-4. XGATE Interrupt Priority Configuration Register (INT_XGPRIO)  
Read: Anytime  
Write: Anytime  
Table 21-3. INT_XGPRIO Field Descriptions  
Description  
Field  
2–0  
XGATE Interrupt Priority Level — The XILVL[2:0] bits configure the shared interrupt level of the DMA interrupts  
XILVL[2:0] coming from the XGATE module. Out of reset the priority is set to the lowest active level (“1”).  
Table 21-4. XGATE Interrupt Priority Levels  
Priority  
XILVL2  
XILVL1  
XILVL0  
Meaning  
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Interrupt request is disabled  
Priority level 1  
low  
Priority level 2  
Priority level 3  
Priority level 4  
Priority level 5  
Priority level 6  
high  
Priority level 7  
MC9S12XDP512 Data Sheet, Rev. 2.11  
PRELIMINARY  
850  
Freescale Semiconductor  
NON-DISCLOSURE AGREEMENT REQUIRED  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 21 Interrupt (S12MC9S12XDP512V1)  
21.3.1.3 Interrupt Request Configuration Address Register (INT_CFADDR)  
Address: 0x0127  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
INT_CFADDR[7:4]  
Reset  
0
0
0
1
0
0
0
0
= Unimplemented or Reserved  
Figure 21-5. Interrupt Configuration Address Register (INT_CFADDR)  
Read: Anytime  
Write: Anytime  
Table 21-5. INT_CFADDR Field Descriptions  
Description  
Field  
7–4  
Interrupt Request Configuration Data Register Select Bits — These bits determine which of the 128  
INT_CFADDR[7:4] configuration data registers are accessible in the 8 register window at INT_CFDATA0–7. The hexadecimal  
value written to this register corresponds to the upper nibble of the lower byte of the interrupt vector, i.e.,  
writing 0xE0 to this register selects the configuration data register block for the 8 interrupt vector requests  
starting with vector (vector base + 0x00E0) to be accessible as INT_CFDATA0–7.  
Note: Writing all 0s selects non-existing configuration registers. In this case write accesses to  
INT_CFDATA0–7 will be ignored and read accesses will return all 0.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
PRELIMINARY  
851  
NON-DISCLOSURE AGREEMENT REQUIRED  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 21 Interrupt (S12MC9S12XDP512V1)  
21.3.1.4 Interrupt Request Configuration Data Registers (INT_CFDATA0–7)  
The eight register window visible at addresses INT_CFDATA0–7 contains the configuration data for the  
block of eight interrupt requests (out of 128) selected by the interrupt configuration address register  
(INT_CFADDR) in ascending order. INT_CFDATA0 represents the interrupt configuration data register  
of the vector with the lowest address in this block, while INT_CFDATA7 represents the interrupt  
configuration data register of the vector with the highest address, respectively.  
Address: 0x0128  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
RQST  
PRIOLVL[2:0]  
1
Reset  
0
0
0
0
0
0
0
1
= Unimplemented or Reserved  
Figure 21-6. Interrupt Request Configuration Data Register 0 (INT_CFDATA0)  
1
Please refer to the notes following the PRIOLVL[2:0] description below.  
Address: 0x0129  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
RQST  
0
PRIOLVL[2:0]  
1
Reset  
0
0
0
0
0
0
1
= Unimplemented or Reserved  
Figure 21-7. Interrupt Request Configuration Data Register 1 (INT_CFDATA1)  
1
Please refer to the notes following the PRIOLVL[2:0] description below.  
Address: 0x012A  
7
6
5
4
3
2
1
0
R
0
0
0
0
RQST  
PRIOLVL[2:0]  
W
1
Reset  
0
0
0
0
0
0
0
1
= Unimplemented or Reserved  
Figure 21-8. Interrupt Request Configuration Data Register 2 (INT_CFDATA2)  
1
Please refer to the notes following the PRIOLVL[2:0] description below.  
Address: 0x012B  
7
6
5
4
3
2
1
0
R
0
0
0
0
RQST  
PRIOLVL[2:0]  
W
1
Reset  
0
0
0
0
0
0
0
1
= Unimplemented or Reserved  
Figure 21-9. Interrupt Request Configuration Data Register 3 (INT_CFDATA3)  
1
Please refer to the notes following the PRIOLVL[2:0] description below.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
852  
PRELIMINARY  
Freescale Semiconductor  
NON-DISCLOSURE AGREEMENT REQUIRED  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 21 Interrupt (S12MC9S12XDP512V1)  
Address: 0x012C  
7
6
5
4
3
2
1
0
R
0
0
0
0
RQST  
PRIOLVL[2:0]  
W
1
Reset  
0
0
0
0
0
0
0
1
= Unimplemented or Reserved  
Figure 21-10. Interrupt Request Configuration Data Register 4 (INT_CFDATA4)  
1
Please refer to the notes following the PRIOLVL[2:0] description below.  
Address: 0x012D  
7
6
5
4
3
2
1
0
R
0
0
0
0
RQST  
PRIOLVL[2:0]  
W
1
Reset  
0
0
0
0
0
0
0
1
= Unimplemented or Reserved  
Figure 21-11. Interrupt Request Configuration Data Register 5 (INT_CFDATA5)  
1
Please refer to the notes following the PRIOLVL[2:0] description below.  
Address: 0x012E  
7
6
5
4
3
2
1
0
R
0
0
0
0
RQST  
PRIOLVL[2:0]  
W
1
Reset  
0
0
0
0
0
0
0
1
= Unimplemented or Reserved  
Figure 21-12. Interrupt Request Configuration Data Register 6 (INT_CFDATA6)  
1
Please refer to the notes following the PRIOLVL[2:0] description below.  
Address: 0x012F  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
RQST  
0
PRIOLVL[2:0]  
1
Reset  
0
0
0
0
0
0
1
= Unimplemented or Reserved  
Figure 21-13. Interrupt Request Configuration Data Register 7 (INT_CFDATA7)  
1
Please refer to the notes following the PRIOLVL[2:0] description below.  
Read: Anytime  
Write: Anytime  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
PRELIMINARY  
853  
NON-DISCLOSURE AGREEMENT REQUIRED  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 21 Interrupt (S12MC9S12XDP512V1)  
Table 21-6. INT_CFDATA0–7 Field Descriptions  
Field  
Description  
7
XGATE Request Enable — This bit determines if the associated interrupt request is handled by the CPU or by  
the XGATE module.  
RQST  
0 Interrupt request is handled by the CPU  
1 Interrupt request is handled by the XGATE module  
Note: The IRQ interrupt cannot be handled by the XGATE module. For this reason, the configuration register  
for vector (vector base + 0x00F2) = IRQ vector address) does not contain a RQST bit. Writing a 1 to the  
location of the RQST bit in this register will be ignored and a read access will return 0.  
2–0  
Interrupt Request Priority Level Bits — The PRIOLVL[2:0] bits configure the interrupt request priority level of  
PRIOLVL[2:0] the associated interrupt request. Out of reset all interrupt requests are enabled at the lowest active level (“1”)  
to provide backwards compatibility with previous HCS12 interrupt controllers. Please also refer to Table 21-7 for  
available interrupt request priority levels.  
Note: Write accesses to configuration data registers of unused interrupt channels will be ignored and read  
accesses will return all 0. For information about what interrupt channels are used in a specific MCU,  
please refer to the Device User Guide of that MCU.  
Note: When vectors (vector base + 0x00F0–0x00FE) are selected by writing 0xF0 to INT_CFADDR, writes to  
INT_CFDATA2–7 (0x00F4–0x00FE) will be ignored and read accesses will return all 0s. The  
corresponding vectors do not have configuration data registers associated with them.  
Note: Write accesses to the configuration register for the spurious interrupt vector request  
(vector base + 0x0010) will be ignored and read accesses will return 0x07 (request is handled by the  
CPU, PRIOLVL = 7).  
Table 21-7. Interrupt Priority Levels  
Priority  
PRIOLVL2  
PRIOLVL1  
PRIOLVL0  
Meaning  
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Interrupt request is disabled  
Priority level 1  
low  
Priority level 2  
Priority level 3  
Priority level 4  
Priority level 5  
Priority level 6  
high  
Priority level 7  
MC9S12XDP512 Data Sheet, Rev. 2.11  
854  
PRELIMINARY  
Freescale Semiconductor  
NON-DISCLOSURE AGREEMENT REQUIRED  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 21 Interrupt (S12MC9S12XDP512V1)  
21.4 Functional Description  
The XINT module processes all exception requests to be serviced by the CPU module. These exceptions  
include interrupt vector requests and reset vector requests. Each of these exception types and their overall  
priority level is discussed in the subsections below.  
21.4.1 S12X Exception Requests  
The CPU handles both reset requests and interrupt requests. The XINT contains registers to configure the  
priority level of each I bit maskable interrupt request which can be used to implement an interrupt priority  
scheme. This also includes the possibility to nest interrupt requests. A priority decoder is used to evaluate  
the priority of a pending interrupt request.  
21.4.2 Interrupt Prioritization  
After system reset all interrupt requests with a vector address lower than or equal to (vector base + 0x00F2)  
are enabled, are set up to be handled by the CPU and have a pre-configured priority level of 1. The  
exception to this rule is the spurious interrupt vector request at (vector base + 0x0010) which cannot be  
disabled, is always handled by the CPU and has a fixed priority level of 7. A priority level of 0 effectively  
disables the associated interrupt request.  
If more than one interrupt request is configured to the same interrupt priority level the interrupt request  
with the higher vector address wins the prioritization.  
The following conditions must be met for an I bit maskable interrupt request to be processed.  
1. The local interrupt enabled bit in the peripheral module must be set.  
2. The setup in the configuration register associated with the interrupt request channel must meet the  
following conditions:  
a) The XGATE request enable bit must be 0 to have the CPU handle the interrupt request.  
b) The priority level must be set to non zero.  
c) The priority level must be greater than the current interrupt processing level in the condition  
code register (CCR) of the CPU (PRIOLVL[2:0] > IPL[2:0]).  
3. The I bit in the condition code register (CCR) of the CPU must be cleared.  
4. There is no SWI, TRAP, or XIRQ request pending.  
NOTE  
All non I bit maskable interrupt requests always have higher priority than  
I bit maskable interrupt requests. If an I bit maskable interrupt request is  
interrupted by a non I bit maskable interrupt request, the currently active  
interrupt processing level (IPL) remains unaffected. It is possible to nest  
non I bit maskable interrupt requests, e.g., by nesting SWI or TRAP calls.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
PRELIMINARY  
855  
NON-DISCLOSURE AGREEMENT REQUIRED  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 21 Interrupt (S12MC9S12XDP512V1)  
21.4.2.1 Interrupt Priority Stack  
The current interrupt processing level (IPL) is stored in the condition code register (CCR) of the CPU. This  
way the current IPL is automatically pushed to the stack by the standard interrupt stacking procedure. The  
new IPL is copied to the CCR from the priority level of the highest priority active interrupt request channel  
which is configured to be handled by the CPU. The copying takes place when the interrupt vector is  
fetched. The previous IPL is automatically restored by executing the RTI instruction.  
21.4.3 XGATE Requests  
The XINT module processes all exception requests to be serviced by the XGATE module. The overall  
priority level of those exceptions is discussed in the subsections below.  
21.4.3.1 XGATE Request Prioritization  
associated configuration register is set to 1 (please refer to Section 21.3.1.4, “Interrupt Request  
Configuration Data Registers (INT_CFDATA0–7)”). The priority level setting (PRIOLVL) for this channel  
becomes the DMA priority which will be used to determine the highest priority DMA request to be  
serviced next by the XGATE module. Additionally, DMA interrupts may be raised by the XGATE module  
by setting one or more of the XGATE channel interrupt flags (using the SIF instruction). This will result  
in an CPU interrupt with vector address vector base + (2 * channel ID number), where the channel ID  
number corresponds to the highest set channel interrupt flag, if the XGIE and channel RQST bits are set.  
configuration register (please refer to Section 21.3.1.2, “XGATE Interrupt Priority Configuration Register  
(INT_XGPRIO)”). If more than one DMA interrupt request channel becomes active at the same time, the  
channel with the highest vector address wins the prioritization.  
21.4.4 Priority Decoders  
The XINT module contains priority decoders to determine the priority for all interrupt requests pending  
for the respective target.  
There are two priority decoders, one for each interrupt request target (CPU, XGATE module). The function  
of both priority decoders is basically the same with one exception: the priority decoder for the XGATE  
module does not take the current interrupt processing level into account because XGATE requests cannot  
be nested.  
Because the vector is not supplied until the CPU requests it, it is possible that a higher priority interrupt  
request could override the original exception that caused the CPU to request the vector. In this case, the  
CPU will receive the highest priority vector and the system will process this exception instead of the  
original request.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
856  
PRELIMINARY  
Freescale Semiconductor  
NON-DISCLOSURE AGREEMENT REQUIRED  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 21 Interrupt (S12MC9S12XDP512V1)  
If the interrupt source is unknown (for example, in the case where an interrupt request becomes inactive  
after the interrupt has been recognized, but prior to the vector request), the vector address supplied to the  
CPU will default to that of the spurious interrupt vector.  
NOTE  
Care must be taken to ensure that all exception requests remain active until  
the system begins execution of the applicable service routine; otherwise, the  
exception request may not get processed at all or the result may be a  
spurious interrupt request (vector at address (vector base + 0x0010)).  
21.4.5 Reset Exception Requests  
The XINT supports three system reset exception request types (please refer to CRG for details):  
1. Pin reset, power-on reset, low-voltage reset, or illegal address reset  
2. Clock monitor reset request  
3. COP watchdog reset request  
21.4.6 Exception Priority  
The priority (from highest to lowest) and address of all exception vectors issued by the XINT upon request  
by the CPU is shown in Table 21-8.  
Table 21-8. Exception Vector Map and Priority  
1
Vector Address  
Source  
0xFFFE  
Pin reset, power-on reset, low-voltage reset, illegal address reset  
Clock monitor reset  
0xFFFC  
0xFFFA  
COP watchdog reset  
(Vector base + 0x00F8)  
(Vector base + 0x00F6)  
(Vector base + 0x00F4)  
(Vector base + 0x00F2)  
Unimplemented opcode trap  
Software interrupt instruction (SWI) or BDM vector request  
XIRQ interrupt request  
IRQ interrupt request  
(Vector base + 0x00F0–0x0012) Device specific I bit maskable interrupt sources (priority determined by the associated  
configuration registers, in descending order)  
(Vector base + 0x0010)  
Spurious interrupt  
1
16 bits vector address based  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
PRELIMINARY  
857  
NON-DISCLOSURE AGREEMENT REQUIRED  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 21 Interrupt (S12MC9S12XDP512V1)  
21.5 Initialization/Application Information  
21.5.1 Initialization  
After system reset, software should:  
Initialize the interrupt vector base register if the interrupt vector table is not located at the default  
location (0xFF10–0xFFF9).  
Initialize the interrupt processing level configuration data registers (INT_CFADDR,  
INT_CFDATA0–7) for all interrupt vector requests with the desired priority levels and the request  
target (CPU or XGATE module). It might be a good idea to disable unused interrupt requests.  
If the XGATE module is used, setup the XGATE interrupt priority register (INT_XGPRIO) and  
configure the XGATE module (please refer the XGATE Block Guide for details).  
Enable I maskable interrupts by clearing the I bit in the CCR.  
Enable the X maskable interrupt by clearing the X bit in the CCR (if required).  
21.5.2 Interrupt Nesting  
The interrupt request priority level scheme makes it possible to implement priority based interrupt request  
nesting for the I bit maskable interrupt requests handled by the CPU.  
I bit maskable interrupt requests can be interrupted by an interrupt request with a higher priority,  
so that there can be up to seven nested I bit maskable interrupt requests at a time (refer to  
Figure 21-14 for an example using up to three nested interrupt requests).  
I bit maskable interrupt requests cannot be interrupted by other I bit maskable interrupt requests per  
default. In order to make an interrupt service routine (ISR) interruptible, the ISR must explicitly clear the  
I bit in the CCR (CLI). After clearing the I bit, I bit maskable interrupt requests with higher priority can  
interrupt the current ISR.  
An ISR of an interruptible I bit maskable interrupt request could basically look like this:  
Service interrupt, e.g., clear interrupt flags, copy data, etc.  
Clear I bit in the CCR by executing the instruction CLI (thus allowing interrupt requests with  
higher priority)  
Process data  
Return from interrupt by executing the instruction RTI  
MC9S12XDP512 Data Sheet, Rev. 2.11  
858  
PRELIMINARY  
Freescale Semiconductor  
NON-DISCLOSURE AGREEMENT REQUIRED  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 21 Interrupt (S12MC9S12XDP512V1)  
0
4
0
4
0
4
0
3
0
1
Stacked IPL  
IPL in CCR  
0
7
0
7
6
5
4
RTI  
L7  
RTI  
Processing Levels  
3
2
L3 (Pending)  
RTI  
L4  
1
0
RTI  
L1 (Pending)  
Reset  
Figure 21-14. Interrupt Processing Example  
21.5.3 Wake Up from Stop or Wait Mode  
21.5.3.1 CPU Wake Up from Stop or Wait Mode  
Every I bit maskable interrupt request which is configured to be handled by the CPU is capable of waking  
the MCU from stop or wait mode. To determine whether an I bit maskable interrupts is qualified to wake  
up the CPU or not, the same settings as in normal run mode are applied during stop or wait mode:  
If the I bit in the CCR is set, all I bit maskable interrupts are masked from waking up the MCU.  
An I bit maskable interrupt is ignored if it is configured to a priority level below or equal to the  
current IPL in CCR.  
I bit maskable interrupt requests which are configured to be handled by the XGATE are not capable  
of waking up the CPU.  
An XIRQ request can wake up the MCU from stop or wait mode at anytime, even if the X bit in CCR is set.  
21.5.3.2 XGATE Wake Up from Stop or Wait Mode  
Interrupt request channels which are configured to be handled by the XGATE are capable of waking up the  
XGATE. Interrupt request channels handled by the XGATE do not affect the state of the CPU.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
PRELIMINARY  
859  
NON-DISCLOSURE AGREEMENT REQUIRED  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 21 Interrupt (S12MC9S12XDP512V1)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
PRELIMINARY  
860  
Freescale Semiconductor  
NON-DISCLOSURE AGREEMENT REQUIRED  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 22  
External Bus Interface (S12XEBIV2)  
22.1 Introduction  
This document describes the functionality of the MC9S12XDP512 block controlling the external bus  
interface.  
The MC9S12XDP512 controls the functionality of a non-multiplexed external bus (a.k.a. ‘expansion bus’)  
in relationship with the chip operation modes. Dependent on the mode, the external bus can be used for  
data exchange with external memory, peripherals or PRU, and provide visibility to the internal bus  
externally in combination with an emulator.  
22.1.1 Features  
The MC9S12XDP512 includes the following features:  
Output of up to 23-bit address bus and control signals to be used with a non-muxed external bus  
Bidirectional 16-bit external data bus with option to disable upper half  
Visibility of internal bus activity  
22.1.2 Modes of Operation  
Single-chip modes  
The external bus interface is not available in these modes.  
Expanded modes  
Address, data, and control signals are activated on the external bus in normal expanded mode and  
special test mode.  
Emulation modes  
The external bus is activated to interface to an external tool for emulation of normal expanded mode  
or normal single-chip mode applications.  
Refer to the S12X_MMC section for a detailed description of the MCU operating modes.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
861  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 22 External Bus Interface (S12XEBIV2)  
22.1.3 Block Diagram  
Figure 22-1 is a block diagram of the MC9S12XDP512 with all related I/O signals.  
ADDR[22:0]  
DATA[15:0]  
IVD[15:0]  
LSTRB  
R/W  
EWAIT  
XEBI  
UDS  
LDS  
RE  
WE  
ACC[2:0]  
IQSTAT[3:0]  
Figure 22-1. MC9S12XDP512 Block Diagram  
22.2 External Signal Description  
The user is advised to refer to the SoC section for port configuration and location of external bus signals.  
NOTE  
The following external bus related signals are described in other sections:  
CS2, CS1, CS0 (chip selects) — S12X_MMC section  
ECLK, ECLKX2 (free-running clocks) — PIM section  
TAGHI, TAGLO (tag inputs) — PIM section, S12X_DBG section  
Table 22-1 outlines the pin names and gives a brief description of their function. Refer to the SoC section  
and PIM section for reset states of these pins and associated pull-ups or pull-downs.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
862  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 22 External Bus Interface (S12XEBIV2)  
Table 22-1. External System Signals Associated with MC9S12XDP512  
EBI Signal  
Multiplex  
Available in Modes  
1
Signal  
I /O  
Description  
2
(T)ime  
NS SS NX ES EX ST  
3
(F)unction  
RE  
O
O
O
O
O
O
O
O
O
O
T
F
Read Enable, indicates external read access  
External address  
No No Yes No No No  
No No Yes Yes Yes Yes  
No No No Yes Yes Yes  
No No Yes Yes Yes Yes  
No No No Yes Yes Yes  
No No Yes Yes Yes Yes  
No No No Yes Yes Yes  
No No No Yes Yes Yes  
No No No Yes Yes Yes  
No No Yes No No No  
ADDR[22:20]  
ACC[2:0]  
ADDR[19:16]  
IQSTAT[3:0]  
ADDR[15:1]  
IVD[15:1]  
ADDR0  
Access source  
T
T
External address  
Instruction Queue Status  
External address  
Internal visibility read data (IVIS = 1)  
External address  
T
IVD0  
Internal visibility read data (IVIS = 1)  
UDS  
Upper Data Select, indicates external access  
to the high byte DATA[15:8]  
LSTRB  
LDS  
O
O
F
F
Low Strobe, indicates valid data on DATA[7:0]  
No No No Yes Yes Yes  
No No Yes No No No  
Lower Data Select, indicates external access  
to the low byte DATA[7:0]  
R/W  
O
Read/Write, indicates the direction of internal  
data transfers  
No No No Yes Yes Yes  
WE  
O
I/O  
I/O  
I
Write Enable, indicates external write access  
Bidirectional data (even address)  
No No Yes No No No  
No No Yes Yes Yes Yes  
No No Yes Yes Yes Yes  
No No Yes No Yes No  
DATA[15:8]  
DATA[7:0]  
EWAIT  
Bidirectional data (odd address)  
External control for external bus access  
stretches (adding wait states)  
1
2
All inputs are capable of reducing input threshold level  
Time-multiplex means that the respective signals share the same pin on chip level and are active alternating in a dedicated  
time slot (in modes where applicable).  
3
Function-multiplex means that one of the respective signals sharing the same pin on chip level continuously uses the pin  
depending on configuration and reset state.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
863  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 22 External Bus Interface (S12XEBIV2)  
22.3 Memory Map and Register Definition  
This section provides a detailed description of all registers accessible in the MC9S12XDP512.  
22.3.1 Module Memory Map  
The registers associated with the MC9S12XDP512 block are shown in Figure 22-2.  
Register  
Name  
Bit 7  
6
5
HDBE  
0
4
ASIZ4  
0
3
ASIZ3  
0
2
1
Bit 0  
0x0E  
EBICTL0  
R
0
ITHRS  
ASIZ2  
ASIZ1  
ASIZ0  
W
0x0F  
EBICTL1  
R
0
EWAITE  
EXSTR2  
EXSTR1  
EXSTR0  
W
= Unimplemented or Reserved  
Figure 22-2. XEBI Register Summary  
22.3.2 Register Descriptions  
The following sub-sections provide a detailed description of each register and the individual register bits.  
All control bits can be written anytime, but this may have no effect on the related function in certain  
operating modes. This allows specific configurations to be set up before changing into the target operating  
mode.  
NOTE  
Depending on the operating mode an available function may be enabled,  
disabled or depend on the control register bit. Reading the register bits will  
reflect the status of related function only if the current operating mode  
allows user control. Please refer the individual bit descriptions.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
864  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 22 External Bus Interface (S12XEBIV2)  
22.3.2.1 External Bus Interface Control Register 0 (EBICTL0)  
Module Base +0x000E (PRR)  
7
6
5
4
3
2
1
0
R
0
ITHRS  
W
HDBE  
ASIZ4  
ASIZ3  
ASIZ2  
ASIZ1  
ASIZ0  
Reset  
0
0
1
1
1
1
1
1
= Unimplemented or Reserved  
Figure 22-3. External Bus Interface Control Register 0 (EBICTL0)  
Read: Anytime. In emulation modes, read operations will return the data from the external bus, in all other  
modes, the data are read from this register.  
Write: Anytime. In emulation modes, write operations will also be directed to the external bus.  
This register controls input pin threshold level and determines the external address and data bus sizes in  
normal expanded mode. If not in use with the external bus interface, the related pins can be used for  
alternative functions.  
External bus is available as programmed in normal expanded mode and always full-sized in emulation  
modes and special test mode; function not available in single-chip modes.  
Table 22-2. EBICTL0 Field Descriptions  
Field  
Description  
7
Reduced Input Threshold — This bit selects reduced input threshold on external data bus pins and specific  
control input signals which are in use with the external bus interface in order to adapt to external devices with a  
3.3 V, 5 V tolerant I/O.  
ITHRS  
The reduced input threshold level takes effect depending on ITHRS, the operating mode and the related enable  
signals of the EBI pin function as summarized in Table 22-3.  
0 Input threshold is at standard level on all pins  
1 Reduced input threshold level enabled on pins in use with the external bus interface  
5
High Data Byte Enable — This bit enables the higher half of the 16-bit data bus. If disabled, only the lower 8-bit  
data bus can be used with the external bus interface. In this case the unused data pins and the data select  
signals (UDS and LDS) are free to be used for alternative functions.  
0 DATA[15:8], UDS, and LDS disabled  
HDBE  
1 DATA[15:8], UDS, and LDS enabled  
4–0  
ASIZ[4:0]  
External Address Bus Size — These bits allow scalability of the external address bus. The programmed value  
corresponds to the number of available low-aligned address lines (refer to Table 22-4). All address lines  
ADDR[22:0] start up as outputs after reset in expanded modes. This needs to be taken into consideration when  
using alternative functions on relevant pins in applications which utilize a reduced external address bus.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
865  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 22 External Bus Interface (S12XEBIV2)  
Table 22-3. Input Threshold Levels on External Signals  
ITHRS  
External Signal  
NS  
SS  
NX  
ES  
EX  
ST  
DATA[15:8]  
TAGHI, TAGLO  
Reduced  
Standard  
Reduced  
Reduced  
Standard  
Reduced  
0
Standard  
Standard  
Standard  
Standard  
DATA[7:0]  
EWAIT  
DATA[15:8]  
TAGHI, TAGLO  
Reduced  
if HDBE = 1  
Reduced  
Standard  
1
DATA[7:0]  
Standard  
Standard  
Reduced  
Reduced  
if EWAITE = 1  
Reduced  
if EWAITE = 1  
EWAIT  
Standard  
Table 22-4. External Address Bus Size  
Available External Address Lines  
ASIZ[4:0]  
00000  
00001  
00010  
00011  
:
None  
UDS  
ADDR1, UDS  
ADDR[2:1], UDS  
:
10110  
ADDR[21:1], UDS  
ADDR[22:1], UDS  
10111  
:
11111  
MC9S12XDP512 Data Sheet, Rev. 2.11  
866  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 22 External Bus Interface (S12XEBIV2)  
22.3.2.2 External Bus Interface Control Register 1 (EBICTL1)  
Module Base +0x000F (PRR)  
7
6
5
4
3
2
1
0
R
0
0
0
0
EWAITE  
W
EXSTR2  
EXSTR1  
EXSTR0  
Reset  
0
0
0
0
0
1
1
1
= Unimplemented or Reserved  
Figure 22-4. External Bus Interface Control Register 1 (EBICTL1)  
Read: Anytime. In emulation modes, read operations will return the data from the external bus, in all other  
modes the data are read from this register.  
Write: Anytime. In emulation modes, write operations will also be directed to the external bus.  
This register is used to configure the external access stretch (wait) function.  
Table 22-5. EBICTL1 Field Descriptions  
Field  
Description  
7
External Wait Enable — This bit enables the external access stretch function using the external EWAIT input  
EWAITE  
pin. Enabling this feature may have effect on the minimum number of additional stretch cycles (refer to  
Table 22-6).  
External wait feature is only active if enabled in normal expanded mode and emulation expanded mode; function  
not available in all other operating modes.  
0 External wait is disabled  
1 External wait is enabled  
2–0  
External Access Stretch Bits 2, 1, 0 — This three bit field determines the amount of additional clock stretch  
EXSTR[2:0] cycles on every access to the external address space as shown in Table 22-6. The minimum number of stretch  
cycles depends on the EWAITE setting.  
Stretch cycles are added as programmed in normal expanded mode and emulation expanded mode; function  
not available in all other operating modes.  
Table 22-6. External Access Stretch Bit Definition  
Number of Stretch Cycles  
EXSTR[2:0]  
EWAITE = 0  
EWAITE = 1  
000  
001  
010  
011  
100  
101  
110  
111  
1 cycle  
2 cycles  
3 cycles  
4 cycles  
5 cycles  
6 cycles  
7 cycles  
8 cycles  
>= 2 cycles  
>= 2 cycles  
>= 3 cycles  
>= 4 cycles  
>= 5 cycles  
>= 6 cycles  
>= 7 cycles  
>= 8 cycles  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
867  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 22 External Bus Interface (S12XEBIV2)  
22.4 Functional Description  
This section describes the functions of the external bus interface. The availability of external signals and  
functions in relation to the operating mode is initially summarized and described in more detail in separate  
sub-sections.  
22.4.1 Operating Modes and External Bus Properties  
A summary of the external bus interface functions for each operating mode is shown in Table 22-7.  
Table 22-7. Summary of Functions  
Single-Chip Modes  
Expanded Modes  
Properties  
(if Enabled)  
Normal  
Special  
Normal  
Expanded  
Emulation  
Emulation  
Expanded  
Special  
Test  
Single-Chip  
Single-Chip  
Single-Chip  
Timing Properties  
1
PRR access  
2 cycles  
2 cycles  
2 cycles  
2 cycles  
2 cycles  
2 cycles  
read internal  
write internal  
read internal  
write internal  
read internal  
write internal  
read external  
write int & ext  
read external  
write int & ext  
read internal  
write internal  
Internal access  
visible externally  
1 cycle  
1 cycle  
1 cycle  
External  
address access  
and  
Max. of 2 to 9  
programmed  
cycles  
1 cycle  
Max. of 2 to 9  
programmed  
cycles  
1 cycle  
unimplemented area  
or n cycles of  
ext. wait  
or n cycles of  
ext. wait  
2
3
3
access  
Flash area  
address access  
1 cycle  
1 cycle  
1 cycle  
4
Signal Properties  
ADDR[22:1] ADDR[22:20]/A ADDR[22:20]/A ADDR[22:0]  
Bus signals  
DATA[15:0]  
CC[2:0]  
CC[2:0]  
DATA[15:0]  
ADDR[19:16]/ ADDR[19:16]/  
IQSTAT[3:0]  
ADDR[15:0]/  
IVD[15:0]  
IQSTAT[3:0]  
ADDR[15:0]/  
IVD[15:0]  
DATA[15:0]  
DATA[15:0]  
Data select signals  
(if 16-bit data bus)  
UDS  
LDS  
ADDR0  
LSTRB  
ADDR0  
LSTRB  
ADDR0  
LSTRB  
Data direction signals  
RE  
WE  
R/W  
R/W  
R/W  
External wait  
feature  
EWAIT  
EWAIT  
Reduced input  
threshold enabled on  
Refer to  
Table 22-3  
DATA[15:0]  
EWAIT  
DATA[15:0]  
EWAIT  
Refer to  
Table 22-3  
1
2
3
4
Incl. S12X_EBI registers  
Refer to S12X_MMC section.  
If EWAITE = 1, the minimum number of external bus cycles is 3.  
Available only if configured appropriately by ROMON and EROMON (refer to S12X_MMC section).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
868  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 22 External Bus Interface (S12XEBIV2)  
22.4.2 Internal Visibility  
Internal visibility allows the observation of the internal MCU address and data bus as well as the  
determination of the access source and the CPU pipe (queue) status through the external bus interface.  
Internal visibility is always enabled in emulation single chip mode and emulation expanded mode. Internal  
CPU and BDM accesses are made visible on the external bus interface, except those to BDM firmware and  
BDM registers.  
Internal reads are made visible on ADDRx/IVDx (address and read data multiplexed, see Table 22-9 to  
Table 22-11), internal writes on ADDRx and DATAx (see Table 22-12 to Table 22-14). R/W and LSTRB  
show the type of access. External read data are also visible on IVDx.  
22.4.2.1 Access Source and Instruction Queue Status Signals  
The access source (bus master) can be determined from the external bus control signals ACC[2:0] as  
shown in Table 22-8.  
Table 22-8. Determining Access Source from Control Signals  
ACC[2:0]  
Access Description  
000  
001  
Repetition of previous access cycle  
CPU access  
010  
BDM access  
1
011  
XGATE PRR access  
2
100  
No access  
101, 110, 111  
Reserved  
1
2
Invalid IVD brought out in read cycles  
Denotes also accesses to BDM firmware and BDM registers (IQSTATx are  
‘XXXX’ and R/W = 1 in these cases)  
The CPU instruction queue status (execution-start and data-movement information) is brought out as  
IQSTAT[3:0] signals. For decoding of the IQSTAT values, refer to the S12X_CPU section.  
22.4.2.2 Emulation Modes Timing  
A bus access lasts 1 ECLK cycle. In case of a stretched external access (emulation expanded mode), up to  
an infinite amount of ECLK cycles may be added. ADDRx values will only be shown in ECLK high  
phases, while ACCx, IQSTATx, and IVDx values will only be presented in ECLK low phases.  
Based on this multiplex timing, ACCx are only shown in the current (first) access cycle. IQSTATx and  
(for read accesses) IVDx follow in the next cycle. If the access takes more than one bus cycle, ACCx  
display NULL (0x000) in the second and all following cycles of the access. IQSTATx display NULL  
(0x0000) from the third until one cycle after the access to indicate continuation.  
The resulting timing pattern of the external bus signals is outlined in the following tables for read, write  
and interleaved read/write accesses. Three examples represent different access lengths of 1, 2, and n–1 bus  
cycles. Non-shaded bold entries denote all values related to Access #0.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
869  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 22 External Bus Interface (S12XEBIV2)  
The following terminology is used:  
‘addr’ — value(ADDRx); small letters denote the logic values at the respective pins  
‘x’ — Undefined output pin values  
‘z’ — Tristate pins  
‘?’ — Dependent on previous access (read or write); IVDx: ‘ivd’ or ‘x’; DATAx: ‘data’ or ‘z’  
22.4.2.2.1  
Read Access Timing  
Table 22-9. Read Access (1 Cycle)  
Access #0  
Access #1  
3
...  
...  
...  
...  
...  
...  
Bus cycle ->  
1
2
ECLK phase  
high  
low  
high  
low  
acc 1  
iqstat 0  
ivd 0  
z
high  
low  
acc 2  
ADDR[22:20] / ACC[2:0]  
acc 0  
ADDR[19:16] / IQSTAT[3:0] ... addr 0  
ADDR[15:0] / IVD[15:0] ...  
iqstat -1  
addr 1  
addr 2  
iqstat 1 ...  
?
z
z
1
ivd 1  
...  
...  
...  
...  
DATA[15:0] (internal read) ...  
DATA[15:0] (external read) ...  
?
?
1
z
data 0  
1
z
data 1  
1
z
z
1
z
R/W  
...  
1
Table 22-10. Read Access (2 Cycles)  
Access #0  
Access #1  
...  
...  
...  
...  
...  
...  
...  
...  
...  
...  
...  
Bus cycle ->  
1
2
3
ECLK phase  
high  
low  
high  
low  
high  
low  
acc 1  
0000  
ivd 0  
z
ADDR[22:20] / ACC[2:0]  
acc 0  
000  
ADDR[19:16] / IQSTAT[3:0] ... addr 0  
ADDR[15:0] / IVD[15:0] ...  
iqstat-1  
addr 0  
iqstat 0  
addr 1  
?
z
z
1
x
z
z
1
DATA[15:0] (internal read) ...  
DATA[15:0] (external read) ...  
?
?
1
z
z
1
z
data 0  
1
z
R/W  
...  
1
Table 22-11. Read Access (n–1 Cycles)  
Access #0  
Access #1  
n
...  
...  
...  
...  
...  
...  
...  
...  
...  
...  
...  
...  
...  
...  
Bus cycle ->  
1
2
3
ECLK phase  
high  
low  
high  
low  
high  
low  
000  
0000  
x
high  
low  
ADDR[22:20] / ACC[2:0]  
acc 0  
000  
acc 1  
0000  
ivd 0  
z
ADDR[19:16] / IQSTAT[3:0] ... addr 0  
ADDR[15:0] / IVD[15:0] ...  
iqstat-1  
addr 0  
iqstat 0  
addr 0  
... addr 1  
...  
?
z
z
1
x
z
z
1
DATA[15:0] (internal read) ...  
DATA[15:0] (external read) ...  
?
?
1
z
z
1
z
z
1
z
...  
... data 0  
...  
z
z
z
R/W  
...  
1
1
1
MC9S12XDP512 Data Sheet, Rev. 2.11  
870  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 22 External Bus Interface (S12XEBIV2)  
22.4.2.2.2  
Write Access Timing  
Table 22-12. Write Access (1 Cycle)  
Access #0  
1
Access #1  
2
Access #2  
3
...  
...  
...  
...  
...  
...  
Bus cycle ->  
ECLK phase  
high  
low  
high  
low  
high  
low  
acc 2  
ADDR[22:20] / ACC[2:0]  
acc 0  
iqstat -1  
?
acc 1  
iqstat 0  
x
ADDR[19:16] / IQSTAT[3:0] ... addr 0  
addr 1  
addr 2  
iqstat 1 ...  
...  
data 2 ...  
ADDR[15:0] / IVD[15:0]  
DATA[15:0] (write)  
R/W  
...  
...  
...  
x
?
0
data 0  
data 1  
0
1
1
1
1
...  
Table 22-13. Write Access (2 Cycles)  
Access #0  
Access #1  
3
...  
...  
...  
...  
...  
...  
...  
...  
...  
...  
Bus cycle ->  
1
2
ECLK phase  
high  
low  
acc 0  
iqstat-1  
?
high  
low  
000  
high  
low  
ADDR[22:20] / ACC[2:0]  
acc 1  
ADDR[19:16] / IQSTAT[3:0] ... addr 0  
addr 0  
iqstat 0  
x
addr 1  
0000  
ADDR[15:0] / IVD[15:0]  
DATA[15:0] (write)  
R/W  
...  
...  
...  
x
x
1
?
0
data 0  
0
0
0
1
Table 22-14. Write Access (n–1 Cycles)  
Access #0  
Access #1  
n
...  
...  
...  
...  
...  
...  
...  
...  
...  
...  
...  
...  
...  
Bus cycle ->  
1
2
3
ECLK phase  
high  
low  
acc 0  
iqstat-1  
?
high  
low  
000  
high  
low  
000  
0000  
x
high  
low  
ADDR[22:20] / ACC[2:0]  
acc 1  
ADDR[19:16] / IQSTAT[3:0] ... addr 0  
addr 0  
iqstat 0  
x
addr 0  
... addr 1  
0000  
ADDR[15:0] / IVD[15:0]  
DATA[15:0] (write)  
R/W  
...  
...  
...  
...  
x
x
1
?
0
data 0  
0
0
0
0
0
...  
1
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
871  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 22 External Bus Interface (S12XEBIV2)  
22.4.2.2.3  
Read-Write-Read Access Timing  
Table 22-15. Interleaved Read-Write-Read Accesses (1 Cycle)  
Access #0  
1
Access #1  
2
Access #2  
3
...  
...  
...  
...  
...  
...  
...  
...  
...  
...  
...  
Bus cycle ->  
ECLK phase  
high  
low  
high  
low  
high  
low  
ADDR[22:20] / ACC[2:0]  
acc 0  
acc 1  
iqstat 0  
ivd 0  
acc 2  
ADDR[19:16] / IQSTAT[3:0] ...  
ADDR[15:0] / IVD[15:0] ...  
addr 0  
iqstat -1  
addr 1  
addr 2  
iqstat 1  
?
z
z
1
x
z
z
1
DATA[15:0] (internal read) ...  
DATA[15:0] (external read) ...  
?
?
1
z
data 0  
0
(write) data 1  
(write) data 1  
R/W  
...  
0
1
22.4.2.3 Internal Visibility Data  
Depending on the access size and alignment, either a word of read data is made visible on the address lines  
or only the related data byte will be presented in the ECLK low phase. For details refer to Table 22-16.  
Table 22-16. IVD Read Data Output  
Access  
IVD[15:8]  
IVD[7:0]  
Word read of data at an even and even+1 address  
Word read of data at an odd and odd+1 internal RAM address (misaligned)  
Byte read of data at an even address  
ivd(even)  
ivd(odd+1)  
ivd(even+1)  
ivd(odd)  
ivd(even)  
addr[7:0] (rep.)  
ivd(odd)  
Byte read of data at an odd address  
addr[15:8] (rep.)  
22.4.3 Accesses to Port Replacement Registers  
All read and write accesses to PRR addresses take two bus clock cycles independent of the operating mode.  
If writing to these addresses in emulation modes, the access is directed to both, the internal register and  
the external resource while reads will be treated external.  
The MC9S12XDP512 control registers also belong to this category.  
22.4.4 Stretched External Bus Accesses  
In order to allow fast internal bus cycles to coexist in a system with slower external resources, the  
MC9S12XDP512 supports stretched external bus accesses (wait states).  
This feature is available in normal expanded mode and emulation expanded mode for accesses to all  
external addresses except emulation memory and PRR. In these cases the fixed access times are 1 or 2  
cycles, respectively.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
872  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 22 External Bus Interface (S12XEBIV2)  
Stretched accesses are controlled by:  
1. EXSTR[2:0] bits in the EBICTL1 register configuring fixed amount of stretch cycles  
2. Activation of the external wait feature by EWAITE in EBICTL1 register  
3. Assertion of the external EWAIT signal when EWAITE = 1  
The EXSTR[2:0] control bits can be programmed for generation of a fixed number of 1 to 8 stretch cycles.  
If the external wait feature is enabled, the minimum number of additional stretch cycles is 2. An arbitrary  
amount of stretch cycles can be added using the EWAIT input.  
EWAIT needs to be asserted at least for a minimal specified time window within an external access cycle  
for the internal logic to detect it and add a cycle (refer to electrical characteristics). Holding it for additional  
cycles will cause the external bus access to be stretched accordingly.  
Write accesses are stretched by holding the initiator in its current state for additional cycles as programmed  
and controlled by external wait after the data have been driven out on the external bus. This results in an  
extension of time the bus signals and the related control signals are valid externally.  
Read data are not captured by the system in normal expanded mode until the specified setup time before  
the RE rising edge.  
Read data are not captured in emulation expanded mode until the specified setup time before the falling  
edge of ECLK.  
In emulation expanded mode, accesses to the internal flash or the emulation memory (determined by  
EROMON and ROMON bits; see S12X_MMC section for details) always take 1 cycle and stretching is  
not supported. In case the internal flash is taken out of the map in user applications, accesses are stretched  
as programmed and controlled by external wait.  
22.4.5 Data Select and Data Direction Signals  
The S12X_EBI supports byte and word accesses at any valid external address. The big endian system of  
the MCU is extended to the external bus; however, word accesses are restricted to even aligned addresses.  
The only exception is the visibility of misaligned word accesses to addresses in the internal RAM as this  
module exclusively supports these kind of accesses in a single cycle.  
With the above restriction, a fixed relationship is implied between the address parity and the dedicated bus  
halves where the data are accessed: DATA[15:8] is related to even addresses and DATA[7:0] is related to  
odd addresses.  
In expanded modes the data access type is externally determined by a set of control signals, i.e., data select  
and data direction signals, as described below. The data select signals are not available if using the external  
bus interface with an 8-bit data bus.  
22.4.5.1 Normal Expanded Mode  
In normal expanded mode, the external signals RE, WE, UDS, LDS indicate the access type (read/write),  
data size and alignment of an external bus access (Table 22-17).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
873  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 22 External Bus Interface (S12XEBIV2)  
Table 22-17. Access in Normal Expanded Mode  
DATA[15:8]  
DATA[7:0]  
Access  
RE WE UDS LDS  
I/O data(addr) I/O data(addr)  
Word write of data on DATA[15:0] at an even and even+1 address  
Byte write of data on DATA[7:0] at an odd address  
Byte write of data on DATA[15:8] at an even address  
Word read of data on DATA[15:0] at an even and even+1 address  
Byte read of data on DATA[7:0] at an odd address  
Byte read of data on DATA[15:8] at an even address  
Indicates No Access  
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
Out data(even) Out data(odd)  
In  
Out data(even) In  
In data(even) In data(odd)  
In In data(odd)  
In data(even) In  
x
Out data(odd)  
x
x
x
x
x
x
In  
In  
In  
x
x
x
In  
In  
In  
Unimplemented  
22.4.5.2 Emulation Modes and Special Test Mode  
In emulation modes and special test mode, the external signals LSTRB, R/W, and ADDR0 indicate the  
access type (read/write), data size and alignment of an external bus access. Misaligned accesses to the  
internal RAM and misaligned XGATE PRR accesses in emulation modes are the only type of access that  
are able to produce LSTRB = ADDR0 = 1. This is summarized in Table 22-18.  
Table 22-18. Access in Emulation Modes and Special Test Mode  
DATA[15:8]  
DATA[7:0]  
Access  
R/W LSTRB ADDR0  
I/O data(addr) I/O  
data(addr)  
Word write of data on DATA[15:0] at an even and even+1  
address  
0
0
0
Out data(even) Out  
data(odd)  
Byte write of data on DATA[7:0] at an odd address  
Byte write of data on DATA[15:8] at an even address  
0
0
0
0
1
1
1
0
1
In  
x
Out  
In  
data(odd)  
x
Out data(odd)  
Word write at an odd and odd+1 internal RAM address  
(misaligned — only in emulation modes)  
Out data(odd+1) Out  
data(odd)  
Word read of data on DATA[15:0] at an even and even+1  
address  
1
0
0
In  
data(even)  
In data(even+1)  
Byte read of data on DATA[7:0] at an odd address  
Byte read of data on DATA[15:8] at an even address  
1
1
1
0
1
1
1
0
1
In  
In  
x
In  
In  
data(odd)  
x
data(even)  
Word read at an odd and odd+1 internal RAM address  
(misaligned - only in emulation modes)  
In data(odd+1) In  
data(odd)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
874  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 22 External Bus Interface (S12XEBIV2)  
22.4.6 Low-Power Options  
The MC9S12XDP512 does not support any user-controlled options for reducing power consumption.  
22.4.6.1 Run Mode  
The MC9S12XDP512 does not support any options for reducing power in run mode.  
Power consumption is reduced in single-chip modes due to the absence of the external bus interface.  
Operation in expanded modes results in a higher power consumption, however any unnecessary toggling  
of external bus signals is reduced to the lowest indispensable activity by holding the previous states  
between external accesses.  
22.4.6.2 Wait Mode  
The MC9S12XDP512 does not support any options for reducing power in wait mode.  
22.4.6.3 Stop Mode  
The MC9S12XDP512 will cease to function in stop mode.  
22.5 Initialization/Application Information  
This section describes the external bus interface usage and timing. Typical customer operating modes are  
normal expanded mode and emulation modes, specifically to be used in emulator applications. Taking the  
availability of the external wait feature into account the use cases are divided into four scenarios:  
Normal expanded mode  
— External wait feature disabled  
– External wait feature enabled  
Emulation modes  
– Emulation single-chip mode (without wait states)  
– Emulation expanded mode (with optional access stretching)  
Normal single-chip mode and special single-chip mode do not have an external bus. Special test mode is  
used for factory test only. Therefore, these modes are omitted here.  
All timing diagrams referred to throughout this section are available in the Electrical Characteristics  
appendix of the SoC section.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
875  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 22 External Bus Interface (S12XEBIV2)  
22.5.1 Normal Expanded Mode  
This mode allows interfacing to external memories or peripherals which are available in the commercial  
market. In these applications the normal bus operation requires a minimum of 1 cycle stretch for each  
external access.  
22.5.1.1 Example 1a: External Wait Feature Disabled  
The first example of bus timing of an external read and write access with the external wait feature disabled  
is shown in  
Figure ‘Example 1a: Normal Expanded Mode — Read Followed by Write’  
The associated supply voltage dependent timing are numbers given in  
Table ‘Example 1a: Normal Expanded Mode Timing V  
Table ‘Example 1a: Normal Expanded Mode Timing V  
= 5.0 V (EWAITE = 0)’  
= 3.0 V (EWAITE = 0)’  
DD5  
DD5  
Systems designed this way rely on the internal programmable access stretching. These systems have  
predictable external memory access times. The additional stretch time can be programmed up to 8 cycles  
to provide longer access times.  
22.5.1.2 Example 1b: External Wait Feature Enabled  
The external wait operation is shown in this example. It can be used to exceed the amount of stretch cycles  
over the programmed number in EXSTR[2:0]. The feature must be enabled by writing EWAITE = 1.  
If the EWAIT signal is not asserted, the number of stretch cycles is forced to a minimum of 2 cycles. If  
EWAIT is asserted within the predefined time window during the access it will be strobed active and  
another stretch cycle is added. If strobed inactive, the next cycle will be the last cycle before the access is  
finished. EWAIT can be held asserted as long as desired to stretch the access.  
An access with 1 cycle stretch by EWAIT assertion is shown in  
Figure ‘Example 1b: Normal Expanded Mode — Stretched Read Access’  
Figure ‘Example 1b: Normal Expanded Mode — Stretched Write Access’  
The associated timing numbers for both operations are given in  
Table ‘Example 1b: Normal Expanded Mode Timing V  
Table ‘Example 1b: Normal Expanded Mode Timing V  
= 5.0 V (EWAITE = 1)’  
= 3.0 V (EWAITE = 1)’  
DD5  
DD5  
It is recommended to use the free-running clock (ECLK) at the fastest rate (bus clock rate) to synchronize  
the EWAIT input signal.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
876  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 22 External Bus Interface (S12XEBIV2)  
22.5.2 Emulation Modes  
In emulation mode applications, the development systems use a custom PRU device to rebuild the  
single-chip or expanded bus functions which are lost due to the use of the external bus with an emulator.  
Accesses to a set of registers controlling the related ports in normal modes (refer to SoC section) are  
directed to the external bus in emulation modes which are substituted by PRR as part of the PRU. Accesses  
to these registers take a constant time of 2 cycles.  
Depending on the setting of ROMON and EROMON (refer to S12X_MMC section), the program code  
can be executed from internal memory or an optional external emulation memory (EMULMEM). No wait  
state operation (stretching) of the external bus access is done in emulation modes when accessing internal  
memory or emulation memory addresses.  
In both modes observation of the internal operation is supported through the external bus (internal  
visibility).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
877  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 22 External Bus Interface (S12XEBIV2)  
22.5.2.1 Example 2a: Emulation Single-Chip Mode  
This mode is used for emulation systems in which the target application is operating in normal single-chip  
Figure 22-5 shows the PRU connection with the available external bus signals in an emulator application.  
S12X_EBI  
Emulator  
ADDR[22:0]/IVD[15:0]  
DATA[15:0]  
EMULMEM  
PRU  
PRR  
Ports  
LSTRB  
R/W  
ADDR[22:20]/ACC[2:0]  
ADDR[19:16]/  
IQSTAT[3:0]  
ECLK  
ECLKX2  
Figure 22-5. Application in Emulation Single-Chip Mode  
The timing diagram for this operation is shown in:  
Figure ‘Example 2a: Emulation Single-Chip Mode — Read Followed by Write’  
The associated timing numbers are given in:  
Table ‘Example 2a: Emulation Single-Chip Mode Timing (EWAITE = 0)’  
Timing considerations:  
Signals muxed with address lines ADDRx, i.e., IVDx, IQSTATx and ACCx, have the same timing.  
LSTRB has the same timing as R/W.  
ECLKX2 rising edges have the same timing as ECLK edges.  
The timing for accesses to PRU registers, which take 2 cycles to complete, is the same as the timing  
for an external non-PRR access with 1 cycle of stretch as shown in example 2b.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
878  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 22 External Bus Interface (S12XEBIV2)  
22.5.2.2 Example 2b: Emulation Expanded Mode  
This mode is used for emulation systems in which the target application is operating in normal expanded  
mode.  
If the external bus is used with a PRU, the external device rebuilds the data select and data direction signals  
UDS, LDS, RE, and WE from the ADDR0, LSTRB, and R/W signals.  
Figure 22-6 shows the PRU connection with the available external bus signals in an emulator application.  
S12X_EBI  
Emulator  
ADDR[22:0]/IVD[15:0]  
DATA[15:0]  
EMULMEM  
PRU  
PRR  
Ports  
UDS  
LDS  
RE  
LSTRB  
R/W  
WE  
ADDR[22:20]/ACC[2:0]  
ADDR[19:16]/  
IQSTAT[3:0]  
EWAIT  
ECLK  
ECLKX2  
CS[2:0]  
Figure 22-6. Application in Emulation Expanded Mode  
The timings of accesses with 1 stretch cycle are shown in  
Figure ‘Example 2b: Emulation Expanded Mode — Read with 1 Stretch Cycle’  
Figure ‘Example 2b: Emulation Expanded Mode — Write with 1 Stretch Cycle’  
The associated timing numbers are given in  
Table ‘Example 2b: Emulation Expanded Mode Timing V  
= 5.0 V (EWAITE = 0)’ (this also  
DD5  
includes examples for alternative settings of 2 and 3 additional stretch cycles)  
Timing considerations:  
If no stretch cycle is added, the timing is the same as in Emulation Single-Chip Mode.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
879  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 22 External Bus Interface (S12XEBIV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
880  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23  
Memory Mapping Control (S12XMMCV2)  
23.1 Introduction  
This section describes the functionality of the module mapping control (MMC) sub-block of the S12X  
platform. The block diagram of the MMC is shown in Figure 1-1.  
The MMC module controls the multi-master priority accesses, the selection of internal resources and  
external space. Internal buses including internal memories and peripherals are controlled in this module.  
The local address space for each master is translated to a global memory space.  
23.1.1 Features  
The main features of this block are:  
Paging capability to support a global 8 Mbytes memory address space  
Bus arbitration between the masters CPU, BDM, and XGATE  
1
Simultaneous accesses to different resources (internal, external, and peripherals) (see Figure 1-1)  
Resolution of target bus access collision  
Access restriction control from masters to some targets (e.g., RAM write access protection for user  
specified areas)  
MCU operation mode control  
MCU security control  
Separate memory map schemes for each master CPU, BDM, and XGATE  
ROM control bits to enable the on-chip FLASH or ROM selection  
Port replacement registers access control  
Generation of system reset when CPU accesses an unimplemented address (i.e., an address which  
does not belong to any of the on-chip modules) in single-chip modes  
23.1.2 Modes of Operation  
This subsection lists and briefly describes all operating modes supported by the MMC.  
23.1.2.1 Power Saving Modes  
Run mode  
MMC is functional during normal run mode.  
1. Resources are also called targets.  
Freescale Semiconductor  
MC9S12XDP512 Data Sheet, Rev. 2.11  
881  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Chapter 23 Memory Mapping Control (S12XMMCV2)  
Wait mode  
MMC is functional during wait mode.  
Stop mode  
MMC is inactive during stop mode.  
23.1.2.2 Functional Modes  
Single chip modes  
In normal and special single chip mode the internal memory is used. External bus is not active.  
Expanded modes  
Address, data, and control signals are activated in normal expanded and special test modes when  
accessing the external bus.  
Emulation modes  
External bus is active to emulate via an external tool the normal expanded or the normal single chip  
mode.  
23.1.3 Block Diagram  
Figure 1-1 shows a block diagram of the MMC.  
BDM  
CPU  
XGATE  
EBI  
MMC  
Address Decoder & Priority  
Target Bus Controller  
DBG  
EEPROM  
FLASH  
Peripherals  
RAM  
Figure 23-1. MMC Block Diagram  
23.2 External Signal Description  
The user is advised to refer to the SoC Guide for port configuration and location of external bus signals.  
Some pins may not be bonded out in all implementations.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
882  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 23 Memory Mapping Control (S12XMMCV2)  
Table 1-2 and Table 1-3 outline the pin names and functions. It also provides a brief description of their  
operation.  
Table 23-1. External Input Signals Associated with the MMC  
Signal  
I/O  
Description  
Availability  
MODC  
MODB  
I
I
I
I
I
Mode input  
Mode input  
Latched after  
RESET (active low)  
MODA  
Mode input  
EROMCTL  
ROMCTL  
EROM control input  
ROM control input  
Table 23-2. External Output Signals Associated with the MMC  
Available in Modes  
Signal  
I/O  
Description  
NS  
SS  
NX  
ES  
EX  
ST  
CS0  
CS1  
CS2  
CS3  
O
O
O
O
Chip select line 0  
Chip select line 1  
Chip select line 2  
Chip select line 3  
(see Table 1-4)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
883  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
23.3 Memory Map and Registers  
23.3.1 Module Memory Map  
A summary of the registers associated with the MMC block is shown in Figure 1-2. Detailed descriptions  
of the registers and bits are given in the subsections that follow.  
Register  
Name  
Address  
Bit 7  
6
5
4
3
CS3E  
0
2
CS2E  
0
1
CS1E  
0
Bit 0  
CS0E  
0
0x000A  
MMCCTL0  
R
0
0
0
0
W
0x000B  
0x0010  
0x0011  
0x0012  
0x0013  
0x0014  
0x0015  
0x0016  
0x0017  
0x0030  
0x0031  
MODE  
GPAGE  
R
0
MODC  
0
MODB  
GP6  
MODA  
GP5  
W
R
GP4  
GP3  
GP2  
GP1  
GP0  
W
DIRECT  
Reserved  
MMCCTL1  
Reserved  
Reserved  
RPAGE  
R
DP15  
0
DP14  
0
DP13  
0
DP12  
0
DP11  
0
DP10  
0
DP9  
0
DP8  
0
W
R
W
R
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
EROMON ROMHM  
ROMON  
0
W
R
0
0
0
0
W
R
0
W
R
RP7  
EP7  
RP6  
EP6  
RP5  
EP5  
RP4  
EP4  
RP3  
EP3  
RP2  
EP2  
RP1  
EP1  
RP0  
EP0  
W
EPAGE  
R
W
PPAGE  
R
PIX7  
0
PIX6  
0
PIX5  
0
PIX4  
0
PIX3  
0
PIX2  
0
PIX1  
0
PIX0  
0
W
Reserved  
R
W
= Unimplemented or Reserved  
Figure 23-2. MMC Register Summary  
MC9S12XDP512 Data Sheet, Rev. 2.11  
884  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 23 Memory Mapping Control (S12XMMCV2)  
Register  
Name  
Address  
Bit 7  
RPWE  
1
6
5
4
3
2
1
Bit 0  
0x011C  
RAMWPC  
RAMXGU  
RAMSHL  
RAMSHU  
R
0
0
0
0
0
AVIE  
AVIF  
W
0x011D  
0x011E  
0x011F  
R
XGU6  
SHL6  
SHU6  
XGU5  
SHL5  
SHU5  
XGU4  
SHL4  
SHU4  
XGU3  
SHL3  
SHU3  
XGU2  
SHL2  
SHU2  
XGU1  
SHL1  
SHU1  
XGU0  
SHL0  
SHU0  
W
R
1
1
W
R
W
= Unimplemented or Reserved  
Figure 23-2. MMC Register Summary  
23.3.2 Register Descriptions  
23.3.2.1 MMC Control Register (MMCCTL0)  
Address: 0x000A PRR  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
CS3E  
CS2E  
CS1E  
0
CS0E  
1
Reset  
0
0
0
0
0
0
ROMON  
1. ROMON is bit[0] of the register MMCTL1 (see Figure 1-10)  
= Unimplemented or Reserved  
Figure 23-3. MMC Control Register (MMCCTL0)  
Read: Anytime. In emulation modes read operations will return the data from the external bus. In all other  
modes the data is read from this register.  
Write: Anytime. In emulation modes write operations will also be directed to the external bus.  
Table 23-3. Chip Selects Function Activity  
Chip Modes  
Register Bit  
CS3E, CS2E, CS1E, CS0E  
NS  
SS  
NX  
ES  
EX  
ST  
1
2
Disabled  
Disabled  
Enabled  
Disabled  
Enabled  
Enabled  
1
2
Disabled: feature always inactive.  
Enabled: activity is controlled by the appropriate register bit value.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
885  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 23 Memory Mapping Control (S12XMMCV2)  
The MMCCTL0 register is used to control external bus functions, i.e., availability of chip selects.  
CAUTION  
XGATE write access to this register during an CPU access which makes use  
of this register could lead to unexpected results.  
Table 23-4. MMCCTL0 Field Descriptions  
Field  
Description  
3–0  
CS[3:0]E  
Chip Select Enables — Each of these bits enables one of the external chip selects CS3, CS2, CS1, and CS0  
outputs which are asserted during accesses to specific external addresses. The associated global address  
ranges are shown in Table 1-6 and Table 1-21 and Figure 1-23.  
Chip selects are only active if enabled in normal expanded mode, Emulation expanded mode and special test  
mode. The function disabled in all other operating modes.  
0 Chip select is disabled  
1 Chip select is enabled  
Table 23-5. Chip Select Signals  
Global Address Range  
Asserted Signal  
0x00_0800–0x0F_FFFF  
0x10_0000–0x1F_FFFF  
0x20_0000–0x3F_FFFF  
0x40_0000–0x7F_FFFF  
CS3  
CS2  
CS1  
1
CS0  
1
When the internal NVM is enabled (see ROMON in Section 1.3.2.5, “MMC Control  
Register (MMCCTL1)”) the CS0 is not asserted in the space occupied by this on-chip  
memory block.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
886  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
23.3.2.2 Mode Register (MODE)  
Address: 0x000B PRR  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
MODC  
MODB  
MODA  
1
1
1
Reset  
MODC  
MODB  
MODA  
0
0
0
0
0
1. External signal (see Table 1-2).  
= Unimplemented or Reserved  
Figure 23-4. Mode Register (MODE)  
Read: Anytime. In emulation modes read operations will return the data read from the external bus. In all  
other modes the data are read from this register.  
Write: Only if a transition is allowed (see Figure 1-5). In emulation modes write operations will be also  
directed to the external bus.  
The MODE bits of the MODE register are used to establish the MCU operating mode.  
CAUTION  
XGATE write access to this register during an CPU access which makes use  
of this register could lead to unexpected results.  
Table 23-6. MODE Field Descriptions  
Field  
Description  
7–5  
Mode Select Bits — These bits control the current operating mode during RESET high (inactive). The external  
mode pins MODC, MODB, and MODA determine the operating mode during RESET low (active). The state of  
the pins is latched into the respective register bits after the RESET signal goes inactive (see Figure 1-5).  
MODC,  
MODB,  
MODA  
Write restrictions exist to disallow transitions between certain modes. Figure 1-5 illustrates all allowed mode  
changes. Attempting non authorized transitions will not change the MODE bits, but it will block further writes to  
these register bits except in special modes.  
Both transitions from normal single-chip mode to normal expanded mode and from emulation single-chip to  
emulation expanded mode are only executed by writing a value of 0b101 (write once). Writing any other value  
will not change the MODE bits, but will block further writes to these register bits.  
Changes of operating modes are not allowed when the device is secured, but it will block further writes to these  
register bits except in special modes.  
In emulation modes reading this address returns data from the external bus which has to be driven by the  
emulator. It is therefore responsibility of the emulator hardware to provide the expected value (i.e. a value  
corresponding to normal single chip mode while the device is in emulation single-chip mode or a value  
corresponding to normal expanded mode while the device is in emulation expanded mode).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
887  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
RESET  
010  
Special  
Test  
(ST)  
010  
Normal  
Expanded  
(NX)  
Normal  
Single-Chip  
101  
100  
101  
RESET  
RESET  
(NS)  
100  
110  
111  
101  
Emulation  
Single-Chip  
(ES)  
Emulation  
Expanded  
(EX)  
001  
011  
101  
RESET  
RESET  
011  
001  
Special  
Single-Chip  
(SS)  
000  
000  
RESET  
Transition done by external pins (MODC, MODB, MODA)  
RESET  
Transition done by write access to the MODE register  
110  
111  
Illegal (MODC, MODB, MODA) pin values.  
Do not use. (Reserved for future use).  
Figure 23-5. Mode Transition Diagram when MCU is Unsecured  
MC9S12XDP512 Data Sheet, Rev. 2.11  
888  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
23.3.2.3 Global Page Index Register (GPAGE)  
Address: 0x0010  
7
6
5
4
3
2
1
0
R
W
0
GP6  
GP5  
GP4  
GP3  
GP2  
GP1  
GP0  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 23-6. Global Page Index Register (GPAGE)  
Read: Anytime  
Write: Anytime  
The global page index register is used only when the CPU is executing a global instruction (GLDAA,  
GLDAB, GLDD, GLDS, GLDX, GLDY,GSTAA, GSTAB, GSTD, GSTS, GSTX, GSTY) (see CPU Block  
Guide). The generated global address is the result of concatenation of the CPU local address [15:0] with  
the GPAGE register [22:16] (see Figure 1-7).  
CAUTION  
XGATE write access to this register during an CPU access which makes use  
of this register could lead to unexpected results.  
Global Address [22:0]  
Bit22  
Bit16 Bit15  
Bit 0  
GPAGE Register [6:0]  
CPU Address [15:0]  
Figure 23-7. GPAGE Address Mapping  
Table 23-7. GPAGE Field Descriptions  
Description  
Field  
6–0  
Global Page Index Bits 6–0 — These page index bits are used to select which of the 128 64-kilobyte pages is  
GP[6:0]  
to be accessed.  
Example 23-1. This example demonstrates usage of the GPAGE register  
LDAADR EQU $5000  
;Initialize LDADDR to the value of $5000  
MOVB  
GLDAA  
#$14, GPAGE  
>LDAADR  
;Initialize GPAGE register with the value of $14  
;Load Accu A from the global address $14_5000  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
889  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
23.3.2.4 Direct Page Register (DIRECT)  
Address: 0x0011  
7
6
5
4
3
2
1
0
R
W
DP15  
DP14  
DP13  
DP12  
DP11  
DP10  
DP9  
DP8  
Reset  
0
0
0
0
0
0
0
0
Figure 23-8. Direct Register (DIRECT)  
Read: Anytime  
Write: anytime in special modes, one time only in other modes.  
This register determines the position of the direct page within the memory map.  
Table 23-8. DIRECT Field Descriptions  
Field  
Description  
7–0  
Direct Page Index Bits 15–8 — These bits are used by the CPU when performing accesses using the direct  
DP[15:8]  
addressing mode. The bits from this register form bits [15:8] of the address (see Figure 1-9).  
CAUTION  
XGATE write access to this register during an CPU access which makes use  
of this register could lead to unexpected results.  
Global Address [22:0]  
Bit22  
Bit16 Bit15  
Bit0  
Bit8  
Bit7  
DP [15:8]  
CPU Address [15:0]  
Figure 23-9. DIRECT Address Mapping  
Bits [22:16] of the global address will be formed by the GPAGE[6:0] bits in case the CPU executes a global  
instruction in direct addressing mode or by the appropriate local address to the global address expansion  
(refer to Expansion of the CPU Local Address Map).  
Example 23-2. This example demonstrates usage of the Direct Addressing Mode by a global instruction  
LDAADR EQU $0000  
;Initialize LDADDR with the value of $0000  
;Initialize DIRECT register with the value of $80  
;Initialize GPAGE register with the value of $14  
;Load Accu A from the global address $14_8000  
MOVB  
MOVB  
GLDAA  
#$80,DIRECT  
#$14,GPAGE  
<LDAADR  
MC9S12XDP512 Data Sheet, Rev. 2.11  
890  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
23.3.2.5 MMC Control Register (MMCCTL1)  
Address: 0x0013 PRR  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
EROMON  
ROMHM  
ROMON  
Reset  
0
0
0
0
0
EROMCTL  
0
ROMCTL  
= Unimplemented or Reserved  
Figure 23-10. MMC Control Register (MMCCTL1)  
Read: Anytime. In emulation modes read operations will return the data from the external bus. In all other  
modes the data are read from this register.  
Write: Refer to each bit description. In emulation modes write operations will also be directed to the  
external bus.  
CAUTION  
XGATE write access to this register during an CPU access which makes use  
of this register could lead to unexpected results.  
Table 23-9. MMCCTL1 Field Descriptions  
Field  
Description  
2
Enables emulated Flash or ROM memory in the memory map  
EROMON Write: Never  
0 Disables the emulated Flash or ROM in the memory map.  
1 Enables the emulated Flash or ROM in the memory map.  
1
FLASH or ROM only in higher Half of Memory Map  
ROMHM  
Write: Once in normal and emulation modes and anytime in special modes  
0 The fixed page of Flash or ROM can be accessed in the lower half of the memory map. Accesses to  
$4000–$7FFF will be mapped to $7F_4000-$7F_7FFF in the global memory space.  
1 Disables access to the Flash or ROM in the lower half of the memory map.These physical locations of the  
Flash or ROM can still be accessed through the program page window. Accesses to $4000–$7FFF will be  
mapped to $14_4000-$14_7FFF in the global memory space (external access).  
0
Enable FLASH or ROM in the memory map  
ROMON  
Write: Once in normal and emulation modes and anytime in special modes  
0 Disables the Flash or ROM from the memory map.  
1 Enables the Flash or ROM in the memory map.  
EROMON and ROMON control the visibility of the Flash in the memory map for CPU or BDM (not for  
XGATE). Both local and global memory maps are affected.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
891  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
Table 23-10. Data Sources when CPU or BDM is Accessing Flash Area  
1
2
Chip Modes  
ROMON  
EROMON  
DATA SOURCE  
Stretch  
Normal Single Chip  
Special Single Chip  
Emulation Single Chip  
X
X
Internal  
N
X
X
0
1
0
1
1
0
1
0
1
Emulation Memory  
Internal Flash  
N
Normal Expanded  
X
X
X
0
External Application  
Internal Flash  
Y
N
Y
N
Emulation Expanded  
External Application  
Emulation Memory  
Internal Flash  
1
Special Test  
X
X
External Application  
Internal Flash  
N
1
2
Internal means resources inside the MCU are read/written.  
Internal Flash means Flash resources inside the MCU are read/written.  
Emulation memory means resources inside the emulator are read/written (PRU registers, flash  
replacement, RAM, EEPROM and register space are always considered internal).  
External application means resources residing outside the MCU are read/written.  
The external access stretch mechanism is part of the EBI module (refer to EBI Block Guide for details).  
23.3.2.6 RAM Page Index Register (RPAGE)  
Address: 0x0016  
7
6
5
4
3
2
1
0
R
W
RP7  
RP6  
RP5  
RP4  
RP3  
RP2  
RP1  
RP0  
Reset  
1
1
1
1
1
1
0
1
Figure 23-11. RAM Page Index Register (RPAGE)  
Read: Anytime  
Write: Anytime  
The RAM page index register allows accessing up to (1M minus 2K) bytes of RAM in the global memory  
map by using the eight page index bits to page 4 Kbyte blocks into the RAM page window located in the  
CPU local memory map from address $1000 to address $1FFF (see Figure 1-12).  
CAUTION  
XGATE write access to this register during an CPU access which makes use  
of this register could lead to unexpected results.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
892  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
Global Address [22:0]  
Bit19 Bit18  
Bit12  
Bit0  
Bit11  
0
0
0
Address [11:0]  
RPAGE Register [7:0]  
Address: CPU Local Address  
or BDM Local Address  
Figure 23-12. RPAGE Address Mapping  
NOTE  
Because RAM page 0 has the same global address as the register space, it is  
possible to write to registers through the RAM space when RPAGE = $00.  
Table 23-11. RPAGE Field Descriptions  
Description  
Field  
7–0  
RAM Page Index Bits 7–0 — These page index bits are used to select which of the 256 RAM array pages is to  
RP[7:0]  
be accessed in the RAM Page Window.  
The reset value of $FD ensures that there is a linear RAM space available between addresses $1000 and  
$3FFF out of reset.  
The fixed 4K page from $2000–$2FFF of RAM is equivalent to page 254 (page number $FE).  
The fixed 4K page from $3000–$3FFF of RAM is equivalent to page 255 (page number $FF).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
893  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
23.3.2.7 EEPROM Page Index Register (EPAGE)  
Address: 0x0017  
7
6
5
4
3
2
1
0
R
W
EP7  
EP6  
EP5  
EP4  
EP3  
EP2  
EP1  
EP0  
Reset  
1
1
1
1
1
1
1
0
Figure 23-13. EEPROM Page Index Register (EPAGE)  
Read: Anytime  
Write: Anytime  
The EEPROM page index register allows accessing up to 256 Kbyte of EEPROM in the global memory  
map by using the eight page index bits to page 1 Kbyte blocks into the EEPROM page window located in  
the local CPU memory map from address $0800 to address $0BFF (see Figure 1-14).  
CAUTION  
XGATE write access to this register during an CPU access which makes use  
of this register could lead to unexpected results.  
Global Address [22:0]  
Bit17 Bit16  
Bit10  
Bit0  
Bit9  
0
0
1
0
0
Address [9:0]  
EPAGE Register [7:0]  
Address: CPU Local Address  
or BDM Local Address  
Figure 23-14. EPAGE Address Mapping  
Table 23-12. EPAGE Field Descriptions  
Description  
Field  
7–0  
EEPROM Page Index Bits 7–0 — These page index bits are used to select which of the 256 EEPROM array  
EP[7:0]  
pages is to be accessed in the EEPROM Page Window.  
The reset value of $FE ensures that there is a linear EEPROM space available between addresses $0800  
and $0FFF out of reset.  
The fixed 1K page $0C00–$0FFF of EEPROM is equivalent to page 255 (page number $FF).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
894  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
23.3.2.8 Program Page Index Register (PPAGE)  
Address: 0x0030  
7
6
5
4
3
2
1
0
R
W
PIX7  
PIX6  
PIX5  
PIX4  
PIX3  
PIX2  
PIX1  
PIX0  
Reset  
1
1
1
1
1
1
1
0
Figure 23-15. Program Page Index Register (PPAGE)  
Read: Anytime  
Write: Anytime  
The program page index register allows accessing up to 4 Mbyte of FLASH or ROM in the global memory  
map by using the eight page index bits to page 16 Kbyte blocks into the program page window located in  
the CPU local memory map from address $8000 to address $BFFF (see Figure 1-16). The CPU has a  
special access to read and write this register during execution of CALL and RTC instructions.  
CAUTION  
XGATE write access to this register during an CPU access which makes use  
of this register could lead to unexpected results.  
Global Address [22:0]  
1
Bit21  
Bit0  
Bit14 Bit13  
PPAGE Register [7:0]  
Address [13:0]  
Address: CPU Local Address  
or BDM Local Address  
Figure 23-16. PPAGE Address Mapping  
NOTE  
Writes to this register using the special access of the CALL and RTC  
instructions will be complete before the end of the instruction execution.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
895  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
Table 23-13. PPAGE Field Descriptions  
Field  
Description  
7–0  
Program Page Index Bits 7–0 — These page index bits are used to select which of the 256 FLASH or ROM  
PIX[7:0]  
array pages is to be accessed in the Program Page Window.  
The fixed 16K page from $4000–$7FFF (when ROMHM = 0) is the page number $FD.  
The reset value of $FE ensures that there is linear Flash space available between addresses $4000 and  
$FFFF out of reset.  
The fixed 16K page from $C000-$FFFF is the page number $FF.  
23.3.2.9 RAM Write Protection Control Register (RAMWPC)  
Address: 0x011C  
7
6
5
4
3
2
1
0
R
W
0
0
0
0
0
RWPE  
AVIE  
AVIF  
Reset  
0
0
0
0
0
0
0
0
= Unimplemented or Reserved  
Figure 23-17. RAM Write Protection Control Register (RAMWPC)  
Read: Anytime  
Write: Anytime  
Table 23-14. RAMWPC Field Descriptions  
Description  
Field  
7
RAM Write Protection Enable — This bit enables the RAM write protection mechanism. When the RWPE bit  
is cleared, there is no write protection and any memory location is writable by the CPU module and the XGATE  
module. When the RWPE bit is set the write protection mechanism is enabled and write access of the CPU or  
to the XGATE RAM region. Write access performed by the XGATE module to outside of the XGATE RAM region  
or the shared region is suppressed as well in this case.  
RWPE  
0 RAM write protection check is disabled, region boundary registers can be written.  
1 RAM write protection check is enabled, region boundary registers cannot be written.  
1
AVIE  
CPU Access Violation Interrupt Enable — This bit enables the Access Violation Interrupt. If AVIE is set and  
AVIF is set, an interrupt is generated.  
0 CPU Access Violation Interrupt Disabled.  
1 CPU Access Violation Interrupt Enabled.  
0
AVIF  
CPU Access Violation Interrupt Flag — When set, this bit indicates that the CPU has tried to write a memory  
location inside the XGATE RAM region. This flag can be reset by writing’1’ to the AVIF bit location.  
0 No access violation by the CPU was detected.  
1 Access violation by the CPU was detected.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
896  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
23.3.2.10 RAM XGATE Upper Boundary Register (RAMXGU)  
Address: 0x011D  
7
6
5
4
3
2
1
0
R
W
1
1
XGU6  
XGU5  
XGU4  
XGU3  
XGU2  
XGU1  
XGU0  
Reset  
1
1
1
1
1
1
1
= Unimplemented or Reserved  
Figure 23-18. RAM XGATE Upper Boundary Register (RAMXGU)  
Read: Anytime  
Write: Anytime when RWPE = 0  
Table 23-15. RAMXGU Field Descriptions  
Field  
Description  
6–0  
XGU[6:0]  
XGATE Region Upper Boundary Bits 6-0 — These bits define the upper boundary of the RAM region allocated  
to the XGATE module in multiples of 256 bytes. The 256 byte block selected by this register is included in the  
region. See Figure 1-25 for details.  
23.3.2.11 RAM Shared Region Lower Boundary Register (RAMSHL)  
Address: 0x011E  
7
6
5
4
3
2
1
0
R
W
1
SHL6  
SHL5  
SHL4  
SHL3  
SHL2  
SHL1  
SHL0  
Reset  
1
1
1
1
1
1
1
1
= Unimplemented or Reserved  
Figure 23-19. RAM Shared Region Lower Boundary Register (RAMSHL)  
Read: Anytime  
Write: Anytime when RWPE = 0  
Table 23-16. RAMSHL Field Descriptions  
Field  
Description  
6–0  
SHL[6:0]  
RAM Shared Region Lower Boundary Bits 6–0 — These bits define the lower boundary of the shared memory  
region in multiples of 256 bytes. The block selected by this register is included in the region. See Figure 1-25 for  
details.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
897  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
23.3.2.12 RAM Shared Region Upper Boundary Register (RAMSHU)  
Address: 0x011F  
7
6
5
4
3
2
1
0
R
W
1
SHU6  
SHU5  
SHU4  
SHU3  
SHU2  
SHU1  
SHU0  
Reset  
1
1
1
1
1
1
1
1
= Unimplemented or Reserved  
Figure 23-20. RAM Shared Region Upper Boundary Register (RAMSHU)  
Read: Anytime  
Write: Anytime when RWPE = 0  
Table 23-17. RAMSHU Field Descriptions  
Field  
Description  
6–0  
SHU[6:0]  
RAM Shared Region Upper Boundary Bits 6–0 — These bits define the upper boundary of the shared  
memory in multiples of 256 bytes. The block selected by this register is included in the region. See Figure 1-25  
for details.  
23.4 Functional Description  
The MMC block performs several basic functions of the S12X sub-system operation: MCU operation  
modes, priority control, address mapping, select signal generation and access limitations for the system.  
Each aspect is described in the following subsections.  
23.4.1 MCU Operating Mode  
Normal single-chip mode  
There is no external bus in this mode. The MCU program is executed from the internal memory  
and no external accesses are allowed.  
Special single-chip mode  
This mode is generally used for debugging single-chip operation, boot-strapping or security related  
operations. The active background debug mode is in control of the CPU code execution and the  
BDM firmware is waiting for serial commands sent through the BKGD pin. There is no external  
bus in this mode.  
Emulation single-chip mode  
Tool vendors use this mode for emulation systems in which the user’s target application is normal  
single-chip mode. Code is executed from external or internal memory depending on the set-up of  
the EROMON bit (see Section 1.3.2.5, “MMC Control Register (MMCCTL1)). The external bus  
is active in both cases to allow observation of internal operations (internal visibility).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
898  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Chapter 23 Memory Mapping Control (S12XMMCV2)  
Normal expanded mode  
The external bus interface is configured as an up to 23-bit address bus, 8 or 16-bit data bus with  
dedicated bus control and status signals. This mode allows 8 or 16-bit external memory and  
peripheral devices to be interfaced to the system. The fastest external bus rate is half of the internal  
bus rate. An external signal can be used in this mode to cause the external bus to wait as desired by  
the external logic.  
Emulation expanded mode  
Tool vendors use this mode for emulation systems in which the user’s target application is normal  
expanded mode.  
Special test mode  
This mode is an expanded mode for factory test.  
23.4.2 Memory Map Scheme  
23.4.2.1 CPU and BDM Memory Map Scheme  
The BDM firmware lookup tables and BDM register memory locations share addresses with other  
modules; however they are not visible in the memory map during user’s code execution. The BDM  
memory resources are enabled only during the READ_BD and WRITE_BD access cycles to distinguish  
between accesses to the BDM memory area and accesses to the other modules. (Refer to BDM Block  
Guide for further details).  
When MCU enters active BDM mode the BDM firmware lookup tables and the BDM registers become  
visible in the local memory map between addresses $FF00 and $FFFF and the CPU begins execution of  
firmware commands or the BDM begins execution of hardware commands. The resources which share  
memory space with the BDM module will not be visible in the memory map during active BDM mode.  
Please note that after the MCU enters active BDM mode the BDM firmware lookup tables and the BDM  
registers will also be visible between addresses $BF00 and $BFFF if the PPAGE register contains value of  
$FF.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
899  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 23 Memory Mapping Control (S12XMMCV2)  
CPU or BDM  
Global Memory Map  
Local Memory Map  
$00_0000  
2K Registers  
2K RAM  
$00_0800  
$00_1000  
$0000  
RAM  
253*4K paged  
2K Registers  
$0800  
EEPROM  
EPAGE  
$0F_E000  
$10_0000  
1K window  
8K RAM  
$0C00  
1K EEPROM  
$1000  
RAM  
4K window  
EEPROM  
255*1K paged  
RPAGE  
$2000  
$13_FC00  
1K EEPROM  
8K RAM  
$14_0000  
$14_4000  
$4000  
ROMHM=1  
$14_8000  
$40_0000  
External  
Space  
Unpaged Flash  
No  
$8000  
Flash  
16K window  
PPAGE  
PPAGES  
253 * 16K  
$C000  
$FFFF  
Unpaged Flash  
Reset Vectors  
$7F_4000  
$7F_8000  
Unpaged  
or PPAGE $FD  
16K  
Unpaged  
16K  
or PPAGE $FE  
$7F_C000  
$7F_FFFF  
Unpaged  
16K  
or PPAGE $FF  
Figure 23-21. Expansion of the Local Address Map  
MC9S12XDP512 Data Sheet, Rev. 2.11  
900  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
23.4.2.1.1  
Expansion of the Local Address Map  
Expansion of the CPU Local Address Map  
The program page index register in MMC allows accessing up to 4 Mbyte of FLASH or ROM in the global  
memory map by using the eight page index bits to page 256 16 Kbyte blocks into the program page  
window located from address $8000 to address $BFFF in the local CPU memory map.  
The page value for the program page window is stored in the PPAGE register. The value of the PPAGE  
register can be read or written by normal memory accesses as well as by the CALL and RTC instructions  
(see Section 1.5.1, “CALL and RTC Instructions”).  
Control registers, vector space and parts of the on-chip memories are located in unpaged portions of the  
64-kilobyte local CPU address space.  
The starting address of an interrupt service routine must be located in unpaged memory unless the user is  
certain that the PPAGE register will be set to the appropriate value when the service routine is called.  
However an interrupt service routine can call other routines that are in paged memory. The upper  
16-kilobyte block of the local CPU memory space ($C000–$FFFF) is unpaged. It is recommended that all  
reset and interrupt vectors point to locations in this area or to the other upages sections of the local CPU  
memory map.  
Table 1-19 summarizes mapping of the address bus in Flash/External space based on the address, the  
PPAGE register value and value of the ROMHM bit in the MMCCTL1 register.  
Table 23-18. Global FLASH/ROM Allocated  
Local  
CPU Address  
External  
Access  
ROMHM  
Global Address  
$4000–$7FFF  
$8000–$BFFF  
$C000–$FFFF  
0
No  
$7F_4000 –$7F_7FFF  
$14_4000–$14_7FFF  
$40_0000–$7F_FFFF  
1
Yes  
1
N/A  
N/A  
N/A  
No  
1
Yes  
No  
$7F_C000–$7F_FFFF  
1
The internal or the external bus is accessed based on the size of the memory resources  
implemented on-chip. Please refer to Figure 1-23 for further details.  
The RAM page index register allows accessing up to 1 Mbyte –2 Kbytes of RAM in the global memory  
map by using the eight RPAGE index bits to page 4 Kbyte blocks into the RAM page window located in  
the local CPU memory space from address $1000 to address $1FFF. The EEPROM page index register  
EPAGE allows accessing up to 256 Kbytes of EEPROM in the system by using the eight EPAGE index  
bits to page 1 Kbyte blocks into the EEPROM page window located in the local CPU memory space from  
address $0800 to address $0BFF.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
901  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
Expansion of the BDM Local Address Map  
PPAGE, RPAGE, and EPAGE registers are also used for the expansion of the BDM local address to the  
global address. These registers can be read and written by the BDM.  
The BDM expansion scheme is the same as the CPU expansion scheme.  
23.4.2.2 Global Addresses Based on the Global Page  
CPU Global Addresses Based on the Global Page  
The seven global page index bits allow access to the full 8 Mbyte address map that can be accessed with  
23 address bits. This provides an alternative way to access all of the various pages of FLASH, RAM and  
EEPROM as well as additional external memory.  
The GPAGE Register is used only when the CPU is executing a global instruction (see Section 1.3.2.3,  
“Global Page Index Register (GPAGE)”). The generated global address is the result of concatenation of  
the CPU local address [15:0] with the GPAGE register [22:16] (see Figure 1-7).  
BDM Global Addresses Based on the Global Page  
The seven BDMGPR Global Page index bits allow access to the full 8 Mbyte address map that can be  
accessed with 23 address bits. This provides an alternative way to access all of the various pages of  
FLASH, RAM and EEPROM as well as additional external memory.  
The BDM global page index register (BDMGPR) is used only in the case the CPU is executing a firmware  
command which uses a global instruction (like GLDD, GSTD) or by a BDM hardware command (like  
WRITE_W, WRITE_BYTE, READ_W, READ_BYTE). See the BDM Block Guide for further details.  
The generated global address is a result of concatenation of the BDM local address with the BDMGPR  
register [22:16] in the case of a hardware command or concatenation of the CPU local address and the  
BDMGPR register [22:16] in the case of a firmware command (see Figure 1-22).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
902  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
BDM HARDWARE COMMAND  
Global Address [22:0]  
Bit16 Bit15  
Bit22  
Bit0  
BDMGPR Register [6:0]  
BDM Local Address  
BDM FIRMWARE COMMAND  
Global Address [22:0]  
Bit22  
Bit16 Bit15  
Bit0  
BDMGPR Register [6:0]  
CPU Local Address  
Figure 23-22. BDMGPR Address Mapping  
23.4.2.3 Implemented Memory Map  
The global memory spaces reserved for the internal resources (RAM, EEPROM, and FLASH) are not  
determined by the MMC module. Size of the individual internal resources are however fixed in the design  
of the device cannot be changed by the user. Please refer to the Device User Guide for further details.  
Figure 1-23 and Table 1-20 show the memory spaces occupied by the on-chip resources. Please note that  
the memory spaces have fixed top addresses.  
Table 23-19. Global Implemented Memory Space  
Internal Resource  
Bottom Address  
Top Address  
Registers  
RAM  
$00_0000  
$00_07FF  
$0F_FFFF  
$13_FFFF  
$7F_FFFF  
1
$10_0000 minus RAMSIZE  
2
EEPROM  
FLASH  
$14_0000 minus EEPROMSIZE  
3
$80_0000 minus FLASHSIZE  
1
2
3
RAMSIZE is the hexadecimal value of RAM SIZE in bytes  
EEPROMSIZE is the hexadecimal value of EEPROM SIZE in bytes  
FLASHSIZE is the hexadecimal value of FLASH SIZE in bytes  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
903  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
When the device is operating in expanded modes except emulation single-chip mode, accesses to the  
global addresses which are not occupied by the on-chip resources (unimplemented areas or external space)  
result in accesses to the external bus (see Figure 1-23).  
In emulation single-chip mode, accesses to the global addresses which are not occupied by the on-chip  
resources (unimplemented areas) result in accesses to the external bus. CPU accesses to the global  
addresses which are occupied by the external space result in an illegal access reset (system reset). The  
BDM accesses to the external space are performed but the data is undefined.  
In single-chip modes an access to any of the unimplemented areas (see Figure 1-23) by the CPU (except  
firmware commands) results in an illegal access reset (system reset). The BDM accesses to the  
unimplemented areas are performed but the data is undefined.  
Misaligned word accesses to the last location (Top address) of any of the on-chip resource blocks (except  
RAM) by the CPU is performed in expanded modes. In single-chip modes these accesses (except Flash)  
result in an illegal access reset (except firmware commands).  
Misaligned word accesses to the last location (top address) of the on-chip RAM by the CPU is ignored in  
expanded modes (read of undefined data). In single-chip modes these accesses result in an illegal access  
reset (except firmware commands).  
No misaligned word access from the BDM module will occur. These accesses are blocked in the BDM  
(Refer to BDM Block Guide).  
Misaligned word accesses to the last location of any global page (64 Kbyte) by using global instructions,  
is performed by accessing the last byte of the page and the first byte of the same page, considering the  
above mentioned misaligned access cases.  
The non internal resources (unimplemented areas or external space) are used to generate the chip selects  
(CS0,CS1,CS2 and CS3) (see Figure 1-23), which are only active in normal expanded mode, emulation  
expanded mode, and special test mode (see Section 1.3.2.1, “MMC Control Register (MMCCTL0)”).  
Table 1-21 shows the address boundaries of each chip select and the relationship with the implemented  
resources (internal) parameters.  
Table 23-20. Global Chip Selects Memory Space  
Chip Selects  
Bottom Address  
Top Address  
1
CS3  
CS2  
$00_0800  
$10_0000  
$14_0000  
$20_0000  
$40_0000  
$0F_FFFF minus RAMSIZE  
2
$13_FFFF minus EEPROMSIZE  
$1F_FFFF  
3
CS2  
CS1  
$3F_FFFF  
4
5
CS0  
$7F_FFFF minus FLASHSIZE  
1
2
3
External RPAGE accesses in (NX, EX and ST)  
External EPAGE accesses in (NX, EX and ST)  
When ROMHM is set (see ROMHM in Table 1-19) the CS2 is asserted in the space occupied by this on-chip  
memory block.  
4
5
When the internal NVM is enabled (see ROMON in Section 1.3.2.5, “MMC Control Register (MMCCTL1)”)  
the CS0 is not asserted in the space occupied by this on-chip memory block.  
External PPAGE accesses in (NX, EX and ST)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
904  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
CPU and BDM  
Global Memory Map  
Local Memory Map  
$00_0000  
$00_0800  
2K Registers  
Unimplemented  
RAM  
$0000  
2K Registers  
RAM  
$0800  
EEPROM  
1K window  
EPAGE  
RPAGE  
$0F_FFFF  
$0C00  
$1000  
1K EEPROM  
Unimplemented  
EEPROM  
RAM  
4K window  
$2000  
$4000  
$8000  
EEPROM  
$13_FFFF  
$1F_FFFF  
8K RAM  
External  
Space  
Unpaged Flash  
$40_0000  
Unimplemented  
FLASH  
Flash  
16K window  
PPAGE  
$C000  
$FFFF  
Unpaged Flash  
Reset Vectors  
FLASH  
$7F_FFFF  
Figure 23-23. Local to Implemented Global Address Mapping (Without GPAGE)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
905  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
23.4.2.4 XGATE Memory Map Scheme  
23.4.2.4.1  
Expansion of the XGATE Local Address Map  
The XGATE 64 Kbyte memory space allows access to internal resources only (Registers, RAM, and  
FLASH). The 2 Kilobyte register address range is the same register address range as for the CPU and the  
BDM module (see Table 1-22).  
XGATE can access the FLASH in single chip modes, even when the MCU is secured. In expanded modes,  
XGATE can not access the FLASH when MCU is secured.  
The local address of the XGATE RAM access is translated to the global RAM address range. The XGATE  
shares the RAM resource with the CPU and the BDM module (see Table 1-22).  
XGATE RAM size (XGRAMSIZE) could be lower or equal than the MCU RAM size (RAMSIZE).  
The local address of the XGATE FLASH access is translated to the global address as defined by  
Table 1-22.  
Table 23-21. XGATE Implemented Memory Space  
Internal Resource  
Bottom Address  
Top Address  
Registers  
RAM  
$00_0000  
$10_0000 minus XGRAMSIZE  
$80_0000 minus  
$00_07FF  
$0F_FFFF  
1
FLASH  
Bottom address plus $F800  
minus XGRAMSIZE minus $1  
2
3
FLASHSIZE plus $800  
1
2
3
XGRAMSIZE is the hexadecimal value of XGATE RAM SIZE in bytes.  
FLASHSIZE is the hexadecimal value of FLASH SIZE in bytes.  
$F800 is the hexadecimal value of the 64 Kilobytes minus 2 Kilobytes (Registers).  
Example 23-3.  
The MCU FLASHSIZE is 64 Kbytes ($10000) and MCU RAMSIZE is 32 Kbytes ($8000).  
The XGATE RAMSIZE is 16 Kbytes ($4000).  
The space occupied by the XGATE RAM in the global address space will be:  
Bottom address: ($10_0000 minus $4000) = $0F_C000  
Top address: $0F_FFFF  
XGATE accesses to local address range $0800–$BFFF will result in accesses to the following  
FLASH block in the global address space:  
Bottom address: ($80_0000 minus $01_0000 plus $800) = $7F_0800  
Top address: ($7F_0800 plus ($F800 minus $4000 minus $1)) = $7F_BFFF  
MC9S12XDP512 Data Sheet, Rev. 2.11  
906  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
XGATE  
Global Memory Map  
Local Memory Map  
$00_0000  
2K Registers  
$00_0800  
$0000  
2K Registers  
$0800  
RAM  
$0F_FFFF  
FLASH  
RAM  
$FFFF  
FLASH  
$7F_FFFF  
Figure 23-24. Local to Global Address Mapping (XGATE)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
907  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
23.4.3 Chip Access Restrictions  
23.4.3.1 Illegal XGATE Accesses  
A possible access error is flagged by the MMC and signalled to XGATE under the following conditions:  
XGATE performs misaligned word (in case of load-store or opcode or vector fetch accesses).  
XGATE accesses the register space (in case of opcode or vector fetch).  
XGATE performs a write to Flash in any modes (in case of load-store access).  
XGATE performs an access to a secured Flash in expanded modes (in case of load-store or opcode  
or vector fetch accesses).  
XGATE performs a write to non-XGATE region in RAM (RAM protection mechanism) (in case  
of load-store access).  
For further details refer to the XGATE Block Guide.  
23.4.3.2 Illegal CPU Accesses  
After programming the protection mechanism registers (see Figure 1-17, Figure 1-18, Figure 1-19, and  
Figure 1-20) and setting the RWPE bit (see Figure 1-17) there are 3 regions recognized by the MMC  
module:  
1. XGATE RAM region  
2. CPU RAM region  
3. Shared Region (XGATE AND CPU)  
If the RWPE bit is set the CPU write accesses into the XGATE RAM region are blocked. If the CPU tries  
to write the XGATE RAM region the AVIF bit is set and an interrupt is generated if enabled. Furthermore  
if the XGATE tries to write to outside of the XGATE RAM or shared regions and the RWPE bit is set, the  
write access is suppressed and the access error will be flagged to the XGATE module (see Section 1.4.3.1,  
“Illegal XGATE Accesses” and the XGATE Block Guide).  
The bottom address of the XGATE RAM region always starts at the lowest implemented RAM address.  
The values stored in the boundary registers define the boundary addresses in 256 byte steps. The 256 byte  
block selected by any of the registers is always included in the respective region. For example setting the  
shared region lower boundary register (RAMSHL) to $C1 and the shared region upper boundary register  
(RAMSHU) to $E0 defines the shared region from address $0F_C100 to address $0F_E0FF in the global  
memory space (see Figure 1-25).  
The interrupt requests generated by the MMC are listed in Table 1-23. Refer to the Device User Guide for  
the related interrupt vector address and interrupt priority.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
908  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 23 Memory Mapping Control (S12XMMCV2)  
The following conditions must be satisfied to ensure correct operation of the RAM protection mechanism:  
Value stored in RAMXGU must be lower than the value stored in RAMSHL.  
Value stored RAMSHL must be lower or equal than the value stored in RAMSHU.  
Table 23-22. RAM Write Protection Interrupt Vectors  
Interrupt Source  
CCR Mask  
Local Enable  
CPU access violation  
I Bit  
AVIE in RAMWPC  
$00_0000  
$00_0800  
2K Registers  
Unimplemented  
XGATE RAM  
Region  
Only XGATE is allowed to write  
Only CPU is allowed to write  
$0F_RAMXGU_FF  
$0F_RAMSHL_00  
$0F_RAMSHU_FF  
Shared Region  
CPU and XGATE are allowed to write  
Only CPU is allowed to write  
$0F_FFFF  
Figure 23-25. RAM Write Protection Scheme  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
909  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
23.4.4 Chip Bus Control  
The MMC controls the address buses and the data buses that interface the S12X masters (CPU, BDM and  
XGATE) with the rest of the system (master buses). In addition the MMC handles all CPU read data bus  
swapping operations. All internal and external resources are connected to specific target buses (see  
Figure 1-26).  
BDM  
CPU  
XGATE  
XGATE  
S12X  
S12X  
MMC  
XBus2  
XRAM  
XBus1  
BDM  
ROM/REG  
EBI  
RAM  
XBus0  
P3  
P2  
P1  
IPBI  
P0  
XEEPROM  
XFLASH  
IO  
2 Kbyte Registers  
Figure 23-26. S12X Architecture  
23.4.4.1 Master Bus Prioritization  
The following rules apply when prioritizing accesses over master buses:  
The CPU has priority over the BDM, unless the BDM access is stalled for more than 128 cycles.  
In the later case the CPU will be stalled after finishing the current operation and the BDM will gain  
access to the bus.  
XGATE access to PRU registers constitutes a special case. It is always granted and stalls the CPU  
and BDM for its duration.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
910  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 23 Memory Mapping Control (S12XMMCV2)  
23.4.4.2 Access Conflicts on Target Buses  
The arbitration scheme allows only one master to be connected to a target at any given time. The following  
rules apply when prioritizing accesses from different masters to the same target bus:  
CPU always has priority over XGATE.  
BDM access has priority over XGATE.  
XGATE access to PRU registers constitutes a special case. It is always granted and stalls the CPU  
and BDM for its duration.  
In emulation modes all internal accesses are visible on the external bus as well.  
During access to the PRU registers, the external bus is reserved.  
23.4.5 Interrupts  
23.4.5.1 Outgoing Interrupt Requests  
The following interrupt requests can be triggered by the MMC module:  
CPU access violation: The CPU access violation signals to the CPU detection of an error condition in the  
CPU application code which is resulted in write access to the protected XGATE RAM area (see  
Section 1.4.3.2, “Illegal CPU Accesses).  
23.5 Initialization/Application Information  
23.5.1 CALL and RTC Instructions  
CALL and RTC instructions are uninterruptable CPU instructions that automate page switching in the  
program page window. The CALL instruction is similar to the JSR instruction, but the subroutine that is  
called can be located anywhere in the local address space or in any Flash or ROM page visible through the  
program page window. The CALL instruction calculates and stacks a return address, stacks the current  
PPAGE value and writes a new instruction-supplied value to the PPAGE register. The PPAGE value  
controls which of the 256 possible pages is visible through the 16 Kbyte program page window in the  
64 Kbyte local CPU memory map. Execution then begins at the address of the called subroutine.  
During the execution of the CALL instruction, the CPU performs the following steps:  
1. Writes the current PPAGE value into an internal temporary register and writes the new  
instruction-supplied PPAGE value into the PPAGE register  
2. Calculates the address of the next instruction after the CALL instruction (the return address) and  
pushes this 16-bit value onto the stack  
3. Pushes the temporarily stored PPAGE value onto the stack  
4. Calculates the effective address of the subroutine, refills the queue and begins execution at the new  
address  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
911  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Chapter 23 Memory Mapping Control (S12XMMCV2)  
This sequence is uninterruptable. There is no need to inhibit interrupts during the CALL instruction  
execution. A CALL instruction can be performed from any address to any other address in the local CPU  
memory space.  
The PPAGE value supplied by the instruction is part of the effective address of the CPU. For all addressing  
mode variations (except indexed-indirect modes) the new page value is provided by an immediate operand  
in the instruction. In indexed-indirect variations of the CALL instruction a pointer specifies memory  
locations where the new page value and the address of the called subroutine are stored. Using indirect  
addressing for both the new page value and the address within the page allows usage of values calculated  
at run time rather than immediate values that must be known at the time of assembly.  
The RTC instruction terminates subroutines invoked by a CALL instruction. The RTC instruction unstacks  
the PPAGE value and the return address and refills the queue. Execution resumes with the next instruction  
after the CALL instruction.  
During the execution of an RTC instruction the CPU performs the following steps:  
1. Pulls the previously stored PPAGE value from the stack  
2. Pulls the 16-bit return address from the stack and loads it into the PC  
3. Writes the PPAGE value into the PPAGE register  
4. Refills the queue and resumes execution at the return address  
This sequence is uninterruptable. The RTC can be executed from anywhere in the local CPU memory  
space.  
The CALL and RTC instructions behave like JSR and RTS instruction, they however require more  
execution cycles. Usage of JSR/RTS instructions is therefore recommended when possible and  
CALL/RTC instructions should only be used when needed. The JSR and RTS instructions can be used to  
access subroutines that are already present in the local CPU memory map (i.e. in the same page in the  
program memory page window for example). However calling a function located in a different page  
requires usage of the CALL instruction. The function must be terminated by the RTC instruction. Because  
the RTC instruction restores contents of the PPAGE register from the stack, functions terminated with the  
RTC instruction must be called using the CALL instruction even when the correct page is already present  
in the memory map. This is to make sure that the correct PPAGE value will be present on stack at the time  
of the RTC instruction execution.  
23.5.2 Port Replacement Registers (PRRs)  
Registers used for emulation purposes must be rebuilt by the in-circuit emulator hardware to achieve full  
emulation of single chip mode operation. These registers are called port replacement registers (PRRs) (see  
Table 1-25). PRRs are accessible from all masters using different access types (word aligned,  
word-misaligned and byte). Each access to PRRs will be extended to 2 bus cycles for write or read accesses  
independent of the operating mode. In emulation modes all write operations result in writing into the  
internal registers (peripheral access) and into the emulated registers (external access) located in the PRU  
in the emulator at the same time. All read operations are performed from external registers (external  
access) in emulation modes. In all other modes the read operations are performed from the internal  
registers (peripheral access).  
MC9S12XDP512 Data Sheet, Rev. 2.11  
912  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 23 Memory Mapping Control (S12XMMCV2)  
Due to internal visibility of CPU accesses the CPU will be halted during XGATE or BDM access to any  
PRR. This rule applies also in normal modes to ensure that operation of the device is the same as in  
emulation modes.  
A summary of PRR accesses is the following:  
An aligned word access to a PRR will take 2 bus cycles.  
A misaligned word access to a PRRs will take 4 cycles. If one of the two bytes accessed by the  
misaligned word access is not a PRR, the access will take only 3 cycles.  
A byte access to a PRR will take 2 cycles.  
Table 23-23. PRR Listing  
PRR Name  
PRR Local Address  
PRR Location  
PORTA  
PORTB  
DDRA  
$0000  
$0001  
$0002  
$0003  
$0004  
$0005  
$0006  
$0007  
$0008  
$0009  
$000A  
$000B  
$000C  
$000D  
$000E  
$000F  
$0012  
$0013  
$001C  
$001D  
$0032  
$0033  
PIM  
PIM  
PIM  
PIM  
PIM  
PIM  
PIM  
PIM  
PIM  
PIM  
MMC  
MMC  
PIM  
PIM  
EBI  
DDRB  
PORTC  
PORTD  
DDRC  
DDRD  
PORTE  
DDRE  
MMCCTL0  
MODE  
PUCR  
RDRIV  
EBICTL0  
EBICTL1  
Reserved  
MMCCTL1  
ECLKCTL  
Reserved  
PORTK  
DDRK  
EBI  
MMC  
MMC  
PIM  
PIM  
PIM  
PIM  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
913  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
23.5.3 On-Chip ROM Control  
The MCU offers two modes to support emulation. In the first mode (called generator) the emulator  
provides the data instead of the internal FLASH and traces the CPU actions. In the other mode (called  
observer) the internal FLASH provides the data and all internal actions are made visible to the emulator.  
23.5.3.1 ROM Control in Single-Chip Modes  
In single-chip modes the MCU has no external bus. All memory accesses and program fetches are internal  
(see Figure 1-27).  
MCU  
No External Bus  
Flash  
Figure 23-27. ROM in Single Chip Modes  
23.5.3.2 ROM Control in Emulation Single-Chip Mode  
In emulation single-chip mode the external bus is connected to the emulator. If the EROMON bit is set,  
the internal FLASH provides the data and the emulator can observe all internal CPU actions on the external  
bus. If the EROMON bit is cleared, the emulator provides the data (generator) and traces the all CPU  
actions (see Figure 1-28).  
Observer  
MCU  
Emulator  
Flash  
EROMON = 1  
Generator  
MCU  
Emulator  
Flash  
EROMON = 0  
Figure 23-28. ROM in Emulation Single-Chip Mode  
MC9S12XDP512 Data Sheet, Rev. 2.11  
914  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Chapter 23 Memory Mapping Control (S12XMMCV2)  
23.5.3.3 ROM Control in Normal Expanded Mode  
In normal expanded mode the external bus will be connected to the application. If the ROMON bit is set,  
the internal FLASH provides the data. If the ROMON bit is cleared, the application memory provides the  
data (see Figure 1-29).  
MCU  
Application  
Flash  
Memory  
ROMON = 1  
MCU  
Application  
Memory  
ROMON = 0  
Figure 23-29. ROM in Normal Expanded Mode  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
915  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
23.5.3.4 ROM Control in Emulation Expanded Mode  
In emulation expanded mode the external bus will be connected to the emulator and to the application. If  
the ROMON bit is set, the internal FLASH provides the data. If the EROMON bit is set as well the  
emulator observes all CPU internal actions, otherwise the emulator provides the data and traces all CPU  
actions (see Figure 1-30). When the ROMON bit is cleared, the application memory provides the data and  
the emulator will observe the CPU internal actions (see Figure 1-31).  
Observer  
MCU  
Emulator  
Flash  
Application  
Memory  
EROMON = 1  
Generator  
MCU  
Emulator  
Flash  
Application  
Memory  
EROMON = 0  
Figure 23-30. ROMON = 1 in Emulation Expanded Mode  
MC9S12XDP512 Data Sheet, Rev. 2.11  
916  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
Observer  
MCU  
Emulator  
Application  
Memory  
Figure 23-31. ROMON = 0 in Emulation Expanded Mode  
23.5.3.5 ROM Control in Special Test Mode  
In special test mode the external bus is connected to the application. If the ROMON bit is set, the internal  
FLASH provides the data, otherwise the application memory provides the data (see Figure 1-32).  
Application  
MCU  
Memory  
ROMON = 0  
Application  
MCU  
Memory  
Flash  
ROMON = 1  
Figure 23-32. ROM in Special Test Mode  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
917  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 23 Memory Mapping Control (S12XMMCV2)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
918  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix A Electrical Characteristics  
Appendix A  
Electrical Characteristics  
A.1  
General  
NOTE  
The electrical characteristics given in this section should be used as a guide  
only. Values cannot be guaranteed by Freescale and are subject to change  
without notice.  
This supplement contains the most accurate electrical information for the MC9S12XDP512  
microcontroller available at the time of publication.  
This introduction is intended to give an overview on several common topics like power supply, current  
injection etc.  
A.1.1  
Parameter Classification  
The electrical parameters shown in this supplement are guaranteed by various methods. To give the  
customer a better understanding the following classification is used and the parameters are tagged  
accordingly in the tables where appropriate.  
NOTE  
This classification is shown in the column labeled “C” in the parameter  
tables where appropriate.  
P:  
Those parameters are guaranteed during production testing on each individual device.  
C:  
Those parameters are achieved by the design characterization by measuring a statistically relevant  
sample size across process variations.  
T:  
Those parameters are achieved by design characterization on a small sample size from typical  
devices under typical conditions unless otherwise noted. All values shown in the typical column  
are within this category.  
D:  
Those parameters are derived mainly from simulations.  
A.1.2  
Power Supply  
The MC9S12XDP512 utilizes several pins to supply power to the I/O ports, A/D converter, oscillator, and  
PLL as well as the digital core.  
The V  
The V  
, V  
pair supplies the A/D converter and parts of the internal voltage regulator.  
SSA  
DDA  
, V , V  
, and V  
pairs supply the I/O pins, V  
supplies also the internal voltage  
DDX  
SSX  
DDR  
SSR  
DDR  
regulator.  
V
, V , V  
, and V  
are the supply pins for the digital logic, V  
, V  
supply the  
SSPLL  
DD1  
SS1  
DD2  
SS2  
DDPLL  
oscillator and the PLL.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
919  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Appendix A Electrical Characteristics  
V
V
and V  
are internally connected by metal.  
SS1  
SS2  
, V  
, V  
as well as V , V , V  
are connected by anti-parallel diodes for ESD  
SSR  
DDA  
DDX  
DDR  
SSA  
SSX  
protection.  
NOTE  
is used for either V  
In the following context V  
, V  
, and V  
;
DDX  
DD35  
DDA  
DDR  
V
is used for either V , V  
and V  
unless otherwise noted.  
SS35  
SSA  
SSR  
SSX  
I
V
denotes the sum of the currents flowing into the V  
pins.  
, V  
and  
DDX  
DD35  
DDA  
DDR  
V
V
is used for V  
, V  
and V  
, V is used for V , V  
and  
DD  
DD1  
DD2  
DDPLL  
SS  
SS1  
SS2  
.
SSPLL  
I
is used for the sum of the currents flowing into V  
and V  
.
DD  
DD1  
DD2  
A.1.3  
Pins  
There are four groups of functional pins.  
A.1.3.1  
I/O Pins  
Those I/O pins have a nominal level in the range of 3.15 V to 5.5 V. This class of pins is comprised of all  
port I/O pins, the analog inputs, BKGD and the RESET pins.The internal structure of all those pins is  
identical; however, some of the functionality may be disabled. For example, for the analog inputs the  
output drivers, pull-up and pull-down resistors are disabled permanently.  
A.1.3.2  
Analog Reference  
This group is made up by the V and V pins.  
RH  
RL  
A.1.3.3  
Oscillator  
The pins XFC, EXTAL, XTAL dedicated to the oscillator have a nominal 2.5 V level. They are supplied  
by V  
.
DDPLL  
A.1.3.4  
TEST  
This pin is used for production testing only.  
A.1.3.5  
V
REGEN  
This pin is used to enable the on-chip voltage regulator.  
A.1.4  
Current Injection  
Power supply must maintain regulation within operating V  
or V range during instantaneous and  
DD  
DD35  
operating maximum current conditions. If positive injection current (V > V  
) is greater than I  
,
in  
DD35  
DD35  
MC9S12XDP512 Data Sheet, Rev. 2.11  
920  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Appendix A Electrical Characteristics  
the injection current may flow out of V  
and could result in external power supply going out of  
DD35  
regulation. Ensure external V  
load will shunt current greater than maximum injection current. This  
DD35  
will be the greatest risk when the MCU is not consuming power; e.g., if no system clock is present, or if  
clock rate is very low which would reduce overall power consumption.  
A.1.5  
Absolute Maximum Ratings  
Absolute maximum ratings are stress ratings only. A functional operation under or outside those maxima  
is not guaranteed. Stress beyond those limits may affect the reliability or cause permanent damage of the  
device.  
This device contains circuitry protecting against damage due to high static voltage or electrical fields;  
however, it is advised that normal precautions be taken to avoid application of any voltages higher than  
maximum-rated voltages to this high-impedance circuit. Reliability of operation is enhanced if unused  
inputs are tied to an appropriate logic voltage level (e.g., either V  
or V  
).  
SS35  
DD35  
1
Table A-1. Absolute Maximum Ratings  
Num  
Rating  
Symbol  
Min  
Max  
Unit  
1
2
I/O, regulator and analog supply voltage  
V
–0.3  
–0.3  
–0.3  
–0.3  
–0.3  
–0.3  
–0.3  
–0.3  
–0.3  
–25  
6.0  
3.0  
3.0  
0.3  
0.3  
6.0  
6.0  
3.0  
10.0  
+25  
V
V
DD35  
2
Digital logic supply voltage  
V
DD  
2
3
PLL supply voltage  
V
V
DDPLL  
4
Voltage difference V  
Voltage difference V  
to V  
to V  
and V  
and V  
VDDX  
V
DDX  
SSX  
DDR  
DDA  
5
V
SSR  
SSA  
VSSX  
6
Digital I/O input voltage  
Analog reference  
V
V
IN  
7
V
V
V
RH, RL  
8
XFC, EXTAL, XTAL inputs  
TEST input  
V
V
ILV  
9
V
V
TEST  
10  
Instantaneous maximum current  
I
mA  
D
3
Single pin limit for all digital I/O pins  
11  
12  
13  
Instantaneous maximum current  
I
–25  
–0.25  
–65  
+25  
0
mA  
mA  
°C  
DL  
4
Single pin limit for XFC, EXTAL, XTAL  
Instantaneous maximum current  
I
DT  
5
Single pin limit for TEST  
Storage temperature range  
T
155  
stg  
1
2
Beyond absolute maximum ratings device might be damaged.  
The device contains an internal voltage regulator to generate the logic and PLL supply out of the I/O supply. The absolute  
maximum ratings apply when the device is powered from an external source.  
3
4
5
All digital I/O pins are internally clamped to V  
and V  
, V  
and V  
or V  
and V  
.
SSX  
DDX  
SSR  
DDR  
SSA  
DDA  
Those pins are internally clamped to V  
and V  
.
DDPLL  
SSPLL  
This pin is clamped low to V  
, but not clamped high. This pin must be tied low in applications.  
SSPLL  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
921  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix A Electrical Characteristics  
A.1.6  
ESD Protection and Latch-up Immunity  
All ESD testing is in conformity with CDF-AEC-Q100 stress test qualification for automotive grade  
integrated circuits. During the device qualification ESD stresses were performed for the Human Body  
Model (HBM) and the Charge Device Model.  
A device will be defined as a failure if after exposure to ESD pulses the device no longer meets the device  
specification. Complete DC parametric and functional testing is performed per the applicable device  
specification at room temperature followed by hot temperature, unless specified otherwise in the device  
specification.  
Table A-2. ESD and Latch-up Test Conditions  
Model  
Description  
Symbol  
Value  
Unit  
Human Body  
Series resistance  
R1  
C
1500  
100  
Ohm  
pF  
Storage capacitance  
Number of pulse per pin  
Positive  
3
3
Negative  
Latch-up  
Minimum input voltage limit  
Maximum input voltage limit  
–2.5  
7.5  
V
V
Table A-3. ESD and Latch-Up Protection Characteristics  
Num  
C
Rating  
Human Body Model (HBM)  
Symbol  
Min  
Max  
Unit  
1
2
3
C
C
C
V
V
I
2000  
500  
V
V
HBM  
CDM  
LAT  
Charge Device Model (CDM)  
Latch-up current at T = 125°C  
mA  
A
Positive  
Negative  
+100  
–100  
4
C
Latch-up current at T = 27°C  
I
mA  
A
LAT  
Positive  
+200  
–200  
Negative  
MC9S12XDP512 Data Sheet, Rev. 2.11  
922  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix A Electrical Characteristics  
A.1.7  
Operating Conditions  
This section describes the operating conditions of the device. Unless otherwise noted those conditions  
apply to all the following data.  
NOTE  
the ambient temperature T and the junction temperature T . For power  
A
J
dissipation calculations refer to Section A.1.8, “Power Dissipation and  
Thermal Characteristics”.  
Table A-4. Operating Conditions  
Rating  
Symbol  
Min  
Typ  
Max  
Unit  
I/O, regulator and analog supply voltage  
V
3.15  
2.35  
2.35  
–0.1  
–0.1  
0.5  
5
2.5  
2.5  
0
5.5  
2.75  
2.75  
0.1  
0.1  
16  
V
V
DD35  
1
Digital logic supply voltage  
V
DD  
2
PLL supply voltage  
V
V
DDPLL  
Voltage difference V  
Voltage difference V  
Oscillator  
to V  
to V  
and V  
and V  
VDDX  
V
DDX  
DDR  
DDA  
0
V
SSX  
SSR  
SSA  
VSSX  
f
MHz  
MHz  
°C  
osc  
Bus frequency  
f
0.5  
40  
bus  
MC9S12XDP512C  
Operating junction temperature range  
Operating ambient temperature range  
T
–40  
–40  
27  
100  
85  
J
2
2
2
T
A
MC9S12XDP512V  
°C  
°C  
Operating junction temperature range  
Operating ambient temperature range  
T
–40  
–40  
27  
120  
105  
J
T
A
MC9S12XDP512M  
Operating junction temperature range  
Operating ambient temperature range  
T
–40  
–40  
27  
140  
125  
J
T
A
1
2
maximum ratings apply when this regulator is disabled and the device is powered from an external source.  
Please refer to Section A.1.8, “Power Dissipation and Thermal Characteristics” for more details about the relation between  
ambient temperature T and device junction temperature T .  
A
J
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
923  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix A Electrical Characteristics  
A.1.8  
Power Dissipation and Thermal Characteristics  
Power dissipation and thermal characteristics are closely related. The user must assure that the maximum  
operating junction temperature is not exceeded. The average chip-junction temperature (T ) in °C can be  
J
obtained from:  
T
= T + (P • Θ  
)
J
A
D
JA  
T
T
P
= Junction Temperature, [°C]  
= Ambient Temperature, [°C]  
= Total Chip Power Dissipation, [W]  
J
A
D
Θ
= Package Thermal Resistance, [°C/W]  
JA  
The total power dissipation can be calculated from:  
P
= P  
+ P  
D
INT  
IO  
P
= Chip Internal Power Dissipation, [W]  
INT  
Two cases with internal voltage regulator enabled and disabled must be considered:  
1. Internal voltage regulator disabled  
P
= I  
V  
+ I  
V  
+ I  
V  
INT  
DD DD DDPLL DDPLL DDA DDA  
2
P
=
R
I  
DSON IO  
IO  
i
i
P
is the sum of all output currents on I/O ports associated with V  
and V  
.
IO  
DDX  
DDR  
For R  
is valid:  
DSON  
V
OL  
R
= -----------;for outputs driven low  
DSON  
V
I
OL  
respectively  
V  
DD5  
OH  
R
= -----------------------------------;for outputs driven high  
DSON  
I
OH  
2. Internal voltage regulator enabled  
P
= I  
V  
+ I  
V  
INT  
DDR DDR DDA DDA  
I
is the current shown in Table A-10 and not the overall current flowing into V  
, which  
DDR  
DDR  
additionally contains the current flowing into the external loads with output high.  
2
P
=
R
I  
DSON IO  
IO  
i
i
P
is the sum of all output currents on I/O ports associated with V  
and V  
.
IO  
DDX  
DDR  
MC9S12XDP512 Data Sheet, Rev. 2.11  
924  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix A Electrical Characteristics  
1
Table A-5. Thermal Package Characteristics  
Num  
C
Rating  
Symbol  
Min  
Typ  
Max  
Unit  
LQFP144  
2
1
2
T
T
Thermal resistance LQFP144, single sided PCB  
θ
41  
32  
°C/W  
°C/W  
JA  
Thermal resistance LQFP144, double sided PCB  
θ
JA  
3
with 2 internal planes  
3
4
5
Junction to Board LQFP 144  
θ
22  
7.4  
3
°C/W  
°C/W  
°C/W  
JB  
4
Junction to Case LQFP 144  
θ
JC  
5
Junction to Package Top LQFP144  
Ψ
JT  
LQFP112  
2
6
7
T
T
Thermal resistance LQFP112, single sided PCB  
θ
43  
32  
°C/W  
°C/W  
JA  
Thermal resistance LQFP112, double sided PCB  
θ
JA  
3
with 2 internal planes  
8
9
Junction to Board LQFP112  
θ
22  
7
°C/W  
°C/W  
°C/W  
JB  
4
Junction to Case LQFP112  
θ
JC  
5
10  
Junction to Package Top LQFP112  
Ψ
3
JT  
QFP80  
2
11  
12  
T
T
Thermal resistance QFP 80, single sided PCB  
θ
45  
33  
°C/W  
°C/W  
JA  
Thermal resistance QFP 80, double sided PCB  
θ
JA  
3
with 2 internal planes  
13  
14  
15  
T
T
T
Junction to Board QFP 80  
θ
19  
11  
3
°C/W  
°C/W  
°C/W  
JB  
4
Junction to Case QFP 80  
θ
JC  
5
Junction to Package Top QFP 80  
Ψ
JT  
1
2
The values for thermal resistance are achieved by package simulations  
Junction to ambient thermal resistance, θ was simulated to be equivalent to the JEDEC specification JESD51-2 in a  
JA  
horizontal configuration in natural convection.  
3
4
Junction to ambient thermal resistance, θ was simulated to be equivalent to the JEDEC specification JESD51-7 in a  
JA  
horizontal configuration in natural convection.  
Junction to case thermal resistance was simulated to be equivalent to the measured values using the cold plate technique with  
the cold plate temperature used as the “case” temperature. This basic cold plate measurement technique is described by  
MIL-STD 883D, Method 1012.1. This is the correct thermal metric to use to calculate thermal performance when the package  
is being used with a heat sink.  
5
Thermal characterization parameter Ψ is the “resistance” from junction to reference point thermocouple on top center of the  
JT  
case as defined in JESD51-2. Ψ is a useful value to use to estimate junction temperature in a steady state customer  
JT  
enviroment.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
925  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix A Electrical Characteristics  
A.1.9  
I/O Characteristics  
This section describes the characteristics of all I/O pins except EXTAL, XTAL,XFC,TEST and supply  
pins.  
Table A-6. 3.3-V I/O Characteristics  
Conditions are 3.15 V < V  
I/O Characteristics for all I/O pins except EXTAL, XTAL,XFC,TEST and supply pins.  
< 3.6 V temperature from –40°C to +140°C, unless otherwise noted  
DD35  
Num  
C
Rating  
Symbol  
Min  
Typ  
Max  
Unit  
1
P Input high voltage  
T Input high voltage  
P Input low voltage  
T Input low voltage  
C Input hysteresis  
V
V
0.65*V  
V
V
IH  
IH  
DD35  
V
+ 0.3  
DD35  
2
V
V
0.35*V  
V
IL  
DD35  
V
– 0.3  
V
IL  
SS35  
3
4
V
250  
mV  
µA  
HYS  
P Input leakage current (pins in high impedance input  
I
–1  
1
in  
1
mode)  
V
= V  
DD35  
or V  
SS35  
in  
5
6
7
8
9
C Output high voltage (pins in output mode)  
Partial drive I = –0.75 mA  
V
V
V
– 0.4  
– 0.4  
V
V
V
V
DD35  
OH  
OH  
P Output high voltage (pins in output mode)  
V
OH  
DD35  
Full drive I = –4 mA  
OH  
C Output low voltage (pins in output mode)  
V
V
I
0.4  
0.4  
OL  
Partial Drive I = +0.9 mA  
OL  
P Output low voltage (pins in output mode)  
OL  
Full Drive I  
= +4.75 mA  
OL  
P Internal pull up device current, tested at V max.  
-6  
6
6
–60  
-
µA  
µA  
µA  
µA  
pF  
IL  
PUL  
PUH  
PDH  
10 C Internal pull up device current, tested at V min.  
I
I
IH  
11 P Internal pull down device current, tested at V min.  
60  
IH  
12 C Internal pull down device current, tested at V max.  
I
PDL  
IL  
13 D Input capacitance  
C
in  
2
14  
T Injection current  
Single pin limit  
mA  
I
I
–2.5  
–25  
2.5  
25  
ICS  
ICP  
Total device limit, sum of all injected currents  
3
15 P Port H, J, P interrupt input pulse filtered  
t
t
3
µs  
µs  
PULSE  
PULSE  
3
16 P Port H, J, P interrupt input pulse passed  
10  
1
Maximum leakage current occurs at maximum operating temperature. Current decreases by approximately one-half for each  
8 C to 12 C in the tempearture range from 50°C to 125°C.  
Refer to Section A.1.4, “Current Injection” for more details  
2
3
Parameter only applies in stop or pseudo stop mode.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
926  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix A Electrical Characteristics  
Table A-7. 5-V I/O Characteristics  
Conditions are 4.5 V < V  
I/O Characteristics for all I/O pins except EXTAL, XTAL,XFC,TEST and supply pins.  
< 5.5 V temperature from –40°C to +140°C, unless otherwise noted  
DD35  
Num  
C
Rating  
Symbol  
Min  
Typ  
Max  
Unit  
1
P Input high voltage  
T Input high voltage  
P Input low voltage  
T Input low voltage  
C Input hysteresis  
V
0.65*V  
V
V
DD35  
IH  
V
V
+ 0.3  
IH  
DD35  
2
V
0.35*V  
V
IL  
IL  
DD35  
V
V
– 0.3  
1
V
SS35  
3
4
V
250  
mV  
µA  
HYS  
P Input leakage current (pins in high impedance input  
I
–1  
in  
1
mode)  
V
= V  
DD35  
or V  
SS35  
in  
5
6
7
8
9
C Output high voltage (pins in output mode)  
Partial drive I = –2 mA  
V
V
V
– 0.8  
– 0.8  
V
V
V
V
DD35  
DD35  
OH  
OH  
P Output high voltage (pins in output mode)  
V
OH  
Full drive I = –10 mA  
OH  
C Output low voltage (pins in output mode)  
V
V
I
0.8  
0.8  
OL  
Partial drive I = +2 mA  
OL  
P Output low voltage (pins in output mode)  
OL  
Full drive I  
= +10 mA  
OL  
P Internal pull up device current, tested at V max  
–10  
6
–130  
µA  
µA  
µA  
µA  
pF  
IL  
PUL  
PUH  
PDH  
10 C Internal pull up device current, tested at V min  
I
I
IH  
11  
P Internal pull down device current, tested at V min  
130  
IH  
12 C Internal pull down device current, tested at V max  
I
10  
IL  
PDL  
13 D Input capacitance  
C
in  
2
14  
T Injection current  
Single pin limit  
mA  
I
I
–2.5  
–25  
2.5  
25  
ICS  
ICP  
Total device Limit, sum of all injected currents  
3
15  
16  
P Port H, J, P interrupt input pulse filtered  
t
t
3
µs  
µs  
PULSE  
PULSE  
3
P Port H, J, P interrupt input pulse passed  
10  
1
Maximum leakage current occurs at maximum operating temperature. Current decreases by approximately one-half for each  
8 C to 12 C in the tempearture range from 50°C to 125°C.  
Refer to Section A.1.4, “Current Injection” for more details  
2
3
Parameter only applies in stop or pseudo stop mode.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
927  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix A Electrical Characteristics  
Table A-8. I/O Characteristics for Port C, D, PE5, PE6, and PE7  
for Reduced Input Voltage Thresholds  
Conditions are 4.5 V < V  
< 5.5 V Temperature from –40°C to +140°C, unless otherwise noted  
DD35  
Num  
C
Rating  
Symbol  
Min  
Typ  
Max  
Unit  
1
2
3
P Input high voltage  
P Input low voltage  
C Input hysteresis  
V
1.75  
0.75  
V
V
IH  
V
IL  
V
100  
mV  
HYS  
A.1.10 Supply Currents  
This section describes the current consumption characteristics of the device as well as the conditions for  
the measurements.  
A.1.10.1 Measurement Conditions  
All measurements are without output loads. Unless otherwise noted the currents are measured in single  
chip mode and the CPU and XGATE code is executed from RAM, V  
=5.5V, internal voltage regulator  
DD35  
is enabled and the bus frequency is 40MHz using a 4-MHz oscillator in loop controlled Pierce mode.  
Production testing is performed using a square wave signal at the EXTAL input.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
928  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix A Electrical Characteristics  
Table A-9. shows the configuration of the peripherals for run current measurement.  
Table A-9. Peripheral Configurations for Run Supply Current Measurements  
Peripheral  
Configuration  
MSCAN  
configured to loop-back mode using  
a bit rate of 1Mbit/s  
SPI  
SCI  
IIC  
configured to master mode,  
continously transmit data (0x55 or  
0xAA) at 1Mbit/s  
configured into loop mode,  
continously transmit data (0x55) at  
speed of 57600 baud  
operate in master mode and  
continously transmit data (0x55 or  
0xAA) at the bit rate of 100Kbit/s  
PWM  
ECT  
configured to toggle its pins at the  
rate of 40kHz  
the peripheral shall be configured to  
output compare mode, Pulse  
accumulator and modulus counter  
enabled.  
ATD  
the peripheral is configured to  
operate at its maximum specified  
frequency and to continuously  
convert voltages on all input  
channels in sequence.  
XGATE  
XGATE fetches code from RAM,  
XGATE runs in an infinite loop , it  
reads the Status and Flag registers  
of CAN’s, SPI’s, SCI’s in sequence  
and does some bit manipulation on  
the data  
24  
COP  
RTI  
COP Warchdog Rate 2  
enabled, RTI Control Register  
(RTICTL) set to $FF  
API  
PIT  
the module is configured to run from  
the RC oscillator clock source.  
PIT is enabled, Micro-timer register 0  
and 1 loaded with $0F and timer  
registers 0 to 3 are loaded with  
$03/07/0F/1F.  
DBG  
the module is enabled and the  
comparators are configured to  
trigger in outside range. The range  
covers all the code executed by the  
core.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
929  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix A Electrical Characteristics  
A.1.10.2 Additional Remarks  
In expanded modes the currents flowing in the system are highly dependent on the load at the address, data,  
and control signals as well as on the duty cycle of those signals. No generally applicable numbers can  
given. A very good estimate is to take the single chip currents and add the currents due to the external loads.  
Table A-10. Run and Wait Current Characteristics  
Conditions are shown in Table A-4 unless otherwise noted  
Num  
C
Rating  
Symbol  
Min  
Typ  
Max  
Unit  
Run supply current (Peripheral Configuration see Table A-9.)  
1
1
2
P
Peripheral Set  
I
110  
mA  
DD35  
f
=4MHz, f =40MHz  
osc  
bus  
1
Peripheral Set  
C
T
T
f
=4MHz, f =40MHz  
90  
45  
18  
osc  
bus  
f
=4MHz, f =20MHz  
osc  
bus  
f
=4MHz, f =8MHz  
osc  
bus  
2
3
4
5
6
7
Peripheral Set  
T
T
T
f
=4MHz, f =40MHz  
70  
35  
15  
osc  
bus  
f
=4MHz, f =20MHz  
osc  
bus  
f
=4MHz, f =8MHz  
osc  
bus  
3
Peripheral Set  
T
T
T
f
=4MHz, f =40MHz  
60  
30  
13  
osc  
bus  
f
=4MHz, f =20MHz  
osc  
bus  
f
=4MHz, f =8MHz  
osc  
bus  
4
Peripheral Set  
T
T
T
f
=4MHz, f =40MHz  
56  
28  
12  
osc  
bus  
f
=4MHz, f =20MHz  
osc  
bus  
f
=4MHz, f =8MHz  
osc  
bus  
5
Peripheral Set  
T
T
T
f
=4MHz, f =40MHz  
53  
26  
11  
osc  
bus  
f
=4MHz, f =20MHz  
osc  
bus  
f
=4MHz, f =8MHz  
osc  
bus  
6
Peripheral Set  
T
T
T
f
=4MHz, f =40MHz  
50  
25  
10  
osc  
bus  
f
=4MHz, f =20MHz  
osc  
bus  
f
=4MHz, f =8MHz  
osc  
bus  
Wait supply current  
1
8
9
P
Peripheral Set ,PLL on  
I
95  
10  
mA  
DDW  
XGATE executing code from RAM  
2
Peripheral Set  
T
T
f
=4MHz, f =40MHz  
50  
10  
osc  
bus  
f
=4MHz, f =8MHz  
osc  
bus  
10  
P
All modules disabled, RTI enabled, PLL off  
1
2
3
4
5
6
The following peripherals are on: ATD0/ATD1/ECT/IIC1/PWM/SPI0-SPI2/SCI0-SCI2/CAN0-CAN4/XGATE  
The following peripherals are on: ATD0/ATD1/ECT/IIC1/PWM/SPI0-SPI2/SCI0-SCI2/CAN0-CAN4  
The following peripherals are on: ATD0/ATD1/ECT/IIC1/PWM/SPI0-SPI2/SCI0-SCI2/  
The following peripherals are on: ATD0/ATD1/ECT/IIC1/PWM/SPI0-SPI2  
The following peripherals are on: ATD0/ATD1/ECT/IIC1/PWM/  
The following peripherals are on: ATD0/ATD1/ECT/IIC1/  
MC9S12XDP512 Data Sheet, Rev. 2.11  
930  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix A Electrical Characteristics  
Table A-11. Pseudo Stop and Full Stop Current  
Conditions are shown in Table A-4 unless otherwise noted  
Num  
C
Rating  
Symbol  
Min  
Typ  
Max  
Unit  
Pseudo stop current (API, RTI, and COP disabled) PLL off  
10  
C
P
C
C
P
C
P
C
P
–40°C  
I
200  
300  
400  
500  
600  
500  
2500  
3500  
7000  
µA  
DDPS  
27°C  
70°C  
85°C  
"C" Temp Option 100°C  
105°C  
"V" Temp Option 120°C  
125°C  
"M" Temp Option 140°C  
800  
1000  
1200  
1500  
Pseudo stop current (API, RTI, and COP enabled) PLL off  
11  
C
C
C
C
C
C
C
–40°C  
27°C  
I
500  
750  
850  
1000  
1200  
1500  
2000  
µA  
µA  
DDPS  
70°C  
85°C  
105°C  
125°C  
140°C  
Stop Current  
12  
C
P
C
C
P
C
P
C
P
–40°C  
I
20  
30  
100  
2000  
3000  
7000  
DDS  
27°C  
70°C  
100  
200  
250  
400  
500  
600  
1000  
85°C  
"C" Temp Option 100°C  
105°C  
"V" Temp Option 120°C  
125°C  
"M" Temp Option 140°C  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
931  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix A Electrical Characteristics  
A.2  
ATD Characteristics  
This section describes the characteristics of the analog-to-digital converter.  
A.2.1  
ATD Operating Characteristics  
The Table A-12 and Table A-13 show conditions under which the ATD operates.  
The following constraints exist to obtain full-scale, full range results:  
V
V V V V  
.
DDA  
SSA  
RL  
IN  
RH  
This constraint exists since the sample buffer amplifier can not drive beyond the power supply levels that  
it ties to. If the input level goes outside of this range it will effectively be clipped.  
Table A-12. ATD 5-V Operating Characteristics  
Conditions are shown in Table A-4 unless otherwise noted, supply voltage 4.5 V < V  
< 5.5 V  
DDA  
Num  
C
Rating  
Symbol  
Min  
Typ  
Max  
Unit  
1
D Reference potential  
Low  
High  
V
V
V /2  
DDA  
V
V
RL  
SSA  
V
V
/2  
V
RH  
DDA  
DDA  
1
2
3
4
C Differential reference voltage  
D ATD clock frequency  
V
-V  
4.50  
0.5  
5.00  
5.5  
2.0  
V
RH RL  
f
MHz  
ATDCLK  
D ATD 10-bit conversion period  
2
Clock cycles  
N
T
14  
7
28  
14  
Cycles  
µs  
CONV10  
Conv, time at 2.0 MHz ATD clock f  
ATDCLK  
ATDCLK  
CONV10  
5
D ATD 8-Bit conversion period  
2
Clock cycles  
N
T
12  
6
26  
13  
Cycles  
µs  
CONV8  
CONV8  
Conv, time at 2.0 MHz ATD clock f  
6
7
8
D Recovery time (V  
= 5.0 Volts)  
t
20  
µs  
DDA  
REC  
P Reference supply current 2 ATD blocks on  
P Reference supply current 1 ATD block on  
I
I
0.750  
0.375  
mA  
mA  
REF  
REF  
1
2
Full accuracy is not guaranteed when differential voltage is less than 4.50 V  
The minimum time assumes a final sample period of 2 ATD clocks cycles while the maximum time assumes a final sample  
period of 16 ATD clocks.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
932  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Appendix A Electrical Characteristics  
Table A-13. ATD Operating Characteristics 3.3V  
Conditions are shown in Table A-4 unless otherwise noted, Supply Voltage 3.15V < VDDA < 3.6V  
Num  
C
Rating  
Symbol  
Min  
Typ  
Max  
Unit  
1
D Reference potential  
Low  
High  
V
V
V /2  
DDA  
V
V
RL  
SSA  
V
V
/2  
V
RH  
DDA  
DDA  
1
2
3
4
C Differential reference voltage  
D ATD clock frequency  
V
-V  
3.15  
0.5  
3.3  
3.6  
2.0  
V
RH RL  
f
MHz  
ATDCLK  
D ATD 10-bit conversion period  
2
Clock cycles  
N
T
14  
7
28  
14  
Cycles  
µs  
CONV10  
Conv, time at 2.0 MHz ATD clock f  
ATDCLK  
ATDCLK  
CONV10  
5
D ATD 8-bit conversion period  
2
Clock cycles  
N
T
12  
6
26  
13  
Cycles  
µs  
CONV8  
CONV8  
Conv, time at 2.0 MHz ATD clock f  
6
7
8
D Recovery time (V  
= 5.0 Volts)  
t
20  
µs  
DDA  
REC  
P Reference supply current 2 ATD blocks on  
P Reference supply current 1 ATD block on  
I
I
0.500  
0.250  
mA  
mA  
REF  
REF  
1
2
Full accuracy is not guaranteed when differential voltage is less than 3.15 V  
The minimum time assumes a final sample period of 2 ATD clocks cycles while the maximum time assumes a final sample  
period of 16 ATD clocks.  
A.2.2  
Factors Influencing Accuracy  
Three factors — source resistance, source capacitance and current injection — have an influence on the  
accuracy of the ATD.  
A.2.2.1  
Source Resistance  
Due to the input pin leakage current as specified in Table A-7 in conjunction with the source resistance  
there will be a voltage drop from the signal source to the ATD input. The maximum source resistance R  
specifies results in an error of less than 1/2 LSB (2.5 mV) at the maximum leakage current. If device or  
S
operating conditions are less than worst case or leakage-induced error is acceptable, larger values of source  
resistance is allowed.  
A.2.2.2  
Source Capacitance  
When sampling an additional internal capacitor is switched to the input. This can cause a voltage drop due  
to charge sharing with the external and the pin capacitance. For a maximum sampling error of the input  
voltage 1LSB, then the external filter capacitor, C 1024 * (C –C ).  
f
INS INN  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
933  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix A Electrical Characteristics  
A.2.2.3  
Current Injection  
There are two cases to consider.  
1. A current is injected into the channel being converted. The channel being stressed has conversion  
values of $3FF ($FF in 8-bit mode) for analog inputs greater than V and $000 for values less  
RH  
than V unless the current is higher than specified as disruptive condition.  
RL  
2. Current is injected into pins in the neighborhood of the channel being converted. A portion of this  
current is picked up by the channel (coupling ratio K), This additional current impacts the accuracy  
of the conversion depending on the source resistance.  
The additional input voltage error on the converted channel can be calculated as:  
V
= K * R * I  
ERR  
S
INJ  
with I being the sum of the currents injected into the two pins adjacent to the converted channel.  
INJ  
Table A-14. ATD Electrical Characteristics  
Conditions are shown in Table A-4 unless otherwise noted  
Num  
C
Rating  
Symbol  
Min  
Typ  
Max  
Unit  
1
2
C Max input source resistance  
R
1
KΩ  
S
T Total input capacitance  
Non sampling  
pF  
C
C
10  
22  
INN  
INS  
Sampling  
3
4
5
C Disruptive analog input current  
I
–2.5  
2.5  
mA  
A/A  
A/A  
NA  
-4  
C Coupling ratio positive current injection  
C Coupling ratio negative current injection  
K
K
10  
p
n
-2  
10  
MC9S12XDP512 Data Sheet, Rev. 2.11  
934  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix A Electrical Characteristics  
A.2.3  
ATD Accuracy  
5-V Range  
A.2.3.1  
Table A-15 specifies the ATD conversion performance excluding any errors due to current injection, input  
capacitance, and source resistance.  
Table A-15. 5-V ATD Conversion Performance  
Conditions are shown in Table A-4 unless otherwise noted  
V
= V –V = 5.12 V. Resulting to one 8-bit count = 20 mV and one 10-bit count = 5 mV  
REF  
RH RL  
f
= 2.0 MHz  
ATDCLK  
Num  
C
Rating  
Symbol  
Min  
Typ  
Max  
Unit  
1
2
3
4
5
6
7
8
P 10-bit resolution  
LSB  
DNL  
INL  
AE  
–1  
5
1
mV  
P 10-bit differential nonlinearity  
P 10-bit integral nonlinearity  
Counts  
Counts  
Counts  
mV  
–2.5  
–3  
1.5  
2.0  
20  
2.5  
3
1
P 10-bit absolute error  
P 8-bit resolution  
LSB  
DNL  
INL  
AE  
P 8-bit differential nonlinearity  
P 8-bit integral nonlinearity  
–0.5  
–1.0  
–1.5  
0.5  
1.0  
1.5  
Counts  
Counts  
Counts  
0.5  
1.0  
1
P 8-bit absolute error  
1
These values include the quantization error which is inherently 1/2 count for any A/D converter.  
A.2.3.2  
3.3-V Range  
Table A-16 specifies the ATD conversion performance excluding any errors due to current injection, input  
capacitance, and source resistance.  
Table A-16. 3.3-V ATD Conversion Performance  
Conditions are shown in Table A-4 unless otherwise noted  
V
= V –V = 3.328 V. Resulting to one 8-bit count = 13mV and one 10-bit count = 3.25 mV  
REF  
RH RL  
f
= 2.0 MHz  
ATDCLK  
Num  
C
Rating  
Symbol  
Min  
Typ  
Max  
Unit  
1
2
3
4
5
6
7
8
P 10-bit resolution  
LSB  
DNL  
INL  
AE  
3.25  
1.5  
3.5  
5
mV  
P 10-bit differential nonlinearity  
P 10-bit integral nonlinearity  
–1.5  
–3.5  
–5  
Counts  
Counts  
Counts  
mV  
1.5  
2.5  
13  
1
P 10-bit absolute error  
P 8-bit resolution  
LSB  
DNL  
INL  
AE  
P 8-bit differential nonlinearity  
P 8-bit integral nonlinearity  
–0.5  
–1.5  
–2.0  
0.5  
1.5  
2.0  
Counts  
Counts  
Counts  
1.0  
1.5  
1
P 8-bit absolute error  
1
These values include the quantization error which is inherently 1/2 count for any A/D converter.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
935  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix A Electrical Characteristics  
A.2.3.3  
ATD Accuracy Definitions  
For the following definitions see also Figure A-1.  
Differential non-linearity (DNL) is defined as the difference between two adjacent switching steps.  
V V  
i
i 1  
DNL(i) =  
1  
--------------------------  
1LSB  
The integral non-linearity (INL) is defined as the sum of all DNLs:  
n
V V  
n
0
INL(n) =  
DNL(i) =  
n  
--------------------  
1LSB  
i = 1  
MC9S12XDP512 Data Sheet, Rev. 2.11  
936  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix A Electrical Characteristics  
DNL  
10-Bit Absolute Error Boundary  
LSB  
Vi-1  
Vi  
$3FF  
$3FE  
$3FD  
$3FC  
$3FB  
$3FA  
$3F9  
$3F8  
$3F7  
$3F6  
$3F5  
$3F4  
$3F3  
8-Bit Absolute Error Boundary  
$FF  
$FE  
$FD  
2
9
8
7
6
5
4
3
2
1
0
Ideal Transfer Curve  
10-Bit Transfer Curve  
1
8-Bit Transfer Curve  
5
10 15 20 25 30 35 40 50  
50555060506550705075508050855090509551005105511051155120  
Vin  
mV  
Figure A-1. ATD Accuracy Definitions  
NOTE  
Figure A-1 shows only definitions, for specification values refer to  
Table A-15.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
937  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix A Electrical Characteristics  
A.3  
NVM, Flash, and EEPROM  
NOTE  
Unless otherwise noted the abbreviation NVM (nonvolatile memory) is used  
for both Flash and EEPROM.  
A.3.1  
NVM Timing  
The time base for all NVM program or erase operations is derived from the oscillator. A minimum  
oscillator frequency f is required for performing program or erase operations. The NVM modules  
NVMOSC  
do not have any means to monitor the frequency and will not prevent program or erase operation at  
frequencies above or below the specified minimum. Attempting to program or erase the NVM modules at  
a lower frequency a full program or erase transition is not assured.  
The Flash and EEPROM program and erase operations are timed using a clock derived from the oscillator  
using the FCLKDIV and ECLKDIV registers respectively. The frequency of this clock must be set within  
the limits specified as f  
.
NVMOP  
The minimum program and erase times shown in Table A-17 are calculated for maximum f  
and  
NVMOP  
maximum f . The maximum times are calculated for minimum f  
and a f of 2 MHz.  
bus  
NVMOP  
bus  
A.3.1.1  
Single Word Programming  
The programming time for single word programming is dependant on the bus frequency as a well as on the  
frequency f  
and can be calculated according to the following formula.  
NVMOP  
1
1
-----------  
f
t
= 9 ⋅  
+ 25 ⋅  
------------------------  
f
swpgm  
NVMOP  
bus  
A.3.1.2  
Burst Programming  
This applies only to the Flash where up to 64 words in a row can be programmed consecutively using burst  
programming by keeping the command pipeline filled. The time to program a consecutive word can be  
calculated as:  
1
1
-----------  
f
t
= 4 ⋅  
+ 9 ⋅  
------------------------  
f
bwpgm  
NVMOP  
bus  
The time to program a whole row is:  
t
= t  
+ 63 t  
brpgm  
swpgm  
bwpgm  
Burst programming is more than 2 times faster than single word programming.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
938  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Appendix A Electrical Characteristics  
A.3.1.3  
Sector Erase  
Erasing a 1024-byte Flash sector or a 4-byte EEPROM sector takes:  
1
t
4000 ⋅  
------------------------  
f
era  
NVMOP  
The setup time can be ignored for this operation.  
A.3.1.4  
Mass Erase  
Erasing a NVM block takes:  
1
t
20000 ⋅  
------------------------  
f
mass  
NVMOP  
The setup time can be ignored for this operation.  
A.3.1.5  
Blank Check  
The time it takes to perform a blank check on the Flash or EEPROM is dependant on the location of the  
first non-blank word starting at relative address zero. It takes one bus cycle per word to verify plus a setup  
of the command.  
t
location t  
+ 10 t  
check  
cyc  
cyc  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
939  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix A Electrical Characteristics  
Table A-17. NVM Timing Characteristics  
Conditions are shown in Table A-4 unless otherwise noted  
Num  
C
Rating  
Symbol  
Min  
Typ  
Max  
Unit  
1
1
2
3
4
5
6
7
8
9
D External oscillator clock  
f
0.5  
1
80  
MHz  
MHz  
kHz  
µs  
NVMOSC  
D Bus frequency for programming or erase operations  
D Operating frequency  
f
NVMBUS  
f
150  
200  
NVMOP  
2
3
P Single word programming time  
t
t
46  
74.5  
swpgm  
4
2
3
D Flash burst programming consecutive word  
20.4  
31  
µs  
bwpgm  
4
2
3
D Flash burst programming time for 64 words  
t
1331.2  
2027.5  
µs  
brpgm  
5
3
P Sector erase time  
t
20  
26.7  
ms  
ms  
era  
5
3
P Mass erase time  
t
100  
133  
mass  
6
7
D Blank check time Flash per block  
t
t
11  
65546  
t
t
check  
check  
cyc  
cyc  
6
7
10 D Blank check time EEPROM per block  
11  
2058  
1
2
Restrictions for oscillator in crystal mode apply.  
Minimum programming times are achieved under maximum NVM operating frequency f  
and maximum bus frequency  
NVMOP  
f
.
bus  
3
Maximum erase and programming times are achieved under particular combinations of f  
and bus frequency f . Refer  
bus  
NVMOP  
to formulae in Sections Section A.3.1.1, “Single Word ProgrammingSection A.3.1.4, “Mass Erasefor guidance.  
4
5
6
7
Burst programming operations are not applicable to EEPROM  
Minimum erase times are achieved under maximum NVM operating frequency, f  
Minimum time, if first word in the array is not blank  
.
NVMOP  
Maximum time to complete check on an erased block  
MC9S12XDP512 Data Sheet, Rev. 2.11  
940  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix A Electrical Characteristics  
A.3.2  
NVM Reliability  
The reliability of the NVM blocks is guaranteed by stress test during qualification, constant process  
monitors and burn-in to screen early life failures. The program/erase cycle count on the sector is  
incremented every time a sector or mass erase event is executed  
1
Table A-18. NVM Reliability Characteristics  
Conditions are shown in Table A-4 unless otherwise noted  
Num  
C
Rating  
Symbol  
Min  
Typ  
Max  
Unit  
Flash Reliability Characteristics  
2
1
2
3
4
C Data retention after 10,000 program/erase cycles at an  
t
15  
100  
100  
Years  
FLRET  
average junction temperature of TJavg 85°C  
C Data retention with <100 program/erase cycles at an  
average junction temperature TJavg 85°C  
C Number of program/erase cycles  
2
20  
n
10,000  
10,000  
Cycles  
FL  
(–40°C T 0°C)  
J
3
C Number of program/erase cycles  
100,000  
(0°C T 140°C)  
J
EEPROM Reliability Characteristics  
2
5
6
7
8
T
C Data retention after up to 100,000 program/erase cycles  
t
15  
20  
100  
Years  
EEPRET  
at an average junction temperature of TJavg 85°C  
C Data retention with <100 program/erase cycles at an  
average junction temperature TJavg 85°C  
C Number of program/erase cycles  
2
100  
n
10,000  
Cycles  
EEP  
(–40°C T 0°C)  
J
3
C Number of program/erase cycles  
100,000 300,000  
(0°C < T 140°C)  
J
1
2
will not exeed 85°C considering a typical temperature profile over the lifetime of a consumer, industrial or automotive  
Javg  
application.  
Typical data retention values are based on intrinsic capability of the technology measured at high temperature and de-rated to  
25°C using the Arrhenius equation. For additional information on how Freescale defines Typical Data Retention, please refer  
to Engineering Bulletin EB618.  
3
Spec table quotes typical endurance evaluated at 25°C for this product family, typical endurance at various temperature can  
be estimated using the graph below. For additional information on how Freescale defines Typical Endurance, please refer to  
Engineering Bulletin EB619.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
941  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix A Electrical Characteristics  
Figure A-2. Typical Endurance vs Temperature  
500  
450  
400  
350  
300  
250  
200  
150  
100  
50  
0
60  
80  
120  
-40  
-20  
0
20  
40  
100  
140  
Operating Temperature T [°C]  
J
------ Flash  
------ EEPROM  
MC9S12XDP512 Data Sheet, Rev. 2.11  
942  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix A Electrical Characteristics  
A.4  
Voltage Regulator  
Table A-19. Voltage Regulator Electrical Characteristics  
Num  
C
Characteristic  
Symbol  
Min  
Typ  
Max  
Unit  
1
3
P
P
Input voltages  
V
3.15  
5.5  
V
VDDR,A  
Output voltage core  
Full performance mode  
Reduced power mode  
Shutdown mode  
V
DD  
2.35  
1.4  
2.54  
2.25  
2.75  
2.75  
V
V
V
1
4
7
P
P
Output Voltage PLL  
Full Performance Mode  
Reduced power mode  
Shutdown mode  
V
DDPLL  
2.35  
1.25  
2.54  
2.25  
2.75  
2.75  
V
V
V
2
3
Low-voltage interrupt  
Assert level  
Deassert level  
V
V
4.0  
4.15  
4.37  
4.52  
4.66  
4.77  
V
V
LVIA  
LVID  
4
8
9
P
C
Low-voltage reset  
V
LVRA  
Assert level  
2.25  
V
5
Power-on reset  
Assert level  
Deassert level  
V
V
0.97  
2.05  
V
V
PORA  
PORD  
6
12  
C
Trimmed API internal clock  
df  
– 10%  
+ 10%  
API  
f / f  
nominal  
1
High impedance output  
High impedance output  
2
3
Monitors V  
voltage.  
, active only in full performance mode. Indicates I/O and ADC performance degradation due to low supply  
DDA  
4
5
6
Monitors V , active only in full performance mode. MCU is monitored by the POR in RPM (see Figure A-1)  
DD  
Monitors V . Active in all modes.  
DD  
The API Trimming bits must be set that the minimum periode equals to 0.2 ms. f  
= 1/0.2ms  
nominal  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
943  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix A Electrical Characteristics  
A.5  
Reset, Oscillator, and PLL  
This section summarizes the electrical characteristics of the various startup scenarios for oscillator and  
phase-locked loop (PLL).  
A.5.1  
Startup  
Table A-20 summarizes several startup characteristics explained in this section. Detailed description of the  
startup behavior can be found in the Clock and Reset Generator (CRG) Block Guide.  
Table A-20. Startup Characteristics  
Conditions are shown in Table A-4unless otherwise noted  
Num  
C
Rating  
Symbol  
Min  
Typ  
Max  
Unit  
1
2
3
4
5
V
D Reset input pulse width, minimum input time  
D Startup from reset  
PW  
2
192  
20  
50  
196  
t
osc  
RSTL  
n
n
osc  
RST  
D Interrupt pulse width, IRQ edge-sensitive mode  
D Wait recovery startup time  
PW  
ns  
IRQ  
t
14  
t
cyc  
WRS  
1
D Fast wakeup from STOP  
t
µs  
fws  
1
/V  
filter capacitors 220 nF, V  
= 5 V, T= 25°C  
DD1 DD2  
DD35  
A.5.1.1  
POR  
The release level V  
and the assert level V  
are derived from the V supply. They are also valid  
PORA DD  
PORR  
if the device is powered externally. After releasing the POR reset the oscillator and the clock quality check  
are started. If after a time t no valid oscillation is detected, the MCU will start using the internal self  
CQOUT  
clock. The fastest startup time possible is given by n  
.
uposc  
A.5.1.2  
SRAM Data Retention  
Provided an appropriate external reset signal is applied to the MCU, preventing the CPU from executing  
code when V is out of specification limits, the SRAM contents integrity is guaranteed if after the reset  
DD35  
the PORF bit in the CRG flags register has not been set.  
A.5.1.3  
External Reset  
When external reset is asserted for a time greater than PW  
the CRG module generates an internal  
RSTL  
reset, and the CPU starts fetching the reset vector without doing a clock quality check, if there was an  
oscillation before reset.  
A.5.1.4  
Stop Recovery  
Out of stop the controller can be woken up by an external interrupt. A clock quality check as after POR is  
performed before releasing the clocks to the system.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
944  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Appendix A Electrical Characteristics  
If the MCU is woken-up by an interrupt and the fast wake-up feature is enabled (FSTWKP = 1 and  
SCME = 1), the system will resume operation in self-clock mode after t  
.
fws  
A.5.1.5  
Pseudo Stop and Wait Recovery  
The recovery from pseudo stop and wait are essentially the same since the oscillator was not stopped in  
both modes. The controller can be woken up by internal or external interrupts. After t the CPU starts  
wrs  
fetching the interrupt vector.  
A.5.2  
Oscillator  
The device features an internal low-power loop controlled Pierce oscillator and a full swing Pierce  
oscillator/external clock mode. The selection of loop controlled Pierce oscillator or full swing Pierce  
oscillator/external clock depends on the XCLKS signal which is sampled during reset. Before asserting the  
oscillator to the internal system clocks the quality of the oscillation is checked for each start from either  
power-on, STOP or oscillator fail. t  
specifies the maximum time before switching to the internal self  
CQOUT  
clock mode after POR or STOP if a proper oscillation is not detected. The quality check also determines  
the minimum oscillator start-up time t . The device also features a clock monitor. A clock monitor  
UPOSC  
failure is asserted if the frequency of the incoming clock signal is below the assert frequency f  
CMFA.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
945  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix A Electrical Characteristics  
Table A-21. Oscillator Characteristics  
Conditions are shown in Table A-4 unless otherwise noted  
Num  
C
Rating  
Symbol  
Min  
Typ  
Max  
Unit  
1a  
1b  
2
C Crystal oscillator range (loop controlled Pierce)  
f
f
i
4.0  
0.5  
100  
16  
40  
MHz  
MHz  
µA  
ms  
s
OSC  
OSC  
1, 2  
C Crystal oscillator range (full swing Pierce)  
P Startup current  
OSC  
3
4
3
C Oscillator start-up time (loop controlled Pierce)  
D Clock quality check time-out  
t
50  
UPOSC  
CQOUT  
4
t
0.45  
50  
2.5  
200  
80  
1
5
P Clock monitor failure assert frequency  
P External square wave input frequency  
D External square wave pulse width low  
D External square wave pulse width high  
D External square wave rise time  
D External square wave fall time  
f
100  
7
KHz  
MHz  
ns  
CMFA  
6
f
0.5  
5
EXT  
7
t
EXTL  
EXTH  
EXTR  
8
t
t
5
ns  
9
ns  
10  
11  
12  
t
1
ns  
EXTF  
D Input capacitance (EXTAL, XTAL inputs)  
C
pF  
IN  
5
P EXTAL pin input high voltage  
V
V
0.75*  
V
IH,EXTAL  
V
DDPLL  
5
T EXTAL pin input high voltage  
V
+
V
V
IH,EXTAL  
DDPLL  
0.3  
5
13  
14  
P EXTAL pin input low voltage  
V
V
0.25*  
IL,EXTAL  
V
DDPLL  
5
T EXTAL pin input low voltage  
V
V
IL,EXTAL  
SSPLL  
0.3  
5
C EXTAL pin input hysteresis  
V
250  
mV  
HYS,EXTAL  
1
2
3
4
5
Depending on the crystal a damping series resistor might be necessary  
XCLKS = 0  
f
= 4 MHz, C = 22 pF.  
osc  
Maximum value is for extreme cases using high Q, low frequency crystals  
If full swing Pierce oscillator/external clock circuitry is used. (XCLKS = 0)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
946  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix A Electrical Characteristics  
A.5.3  
Phase Locked Loop  
The oscillator provides the reference clock for the PLL. The PLL´s voltage controlled oscillator (VCO) is  
also the system clock source in self clock mode.  
A.5.3.1  
XFC Component Selection  
This section describes the selection of the XFC components to achieve a good filter characteristics.  
C
p
V
DDPLL  
R
C
XFC Pin  
s
Phase  
VCO  
KV  
f
f
vco  
f
1
ref  
osc  
D
KF  
refdv+1  
Detector  
fcmp  
Loop Divider  
1
1
2
synr+1  
Figure A-3. Basic PLL Functional Diagram  
The following procedure can be used to calculate the resistance and capacitance values using typical values  
for K , f and i from Table A-22.  
1
1
ch  
The grey boxes show the calculation for f  
= 80 MHz and f = 4 MHz. For example, these frequencies  
ref  
VCO  
are used for f  
= 4-MHz and a 40-MHz bus clock.  
OSC  
The VCO gain at the desired VCO frequency is approximated by:  
(f f  
)
1
vco  
126 80  
-------------------  
195  
---------------------------  
K 1V  
1
= -154.0MHz/V  
= –195MHz V e  
K
= K e  
V
1
The phase detector relationship is given by:  
K
= i  
K = 3.5µA ⋅ (154MHz V) = 539.1Hz ⁄ Ω  
Φ
ch  
V
i is the current in tracking mode.  
ch  
The loop bandwidth f should be chosen to fulfill the Gardner’s stability criteria by at least a factor of 10,  
C
typical values are 50. ζ = 0.9 ensures a good transient response.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
947  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix A Electrical Characteristics  
f
2 ⋅ ζ ⋅ f  
ref  
f < ------------;= 0.9)  
ref  
1
10  
f
<
------------------------------------------ -----  
C
C
4 10  
2
π ⋅ ζ + 1 + ζ  
f < 100kHz  
C
And finally the frequency relationship is defined as  
f
VCO  
= 20  
n = --------------- = 2 ⋅ (synr + 1)  
f
ref  
With the above values the resistance can be calculated. The example is shown for a loop bandwidth  
f = 20 kHz:  
C
2 ⋅ π ⋅ n f  
C
2 ⋅ π ⋅ 20 20kHz  
-----------------------------------------  
(539.1Hz) ⁄ Ω  
R =  
=
= 4.7kΩ  
-----------------------------  
K
Φ
The capacitance C can now be calculated as:  
s
2
2 ⋅ ζ  
= ---------------------- =  
π ⋅ f R  
C
0.516  
--------------  
C
C
;= 0.9)  
= 5.5nF = ~ 4.7nF  
s
f
R  
The capacitance C should be chosen in the range of:  
p
C
C
s
s
C ≤  
------  
------  
C = 470pF  
P
p
20  
10  
A.5.3.2  
Jitter Information  
The basic functionality of the PLL is shown in Figure A-3. With each transition of the clock f , the  
cmp  
deviation from the reference clock f is measured and input voltage to the VCO is adjusted  
ref  
accordingly.The adjustment is done continuously with no abrupt changes in the clock output frequency.  
Noise, voltage, temperature and other factors cause slight variations in the control loop resulting in a clock  
jitter. This jitter affects the real minimum and maximum clock periods as illustrated in Figure A-4.  
1
2
3
N-1  
N
0
t
min1  
t
nom  
t
max1  
t
minN  
t
maxN  
Figure A-4. Jitter Definitions  
MC9S12XDP512 Data Sheet, Rev. 2.11  
948  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix A Electrical Characteristics  
The relative deviation of t  
is at its maximum for one clock period, and decreases towards zero for larger  
nom  
number of clock periods (N).  
Defining the jitter as:  
t
(N)  
t
(N)  
max  
min  
J(N) = max 1 –  
, 1 –  
----------------------  
----------------------  
N t  
N t  
nom  
nom  
For N < 1000, the following equation is a good fit for the maximum jitter:  
j
1
N
J(N) =  
+ j  
--------  
2
J(N)  
1
5
10  
20  
N
Figure A-5. Maximum Bus Clock Jitter Approximation  
This is very important to notice with respect to timers, serial modules where a prescaler will eliminate the  
effect of the jitter to a large extent.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
949  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix A Electrical Characteristics  
Table A-22. PLL Characteristics  
Conditions are shown in Table A-4 unless otherwise noted  
Num  
C
Rating  
Symbol  
Min  
Typ  
Max  
Unit  
1
2
3
4
5
6
7
8
9
P Self clock mode frequency  
f
1
8
5.5  
80  
4
MHz  
MHz  
SCM  
D VCO locking range  
f
VCO  
1
D Lock detector transition from acquisition to tracking mode  
D Lock detection  
|∆  
|
3
%
trk  
1
|∆  
|
0
1.5  
2.5  
8
%
Lock  
1
D Unlock detection  
|∆  
|
|
0.5  
6
%
unl  
1
D Lock detector transition from tracking to acquisition mode  
|∆  
%
unt  
2
C PLLON total stabilization delay (auto mode)  
t
0.24  
0.09  
0.16  
–195  
126  
38.5  
3.5  
ms  
ms  
stab  
2
D PLLON acquisition mode stabilization delay  
t
acq  
2
D PLLON tracking mode stabilization delay  
t
ms  
al  
10 D Fitting parameter VCO loop gain  
11 D Fitting parameter VCO loop frequency  
12 D Charge pump current acquisition mode  
13 D Charge pump current tracking mode  
K
MHz/V  
MHz  
µA  
1
f
1
| i  
|
|
ch  
ch  
| i  
µA  
2
14 C Jitter fit parameter 1  
j
0.9  
1.3  
0.12  
%
1
2
15 C Jitter fit parameter 2  
j
0.02  
%
2
1
2
% deviation from target frequency  
f
= 4 MHz, f  
= 40 MHz equivalent f  
= 80 MHz: REFDV = #$00, SYNR = #$09, C = 4.7 nF, C = 470 pF, R = 4.7 kΩ  
VCO  
osc  
BUS  
S
P
S
A.6  
MSCAN  
Table A-23. MSCAN Wake-up Pulse Characteristics  
Conditions are shown in Table A-4 unless otherwise noted  
Num  
C
Rating  
Symbol  
Min  
Typ  
Max  
Unit  
1
2
P MSCAN wakeup dominant pulse filtered  
P MSCAN wakeup dominant pulse pass  
t
5
2
µs  
µs  
WUP  
t
WUP  
A.7  
SPI Timing  
This section provides electrical parametrics and ratings for the SPI. In Table A-24 the measurement  
conditions are listed.  
Table A-24. Measurement Conditions  
Description  
Value  
Unit  
Drive mode  
Full drive mode  
50  
pF  
V
1
Load capacitance C  
on all outputs  
LOAD ,  
Thresholds for delay measurement points  
(20% / 80%) V  
DDX  
1
Timing specified for equal load on all SPI output pins. Avoid asymmetric load.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
950  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Appendix A Electrical Characteristics  
A.7.1  
Master Mode  
In Figure A-6 the timing diagram for master mode with transmission format CPHA = 0 is depicted.  
SS1  
(Output)  
2
1
12  
12  
13  
13  
3
SCK  
(CPOL = 0)  
(Output)  
4
4
SCK  
(CPOL = 1)  
(Output)  
5
6
MISO  
Bit 6 . . . 1  
MSB IN2  
10  
MSB OUT2  
LSB IN  
(Input)  
9
11  
MOSI  
(Output)  
Bit 6 . . . 1  
LSB OUT  
1. If configured as an output.  
2. LSBF = 0. For LSBF = 1, bit order is LSB, bit 1, ..., bit 6, MSB.  
Figure A-6. SPI Master Timing (CPHA = 0)  
In Figure A-7 the timing diagram for master mode with transmission format CPHA=1 is depicted.  
SS1  
(Output)  
1
12  
12  
13  
13  
3
2
SCK  
(CPOL = 0)  
(Output)  
4
4
SCK  
(CPOL = 1)  
(Output)  
5
6
MISO  
(Input)  
MSB IN2  
Bit 6 . . . 1  
LSB IN  
11  
Bit 6 . . . 1  
9
MOSI  
(Output)  
Port Data  
Master LSB OUT  
Port Data  
Master MSB OUT2  
1.If configured as output  
2. LSBF = 0. For LSBF = 1, bit order is LSB, bit 1, ..., bit 6, MSB.  
Figure A-7. SPI Master Timing (CPHA = 1)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
951  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix A Electrical Characteristics  
In Table A-25 the timing characteristics for master mode are listed.  
Table A-25. SPI Master Mode Timing Characteristics  
Num  
C
Characteristic  
SCK frequency  
Symbol  
Min  
Typ  
Max  
Unit  
1
1
D
D
D
D
D
D
D
D
D
D
D
D
f
1/2048  
2
1/2  
2048  
f
sck  
bus  
SCK period  
t
t
bus  
sck  
2
Enable lead time  
t
8
1/2  
1/2  
1/2  
t
t
t
lead  
sck  
sck  
sck  
3
Enable lag time  
t
lag  
4
Clock (SCK) high or low time  
Data setup time (inputs)  
Data hold time (inputs)  
Data valid after SCK edge  
Data valid after SS fall (CPHA = 0)  
Data hold time (outputs)  
Rise and fall time inputs  
Rise and fall time outputs  
t
wsck  
5
t
ns  
ns  
ns  
ns  
ns  
ns  
ns  
su  
6
t
8
hi  
9
t
20  
29  
15  
vsck  
10  
11  
12  
13  
t
vss  
t
ho  
t
8
rfi  
t
8
rfo  
A.7.2  
Slave Mode  
In Figure A-8 the timing diagram for slave mode with transmission format CPHA = 0 is depicted.  
SS  
(Input)  
1
12  
12  
13  
13  
3
SCK  
(CPOL = 0)  
(Input)  
4
4
2
SCK  
(CPOL = 1)  
10  
7
(Input)  
8
9
11  
11  
MISO  
(Output)  
See  
See  
Bit 6 . . . 1  
Slave LSB OUT  
Slave MSB  
6
Note  
Note  
5
MOSI  
(Input)  
Bit 6 . . . 1  
MSB IN  
LSB IN  
NOTE: Not defined  
Figure A-8. SPI Slave Timing (CPHA = 0)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
952  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix A Electrical Characteristics  
In Figure A-9 the timing diagram for slave mode with transmission format CPHA = 1 is depicted.  
SS  
(Input)  
3
1
12  
13  
13  
2
SCK  
(CPOL = 0)  
(Input)  
4
4
12  
11  
SCK  
(CPOL = 1)  
(Input)  
8
9
MISO  
See  
Bit 6 . . . 1  
Slave MSB OUT  
Slave LSB OUT  
LSB IN  
Note  
(Output)  
7
5
6
MOSI  
(Input)  
MSB IN  
Bit 6 . . . 1  
NOTE: Not defined  
Figure A-9. SPI Slave Timing (CPHA = 1)  
In Table A-26 the timing characteristics for slave mode are listed.  
Table A-26. SPI Slave Mode Timing Characteristics  
Num  
C
Characteristic  
SCK frequency  
Symbol  
Min  
Typ  
Max  
Unit  
1
1
D
D
D
D
D
D
D
D
D
D
D
D
D
D
f
DC  
4
1/4  
f
sck  
bus  
SCK period  
t
t
sck  
bus  
2
Enable lead time  
t
4
t
t
t
lead  
bus  
bus  
bus  
3
Enable lag time  
t
4
lag  
4
Clock (SCK) high or low time  
Data setup time (inputs)  
Data hold time (inputs)  
Slave access time (time to data active)  
Slave MISO disable time  
Data valid after SCK edge  
Data valid after SS fall  
Data hold time (outputs)  
Rise and fall time inputs  
Rise and fall time outputs  
t
4
wsck  
5
t
8
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
su  
6
t
8
hi  
7
t
20  
20  
a
8
t
22  
dis  
1
1
9
t
29 + 0.5 t  
vsck  
bus  
10  
11  
12  
13  
0.5 t  
t
29 + 0.5 t  
vss  
bus  
t
8
ho  
t
rfi  
t
8
rfo  
1
added due to internal synchronization delay  
bus  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
953  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix A Electrical Characteristics  
A.8  
External Bus Timing  
The following conditions are assumed for all following external bus timing values:  
Crystal input within 45% to 55% duty  
Equal loads of pins  
Pad full drive (reduced drive must be off)  
A.8.1  
Normal Expanded Mode (External Wait Feature Disabled)  
1
1
CSx  
ADDRx  
ADDR1  
ADDR2  
2
3
RE  
4
5
WE  
8
6
7
11  
10  
DATAx  
EWAIT  
UDS, LDS  
(Read) DATA1  
(Write) DATA2  
9
Figure A-10. Example 1a: Normal Expanded Mode — Read Followed by Write  
MC9S12XDP512 Data Sheet, Rev. 2.11  
954  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Appendix A Electrical Characteristics  
Table A-27. Example 1a: Normal Expanded Mode Timing V  
Characteristic  
= 5.0 V (EWAITE = 0)  
DD35  
No.  
C
Symbol  
Min  
Max  
Unit  
1
D
Frequency of internal bus  
Internal cycle time  
f
D.C.  
25  
D.C.  
50  
5
40.0  
MHz  
ns  
i
t
cyc  
Frequency of external bus  
External cycle time (selected by EXSTR)  
f
20.0  
MHz  
ns  
o
t
cyce  
1
2
Address valid to RE fall  
t
ns  
ADRE  
3
D
Pulse width, RE  
PW  
35  
5
ns  
RE  
1
4
D
Address valid to WE fall  
t
ns  
ADWE  
5
D
Pulse width, WE  
PW  
23  
24  
28  
0
ns  
WE  
6
D
Read data setup time (if ITHRS = 0)  
Read data setup time (if ITHRS = 1)  
Read data hold time  
t
t
ns  
DSR  
D
ns  
DSR  
DHR  
7
8
D
t
ns  
D
Read enable access time  
Write data valid to WE fall  
Write data setup time  
t
11  
7
ns  
ACCR  
9
D
t
ns  
WDWE  
10  
11  
D
t
31  
8
ns  
DSW  
DHW  
D
Write data hold time  
t
ns  
1
Includes the following signals: ADDRx, UDS, LDS, and CSx.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
955  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix A Electrical Characteristics  
A.8.2  
Normal Expanded Mode (External Wait Feature Enabled)  
1
CSx  
ADDRx  
ADDR1  
3
ADDR2  
2
RE  
WE  
6
8
7
(Read) DATA1  
DATAx  
EWAIT  
UDS, LDS  
12  
13  
Figure A-11. Example 1b: Normal Expanded Mode — Stretched Read Access  
MC9S12XDP512 Data Sheet, Rev. 2.11  
956  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix A Electrical Characteristics  
1
CSx  
ADDRx  
RE  
ADDR1  
ADDR2  
4
5
WE  
9
11  
10  
DATAx  
EWAIT  
UDS, LDS  
(Write) DATA1  
12  
13  
Figure A-12. Example 1b: Normal Expanded Mode — Stretched Write Access  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
957  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix A Electrical Characteristics  
Table A-28. Example 1b: Normal Expanded Mode Timing V  
= 5.0 V (EWAITE = 1)  
DD35  
2 Stretch  
Cycles  
3 Stretch  
Cycles  
No.  
C
Characteristic  
Symbol  
Unit  
Min  
Max  
40.0  
Min  
Max  
40.0  
f
1
D
Frequency of internal bus  
D.C.  
25  
D.C.  
75  
100  
5
D.C.  
25  
D.C.  
100  
125  
5
MHz  
ns  
i
t
Internal cycle time  
cyc  
f
Frequency of external bus  
13.3  
10.0  
MHz  
ns  
o
t
External cycle time (selected by EXSTR)  
External cycle time (EXSTR+1EWAIT)  
cyce  
t
ns  
cycew  
1
t
2
ns  
Address valid to RE fall  
ADRE  
2
PW  
3
D
85  
5
110  
5
ns  
Pulse width, RE  
RE  
1
t
4
D
ns  
Address valid to WE fall  
ADWE  
2
PW  
5
D
73  
24  
28  
0
98  
24  
28  
0
ns  
Pulse width, WE  
WE  
t
D
Read data setup time (if ITHRS = 0)  
Read data setup time (if ITHRS = 1)  
Read data hold time  
ns  
DSR  
6
t
D
ns  
DSR  
t
7
8
D
ns  
DHR  
t
D
Read enable access time  
Write data valid to WE fall  
Write data setup time  
71  
7
86  
7
ns  
ACCR  
t
9
D
ns  
WDWE  
t
10  
11  
12  
13  
D
81  
8
106  
8
ns  
DSW  
t
D
Write data hold time  
ns  
DHW  
t
D
Address to EWAIT fall  
0
20  
47  
0
45  
72  
ns  
ADWF  
t
D
Address to EWAIT rise  
37  
62  
ns  
ADWR  
1
2
Includes the following signals: ADDRx, UDS, LDS, and CSx.  
Affected by EWAIT.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
958  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix A Electrical Characteristics  
A.8.3  
Emulation Single-Chip Mode (Without Wait States)  
1
1
2
3
ECLK2X  
ECLK  
5
7
4
6
ADDR  
[22:20]/  
ACC  
ACC2  
ADDR1  
ADDR1  
ACC1  
ADDR2  
ADDR2  
ADDR3  
[2:0]  
ADDR  
[19:16]/  
IQSTAT  
[3:0]  
IQSTAT1  
ADDR3  
ADDR3  
IQSTAT0  
ADDR  
[15:0]/  
IVD  
ADDR1  
IVD0  
ADDR2  
IVD1  
[15:0]  
8
9
DATAx  
DATA0  
(Read) DATA1  
12  
(Write) DATA2  
10  
11  
12  
R/W  
LSTRB  
Figure A-13. Example 2a: Emulation Single-Chip Mode — Read Followed by Write  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
959  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix A Electrical Characteristics  
Table A-29. Example 2a: Emulation Single-Chip Mode Timing V  
= 5.0 V (EWAITE = 0)  
DD35  
1
No.  
C
Characteristic  
Frequency of internal bus  
Symbol  
Min  
Max  
Unit  
1
D
D
D
D
D
D
D
D
D
D
D
f
D.C.  
25  
11.5  
11.5  
40.0  
MHz  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
i
Cycle time  
t
cyc  
2
Pulse width, E high  
Pulse width, E low  
Address delay time  
Address hold time  
PW  
5
EH  
3
PW  
EL  
4
t
t
AD  
AH  
5
0
4.5  
5
2
6
IVDx delay time  
t
t
IVDD  
IVDH  
2
7
IVDx hold time  
0
8
Read data setup time (ITHRS = 1 only)  
Read data hold time  
t
12  
0
DSR  
DHR  
DDW  
DHW  
RWD  
9
t
10  
11  
12  
Write data delay time  
t
Write data hold time  
t
t
0
5
3
Read/write data delay time  
–1  
1
2
3
Typical supply and silicon, room temperature only  
Includes also ACCx, IQSTATx  
Includes LSTRB  
MC9S12XDP512 Data Sheet, Rev. 2.11  
960  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix A Electrical Characteristics  
A.8.4  
Emulation Expanded Mode (With Optional Access Stretching)  
1
2
3
ECLK2X  
ECLK  
5
7
4
6
ADDR  
[22:20]/  
ACC  
ADDR1  
ACC1  
ADDR1  
000  
ADDR2  
ADDR2  
[2:0]  
ADDR  
[19:16]/  
IQSTAT  
[3:0]  
ADDR1  
ADDR1  
IQSTAT0  
?
ADDR1  
ADDR1  
IQSTAT1  
ADDR  
[15:0]/  
IVD  
IVD1  
ADDR2  
[15:0]  
8
9
DATAx  
DATA0  
12  
(Read) DATA1  
12  
R/W  
LSTRB  
Figure A-14. Example 2b: Emulation Expanded Mode — Read with 1 Stretch Cycle  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
961  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix A Electrical Characteristics  
1
2
3
ECLK2X  
ECLK  
5
7
4
6
ADDR  
[22:20]/  
ADDR1  
ACC1  
ADDR1  
000  
ADDR2  
ADDR2  
ACC  
[2:0]  
ADDR  
[19:16]/  
ADDR1  
IQSTAT  
IQSTAT0  
?
ADDR1  
ADDR1  
IQSTAT1  
[3:0]  
ADDR  
[15:0]/  
ADDR1  
IVD  
x
ADDR2  
[15:0]  
10  
11  
DATAx  
(write) data1  
12  
12  
R/W  
LSTRB  
Figure A-15. Example 2b: Emulation Expanded Mode Ò Write with 1 Stretch Cycle  
MC9S12XDP512 Data Sheet, Rev. 2.11  
962  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix A Electrical Characteristics  
Table A-30. Example 2b: Emulation Expanded Mode Timing V  
1 Stretch  
= 5.0 V (EWAITE = 0)  
DD35  
2 Stretch  
Cycles  
3 Stretch  
Cycles  
Cycle  
1
No.  
C
Characteristic  
Symbol  
Unit  
Min  
Max  
Min  
Max  
Min  
25  
Max  
25  
1
D
D
D
D
D
D
D
D
D
D
D
Internal cycle time  
t
25  
50  
11.5  
35  
0
25  
25  
75  
11.5  
60  
0
25  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
cyc  
Cycle time  
t
100  
11.5  
85  
0
14  
89.5  
5
cyce  
2
Pulse width, E high  
E falling to sampling E rising  
Address delay time  
Address hold time  
PW  
14  
39.5  
5
14  
64.5  
5
EH  
3
t
EFSR  
4
t
t
AD  
AH  
5
4.5  
5
4.5  
5
4.5  
5
2
6
IVD delay time  
t
0
0
0
IVDD  
IVDH  
2
7
IVD hold time  
t
8
Read data setup time  
Read data hold time  
Write data delay time  
Write data hold time  
t
12  
0
12  
0
12  
0
DSR  
DHR  
DDW  
DHW  
RWD  
9
t
10  
11  
12  
t
0
0
0
t
t
5
5
5
3
Read/write data delay time  
–1  
–1  
–1  
1
2
3
Typical supply and silicon, room temperature only  
Includes also ACCx, IQSTATx  
Includes LSTRB  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
963  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix A Electrical Characteristics  
A.8.5  
External Tag Trigger Timing  
1
ECLK  
ADDR  
ADDR  
DATAx  
DATA  
R/W  
2
TAGHI/TAGLO  
3
Figure A-16. External Trigger Timing  
Table A-31. External Tag Trigger Timing V  
= 5.0 V  
DD35  
1
No.  
C
Characteristic  
Frequency of internal bus  
Symbol  
Min  
Max  
Unit  
1
2
3
4
D
D
D
D
f
D.C.  
25  
40.0  
MHz  
ns  
i
Cycle time  
t
t
cyc  
TAGHI/TAGLO setup time  
TAGHI/TAGLO hold time  
t
11.5  
0
ns  
TS  
ns  
TH  
1
Typical supply and silicon, room temperature only  
MC9S12XDP512 Data Sheet, Rev. 2.11  
964  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix B Package Information  
Appendix B  
Package Information  
B.1  
General  
This section provides the physical dimensions of the MC9S12XDP512 packages.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
965  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Appendix B Package Information  
B.2  
144-Pin LQFP  
0.20 T L-M N  
0.20 T L-M N  
4X  
4X 36 TIPS  
PIN 1  
IDENT  
144  
109  
1
108  
4X  
P
J1  
J1  
L
M
C
L
V
B
X
140X  
G
B1  
V1  
VIEW Y  
VIEW Y  
NOTES:  
36  
73  
1. DIMENSIONS AND TOLERANCING PER ASME  
Y14.5M, 1994.  
2. DIMENSIONS IN MILLIMETERS.  
37  
72  
3. DATUMS L, M, N TO BE DETERMINED AT THE  
SEATING PLANE, DATUM T.  
N
4. DIMENSIONS S AND V TO BE DETERMINED  
AT SEATING PLANE, DATUM T.  
5. DIMENSIONS A AND B DO NOT INCLUDE  
MOLD PROTRUSION. ALLOWABLE  
A1  
S1  
A
S
PROTRUSION IS 0.25 PER SIDE. DIMENSIONS  
A AND B DO INCLUDE MOLD MISMATCH  
AND ARE DETERMINED AT DATUM PLANE H.  
6. DIMENSION D DOES NOT INCLUDE DAMBAR  
PROTRUSION. ALLOWABLE DAMBAR  
PROTRUSION SHALL NOT CAUSE THE D  
DIMENSION TO EXCEED 0.35.  
VIEW AB  
C
144X  
MILLIMETERS  
DIM MIN MAX  
0.1 T  
θ2  
θ2  
A
A1  
B
B1  
C
C1  
C2  
D
20.00 BSC  
10.00 BSC  
20.00 BSC  
10.00 BSC  
SEATING  
PLANE  
1.40  
0.05  
1.35  
0.17  
0.45  
0.17  
1.60  
T
0.15  
1.45  
0.27  
0.75  
0.23  
E
F
PLATING  
G
J
0.50 BSC  
J
C2  
AA  
F
0.09  
0.20  
0.05  
K
P
0.50 REF  
0.25 BSC  
R2  
R1  
R2  
S
S1  
V
V1  
Y
Z
0.13  
0.13  
0.20  
0.20  
θ
R1  
22.00 BSC  
11.00 BSC  
22.00 BSC  
11.00 BSC  
0.25 REF  
1.00 REF  
BASE  
METAL  
0.25  
D
GAGE PLANE  
M
0.08  
T L-M N  
AA  
θ
θ1  
θ2  
0.09  
0
0.16  
°
SECTION J1-J1  
(ROTATED 90  
144 PL  
(K)  
E
0
7
°
°
°
°
)
°
11  
13  
C1  
θ 1  
(Y)  
VIEW AB  
(Z)  
Figure B-1. 144-Pin LQFP Mechanical Dimensions (Case No. 918-03)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
966  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix B Package Information  
B.3  
112-Pin LQFP Package  
4X  
0.20  
T
L-M  
N
4X 28 TIPS  
0.20  
T
L-M  
N
4X  
P
J1  
J1  
PIN 1  
IDENT  
112  
85  
C
1
84  
L
VIEW Y  
X
108X  
G
X=L, M OR N  
VIEW Y  
V
B
L
M
AA  
J
B1  
V1  
28  
57  
BASE  
METAL  
F
D
29  
56  
M
0.13  
T
L-M  
N
N
SECTION J1-J1  
A1  
S1  
ROTATED 90 COUNTERCLOCKWISE  
°
NOTES:  
1. DIMENSIONING AND TOLERANCING PER  
ASME Y14.5M, 1994.  
A
2. DIMENSIONS IN MILLIMETERS.  
3. DATUMS L, M AND N TO BE DETERMINED AT  
SEATING PLANE, DATUM T.  
S
4. DIMENSIONS S AND V TO BE DETERMINED AT  
SEATING PLANE, DATUM T.  
5. DIMENSIONS A AND B DO NOT INCLUDE  
MOLD PROTRUSION. ALLOWABLE  
PROTRUSION IS 0.25 PER SIDE. DIMENSIONS  
A AND B INCLUDE MOLD MISMATCH.  
6. DIMENSION D DOES NOT INCLUDE DAMBAR  
PROTRUSION. ALLOWABLE DAMBAR  
PROTRUSION SHALL NOT CAUSE THE D  
DIMENSION TO EXCEED 0.46.  
C2  
VIEW AB  
0.10  
θ2  
C
0.050  
112X  
T
SEATING  
PLANE  
MILLIMETERS  
DIM MIN  
MAX  
20.000 BSC  
10.000 BSC  
θ3  
A
A1  
B
B1  
C
T
20.000 BSC  
10.000 BSC  
---  
1.600  
C1 0.050  
C2 1.350  
0.150  
1.450  
0.370  
0.750  
0.330  
θ
D
E
F
0.270  
0.450  
0.270  
G
J
K
0.650 BSC  
0.090  
0.170  
R R2  
0.500 REF  
0.325 BSC  
P
R1 0.100  
R2 0.100  
0.200  
0.200  
0.25  
R R1  
S
S1  
V
V1  
Y
22.000 BSC  
11.000 BSC  
GAGE PLANE  
22.000 BSC  
11.000 BSC  
0.250 REF  
1.000 REF  
Z
(K)  
C1  
θ1  
AA 0.090  
0.160  
8 °  
E
0 °  
θ
θ1  
θ2  
θ3  
3 °  
11 °  
11 °  
7 °  
(Y)  
(Z)  
13 °  
13 °  
VIEW AB  
Figure B-2. 112-Pin LQFP Mechanical Dimensions (Case No. 987)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
967  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix B Package Information  
B.4  
80-Pin QFP Package  
L
60  
41  
61  
40  
B
B
P
-A-  
-B-  
L
V
B
-A-,-B-,-D-  
DETAIL A  
DETAIL A  
21  
80  
F
1
20  
-D-  
A
M
S
S
S
0.20  
H
A-B  
D
D
0.05 A-B  
J
N
S
M
S
0.20  
C
A-B  
D
M
E
DETAIL C  
M
S
S
0.20  
C
A-B  
D
SECTION B-B  
VIEW ROTATED 90  
C
DATUM  
PLANE  
-H-  
°
-C-  
SEATING  
PLANE  
0.10  
H
M
G
NOTES:  
MILLIMETERS  
1. DIMENSIONING AND TOLERANCING PER  
ANSI Y14.5M, 1982.  
DIM MIN  
MAX  
14.10  
14.10  
2.45  
2. CONTROLLING DIMENSION: MILLIMETER.  
3. DATUM PLANE -H- IS LOCATED AT BOTTOM OF  
LEAD AND IS COINCIDENT WITH THE  
LEAD WHERE THE LEAD EXITS THE PLASTIC  
BODY AT THE BOTTOM OF THE PARTING LINE.  
4. DATUMS -A-, -B- AND -D- TO BE  
DETERMINED AT DATUM PLANE -H-.  
5. DIMENSIONS S AND V TO BE DETERMINED  
AT SEATING PLANE -C-.  
A
B
C
D
E
F
G
H
J
13.90  
13.90  
2.15  
0.22  
2.00  
0.22  
U
0.38  
2.40  
T
0.33  
0.65 BSC  
DATUM  
PLANE  
6. DIMENSIONS A AND B DO NOT INCLUDE  
MOLD PROTRUSION. ALLOWABLE  
---  
0.13  
0.65  
0.25  
0.23  
0.95  
-H-  
R
PROTRUSION IS 0.25 PER SIDE. DIMENSIONS  
A AND B DO INCLUDE MOLD MISMATCH  
AND ARE DETERMINED AT DATUM PLANE -H-.  
7. DIMENSION D DOES NOT INCLUDE DAMBAR  
PROTRUSION. ALLOWABLE DAMBAR  
PROTRUSION SHALL BE 0.08 TOTAL IN  
EXCESS OF THE D DIMENSION AT MAXIMUM  
MATERIAL CONDITION. DAMBAR CANNOT  
BE LOCATED ON THE LOWER RADIUS OR  
THE FOOT.  
K
L
12.35 REF  
M
N
P
Q
R
S
T
5
°
0.13  
10  
°
0.17  
0.325 BSC  
0
K
7
Q
°
°
W
0.13  
16.95  
0.13  
0.30  
17.45  
---  
X
DETAIL C  
U
V
W
X
0
---  
°
16.95  
0.35  
17.45  
0.45  
1.6 REF  
Figure B-3. 80-Pin QFP Mechanical Dimensions (Case No. 841B)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
968  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix C Recommended PCB Layout  
Appendix C  
Recommended PCB Layout  
The PCB must be carefully laid out to ensure proper operation of the voltage regulator as well as of the  
MCU itself. The following rules must be observed:  
Every supply pair must be decoupled by a ceramic capacitor connected as near as possible to the  
corresponding pins (C1–C6).  
Central point of the ground star should be the V  
pin.  
SSR  
Use low ohmic low inductance connections between V , V , and V .  
SSR  
SS1  
SS2  
V
must be directly connected to V  
.
SSR  
SSPLL  
Keep traces of V  
, EXTAL, and XTAL as short as possible and occupied board area for C7,  
SSPLL  
C8, and Q1 as small as possible.  
Do not place other signals or supplies underneath area occupied by C7, C8, and Q1 and the  
connection area to the MCU.  
Central power input should be fed in at the V  
/V  
pins.  
DDA SSA  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
969  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix C Recommended PCB Layout  
Table C-1. Recommended Decoupling Capacitor Choice  
Component  
Purpose  
Type  
Value  
C1  
C2  
V
V
filter capacitor  
filter capacitor  
Ceramic  
220 nF  
220 nF  
DD1  
Ceramic X7R  
DD2  
(not available on the 80-pin QFP  
packaging option)  
C3  
C4  
V
filter capacitor  
filter capacitor  
Ceramic X7R  
X7R/tantalum  
Ceramic X7R  
X7R/tantalum  
>=100 nF  
>=100 nF  
220 nF  
DDA  
DDR  
V
C5  
V
filter capacitor  
DDPLL  
C6  
V
filter capacitor  
>=100 nF  
DDX  
C7  
OSC load capacitor  
OSC load capacitor  
Comes from crystal manufacturer  
C8  
C9  
PLL loop filter capacitor  
PLL loop filter capacitor  
See PLL specification chapter  
C10  
C11  
C12  
R1  
V
V
filter capacitor  
filter capacitor  
X7R/tantalum  
X7R/tantalum  
>=100 nF  
>=100 nF  
DDX  
DDX  
PLL loop filter resistor  
Quartz  
See PLL specification chapter  
Q1  
MC9S12XDP512 Data Sheet, Rev. 2.11  
970  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix C Recommended PCB Layout  
Figure C-1. 144-Pin LQFP Recommended PCB Layout  
C3  
V
SSA  
V
REGEN  
V
DDA  
V
DD1  
C1  
V
SS2  
V
SS1  
C2  
V
DD2  
V
DDX2  
V
DDR2  
C11  
C12  
V
SSX2  
V
SSR2  
V
V
SSR1  
1
DDR  
Q1  
V
SSPLL  
V
DDPLL  
R1  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
971  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix C Recommended PCB Layout  
Figure C-2. 112-Pin LQFP Recommended PCB Layout  
V
C3  
V
SSA  
REGEN  
V
SSX  
V
DDA  
V
DD1  
C1  
V
SS1  
V
SS2  
C2  
V
DD2  
V
SSR  
V
SSPLL  
V
DDR  
Q1  
V
DDPLL  
R1  
MC9S12XDP512 Data Sheet, Rev. 2.11  
972  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix C Recommended PCB Layout  
Figure C-3. 80-Pin QFP Recommended PCB Layout  
C3  
V
V
SSA  
SSX  
V
DDA  
V
DD1  
V
V
SS2  
C1  
V
C2  
SS1  
DD2  
V
V
SSR  
V
Q1  
DDR  
SSPLL  
V
DDPLL  
R1  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
973  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix D Derivative Differences  
Appendix D  
Derivative Differences  
D.1  
Memory Sizes and Package Options S12XD - Family  
Device  
Package  
144 LQFP  
112 LQFP  
144 LQFP  
112 LQFP  
80 QFP  
Flash  
RAM  
EEPROM  
ROM  
32K  
9S12XDP512  
512K  
9S12XDT512  
9S12XDT384  
20K  
20K  
144 LQFP  
112 LQFP  
80 QFP  
384K  
4K  
144 LQFP  
112 LQFP  
80 QFP  
1
9S12XDQ256  
16K  
144 LQFP  
112 LQFP  
80 QFP  
1
9S12XDT256  
256K  
144 LQFP  
112 LQFP  
80 QFP  
1
9S12XD256  
14K  
16K  
144 LQFP  
112 LQFP  
80 QFP  
1
3S12XDG256  
256K  
128K  
112 LQFP  
80 QFP  
1
9S12XDG128  
128K  
2K  
12K  
112 LQFP  
80 QFP  
1
3S12XDG128  
MC9S12XDP512 Data Sheet, Rev. 2.11  
974  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Appendix D Derivative Differences  
Device  
Package  
112 LQFP  
80 QFP  
Flash  
128K  
64K  
RAM  
8K  
EEPROM  
ROM  
1
1
2K  
9S12XD128  
9S12XD64  
80 QFP  
4K  
1K  
1
Part includes module versions S12XDBGV3 and S12XMMCV3 which arenot covered in this  
data sheet. Please refer to the corresponding data sheets for detailed information.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
975  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix D Derivative Differences  
D.2  
Memory Sizes and Package Options S12XA - Family  
Device  
Package  
144 LQFP  
112 LQFP  
80 QFP  
Flash  
RAM  
EEPROM  
512K  
9S12XA512  
32K  
4K  
144 LQFP  
112 LQFP  
80 QFP  
1
256K  
128K  
9S12XA256  
16K  
12K  
112 LQFP  
80 QFP  
1
2K  
9S12XA128  
1
Part includes module versions S12XDBGV3 and S12XMMCV3 which are  
not covered in this data sheet. Please refer to the corresponding data sheets  
for detailed information.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
976  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix D Derivative Differences  
1 2 3 4 5  
D.3  
MC9S12XD-Family Flash Configuration  
DG128/  
D128  
D64  
DP512/  
DT512  
DT384  
DT256/  
DG256  
Global Address  
$78_0000 (PPAGE $E0)  
128k  
128k  
128k  
128k  
128k  
128k  
$7A_0000 (PPAGE $E8)  
$7C_0000 (PPAGE $F0)  
$7E_0000 (PPAGE $F8)  
128k  
128k  
128k  
128k  
64k  
Shared XGATE/CPU area  
Not implemented  
1. XGATE read access to Flash not possible on DG128/D128 and D64  
2. Program Pages available on DT384 are $E0 - $E7 and $F0 - $FF  
3. Program Pages available on DT256/DG256 are $E0 - $E7 and $F8 - $FF  
4. Shared XGATE/CPU area on DP512/DT512/DT384 at global address $78_0800 to $78_FFFF (30Kbyte)  
5. Shared XGATE/CPU area on DT256/DG256 at global address $78_0800 to $79_3FFF (46Kbyte)  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
977  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix D Derivative Differences  
D.4  
Peripheral Sets S12XD - Family  
Device  
Package  
144LQFP  
112LQFP  
144LQFP  
112LQFP  
80QFP  
XGATE CAN SCI SPI  
IIC  
2
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
ECT PIT  
A/D  
2/24  
2/16  
2/24  
2/16  
1/8  
I/O  
119  
91  
5
5
3
3
3
3
3
3
4
4
4
3
3
3
1
1
1
2
2
2
2
2
2
2
1
1
1
6
4
6
4
2
4
4
2
4
4
2
4
4
2
4
4
2
4
4
2
2
2
2
2
2
2
2
3
3
3
3
2
3
3
2
3
3
2
3
3
2
2
2
2
2
2
2
2
2
2
2
2
2
2
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
2
9S12XDP512  
119  
91  
9S12XDT512  
9S12XDT384  
9S12XDQ256  
9S12XDT256  
9S12XD256  
59  
144LQFP  
112LQFP  
80QFP  
2/24  
2/16  
1/8  
119  
91  
59  
144LQFP  
112LQFP  
80QFP  
2/24  
2/16  
1/8  
119  
91  
yes  
59  
144LQFP  
112LQFP  
80QFP  
2/24  
2/16  
1/8  
119  
91  
59  
144LQFP  
112LQFP  
80QFP  
2/24  
2/16  
1/8  
119  
91  
59  
144LQFP  
112LQFP  
80QFP  
2/24  
2/16  
1/8  
119  
91  
3S12XDG256  
59  
2
112LQFP  
80QFP  
1/16  
1/8  
91  
9S12XDG128  
3S12XDG128  
9S12XD128  
59  
(2)  
112LQFP  
80QFP  
1/16  
1/8  
91  
1
59  
yes  
(2)  
112LQFP  
80QFP  
1/16  
1/8  
91  
59  
9S12XD64  
80QFP  
1/8  
59  
1
Can execute code only from RAM  
MC9S12XDP512 Data Sheet, Rev. 2.11  
978  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix D Derivative Differences  
2
ATD1 routed to PAD00-15 instead of PAD08-23.  
D.5  
Peripheral Sets S12XA - Family  
Device  
Package  
144LQFP  
112LQFP  
80QFP  
XGATE CAN SCI SPI  
IIC  
1
ECT PIT  
A/D  
2/24  
2/16  
1/8  
I/O  
119  
91  
6
4
2
4
4
2
2
2
3
3
2
3
3
2
2
2
8
8
8
8
8
8
8
8
4
4
4
4
4
4
2
2
9S12XA512  
1
1
59  
yes  
144LQFP  
112LQFP  
80QFP  
1
2/24  
2/16  
1/8  
119  
91  
no  
9S12XA256  
9S12XA128  
1
1
59  
2
112LQFP  
80QFP  
1
1/16  
1/8  
91  
1
yes  
1
59  
1
2
Can execute code only from RAM  
ATD1 routed to PAD00-15 instead of PAD08-23  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
979  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix D Derivative Differences  
D.6  
Pinout explanations:  
A/D is the number of modules/total number of A/D channels.  
I/O is the sum of ports capable to act as digital input or output.  
144 Pin Packages:  
Port A = 8, B = 8, C=8, D=8, E = 6 + 2 input only,  
H = 8, J = 7, K = 8, M = 8, P = 8, S = 8, T = 8, PAD = 24  
25 inputs provide Interrupt capability (H =8, P= 8, J = 7, IRQ, XIRQ)  
112 Pin Packages:  
Port A = 8, B = 8, E = 6 + 2 input only, H = 8, J = 4, K = 7, M = 8, P = 8, S = 8, T = 8, PAD = 16  
22 inputs provide Interrupt capability (H =8, P= 8, J = 4, IRQ, XIRQ)  
80 Pin Packages:  
Port A = 8, B = 8, E = 6 + 2 input only, J = 2, M = 6, P = 7, S = 4, T = 8, PAD = 8  
11 inputs provide Interrupt capability (P= 7, J = 2, IRQ, XIRQ)  
CAN0 can be routed under software control from PM[1:0] to pins PM[3:2] or PM[5:4] or PJ[7:6].  
CAN4 pins are shared between IIC0 pins.  
CAN4 can be routed under software control from PJ[7:6] to pins PM[5:4] or PM[7:6].  
Versions with 4 CAN modules will have CAN0, CAN1, CAN2 and CAN4  
Versions with 3 CAN modules will have CAN0, CAN1 and CAN4.  
Versions with 2 CAN modules will have CAN0 and CAN4.  
Versions with 1 CAN modules will have CAN0  
Versions with 2 SPI modules will have SPI0 and SPI1.  
Versions with 4 SCI modules will have SCI0, SCI1, SCI2 and SCI4.  
Versions with 2 SCI modules will have SCI0 and SCI1.  
Versions with 1 IIC module will have IIC0.  
SPI0 can be routed to either Ports PS[7:4] or PM[5:2].  
SPI1 pins are shared with PWM[3:0]; In 144 and 112-pin versions, SPI1 can be routed under  
software control to PH[3:0].  
SPI2 pins are shared with PWM[7:4]; In 144 and 112-pin versions, SPI2 can be routed under  
software control to PH[7:4]. In 80-pin packages, SS-signal of SPI2 is not bonded out!  
MC9S12XDP512 Data Sheet, Rev. 2.11  
980  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix E Ordering Information  
Appendix E  
Ordering Information  
The following figure provides an ordering number example for the MC9S12XD-Family devices  
MC9S12X DP512 C FU  
Temperature Options  
C = -40˚C to 85˚C  
V = -40˚C to 105˚C  
M = -40˚C to 125˚C  
Package Option  
Temperature Option  
Device Title  
Package Options  
FU = 80 QFP  
PV = 112 LQFP  
FV = 144 LQFP  
Controller Family  
Figure E-1. Order Part Number Example  
Customers who place orders using the generic MC partnumbers which are constructed using the above  
rules will automatically receive our preferred maskset (ie preferred revision of silicon). If the product is  
updated in the future and a newer maskset is put into production, then the newer maskset may  
automatically ship against these generic MC partnumbers.  
If required, a customer can specify a particular maskset when ordering product. To do this, the customer  
must order the corresponding "SC" partnumber from the below table. Orders placed against these SC  
partnumbers will only ever receive one specific maskset. If a new maskset is made available, customers  
will be notified by PCN (Process Change Notification) but will have to order against a different SC part  
number in order to receive the new maskset. The marking on the device will be as per the left hand column  
in the below table independently of whether the MC or the SC partnumber is ordered.  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
981  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Appendix E Ordering Information  
MC9S12XDP512 Data Sheet, Rev. 2.11  
982  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix E Ordering Information  
Table E-1. MC and SC Part Numbers  
MC PART NUMBER  
SC PART NUMBER  
PKG  
(MASKSET-INDEPENDENT)  
FOR OUR RECOMMENDED  
MASKSET  
(MASKSET-SPECIFIC)  
FOR 0L15Y MASKSET ONLY  
MC9S12XDP512CPV  
MC9S12XDP512MPV  
MC9S12XDP512VPV  
MC9S12XDQ512CPV  
MC9S12XDQ512MPV  
MC9S12XDQ512VPV  
MC9S12XDT512CPV  
MC9S12XDT512MPV  
MC9S12XDT512VPV  
MC9S12XDT384CPV  
MC9S12XDT384MPV  
MC9S12XDT384VPV  
MC9S12XA512CPV  
MC9S12XA512VPV  
SC104002CPV  
SC104002MPV  
SC104002VPV  
SC104003CPV  
SC104003MPV  
SC104003VPV  
SC104004CPV  
SC104004MPV  
SC104004VPV  
SC104005CPV  
SC104005MPV  
SC104005VPV  
SC104011CPV  
SC104011VPV  
112  
112  
112  
112  
112  
112  
112  
112  
112  
112  
112  
112  
112  
112  
MC9S12XDT512CFU  
MC9S12XDT512MFU  
MC9S12XDT512VFU  
MC9S12XDT384CFU  
MC9S12XDT384MFU  
MC9S12XDT384VFU  
MC9S12XA512CFU  
MC9S12XA512VFU  
SC104013CFU  
SC104013MFU  
SC104013VFU  
SC104014CFU  
SC104014MFU  
SC104014VFU  
SC104020CFU  
SC104020VFU  
80  
80  
80  
80  
80  
80  
80  
80  
MC9S12XDP512CFV  
MC9S12XDP512MFV  
MC9S12XDP512VFV  
MC9S12XDT512CFV  
MC9S12XDT512MFV  
SC104023CFV  
SC104023MFV  
SC104023VFV  
SC104024CFV  
SC104024MFV  
144  
144  
144  
144  
144  
MC9S12XDP512 Data Sheet, Rev. 2.11  
Freescale Semiconductor  
983  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix E Ordering Information  
Table E-1. MC and SC Part Numbers  
MC PART NUMBER  
SC PART NUMBER  
PKG  
(MASKSET-INDEPENDENT)  
FOR OUR RECOMMENDED  
MASKSET  
(MASKSET-SPECIFIC)  
FOR 0L15Y MASKSET ONLY  
MC9S12XDT512VFV  
MC9S12XDT384CFV  
MC9S12XDT384MFV  
MC9S12XDT384VFV  
MC9S12XD384CFV  
MC9S12XD384MFV  
MC9S12XD384VFV  
SC104024VFV  
SC104025CFV  
SC104025MFV  
SC104025VFV  
SC104026CFV  
SC104026MFV  
SC104026VFV  
144  
144  
144  
144  
144  
144  
144  
MC9S12XDP512 Data Sheet, Rev. 2.11  
984  
Freescale Semiconductor  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Download from Www.Somanuals.com. All Manuals Search And Download.  
How to Reach Us:  
Home Page:  
www.freescale.com  
USA/Europe or Locations Not Listed:  
Freescale Semiconductor  
Technical Information Center, CH370  
1300 N. Alma School Road  
Chandler, Arizona 85224  
1-800-521-6274 or 480-768-2130  
Europe, Middle East, and Africa:  
+44 1296 380 456 (English)  
+46 8 52200080 (English)  
+49 89 92103 559 (German)  
+33 1 69 35 48 48 (French)  
Japan:  
Freescale Semiconductor Japan Ltd.  
Technical Information Center  
3-20-1, Minami-Azabu, Minato-ku  
Tokyo 106-0047, Japan  
0120-191014 or +81-3-3440-3569  
Asia/Pacific:  
Freescale Semiconductor Hong Kong Ltd.  
Technical Information Center  
2 Dai King Street  
Tai Po Industrial Estate  
Tai Po, N.T., Hong Kong  
852-26668334  
Information in this document is provided solely to enable system and  
software implementers to use Freescale Semiconductor products. There are  
no express or implied copyright licenses granted hereunder to design or  
fabricate any integrated circuits or integrated circuits based on the  
information in this document.  
For Literature Requests Only:  
Freescale Semiconductor Literature Distribution Center  
P.O. Box 5405  
Denver, Colorado 80217  
1-800-441-2447 or 303-675-2140  
Fax: 303-675-2150  
Freescale Semiconductor reserves the right to make changes without further  
notice to any products herein. Freescale Semiconductor makes no warranty,  
representation or guarantee regarding the suitability of its products for any  
particular purpose, nor does Freescale Semiconductor assume any liability  
arising out of the application or use of any product or circuit, and specifically  
disclaims any and all liability, including without limitation consequential or  
incidental damages. “Typical” parameters that may be provided in Freescale  
Semiconductor data sheets and/or specifications can and do vary in different  
applications and actual performance may vary over time. All operating  
parameters, including “Typicals”, must be validated for each customer  
application by customer’s technical experts. Freescale Semiconductor does  
not convey any license under its patent rights nor the rights of others.  
Freescale Semiconductor products are not designed, intended, or authorized  
for use as components in systems intended for surgical implant into the body,  
or other applications intended to support or sustain life, or for any other  
application in which the failure of the Freescale Semiconductor product could  
create a situation where personal injury or death may occur. Should Buyer  
purchase or use Freescale Semiconductor products for any such unintended  
or unauthorized application, Buyer shall indemnify and hold Freescale  
Semiconductor and its officers, employees, subsidiaries, affiliates, and  
distributors harmless against all claims, costs, damages, and expenses, and  
reasonable attorney fees arising out of, directly or indirectly, any claim of  
personal injury or death associated with such unintended or unauthorized  
use, even if such claim alleges that Freescale Semiconductor was negligent  
regarding the design or manufacture of the part.  
Freescale™ and the Freescale logo are trademarks of Freescale  
Semiconductor, Inc. All other product or service names are the property  
of their respective owners. The ARM POWERED logo is a registered  
trademark of ARM Limited. ARM7TDMI-S is a trademark of ARM Limited.  
Java and all other Java-based marks are trademarks or registered  
trademarks of Sun Microsystems, Inc. in the U.S. and other countries.  
The Bluetooth trademarks are owned by their proprietor and used by  
Freescale Semiconductor, Inc. under license.  
© Freescale Semiconductor, Inc. 2005. All rights reserved.  
MC9S12XDP512V2  
Rev. 2.11  
7/2005  
Download from Www.Somanuals.com. All Manuals Search And Download.  

Edirol Computer Drive UM 1EX User Manual
Fagor America Electric Pressure Cooker Express User Manual
Fisher Price Baby Accessories L7836 User Manual
Fisher Price Swing Sets 75986 User Manual
Ford Remote Starter SK5W7J 19A361 AA User Manual
Fostex MP3 Player PD 4 User Manual
Gaggenau Kitchen Grill VR 230 612 User Manual
Gaggia Printer M1005 MFP User Manual
Gefen Network Card EXT HDMI 5BNC User Manual
GE Food Processor 106848 User Manual