User’s M anual, V 0.4, Jan. 2002 C868 8 - Bit CMOS Microcontroller M i c r o c o n t ro l le r s N e v e r s t o p t h i n k i n g . Edition 2002-01 Published by Infineon Technologies AG, St.-Martin-Strasse 53, D-81541 München, Germany © Infineon Technologies AG 2002. All Rights Reserved. Attention please! The information herein is given to describe certain components and shall not be considered as warranted characteristics. Terms of delivery and rights to technical change reserved. We hereby disclaim any and all warranties, including but not limited to warranties of non-infringement, regarding circuits, descriptions and charts stated herein. Infineon Technologies is an approved CECC manufacturer. Information For further information on technology, delivery terms and conditions and prices please contact your nearest Infineon Technologies Office in Germany or our Infineon Technologies Representatives worldwide (see address list). Warnings Due to technical requirements components may contain dangerous substances. For information on the types in question please contact your nearest Infineon Technologies Office. Infineon Technologies Components may only be used in life-support devices or systems with the express written approval of Infineon Technologies, if a failure of such components can reasonably be expected to cause the failure of that life-support device or system, or to affect the safety or effectiveness of that device or system. Life support devices or systems are intended to be implanted in the human body, or to support and/or maintain and sustain and/or protect human life. If they fail, it is reasonable to assume that the health of the user or other persons may be endangered. User ’ s M a n u a l , V 0. 4 , J a n . 2 0 0 2 C868 8 - B i t C M O S M ic r o co n t ro l l e r M i c r o c o n t ro l le r s N e v e r s t o p t h i n k i n g . C868 Revision History: 2002-01 Previous Version: - Page V 0.4 Subjects (major changes since last revision) Controller Area Network (CAN): License of Robert Bosch GmbH We Listen to Your Comments Any information within this document that you feel is wrong, unclear or missing at all? Your feedback will help us to continuously improve the quality of this document. Please send your proposal (including a reference to this document) to: [email protected] C868 1 1.1 1.2 1.3 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Summary of Basic Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pin Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pin Definitions and Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.1 2.2 Fundamental Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1 CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3 CPU Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6 3 3.1 3.2 3.2.1 3.3 3.3.1 3.3.2 3.3.2.1 3.3.2.2 3.3.2.3 3.3.2.4 3.4 Memory Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Program Memory, “Code Space” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data Memory, “Data Space” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . General Purpose Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Program and Data Memory Organisation . . . . . . . . . . . . . . . . . . . . . . . . Special function register SYSCON1 . . . . . . . . . . . . . . . . . . . . . . . . . . Chip Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Normal Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bootstrap Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XRAM Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Unlock Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Special Function Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4.1 4.2 4.2.1 4.3 4.4 4.4.1 4.5 4.5.1 4.5.1.1 4.5.1.2 4.5.1.3 4.5.1.4 4.5.1.5 4.6 4.6.1 4.6.2 4.6.3 4.6.4 4.6.5 4.6.5.1 4.6.5.2 On-Chip Peripheral Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1 Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1 I/O Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1 Register Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2 Dedicated Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6 Port 1, Port 3 Circuitry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7 Read-Modify-Write Feature of Ports . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8 Timers/Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-9 Timer 0 and 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-9 Timer 0 and 1 Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-10 Mode 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-15 Mode 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-16 Mode 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-17 Mode 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-18 Functional Description of Timer/Counter 2 . . . . . . . . . . . . . . . . . . . . . . 4-19 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-19 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-19 Register Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-19 Operating Mode Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-25 Auto-Reload Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-25 Up/Down Count Disabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-25 Up/Down Count Enabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-26 User’s Manual -1 1-1 1-2 1-4 1-5 3-1 3-2 3-2 3-2 3-3 3-3 3-5 3-6 3-6 3-6 3-8 3-9 V 0.4, 2002-01 C868 4.6.6 4.6.7 4.6.8 4.6.9 4.7 4.7.1 4.7.1.1 4.7.1.2 4.7.1.3 4.7.1.4 4.7.1.5 4.7.1.6 4.7.1.7 4.7.1.8 4.7.1.9 4.7.1.10 4.7.1.11 4.7.2 4.7.2.1 4.7.2.2 4.7.2.3 4.7.2.4 4.7.3 4.7.4 4.7.5 4.7.6 4.7.7 4.7.8 4.8 4.8.1 4.8.2 4.8.3 4.8.4 4.8.4.1 4.8.4.2 4.9 4.9.1 4.9.1.1 4.9.1.2 4.9.2 4.9.3 4.10 4.10.1 Capture Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-28 Baudrate Generator Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-29 Count Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-30 Module Powerdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-30 Capture/Compare Unit (CCU6) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-31 Timer T12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-32 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-32 Counting Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-33 Switching Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-35 Duty Cycle of 0% and 100% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-36 Compare Mode of T12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-36 Switching Examples in edge-aligned Mode . . . . . . . . . . . . . . . . . . 4-40 Switching Examples in center-aligned Mode . . . . . . . . . . . . . . . . . 4-40 Dead-time Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-41 Capture Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-43 Single Shot Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-44 Hysteresis-Like Control Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-46 Timer T13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-47 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-47 Compare Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-48 Single Shot Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-49 Synchronization of T13 to T12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-49 Multi-channel Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-50 Trap Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-52 Modulation Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-53 Hall Sensor Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-55 Interrupt Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-58 Module Powerdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-58 Kernel Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-59 Register Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-59 Timer12 - Related Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-59 Timer13 - Related Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-66 Modulation Control Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-82 Global Module Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-82 Multi-Channel Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-88 Serial Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-100 Baud Rate Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-103 Baud Rate in Mode 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-104 Baud Rate in Mode 1 and 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-104 Details about Mode 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-106 Details about Modes 2 and 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-110 A/D Converter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-114 Register Definition of the ADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-115 User’s Manual -2 V 0.4, 2002-01 C868 4.10.2 4.10.3 4.10.4 4.11 4.11.1 ................................................... Operation of the ADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Module Powerdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conversion and Sample Time Control . . . . . . . . . . . . . . . . . . . . . . . . . A/D Converter Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5.1 5.2 5.3 5.4 5.5 5.5.1 5.5.2 5.5.3 5.6 5.6.1 5.7 Reset and System Clock Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1 Hardware Reset Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1 Internal Reset after Power-On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2 Brownout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4 Clock Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-5 PLL Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-5 VCO Frequency Ranges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-6 K-Divider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-6 Determining the PLL Clock Frequency . . . . . . . . . . . . . . . . . . . . . . . . 5-6 Slow Down Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-8 Switching Between PLL Clock and SDD Clock . . . . . . . . . . . . . . . . . . 5-8 Oscillator and Clock Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-10 6 6.1 6.1.1 6.1.2 6.1.3 6.1.4 Fail Save Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programmable Watchdog Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Register Definition of the Watchdog Timer . . . . . . . . . . . . . . . . . . . . . Starting the Watchdog Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Refreshing the Watchdog Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . Input Clock Selection .................................... 7 7.1 7.2 7.2.1 7.2.2 7.2.3 7.2.4 7.3 7.4 7.5 Interrupt System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1 Structure of the Interrupt System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1 Interrupt Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-8 Interrupt Enable Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-8 Interrupt Request Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-11 Interrupt Control Registers for CCU6 . . . . . . . . . . . . . . . . . . . . . . . . . 7-17 Interrupt Priority Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-31 Interrupt Priority Level Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-32 How Interrupts are Handled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-34 Interrupt Response Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-37 8 8.1 8.2 8.3 8.4 8.5 8.5.1 Power Saving Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Power Saving Mode Control Registers ........................ Register Description ..................................... Idle Mode ............................................... Slow Down Mode Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Power Down Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exit from Software Power Down Mode . . . . . . . . . . . . . . . . . . . . . . . User’s Manual -3 4-117 4-118 4-118 4-119 4-121 6-1 6-1 6-1 6-5 6-5 6-6 8-1 8-1 8-2 8-4 8-5 8-6 8-6 V 0.4, 2002-01 C868 User’s Manual -4 V 0.4, 2002-01 C868 Introduction 1 Introduction The C868 is a member of the Infineon Technologies C800 family of 8-bit microcontrollers. It is fully compatible to the standard 8051 microcontroller. Its features include the capture compare unit (CCU6) which is useful in motor control applications, extended power saving provisions, on-chip RAM and RFI related improvements. The C868 has a maximum CPU clock rate of 40MHz. At 40MHz it achieves a 300ns instruction cycle time. The C868 basically operates with internal program memory only. The C868-1R contains 8K x 8 on-chip ROM of program memory and the C868-1S contains 8K x 8 of on-chip RAM of program memory. Different operating modes are provided to allow flexibility in the access of the different types of memory. An additional RAM, XRAM, is provided for the implementation of in-system programming. Figure 1-1 shows the different functional units of the C868 and Figure 1-2 shows the simplified logic symbol of the C868. RAM 256Ω 8 XRAM 256 Ω8 Timer 0 Timer 1 Figure 1-1 User’s Manual Port 1 I/O 5-bit Port 3 I/O 8-bit Timer 2 CPU 8 datapointers ROM/RAM 8K Ω 8 Boot ROM 4K x 8 8-bit UART 16-bit Capture/ Compare Unit 16-bit Compare Unit 8-Bit ADC Watchdog Timer Analog/ Digital Input C868 Functional Units 1-1 V 0.4, 2002-01 C868 Introduction 1.1 Summary of Basic Features Listed below is a summary of the main features of the C868: • C800 core : –Fully compatible to standard 8051 microcontroller –Superset of the 8051 architecture with 8 datapointers • 6.25 - 40 MHz internal system clock (built-in PLL with software configurable divider) –external clock of 6.67 - 10.67 MHz –300ns instruction cycle time (@40 MHz system clock) • 8 Kbyte on-chip Program ROM for C868-1R and 8 KByte on-chip Program RAM for C868-1S • In-system programming support for programming the XRAM(C868-1R) or XRAM/ Program RAM(C868-1S) –This feature is realized through 4KB Boot ROM • 256 byte on-chip RAM • 256 byte on-chip XRAM • One 8-bit and one 5 bits general purpose push-pull I/O ports – Enhanced sink current of 10 mA on Port 1/3 (total sink current of 46 mA @ 100oC) • Three 16-bit timers/counters –Timer 0 / 1 –Timer/counter 2 (up/down counter feature) –Timer 1 or 2 can be used for serial baudrate generator • Capture/compare unit (CCU6) for PWM signal generation –3-channel, 16-bit capture/compare unit –1-channel, 16-bit compare unit • Full duplex serial interface (UART) • 5 channel 8-bit A/D Converter • 13 interrupt vectors with 2 priority levels • Programmable 16-bit Watchdog Timer • Brown out detection • Power Saving Modes –Slow-down mode –Idle mode (can be combined with slow-down mode) –Power-down mode with wake up capability through INT0 or RxD pins. • Individual power-down control for timer/counter 2, capture/compare unit and A/D converter. • P-DSO-28-1, P-TSSOP-38-1 packages • Temperature ranges: SAB-C868-1RR,SAB-C868-1SR,SAB-C868-1RG,SAB-C868-1SG TA = 0 to 70 oC SAF-C868-1RR,SAF-C868-1SR,SAF-C868-1RG,SAF-C868-1SG TA = – 40 to 85 oC User’s Manual 1-2 V 0.4, 2002-01 C868 Introduction VDDP VSSP VAREF VAGND Port 1 5-bit Digital I/O RESET Port 3 8-bit Digital I/O C868 ALE/BSL 5 ADC channels CTRAP TxD RxD 4 External Interrupts VDDC Figure 1-2 User’s Manual VSSC Logic Symbol 1-3 V 0.4, 2002-01 C868 Introduction 1.2 Pin Configuration P1.4/RxD P1.3/INT3 P1.2 P1.1/EXF2 1 38 RESET 2 37 3 36 4 35 NC 5 34 P3.7/CC60 P3.6/COUT60 NC ALE/BSL P1.0/TxD 6 33 P3.1/CTRAP NC NC 7 32 P3.0/COUT63 8 31 P3.4/COUT61 VDDP VSSP 9 30 10 29 XTAL2 XTAL1 CCPOS0/T2/INT0/AN0 11 28 VDDC CCPOS1/T2EX/INT1/AN1 12 27 CCPOS2/INT2/AN2 VAGND VSSC 13 26 14 25 VAREF 15 24 P3.3/CC62 P3.2/COUT62 P3.5/CC61 AN3 16 23 AN4 17 22 NC NC 18 21 19 20 Figure 1-3 User’s Manual NC NC NC NC C868 Pin Configuration P-TSSOP-38 Package (top view) P3.4/COUT61 Figure 1-4 C868 1 28 P3.0/COUT63 P3.1/CTRAP 2 27 3 26 ALE/BSL P3.6/COUT60 P3.7/CC60 4 25 5 24 6 23 RESET P1.4/RxD P1.3/INT3 P1.2 P1.1/EXF2 P1.0/TxD VDDP VSSP 7 XTAL2 XTAL1 VDDC VSSC 8 21 9 20 P3.3/CC62 P3.2/COUT62 P3.5/CC61 AN4 AN3 10 19 VAREF 11 18 12 VAGND CCPOS2/INT2/AN2 13 17 16 14 15 C868 22 CCPOS1/T2EX/INT1/AN1 CCPOS0/T2/INT0/AN0 C88 Pin Configuration P-DSO-28 Package (top view) 1-4 V 0.4, 2002-01 C868 Introduction 1.3 Pin Definitions and Functions This section describes all external signals of the C868 with its function. Table 1-1 Symbol P1.0– P1.4 P3.0– P3.7 Pin Definitions and Functions Pin Numbers PDSO28 PTSSOP38 12-8 6,4-1 12 11 10 9 8 6 4 3 2 1 I/O*) Function I/O Port 1 is a 5-bit push-pull bidirectional I/O port. As alternate digital functions, port 1 contains the interrupt 3, timer 2 overflow flag, receive data input and transmit data output of serial interface. The alternate functions are assigned to the pins of port 1 as follows: P1.0/TxD Transmit data of serial interface P1.1/EXF2 Timer 2 overflow flag P1.2 P1.3/INT3 Interrupt 3 P1.4/RxD Receive data of serial interface 2,3,23, 32,33,25, I/O 24,1, 26,31,24, 22,5,6 36,37 Port 3 is an 8-bit push-pull bidirectional I/O port. This port also serves as alternate functions for the CCU6 functions. The functions are assigned to the pins of port 3 as follows : P3.0/COUT63 16 bit compare channel output P3.1/CTRAP CCU trap input P3.2/COUT62 Output of capture/compare ch 2 P3.3/CC62 Input/output of capture/compare ch 2 P3.4/COUT61 Output of capture/compare ch 1 P3.5/CC61 Input/output of capture/compare ch 1 P3.6/COUT60 Output of capture/compare ch 0 P3.7/CC60 Input/output of capture/compare ch 0 2 3 23 24 1 22 5 6 32 33 25 26 31 24 36 37 VAREF 19 15 – Reference voltage for the A/D converter. VAGND 18 14 – Reference ground for the A/D converter. *)I=Input O=Output User’s Manual 1-5 V 0.4, 2002-01 C868 Introduction Table 1-1 Symbol Pin Definitions and Functions Pin Numbers I/O*) Function PDSO28 PTSSOP38 AN4 21 17 I Analog Input Channel 4 is input channel 4 to the ADC unit. AN3 20 16 I Analog Input Channel 3 is input channel 3 to the ADC unit. CCPOS0/ 17 INT2/AN2 13 I External Interrupt 2 Input/ Analog Input Channel 2 Multiplexed external interrupt input or Hall input signal and input channel 2 to the ADC unit. CCPOS1/ 16 T2EX/ INT1/AN1 12 I Timer 2 Trigger/External Interrupt 1 Input/ Analog Input Channel 1/ Multiplexed external interrupt input or Hall input signal, input channel 1 to the ADC unit, trigger to Timer 2. CCPOS0/ 15 T2/INT0/ AN0 11 I Input to Counter 2/External Interrupt 0 Input/ Analog Input Channel 0 Multiplexed external interrupt input or Hall input signal, counter 2 input or input channel 0 to the ADC unit. 7 38 I RESET A low level on this pin for two machine cycle while the oscillator is running resets the device. ALE/BSL 4 34 I/O Address Latch Enable/Bootstrap Mode A high level on this pin during reset allows the device to go into the bootstrap mode. After reset, this pin will output the address latch enable signal. The ALE can be disabled by bit EALE in SFR SYSCON0. RESET VSSP 14 10 – IO Ground (0V) VDDP 13 9 – IO Power Supply (+3.3V) VSSC 25 27 – Core Ground (0V) VDDC 26 28 – Core Power Supply (+2.5V) *)I=Input O=Output User’s Manual 1-6 V 0.4, 2002-01 C868 Introduction Table 1-1 Symbol Pin Definitions and Functions Pin Numbers I/O*) Function PDSO28 PTSSOP38 NC – 5,7,8,18, – 1920,21, 22,23,35 Not connected XTAL1 27 29 I XTAL1 Output of the inverting oscillator amplifier. XTAL2 28 30 O XTAL2 Input to the inverting oscillator amplifier and input to the internal clock generation circuits. To drive the device from an external clock source, XTAL2 should be driven, while XTAL1 is left unconnected. *)I=Input O=Output User’s Manual 1-7 V 0.4, 2002-01 C868 Introduction User’s Manual 1-8 V 0.4, 2002-01 C868 Fundamental Structure 2 Fundamental Structure The C868 is fully compatible to the architecture of the standard 8051 microcontroller family. While maintaining all architectural and operational characteristics of the 8051, the C868 incorporates a CPU with 8 datapointers, a 8-bit A/D converter, a 16-bit capture/ compare unit, a 16 bit timer 2 that can be used as baudrate generator, an interrupt structure with 2 priority levels, built-in PLL with a fixed factor of 15 and a variable divider, an XRAM data memory as well as some enhancements in the Fail Save Mechanism Unit. Figure 2-1 shows a block diagram of the C868. User’s Manual 2-1 V 0.4, 2002-01 C868 Fundamental Structure VDDC VSSC XTAL1 C868 OSC XRAM RAM ROM/ RAM 256 x 8 256 x 8 8k x 8 XTAL2 PLL RESET Boot/ Self Test ROM 4k x 8 CPU 8 datapointers Programmable Watchdog Timer Port 1 Timer 0 Port 1 5-bit digital I/O Timer 1 Timer 2 UART Port 3 Capture/Compare Unit 4 external interrupts VAREF VAGND Port 3 8-bit digital I/O Interrupt Unit VDDP A/D Converter 8-Bit VSSP 5-Bit Analog In Figure 2-1 User’s Manual Block Diagram of the C868 2-2 V 0.4, 2002-01 C868 Fundamental Structure 2.1 CPU The C868 is efficient both as a controller and as an arithmetic processor. It has extensive facilities for binary and BCD arithmetic and excels in its bit-handling capabilities. Efficient use of program memory results from an instruction set consisting of 44% one-byte, 41% two-byte, and 15% three-byte instructions. With a 10.67 MHz external crystal (giving a 40MHz CPU clock), 58% of the instructions execute in 300 ns. The CPU (Central Processing Unit) of the C868 consists of the instruction decoder, the arithmetic section and the program control section. Each program instruction is decoded by the instruction decoder. This unit generates the internal signals controlling the functions of the individual units within the CPU. These internal signals have an effect on the source and destination of data transfers and control the ALU processing. The arithmetic section of the processor performs extensive data manipulation and is comprised of the arithmetic/logic unit (ALU), an A register, B register and PSW register. The ALU accepts 8-bit data words from one or two sources and generates an 8-bit result under the control of the instruction decoder. The ALU performs the arithmetic operations add, substract, multiply, divide, increment, decrement, BCD-decimal-add-adjust and compare, and the logic operations AND, OR, Exclusive OR, complement and rotate (right, left or swap nibble (left four)). Also included is a Boolean processor performing the bit operations as set, clear, complement, jump-if-set, jump-if-not-set, jump-if-set-andclear and move to/from carry. Between any addressable bit (or its complement) and the carry flag, the ALU can perform the bit operations of logical AND or logical OR with the result returned to the carry flag. The program control section controls the sequence in which the instructions stored in program memory are executed. The 16-bit program counter (PC) holds the address of the next instruction to be executed. The conditional branch logic enables internal and external events to the processor to cause a change in the program execution sequence. Additionally to the CPU functionality of the 8051 standard microcontroller, the C868 contains 8 datapointers. For complex applications with peripherals located in the external data memory space or extended data storage capacity, this turned out to be a "bottle neck" for the 8051’s communication to the external world. Especially programming in high-level languages (PLM51, C51, PASCAL51) requires extended RAM capacity and at the same time a fast access to this additional RAM because of the reduced code efficiency of these languages. Accumulator ACC is the symbol for the accumulator register. The mnemonics for accumulator-specific instructions, however, refer to the accumulator simply as A. Program Status Word The Program Status Word (PSW) contains several status bits that reflect the current state of the CPU. User’s Manual 2-3 V 0.4, 2002-01 C868 Fundamental Structure PSW Program Status Word Register [Reset value: 00H] D7H D6H D5H D4H D3H D2H D1H D0H CY AC F0 RS1 RS0 OV F1 P rwh rwh rw rw rw rwh rw rwh Field Bits Typ Description P 0 rwh Parity Flag Set/cleared by hardware after each instruction to indicate an odd/even number of "one" bits in the accumulator, i.e. even parity. F1 1 rw OV 2 rwh Overflow Flag Used by arithmetic instructions. RS0 RS1 3 4 rw General Purpose Flag Register Bank select control bits These bits are used to select one of the four register banks. Table 1 : RS1 RS0 Function 0 0 Bank 0 selected, data address 00H-07H 0 1 Bank 1 selected, data address 08H-0FH 1 0 Bank 2 selected, data address 10H-17H 1 1 Bank 3 selected, data address 18H-1FH F0 5 rw AC 6 rwh Auxiliary Carry Flag Used by instructions which execute BCD operations. CY 7 rwh Carry Flag Used by arithmetic instructions. User’s Manual General Purpose Flag 2-4 V 0.4, 2002-01 C868 Fundamental Structure B Register The B register is used during multiply and divide and serves as both source and destination. For other instructions it can be treated as another scratch pad register. Stack Pointer The stack pointer (SP) register is 8 bits wide. It is incremented before data is stored during PUSH and CALL executions and decremented after data is popped during a POP and RET (RETI) execution, i.e. it always points to the last valid stack byte. While the stack may reside anywhere in the on-chip RAM, the stack pointer is initialized to 07H after a reset. This causes the stack to begin a location = 08H above register bank zero. The SP can be read or written under software control. User’s Manual 2-5 V 0.4, 2002-01 C868 Fundamental Structure 2.2 CPU Timing A machine cycle of the C868 consists of 6 states (12 system clock periods). Each state is divided into a phase 1 half and a phase 2 half. Thus, a machine cycle consists of 12 internal clock periods, numbered S1P1 (state 1, phase 1) through S6P2 (state 6, phase 2). Each state lasts two internal clock periods. Typically, arithmetic and logic operations take place during phase 1 and internal register-to-register transfers take place during phase 2. The diagrams in Figure 2-2 show the fetch/execute timing related to the internal states and phases. Since these internal clock signals are not user-accessible, the ALE (address latch enable) signal are shown for external reference. ALE is normally activated twice during each machine cycle: once during S1P2 and S2P1, and again during S4P2 and S5P1. Execution of a one-cycle instruction begins at S1P2, when the op-code is latched into the instruction register. If it is a two-byte instruction, the second reading takes place during S4 of the same machine cycle. If it is a one-byte instruction, there is still a fetch at S4, but the byte read (which would be the next op-code) is ignored (discarded fetch), and the program counter is not incremented. In any case, execution is completed at the end of S6P2. Figure 2-2 (a) and (b) show the timing of a 1-byte, 1-cycle instruction and for a 2-byte, 1-cycle instruction. Most C868 instructions are executed in one cycle. MUL (multiply) and DIV (divide) are the only instructions that take more than two cycles to complete; they take four cycles. Normally two code bytes are fetched from the program memory during every machine cycle. The only exception to this is when a MOVX instruction is executed. MOVX is a one-byte, 2-cycle instruction that accesses external data memory. During a MOVX, the two fetches in the second cycle are skipped while the external data memory is being addressed and strobed. Figure 2-2 (c) and (d) show the timing for a normal 1-byte, 2cycle instruction and for a MOVX instruction. User’s Manual 2-6 V 0.4, 2002-01 C868 Fundamental Structure S1 S2 S1 S2 S3 S4 S5 S6 S3 S4 S5 S6 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 fSYS ALE Read Opcode S1 S2 S3 Read Next Opcode (Discard) S4 S5 Read Next Opcode Again S6 (a) 1-Byte, 1-Cycle Instruction, e.g. INC A Read Opcode S1 S2 S3 Read 2nd Byte S4 S5 Read Next Opcode S6 (b) 2 Byte, 1-Cycle Instruction, e.g. ADD A #Data Read Next Opcode Again Read Next Opcode (Discard) Read Opcode S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 (c) 1-Byte, 2-Cycle Instruction, e.g. INC DPTR Read Opcode (MOVX) S1 S2 S3 Read Next Opcode Again No No Fetch Fetch No ALE Read Next Opcode (Discard) S4 (d) MOVX (1-Byte, 2-Cycle) S5 S6 ADDR S1 S2 S3 S4 S5 S6 DATA Access of External Memory Figure 2-2 User’s Manual Fetch Execute Sequence 2-7 V 0.4, 2002-01 C868 Fundamental Structure User’s Manual 2-8 V 0.4, 2002-01 C868 Memory Organization 3 Memory Organization The C868 CPU manipulates operands in the following five address spaces: – up to 8 Kbyte of RAM internal program memory : 8K ROM for C868-1R : 8K RAM for C868-1S – – – – 4 Kbyte of internal Self test and Boot ROM 256 bytes of internal data memory 256 bytes of internal XRAM data memory 128 byte special function register area Figure 3-1 illustrates the memory address spaces of the C868. Internal XRAM FFFFH FF00H 1FFFH indirect addr. Internal RAM Internal Internal Self Test and Boot ROM (4 KByte) Figure 3-1 Special FFH Function Regs. 80H Internal RAM 0000H "Code Space" direct addr. "Data Space" 7FH 00H "Internal Data Space" C868 Memory Map The internal Self Test and Boot ROM overlaps the internal program memory in the address range from 0000H to 0FFFH. Depending on the selected operating mode (chipmode), either internal program memory or the internal Self Test and Boot ROM is accessed in this address range. User’s Manual 3-1 V 0.4, 2002-01 C868 Memory Organization 3.1 Program Memory, “Code Space” The C868-1S has 8 Kbytes of random access program memory (RAM) and 4 Kbytes of Boot and Self Test ROM. In the normal mode the C868-1S executes program code out of the internal RAM. The Boot ROM includes a bootstrap loader program for the bootstrap loader of the C8681S. The software routines of the bootstrap loader program allow the easy and quick programming or loading of the internal program RAM via the serial interface while the MCU is in-circuit. The C868-1R has 8Kbytes of ROM and 4 Kbytes of Self Test ROM. The Self Test ROM has a self test program for the self test mode of the C868. 3.2 Data Memory, “Data Space” The data memory address space consists of an internal and an external(XRAM) memory space. The internal data memory is divided into three physically separate and distinct blocks: the lower 128 bytes of RAM, the upper 128 bytes of RAM, and the 128 byte special function register (SFR) area. While the upper 128 bytes of data memory and the SFR area share the same address locations, they are accessed through different addressing modes. The lower 128 bytes of data memory can be accessed through direct or register indirect addressing; the upper 128 bytes of RAM can be accessed through register indirect addressing only; the special function registers are accessible through direct addressing. Four 8-register banks, each bank consisting of eight 8-bit multi-purpose registers, occupy locations 00H through 1FH in the lower RAM area. The next 16 bytes, locations 20H through 2FH, contain 128 directly addressable bit locations. The stack can be located anywhere in the internal data memory address space, and the stack depth can be expanded up to 256 bytes. The internal XRAM is located in the in the external data memory area and must be accessed by external data memory instructions (MOVX). 3.2.1 General Purpose Registers The lower 32 locations of the internal RAM are assigned to four banks with eight general purpose registers (GPRs) each. Only one of these banks may be enabled at a time. Two bits in the program status word, RS0 and RS1, select the active register bank. This allows fast context switching, which is useful when entering subroutines or interrupt service routines. The 8 general purpose registers of the selected register bank may be accessed by register addressing. With register addressing the instruction opcode indicates which register is to be used. For indirect addressing R0 and R1 are used as pointer or index register to address internal or external memory (e.g. MOV @R0). User’s Manual 3-2 V 0.4, 2002-01 C868 Memory Organization Reset initializes the stack pointer to location 07H and increments it once to start from location 08H which is also the first register (R0) of register bank 1. Thus, if one is going to use more than one register bank, the SP should be initialized to a different location of the RAM which is not used for data storage. 3.3 Program and Data Memory Organisation The C868 can operate in four different operating modes (chipmodes) with different program and data memory organisations: – – – – Normal Mode Normal XRAM Mode Bootstrap Mode Bootstrap XRAM Mode 3.3.1 Special function register SYSCON1 There are four control bits located in SFR SYSCON1 which control the code and data memory organisation of the C868. Two of these bits (BSLEN and SWAP) cannot be programmed as normal bits but with a special software unlock sequence. The special software unlock sequence was implemented to prevent unintentional changing of these bits and consists of consecutive followed instructions which have to set set two dedicated enable bits. SYSCON1 System Control Register 1 [Reset value: 00XXX0X0B] 7 6 5 4 3 2 1 0 ESWC SWC - - - BSLEN - SWAP w w r r r rw r rw Field Bits Typ Description SWAP 0 rw User’s Manual SWAP Code and Data Memory SWAP = 0 : Code and data memory are in their standard locations (default) SWAP = 1 : Code and data memory are swapped The modification of this bit is by software only and must be completed by the special software unlock sequence in order to effect the mode change. Otherwise, this bit automatically reverts to its previous value with the third EOI (end of instruction) after this bit is modified. This is to prevent any incorrect status read. 3-3 V 0.4, 2002-01 C868 Memory Organization Field Bits Typ Description BSLEN 2 rw Bootstrap Mode Enable BSLEN = 1 : Bootstrap mode BSLEN = 0 : Normal mode (default) This bit is initialised to the reverse of the value at external pin ALE/BSL latched at the rising edge of RESET. This bit can be set/cleared by software to change between the modes. The modification of this bit by sofware must be completed by the special software unlock sequence in order to effect the mode change. Otherwise, this bit automatically reverts to its previous value with the third EOI (end of instruction) after this bit is modified. This is to prevent any incorrect status read. SWC 6 w Switch Mode The SWC bit must be set as the second instruction in a special software unlock sequence directly after having set bit ESWC. The new chipmode becomes active after the second EOI (end of instruction) after this event and the SWC bit is also cleared simultaneously. SWC is a write only bit. Reading SWC returns a ’0’. ESWC 7 w Enable Switch Mode The ESWC bit must be set during the first instruction in the special software unlock sequence. The bit ESWC will be cleared by hardware with the third EOI (end of instruction) after this event. ESWC is a write only bit. Reading ESWC returns a ’0’. - [7:2] r reserved; returns ’0’ if read; should be written with ’0’; User’s Manual 3-4 V 0.4, 2002-01 C868 Memory Organization 3.3.2 Chip Modes The various chip modes supported are shown in Figure 3-2. Normal Mode Bootstrap Mode Normal XRAM Mode Bootstrap XRAM Mode Hardware Software Figure 3-2 Entry and exit of Chip Modes A valid hardware reset would, of course, override any of the above entry or exit procedures. Table 3-1 Hardware and Software Selection of Chipmodes Operating Mode (Chipmode) Hardware Selection Software Selection Normal Mode ALE/BSL pin = high RESET rising edge ALE/BSL = don’t care; setting bits BSLEN, SWAP = 0,0; execute unlocking sequence Normal XRAM Mode Not possible setting bits BSLEN,SWAP = 0,1; execute unlocking sequence Bootstrap XRAM Mode Not possible setting bits BSLEN,SWAP = 1,1; execute unlocking sequence Bootstrap Mode ALE/BSL = don’t care; setting bits BSLEN, SWAP = 1,0; execute unlocking sequence User’s Manual ALE/BSL pin = low RESET rising edge 3-5 V 0.4, 2002-01 C868 Memory Organization 3.3.2.1 Normal Mode The normal mode is the standard 8051 compatible operating mode of the C800. Table 3-2 Normal Memory Configuration for C868 Memory Space Memory Boundary Code Space RAM/ROM: 0000H to 1FFFH Internal Data Space XRAM: FF00H to FFFFH 3.3.2.2 Bootstrap Mode In the bootstrap mode, code is fetched from the boot-ROM when PC is less than 1000H. A dedicated 4 Kbyte boot-ROM is implemented to support this function. The actual code inside the boot-ROM could be made up of various components such as programming code for RAM module, download code, initialization routines or diagnostic software. The bootstrap mode can be entered via one of the possible ways: – hardware start-up sequence, or – software entry using special unlock sequence The exit from the bootstrap mode is possible via one of the possible ways: – hardware reset, or – software using special unlock sequence The memory mapping for this mode is shown in the Table 3-3 Table 3-3 Bootstrap Memory Configuration for C868-1R Memory Space Memory Boundary Code Space Boot ROM: 0000H to 0FFFH Internal Data Space XRAM: FF00H to FFFFH, ROM/RAM: 0000H to 1FFFH Once in the bootstrap mode, the on-chip XRAM is always enabled irrespective of the XMAP0 bit in SFR SYSCON0. Exiting the bootstrap mode via software, the on-chip XRAM access returns to the state prior to entering this mode, depending on XMAP0. 3.3.2.3 XRAM Modes In the XRAM modes, code and data memory are swapped and in this case the code can be fetched from the data space. This is useful for running diagnostic software. The entry and exit into this mode is always through the special software unlock sequence. The XRAM mode could be entered from either the normal mode or the User’s Manual 3-6 V 0.4, 2002-01 C868 Memory Organization bootstrap mode. Table 3-4 and Table 3-5 show the various memory configurations respectively in an example. Table 3-4 Normal XRAM Mode Memory Space Memory Boundary Code Space XRAM: FF00H to FFFFH Data Space ROM/RAM: 0000H to 1FFFH Table 3-5 Bootstrap XRAM Mode Memory Space Memory Boundary Code Space Boot ROM: 0000H to 0FFFH XRAM: FF00H to FFFFH Data Space RAM/ROM: 0000H to 1FFFH The on-chip XRAM, which is in the upper part of the 64 KB data space, is always enabled in this mode for code access irrespective of the XMAP0 bit. The external data space also becomes code space. The actual physical sizes of the various memory types as mentioned above are product specific. In the C868, the external accesses are prohibited. For code spaces, appropriate branch instructions must therefore be inserted. The on-chip data space is accessible, as usual, via MOVX instructions. The on-chip data memory accesses to RAM/ROM are restricted by the physical memory available in the respective product. For the C868-1R, the option to disable the access to the ROM is selectable upon request. This option is reflected in SFR Version bit 7(1 for access disabled). An exit from the XRAM mode is possible by software only. In this mode the on-chip XRAM is disabled as data space irrespective of XMAP0 bit in SFR SYSCON0. It will remain disabled after exit from XRAM mode unless the XMAP0 had been cleared prior to entering this mode. User’s Manual 3-7 V 0.4, 2002-01 C868 Memory Organization 3.3.2.4 Software Unlock Sequence A special software unlock sequence is required to enter or exit the various chip modes supported. The bits ESWC and SWC in SFR SYSCON1 are implemented in a way to prevent unintentional changing of the bits SWAP and BSLEN. Any change of the bits SWAP or BSLEN not accompanied by the software unlock sequence will have no effect and the above bits will revert back to their previous values two instructions after being changed. The following programming steps must be executed at the ESWC/SWC unlock sequence: i) First Instruction: This instruction should set the ESWC bit and modify of SWAP and/or BSLEN, as necessary. MOV SYSCON1,#10000X0YB ;X is BSLEN, Y is SWAP ii) Second Instruction : The second instruction must set the SWC bit. If this instruction sequence is followed, then only the mode change in the previous instructions will come into effect. Otherwise the previous mode will be retained and both bits ESWC and SWC are cleared. The new chip mode becomes effective after the end of the second instruction after the writing of the bit SWC. MOV SYSCON1,#11000X0YB ;X is BSLEN, Y is SWAP iii) Third Instruction: The instruction following this sequence should be used for initialization of the program counter to the 16 bit start-address of the new code memory resource, e.g. with : LJMP 0XXXXH ;XXXX is the 16-bit hexadecimal address in new code memory If both SWAP and BSLEN bits are set in the first instruction, both modes will still be entered. It is, in any case, the responsibility of the user to provide the appropriate relocation address depending on the mode prior to the execution of this sequence. The special software unlock instruction sequence cannot be interrupted by an interrupt request. Any read or write operation to SFR SYSCON1 will block the interrupt generation for the first cycle of the directly following instruction. Therefore, the response time of an interrupt request may be additionally delayed. User’s Manual 3-8 V 0.4, 2002-01 C868 Memory Organization 3.4 Special Function Registers All registers, except the program counter and the four general purpose register banks, reside in the special function register area. The special function register area consists of two portions: the standard special function register area and the mapped special function register area. For accessing the mapped special function area, bit RMAP in special function register SYSCON0 must be set. All other special function registers are located in the standard special function register area which is accessed when RMAP is cleared (“0“). SYSCON0 System Control Register 0 [Reset value: XX10XXX1B] 7 6 5 4 3 2 1 0 - - EALE RMAP - - - XMAP0 r r rw rw r r r rw The functions of the shaded bits are not described here Field Bits Typ Description RMAP 4 rw Special Function Register Map Control RMAP = 0 : The access to the non-mapped (standard) special function register area is enabled. RMAP = 1 : The access to the mapped special function register area is enabled. - [7:2] r reserved; returns ’0’ if read; should be written with ’0’; As long as bit RMAP is set, the mapped special function register area can be accessed. This bit is not cleared automatically by hardware. Thus, when non-mapped/mapped registers are to be accessed, the bit RMAP must be cleared/set respectively by software. The 109 special function registers (SFR) include pointers and registers that provide an interface between the CPU and the other on-chip peripherals. All available SFRs whose address bits 0-2 are 0 (e.g. 80H, 88H, 90H, ..., F0H, F8H ) are bit- addressable. Totally there are 128 directly addressable bits within the SFR area. All SFRs are listed in Table 3-6 and Table 3-7. In Table 3-6 they are organized in groups which refer to the functional blocks of the C868-1R, C868-1S. Table 3-7 illustrates the contents (bits) of the SFRs User’s Manual 3-9 V 0.4, 2002-01 C868 Memory Organization Table 3-6 Special Function Registers - Functional Blocks Block Symbol Name Add- Contents ress after Reset C800 ACC core B DPH DPL DPSEL PSW SP SCON SBUF IEN0 IEN1 IEN2 IP0 IP1 TCON TMOD TL0 TL1 TH0 TH1 PCON Accumulator B-Register Data Pointer, High Byte Data Pointer, Low Byte Data Pointer Select Register Program Status Word Register Stack Pointer Serial Channel Control Register Serial Data Buffer Interrupt Enable Register 0 Interrupt Enable Register 1 Interrupt Enable Register 2 Interrupt Priority Register 0 interrupt Priority Register 1 Timer 0/1 Control Register Timer Mode Register Timer 0, Low Byte Timer 1, Low Byte Timer 0, High Byte Timer 1, High Byte Power Control Register E0H1) F0H1) 83H 82H 84H D0H1) 81H 98H1) 99H A8H1) A9H AAH B8H1) ACH 88H1) 89H 8AH 8BH 8CH 8DH 87H 00H 00H 00H 00H 00H 00H 07H 00H 00H 0X000000B2) XXXXX000B2) XX0000XXB2) XX000000B2) XX000000B2) 00H 00H 00H 00H 00H 00H 0XXX0000B 2) System Wake-up Control Register Clock Control Register External Interrupt Control Register External Interrupt Request Register Peripheral Interrupt Request Register Peripheral Management Ctrl Register Peripheral Management Status Register SCU/Watchdog Control Register ROM Version Register System Control Register 0 System Control Register 1 8EH 9FH 91H 92H 93H E8H1) F8H1) C0H1) F9H ADH AFH XXX00000B2) 10011111B XXXXXX00B2) XXXXXX00B2) XXXXXXX0B2) XXXXX000B2) XXXXX000B2) X0X00000B2) 00H XX10XXX1B2) 00XXX0X0B2) PMCON0 CMCON EXICON IRCON0 IRCON1 PMCON1 PMCON2 SCUWDT VERSION SYSCON0 SYSCON1 1) Bit-addressable special function registers 2) “X“ means that the value is undefined and the location is reserved 3) Register is mapped by bit RMAP in SYSCON0.4=1 4) Register is mapped by bit RMAP in SYSCON0.4=0 User’s Manual 3-10 V 0.4, 2002-01 C868 Memory Organization Table 3-6 Special Function Registers - Functional Blocks (cont’d) Block Symbol Name Add- Contents ress after Reset A/D- ADCON0 Con- ADCON1 verter ADDATH A/D Converter Control Register 0 A/D Converter Control Register 1 A/D Converter Data Register D8H1) 0000X000B2) D9H XXXX0000B2) DBH 00H Ports Port 1 Register Port 1 Direction Register Port 3 Register Port 3 Direction Register Port 3 Alternate Function Register Port 1 Alternate Function Register 90H1) 90H1) B0H1) B0H1) B1H B4H XXX11111B XXX11111B FFH FFH 00H XXX00X00B2) Watch WDTCON dog WDTREL WDTL WDTH Watchdog Timer Control Register Watchdog Timer Reload Register Watchdog Timer, Low Byte Watchdog Timer, High Byte A2H A3H B2H B3H XXXXXX00B2) 00H 00H 00H Timer T2CON 2 T2MOD RC2H RC2L T2H T2L Timer 2 Control Register Timer 2 Mode Register Timer 2 Reload/Capture, High Byte Timer 2 Reload/Capture, Low Byte Timer 2, High Byte Timer 2, Low Byte C8H1) C9H CBH CAH CDH CCH 00H XXXXXXX0B2) 00H 00H 00H 00H P1 4) P1DIR 3) P3 4) P3DIR 3) P3ALT P1ALT 1) Bit-addressable special function registers 2) “X“ means that the value is undefined and the location is reserved 3) Register is mapped by bit RMAP in SYSCON0.4=1 4) Register is mapped by bit RMAP in SYSCON0.4=0 User’s Manual 3-11 V 0.4, 2002-01 C868 Memory Organization Table 3-6 Special Function Registers - Functional Blocks (cont’d) Block Symbol Name Add- Contents ress after Reset Capture/ Compare Unit Timer T12 Counter Register, Low Byte Timer T12 Counter Register, High Byte Timer T13 Counter Register, Low Byte Timer T13 Counter Register, High Byte Timer T12 Period Register, Low Byte Timer T12 Period Register, High Byte Timer T13 Period Register, Low Byte Timer T13 Period Register, High Byte Capture/Compare Ch 0 Reg, Low Byte Capture/Compare Ch 0 Reg, High Byte Capture/Compare Ch 1 Reg, Low Byte Capture/Compare Ch 1 Reg, High Byte Capture/Compare Ch 2 Reg, Low Byte Capture/Compare Ch 2 Reg, High Byte T13 Compare Register, Low Byte T13 Compare Register, High Byte Timer T12 Dead Time Ctrl, Low Byte Timer T12 Dead Time Ctrl, High Byte Compare Timer Status, Low Byte Compare Timer Status, High Byte Compare Timer Modification, Low Byte Compare Timer Modification, High Byte Timer Control Register 0, Low Byte Timer Control Register 0, High Byte Timer Control Register 2, Low Byte Timer Control Register 4, Low Byte Timer Control Register 4, High Byte Cap/Com Interrupt Register, Low Byte Cap/Com Interrupt Register, High Byte Cap/Com Int Status Set Reg, Low Byte Cap/Com Int Status Set Reg, High Byte Cap/Com Int Status Reset Reg, Low Byte Cap/Com Int Status Reset Reg,High Byte ECH EDH EEH EFH DEH DFH D2H D3H C2H C3H C4H C5H C6H C7H D4H D5H E6H E7H F4H F5H EAH EBH E2H E3H F2H F2H F3H E4H E5H BCH BDH BCH BDH T12L T12H T13L T13H T12PRL T12PRH T13PRL T13PRH CC60RL CC60RH CC61RL CC61RH CC62RL CC62RH CC63RL CC63RH T12DTCL T12DTCH CMPSTATL CMPSTATH CMPMODIFL CMPMODIFH TCTR0L TCTR0H TCTR2L3) TCTR4L4) TCTR4H4) ISL ISH ISSL4) ISSH4) ISRL3) ISRH3) 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 0H 00H 00H 00H 00H 00H 00H 00H 1) Bit-addressable special function registers 2) “X“ means that the value is undefined and the location is reserved 3) Register is mapped by bit RMAP in SYSCON0.4=1 4) Register is mapped by bit RMAP in SYSCON0.4=0 User’s Manual 3-12 V 0.4, 2002-01 C868 Memory Organization Table 3-6 Special Function Registers - Functional Blocks (cont’d) Block Symbol Name Add- Contents ress after Reset Capture/ Compare Unit Cap/Com Int Node Ptr Reg, Low Byte Cap/Com Int Node Ptr Reg, High Byte Cap/Com Interrupt Register, Low Byte Cap/Com Interrupt Register, High Byte Cap/Com Channel 0 Shadow, Low Byte Cap/Com Channel 0 Shadow, High Byte Cap/Com Channel 1 Shadow, Low Byte Cap/Com Channel 1 Shadow, High Byte Cap/Com Channel 2 Shadow, Low Byte Cap/Com Channel 2 Shadow, High Byte T13 Compare Shadow Reg, Low Byte T13 Compare Shadow Reg, High Byte Modulation Control Register, Low Byte Modulation Control Register, High Byte Trap Control Register, Low Byte Trap Control Register, High Byte Passive State Level Register, Low Byte MCM Output Register, Low Byte MCM Output Register, High Byte MCM Output Shadow Register, Low Byte MCM Output Shadow Register,High Byte MCM Control Register, Low Byte T12 Cap/Com Mode Sel Reg, Low Byte T12 Cap/Com Mode Sel Reg, High Byte BEH BFH BEH BFH FAH FBH FCH FDH FEH FFH B6H B7H D6H D7H CEH CFH A6H DCH DDH DCH DDH D6H F6H F7H INPL3) INPH3) IENL4) IENH4) CC60SRL CC60SRH CC61SRL CC61SRH CC62SRL CC62SRH CC63SRL CC63SRH MODCTRL3) MODCTRH3) TRPCTRL TRPCTRH PSLRL MCMOUTL4) MCMOUTH4) MCMOUTSL3) MCMOUTSH3) MCMCTRL4) T12MSELL T12MSELH 40H 39H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 1) Bit-addressable special function registers 2) “X“ means that the value is undefined and the location is reserved 3) Register is mapped by bit RMAP in SYSCON0.4=1 4) Register is mapped by bit RMAP in SYSCON0.4=0 User’s Manual 3-13 V 0.4, 2002-01 C868 Memory Organization Table 3-7 Contents of the SFRs, SFRs in numeric order of their addresses Addr Register Content after Reset1) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 81H SP 07H .7 .6 .5 .4 .3 .2 .1 .0 82H DPL 00H .7 .6 .5 .4 .3 .2 .1 .0 83H DPH 00H .7 .6 .5 .4 .3 .2 .1 .0 84H DPSE 00H L – – – – – D2 D1 D0 87H PCON 0XX0 SMOD – 0000B – SD GF1 GF0 PDE IDLE 88H TCON 00H TF1 TF0 TR0 IE1 IT1 IE0 IT0 89H TMOD 00H GATE C/NT1 M1(1) M0(1) GATE C/NT0 M1(0) M0(0) 1 0 8AH TL0 00H .7 .6 .5 .4 .3 .2 .1 .0 8BH TL1 00H .7 .6 .5 .4 .3 .2 .1 .0 8CH TH0 00H .7 .6 .5 .4 .3 .2 .1 .0 8DH TH1 00H .7 .6 .5 .4 .3 .2 .1 .0 8EH PMCO XXX0 – N0 0000B – – EBO BO SDST WS AT EPWD 8FH CMCO 1001 KDIV2 KDIV1 KDIV0 REL4 N 1111B P1 XXX1 – – – .4 1111B REL3 REL2 REL1 REL0 .3 .2 .1 .0 .0 90H2) TR1 90H3) P1DIR XXX1 – 1111B – – .4 .3 .2 .1 91H EXICO XXXX – N XX00B – – – – – ESEL3 ESEL2 92H IRCO N0 XXXX – XX00B – – – – – EXINT EXINT 3 2 93H IRCO N1 XXXX – XXX0B – – – – – – IADC 1) X means that the value is undefined and the location is reserved 2) This register is mapped with RMAP (SYSCON0.4)=0 3) This register is mapped with RMAP (SYSCON0.4)=1 Shaded registers are bit-addressable special function registers User’s Manual 3-14 V 0.4, 2002-01 C868 Memory Organization Table 3-7 Addr Register Contents of the SFRs, SFRs in numeric order of their addresses Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 SM0 SM1 SM2 REN TB8 RB8 TI RI .7 .6 .5 .4 .3 .2 .1 .0 A2H WDTC XXXX – ON XX00B – – – – – – WDT RIN A3H WDTR 00H EL .6 .5 .4 .3 .2 .1 .0 A6H PSL5 PSL4 PSL3 PSL2 PSL1 PSL0 A8H PSLRL 00H PSL63 – IEN0 0X00 EA – 0000B ET2 ES ET1 EX1 ET0 EX0 A9H IEN1 XXXX – X000B – – – – EX3 EX2 EADC AAH IEN2 XX00 – 00XXB – EINP3 EINP2 EINP1 EINP0 – – ACH IP1 XX00 – 0000B – .5 .4 .3 .2 .1 .0 ADH SYSC XX10 – – ON0 XXX1B SYSC 00XX ESWC SWC ON1 X0X0B EALE RMAP – – – XMAP 0 _ _ _ BSLE N _ SWAP 98H 99H AFH Content after Reset1) SCON 00H SBUF 00H B0H2) P3 .7 FFH .7 .6 .5 .4 .3 .2 .1 .0 B0H3) P3DIR FFH B1H P3ALT 00H .7 .6 .5 .4 .3 .2 .1 .0 CC60 COUT CC61 60 COUT CC62 61 COUT CTRA COUT 62 P 63 B2H .7 .6 .5 .4 .3 .2 .1 .0 .7 .6 .5 .4 .3 .2 .1 .0 B4H P1ALT XXX0 _ 0X00B _ _ RxD INT3 _ EXF2 TxD B6H CC63 00H SRL .6 .5 .4 .3 .2 .1 .0 B3H WDTL 00H WDTH 00H .7 1) X means that the value is undefined and the location is reserved 2) This register is mapped with RMAP (SYSCON0.4)=0 3) This register is mapped with RMAP (SYSCON0.4)=1 Shaded registers are bit-addressable special function registers User’s Manual 3-15 V 0.4, 2002-01 C868 Memory Organization Table 3-7 Addr Register Contents of the SFRs, SFRs in numeric order of their addresses Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 .7 .6 .5 .4 .3 .2 .1 .0 XX00 – 0000B – .5 .4 .3 .2 .1 .0 Content after Reset1) B7H CC63 00H SRH B8H IP0 BCH2) ISSL 00H ST12P ST12O SCC62 SCC62 SCC62 SCC62 SCC62 SCC62 M M F R F R F R BCH3) ISRL 00H RT12P RT12O RCC6 RCC6 RCC6 RCC6 RCC6 RCC6 M M 2F 2R 2F 2R 2F 2R BDH2) ISSH 00H – SIDLE SWHE SCHE – STRP ST13P ST13C F M M BDH3) ISRH 00H – RIDLE RWHE RCHE – RTRP RT13P RT13C F M M BEH2) IENL 00H ENT12 ENT12 ENCC ENCC ENCC ENCC ENCC ENCC PM OM 62F 62R 61F 61R 60F 60R BEH3) INPL 00H INPCH INPCH INPCC INPCC INPCC INPCC INPCC INPCC E.1 E.0 62.1 62.0 61.1 61.0 60.1 60.0 BFH2) IENH 00H – ENIDL ENWH EN E E CHE BFH3) INPH 00H – – INPT1 INPT1 INPT1 INPT1 INPER INPER 3.1 3.0 2.1 2.0 R.1 R.0 C0H SCUW 00H DT – PLLR – WDTR WDTE WDTD WDTR WDTR OI IS S E C2H CC60 00H RL .7 .6 .5 .4 .3 .2 .1 .0 C3H CC60 00H RH .7 .6 .5 .4 .3 .2 .1 .0 C4H CC61 00H RL .7 .6 .5 .4 .3 .2 .1 .0 C5H CC61 00H RH .7 .6 .5 .4 .3 .2 .1 .0 – ENTR ENT13 ENT13 PF PM CM 1) X means that the value is undefined and the location is reserved 2) This register is mapped with RMAP (SYSCON0.4)=0 3) This register is mapped with RMAP (SYSCON0.4)=1 Shaded registers are bit-addressable special function registers User’s Manual 3-16 V 0.4, 2002-01 C868 Memory Organization Table 3-7 Addr Register Contents of the SFRs, SFRs in numeric order of their addresses Content after Reset1) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 C6H CC62 00H RL .7 .6 .5 .4 .3 .2 .1 .0 C7H CC62 00H RH .7 .6 .5 .4 .3 .2 .1 .0 C8H T2CO 00H N TF2 EXF2 RCLK TCLK EXEN TR2 2 C/T2 CP/ RL2 C9H T2MO XXXX – D XXX0B – – – – – – DCEN CAH .7 .6 .5 .4 .3 .2 .1 .0 CBH RC2L 00H RC2H 00H .7 .6 .5 .4 .3 .2 .1 .0 CCH TL2 00H .7 .6 .5 .4 .3 .2 .1 .0 CDH TH2 00H .7 .6 .5 .4 .3 .2 .1 .0 CEH TRPC 00H TRL – – – – – TRP2 TRP1 TRP0 CFH TRPC 00H TRH TRPE TRPE TRPE TRPE TRPE TRPE TRPE TRPE N N13 N5 N4 N3 N2 N1 N0 D0H PSW CY AC F0 RS1 RS0 OV F1 P D2H T13PR 00H L .7 .6 .5 .4 .3 .2 .1 .0 D3H T13PR 00H H .7 .6 .5 .4 .3 .2 .1 .0 D4H CC63 00H RL .7 .6 .5 .4 .3 .2 .1 .0 D5H CC63 00H RH .7 .6 .5 .4 .3 .2 .1 .0 D6H2) MCMC 00H TRLL – – SWSY SWSY – N1 N0 D6H3) MODC 00H TRL MCME – N 00H SWSE SWSE SWSE L2 L1 L0 T12M T12M T12M T12M T12M T12M ODEN ODEN ODEN ODEN ODEN ODEN 5 4 3 2 1 0 1) X means that the value is undefined and the location is reserved 2) This register is mapped with RMAP (SYSCON0.4)=0 3) This register is mapped with RMAP (SYSCON0.4)=1 Shaded registers are bit-addressable special function registers User’s Manual 3-17 V 0.4, 2002-01 C868 Memory Organization Table 3-7 Addr Register Contents of the SFRs, SFRs in numeric order of their addresses Content after Reset1) D7H3) MODC 00H TRH D8H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 – T13M T13M T13M T13M T13M T13M T13M ODEN ODEN ODEN ODEN ODEN ODEN ODEN 6 5 4 3 2 1 0 ADCO 0000 ADST ADBS ADM1 ADM0 – N0 X000B Y ADCO X1XX – CAL – – ADST N1 0000B C1 ADCH ADCH ADCH 2 1 0 ADDA 00H TH .7 .6 .5 .2 DCH2) MCMO 00H UTL – R MCMP MCMP MCMP MCMP MCMP MCMP 5 4 3 2 1 0 DCH3) MCMO 00H UTSL STRM – CM MCMP MCMP MCMP MCMP MCMP MCMP S5 S4 S3 S2 S1 S0 DDH2) MCMO 00H UTH – – CURH CURH CURH EXPH EXPH EXPH 2 1 0 2 1 0 DDH3) MCMO 00H UTSH STRH – P CURH CURH CURH EXPH EXPH EXPH S2 S1 S0 S2 S1 S0 D9H DBH .4 .3 ADST ADCT ADCT C0 C1 C0 .1 .0 DEH T12PR 00H L .7 .6 .5 .4 .3 .2 .1 .0 DFH T12PR 00H H .7 .6 .5 .4 .3 .2 .1 .0 E0H ACC .7 .6 .5 .4 .3 .2 .1 .0 E2H TCTR 00H 0L CTM CDIR STE12 T12R T12PR T12CL T12CL T12CL E K2 K1 K0 E3H TCTR 10H 0H – – STE13 T13R T13 PRE E4H ISL 00H T12PM T12O M ICC62 ICC62 ICC61 ICC61 ICC60 ICC60 F R F R F R E5H ISH 00H – WHE 00H IDLE CHE T13 CLK2 T13CL T13CL K1 K0 TRPS TRPF T13PM T13C M 1) X means that the value is undefined and the location is reserved 2) This register is mapped with RMAP (SYSCON0.4)=0 3) This register is mapped with RMAP (SYSCON0.4)=1 Shaded registers are bit-addressable special function registers User’s Manual 3-18 V 0.4, 2002-01 C868 Memory Organization Table 3-7 Addr Register Contents of the SFRs, SFRs in numeric order of their addresses Content after Reset1) E6H T12DT 00H CL E7H T12DT 00H CH E8H Bit 7 – Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 – DTM5 DTM4 DTM3 DTM2 DTM1 DTM0 DTE1 Bit 0 DTR2 DTR1 DTR0 – DTE2 DTE0 PMCO XXXX – N1 X000B – – – – CCUDI T2DIS ADCDI S S EAH CMPM 00H ODIFL – MCC6 – 3S – – MCC6 MCC6 MCC6 2S 1S 0S EBH CMPM 00H ODIFH – MCC6 – 3R – – MCC6 MCC6 MCC6 2R 1R 0R ECH T12L 00H .7 .6 .5 .4 .3 .2 .1 .0 EDH T12H 00H .7 .6 .5 .4 .3 .2 .1 .0 EEH T13L 00H .7 .6 .5 .4 .3 .2 .1 .0 EFH T13H 00H .7 .6 .5 .4 .3 .2 .1 .0 F0H B 00H .7 .6 .5 .4 .3 .2 .1 .0 F2H2) TCTR 00H 4L T12ST T12ST – D R – DTRE T12RE T12RS T12RR S S F2H3) TCTR 00H 2L – F3H2) TCTR 00H 4H T13ST T13ST – D R – – T13RE T13RS T13RR S F4H CMPS 00H TATL – – – CC62S CC61S CC60S T T T F5H CMPS 00H TATH T13IM COUT COUT CC62P COUT CC61P COUT CC60P 63PS 62PS S 61PS S 60PS S F6H T12M 00H SELL MSEL MSEL MSEL MSEL MSEL MSEL MSEL MSEL 613 612 611 610 603 602 601 600 F7H T12M 00H SELH – T13TE T13TE T13TE T13TE T13TE T13SS T12SS D1 D0 C2 C1 C0 C C CC63S – T – – – MSEL MSEL MSEL MSEL 623 622 621 620 1) X means that the value is undefined and the location is reserved 2) This register is mapped with RMAP (SYSCON0.4)=0 3) This register is mapped with RMAP (SYSCON0.4)=1 Shaded registers are bit-addressable special function registers User’s Manual 3-19 V 0.4, 2002-01 C868 Memory Organization Table 3-7 Addr Register Contents of the SFRs, SFRs in numeric order of their addresses Content after Reset1) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 – – – – CCUS T2ST T Bit 0 F8H PMCO XXXX – N2 X000B ADCS T F9H VERSI 00H ON PROT VER6 VER5 VER4 VER3 VER2 VER1 VER0 FAH CC60 00H RL .7 .6 .5 .4 .3 .2 .1 .0 FBH CC60 00H RH .7 .6 .5 .4 .3 .2 .1 .0 FCH CC61 00H RL .7 .6 .5 .4 .3 .2 .1 .0 FDH CC61 00H RH .7 .6 .5 .4 .3 .2 .1 .0 FEH CC62 00H RL .7 .6 .5 .4 .3 .2 .1 .0 FFH CC62 00H RH .7 .6 .5 .4 .3 .2 .1 .0 1) X means that the value is undefined and the location is reserved 2) This register is mapped with RMAP (SYSCON0.4)=0 3) This register is mapped with RMAP (SYSCON0.4)=1 Shaded registers are bit-addressable special function registers User’s Manual 3-20 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4 On-Chip Peripheral Components This chapter gives detailed information about all on-chip peripherals of the C868 except for the integrated interrupt controller, which is described separately in chapter 7. 4.1 Ports The C868 has two kinds of ports. The first kind is push-pull ports instead of the traditional quasi-bidirectional ports. The ports belonging to this kind is port 1 which is a 5-bit I/O port and port 3 which is an eight-bit I/O port. When configured as inputs, these ports will be high impedance with Schmitt trigger feature. Port 3 is alternate for capture/compare functions whereas, port 1 has alternate functions for some of the pins. The second kind is dedicated ports which are shared by the interrupts, timer 2 inputs, capture/compare hall inputs and analog inputs. 4.2 I/O Ports Port 1 and 3 are push-pull ports. Port 1 and port 3 can function as normal I/O ports which have associated SFRs at address 90H and B0H respectively. These ports also have alternate functions as listed in Table 4-2. There are three SFRs dedicated for each of these ports. The first one is the port latch (P1/P3) and second one is direction control register (P1DIR/P3DIR) which is used to set the direction for each pin. In P1DIR/P3DIR, if the bit is set to 0 the respective port pin is an output, and 1 means an input. After reset, by default all the Port 1 and 3 pins are input. The third one is the alternate function register (P1ALT/P3ALT) which is used to set the function of each pin. When used as alternate function, the direction of the pins has to be set accordingly. When the bit is set an input, any read operation will return the value at the port. When the bit is set as an output, a read operation will return the latched value if it is part of a read-modify-write operation, otherwise a read operation will return the value at the port. Note: While in the idle mode or the power down mode the I/O ports hold the last values. User’s Manual 4-1 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.2.1 Register Overview The following table lists the port SFR registers. They contain the value in the port latches. Table 4-1 Memory Organization Register Overview Register Description Address P1 Port 1 SFR 90H P1DIR Port 1 Direction 90H P3 Port 3 SFR B0H P3DIR Port 3 Direction B0H P3ALT Port 3 Alternate Function B1H P1ALT Port 1 Alternate Function B4H P1 and P1DIR is mapped on the same address and depend on the RMAP (SYSCON0.4) bit to select between the two registers. By default (bit = 0), P1 occupies the address. If the bit is set to 1 then P1DIR occupy the address. P3 and P3DIR is mapped on the same address and depend on the RMAP (SYSCON0.4) bit to select between the two registers. By default (bit = 0), P3 occupies the address. If the bit is set to 1 then P3DIR occupy the address. Ports 1 and 3 also serves alternate functions as listed in the Table 4-2. To select between the alternate function and normal I/O, registers P1ALT and P3ALT are used. Each can be set to ’1’ for alternate functions, or reset to ’0’ for normal I/O. Table 4-2 Ports 1 and 3 Alternate Functions Port Pin Alt-Function Description 1 P1.0 TxD Transmit data of serial interface 1 P1.1 EXF2 Timer 2 overflow flag 1 P1.3 INT3 Interrupt 3 1 P1.4 RxD Receive data of serial interface 3 P3.0 COUT63 16 bit compare channel output 3 P3.1 CTRAP CCU trap input 3 P3.2 COUT62 Output of CCU6 channel 2 3 P3.3 CC62 Input/output of CCU6 channel 2 3 P3.4 COUT61 Output of CCU6 channel 1 3 P3.5 CC61 Input/output of CCU6 channel 1 3 P3.6 COUT60 Output of CCU6 channel 0 3 P3.7 CC60 Input/output of CCU6 channel 0 User’s Manual 4-2 V 0.4, 2002-01 C868 On-Chip Peripheral Components P1 Port 1 Register [Reset value: XXX11111B] 94H 93H 92H - - - P1[4:0] r r r rw 91H 90H Field Bits Typ Description P1.4-0 [4:0] rw Port 1 Latch. This SFR appears at address 90H, only if bit RMAP (SYSCON0.4) is ‘0’. - [7:5] r reserved; returns ’0’ if read; should be written with ’0’; P1DIR Port 1 Direction Register [Reset value: XXX11111B] 94H 93H 92H - - - P1DIR[4:0] r r r rw 91H 90H Field Bits Typ Description P1DIR.4-0 [4:0] rw Port 1 Direction Register. This SFR appears at address 90H, only if bit RMAP (SYSCON0.4) is ‘1’ 0: The associated pin is an output. 1: The associated pin is an input (default). - [7:5] r reserved; returns ’0’ if read; should be written with ’0’; User’s Manual 4-3 V 0.4, 2002-01 C868 On-Chip Peripheral Components P3 Port 3 Register B7H [Reset value: FFH] B6H B5H B4H B3H B2H B1H B0H P3 rw Field Bits Typ Description P3 [7:0] rw Port 3 Latch. This SFR appears at address B0H, only if bit RMAP (SYSCON0.4) is ‘0’. P3DIR Port 3 Direction Register B7H B6H [Reset value: FFH] B5H B4H B3H B2H B1H B0H P3DIR rw Field Bits Typ Description P3DIR [7:0] rw User’s Manual Port 3 Direction Register. This SFR appears at address B0H, only if bit RMAP (SYSCON0.4) is ‘1’ 0: The associated pin is an output. 1: The associated pin is an input (default). 4-4 V 0.4, 2002-01 C868 On-Chip Peripheral Components P1ALT Port 1 Alternate Function Register [Reset value: XXX00X00B] 7 6 5 4 3 2 1 0 - - - P1ALT[4:3] - P1ALT[1:0] r r r rw r rw Field Bits Typ Description P1ALT.1-0 P1ALT.4-3 [1:0] [4:3] rw Port 1 Alternate Function Switch 0: The associated pin is a normal I/O. (default) 1: The associated pin is an alternate function. Please see Table 4-2. All the other bits in this register are reserved for the future use. - [7:5],2 r reserved; returns ’0’ if read; should be written with ’0’; P3ALT Port 3 Alternate Function Register 7 6 5 [Reset value: 00H] 4 3 2 1 0 P3ALT rw Field Bits Typ Description P3ALT [7:0] rw User’s Manual Port 3 Alternate Function Switch 0: The associated pin is a normal I/O. (default) 1: The associated pin is an alternate function. Please see Table 4-2. 4-5 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.3 Dedicated Ports Beside I/O Port, the rest of the ports are dedicated ports. These dedicated ports do not require bit latches as it uses the ’alternate access’. ANALOG[4:0]: These are pure analog inputs to the ADC module. The signals from the pin should be rightaway directed to the ADC module. These pins are used as digital input for the interrupts, hall inputs to the CCU6 module and inputs to the timer 2 module. User’s Manual 4-6 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.4 Port 1, Port 3 Circuitry The pins of ports 1 and 3 are multifunctional. They are port pins and also serve to implement special features as listed in Table 4-2. Figure 4-1 shows a functional diagram of a typical bit latch and I/O buffer, which is the core of the I/O-ports. The bit latch (one bit in the port’s SFR) is represented as a type-D flip-flop, which will clock in a value from the internal bus in response to a "write-to-latch" signal from the CPU. The Q output of the flip-flop is placed on the internal bus in response to a "read-latch" signal from the CPU. The level of the port pin itself is placed on the internal bus in response to a "read-pin" signal from the CPU. Some instructions that read from a port (i.e. from the corresponding port SFR P1 and P3) activate the "read-latch" signal, while others activate the "read-pin" signal. Figure 4-1 shows a functional diagram of a port latch with alternate function. Alternate Output Function Read Latch Int. Bus Q Bit Latch CLK Q Write to Latch Read Pin Figure 4-1 User’s Manual Port Driver Circuit D Port Pin Alternate Input Function Ports 1 and 3 4-7 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.4.1 Read-Modify-Write Feature of Ports Some port-reading instructions read the latch and others read the pin. The instructions reading the latch rather than the pin read a value, possibly change it, and then rewrite it to the latch. These are called "read-modify-write"- instructions, which are listed in 4-3. If the destination is a port or a port pin, these instructions read the latch rather than the pin. Note that all other instructions which can be used to read a port, exclusively read the port pin. In any case, reading from latch or pin, resp., is performed by reading the SFR P3; for example, "MOV A, P3" reads the value from port 3 pins, while "ANL P3, #0AAH" reads from the latch, modifies the value and writes it back to the latch. It is not obvious that the last three instructions in Figure 4-3 are read-modify-write instructions, but they are. The reason is that they read the port byte, all 8 bits, modify the addressed bit, then write the complete byte back to the latch. Table 4-3 "Read-Modify-Write"-Instructions Instruction Function ANL Logic AND; e.g. ANL P1, A ORL Logic OR; e.g. ORL P2, A XRL Logic exclusive OR; e.g. XRL P3, A JBC Jump if bit is set and clear bit; e.g. JBC P1.1, LABEL CPL Complement bit; e.g. CPL P3.0 INC Increment byte; e.g. INC P4 DEC Decrement byte; e.g. DEC P5 DJNZ Decrement and jump if not zero; e.g. DJNZ P3, LABEL MOV Px.y,C Move carry bit to bit y of port x CLR Px.y Clear bit y of port x SETB Px.y Set bit y of port x The reason why read-modify-write instructions are directed to the latch rather than the pin is to avoid a possible misinterpretation of the voltage level at the pin. For example, a port bit might be used to drive the base of a transistor. When a "1" is written to the bit, the transistor is turned on. If the CPU then reads the same port bit at the pin rather than the latch, it will read the base voltage of the transitor (approx. 0.7 V, i.e. a logic low level!) and interpret it as "0". For example, when modifying a port bit by a SETB or CLR instruction, another bit in this port with the above mentioned configuration might be changed if the value read from the pin were written back to th latch. However, reading the latch rater than the pin will return the correct value of "1". User’s Manual 4-8 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.5 Timers/Counters The C868 contains three 16-bit timers/counters, timer 0, timer 1 and timer/counter 2, which are useful in many applications for timing and counting. The timer register is incremented every machine cycle. Thus one can think of it as counting machine cycles. Since a machine cycle consists of 12 periods, the counter rate is 1/12 of the system frequency. 4.5.1 Timer 0 and 1 Timer 0 and 1 of the C868 are fully compatible with timer 0 and 1 can be used in the same four operating modes: Mode 0:8-bit timer with a divide-by-32 prescaler Mode 1:16-bit timer Mode 2:8-bit timer with 8-bit auto-reload Mode 3:Timer 0 is configured as two 8-bit timers. Timer 1 in this mode holds its count. The effect is the same as setting TR1 = 0. External inputs INT0 and INT1 can be programmed to function as a gate for timer 0 and 1 to facilitate pulse width measurements. Each timer consists of two 8-bit registers (TH0 and TL0 for timer 0, TH1 and TL1 for timer 1) which may be combined to one timer configuration depending on the mode that is established. The functions of the timers are controlled by two special function registers TCON and TMOD. In the following descriptions the symbols TH0 and TL0 are used to specify the high-byte and the low-byte of timer 0 (TH1 and TL1 for timer 1, respectively). The operating modes are described and shown for timer 0. If not explicity noted, this applies also to timer 1. User’s Manual 4-9 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.5.1.1 Timer 0 and 1 Registers Totally seven special function registers control the timer 0 and 1 operation : – TL0/TH0 and TL1/TH1 - timer registers, low and high part – TCON and IEN0 - control and interrupt enable – TMOD - mode select TLx(x=0..1) Timer x Low Register 7 6 [Reset value: 00H] 5 4 3 2 1 0 TLx7..0 rwh THx(x=0..1) Timer x High Register 7 6 [Reset value: 00H] 5 4 3 2 1 0 THx7..0 rwh Field Bits Typ Description TLx.7-0(x=0..1) [7:0] rwh Timer/counter 0/1 low register User’s Manual Operating Mode Description 0 "TLx" holds the 5-bit prescaler value. 1 "TLx" holds the lower 8-bit part of the 16-bit timer/ counter value. 2 "TLx" holds the 8-bit timer/ counter value. 3 TL0 holds the 8-bit timer/ counter value; TL1 is not used. 4-10 V 0.4, 2002-01 C868 On-Chip Peripheral Components Field Bits Typ Description THx.7-0(x=0..1) [7:0] rwh Timer 0/1 high register User’s Manual Operating Mode Description 0 "THx" holds the 8-bit timer value. 1 "THx" holds the higher 8-bit part of the 16-bit timer value 2 "THx" holds the 8-bit reload value. 3 TH0 holds the 8-bit timer value; TH1 is not used. 4-11 V 0.4, 2002-01 C868 On-Chip Peripheral Components TCON Power Control Register [Reset value: 00H] 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 rwh rw rwh rw rwh rw rwh rw The functions of the shaded bits are not described here Field Bits Typ Description TR0 4 rw TF0 5 rwh Timer 0 overflow flag Set by hardware on timer overflow. Cleared by hardware when processor vectors to interrupt routine. TR1 6 rw TF1 7 rwh Timer 1 overflow flag Set by hardware on timer overflow. Cleared by hardware when processor vectors to interrupt routine. User’s Manual Timer 0 run control bit Set/cleared by software to turn timer 0 ON/OFF. Timer 1 run control bit Set/cleared by software to turn timer 1 ON/OFF. 4-12 V 0.4, 2002-01 C868 On-Chip Peripheral Components TMOD Timer Register [Reset value: 00H] 7 6 5 4 3 2 1 0 GATE1 C/NT1 M1(1) M0(1) GATE0 C/NT0 M1(0) M0(0) rw rw rw rw rw rw rw rw Field Bits Typ Description M0(0) M1(0) M0(1) M1(1) 0 1 4 5 rw Mode select bits M1(x) M0(x) Function 0 0 8-bit timer: "THx" operates as 8-bit timer "TLx" serves as 5-bit prescaler 0 1 16-bit timer. "THx" and "TLx" are cascaded; there is no prescaler 1 0 8-bit auto-reload timer. "THx" holds a value which is to be reloaded into "TLx" each time it overflows 1 1 Timer 0 : TL0 is an 8-bit timer controlled by the standard timer 0 control bits. TH0 is an 8-bit timer only controlled by timer 1 control bits. Timer 1 : Timer/counter 1 stops C/NT0 C/NT1 2 6 rw Counter or timer select bit Cleared for timer operation (input from internal system clock). GATE0 GATE1 3 7 rw Gating control User’s Manual When set, timer "x" is enabled only while "INT x" pin is high and "TRx" control bit is set. 4-13 V 0.4, 2002-01 C868 On-Chip Peripheral Components IEN0 Interrupt Enable Register [Reset value: 00H] AFH AEH ADH ACH ABH AAH A9H A8H EA - ET2 ES ET1 EX1 ET0 EX0 rw r rw rw rw rw rw rw The functions of the shaded bits are not described here Field Bits Typ Description ET0 1 rw Timer 0 overflow interrupt enable. If ET0 = 0, the timer 0 interrupt is disabled. ET1 3 rw Timer 1 overflow interrupt enable. If ET1 = 0, the timer 1 interrupt is disabled. User’s Manual 4-14 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.5.1.2 Mode 0 Putting either timer 0, 1 into mode 0 configures it as an 8-bit timer with a divide-by-32 prescaler. Figure 4-2 shows the mode 0 operation. In this mode, the timer register is configured as a 13-bit register. As the count rolls over from all 1’s to all 0’s, it sets the timer overflow flag TF0. The overflow flag TF0 then can be used to request an interrupt. The counted input is enabled to the timer when TR0 = 1 and either Gate = 0 or INT0 = 1 (setting Gate = 1 allows the timer to be controlled by external input INT0, to facilitate pulse width measurements). TR0 is a control bit in the special function register TCON; Gate is in TMOD. The 13-bit register consists of all 8 bits of TH0 and the lower 5 bits of TL0. The upper 3 bits of TL0 are indeterminate and should be ignored. Setting the run flag (TR0) does not clear the registers. Mode 0 operation is the same for timer 0 as for timer 1. Substitute TR0, TF0, TH0, TL0 and INT0 for the corresponding timer 1 signals in Figure 4-2. There are two different gate bits, one for timer 1 (TMOD.7) and one for timer 0 (TMOD.3). fSYS 12 C/T = 0 TH0 TL0 (5 Bits) (8 Bits) TF0 Interrupt Control TR0 =1 Gate INT0/INT1 Figure 4-2 User’s Manual 1 Pin Timer 0, Mode 0: 13-Bit Timer 4-15 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.5.1.3 Mode 1 Mode 1 is the same as mode 0, except that the timer register is running with all 16 bits. Mode 1 is shown in Figure 4-3. fSYS 12 C/T = 0 TH0 TL0 (8 Bits) (8 Bits) TF0 Interrupt Control TR0 =1 Gate INT0/INT1 Figure 4-3 User’s Manual 1 Pin Timer 0, Mode 1: 16-Bit Timer/Counter 4-16 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.5.1.4 Mode 2 Mode 2 configures the timer register as an 8-bit counter (TL0) with automatic reload, as shown in Figure 4-4. Overflow from TL0 not only sets TF0, but also reloads TL0 with the contents of TH0, which is preset by software. The reload leaves TH0 unchanged. fSYS 12 C/T = 0 TL0 (8 Bits) Interrupt TF0 Control Reload TR0 =1 Gate INT0/INT1 Figure 4-4 User’s Manual TH0 (8 Bits) 1 Pin Timer 0,1, Mode 2: 8-Bit Timer/Counter with Auto-Reload 4-17 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.5.1.5 Mode 3 Mode 3 has different effects on timer 0 and timer 1. Timer 1 in mode 3 simply holds its count. The effect is the same as setting TR1=0. Timer 0 in mode 3 establishes TL0 and TH0 as two seperate counters. The logic for mode 3 on timer 0 is shown in Figure 4-5. TL0 uses the timer 0 control bits: C/T, Gate, TR0, INT0 and TF0. TH0 is locked into a timer function (counting machine cycles) and takes over the use of TR1 and TF1 from timer 1. Thus, TH0 now controls the "timer 1" interrupt. Mode 3 is provided for applications requiring an extra 8-bit timer or counter. When timer 0 is in mode 3 and when TR1 is set, timer 1 can be turned on by switching it to any mode other than 3 and off by switching it into its own mode 3, or can still be used by the serial channel as a baud rate generator, or in fact, in any application not requiring an interrupt from timer 1 itself. fSYS Timer Clock 12 C/T = 0 TL0 (8 Bits) TF0 Interrupt TH0 (8 Bits) TF1 Interrupt Control TR0 Gate INT0/INT1 TR0 =1 1 Pin TR1 Figure 4-5 User’s Manual Timer 0, Mode 3: Two 8-Bit Timers/Counters 4-18 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.6 Functional Description of Timer/Counter 2 Timer two serves as a 16-bit timer/counter for which is also capable of being used as a baudrate generator for the UART module. 4.6.1 Features • 16-bit auto-reload mode – selectable up or down counting • one channel 16-bit capture mode • Baudrate generator for UART • Timer/counter powerdown in normal, idle and slow-down modes 4.6.2 Overview Timer 2 is a 16-bit general purpose timer/counter which can additionally function as a baudrate generator. This module is functionally compatible to the Timer 2 in the C501 product family. Timer/counter 2 can function as a timer or counter in each of its modes. As a timer, it counts with an input clock of fSYS/12. As a counter, it counts 1-to-0 transitions on pin T2. In the counter mode the maximum resolution for the count is fSYS/24. 4.6.3 Register Description The T2CON register is used for controlling the various modes of timer/counter 2 module. Additionally, this register also indicates the status of the timer/counter 2 functions (flags). T2MOD Timer 2 Mode Register,Low Byte [Reset value: 00H] 7 6 5 4 3 2 1 0 - - - - - - - DCEN r r r r r r r rw Field Bits Typ Description DCEN 0 rw Up/Down Counter Enable 0 :Up/Down Counter function is disabled 1 :Up/Down Counter function is enabled and controlled by pin T2EX (Up=1,Down=0) - [7:6] r reserved; returns ’0’ if read; should be written with ’0’; User’s Manual 4-19 V 0.4, 2002-01 C868 On-Chip Peripheral Components T2CON Timer 2 Control Register,Low Byte [Reset value: 00H] CFH CEH CDH CCH CBH CAH C9H C8H TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2 rwh rwh rw rw rw rw rw rw Field Bits Typ Description CP/RL2 0 rw Capture / Reload Select 0 :Reload upon overflow or upon negative transition at pin T2EX (when EXEN2=1) 1 :Capture timer/counter 2 data register contents on negative transition at pin T2EX, provided EXEN2 = 1 If TCLK/RCLK=1, this bit is ignored. C/T2 1 rw Timer or Counter Select 0 :Timer function selected 1 :Count upon negative edge at pin T2 TR2 2 rw Timer/counter 2 Start / Stop Control 0 :Stop Timer/counter 2 1 :Start Timer/counter 2 EXEN2 3 rw Timer/counter 2 External Enable Control 0 :External events are disabled 1 :External events Capture/Reload enabled TCLK 4 rw Transmit Clock Enable 0 :Timer/counter 2 overflow is not used for UART transmitter clock 1 :Timer/counter 2 overflow is used for UART transmitter clock RCLK 5 rw Receiver Clock Enable 0 :Timer/counter 2 overflow is not used for UART receiver clock 1 :Timer/counter 2 overflow is used for UART receiver clock User’s Manual 4-20 V 0.4, 2002-01 C868 On-Chip Peripheral Components Field Bits Typ Description EXF2 6 rwh Timer/counter 2 External Flag This bit is set by hardware when a capture/reload occurred upon a negative transition at pin T2EX, if bit EXEN=1. An interrupt request to the core is generated, unless bit DCEN=1. This bit must be cleared by software. TF2 7 rw User’s Manual Timer/counter 2 Overflow Flag Set by a timer/counter 2 overflow. Must be cleared by software. TF2 will not be set when either RCLK=1 or TCLK=1. 4-21 V 0.4, 2002-01 C868 On-Chip Peripheral Components The RC2L/H registers are used for a 16-bit reload of the timer/counter count upon overflow or a capture of current timer/counter count depending on the mode selected. RC2L Timer 2 Reload/Capture Register, Low Byte 7 6 5 4 [Reset value: 00H] 3 2 1 0 RC2 7..0 rw RC2H Timer 2 Reload/Capture Register, High Byte 7 6 5 4 [Reset value: 00H] 3 2 1 0 RC2 15..8 rw Field Bits RC2 [7:0] of rw RC2L, [7:0] of RC2H User’s Manual Typ Description Reload/Capture Value These contents are loaded into the timer/counter registers upon an overflow condition, if CP/RL2=0. If CP/RL2 = 1, this registers are loaded with the current timer count upon a negative transition at pin T2EX when EXEN2=1. 4-22 V 0.4, 2002-01 C868 On-Chip Peripheral Components The T2L/H registers holds the current 16-bit value of the Timer 2 count. T2L Timer 2, Low Byte 7 [Reset value: 00H] 6 5 4 3 2 1 0 T2 7..0 rh T2H Timer 2, High Byte 7 [Reset value: 00H] 6 5 4 3 2 1 0 T2 15..8 rh Field Bits T2 [7:0] of rh T2L, [7:0] of T2H User’s Manual Typ Description Timer 2 Value These bits indicate the current timer value. 4-23 V 0.4, 2002-01 C868 On-Chip Peripheral Components T2DIS in PMCON1 register controls the powerdown of timer/counter 2, T2ST in PMCON2 shows the power status of timer/counter 2. PMCON1 Peripheral Management Control Register [Reset value: XXXXX000B] 7 6 5 4 3 2 1 0 - - - - - CCUDIS T2DIS ADCDIS r r r r r rw rw rw The functions of the shaded bits are not described here Field Bits Typ Description T2DIS 1 rw Timer 2 Disable Request. 0 : Timer 2 will continue normal operation. (default) 1 : Request to disable the Timer 2 is active. PMCON2 Peripheral Management Status Register [Reset value: XXXXX000B] 7 6 5 4 3 2 1 0 - - - - - CCUST T2ST ADCST r r r r r rh rh rh The functions of the shaded bits are not described here Field Bits Typ Description T2ST 1 rh User’s Manual Timer 2 Disable Status 0 : Timer 2 is not disabled. (default) 1 : Timer 2 is disabled, clock is gated off. 4-24 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.6.4 Operating Mode Selection The operating mode of timer/counter 2 is controlled by register T2CON. This register serves two purposes: – during initialization it provides access to a set of control bits – during timer operation it provides access to a set of status flags. The different modes of operation are: – Auto-Reload Mode, – Capture Mode, and – Baudrate Generator Mode 4.6.5 Auto-Reload Mode In the auto-reload mode, timer/counter 2 counts to an overflow value and then reloads its registers contents with a 16-bit value start value for a fresh counting sequence. The overflow condition is indicated by setting the bit TF2 in the T2CON register. This will then generate an interrupt request to the core by an active high signal. The overflow flag TF2 must be cleared by software. The auto-reload mode is further classified into two categories depending upon the DCEN control bit. 4.6.5.1 Up/Down Count Disabled If DCEN=0, the up-down count selection is disabled. The timer/counter, therefore, functions as a pure up timer/counter only. The operational block diagram is shown in Figure 4-6. In this mode if EXEN2=0, the timer/counter starts to count up to a maximum of FFFFH, once TR2 is set. Upon overflow, bit TF2 is set and the timer register is reloaded with a 16-bit reload of the RC2L/H registers. A fresh count sequence is started and the timer/ counter counts up from this reload value as in the previous count sequence. This reload value is chosen by software, prior to the occurrence of an overflow condition. If EXEN2=1, the timer/counter counts up to a maximum to FFFFH, once TR2 is set. A 16-bit reload of the timer registers from register RC2L/H is triggered either by an overflow condition or by a negative edge at input pin T2EX. If an overflow caused the reload, the overflow flag TF2 is set. If a 1-to-0 transition at pin T2EX caused a reload, bit EXF2 is set. In either case, an interrupt is generated to the core and the timer/counter proceeds to its next count sequence. The EXF2 flag, similar to the TF2, must be cleared by software. Note: In counter mode, if the reload via T2EX and the count clock T2 are detected simultaneously the reload takes precedence over the count. The counter increments its value with the following T2 count clock. User’s Manual 4-25 V 0.4, 2002-01 C868 On-Chip Peripheral Components fSYS 12 C/T2 = 0 T2L/H C/T2 = 1 TR2 Overflow Pin T2 OR RC2L/H TF2 Timer 2 OR Interrupt EXF2 EXEN2 Pin T2EX Figure 4-6 4.6.5.2 Auto-Reload Mode (DCEN = 0) Up/Down Count Enabled If DCEN=1, the up-down count selection is enabled. The direction of count is determined by the level at input pin T2EX. The operational block diagram is shown in Figure 4-7. A logic 1 at pin T2EX sets the timer/counter 2 to up counting mode. The timer/counter, therefore, counts up to a maximum of FFFFH. Upon overflow, bit TF2 is set and the timer/ counter registers are reloaded with a 16-bit reload of the RC2L/H registers. A fresh count sequence is started and the timer counts up from this reload value as in the previous count sequence. This reload value is chosen by software, prior to the occurrence of an overflow condition. A logic 0 at pin T2EX sets the timer/counter 2 to down counting mode. The timer/counter counts down and underflows when the T2L/H value reaches the value stored at registers User’s Manual 4-26 V 0.4, 2002-01 C868 On-Chip Peripheral Components RC2L/H. The underflow condition sets the TF2 flag and causes FFFFH to be reloaded into the T2L/H registers. A fresh down counting sequence is started and the timer/ counter counts down as in the previous counting sequence. In this mode, bit EXF2 toggles whenever an overflow or an underflow condition is detected. This flag, however, does not generate an interrupt request. Note: In counter mode, if the reload via T2EX and the count clock T2 are detected simultaneously the reload takes precedence over the count. The counter increments its value with the following T2 count clock. FFFFH (Down count reload) EXF2 Underflow fSYS 12 Timer 2 C/T2 = 0 T2L/H C/T2 = 1 OR TF2 Interrupt TR2 16-bit Comparator Pin T2 Overflow RC2L/H Pin T2EX Figure 4-7 User’s Manual Auto-Reload Mode (DCEN = 1) 4-27 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.6.6 Capture Mode In order to enter the 16-bit capture mode, bits CP/RL2 and EXEN2 in register T2CON must be set. In this mode, the down count function must remain disabled. The timer/ counter functions as a 16-bit timer or counter and always counts up to FFFFH and overflows. Upon an overflow condition, bit TF2 is set and the timer/counter reloads its registers with 0000H. The setting of TF2 generates an interrupt request to the core. Additionally, with a falling edge on pin T2EX the contents of the timer/counter registers (T2L/H) are captured into the RC2L/H registers. If the capture signal is detected while the counter is being incremented, the counter is first incremented before the capture operation is performed. This ensures that the latest value of the timer/counter registers are always captured. When the capture operation is completed, bit EXF2 is set and can be used to generate an interrupt request. Figure 4-8 describes the capture function of timer/counter 2. fSYS 12 C/T2 = 0 T2L/H C/T2 = 1 TR2 Overflow Pin T2 RC2L/H TF2 Timer 2 OR Interrupt EXF2 EXEN2 Pin T2EX Figure 4-8 User’s Manual Capture Mode 4-28 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.6.7 Baudrate Generator Mode The baudrate generator mode of timer/counter 2 can be selected by setting the bits TCLK and/or RCLK in register T2CON. So the baudrate for the receive and transmit functions can be individually controlled. The timer/counter itself functions similar to the auto-reload mode with up/down counting is disabled. The timer/counter counts up and overflows but the overflow condition does not set the TF2 flag. An interrupt request to the core is not generated. Upon an overflow condition, the timer/counter registers are reloaded with the RC2L/H registers content and continues counting as before. The overflow signal is provided as an output of the timer/counter 2 block. This is active for one clock cycle only. Additionally, the status of the TCLK and RCLK bits are also provided as outputs of the timer 2 block. The UART, for e.g., could use these signals to control its baudrates. The main difference between the auto-reload mode and the baudrate generator mode is that timer 2 as a baudrate generator uses fSYS/2 as the count clock. In the auto-reload mode the timer/counter 2 uses fSYS/12 as the count clock. If EXEN2=1, in the baudrate generator mode, a falling edge on pin T2EX can be used to generate an interrupt. In this case, flag EXF2 will be set. Note: When timer/counter 2 is in the baudrate generator mode, an increment of the timer register happens for every other fSYS. Therefore, software should not access the T2L/H registers. Software may however, read the RC2L/H registers. Software write into these registers may coincide with a timer update or reload cycle and should therefore be avoided. User’s Manual 4-29 V 0.4, 2002-01 C868 On-Chip Peripheral Components fSYS 12 C/T2 = 0 OV_CLK T2L/H C/T2 = 1 TR2 Overflow Pin T2 RC2L/H Pin T2EX EXF2 Timer 2 Interrupt EXEN2 Figure 4-9 4.6.8 Baudrate Generator Mode Count Clock The count clock for the auto-reload mode is chosen by the bit C/T2 in register T2CON. If C/T2 = 0, a count clock of fSYS/12 is used for the count operation. If C/T2 = 1, timer 2 behaves as a counter that counts 1-to-0 transitions of input pin T2. The counter samples pin T2 over 2 fSYS cycles. If a 1 was detected during the first clock and a 0 was detected in the following clock, then the counter increments by one. Therefore, the input levels should be stable for at least 1 clocks. 4.6.9 Module Powerdown The timer/counter 2 is disabled when the chip goes into the powerdown mode as describe in . Or it can be individually disabled by setting T2DIS in register PMCON1. This helps to reduce current consumption in the normal, slow down and idle modes of operation if the timer/counter 2 is not utilized. Bit T2ST in register PMCON2 reflects the powerdown status of timer/counter 2. User’s Manual 4-30 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.7 Capture/Compare Unit (CCU6) The CCU6 provides two independent timers (T12, T13), which can be used for PWM generation, especially for AC-motor control. Additionally, special control modes for block commutation and multi-phase machines are supported. Timer 12 Features • Three capture/compare channels, each channel can be used either as capture or as compare channel. • Generation of a three-phase PWM supported (six outputs, individual signals for highside and lowside switches) • 16 bit resolution, maximum count frequency = system clock • Dead-time control for each channel to avoid short-circuits in the power stage • Concurrent update of the required T12/13 registers • Center-aligned and edge-aligned PWM can be generated • Single-shot mode supported • Many interrupt request sources • Hysteresis-like control mode Timer 13 Features • • • • • One independent compare channel with one output 16 bit resolution, maximum count frequency = system clock Can be synchronized to T12 Interrupt generation at period-match and compare-match Single-shot mode supported Additional Features • • • • • • • • Block commutation for Brushless DC-drives implemented Position detection via Hall-sensor pattern Automatic rotational speed measurement for block commutation Integrated error handling Fast emergency stop without CPU load via external signal (CTRAP) Control modes for multi-channel AC-drives Output levels can be selected and adapted to the power stage Capture/compare unit can be powerdown in normal, idle and slow-down modes The timer T12 can work in capture and/or compare mode for its three channels. The modes can also be combined. The timer T13 can work in compare mode only. The multichannel control unit generates output patterns which can be modulated by T12 and/or T13. The modulation sources can be selected and combined (refer to figure ’Modulation Selection, Passive Level and Alternate Output Enable of T12’) for the signal modulation. User’s Manual 4-31 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.7.1 Timer T12 4.7.1.1 Overview The timer T12 is used for capture/compare purposes with three independent channels. The timer T12 is a 16-bit wide counter. Three channel registers (CC60R, CC61R, CC62R), which are built with shadow registers (CC60SR, CC61SR, CC62SR), contain the compare value or the captured timer value. In compare mode, the software writes to the shadow registers and their contents are transferred simultaneously to the actual compare registers during the T12 shadow transfer. In capture mode, the captured value of T12 can be read from the channel registers. The period of the timer T12 is fixed by the period register T12PR, which is also built with a shadow register. The write access from the CPU targets the corresponding shadow registers, whereas the read access targets the registers actually used (except for the three compare channels, where the actual and the shadow registers can be read). =1? one-match =0? zero-match =? period-match 16 =? T12PR T12PS period shadow transfer compare shadow transfer compare-match 16 CC6xR CC6xSR capture events according to bitfield MSEL6x 16 Figure 4-10 counter register T12 T12clk T12 Overview While timer T12 is running, write accesses to register T12 are not taken into account. If the timer T12 is stopped and the dead-time counters are 0, write actions to register T12 are immediately taken into account. User’s Manual 4-32 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.7.1.2 Counting Rules Referring to T12 input clock the counting sequence is defined by the following counting rules: T12 in edge-aligned mode: • The counter is reset to zero and (if desired) the T12 shadow transfer takes place if the period-match is detected. The counting direction is always upwards. T12 in center-aligned mode: • The count direction is set to counting up (CDIR=’0’) if the one-match is detected while counting down. • The count direction is set to counting down (CDIR=’1’) if the period-match is detected while counting up. • The counter counts up while CDIR=’0’ and it counts down while CDIR=’1’. • If enabled the shadow transfer takes place: • if the period-match is detected while counting up • if the one-match is detected while counting down The timer T12 prescaler is reset while T12 is not running to ensure reproducible timings and delays. The counting rules lead to the following sequences: . T12clk T12P T12P-1 T12P-2 zero-match period-match 1 T12 0 up=0 value n CDIR value n+1 CC6x shadow transfer Figure 4-11 User’s Manual T12 in edge-aligned mode 4-33 V 0.4, 2002-01 C868 On-Chip Peripheral Components In the center-aligned mode (T12 counts up and down), the counting rules lead to the following behavior: T12clk one-match 2 2 1 T12 1 0 zero-match down=1 up=0 CDIR value n value n+1 CC6x shadow transfer Figure 4-12 T12 in center-aligned mode, one-match detected T12clk T12P+1 T12P T12P-1 period-match T12 up=0 down=1 CDIR value n value n+1 CC6x shadow transfer Figure 4-13 User’s Manual T12 in center-aligned mode, period-match detected 4-34 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.7.1.3 Switching Rules The compare actions take place in parallel for the three compare channels. Depending on the count direction, the compare matches have different meanings. In order to get the PWM information independent from the output levels, two different states have been introduced for the compare actions: The active state and the passive state, which are used to generate the desired PWM as a combination of the states delivered by T13, the trap control unit and the multi-channel control unit. If the active state is interpreted as a ’1’ and the passive state as a ’0’, the state information is combined with a logical AND function. • active AND active = active • active AND passive = passive • passive AND passive = passive The compare states change with the detected compare-matches and are indicated by the CC6xST bits. The compare states of T12 are defined as follows: • passive if the counter value is below the compare value • active if the counter value is above the compare value This leads to the following switching rules for the compare states: • set to the active state when the counter value reaches the compare value while counting up • reset to the passive state when the counter value reaches the compare value while counting down • reset to the passive state in case of a zero-match without compare-match while counting up • set to the active state in case of a zero-match with a parallel compare-match while counting up T12clk compare-match 2 2 1 T12 1 0 active Figure 4-14 User’s Manual passive compare state Compare States for Compare Value = 2 4-35 V 0.4, 2002-01 C868 On-Chip Peripheral Components The switching rules are only taken into account while the timer is running. As a result, write actions to the timer registers while the timer is stopped do not lead to compare actions. 4.7.1.4 Duty Cycle of 0% and 100% These counting and switching rules ensure a PWM functionality in the full range between 0% and 100% duty cycle (duty cycle = active time / total PWM period). In order to obtain a duty cycle of 0% (compare state never active), a compare value of T12P+1 has to be programmed (for both compare modes). A compare value of 0 will lead to a duty cycle of 100% (compare state always active). 4.7.1.5 Compare Mode of T12 The following figure shows the setting and resetting of the compare state bit CC6xST. In order to simplify the description, only one out of the three parallel channels is described. The letter ’x’ in the simplified bit names and signal names indicates that there are more than one channel. The CC6xST bit is the compare state bit in register CMPSTAT, the bit CC6xPS represents passive state select bit. The timer T12 generates pulses indicating events like compare-matches, periodmatches and zero-matches, which are used to set (signal T12_xST_se) and to reset (signal T12_xST_re) the corresponding compare state bit (CC6xST) according to the counting direction. The timer T12 modulation output lines T12xO (two for each channel) can be selected to be in the active state while the corresponding compare state is ’0’ (with CC6xPS=’0’) or while the corresponding compare state is ’1’ (with CC6xPS=’1’). The bit COUT6xPS has the same effect for the second output of the channel. The example is shown without dead-time. User’s Manual 4-36 V 0.4, 2002-01 C868 On-Chip Peripheral Components period value compare value T12 0 compare state=0 =1 =1 =0 T12_xST_re T12_xST_se CC6xST CC6x_T12_xO (CC6xPS=0) passive active passive CC6x_T12_xO (CC6xPS=1) active passive active Figure 4-15 Compare States of Timer T12 According to the desired capture/compare mode, the compare state bits have to be switched. Therefore, an additional logic (see Figure 4-16) selects how and by which event the compare state bits are modified. The mode selection (by bitfields MSEL6x in register T12MSEL) enables the setting and the resetting of the compare state bits due to compare actions of timer T12. The HW modifications of the compare state bits is only possible while the timer T12 is running. Therefore, the bit T12R is used to enable/disable the modification by HW. For the hysteresis-like compare mode (MSEL6x=’1001’), the setting of the compare state bit is only possible while the corresponding input CCPOSx=’1’ (inactive). If the Hall Sensor mode (MSEL6x=’1000’) is selected, the compare state bits of the compare channels 1 and 2 are modified by the timer T12 in order to indicate that a programmed time has elapsed. User’s Manual 4-37 V 0.4, 2002-01 C868 On-Chip Peripheral Components T12R T12_xST_sen T12 T12_xST_se T12_xST_re O R T12 prescaler A N D T12_xST_so A N D T12_xST_ro T12_xST_ren OR fper OR MSEL6x= ’0001’ or ’0010’ or ’0011’ or ’1000’ (ch 1, 2 only) end_of_period in single shot mode AND CCPOSx=’1’ Figure 4-16 MSEL6x= ’1001’ T12 Compare Logic The T12 compare output lines T12_xST_so (to set bit CC6xST) and T12_xST_ro (to reset bit CC6xST) are also used to trigger the corresponding interrupt flags and to generate interrupts. The signal T12_xST_so indicates the interrupt event for the rising edge (ICC6xR), whereas the signal T12_xST_ro indicates the falling edge event (ICC6xF) in compare mode. The compare state bits indicate the occurrence of a capture or compare event of the corresponding channel. It can be set (if it is ’0’) by the following events: • upon a software set (CC6xS) • upon a compare set event (see switching rules) if the T12 runs and if the T12 set event is enabled • upon a capture set event The bit CC6xST can be reset (if it is ’1’) by the following events: • upon a software reset (CC6xR) • upon a compare reset event (see switching rules) if the T12 runs and if the T12 reset event is enabled (including in single shot mode the end of the T12 period) • upon a reset event in the hysteresis-like control mode User’s Manual 4-38 V 0.4, 2002-01 C868 On-Chip Peripheral Components hyst_x_state CC6xPS CC6xS T12_xST_so O R Cap_xST_so A N D set Q A N D CC6xST T12_xST_ro hyst_x_ev O R reset A N D Q A N D CC6xR OR Hall_edge_o CC6x_ T12_o 1 COUT6x_ T12_o 0 1 COUT6xPS T12clk DTCx_rl 0 DTCx_o dead-time generation Figure 4-17 T12 Logic for CC6xST Control The events triggering the set and reset action of the CC6xST bits have to be combined, see Figure 4-17. The occurrence of the selected capture event (signal Cap_xST_so) or the setting of CC6xS in register CMPMODIF also leads to a set action of bit CC6xST, whereas the negative edge at pin CCPOSx (in hysteresis-like mode, signal hyst_x_ev) or the setting of bit CC6xR leads to reset action. The set signal is only generated while bit CC6xST is reset, a reset can only take place while the bit is set. This permits the OR-combination of the resulting set and reset signals to one common signal (DTCx_rl) triggering the reload of the dead-time counter. It is only triggered if bit CC6xST is changed, permitting a correct PWM generation with dead-time and the complete duty cycle range of 0% to 100% in edge-aligned and in center-aligned mode. In the case that the dead-time generation is enabled, the change of bit CC6xST triggers the dead-time unit and a signal DTCx_o is generated. The length of the ’0’ level of this signal corresponds to the desired dead-time, which is used to delay the rising edge (passive to active edge) of the output signal. In order to generate independent PWM patterns for the highside and the lowside switches of the power inverter, the interval when a PWM signal should be active can be selected by the bits CC6xPS. They select if the PWM signal is active while the compare state bit is ’0’ (T12 counter value below the compare value) or while it is ’1’ (T12 counter value above the compare value). User’s Manual 4-39 V 0.4, 2002-01 C868 On-Chip Peripheral Components In Figure 4-17, the signals CC6x_T12_o and COUT6x_T12_o are inputs to the modulation control block, where they can be combined with other PWM signals. 4.7.1.6 Switching Examples in edge-aligned Mode The following figure shows two switching examples in edge-aligned mode with duty cycles near to 0% and near to 100%. The compare-, period- or zero-matches lead to modifications of the compare state and the shadow transfer (if requested by STE12=’1’) in the next clock cycle. T12clk T12P T12P T12P-1 T12P-1 T12P-2 T12P-2 compare-match = compare-match = period-match period-match zero-match zero-match 1 1 0 0 0 1 0 < T12P-3 1 0 T12P passive active 4.7.1.7 0 CDIR 0 STE12 T12P CC6x active T12 shadow transfer Figure 4-18 T12 compare state T12 shadow transfer Switching Examples in edge-aligned Mode Switching Examples in center-aligned Mode The following figures show examples of the switching of the compare state and the T12 shadow transfer according to the programmed compare values. User’s Manual 4-40 V 0.4, 2002-01 C868 On-Chip Peripheral Components T12clk compare-match compare-match 2 2 1 2 2 1 1 T12 1 0 0 1 0 1 0 CDIR 1 0 1 0 STE12 1 2 1 0 CC6x active passive compare state active T12 shadow transfer Figure 4-19 T12 shadow transfer Switching Example for Duty Cycles near to 100% T12clk T12P+1 T12P+1 T12P T12 T12P T12P-1 T12P-1 compare-match compare-match 0 1 0 1 CDIR 1 0 1 0 STE12 T12P-1 T12P T12P T12P+1 CC6x passive active passive T12 shadow transfer Figure 4-20 4.7.1.8 compare state active T12 shadow transfer Switching Example for Duty Cycles near to 0% Dead-time Generation The generation of (complementary) signals for the highside and the lowside switches of one power inverter phase is based on the same compare channel. For example, if the User’s Manual 4-41 V 0.4, 2002-01 C868 On-Chip Peripheral Components highside switch should be active while the T12 counter value is above the compare value (compare state =’1’), then the lowside switch should be active while the counter value is below (compare state =’0’). The compare state, which may lead to an active output (respecting other modulation sources and the trap functionality) can be selected by the CC6xPS bits. T12 CC6xST CC6xST DTCx_o CC6xPS CC6xST AND DTCx_o CC6xST AND DTCx_o 1 CC6x_T12_o 0 COUT6xPS 1 COUT6x_T12_o 0 Figure 4-21 PWM-signals with Dead-time Generation In most cases, the switching behavior of the connected power switches is not symmetrical concerning the times needed to switch on and to switch off. A general problem arises if the time to switch on is smaller than the time to switch off the power device. In this case, a short-circuit in the inverter bridge leg occurs, which may damage the complete system. In order to solve this problem by HW, this capture/compare unit contains a programmable dead-time counter, which delays the passive to active edge of the switching signals (the active to passive edge is not delayed), see Figure 4-21. The dead-time generation logic (see Figure 4-22) is built in a similar way for all three channels of T12. Each change of the CC6xST bits triggers the corresponding dead-time counter (6 bit down counter, clocked with T12clk). The trigger pulse (DTCx_rl) leads to a reload of the dead-time counter with the value, which has been programmed in bit field User’s Manual 4-42 V 0.4, 2002-01 C868 On-Chip Peripheral Components DTM. This reload can only take place if the dead-time feature is enabled by bit DTEx and while the counter is zero. While counting down (zero is not yet reached), the output line DTCx_o becomes ’0’. This output line is combined with the T12 modulation signals, leading to a delay of the passive to active edge of the resulting signal, which is shown in Figure 4-21. When reaching the counter value zero, the dead-time counter stops counting and the signal DTCx_o becomes ’1’. The dead-time counter can not be reloaded while it is counting. DTM DTC2_rl DTC1_rl DTC0_rl 6 6 channel 1 channel 0 6 DTE0 channel 2 A N D (channel 0 only) DTC0_1o 6 bit down-counter T12clk =0 DTC2_o =1 DTC1_o DTC0_o Figure 4-22 Dead-time Counter Each of the three channels works independently with its own dead-time counter and the trigger and enable signals. The value of bit field DTM is valid for all of the three channels. In the Hall sensor mode, timer T12 is used to measure the rotational speed of the motor (channel 0 in capture mode) and to control the phase delay before switching to the next state (channel 1 in compare mode). Furthermore, channel 2 can be used to generate a time-out signal (in compare mode). As a result, T12 can not be used for modulation and, due to the block commutation patterns, a dead-time generation is not required. In order to built an efficient noise filter for the Hall signals, channel 0 of the dead-time unit is triggered (reloaded) with each detected edge of the Hall signals, see signal Hall_edge_o in Figure 4-17. For this feature, channel 0 also generates a pulse if its counter value is one. 4.7.1.9 Capture Mode In capture mode the bits CC6xST indicate the occurrence of the selected capture event according to the bit fields MSEL6x. A rising and/or a falling edge on the pins CC6x can User’s Manual 4-43 V 0.4, 2002-01 C868 On-Chip Peripheral Components be selected as capture event, that is used to transfer the contents of timer T12 to the CC6xR and CC6xSR registers. In order to work in capture mode, the capture pins have to be configured as inputs. CC6x_in fper in tr_T_R Capt_re R edge detection Capt_fe F function select tr_T_SR tr_SR_R MSEL6x Figure 4-23 Capture Logic The block diagram of the capture logic for one channel is shown in Figure 4-23. This logic is identical for all three independent channels of timer T12. The input signal (CC6x_in) from the input pin CC6x is connected to an edge detection logic delivering two output signals, one for the rising edge (Capt_re) and one for the falling edge (Capt_fe). These signals are also used as trigger sources for the channel interrupts if capture mode is selected. There are several possibilities to store the captured values in the registers. In double register capture mode the timer value is stored in the channel shadow register CC6xSR. The value formerly stored in this register is simultaneously copied to the channel register CC6xR.This mode can be used if two capture events occur with very few time between them. The SW can then check the new captured value and has still the possibility to read the value captured before. The selection of the capture mode is done by bitfield MSEL6x. According to the selected mode and the detected capture event, the signals tr_T_R (transfer T12 contents to register CC6xR), tr_T_SR (transfer T12 contents to register CC6xSR) or tr_SR_R (transfer contents of CC6xSR to register CC6xR) are activated. Note: In capture mode, a shadow transfer can be requested according to the shadow transfer rules, except for the capture / compare registers, that are left unchanged. 4.7.1.10 Single Shot Mode In single shot mode, the timer T12 stops automatically at the end of the its counting period. Figure 4-24 shows the functionality at the end of the timer period in edge-aligned User’s Manual 4-44 V 0.4, 2002-01 C868 On-Chip Peripheral Components and in center-aligned mode. If the end of period event is detected while bit T12SSC is set, the bits T12R and all CC6xST bits are reset. edge-aligned mode T12P center-aligned mode period-match while counting up T12P-1 T12P-2 if T12SSC = ’1’ 1 0 T12 T12R CC6xST Figure 4-24 User’s Manual one-match while counting down 2 if T12SSC = ’1’ 0 T12 T12R CC6xST End of Single Shot Mode of T12 4-45 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.7.1.11 Hysteresis-Like Control Mode The hysteresis-like control mode (MSEL6x = ’1001’) offers the possibility to switch off the PWM output if the input CCPOSx becomes ’0’ by resetting bit CC6xST. This can be used as a simple motor control feature by using a comparator indicating e.g. over current. While CCPOSx=’0’, the PWM outputs of the corresponding channel are driving their passive levels. The setting of bit CC6xST is only possible while CCPOSx=’1’. OR CCPOSx in fper R edge detection F hyst_x_state AND hyst_x_ev MSEL6x= ’1001’ Figure 4-25 User’s Manual Hysteresis-Like Control Mode Logic 4-46 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.7.2 Timer T13 4.7.2.1 Overview The timer T13 is built similar to T12, but only with one channel in compare mode. The counter can only count up (similar to the edge-aligned mode of T12). The T13 shadow transfer in case of a period-match is enabled by bit STE13 in register TCTR0. During the T13 shadow transfer, the contents of register CC63SR is transferred to register CC63R. Both registers can be read by SW, whereas only the shadow register can be written by SW. The bits CC63PS, T13IM and PSL63 have shadow bits. The contents of the shadow bits is transferred to the actually used bits during the T13 shadow transfer. Write actions target the shadow bits, read actions deliver the value of the actually used bit. =0? zero-match =? period-match 16 =? T13PR compare-match 16 16 Figure 4-26 T13PS CC63R T13 shadow transfer CC63SR counter register T13 T13clk T13 Overview Timer T13 counts according to the same counting and switching rules as timer T12 in edge-aligned mode. User’s Manual 4-47 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.7.2.2 Compare Mode The compare structure of T13 is based on the compare signals T13_ST_se (compare match detected) and T13_ST_re (zero-match detected without compare-match). These compare signals may modify bit CC63ST only while the timer is running (T13R=’1’). T13R T13 T13_ST_se T13_ST_re T13 prescaler fper Figure 4-27 O R A N D T13_ST_so A N D T13_ST_ro end_of_period in single shot mode T13 Compare Logic Similar to T12, bit CC63ST can be modified by SW by bits CC63S and CC63R. The output line COUT63_T13_o can generate a T13 PWM at the output pin COUT63. The signal MOD_T13_o can be used to modulate the other output signals with a T13 PWM. In order to decouple COUT63 from the internal modulation, the compare state leading to an active signal can be selected independently by bits T13IM and COUT63PS. User’s Manual 4-48 V 0.4, 2002-01 C868 On-Chip Peripheral Components CC63S O R T13_ST_so A N D T13IM set Q CC63ST T13_ST_ro O R CC63R A N D reset 0 MOD_ T13_o 1 Q COUT63_ T13_o 0 1 COUT63PS Figure 4-28 4.7.2.3 T13 Logic for CC6xST Control Single Shot Mode The single shot mode of T13 is similar to the single shot mode of T12 in edge-aligned mode. 4.7.2.4 Synchronization of T13 to T12 The timer T13 can be synchronized on a T12 event. The bit fields T13TEC and T13TED select the event, which is used to start timer T13. This event sets bit T13R per HW and T13 starts counting. Combined with the single shot mode, this feature can be used to generate a programmable delay after a T12 event. User’s Manual 4-49 V 0.4, 2002-01 C868 On-Chip Peripheral Components 5 compare-match while counting up T12 4 3 2 1 0 2 1 T13 0 T13R Figure 4-29 Synchronization of T13 to T12 This figure shows the synchronization of T13 to a T12 event. The selected event in this example is a compare-match (compare value = 2) while counting up. The clocks of T12 and T13 can be different (other prescaler factor), but for reasons of simplicity, this example shows the case for T12clk equal to T13clk. 4.7.3 Multi-channel Mode The multi-channel mode offers a possibility to modulate all six T12-related output signals within one instruction. The bits in bit field MCMP are used to select the outputs that may become active. If the multi-channel mode is enabled (bit MCMEN=’1’), only those outputs may become active, which have a ’1’ at the corresponding bit position in bit field MCMP. This bit field has its own shadow bit field MCMPS, which can be written by SW. The transfer of the new value in MCMPS to the bit field MCMP can be triggered by and synchronized to T12 or T13 events. This structure permits the SW to write the new value, which is then taken into account by the HW at a well-defined moment and synchronized to a PWM period. This avoids unintended pulses due to unsynchronized modulation sources (T12, T13, SW). User’s Manual 4-50 V 0.4, 2002-01 C868 On-Chip Peripheral Components write by software SW SEL 6 Correct Hall Event T13pm T12pm MCMPS reset O R set R O R T12om A N D T12c1cm MCMP clear 6 no action to modulation selection T12zm write to bitfield MCMPS with STRMCM = ’1’ Figure 4-30 T13zm direct SW SYN IDLE Modulation Selection and Synchronization Figure 4-30 shows the modulation selection for the multi-channel mode. The event that triggers the update of bit field MCMP is chosen by SWSEL. If the selected switching event occurs, the reminder flag R is set. This flag monitors the update request and it is automatically reset when the update takes place. In order to synchronize the update of MCMP to a PWM generated by T12 or T13, bit field SWSYN allows the selection of the synchronization event, which leads to the transfer from MCMPS to MCMP. Due to this structure, an update takes place with a new PWM period. If it is explicitly desired, the update takes place immediately with the setting of flag R when the direct synchronization mode is selected. The update can also be requested by SW by writing to bit field MCMPS with the shadow transfer request bit STRMCM set. If this bit is set during the write action to the register, the flag R is automatically set. By using the direct mode and bit STRMCM, the update takes place completely under SW control. The possible HW request events are: • a T12 period-match while counting up (T12pm) • a T12 one-match while counting down (T12om) • a T13 period-match (T13pm) User’s Manual 4-51 V 0.4, 2002-01 C868 On-Chip Peripheral Components • a T12 compare-match of channel 1 (T12c1cm) • a correct Hall event The possible HW synchronization events are: • a T12 zero-match while counting up (T12zm) • a T13 zero-match (T13zm) • 4.7.4 Trap Handling The trap functionality permits the PWM outputs to react on the state of the input pin CTRAP. This functionality can be used to switch off the power devices if the trap input becomes active (e.g. as emergency stop). During the trap state, the selected outputs are forced to the passive state and no active modulation is possible. The trap state is entered immediately by HW if the CTRAP input signal becomes active and the trap function is enabled by bit TRPPEN. It can also be entered by SW by setting bit TRPF (trap input flag), leading to TRPS=’1’ (trap state indication flag). The trap state can be left when the input is inactive, by SW control and synchronized to the following events: • TRPF is automatically reset after CTRAP becomes inactive (if TRPM2=’0’) • TRPF has to be reset by SW after CTRAP becomes inactive (if TRPM2=’1’) • synchronized to T12 PWM after TRPF is reset (T12 period-match in edge-aligned mode or one-match while counting down in centeraligned mode) • synchronized to T13 PWM after TRPF is reset (T13 period-match) • no synchronization to T12 or T13 User’s Manual 4-52 V 0.4, 2002-01 C868 On-Chip Peripheral Components T12 T13 TRPF Figure 4-31 4.7.5 CTRAP active TRPS sync. to T13 TRPS sync. to T12 TRPS no sync. Trap State Synchronization (with TRM2=’0’) Modulation Control The modulation control part combines the different modulation sources (CC6x_T12_o, COUT6x_T12_o = six T12-related signals from the three compare channels), the T13related signal (MOD_T13_o) and the multi-channel modulation signals (MCMP bits). each modulation source can be individually enabled for each output line. Furthermore, the trap functionality is taken into account to disable the modulation of the corresponding output line during the trap state (if enabled). User’s Manual 4-53 V 0.4, 2002-01 C868 On-Chip Peripheral Components OR T12MODENx CC6x_T12_o, COUT6x_T12_o O R T13MODENx A N D O R MOD_T13_o 0 = passive state 1 = active state MCMEN O R 1 MCMPx TRPENx TRPS Figure 4-32 to output pin CC6x, COUT6x 0 PSLx A N D (1 x for each T12-related output) Modulation Control of T12-related Outputs The logic shown in Figure 4-32 has to be built separately for each of the six T12-related output lines, referring to the index ’x’ in the figure above. The output level, that is driven while the output is in the passive state is defined by the corresponding bit in bit field PSL. If the resulting modulation signal is active, the inverted level of the PLSx bit is driven by the output stage. The modulation control part for the T13-related output COUT63 combines the T13 output signal (COUT63_T13_o) and the enable bit ECT13O with the trap functionality. The output level of the passive state is selected by bit PSL63. User’s Manual 4-54 V 0.4, 2002-01 C868 On-Chip Peripheral Components ECT13O COUT63_T13_o A N D A N D 0 = passive state 1 = active state 1 0 TRPEN13 TRPS Figure 4-33 A N D to output pin COUT63 PSL63 Modulation Control of the T13-related Output COUT63 Note: In order to avoid spikes on the output lines, the seven output signals (CC60, COUT60, CC61, COUT61, CC62, COUT62, COUT63) are registered out with the peripheral clock. 4.7.6 Hall Sensor Mode In Brushless-DC motors the next multi-channel state values depend on the pattern of the Hall inputs. There is a strong correlation between the Hall pattern (CURH) and the modulation pattern (MCMP). Because of different machine types the modulation pattern for driving the motor can be different. Therefore it is wishful to have a wide flexibility in defining the correlation between the Hall pattern and the corresponding modulation pattern. The CCU6 offers this by having a register which contains the actual Hall pattern (CURHS), the next expected Hall pattern (EXPHS) and its output pattern (MCMPS). At every correct Hall event (CHE, see figure Hall Event Actions) a new Hall pattern with its corresponding output pattern can be loaded (from a predefined table) by software into the register MCMOUTS. Loading this shadow register can also be done by a write action on MCMOUTS with bit STRHP = ’1’. The sampling of the Hall pattern (on CCPOSx) is done with the T12 clock. By using the dead-time counter DTC0 (mode MSEL6x= ’1000’) a hardware noise filter can be implemented to suppress spikes on the Hall inputs due to high di/dt in rugged inverter environment. In case of a Hall event the DTC0 is reloaded and starts counting. When the counter value of one is reached, the CCPOSx inputs are sampled (without noise and spikes) and are compared to the current Hall pattern (CURH) and to the expected Hall pattern (EXPH). If the sampled pattern equals to the current pattern the edge on CCPOSx was due to a noise spike and no action will be triggered (implicit noise filter). If User’s Manual 4-55 V 0.4, 2002-01 C868 On-Chip Peripheral Components the sampled pattern equals to the next expected pattern the edge on CCPOSx was a correct Hall event, the bit CHE is set which causes an interrupt and the resets T12 (for speed measurement, see description mode ’1000’ below). This correct Hall event can be used as a transfer request event for register MCMOUTS. The transfer from MCMOUTS to MCMOUT transfers the new CURH-pattern as well as the next EXPH-pattern. In case of the sampled Hall inputs were neither the current nor the expected Hall pattern, the bit WHE (wrong Hall event) is set which also can cause an interrupt and sets the IDLE mode clearing MCMP (modulation outputs are inactive). To restart from IDLE the transfer request of MCMOUTS have to be initiated by software (bit STRHP and bitfields SWSEL/SWSYN). write by software STRHP 6 CURHS ENIDLE EXPHS OR CURH 3 = N O R = sampled Hall pattern A N D set CHE Correct Hall Event User’s Manual WHEEN O int_event R AND MSEL6x= ’1000’ Figure 4-34 A N D 3 reset_T12 IDLE EXPH 3 DTC0_1o set AND CHEEN set WHE Wrong Hall Event Hall Logic 4-56 V 0.4, 2002-01 C868 On-Chip Peripheral Components For Brushless-DC motors there is a special mode (MSEL6x = ’1000b’) which is triggered by a change of the Hall-inputs (CCPOSx). This mode shows the capabilities of the CCU6 (see also figures Multi-channel Selection and Synchronization, Hall Event Actions, Modulation Selection and Alternate Output Enable of T12 and Timer T12 Brushless-DC Mode). Here T12’s channel 0 acts in capture function, channel 1 and 2 in compare function (without output modulation) and the multi-channel-block is used to trigger the output switching together with a possible modulation of T13. After the detection of a valid Hall edge the T12 count value is captured to channel 0 (representing the actual motor speed) and resets the T12. When the timer reaches the compare value in channel 1, the next multi-channel state is switched by triggering the shadow transfer of bit field MCMP (if enabled in bit field SWEN). This trigger event can be combined with several conditions which are necessary to implement a noise filtering (correct Hall event) and to synchronize the next multi-channel state to the modulation sources (avoiding spikes on the output lines). This compare function of channel 1 can be used as a phase delay for the position input to the output switching which is necessary if a sensorless back-EMF technique is used instead of Hall sensors. The compare value in channel 2 can be used as a time-out trigger (interrupt) indicating that the motors destination speed is far below the desired value which can be caused by a abnormal load change. In this mode the modulation of T12 has to be disabled (T12MODENx = ’0’). CC60 act. speed CC61 phase delay CC62 timeout ch0 gets captured value for act. speed ch2 compare for timeout capture event resets T12 ch1 compare for phase delay CCPOS0 1 1 1 0 0 CCPOS1 0 0 1 1 1 CCPOS2 1 0 0 0 1 0 0 1 CC6x COUT6y Figure 4-35 User’s Manual Timer T12 Brushless-DC Mode (MSEL6x = 1000) 4-57 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.7.7 Interrupt Generation The interrupt structure is shown in Figure 4-36. The interrupt event or the corresponding interrupt set bit (in register ISS) can trigger the interrupt generation. The interrupt pulse is generated independently from the interrupt flag in register IS. The interrupt flag can be reset by SW by writing to the corresponding bit in register ISR. If enabled by the related interrupt enable bit in register IEN, an interrupt pulse can be generated at one of the four interrupt output lines of the module (length 2 clock cycles). If more than one interrupt source is connected to the same interrupt node pointer (in register INP), the requests are combined to one common line. int_reset_SW int_event int_set_SW int_flag INP to I0 O R A N D int_enable O R to I1 to I2 to I3 other interrupt sources on the same INP Figure 4-36 4.7.8 Interrupt Generation Module Powerdown The CCU6 is disabled when the chip goes into the powerdown mode as describe in . Or it can be individually disabled by setting CCUDIS in register PMCON1. This helps to reduce current consumption in the normal, slow down and idle modes of operation if the CCU6 is not utilized. Bit CCUST in register PMCON2 reflects the powerdown status of CCU6. User’s Manual 4-58 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.8 Kernel Description 4.8.1 Register Overview 4.8.2 Timer12 - Related Registers The generation of the patterns for a 3-channel pulse width modulation (PWM) is based on timer T12. The registers related to timer T12 can be concurrently updated (with welldefined conditions) in order to ensure consistency of the three PWM channels. Timer T12 supports capture and compare modes, which can be independently selected for the three channels CC60, CC61 and CC62. Register T12 represents the counting value of timer T12. It can only be written while the timer T12 is stopped. Write actions while T12 is running are not taken into account. Register T12 can always be read by SW. In edge-aligned mode, T12 only counts up, whereas in center-aligned mode, T12 can count up and down. T12L Timer T12 Counter Register, Low Byte 7 6 5 [Reset value: 00H] 4 3 2 1 0 T12CV7..0 rwh T12H Timer T12 Counter Register, High Byte 7 6 5 [Reset value: 00H] 4 3 2 1 0 T12CV15..8 rwh Field Bits T12CV [7:0] of rwh Timer 12 Counter Value T12 This register represents the 16-bit counter value of CVL, Timer12. [7:0] of T12 CVH User’s Manual Typ Description 4-59 V 0.4, 2002-01 C868 On-Chip Peripheral Components Note: While timer T12 is stopped, the internal clock divider is reset in order to ensure reproducible timings and delays. Note: The timer period, compare values, passive state selects bits and passive levels bits for both timers are written to shadow registers and not directly to the actual registers. Thus the values for a new output signal can be programmed without disturbing the currently generated signal(s). The transfer from the shadow registers to the actual registers is enabled by setting the respective shadow transfer enable bit STEx. If the transfer is enabled the shadow registers are copied to the respective registers as soon as the associated timer reaches the value zero the next time (being cleared in edge aligned mode or counting down from 1 in center aligned mode). When timer T12 is operating in center aligned mode, it will also copy the registers (if enabled by STE12) if it reaches the currently programmed period value (counting up). When a timer is stopped (TxR=’0’), the shadow transfer takes place immediately if the corresponding bit STEx is set. After the transfer the respective bit STEx is cleared automatically. User’s Manual 4-60 V 0.4, 2002-01 C868 On-Chip Peripheral Components Register T12PR contains the period value for timer T12. The period value is compared to the actual counter value of T12 and the resulting counter actions depend on the defined counting rules. This register has a shadow register and the shadow transfer is controlled by bit STE12. A read action by SW delivers the value which is currently used for the compare action, whereas the write action targets a shadow register. The shadow register structure allows a concurrent update of all T12-related values. T12PRL Timer T12 Period Register, Low Byte 7 6 5 [Reset value: 00H] 4 3 2 1 0 T12PV7..0 rwh T12PRH Timer T12 Period Register, High Byte 7 6 5 [Reset value: 00H] 4 3 2 1 0 T12PV15..8 rwh Field Bits T12PV [7:0] of rwh T12 Period Value T12 The value T12PV defines the counter value for T12, PRL, which leads to a period-match. When reaching this [7:0] of value, the timerT12 is set to zero (edge-aligned T12 mode) or changes its count direction to down PRH counting (center-aligned mode). User’s Manual Typ Description 4-61 V 0.4, 2002-01 C868 On-Chip Peripheral Components In compare mode, the registers CC6xR (x=0,1,2) are the actual compare registers for T12. The values stored in CC6xR are compared (all three channels in parallel) to the counter value of T12. In capture mode, the current value of the T12 counter register is captured by registers CC6xR if the corresponding capture event is detected. The registers CC6xR can only be read by SW, the modification of the value is done by a shadow register transfer from register CC6xSR. The corresponding shadow registers CC6xSR can be read and written by SW. In capture mode, the value of the T12 counter register can also be captured by registers CC6xSR if the selected capture event is detected (depending on the selected mode). CC6xRL (x=0,1,2) Capture/Compare Register for Channel CC6x, Low Byte 7 6 5 4 3 2 [Reset value: 00H] 1 0 CC6xV7..0(X=0,1,2) rh CC6xRH (X=0,1,2) Capture/Compare Register for Channel CC6x, High Byte 7 6 5 4 3 2 [Reset value: 00H] 1 0 CC6xV15..8(X=0,1,2) rh Field Bits Typ Description CC6xV (x=0, 1, 2) [7:0] of rh CC6x RL, [7:0] of CC6x RH User’s Manual Shadow Register for Channel x Capture/ Compare Value In compare mode, the bitfields contents of CC6xS are transferred to the bitfields CC6xV during a shadow transfer. In capture mode, the captured value of T12 can be read from these registers. 4-62 V 0.4, 2002-01 C868 On-Chip Peripheral Components CC6xSRL (x=0,1,2) Capture/Compare Shadow Register for Channel CC6x, Low Byte[Reset value: 00H] 7 6 5 4 3 2 1 0 CC6xS7..0(X=0,1,2) rwh CC6xSRH (x=0,1,2) Capture/Compare Shadow Register for Channel CC6x, High Byte[Reset value:00H] 7 6 5 4 3 2 1 0 CC6xS15..8(X=0,1,2) rwh Field Bits Typ Description CC6xS (x=0, 1, 2) [7:0] of rwh Shadow Register for Channel x Capture/ CC6x Compare Value SL, In compare mode, the bitfields contents of CC6xS [7:0] of are transferred to the bitfields CC6xV during a CC6x shadow transfer. In capture mode, the captured SH value of T12 can be read from these registers. User’s Manual 4-63 V 0.4, 2002-01 C868 On-Chip Peripheral Components Register T12DTC controls the dead-time generation for the timer T12 compare channels. Each channel can be independently enabled/disabled for dead-time generation. If enabled, the transition from passive state to active state is delayed by the value defined by bit field DTM. The dead-time counter can only be reloaded while it is zero. T12DTCL Timer T12 Dead-Time Control Register,Low Byte 5 4 [Reset value: 00H] 7 6 3 2 - - DTM r r rw 1 0 Field Bits Typ Description DTM [5:0] rw Dead-Time Bit field DTM determines the programmable delay between switching from the passive state to the active state of the selected outputs. The switching from the active state to the passive state is not delayed. - [7:6] r reserved; returns ’0’ if read; should be written with ’0’; User’s Manual 4-64 V 0.4, 2002-01 C868 On-Chip Peripheral Components T12DTCH Timer T12 Dead-Time Control Register,High Byte 7 6 5 4 3 [Reset value: 00H] 2 1 - DTR - DTE r rh r rw 0 Field Bits Typ Description DTE [2:0] rw Dead Time Enable Bits Bits DTE0..DTE2 enable and disable the dead time generation for each compare channel (0, 1, 2) of timer T12. 0Dead time generation is disabled. The corresponding outputs switch from the passive state to the active state (according to the actual compare status) without any delay. 1Dead time generation is enabled. The corresponding outputs switch from the passive state to the active state (according to the compare status) with the delay programmed in bitfield DTM. DTR [6:4] rh Dead Time Run Indication Bits Bits DTR0..DTR2 indicate the status of the dead time generation for each compare channel (0, 1, 2) of timer T12. 0The value of the corresponding dead time counter channel is 0. 1The value of the corresponding dead time counter channel is not 0. - 7,3 r reserved; returns ’0’ if read; should be written with ’0’; Note: The dead time counters are clocked with the same frequency as T12. This structure allows symmetrical dead time generation in center-aligned and in edge-aligned PWM mode. A duty cycle of 50% leads to CC6x, COUT6x switched on for: 0.5 * period - dead time. Note: The dead-time counters are not reset by bit T12RES, but by bit DTRES. User’s Manual 4-65 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.8.3 Timer13 - Related Registers The generation of the patterns for a single channel pulse width modulation (PWM) is based on timer T13. The registers related to timer T13 can be concurrently updated (with well-defined conditions) in order to ensure consistency of the PWM signal. T13 can be synchronized to several timer T12 events. Timer T13 only supports compare mode on its compare channel CC63. Register T13 represents the counting value of timer T13. It can only be written while the timer T13 is stopped. Write actions while T13 is running are not taken into account. Register T13 can always be read by SW. Timer T13 only supports edge-aligned mode (counting up). T13L Timer T13 Counter Register, Low Byte 7 6 5 [Reset value: 00H] 4 3 2 1 0 T13CV7..0 rwh T13H Timer T13 Counter Register, High Byte 7 6 5 [Reset value: 00H] 4 3 2 1 0 T13CV15..8 rwh Field Bits Typ Description T13CV [7:0] of rwh Timer 13 Counter Value T13L, This register represents the 16-bit counter value of [7:0] of Timer13. T13H Note: While timer T13 is stopped, the internal clock divider is reset in order to ensure reproducible timings and delays. User’s Manual 4-66 V 0.4, 2002-01 C868 On-Chip Peripheral Components Register T13PR contains the period value for timer T13. The period value is compared to the actual counter value of T13 and the resulting counter actions depend on the defined counting rules. This register has a shadow register and the shadow transfer is controlled by bit STE13. A read action by SW delivers the value which is currently used for the compare action, whereas the write action targets a shadow register. The shadow register structure allows a concurrent update of all T13-related values. T13PRL Timer T13 Period Register, Low Byte 7 6 5 [Reset value: 00H] 4 3 2 1 0 T13PV7..0 rwh T13PRH Timer T13 Period Register, High Byte 7 6 5 [Reset value: 00H] 4 3 2 1 0 T13PV15..8 rwh Field Bits T13PV [7:0] of rwh T13 Period Value T13L, The value T13PV defines the counter value for T13, [7:0] of which leads to a period-match. When reaching this T13H value, the timer T13 is set to zero. User’s Manual Typ Description 4-67 V 0.4, 2002-01 C868 On-Chip Peripheral Components Registers CC63R is the actual compare register for T13. The values stored in CC63R is compared to the counter value of T13. The register CC63R can only be read by SW, the modification of the value is done by a shadow register transfer from register CC63SR. The corresponding shadow register CC63SR can be read and written by SW. CC63RL Compare Register for Channel CC63, Low Byte 7 6 5 4 3 [Reset value: 00H] 2 1 0 CC63V7..0 rh CC63RH Compare Register for Channel CC63, High Byte 7 6 5 4 3 [Reset value: 00H] 2 1 0 CC63V15..8 rh Field Bits CC63V [7:0] of rh CC63 RL, [7:0] of CC63 RH User’s Manual Typ Description Channel CC63 Compare Value The bitfield CC63V contains the value, that is compared to the T13 counter value. 4-68 V 0.4, 2002-01 C868 On-Chip Peripheral Components CC63SRL Compare Shadow Register for CC63, Low Byte 7 6 5 4 3 [Reset value: 00H] 2 1 0 CC63S7..0 rw CC63SRH Compare Shadow Register for CC63, High Byte 7 6 5 4 3 [Reset value: 00H] 2 1 0 CC63S15..8 rw Field Bits CC63S [7:0] of rw CC63 SRL, [7:0] of CC63 SRH User’s Manual Typ Description Shadow Register for Channel CC63 Compare Value The bitfield contents of CC63S is transferred to the bitfield CC63V during a shadow transfer. 4-69 V 0.4, 2002-01 C868 On-Chip Peripheral Components Capture/Compare Control Registers The Compare State Register CMPSTAT contains status bits monitoring the current capture and compare state and control bits defining the active/passive state of the compare channels. CMPSTATL Compare State Register,Low Byte [Reset value: 00H] 7 6 5 4 3 2 1 0 - CC63ST - - - CC62ST CC61ST CC60ST r rh r r r rh rh rh Field Bits Typ Description CC60ST CC61ST CC62ST CC63ST 0 1 2 6 rh 1) - 1) [5:3], 7 r Capture/Compare State Bits Bits CC6xST monitor the state of the capture/ compare channels. Bits CC6xST (x=0, 1, 2) are related to T12, bit CC63ST is related to T13. 0 In compare mode, the timer count is less than the compare value. In capture mode, the selected edge has not yet been detected since the bit has been reset by SW the last time. 1 In compare mode, the counter value is greater than or equal to the compare value. In capture mode, the selected edge has been detected. reserved; returns ’0’ if read; should be written with ’0’; These bits are set and reset according to the T12, T13 switching rules CMPSTATH Compare State Register,High Byte [Reset value: 00H] 7 6 5 4 3 2 1 0 T13IM COUT 63PS COUT 62PS CC62PS COUT 61PS CC61PS COUT 60PS CC60PS rwh rwh rwh rwh rwh rwh rwh rwh User’s Manual 4-70 V 0.4, 2002-01 C868 On-Chip Peripheral Components Field Bits Typ Description CC60PS CC61PS CC62PS COUT60PS COUT61PS COUT62PS COUT63PS 0 2 4 1 3 5 6 rwh Passive State Select for Compare Outputs Bits CC6xPS, COUT6xPS select the state of the corresponding compare channel, which is considered to be the passive state. During the passive state, the passive level (defined in register PSLR) is driven by the output pin. Bits CC6xPS, COUT6xPS (x=0, 1, 2) are related to T12, bit CC63PS is related to T13. 0 The corresponding compare output drives passive level while CC6xST is ’0’. 1 The corresponding compare output drives passive level while CC6xST is ’1’. In capture mode, these bits are not used. 7 rwh T13 Inverted Modulation Bit T13IM inverts the T13 signal for the modulation of the CC6x and COUT6x (x = 0, 1, 2) signals. 0 T13 output is not inverted. 1 T13 output is inverted for further modulation. 1) T13IM2) 1) These bits have shadow bits and are updated in parallel to the capture/compare registers of T12, T13 respectively. A read action targets the actually used values, whereas a write action targets the shadow bits. 2) This bit has a shadow bit and is updated in parallel to the compare and period registers of T13. A read action targets the actually used values, whereas a write action targets the shadow bit. User’s Manual 4-71 V 0.4, 2002-01 C868 On-Chip Peripheral Components The Compare Status Modification Register contains control bits allowing for modification by SW of the Capture/Compare state bits. CMPMODIFL Compare State Modification Register,Low Byte [Reset value: 00H] 7 6 5 4 3 2 1 0 - MCC63S - - - MCC62S MCC61S MCC60S r w r r r w w w Field Bits Typ Description MCC60S MCC61S MCC62S MCC63S 0 1 2 7 w - [5:3], 7 r Capture/Compare Status Modification Bits These bits are used to set (MCC6xR) the corresponding bits CC6xST by SW. This feature allows the user to individually change the status of the output lines by SW, e.g. when the corresponding compare timer is stopped. This allows a bit manipulation of CC6xST-bits by a single data write action. The following functionality of a write access to bits concerning the same capture/compare state bit is provided: MCC6xR(CMPMODIFH), MCC6xS = 0,0 Bit CC6xST is not changed. 0,1 Bit CC6xST is set. 1,0 Bit CC6xST is reset. 1,1 reserved (toggle) reserved; returns ’0’ if read; should be written with ’0’; CMPMODIFH Compare State Modification Register,High Byte [Reset value: 00H] 7 6 5 4 3 2 1 0 - MCC63R - - - MCC62R MCC61R MCC60R r w r r r w w w User’s Manual 4-72 V 0.4, 2002-01 C868 On-Chip Peripheral Components Field Bits Typ Description MCC60R MCC61R MCC62R MCC63R 0 1 2 7 w - [5:3], 7 r User’s Manual Capture/Compare Status Modification Bits These bits are used to reset (MCC6xR) the corresponding bits CC6xST by SW. This feature allows the user to individually change the status of the output lines by SW, e.g. when the corresponding compare timer is stopped. This allows a bit manipulation of CC6xST-bits by a single data write action. The following functionality of a write access to bits concerning the same capture/compare state bit is provided: MCC6xR, MCC6xS(CMPMODIFL) = 0,0 Bit CC6xST is not changed. 0,1 Bit CC6xST is set. 1,0 Bit CC6xST is reset. 1,1 reserved (toggle) reserved; returns ’0’ if read; should be written with ’0’; 4-73 V 0.4, 2002-01 C868 On-Chip Peripheral Components Register TCTR0 controls the basic functionality of both timers T12 and T13. TCTR0L Timer Control Register 0,Low Byte [Reset value: 00H] 7 6 5 4 3 2 1 0 CTM CDIR STE12 T12R T12PRE T12CLK rw rh rh rh rw rw Field Bits Type Description T12CLK [2:0] rw Timer T12 Input Clock Select Selects the input clock for timer T12 which is derived from the peripheral clock according to the equation fT12 = fper / 2<T12CLK>. 000 fT12 = fper 001 fT12 = fper / 2 010 fT12 = fper / 4 011 fT12 = fper / 8 100 fT12 = fper / 16 101 fT12 = fper / 32 110 fT12 = fper / 64 111 fT12 = fper / 128 T12PRE 3 rw Timer T12 Prescaler Bit In order to support higher clock frequencies, an additional prescaler factor of 1/256 can be enabled for the prescaler for T12. 0 The additional prescaler for T12 is disabled. 1 The additional prescaler for T12 is enabled. T12R1) 4 rh Timer T12 Run Bit T12R starts and stops timer T12. It is set/reset by SW by setting bits T12RR orT12RS or it is reset by HW according to the function defined by bitfield T12SSC. 0 Timer T12 is stopped. 1 Timer T12 is running. User’s Manual 4-74 V 0.4, 2002-01 C868 On-Chip Peripheral Components Field Bits Type Description STE12 5 rh Timer T12 Shadow Transfer Enable Bit STE12 enables or disables the shadow transfer of the T12 period value, the compare values and passive state select bits and levels from their shadow registers to the actual registers if a T12 shadow transfer event is detected. Bit STE12 is cleared by hardware after the shadow transfer. A T12 shadow transfer event is a period-match while counting up or a one-match while counting down. 0 The shadow register transfer is disabled. 1 The shadow register transfer is enabled. CDIR 6 rh Count Direction of Timer T12 This bit is set/reset according to the counting rules of T12. 0 T12 counts up. 1 T12 counts down. CTM 7 rw T12 Operating Mode 0 Edge-aligned Mode: T12 always counts up and continues counting from zero after reaching the period value. 1 Center-aligned Mode: T12 counts down after detecting a period-match and counts up after detecting a one-match. 1) A concurrent set/reset action on T12R (from T12SSC, T12RR or T12RS) will have no effect. The bit T12R will remain unchanged. Note: A write action to the bit fields T12CLK or T12PRE is only taken into account while the timer T12 is not running (T12R=0). User’s Manual 4-75 V 0.4, 2002-01 C868 On-Chip Peripheral Components TCTR0H Timer Control Register 0,High Byte [Reset value: 00H] 7 6 5 4 3 2 1 0 - - STE13 T13R T13PRE T13CLK r r rh rh rw rw Field Bits Type Description T13CLK [2:0] rw Timer T13 Input Clock Select Selects the input clock for timer T13 which is derived from the peripheral clock according to the equation fT13 = fper / 2<T13CLK>. 000 fT13 = fper 001 fT13 = fper / 2 010 fT13 = fper / 4 011 fT13 = fper / 8 100 fT13 = fper / 16 101 fT13 = fper / 32 110 fT13 = fper / 64 111 fT13 = fper / 128 T13PRE 3 rw Timer T13 Prescaler Bit In order to support higher clock frequencies, an additional prescaler factor of 1/256 can be enabled for the prescaler for T13. 0 The additional prescaler for T13 is disabled. 1 The additional prescaler for T13 is enabled. T13R1) 4 rh Timer T13 Run Bit T13R starts and stops timer T13. It is set/reset by SW by setting bits T13RR orT13RS or it is set/reset by HW according to the function defined by bitfields T13SSC, T13TEC and T13TED. 0 Timer T13 is stopped. 1 Timer T13 is running. User’s Manual 4-76 V 0.4, 2002-01 C868 On-Chip Peripheral Components Field Bits Type Description STE13 5 rh Timer T13 Shadow Transfer Enable Bit STE13 enables or disables the shadow transfer of the T13 period value, the compare value and passive state select bit and level from their shadow registers to the actual registers if a T13 shadow transfer event is detected. Bit STE13 is cleared by hardware after the shadow transfer. A T13 shadow transfer event is a period-match. 0 The shadow register transfer is disabled. 1 The shadow register transfer is enabled. - [7: 6] r reserved; returns ’0’ if read; should be written with ’0’; 1) A concurrent set/reset action on T13R (from T13SSC, T13TEC, T13RR or T13RS) will have no effect. The bit T12R will remain unchanged. Note: A write action to the bit fields T13CLK or T13PRE is only taken into account while the timer T13 is not running (T13R=0). User’s Manual 4-77 V 0.4, 2002-01 C868 On-Chip Peripheral Components Register TCTR2 controls the single-shot and the synchronization functionality of both timers T12 and T13. Both timers can run in single-shot mode. In this mode they stop their counting sequence automatically after one counting period with a count value of zero. The single-shot mode and the synchronization feature of T13 to T12 allows the generation of events with a programmable delay after well-defined PWM actions of T12. For example, this feature can be used to trigger AD conversions after a specified delay (to avoid problems due to switching noise) synchronously to a PWM event. TCTR2L Timer Control Register 2 7 6 [Reset value: 00H] 5 4 3 2 1 0 - T13TED T13TEC T13SSC T12SSC r rw rw rw rw Field Bits Type Description T12SSC 0 rw Timer T12 Single Shot Control This bit controls the single shot-mode of T12. 0 The single-shot mode is disabled, no HW action on T12R. 1 The single shot mode is enabled, the bit T12R is reset by HW if - T12 reaches its period value in edge-aligned mode - T12 reaches the value 1 while down counting in center-aligned mode. In parallel to the reset action of bit T12R, the bits CC6xST (x=0, 1, 2) are reset. T13SSC 1 rw Timer T13 Single Shot Control This bit controls the single shot-mode of T13. 0 No HW action on T13R 1 The single-shot mode is enabled, the bit T13R is reset by HW if T13 reaches its period value. In parallel to the reset action of bit T13R, the bit CC63ST is reset. User’s Manual 4-78 V 0.4, 2002-01 C868 On-Chip Peripheral Components Field Bits Type Description T13TEC [4:2] rw T13 Trigger Event Control Bitfield T13TEC selects the trigger event to start T13 (automatic set of T13R for synchronization to T12 compare signals) according to following combinations: 000 no action 001 set T13R on a T12 compare event on channel 0 010 set T13R on a T12 compare event on channel 1 011 set T13R on a T12 compare event on channel 2 100 set T13R on any T12 compare event (ch. 0, 1, 2) 101 set T13R upon a period-match of T12 110 set T13R upon a zero-match of T12 (while counting up) 111 set T13R on any hall state change T13TED1) [6:5] rw Timer T13 Trigger Event Direction Bitfield T13TED delivers additional information to control the automatic set of bit T13R in the case that the trigger action defined by T13TEC is detected. 00 reserved, no action 01 while T12 is counting up 10 while T12 is counting down 11 independent on the count direction of T12 0 7 r reserved; returns ’0’ if read; should be written with ’0’; 1) Example: If the timer T13 is intended to start at any compare event on T12 (T13TEC=’100’) the trigger event direction can be programmed to - counting up >> a T12 channel 0, 1, 2 compare match triggers T13R only while T12 is counting up - counting down >> a T12 channel 0, 1, 2 compare match triggers T13R only while T12 is counting down - independent from bit CDIR >> each T12 channel 0, 1, 2 compare match triggers T13R The timer count direction is taken from the value of bit CDIR. As a result, if T12 is running in edge-aligned mode (counting up only), T13 can only be started automatically if bitfield T13TED=’01’ or ’11’. User’s Manual 4-79 V 0.4, 2002-01 C868 On-Chip Peripheral Components Register TCTR4 allows the SW control of the run bits T12R and T13R by independent set and reset conditions. Furthermore, the timers can be reset (while running) and the bits STE12 and STE13 can be controlled by SW. TCTR4L Timer Control Register 4,Low Byte [Reset value: 00H] 7 6 5 4 3 2 1 0 T12STD T12STR - - DTRES T12RES T12RS T12RR w w r r w w w w Field Bits Type Description T12RR 0 w Timer T12 Run Reset Setting this bit resets the T12R bit. 0 T12R is not influenced. 1 T12R is cleared, T12 stops counting. T12RS 1 w Timer T12 Run Set Setting this bit sets the T12R bit. 0 T12R is not influenced. 1 T12R is set, T12 starts counting. T12RES 2 w Timer T12 Reset 0 No effect on T12. 1 The T12 counter register is reset to zero. The switching of the output signals is according to the switching rules. Setting of T12RES has no impact on bit T12R. DTRES 3 w Dead-Time Counter Reset 0 No effect on the dead-time counters. 1 The three dead-time counter channels are reset to zero. T12STR 6 w Timer T12 Shadow Transfer Request 0 No action 1 STE12 is set, enabling the shadow transfer. T12STD 7 w Timer T12 Shadow Transfer Disable 0 No action 1 STE12 is reset without triggering the shadow transfer. - [5:4] r reserved; returns ’0’ if read; should be written with ’0’; User’s Manual 4-80 V 0.4, 2002-01 C868 On-Chip Peripheral Components Note: A simultaneous write of a ’1’ to bits which set and reset the same bit will trigger no action. The corresponding bit will remain unchanged. TCTR4H Timer Control Register 4,High Byte [Reset value: 00H] 7 6 5 4 3 2 1 0 T13STD T13STR - - - T13RES T13RS T13RR w w r r r w w w Field Bits Type Description T13RR 0 w Timer T13 Run Reset Setting this bit resets the T13R bit. 0 T13R is not influenced. 1 T13R is cleared, T13 stops counting. T13RS 1 w Timer T13 Run Set Setting this bit sets the T13R bit. 0 T13R is not influenced. 1 T13R is set, T13 starts counting. T13RES 2 w Timer T13 Reset 0 No effect on T13. 1 The T13 counter register is reset to zero. The switching of the output signals is according to the switching rules. Setting of T13RES has no impact on bit T13R. T13STR 6 w Timer T13 Shadow Transfer Request 0 No action 1 STE13 is set, enabling the shadow transfer. T13STD 7 w Timer T13 Shadow Transfer Disable 0 No action 1 STE13 is reset without triggering the shadow transfer. - [5:3] r reserved; returns ’0’ if read; should be written with ’0’; Note: A simultaneous write of a ’1’ to bits which set and reset the same bit will trigger no action. The corresponding bit will remain unchanged. User’s Manual 4-81 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.8.4 Modulation Control Registers 4.8.4.1 Global Module Control Register MODCTR contains control bits enabling the modulation of the corresponding output signal by PWM pattern generated by the timers T12 and T13. Furthermore, the multi-channel mode can be enabled as additional modulation source for the output signals. MODCTRL Modulation Control Register ,Low Byte 5 4 [Reset value: 00H] 7 6 3 2 MCMEN - T12MODEN rw r rw 1 0 Field Bits Type Description T12MODEN [5:0] rw T12 Modulation Enable Setting these bits enables the modulation of the corresponding compare channel by a PWM pattern generated by timer T12. The bit positions are corresponding to the following output signals: bit 0 modulation of CC60 bit 1 modulation of COUT60 bit 2 modulation of CC61 bit 3 modulation of COUT61 bit 4 modulation of CC62 bit 5 modulation of COUT62 The enable feature of the modulation is defined as follows: 0 The modulation of the corresponding output signal by a T12 PWM pattern is disabled. 1 The modulation of the corresponding output signal by a T12 PWM pattern is enabled. MCMEN 7 rw Multi-Channel Mode Enable 0 The modulation of the corresponding output signal by a multi-channel pattern according to bitfield MCMOUT is disabled. 1 The modulation of the corresponding output signal by a multi-channel pattern according to bitfield MCMOUT is enabled. User’s Manual 4-82 V 0.4, 2002-01 C868 On-Chip Peripheral Components Field Bits Type Description - 6 r reserved; returns ’0’ if read; should be written with ’0’; MODCTRH Modulation Control Register ,High Byte 5 4 [Reset value: 00H] 7 6 3 2 ECT13O - T13MODEN rw r rw 1 0 Field Bits Type Description T13MODEN [5:0] rw T13 Modulation Enable Setting these bits enables the modulation of the corresponding compare channel by a PWM pattern generated by timer T13. The bit positions are corresponding to the following output signals: bit 0 modulation of CC60 bit 1 modulation of COUT60 bit 2 modulation of CC61 bit 3 modulation of COUT61 bit 4 modulation of CC62 bit 5 modulation of COUT62 The enable feature of the modulation is defined as follows: 0 The modulation of the corresponding output signal by a T13 PWM pattern is disabled. 1 The modulation of the corresponding output signal by a T13 PWM pattern is enabled. ECT13O 7 rw Enable Compare Timer T13 Output 0 The alternate output function COUT63 is disabled. 1 The alternate output function COUT63 is enabled for the PWM signal generated by T13. - 14 r reserved; returns ’0’ if read; should be written with ’0’; User’s Manual 4-83 V 0.4, 2002-01 C868 On-Chip Peripheral Components The register TRPCTR controls the trap functionality. It contains independent enable bits for each output signal and control bits to select the behavior in case of a trap condition. The trap condition is a low level on the CTRAP input pin, which is monitored (inverted level) by bit TRPF (in register IS). While TRPF=’1’ (trap input active), the trap state bit TRPS (in register IS) is set to ’1’. TRPCTRL Trap Control Register ,Low Byte [Reset value: 00H] 7 6 5 4 3 2 1 0 - - - - - TRPM2 TRPM1 TRPM0 r r r r r rw rw rw Field Bits Type Description TRPM1, TRPM0 [1:0] rw User’s Manual Trap Mode Control Bits 1, 0 These two bits define the behavior of the selected outputs when leaving the trap state after the trap condition has become inactive again. A synchronization to the timer driving the PWM pattern permits to avoid unintended short pulses when leaving the trap state. The combination (TRPM1, TRPM0) leads to: 00 The trap state is left (return to normal operation according to TRPM2) when a zeromatch of T12 (while counting up) is detected (synchronization to T12). 01 The trap state is left (return to normal operation according to TRPM2) when a zeromatch of T13 is detected (synchronization to T13). 10 reserved 11 The trap state is left (return to normal operation according to TRPM2) immediately without any synchronization to T12 or T13. 4-84 V 0.4, 2002-01 C868 On-Chip Peripheral Components Field Bits Type Description TRPM2 2 rw Trap Mode Control Bit 2 0 The trap state can be left (return to normal operation = bit TRPS=’0’) as soon as the input CTRAP becomes inactive. Bit TRPF is automatically cleared by HW if the input pin CTRAP becomes ’1’. Bit TRPS is automatically cleared by HW if bit TRPF is ’0’ and if the synchronization condition (according to TRPM0,1) is detected. 1 The trap state can be left (return to normal operation = bit TRPS=’0’) as soon as bit TRPF is reset by SW after the input CTRAP becomes inactive (TRPF is not cleared by HW). Bit TRPS is automatically cleared by HW if bit TRPF=’0’ and if the synchronization condition (according to TRPM0,1) is detected. - [7:3] r reserved; returns ’0’ if read; should be written with ’0’; User’s Manual 4-85 V 0.4, 2002-01 C868 On-Chip Peripheral Components TRPCTRH Trap Control Register ,High Byte 5 [Reset value: 00H] 7 6 4 3 2 TRPPEN TRPEN13 TRPEN rw rw rw 1 0 Field Bits Type Description TRPEN [5:0] rw Trap Enable Control Setting these bits enables the trap functionality for the following corresponding output signals: bit 0 trap functionality of CC60 bit 1 trap functionality of COUT60 bit 2 trap functionality of CC61 bit 3 trap functionality of COUT61 bit 4 trap functionality of CC62 bit 5 trap functionality of COUT62 The enable feature of the trap functionality is defined as follows: 0 The trap functionality of the corresponding output signal is disabled. The output state is independent from bit TRPS. 1 The trap functionality of the corresponding output signal is enabled. The output is set to the passive state while TRPS=’1’. TRPEN13 6 rw Trap Enable Control for Timer T13 0 The trap functionality for T13 is disabled. Timer T13 (if selected and enabled) provides PWM functionality even while TRPS=’1’. 1 The trap functionality for T13 is enabled. The timer T13 PWM output signal is set to the passive state while TRPS=’1’. TRPPEN 7 rw Trap Pin Enable 0 The trap functionality based on the input pin CTRAP is disabled. A trap can only be generated by SW by setting bit TRPF. 1 The trap functionality based on the input pin CTRAP is enabled. A trap can be generated by SW by setting bit TRPF or by CTRAP=’0’. User’s Manual 4-86 V 0.4, 2002-01 C868 On-Chip Peripheral Components Register PSLR defines the passive state level driven by the output pins of the module. The passive state level is the value that is driven by the port pin during the passive state of the output. During the active state, the corresponding output pin drives the active state level, which is the inverted passive state level. The passive state level permits to adapt the driven output levels to the driver polarity (inverted, not inverted) of the connected power stage. PSLRL Passive State Level Register ,High Byte 5 4 [Reset value: 00H] 7 6 3 2 PSL63 - PSL rwh r rwh 1 0 Field Bits Type Description PSL1) [5:0] rwh Compare Outputs Passive State Level The bits of this bitfield define the passive level driven by the module outputs during the passive state. The bit positions are: bit 0 passive level for output CC60 bit 1 passive level for output COUT60 bit 2 passive level for output CC61 bit 3 passive level for output COUT61 bit 4 passive level for output CC62 bit 5 passive level for output COUT62 The value of each bit position is defined as: 0 The passive level is ’0’. 1 The passive level is ’1’. PSL632) 7 rwh Passive State Level of Output COUT63 This bitfield defines the passive level of the output pin COUT63. 0 The passive level is ’0’. 1 The passive level is ’1’. - 6 r reserved; returns ’0’ if read; should be written with ’0’; 1) Bitfield PSL has a shadow registers to allow for updates without undesired pulses on the output lines. The bits are updated with the T12 shadow transfer. A read action targets the actually used values, whereas a write action targets the shadow bits. User’s Manual 4-87 V 0.4, 2002-01 C868 On-Chip Peripheral Components 2) Bit PSL63 has a shadow register to allow for updates without undesired pulses on the output line. The bit is updated with the T13 shadow transfer. A read action targets the actually used values, whereas a write action targets the shadow bits. 4.8.4.2 Multi-Channel Control Register MCMOUTS contains bits controlling the output states for multi-channel mode. Furthermore, the appropriate signals for the block commutation by Hall sensors can be selected. This register is a shadow register (that can be written) for register MCMOUT, which indicates the currently active signals. MCMOUTSL Multi-Channel Mode Output Shadow Register ,Low Byte 7 6 5 4 3 2 STRMCM - MCMPS w r rw [Reset value: 00H] 1 0 Field Bits Type Description MCMPS [5:0] rw Multi-Channel PWM Pattern Shadow Bitfield MCMPS is the shadow bitfield for bitfield MCMP. The multi-channel shadow transfer is triggered according to the transfer conditions defined by register MCMCTR. STRMCM 7 w Shadow Transfer Request for MCMPS Setting this bits during a write action leads to an immediate update of bitfield MCMP by the value written to bitfield MCMPS. This functionality permits an update triggered by SW. When read, this bit always delivers ’0’. 0 Bitfield MCMP is updated according to the defined HW action. The write access to bitfield MCMPS doesn’t modify bitfield MCMP. 1 Bitfield MCMP is updated by the value written to bitfield MCMPS. - 6 r reserved; returns ’0’ if read; should be written with ’0’; User’s Manual 4-88 V 0.4, 2002-01 C868 On-Chip Peripheral Components MCMOUTSH Multi-Channel Mode Output Shadow Register ,High Byte 5 4 3 2 [Reset value: 00H] 7 6 1 0 STRHP - CURHS EXPHS w r rw rw Field Bits Type Description EXPHS [2:0] rw Expected Hall Pattern Shadow Bitfield EXPHS is the shadow bitfield for bitfield EXPH. The bitfield is transferred to bitfield EXPH if an edge on the hall input pins CCPOSx (x=0, 1, 2) is detected. CURHS [5:3] rw Current Hall Pattern Shadow Bitfield CURHS is the shadow bitfield for bitfield CURH. The bitfield is transferred to bitfield CURH if an edge on the hall input pins CCPOSx (x=0, 1, 2) is detected. STRHP 7 w Shadow Transfer Request for the Hall Pattern Setting this bits during a write action leads to an immediate update of bitfields CURH and EXPH by the value written to bitfields CURHS and EXPH. This functionality permits an update triggered by SW. When read, this bit always delivers ’0’. 0 The bitfields CURH and EXPH are updated according to the defined HW action. The write access to bitfields CURHS and EXPH doesn’t modify the bitfields CURH and EXPH. 1 The bitfields CURH and EXPH are updated by the value written to the bitfields CURHS and EXPHS. - 6 r reserved; returns ’0’ if read; should be written with ’0’; User’s Manual 4-89 V 0.4, 2002-01 C868 On-Chip Peripheral Components Register MCMOUT shows the multi-channel control bits, that are currently used. Register MCMOUT is defined as follows: MCMOUTL Multi-Channel Mode Output Register ,Low Byte 5 4 [Reset value: 00H] 7 6 3 - R MCMP r rh rh Field Bits Type Description MCMP1) [5:0] rh User’s Manual 2 1 0 Multi-Channel PWM Pattern Bitfield MCMP is written by a shadow transfer from bitfield MCMPS. It contains the output pattern for the multi-channel mode. If this mode is enabled by bit MCMEN in register MODCTR, the output state of the following output signal can be modified: bit 0 multi-channel state for output CC60 bit 1 multi-channel state for output COUT60 bit 2 multi-channel state for output CC61 bit 3 multi-channel state for output COUT61 bit 4 multi-channel state for output CC62 bit 5 multi-channel state for output COUT62 The multi-channel patterns can set the related output to the passive state. 0 The output is set to the passive state. The PWM generated by T12 or T13 are not taken into account. 1 The output can deliver the PWM generated by T12 or T13 (according to register MODCTR). 4-90 V 0.4, 2002-01 C868 On-Chip Peripheral Components Field Bits Type Description R 6 rh Reminder Flag This reminder flag indicates that the shadow transfer from bitfield MCMPS to MCMP has been requested by the selected trigger source. This bit is cleared when the shadow transfer takes place and while MCMEN=’0’. 0 Currently, no shadow transfer from MCMPS to MCMP is requested. 1 A shadow transfer from MCMPS to MCMP has been requested by the selected trigger source, but it has not yet been executed, because the selected synchronization condition has not yet occurred. - 7 r reserved; returns ’0’ if read; should be written with ’0’; 1) While IDLE=’1’, bit field MCMP is cleared. User’s Manual 4-91 V 0.4, 2002-01 C868 On-Chip Peripheral Components MCMOUTH Multi-Channel Mode Output Register ,High Byte 7 6 - - CURH EXPH r r rw rw Field 5 4 3 [Reset value: 00H] 2 1 0 Bits Type Description EXPH [2:0] rh Expected Hall Pattern Bitfield EXPH is written by a shadow transfer from bitfield EXPHS. The contents is compared after every detected edge at the hall input pins with the pattern at the hall input pins in order to detect the occurrence of the next desired (=expected) hall pattern or a wrong pattern. If the current hall pattern at the hall input pins is equal to the bitfield EXPH, bit CHE (correct hall event) is set and an interrupt request is generated (if enabled by bit ENCHE). If the current hall pattern at the hall input pins is not equal to the bitfields CURH or EXPH, bit WHE (wrong hall event) is set and an interrupt request is generated (if enabled by bit ENWHE). CURH [5:3] rh Current Hall Pattern Bitfield CURH is written by a shadow transfer from bitfield CURHS.The contents is compared after every detected edge at the hall input pins with the pattern at the hall input pins in order to detect the occurrence of the next desired (=expected) hall pattern or a wrong pattern. If the current hall input pattern is equal to bitfield CURH, the detected edge at the hall input pins has been an invalid transition (e.g. a spike). - [7:6] r reserved; returns ’0’ if read; should be written with ’0’; 1) 1) The bits in the bit fields EXPH and CURH correspond to the hall patterns at the input pins CCPOSx (x=0, 1, 2) in the order (EXPH.2, EXPH.1, EXPH.0), (CURH.2, CURH.1, CURH.0), (CCPOS2, CCPOS.1, CCPOS0). User’s Manual 4-92 V 0.4, 2002-01 C868 On-Chip Peripheral Components Register MCMCTR contains control bits for the multi-channel functionality. MCMCTRLL Multi-Channel Mode Control Register 5 [Reset value: 00H] 7 6 4 3 2 1 0 - - SWSYN - SWSEL r r rw r rw Field Bits Type Description SWSEL [2:0] rw Switching Selection Bitfield SWSEL selects one of the following trigger request sources (next multi-channel event) for the shadow transfer from MCMPS to MCMP. The trigger request is stored in the reminder flag R until the shadow transfer is done and flag R is cleared automatically with the shadow transfer. The shadow transfer takes place synchronously with an event selected in bitfield SWSYN. 000 no trigger request will be generated 001 correct hall pattern on CCPOSx detected 010 T13 period-match detected (while counting up) 011 T12 one-match (while counting down) 100 T12 channel 1 compare-match detected (phase delay function) 101 T12 period match detected (while counting up) else reserved, no trigger request will be generated SWSYN [5:4] rw Switching Synchronization Bitfield SWSYN triggers the shadow transfer between MCMPS and MCMP if it has been requested before (flag R set by an event selected by SWSEL). This feature permits the synchronization of the outputs to the PWM source, that is used for modulation (T12 or T13). 00 direct; the trigger event directly causes the shadow transfer 01 T13 zero-match triggers the shadow transfer 10 a T12 zero-match (while counting up) triggers the shadow transfer 11 reserved; no action User’s Manual 4-93 V 0.4, 2002-01 C868 On-Chip Peripheral Components Field Bits Type Description - 3, [7:6] r reserved; returns ’0’ if read; should be written with ’0’; Note: The generation of the shadow transfer request by HW is only enabled if bit MCMEN=’1’. User’s Manual 4-94 V 0.4, 2002-01 C868 On-Chip Peripheral Components Register T12MSEL contains control bits to select the capture/compare functionality of the three channels of timer T12. T12MSELL T12 Capture/Compare Mode Select Register, Low Byte 7 6 5 4 3 [Reset value: 00H] 2 1 MSEL61 MSEL60 rw rw Field Bits Type Description MSEL60, MSEL61 [3:0], [7:4] rw 0 Capture/Compare Mode Selection These bitfields select the operating mode of the three timer T12 capture/compare channels. Each channel (n=0, 1, 2) can be programmed individually either for compare or capture operation according to: 0000 Compare outputs disabled, pins CC6n and COUT6n can be used for IO. No capture action. 0001 Compare output on pin CC6n, pin COUT6n can be used for IO. No capture action. 0010 Compare output on pin COUT6n, pin CC6n can be used for IO. No capture action. 0011 Compare output on pins COUT6n and CC6n. 01XX Double-Register Capture modes, see Table 4-4. 1000 Hall Sensor mode, see Table 4-5. In order to enable the hall edge detection, all three MSEL6x have to be programmed to Hall Sensor mode. 1001 Hysteresis-like mode, see Table 4-5. 101X Multi-Input Capture modes, see Table 4-6. 11XX Multi-Input Capture modes, see Table 4-6. Note: In the capture modes, all edges at the CC6x inputs are leading to the setting of the corresponding interrupt status flags in register IS. In order to monitor the selected capture events at the CCPOSx inputs in the multi-input capture modes, the CC6xST bits of the corresponding channel are set when detecting the selected event. The interrupt status bits and the CC6xST bits have to be reset by SW. User’s Manual 4-95 V 0.4, 2002-01 C868 On-Chip Peripheral Components T12MSELH T12 Capture/Compare Mode Select Register, High Byte 3 [Reset value: 00H] 7 6 5 4 2 1 - - - - MSEL62 r r r r rw 0 Field Bits Type Description MSEL62 [3:0] rw Capture/Compare Mode Selection These bitfields select the operating mode of the three timer T12 capture/compare channels. Each channel (n=0, 1, 2) can be programmed individually either for compare or capture operation according to: 0000 Compare outputs disabled, pins CC6n and COUT6n can be used for IO. No capture action. 0001 Compare output on pin CC6n, pin COUT6n can be used for IO. No capture action. 0010 Compare output on pin COUT6n, pin CC6n can be used for IO. No capture action. 0011 Compare output on pins COUT6n and CC6n. 01XX Double-Register Capture modes, see Table 4-4. 1000 Hall Sensor mode, see Table 4-5. In order to enable the hall edge detection, all three MSEL6x have to be programmed to Hall Sensor mode. 1001 Hysteresis-like mode, see Table 4-5. 101X Multi-Input Capture modes, see Table 4-6. 11XX Multi-Input Capture modes, see Table 4-6. - [7:4] r reserved; returns ’0’ if read; should be written with ’0’; Note: In the capture modes, all edges at the CC6x inputs are leading to the setting of the corresponding interrupt status flags in register IS. In order to monitor the selected capture events at the CCPOSx inputs in the multi-input capture modes, the CC6xST bits of the corresponding channel are set when detecting the selected event. The interrupt status bits and the CC6xST bits have to be reset by SW. User’s Manual 4-96 V 0.4, 2002-01 C868 On-Chip Peripheral Components Table 4-4 Description of the Double-Register Capture modes. Description Double-Register Capture modes 0100The contents of T12 is stored in CC6nR after a rising edge and in CC6nSR after a falling edge on the input pin CC6n. 0101The value stored in CC6nSR is copied to CC6nR after a rising edge on the input pin CC6n. The actual timer value of T12 is simultaneously stored in the shadow register CC6nSR. This feature is useful for time measurements between consecutive rising edges on pins CC6n. COUT6n is IO. 0110The value stored in CC6nSR is copied to CC6nR after a falling edge on the input pin CC6n. The actual timer value of T12 is simultaneously stored in the shadow register CC6nSR. This feature is useful for time measurements between consecutive falling edges on pins CC6n. COUT6n is IO. 0111The value stored in CC6nSR is copied to CC6nR after any edge on the input pin CC6n. The actual timer value of T12 is simultaneously stored in the shadow register CC6nSR. This feature is useful for time measurements between consecutive edges on pins CC6n. COUT6n is IO. Table 4-5 Description of the Combined-T12 modes. Description Combined-T12 modes 1000Hall Sensor mode: Capture mode for channel 0, compare mode for channels 1 and 2. The contents of T12 is captured into CC60 at a valid hall event (which is a reference to the actual speed). CC61 can be used for a phase delay function between hall event and output switching. CC62 can act as a time-out trigger if the expected hall event comes too late. The value ’1000’ has to be programmed to MSEL0, MSEL1 and MSEL2 if the hall signals are used. In this mode, the contents of timer T12 is captured in CC60 and T12 is reset after the detection of a valid hall event. In order to avoid noise effects, the dead-time counter channel 0 is started after an edge has been detected at the hall inputs. When reaching the value of ’000001’, the hall inputs are sampled and the pattern comparison is done. 1001Hysteresis-like control mode with dead time generation: The negative edge of the CCPOSx input signal is used to reset bit CC6nST. As a result, the output signals can be switched to passive state immediately and switch back to active state (with dead time) if the CCPOSx is high and the bit CC6nST is set by a compare event. User’s Manual 4-97 V 0.4, 2002-01 C868 On-Chip Peripheral Components Table 4-6 Description of the Multi-Input Capture modes. Description Multi-Input Capture modes 1010The timer value of T12 is stored in CC6nR after a rising edge at the input pin CC6n. The timer value of T12 is stored in CC6nSR after a falling edge at the input pin CCPOSx. 1011The timer value of T12 is stored in CC6nR after a falling edge at the input pin CC6n. The timer value of T12 is stored in CC6nSR after a rising edge at the input pin CCPOSx. 1100The timer value of T12 is stored in CC6nR after a rising edge at the input pin CC6n. The timer value of T12 is stored in CC6nSR after a rising edge at the input pin CCPOSx. 1101The timer value of T12 is stored in CC6nR after a falling edge at the input pin CC6n. The timer value of T12 is stored in CC6nSR after a falling edge at the input pin CCPOSx. 1110The timer value of T12 is stored in CC6nR after any edge at the input pin CC6n. The timer value of T12 is stored in CC6nSR after any edge at the input pin CCPOSx. 1111reserved (no capture or compare action) User’s Manual 4-98 V 0.4, 2002-01 C868 On-Chip Peripheral Components PMCON1 Peripheral Management Control Register [Reset value: XXXXX000B] 7 6 5 4 3 2 1 0 - - - - - CCUDIS T2DIS ADCDIS r r r r r rw rw rw The functions of the shaded bits are not described here Field Bits Typ Description CCUDIS 2 rw CCU6 Disable Request. 0 : CCU6 will continue normal operation. (default) 1 : Request to disable the CCU6 is active. PMCON2 Peripheral Management Status Register [Reset value: XXXXX000B] 7 6 5 4 3 2 1 0 - - - - - CCUST T2ST ADCST r r r r r rh rh rh The functions of the shaded bits are not described here Field Bits Typ Description CCUST 2 rh User’s Manual CCU6 Disable Status 0 : CCU6 is not disabled. (default) 1 : CCU6 is disabled, clock is gated off. 4-99 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.9 Serial Interface The serial port of the C868 is full duplex, meaning it can transmit and receive simultaneously. It is also receive-buffered, meaning it can commence reception of a second byte before a previously received byte has been read from the receive register (however, if the first byte still hasn’t been read by the time reception of the second byte is complete, one of the bytes will be lost). The serial port receive and transmit registers are both accessed at special function register SBUF. Writing to SBUF loads the transmit register, and reading SBUF accesses a physically separate receive register. The serial port can operate in 3 asynchronous modes. The baud rate clock for the serial port is derived from the oscillator frequency (mode 2) or generated either by timer 1 or by a dedicated baud rate generator (mode 1, 3). Mode 0 is reserved. Mode 1, 8-Bit UART, Variable Baud Rate: In mode 1, ten bits are transmitted (through TxD) or received (through RxD). They are a start bit (0), 8 data bits (LSB first), and a stop bit (1). On receive, the stop bit goes into RB8 in special function register SCON. The baud rate is variable. (See section 4.9.2 for more detailed information) Mode 2, 9-Bit UART, Fixed Baud Rate: 11 bits are transmitted (through TxD) or received (through RxD): a start bit (0), 8 data bits (LSB first), a programmable 9th bit, and a stop bit (1). On transmit, the 9th data bit (TB8 in SCON) can be assigned to the value of 0 or 1. Or, for example, the parity bit (P, in the PSW) could be moved into TB8. On receive, the 9th data bit goes into RB8 in special function register SCON, while the stop bit is ignored. The baud rate is programmable to either 1/32 or 1/64 of the oscillator frequency. (See section 4.9.3 for more detailed information) Mode 3, 9-Bit UART, Variable Baud Rate: 11 bits are transmitted (through TxD) or received (through RxD): a start bit (0), 8 data bits (LSB first), a programmable 9th data bit, and a stop bit (1). In fact, mode 3 is the same as mode 2 in all respects except the baud rate. The baud rate in mode 3 is variable. (See section 4.9.3 for more detailed information) In all modes, transmission is initiated by any instruction that uses SBUF as a destination register. Reception is initiated in the modes by the incomming start bit if REN = 1. The serial interface also provides interrupt requests when transmission or reception of a frames have been completed. The corresponding interrupt request flags are TI or RI, resp. See chapter 7 of this user manual for more details about the interrupt structure. The interrupt request flags TI and RI can also be used for polling the serial interface, if the serial interrupt is not to be used (i.e. serial interrupt not enabled). User’s Manual 4-100 V 0.4, 2002-01 C868 On-Chip Peripheral Components Multiprocessor Communication Modes 2 and 3 have a special provision for multiprocessor communications. In these modes, 9 data bits are received. The 9th one goes into RB8. Then comes a stop bit. The port can be programmed such that when the stop bit is received, the serial port interrupt will be activated only if RB8 = 1. This feature is enabled by setting bit SM2 in SCON. A way to use this feature in multiprocessor systems is as follows. When the master processor wants to transmit a block of data to one of several slaves, it first sends out an address byte which identifies the target slave. An address byte differs from a data byte in that the 9th bit is 1 in an address byte and 0 in a data byte. With SM2 = 1, no slave will be interrupted by a data byte. An address byte, however, will interrupt all slaves, so that each slave can examine the received byte and see if it is being addressed. The addressed slave will clear its SM2 bit and prepare to receive the data bytes that will be coming. The slaves that weren’t being addressed leave their SM2s set and go on about their business, ignoring the incoming data bytes. SM2 can be used in mode 1 to check the validity of the stop bit. In a mode 1 reception, if SM2 = 1, the receive interrupt will not be activated unless a valid stop bit is received. Serial Port Registers The serial port control and status register is the special function register SCON. This register contains not only the mode selection bits, but also the 9th data bit for transmit and receive (TB8 and RB8), and the serial port interrupt bits (TI and RI). SBUF is the receive and transmit buffer of serial interface. Writing to SBUF loads the transmit register and initiates transmission. Reading out SBUF accesses a physically separate receive register. SBUF Serial Data Buffer Register 7 6 [Reset value: 00H] 5 4 3 2 1 0 SBUF rw Field Bits Typ Description SBUF [7:0] rw User’s Manual Serial Interface Buffer Register 4-101 V 0.4, 2002-01 C868 On-Chip Peripheral Components SCON Serial Channel Control Register [Reset value: 00H] 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H SM0 SM1 SM2 REN TB8 RB8 TI RI rw rw rw rw rw rw rw rw Field Bits Typ Description RI 0 rw Serial port receiver interrupt flag RI is set by hardware at the end of the 8th bit time in mode 0, or halfway through the stop bit time in the other modes, in any serial reception (exception see SM2). RI must be cleared by software. TI 1 rw Serial port transmitter interrupt flag TI is set by hardware at the end of the 8th bit time in mode 0, or at the beginning of the stop bit in the other modes, in any serial transmission. TI must be cleared by software. RB8 2 rw Serial port receiver bit 9 In modes 2 and 3, RB8 is the 9th data bit that was received. In mode 1, if SM2 = 0, RB8 is the stop bit that was received. In mode 0, RB8 is not used. TB8 3 rw Serial port transmitter bit 9 TB8 is the 9th data bit that will be transmitted in modes 2 and 3. Set or cleared by software as desired. REN 4 rw Enable receiver of serial port Enables serial reception. Set by software to enable serial reception. Cleared by software to disable serial reception. SM2 5 rw Enable serial port multiprocessor communication in modes 2 and 3 In mode 2 or 3, if SM2 is set to 1 then RI will not be activated if the received 9th data bit (RB8) is 0. In mode 1, if SM2 = 1 then RI will not be activated if a valid stop bit was not received. In mode 0, SM2 should be 0. User’s Manual 4-102 V 0.4, 2002-01 C868 On-Chip Peripheral Components Field Bits Typ Description SM0 SM1 [7:6] rw 4.9.1 Serial port 0 operating mode selection bits Table 1 : SM0 SM1 Selected operating mode 0 0 mode 0 :reserved 0 1 mode 1 :8-bit UART, variable baud rate 1 0 mode 2 :9-bit UART, fixed baud rate (fsys/32 or fsys/64) 1 1 Mode 3 :9-bit UART, variable baud rate Baud Rate Generation There are several possibilities to generate the baud rate clock for the serial port depending on the mode in which it is operating. For clarification, some terms regarding the difference between "baud rate clock" and "baud rate" should be mentioned. The serial interface requires a clock rate which is 16 times the baud rate for internal synchronization. Therefore, the baud rate generators have to provide a "baud rate clock" to the serial interface which - there divided by 16 results in the actual "baud rate". However, all formulas given in the following section already include the factor and calculate the final baud rate. Further, the abrevation fSYS refers to the system frequency. User’s Manual 4-103 V 0.4, 2002-01 C868 On-Chip Peripheral Components The baud rate of the serial port is controlled by a bit which are located in the special function registers as shown below. PCON Power Control Register [Reset value: 0XXX0000B] 7 6 5 4 3 2 1 0 SMOD - - SD GF1 GF0 PDE IDLE rw r r rw rw rw rw rw The functions of the shaded bits are not described here Field Bits Typ Description SMOD 7 rw Double baud rate When set, the baud rate of serial interface in modes 1, 2, 3 is doubled. After reset this bit is cleared. Depending on the programmed operating mode different paths are selected for the baud rate clock generation. 4.9.1.1 Baud Rate in Mode 2 The baud rate in mode 2 depends on the value of bit SMOD in special function register PCON. If SMOD = 0 (which is the value after reset), the baud rate is 1/64 of the system frequency. If SMOD = 1, the baud rate is 1/32 of the system frequency. Mode 2 baud rate = 2 SMOD 64 4.9.1.2 x system frequency Baud Rate in Mode 1 and 3 In these modes the baud rate is variable and can be generated alternatively by a baud rate generator or by timer 1. Using the Timer 2 as Baud Rate Generator In modes 1 and 3, the C868 can use timer 2 as the baud rate generator for the serial port. To enable the baud generator for transmit, bit TCLK (bit 4 of special function register User’s Manual 4-104 V 0.4, 2002-01 C868 On-Chip Peripheral Components T2CON) must be set. To enable the baud generator for receive, bit RCLK (bit 5 of special function register T2CON) must be set. With the timer 2 as clock source for the serial port in mode 1 and 3, the baud rate can be determined as follows: Mode 1, 3 baud rate = 2SMOD 32 x (timer 2 overflow rate) Timer 2 overflow rate = 2x(216 – RC2) / system frequency with RC2 = RC2H.7..0, RC2L.7..0 and timer2 count direction is set to up. Using Timer 2 to Generate Baud Rates In modes 1 and 3 of the serial interface timer 1 can also be used for generating baud rates. Then the baud rate is determined by the timer 1 overflow rate and the value of SMOD as follows: Mode 1, 3 baud rate = 2SMOD 32 x (timer 1 overflow rate) The timer 1 interrupt is usually disabled in this application. Timer 1 itself can be configured for either "timer" or "counter" operation, and in any of its operating modes. In most typical applications, it is configured for "timer" operation in the auto-reload mode (high nibble of TMOD = 0010B). In this case the baud rate is given by the formula: 2SMOD x system frequency Mode 1, 3 baud rate = 32 x 12 x (256 – (TH1)) Very low baud rates can be achieved with timer 1 if leaving the timer 1 interrupt enabled, configuring the timer to run as 16-bit timer (high nibble of TMOD = 0001B), and using the timer 1 interrupt for a 16-bit software reload. User’s Manual 4-105 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.9.2 Details about Mode 1 Ten bits are transmitted (through TxD), or received (through RxD): a start bit (0), 8 data bits (LSB first), and a stop bit (1). On reception, the stop bit goes into RB8 in SCON. The baud rate is determined either by the timer 1 overflow rate or by the internal baud rate generator. Figure 4-37 shows a simplified functional diagram of the serial port in mode 1. The associated timings for transmit/receive are illustrated in Figure 4-38. Transmission is initiated by an instruction that uses SBUF as a destination register. The "Write-to-SBUF" signal also loads a 1 into the 9th bit position of the transmit shift register and flags the TX control unit that a transmission is requested. Transmission starts at the next rollover in the divide-by-16 counter. (Thus, the bit times are synchronized to the divide-by-16 counter, not to the "Write-to-SBUF" signal). The transmission begins with activation of SEND, which puts the start bit at TxD. One bit time later, DATA is activated, which enables the output bit of the transmit shift register to TxD. The first shift pulse occurs one bit time after that. As data bits shift out to the right, zeroes are clocked in from the left. When the MSB of the data byte is at the output position of the shift register, then the 1 that was initially loaded into the 9th position is just to the left of the MSB, and all positions to the left of that contain zeroes. This condition flags the TX control unit to do one last shift and then deactivate SEND and set TI. This occurs at the 10th divide-by-16 rollover after "Write-toSBUF". Reception is initiated by a detected 1-to-0 transition at RxD. For this purpose RxD is sampled at a rate of 16 times whatever baud rate has been established. When a transition is detected, the divide-by-16 counter is immediately reset, and 1FFH is written into the input shift register, and reception of the rest of the frame will proceed. The 16 states of the counter divide each bit time into 16ths. At the 7th, 8th and 9th counter states of each bit time, the bit detector samples the value of RxD. The value accepted is the value that was seen in at least 2 of the 3 samples. This is done for the noise rejection. If the value accepted during the first bit time is not 0, the receive circuits are reset and the unit goes back to looking for another 1-to-0 transition. This is to provide rejection or false start bits. If the start bit proves valid, it is shifted into the input shift register, and reception of the rest of the frame will proceed. As data bits come in from the right, 1s shift out to the left. When the start bit arrives at the leftmost position in the shift register, (which in mode 1 is a 9-bit register), it flags the RX control block to do one last shift, load SBUF and RB8, and set RI. The signal to load SBUF and RB8, and to set RI, will be generated if, and only if, the following conditions are met at the time the final shift pulse is generated. 1)RI = 0,and 2)either SM2 = 0, or the received stop bit = 1 User’s Manual 4-106 V 0.4, 2002-01 C868 On-Chip Peripheral Components If one of these two condtions is not met, the received frame is irretrievably lost. If both conditions are met, the stop bit goes into RB8, the 8 data bit goes into SBUF, and RI is activated. At this time, whether the above conditions are met or not, the unit goes back to looking for a 1-to-0 transition in RxD. User’s Manual 4-107 V 0.4, 2002-01 C868 On-Chip Peripheral Components Internal Bus 1 Write to SBUF S Q & SBUF <_ 1 TXD D CLK Zero Detector Shift Start Data TX Control ÷ 16 TX Clock Send RI Load SBUF <_ 1 Serial Port Interrupt Baud Rate Clock TI ÷ 16 Sample 1-to-0 Transition Detector RX Start RX Control 1FFH Shift Bit Detector Input Shift Register (9Bits) RXD Shift Load SBUF SBUF Read SBUF Internal Bus MCS02103 Figure 4-37 Serial Interface, Mode 1, Functional Diagram User’s Manual 4-108 V 0.4, 2002-01 Write to SBUF Send Transmit 4-109 S1P1 Data Shift TXD Start Bit D0 D1 D3 D2 D6 D5 D4 D7 Stop Bit TI ÷ 16 Reset RX Clock RXD Start Bit D0 D1 D2 D3 D4 D5 D6 D7 Stop Bit Receive Bit Detector Sample Times RI MCT02104 C868 V 0.4, 2002-01 Shift On-Chip Peripheral Components Figure 4-38 Serial Interface, Mode 1, Timing Diagram User’s Manual TX Clock C868 On-Chip Peripheral Components 4.9.3 Details about Modes 2 and 3 Eleven bits are transmitted (through TxD), or received (through RxD): a start bit (0), 8 data bits (LSB first), a programmable 9th data bit, and a stop bit (1). On transmission, the 9th data bit (TB8) can be assigned the value of 0 or 1. On reception, the 9th data bit goes into RB8 in SCON. The baud rate is programmable to either 1/32 or 1/64 the system frequency in mode 2 (When bit SMOD in SFR PCON.7 is set, the baud rate is fSYS/32). In mode 3 the baud rate clock is generated by timer 1, which is incremented by a rate of fSYS/12 or by the internal baud rate generator. Figure 4-39 shows a functional diagram of the serial port in modes 2 and 3. The receive portion is exactly the same as in mode 1. The transmit portion differs from mode 1 only in the 9th bit of the transmit shift register. The associated timings for transmit/receive are illustrated in Figure 4-40. Transmission is initiated by any instruction that uses SBUF as a destination register. The "Write-to-SBUF" signal also loads TB8 into the 9th bit position of the transmit shift register and flags the TX control unit that a transmission is requested. Transmission starts at the next rollover in the divide-by-16 counter. (Thus, the bit times are synchronized to the divide-by-16 counter, not to the "Write-to-SBUF" signal.) The transmission begins with activation of SEND, which puts the start bit at TxD. One bit time later, DATA is activated, which enables the output bit of the transmit shift register to TxD. The first shift pulse occurs one bit time after that. The first shift clocks a 1 (the stop bit) into the 9th bit position of the shift register. Thereafter, only zeroes are clocked in. Thus, as data bits shift out to the right, zeroes are clocked in from the left. When TB8 is at the output position of the shift register, then the stop bit is just to the left of TB8, and all positions to the left of that contain zeroes. This condition flags the TX control unit to do one last shift and then deactivate SEND and set TI. This occurs at the 11th divide-by16 rollover after "Write-to-SBUF". Reception is initiated by a detected 1-to-0 transition at RxD. For this purpose RxD is sampled at a rate of 16 times whatever baud rate has been established. When a transition is detected, the divide-by-16 counter is immediately reset, and 1FFH is written to the input shift register. At the 7th, 8th and 9th counter states of each bit time, the bit detector samples the value of RxD. The value accepted is the value that was seen in at least 2 of the 3 samples. If the value accepted during the first bit time is not 0, the receive circuits are reset and the unit goes back to looking for another 1-to-0 transition. If the start bit proves valid, it is shifted into the input shift register, and reception of the rest of the frame will proceed. As data bit come from the right, 1s shift out to the left. When the start bit arrives at the leftmost position in the shift register (which in modes 2 and 3 is a 9-bit register), it flags the RX control block to do one last shift, load SBUF and RB8, and to set RI. The signal to load SBUF and RB8, and to set RI, will be generated if, and only if, the following conditions are met at the time the final shift pulse is generated: User’s Manual 4-110 V 0.4, 2002-01 C868 On-Chip Peripheral Components 1)RI = 0, and 2)Either SM2 = 0 or the received 9th data bit = 1 If either of these conditions is not met, the received frame is irretrievably lost, and RI is not set. If both conditions are met, the received 9th data bit goes into RB8, and the first 8 data bit goes into SBUF. One bit time later, whether the above conditions were met or not, the unit goes back to looking for a 1-to-0 transition at the RxD input. Note that the value of the received stop bit is irrelevant to SBUF, RB8 or RI. User’s Manual 4-111 V 0.4, 2002-01 C868 On-Chip Peripheral Components Internal Bus TB8 Write to SBUF S Q & SBUF <_ 1 TXD D CLK Zero Detector Start ÷ 16 Stop Bit Shift Generation TX Control TX Clock Baud Rate Clock Data TI Send RI Load SBUF <_ 1 Serial Port Interrupt ÷ 16 Sample 1-to-0 Transition Detector RX Clock Start RX Control 1FF Bit Detector Shift Input Shift Register (9Bits) RXD Shift Load SBUF SBUF Read SBUF Internal Bus MCS02105 Figure 4-39 Serial Interface, Mode 2 and 3, Functional Diagram User’s Manual 4-112 V 0.4, 2002-01 Write to SBUF Mode 2 : S6P1 Mode 3 : S1P1 Send Data Transmit 4-113 Shift TXD Start Bit D0 D1 D2 D3 D4 D5 D6 D0 D1 D2 D3 D4 D5 D7 TB8 Stop Bit TI Stop Bit Gen. ÷ 16 Reset RX Clock RX Start Bit D6 D7 RB8 Stop Bit Receive Bit Detector Sample Times RI MCT02587 C868 V 0.4, 2002-01 Shift On-Chip Peripheral Components Figure 4-40 Serial Interface, Mode 2 and 3, Timing Diagram User’s Manual TX Clock C868 On-Chip Peripheral Components 4.10 A/D Converter The C868 includes a high performance / high speed 8-bit A/D-Converter (ADC) with 5 analog input channels. It operates with a successive approximation technique and uses self calibration mechanisms for reduction and compensation of offset and linearity errors. The A/D converter provides the following features: – – – – – – – 5 multiplexed input channels, which can also be used as digital inputs 8-bit resolution with TUE of +/- 2 LSB8. Single or continuous conversion mode Interrupt request generation after each conversion Using successive approximation conversion technique via a capacitor array Built-in calibration of offset and linearity errors Powerdown in normal, idle and slow-down modes User’s Manual 4-114 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.10.1 Register Definition of the ADC The ADCON0 and ADCON1 registers are used to configure and control the ADC. It also indicates the status of the ADC functions (flags). ADCON0 A/D Converter Control Register 0 5 [Reset value: 0000X000B] 7 6 4 3 2 1 ADST ADBSY ADM - ADCH rw rh rw r rw 0 Field Bits Typ Description ADCH [2:0] rw Analog Input Selection. The number of bits implemented depends on the actual number of channels required for the product. Bit 0 of the register shall be the least significant bit. ADM [5:4] rw ADC Mode Selection. 00 : Single Conversion on Fixed Channel (default) 01 : Continuous Conversion on Fixed Channel 10 : Reserved 11 : Reserved Bit 4 is used for mode selection while bit 5 is reserved. ADBSY 6 rh ADC Busy Flag 1 : Conversion is in progress. ADST 7 rw A/D Conversion Start Bit. Set by user to begin a conversion. Cleared by hardware at the beginning of conversion. For continuous conversion, this bit is cleared at the beginning of first conversion. - 3 r reserved; returns ’0’ if read; should be written with ’0’; User’s Manual 4-115 V 0.4, 2002-01 C868 On-Chip Peripheral Components ADCON1 A/D Converter Control Register 1 [Reset value: X1XX0000B] 7 6 5 4 3 2 1 0 - CAL - - ADSTC ADCTC r rh r r rw rw Field Bits Typ Description ADCTC [1:0] rw ADC Conversion Time Control ADSTC [3:2] rw ADC Sample Time Control CAL 6 rh Calibrate Indication This bit will be ’1’ after power-on (during the calibration phase) before returning to ’0’. - 7,[5:4] r reserved; returns ’0’ if read; should be written with ’0’; The ADDATH register stores the result of the conversion, together with the channel number. ADDATH A/D Converter Data Register 7 6 5 [Reset value: 00H] 4 3 2 1 0 ADDATH rwh Field Bits Typ Description ADDATH [7:0] rwh Result of ADC conversion. User’s Manual 4-116 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.10.2 PMCON1 Peripheral Management Control Register [Reset value: XXXXX000B] 7 6 5 4 3 2 1 0 - - - - - CCUDIS T2DIS ADCDIS r r r r r rw rw rw The functions of the shaded bits are not described here Field Bits Typ Description ADCDIS 0 rw ADC Disable Request. 0 : ADC will continue normal operation. (default) 1 : Request to disable the ADC is active. PMCON2 Peripheral Management Status Register [Reset value: XXXXX000B] 7 6 5 4 3 2 1 0 - - - - - CCUST T2ST ADCST r r r r r rh rh rh The functions of the shaded bits are not described here Field Bits Typ Description ADCST 0 rh User’s Manual ADC Disable Status 0 : ADC is not disabled. (default) 1 : ADC is disabled, clock is gated off. 4-117 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.10.3 Operation of the ADC The ADC supports two conversion modes - single and continuous conversions. For each mode, there are two ways in which conversion can be started - by software. Writing a ’1’ to bit field ADST starts conversion on the channel that is specified by ADCH. In single conversion mode, bit field ADM is cleared to ’0’. This is the default mode selected after hardware reset. When a conversion is started, the channel specified is sampled. The busy flag ADBSY is set and ADST is cleared. When the conversion is completed, the interrupt request is asserted and the 8-bit result is transferred to the result register ADDATH. In continuous conversion mode, bit field ADM is set to ’1’. In this mode, the ADC repeatedly converts the channel specified by ADCH. Bit ADST is cleared at the beginning of the first conversion. The busy flag ADBSY is asserted until the last conversion is completed. At the end of each conversion, the interrupt request will be asserted. To stop conversion, ADM has to be reset by software. If the channel number ADCH is changed while continuous conversion is in progress, the new channel specified will be sampled in the conversions that follow. A new request to start conversion will be allowed only after the completion of any conversion that is in progress. 4.10.4 Module Powerdown The ADC is disabled when the chip goes into the powerdown mode as describe in . Or it can be individually disabled by setting ADCDIS in register PMCON1. This helps to reduce current consumption in the normal, slow down and idle modes of operation if the ADC is not utilized. Bit ADCST in register PMCON2 reflects the powerdown status of ADC. If the ADC is disabled during an A/D conversion, ADC will be disabled (ADCST=’1’) only after the conversion is completed. Note : Generally, before entering the power-down mode, an A/D conversion in progress must be stopped. If a single A/D conversion is running, it must be terminated by polling the ADBSY bit or waiting for the A/D conversion interrupt. In continuous conversion mode, ADM must be cleared and the last A/D conversion must be terminated before entering the power-down mode. User’s Manual 4-118 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.11 Conversion and Sample Time Control The conversion and sample times are programmed via the bit fields ADCTC and ADSTC respectively of the register ADCON1. Bit field ADCTC (conversion time control) selects the internal ADC clock - adc_clk. Bit field ADSTC (sample time control) selects the sample time. The data in ADCTC and ADSTC can be modified while a conversion is in progress, but will only be evaluated after the current conversion has completed. Thus the change will only affect the subsequent conversion. The internal ADC clock, adc_clk is derived from the peripheral clock fsys according to : adc_clk = fSYS / clock divider Please note that the clock divider must be selected such that adc_clk does not exceed 2MHz. The A/D conversion procedure is divided into four parts : Synchronizing phase (tSYNC), delay before actual conversion commence. Sample phase (tS), used for sampling the analog input voltage. Conversion phase (tCO), used for the real A/D conversion (includes calibration). Write result phase (tWR), used for writing the conversion result into the ADDAT registers. The total A/D conversion time is defined by tADCC which is the sum of the four phase periods, tSYNC, tS ,tCO and tWR. TADCC is computed with the following formula: tADCC = 4/fSYS + tS + 8.5/adc_clk The sample time tS is configured in periods of the selected internal ADC clock. The table below lists the possible combinations. ADCTC Clock Divider (TVC) ADC Basic Clock adc_clk ADSTC Sample Time tS (Periods of adc_clk, STC) 00 (default) 32 fSYS / 32 00 (default) 2 01 20 fSYS / 20 01 4 10 16 fSYS / 16 10 8 11 12 fSYS / 12 11 16 User’s Manual 4-119 V 0.4, 2002-01 C868 On-Chip Peripheral Components Sample Time tS : During this time the internal capacitor array is connected to the selected analog input channel and is loaded with the analog voltage to be converted. The analog voltage is internally fed to a voltage comparator. With beginning of the sample phase the BSY bit in SFR ADCON0 is set. Conversion Time tCO : During the conversion time the analog voltage is converted into a 8-bit digital value using the successive approximation technique with a binary-weighted capacitor network. During an A/D conversion also a calibration takes place. During this calibration alternating offset and linearity calibration cycles are executed. At the end of the calibration time the ADBSY bit is reset and the IADC bit in SFR IRCON1 is set indicating an A/D converter interrupt condition. Write Result Time tWR : At the result phase the conversion result is written into the ADDATH registers. A/D Conversion Timing in Relation to Processor Cycles Depending on the application, typically there are three methods to handle the A/D conversion in the C868. Software delay The machine cycles of the A/D conversion are counted and the program executes a software delay (e.g. NOPs) before reading the A/D conversion result in the write result cycle. This is the fastest method to get the result of an A/D conversion. Polling ADBSY bit The ADBSY bit is polled and the program waits until ADBSY=0. Attention : a polling JB instruction which is two machine cycles long, possibly may not recognize the ADBSY=0 condition during the write result cycle in the continuous conversion mode. A/D conversion interrupt After the start of an A/D conversion the A/D converter interrupt is enabled. The result of the A/D conversion is read in the interrupt service routine. If other C868 interrupts are enabled, the interrupt latency must be regarded. Therefore, this software method is the slowest method to get the result of an A/D conversion. User’s Manual 4-120 V 0.4, 2002-01 C868 On-Chip Peripheral Components 4.11.1 A/D Converter Calibration The C868 A/D converter includes hidden internal calibration mechanisms which assure a safe functionality of the A/D converter according to the DC characteristics. The A/D converter calibration is implemented in a way that a user program which executes A/D conversions is not affected by its operation. Further, the user program has no control over the calibration mechanism. The calibration itself executes two basic functions : Offset calibration : correction of offset errors of comparator and the capacitor network Linearity calibration : correction of the binary-weighted capacitor network The A/D converter calibration operates in two phases. First phase is the calibration after a reset operation and the second is the calibration at each A/D conversion. The calibration phases are controlled by a state machine in the A/D converter. This state machine executes the calibration phases and stores the calibration results dynamically in a small calibration RAM. After a reset operation the A/D calibration is automatically started. This reset calibration phase, alternating offset and linearity calibration is executed. For achieving a proper reset calibration, the fADC prescaler value must satisfy the condition fADC max 2 MHz. If this condition is not met at a specific system frequency with the default prescaler value after reset, the fADC prescaler must be adjusted immediately after reset by setting bits ADCTC1 and ADCTC0 in SFR ADCON1 to a suitable value. It is also recommended to have the proper voltages, as specified in the DC specifications, applied at the VAREF and VAGND pins before the reset calibration has started. After the reset calibration phase the A/D converter is calibrated according to its DC characteristics. Nevertheless, during the reset calibration phase single or continuous A/ D can be executed. In this case it must be regarded that the reset calibration is interrupted and continued after the end of the A/D conversion. Therefore, interrupting the reset calibration phase by A/D conversions extends the total reset calibration time. If the specified total unadjusted error (TUE) has to be valid for an A/D conversion, it is recommended to start the first A/D conversions after reset when the reset calibration phase is finished. Depending on the system frequency selected, the reset calibration phase can be possibly shortened by setting ADCTC1 and ADCTC0 (prescaler value) to its final value immediately after reset. After the reset calibration, a second calibration mechanism is initiated. This calibration is coupled to each A/D conversion. With this second calibration mechanism alternatively offset and linearity calibration values, stored in the calibration RAM, are always checked when an A/D conversion is executed and corrected if required. User’s Manual 4-121 V 0.4, 2002-01 C868 On-Chip Peripheral Components User’s Manual 4-122 V 0.4, 2002-01 C868 Reset and System Clock Operation 5 Reset and System Clock Operation 5.1 Hardware Reset Operation The hardware reset function incorporated in the C868 allows for an easy automatic startup at a minimum of additional hardware and forces the controller to a predefined default state. The hardware reset function can also be used during normal operation in order to restart the device. This is particularly done when the power-down mode is to be terminated. Additional to the hardware reset, which is applied externally to the C868, there are three internal reset sources, the watchdog timer, the brownout and the PLL. This chapter deals only with the external hardware reset and brownout. The reset input is an active low input. An internal Schmitt trigger is used at the input for noise rejection. The RESET pin must be held low for at least tbd usec. But the CPU will only exit from reset condition after the PLL lock had been detected. During RESET at transition from low to high, C868 will go into normal mode if ALE/BSL is high and bootstrap loading mode if ALE/BSL is low. A pullup to VDDP is recommended for pin ALE/BSL. TXD should have a pullup to VDDP and should not be stimulated externally during reset, as a logic low at this pin will cause the chip to go into test mode if ALE/BSL is low. At the RESET pin, a pullup resistor is connected to VDDP and a capacitor is connected to ground to allow a power-up reset. After VDDP has been turned on, the capacitor must hold the voltage level at the reset pin for a specific time to effect a complete reset. User’s Manual 5-1 V 0.4, 2002-01 C868 Reset and System Clock Operation The time required for a reset operation must be at least tbd - tbd usec. The same considerations apply if the reset signal is generated externally (Figure 5-1 b). In each case it must be assured that the logics at ALE/BSL, TXD and other testmode related pins are latched properly. VDDP a) b) C868 RESET Figure 5-1 VDDP C868 & RESET c) C868 RESET Reset Circuitries A correct reset leaves the processor in a defined state. The program execution starts at location 0000H. After reset is internally accomplished the port latches of ports 1 and 3 defaulted to FFH, and they are set to input. The contents of the internal RAM and XRAM of the C868 are not affected by a reset. After power-up the contents are undefined, while it remains unchanged during a reset if the power supply is not turned off. 5.2 Internal Reset after Power-On Figure 5-2 shows the power-on sequence. For the C868, the device enter into default reset state once RESET has gone low with all I/O ports set to input or high impedance. The internal reset is released only after the PLL has locked. In (Figure 5-2,II) the internal reset remains active even after the RESET pin had gone high, the I/O ports 1 and 3 remain as input. In (Figure 5-2,III), detection for continuous PLL lock is done before internal reset is released. The 4096 cycles of continuous lock detection ensures that a reset due to PLL unlock will not happen during the transient period after the PLL started functioning. After continuous PLL lock is detected, the C868 starts operation.(Figure 5-2,IV) User’s Manual 5-2 V 0.4, 2002-01 Figure 5-2 User’s Manual I/O Input Ports 5-3 Power-On Reset of the C868 On-chip Osc. PLL unlock PLL PLL lock RESET I Reset active until PLL locks III PLL lock, reset remain active until PLL lock for 4096 continous cycles. IV Start of program execution C868 V 0.4, 2002-01 Reset active II Reset and System Clock Operation VDD C868 Reset and System Clock Operation 5.3 Brownout An on-chip analog circuit detects brownout, if the supply voltage VDDC dips below the threshold voltage VTHRESHOLD momentarily while RESET pin is high. If this detection is active for tbd usec then the device will reset. When supply voltage VDDC recovers by exceeding VTHRESHOLD while RESET is high, the reset is released once PLL is locked for 4096 clocks. Bit BO in the PMCON0 register is set when brownout detected if brownout detection was enabled, this bit is cleared by hardware reset RESET and software. All ports are tristated during brownout. The VTHRESHOLD has a nominal value of 1.47V, a minimum value of 1.1V and a maximum value of 1.8V. PMCON0 Wake-up Control Register [Reset value: XXX000000B] 7 6 5 4 3 2 1 0 - - - EBO BO SDSTAT WS EWPD r r r rw rw rh rw rw The functions of the shaded bits are not described here Field Bits Typ Description BO 3 rw Brownout Status Bit. 0 : Brownout not detected. 1 : Brownout detected before the last power on if EBO was set before the occurence of brownout.. This bit is set by hardware only, it is cleared by hardware reset and software. EBO 4 rw Enable Brownout detect. 0: Brownout module is disabled. Occurence of brownout will not cause an internal reset. 1: Occurence of brownout will cause an internal reset and BO will be set. - [7:5] r reserved; returns ’0’ if read; should be written with ’0’; User’s Manual 5-4 V 0.4, 2002-01 C868 Reset and System Clock Operation 5.4 Clock Generation The top-level view of the system clock generation of the C868 is shown in Figure 5-3. XTAL1 XTAL2 PLL On-Chip Osc Figure 5-3 5.5 fOSC clkin clkout SDD fPLL MUX system clock (fSYS) Block Diagram of the Clock Generation PLL Operation The PLL consists of a voltage controlled oscillator (VCO) with a feedback path. A divider in the feedback path divides the VCO frequency down. The resulting frequency is then compared to the externally applied frequency. The phase detection logic determines the difference between the two clock signals and accordingly controls the frequency of the VCO. During start-up, the VCO increases its frequency until the divided feedback clock matches the external clock frequency. A lock detection logic monitors and signals this condition. The phase detection logic continues to monitor the two clock signals and adjusts the VCO clock if required. The PLL provides mechanisms to detect a failure of the external clock and to bring the C868 into a safe state in such a case. When the PLL loses the lock to the external clock, either due to a break of the crystal or an external line, it generate an internal reset. The PLLR flag in the SCUWDT register is set, this flag can only be reset by a hardware reset or by software. Due to this operation, the VCO clock of the PLL has a frequency which is a multiple of the externally applied clock. The factor for this is controlled through the value applied to the divider in the feedback path. That is why this factor is often called a multiplier, although it actually controls a divider. This parameter called the feedback divider has a fixed value N = 15. When software power down mode is entered, the PLL is powered down. User’s Manual 5-5 V 0.4, 2002-01 C868 Reset and System Clock Operation 5.5.1 VCO Frequency Ranges The frequency range for fVCO is: 100 MHz 5.5.2 fVCO 160 MHz [5-1] K-Divider The K-Divider is a software controlled divider. The bit field KDIV is provided in register CMCON. Software can write to this field in order to change the PLL frequency fPLL. The default KDIV value is 4. Table 5-2 lists the possible values for KDIV and the resulting division factor. The divider is designed such that a synchronous switching of the clock is performed without spurious or shortened clock pulses when software changes the divider factor KDIV. However, special attention has to be paid concerning the effect of such a clock change to the various modules in the system. 5.5.3 Determining the PLL Clock Frequency This section gives the formulas for the determination of the PLL clock frequency. In PLL operation, the PLL clock is derived from the VCO frequency fVCO divided by the K-factor. fVCO is generated from the external clock multiplied by 15. The PLL clock frequency fPLL can be made proportional to the ratio 15 / K, where bit field CMCON.KDIV determines the clock scale factor K. The VCO output frequency is determined by: fVCO = 15 Ω fOSC [5.2] and the resulting PLL clock is determined by: fPLL = fVCO / K = 15 Ω fOSC K [5.3] Since stable operation of the VCO is only guaranteed if fVCO remains inside of the defined frequency range for the VCO (see Equation [5-1]), the external frequency fOSC is also confined to certain ranges. Table 5-1 list the range. User’s Manual 5-6 V 0.4, 2002-01 C868 Reset and System Clock Operation Input Frequencies and N Factor=15 for fVCO Table 5-1 fVCO = 100 MHz fVCO = 160 MHz 6.67 10.67 Output Frequencies fPLL Derived from Various Output Factors Table 5-2 K-Factor fPLL Duty Jitter Cycle [%] Selected KDIV Factor fVCO = fVCO = 100 MHz 160 MHz 2 000B 50 80 50 010B 25 40 50 011B 20 32 40 6 100B 16.67 26.67 50 8 101B 12.5 20 50 91) 110B 11.11 17.78 44 10 111B 10 16 50 16 001B 6.25 10 50 4 5 1) 1) 2) linear depending on fVCO at fVCO =100MHz: +/-300ps at fVCO =160MHz: +/-250ps additional jitter for odd Kdiv factors tbd. These odd factors should not be used (not tested because off the unsymmetrical duty cycle). Shaded combinations should not be used because they are above the maximum CPU frequency of 40MHz. User’s Manual 5-7 V 0.4, 2002-01 C868 Reset and System Clock Operation 5.6 Slow Down Operation The programmable Slow Down Divider (SDD) divides the PLL output clock frequency by a factor of 1...32 which is specified via CMCON.REL. When CMCON.REL is written during SDD operation the reload counter will output one more clock pulse with the ‘old’ frequency in order to synchronize it internally before generating the ‘new’ frequency. rel PLL_clk Reload Counter SDD_clk PLL_clk clk_rel=2 SDD_clk clk_rel=4 Figure 5-4 Slow Down Divider Operation SDD_clk = PLL_clk / (CMCON.RELB +1) For a 20 MHz basic clock the on-chip logic may be run at a frequency down to 625 KHz without an external hardware change. During Slow Down operation the whole device (including bus interface) is clocked with the symmetrical SDD clock (see figure above). 5.6.1 Switching Between PLL Clock and SDD Clock Switching Control logic controls the switching mechanism itself and ensures a continuous and glitch-free clock signal to the on-chip logic. Note: When switch from slow down mode to PLL operation (if configured), Master clock will be switched to PLL clock only after PLL (pll_locked) is locked. Switching to Slow Down operation affects frequency sensitive peripherals like serial interfaces, timers, PWM, etc.If these units are to be operated in Slow Down mode their Prescalers or reload values must be adapted. Please note that the reduced CPU frequency decreases e.g. timer resolution and increases the step width e.g. for baudrate generation. The basic clock frequency in such a case should be chosen to accommodate the required resolutions and/or baudrates. User’s Manual 5-8 V 0.4, 2002-01 C868 Reset and System Clock Operation CMCON Clock Control Register 7 6 [Reset value: 9FH] 5 4 3 2 KDIV REL rw rw 1 0 Field Bits Typ Description REL [4..0] rw Slowdown divider REL is used to divide down the system clock during slow down mode KDIV [7..5] rw K-divider KDIV selects the PLL division factor according to Table 5-2 User’s Manual 5-9 V 0.4, 2002-01 C868 Reset and System Clock Operation 5.7 Oscillator and Clock Circuit XTAL2 and XTAL1 are the input and output of a single-stage on-chip inverter which can be configured with off-chip components as a Pierce oscillator. The oscillator, in any case, drives the internal clock generator. The clock generator provides the internal clock signals to the chip. These signals define the internal phases, states and machine cycles. Figure 5-5 shows the recommended oscillator circuit. Driving from External Source Crystal Oscillator Mode External Oscillator Signal XTAL2 6.67-10.67 MHz XTAL2 C868 N.C. XTAL1 XTAL1 C = tbd pF + tbd pF for crystal operation (incl. StrayCapacitance) Figure 5-5 Recommended Oscillator Circuit In this application the on-chip oscillator is used as a crystal-controlled, positivereactance oscillator (a more detailed schematic is given in Figure 5-6). lt is operated in its fundamental response mode as an inductive reactor in parallel resonance with a capacitor external to the chip. The crystal specifications and capacitances are noncritical. In this circuit tbd pF can be used as single capacitance at any frequency together with a good quality crystal. A ceramic resonator can be used in place of the crystal in cost-critical applications. If a ceramic resonator is used, the two capacitors normally have different values depending on the oscillator frequency. We recommend consulting the manufacturer of the ceramic resonator for value specifications of these capacitors. User’s Manual 5-10 V 0.4, 2002-01 C868 Reset and System Clock Operation To internal timing circuitry XTAL2 XTAL1 C868 *) C1 C2 *) Crystal or ceramic resonator Figure 5-6 On-Chip Oscillator Circuitry To drive the C868 with an external clock source, the external clock signal has to be applied to XTAL2, as shown in Figure 5-7. XTAL1 has to be left unconnected. A pullup resistor is suggested (to increase the noise margin), but is optional if VOH of the driving gate corresponds to the VIH2 specification of XTAL2. C868 VDDC N.C. External Clock Signal Figure 5-7 User’s Manual XTAL1 XTAL2 External Clock Source 5-11 V 0.4, 2002-01 C868 Reset and System Clock Operation User’s Manual 5-12 V 0.4, 2002-01 C868 Fail Save Mechanism 6 Fail Save Mechanism The C868 offers enhanced fail save mechanisms, which allow an automatic recovery from software upset or hardware failure : a programmable watchdog timer (WDT), with variable time-out period from 12.8 s to 819.2 s at fSYS = 40 MHz. 6.1 Programmable Watchdog Timer To protect the system against software failure, the user’s program has to clear this watchdog within a previously programmed time period. lf the software fails to do this periodical refresh of the watchdog timer, an internal reset will be initiated. The software can be designed so that the watchdog times out if the program does not work properly. lt also times out if a software error is based on hardware-related problems. The watchdog timer in the C868 is a 16-bit timer, which is incremented by a count rate of fSYS/2 upto fSYS/128. The machine clock of the C868 is divided by a prescaler, a divideby-two or a divide-by-128 prescaler. The upper 8 bits of the Watchdog Timer can be preset to a user-programmable value via a watchdog service access in order to vary the watchdog expire time. The lower 8 bits are reset on each service access. Figure 6-1 shows the block diagram of the watchdog timer unit. WDT Control 1:2 fSYS WDTREL Clear MUX WDT Low Byte WDT High Byte WDTRST 1:128 DISWDT WDTIN Figure 6-1 6.1.1 Block Diagram of the Programmable Watchdog Timer Register Definition of the Watchdog Timer The current count value of the Watchdog Timer is contained in the Watchdog Timer Register WDT, which is a non-bitaddressable read-only register. The operation of the Watchdog Timer is controlled by its bitaddressable Watchdog Timer Control Register User’s Manual 6-1 V 0.4, 2002-01 C868 Fail Save Mechanism WDTCON. This register specifies the reload value for the high byte of the timer and selects the input clock prescaling factor. WDTREL Watchdog Timer Reload Register 7 6 5 [Reset value: 00H] 4 3 2 1 0 WDTREL rw Field Bits Typ Description WDTREL [7:0] rw Watchdog Timer Reload Value (for the high byte of WDT) WDTCON Watchdog Timer Register [Reset value: XXXXXX00B] 7 6 5 4 3 2 1 0 - - - - - - - WDTIN r r r r r r r rw Field Bits Typ Description WDTIN 0 rw Watchdog Timer Input Frequency Selection ‘0’: Input frequency is fSYS/ 2 ‘1’: Input frequency is fSYS / 128 - [7:2] r reserved; returns ’0’ if read; should be written with ’0’; User’s Manual 6-2 V 0.4, 2002-01 C868 Fail Save Mechanism WDTL Watchdog Timer,Low Byte 7 6 [Reset value: 00H] 5 4 3 2 1 0 WDT7..0 rh WDTH Watchdog Timer,High Byte 7 6 5 [Reset value: 00H] 4 3 2 1 0 WDT15..8 rh Field Bits WDT [7:0] of rh WDTL, [7:0] of WDTH User’s Manual Typ Description Watchdog Timer Current Value 6-3 V 0.4, 2002-01 C868 Fail Save Mechanism SCUWDT SCU/Watchdog Control Register [Reset value: 00H] 7 6 5 4 3 2 1 0 - PLLR - WDTR WDTEOI WDTDIS WDTRS WDTRE r rwh r rwh rw rw rw rw Field Bits Typ Description WDTRE 0 rw WDT Refresh Enable. Active high. Set to enable a refresh of the watchdog timer. Must be set before WDTRS. WDTRS 1 rw WDT Refresh Start. Active high. Set to start refresh operation on the watchdog timer. Must be set after WDTRE. WDTDIS 2 rw WDT Disable. Active high. Set by software and cleared by general reset. WDTEOI 3 rw WDT End of Initialization. Active high. Set by software and cleared by general reset. WDTR 4 rwh WDT Reset Indication Bit. Active high. Set by hardware when a watchdog timer reset occurs. Cleared by reset or WDT_RFSH or software. PLLR 6 rwh PLL Reset Indication Bit. Active high. Set by hardware when PLL reset occurs. Cleared by reset or software. - 7,5 r User’s Manual reserved; returns ’0’ if read; should be written with ’0’; 6-4 V 0.4, 2002-01 C868 Fail Save Mechanism 6.1.2 Starting the Watchdog Timer When the reset input to the Watchdog Timer, the Watchdog Timer is enabled. Once disabled it cannot be stopped during active mode of the device. If the software fails to clear the watchdog timer an internal reset will be initiated. The reset cause (external reset or reset caused by the watchdog) can be examined by software (status flag WDTR in SCUWDT is set). A refresh of the watchdog timer is done by setting bits WDTRE and WDTRS (in SFR SCUWDT) consecutively. This double instruction sequence has been implemented to increase system security. It must be noted, however, that the watchdog timer is halted during the idle mode and power-down mode of the processor (see section "Power Saving Modes"). It is not possible to use the idle mode in combination with the watchdog timer function. Therefore, even the watchdog timer cannot reset the device when one of the power saving modes has been entered accidentally. 6.1.3 Refreshing the Watchdog Timer At the same time the watchdog timer is started, the 8-bit register WDTH is preset by the contents of WDTREL. Once started the watchdog cannot be stopped by software but can only be refreshed to the reload value by first setting bit WDTRE and WDTRS (in SFR SCUWDT) consecutively. Bit WDTR will automatically be cleared during the second machine cycle after having been set. For this reason, setting WDTRS bit has to be a one cycle instruction (e.g. SETB WDTRS). This double-instruction refresh of the watchdog timer is implemented to minimize the chance of an unintentional reset of the watchdog. The reload register WDTREL can be written to at any time, as already mentioned. Therefore, a periodical refresh of WDTREL can be added to the above mentioned starting procedure of the watchdog timer. Thus a wrong reload value caused by a possible distortion during the write operation to the WDTREL can be corrected by software. User’s Manual 6-5 V 0.4, 2002-01 C868 Fail Save Mechanism 6.1.4 Input Clock Selection The time period for an overflow of the Watchdog Timer is programmable in two ways : – the input frequency to the Watchdog Timer can be selected via bit WDTIN in register WDTCON to be either fSYS/2 or fSYS/128. – the reload value WDTREL for the high byte of WDT can be programmed in register WDTCON. The period PWDT between servicing the Watchdog Timer and the next overflow can therefore be determined by the following formula: [6.1] PWDT = 2 (1 +WDTIN*6) * (2 16 8 - WDTREL * 2 ) fSYS Table 6-1 lists the possible ranges for the watchdog time which can be achieved using a certain module clock. Some numbers are rounded to 3 significant digits. Table 6-1 Reload value in WDTREL Watchdog Time Ranges Prescaler for fSYS 2 (WDTIN = ‘0’) 128 (WDTIN = ‘1’) 40 MHz 20 MHz 16 MHz 40 MHz 20 MHz 16 MHz FFH 12.8 µs 25.6 µs 32.0 µs 819.2 µs 1.64 ms 2.05 ms 7FH 1.65 ms 3.3 ms 4.13 ms 105.7 ms 211.3 ms 264 ms 00H 3.28 ms 6.55 ms 8.19 ms 209.7 ms 419.4 ms 524 ms Note :For safety reasons, the user is advised to rewrite WDTCON each time before the Watchdog Timer is serviced. User’s Manual 6-6 V 0.4, 2002-01 C868 Interrupt System 7 Interrupt System The C868 provides 13 interrupt vectors with two priority levels. Nine interrupt requests are generated by the on-chip peripherals (timer 0, timer 1, timer 2, serial channel, A/D converter, and the capture/compare unit with 4 interrupts) and four interrupts may be triggered externally. The wake-up from power-down mode interrupt has a special functionality which allows the software power-down mode to be terminated by a short negative pulse at pins CCPOS0/T2/INT0/AN0 or P1.4/RxD. The 13 interrupt sources are divided into six groups. Each group can be programmed to one of the two interrupt priority levels. Additionally, 4 of these interrupt sources are channeled from 7 Capture/Compare (CCU6) interrupt sources. 7.1 Structure of the Interrupt System Figure 7-1 to Figure 7-6 give a general overview of the interrupt sources and illustrate the request and control flags which are described in the next sections. User’s Manual 7-1 V 0.4, 2002-01 C868 Interrupt System ICC60R P3.7/ CC0 ISL.0 ICC60F ISL.1 ENCC60R IENL.0 ENCC60F P3.5/ CC1 ICC61F ISL.3 ENCC61R IENL.2 ISL.4 ICC62F ISL.5 T12 One Match T12 Period Match T12PM ISL.7 T13 Compare Match T13CM T13 Period Match T13PM ISH.0 ISH.1 P3.1/ CTRAP WHE ISH.5 Correct Hall Event CHE ISH.4 INPL.3 INPL.2 1 ENCC62F IENL.5 ENT12OM IENL.6 INPL.5 INPL.4 1 ENT12PM IENL.7 ENT13CM IENH.0 INPL.1 INPL.0 1 ENT13PM IENH.1 TRPF ISH.2 Wrong Hall Event ENCC62R IENL.4 T12OM ISL.6 1 ENCC61F IENL.3 ICC62R P3.3/ CC2 INPL.1 INPL.0 IENL.1 ICC61R ISL.2 1 ENTRPF IENH.2 ENWHE IENH.5 INPH.5 INPH.4 1 INPH.1 INPH.0 ENCHE IENH.4 INPL.7 INPL.6 CCU6 Interrupt node 0 CCU6 Interrupt node 1 CCU6 Interrupt node 2 CCU6 Interrupt node 3 Figure 7-1 User’s Manual Capture/Compare module interrupt structure 7-2 V 0.4, 2002-01 C868 Interrupt System Highest Priority Level INT0_ CORE_N (CCPOS / IT0 T2 / INT0 / TCON.0 AN0) TCON.1 A/D Converter IADC IE0 EX0 0003H Lowest Priority Level IEN0.0 IRCON.0 EADC 0033H IEN1.0 IP0.0 Timer 0 Overflow TF0 TCON.5 ET0 000BH IEN0.1 CCPOS2 / INT2 / AN2 P o l l i n g S e q u e n c EX2 ESEL2 IRCON0.0 EX2 003BH IEN1.1 EXICON.0 EA Bit addressable IP0.1 IEN0.7 Request flag is cleared by hardware Figure 7-2 User’s Manual Interrupt Structure, Overview Part 1 7-3 V 0.4, 2002-01 C868 Interrupt System Highest Priority Level CCPOS1 / T2EX / INT1 / AN1 IE1 TCON.3 IT1 EX1 0013H Lowest Priority Level IEN0.2 TCON.2 P o l l i n g S e q u e n c EXINT3 P1.3 / INT3 ESEL3 IRCON0.1 EX3 0043H IEN1.2 EXICON.1 Capture/compare interrupt node 0 EINP0 0083H IEN2.2 EA IP0.2 IEN0.7 Bit addressable Request flag is cleared by hardware Figure 7-3 User’s Manual Interrupt Structure, Overview Part 2 7-4 V 0.4, 2002-01 C868 Interrupt System Highest Priority Level Lowest Priority Level Timer 1 Overflow P o l l i n g S e q u e n c TF1 TCON.7 ET1 001BH IEN0.3 Capture/compare interrupt node 1 EINP1 008BH IEN2.3 EA IP0.3 IEN0.7 Bit addressable Request flag is cleared by hardware Figure 7-4 User’s Manual Interrupt Structure, Overview Part 3 7-5 V 0.4, 2002-01 C868 Interrupt System Highest Priority Level Lowest Priority Level RI UART 1 SCON.0 TI SCON.1 Capture/compare interrupt node 2 P o l l i n g S e q u e n c ES 0023H IEN0.4 EINP2 0093H IEN2.4 EA Bit addressable IP0.4 IEN0.7 Request flag is cleared by hardware Figure 7-5 User’s Manual Interrupt Structure, Overview Part 4 7-6 V 0.4, 2002-01 C868 Interrupt System Highest Priority Level Timer 2 Overflow TF2 CCPOS1 / T2EX / INT1 / EXEN2 AN1 1 T2CON.7 EXF2 T2CON.6 ET2 Lowest Priority Level 002BH IEN0.5 T2CON.3 Capture/compare interrupt node 3 EINP3 P o l l i n g S e q u e n c 009BH IEN2.5 EA IP0.5 IEN0.7 Bit addressable Request flag is cleared by hardware Figure 7-6 User’s Manual Interrupt Structure, Overview Part 5 7-7 V 0.4, 2002-01 C868 Interrupt System 7.2 Interrupt Registers 7.2.1 Interrupt Enable Registers Each interrupt vector can be individually enabled or disabled by setting or clearing the corresponding bit in the interrupt enable registers IEN0, IEN1, IEN2. Register IEN0 also contains the global disable bit (EA), which can be cleared to disable all interrupts at once. Generally, after reset all interrupt enable bits are set to 0. That means that the corresponding interrupts are disabled. The SFR IEN0 contains the enable bits for the external interrupts 0 and 1, the timer interrupts, and the UART interrupt. IEN0 Interrupt Enable Register 0 [Reset value: 0X000000B] AFH AEH ADH ACH ABH AAH A9H A8H EA - ET2 ES ET1 EX1 ET0 EX0 rw r rw rw rw rw rw rw Field Bits Typ Description EA 0 rw Enable/disable all interrupts. If EA=0, no interrupt will be acknowledged. If EA=1, each interrupt source is individually enabled or disabled by setting or clearing its enable bit. ET2 1 rw Timer 2 overflow / external reload interrupt enable. If ET2 = 0, the timer 2 interrupt is disabled. If ET2 = 1, the timer 2 interrupt is enabled. ES 2 rw Serial channel (UART) interrupt enable If ES = 0, the serial channel interrupt 0 is disabled. If ES = 1, the serial channel interrupt 0 is enabled. ET1 3 rw Timer 1 overflow interrupt enable. If ET1 = 0, the timer 1 interrupt is disabled. If ET1 = 1, the timer 1 interrupt is enabled. EX1 4 rw External interrupt 1 enable. If EX1 = 0, the external interrupt 1 is disabled. If EX1 = 1, the external interrupt 1 is enabled. ET0 5 rw Timer 0 overflow interrupt enable. If ET0 = 0, the timer 0 interrupt is disabled. If ET0 = 1, the timer 0 interrupt is enabled. User’s Manual 7-8 V 0.4, 2002-01 C868 Interrupt System Field Bits Typ Description EX0 7 rw External interrupt 0 enable. If EX0 = 0, the external interrupt 0 is disabled. If EX0 = 1, the external interrupt 0 is enabled. - 6 r reserved; returns ’0’ if read; should be written with ’0’; The SFR IEN1 contains the enable bits for the external interrupts 2 to 3, and the A/D converter interrupt. IEN1 Interrupt Enable Register 1 [Reset value: XXXXX000B] 7 6 5 4 3 2 1 0 - - - - - EX3 EX2 EADC r r r r r rw rw rw Field Bits Typ Description EADC 0 rw A/D converter interrupt enable If EADC = 0, the A/D converter interrupt is disabled. If EADC = 1, the A/D converter interrupt is enabled. EX2 1 rw External interrupt 2 enable If EX2 = 0, external interrupt 2 is disabled. If EX2 = 1, external interrupt 2 is enabled. EX3 2 rw External interrupt 3 / Timer 2 capture/compare interrupt 0 enable If EX3 = 0, external interrupt 3 is disabled. If EX3 = 1, external interrupt 3 is enabled. - [7:3] r reserved; returns ’0’ if read; should be written with ’0’; User’s Manual 7-9 V 0.4, 2002-01 C868 Interrupt System IEN2 Interrupt Enable Register 2 [Reset value: XX0000XXB] 7 6 5 4 3 2 1 0 - - EINP3 EINP2 EINP1 EINP0 - - r r rw rw rw rw r r Field Bits Typ Description EINP0 2 rw Capture/compare interrupt node 0 enable If EINP0 = 0, the interrupt node 0 is disabled. If EINP0 = 1, the interrupt node 0 is enabled. EINP1 3 rw Capture/compare interrupt node 1 enable If EINP0 = 0, the interrupt node 1 is disabled. If EINP0 = 1, the interrupt node 1 is enabled. EINP2 4 rw Capture/compare interrupt node 2 enable If EINP0 = 0, the interrupt node 2 is disabled. If EINP0 = 1, the interrupt node 2 is enabled. EINP3 5 rw Capture/compare interrupt node 3 enable If EINP0 = 0, the interrupt node 3 is disabled. If EINP0 = 1, the interrupt node 3 is enabled. - [7:6], [1:0] r reserved; returns ’0’ if read; should be written with ’0’; User’s Manual 7-10 V 0.4, 2002-01 C868 Interrupt System 7.2.2 Interrupt Request Flags The request flags for the different interrupt sources are located in several special function registers. This section describes the locations and meanings of these interrupt request flags in detail. . TCON Timer 0/1 Control Register [Reset value: 00H] 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 rwh rw rwh rw rwh rw rwh rw The functions of the shaded bits are not described here Field Bits Typ Description IT0 0 rw IE0 1 rwh External interrupt 0 request flag Set by hardware when external interrupt 0 edge is detected. Cleared by hardware when processor vectors to interrupt routine. IT1 2 rw IE1 3 rwh External interrupt 1 request flag Set by hardware when external interrupt 1 edge is detected. Cleared by hardware when processor vectors to interrupt routine. User’s Manual External interrupt 0 level/edge trigger control flag If IT0 = 0, low level triggered external interrupt 0 is selected. If IT0 = 1, falling edge triggered external interrupt 0 is selected. External interrupt 1 level/edge trigger control flag If IT1 = 0, low level triggered external interrupt 1 is selected. If IT1 = 1, falling edge triggered external interrupt 1 is selected. 7-11 V 0.4, 2002-01 C868 Interrupt System Field Bits Typ Description TF0 5 rwh Timer 0 overflow flag Set by hardware on timer/counter 0 overflow. Cleared by hardware when processor vectors to interrupt routine. TF1 7 rwh Timer 1 overflow flag Set by hardware on timer/counter 1 overflow. Cleared by hardware when processor vectors to interrupt routine. The timer 0 and timer 1 interrupts are generated by TF0 and TF1 in register TCON, which are set by a rollover in their respective timer/counter registers. When a timer interrupt is generated, the flag that generated it is cleared by the on-chip hardware when the service routine is vectored to. The external interrupts 0 and 1 (CCPOS0/T2/INT0/AN0 ,CCPOS1/T2EX/INT1/AN1) can each be either level-activated or negative transition-activated, depending on bits IT0 and IT1 in register TCON. The flags that actually generate these interrupts are bits IE0 and lE1 in TCON. When an external interrupt is generated, the flag that generated this interrupt is cleared by the hardware when the service routine is vectored to, but only if the interrupt was transition-activated. lf the interrupt was level-activated, then the requesting external source directly controls the request flag, rather than the on-chip hardware. IRCON0 External Interrupt Control Register 0 [Reset value: XXXXXX00B] 7 6 5 4 3 2 1 0 - - - - - - EXINT3 EXINT2 r r r r r r rwh rwh Field Bits Typ Description EXINT2 0 rwh Interrupt Request Flag for External Interrupt 2 0 : Interrupt request is not active, cleared by software. (default) 1 : Interrupt request is active, set by hardware. User’s Manual 7-12 V 0.4, 2002-01 C868 Interrupt System Field Bits Typ Description EXINT3 1 rwh Interrupt Request Flag for External Interrupt 3 0 : Interrupt request is not active, cleared by software. (default) 1 : Interrupt request is active, set by hardware. - [7:2] r reserved; returns ’0’ if read; should be written with ’0’; The external interrupt 2 and 3(CCPOS2/INT2/AN2, P1.3/INT3) can be either positive or negative transition-activated, depending on the bits register EXICON. The flags that actually generates this interrupt are bits EXINT2 and EXINT3 in register IRCON0. When processing the external interrupts, flags must be cleared by software. EXICON External Interrupt Control Register [Reset value: XXXXXX00B] 7 6 5 4 3 2 1 0 - - - - - - ESEL3 ESEL2 r r r r r r rw rw Field Bits Typ Description ESEL2 [7:0] rw External Interrupt 2 Edge Trigger Select. 0 : Interrupt on falling edge. (default) 1 : Interrupt on rising edge. ESEL3 [7:0] rw External Interrupt 3 Edge Trigger Select. 0 : Interrupt on falling edge. (default) 1 : Interrupt on rising edge. - [7:2] r reserved; returns ’0’ if read; should be written with ’0’; All external interrupts (CCPOS2/INT2/AN2, P1.3/INT3) can be either positive or negative transition-activated, depending on the bits register EXICON. The flags that actually generates this interrupt are bits EXINT2 and EXINT3 in register IRCON0. The flags must be cleared by software. User’s Manual 7-13 V 0.4, 2002-01 C868 Interrupt System . T2CON Timer 2 Control Register [Reset value: 00H] CFH CEH CDH CCH CBH CAH C9H C8H TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2 rwh rwh rw rw rw rw rw rw The functions of the shaded bits are not described here Field Bits Typ Description EXF2 6 rwh Timer/counter 2 External Flag This bit is set by hardware when a capture/reload occurred upon a negative transition at pin T2EX, if bit EXEN2=1. An interrupt request to the core is generated, unless bit DCEN=1. This bit must be cleared by software. TF2 7 rw Timer 2 Overflow Flag Set by a timer 2 overflow. Must be cleared by software. TF2 will not be set when either RCLK=1 or TCLK=1. The timer 2 interrupt is generated by bit TF2 or EXF2 in register T2CON. This flags are not cleared by hardware when the service routine is vectored to. They should be cleared by software. User’s Manual 7-14 V 0.4, 2002-01 C868 Interrupt System IRCON1 External Interrupt Request Register 1 [Reset value: XXXXXXX0B] 7 6 5 4 3 2 1 0 - - - - - - - IADC r r r r r r r rwh Field Bits Typ Description IADC 0 rwh Interrupt Request Flag for ADC 0 : Interrupt request is not active, cleared by software. (default) 1 : Interrupt request is active, set by hardware. - [7:1] r reserved; returns ’0’ if read; should be written with ’0’; The A/D converter interrupt is generated by IADC bit in register IRCON1. If an interrupt is generated, in any case the converted result in ADDATH is valid on the first instruction of the interrupt service routine. lf continuous conversion is established, IADC is set once during each conversion. lf an A/D converter interrupt is generated, flag IADC will have to be cleared by software. User’s Manual 7-15 V 0.4, 2002-01 C868 Interrupt System SCON Serial Channel Control Register [Reset value: 00H] 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H SM0 SM1 SM2 REN TB8 RB8 TI RI rwh rwh rw rw rw rw rwh rwh The functions of the shaded bits are not described here Field Bits Typ Description RI 0 rwh Serial interface receiver interrupt flag Set by hardware if a serial data byte has been received. Must be cleared by software. TI 1 rwh Serial interface transmitter interrupt flag Set by hardware at the end of a serial data transmission. Must be cleared by software. The serial interface interrupt is generated by a logical OR of flag RI and TI in SFR SCON. Neither of these flags is cleared by hardware when the service routine is vectored to. In fact, the service routine will normally have to determine whether it was the receive interrupt flag or the transmission interrupt flag that generated the interrupt, and the corresonding bit will have to be cleared by software. User’s Manual 7-16 V 0.4, 2002-01 C868 Interrupt System 7.2.3 Interrupt Control Registers for CCU6 Register IS contains the individual interrupt request bits. This register can only be read, write actions have no impact on the contents of this register. The SW can set or reset the bits individually by writing to the registers ISS (to set the bits) or to register ISR (to reset the bits). . ISL Capture/Compare Interrupt Register ,Low Byte [Reset value: 00H] 7 6 5 4 3 2 1 0 T12PM T12OM ICC62F ICC62R ICC61F ICC61R ICC60F ICC60R rh rh rh rh rh rh rh rh Field Bits Type Description ICC60R, ICC61R, ICC62R 0, 2, 4 rh User’s Manual Capture, Compare-Match Rising Edge Flag In compare mode, a compare-match has been detected while T12 was counting up. In capture mode, a rising edge has been detected at the input CC6x (x=0, 1, 2). 0 The event has not yet occurred since this bit has been reset for the last time. 1 The event described above has been detected. 7-17 V 0.4, 2002-01 C868 Interrupt System Field Bits Type Description ICC60F, ICC61F, ICC62F 1, 3, 5 rh Capture, Compare-Match Falling Edge Flag In compare mode, a compare-match has been detected while T12 was counting down. In capture mode, a falling edge has been detected at the input CC6x (x=0, 1, 2). 0 The event has not yet occurred since this bit has been reset for the last time. 1 The event described above has been detected. T12OM 6 rh Timer T12 One-Match Flag 0 A timer T12 one-match (while counting down) has not yet been detected since this bit has been reset for the last time. 1 A timer T12 one-match (while counting down) has been detected. T12PM 7 rh Timer T12 Period-Match Flag 0 A timer T12 period-match (while counting up) has not yet been detected since this bit has been reset for the last time. 1 A timer T12 period-match (while counting up) has been detected. User’s Manual 7-18 V 0.4, 2002-01 C868 Interrupt System ISH Capture/Compare Interrupt Register ,High Byte [Reset value: 00H] 7 6 5 4 3 2 1 0 - IDLE WHE CHE TRPS TRPF T13PM T13CM r rh rh rh rh rh rh rh Field Bits Type Description T13CM 0 rh Timer T13 Compare-Match Flag 0 A timer T13 compare-match has not yet been detected since this bit has been reset for the last time. 1 A timer T13 compare-match has been detected. T13PM 1 rh Timer T13 Period-Match Flag 0 A timer T13 period-match has not yet been detected since this bit has been reset for the last time. 1 A timer T13 period-match has been detected. TRPF 2 rh Trap Flag The trap flag TRPF will be set by HW if TRPPEN=’1’ and CTRAP=’0’ or by SW. If TRPM2=’0’, bit TRPF is reset by HW if the input CTRAP becomes inactive (TRPPEN=’1’). If TRPM2=’1’, bit TRPF has to be reset by SW in order to leave the trap state. 0 The trap condition has not been detected. 1 The trap condition has been detected (input CTRAP has been ’0’ or by SW). TRPS1) 3 rh Trap State 0 The trap state is not active. 1 The trap state is active. Bit TRPS is set while bit TRPF=’1’. It is reset according to the mode selected in register TRPCTR. User’s Manual 7-19 V 0.4, 2002-01 C868 Interrupt System Field Bits Type Description CHE2) 4 rh Correct Hall Event 0 A transition to a correct (=expected) hall event has not yet been detected since this bit has been reset for the last time. 1 A transition to a correct (=expected) hall event has not yet been detected. WHE3) 5 rh Wrong Hall Event 0 A transition to a wrong hall event (not the expected one) has not yet been detected since this bit has been reset for the last time. 1 A transition to a wrong hall event (not the expected one) has been detected. IDLE4) 6 rh IDLE State This bit is set together with bit WHE (wrong hall event) and it has to be reset by SW. 0 No action. 1 Bitfield MCMP is cleared, the selected outputs are set to passive state. - 7 r reserved; returns ’0’ if read; should be written with ’0’; 1) 2) 3) 4) During the trap state, the selected outputs are set to the passive state. The logic level driven during the passive state is defined by the corresponding bit in register CCMCON. Bit TRPS=’1’ and TRPF=’0’ can occur if the trap condition is no longer active but the selected synchronization has not yet taken place. On every valid hall edge the contents of CURH is compared with the pattern on pin CCPOSx and if equal bit CHE is set. On every valid hall edge the contents of EXPH is compared with the pattern on pin CCPOSx. If both compares (CURH and EXPH with CCPOSx) are not true, bit WHE (wrong hall event) is set. Bit field MCMP is hold to ’0’ by hardware as long as IDLE = ’1’. Note: Not all bits in register IS can generate an interrupt. Other status bits have been added, which have a similar structure for their set and reset actions. Note: The interrupt generation is independent from the value of the bits in register IS, e.g. the interrupt will be generated (if enabled) even if the corresponding bit is already set. The trigger for an interrupt generation is the detection of a set condition (by HW or SW) for the corresponding bit in register IS. Note: In compare mode (and hall mode), the timer-related interrupts are only generated while the timer is running (TxR=1). In capture mode, the capture interrupts are also generated while the timer T12 is stopped. User’s Manual 7-20 V 0.4, 2002-01 C868 Interrupt System Register ISS contains the individual interrupt request set bits to generate a CCU6 interrupt request by software. ISSL Capture/Compare Interrupt Status Reset Register ,Low Byte [Reset value: 00H] 7 6 5 4 3 2 1 0 ST12PM ST12OM SCC62F SCC62R SCC61F SCC61R SCC60F SCC60R w w w w w w w w Field Bits Type Description SCC60R 0 w Set Capture, Compare-Match Rising Edge Flag 0 No action 1 Bit CC60R in register IS will be set. SCC60F 1 w Set Capture, Compare-Match Falling Edge Flag 0 No action 1 Bit CC60F in register IS will be set. SCC61R 2 w Set Capture, Compare-Match Rising Edge Flag 0 No action 1 Bit CC61R in register IS will be set. SCC61F 3 w Set Capture, Compare-Match Falling Edge Flag 0 No action 1 Bit CC61F in register IS will be set. SCC62R 4 w Set Capture, Compare-Match Rising Edge Flag 0 No action 1 Bit CC62R in register IS will be set. SCC62F 5 w Set Capture, Compare-Match Falling Edge Flag 0 No action 1 Bit CC62F in register IS will be set. ST12OM 6 w Set Timer T12 One-Match Flag 0 No action 1 Bit T12OM in register IS will be set. ST12PM 7 w Set Timer T12 Period-Match Flag 0 No action 1 Bit T12PM in register IS will be set. User’s Manual 7-21 V 0.4, 2002-01 C868 Interrupt System ISSH Capture/Compare Interrupt Status Reset Register ,High Byte [Reset value: 00H] 7 6 5 4 3 2 1 0 - SIDLE SWHE SCHE - STRPF ST13PM ST13CM r w w w r w w w Field Bits Type Description ST13CM 0 w Set Timer T13 Compare-Match Flag 0 No action 1 Bit T13CM in register IS will be set. ST13PM 1 w Set Timer T13 Period-Match Flag 0 No action 1 Bit T13PM in register IS will be set. STRPF 2 w Set Trap Flag 0 No action 1 Bit TRPF in register IS will be set (not taken into account while input CTRAP=’0’ and TRPPEN=’1’. SCHE 3 w Set Correct Hall Event Flag 0 No action 1 Bit CHE in register IS will be set. SWHE 5 w Set Wrong Hall Event Flag 0 No action 1 Bit WHE in register IS will be set. SIDLE 6 w Set IDLE Flag 0 No action 1 Bit IDLE in register IS will be set. 0 3, 7 r reserved; returns ’0’ if read; should be written with ’0’; Note: If the setting by HW of the corresponding flags can lead to an interrupt, the setting by SW has the same effect. User’s Manual 7-22 V 0.4, 2002-01 C868 Interrupt System Register ISR contains the individual interrupt request reset the corresponding flags by software. ISRL Capture/Compare Interrupt Status Reset Register ,Low Byte [Reset value: 00H] 7 6 5 4 3 2 1 0 RT12PM RT12OM RCC62F RCC62R RCC61F RCC61R RCC60F RCC60R w w w w w w w w Field Bits Type Description RCC60R 0 w Reset Capture, Compare-Match Rising Edge Flag 0 No action 1 Bit CC60R in register IS will be reset. RCC60F 1 w Reset Capture, Compare-Match Falling Edge Flag 0 No action 1 Bit CC60F in register IS will be reset. RCC61R 2 w Reset Capture, Compare-Match Rising Edge Flag 0 No action 1 Bit CC61R in register IS will be reset. RCC61F 3 w Reset Capture, Compare-Match Falling Edge Flag 0 No action 1 Bit CC61F in register IS will be reset. RCC62R 4 w Reset Capture, Compare-Match Rising Edge Flag 0 No action 1 Bit CC62R in register IS will be reset. RCC62F 5 w Reset Capture, Compare-Match Falling Edge Flag 0 No action 1 Bit CC62F in register IS will be reset. RT12OM 6 w Reset Timer T12 One-Match Flag 0 No action 1 Bit T12OM in register IS will be reset. RT12PM 7 w Reset Timer T12 Period-Match Flag 0 No action 1 Bit T12PM in register IS will be reset. User’s Manual 7-23 V 0.4, 2002-01 C868 Interrupt System ISRH Capture/Compare Interrupt Status Reset Register ,High Byte [Reset value: 00H] 7 6 5 4 3 2 1 0 - RIDLE RWHE RCHE - RTRPF RT13PM RT13CM r w w w r w w w Field Bits Type Description RT13CM 0 w Reset Timer T13 Compare-Match Flag 0 No action 1 Bit T13CM in register IS will be reset. RT13PM 1 w Reset Timer T13 Period-Match Flag 0 No action 1 Bit T13PM in register IS will be reset. RTRPF 2 w Reset Trap Flag 0 No action 1 Bit TRPF in register IS will be reset (not taken into account while input CTRAP=’0’ and TRPPEN=’1’. RCHE 4 w Reset Correct Hall Event Flag 0 No action 1 Bit CHE in register IS will be reset. RWHE 5 w Reset Wrong Hall Event Flag 0 No action 1 Bit WHE in register IS will be reset. RIDLE 6 w Reset IDLE Flag 0 No action 1 Bit IDLE in register IS will be reset. - 3, 7 r reserved; returns ’0’ if read; should be written with ’0’; User’s Manual 7-24 V 0.4, 2002-01 C868 Interrupt System Register IEN contains the interrupt enable bits and a control bit to enable the automatic idle function in the case of a wrong hall pattern. IENL Capture/Compare Interrupt Enable Register ,Low Byte 7 6 5 4 3 [Reset value: 00H] 2 1 0 ENT12PM ENT12OM ENCC62F ENCC62R ENCC61F ENCC61R ENCC60F ENCC60R rw rw rw rw rw rw rw rw Field Bits Type Description ENCC60R 0 rw Capture, Compare-Match Rising Edge Interrupt Enable for Channel 0 0 No interrupt will be generated if the set condition for bit CC60R in register IS occurs. 1 An interrupt will be generated if the set condition for bit CC60R in register IS occurs. The interrupt line, which will be activated is selected by bitfield INPCC60. ENCC60F 1 rw Capture, Compare-Match Falling Edge Interrupt Enable for Channel 0 0 No interrupt will be generated if the set condition for bit CC60F in register IS occurs. 1 An interrupt will be generated if the set condition for bit CC60F in register IS occurs. The interrupt line, which will be activated is selected by bitfield INPCC60. ENCC61R 2 rw Capture, Compare-Match Rising Edge Interrupt Enable for Channel 1 0 No interrupt will be generated if the set condition for bit CC61R in register IS occurs. 1 An interrupt will be generated if the set condition for bit CC61R in register IS occurs. The interrupt line, which will be activated is selected by bitfield INPCC61. User’s Manual 7-25 V 0.4, 2002-01 C868 Interrupt System Field Bits Type Description ENCC61F 3 rw Capture, Compare-Match Falling Edge Interrupt Enable for Channel 1 0 No interrupt will be generated if the set condition for bit CC61F in register IS occurs. 1 An interrupt will be generated if the set condition for bit CC61F in register IS occurs. The interrupt line, which will be activated is selected by bitfield INPCC61. ENCC62R 4 rw Capture, Compare-Match Rising Edge Interrupt Enable for Channel 2 0 No interrupt will be generated if the set condition for bit CC62R in register IS occurs. 1 An interrupt will be generated if the set condition for bit CC62R in register IS occurs. The interrupt line, which will be activated is selected by bitfield INPCC62. ENCC62F 5 rw Capture, Compare-Match Falling Edge Interrupt Enable for Channel 2 0 No interrupt will be generated if the set condition for bit CC62F in register IS occurs. 1 An interrupt will be generated if the set condition for bit CC62F in register IS occurs. The interrupt line, which will be activated is selected by bitfield INPCC62. ENT12OM 6 rw Enable Interrupt for T12 One-Match 0 No interrupt will be generated if the set condition for bit T12OM in register IS occurs. 1 An interrupt will be generated if the set condition for bit T12OM in register IS occurs. The interrupt line, which will be activated is selected by bitfield INPT12. ENT12PM 7 rw Enable Interrupt for T12 Period-Match 0 No interrupt will be generated if the set condition for bit T12PM in register IS occurs. 1 An interrupt will be generated if the set condition for bit T12PM in register IS occurs. The interrupt line, which will be activated is selected by bitfield INPT12. User’s Manual 7-26 V 0.4, 2002-01 C868 Interrupt System IENH Capture/Compare Interrupt Enable Register ,High Byte [Reset value: 00H] 7 6 5 4 3 2 - ENIDLE ENWHE ENCHE - ENTRPF r rw rw rw r rw 1 0 ENT13PM ENT13CM rw rw Field Bits Type Description ENT13CM 0 rw Enable Interrupt for T13 Compare-Match 0 No interrupt will be generated if the set condition for bit T13CM in register IS occurs. 1 An interrupt will be generated if the set condition for bit T13CM in register IS occurs. The interrupt line, which will be activated is selected by bitfield INPT13. ENT13PM 1 rw Enable Interrupt for T13 Period-Match 0 No interrupt will be generated if the set condition for bit T13PM in register IS occurs. 1 An interrupt will be generated if the set condition for bit T13PM in register IS occurs. The interrupt line, which will be activated is selected by bitfield INPT13. ENTRPF 2 rw Enable Interrupt for Trap Flag 0 No interrupt will be generated if the set condition for bit TRPF in register IS occurs. 1 An interrupt will be generated if the set condition for bit TRPF in register IS occurs. The interrupt line, which will be activated is selected by bitfield INPERR. ENCHE 4 rw Enable Interrupt for Correct Hall Event 0 No interrupt will be generated if the set condition for bit CHE in register IS occurs. 1 An interrupt will be generated if the set condition for bit CHE in register IS occurs. The interrupt line, which will be activated is selected by bitfield INPCHE. User’s Manual 7-27 V 0.4, 2002-01 C868 Interrupt System Field Bits Type Description ENWHE 5 rw Enable Interrupt for Wrong Hall Event 0 No interrupt will be generated if the set condition for bit WHE in register IS occurs. 1 An interrupt will be generated if the set condition for bit WHE in register IS occurs. The interrupt line, which will be activated is selected by bitfield INPERR. ENIDLE 6 rw Enable Idle This bit enables the automatic entering of the idle state (bit IDLE will be set) after a wrong hall event has been detected (bit WHE is set). During the idle state, the bitfield MCMP is automatically cleared. 0 The bit IDLE is not automatically set when a wrong hall event is detected. 1 The bit IDLE is automatically set when a wrong hall event is detected. - 3, 7 r reserved; returns ’0’ if read; should be written with ’0’; Registers INPL and INPH contains the interrupt node pointer bits, allowing for flexible interrupt handling. INPL Capture/Compare Interrupt Node Pointer Register ,Low Byte 7 6 5 4 3 2 [Reset value: 40H] 1 0 INPCHE INPCC62 INPCC61 INPCC60 rw rw rw rw User’s Manual 7-28 V 0.4, 2002-01 C868 Interrupt System Field Bits Type Description INPCC60 [1:0] rw Interrupt Node Pointer for Channel 0 Interrupts This bitfield defines the interrupt node, which is activated due to a set condition for bit CC60R (if enabled by bit ENCC60R) or for bit CC60F (if enabled by bit ENCC60F). 00 Interrupt node I0 is selected. 01 Interrupt node I1 is selected. 10 Interrupt node I2 is selected. 11 Interrupt node I3 is selected. INPCC61 [3:2] rw Interrupt Node Pointer for Channel 1 Interrupts This bitfield defines the interrupt node, which is activated due to a set condition for bit CC61R (if enabled by bit ENCC61R) or for bit CC61F (if enabled by bit ENCC61F). 00 Interrupt node I0 is selected. 01 Interrupt node I1 is selected. 10 Interrupt node I2 is selected. 11 Interrupt node I3 is selected. INPCC62 [5:4] rw Interrupt Node Pointer for Channel 2 Interrupts This bitfield defines the interrupt node, which is activated due to a set condition for bit CC62R (if enabled by bit ENCC62R) or for bit CC62F (if enabled by bit ENCC62F). 00 Interrupt node I0 is selected. 01 Interrupt node I1 is selected. 10 Interrupt node I2 is selected. 11 Interrupt node I3 is selected. INPCHE [7:6] rw Interrupt Node Pointer for the CHE Interrupt This bitfield defines the interrupt node, which is activated due to a set condition for bit CHE (if enabled by bit ENCHE). 00 Interrupt node I0 is selected. 01 Interrupt node I1 is selected. 10 Interrupt node I2 is selected. 11 Interrupt node I3 is selected. User’s Manual 7-29 V 0.4, 2002-01 C868 Interrupt System INPH Capture/Compare Interrupt Node Pointer Register ,High Byte 5 4 3 2 [Reset value: 39H] 7 6 1 0 - - INPT13 INPT12 INPERR r r rw rw rw Field Bits Type Description INPERR [1:0] rw Interrupt Node Pointer for Error Interrupts This bitfield defines the interrupt node, which is activated due to a set condition for bit TRPF (if enabled by bit ENTRPF) or for bit WHE (if enabled by bit ENWHE). 00 Interrupt node I0 is selected. 01 Interrupt node I1 is selected. 10 Interrupt node I2 is selected. 11 Interrupt node I3 is selected. INPT12 [3:2] rw Interrupt Node Pointer for Timer12 Interrupts This bitfield defines the interrupt node, which is activated due to a set condition for bit T12OM (if enabled by bit ENT12OM) or for bit T12PM (if enabled by bit ENT12PM). 00 Interrupt node I0 is selected. 01 Interrupt node I1 is selected. 10 Interrupt node I2 is selected. 11 Interrupt node I3 is selected. INPT13 [5:4] rw Interrupt Node Pointer for Timer13 Interrupt This bitfield defines the interrupt node, which is activated due to a set condition for bit T13CM (if enabled by bit ENT13CM) or for bit T13PM (if enabled by bit ENT13PM). 00 Interrupt node I0 is selected. 01 Interrupt node I1 is selected. 10 Interrupt node I2 is selected. 11 Interrupt node I3 is selected. - [7:6 r reserved; returns ’0’ if read; should be written with ’0’; User’s Manual 7-30 V 0.4, 2002-01 C868 Interrupt System 7.2.4 Interrupt Priority Registers The lower six bits of these two registers are used to define the interrupt priority level of the interrupt groups as they are defined in Table 7-2 in the next section. IP0 Interrupt Priority Register 0 BDH [Reset value: XX000000B] BFH BEH BCH BBH BAH - - IP0 r r rw B9H B8H Field Bits Typ Description IP0x x=0..5 [5..0] rw Interrupt group priority level bits 0 Interrupt group x is set to priority level 0 (lowest) 1 Interrupt group x is set to priority level 1 (highest) - [7:6] r reserved; returns ’0’ if read; should be written with ’0’; User’s Manual 7-31 V 0.4, 2002-01 C868 Interrupt System 7.3 Interrupt Priority Level Structure The 13 interrupt sources of the C868 are grouped according to the listing in Table 7-1. Table 7-1 Interrupt Source Structure Interrupt Associated Interrupts Group 0 External interrupt A/D converter 0 interrupt 1 Timer 0 Overflow External interrupt 2 2 External interrupt External interrupt Capture/compare 1 3 interrupt node 0 3 Timer 1 overflow Capture/compare interrupt node 1 4 Capture/compare Serial interrupt interrupt node 2 5 Timer 2 overflow Capture/compare interrupt node 3 Each group of interrupt sources can be programmed individually to one of two priority levels by setting or clearing one bit in the special function register IP0. A low-priority interrupt can be interrupted by a high-priority interrupt, but not by another interrupt of the same or a lower priority. An interrupt of the highest priority level cannot be interrupted by another interrupt source. lf two or more requests of different priority levels are received simultaneously, the request of the highest priority is serviced first. lf requests of the same priority level are received simultaneously, an internal polling sequence determines which request is to be serviced first. Thus, within each priority level there is a second priority structure determined by the polling sequence. This is illustrated in Table 7-2. User’s Manual 7-32 V 0.4, 2002-01 C868 Interrupt System Table 7-2 Interrupt Source Structure Interrupt Priority Bits Group of Interrupt Group Interrupt Source Priority 0 IP0.0 EXINT0 IADC 1 IP0.1 TF0 EXINT2 2 IP0.2 EXINT1 EXINT3 3 IP0.3 TF1 INP11) 4 IP0.4 RI + TI INP21) 5 IP0.5 TF2 INP31) 1) High Priority Priority Priority Low High INP01) Low Capture/compare has 10 interrupt sources channeled to the 4 interrupt nodes INP0..3. The 3 capture/ compare ports has 3 pairs of interrupt request flags, ICC60R, ICC60F, ICC61R, ICC61F, ICC62R, ICC62F. The other flags are T12OM, T12PM, T13CM, T13PM, TRPF, WHE, CHE. Within a column, the topmost interrupt is serviced first, then the second and the third, when available. The interrupt groups are serviced from left to right of the table. A lowpriority interrupt can itself be interrupted by a higher-priority interrupt, but not by another interrupt of the same or a lower priority. An interrupt of the highest priority level cannot be interrupted by another interrupt source. If two or more requests of different priority levels are received simultaneously, the request of the highest priority is serviced first. If requests of the same priority level are received simultaneously, an internal polling sequence determines which request is to be serviced first. Thus, within each priority level there is a second priority structure which is illustrated in table 7-10. The “priority-within-level” structure is only used to resolve simultaneous requests of the same priority level. User’s Manual 7-33 V 0.4, 2002-01 C868 Interrupt System 7.4 How Interrupts are Handled The interrupt flags are sampled at S5P2 in each machine cycle. The sampled flags are polled during the following machine cycle. If one of the flags was in a set condition at S5P2 of the preceeding cycle, the polling cycle will find it and the interrupt system will generate a LCALL to the appropriate service routine, provided this hardware-generated LCALL is not blocked by any of the following conditions: An interrupt of equal or higher priority is already in progress. The current (polling) cycle is not in the final cycle of the instruction in progress. The instruction in progress is RETI or any write access to registers IEN0/IEN1 or IP0. Any of these three conditions will block the generation of the LCALL to the interrupt service routine. Condition 2 ensures that the instruction in progress is completed before vectoring to any service routine. Condition 3 ensures that if the instruction in progress is RETI or any write access to registers IEN0/IEN1 or IP0, then at least one more instruction will be executed before any interrupt is vectored to; this delay guarantees that changes of the interrupt status can be observed by the CPU. The polling cycle is repeated with each machine cycle, and the values polled are the values that were present at S5P2 of the previous machine cycle. Note that if any interrupt flag is active but not being responded to for one of the conditions already mentioned, or if the flag is no longer active when the blocking condition is removed, the denied interrupt will not be serviced. In other words, the fact that the interrupt flag was once active but not serviced is not remembered. Every polling cycle interrogates only the pending interrupt requests. The polling cycle/LCALL sequence is illustrated in Table 7-7. C1 Interrupt is latched Figure 7-7 User’s Manual C2 Interrupts are polled C3 C4 Long call to Interrupt Vector Address C5 Interrupt Routine Interrupt Response Timing Diagram 7-34 V 0.4, 2002-01 C868 Interrupt System Note that if an interrupt of a higher priority level goes active prior to S5P2 in the machine cycle labeled C3 in Figure 7-7 then, in accordance with the above rules, it will be vectored to during C5 and C6 without any instruction for the lower priority routine to be executed. Thus, the processor acknowledges an interrupt request by executing a hardwaregenerated LCALL to the appropriate servicing routine. In some cases it also clears the flag that generated the interrupt, while in other cases it does not; then this has to be done by the user’s software. The hardware clears the external interrupt flags IE0 and IE1 only if they were transition-activated. The hardware-generated LCALL pushes the contents of the program counter onto the stack (but it does not save the PSW) and reloads the program counter with an address that depends on the source of the interrupt being vectored to, as shown in the following Table 7-3. Table 7-3 Interrupt Source and Vectors Interrupt Source Interrupt Vector Address(core connections) Interrupt Request Flags External Interrupt 0 0003H(EX0) IE0 Timer 0 Overflow 000BH(ET0) TF0 External Interrupt 1 0013H(EX1) IE1 Timer 1 Overflow 001BH(ET1) TF1 Serial Channel 0023H(ES) RI / TI Timer 2 Overflow 002BH(EX5) TF2 A/D Converter 0033H(EX6) IADC External Interrupt 2 003BH(EX7) IEX2 External Interrupt 3 0043H(EX8) IEX3 004BH(EX9) 0053H(EX10) 005BH(EX11) 0063H(EX12) 006BH(EX13) CCU6 interrupt node 0 0083H(EX14) INP01) CCU6 interrupt node 1 008BH(EX15) INP11) CCU6 interrupt node 2 0093H(EX16) INP21) CCU6 interrupt node3 009BH(EX17) INP31) 00A3H(EX18) User’s Manual 7-35 V 0.4, 2002-01 C868 Interrupt System Table 7-3 Interrupt Source and Vectors 00ABH(EX19) 00D3H(EX20) 00DBH(EX21) 00E3H(EX22) Wake-up from power-down mode 1) – 007BH Capture/compare has 10 interrupt sources channeled to the 4 interrupt nodes INP0..3. The 3 capture/compare ports has 3 pairs of interrupt request flags, ICC60R, ICC60F, ICC61R, ICC61F, ICC62R, ICC62F. The other flags are T12OM, T12PM, T13CM, T13PM, TRPF, WHE, CHE. Execution proceeds from that location until the RETI instruction is encountered. The RETI instruction informs the processor that the interrupt routine is no longer in progress, then pops the two top bytes from the stack and reloads the program counter. Execution of the interrupted program continues from the point where it was stopped. Note that the RETI instruction is very important because it informs the processor that the program left the current interrupt priority level. A simple RET instruction would also have returned execution to the interrupted program, but it would have left the interrupt control system thinking an interrupt was still in progress. In this case no interrupt of the same or lower priority level would be acknowledged. External Interrupts The external interrupts 0 and 1 can be programmed to be level-activated or negativetransition activated by setting or clearing bit ITx (x = 0 or 1), respectively in register TCON. If ITx = 0, external interrupt x is triggered by a detected low level at the INTx pin. If ITx = 1, external interrupt x is negative edge-triggered. In this mode, if successive samples of the INTx pin show a high in one cycle and a low in the next cycle, interrupt request flag IEx in TCON is set. Flag bit IEx=1 then requests the interrupt. If the external interrupt 0 or 1 is level-activated, the external source has to hold the request active until the requested interrupt is actually generated. Then it has to deactivate the request before the interrupt service routine is completed, or else another interrupt will be generated. The external interrupts 2 and 3 can be programmed to be negative or positive transitionactivated by setting or clearing bits I2FR or I3FR in register T2CON. If IxFR = 0 (x = 2 or 3) then the external interrupt x is negative transition-activated. If IxFR = 1, external interrupt is triggered by a positive transition. Since the external interrupt pins are sampled once in each machine cycle, an input high or low should be held for at least 3 oscillator periods to ensure sampling. lf the external interrupt is positive (negative) transition-activated, the external source has to hold the request pin low (high) for at least one cycle, and then hold it high (low) for at least one User’s Manual 7-36 V 0.4, 2002-01 C868 Interrupt System cycle to ensure that the transition is recognized so that the corresponding interrupt request flag will be set (see Figure 7-8). The external interrupt request flags will automatically be cleared by the CPU when the service routine is called. Figure 7-8 7.5 External Interrupt Detection Interrupt Response Time If an external interrupt is recognized, its corresponding request flag is set at S5P2 in every machine cycle. The value is not polled by the circuitry until the next machine cycle. If the request is active and conditions are right for it to be acknowledged, a hardware subroutine call to the requested service routine will be the next instruction to be executed. The call itself takes two cycles. Thus a minimum of three complete machine cycles will elapse between activation and external interrupt request and the beginning of execution of the first instruction of the service routine. A longer response time would be obtained if the request was blocked by one of the three previously listed conditions. If an interrupt of equal or higer priority is already in progress, the additional wait time obviously depends on the nature of the other interrupt’s service routine. If the instruction in progress is not in its final cycle, the additional wait time cannot be more than 3 cycles since the longest instructions (MUL and DIV) are only 4 cycles long; and, if the instruction in progress is RETI or a write access to registers IEN0, IEN1 or IP0 the additional wait time cannot be more than 5 cycles (a maximum of one more User’s Manual 7-37 V 0.4, 2002-01 C868 Interrupt System cycle to complete the instruction in progress, plus 4 cycles to complete the next instruction, if the instruction is MUL or DIV). Thus a single interrupt system, the response time is always more than 3 cycles and less than 9 cycles. User’s Manual 7-38 V 0.4, 2002-01 C868 Power Saving Modes 8 Power Saving Modes The C868 provides two basic power saving modes, the idle mode and the power down mode. Additionally, a slow down mode is available. This power saving mode reduces the internal clock rate in normal operating mode and it can also be used for further power reduction in idle mode. Further power saving is possible in the normal, idle and slow down modes by disabling unutilized peripherals. The peripherals that has the powerdown capability are the timer/counter2, capture/compare unit and the A/D converter. 8.1 Power Saving Mode Control Registers The functions of the power saving modes are controlled by bits which are located in the special function registers PCON and PMCON0. The bits PDE and IDLE located in SFR PCON select the power down mode or the idle mode, respectively. If the power down mode and the idle mode are set at the same time, power down mode takes precedence. Furthermore, register PCON contains two general purpose flags. For example, the flag bits GF0 and GF1 can be used to give an indication if an interrupt occurred during normal operation or during idle mode. For this, an instruction that activates idle mode can also set one or both flag bits. When idle mode is terminated by an interrupt, the interrupt service routine can examine the flag bits. User’s Manual 8-1 V 0.4, 2002-01 C868 Power Saving Modes 8.2 Register Description PCON Power Control Register [Reset value: 0XXX0000B] 7 6 5 4 3 2 1 0 SMOD - - SD GF1 GF0 PDE IDLE rw r r rw rw rw rw rw The functions of the shaded bits are not described here Field Bits Typ Description IDLE 0 rw Idle mode enable bit When set, starting of the idle mode is enabled PDE 1 rw Power down enable bit When set, starting of the power down is enabled GF0 2 rw General purpose flag GF1 3 rw General purpose flag SD 4 rw Slow down mode bit When set, the slow down mode is enabled - [6:5] r reserved; returns ’0’ if read; should be written with ’0’; User’s Manual 8-2 V 0.4, 2002-01 C868 Power Saving Modes PMCON0 Wake-up Control Register [Reset value: XXX000000B] 7 6 5 4 3 2 1 0 - - - EBO BO SDSTAT WS EWPD r r r rw rw rh rw rw The functions of the shaded bits are not described here Field Bits Typ Description EWPD 0 rw Enable Wake Up from Power Down Mode. When this bit is set, power down mode can be terminated either by an external active INT0 signal or by an external signal from a second source, RXD. WS 1 rw Wake Up Source Select. This is applicable only if EWPD is set. 0 : INT0 will terminate power down mode. (default) 1 : RXD will terminate power down mode. SDSTAT 2 rh Slow Down Status Bit. 0 : Slow Down Mode is not active, ie system clock is not slow down clock. 1 : Slow Down Mode is active, ie system clock is the slow down clock. This bit is set or cleared by hardware only. - [7:5] r reserved; returns ’0’ if read; should be written with ’0’; User’s Manual 8-3 V 0.4, 2002-01 C868 Power Saving Modes 8.3 Idle Mode In the idle mode the oscillator of the C868 continues to run, but the CPU is gated off from the clock signal. However, the interrupt system, the serial port, the A/D converter, the capture/compare unit, and all timers with the exception of the watchdog timer are further provided with the clock. The CPU status is preserved in its entirety: the stack pointer, program counter, program status word, accumulator, and all other registers maintain their data during idle mode. The reduction of power consumption, which can be achieved by this feature depends on the number of peripherals running. If all timers are stopped and the A/D converter, and the serial interfaces are not running, the maximum power reduction can be achieved. This state is also the test condition for the idle mode IDDC. Thus, the user has to take care which peripheral should continue to run and which has to be stopped during idle mode. Also the state of all port pins – either the pins controlled by their latches or controlled by their secondary functions – depends on the status of the controller when entering idle mode. Normally, the port pins hold the logical state they had at the time when the idle mode was activated. If some pins are programmed to serve as alternate functions they still continue to output during idle mode if the assigned function is on. This especially applies to the serial interface in case it cannot finish reception or transmission during normal operation. As in normal operation mode, the ports can be used as inputs during idle mode. Thus a capture or reload operation can be triggered, the timers can be used to count external events, and external interrupts will be detected. The idle mode is a useful feature which makes it possible to "freeze" the processor's status - either for a predefined time, or until an external event reverts the controller to normal operation, as discussed below. The watchdog timer is the only peripheral which is automatically stopped during idle mode. The idle mode is entered by setting the flag bit IDLE (PCON.0). There are two ways to terminate the idle mode: The idle mode can be terminated by activating any enabled interrupt. The CPU operation is resumed, the interrupt will be serviced and the next instruction to be executed after the RETI instruction will be the one following the instruction that had set the bit IDLE. The other way to terminate the idle mode, is a hardware reset. User’s Manual 8-4 V 0.4, 2002-01 C868 Power Saving Modes 8.4 Slow Down Mode Operation In some applications, where power consumption and dissipation are critical, the controller might run for a certain time at reduced speed (e.g. if the controller is waiting for an input signal). Since in CMOS devices there is an almost linear dependence of the operating frequency and the power supply current, a reduction of the operating frequency results in reduced power consumption. The slow down mode is activated by setting the bit SD in SFR PCON. If the slow down mode is enabled, the clock signals for the CPU and the peripheral units can be reduced from 1/2 to 1/32 of the nominal system clock rate. The clock divider is described in the Reset and System Clock Operation chapter. The controller actually enters the slow down mode after a short synchronization period (max. two machine cycles). The slow down mode is terminated by clearing bit SD. The slow down mode can be combined with the idle mode by setting the IDLE and SD bits in SFR PCON. There are two ways to terminate the combined Idle and Slow Down Mode : – The idle mode can be terminated by activation of any enabled interrupt. The CPU operation is resumed, the interrupt will be serviced and the next instruction to be executed after the RETI instruction will be the one following the instruction that had set the bits IDLE and SD. Nevertheless the slow down mode keeps enabled and if required has to be terminated by clearing the bit SD in the corresponding interrupt service routine or at any point in the program where the user no longer requires the slow-down mode power saving. – The other possibility of terminating the combined idle and slow down mode is a hardware reset. User’s Manual 8-5 V 0.4, 2002-01 C868 Power Saving Modes 8.5 Software Power Down Mode In the software power down mode, the on-chip oscillator which operates with the XTAL pins and the PLL are all stopped. Therefore, all functions of the microcontroller are stopped and only the contents of the on-chip RAM, XRAM and the SFR’s are maintained. The port pins, which are controlled by their port latches, output the values that are held by their SFR’s. The port pins which serve the alternate output functions show the values they had at the end of the last cycle of the instruction which initiated the power down mode. ALE is held at logic level high unless it is disabled. In the power down mode of operation, VDDC and VDDP can be reduced to minimize power consumption. It must be ensured, however, that VDDC and VDDP is not reduced before the power down mode is invoked, and that VDDC and VDDP is restored to its normal operating level before the power down mode is terminated. However, VDDC cannot be lower than VDDP by more than 1(tbd) volt. The software power down mode can be left either by an active reset signal or by a low signal at one of the wake-up source pins. Using reset to leave power down mode puts the microcontroller with its SFRs into the reset state. Using either the INT0 pin or the RXD pin for power down mode exit starts the on-chip oscillator and the PLL and maintains the state of the SFRs, which have been frozen when power down mode is entered. Leaving power down mode should not be done before VDDC and VDDP is restored to its nominal operating level. The software power down mode is entered by setting bit PDE (PCON.1). Note: Before entering the power down mode, an A/D conversion in progress must be stopped. 8.5.1 Exit from Software Power Down Mode If power down mode is exit via a hardware reset, the microcontroller with its SFRs is put into the hardware reset state and the content of RAM and XRAM are not changed. The reset signal that terminates the power down mode also restarts the on-chip oscillator and the PLL. The reset operation should not be activated before VDDC and VDDP is restored to its normal operating level. Figure 8-1 shows the behaviour when power down mode is left via the INT0 or the RXD wake-up capability. User’s Manual 8-6 V 0.4, 2002-01 C868 Power Saving Modes Power Down Mode INT0 or (1) Latch Phase On-chip Oscillator Start-up Phase (2) (3) min. 1 s typ. 10 ms PLL Locked Phase (4) Execution of interrupt at 007BH (5) RXD Figure 8-1 max. 1 ms RETI Instruction Wake-up from Power Down Mode Procedure When the power down mode wake-up capability has been enabled (bit EWPD in SFR PMCON0 set) prior to entering power down mode and bit WS in SFR PMCON0 is cleared, the power down mode can be exit via INT0 while executing the following procedure : 1. In power down mode pin INT0 must be held at high level. 2. Power down mode is left when INT0 goes low(latch phase). After this delay the onchip oscillator and the PLL are started, the state of pin INT0 is internally latched, and INT0 can be set again to high level if required. 3. The on-chip oscillator takes about, typically, 10 ms to stabilize. 4. The PLL will be locked within 1 ms after the on-chip oscillator clock is detected for stable nominal frequency. Subsequently, the microcontroller starts again with its operation initiating the power down wake-up interrupt. The interrupt address of the first instruction to be executed after wake-up is 007BH. Instruction fetches during the interrupt call are, however, discarded. 5. After the RETI instruction of the power down wake-up interrupt routine has been executed, the instruction which follows the initiating power down mode instruction sequence will be executed. All interrupts of the C868 are disabled from phase 2 until the end of phase 5. Other Interrupts can be first handled after the RETI instruction of the wake-up interrupt routine. The procedure to exit the software power down mode via the RXD pin is identical to the above procedure except that in this case pin RXD replaces pin INT0, and bit WS in SFR PCON1 should be set prior to entering software power down mode. User’s Manual 8-7 V 0.4, 2002-01 C868 Power Saving Modes User’s Manual 8-8 V 0.4, 2002-01 C868 A A/D converter 4-114–?? Calibration mechanisms 4-121 System clock relationship 4-120 AC 3-17 ACC 2-3, 3-10, 3-18 ADBS 3-18 ADCDI 3-19 ADCH 3-18 ADCO 3-18 ADCON0 3-11 ADCON1 3-11 ADCS 3-20 ADCT 3-18 ADDA 3-18 ADDATH 3-11 ADM0 3-18 ADM1 3-18 ADST 3-18 Auto-Reload Mode 4-25 B B 2-5, 3-10, 3-19 Basic CPU timing 2-6 Baudrate Generator Mode 4-29 Block diagram 2-2 BO 3-14 BSLE 3-15 C C 3-14, 3-17 CAL 3-18 Capture Mode 4-28 CC60 3-15, 3-16, 3-20 CC60P 3-19 CC60RH 3-12 CC60RL 3-12 CC60S 3-19 CC60SRH 3-13 CC60SRL 3-13 CC61 3-15, 3-16, 3-20 CC61P 3-19 User’s Manual -1 V 0.4, 2002-01 C868 CC61RH 3-12 CC61RL 3-12 CC61S 3-19 CC61SRH 3-13 CC61SRL 3-13 CC62 3-15, 3-17, 3-20 CC62P 3-19 CC62RH 3-12 CC62RL 3-12 CC62S 3-19 CC62SRH 3-13 CC62SRL 3-13 CC63 3-15, 3-16, 3-17 CC63RH 3-12 CC63RL 3-12 CC63S 3-19 CC63SRH 3-13 CC63SRL 3-13 CCUDI 3-19 CCUS 3-20 CDIR 3-18 CHE 3-18 Clock generation unit Setup of system clock frequency 5-6 CMCO 3-14 CMCON 3-10 CMPM 3-19 CMPMODIFH 3-12 CMPMODIFL 3-12 CMPS 3-19 CMPSTATH 3-12 CMPSTATL 3-12 COCAH1 3-18 COCAH2 3-18 COCAL1 3-18 Count Clock 4-30 COUT 3-15, 3-19 CP 3-17 CPU Accumulator 2-3 B register 2-5 Basic timing 2-6 Fetch/execute diagram 2-7 User’s Manual -2 V 0.4, 2002-01 C868 Functionality 2-3 Program status word 2-3 Stack pointer 2-5 CPU timing 2-7 CTM 3-18 CTRA 3-15 CURH 3-18 CY 3-17 D D0 3-14 D1 3-14 D2 3-14 DCEN 3-17 DPH 3-10, 3-14 DPL 3-10, 3-14 DPSE 3-14 DPSEL 3-10 DTE0 3-19 DTE1 3-19 DTE2 3-19 DTM0 3-19 DTM1 3-19 DTM2 3-19 DTM3 3-19 DTM4 3-19 DTM5 3-19 DTR0 3-19 DTR1 3-19 DTR2 3-19 DTRE 3-19 E EA 3-15 EADC 3-15 EALE 3-15 EBO 3-14 EINP0 3-15 EINP1 3-15 EINP2 3-15 EINP3 3-15 EN 3-16 ENCC 3-16 User’s Manual -3 V 0.4, 2002-01 C868 ENIDL 3-16 ENT12 3-16 ENT13 3-16 ENTR 3-16 ENWH 3-16 EPWD 3-14 ES 3-15 ESEL2 3-14 ESEL3 3-14 ESWC 3-15 ET0 3-15, 4-14 ET1 3-15, 4-14 ET2 3-15, 7-8 EX0 3-15 EX1 3-15 EX2 3-15 EX3 3-15, 7-9 Execution of instructions 2-7 EXEN 3-17 EXF2 3-15, 3-17 EXICO 3-14 EXICON 3-10 EXINT 3-14 EXPH 3-18 F F0 3-17 F1 3-17 Fail save mechanisms 6-1–?? Fast power-on reset 5-2 Features 1-2 Fundamental structure 2-1 G GATE 3-14 GF0 3-14 GF1 3-14 H Hardware reset 5-1 I I/O ports 4-1–?? User’s Manual -4 V 0.4, 2002-01 C868 IADC 3-14 ICC60 3-18 ICC61 3-18 ICC62 3-18 IDLE 3-14, 3-18 Idle mode 8-4 IE0 3-14 IE1 3-14 IEN0 3-10, 3-15 IEN1 3-10, 3-15 IEN2 3-10, 3-15 IENH 3-16 IENH4 3-13 IENL 3-16 IENL4 3-13 INPCC 3-16 INPCH 3-16 INPER 3-16 INPH 3-16 INPH3 3-13 INPL 3-16 INPL3 3-13 INPT1 3-16 INT3 3-15 Interrupt 7-16 Interrupt system 7-1–?? Interrupts Block diagram 7-2–7-7 Enable registers 7-8–?? External interrupts 7-35 Handling procedure 7-33 Priority registers 7-30 Priority within level structure 7-31 Request flags 7-11–?? Response time 7-36 Sources and vector addresses 7-34 Introduction 1-1 IP0 3-10, 3-16 IP1 3-10, 3-15 IRCO 3-14 IRCON0 3-10 IRCON1 3-10 ISH 3-12, 3-18 User’s Manual -5 V 0.4, 2002-01 C868 ISL 3-12, 3-18 ISRH 3-16 ISRH3 3-12 ISRL 3-16 ISRL3 3-12 ISSH 3-16 ISSH4 3-12 ISSL 3-16 ISSL4 3-12 IT0 3-14 IT1 3-14 K KDIV0 3-14 KDIV1 3-14 KDIV2 3-14 M M0 3-14 M1 3-14 MCC6 3-19 MCMC 3-17 MCMCTRL4 3-13 MCME 3-17 MCMO 3-18 MCMOUTH4 3-13 MCMOUTL4 3-13 MCMOUTSH3 3-13 MCMOUTSL3 3-13 MCMP 3-18 MODC 3-17, 3-18 MODCTRH3 3-13 MODCTRL3 3-13 MSEL 3-19 O Operating Mode Selection 4-25 Oscillator operation 5-5–5-11 External clock source 5-11 On-chip oscillator circuitry 5-11 Recommended oscillator circuit 5-10 OV 3-17 User’s Manual -6 V 0.4, 2002-01 C868 P P 3-17 P_STOP1 4-5 P1 3-11, 3-14 P1ALT 3-11, 3-15 P1DIR 3-11, 3-14 P3 3-11, 3-15 P3ALT 3-11, 3-15 P3DIR 3-11, 3-15 Parallel I/O 4-1–?? PCON 3-10, 3-14 PDE 3-14 PLLR 3-16 PMCO 3-14, 3-19, 3-20 PMCON0 3-10 PMCON1 3-10 PMCON2 3-10 Ports 4-1–?? Types and structures Port 1/3/4 circuitry 4-7 Standard I/O port circuitry ??–4-7 Power down mode by software 8-6–8-7 Power saving modes 8-1–8-7 Control registers 8-1–?? Idle mode 8-4 Slow down mode 8-5 Software power down mode 8-6–8-7 Exit (wake-up) procedure 8-6 PROT 3-20 PSL0 3-15 PSL1 3-15 PSL2 3-15 PSL3 3-15 PSL4 3-15 PSL5 3-15 PSL63 3-15 PSLRL 3-13, 3-15 PSW 2-3, 3-10, 3-17 R R 3-18 User’s Manual -7 V 0.4, 2002-01 C868 RB8 3-15, 4-101 RC2H 3-11, 3-17 RC2L 3-11, 3-17 RCC6 3-16 RCHE 3-16 RCLK 3-17 REL0 3-14 REL1 3-14 REL2 3-14 REL3 3-14 REL4 3-14 REN 3-15 Reset 5-1 Fast power-on reset 5-2 Reset circuitries 5-2 RI 3-15, 4-101 RIDLE 3-16 RMAP 3-15 RS0 3-17 RS1 3-17 RT12O 3-16 RT12P 3-16 RT13C 3-16 RT13P 3-16 RTRP 3-16 RWHE 3-16 RxD 3-15 S SBUF 3-10, 3-15, 4-101 SCC62 3-16 SCHE 3-16 SCON 3-10, 3-15, 4-101 SCUW 3-16 SCUWDT 3-10 SD 3-14 SDST 3-14 Serial interface (USART) 4-100–4-113 Baudrate generation 4-103 with internal baud rate generator 4-104 with timer 1 4-105 Multiprocessor communication 4-101 Operating mode 1 4-106–4-109 User’s Manual -8 V 0.4, 2002-01 C868 Operating mode 2 and 3 4-110–4-113 Registers 4-101 SIDLE 3-16 Slow Down Mode 5-8 SM0 3-15 SM1 3-15 SM2 3-15 SMOD 3-14 Software Unlock Sequence 3-8 SP 2-5, 3-10, 3-14 Special Function Registers Table - address ordered 3-14–?? Table - functional order 3-10–?? SSCCON 4-25 ST12O 3-16 ST12P 3-16 ST13C 3-16 ST13P 3-16 STE12 3-18 STRH 3-18 STRM 3-18 STRP 3-16 Summary of Basic Features 1-2 SWAP 3-15 SWAP Mode 3-6 SWC 3-15 SWHE 3-16 SWSE 3-17 SWSY 3-17 SYSC 3-15 SYSCON0 3-10 SYSCON1 3-10 T T12CL 3-18 T12DT 3-19 T12DTCH 3-12 T12DTCL 3-12 T12H 3-12, 3-19 T12L 3-12, 3-19 T12M 3-17, 3-19 T12MSELH 3-13 T12MSELL 3-13 User’s Manual -9 V 0.4, 2002-01 C868 T12O 3-18 T12PM 3-18 T12PR 3-18 T12PRH 3-12 T12PRL 3-12 T12R 3-18 T12RE 3-19 T12RR 3-19 T12RS 3-19 T12SS 3-19 T12ST 3-19 T13C 3-18 T13CL 3-18 T13H 3-12, 3-19 T13IM 3-19 T13L 3-12, 3-19 T13M 3-18 T13PM 3-18 T13PR 3-17 T13PRH 3-12 T13PRL 3-12 T13R 3-18 T13RE 3-19 T13RR 3-19 T13RS 3-19 T13SS 3-19 T13ST 3-19 T13TE 3-19 T2CO 3-17 T2CON 3-11 T2DIS 3-19 T2H 3-11 T2L 3-11 T2MO 3-17 T2MOD 3-11 T2ST 3-20 TB8 3-15, 4-101 TCLK 3-17 TCON 3-10, 3-14 TCTR 3-18, 3-19 TCTR0H 3-12 TCTR0L 3-12 TCTR2L3 3-12 User’s Manual -10 V 0.4, 2002-01 C868 TCTR4H4 3-12 TCTR4L4 3-12 TF0 3-14, 7-12 TF1 3-14, 7-12 TF2 3-17 TH0 3-10, 3-14 TH1 3-10, 3-14 TH2 3-17 TI 3-15, 4-101 Timer/counter 4-9 Timer/counter 0 and 1 4-9–?? Mode 0, 13-bit timer/counter 4-15 Mode 1, 16-bit timer/counter 4-16 Mode 2, 8-bit rel. timer/counter 4-17 Mode 3, two 8-bit timer/counter 4-18 Registers 4-10–4-15 TL0 3-10, 3-14 TL1 3-10, 3-14 TL2 3-17 TMOD 3-10, 3-14 TR0 3-14 TR1 3-14 TR2 3-17 TRP0 3-17 TRP1 3-17 TRP2 3-17 TRPC 3-17 TRPCTRH 3-13 TRPCTRL 3-13 TRPE 3-17 TRPF 3-18 TRPS 3-18 TxD 3-15 U Up/Down Count Disabled 4-25, 4-26 V VER0 3-20 VER1 3-20 VER2 3-20 VER3 3-20 VER4 3-20 User’s Manual -11 V 0.4, 2002-01 C868 VER5 3-20 VER6 3-20 VERSI 3-20 VERSION 3-10 W Watchdog timer 6-1–?? Block diagram 6-1 Input clock selection 6-6 Refreshing of the WDT 6-5 WDT 3-15 WDTC 3-15 WDTCON 3-11 WDTD 3-16 WDTE 3-16 WDTH 3-11, 3-15 WDTL 3-11, 3-15 WDTR 3-15, 3-16 WDTREL 3-11 WHE 3-18 WS 3-14 X XMAP 3-15 User’s Manual -12 V 0.4, 2002-01 ((1)) Infineon goes for Business Excellence “Business excellence means intelligent approaches and clearly defined processes, which are both constantly under review and ultimately lead to good operating results. Better operating results and business excellence mean less idleness and wastefulness for all of us, more professional success, more accurate information, a better overview and, thereby, less frustration and more satisfaction.” Dr. Ulrich Schumacher http://www.infineon.com Published by Infineon Technologies AG