The revision list can be viewed directly by clicking the title page. The revision list summarizes the locations of revisions and additions. Details should always be checked by referring to the relevant text. 32 H8S/2215 Group User's Manual: Hardware Renesas 16-Bit Single-Chip Microcomputer H8S Family/H8S/2200 Series H8S/2215 H8S/2215R H8S/2215T H8S/2215C HD64F2215 HD64F2215U HD6432215B HD6432215C HD64F2215R HD64F2215RU HD64F2215T HD64F2215TU HD64F2215CU Rev.9.00 Sep 2010 Notice 1. All information included in this document is current as of the date this document is issued. Such information, however, is subject to change without any prior notice. Before purchasing or using any Renesas Electronics products listed herein, please confirm the latest product information with a Renesas Electronics sales office. Also, please pay regular and careful attention to additional and different information to be disclosed by Renesas Electronics such as that disclosed through our website. 2. Renesas Electronics does not assume any liability for infringement of patents, copyrights, or other intellectual property rights of third parties by or arising from the use of Renesas Electronics products or technical information described in this document. No license, express, implied or otherwise, is granted hereby under any patents, copyrights or other intellectual property rights of Renesas Electronics or others. 3. You should not alter, modify, copy, or otherwise misappropriate any Renesas Electronics product, whether in whole or in part. 4. Descriptions of circuits, software and other related information in this document are provided only to illustrate the operation of semiconductor products and application examples. You are fully responsible for the incorporation of these circuits, software, and information in the design of your equipment. Renesas Electronics assumes no responsibility for any losses incurred by you or third parties arising from the use of these circuits, software, or information. 5. When exporting the products or technology described in this document, you should comply with the applicable export control laws and regulations and follow the procedures required by such laws and regulations. You should not use Renesas Electronics products or the technology described in this document for any purpose relating to military applications or use by the military, including but not limited to the development of weapons of mass destruction. Renesas Electronics products and technology may not be used for or incorporated into any products or systems whose manufacture, use, or sale is prohibited under any applicable domestic or foreign laws or regulations. 6. Renesas Electronics has used reasonable care in preparing the information included in this document, but Renesas Electronics does not warrant that such information is error free. Renesas Electronics assumes no liability whatsoever for any damages incurred by you resulting from errors in or omissions from the information included herein. 7. Renesas Electronics products are classified according to the following three quality grades: "Standard", "High Quality", and "Specific". The recommended applications for each Renesas Electronics product depends on the product's quality grade, as indicated below. You must check the quality grade of each Renesas Electronics product before using it in a particular application. You may not use any Renesas Electronics product for any application categorized as "Specific" without the prior written consent of Renesas Electronics. Further, you may not use any Renesas Electronics product for any application for which it is not intended without the prior written consent of Renesas Electronics. Renesas Electronics shall not be in any way liable for any damages or losses incurred by you or third parties arising from the use of any Renesas Electronics product for an application categorized as "Specific" or for which the product is not intended where you have failed to obtain the prior written consent of Renesas Electronics. The quality grade of each Renesas Electronics product is "Standard" unless otherwise expressly specified in a Renesas Electronics data sheets or data books, etc. "Standard": Computers; office equipment; communications equipment; test and measurement equipment; audio and visual equipment; home electronic appliances; machine tools; personal electronic equipment; and industrial robots. "High Quality": Transportation equipment (automobiles, trains, ships, etc.); traffic control systems; anti-disaster systems; anticrime systems; safety equipment; and medical equipment not specifically designed for life support. "Specific": Aircraft; aerospace equipment; submersible repeaters; nuclear reactor control systems; medical equipment or systems for life support (e.g. artificial life support devices or systems), surgical implantations, or healthcare intervention (e.g. excision, etc.), and any other applications or purposes that pose a direct threat to human life. 8. You should use the Renesas Electronics products described in this document within the range specified by Renesas Electronics, especially with respect to the maximum rating, operating supply voltage range, movement power voltage range, heat radiation characteristics, installation and other product characteristics. Renesas Electronics shall have no liability for malfunctions or damages arising out of the use of Renesas Electronics products beyond such specified ranges. 9. Although Renesas Electronics endeavors to improve the quality and reliability of its products, semiconductor products have specific characteristics such as the occurrence of failure at a certain rate and malfunctions under certain use conditions. Further, Renesas Electronics products are not subject to radiation resistance design. Please be sure to implement safety measures to guard them against the possibility of physical injury, and injury or damage caused by fire in the event of the failure of a Renesas Electronics product, such as safety design for hardware and software including but not limited to redundancy, fire control and malfunction prevention, appropriate treatment for aging degradation or any other appropriate measures. Because the evaluation of microcomputer software alone is very difficult, please evaluate the safety of the final products or system manufactured by you. 10. Please contact a Renesas Electronics sales office for details as to environmental matters such as the environmental compatibility of each Renesas Electronics product. Please use Renesas Electronics products in compliance with all applicable laws and regulations that regulate the inclusion or use of controlled substances, including without limitation, the EU RoHS Directive. Renesas Electronics assumes no liability for damages or losses occurring as a result of your noncompliance with applicable laws and regulations. 11. This document may not be reproduced or duplicated, in any form, in whole or in part, without prior written consent of Renesas Electronics. 12. Please contact a Renesas Electronics sales office if you have any questions regarding the information contained in this document or Renesas Electronics products, or if you have any other inquiries. (Note 1) "Renesas Electronics" as used in this document means Renesas Electronics Corporation and also includes its majorityowned subsidiaries. (Note 2) "Renesas Electronics product(s)" means any product developed or manufactured by or for Renesas Electronics. Page ii of liv REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 General Precautions in the Handling of MPU/MCU Products The following usage notes are applicable to all MPU/MCU products from Renesas. For detailed usage notes on the products covered by this manual, refer to the relevant sections of the manual. If the descriptions under General Precautions in the Handling of MPU/MCU Products and in the body of the manual differ from each other, the description in the body of the manual takes precedence. 1. Handling of Unused Pins Handle unused pins in accord with the directions given under Handling of Unused Pins in the manual. ⎯ The input pins of CMOS products are generally in the high-impedance state. In operation with an unused pin in the open-circuit state, extra electromagnetic noise is induced in the vicinity of LSI, an associated shoot-through current flows internally, and malfunctions may occur due to the false recognition of the pin state as an input signal. Unused pins should be handled as described under Handling of Unused Pins in the manual. 2. Processing at Power-on The state of the product is undefined at the moment when power is supplied. ⎯ The states of internal circuits in the LSI are indeterminate and the states of register settings and pins are undefined at the moment when power is supplied. In a finished product where the reset signal is applied to the external reset pin, the states of pins are not guaranteed from the moment when power is supplied until the reset process is completed. In a similar way, the states of pins in a product that is reset by an on-chip power-on reset function are not guaranteed from the moment when power is supplied until the power reaches the level at which resetting has been specified. 3. Prohibition of Access to Reserved Addresses Access to reserved addresses is prohibited. ⎯ The reserved addresses are provided for the possible future expansion of functions. Do not access these addresses; the correct operation of LSI is not guaranteed if they are accessed. 4. Clock Signals After applying a reset, only release the reset line after the operating clock signal has become stable. When switching the clock signal during program execution, wait until the target clock signal has stabilized. ⎯ When the clock signal is generated with an external resonator (or from an external oscillator) during a reset, ensure that the reset line is only released after full stabilization of the clock signal. Moreover, when switching to a clock signal produced with an external resonator (or by an external oscillator) while program execution is in progress, wait until the target clock signal is stable. 5. Differences between Products Before changing from one product to another, i.e. to one with a different type number, confirm that the change will not lead to problems. ⎯ The characteristics of MPU/MCU in the same group but having different type numbers may differ because of the differences in internal memory capacity and layout pattern. When changing to products of different type numbers, implement a system-evaluation test for each of the products. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page iii of liv Configuration of This Manual This manual comprises the following items: 1. General Precautions in the Handling of MPU/MCU Products 2. Configuration of This Manual 3. Preface 4. Main Revisions for This Edition The history of revisions is a summary of sections that have been revised and sections that have been added to earlier versions. This does not include all of the revised contents. For details, confirm by referring to the main description of this manual. 5. Contents 6. Overview 7. Table of Contents 8. Summary 9. Description of Functional Modules • CPU and System-Control Modules • On-Chip Peripheral Modules The configuration of the functional description of each module differs according to the module. However, the generic style includes the following items: i) Features ii) I/O pins iii) Description of Registers iv) Description of Operation v) Usage: Points for Caution When designing an application system that includes this LSI, take the points for caution into account. Each section includes points for caution in relation to the descriptions given, and points for caution in usage are given, as required, as the final part of each section. 10. List of Registers 11. Electrical Characteristics 12. Appendix • Product-type codes and external dimensions Page iv of liv REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Preface This LSI is a high-performance microcomputer (MCU) made up of the H8S/2000 CPU with Renesas’ original architecture as its core, and the peripheral functions required to configure a system. The H8S/2000 CPU has an internal 32-bit configuration, sixteen 16-bit general registers, and a simple and optimized instruction set for high-speed operation. The H8S/2000 CPU can handle a 16-Mbyte linear address space. The instruction set of the H8S/2000 CPU maintains upward compatibility at the object level with the H8/300 and H8/300H CPUs. This allows the H8/300, H8/300L, or H8/300H user to easily utilize the H8S/2000 CPU. This LSI is equipped with ROM, RAM, a direct memory access controller (DMAC), a bus master for a data transfer controller (DTC), a 16-bit timer pulse unit (TPU), an 8-bit timer (TMR), a watchdog timer (WDT), a universal serial bus (USB), two types of serial communication interfaces (SCIs), an A/D converter, a D/A converter, and I/O ports as on-chip peripheral modules for system configuration. A single-power flash memory (F-ZTAT™*) version and masked ROM version are available for this LSI’s ROM. The F-ZTAT version provides flexibility as it can be reprogrammed in no time to cope with all situations from the early stages of mass production to full-scale mass production. This is particularly applicable to application devices with specifications that will most probably change. This manual describes this LSI’s hardware. Note: * F-ZTAT is a trademark of Renesas Electronics Corp. Target Users: This manual was written for users who will be using the H8S/2215 Group in the design of application systems. Target users are expected to understand the fundamentals of electrical circuits, logical circuits, and microcomputers. Objective: This manual was written to explain the hardware functions and electrical characteristics of the H8S/2215 Group to the target users. Refer to the H8S/2600 Series, H8S/2000 Series Software Manual, for a detailed description of the instruction set. Notes on reading this manual: REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page v of liv • In order to understand the overall functions of the chip Read the manual according to the contents. This manual can be roughly categorized into parts on the CPU, system control functions, peripheral functions and electrical characteristics. • In order to understand the details of the CPU’s functions Read the H8S/2600 Series, H8S/2000 Series Software Manual. • In order to understand the details of a register when its name is known Read the index that is the final part of the manual to find the page number of the entry on the register. The addresses, bits, and initial values of the registers are summarized in appendix A, I/O Port States in Each Processing State. Examples: Related Manuals: Register name: The following notation is used for cases when the same or a similar function, e.g. 16-bit timer pulse unit or serial communication, is implemented on more than one channel: XXX_N (XXX is the register name and N is the channel number) Bit order: The MSB is on the left and the LSB is on the right. The latest versions of all related manuals are available from our web site. Please ensure you have the latest versions of all documents you require. http://www.renesas.com/eng/ H8S/2215 Group Manuals: Document Title Document No. H8S/2215 Group Hardware Manual This manual H8S/2600 Series, H8S/2000 Series Software Manual REJ09B0139 User’s Manuals for Development Tools: Document Title Document No. H8S, H8/300 Series C/C++ Compiler, Assembler, Optimizing Linkage Editor User’s Manual REJ10J2039 H8S, H8/300 Series Simulator/Debugger User’s Manual REJ10B0211 High-performance Embedded Workshop User’s Manual REJ10J2169 Page vi of liv REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Main Revisions for This Edition Item Page Revision (See Manual for Details) 1.5 Pin Functions 17 Table amended Pin No. 2.6.1 Table of 45 Instructions Classified by Function Type Symbol TFP-120, BP-112, TFP-120V BP-112V I/O Boundary scan TRST 109 B5 Function Input Reset pin for the TAP controller Perform pin processing even when the boundary scan function is not used. For details, see 14.5, Usage Notes. Table amended Instruction Size* Function BAND B C ∧ (<bit-No.> of <EAd>) → C ANDs the carry flag with a specified bit in a general register or memory operand and stores the result in the carry flag. Table 2.7 Bit Manipulation Instructions (1) BIAND B C∧ [ (<bit-No.> of <EAd>) ] → C ANDs the carry flag with the inverse of a specified bit in a general register or memory operand and stores the result in the carry flag. The bit number is specified by 3-bit immediate data. BOR B C ∨ (<bit-No.> of <EAd>) → C ORs the carry flag with a specified bit in a general register or memory operand and stores the result in the carry flag. BIOR B C ∨ [ (<bit-No.> of <EAd>) ] → C ORs the carry flag with the inverse of a specified bit in a general register or memory operand and stores the result in the carry flag. The bit number is specified by 3-bit immediate data. 5.7.5 IRQ Interrupt 106 Description added 5.7.6 NMI Interrupts Usage Notes 107 Description added 6.6.4 Wait Control 138 Description amended Pin Wait Insertion: Setting the WAITE bit in BCRL to 1 enables wait insertion by means of the WAIT pin. 8.5 Operation Figure 8.5 Flowchart of DTC Operation 216 Figure amended No Transfer counter = 0 or DISEL = 1 No Yes *2 Clear an active flag Clear DTCER End Interrupt exception handling *1 Note: *1 For details on the processing that takes place, refer to the chapter on the peripheral module in question. *2 When IRQx is the DTC activation source and the IRQ sense control registers (ISCRH and ISCRL) are set to level sensing, the activation source flag is not cleared while IRQx is low level and DTC transfers are performed repeatedly. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page vii of liv Item Page Revision (See Manual for Details) 15.3.2 USB Control Register (UCTLR) 505 Table amended Bit Bit Name Initial Value R/W 1 UIFRST 1 R/W Description USB Interface Software Reset Controls USB module internal reset. When the UIFRST bit is set to 1, the USB internal modules other than UCTLR, UIER3, and the CK48 READY bit of UIFR3 are all reset. At initialization, the UIFRST bit must be cleared to 0 after the USB operating clock stabilization time has passed following USB module stop mode cancellation. 0: Sets the USB internal modules to the operating state (at initialization, this bit must be cleared after the USB operating clock stabilization time has passed). 1: Sets the USB internal modules other than UCTLR, UIER3, and the CK48 READY bit of UIFR3 reset state. If after being cleared to 0 the UIFIRST bit is again set to 1, the UDCRST bit must also be set to 1 at the same time. 16.2 Input/Output Pins 603 Table amended Pin Name Symbol I/O Function Analog input pin 0 AN0* Input Analog input pins Analog input pin 1 AN1* Input Note added Note: 16.5.1 Single Mode 609 Figure 16.3 A/D Conversion Timing (Single-Chip Mode, Channel 1 Selected) AN0 and AN1 can be used only when Vcc = AVcc. ADDRA Read conversion result* A/D conversion result 1 ADDRB Read conversion result* A/D conversion result 2 ADDRC 16.8.3 Range of 616 Analog Power Supply and Other Pin Settings 24.3 DC Characteristics * Figure amended 727 Description amended • Relationship between AVcc, AVss and Vcc, Vss Set AVss = Vss as the relationship between AVcc, AVss and Vcc, Vss. If the A/D converter is not used, the AVcc and AVss pins must not be left open. In addition, AN0 and AN1 can be used only when Vcc = AVcc. Table amended Item Table 24.2 DC Characteristics Input high voltage 729 Symbol Min. Ports 4* and 9 VIH 6 VCC × 0.8 Typ. Max. Unit — AVCC + 0.3* V Test Conditions 6 Note added 5. The FWE pin is effective only in the F-ZTAT version. 6. When VCC < AVCC, the maximum value for P40 and P41 is VCC + 0.3 V. Page viii of liv REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Item Page 24.6 A/D Conversion 749 Characteristics Table 24.9 A/D Conversion Characteristics Revision (See Manual for Details) Conditions added Conditions: VCC = PLLVCC = DrVCC = 2.7 V to 3.6 V*, AVCC = 2.7 V to 3.6 V*, Vref = 2.7 V to AVCC, VSS = PLLVSS = DrVSS = AVSS = 0 V, φ = 13 MHz to 16 MHz, Ta = –20°C to +75°C (regular specifications), Ta = –40°C to +85°C (wide-range specifications) Note added Note: * AN0 and AN1 can be used only when VCC = AVCC. 25.3 DC Characteristics 755 Table amended Item Table 25.2 DC Characteristics Input high voltage 757 Symbol Min. 6 Ports* 4 and 9 VIH VCC × 0.8 Typ. — Test Unit Conditions 6 * AVCC + 0.3 V Max. Note added 3. ICC (max.) = 1.0 (mA) + 0.67 (mA/(MHz x V)) × VCC × f (normal operation, USB halted) ICC (max.) = 1.0 (mA) + 0.85 (mA/(MHz x V)) × VCC × f (normal operation, USB operating, f = 16 MHz : PLL 3 × multiplication) ICC (max.) = 1.0 (mA) + 0.72 (mA/(MHz x V)) × VCC × f (normal operation, USB operating, f = 24 MHz : PLL 2 × multiplication) ICC (max.) = 1.0 (mA) + 0.55 (mA/(MHz x V)) × VCC × f (sleep mode) 5. The FWE pin is effective only in the F-ZTAT version. 6. When VCC < AVCC, the maximum value for P40 and P41 is VCC + 0.3 V. 25.6 A/D Conversion 778 Characteristics Table 25.9 A/D Conversion Characteristics Conditions added Condition A: VCC = PLLVCC = DrVCC = 2.7 V to 3.6 V*, AVCC = 2.7 V to 3.6 V*, Vref = 2.7 V to AVCC, VSS = PLLVSS = DrVSS = AVSS = 0 V, φ = 13 MHz to 16 MHz, Ta = –20°C to +75°C (regular specifications), Ta = –40°C to +85°C (wide-range specifications) Condition B: VCC = PLLVCC = DrVCC = 3.0 V to 3.6 V*, AVCC = 3.0 V to 3.6 V*, Vref = 3.0 V to AVCC, VSS = PLLVSS = DrVSS = AVSS = 0 V, φ = 13 MHz to 24 MHz, Ta = –20°C to +75°C (regular specifications), Ta = –40°C to +85°C (wide-range specifications) Note added Note: * AN0 and AN1 can be used only when VCC = AVCC. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page ix of liv Item Page Revision (See Manual for Details) 26.3 DC Characteristics 784 Table amended Item Table 26.2 DC Characteristics Input high voltage 786 Symbol Min. 6 Ports* 4 and 9 VIH VCC × 0.8 Typ. — Test Unit Conditions 6 * AVCC + 0.3 V Max. Note added 3. ICC (max.) = 1.0 (mA) + 0.67 (mA/(MHz x V)) × VCC × f (normal operation, USB halted) ICC (max.) = 1.0 (mA) + 0.85 (mA/(MHz x V)) × VCC × f (normal operation, USB operating, f = 16 MHz : PLL 3 × multiplication) ICC (max.) = 1.0 (mA) + 0.72 (mA/(MHz x V)) × VCC × f (normal operation, USB operating, f = 24 MHz : PLL 2 × multiplication) ICC (max.) = 1.0 (mA) + 0.55 (mA/(MHz x V)) × VCC × f (sleep mode) 6. When VCC < AVCC, the maximum value for P40 and P41 is VCC + 0.3 V. 26.6 A/D Conversion 804 Characteristics Table 26.9 A/D Conversion Characteristics Conditions added Conditions: VCC = PLLVCC = DrVCC = 3.0 V to 3.6 V*, AVCC = 3.0 V to 3.6 V*, Vref = 3.0 V to AVCC, VSS = PLLVSS = DrVSS = AVSS = 0 V, φ = 16 MHz to, 24 MHz, Ta = –20°C to +75°C (regular specifications), Ta = –40°C to +85°C (wide-range specifications) Note added Note: * AN0 and AN1 can be used only when VCC = AVCC. 27.3 DC Characteristics Table 27.2 DC Characteristics Page x of liv 809 Table amended Item Input high voltage Symbol Min. Ports* 4 and 9 VIH 6 VCC × 0.8 Typ. Max. — AVCC + 0.3* Test Unit Conditions 6 V REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Item Page Revision (See Manual for Details) 27.3 DC Characteristics 811 Note added Table 27.2 DC Characteristics 3. ICC (max.) = 1.0 (mA) + 0.67 (mA/(MHz x V)) × VCC × f (normal operation, USB halted) ICC (max.) = 1.0 (mA) + 0.85 (mA/(MHz x V)) × VCC × f (normal operation, USB operating, f = 16 MHz : PLL 3 × multiplication) ICC (max.) = 1.0 (mA) + 0.72 (mA/(MHz x V)) × VCC × f (normal operation, USB operating, f = 24 MHz : PLL 2 × multiplication) ICC (max.) = 1.0 (mA) + 0.55 (mA/(MHz x V)) × VCC × f (sleep mode) 5. The FWE pin is supported on the F-ZTAT version only. 6. When VCC < AVCC, the maximum value for P40 and P41 is VCC + 0.3 V. 27.6 A/D Conversion 831 Characteristics Table 27.9 A/D Conversion Characteristics Conditions added Conditions: VCC = PLLVCC = DrVCC = 3.0 V to 3.6 V*, AVCC = 3.0 V to 3.6 V*, Vref = 3.0 V to AVCC, VSS = PLLVSS = DrVSS = AVSS = 0 V, φ = 16 MHz to 24 MHz, Ta = –20°C to +75°C (regular specifications), Ta = –40°C to +85°C (wide-range specifications) Note added Note: * AN0 and AN1 can be used only when VCC = AVCC. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page xi of liv All trademarks and registered trademarks are the property of their respective owners. Page xii of liv REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Contents Section 1 Overview .................................................................................................................. 1 1.1 1.2 1.3 1.4 1.5 Overview............................................................................................................................... 1 Internal Block Diagram......................................................................................................... 3 Pin Arrangement ................................................................................................................... 4 Pin Functions in Each Operating Mode ................................................................................ 6 Pin Functions ...................................................................................................................... 11 Section 2 CPU ......................................................................................................................... 23 2.1 2.2 2.3 2.4 2.5 2.6 2.7 Features............................................................................................................................... 23 2.1.1 Differences between H8S/2600 CPU and H8S/2000 CPU ................................. 24 2.1.2 Differences from H8/300 CPU ........................................................................... 25 2.1.3 Differences from H8/300H CPU......................................................................... 25 CPU Operating Modes........................................................................................................ 26 2.2.1 Normal Mode...................................................................................................... 26 2.2.2 Advanced Mode.................................................................................................. 28 Address Space..................................................................................................................... 30 Register Configuration........................................................................................................ 31 2.4.1 General Registers ................................................................................................ 32 2.4.2 Program Counter (PC) ........................................................................................ 33 2.4.3 Extended Control Register (EXR) ...................................................................... 33 2.4.4 Condition-Code Register (CCR) ......................................................................... 34 2.4.5 Initial Register Values......................................................................................... 35 Data Formats....................................................................................................................... 36 2.5.1 General Register Data Formats ........................................................................... 36 2.5.2 Memory Data Formats ........................................................................................ 38 Instruction Set ..................................................................................................................... 39 2.6.1 Table of Instructions Classified by Function ...................................................... 40 2.6.2 Basic Instruction Formats ................................................................................... 49 Addressing Modes and Effective Address Calculation....................................................... 50 2.7.1 Register Direct—Rn............................................................................................ 51 2.7.2 Register Indirect—@ERn ................................................................................... 51 2.7.3 Register Indirect with Displacement—@(d:16, ERn) or @(d:32, ERn)............. 51 2.7.4 Register Indirect with Post-Increment or Pre-Decrement—@ERn+ or @-ERn.... 51 2.7.5 Absolute Address—@aa:8, @aa:16, @aa:24, or @aa:32................................... 51 2.7.6 Immediate—#xx:8, #xx:16, or #xx:32 ................................................................ 52 2.7.7 Program-Counter Relative—@(d:8, PC) or @(d:16, PC)................................... 52 2.7.8 Memory Indirect—@@aa:8 ............................................................................... 53 2.7.9 Effective Address Calculation ............................................................................ 54 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page xiii of liv 2.8 2.9 Processing States ................................................................................................................ 56 Usage Notes ........................................................................................................................ 58 2.9.1 Note on TAS Instruction Usage .......................................................................... 58 2.9.2 STM/LTM Instruction Usage ............................................................................. 58 2.9.3 Note on Bit Manipulation Instructions................................................................ 58 2.9.4 Accessing Registers Containing Write-Only Bits............................................... 60 Section 3 MCU Operating Modes ..................................................................................... 63 3.1 3.2 3.3 3.4 Operating Mode Selection .................................................................................................. 63 Register Descriptions.......................................................................................................... 64 3.2.1 Mode Control Register (MDCR) ........................................................................ 64 3.2.2 System Control Register (SYSCR) ..................................................................... 64 Operating Mode Descriptions ............................................................................................. 66 3.3.1 Mode 4 ................................................................................................................ 66 3.3.2 Mode 5 ................................................................................................................ 66 3.3.3 Mode 6 ................................................................................................................ 67 3.3.4 Mode 7 ................................................................................................................ 67 3.3.5 Pin Functions ...................................................................................................... 68 Memory Map in Each Operating Mode .............................................................................. 69 Section 4 Exception Handling ............................................................................................ 73 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 Exception Handling Types and Priority.............................................................................. 73 Exception Sources and Exception Vector Table................................................................. 73 Reset ................................................................................................................................... 75 4.3.1 Reset Types......................................................................................................... 75 4.3.2 Reset Exception Handling................................................................................... 76 4.3.3 Interrupts after Reset........................................................................................... 78 4.3.4 State of On-Chip Peripheral Modules after Reset Release ................................. 78 Traces.................................................................................................................................. 79 Interrupts............................................................................................................................. 79 Trap Instruction .................................................................................................................. 80 Stack Status after Exception Handling................................................................................ 81 Notes on Use of the Stack................................................................................................... 82 Section 5 Interrupt Controller ............................................................................................. 83 5.1 5.2 5.3 Features............................................................................................................................... 83 Input/Output Pins................................................................................................................ 85 Register Descriptions.......................................................................................................... 86 5.3.1 Interrupt Priority Registers A to G, I to K, M (IPRA to IPRG, IPRI to IPRK, IPRM) ............................................................... 87 Page xiv of liv REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 5.4 5.5 5.6 5.7 5.3.2 IRQ Enable Register (IER) ................................................................................. 88 5.3.3 IRQ Sense Control Registers H and L (ISCRH, ISCRL).................................... 89 5.3.4 IRQ Status Register (ISR)................................................................................... 91 Interrupt Sources................................................................................................................. 92 5.4.1 External Interrupts .............................................................................................. 92 5.4.2 Internal Interrupts................................................................................................ 93 Interrupt Exception Handling Vector Table........................................................................ 93 Interrupt Control Modes and Interrupt Operation ............................................................... 96 5.6.1 Interrupt Control Mode 0 .................................................................................... 96 5.6.2 Interrupt Control Mode 2 .................................................................................... 98 5.6.3 Interrupt Exception Handling Sequence ........................................................... 100 5.6.4 Interrupt Response Times ................................................................................. 101 5.6.5 DTC Activation by Interrupt............................................................................. 102 Usage Notes ...................................................................................................................... 105 5.7.1 Contention between Interrupt Generation and Disabling.................................. 105 5.7.2 Instructions that Disable Interrupts ................................................................... 106 5.7.3 Times when Interrupts Are Disabled ................................................................ 106 5.7.4 Interrupts during Execution of EEPMOV Instruction....................................... 106 5.7.5 IRQ Interrupt..................................................................................................... 106 5.7.6 NMI Interrupts Usage Notes ............................................................................. 107 Section 6 Bus Controller .................................................................................................... 109 6.1 6.2 6.3 6.4 6.5 Features............................................................................................................................. 109 Input/Output Pins.............................................................................................................. 111 Register Descriptions ........................................................................................................ 111 6.3.1 Bus Width Control Register (ABWCR)............................................................ 112 6.3.2 Access State Control Register (ASTCR) .......................................................... 113 6.3.3 Wait Control Registers H and L (WCRH, WCRL)........................................... 114 6.3.4 Bus Control Register H (BCRH) ...................................................................... 118 6.3.5 Bus Control Register L (BCRL) ....................................................................... 119 6.3.6 Pin Function Control Register (PFCR) ............................................................. 120 Bus Control ....................................................................................................................... 121 6.4.1 Area Divisions .................................................................................................. 121 6.4.2 Bus Specifications............................................................................................. 122 6.4.3 Bus Interface for Each Area.............................................................................. 123 6.4.4 Chip Select Signals ........................................................................................... 124 Basic Timing..................................................................................................................... 124 6.5.1 On-Chip Memory (ROM, RAM) Access Timing ............................................. 125 6.5.2 On-Chip Peripheral Module Access Timing..................................................... 126 6.5.3 External Address Space Access Timing ........................................................... 127 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page xv of liv 6.6 6.7 6.8 6.9 6.10 6.11 Basic Bus Interface ........................................................................................................... 127 6.6.1 Data Size and Data Alignment.......................................................................... 127 6.6.2 Valid Strobes .................................................................................................... 128 6.6.3 Basic Timing..................................................................................................... 129 6.6.4 Wait Control ..................................................................................................... 138 urst ROM Interface ........................................................................................................... 139 6.7.1 Basic Timing..................................................................................................... 140 6.7.2 Wait Control ..................................................................................................... 141 Idle Cycle.......................................................................................................................... 142 Bus Release....................................................................................................................... 145 6.9.1 Notes on Bus Release ....................................................................................... 146 Bus Arbitration ................................................................................................................. 147 6.10.1 Operation .......................................................................................................... 147 6.10.2 Bus Transfer Timing......................................................................................... 147 6.10.3 External Bus Release Usage Note..................................................................... 148 Resets and the Bus Controller........................................................................................... 148 Section 7 DMA Controller (DMAC) .............................................................................. 149 7.1 7.2 7.3 7.4 Features............................................................................................................................. 149 Register Configuration...................................................................................................... 151 Register Descriptions........................................................................................................ 153 7.3.1 Memory Address Registers (MAR) .................................................................. 153 7.3.2 I/O Address Register (IOAR) ........................................................................... 153 7.3.3 Execute Transfer Count Register (ETCR) ........................................................ 154 7.3.4 DMA Control Register (DMACR) ................................................................... 155 7.3.5 DMA Band Control Register (DMABCR) ....................................................... 162 7.3.6 DMA Write Enable Register (DMAWER) ....................................................... 170 Operation .......................................................................................................................... 172 7.4.1 Transfer Modes................................................................................................. 172 7.4.2 Sequential Mode ............................................................................................... 173 7.4.3 Idle Mode.......................................................................................................... 176 7.4.4 Repeat Mode..................................................................................................... 178 7.4.5 Normal Mode.................................................................................................... 181 7.4.6 Block Transfer Mode ........................................................................................ 184 7.4.7 DMAC Activation Sources ............................................................................... 189 7.4.8 Basic DMAC Bus Cycles.................................................................................. 191 7.4.9 DMAC Bus Cycles (Dual Address Mode)........................................................ 192 7.4.10 DMAC Multi-Channel Operation ..................................................................... 197 7.4.11 Relation between the DMAC, External Bus Requests, and the DTC ............... 198 7.4.12 NMI Interrupts and DMAC .............................................................................. 198 Page xvi of liv REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 7.5 7.6 7.4.13 Forced Termination of DMAC Operation......................................................... 199 7.4.14 Clearing Full Address Mode ............................................................................. 200 Interrupts........................................................................................................................... 201 Usage Notes ...................................................................................................................... 202 7.6.1 DMAC Register Access during Operation........................................................ 202 7.6.2 Module Stop...................................................................................................... 203 7.6.3 Medium-Speed Mode........................................................................................ 203 7.6.4 Activation Source Acceptance .......................................................................... 204 7.6.5 Internal Interrupt after End of Transfer............................................................. 204 7.6.6 Channel Re-Setting ........................................................................................... 204 Section 8 Data Transfer Controller (DTC).................................................................... 205 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 Features............................................................................................................................. 205 Register Descriptions ........................................................................................................ 207 8.2.1 DTC Mode Register A (MRA) ......................................................................... 208 8.2.2 DTC Mode Register B (MRB).......................................................................... 209 8.2.3 DTC Source Address Register (SAR)............................................................... 209 8.2.4 DTC Destination Address Register (DAR)....................................................... 209 8.2.5 DTC Transfer Count Register A (CRA) ........................................................... 210 8.2.6 DTC Transfer Count Register B (CRB)............................................................ 210 8.2.7 DTC Enable Registers (DTCERA to DTCERF)............................................... 210 8.2.8 DTC Vector Register (DTVECR)..................................................................... 211 Activation Sources............................................................................................................ 212 Location of Register Information and DTC Vector Table ................................................ 213 Operation .......................................................................................................................... 216 8.5.1 Normal Mode.................................................................................................... 218 8.5.2 Repeat Mode ..................................................................................................... 219 8.5.3 Block Transfer Mode ........................................................................................ 220 8.5.4 Chain Transfer .................................................................................................. 221 8.5.5 Interrupts........................................................................................................... 222 8.5.6 Operation Timing.............................................................................................. 222 8.5.7 Number of DTC Execution States .................................................................... 223 Procedures for Using DTC................................................................................................ 225 8.6.1 Activation by Interrupt...................................................................................... 225 8.6.2 Activation by Software ..................................................................................... 225 Examples of Use of the DTC ............................................................................................ 226 8.7.1 Normal Mode.................................................................................................... 226 8.7.2 Software Activation .......................................................................................... 226 Usage Notes ...................................................................................................................... 227 8.8.1 Module Stop...................................................................................................... 227 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page xvii of liv 8.8.2 8.8.3 8.8.4 On-Chip RAM .................................................................................................. 227 DTCE Bit Setting.............................................................................................. 227 DMAC Transfer End Interrupt.......................................................................... 227 Section 9 I/O Ports ............................................................................................................... 229 9.1 9.2 9.3 9.4 9.5 9.6 9.7 Port 1................................................................................................................................. 233 9.1.1 Port 1 Data Direction Register (P1DDR).......................................................... 233 9.1.2 Port 1 Data Register (P1DR)............................................................................. 234 9.1.3 Port 1 Register (PORT1)................................................................................... 234 9.1.4 Pin Functions .................................................................................................... 235 Port 3................................................................................................................................. 238 9.2.1 Port 3 Data Direction Register (P3DDR).......................................................... 238 9.2.2 Port 3 Data Register (P3DR)............................................................................. 239 9.2.3 Port 3 Register (PORT3)................................................................................... 239 9.2.4 Port 3 Open-Drain Control Register (P3ODR) ................................................. 240 9.2.5 Pin Functions .................................................................................................... 240 Port 4................................................................................................................................. 243 9.3.1 Port 4 Register (PORT4)................................................................................... 243 9.3.2 Pin Function...................................................................................................... 243 Port 7................................................................................................................................. 244 9.4.1 Port 7 Data Direction Register (P7DDR).......................................................... 244 9.4.2 Port 7 Data Register (P7DR)............................................................................. 245 9.4.3 Port 7 Register (PORT7)................................................................................... 245 9.4.4 Pin Functions .................................................................................................... 246 Port 9................................................................................................................................. 247 9.5.1 Port 9 Register (PORT9)................................................................................... 247 9.5.2 Pin Function...................................................................................................... 247 Port A................................................................................................................................ 248 9.6.1 Port A Data Direction Register (PADDR) ........................................................ 248 9.6.2 Port A Data Register (PADR)........................................................................... 249 9.6.3 Port A Register (PORTA) ................................................................................. 249 9.6.4 Port A MOS Pull-Up Control Register (PAPCR) ............................................. 250 9.6.5 Port A Open Drain Control Register (PAODR)................................................ 250 9.6.6 Pin Functions .................................................................................................... 251 9.6.7 Port A Input Pull-Up MOS Function ................................................................ 253 Port B................................................................................................................................ 253 9.7.1 Port B Data Direction Register (PBDDR) ........................................................ 254 9.7.2 Port B Data Register (PBDR) ........................................................................... 254 9.7.3 Port B Register (PORTB) ................................................................................. 255 9.7.4 Port B MOS Pull-Up Control Register (PBPCR) ............................................. 255 Page xviii of liv REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 9.8 9.9 9.10 9.11 9.12 9.13 9.7.5 Pin Functions .................................................................................................... 256 9.7.6 Port B Input Pull-Up MOS Function ................................................................ 258 Port C ................................................................................................................................ 258 9.8.1 Port C Data Direction Register (PCDDR) ........................................................ 259 9.8.2 Port C Data Register (PCDR) ........................................................................... 259 9.8.3 Port C Register (PORTC) ................................................................................. 260 9.8.4 Port C Pull-Up MOS Control Register (PCPCR).............................................. 260 9.8.5 Pin Functions .................................................................................................... 261 9.8.6 Port C Input Pull-Up MOS Function ................................................................ 263 Port D................................................................................................................................ 263 9.9.1 Port D Data Direction Register (PDDDR) ........................................................ 264 9.9.2 Port D Data Register (PDDR) ........................................................................... 264 9.9.3 Port D Register (PORTD) ................................................................................. 265 9.9.4 Port D Pull-Up MOS Control Register (PDPCR) ............................................. 265 9.9.5 Pin Functions .................................................................................................... 266 9.9.6 Port D Input Pull-Up MOS Function ................................................................ 267 Port E ................................................................................................................................ 268 9.10.1 Port E Data Direction Register (PEDDR) ......................................................... 268 9.10.2 Port E Data Register (PEDR)............................................................................ 269 9.10.3 Port E Register (PORTE).................................................................................. 269 9.10.4 Port E Pull-Up MOS Control Register (PEPCR) .............................................. 270 9.10.5 Pin Function...................................................................................................... 270 9.10.6 Port E Input Pull-Up MOS State....................................................................... 273 Port F ................................................................................................................................ 274 9.11.1 Port F Data Direction Register (PFDDR) ......................................................... 274 9.11.2 Port F Data Register (PFDR) ............................................................................ 275 9.11.3 Port F Register (PORTF) .................................................................................. 275 9.11.4 Pin Functions .................................................................................................... 276 Port G................................................................................................................................ 278 9.12.1 Port G Data Direction Register (PGDDR) ........................................................ 278 9.12.2 Port G Data Register (PGDR) ........................................................................... 279 9.12.3 Port G Register (PORTG) ................................................................................. 279 9.12.4 Pin Functions .................................................................................................... 280 Handling of Unused Pins .................................................................................................. 281 Section 10 16-Bit Timer Pulse Unit (TPU) ................................................................... 283 10.1 10.2 10.3 Features............................................................................................................................. 283 Input/Output Pins.............................................................................................................. 287 Register Descriptions ........................................................................................................ 288 10.3.1 Timer Control Register (TCR) .......................................................................... 289 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page xix of liv 10.4 10.5 10.6 10.7 10.8 10.3.2 Timer Mode Register (TMDR) ......................................................................... 293 10.3.3 Timer I/O Control Register (TIOR) .................................................................. 295 10.3.4 Timer Interrupt Enable Register (TIER) ........................................................... 304 10.3.5 Timer Status Register (TSR)............................................................................. 306 10.3.6 Timer Counter (TCNT)..................................................................................... 309 10.3.7 Timer General Register (TGR) ......................................................................... 309 10.3.8 Timer Start Register (TSTR) ............................................................................ 309 10.3.9 Timer Synchro Register (TSYR) ...................................................................... 310 Interface to Bus Master..................................................................................................... 311 10.4.1 16-Bit Registers ................................................................................................ 311 10.4.2 8-Bit Registers .................................................................................................. 311 Operation .......................................................................................................................... 313 10.5.1 Basic Functions................................................................................................. 313 10.5.2 Synchronous Operation..................................................................................... 319 10.5.3 Buffer Operation ............................................................................................... 320 10.5.4 PWM Modes ..................................................................................................... 324 10.5.5 Phase Counting Mode....................................................................................... 328 Interrupts........................................................................................................................... 333 10.6.1 Interrupt Source and Priority ............................................................................ 333 10.6.2 DTC Activation................................................................................................. 334 10.6.3 DMAC Activation............................................................................................. 334 10.6.4 A/D Converter Activation................................................................................. 334 Operation Timing.............................................................................................................. 335 10.7.1 Input/Output Timing ......................................................................................... 335 10.7.2 Interrupt Signal Timing .................................................................................... 339 Usage Notes ...................................................................................................................... 342 Section 11 8-Bit Timers (TMR) ....................................................................................... 349 11.1 11.2 11.3 11.4 11.5 Features............................................................................................................................. 349 Input/Output Pins.............................................................................................................. 351 Register Descriptions........................................................................................................ 351 11.3.1 Timer Counters (TCNT) ................................................................................... 351 11.3.2 Time Constant Registers A (TCORA) .............................................................. 352 11.3.3 Time Constant Registers B (TCORB) .............................................................. 352 11.3.4 Time Control Registers (TCR).......................................................................... 353 11.3.5 Timer Control/Status Registers (TCSR) ........................................................... 354 Operation .......................................................................................................................... 356 11.4.1 Pulse Output...................................................................................................... 356 Operation Timing.............................................................................................................. 357 11.5.1 TCNT Incrementation Timing .......................................................................... 357 Page xx of liv REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 11.6 11.7 11.8 11.5.2 Setting of Compare Match Flags CMFA and CMFB ....................................... 358 11.5.3 Timer Output Timing........................................................................................ 358 11.5.4 Timing of Compare Match Clear ...................................................................... 359 11.5.5 Timing of TCNT External Reset....................................................................... 359 11.5.6 Timing of Overflow Flag (OVF) Setting .......................................................... 360 Operation with Cascaded Connection............................................................................... 361 11.6.1 16-Bit Counter Mode ........................................................................................ 361 11.6.2 Compare Match Count Mode............................................................................ 361 Interrupts........................................................................................................................... 362 11.7.1 Interrupt Sources and DTC Activation ............................................................. 362 11.7.2 A/D Converter Activation................................................................................. 363 Usage Notes ...................................................................................................................... 363 11.8.1 Contention between TCNT Write and Clear..................................................... 363 11.8.2 Contention between TCNT Write and Increment ............................................. 364 11.8.3 Contention between TCOR Write and Compare Match ................................... 365 11.8.4 Contention between Compare Matches A and B .............................................. 366 11.8.5 Switching of Internal Clocks and TCNT Operation.......................................... 366 11.8.6 Mode Setting with Cascaded Connection ......................................................... 368 11.8.7 Module Stop Mode Setting ............................................................................... 368 Section 12 Watchdog Timer (WDT)............................................................................... 369 12.1 12.2 12.3 12.4 12.5 Features............................................................................................................................. 369 Register Descriptions ........................................................................................................ 370 12.2.1 Timer Counter (TCNT)..................................................................................... 370 12.2.2 Timer Control/Status Register (TCSR) ............................................................. 370 12.2.3 Reset Control/Status Register (RSTCSR) ......................................................... 372 Operation .......................................................................................................................... 373 12.3.1 Watchdog Timer Mode ..................................................................................... 373 12.3.2 Timing of Setting of Watchdog Timer Overflow Flag (WOVF) ...................... 374 12.3.3 Interval Timer Mode ......................................................................................... 375 12.3.4 Timing of Setting of Overflow Flag (OVF) ...................................................... 375 Interrupts........................................................................................................................... 376 Usage Notes ...................................................................................................................... 376 12.5.1 Notes on Register Access.................................................................................. 376 12.5.2 Contention between Timer Counter (TCNT) Write and Increment .................. 378 12.5.3 Changing Value of CKS2 to CKS0................................................................... 378 12.5.4 Switching between Watchdog Timer Mode and Interval Timer Mode............. 378 12.5.5 Internal Reset in Watchdog Timer Mode.......................................................... 379 12.5.6 OVF Flag Clearing in Interval Timer Mode ..................................................... 379 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page xxi of liv Section 13 Serial Communication Interface ................................................................. 381 13.1 13.2 13.3 13.4 13.5 13.6 13.7 Features............................................................................................................................. 381 13.1.1 Block Diagram.................................................................................................. 383 Input/Output Pins.............................................................................................................. 386 Register Descriptions........................................................................................................ 386 13.3.1 Receive Shift Register (RSR) ........................................................................... 387 13.3.2 Receive Data Register (RDR) ........................................................................... 387 13.3.3 Transmit Data Register (TDR).......................................................................... 387 13.3.4 Transmit Shift Register (TSR) .......................................................................... 387 13.3.5 Serial Mode Register (SMR) ............................................................................ 388 13.3.6 Serial Control Register (SCR) .......................................................................... 392 13.3.7 Serial Status Register (SSR) ............................................................................. 396 13.3.8 Smart Card Mode Register (SCMR) ................................................................. 402 13.3.9 Serial Extended Mode Register (SEMR) (Only for Channel 0 in H8S/2215) .. 403 13.3.10 Serial Extended Mode Register A_0 (SEMRA_0) (Only for Channel 0 in H8S/2215R, H8S/2215T and H8S/2215C) .................. 411 13.3.11 Serial Extended Mode Register B_0 (SEMRB_0) (Only for Channel 0 in H8S/2215R, H8S/2215T and H8S/2215C) .................. 413 13.3.12 Bit Rate Register (BRR) ................................................................................... 415 Operation in Asynchronous Mode .................................................................................... 423 13.4.1 Data Transfer Format........................................................................................ 424 13.4.2 Receive Data Sampling Timing and Reception Margin in Asynchronous Mode................................................................................................................. 425 13.4.3 Clock................................................................................................................. 426 13.4.4 SCI Initialization (Asynchronous Mode).......................................................... 427 13.4.5 Data Transmission (Asynchronous Mode)........................................................ 428 13.4.6 Serial Data Reception (Asynchronous Mode)................................................... 430 Multiprocessor Communication Function ........................................................................ 434 13.5.1 Multiprocessor Serial Data Transmission ......................................................... 435 13.5.2 Multiprocessor Serial Data Reception .............................................................. 437 Operation in Clocked Synchronous Mode ........................................................................ 440 13.6.1 Clock................................................................................................................. 440 13.6.2 SCI Initialization (Clocked Synchronous Mode).............................................. 441 13.6.3 Serial Data Transmission (Clocked Synchronous Mode) ................................. 441 13.6.4 Serial Data Reception (Clocked Synchronous Mode)....................................... 444 13.6.5 Simultaneous Serial Data Transmission and Reception (Clocked Synchronous Mode) .......................................................................... 445 Operation in Smart Card Interface.................................................................................... 447 13.7.1 Pin Connection Example................................................................................... 447 13.7.2 Data Format (Except for Block Transfer Mode)............................................... 448 Page xxii of liv REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 13.7.3 Clock................................................................................................................. 449 13.7.4 Block Transfer Mode ........................................................................................ 449 13.7.5 Receive Data Sampling Timing and Reception Margin.................................... 450 13.7.6 Initialization ...................................................................................................... 451 13.7.7 Serial Data Transmission (Except for Block Transfer Mode)........................... 452 13.7.8 Serial Data Reception (Except for Block Transfer Mode) ................................ 455 13.7.9 Clock Output Control........................................................................................ 457 13.8 SCI Select Function .......................................................................................................... 459 13.9 Interrupts........................................................................................................................... 461 13.9.1 Interrupts in Normal Serial Communication Interface Mode............................ 461 13.9.2 Interrupts in Smart Card Interface Mode .......................................................... 463 13.10 Usage Notes ...................................................................................................................... 464 13.10.1 Break Detection and Processing (Asynchronous Mode Only).......................... 464 13.10.2 Mark State and Break Detection (Asynchronous Mode Only) ......................... 464 13.10.3 Receive Error Flags and Transmit Operations (Clocked Synchronous Mode Only).................................................................. 464 13.10.4 Restrictions on Use of DMAC or DTC............................................................. 464 13.10.5 Operation in Case of Mode Transition.............................................................. 465 13.10.6 Switching from SCK Pin Function to Port Pin Function .................................. 469 13.10.7 Module Stop Mode Setting ............................................................................... 470 Section 14 Boundary Scan Function ............................................................................... 471 14.1 14.2 14.3 14.4 14.5 Features............................................................................................................................. 471 Pin Configuration.............................................................................................................. 473 Register Descriptions ........................................................................................................ 474 14.3.1 Instruction Register (INSTR)............................................................................ 474 14.3.2 IDCODE Register (IDCODE) .......................................................................... 476 14.3.3 BYPASS Register (BYPASS) .......................................................................... 476 14.3.4 Boundary Scan Register (BSCANR) ................................................................ 477 Boundary Scan Function Operation .................................................................................. 485 14.4.1 TAP Controller ................................................................................................. 485 Usage Notes ...................................................................................................................... 486 Section 15 Universal Serial Bus Interface (USB) ....................................................... 489 15.1 15.2 15.3 Features............................................................................................................................. 489 Input/Output Pins.............................................................................................................. 492 Register Descriptions ........................................................................................................ 493 15.3.1 USB Endpoint Information Registers 00_0 to 22_4 (UEPIR00_0 to UEPIR22_4)............................................................................ 495 15.3.2 USB Control Register (UCTLR)....................................................................... 502 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page xxiii of liv 15.3.3 15.3.4 15.3.5 15.3.6 15.3.7 15.3.8 15.3.9 15.3.10 15.3.11 15.3.12 15.3.13 15.3.14 15.3.15 15.3.16 15.3.17 15.3.18 15.3.19 15.3.20 15.3.21 15.3.22 15.3.23 15.3.24 15.3.25 15.3.26 15.3.27 15.3.28 15.3.29 15.3.30 15.3.31 15.3.32 15.3.33 15.3.34 15.3.35 15.3.36 15.3.37 15.3.38 Page xxiv of liv USB DMAC Transfer Request Register (UDMAR)......................................... 506 USB Device Resume Register (UDRR)............................................................ 507 USB Trigger Register 0 (UTRG0) .................................................................... 508 USB Trigger Register 1 (UTRG1) .................................................................... 509 USBFIFO Clear Register 0 (UFCLR0)............................................................. 510 USBFIFO Clear Register 1 (UFCLR1)............................................................. 511 USB Endpoint Stall Register 0 (UESTL0)........................................................ 512 USB Endpoint Stall Register 1 (UESTL1)........................................................ 513 USB Endpoint Data Register 0s (UEDR0s)...................................................... 513 USB Endpoint Data Register 0i (UEDR0i)....................................................... 514 USB Endpoint Data Register 0o (UEDR0o)..................................................... 514 USB Endpoint Data Register 1i (UEDR1i)....................................................... 514 USB Endpoint Data Register 2i (UEDR2i)....................................................... 515 USB Endpoint Data Register 2o (UEDR2o)..................................................... 515 USB Endpoint Data Register 3i (UEDR3i)....................................................... 515 USB Endpoint Data Register 3o (UEDR3o)..................................................... 516 USB Endpoint Data Register 4i (UEDR4i)....................................................... 516 USB Endpoint Data Register 4o (UEDR4o)..................................................... 516 USB Endpoint Data Register 5i (UEDR5i)....................................................... 517 USB Endpoint Receive Data Size Register 0o (UESZ0o) ................................ 517 USB Endpoint Receive Data Size Register 2o (UESZ2o) ................................ 517 USB Endpoint Receive Data Size Register 3o (UESZ3o) ................................ 518 USB Endpoint Receive Data Size Register 4o (UESZ4o) ................................ 518 USB Interrupt Flag Register 0 (UIFR0)............................................................ 518 USB Interrupt Flag Register 1 (UIFR1) (Only in H8S/2215) ........................... 520 USB Interrupt Flag Register 1 (UIFR1) (Only in H8S/2215R, H8S/2215T and H8S/2215C)......................................... 522 USB Interrupt Flag Register 2 (UIFR2) (Only in H8S/2215) ........................... 524 USB Interrupt Flag Register 2 (UIFR2) (Only in H8S/2215R, H8S/2215T and H8S/2215C)......................................... 525 USB Interrupt Flag Register 3 (UIFR3)............................................................ 527 USB Interrupt Enable Register 0 (UIER0) ....................................................... 529 USB Interrupt Enable Register 1 (UIER1) (Only in H8S/2215)....................... 529 USB Interrupt Enable Register 1 (UIER1) (Only in H8S/2215R, H8S/2215T and H8S/2215C)......................................... 530 USB Interrupt Enable Register 2 (UIER2) ....................................................... 530 USB Interrupt Enable Register 2 (UIER2) (Only in H8S/2215R, H8S/2215T and H8S/2215C)......................................... 531 USB Interrupt Enable Register 3 (UIER3) ....................................................... 531 USB Interrupt Select Register 0 (UISR0) ......................................................... 532 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 15.3.39 15.3.40 15.4 15.5 15.6 15.7 15.8 15.9 USB Interrupt Select Register 1 (UISR1) (Only in H8S/2215) ........................ 533 USB Interrupt Select Register 1 (UISR1) (Only in H8S/2215R, H8S/2215T and H8S/2215C) ......................................... 533 15.3.41 USB Interrupt Select Register 2 (UISR2) (Only in H8S/2215) ........................ 534 15.3.42 USB Interrupt Select Register 2 (UISR2) (Only in H8S/2215R, H8S/2215T and H8S/2215C) ......................................... 534 15.3.43 USB Interrupt Select Register 3 (UISR3) ......................................................... 535 15.3.44 USB Data Status Register (UDSR) ................................................................... 536 15.3.45 USB Configuration Value Register (UCVR) .................................................... 537 15.3.46 USB Time Stamp Registers H, L (UTSRH, UTSRL)....................................... 538 15.3.47 USB Test Register 0 (UTSTR0) ....................................................................... 539 15.3.48 USB Test Register 1 (UTSTR1) ....................................................................... 541 15.3.49 USB Test Registers 2 and A to F (UTSTR2, UTSRA to UTSRF).................... 543 15.3.50 Module Stop Control Register B (MSTPCRB)................................................. 543 Interrupt Sources............................................................................................................... 543 Communication Operation................................................................................................ 547 15.5.1 Initialization ...................................................................................................... 547 15.5.2 USB Cable Connection/Disconnection ............................................................. 548 15.5.3 Suspend and Resume Operations...................................................................... 552 15.5.4 Control Transfer................................................................................................ 556 15.5.5 Interrupt-In Transfer (EP1i Is specified as Endpoint) ....................................... 563 15.5.6 Bulk-In Transfer (Dual FIFOs) (EP2i Is specified as Endpoint)....................... 564 15.5.7 Bulk-Out Transfer (Dual FIFOs) (EP2o Is specified as Endpoint) ................... 566 15.5.8 Isochronous–In Transfer (Dual-FIFO) (When EP3i Is Specified as Endpoint).............................................................. 568 15.5.9 Isochronous–Out Transfer (Dual-FIFO) (When EP3o Is Specified as Endpoint)............................................................. 570 15.5.10 Processing of USB Standard Commands and Class/Vendor Commands.......... 572 15.5.11 Stall Operations................................................................................................. 573 DMA Transfer Specifications ........................................................................................... 577 15.6.1 DMA Transfer by USB Request ....................................................................... 577 15.6.2 DMA Transfer by Auto-Request....................................................................... 580 Endpoint Configuration Example ..................................................................................... 582 USB External Circuit Example ......................................................................................... 587 Usage Notes ...................................................................................................................... 591 15.9.1 Operating Frequency......................................................................................... 591 15.9.2 Bus Interface ..................................................................................................... 591 15.9.3 Setup Data Reception........................................................................................ 591 15.9.4 FIFO Clear ........................................................................................................ 592 15.9.5 IRQ6 Interrupt................................................................................................... 592 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page xxv of liv 15.9.6 15.9.7 15.9.8 15.9.9 15.9.10 15.9.11 15.9.12 15.9.13 15.9.14 15.9.15 15.9.16 15.9.17 15.9.18 Data Register Overread or Overwrite ............................................................... 592 EP3o Isochronous Transfer............................................................................... 593 Reset ................................................................................................................. 595 EP0 Interrupt Assignment................................................................................. 595 Level Shifter for VBUS and IRQx Pins............................................................ 596 Read and Write to USB Endpoint Data Register .............................................. 596 Restrictions for Software Standby Mode Transition......................................... 596 USB External Circuit Example......................................................................... 598 Pin Processing when USB Not Used ................................................................ 599 Notes on Emulator Usage ................................................................................. 599 Notes on TR Interrupt ....................................................................................... 599 Notes on UIFRO ............................................................................................... 600 Clearing the FIFOs in DMA Transfer Mode..................................................... 600 Section 16 A/D Converter .................................................................................................. 601 16.1 16.2 16.3 16.4 16.5 16.6 16.7 16.8 Features............................................................................................................................. 601 Input/Output Pins.............................................................................................................. 603 Register Descriptions........................................................................................................ 603 16.3.1 A/D Data Registers A to D (ADDRA to ADDRD) .......................................... 604 16.3.2 A/D Control/Status Register (ADCSR) ............................................................ 604 16.3.3 A/D Control Register (ADCR) ......................................................................... 606 Interface to Bus Master..................................................................................................... 607 Operation .......................................................................................................................... 608 16.5.1 Single Mode...................................................................................................... 608 16.5.2 Scan Mode ........................................................................................................ 609 16.5.3 Input Sampling and A/D Conversion Time ...................................................... 610 16.5.4 External Trigger Input Timing.......................................................................... 612 Interrupts........................................................................................................................... 613 A/D Conversion Precision Definitions ............................................................................. 613 Usage Notes ...................................................................................................................... 615 16.8.1 Permissible Signal Source Impedance .............................................................. 615 16.8.2 Influences on Absolute Precision...................................................................... 615 16.8.3 Range of Analog Power Supply and Other Pin Settings................................... 616 16.8.4 Notes on Board Design ..................................................................................... 616 16.8.5 Notes on Noise Countermeasures ..................................................................... 616 16.8.6 Module Stop Mode Setting ............................................................................... 618 Section 17 D/A Converter .................................................................................................. 619 17.1 17.2 Features............................................................................................................................. 619 Input/Output Pins.............................................................................................................. 620 Page xxvi of liv REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 17.3 17.4 17.5 Register Description.......................................................................................................... 620 17.3.1 D/A Data Register (DADR) .............................................................................. 620 17.3.2 D/A Control Register (DACR) ......................................................................... 621 Operation .......................................................................................................................... 621 Usage Note........................................................................................................................ 623 17.5.1 Module Stop Mode Setting ............................................................................... 623 Section 18 RAM ................................................................................................................... 625 Section 19 Flash Memory (F-ZTAT Version) ............................................................. 627 19.1 19.2 19.3 19.4 19.5 19.6 19.7 19.8 19.9 19.10 19.11 19.12 19.13 19.14 Features............................................................................................................................. 627 Mode Transitions .............................................................................................................. 629 Block Configuration ......................................................................................................... 633 Input/Output Pins.............................................................................................................. 634 Register Descriptions ........................................................................................................ 634 19.5.1 Flash Memory Control Register 1 (FLMCR1).................................................. 635 19.5.2 Flash Memory Control Register 2 (FLMCR2).................................................. 636 19.5.3 Erase Block Register 1 (EBR1) ........................................................................ 637 19.5.4 Erase Block Register 2 (EBR2) ........................................................................ 638 19.5.5 RAM Emulation Register (RAMER)................................................................ 639 19.5.6 Serial Control Register X (SCRX).................................................................... 640 On-Board Programming Modes........................................................................................ 641 19.6.1 SCI Boot Mode (HD64F2215, HD64F2215R, and HD64F2215T) .................. 641 19.6.2 USB Boot Mode (HD64F2215U, HD64F2215RU, HD64F2215TU and HD64F2215CU) ......... 645 19.6.3 Programming/Erasing in User Program Mode.................................................. 649 Flash Memory Emulation in RAM ................................................................................... 650 Flash Memory Programming/Erasing ............................................................................... 652 19.8.1 Program/Program-Verify .................................................................................. 652 19.8.2 Erase/Erase-Verify............................................................................................ 654 Program/Erase Protection ................................................................................................. 656 19.9.1 Hardware Protection ......................................................................................... 656 19.9.2 Software Protection........................................................................................... 656 19.9.3 Error Protection................................................................................................. 656 Interrupt Handling when Programming/Erasing Flash Memory....................................... 657 Programmer Mode ............................................................................................................ 657 Power-Down States for Flash Memory............................................................................. 658 Flash Memory Programming and Erasing Precautions..................................................... 659 Note on Switching from F-ZTAT Version to Masked ROM Version .............................. 664 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page xxvii of liv Section 20 Masked ROM ................................................................................................... 665 20.1 Features............................................................................................................................. 665 Section 21 Clock Pulse Generator ................................................................................... 667 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 Register Descriptions........................................................................................................ 668 21.1.1 System Clock Control Register (SCKCR) ........................................................ 668 21.1.2 Low-Power Control Register (LPWRCR) ........................................................ 670 System Clock Oscillator ................................................................................................... 671 21.2.1 Connecting a Crystal Resonator........................................................................ 671 21.2.2 Connecting a Ceramic Resonator (H8S/2215T) ............................................... 672 21.2.3 Inputting an External Clock .............................................................................. 672 Duty Adjustment Circuit................................................................................................... 674 Medium-Speed Clock Divider .......................................................................................... 674 Bus Master Clock Selection Circuit.................................................................................. 674 USB Operating Clock (48 MHz) ...................................................................................... 675 21.6.1 Connecting a Ceramic Resonator...................................................................... 675 21.6.2 Inputting an 48-MHz External Clock................................................................ 675 21.6.3 Pin Handling when 48-MHz External Clock Is Not Needed (On-chip PLL Circuit Is Used) ......................................................................... 676 PLL Circuit for USB......................................................................................................... 677 Usage Notes ...................................................................................................................... 678 21.8.1 Note on Crystal Resonator ................................................................................ 678 21.8.2 Note on Board Design....................................................................................... 678 21.8.3 Note on Switchover of External Clock ............................................................. 678 Section 22 Power-Down Modes....................................................................................... 681 22.1 22.2 22.3 22.4 Register Descriptions........................................................................................................ 684 22.1.1 Standby Control Register (SBYCR) ................................................................. 684 22.1.2 Module Stop Control Registers A to C (MSTPCRA to MSTPCRC)................ 686 Medium-Speed Mode ....................................................................................................... 688 Sleep Mode ....................................................................................................................... 689 22.3.1 Transition to Sleep Mode.................................................................................. 689 22.3.2 Exiting Sleep Mode .......................................................................................... 689 Software Standby Mode.................................................................................................... 690 22.4.1 Transition to Software Standby Mode .............................................................. 690 22.4.2 Clearing Software Standby Mode..................................................................... 690 22.4.3 Setting Oscillation Stabilization Time after Clearing Software Standby Mode.................................................................................... 691 22.4.4 Software Standby Mode Application Example................................................. 692 Page xxviii of liv REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 22.5 22.6 22.7 22.8 Hardware Standby Mode .................................................................................................. 693 22.5.1 Transition to Hardware Standby Mode ............................................................. 693 22.5.2 Clearing Hardware Standby Mode.................................................................... 693 22.5.3 Hardware Standby Mode Timing...................................................................... 694 22.5.4 Hardware Standby Mode Timings .................................................................... 695 Module Stop Mode ........................................................................................................... 696 φ Clock Output Disabling Function .................................................................................. 696 Usage Notes ...................................................................................................................... 697 22.8.1 I/O Port Status................................................................................................... 697 22.8.2 Current Dissipation during Oscillation Stabilization Wait Period .................... 697 22.8.3 DMAC and DTC Module Stop ......................................................................... 697 22.8.4 On-Chip Peripheral Module Interrupts ............................................................. 697 22.8.5 Writing to MSTPCR ......................................................................................... 697 Section 23 List of Registers ............................................................................................... 699 23.1 23.2 23.3 Register Addresses (Address Order)................................................................................. 699 Register Bits...................................................................................................................... 708 Register States in Each Operating Mode .......................................................................... 718 Section 24 Electrical Characteristics (H8S/2215) ....................................................... 725 24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.9 Absolute Maximum Ratings ............................................................................................. 725 Power Supply Voltage and Operating Frequency Range.................................................. 726 DC Characteristics ............................................................................................................ 727 AC Characteristics ............................................................................................................ 730 24.4.1 Clock Timing .................................................................................................... 731 24.4.2 Control Signal Timing ...................................................................................... 733 24.4.3 Bus Timing ....................................................................................................... 735 24.4.4 Timing of On-Chip Supporting Modules.......................................................... 741 USB Characteristics .......................................................................................................... 747 A/D Conversion Characteristics........................................................................................ 749 D/A Conversion Characteristics........................................................................................ 749 Flash Memory Characteristics .......................................................................................... 750 Usage Note........................................................................................................................ 751 Section 25 Electrical Characteristics (H8S/2215R).................................................... 753 25.1 25.2 25.3 25.4 Absolute Maximum Ratings ............................................................................................. 753 Power Supply Voltage and Operating Frequency Range.................................................. 754 DC Characteristics ............................................................................................................ 755 AC Characteristics ............................................................................................................ 758 25.4.1 Clock Timing .................................................................................................... 759 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page xxix of liv 25.5 25.6 25.7 25.8 25.9 25.4.2 Control Signal Timing ...................................................................................... 761 25.4.3 Bus Timing ....................................................................................................... 763 25.4.4 Timing of On-Chip Supporting Modules.......................................................... 770 USB Characteristics.......................................................................................................... 776 A/D Conversion Characteristics ....................................................................................... 778 D/A Conversion Characteristics ....................................................................................... 779 Flash Memory Characteristics .......................................................................................... 779 Usage Note........................................................................................................................ 781 Section 26 Electrical Characteristics (H8S/2215T) .................................................... 783 26.1 26.2 26.3 26.4 26.5 26.6 26.7 26.8 26.9 Absolute Maximum Ratings ............................................................................................. 783 Power Supply Voltage and Operating Frequency Range.................................................. 783 DC Characteristics ............................................................................................................ 784 AC Characteristics ............................................................................................................ 787 26.4.1 Clock Timing .................................................................................................... 788 26.4.2 Control Signal Timing ...................................................................................... 790 26.4.3 Bus Timing ....................................................................................................... 792 26.4.4 Timing of On-Chip Supporting Modules.......................................................... 798 USB Characteristics.......................................................................................................... 803 A/D Conversion Characteristics ....................................................................................... 804 D/A Conversion Characteristics ....................................................................................... 805 Flash Memory Characteristics .......................................................................................... 805 Usage Note........................................................................................................................ 806 Section 27 Electrical Characteristics (H8S/2215C).................................................... 807 27.1 27.2 27.3 27.4 27.5 27.6 27.7 27.8 27.9 Absolute Maximum Ratings ............................................................................................. 807 Power Supply Voltage and Operating Frequency Range.................................................. 808 DC Characteristics ............................................................................................................ 809 AC Characteristics ............................................................................................................ 812 27.4.1 Clock Timing .................................................................................................... 813 27.4.2 Control Signal Timing ...................................................................................... 815 27.4.3 Bus Timing ....................................................................................................... 817 27.4.4 Timing of On-Chip Supporting Modules.......................................................... 823 USB Characteristics.......................................................................................................... 829 A/D Conversion Characteristics ....................................................................................... 831 D/A Conversion Characteristics ....................................................................................... 831 Flash Memory Characteristics .......................................................................................... 832 Usage Note........................................................................................................................ 834 Appendix ................................................................................................................................... 835 Page xxx of liv REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 A. B. C. I/O Port States in Each Processing State........................................................................... 835 Product Model Lineup ...................................................................................................... 839 Package Dimensions ......................................................................................................... 840 Index .......................................................................................................................................... 843 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page xxxi of liv Page xxxii of liv REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Figures Section 1 Overview Figure 1.1 Internal Block Diagram ................................................................................................. 3 Figure 1.2 Pin Arrangement (TFP-120, TFP-120V)....................................................................... 4 Figure 1.3 Pin Arrangement (BP-112, BP-112V)........................................................................... 5 Section 2 CPU Figure 2.1 Exception Vector Table (Normal Mode)..................................................................... 27 Figure 2.2 Stack Structure in Normal Mode................................................................................. 27 Figure 2.3 Exception Vector Table (Advanced Mode)................................................................. 28 Figure 2.4 Stack Structure in Advanced Mode ............................................................................. 29 Figure 2.5 Memory Map............................................................................................................... 30 Figure 2.6 CPU Registers ............................................................................................................. 31 Figure 2.7 Usage of General Registers ......................................................................................... 32 Figure 2.8 Stack ............................................................................................................................ 33 Figure 2.9 General Register Data Formats (1).............................................................................. 36 Figure 2.9 General Register Data Formats (2).............................................................................. 37 Figure 2.10 Memory Data Formats............................................................................................... 38 Figure 2.11 Instruction Formats (Examples) ................................................................................ 50 Figure 2.12 Branch Address Specification in Memory Indirect Mode ......................................... 53 Figure 2.13 State Transitions ........................................................................................................ 57 Figure 2.14 Flowchart of Method for Accessing Registers Containing Write-Only Bits ............. 61 Section 3 MCU Operating Modes Figure 3.1 Figure 3.2 Figure 3.3 Figure 3.4 Memory Map in Each Operating Mode for HD64F2215 and HD64F2215U.............. 69 Memory Map in Each Operating Mode for HD6432215B.......................................... 70 Memory Map in Each Operating Mode for HD6432215C.......................................... 71 Memory Map in Each Operating Mode for HD64F2215R, HD64F2215RU, HD64F2215T, HD64F2215TU and HD64F2215CU .................................................. 72 Section 4 Exception Handling Figure 4.1 Figure 4.2 Figure 4.3 Figure 4.4 Reset Sequence (Mode 4)............................................................................................ 77 Reset Sequence (Modes 6, 7) ...................................................................................... 78 Stack Status after Exception Handling ........................................................................ 81 Operation when SP Value Is Odd................................................................................ 82 Section 5 Interrupt Controller Figure 5.1 Block Diagram of Interrupt Controller........................................................................ 84 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page xxxiii of liv Figure 5.2 Figure 5.3 Figure 5.4 Figure 5.5 Figure 5.6 Figure 5.7 Figure 5.8 Block Diagram of IRQn Interrupts.............................................................................. 92 Set Timing for IRQnF ................................................................................................. 93 Flowchart of Procedure Up to Interrupt Acceptance in Interrupt Control Mode 0..... 97 Flowchart of Procedure Up to Interrupt Acceptance in Interrupt Control Mode 2..... 99 Interrupt Exception Handling.................................................................................... 100 Interrupt Control for DTC and DMAC ..................................................................... 103 Contention between Interrupt Generation and Disabling .......................................... 105 Section 6 Bus Controller Figure 6.1 Block Diagram of Bus Controller.............................................................................. 110 Figure 6.2 Overview of Area Divisions...................................................................................... 121 Figure 6.3 CSn Signal Output Timing (n = 0 to 7) ..................................................................... 124 Figure 6.4 On-Chip Memory Access Cycle................................................................................ 125 Figure 6.5 Pin States during On-Chip Memory Access.............................................................. 125 Figure 6.6 On-Chip Peripheral Module Access Cycle................................................................ 126 Figure 6.7 Pin States during On-Chip Peripheral Module Access.............................................. 126 Figure 6.8 Access Sizes and Data Alignment Control (8-Bit Access Space) ............................. 127 Figure 6.9 Access Sizes and Data Alignment Control (16-Bit Access Space) ........................... 128 Figure 6.10 Bus Timing for 8-Bit 2-State Access Space ............................................................ 129 Figure 6.11 Bus Timing for 8-Bit 3-State Access Space (Except Area 6).................................. 130 Figure 6.12 Bus Timing for Area 6............................................................................................. 131 Figure 6.13 Bus Timing for 16-Bit 2-State Access Space (1) (Even Address Byte Access) ...... 132 Figure 6.14 Bus Timing for 16-Bit 2-State Access Space (2) (Odd Address Byte Access) ....... 133 Figure 6.15 Bus Timing for 16-Bit 2-State Access Space (3) (Word Access)............................ 134 Figure 6.16 Bus Timing for 16-Bit 3-State Access Space (1) (Even Address Byte Access) ...... 135 Figure 6.17 Bus Timing for 16-Bit 3-State Access Space (2) (Odd Address Byte Access) ....... 136 Figure 6.18 Bus Timing for 16-Bit 3-State Access Space (3) (Word Access)............................ 137 Figure 6.19 Example of Wait State Insertion Timing................................................................. 139 Figure 6.20 Example of Burst ROM Access Timing (When AST0 = BRSTS1 = 1).................. 140 Figure 6.21 Example of Burst ROM Access Timing (When AST0 = BRSTS1 = 0).................. 141 Figure 6.22 Example of Idle Cycle Operation (1) ...................................................................... 142 Figure 6.23 Example of Idle Cycle Operation (2) ...................................................................... 143 Figure 6.24 Relationship between Chip Select (CS) and Read (RD) ......................................... 144 Figure 6.25 Bus-Released State Transition Timing .................................................................... 146 Section 7 DMA Controller (DMAC) Figure 7.1 Figure 7.2 Figure 7.3 Figure 7.4 Block Diagram of DMAC ......................................................................................... 150 Areas for Register Re-Setting by DTC (Example: Channel 0A)............................... 170 Operation in Sequential Mode................................................................................... 174 Example of Sequential Mode Setting Procedure....................................................... 175 Page xxxiv of liv REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Figure 7.5 Operation in Idle Mode ............................................................................................. 176 Figure 7.6 Example of Idle Mode Setting Procedure.................................................................. 177 Figure 7.7 Operation in Repeat Mode......................................................................................... 179 Figure 7.8 Example of Repeat Mode Setting Procedure............................................................. 180 Figure 7.9 Operation in Normal Mode ....................................................................................... 182 Figure 7.10 Example of Normal Mode Setting Procedure.......................................................... 183 Figure 7.11 Operation in Block Transfer Mode (BLKDIR = 0) ................................................. 185 Figure 7.12 Operation in Block Transfer Mode (BLKDIR = 1) ................................................. 186 Figure 7.13 Operation Flow in Block Transfer Mode................................................................. 187 Figure 7.14 Example of Block Transfer Mode Setting Procedure.............................................. 188 Figure 7.15 Example of DMA Transfer Bus Timing.................................................................. 191 Figure 7.16 Example of Short Address Mode Transfer .............................................................. 192 Figure 7.17 Example of Full Address Mode (Cycle Steal) Transfer........................................... 193 Figure 7.18 Example of Full Address Mode (Burst Mode) Transfer.......................................... 194 Figure 7.19 Example of Full Address Mode (Block Transfer Mode) Transfer........................... 195 Figure 7.20 Example of DREQ Level Activated Normal Mode Transfer .................................. 196 Figure 7.21 Example of Multi-Channel Transfer........................................................................ 197 Figure 7.22 Example of Procedure for Continuing Transfer on Channel Interrupted by NMI Interrupt................................................................................................................... 199 Figure 7.23 Example of Procedure for Forcibly Terminating DMAC Operation....................... 199 Figure 7.24 Example of Procedure for Clearing Full Address Mode ......................................... 200 Figure 7.25 Block Diagram of Transfer End/Transfer Break Interrupt ...................................... 201 Figure 7.26 DMAC Register Update Timing.............................................................................. 202 Figure 7.27 Contention between DMAC Register Update and CPU Read................................. 203 Section 8 Data Transfer Controller (DTC) Figure 8.1 Block Diagram of DTC ............................................................................................. 206 Figure 8.2 Block Diagram of DTC Activation Source Control .................................................. 213 Figure 8.3 Correspondence between DTC Vector Address and Register Information ............... 214 Figure 8.4 Correspondence between DTC Vector Address and Register Information ............... 214 Figure 8.5 Flowchart of DTC Operation..................................................................................... 216 Figure 8.6 Memory Mapping in Normal Mode .......................................................................... 218 Figure 8.7 Memory Mapping in Repeat Mode ........................................................................... 219 Figure 8.8 Memory Mapping in Block Transfer Mode............................................................... 220 Figure 8.9 Chain Transfer Memory Map.................................................................................... 221 Figure 8.10 DTC Operation Timing (Example in Normal Mode or Repeat Mode).................... 222 Figure 8.11 DTC Operation Timing (Example of Block Transfer Mode, with Block Size of 2)..................................... 223 Figure 8.12 DTC Operation Timing (Example of Chain Transfer) ............................................ 223 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page xxxv of liv Section 10 16-Bit Timer Pulse Unit (TPU) Figure 10.1 Block Diagram of TPU............................................................................................ 284 Figure 10.2 16-Bit Register Access Operation [Bus Master ↔ TCNT (16 Bits)] ...................... 311 Figure 10.3 8-Bit Register Access Operation [Bus Master ↔ TCR (Upper 8 Bits)].................. 312 Figure 10.4 8-Bit Register Access Operation [Bus Master ↔ TMDR (Lower 8 Bits)] ............. 312 Figure 10.5 8-Bit Register Access Operation [Bus Master ↔ TCR and TMDR (16 Bits)] ....... 312 Figure 10.6 Example of Counter Operation Setting Procedure .................................................. 313 Figure 10.7 Free-Running Counter Operation ............................................................................ 314 Figure 10.8 Periodic Counter Operation..................................................................................... 315 Figure 10.9 Example of Setting Procedure for Waveform Output by Compare Match.............. 315 Figure 10.10 Example of 0 Output/1 Output Operation ............................................................. 316 Figure 10.11 Example of Toggle Output Operation ................................................................... 316 Figure 10.12 Example of Input Capture Operation Setting Procedure ....................................... 317 Figure 10.13 Example of Input Capture Operation .................................................................... 318 Figure 10.14 Example of Synchronous Operation Setting Procedure ........................................ 319 Figure 10.15 Example of Synchronous Operation...................................................................... 320 Figure 10.16 Compare Match Buffer Operation......................................................................... 321 Figure 10.17 Input Capture Buffer Operation............................................................................. 321 Figure 10.18 Example of Buffer Operation Setting Procedure................................................... 321 Figure 10.19 Example of Buffer Operation (1) .......................................................................... 322 Figure 10.20 Example of Buffer Operation (2) .......................................................................... 323 Figure 10.21 Example of PWM Mode Setting Procedure .......................................................... 325 Figure 10.22 Example of PWM Mode Operation (1) ................................................................. 325 Figure 10.23 Example of PWM Mode Operation (2) ................................................................. 326 Figure 10.24 Example of PWM Mode Operation (3) ................................................................. 327 Figure 10.25 Example of Phase Counting Mode Setting Procedure........................................... 328 Figure 10.26 Example of Phase Counting Mode 1 Operation .................................................... 329 Figure 10.27 Example of Phase Counting Mode 2 Operation .................................................... 330 Figure 10.28 Example of Phase Counting Mode 3 Operation .................................................... 331 Figure 10.29 Example of Phase Counting Mode 4 Operation .................................................... 332 Figure 10.30 Count Timing in Internal Clock Operation............................................................ 335 Figure 10.31 Count Timing in External Clock Operation .......................................................... 335 Figure 10.32 Output Compare Output Timing ........................................................................... 336 Figure 10.33 Input Capture Input Signal Timing........................................................................ 336 Figure 10.34 Counter Clear Timing (Compare Match) .............................................................. 337 Figure 10.35 Counter Clear Timing (Input Capture) .................................................................. 337 Figure 10.36 Buffer Operation Timing (Compare Match) ......................................................... 338 Figure 10.37 Buffer Operation Timing (Input Capture) ............................................................. 338 Figure 10.38 TGI Interrupt Timing (Compare Match) ............................................................... 339 Page xxxvi of liv REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Figure 10.39 Figure 10.40 Figure 10.41 Figure 10.42 Figure 10.43 Figure 10.44 Figure 10.45 Figure 10.46 Figure 10.47 Figure 10.48 Figure 10.49 Figure 10.50 Figure 10.51 Figure 10.52 Figure 10.53 TGI Interrupt Timing (Input Capture) ................................................................... 339 TCIV Interrupt Setting Timing.............................................................................. 340 TCIU Interrupt Setting Timing.............................................................................. 340 Timing for Status Flag Clearing by CPU .............................................................. 341 Timing for Status Flag Clearing by DTC or DMAC Activation ........................... 341 Phase Difference, Overlap, and Pulse Width in Phase Counting Mode ................ 342 Contention between TCNT Write and Clear Operations....................................... 343 Contention between TCNT Write and Increment Operations ............................... 343 Contention between TGR Write and Compare Match........................................... 344 Contention between Buffer Register Write and Compare Match.......................... 345 Contention between TGR Read and Input Capture ............................................... 345 Contention between TGR Write and Input Capture .............................................. 346 Contention between Buffer Register Write and Input Capture.............................. 347 Contention between Overflow and Counter Clearing............................................ 347 Contention between TCNT Write and Overflow................................................... 348 Section 11 8-Bit Timers (TMR) Figure 11.1 Block Diagram of 8-Bit Timer ................................................................................ 350 Figure 11.2 Example of Pulse Output......................................................................................... 356 Figure 11.3 Count Timing for Internal Clock Input.................................................................... 357 Figure 11.4 Count Timing for External Clock Input .................................................................. 357 Figure 11.5 Timing of CMF Setting ........................................................................................... 358 Figure 11.6 Timing of Timer Output .......................................................................................... 358 Figure 11.7 Timing of Compare Match Clear............................................................................. 359 Figure 11.8 Timing of Clearance by External Reset................................................................... 359 Figure 11.9 Timing of OVF Setting............................................................................................ 360 Figure 11.10 Contention between TCNT Write and Clear ......................................................... 363 Figure 11.11 Contention between TCNT Write and Increment.................................................. 364 Figure 11.12 Contention between TCOR Write and Compare Match ........................................ 365 Section 12 Watchdog Timer (WDT) Figure 12.1 Figure 12.2 Figure 12.3 Figure 12.4 Figure 12.5 Figure 12.6 Figure 12.7 Figure 12.8 Block Diagram of WDT .......................................................................................... 369 Operation in Watchdog Timer Mode....................................................................... 373 Timing of WOVF Setting ........................................................................................ 374 Operation in Interval Timer Mode........................................................................... 375 Timing of OVF Setting............................................................................................ 375 Format of Data Written to TCNT and TCSR .......................................................... 376 Format of Data Written to RSTCSR (Example of WDT0)...................................... 377 Contention between TCNT Write and Increment.................................................... 378 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page xxxvii of liv Section 13 Serial Communication Interface Figure 13.1 Figure 13.2 Figure 13.3 Figure 13.4 Figure 13.4 Figure 13.5 Figure 13.5 Figure 13.5 Figure 13.5 Figure 13.6 Block Diagram of SCI_0 (H8S/2215) ..................................................................... 383 Block Diagram of SCI_0 (H8S/2215R, H8S/2215T and H8S/2215C).................... 384 Block Diagram of SCI_1 and SCI_2 ....................................................................... 385 Examples of Base Clock when Average Transfer Rate Is Selected (1)................... 405 Examples of Base Clock when Average Transfer Rate Is Selected (2)................... 406 Example of Average Transfer Rate Setting when TPU Clock Is Input (1) ............. 407 Example of Average Transfer Rate Setting when TPU Clock Is Input (2) ............. 408 Example of Average Transfer Rate Setting when TPU Clock Is Input (3) ............. 409 Example of Average Transfer Rate Setting when TPU Clock Is Input (4) ............. 410 Data Format in Asynchronous Communication (Example with 8-Bit Data, Parity, Two Stop Bits).................................................. 423 Figure 13.7 Receive Data Sampling Timing in Asynchronous Mode ........................................ 426 Figure 13.8 Relationship between Output Clock and Transfer Data Phase (Asynchronous Mode)............................................................................................. 426 Figure 13.9 Sample SCI Initialization Flowchart ....................................................................... 427 Figure 13.10 Example of Operation in Transmission in Asynchronous Mode (Example with 8-Bit Data, Parity, One Stop Bit).................................................. 428 Figure 13.11 Sample Serial Transmission Data Flowchart......................................................... 429 Figure 13.12 Example of SCI Operation in Reception (Example with 8-Bit Data, Parity, One Stop Bit).................................................. 430 Figure 13.13 Sample Serial Reception Data Flowchart (1) ........................................................ 432 Figure 13.13 Sample Serial Reception Data Flowchart (2) ........................................................ 433 Figure 13.14 Example of Communication Using Multiprocessor Format (Transmission of Data H'AA to Receiving Station A) .......................................... 435 Figure 13.15 Sample Multiprocessor Serial Transmission Flowchart ........................................ 436 Figure 13.16 Example of SCI Operation in Reception (Example with 8-Bit Data, Multiprocessor Bit, One Stop Bit) ............................. 437 Figure 13.17 Sample Multiprocessor Serial Reception Flowchart (1)........................................ 438 Figure 13.17 Sample Multiprocessor Serial Reception Flowchart (2)........................................ 439 Figure 13.18 Data Format in Synchronous Communication (For LSB-First) ............................ 440 Figure 13.19 Sample SCI Initialization Flowchart ..................................................................... 441 Figure 13.20 Sample SCI Transmission Operation in Clocked Synchronous Mode .................. 442 Figure 13.21 Sample Serial Transmission Data Flowchart......................................................... 443 Figure 13.22 Example of SCI Operation in Reception ............................................................... 444 Figure 13.23 Sample Serial Reception Flowchart ...................................................................... 445 Figure 13.24 Sample Flowchart of Simultaneous Serial Transmit and Receive Operations ...... 446 Figure 13.25 Schematic Diagram of Smart Card Interface Pin Connections.............................. 447 Figure 13.26 Normal Smart Card Interface Data Format ........................................................... 448 Figure 13.27 Direct Convention (SDIR = SINV = O/E = 0) ...................................................... 448 Page xxxviii of liv REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Figure 13.28 Inverse Convention (SDIR = SINV = O/E = 1)..................................................... 449 Figure 13.29 Receive Data Sampling Timing in Smart Card Mode (Using Clock of 372 Times the Transfer Rate) ..................................................... 450 Figure 13.30 Retransfer Operation in SCI Transmit Mode......................................................... 453 Figure 13.31 TEND Flag Generation Timing in Transmission Operation.................................. 453 Figure 13.32 Example of Transmission Processing Flow........................................................... 454 Figure 13.33 Retransfer Operation in SCI Receive Mode .......................................................... 456 Figure 13.34 Example of Reception Processing Flow ................................................................ 456 Figure 13.35 Timing for Fixing Clock Output Level.................................................................. 457 Figure 13.36 Clock Halt and Restart Procedure ......................................................................... 458 Figure 13.37 Example of Communication Using the SCI Select Function................................. 459 Figure 13.38 Example of Communication Using the SCI Select Function................................. 460 Figure 13.39 Example of Clocked Synchronous Transmission by DMAC or DTC ................... 465 Figure 13.40 Sample Flowchart for Mode Transition during Transmission ............................... 466 Figure 13.41 Port Pin State of Asynchronous Transmission Using Internal Clock .................... 466 Figure 13.42 Port Pin State of Synchronous Transmission Using Internal Clock ...................... 467 Figure 13.43 Sample Flowchart for Mode Transition during Reception .................................... 468 Figure 13.44 Operation when Switching from SCK Pin Function to Port Pin Function ............ 469 Figure 13.45 Operation when Switching from SCK Pin Function to Port Pin Function (Example of Preventing Low-Level Output)......................................................... 470 Section 14 Boundary Scan Function Figure 14.1 Figure 14.2 Figure 14.3 Figure 14.4 Figure 14.5 Block Diagram of Boundary Scan Function............................................................ 472 Boundary Scan Register Configuration ................................................................... 477 TAP Controller Status Transition ............................................................................ 485 Recommended Reset Signal Design........................................................................ 486 Serial Data Input/Output.......................................................................................... 486 Section 15 Universal Serial Bus Interface (USB) Figure 15.1 Figure 15.2 Figure 15.3 Figure 15.4 Figure 15.5 Figure 15.6 Figure 15.7 Figure 15.8 Block Diagram of USB ........................................................................................... 491 Example of Endpoint Configuration based on Bluetooth Standard......................... 499 USB Initialization.................................................................................................... 547 USB Cable Connection (When USB Module Stop or Software Standby Is Not Used)................................. 548 USB Cable Connection (When USB Module Stop or Software Standby Is Used) . 549 USB Cable Disconnection (When USB Module Stop or Software Standby Is Not Used)................................. 550 USB Cable Disconnection (When USB Module Stop or Software Standby Is Used)........................................ 551 Example Flowchart of Suspend and Resume Operations........................................ 552 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page xxxix of liv Figure 15.9 Example Flowchart of Suspend and Resume Interrupt Processing ......................... 553 Figure 15.10 Example Flowchart of Suspend and Remote-Wakeup Operations........................ 554 Figure 15.11 Example Flowchart of Remote-Wakeup Interrupt Processing .............................. 555 Figure 15.12 Control Transfer Stage Configuration ................................................................... 556 Figure 15.13 Setup Stage Operation ........................................................................................... 557 Figure 15.14 Data Stage Operation (Control-In) ........................................................................ 559 Figure 15.15 Data Stage Operation (Control-Out)...................................................................... 560 Figure 15.16 Status Stage Operation (Control-In)...................................................................... 561 Figure 15.17 Status Stage Operation (Control-Out) ................................................................... 562 Figure 15.18 EP1i Interrupt-In Transfer Operation .................................................................... 563 Figure 15.19 EP2i Bulk-In Transfer Operation .......................................................................... 565 Figure 15.20 EP2o Bulk-Out Transfer Operation....................................................................... 567 Figure 15.21 EP3i Isochronous-In Transfer Operation............................................................... 569 Figure 15.22 EP3o Isochronous-Out Transfer Operation ........................................................... 571 Figure 15.23 Forcible Stall by Firmware.................................................................................... 574 Figure 15.24 Automatic Stall by USB Function Module............................................................ 576 Figure 15.25 EP2iPKTE Operation in UTRG0 .......................................................................... 578 Figure 15.26 EP2oRDFN Operation in UTRG0......................................................................... 579 Figure 15.27 EP2iPKTE Operation in UTRG0 (Auto-Request)................................................. 581 Figure 15.28 EP2oRDFN Operation in UTRG0 (Auto-Request) ............................................... 581 Figure 15.29 Endpoint Configuration Example.......................................................................... 582 Figure 15.30 USB External Circuit in Bus-Powered Mode (When On-Chip Transceiver Is Used)................................................................... 587 Figure 15.31 USB External Circuit in Self-Powered Mode (When On-Chip Transceiver Is Used)................................................................... 588 Figure 15.32 USB External Circuit in Bus-Powered Mode (When External Transceiver Is Used) ................................................................... 589 Figure 15.33 USB External Circuit in Self-Powered Mode (When External Transceiver Is Used) ................................................................... 590 Figure 15.34 10-Byte Data Reception ........................................................................................ 593 Figure 15.35 EP3o Data Reception............................................................................................. 594 Figure 15.36 Transition to and from Software Standby Mode ................................................... 597 Figure 15.37 USB Software Standby Mode Transition Timing ................................................. 598 Figure 15.38 TR Interrupt Flag Set Timing ................................................................................ 599 Section 16 A/D Converter Figure 16.1 Figure 16.2 Figure 16.3 Figure 16.4 Page xl of liv Block Diagram of A/D Converter ........................................................................... 602 Access to ADDR (When Reading H'AA40)............................................................ 607 A/D Conversion Timing (Single-Chip Mode, Channel 1 Selected) ........................ 609 A/D Conversion Timing (Scan Mode, Channels AN0 to AN3 Selected)................ 610 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Figure 16.5 A/D Conversion Timing .......................................................................................... 611 Figure 16.6 External Trigger Input Timing ................................................................................ 612 Figure 16.7 A/D Conversion Precision Definitions (1) .............................................................. 614 Figure 16.8 A/D Conversion Precision Definitions (2) .............................................................. 614 Figure 16.9 Example of Analog Input Circuit ............................................................................ 615 Figure 16.10 Example of Analog Input Protection Circuit ......................................................... 617 Figure 16.11 Analog Input Pin Equivalent Circuit ..................................................................... 617 Section 17 D/A Converter Figure 17.1 Block Diagram of D/A Converter ........................................................................... 619 Figure 17.2 Example of D/A Converter Operation..................................................................... 622 Section 19 Flash Memory (F-ZTAT Version) Figure 19.1 Block Diagram of Flash Memory............................................................................ 628 Figure 19.2 Flash Memory State Transitions.............................................................................. 629 Figure 19.3 Boot Mode (Sample) ............................................................................................... 631 Figure 19.4 User Program Mode (Sample)................................................................................. 632 Figure 19.5 Flash Memory Block Configuration........................................................................ 633 Figure 19.6 System Configuration in SCI Boot Mode................................................................ 642 Figure 19.7 System Configuration Diagram when Using USB Boot Mode ............................... 646 Figure 19.8 Programming/Erasing Flowchart Example in User Program Mode ........................ 649 Figure 19.9 Flowchart for Flash Memory Emulation in RAM ................................................... 650 Figure 19.10 Example of RAM Overlap Operation.................................................................... 651 Figure 19.11 Program/Program-Verify Flowchart...................................................................... 653 Figure 19.12 Erase/Erase-Verify Flowchart ............................................................................... 655 Figure 19.13 Memory Map in Programmer Mode...................................................................... 658 Figure 19.14 Power-On/Off Timing (Boot Mode)...................................................................... 661 Figure 19.15 Power-On/Off Timing (User Program Mode) ....................................................... 662 Figure 19.16 Mode Transition Timing (Example: Boot Mode → User Mode ↔ User Program Mode) ........................... 663 Section 20 Masked ROM Figure 20.1 Block Diagram of On-Chip Masked ROM (256 kbytes)........................................ 665 Section 21 Clock Pulse Generator Figure 21.1 Figure 21.2 Figure 21.3 Figure 21.4 Figure 21.5 Block Diagram of Clock Pulse Generator ............................................................... 667 Connection of Crystal Resonator (Example)........................................................... 671 Crystal Resonator Equivalent Circuit ...................................................................... 672 Example Wiring Diagram for Connecting a Ceramic Resonator ............................ 672 External Clock Input (Examples) ............................................................................ 673 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page xli of liv Figure 21.6 External Clock Input Timing................................................................................... 674 Figure 21.7 Connection of Ceramic Resonator........................................................................... 675 Figure 21.8 Connection of Ceramic Resonator........................................................................... 675 Figure 21.9 48-MHz External Clock Input Timing .................................................................... 676 Figure 21.10 Pin Handling when 48-MHz External Clock Is Not Used..................................... 676 Figure 21.11 Example of PLL Circuit ........................................................................................ 677 Figure 21.12 Note on Board Design of Oscillator Circuit .......................................................... 678 Figure 21.13 Example of External Clock Switching Circuit ...................................................... 679 Figure 21.14 Example of External Clock Switchover Timing.................................................... 679 Section 22 Power-Down Modes Figure 22.1 Figure 22.2 Figure 22.3 Figure 22.4 Figure 22.5 Figure 22.6 Mode Transition Diagram ....................................................................................... 683 Medium-Speed Mode Transition and Clearance Timing ........................................ 689 Software Standby Mode Application Example ....................................................... 692 Hardware Standby Mode Timing (Example) .......................................................... 694 Timing of Transition to Hardware Standby Mode .................................................. 695 Timing of Recovery from Hardware Standby Mode............................................... 695 Section 24 Electrical Characteristics (H8S/2215) Figure 24.1 Power Supply Voltage and Operating Ranges ........................................................ 726 Figure 24.2 Output Load Circuit ................................................................................................ 730 Figure 24.3 System Clock Timing.............................................................................................. 732 Figure 24.4 Oscillation Stabilization Timing.............................................................................. 732 Figure 24.5 Reset Input Timing.................................................................................................. 733 Figure 24.6 Interrupt Input Timing............................................................................................. 734 Figure 24.7 Basic Bus Timing (Two-State Access).................................................................... 736 Figure 24.8 Basic Bus Timing (Three-State Access).................................................................. 737 Figure 24.9 Basic Bus Timing (Three-State Access with One Wait State) ................................ 738 Figure 24.10 Burst ROM Access Timing (Two-State Access)................................................... 739 Figure 24.11 External Bus Release Timing ................................................................................ 740 Figure 24.12 I/O Port Input/Output Timing................................................................................ 743 Figure 24.13 TPU Input/Output Timing ..................................................................................... 743 Figure 24.14 TPU Clock Input Timing....................................................................................... 743 Figure 24.15 8-bit Timer Output Timing.................................................................................... 744 Figure 24.16 8-bit Timer Clock Input Timing ............................................................................ 744 Figure 24.17 8-bit Timer Reset Input Timing............................................................................. 744 Figure 24.18 SCK Clock Input Timing ...................................................................................... 744 Figure 24.19 SCI Input/Output Timing (Clock Synchronous Mode) ......................................... 745 Figure 24.20 A/D Converter External Trigger Input Timing...................................................... 745 Figure 24.21 Boundary Scan TCK Input Timing ....................................................................... 745 Page xlii of liv REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Figure 24.22 Figure 24.23 Figure 24.24 Figure 24.25 Boundary Scan TRST Input Timing (At Reset Hold) ........................................... 745 Boundary Scan Data Transmission Timing........................................................... 746 Data Signal Timing ............................................................................................... 748 Test Load Circuit................................................................................................... 748 Section 25 Electrical Characteristics (H8S/2215R) Figure 25.1 Power Supply Voltage and Operating Ranges......................................................... 754 Figure 25.2 Output Load Circuit................................................................................................. 758 Figure 25.3 System Clock Timing .............................................................................................. 760 Figure 25.4 Oscillation Stabilization Timing.............................................................................. 760 Figure 25.5 Reset Input Timing.................................................................................................. 762 Figure 25.6 Interrupt Input Timing............................................................................................. 762 Figure 25.7 Basic Bus Timing (Two-State Access).................................................................... 765 Figure 25.8 Basic Bus Timing (Three-State Access).................................................................. 766 Figure 25.9 Basic Bus Timing (Three-State Access with One Wait State) ................................ 767 Figure 25.10 Burst ROM Access Timing (Two-State Access)................................................... 768 Figure 25.11 External Bus Release Timing ................................................................................ 769 Figure 25.12 I/O Port Input/Output Timing................................................................................ 772 Figure 25.13 TPU Input/Output Timing ..................................................................................... 772 Figure 25.14 TPU Clock Input Timing....................................................................................... 772 Figure 25.15 8-bit Timer Output Timing.................................................................................... 773 Figure 25.16 8-bit Timer Clock Input Timing ............................................................................ 773 Figure 25.17 8-bit Timer Reset Input Timing............................................................................. 773 Figure 25.18 SCK Clock Input Timing....................................................................................... 773 Figure 25.19 SCI Input/Output Timing (Clock Synchronous Mode) ......................................... 774 Figure 25.20 A/D Converter External Trigger Input Timing...................................................... 774 Figure 25.21 Boundary Scan TCK Input Timing ....................................................................... 774 Figure 25.22 Boundary Scan TRST Input Timing (At Reset Hold) ........................................... 774 Figure 25.23 Boundary Scan Data Transmission Timing........................................................... 775 Figure 25.24 Data Signal Timing ............................................................................................... 777 Figure 25.25 Test Load Circuit................................................................................................... 777 Section 26 Electrical Characteristics (H8S/2215T) Figure 26.1 Figure 26.2 Figure 26.3 Figure 26.4 Figure 26.5 Figure 26.6 Figure 26.7 Power Supply Voltage and Operating Ranges......................................................... 783 Output Load Circuit................................................................................................. 787 System Clock Timing .............................................................................................. 789 Oscillation Stabilization Timing.............................................................................. 789 Reset Input Timing.................................................................................................. 790 Interrupt Input Timing............................................................................................. 791 Basic Bus Timing (Two-State Access).................................................................... 793 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page xliii of liv Figure 26.8 Basic Bus Timing (Three-State Access).................................................................. 794 Figure 26.9 Basic Bus Timing (Three-State Access with One Wait State) ................................ 795 Figure 26.10 Burst ROM Access Timing (Two-State Access)................................................... 796 Figure 26.11 External Bus Release Timing ................................................................................ 797 Figure 26.12 I/O Port Input/Output Timing................................................................................ 799 Figure 26.13 TPU Input/Output Timing ..................................................................................... 800 Figure 26.14 TPU Clock Input Timing....................................................................................... 800 Figure 26.15 8-bit Timer Output Timing.................................................................................... 800 Figure 26.16 8-bit Timer Clock Input Timing ............................................................................ 800 Figure 26.17 8-bit Timer Reset Input Timing............................................................................. 801 Figure 26.18 SCK Clock Input Timing ...................................................................................... 801 Figure 26.19 SCI Input/Output Timing (Clock Synchronous Mode) ......................................... 801 Figure 26.20 A/D Converter External Trigger Input Timing...................................................... 801 Figure 26.21 Boundary Scan TCK Input Timing ....................................................................... 802 Figure 26.22 Boundary Scan TRST Input Timing (At Reset Hold) ........................................... 802 Figure 26.23 Boundary Scan Data Transmission Timing........................................................... 802 Figure 26.24 Data Signal Timing ............................................................................................... 804 Figure 26.25 Test Load Circuit................................................................................................... 804 Section 27 Electrical Characteristics (H8S/2215C) Figure 27.1 Power Supply Voltage and Operating Ranges ........................................................ 808 Figure 27.2 Output Load Circuit ................................................................................................ 812 Figure 27.3 System Clock Timing.............................................................................................. 814 Figure 27.4 Oscillation Stabilization Timing.............................................................................. 814 Figure 27.5 Reset Input Timing.................................................................................................. 816 Figure 27.6 Interrupt Input Timing............................................................................................. 816 Figure 27.7 Basic Bus Timing (Two-State Access).................................................................... 818 Figure 27.8 Basic Bus Timing (Three-State Access).................................................................. 819 Figure 27.9 Basic Bus Timing (Three-State Access with One Wait State) ................................ 820 Figure 27.10 Burst ROM Access Timing (Two-State Access)................................................... 821 Figure 27.11 External Bus Release Timing ................................................................................ 822 Figure 27.12 I/O Port Input/Output Timing................................................................................ 825 Figure 27.13 TPU Input/Output Timing ..................................................................................... 825 Figure 27.14 TPU Clock Input Timing....................................................................................... 825 Figure 27.15 8-bit Timer Output Timing.................................................................................... 826 Figure 27.16 8-bit Timer Clock Input Timing ............................................................................ 826 Figure 27.17 8-bit Timer Reset Input Timing............................................................................. 826 Figure 27.18 SCK Clock Input Timing ...................................................................................... 826 Figure 27.19 SCI Input/Output Timing (Clock Synchronous Mode) ......................................... 827 Figure 27.20 A/D Converter External Trigger Input Timing...................................................... 827 Page xliv of liv REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Figure 27.21 Figure 27.22 Figure 27.23 Figure 27.24 Figure 27.25 Boundary Scan TCK Input Timing ....................................................................... 827 Boundary Scan TRST Input Timing (At Reset Hold) ........................................... 827 Boundary Scan Data Transmission Timing........................................................... 828 Data Signal Timing ............................................................................................... 830 Test Load Circuit................................................................................................... 830 Appendix Figure C.1 TFP-120, TFP-120V Package Dimension ................................................................ 840 Figure C.2 BP-112, BP-112V Package Dimension .................................................................... 841 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page xlv of liv Page xlvi of liv REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Tables Section 2 CPU Table 2.1 Table 2.2 Table 2.3 Table 2.4 Table 2.4 Table 2.5 Table 2.6 Table 2.7 Table 2.7 Table 2.8 Table 2.9 Table 2.10 Table 2.11 Table 2.12 Table 2.13 Table 2.13 Instruction Classification........................................................................................... 39 Operation Notation.................................................................................................... 40 Data Transfer Instructions ......................................................................................... 41 Arithmetic Operations Instructions (1)...................................................................... 42 Arithmetic Operations Instructions (2)...................................................................... 43 Logic Operations Instructions ................................................................................... 44 Shift Instructions ....................................................................................................... 44 Bit Manipulation Instructions (1) .............................................................................. 45 Bit Manipulation Instructions (2) .............................................................................. 46 Branch Instructions ................................................................................................... 47 System Control Instruction........................................................................................ 48 Block Data Transfer Instruction ................................................................................ 49 Addressing Modes..................................................................................................... 50 Absolute Address Access Ranges ............................................................................. 52 Effective Address Calculation (1) ............................................................................. 54 Effective Address Calculation (2) ............................................................................. 55 Section 3 MCU Operating Modes Table 3.1 Table 3.2 Table 3.3 MCU Operating Mode Selection............................................................................... 63 USB Support in Mode 7 ............................................................................................ 67 Pin Functions in Each Operating Mode..................................................................... 68 Section 4 Exception Handling Table 4.1 Table 4.2 Table 4.3 Table 4.4 Table 4.5 Exception Types and Priority .................................................................................... 73 Exception Handling Vector Table ............................................................................. 74 Reset Types ............................................................................................................... 75 Status of CCR and EXR after Trace Exception Handling......................................... 79 Status of CCR and EXR after Trap Instruction Exception Handling ........................ 80 Section 5 Interrupt Controller Table 5.1 Table 5.2 Table 5.3 Table 5.4 Table 5.5 Table 5.6 Pin Configuration ...................................................................................................... 85 Interrupt Sources, Vector Addresses, and Interrupt Priorities ................................... 94 Interrupt Control Modes............................................................................................ 96 Interrupt Response Times........................................................................................ 101 Number of States in Interrupt Handling Routine Execution Statuses ..................... 102 Interrupt Source Selection and Clearing Control .................................................... 104 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page xlvii of liv Section 6 Bus Controller Table 6.1 Table 6.2 Table 6.3 Table 6.4 Table 6.5 Pin Configuration .................................................................................................... 111 Bus Specifications for Each Area (Basic Bus Interface) ......................................... 123 Data Buses Used and Valid Strobes ........................................................................ 128 Pin States in Idle Cycle ........................................................................................... 144 Pin States in Bus Released State ............................................................................. 145 Section 7 DMA Controller (DMAC) Table 7.1 Table 7.2 Table 7.3 Table 7.4 Table 7.5 Table 7.6 Table 7.7 Table 7.8 Table 7.9 Table 7.10 Short Address Mode and Full Address Mode (For 1 Channel: Example of Channel 0) ................................................................. 152 DMAC Transfer Modes .......................................................................................... 172 Register Functions in Sequential Mode................................................................... 173 Register Functions in Idle Mode ............................................................................. 176 Register Functions in Repeat Mode ........................................................................ 178 Register Functions in Normal Mode ....................................................................... 181 Register Functions in Block Transfer Mode ........................................................... 184 DMAC Activation Sources ..................................................................................... 189 DMAC Channel Priority Order ............................................................................... 197 Interrupt Source Priority Order ............................................................................... 201 Section 8 Data Transfer Controller (DTC) Table 8.1 Table 8.2 Table 8.3 Table 8.4 Table 8.5 Table 8.6 Table 8.7 Table 8.8 Activation Source and DTCER Clearance .............................................................. 212 Interrupt Sources, DTC Vector Addresses, and Corresponding DTCE .................. 215 Overview of DTC Functions ................................................................................... 217 Register Information in Normal Mode.................................................................... 218 Register Information in Repeat Mode ..................................................................... 219 Register Information in Block Transfer Mode ........................................................ 220 DTC Execution Status............................................................................................. 224 Number of States Required for Each Execution Status........................................... 224 Section 9 I/O Ports Table 9.1 Table 9.1 Table 9.1 Table 9.1 Table 9.2 Table 9.3 Table 9.4 Table 9.5 Table 9.6 Page xlviii of liv Port Functions (1).................................................................................................... 229 Port Functions (2).................................................................................................... 230 Port Functions (3).................................................................................................... 231 Port Functions (4).................................................................................................... 232 P17 Pin Function ..................................................................................................... 235 P16 Pin Function ..................................................................................................... 235 P15 Pin Function ..................................................................................................... 236 P14 Pin Function ..................................................................................................... 236 P13 Pin Function ..................................................................................................... 236 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Table 9.7 Table 9.8 Table 9.9 Table 9.10 Table 9.11 Table 9.12 Table 9.13 Table 9.14 Table 9.15 Table 9.16 Table 9.17 Table 9.18 Table 9.19 Table 9.20 Table 9.21 Table 9.22 Table 9.23 Table 9.24 Table 9.25 Table 9.26 Table 9.27 Table 9.28 Table 9.29 Table 9.30 Table 9.31 Table 9.32 Table 9.33 Table 9.34 Table 9.35 Table 9.36 Table 9.37 Table 9.38 Table 9.39 Table 9.40 Table 9.41 Table 9.42 Table 9.43 Table 9.44 Table 9.45 Table 9.46 P12 Pin Function ..................................................................................................... 237 P11 Pin Function ..................................................................................................... 237 P10 Pin Function ..................................................................................................... 237 P36 Pin Function ..................................................................................................... 240 P35 Pin Function ..................................................................................................... 241 P34 Pin Function ..................................................................................................... 241 P33 Pin Function ..................................................................................................... 241 P32 Pin Function ..................................................................................................... 242 P31 Pin Function ..................................................................................................... 242 P30 Pin Function ..................................................................................................... 242 P74 Pin Function ..................................................................................................... 246 P73 Pin Function ..................................................................................................... 246 P72 Pin Function ..................................................................................................... 246 P71 Pin Function ..................................................................................................... 246 P70 Pin Function ..................................................................................................... 247 PA3 Pin Function .................................................................................................... 251 PA2 Pin Function .................................................................................................... 252 PA1 Pin Function .................................................................................................... 252 PA0 Pin Function .................................................................................................... 252 Input Pull-Up MOS States (Port A) ........................................................................ 253 PB7 Pin Function .................................................................................................... 256 PB6 Pin Function .................................................................................................... 256 PB5 Pin Function .................................................................................................... 256 PB4 Pin Function .................................................................................................... 256 PB3 Pin Function .................................................................................................... 257 PB2 Pin Function .................................................................................................... 257 PB1 Pin Function .................................................................................................... 257 PB0 Pin Function .................................................................................................... 257 Input Pull-Up MOS States (Port B)......................................................................... 258 PC7 Pin Function .................................................................................................... 261 PC6 Pin Function .................................................................................................... 261 PC5 Pin Function .................................................................................................... 261 PC4 Pin Function .................................................................................................... 261 PC3 Pin Function .................................................................................................... 261 PC2 Pin Function .................................................................................................... 262 PC1 Pin Function .................................................................................................... 262 PC0 Pin Function .................................................................................................... 262 Input Pull-Up MOS States (Port C)......................................................................... 263 PD7 Pin Function .................................................................................................... 266 PD6 Pin Function .................................................................................................... 266 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page xlix of liv Table 9.47 Table 9.48 Table 9.49 Table 9.50 Table 9.51 Table 9.52 Table 9.53 Table 9.54 Table 9.55 Table 9.56 Table 9.57 Table 9.58 Table 9.59 Table 9.60 Table 9.61 Table 9.62 Table 9.63 Table 9.64 Table 9.65 Table 9.66 Table 9.67 Table 9.68 Table 9.69 Table 9.70 Table 9.71 Table 9.72 Table 9.73 Table 9.74 Table 9.75 Table 9.76 PD5 Pin Function .................................................................................................... 266 PD4 Pin Function .................................................................................................... 266 PD3 Pin Function .................................................................................................... 266 PD2 Pin Function .................................................................................................... 267 PD1 Pin Function .................................................................................................... 267 PD0 Pin Function .................................................................................................... 267 Input Pull-Up MOS States (Port D) ........................................................................ 267 PE7 Pin Function..................................................................................................... 270 PE6 Pin Function..................................................................................................... 270 PE5 Pin Function..................................................................................................... 271 PE4 Pin Function..................................................................................................... 271 PE3 Pin Function..................................................................................................... 271 PE2 Pin Function..................................................................................................... 271 PE1 Pin Function..................................................................................................... 272 PE0 Pin Function..................................................................................................... 272 Input Pull-Up MOS States (Port E)......................................................................... 273 PF7 Pin Function..................................................................................................... 276 PF6 Pin Function..................................................................................................... 276 PF5 Pin Function..................................................................................................... 276 PF4 Pin Function..................................................................................................... 276 PF3 Pin Function..................................................................................................... 277 PF2 Pin Function..................................................................................................... 277 PF1 Pin Function..................................................................................................... 277 PF0 Pin Function..................................................................................................... 277 PG4 Pin Function .................................................................................................... 280 PG3 Pin Function .................................................................................................... 280 PG2 Pin Function .................................................................................................... 280 PG1 Pin Function .................................................................................................... 280 PG0 Pin Function .................................................................................................... 280 Examples of Ways to Handle Unused Input Pins.................................................... 281 Section 10 16-Bit Timer Pulse Unit (TPU) Table 10.1 Table 10.2 Table 10.3 Table 10.4 Table 10.5 Table 10.6 Table 10.7 Table 10.8 Page l of liv TPU Functions ........................................................................................................ 285 Pin Configuration .................................................................................................... 287 CCLR2 to CCLR0 (channel 0)................................................................................ 290 CCLR2 to CCLR0 (channels 1 and 2)..................................................................... 290 TPSC2 to TPSC0 (channel 0).................................................................................. 291 TPSC2 to TPSC0 (channel 1).................................................................................. 291 TPSC2 to TPSC0 (channel 2).................................................................................. 292 MD3 to MD0........................................................................................................... 294 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Table 10.9 Table 10.10 Table 10.11 Table 10.12 Table 10.13 Table 10.14 Table 10.15 Table 10.16 Table 10.17 Table 10.18 Table 10.19 Table 10.20 Table 10.21 Table 10.22 Table 10.23 Table 10.24 TIORH_0 (channel 0).............................................................................................. 296 TIORH_0 (channel 0).............................................................................................. 297 TIORL_0 (channel 0) .............................................................................................. 298 TIORL_0 (channel 0) .............................................................................................. 299 TIOR_1 (channel 1) ................................................................................................ 300 TIOR_1 (channel 1) ................................................................................................ 301 TIOR_2 (channel 2) ................................................................................................ 302 TIOR_2 (channel 2) ................................................................................................ 303 Register Combinations in Buffer Operation............................................................ 320 PWM Output Registers and Output Pins................................................................. 324 Phase Counting Mode Clock Input Pins.................................................................. 328 Up/Down-Count Conditions in Phase Counting Mode 1 ........................................ 329 Up/Down-Count Conditions in Phase Counting Mode 2 ........................................ 330 Up/Down-Count Conditions in Phase Counting Mode 3 ........................................ 331 Up/Down-Count Conditions in Phase Counting Mode 4 ........................................ 332 TPU Interrupts......................................................................................................... 333 Section 11 8-Bit Timers (TMR) Table 11.1 Table 11.2 Table 11.3 Table 11.4 Table 11.5 Pin Configuration .................................................................................................... 351 Clock Input to TCNT and Count Condition ............................................................ 354 8-Bit Timer Interrupt Sources ................................................................................. 362 Timer Output Priorities ........................................................................................... 366 Switching of Internal Clock and TCNT Operation ................................................. 367 Section 12 Watchdog Timer (WDT) Table 12.1 WDT Interrupt Source............................................................................................. 376 Section 13 Serial Communication Interface Table 13.1 Table 13.2 Table 13.3 Table 13.4 Table 13.5 Table 13.6 Table 13.7 Table 13.8 Pin Configuration .................................................................................................... 386 Relationships between the N Setting in BRR and Bit Rate B ................................. 415 BRR Settings for Various Bit Rates (Asynchronous Mode) ................................... 416 Maximum Bit Rate for Each Frequency (Asynchronous Mode)............................. 420 Maximum Bit Rate with External Clock Input (Asynchronous Mode)................... 420 BRR Settings for Various Bit Rates (Clocked Synchronous Mode) ....................... 421 Maximum Bit Rate with External Clock Input (Clocked Synchronous Mode)....... 421 BRR Settings for Various Bit Rates (Smart Card Interface Mode, when n = 0 and S = 372)........................................... 422 Table 13.9 Maximum Bit Rate at Various Frequencies (Smart Card Interface Mode) ............. 422 Table 13.10 Serial Transfer Formats (Asynchronous Mode) ...................................................... 424 Table 13.11 SSR Status Flags and Receive Data Handling......................................................... 431 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page li of liv Table 13.12 SCI Interrupt Sources.............................................................................................. 462 Table 13.13 Interrupt Sources in Smart Card Interface Mode .................................................... 463 Section 14 Boundary Scan Function Table 14.1 Table 14.2 Table 14.3 Table 14.4 Pin Configuration .................................................................................................... 473 Instruction configuration ......................................................................................... 474 IDCODE Register Configuration ............................................................................ 476 Correspondence between LSI Pins and Boundary Scan Register ........................... 478 Section 15 Universal Serial Bus Interface (USB) Table 15.1 Table 15.2 Table 15.3 Table 15.4 Table 15.5 Table 15.6 Table 15.7 Table 15.8 Table 15.9 Pin Configuration .................................................................................................... 492 EPINFO Data Settings ............................................................................................ 500 Relationship between the UTSTR0 Setting and Pin Outputs .................................. 540 Relationship between the UTSTR1 Settings and Pin Inputs ................................... 542 SCI Interrupt Sources.............................................................................................. 544 Command Decoding on Firmware .......................................................................... 572 Register Name Modification List ............................................................................ 583 Bit Name Modification List .................................................................................... 584 EPINFO Data Settings ............................................................................................ 585 Section 16 A/D Converter Table 16.1 Table 16.2 Table 16.3 Table 16.4 Table 16.5 Table 16.6 Pin Configuration .................................................................................................... 603 Analog Input Channels and Corresponding ADDR Registers ................................ 604 A/D Conversion Time (Single Mode) ..................................................................... 611 A/D Conversion Time (Scan Mode) ....................................................................... 612 A/D Converter Interrupt Source .............................................................................. 613 Analog Pin Specifications ....................................................................................... 617 Section 17 D/A Converter Table 17.1 Pin Configuration .................................................................................................... 620 Section 19 Flash Memory (F-ZTAT Version) Table 19.1 Table 19.2 Table 19.3 Table 19.4 Table 19.5 Table 19.6 Table 19.7 Page lii of liv Differences between Boot Mode and User Program Mode..................................... 630 Pin Configuration .................................................................................................... 634 Setting On-Board Programming Modes.................................................................. 641 SCI Boot Mode Operation....................................................................................... 644 System Clock Frequencies for Which Automatic Adjustment of LSI Bit Rate Is Possible ................................................................................................................... 644 Enumeration Information ........................................................................................ 645 USB Boot Mode Operation ..................................................................................... 648 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Table 19.8 Table 19.9 Flash Memory Operating States .............................................................................. 658 Registers Present in F-ZTAT Version but Absent in Masked ROM Version ......... 664 Section 21 Clock Pulse Generator Table 21.1 Table 21.2 Table 21.3 Table 21.4 Table 21.5 Table 21.6 List of Suitable Resonators...................................................................................... 671 Damping Resistance Value ..................................................................................... 671 Crystal Resonator Characteristics ........................................................................... 672 External Clock Input Conditions............................................................................. 673 External Clock Input Conditions when Duty Adjustment Circuit Is Not Used ....... 674 External Clock Input Conditions when Duty Adjustment Circuit Is Not Used ....... 676 Section 22 Power-Down Modes Table 22.1 Table 22.2 Table 22.3 Table 22.4 LSI Internal States in Each Mode............................................................................ 682 Low Power Dissipation Mode Transition Conditions ............................................. 683 Oscillation Stabilization Time Settings ................................................................... 691 φ Pin State in Each Processing State ....................................................................... 696 Section 24 Electrical Characteristics (H8S/2215) Table 24.1 Table 24.2 Table 24.3 Table 24.4 Table 24.5 Table 24.6 Table 24.7 Table 24.8 Absolute Maximum Ratings.................................................................................... 725 DC Characteristics................................................................................................... 727 Permissible Output Currents ................................................................................... 730 Clock Timing .......................................................................................................... 731 Control Signal Timing............................................................................................. 733 Bus Timing.............................................................................................................. 735 Timing of On-Chip Supporting Modules ................................................................ 741 USB Characteristics (USD+ and USD- pins) when On-Chip USB Transceiver Is Used ........................................................................................................................ 747 Table 24.9 A/D Conversion Characteristics .............................................................................. 749 Table 24.10 D/A Conversion Characteristics .............................................................................. 749 Table 24.11 Flash Memory Characteristics................................................................................. 750 Section 25 Electrical Characteristics (H8S/2215R) Table 25.1 Table 25.2 Table 25.3 Table 25.4 Table 25.5 Table 25.6 Table 25.7 Absolute Maximum Ratings.................................................................................... 753 DC Characteristics................................................................................................... 755 Permissible Output Currents ................................................................................... 758 Clock Timing .......................................................................................................... 759 Control Signal Timing............................................................................................. 761 Bus Timing.............................................................................................................. 763 Timing of On-Chip Supporting Modules ................................................................ 770 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page liii of liv Table 25.8 USB Characteristics (USD+ and USD- pins) when On-Chip USB Transceiver Is Used ........................................................................................................................ 776 Table 25.9 A/D Conversion Characteristics.............................................................................. 778 Table 25.10 D/A Conversion Characteristics.............................................................................. 779 Table 25.11 Flash Memory Characteristics................................................................................. 779 Section 26 Electrical Characteristics (H8S/2215T) Table 26.1 Table 26.2 Table 26.3 Table 26.4 Table 26.5 Table 26.6 Table 26.7 Table 26.8 Absolute Maximum Ratings.................................................................................... 783 DC Characteristics .................................................................................................. 784 Permissible Output Currents ................................................................................... 787 Clock Timing .......................................................................................................... 788 Control Signal Timing............................................................................................. 790 Bus Timing.............................................................................................................. 792 Timing of On-Chip Supporting Modules ................................................................ 798 USB Characteristics (USD+ and USD- pins) when On-Chip USB Transceiver Is Used ........................................................................................................................ 803 Table 26.9 A/D Conversion Characteristics.............................................................................. 804 Table 26.10 D/A Conversion Characteristics.............................................................................. 805 Table 26.11 Flash Memory Characteristics................................................................................. 805 Section 27 Electrical Characteristics (H8S/2215C) Table 27.1 Table 27.2 Table 27.3 Table 27.4 Table 27.5 Table 27.6 Table 27.7 Table 27.8 Absolute Maximum Ratings.................................................................................... 807 DC Characteristics .................................................................................................. 809 Permissible Output Currents ................................................................................... 812 Clock Timing .......................................................................................................... 813 Control Signal Timing............................................................................................. 815 Bus Timing.............................................................................................................. 817 Timing of On-Chip Supporting Modules ................................................................ 823 USB Characteristics (USD+ and USD- pins) when On-Chip USB Transceiver Is Used ........................................................................................................................ 829 Table 27.9 A/D Conversion Characteristics.............................................................................. 831 Table 27.10 D/A Conversion Characteristics.............................................................................. 831 Table 27.11 Flash Memory Characteristics................................................................................. 832 Page liv of liv REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 1 Overview Section 1 Overview 1.1 Overview • High-speed H8S/2000 central processing unit with 16-bit architecture ⎯ Upward-compatible with H8/300 and H8/300H CPUs on an object level ⎯ Sixteen 16-bit general registers ⎯ 65 basic instructions • Various peripheral functions ⎯ DMA controller (DMAC) ⎯ Data transfer controller (DTC) ⎯ 16-bit timer-pulse unit (TPU) ⎯ 8-bit timer (TMR) ⎯ Watchdog timer (WDT) ⎯ Asynchronous or clocked synchronous serial communication interface (SCI) ⎯ Boundary scan ⎯ Universal serial bus (USB) ⎯ 10-bit A/D converter ⎯ 8-bit D/A converter • User debug interface (H-UDI)* ⎯ Clock pulse generator Note: * Available only in H8S/2215R, H8S/2215T and H8S/2215C. • On-chip memory ROM Part No. ROM RAM Remarks F-ZTAT Version HD64F2215 256 kbytes 16 kbytes SCI boot version HD64F2215U 256 kbytes 16 kbytes USB boot version HD64F2215CU 256 kbytes 20 kbytes USB boot version HD64F2215T 256 kbytes 20 kbytes SCI boot version HD64F2215TU 256 kbytes 20 kbytes USB boot version HD64F2215R 256 kbytes 20 kbytes SCI boot version HD64F2215RU 256 kbytes 20 kbytes USB boot version HD6432215B 128 kbytes 16 kbytes ⎯ HD6432215C 64 kbytes 8 kbytes ⎯ Masked ROM Version REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 1 of 846 H8S/2215 Group Section 1 Overview • General I/O ports Modes 4 and 5 Mode 6 Mode 7 ⎯ I/O pins: 41 41 68 ⎯ Input-only pins: 15 23 7 • Supports various power-down states • Compact package Package (Code) Body Size Pin Pitch Remarks TQFP-120 TFP-120, TFP-120V* 14.0 × 14.0 mm 0.4 mm ⎯ P-LFBGA-112 BP-112, BP-112V* 10.0 × 10.0 mm 0.8 mm ⎯ Note: * Page 2 of 846 TFP-120V and BP-120V only for H8S/2215C. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group PD7 / D15 PD6 / D14 PD5 / D13 PD4 / D12 PD3 / D11 PD2 / D10 PD1 / D9 PD0 / D8 PE7 / D7 PE6 / D6 PE5 / D5 PE4 / D4 PE3 / D3 PE2 / D2 PE1 / D1 PE0 / D0 Internal Block Diagram VCC VCC VSS VSS DrVCC DrVSS TDO TDI TCK TMS TRST EMLE*2 1.2 Section 1 Overview Port D Port E Port A Port B PB7/A15 PB6/A14 PB5/A13 PB4/A12 PB3 / A11 PB2/A10 PB1/A9 PB0/A8 Port C PC7/A7 PC6/A6 PC5/A5 PC4/A4 PC3/A3 PC2/A2 PC1/A1 PC0/A0 Port 3 Bus controller Internal address bus PA3/A19/SCK2/SUSPND PA2/A18/RxD2 PA1/A17/TxD2 PA0/A16 P36(PUPD+) P35/SCK1/IRQ5 P34/RxD1 P33/TxD1 P32/SCK0/IRQ4 P31/RxD0 P30/TxD0 Peripheral data bus USB WDT ROM Peripheral address bus DMAC DTC Port F TMR (2 channels) SCI0 (1 channnel, high speed UART) SCI1, 2 (2 channels) RAM A/D converter (6 channels) TPU (3 channels) AVCC Vref AVSS D/A converter (1 channel) Port 9 P96/AN14/DA0 Port 4 P97/AN15/DA1 Port 7 P43/AN3 P42/AN2 P41/AN1 P40/AN0 P10 / TIOCA0 /A20/VM P11 / TIOCB0 /A21/VP P12 / TIOCC0 / TCLKA/A22/RCV P13 / TIOCD0 / TCLKB/A23/VPO P14 / TIOCA1/IRQ0 P15 / TIOCB1 / TCLKC/FSE0 P16 / TIOCA2/IRQ1 P17 / TIOCB2/ TCLKD/OE Port 1 P70/TMRI01/TMCI01/CS4 P71/CS5 P72 /TMO0/CS6 P73 / T M O 1 /CS7 P74 / MRES PG4/CS0 PG3/CS1 PG2/CS2 PG1/CS3/IRQ7 PG0 Interrupts controller Port G PF7/φ PF6/AS PF5/RD PF4/HWR PF3/LWR/ADTRG/IRQ3 PF2/WAIT PF1/BACK PF0/BREQ/IRQ2 Internal data bus USB STBY RES NMI FWE*1 USPND USD+ USDUBPM VBUS H8S/2000 CPU clock pulse generator PLL for USB System clock pulse generator Boundary scan H-UDI*2 MD2 MD1 MD0 EXTAL XTAL PLLVCC PLLCAP PLLVSS EXTAL48 XTAL48 Notes: 1. The FWE pin is only provided in the flash memory version. 2. The H-UDI function and EMLE pin are only provided in H8S/2215R, H8S/2215T and H8S/2215C. Figure 1.1 Internal Block Diagram REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 3 of 846 H8S/2215 Group Section 1 Overview Pin Arrangement 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 P32/CSK0/IRQ4 P31/RxD0 P30/TxD0 PF0/BREQ/IRQ2 PF1/BACK PF2/WAIT NC PF3/LWR/ADTRG/IRQ3 NC PF4/HWR PF5/RD PF6/AS PF7/φ MD2 EXTAL VCC XTAL VSS RES STBY NMI FWE*1 MD1 MD0 EXTAL48 XTAL48 PLLVCC PLLCAP PLLVSS VSS 1.3 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 TFP-120, TFP-120V (Pin Arrangement) 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 DrVSS USDUSD+ DrVCC UBPM VBUS NC USPND NC AVCC Vref P40/AN0 P41/AN1 P42/AN2 P43/AN3 P96/AN14/DA0 P97/AN15/DA1 AVSS P17/TIOCB2/TCLKD/OE P16/TIOCA2/IRQ1 P15/TIOCB1/TCLKC/FSE0 P14/TIOCA1/IRQ0 P13/TIOCD0/TCLKB/A23/VPO P12/TIOCC0/TCLKA/A22/RCV P11/TIOCB0/A21/VP P10/TIOCA0/A20/VM NC PA3/A19/SCK2/SUSPND PA2/A18/RxD2 PA1/A17/TxD2 NC or EMLE*2 PD0/D8 PD1/D9 PD2/D10 PD3/D11 PD4/D12 PD5/D13 PD6/D14 PD7/D15 VCC PC0/A0 VSS PC1/A1 PC2/A2 PC3/A3 PC4/A4 PC5/A5 PC6/A6 PC7/A7 PB0/A8 PB1/A9 NC PB2/A10 NC PB3/A11 PB4/A12 PB5/A13 PB6/A14 PB7/A15 PA0/A16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 P33/TxD1 P34/RxD1 P35/SCK1/IRQ5 P36(PUPD+) NC P74/MRES P73/TMO1/CS7 P72/TMO0/CS6 P71/CS5 P70/TMRI01/TMCI01/CS4 PG0 PG1/CS3/IRQ7 PG2/CS2 PG3/CS1 PG4/CS0 TDO TCK TMS TRST TDI PE0/D0 NC PE1/D1 NC PE2/D2 PE3/D3 PE4/D4 PE5/D5 PE6/D6 PE7/D7 Notes: NC (No Connection): These pins should not be connected; they should be left open. 1. The FWE pin is only provided in the flash memory version. 2. NC pin in H8S/2215. EMLE pin in H8S/2215R, H8S/2215T and H8S/2215C. Figure 1.2 Pin Arrangement (TFP-120, TFP-120V) Page 4 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 11 10 Section 1 Overview NC P31/RxD0 PF1/BACK PF4/HWR P34/RxD1 P33/TxD1 P30/TxD0 PF2/WAIT PF7/φ VCC RES FWE*1 PF6/AS EXTAL VSS MD1 XTAL48 PLLVSS USD- EXTAL48 PLLCAP NC 9 P74/ MRES P36 (PUPD+) P32/ SCK0/ IRQ4 PF0/ BREQ/ IRQ2 PF5/RD XTAL STBY MD0 DrVSS USD+ UBPM 8 P71/CS5 P72/ TMO0/ CS6 P73/ TMO1/ CS7 P35/ SCK1/ IRQ5 PF3/ LWR/ ADTRG/ IRQ3 MD2 NMI PLLVCC DrVCC VBUS AVCC 7 PG1/ PG2/CS2 CS3/IRQ7 PG0 P70/ TMRI01/ TMCI01/ CS4 USPND Vref 6 PG4/CS0 TDO PG3/CS1 TCK 5 TMS TRST TDI PE1/D1 4 PE0/D0 PE2/D2 PE4/D4 PD2/D10 VCC PC5/A5 PB2/A10 3 PE3/D3 PE5/D5 PE7/D7 PD5/D13 PC0/A0 PC2/A2 PB0/A8 PB5/A13 PA0/A16 P10/ TIOCA0/ A20/VM 2 PE6/D6 PD0/D8 PD3/D11 PD6/D14 PC1/A1 PC4/A4 PC7/A7 PB3/A11 PB6/A14 PA1/ PA2/ A17/TxD2 A18/RxD2 1 NC*2 or EMLE PD1/D9 PD4/D12 PD7/D15 VSS PC3/A3 PC6/A6 PB1/A9 PB4/A12 PB7/A15 NC A B E F G H J K L C D BP-112, BP-112V (Top view) P42/AN2 P40/AN0 P41/AN1 P97/ P43/AN3 AN15/DA1 P96/ AN14/ DA0 P15/ P17/ TIOCB1/ P16/TIO TIOCB2/ AVSS TCLKC/ CA2/IRQ1 TCLKD/OE FSE0 PA3/ P12/ P13/ P14/ A19/ TIOCC0/ TIOCD0/ TIOCA1/ SCK2/ TCLKA/ TCLKB/ IRQ0 SUSPND A22/RCV A23/VPO P11/ TIOCB0/ A21/VP INDEX Notes: NC (No Connection): These pins should not be connected; they should be left open. 1. The FWE pin is only provided in the flash memory version. 2. NC in H8S/2215. EMLE pin in H8S/2215R, H8S/2215T and H8S/2215C. Figure 1.3 Pin Arrangement (BP-112, BP-112V) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 5 of 846 H8S/2215 Group Section 1 Overview 1.4 Pin Functions in Each Operating Mode Pin No. Pin Name TFP-120, BP-112, TFP-120V BP-112V Mode 4 1 A1 NC or EMLE* 2 B2 D8 D8 D8 PD0 D0 3 B1 D9 D9 D9 PD1 D1 4 D4 D10 D10 D10 PD2 D2 5 C2 D11 D11 D11 PD3 D3 6 C1 D12 D12 D12 PD4 D4 7 D3 D13 D13 D13 PD5 D5 8 D2 D14 D14 D14 PD6 D6 9 D1 D15 D15 D15 PD7 D7 10 E4 VCC VCC VCC VCC VCC 11 E3 A0 A0 PC1/A0 PC0 A0 12 E1 VSS VSS VSS VSS VSS 13 E2 A1 A1 PC1/A1 PC1 A1 14 F3 A2 A2 PC2/A2 PC2 A2 15 F1 A3 A3 PC3/A3 PC3 A3 16 F2 A4 A4 PC4/A4 PC4 A4 17 F4 A5 A5 PC5/A5 PC5 A5 18 G1 A6 A6 PC6/A6 PC6 A6 19 G2 A7 A7 PC7/A7 PC7 A7 20 G3 PB0/A8 PB0/A8 PB0/A8 PB0 A8 21 H1 PB1/A9 PB1/A9 PB1/A9 PB1 A9 22 — NC NC NC NC NC Mode 5 2 NC or EMLE* Mode 7*1 Mode 6 2 NC or EMLE* 2 NC or EMLE* PROM Mode 2 NC 23 G4 PB2/A10 PB2/A10 PB2/A10 PB2 A10 24 — NC NC NC NC NC 25 H2 PB3/A11 PB3/A11 PB3/A11 PB3 A11 26 J1 PB4/A12 PB4/A12 PB4/A12 PB4 A12 27 H3 PB5/A13 PB5/A13 PB5/A13 PB5 A13 28 J2 PB6/A14 PB6/A14 PB6/A14 PB6 A14 29 K1 PB7/A15 PB7/A15 PB7/A15 PB7 A15 Page 6 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 1 Overview Pin No. Pin Name TFP-120, BP-112, TFP-120V BP-112V Mode 4 Mode 5 Mode 6 Mode 7*1 PROM Mode 30 J3 PA0/A16 PA0/A16 PA0/A16 PA0 A16 31 K2 PA1/A17/TxD2 PA1/A17/TxD2 PA1/A17/TxD2 PA1/TxD2 A17 32 L2 PA2/A18/RxD2 PA2/A18/RxD2 PA2/A18/RxD2 PA2/RxD2 A18 33 H4 PA3/A19/SCK2/ SUSPND PA3/A19/SCK2/ SUSPND PA3/A19/SCK2/ SUSPND PA3/SCK2 NC 34 — NC NC NC NC NC 35 K3 P10/TIOCA0/ A20/VM P10/TIOCA0/ A20/VM P10/TIOCA0/ A20/VM P10/TIOCA0 NC 36 L3 P11/TIOCB0/ A21/VP P11/TIOCB0/ A21/VP P11/TIOCB0/ A21/VP P11/TIOCB0 NC 37 J4 P12/TIOCC0/ TCLKA/A22/ RCV P12/TIOCC0/ TCLKA/A22/ RCV P12/TIOCC0/ TCLKA/A22/ RCV P12/TIOCC0/ TCLKA NC 38 K4 P13/TIOCD0/ TCLKB/A23/ VPO P13/TIOCD0/ TCLKB/A23/ VPO P13/TIOCD0/ TCLKB/A23/ VPO P13/TIOCD0/ TCLKB NC 39 L4 P14/TIOCA1/ IRQ0 P14/TIOCA1/ IRQ0 P14/TIOCA1/ IRQ0 P14/TIOCA1/ IRQ0 VSS 40 H5 P15/TIOCB1/ TCLKC/FSE0 P15/TIOCB1/ TCLKC/FSE0 P15/TIOCB1/ TCLKC/FSE0 P15/TIOCB1/ TCLKC NC 41 J5 P16/TIOCA2/ IRQ1 P16/TIOCA2/ IRQ1 P16/TIOCA2/ IRQ1 P16/TIOCA2/ IRQ1 VSS 42 L5 P17/TIOCB2/ TCLKD/OE P17/TIOCB2/ TCLKD/OE P17/TIOCB2/ TCLKD/OE P17/TIOCB2/ TCLKD/OE NC 43 K5 AVSS AVSS AVSS AVSS VSS 44 J6 P97/AN15/DA1 P97/AN15/DA1 P97/AN15/DA1 P97/AN15/DA1 NC 45 L6 P96/AN14/DA0 P96/AN14/DA0 P96/AN14/DA0 P96/AN14/DA0 NC 46 K6 P43/AN3 P43/AN3 P43/AN3 P43/AN3 NC 47 H6 P42/AN2 P42/AN2 P42/AN2 P42/AN2 NC 48 L7 P41/AN1 P41/AN1 P41/AN1 P41/AN1 NC 49 K7 P40/AN0 P40/AN0 P40/AN0 P40/AN0 NC 50 J7 Vref Vref Vref Vref VCC 51 L8 AVCC AVCC AVCC AVCC VCC 52 — NC NC NC NC NC REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 7 of 846 H8S/2215 Group Section 1 Overview Pin No. Pin Name TFP-120, BP-112, TFP-120V BP-112V Mode 4 Mode 5 Mode 6 Mode 7*1 PROM Mode 53 H7 USPND USPND USPND — NC 54 — NC NC NC NC NC 55 K8 VBUS VBUS VBUS VSS VSS 56 L9 UBPM UBPM UBPM VSS VSS 57 J8 DrVCC DrVCC DrVCC VSS VCC 58 K9 USD+ USD+ USD+ — NC 59 L10 USD- USD- USD- — NC 60 J9 DrVSS DrVSS DrVSS — VSS 61 — VSS VSS VSS VSS VSS 62 K10 PLLVSS PLLVSS PLLVSS — VSS 63 K11 PLLCAP PLLCAP PLLCAP NC NC 64 H8 PLLVCC PLLVCC PLLVCC — VCC 65 J10 XTAL48 XTAL48 XTAL48 — NC 66 J11 EXTAL48 EXTAL48 EXTAL48 — VCC 67 H9 MD0 MD0 MD0 MD0 VSS 68 H10 MD1 MD1 MD1 MD1 VSS 69 H11 FWE FWE FWE FWE FWE 70 G8 NMI NMI NMI NMI VCC 71 G9 STBY STBY STBY STBY VCC 72 G11 RES RES RES RES RES 73 G10 VSS VSS VSS VSS VSS 74 F9 XTAL XTAL XTAL XTAL XTAL 75 F11 VCC VCC VCC VCC VCC 76 F10 EXTAL EXTAL EXTAL EXTAL EXTAL 77 F8 MD2 MD2 MD2 MD2 VSS 78 E11 PF7/φ PF7/φ PF7/φ PF7/φ NC 79 E10 AS AS AS PF6 NC 80 E9 RD RD RD PF5 NC 81 D11 HWR HWR HWR PF4 NC 82 — NC NC NC NC NC Page 8 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 1 Overview Pin No. TFP-120, BP-112, TFP-120V BP-112V Pin Name Mode 4 Mode 5 Mode 6 Mode 7*1 PROM Mode 83 E8 PF3/LWR/ ADTRG/IRQ3 PF3/LWR/ ADTRG/IRQ3 PF3/LWR/ ADTRG/IRQ3 PF3/ADTRG/ IRQ3 VCC 84 — NC NC NC NC NC 85 D10 PF2/WAIT PF2/WAIT PF2/WAIT PF2 NC 86 C11 PF1/BACK PF1/BACK PF1/BACK PF1 NC 87 D9 PF0/BREQ/ IRQ2 PF0/BREQ/ IRQ2 PF0/BREQ/ IRQ2 PF0/IRQ2 VCC 88 C10 P30/TxD0 P30/TxD0 P30/TxD0 P30/TxD0 NC 89 B11 P31/RxD0 P31/RxD0 P31/RxD0 P31/RxD0 NC 90 C9 P32/SCK0/IRQ4 P32/SCK0/IRQ4 P32/SCK0/IRQ4 P32/SCK0/IRQ4 NC 91 B10 P33/TxD1 P33/TxD1 P33/TxD1 P33/TxD1 NC 92 A10 P34/RxD1 P34/RxD1 P34/RxD1 P34/RxD1 NC 93 D8 P35/SCK1/IRQ5 P35/SCK1/IRQ5 P35/SCK1/IRQ5 P35/SCK1/IRQ5 NC 94 B9 P36 (PUPD+) P36 (PUPD+) P36 (PUPD+) P36 (PUPD+)*3 NC 95 — NC NC NC NC NC 96 A9 P74/MRES P74/MRES P74/MRES P74/MRES NC 97 C8 P73/TMO1/CS7 P73/TMO1/CS7 P73/TMO1/CS7 P73/TMO1 NC 98 B8 P72/TMO0/CS6 P72/TMO0/CS6 P72/TMO0/CS6 P72/TMO0 NC 99 A8 P71/CS5 P71/CS5 P71/CS5 P71 NC 100 D7 P70/TMRI01/ TMCI01/CS4 P70/TMRI01/ TMCI01/CS4 P70/TMRI01/ TMCI01/CS4 P70/TMRI01/ TMCI01 NC 101 C7 PG0 PG0 PG0 PG0 NC 102 A7 PG1/CS3/IRQ7 PG1/CS3/IRQ7 PG1/CS3/IRQ7 PG1/IRQ7 NC 103 B7 PG2/CS2 PG2/CS2 PG2/CS2 PG2 NC 104 C6 PG3/CS1 PG3/CS1 PG3/CS1 PG3 NC 105 A6 PG4/CS0 PG4/CS0 PG4/CS0 PG4 NC 106 B6 TDO TDO TDO TDO VCC 107 D6 TCK TCK TCK TCK VCC 108 A5 TMS TMS TMS TMS VCC 109 B5 TRST TRST TRST TRST RES 110 C5 TDI TDI TDI TDI VCC 111 A4 PE0/D0 PE0/D0 PE0/D0 PE0 NC REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 9 of 846 H8S/2215 Group Section 1 Overview Pin No. Pin Name TFP-120, BP-112, TFP-120V BP-112V Mode 4 Mode 5 Mode 6 Mode 7*1 PROM Mode 112 — NC NC NC NC NC 113 D5 PE1/D1 PE1/D1 PE1/D1 PE1 NC 114 — NC NC NC NC NC 115 B4 PE2/D2 PE2/D2 PE2/D2 PE2 NC 116 A3 PE3/D3 PE3/D3 PE3/D3 PE3 VCC 117 C4 PE4/D4 PE4/D4 PE4/D4 PE4 VSS 118 B3 PE5/D5 PE5/D5 PE5D5 PE5 OE 119 A2 PE6/D6 PE6/D6 PE6/D6 PE6 WE 120 C3 PE7/D7 PE7/D7 PE7/D7 PE7 CE — A1, A11, L1, L11 NC NC NC NC NC Notes: NC (No Connection): These pins should not be connected; they should be left open. 1. The USB may be unusable in mode 7 in some cases. See section 3, MCU Operating Modes, for details. 2. NC in H8S/2215. EMLE pin in H8S/2215R, H8S/2215T and H8S/2215C. 3. PUPD+ pin in H8S/2215R, H8S/2215T and H8S/2215C. Page 10 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 1.5 Section 1 Overview Pin Functions Pin No. Type Symbol Power Supply VCC VSS TFP-120, BP-112, TFP-120V BP-112V I/O 10 E4 75 F11 12 61 73 E1 Function Input Power supply pins. Connect all these pins to the system power supply. Input Ground pins. Connect all these pins to the system power supply (0 V). G10 PLLVCC 64 H8 Input Power supply pin for internal PLL oscillator. Connect this pin to the system power supply. PLLVSS 62 K10 Input Ground pin for an on-chip PLL oscillator. PLLCAP 63 K11 Output External capacitor pin for an on-chip PLL oscillator. XTAL 74 F9 Input For connection to a crystal resonator. For examples of crystal resonator connection and external clock input, see section 21, Clock Pulse Generator. EXTAL 76 F10 Input For connection to a crystal resonator. (An external clock can be supplied from the EXTAL pin.) For examples of crystal resonator connection and external clock input, see section 21, Clock Pulse Generator. XTAL48 65 J10 Input USB operating clock input pins. EXTAL48 66 J11 Input 48-MHz clock for USB communications is input. For examples of using an on-chip PLL, EXTAL48 must be fixed low and XTAL48 must be open. φ 78 E11 Output Supplies the system clock to external devices. Operating MD2 Mode Control MD1 77 F8 Input 68 H10 MD0 67 H9 Except for mode changing, be sure to fix the levels of the mode pins (MD2 to MD0) by pulling them down or pulling them up until the power turns off. Clock REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 11 of 846 H8S/2215 Group Section 1 Overview Pin No. Type Symbol TFP-120, BP-112, TFP-120V BP-112V I/O System Control RES 72 G11 Input Reset input pin. When this pin is driven low, the chip is reset. STBY 71 G9 Input When this pin is driven low, a transition is made to hardware standby mode. MRES 96 A9 Input When this pin is driven low, a transition is made to manual reset mode. BREQ 87 D9 Input Used by an external bus master to issue a bus request to this LSI BACK 86 C11 Output Indicates that the bus has been released to an external bus master. FWE 69 H11 Input Pin for use by flash memory. This pin is only used in the flash memory version. In the mask ROM version it should be fixed at 0. 1 EMLE* 1* A1* Input Emulator enable pin. Leave open if the E10A is not used. Drive low level only if E10A is used. NMI 70 G8 Input Nonmaskable interrupt pin. If this pin is not used, it should be fixed high. IRQ7 102 A7 Input IRQ5 93 D8 These pins request a maskable interrupt. IRQ4 90 C9 IRQ3 83 E8 IRQ2 87 D9 IRQ1 41 J5 IRQ0 39 L4 Interrupts Page 12 of 846 1 1 Function REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 1 Overview Pin No. Type Symbol TFP-120, BP-112, TFP-120V BP-112V I/O Function Address bus A23 38 K4 These pins output an address. A22 37 J4 A21 36 L3 A20 35 K3 A19 33 H4 A18 32 L2 A17 31 K2 A16 30 J3 A15 29 K1 A14 28 J2 A13 27 H3 A12 26 J1 A11 25 H2 A10 23 G4 A9 21 H1 A8 20 G3 A7 19 G2 A6 18 G1 A5 17 F4 A4 16 F2 A3 15 F1 A2 14 F3 A1 13 E2 A0 11 E3 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Output Page 13 of 846 H8S/2215 Group Section 1 Overview Pin No. Type Symbol TFP-120, BP-112, TFP-120V BP-112V I/O Data bus D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 9 8 7 6 5 4 3 2 120 119 118 117 116 115 113 111 Page 14 of 846 D1 D2 D3 C1 C2 D4 B1 B2 C3 A2 B3 C4 A3 B4 D5 A4 I/O Function These pins constitute a bi-directional data bus. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 1 Overview Pin No. Type Symbol TFP-120, BP-112, TFP-120V BP-112V I/O Function Bus Control CS7 97 C8 Output Signals for selecting areas 7 to 0. CS6 98 B8 CS5 99 A8 CS4 100 D7 CS3 102 A7 CS2 103 B7 CS1 104 C6 CS0 105 A6 AS 79 E10 Output When this pin is low, it indicates that address output on the address bus is enabled. RD 80 E9 Output When this pin is low, it indicates that the external address space can be read. HWR 81 D11 Output A strobe signal that writes to external space and indicates that the upper half (D15 to D8) of the data bus is enabled. LWR 83 E8 Output A strobe signal that writes to external space and indicates that the lower half (D7 to D0) of the data bus is enabled. WAIT 85 D10 Input Requests insertion of a wait state in the bus cycle when accessing external 3-state address space. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 15 of 846 H8S/2215 Group Section 1 Overview Pin No. Type Symbol TFP-120, BP-112, TFP-120V BP-112V I/O Function 16-bit timer pulse unit (TPU) TCLKA 37 J4 Input TPU external clock input pins. TCLKB 38 K4 TCLKC 40 H5 TCLKD 42 L5 TIOCA0 35 K3 I/O TIOCB0 36 L3 TIOCC0 37 J4 The TGRA_0 to TGRD_0 input capture input/output compare output/PWM output pins. TIOCD0 38 K4 TIOCA1 39 L4 I/O TIOCB1 40 H5 The TGRA_1 to TGRB_1 input capture input/output compare output/PWM output pins. TIOCA2 41 J5 I/O TIOCB2 42 L5 The TGRA_2 to TGRB_2 input capture input/output compare output/PWM output pins. TMO1 97 C8 Output Compare match output pins. TMO0 98 B8 TMCI01 100 D7 Input Input pins for the external clock input to the counter. 8-bit timer (TMR) 100 D7 Input The counter reset input pins. Serial TxD2 Communica- TxD1 tion interface TxD0 (SCI) RxD2 TMRI01 31 K2 Output Data output pins 91 B10 88 C10 32 L2 Input Data input pins RxD1 92 A10 RxD0 89 B11 SCK2 33 H4 I/O Clock input/output pins SCK1 93 D8 SCK0 90 C9 Page 16 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 1 Overview Pin No. Type Symbol TFP-120, BP-112, TFP-120V BP-112V I/O A/D converter AN15 44 J6 AN14 45 L6 AN3 46 K6 AN2 47 H6 AN1 48 L7 AN0 49 K7 ADTRG 83 D/A converter DA1 DA0 Input Analog input pins for the A/D converter. E8 Input Pin for input of an external trigger to start A/D conversion 44 J6 Output 45 L6 Analog output pins for the D/A converter. 51 L8 Input Power supply pin for the A/D and D/A converter. When the D/A converter is not used, connect this pin to the system power supply (VCC). AVSS 43 K5 Input The ground pin for the A/D and D/A converter. Connect this pin to the system power supply (0 V). Vref 50 J7 Input The reference voltage input pin for the A/D and D/A converter. When the A/D and D/A converter is not used, this pin should be connected to the system power supply (VCC). TMS 108 A5 Input Control signal input pin for the boundary scan TCK 107 D6 Input Clock input pin for the boundary scan TD0 106 B6 Output Data output pin for the boundary scan A/D converter AVCC D/A converter Boundary scan Function TDI 110 C5 Input Data input pin for the boundary scan TRST 109 B5 Input Reset pin for the TAP controller Perform pin processing even when the boundary scan function is not used. For details, see 14.5, Usage Notes. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 17 of 846 H8S/2215 Group Section 1 Overview Pin No. Type Symbol TFP-120, BP-112, TFP-120V BP-112V I/O Function USB USD+ 58 K9 I/O USB data input/output pin USD- 59 L10 VBUS 55 K8 Input Connection/disconnection detecting Input/output pin for the USB cable USPND 53 H7 Output USB suspend output This pin is driven high when a transition is made to suspend state. VM 35 K3 VP 36 L3 RCV 37 J4 VPO 38 K4 FSE0 40 H5 OE 42 L5 SUSPND 33 H4 UBPM 56 L9 Input Pins to be connected to the transceiver (ISP1104) manufactured by NXP. Output Input Bus power/self power mode setting Input. When the USB is used in bus power mode, this input pin must be fixed at 0. When the USB is used in self power mode, this input pin must be fixed at 1. Page 18 of 846 DrVCC 57 J8 ⎯ Power supply for the on-chip transceiver. Connect this pin to the system power supply. DrVSS 60 J9 ⎯ Ground pin for the on-chip transceiver. P36 (PUPD+) 94 B9 I/O Used for D+ pull-up control. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 1 Overview Pin No. Type Symbol TFP-120, BP-112, TFP-120V BP-112V I/O I/O port P17 P16 P15 P14 P13 P12 P11 P10 42 41 40 39 38 37 36 35 L5 J5 H5 L4 K4 J4 L3 K3 I/O 8-bit I/O pins P36 P35 P34 P33 P32 P31 P30 94 93 92 91 90 89 88 B9 D8 A10 B10 C9 B11 C10 I/O 7-bit I/O pins P43 46 K6 Input 4-bit input pins P42 47 H6 P41 48 L7 P40 49 K7 P74 96 A9 I/O 5-bit I/O pins P73 97 C8 P72 98 B8 P71 99 A8 P70 100 D7 P97 44 J6 Input 2-bit input pins P96 45 L6 PA3 33 H4 I/O 4-bit I/O pins PA2 32 L2 PA1 31 K2 PA0 30 J3 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Function Page 19 of 846 H8S/2215 Group Section 1 Overview Pin No. Type Symbol TFP-120, BP-112, TFP-120V BP-112V I/O Function I/O port PB7 29 K1 I/O 8-bit I/O pins PB6 28 J2 PB5 27 H3 PB4 26 J1 PB3 25 H2 PB2 23 G4 PB1 21 H1 I/O 8-bit I/O pins I/O 8-bit I/O pins I/O 8-bit I/O pins Page 20 of 846 PB0 20 G3 PC7 19 G2 PC6 18 G1 PC5 17 F4 PC4 16 F2 PC3 15 F1 PC2 14 F3 PC1 13 E2 PC0 11 E3 PD7 9 D1 PD6 8 D2 PD5 7 D3 PD4 6 C1 PD3 5 C2 PD2 4 D4 PD1 3 B1 PD0 2 B2 PE7 120 C3 PE6 119 A2 PE5 118 B3 PE4 117 C4 PE3 116 A3 PE2 115 B4 PE1 113 D5 PE0 111 A4 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 1 Overview Pin No. Type Symbol TFP-120, BP-112, TFP-120V BP-112V I/O Function I/O port PF7 78 E11 I/O 8-bit I/O pins PF6 79 E10 PF5 80 E9 PF4 81 D11 PF3 83 E8 PF2 85 D10 PF1 86 C11 I/O 5-bit I/O pins ⎯ NC (No Connection): These pins should not be connected; they should be left open. NC PF0 87 D9 PG4 105 A6 PG3 104 C6 PG2 103 B7 PG1 102 A7 PG0 101 C7 NC 1* A1* 2 2 22 A11 24 L1 34 L11 52 54 82 84 95 112 114 Notes: 1. Available only in H8S/2215R, H8S/2215T and H8S/2215C. (NC in H8S/2215.) 2. Available only in H8S/2215 (EMLE pin in H8S/2215R, H8S/2215T and H8S/2215C). REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 21 of 846 Section 1 Overview Page 22 of 846 H8S/2215 Group REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 2 CPU Section 2 CPU The H8S/2000 CPU is a high-speed central processing unit with an internal 32-bit architecture that is upward compatible with the H8/300 and H8/300H CPUs. The H8S/2000 CPU has sixteen 16-bit general registers, can address a 16-Mbyte linear address space, and is ideal for realtime control. This section describes the H8S/2000 CPU. The usable modes and address spaces differ depending on the product. For details on each product, refer to section 3, MCU Operating Modes. 2.1 Features • Upward-compatible with H8/300 and H8/300H CPUs ⎯ Can execute H8/300 and H8/300H CPU object programs • General-register architecture ⎯ Sixteen 16-bit general registers also usable as sixteen 8-bit registers or eight 32-bit registers • Sixty-five basic instructions ⎯ 8/16/32-bit arithmetic and logic instructions ⎯ Multiply and divide instructions ⎯ Powerful bit-manipulation instructions • Eight addressing modes ⎯ Register direct [Rn] ⎯ Register indirect [@ERn] ⎯ Register indirect with displacement [@(d:16,ERn) or @(d:32,ERn)] ⎯ Register indirect with post-increment or pre-decrement [@ERn+ or @–ERn] ⎯ Absolute address [@aa:8, @aa:16, @aa:24, or @aa:32] ⎯ Immediate [#xx:8, #xx:16, or #xx:32] ⎯ Program-counter relative [@(d:8,PC) or @(d:16,PC)] ⎯ Memory indirect [@@aa:8] • 16-Mbyte address space ⎯ Program: 16 Mbytes ⎯ Data: 16 Mbytes • High-speed operation ⎯ All frequently-used instructions execute in one or two states ⎯ 8/16/32-bit register-register add/subtract: 1 state ⎯ 8 × 8-bit register-register multiply: 12 states ⎯ 16 ÷ 8-bit register-register divide: 12 states REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 23 of 846 CPUS211A_010020020100 H8S/2215 Group Section 2 CPU ⎯ 16 × 16-bit register-register multiply: 20 states ⎯ 32 ÷ 16-bit register-register divide: 20 states • Two CPU operating modes ⎯ Normal mode* ⎯ Advanced mode Note: * Normal mode is not available in this LSI. • Power-down state ⎯ Transition to power-down state by SLEEP instruction ⎯ CPU clock speed selection 2.1.1 Differences between H8S/2600 CPU and H8S/2000 CPU The differences between the H8S/2600 CPU and the H8S/2000 CPU are as shown below. • Register configuration The MAC register is supported only by the H8S/2600 CPU. • Basic instructions The four instructions MAC, CLRMAC, LDMAC, and STMAC are supported only by the H8S/2600 CPU. • The number of execution states of the MULXU and MULXS instructions Execution States Instruction MULXU MULXS Mnemonic H8S/2600 H8S/2000 MULXU.B Rs, Rd 3 12 MULXU.W Rs, ERd 4 20 MULXS.B Rs, Rd 4 13 MULXS.W Rs, ERd 5 21 In addition, there are differences in address space, CCR and EXR register functions, power-down modes, etc., depending on the model. Page 24 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 2.1.2 Section 2 CPU Differences from H8/300 CPU In comparison to the H8/300 CPU, the H8S/2000 CPU has the following enhancements. • More general registers and control registers ⎯ Eight 16-bit extended registers, and one 8-bit and two 32-bit control registers, have been added. • Extended address space ⎯ Normal mode supports the same 64-kbyte address space as the H8/300 CPU. ⎯ Advanced mode supports a maximum 16-Mbyte address space. • Enhanced addressing ⎯ The addressing modes have been enhanced to make effective use of the 16-Mbyte address space. • Enhanced instructions ⎯ Addressing modes of bit-manipulation instructions have been enhanced. ⎯ Signed multiply and divide instructions have been added. ⎯ Two-bit shift instructions have been added. ⎯ Instructions for saving and restoring multiple registers have been added. ⎯ A test and set instruction has been added. • Higher speed ⎯ Basic instructions execute twice as fast. 2.1.3 Differences from H8/300H CPU In comparison to the H8/300H CPU, the H8S/2000 CPU has the following enhancements. • Additional control register ⎯ One 8-bit control registers have been added. • Enhanced instructions ⎯ Addressing modes of bit-manipulation instructions have been enhanced. ⎯ Two-bit shift instructions have been added. ⎯ Instructions for saving and restoring multiple registers have been added. ⎯ A test and set instruction has been added. • Higher speed ⎯ Basic instructions execute twice as fast. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 25 of 846 H8S/2215 Group Section 2 CPU 2.2 CPU Operating Modes The H8S/2000 CPU has two operating modes: normal and advanced. Normal mode supports a maximum 64-kbyte address space. Advanced mode supports a maximum 16-Mbyte total address space. The mode is selected by the mode pins. 2.2.1 Normal Mode The exception vector table and stack have the same structure as in the H8/300 CPU. • Address Space A maximum address space of 64 kbytes can be accessed. • Extended Registers (En) The extended registers (E0 to E7) can be used as 16-bit registers, or as the upper 16-bit segments of 32-bit registers. When En is used as a 16-bit register it can contain any value, even when the corresponding general register (Rn) is used as an address register. If the general register is referenced in the register indirect addressing mode with pre-decrement (@–Rn) or post-increment (@Rn+) and a carry or borrow occurs, however, the value in the corresponding extended register (En) will be affected. • Instruction Set All instructions and addressing modes can be used. Only the lower 16 bits of effective addresses (EA) are valid. • Exception Vector Table and Memory Indirect Branch Addresses In normal mode the top area starting at H'0000 is allocated to the exception vector table. One branch address is stored per 16 bits. The exception vector table in normal mode is shown in figure 2.1. For details of the exception vector table, see section 4, Exception Handling. The memory indirect addressing mode (@@aa:8) employed in the JMP and JSR instructions uses an 8-bit absolute address included in the instruction code to specify a memory operand that contains a branch address. In normal mode the operand is a 16-bit (word) operand, providing a 16-bit branch address. Branch addresses can be stored in the top area from H'0000 to H'00FF. Note that this area is also used for the exception vector table. • Stack Structure When the program counter (PC) is pushed onto the stack in a subroutine call, and the PC, condition-code register (CCR), and extended control register (EXR) are pushed onto the stack in exception handling, they are stored as shown in figure 2.2. EXR is not pushed onto the stack in interrupt control mode 0. For details, see section 4, Exception Handling. Note: Normal mode is not available in this LSI. Page 26 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 2 CPU H'0000 H'0001 H'0002 H'0003 H'0004 H'0005 H'0006 H'0007 H'0008 H'0009 H'000A H'000B Reset exception vector (Reserved for system use) (Reserved for system use) Exception vector table Exception vector 1 Exception vector 2 Figure 2.1 Exception Vector Table (Normal Mode) SP PC (16 bits) EXR*1 SP Reserved*1*3 (SP*2 ) CCR CCR*3 PC (16 bits) (a) Subroutine Branch (b) Exception Handling Notes: 1. When EXR is not used, it is not stored on the stack. 2. SP when EXR is not used. 3. Ignored when returning. Figure 2.2 Stack Structure in Normal Mode REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 27 of 846 H8S/2215 Group Section 2 CPU 2.2.2 Advanced Mode • Address Space Linear access is provided to a 16-Mbyte maximum address space. • Extended Registers (En) The extended registers (E0 to E7) can be used as 16-bit registers, or as the upper 16-bit segments of 32-bit registers or address registers. • Instruction Set All instructions and addressing modes can be used. • Exception Vector Table and Memory Indirect Branch Addresses In advanced mode the top area starting at H'00000000 is allocated to the exception vector table in units of 32 bits. In each 32 bits, the upper 8 bits are ignored and a branch address is stored in the lower 24 bits (figure 2.3). For details of the exception vector table, see section 4, Exception Handling. H'00000000 Reserved Reset exception vector H'00000003 H'00000004 Reserved (Reserved for system use) H'00000007 H'00000008 Exception vector table H'0000000B H'0000000C H'00000010 (Reserved for system use) Reserved Exception vector 1 Figure 2.3 Exception Vector Table (Advanced Mode) The memory indirect addressing mode (@@aa:8) employed in the JMP and JSR instructions uses an 8-bit absolute address included in the instruction code to specify a memory operand that contains a branch address. In advanced mode the operand is a 32-bit longword operand, Page 28 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 2 CPU providing a 32-bit branch address. The upper 8 bits of these 32 bits are a reserved area that is regarded as H'00. Branch addresses can be stored in the area from H'00000000 to H'000000FF. Note that the first part of this range is also the exception vector table. • Stack Structure In advanced mode, when the program counter (PC) is pushed onto the stack in a subroutine call, and the PC, condition-code register (CCR), and extended control register (EXR) are pushed onto the stack in exception handling, they are stored as shown in figure 2.4. When EXR is invalid, it is not pushed onto the stack. For details, see section 4, Exception Handling. EXR*1 SP SP Reserved*1*3 Reserved PC (24 bits) (SP*2 ) (a) Subroutine Branch CCR PC (24 bits) (b) Exception Handling Notes: 1. When EXR is not used, it is not stored on the stack. 2. SP when EXR is not used. 3. Ignored when returning. Figure 2.4 Stack Structure in Advanced Mode REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 29 of 846 H8S/2215 Group Section 2 CPU 2.3 Address Space Figure 2.5 shows a memory map of the H8S/2000 CPU. The H8S/2000 CPU provides linear access to a maximum 64-kbyte address space in normal mode, and a maximum 16-Mbyte (architecturally 4-Gbyte) address space in advanced mode. The usable modes and address spaces differ depending on the product. For details on each product, refer to section 3, MCU Operating Modes. H'0000 H'00000000 64 kbytes 16 Mbytes H'FFFF Program area H'00FFFFFF Data area Not available in this LSI. H'FFFFFFFF (a) Normal Mode* (b) Advanced Mode Note: * Not available in this LSI. Figure 2.5 Memory Map Page 30 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 2.4 Section 2 CPU Register Configuration The H8S/2000 CPU has the internal registers shown in figure 2.6. There are two types of registers: general registers and control registers. Control registers are a 24-bit program counter (PC), an 8-bit extended control register (EXR), and an 8-bit condition code register (CCR). General Registers (Rn) and Extended Registers (En) 15 0 7 0 7 0 ER0 E0 R0H R0L ER1 E1 R1H R1L ER2 E2 R2H R2L ER3 E3 R3H R3L ER4 E4 R4H R4L ER5 E5 R5H R5L ER6 E6 R6H R6L ER7 (SP) E7 R7H R7L Control Registers (CR) 23 0 PC 7 6 5 4 3 2 1 0 - - - - I2 I1 I0 EXR T 7 6 5 4 3 2 1 0 CCR I UI H U N Z V C Legend: SP: PC: EXR: T: I2 to I0: CCR: I: UI: Stack pointer Program counter Extended control register Trace bit Interrupt mask bits Condition-code register Interrupt mask bit User bit or interrupt mask bit* H: U: N: Z: V: C: Half-carry flag User bit Negative flag Zero flag Overflow flag Carry flag Note: * Cannot be used as an interrupt mask bit in this LSI. Figure 2.6 CPU Registers REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 31 of 846 H8S/2215 Group Section 2 CPU 2.4.1 General Registers The H8S/2000 CPU has eight 32-bit general registers. These general registers are all functionally alike and can be used as both address registers and data registers. When a general register is used as a data register, it can be accessed as a 32-bit, 16-bit, or 8-bit register. Figure 2.7 illustrates the usage of the general registers. When the general registers are used as 32-bit registers or address registers, they are designated by the letters ER (ER0 to ER7). The ER registers divide into 16-bit general registers designated by the letters E (E0 to E7) and R (R0 to R7). These registers are functionally equivalent, providing a maximum sixteen 16-bit registers. The E registers (E0 to E7) are also referred to as extended registers. The R registers divide into 8-bit general registers designated by the letters RH (R0H to R7H) and RL (R0L to R7L). These registers are functionally equivalent, providing a maximum sixteen 8-bit registers. The usage of each register can be selected independently. General register ER7 has the function of stack pointer (SP) in addition to its general-register function, and is used implicitly in exception handling and subroutine calls. Figure 2.8 shows the stack. • Address registers • 32-bit registers • 16-bit registers • 8-bit registers E registers (extended registers) (E0 to E7) ER registers (ER0 to ER7) RH registers (R0H to R7H) R registers (R0 to R7) RL registers (R0L to R7L) Figure 2.7 Usage of General Registers Page 32 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 2 CPU Free area SP (ER7) Stack area Figure 2.8 Stack 2.4.2 Program Counter (PC) This 24-bit counter indicates the address of the next instruction the CPU will execute. The length of all CPU instructions is two bytes (one word), so the least significant PC bit is ignored (When an instruction is fetched, the least significant PC bit is regarded as 0). 2.4.3 Extended Control Register (EXR) EXR is an 8-bit register that manipulates the LDC, STC, ANDC, ORC, and XORC instructions. When these instructions except for the STC instruction is executed, all interrupts including NMI will be masked for three states after execution is completed. Bit Bit Name Initial Value R/W Description 7 T 0 Trace Bit R/W When this bit is set to 1, a trace exception is generated each time an instruction is executed. When this bit is cleared to 0, instructions are executed in sequence. 6 to — All 1 — 3 2 to 0 Reserved These bits are always read as 1. I2 1 I1 R/W These bits designate the interrupt mask level (0 to 7). For details, refer to section 5, Interrupt Controller. I0 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 33 of 846 H8S/2215 Group Section 2 CPU 2.4.4 Condition-Code Register (CCR) This 8-bit register contains internal CPU status information, including an interrupt mask bit (I) and half-carry (H), negative (N), zero (Z), overflow (V), and carry (C) flags. Operations can be performed on the CCR bits by the LDC, STC, ANDC, ORC, and XORC instructions. The N, Z, V, and C flags are used as branching conditions for conditional branch (Bcc) instructions. Bit Bit Name Initial Value R/W Description 7 I 1 R/W Interrupt Mask Bit Masks interrupts other than NMI when set to 1. NMI is accepted regardless of the I bit setting. The I bit is set to 1 by hardware at the start of an exception-handling sequence. For details, refer to section 5, Interrupt Controller. 6 UI undefined R/W User Bit or Interrupt Mask Bit Can be written and read by software using the LDC, STC, ANDC, ORC, and XORC instructions. This bit cannot be used as an interrupt mask bit in this LSI. 5 H undefined R/W Half-Carry Flag When the ADD.B, ADDX.B, SUB.B, SUBX.B, CMP.B or NEG.B instruction is executed, this flag is set to 1 if there is a carry or borrow at bit 3, and cleared to 0 otherwise. When the ADD.W, SUB.W, CMP.W, or NEG.W instruction is executed, the H flag is set to 1 if there is a carry or borrow at bit 11, and cleared to 0 otherwise. When the ADD.L, SUB.L, CMP.L, or NEG.L instruction is executed, the H flag is set to 1 if there is a carry or borrow at bit 27, and cleared to 0 otherwise. 4 U undefined R/W User Bit Can be written and read by software using the LDC, STC, ANDC, ORC, and XORC instructions. 3 N undefined R/W Negative Flag Stores the value of the most significant bit of data as a sign bit. 2 Z undefined R/W Zero Flag Set to 1 to indicate zero data, and cleared to 0 to indicate non-zero data. Page 34 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 2 CPU Bit Bit Name Initial Value R/W Description 1 V undefined R/W Overflow Flag Set to 1 when an arithmetic overflow occurs, and cleared to 0 at other times. 0 C undefined R/W Carry Flag Set to 1 when a carry occurs, and cleared to 0 otherwise. Used by: • • • Add instructions, to indicate a carry Subtract instructions, to indicate a carry Shift and rotate instructions, to indicate a carry They carry flag is also used as a bit accumulator by bit manipulation instructions. 2.4.5 Initial Register Values Reset exception handling loads the CPU’s program counter (PC) from the vector table, clears the trace bit in EXR to 0, and sets the interrupt mask bits in CCR and EXR to 1. The other CCR bits and the general registers are not initialized. In particular, the stack pointer (ER7) is not initialized. The stack pointer should therefore be initialized by an MOV.L instruction executed immediately after a reset. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 35 of 846 H8S/2215 Group Section 2 CPU 2.5 Data Formats The H8S/2000 CPU can process 1-bit, 4-bit (BCD), 8-bit (byte), 16-bit (word), and 32-bit (longword) data. Bit-manipulation instructions operate on 1-bit data by accessing bit n (n = 0, 1, 2, …, 7) of byte operand data. The DAA and DAS decimal-adjust instructions treat byte data as two digits of 4-bit BCD data. 2.5.1 General Register Data Formats Figure 2.9 shows the data formats in general registers. Data Type Register Number Data Image 7 RnH 1-bit data 0 Don't care 7 6 5 4 3 2 1 0 7 1-bit data RnL 4-bit BCD data RnH 4-bit BCD data RnL Byte data RnH Don't care 7 4 3 Upper 0 7 6 5 4 3 2 1 0 0 Lower Don't care 7 Don't care 7 4 3 Upper 0 Don't care MSB LSB 7 Byte data RnL 0 Lower 0 Don't care MSB LSB Figure 2.9 General Register Data Formats (1) Page 36 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 2 CPU Data Type Register Number Word data Rn Data Image 15 0 MSB Word data 15 0 MSB Longword data LSB En LSB ERn 31 16 15 MSB En 0 Rn LSB Legend: ERn: En: Rn: RnH: RnL: MSB: LSB: General register ER General register E General register R General register RH General register RL Most significant bit Least significant bit Figure 2.9 General Register Data Formats (2) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 37 of 846 H8S/2215 Group Section 2 CPU 2.5.2 Memory Data Formats Figure 2.10 shows the data formats in memory. The H8S/2000 CPU can access word data and longword data in memory, but word or longword data must begin at an even address. If an attempt is made to access word or longword data at an odd address, no address error occurs but the least significant bit of the address is regarded as 0, so the access starts at the preceding address. This also applies to instruction fetches. When SP (ER7) is used as an address register to access the stack, the operand size should be word size or longword size. Data Type Address Data Image 1-bit data Address L 7 Byte data Address L MSB Word data Address 2M MSB 7 0 6 5 4 3 2 Address 2N 0 LSB LSB Address 2M+1 Longword data 1 MSB Address 2N+1 Address 2N+2 Address 2N+3 LSB Figure 2.10 Memory Data Formats Page 38 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 2.6 Section 2 CPU Instruction Set The H8S/2000 CPU has 65 types of instructions. The instructions are classified by function in table 2.1. Table 2.1 Instruction Classification Function Instructions Size Types Data transfer MOV B/W/L 5 1 1 POP* , PUSH* 5 5 LDM* , STM* W/L MOVFPE* , MOVTPE* 3 Arithmetic operations L 3 B ADD, SUB, CMP, NEG B/W/L ADDX, SUBX, DAA, DAS B INC, DEC B/W/L ADDS, SUBS L MULXU, DIVXU, MULXS, DIVXS B/W EXTU, EXTS 4 TAS* W/L B Logic operations AND, OR, XOR, NOT B/W/L 4 Shift SHAL, SHAR, SHLL, SHLR, ROTL, ROTR, ROTXL, ROTXR B/W/L 8 Bit manipulation BSET, BCLR, BNOT, BTST, BLD, BILD, BST, BIST, BAND, B BIAND, BOR, BIOR, BXOR, BIXOR Branch Bcc* , JMP, BSR, JSR, RTS — 5 System control TRAPA, RTE, SLEEP, LDC, STC, ANDC, ORC, XORC, NOP — 9 — 1 2 Block data transfer EEPMOV 19 14 Total: 65 Legend: B: Byte W: Word L: Longword Notes: 1. POP.W Rn and PUSH.W Rn are identical to MOV.W @SP+, Rn and MOV.W Rn, @-SP. POP.L ERn and PUSH.L ERn are identical to MOV.L @SP+, ERn and MOV.L ERn, @-SP. 2. Bcc is the general name for conditional branch instructions. 3. Cannot be used in this LSI. 4. Only register ER0, ER1, ER4, or ER5 should be used when using the TAS instruction. 5. The ER7 register functions as a stack pointer for the LDM and STM instructions, so it cannot be for saving (STM) or restoring (LDM) data. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 39 of 846 H8S/2215 Group Section 2 CPU 2.6.1 Table of Instructions Classified by Function Tables 2.3 to 2.10 summarizes the instructions in each functional category. The notation used in tables 2.3 to 2.10 is defined below. Table 2.2 Operation Notation Symbol Description Rd Rs General register (destination)* General register (source)* Rn General register* ERn General register (32-bit register) (EAd) Destination operand (EAs) Source operand EXR Extended control register CCR Condition-code register N N (negative) flag in CCR Z Z (zero) flag in CCR V V (overflow) flag in CCR C C (carry) flag in CCR PC Program counter SP Stack pointer #IMM Immediate data disp Displacement + Addition – Subtraction × Multiplication ÷ Division ∧ Logical AND ∨ Logical OR ⊕ Logical exclusive OR → Move ∼ NOT (logical complement) :8/:16/:24/:32 8-, 16-, 24-, or 32-bit length Note: * General registers include 8-bit registers (R0H to R7H, R0L to R7L), 16-bit registers (R0 to R7, E0 to E7), and 32-bit registers (ER0 to ER7). Page 40 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Table 2.3 Section 2 CPU Data Transfer Instructions Instruction Size* Function MOV B/W/L (EAs) → Rd, Rs → (EAd) 1 Moves data between two general registers or between a general register and memory, or moves immediate data to a general register. MOVFPE B Cannot be used in this LSI. MOVTPE B Cannot be used in this LSI. POP W/L @SP+ → Rn Pops a general register from the stack. POP.W Rn is identical to MOV.W @SP+, Rn. POP.L ERn is identical to MOV.L @SP+, ERn PUSH W/L Rn → @-SP Pushes a general register onto the stack. PUSH.W Rn is identical to MOV.W Rn, @-SP. PUSH.L ERn is identical to MOV.L ERn, @-SP. 2 LDM* L @SP+ → Rn (register list) Pops two or more general registers from the stack. STM* 2 L Rn (register list) → @-SP Pushes two or more general registers onto the stack. Notes: 1. Size refers to the operand size. B: Byte W: Word L: Longword 2. ER7 is used as a stack pointer in STM and LDM instructions. ER7, therefore, should not be used as a saving (STM) or restoring (LDM) register. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 41 of 846 H8S/2215 Group Section 2 CPU Table 2.4 Arithmetic Operations Instructions (1) Instruction Size* ADD B/W/L SUB Function Rd ± Rs → Rd, Rd ± #IMM → Rd Performs addition or subtraction on data in two general registers, or on immediate data and data in a general register. (Immediate byte data cannot be subtracted from byte data in a general register. Use the SUBX or ADD instruction.) ADDX B SUBX Rd ± Rs ± C → Rd, Rd ± #IMM ± C → Rd Performs addition or subtraction with carry or borrow on byte data in two general registers, or on immediate data and data in a general register. INC B/W/L DEC Rd ± 1 → Rd, Rd ± 2 → Rd Increments or decrements a general register by 1 or 2. (Byte operands can be incremented or decremented by 1 only.) ADDS L SUBS Rd ± 1 → Rd, Rd ± 2 → Rd, Rd ± 4 → Rd Adds or subtracts the value 1, 2, or 4 to or from data in a 32-bit register. DAA B DAS Rd (decimal adjust) → Rd Decimal-adjusts an addition or subtraction result in a general register by referring to the OCR to produce 4-bit BCD data. MULXU B/W Rd × Rs → Rd Performs unsigned multiplication on data in two general registers: either 8 bits × 8 bits → 16 bits or 16 bits × 16 bits → 32 bits. MULXS B/W Rd × Rs → Rd Performs signed multiplication on data in two general registers: either 8 bits × 8 bits → 16 bits or 16 bits × 16 bits → 32 bits. DIVXU B/W Rd ÷ Rs → Rd Performs unsigned division on data in two general registers: either 16 bits ÷ 8 bits → 8-bit quotient and 8-bit remainder or 32 bits ÷ 16 bits → 16-bit quotient and 16-bit remainder. Note: * Size refers to the operand size. B: Byte W: Word L: Longword Page 42 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 2 CPU Table 2.4 Arithmetic Operations Instructions (2) Instruction Size* DIVXS B/W 1 Function Rd ÷ Rs → Rd Performs signed division on data in two general registers: either 16 bits ÷ 8 bits → 8-bit quotient and 8-bit remainder or 32 bits ÷ 16 bits → 16-bit quotient and 16-bit remainder. CMP B/W/L Rd – Rs, Rd – #IMM Compares data in a general register with data in another general register or with immediate data, and sets CCR bits according to the result. NEG B/W/L 0 – Rd → Rd Takes the two's complement (arithmetic complement) of data in a general register. EXTU W/L Rd (zero extension) → Rd Extends the lower 8 bits of a 16-bit register to word size, or the lower 16 bits of a 32-bit register to longword size, by padding with zeros on the left. EXTS W/L Rd (sign extension) → Rd Extends the lower 8 bits of a 16-bit register to word size, or the lower 16 bits of a 32-bit register to longword size, by extending the sign bit. TAS* 2 B @ERd – 0, 1 → (<bit 7> of @ERd) Tests memory contents, and sets the most significant bit (bit 7) to 1. Notes: 1. Size refers to the operand size. B: Byte W: Word L: Longword 2. Only register ER0, ER1, ER4, or ER5 should be used when using the TAS instruction. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 43 of 846 H8S/2215 Group Section 2 CPU Table 2.5 Logic Operations Instructions Instruction Size* Function AND B/W/L Rd ∧ Rs → Rd, Rd ∧ #IMM → Rd Performs a logical AND operation on a general register and another general register or immediate data. OR B/W/L Rd ∨ Rs → Rd, Rd ∨ #IMM → Rd Performs a logical OR operation on a general register and another general register or immediate data. XOR B/W/L Rd ⊕ Rs → Rd, Rd ⊕ #IMM → Rd Performs a logical exclusive OR operation on a general register and another general register or immediate data. NOT B/W/L ∼ Rd → Rd Takes the one's complement (logical complement) of general register contents. Note: * Size refers to the operand size. B: Byte W: Word L: Longword Table 2.6 Shift Instructions Instruction Size* Function SHAL B/W/L Rd (shift) → Rd SHAR Performs an arithmetic shift on general register contents. 1-bit or 2 bit shift is possible. SHLL B/W/L SHLR Performs an logical shift on general register contents. 1-bit or 2 bit shift is possible. ROTL B/W/L ROTR Rd (rotate) → Rd Rotates general register contents. 1-bit or 2 bit rotation is possible. ROTXL B/W/L ROTXR Note: Rd (shift) → Rd Rd (rotate) → Rd Rotates general register contents through the carry flag. 1-bit or 2 bit rotation is possible. * Size refers to the operand size. B: Byte W: Word L: Longword Page 44 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 2 CPU Table 2.7 Bit Manipulation Instructions (1) Instruction Size* BSET B Function 1 → (<bit-No.> of <EAd>) Sets a specified bit in a general register or memory operand to 1. The bit number is specified by 3-bit immediate data or the lower three bits of a general register. BCLR B 0 → (<bit-No.> of <EAd>) Clears a specified bit in a general register or memory operand to 0. The bit number is specified by 3-bit immediate data or the lower three bits of a general register. BNOT B ∼ (<bit-No.> of <EAd>) → (<bit-No.> of <EAd>) Inverts a specified bit in a general register or memory operand. The bit number is specified by 3-bit immediate data or the lower three bits of a general register. BTST B ∼ (<bit-No.> of <EAd>) → Z Tests a specified bit in a general register or memory operand and sets or clears the Z flag accordingly. The bit number is specified by 3-bit immediate data or the lower three bits of a general register. BAND B C ∧ (<bit-No.> of <EAd>) → C ANDs the carry flag with a specified bit in a general register or memory operand and stores the result in the carry flag. BIAND B C ∧ ∼ [ (<bit-No.> of <EAd>) ] → C ANDs the carry flag with the inverse of a specified bit in a general register or memory operand and stores the result in the carry flag. The bit number is specified by 3-bit immediate data. BOR B C ∨ (<bit-No.> of <EAd>) → C ORs the carry flag with a specified bit in a general register or memory operand and stores the result in the carry flag. BIOR B C ∨ [∼ (<bit-No.> of <EAd>) ] → C ORs the carry flag with the inverse of a specified bit in a general register or memory operand and stores the result in the carry flag. The bit number is specified by 3-bit immediate data. Note: * Size refers to the operand size. B: Byte REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 45 of 846 H8S/2215 Group Section 2 CPU Table 2.7 Bit Manipulation Instructions (2) Instruction Size* BXOR B Function C ⊕ (<bit-No.> of <EAd>) → C Exclusive-ORs the carry flag with a specified bit in a general register or memory operand and stores the result in the carry flag. BIXOR B C ⊕ [∼ (<bit-No.> of <EAd>) ] → C Exclusive-ORs the carry flag with the inverse of a specified bit in a general register or memory operand and stores the result in the carry flag. The bit number is specified by 3-bit immediate data. BLD B (<bit-No.> of <EAd>) → C Transfers a specified bit in a general register or memory to the carry flag. BILD B ∼ (<bit-No.> of <EAd>) → C Transfers the inverse of a specified bit in a general register or memory operand to the carry flag. The bit number is specified by 3-bit immediate data. BST B C → (<bit-No.> of <EAd>) Transfers the carry flag value to a specified bit in a general register or memory operand. BIST B ∼ C → (<bit-No.> of <EAd>) Transfers the inverse of the carry flag value to a specified bit in a general register or memory operand. The bit number is specified by 3bit immediate data. Note: * Size refers to the operand size. B: Byte Page 46 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Table 2.8 Section 2 CPU Branch Instructions Instruction Size Function Bcc — Branches to a specified address if a specified condition is true. The branching conditions are listed below. Mnemonic Description Condition BRA (BT) Always (true) Always BRN (BF) Never (false) Never BHI High C∨Z=0 BLS Low or same C∨Z=1 BCC (BHS) Carry clear C=0 (high or same) BCS (BLO) Carry set (low) C=1 BNE Not equal Z=0 BEQ Equal Z=1 BVC Overflow clear V=0 BVS Overflow set V=1 BPL Plus N=0 BMI Minus N=1 BGE Greater or equal N⊕V=0 BLT Less than N⊕V=1 BGT Greater than Z ∨ (N ⊕ V) = 0 BLE Less or equal Z ∨ (N ⊕ V) = 1 JMP — Branches unconditionally to a specified address. BSR — Branches to a subroutine at a specified address JSR — Branches to a subroutine at a specified address RTS — Returns from a subroutine REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 47 of 846 H8S/2215 Group Section 2 CPU Table 2.9 System Control Instruction Instruction Size* Function TRAPA — Starts trap-instruction exception handling. RTE — Returns from an exception-handling routine. SLEEP — Causes a transition to a power-down state. LDC B/W (EAs) → CCR, (EAs) → EXR Moves the source operand contents or immediate data to CCR or EXR. Although CCR and EXR are 8-bit registers, word-size transfers are performed between them and memory. The upper 8 bits are valid. STC B/W CCR → (EAd), EXR → (EAd) Transfers CCR or EXR contents to a general register or memory. Although CCR and EXR are 8-bit registers, word-size transfers are performed between them and memory. The upper 8 bits are valid. ANDC B CCR ∧ #IMM → CCR, EXR ∧ #IMM → EXR Logically ANDs the CCR or EXR contents with immediate data. ORC B CCR ∨ #IMM → CCR, EXR ∨ #IMM → EXR Logically ORs the CCR or EXR contents with immediate data. XORC B CCR ⊕ #IMM → CCR, EXR ⊕ #IMM → EXR Logically exclusive-ORs the CCR or EXR contents with immediate data. NOP — PC + 2 → PC Only increments the program counter. Note: * Size refers to the operand size. B: Byte W: Word Page 48 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 2 CPU Table 2.10 Block Data Transfer Instruction Instruction Size Function EEPMOV.B — if R4L ≠ 0 then Repeat @ER5+ → @ER6+ R4L–1 → R4L Until R4L = 0 else next; EEPMOV.W — if R4 ≠ 0 then Repeat @ER5+ → @ER6+ R4–1 → R4 Until R4 = 0 else next; Transfer a data block. Starting from the address set in ER5, transfers data for the number of bytes set in R4L or R4 to the address location set in ER6. Execution of the next instruction begins as soon as the transfer is completed. 2.6.2 Basic Instruction Formats The H8S/2000 CPU instructions consist of 2-byte (1-word) units. An instruction consists of an operation field (op), a register field (r), an effective address extension (EA), and a condition field (cc). Figure 2.11 shows examples of instruction formats. • Operation Field Indicates the function of the instruction, the addressing mode, and the operation to be carried out on the operand. The operation field always includes the first four bits of the instruction. Some instructions have two operation fields. • Register Field Specifies a general register. Address registers are specified by 3 bits, data registers by 3 bits or 4 bits. Some instructions have two register fields. Some have no register field. • Effective Address Extension 8, 16, or 32 bits specifying immediate data, an absolute address, or a displacement. • Condition Field Specifies the branching condition of Bcc instructions. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 49 of 846 H8S/2215 Group Section 2 CPU (1) Operation field only op NOP, RTS, etc. (2) Operation field and register fields op rm rn ADD.B Rn, Rm, etc. (3) Operation field, register fields, and effective address extension op rn rm MOV.B @(d:16, Rn), Rm, etc. EA(disp) (4) Operation field, effective address extension, and condition field op cc EA(disp) BRA d:16, etc. Figure 2.11 Instruction Formats (Examples) 2.7 Addressing Modes and Effective Address Calculation The H8S/2000 CPU supports the eight addressing modes listed in table 2.11. Each instruction uses a subset of these addressing modes. Arithmetic and logic instructions can use the register direct and immediate modes. Data transfer instructions can use all addressing modes except programcounter relative and memory indirect. Bit manipulation instructions use register direct, register indirect, or absolute addressing mode to specify an operand, and register direct (BSET, BCLR, BNOT, and BTST instructions) or immediate (3-bit) addressing mode to specify a bit number in the operand. Table 2.11 Addressing Modes No. Addressing Mode Symbol 1 Rn Register direct 2 Register indirect @ERn 3 Register indirect with displacement @(d:16,ERn)/@(d:32,ERn) 4 Register indirect with post-increment @ERn+ Register indirect with pre-decrement @–ERn Absolute address @aa:8/@aa:16/@aa:24/@aa:32 5 6 Immediate #xx:8/#xx:16/#xx:32 7 Program-counter relative @(d:8,PC)/@(d:16,PC) 8 Memory indirect @@aa:8 Page 50 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 2.7.1 Section 2 CPU Register Direct—Rn The register field of the instruction specifies an 8-, 16-, or 32-bit general register containing the operand. R0H to R7H and R0L to R7L can be specified as 8-bit registers. R0 to R7 and E0 to E7 can be specified as 16-bit registers. ER0 to ER7 can be specified as 32-bit registers. 2.7.2 Register Indirect—@ERn The register field of the instruction code specifies an address register (ERn) which contains the address of the operand on memory. If the address is a program instruction address, the lower 24 bits are valid and the upper 8 bits are all assumed to be 0 (H'00). 2.7.3 Register Indirect with Displacement—@(d:16, ERn) or @(d:32, ERn) A 16-bit or 32-bit displacement contained in the instruction is added to an address register (ERn) specified by the register field of the instruction, and the sum gives the address of a memory operand. A 16-bit displacement is sign-extended when added. 2.7.4 Register Indirect with Post-Increment or Pre-Decrement—@ERn+ or @-ERn Register indirect with post-increment—@ERn+: The register field of the instruction code specifies an address register (ERn) which contains the address of a memory operand. After the operand is accessed, 1, 2, or 4 is added to the address register contents and the sum is stored in the address register. The value added is 1 for byte access, 2 for word transfer instruction, or 4 for longword transfer instruction. For word or longword transfer instruction, the register value should be even. Register indirect with pre-decrement—@-ERn: The value 1, 2, or 4 is subtracted from an address register (ERn) specified by the register field in the instruction code, and the result becomes the address of a memory operand. The result is also stored in the address register. The value subtracted is 1 for byte access, 2 for word transfer instruction, or 4 for longword transfer instruction. For word or longword transfer instruction, the register value should be even. 2.7.5 Absolute Address—@aa:8, @aa:16, @aa:24, or @aa:32 The instruction code contains the absolute address of a memory operand. The absolute address may be 8 bits long (@aa:8), 16 bits long (@aa:16), 24 bits long (@aa:24), or 32 bits long (@aa:32). Table 2.12 indicates the accessible absolute address ranges. To access data, the absolute address should be 8 bits (@aa:8), 16 bits (@aa:16), or 32 bits (@aa:32) long. For an 8-bit absolute address, the upper 24 bits are all assumed to be 1 (H'FFFF). REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 51 of 846 H8S/2215 Group Section 2 CPU For a 16-bit absolute address the upper 16 bits are a sign extension. A 32-bit absolute address can access the entire address space. A 24-bit absolute address (@aa:24) indicates the address of a program instruction. The upper 8 bits are all assumed to be 0 (H'00). Table 2.12 Absolute Address Access Ranges Absolute Address Data address Normal Mode* Advanced Mode 8 bits (@aa:8) H'FF00 to H'FFFF H'FFFF00 to H'FFFFFF 16 bits (@aa:16) H'0000 to H'FFFF H'000000 to H'007FFF, H'FF8000 to H'FFFFFF 32 bits (@aa:32) Program instruction address Note: 2.7.6 * H'000000 to H'FFFFFF 24 bits (@aa:24) Not available in this LSI. Immediate—#xx:8, #xx:16, or #xx:32 The instruction contains 8-bit (#xx:8), 16-bit (#xx:16), or 32-bit (#xx:32) immediate data as an operand. The ADDS, SUBS, INC, and DEC instructions contain immediate data implicitly. Some bit manipulation instructions contain 3-bit immediate data in the instruction code, specifying a bit number. The TRAPA instruction contains 2-bit immediate data in its instruction code, specifying a vector address. 2.7.7 Program-Counter Relative—@(d:8, PC) or @(d:16, PC) This mode is used in the Bcc and BSR instructions. An 8-bit or 16-bit displacement contained in the instruction is sign-extended and added to the 24-bit PC contents to generate a branch address. Only the lower 24 bits of this branch address are valid; the upper 8 bits are all assumed to be 0 (H'00). The PC value to which the displacement is added is the address of the first byte of the next instruction, so the possible branching range is –126 to +128 bytes (–63 to +64 words) or –32766 to +32768 bytes (–16383 to +16384 words) from the branch instruction. The resulting value should be an even number. Page 52 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 2.7.8 Section 2 CPU Memory Indirect—@@aa:8 This mode can be used by the JMP and JSR instructions. The instruction code contains an 8-bit absolute address specifying a memory operand. This memory operand contains a branch address. The upper bits of the absolute address are all assumed to be 0, so the address range is 0 to 255 (H'0000 to H'00FF in normal mode*, H'000000 to H'0000FF in advanced mode). In normal mode the memory operand is a word operand and the branch address is 16 bits long. In advanced mode the memory operand is a longword operand, the first byte of which is assumed to be H'00. Note that the first part of the address range is also the exception vector area. For further details, refer to section 4, Exception Handling. If an odd address is specified in word or longword memory access, or as a branch address, the least significant bit is regarded as 0, causing data to be accessed or instruction code to be fetched at the address preceding the specified address. (For further information, see section 2.5.2, Memory Data Formats.) Note: * Not available in this LSI. Specified by @aa:8 Branch address Specified by @aa:8 Reserved Branch address (a) Normal Mode* (b) Advanced Mode Note: * Normal mode is not available in this LSI. Figure 2.12 Branch Address Specification in Memory Indirect Mode REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 53 of 846 H8S/2215 Group Section 2 CPU 2.7.9 Effective Address Calculation Table 2.13 indicates how effective addresses are calculated in each addressing mode. In normal mode the upper 8 bits of the effective address are ignored in order to generate a 16-bit address. Table 2.13 Effective Address Calculation (1) No 1 Addressing Mode and Instruction Format op 2 Effective Address Calculation Effective Address (EA) Register direct (Rn) rm Operand is general register contents. rn Register indirect (@ERn) 31 0 op 3 31 24 23 0 Don't care General register contents r Register indirect with displacement @(d:16,ERn) or @(d:32,ERn) 31 0 General register contents op r 31 disp 31 Register indirect with post-increment or pre-decrement • Register indirect with post-increment @ERn+ op disp 31 0 31 24 23 0 Don't care General register contents r • Register indirect with pre-decrement @-ERn 0 0 Sign extension 4 24 23 Don't care 1, 2, or 4 31 0 General register contents 31 24 23 0 Don't care op r 1, 2, or 4 Operand Size Byte Word Longword Page 54 of 846 Offset 1 2 4 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 2 CPU Table 2.13 Effective Address Calculation (2) No 5 Addressing Mode and Instruction Format Effective Address Calculation Effective Address (EA) Absolute address @aa:8 31 op @aa:16 31 op 0 H'FFFF 24 23 16 15 0 Don't care Sign extension abs @aa:24 31 op 8 7 24 23 Don't care abs 24 23 0 Don't care abs @aa:32 op 31 6 Immediate #xx:8/#xx:16/#xx:32 op 7 0 24 23 Don't care abs Operand is immediate data. IMM 23 Program-counter relative 0 PC contents @(d:8,PC)/@(d:16,PC) op disp 0 23 Sign extension disp 31 24 23 0 Don't care 8 Memory indirect @@aa:8 • Normal mode* 31 op abs 0 8 7 abs H'000000 15 0 31 24 23 Don't care Memory contents 16 15 0 H'00 • Advanced mode 8 7 31 op abs H'000000 0 abs 0 31 31 24 23 Don't care 0 Memory contents Note: * Normal mode is not available in this LSI. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 55 of 846 Section 2 CPU 2.8 H8S/2215 Group Processing States The H8S/2000 CPU has five main processing states: the reset state, exception handling state, program execution state, bus-released state, and power-down state. Figure 2.13 indicates the state transitions. • Reset State In this state the CPU and internal peripheral modules are all initialized and stop. When the RES input goes low all current processing stops and the CPU enters the reset state. All interrupts are masked in the reset state. Reset exception handling starts when the RES signal changes from low to high. For details, refer to section 4, Exception Handling. The reset state can also be entered by a watchdog timer overflow. • Exception-Handling State The exception-handling state is a transient state that occurs when the CPU alters the normal processing flow due to an exception source, such as, a reset, trace, interrupt, or trap instruction. The CPU fetches a start address (vector) from the exception vector table and branches to that address. For further details, refer to section 4, Exception Handling. • Program Execution State In this state the CPU executes program instructions in sequence. • Bus-Released State In a product which has a bus master other than the CPU, such as a direct memory access controller (DMAC) and a data transfer controller (DTC), the bus-released state occurs when the bus has been released in response to a bus request from a bus master other than the CPU. While the bus is released, the CPU halts operations. • Power-Down State This is a power-down state in which the CPU stops operating. The program stop state occurs when a SLEEP instruction is executed or the CPU enters hardware standby mode. For details, refer to section 22, Power-Down Modes. Page 56 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 2 CPU End of bus request Bus request Program execution state SLEEP instruction, SSBY = 0 ion ha nd lin g s bu t of est d es qu En requ e r s Bu Sleep mode st que SLEEP instruction, SSBY = 1 t re up err Int En d o ha f ex nd ce lin pti g on Re qu es tf or ex ce pt Bus-released state Exception handling state RES = High, MRES = High External interrupt request Software standby mode STBY = High, RES = Low Reset state*1 Hardware standby mode*2 Power-down state Notes: 1. From any state except hardware standby mode, a transition to the reset state occurs whenever RES goes low. A transition can also be made to the reset state when the watchdog timer overflows. From any state except hardware standby mode and power-on reset state, a transition to the manual reset state occurs whenever MRES goes low. 2. From any state, a transition to hardware standby mode occurs when STBY goes low. Figure 2.13 State Transitions REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 57 of 846 Section 2 CPU 2.9 Usage Notes 2.9.1 Note on TAS Instruction Usage H8S/2215 Group Only register ER0, ER1, ER4, or ER5 should be used when using the TAS instruction. The TAS instruction is not generated by the Renesas Electronics H8S and H8/300 series C/C++ compilers. If the TAS instruction is used as a user-defined intrinsic function, ensure that only register ER0, ER1, ER4, or ER5 is used. 2.9.2 STM/LTM Instruction Usage With the STM or LDM instruction, the ER7 register is used as the stack pointer, and thus cannot be used as a register that allows save (STM) or restore (LDM) operation. With a single STM or LDM instruction, two to four registers can be saved or restored. The available registers are as follows: For two registers: ER0 and ER1, ER2 and ER3, or ER4 and ER5 For three registers: ER0 to ER2, or ER4 to ER6 For four registers: ER0 to ER3 For the Renesas Electronics H8S or H8/300 Series C/C++ Compiler, the STM/LDM instruction including ER7 is not created. 2.9.3 Note on Bit Manipulation Instructions Using bit manipulation instructions on registers containing write-only bits can result in the bits that should have been manipulated not being manipulated as intended or in the wrong bits being manipulated. Reading data from a register containing write-only bits may return fixed or undefined values. Consequently, bit manipulation instructions that use the read values to perform operations (BNOT, BTST, BAND, BIAND, BOR, BIOR, BXOR, BIXOR, BLD, and BILD) will not work properly. In addition, bit manipulation instructions that write data following operations based on the data values read (BSET, BCLR, BNOT, BST, and BIST) may change the values of bits unrelated to the intended bit manipulation. Therefore, caution is necessary when using bit manipulation instructions on registers containing write-only bits. The instructions BSET, BCLR, BNOT, BST, and BIST perform the following operations in the order shown: Page 58 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 2 CPU 1. Read data in byte units 2. Perform bit manipulation on the read data according to the instruction 3. Write data in byte units Example: Using the BCLR instruction to clear pin 14 only of P1DDR for port 1 P1DDR is an 8-bit register that contains write-only bits. It is used to specify the I/O setting of the individual pins in port 1. Reading produces invalid data. Attempting to read from P1DDR returns undefined values. In this example, the BCLR instruction is used to set pin 14 as an input port. Let us assume that pins 17 to 14 are presently set as output pins and pins 13 to 10 are set as input pins. Thus, the value of P1DDR is initially H'F0. P17 P16 P15 P14 P13 P12 P11 P10 I/O Output Output Output Output Input Input Input Input P1DDR 1 1 1 1 0 0 0 0 To change pin 14 from an output pin to an input pin, the value of bit 4 in P1DDR must be changed from 1 to 0 (H'F0 to H'E0). Now assume that the BCLR instruction is used to clear bit 4 in P1DDR to 0. BCLR #4, @P1DDR However, using the above bit manipulation instruction on the write-only register P1DDR can cause problems, as described below. The BCLR instruction first reads data from P1DDR in byte units, but in this case the read values are undefined. These undefined values can be 0 or 1 for each bit in the register, but there is no way of telling which. Since all of the bits in P1DDR are write-only, undefined values are returned for all of the bits when the register is read. In this example the value of P1DDR is H'F0, but we will assume that the value returned when the register was read is H'F8, which would give bit 3 a value of 1. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 59 of 846 H8S/2215 Group Section 2 CPU P17 P16 P15 P14 P13 P12 P11 P10 I/O Output Output Output Output Input Input Input Input P1DDR 1 1 1 1 0 0 0 0 Read value 1 1 1 1 1 0 0 0 The BCLR instruction performs bit manipulation on the read value, which is H'F8 in this example. It clears bit 4 to 0. P17 P16 P15 P14 P13 P12 P11 P10 I/O Output Output Output Output Input Input Input Input P1DDR 1 1 1 1 0 0 0 0 After bit manipulation 1 1 1 0 1 0 0 0 Following bit manipulation the data is written to P1DDR and the BCLR instruction terminates. P17 P16 P15 P14 P13 P12 P11 P10 I/O Output Output Output Input Output Input Input Input P1DDR 1 1 1 0 1 0 0 0 Write value 1 1 1 0 1 0 0 0 The contents of P1DDR should have been overwritten with a value of H'E0, but in fact a value of H'E8 was written to the register. This changed pin 13, which should have been an input pin, to an output pin. In this example we assumed that pin 13 was read as 1. However, since the values returned for pins 17 to 10 are all undefined when read, there is the possibility that individual bit values could be changed from 0 to 1 or from 1 to 0. To prevent this from happening, the recommendations in section 2.9.4, Accessing Registers Containing Write-Only Bits, should be followed when changing the values of registers containing write-only bits. In addition, the BCLR instruction can be used to clear flags in internal I/O registers to 0. In such cases it is not necessary to read the relevant flag beforehand so long as it is clear that it has been set to 1 by an interrupt processing routine or the like. 2.9.4 Accessing Registers Containing Write-Only Bits Using data transfer instructions or bit manipulation instructions on registers containing write-only bits can result in undefined values being read. To prevent the reading of undefined values, the procedure described below should be used to access registers containing write-only bits. Page 60 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 2 CPU In order to write to a register containing write-only bits, set aside a work area in memory (in onchip RAM, for example) and write the data to be manipulated to it. After accessing and manipulating the data in the work area in memory, write the resulting data to the register containing write-only bits. Figure 2.14 Example Flowchart of Method for Accessing Registers Containing Write-Only Bits Write data to work area Write initial value Write data from work area to register containing write-only bits Access data in work area (using either data transfer instructions or bit manipulation instructions) Change value of register containing write-only bits Write data from work area to register containing write-only bits Figure 2.14 Flowchart of Method for Accessing Registers Containing Write-Only Bits Example: Clearing pin 14 only of P1DDR for port 1 P1DDR is an 8-bit register that contains write-only bits. It is used to specify the I/O setting of the individual pins in port 1. Reading produces invalid data. Attempting to read from P1DDR returns undefined values. In this example, the BCLR instruction is used to set pin 14 as an input port. To start, the initial value H'F0 to be written to P1DDR is written ahead of time to the work area (RAM0) in memory. MOV.B #H'F0, R0L MOV.B R0L, @RAM0 MOV.B R0L, @P1DDR REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 61 of 846 H8S/2215 Group Section 2 CPU P17 P16 P15 P14 P13 P12 P11 P10 I/O Output Output Output Output Input Input Input Input P1DDR 1 1 1 1 0 0 0 0 RAM0 1 1 1 1 0 0 0 0 To change pin 14 from an output pin to an input pin, the value of bit 4 in P1DDR must be changed from 1 to 0 (H'F0 to H'E0). Here the BCLR instruction will be used to clear bit 4 in P1DDR to 0. BCLR #4, @RAM0 P17 P16 P15 P14 P13 P12 P11 P10 I/O Output Output Output Output Input Input Input Input P1DDR 1 1 1 1 0 0 0 0 RAM0 1 1 1 0 0 0 0 0 Since RAM0 is a read/write area of memory, performing the above bit manipulation using the BCLR instruction causes only bit 4 in RAM0 to be cleared to 0. The value of RAM0 is then written to P1DDR. MOV.B @RAM0, R0L MOV.B R0L, @P1DDR P17 P16 P15 P14 P13 P12 P11 P10 I/O Output Output Output Input Input Input Input Input P1DDR 1 1 1 0 0 0 0 0 RAM0 1 1 1 0 0 0 0 0 By using the above procedure to access registers containing write-only bits, it is possible to create programs that are not dependent on the type of instructions used. Page 62 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 3 MCU Operating Modes Section 3 MCU Operating Modes 3.1 Operating Mode Selection This LSI supports four operating modes (modes 7 to 4). These modes are depending on the setting of mode pins (MD2 to MD0). Modes 6 to 4 are extended modes in which external memory and external peripheral devices can be accessed. In extended modes, each area can be used as 8-bit or 16-bit address space according to the bus controller settings after program execution. In this case, if an area is specified as 16-bit access space, 16-bit bus mode is employed for all areas; while if an area is specified as 8-bit access space, 8-bit bus mode is employed for all areas. In mode 7, external addresses cannot be used. Do not change the mode pin settings during operation. Table 3.1 MCU Operating Mode Selection External Data Bus MCU Operating Mode CPU Operating MD2 MD1 MD0 Mode 4 1 0 0 Advanced mode 5 1 0 1 6 1 1 7* 1 1 Note: * Maximum Initial Value Value On-chip ROM disabled, extended mode Disabled 16 bits 16 bits Advanced mode On-chip ROM disabled, extended mode Disabled 8 bits 16 bits 0 Advanced mode On-chip ROM enabled, extended mode Enabled 8 bits 16 bits 1 Advanced mode Single-chip mode Enabled — — The following applies to the use of mode 7. (1) H8S/2215 The USB cannot be used in mode 7. (2) H8S/2215R, H8S/2215T or H8S/2215C Development work using the E6000 emulator: The USB cannot be used in mode 7. Development work using the on-chip (E10A-USB) emulator: The USB can be used in mode 7. See section 3.3.4, Mode 7, for details. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 On-Chip ROM Description Page 63 of 846 H8S/2215 Group Section 3 MCU Operating Modes 3.2 Register Descriptions The following registers are related to the operating mode. • Mode control register (MDCR) • System control register (SYSCR) 3.2.1 Mode Control Register (MDCR) MDCR is used to monitor the current operating mode of this LSI. Bit Bit Name Initial Value R/W Description 7 — 1 Reserved — This bit is always read as 1 and cannot be modified. 6 to 3 — All 0 — Reserved These bits are always read as 0 and cannot be modified. R Mode select 2 to 0 MDS1 —* —* R MDS0 —* R These bits indicate the input levels at pins MD2 to MD0 (the current operating mode).Bits MDS2 to MDS0 correspond to MD2 to MD0. MDS2 to MDS0 are read-only bits and they cannot be written to. The mode pin (MD2 to MD0) input levels are latched into these bits when MDCR is read. 2 MDS2 1 0 These latches are canceled by a power-on reset, but maintained at manual reset. Note: 3.2.2 * Determined by the MD2 to MD0 pin settings. System Control Register (SYSCR) SYSCR is used to select the interrupt control mode and the detected edge for NMI, select the MRES input pin enable or disable, and enables or disables on-chip RAM. Page 64 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 3 MCU Operating Modes Bit Bit Name Initial Value R/W Description 7 — 0 Reserved R/W The write value should always be 0. 6 — 0 — Reserved This bit is always read as 0 and cannot be modified. 5 INTM1 0 R/W 4 INTM0 0 R/W These bits select the control mode of the interrupt controller. For details of the interrupt control modes, see section 5.6, Interrupt Control Modes and Interrupt Operation. 00: Interrupt control mode 0 01: Setting prohibited 10: Interrupt control mode 2 11: Setting prohibited 3 NMIEG 0 R/W NMI Edge Select Selects the valid edge of the NMI interrupt input. 0: An interrupt is requested at the falling edge of NMI input 1: An interrupt is requested at the rising edge of NMI input 2 MRESE 0 R/W Manual reset Select Enables or disables the MRES pin input. 0: The MRES pin input (manual reset) is disabled 1: The MRES pin input (manual reset) is enabled The MRES input pin can be used. 1 — 0 — Reserved This bit is always read as 0 and cannot be modified. 0 RAME 1 R/W RAM Enable Enables or disables the on-chip RAM. The RAME bit is initialized when the reset status is released. 0: On-chip RAM is disabled 1: On-chip RAM is enabled REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 65 of 846 Section 3 MCU Operating Modes 3.3 Operating Mode Descriptions 3.3.1 Mode 4 H8S/2215 Group The CPU can access a 16-Mbyte address space in advanced mode. The on-chip ROM is disabled. Pins P13 to P10, and ports A, B, and C function as an address bus, ports D and E function as a data bus, and part of port F carries bus control signals. Pins P13 to P11 function as input ports immediately after a reset. Pin 10 and ports A and B function as address (A20 to A8) outputs immediately after a reset. Address (A23 to A21) output can be enabled or disabled by bits AE3 to AE0 in the pin function control register (PFCR) regardless of the corresponding data direction register (DDR) values. Pins for which address output is disabled among pins P13 to P10 and in ports A and B become port outputs when the corresponding DDR bits are set to 1. Port C always has an address (A7 to A0) output function. The initial bus mode after a reset is 16 bits, with 16-bit access to all areas. However, note that if 8bit access is designated by the bus controller for all areas, the bus mode switches to 8 bits. 3.3.2 Mode 5 The CPU can access a 16-Mbyte address space in advanced mode. The on-chip ROM is disabled. Pins P13 to P10, and ports A, B, and C function as an address bus, ports D and E function as a data bus, and part of port F carries bus control signals. Pins P13 to P11 function as input ports immediately after a reset. Pin 10 and ports A and B function as address (A20 to A8) outputs immediately after a reset. Address (A23 to A21) output can be enabled or disabled by bits AE3 to AE0 in the pin function control register (PFCR) regardless of the corresponding data direction register (DDR) values. Pins for which address output is disabled among pins P13 to P10 and in ports A and B become port outputs when the corresponding DDR bits are set to 1. Port C always has an address (A7 to A0) output function. The initial bus mode after a reset is 8 bits, with 8-bit access to all areas. However, note that if 16bit access is designated by the bus controller for any area, the bus mode switches to 16 bits and port E becomes a data bus. Page 66 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 3.3.3 Section 3 MCU Operating Modes Mode 6 The CPU can access a 16-Mbyte address space in advanced mode. The on-chip ROM is enabled. Pins P13 to P10, and ports A, B and C function as input ports immediately after a reset. Address (A23 to A8) output can be enabled or disabled by bits AE3 to AE0 in the pin function control register (PFCR) regardless of the corresponding data direction register (DDR) values. Pins for which address output is disabled among pins P13 to P10 and in ports A and B become port outputs when the corresponding DDR bits are set to 1. Port C is an input port immediately after a reset. Addresses A7 to A0 are output by setting the corresponding DDR bits to 1. Ports D and E function as a data bus, and part of port F carries data bus signals. The initial bus mode after a reset is 8 bits, with 8-bit access to all areas. However, note that if 16bit access is designated by the bus controller for any area, the bus mode switches to 16 bits and port E becomes a data bus. 3.3.4 Mode 7 The CPU can access a 16-Mbyte address space in advanced mode. The on-chip ROM is enabled, but external addresses cannot be accessed. All I/O ports are available for use as input-output ports. In addition, the USB is not supported in some cases due to development tool issues, as summarized in table 3.2. Table 3.2 USB Support in Mode 7 Development Tool H8S/2215 H8S/2215R, H8S/2215T or H8S/2215C E6000 × × E10A-USB ⎯* Note: * The H8S/2215 does not have an on-chip emulator function. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 67 of 846 H8S/2215 Group Section 3 MCU Operating Modes 3.3.5 Pin Functions The pin functions of ports 1, and A to F vary depending on the operating mode. Table 3.3 shows the functions in modes 4 to 7. Table 3.3 Pin Functions in Each Operating Mode Mode 4 Mode 5 Mode 6 Mode 7* P13 to P11 P*/A P*/A P*/A P P10 P/A* P/A* P/A* P/A* P*/A P*/A P Port B P/A* P/A* P Port C A A P*/A P*/A Port D D P/D* D P*/D P Port E D P*/D Port F PF7 P/C* P/C* P/C* P*/C PF6 to PF4 C PF3 C P*/C C P*/C P P/C* P*/C P*/C P*/C Port Port 1 Port A PA3 to PA0 PF2 to PF0 1 P P P Legend: P: I/O port A: Address bus output D: Data bus I/O C: Control signals, clock I/O *: After reset Note: 1. The following applies to the use of mode 7. (1) H8S/2215 The USB cannot be used in mode 7. (2) H8S/2215R, H8S/2215T or H8S/2215C Development work using the E6000 emulator: The USB cannot be used in mode 7. Development work using the on-chip (E10A-USB) emulator: The USB can be used in mode 7. See section 3.3.4, Mode 7, for details. Page 68 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 3.4 Section 3 MCU Operating Modes Memory Map in Each Operating Mode Figures 3.1 to 3.4 show the memory map in each operating mode for HD64F2215, HD64F2215U, HD6432215B, and HD6432215C. ROM: — RAM: 16 kbytes Modes 4 and 5 (advanced extended modes with on-chip ROM disabled) H'000000 ROM: 256 kbytes RAM: 16 kbytes Mode 6 (advanced extended mode with on-chip ROM enabled) ROM: 256 kbytes RAM: 16 kbytes Mode 7*2 (advanced single-chip mode) H'000000 H'000000 On-chip ROM On-chip ROM External address space H'03FFFF H'040000 External address space H'C00000 On-chip USB registers H'C00000 H'E00000 H'E00000 External address space H'FF9000 H'FFB000 H'FFEFC0 On-chip USB registers Reserved*1 *1 On-chip RAM External address space On-chip USB registers External address space Reserved*1 H'FFB000 On-chip RAM*1 H'FFEFC0 External address space H'FFF800 Internal I/O registers H'FFFF40 H'FFFF40 Reserved H'DFFFFF H'FF9000 H'FFF800 Internal I/O registers H'FFFF60 Internal I/O registers H'FFFFC0 On-chip RAM*1 H'FFFFFF H'C00000 H'FFB000 H'FFEFBF On-chip RAM H'FFF800 Internal I/O registers H'FFFF3F Reserved H'FFFF60 Internal I/O registers H'FFFFC0 On-chip RAM*1 H'FFFFFF H'FFFF60 Internal I/O registers H'FFFFC0 On-chip RAM H'FFFFFF Notes: 1. External addresses can be accessed by clearing the RAME bit in SYSCR to 0. 2. The USB cannot be used in mode 7. See section 3.3.4, Mode 7, for details. Figure 3.1 Memory Map in Each Operating Mode for HD64F2215 and HD64F2215U REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 69 of 846 H8S/2215 Group Section 3 MCU Operating Modes ROM: — RAM: 16 kbytes Modes 4 and 5 (advanced extended modes with on-chip ROM disabled) ROM: 128 kbytes RAM: 16 kbytes Mode 6 (advanced extended mode with on-chip ROM enabled) (advanced single-chip mode) H'000000 H'000000 H'000000 ROM: 128 kbytes RAM: 16 kbytes Mode 7*2 On-chip ROM On-chip ROM H'01FFFF H'020000 Reserved External address space H'040000 External address space H'C00000 On-chip USB registers H'C00000 H'E00000 H'E00000 External address space H'FF9000 H'FFB000 H'FFEFC0 On-chip USB registers Reserved*1 *1 On-chip RAM External address space External address space Reserved*1 H'FFB000 On-chip RAM*1 H'FFEFC0 External address space H'FFF800 Internal I/O registers H'FFFF40 H'FFFF40 Reserved On-chip USB registers H'DFFFFF H'FF9000 H'FFF800 Internal I/O registers H'FFFF60 Internal I/O registers H'FFFFC0 On-chip RAM*1 H'FFFFFF H'C00000 H'FFB000 On-chip RAM H'FFEFBF H'FFF800 Internal I/O registers H'FFFF3F Reserved H'FFFF60 Internal I/O registers H'FFFFC0 On-chip RAM*1 H'FFFFFF H'FFFF60 Internal I/O registers H'FFFFC0 On-chip RAM H'FFFFFF Notes: 1. External addresses can be accessed by clearing the RAME bit in SYSCR to 0. 2. The USB cannot be used in mode 7. See section 3.3.4, Mode 7, for details. Figure 3.2 Memory Map in Each Operating Mode for HD6432215B Page 70 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 3 MCU Operating Modes ROM: — RAM: 8 kbytes Modes 4 and 5 (advanced extended modes with on-chip ROM disabled) ROM: 64 kbytes RAM: 8 kbytes Mode 6 (advanced extended mode with on-chip ROM enabled) (advanced single-chip mode) H'000000 H'000000 H'000000 ROM: 64 kbytes RAM: 8 kbytes Mode 7*2 On-chip ROM On-chip ROM H'00FFFF H'010000 Reserved External address space H'040000 External address space H'C00000 On-chip USB registers H'C00000 H'E00000 H'E00000 External address space H'FF9000 On-chip USB registers Reserved*1 On-chip USB registers H'FF9000 Reserved*1 On-chip RAM*1 H'FFD000 On-chip RAM*1 H'FFEFC0 External address space H'FFEFC0 External address space H'FFF800 Internal I/O registers H'FFF800 Internal I/O registers H'FFFF40 H'FFFF40 H'FFFF60 Internal I/O registers H'FFFFC0 On-chip RAM*1 H'FFFFFF H'DFFFFF External address space H'FFD000 Reserved H'C00000 H'FFD000 H'FFEFBF On-chip RAM H'FFF800 Internal I/O registers H'FFFF3F Reserved H'FFFF60 Internal I/O registers H'FFFFC0 On-chip RAM*1 H'FFFFFF H'FFFF60 Internal I/O registers H'FFFFC0 On-chip RAM H'FFFFFF Notes: 1. External addresses can be accessed by clearing the RAME bit in SYSCR to 0. 2. The USB cannot be used in mode 7. See section 3.3.4, Mode 7, for details. Figure 3.3 Memory Map in Each Operating Mode for HD6432215C REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 71 of 846 H8S/2215 Group Section 3 MCU Operating Modes ROM: — RAM: 20 kbytes Modes 4 and 5 (advanced extended modes with on-chip ROM disabled) H'000000 ROM: 256 kbytes RAM: 20 kbytes Mode 6 (advanced extended mode with on-chip ROM enabled) H'000000 ROM: 256 kbytes RAM: 20 kbytes Mode 7*2 (advanced single-chip mode) H'000000 On-chip ROM On-chip ROM External address space H'03FFFF H'040000 External address space H'C00000 On-chip USB registers H'C00000 H'E00000 H'E00000 External address space*3 H'FF9000 On-chip USB registers Reserved*1 On-chip USB registers H'FF9000 Reserved*1 On-chip RAM*1 H'FFA000 On-chip RAM*1 H'FFEFC0 External address space H'FFEFC0 External address space H'FFF800 Internal I/O registers H'FFF800 Internal I/O registers H'FFFF40 H'FFFF40 H'FFFF60 Internal I/O registers H'FFFFC0 On-chip RAM*1 H'FFFFFF H'DFFFFF External address space*3 H'FFA000 Reserved H'C00000 H'FFA000 H'FFEFBF On-chip RAM H'FFF800 Internal I/O registers H'FFFF3F Reserved H'FFFF60 Internal I/O registers H'FFFFC0 On-chip RAM*1 H'FFFFFF H'FFFF60 Internal I/O registers H'FFFFC0 On-chip RAM H'FFFFFF Notes: 1. External addresses can be accessed by clearing the RAME bit in SYSCR to 0. 2. Development work using the E6000 emulator: The USB cannot be used in mode 7. Development work using the on-chip (E10A-USB) emulator: The USB can be used in mode 7. See section 3.3.4, Mode 7, for details. 3. When using an on-chip emulator, do not access the area from H'FEE800 to H'FEFFFF. Figure 3.4 Memory Map in Each Operating Mode for HD64F2215R, HD64F2215RU, HD64F2215T, HD64F2215TU and HD64F2215CU Page 72 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 4 Exception Handling Section 4 Exception Handling 4.1 Exception Handling Types and Priority As table 4.1 indicates, exception handling may be caused by a reset, trace, trap instruction, or interrupt. Exception handling is prioritized as shown in table 4.1. If two or more exceptions occur simultaneously, they are accepted and processed in order of priority. Exception sources, the stack structure, and operation of the CPU vary depending on the interrupt control mode. For details on the interrupt control mode, refer to section 5, Interrupt Controller. Table 4.1 Exception Types and Priority Priority Exception Type Start of Exception Handling High Reset Starts immediately after a low-to-high transition at the RES or MRES pin, or when the watchdog timer overflows. The CPU enters the reset state when the RES pin is low. The CPU enters the manual reset state when the MRES pin is low. Trace Starts when execution of the current instruction or exception handling ends, if the trace (T) bit in the EXR is set to 1. This is enabled only in trace interrupt control mode 2. Trace exception processing is not performed after RTE instruction execution. Interrupt Starts when execution of the current instruction or exception handling ends, if an interrupt request has been issued. Note that after executing the ANDC, ORC, XORC, or LDC instruction or at the completion of reset exception processing, no interrupt is detected. Trap instruction (TRAPA) Started by execution of a trap instruction (TRAPA). Trap exception processing is always accepted in program execution state. Low 4.2 Exception Sources and Exception Vector Table Different vector addresses are assigned to different exception sources. Table 4.2 lists the exception sources and their vector addresses. Since the usable modes differ depending on the product, for details on each product, refer to section 3, MCU Operating Modes. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 73 of 846 H8S/2215 Group Section 4 Exception Handling Table 4.2 Exception Handling Vector Table Vector Address* Exception Source Vector Number Normal Mode* 2 1 Advanced Mode Power-on reset 0 H'0000 to H'0001 H'0000 to H'0003 Manual reset 1 H'0002 to H'0003 H'0004 to H'0007 Reserved for system use 2 H'0004 to H'0005 H'0008 to H'000B 3 H'0006 to H'0007 H'000C to H'000F 4 H'0008 to H'0019 H'0010 to H'0013 Trace 5 H'000A to H000B H'0014 to H0017 2 Direct transitions* 6 H'000C to H000D H'0018 to H001B External interrupt (NMI) 7 H'000E to H'000F H'001C to H'001F Trap instruction #0 8 H'0010 to H'0011 H'0020 to H'0023 #1 9 H'0012 to H'0013 H'0024 to H'0027 #2 10 H'0014 to H'0015 H'0028 to H'002B #3 11 H'0016 to H'0017 H'002C to H'002F 12 H'0018 to H'0019 H'0030 to H'0033 13 H'001A to H'001B H'0034 to H'0037 14 H'001C to H'001D H'0038 to H'003B 15 H'001E to H'001F H'003C to H'003F Reserved for system use External interrupt IRQ0 16 H'0020 to H'0021 H'0040 to H'0043 External interrupt IRQ1 17 H'0022 to H'0023 H'0044 to H'0047 External interrupt IRQ2 18 H'0024 to H'0025 H'0048 to H'004B External interrupt IRQ3 19 H'0026 to H'0027 H'004C to H'004F External interrupt IRQ4 20 H'0028 to H'0029 H'0050 to H'0053 External interrupt IRQ5 21 H'002A to H'002B H'0054 to H'0057 USB interrupt IRQ6 22 H'002C to H'002D H'0058 to H'005B External interrupt 3 Internal interrupt* IRQ7 23 H'002E to H'002F H'005C to H'005F 24 H'0030 to H'0031 H'0060 to H'0063 ⏐ ⏐ ⏐ 127 H'00FE to H'00FF H'01FC to H'01FF Notes: 1. Lower 16 bits of the address. 2. Not available in this LSI. 3. For details of internal interrupt vectors, see section 5.5, Interrupt Exception Handling Vector Table. Page 74 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 4.3 Section 4 Exception Handling Reset A reset has the highest exception priority. When the RES or MRES pin goes low, all processing halts and this LSI enters the reset state. To ensure that this LSI is reset, hold the RES pin low for at least 20 ms at power-on. A reset initializes the internal state of the CPU and the registers of on-chip peripheral modules. This LSI can also be reset by overflow of the watchdog timer. For details, see section 12, Watchdog Timer (WDT). Immediately after a reset, interrupt control mode 0 is set. Note: TRST should be brought low level at power-on. For details, see section 14, Boundary Scan Function. 4.3.1 Reset Types A reset can be of either of two types: a power-on reset or a manual reset. Reset types are shown in table 4.3. A power-on reset should be used when powering on. The internal state of the CPU is initialized by either type of reset. A power-on reset also initializes all the registers in the on-chip peripheral modules, while a manual reset initializes all the registers in the on-chip peripheral modules except for the bus controller and I/O ports, which retain their previous states. With a manual reset, since the on-chip peripheral modules are initialized, ports used as on-chip peripheral module I/O pins are switched to I/O ports controlled by DDR and DR. Table 4.3 Reset Types Reset Transition Condition RES CPU On-Chip Peripheral Modules Power-on reset × Low Initialized Initialized Manual reset High Initialized Initialized, except for bus controller and I/O ports Type MRES Internal State Low Legend: ×: Don’t care REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 75 of 846 Section 4 Exception Handling H8S/2215 Group A reset caused by the watchdog timer can also be of either of two types: a power-on reset or a manual reset. When the MRES pin is used, MRES pin input must be enabled by setting the MRESE bit to 1 in SYSCR. 4.3.2 Reset Exception Handling When the RES or MRES pin goes high after being held low for the necessary time, this LSI starts reset exception handling as follows: 1. The internal state of the CPU and the registers of the on-chip peripheral modules are initialized, the T bit is cleared to 0 in EXR, and the I bit is set to 1 in EXR and CCR. 2. The reset exception handling vector address is read and transferred to the PC, and program execution starts from the address indicated by the PC. Page 76 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 4 Exception Handling Figures 4.1 and 4.2 show examples of the reset sequence. Internal Prefetch of first processing program instruction Vector fetch * * * φ RES, MRES Address bus (3) (1) (5) RD HWR, LWR High D15 to D0 (1) (3) (2) (4) (5) (6) (2) (4) (6) Reset exception handling vector address (for power-on reset, (1) = H'000000, (3) = H'000002; for manual reset, (1) = H'000004, (3) = H'000006) Start address (contents of reset exception handling vector address) Start address ((5) = (2) (4)) First program instruction Note: * Three program wait states are inserted. Figure 4.1 Reset Sequence (Mode 4) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 77 of 846 H8S/2215 Group Section 4 Exception Handling Prefetch of first program Internal processing instruction Vector fetch φ RES, MRES Internal address bus (1) (3) (5) Internal read signal Internal write signal High (2) Internal data bus (1) (3) (2) (4) (5) (6) (4) (6) Reset exception handling vector address (for power-on reset, (1) = H'000000, (3) = H'000002; for manual reset, (1) = H'000004, (3) = H'000006) Start address (contents of reset exception handling vector address) Start address ((5) = (2) (4)) First program instruction Figure 4.2 Reset Sequence (Modes 6, 7) 4.3.3 Interrupts after Reset If an interrupt is accepted after a reset but before the stack pointer (SP) is initialized, the PC and CCR will not be saved correctly, leading to a program crash. To prevent this, all interrupt requests, including NMI, are disabled immediately after a reset. Since the first instruction of a program is always executed immediately after the reset state ends, make sure that this instruction initializes the stack pointer (example: MOV.L #xx SP). 4.3.4 State of On-Chip Peripheral Modules after Reset Release After reset release, MSTPCRA to MSTPCRC are initialized to H'3F, H'FF, and H'FF, respectively, and all modules except the DMAC and DTC enter module stop mode. Consequently, on-chip peripheral module registers cannot be read from or written to. Register reading and writing is enabled when module stop mode is exited. Page 78 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 4.4 Section 4 Exception Handling Traces Traces are enabled in interrupt control mode 2. Trace mode is not activated in interrupt control mode 0, irrespective of the state of the T bit. For details of interrupt control modes, see section 5, Interrupt Controller. If the T bit in EXR is set to 1, trace mode is activated. In trace mode, a trace exception occurs on completion of each instruction. Trace mode is not affected by interrupt masking. Table 4.4 shows the state of CCR and EXR after execution of trace exception handling. Trace mode is canceled by clearing the T bit in EXR to 0. The T bit saved on the stack retains its value of 1, and when control is returned from the trace exception handling routine by the RTE instruction, trace mode resumes. Trace exception handling is not carried out after execution of the RTE instruction. Interrupts are accepted even within the trace exception handling routine. Table 4.4 Status of CCR and EXR after Trace Exception Handling Interrupt Control Mode CCR I 0 2 EXR UI I2 to I0 T Trace exception handling cannot be used. 1 — — 0 Legend: 1: Set to 1 0: Cleared to 0 —: Retains value prior to execution. 4.5 Interrupts Interrupts are controlled by the interrupt controller. The interrupt controller has two interrupt control modes and can assign interrupts other than NMI to eight priority/mask levels to enable multiplexed interrupt control. The source to start interrupt exception handling and the vector address differ depending on the product. For details, refer to section 5, Interrupt Controller. The interrupt exception handling is as follows: 1. The values in the program counter (PC), condition code register (CCR), and extended control register (EXR) are saved in the stack. 2. The interrupt mask bit is updated and the T bit is cleared. 3. A vector address corresponding to the interrupt source is generated, the start address is loaded from the vector table to the PC, and program execution starts from that address. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 79 of 846 H8S/2215 Group Section 4 Exception Handling 4.6 Trap Instruction Trap instruction exception handling starts when a TRAPA instruction is executed. Trap instruction exception handling can be executed at all times in the program execution state. The trap instruction exception handling is as follows: 1. The values in the program counter (PC), condition code register (CCR), and extended control register (EXR) are saved in the stack. 2. The interrupt mask bit is updated and the T bit is cleared. 3. A vector address corresponding to the interrupt source is generated, the start address is loaded from the vector table to the PC, and program execution starts from that address. The TRAPA instruction fetches a start address from a vector table entry corresponding to a vector number from 0 to 3, as specified in the instruction code. Table 4.5 shows the status of CCR and EXR after execution of trap instruction exception handling. Table 4.5 Status of CCR and EXR after Trap Instruction Exception Handling Interrupt Control Mode CCR EXR I UI I2 to I0 T 0 1 — — — 2 1 — — 0 Legend: 1: Set to 1 0: Cleared to 0 —: Retains value prior to execution. Page 80 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 4.7 Section 4 Exception Handling Stack Status after Exception Handling Figure 4.3 shows the stack after completion of trap instruction exception handling and interrupt exception handling. (a) Normal Modes*2 SP EXR Reserved*1 SP CCR CCR CCR*1 CCR*1 PC (16 bits) PC (16 bits) Interrupt control mode 0 Interrupt control mode 2 (b) Advanced Modes SP EXR Reserved*1 SP CCR PC (24 bits) Interrupt control mode 0 CCR PC (24 bits) Interrupt control mode 2 Notes: 1. Ignored on return. 2. Normal modes are not available in this LSI. Figure 4.3 Stack Status after Exception Handling REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 81 of 846 H8S/2215 Group Section 4 Exception Handling 4.8 Notes on Use of the Stack When accessing word data or longword data, this LSI assumes that the lowest address bit is 0. The stack should always be accessed by word transfer instruction or longword transfer instruction, and the value of the stack pointer (SP: ER7) should always be kept even. Use the following instructions to save registers: PUSH.W Rn (or MOV.W Rn, @-SP) PUSH.L ERn (or MOV.L ERn, @-SP) Use the following instructions to restore registers: POP.W Rn (or MOV.W @SP+, Rn) POP.L ERn (or MOV.L @SP+, ERn) Setting SP to an odd value may lead to a malfunction. Figure 4.4 shows an example of what happens when the SP value is odd. Address CCR SP H'FFFEFA R1L SP H'FFFEFB PC PC H'FFFEFC H'FFFEFD H'FFFEFE SP H'FFFEFF SP set to H'FFFEFF TRAPA instruction executed MOV.B R1L, @-ER7 executed Data saved above SP Contents of CCR lost Legend: CCR: PC: R1L: SP: Condition code register Program counter General register R1L Stack pointer Note: This diagram illustrates an example in which the interrupt control mode is 0, in advanced mode. Figure 4.4 Operation when SP Value Is Odd Page 82 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 5 Interrupt Controller Section 5 Interrupt Controller 5.1 Features • Two interrupt control modes ⎯ Any of two interrupt control modes can be set by means of the INTM1 and INTM0 bits in the system control register (SYSCR). • Priorities settable with IPR ⎯ An interrupt priority register (IPR) is provided for setting interrupt priorities. Eight priority levels can be set for each module for all interrupts except NMI. NMI is assigned the highest priority level of 8, and can be accepted at all times. • Independent vector addresses ⎯ All interrupt sources are assigned independent vector addresses, making it unnecessary for the source to be identified in the interrupt handling routine. • Eight external interrupts (NMI, IRQ7, and IRQ5 to IRQ0) ⎯ NMI is the highest-priority interrupt, and is accepted at all times. Rising edge or falling edge can be selected for NMI. Falling edge, rising edge, or both edge detection, or level sensing, can be selected for IRQ7 and IRQ5 to IRQ0. IRQ6 is an interrupt only for the onchip USB. • DTC and DMAC control ⎯ DTC or DMAC activation is performed by means of interrupts. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 83 of 846 H8S/2215 Group Section 5 Interrupt Controller A block diagram of the interrupt controller is shown in figure 5.1. CPU INTM1, INTM0 SYSCR NMIEG NMI input NMI input unit IRQ input IRQ input unit ISR ISCR IER Interrupt request Vector number Priority determination I Internal interrupt request SWDTEND to EXIRQ1 CCR I2 to I0 EXR IPR Interrupt controller Legend: ISCR: IER: ISR: IPR: SYSCR: IRQ sense control register IRQ enable register IRQ status register Interrupt priority register System control register Figure 5.1 Block Diagram of Interrupt Controller Page 84 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 5.2 Section 5 Interrupt Controller Input/Output Pins Table 5.1 summarizes the pins of the interrupt controller. Table 5.1 Pin Configuration Name I/O NMI Input Function Nonmaskable external interrupt Rising or falling edge can be selected IRQ7 Input Maskable external interrupts IRQ5 Input IRQ4 Input Rising, falling, or both edges, or level sensing, (IRQ6 is an interrupt signal only for the on-chip USB) can be selected IRQ3 Input IRQ2 Input IRQ1 Input IRQ0 Input REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 85 of 846 Section 5 Interrupt Controller 5.3 H8S/2215 Group Register Descriptions The interrupt controller has the following registers. For details on the system control register, refer to section 3.2.2, System Control Register (SYSCR). • System control register (SYSCR) • IRQ sense control register H (ISCRH) • IRQ sense control register L (ISCRL) • IRQ enable register (IER) • IRQ status register (ISR) • Interrupt priority register A (IPRA) • Interrupt priority register B (IPRB) • Interrupt priority register C (IPRC) • Interrupt priority register D (IPRD) • Interrupt priority register E (IPRE) • Interrupt priority register F (IPRF) • Interrupt priority register G (IPRG) • Interrupt priority register I (IPRI) • Interrupt priority register J (IPRJ) • Interrupt priority register K (IPRK) • Interrupt priority register M (IPRM) Page 86 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 5.3.1 Section 5 Interrupt Controller Interrupt Priority Registers A to G, I to K, M (IPRA to IPRG, IPRI to IPRK, IPRM) The IPR registers set priorities (levels 7 to 0) for interrupts other than NMI. The correspondence between interrupt sources and IPR settings is shown in table 5.2. Setting a value in the range from H'0 to H'7 in the 3-bit groups of bits 6 to 4 and 2 to 0 sets the priority of the corresponding interrupt. Bit Bit Name Initial Value R/W Description 7 — 0 Reserved — This bit is always read as 0 and cannot be modified. 6 IPR6 1 R/W Sets the priority of the corresponding interrupt source. 5 IPR5 1 R/W 000: Priority level 0 (Lowest) 4 IPR4 1 R/W 001: Priority level 1 010: Priority level 2 011: Priority level 3 100: Priority level 4 101: Priority level 5 110: Priority level 6 111: Priority level 7 (Highest) 3 — 0 — Reserved This bit is always read as 0 and cannot be modified. 2 IPR2 1 R/W Sets the priority of the corresponding interrupt source. 1 IPR1 1 R/W 000: Priority level 0 (Lowest) 0 IPR0 1 R/W 001: Priority level 1 010: Priority level 2 011: Priority level 3 100: Priority level 4 101: Priority level 5 110: Priority level 6 111: Priority level 7 (Highest) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 87 of 846 H8S/2215 Group Section 5 Interrupt Controller 5.3.2 IRQ Enable Register (IER) IER controls enabling and disabling of interrupt requests IRQ7 to IRQ0. Bit Bit Name Initial Value R/W Description 7 IRQ7E 0 IRQ7 Enable R/W The IRQ7 interrupt request is enabled when this bit is 1. 6 IRQ6E 0 R/W IRQ6 Enable* The IRQ6 interrupt request is enabled when this bit is 1. 5 IRQ5E 0 R/W IRQ5 Enable The IRQ5 interrupt request is enabled when this bit is 1. 4 IRQ4E 0 R/W IRQ4 Enable The IRQ4 interrupt request is enabled when this bit is 1. 3 IRQ3E 0 R/W IRQ3 Enable The IRQ3 interrupt request is enabled when this bit is 1. 2 IRQ2E 0 R/W IRQ2 Enable The IRQ2 interrupt request is enabled when this bit is 1. 1 IRQ1E 0 R/W IRQ1 Enable The IRQ1 interrupt request is enabled when this bit is 1. 0 IRQ0E Note: * 0 R/W IRQ0 Enable The IRQ0 interrupt request is enabled when this bit is 1. IRQ6 is an interrupt only for the on-chip USB. Page 88 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 5.3.3 Section 5 Interrupt Controller IRQ Sense Control Registers H and L (ISCRH, ISCRL) The ISCR registers select the source that generates an interrupt request at pins IRQ7, and IRQ5 to IRQ0. Bit Bit Name Initial Value R/W Description 15 IRQ7SCB 0 R/W IRQ7 Sense Control B 14 IRQ7SCA 0 R/W IRQ7 Sense Control A 00: Interrupt request generated at IRQ7 input low level 01: Interrupt request generated at falling edge of IRQ7 input 10: Interrupt request generated rising edge of IRQ7 input 11: Interrupt request generated at both falling and rising edges of IRQ7 input 13 IRQ6SCB 0 R/W 12 IRQ6SCA 0 R/W IRQ6* Sense Control B IRQ6* Sense Control A 00: Setting prohibited when using on-chip USB suspend or resume interrupt 01: Interrupt request generated at falling edge of IRQ6 input 1×: Setting prohibited 11 IRQ5SCB 0 R/W IRQ5 Sense Control B 10 IRQ5SCA 0 R/W IRQ5 Sense Control A 00: Interrupt request generated at IRQ5 input low level 01: Interrupt request generated at falling edge of IRQ5 input 10: Interrupt request generated at rising edge of IRQ5 input 11: Interrupt request generated at both falling and rising edges of IRQ5 input Legend: ×: Don’t care Note: * IRQ6 is an interrupt only for the on-chip USB. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 89 of 846 H8S/2215 Group Section 5 Interrupt Controller Bit Bit Name Initial Value R/W Description 9 IRQ4SCB 0 R/W IRQ4 Sense Control B 8 IRQ4SCA 0 R/W IRQ4 Sense Control A 00: Interrupt request generated at IRQ4 input low level 01: Interrupt request generated at falling edge of IRQ4 input 10: Interrupt request generated at rising edge of IRQ4 input 11: Interrupt request generated at both falling and rising edges of IRQ4 input 7 IRQ3SCB 0 R/W IRQ3 Sense Control B 6 IRQ3SCA 0 R/W IRQ3 Sense Control A 00: Interrupt request generated at IRQ3 input low level 01: Interrupt request generated at falling edge of IRQ3 input 10: Interrupt request generated at rising edge of IRQ3 input 11: Interrupt request generated at both falling and rising edges of IRQ3 input 5 IRQ2SCB 0 R/W IRQ2 Sense Control B 4 IRQ2SCA 0 R/W IRQ2 Sense Control A 00: Interrupt request generated at IRQ2 input low level 01: Interrupt request generated at falling edge of IRQ2 input 10: Interrupt request generated at rising edge of IRQ2 input 11: Interrupt request generated at both falling and rising edges of IRQ2 input 3 IRQ1SCB 0 R/W IRQ1 Sense Control B 2 IRQ1SCA 0 R/W IRQ1 Sense Control A 00: Interrupt request generated at IRQ1 input low level 01: Interrupt request generated at falling edge of IRQ1 input 10: Interrupt request generated at rising edge of IRQ1 input 11: Interrupt request generated at both falling and rising edges of IRQ1 input Page 90 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 5 Interrupt Controller Bit Bit Name Initial Value R/W Description 1 IRQ0SCB 0 R/W IRQ0 Sense Control B 0 IRQ0SCA 0 R/W IRQ0 Sense Control A 00: Interrupt request generated at IRQ0 input low level 01: Interrupt request generated at falling edge of IRQ0 input 10: Interrupt request generated at rising edge of IRQ0 input 11: Interrupt request generated at both falling and rising edges of IRQ0 input 5.3.4 IRQ Status Register (ISR) ISR indicates the status of IRQ7 to IRQ0 interrupt requests. Only 0 should be written to these bits for clearing the flag. Bit 7 Bit Name IRQ7F Initial Value R/W Description 0 R/(W)* [Setting condition] • 6 IRQ6F 0 R/(W)* 5 IRQ5F 0 R/(W)* 4 IRQ4F 0 R/(W)* 3 IRQ3F 0 R/(W)* 2 IRQ2F 0 R/(W)* 1 IRQ1F 0 R/(W)* 0 IRQ0F 0 R/(W)* When the interrupt source selected by the ISCR registers occurs [Clearing conditions] • • • • Note: * The write value should always be 0 to clear the flag. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Cleared by reading IRQnF flag when IRQnF = 1, then writing 0 to IRQnF flag When interrupt exception handling is executed when low-level detection is set and, IRQn input is high When IRQn interrupt exception handling is executed when falling, rising, or both-edge detection is set When the DTC is activated by an IRQn interrupt, and the DISEL bit in MRB of the DTC is cleared to 0 Page 91 of 846 H8S/2215 Group Section 5 Interrupt Controller 5.4 Interrupt Sources 5.4.1 External Interrupts There are eight external interrupts: NMI, IRQ7, and IRQ5 to IRQ0. These interrupts can be used to restore this LSI from software standby mode. IRQ6 is an interrupt only for the on-chip USB. However, IRQ6 is functionally same as IRQ7 restore this LSI from software standby mode. IRQ6 is functionally same as IRQ7 and IRQ5 to IRQ0. NMI Interrupt: NMI is the highest-priority interrupt, and is always accepted by the CPU regardless of the interrupt control mode or the status of the CPU interrupt mask bits. The NMIEG bit in SYSCR can be used to select whether an interrupt is requested at a rising edge or a falling edge on the NMI pin. IRQ7 to IRQ0 Interrupts: Interrupts IRQ7 to IRQ0 are requested by an input signal at pins IRQ7 to IRQ0. Interrupts IRQ7 to IRQ0 have the following features: • Using ISCR, it is possible to select whether an interrupt is generated by a low level, falling edge, rising edge, or both edges, at pins IRQ7 to IRQ0 • Enabling or disabling of interrupt requests IRQ7 to IRQ0 can be selected with IER. • The interrupt priority level can be set with IPR. ⎯ The status of interrupt requests IRQ7 to IRQ0 is indicated in ISR. ISR flags can be cleared to 0 by software. A block diagram of IRQn interrupts is shown in figure 5.2. IRQnE IRQnSCA, IRQnSCB IRQnF Edge/level detection circuit IRQn input S Q IRQn interrupt request R Clear signal Note: n = 7 to 0 Figure 5.2 Block Diagram of IRQn Interrupts Page 92 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 5 Interrupt Controller The setting for IRQnF is shown in figure 5.3. φ IRQn input pin IRQnF Note: n = 7 to 0 Figure 5.3 Set Timing for IRQnF The detection of IRQn interrupts does not depend on whether the relevant pin has been set for input or output. However, when a pin is used as an external interrupt input pin, do not clear the corresponding DDR to 0; and use the pin as an I/O pin for another function. IRQnF interrupt request flag is set when the setting condition is satisfied, regardless of IER settings. Accordingly, refer to only necessary flags. 5.4.2 Internal Interrupts The sources for internal interrupts from on-chip peripheral modules have the following features: • For each on-chip peripheral module there are flags that indicate the interrupt request status, and enable bits that select enabling or disabling of these interrupts. If both of these are set to 1 for a particular interrupt source, an interrupt request is issued to the interrupt controller. • The interrupt priority level can be set by means of IPR. • The DMAC or DTC can be activated by a TPU, SCI, or other interrupt request. • When the DMAC or DTC is activated by an interrupt request, it is not affected by the interrupt control mode or CPU interrupt mask bit. 5.5 Interrupt Exception Handling Vector Table Table 5.2 shows interrupt exception handling sources, vector addresses, and interrupt priorities. For default priorities, the lower the vector number, the higher the priority. Priorities among modules can be set by means of the IPR. Modules set at the same priority will conform to their default priorities. Priorities within a module are fixed. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 93 of 846 H8S/2215 Group Section 5 Interrupt Controller Table 5.2 Interrupt Sources, Vector Addresses, and Interrupt Priorities Vector Address* Interrupt Source Origin of Interrupt Source Vector Number Advanced Mode External pins NMI 7 H'001C IRQ0 16 H'0040 IPRA6 to IPRA4 IRQ1 17 H'0044 IPRA2 to IPRA0 IRQ2 18 H'0048 IPRB6 to IPRB4 IRQ3 19 H'004C IRQ4 20 H'0050 IPR Priority High IPRB2 to IPRB0 IRQ5 21 H'0054 USB IRQ6 22 H'0058 External pins IRQ7 23 H'005C DTC SWDTEND 24 H'0060 IPRC2 to IPRC0 Watchdog Timer WOVI 25 H'0064 IPRD6 to IPRD4 A/D ADI 28 H'0070 TPU channel 0 TGI0A 32 H'0080 TGI0B 33 H'0084 TGI0C 34 H'0088 TGI0D 35 H'008C TGI0V 36 H'0090 TPU channel 1 TGI1A 40 H'00A0 TGI1B 41 H'00A4 TGI1V 42 H'00A8 TGI1U 43 H'00AC TPU channel 2 TGI2A 44 H'00B0 TGI2B 45 H'00B4 8-bit timer channel 0 Page 94 of 846 TGI2V 46 H'00B8 TGI2U 47 H'00BC CMIA0 (compare match A) 64 H'0100 CMIB0 (compare match B) 65 H'0104 OVI0 (overflow) 66 H'0108 IPRC6 to IPRC4 IPRF6 to IPRF4 IPRF2 to IPRF0 IPRG6 to IPRG4 IPRI6 to IPRI4 Low REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 5 Interrupt Controller Interrupt Source Origin of Interrupt Source Vector Number Vector Address* IPR Priority 8-bit timer channel 1 CMIA1 (compare match A) 68 H'0110 IPRI2 to IPRI0 High CMIB1 (compare match B) 69 H'0114 OVI1 (overflow) 70 H'0118 DEND0A 72 H'0120 DEND0B 73 H'0124 DEND1A 74 H'0128 DEND1B 75 H'012C SCI channel 0 ERI0 80 H'0140 RXI0 81 H'0144 TXI0 82 H'0148 TEI0 83 H'014C SCI channel 1 ERI1 84 H'0150 RXI1 85 H'0154 TXI1 86 H'0158 TEI1 87 H'015C SCI channel 2 ERI2 88 H'0160 RXI2 89 H'0164 TXI2 90 H'0168 TEI2 91 H'016C EXIRQ0 104 H'01A0 EXIRQ1 105 H'01A4 DMAC USB Note: * IPRJ2 to IPRJ0 IPRK6 to IPRK4 IPRK2 to IPRK0 IPRM6 to IPRM4 Low Lower 16 bits of the start address. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 IPRJ6 to IPRJ4 Page 95 of 846 H8S/2215 Group Section 5 Interrupt Controller 5.6 Interrupt Control Modes and Interrupt Operation The interrupt controller has two modes: interrupt control mode 0 and interrupt control mode 2. Interrupt operations differ depending on the interrupt control mode. The interrupt control mode is selected by SYSCR. Table 5.3 shows the differences between interrupt control mode 0 and interrupt control mode 2. Table 5.3 Interrupt Control Modes Interrupt Control Mode Priority Setting Interrupt Mask Register Bits Description 0 Default I The priority of interrupt sources are fixed at the default settings. Interrupt sources except for NMI is marked by the I bit. 2 IPR I2 to I0 8-level interrupt mask control is performed by bits I2 to I0. 8 priority levels other than NMI can be set with IPR. 5.6.1 Interrupt Control Mode 0 In interrupt control mode 0, interrupt requests except for NMI is masked by the I bit of CCR in the CPU. Figure 5.4 shows a flowchart of the interrupt acceptance operation in this case. 1. If an interrupt source occurs when the corresponding interrupt enable bit is set to 1, an interrupt request is sent to the interrupt controller. 2. If the I bit is set to 1, only an NMI interrupt is accepted, and other interrupt requests are held pending. If the I bit is cleared, an interrupt request is accepted. 3. Interrupt requests are sent to the interrupt controller, the highest-ranked interrupt according to the priority system is accepted, and other interrupt requests are held pending. 4. When the CPU accepts an interrupt request, it starts interrupt exception handling after execution of the current instruction has been completed. 5. The PC and CCR are saved to the stack area by interrupt exception handling. The PC saved on the stack shows the address of the first instruction to be executed after returning from the interrupt handling routine. 6. Next, the I bit in CCR is set to 1. This masks all interrupts except NMI. Page 96 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 5 Interrupt Controller 7. The CPU generates a vector address for the accepted interrupt and starts execution of the interrupt handling routine at the address indicated by the contents of the vector address in the vector table. Program execution status No Interrupt generated? Yes Yes NMI No No I=0 Hold pending Yes No IRQ0 Yes No IRQ1 Yes EXIRQ1 Yes Save PC and CCR I←1 Read vector address Branch to interrupt handling routine Figure 5.4 Flowchart of Procedure Up to Interrupt Acceptance in Interrupt Control Mode 0 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 97 of 846 H8S/2215 Group Section 5 Interrupt Controller 5.6.2 Interrupt Control Mode 2 In interrupt control mode 2, mask control is done in eight levels for interrupt requests except for NMI by comparing the EXR interrupt mask level (I2 to I0 bits) in the CPU and the IPR setting. Figure 5.5 shows a flowchart of the interrupt acceptance operation in this case. 1. If an interrupt source occurs when the corresponding interrupt enable bit is set to 1, an interrupt request is sent to the interrupt controller. 2. When interrupt requests are sent to the interrupt controller, the interrupt with the highest priority according to the interrupt priority levels set in IPR is selected, and lower-priority interrupt requests are held pending. If a number of interrupt requests with the same priority are generated at the same time, the interrupt request with the highest priority according to the priority system shown in table 5.2 is selected. 3. Next, the priority of the selected interrupt request is compared with the interrupt mask level set in EXR. An interrupt request with a priority no higher than the mask level set at that time is held pending, and only an interrupt request with a priority higher than the interrupt mask level is accepted. 4. When the CPU accepts an interrupt request, it starts interrupt exception handling after execution of the current instruction has been completed. 5. The PC, CCR, and EXR are saved to the stack area by interrupt exception handling. The PC saved on the stack shows the address of the first instruction to be executed after returning from the interrupt handling routine. 6. The T bit in EXR is cleared to 0. The interrupt mask level is rewritten with the priority level of the accepted interrupt. If the accepted interrupt is NMI, the interrupt mask level is set to H'7. 7. The CPU generates a vector address for the accepted interrupt and starts execution of the interrupt handling routine at the address indicated by the contents of the vector address in the vector table. Page 98 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 5 Interrupt Controller Program execution status Interrupt generated? No Yes Yes NMI No Level 7 interrupt? No Yes Mask level 6 or below? Yes No Level 6 interrupt? No Yes Level 1 interrupt? Mask level 5 or below? No No Yes Yes Mask level 0? No Yes Save PC, CCR, and EXR Hold pending Clear T bit to 0 Update mask level Read vector address Branch to interrupt handling routine Figure 5.5 Flowchart of Procedure Up to Interrupt Acceptance in Interrupt Control Mode 2 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 99 of 846 Page 100 of 846 (2) (4) (3) (5) (7) (1) Internal data bus (1) (2) (4) (3) Instruction prefetch address (Not executed. This is the contents of the saved PC, the return address) Instruction code (Not executed) Instruction prefetch address (Not executed) SP-2 SP-4 Internal write signal Internal read signal Internal address bus Interrupt request signal φ Internal operation (6) (8) (9) (11) (10) (12) (13) (14) (5) (7) (8) (9) (10) Vector fetch (12) (11) Internal operation Saved PC and saved CCR Vector address Interrupt handling routine start address (Vector address contents) Interrupt handling routine start address ((13) = (10) (12)) First instruction of interrupt handling routine (6) stack (14) (13) Interrupt service routine instruction prefetch 5.6.3 Interrupt level determination Instruction Wait for end of instruction prefetch Interrupt acceptance Section 5 Interrupt Controller H8S/2215 Group Interrupt Exception Handling Sequence Figure 5.6 shows the interrupt exception handling sequence. The example shown is for the case where interrupt control mode 0 is set in advanced mode, and the program area and stack area are in on-chip memory. Figure 5.6 Interrupt Exception Handling REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 5.6.4 Section 5 Interrupt Controller Interrupt Response Times Table 5.4 shows interrupt response times ⎯ the interval between generation of an interrupt request and execution of the first instruction in the interrupt handling routine. The execution status symbols used in table 5.4 are explained in table 5.5. This LSI is capable of fast word transfer to on-chip memory, and have the program area in on-chip ROM and the stack area in on-chip RAM, enabling high-speed processing. Table 5.4 Interrupt Response Times Normal Mode* 5 No. Execution State Interrupt Control Mode 0 1 1 Interrupt priority determination* 3 Advanced Mode Interrupt Control Mode 2 Interrupt Control Mode 0 Interrupt Control Mode 2 3 3 3 2 Number of wait states until executing 1 to 19+2⋅SI 1 to 19+2⋅SI 1 to 19+2⋅SI 1 to 19+2⋅SI 2 instruction ends* 3 PC, CCR, EXR stack save 2⋅SK 3⋅SK 2⋅SK 3⋅SK 4 Vector fetch SI 2⋅SI 2⋅SI 2⋅SI 5 2⋅SI SI 3 Instruction fetch* 6 4 Internal processing* 2 2 2 2 11 to 31 12 to 32 12 to 32 13 to 33 Total (using on-chip memory) Notes: 1. 2. 3. 4. 5. 2⋅SI Two states in case of internal interrupt. Refers to MULXS and DIVXS instructions. Prefetch after interrupt acceptance and interrupt handling routine prefetch. Internal processing after interrupt acceptance and internal processing after vector fetch. Not available in this LSI. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 2⋅SI Page 101 of 846 H8S/2215 Group Section 5 Interrupt Controller Table 5.5 Number of States in Interrupt Handling Routine Execution Statuses Object of Access External Device 8-Bit Bus Symbol Instruction fetch SI Branch address read SJ Stack manipulation SK 16-Bit Bus Internal Memory 2-State Access 3-State Access 2-State Access 3-State Access 1 4 6 + 2m 2 3+m Legend: m: Number of wait states in an external device access. 5.6.5 DTC Activation by Interrupt The DTC and DMAC can be activated by an interrupt. In this case, the following options are available: • Interrupt request to CPU • Activation request to DTC • Activation request to DMAC • Selection of a number of the above For details of interrupt requests that can be used with to activate the DTC and DMAC, see section 7, DMA Controller (DMAC) and section 8, Data Transfer Controller (DTC). Figure 5.7 shows a block diagram of the interrupt controller of DTC and DMAC. Page 102 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 5 Interrupt Controller Disenable signal Clear signal DMAC Interrupt request IRQ interrupt DTC activation request vector number Selection circuit Select signal Clear signal On-chip supporting module Interrupt source clear signal Control logic DTC DTCER Clear signal DTVECR SWDTE clear signal Determination of priority CPU interrupt request vector number CPU I, I2 to I0 Interrupt controller Figure 5.7 Interrupt Control for DTC and DMAC Selection of Interrupt Source: An activation factor is directly input to each channel of the DMAC. The activation factors for each channel of the DMAC are selected by the DTF3 to DTF0 bits of DMACR. The DTA bit of DMABCR can be used to select whether the selected activation factors are managed by the DMAC. By setting the DTA bit to 1, the interrupt factor which was the activation factor for that DMAC cannot act as the DTC activation factor or the CPU interrupt factor. Interrupt factors other than the interrupts managed by the DMAC are selected as DTC activation request or CPU interrupt request by the DTCERA to DTCERF of DTC and the DTCE bit of DTCERI. By specifying the DISEL bit of the DTC’s MRB, it is possible to clear the DTCE bit to 0 after DTC data transfer, and request a CPU interrupt. If DTC carries out the designate number of data transfers and the transfer counter reads 0, after DTC data transfer, the DTCE bit is also cleared to 0, CPU interrupt requested. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 103 of 846 H8S/2215 Group Section 5 Interrupt Controller Determination of Priority: The DTC activation source is selected in accordance with the default priority order, and is not affected by mask or priority levels. See section 8.4, Location of Register Information and DTC Vector Table. The activation source is directly input to each channel of DMAC. Operation Order: If the same interrupt is selected as a DTC activation source and a CPU interrupt source, the DTC data transfer is performed first, followed by CPU interrupt exception handling. If the same interrupt is selected as the DMAC activation factor and as the DTC activation factor or CPU interrupt factor, these operate independently. They operate in accordance with the respective operating states and bus priorities. Table 5.6 shows the interrupt factor clear control and selection of interrupt factors by specification of the DTA bit of DMAC’s DMABCR, DTC’s DTCERA to DTCERF’s DTCE bit, and the DISEL bit of DTC’s MRB. Table 5.6 Interrupt Source Selection and Clearing Control Settings DMAC DTC Interrupt Sources Selection/Clearing Control DTA DTCE DISEL DMAC DTC CPU 0 0 * Δ X Ο 1 0 Δ Ο X 1 Δ Δ Ο * Ο X X 1 * Legend: Ο: The relevant interrupt is used. Interrupt source clearing is performed. (The CPU should clear the source flag in the interrupt handling routine.) Δ: The relevant interrupt is used. The interrupt source is not cleared. X: The relevant bit cannot be used. *: Don’t care Notes on Use: The SCI interrupt source is cleared when the DMAC or DTC reads or writes to the prescribed register, and is not dependent upon the DTA bit, DTCE bit, or DISEL bit. Page 104 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 5 Interrupt Controller 5.7 Usage Notes 5.7.1 Contention between Interrupt Generation and Disabling When an interrupt enable bit is cleared to 0 to disable interrupts, the disabling becomes effective after execution of the instruction. When an interrupt enable bit is cleared to 0 by an instruction such as BCLR or MOV, if an interrupt is generated during execution of the instruction, the interrupt concerned will still be enabled on completion of the instruction, and so interrupt exception handling for that interrupt will be executed on completion of the instruction. However, if there is an interrupt request of higher priority than that interrupt, interrupt exception handling will be executed for the higher-priority interrupt, and the lower-priority interrupt will be ignored. The same also applies when an interrupt source flag is cleared to 0. Figure 5.8 shows an example in which the TGIEA bit in the TPU’s TIER_0 is cleared to 0. The above contention will not occur if an enable bit or interrupt source flag is cleared to 0 while the interrupt is masked. TIER0 write cycle by CPU TGI0A exception handling φ Internal address bus TIER_0 address Internal write signal TGIEA TGFA TGI0A Interrupt signal Figure 5.8 Contention between Interrupt Generation and Disabling REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 105 of 846 H8S/2215 Group Section 5 Interrupt Controller 5.7.2 Instructions that Disable Interrupts Instructions that disable interrupts are LDC, ANDC, ORC, and XORC. After any of these instructions is executed, all interrupts including NMI are disabled and the next instruction is always executed. When the I bit is set by one of these instructions, the new value becomes valid two states after execution of the instruction ends. 5.7.3 Times when Interrupts Are Disabled There are times when interrupt acceptance is disabled by the interrupt controller. The interrupt controller disables interrupt acceptance for a 3-state period after the CPU has updated the mask level with an LDC, ANDC, ORC, or XORC instruction. 5.7.4 Interrupts during Execution of EEPMOV Instruction Interrupt operation differs between the EEPMOV.B instruction and the EEPMOV.W instruction. With the EEPMOV.B instruction, an interrupt request (including NMI) issued during the transfer is not accepted until the move is completed. With the EEPMOV.W instruction, if an interrupt request is issued during the transfer, interrupt exception handling starts at a break in the transfer cycle. The PC value saved on the stack in this case is the address of the next instruction. Therefore, if an interrupt is generated during execution of an EEPMOV.W instruction, the following coding should be used. L1: EEPMOV.W 5.7.5 MOV.W R4,R4 BNE L1 IRQ Interrupt During clock operation, IRQ input is accepted in synchronization with the clock. In software standby mode, non-synchronous input is accepted. For details of the input conditions, see the Control Signal Timing description in the Electrical Characteristics section for the product in question. Page 106 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 5.7.6 Section 5 Interrupt Controller NMI Interrupts Usage Notes The NMI interrupt is part of the exception processing performed cooperatively by the LSI's internal interrupt controller and the CPU when the system is operating normally under the specified electrical conditions. No operations, including NMI interrupts, are guaranteed when operation is not normal (runaway status) due to software problems or abnormal input to the LSI's pins. In such cases, the LSI may be restored to the normal program execution state by applying an external reset. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 107 of 846 Section 5 Interrupt Controller Page 108 of 846 H8S/2215 Group REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 6 Bus Controller Section 6 Bus Controller This LSI has a built-in bus controller (BSC) that manages the external address space divided into eight areas. The bus controller also has a bus arbitration function, and controls the operation of the internal bus masters: the CPU, DMA controller (DMAC), and data transfer controller (DTC). 6.1 Features • Manages external address space in area units ⎯ Manages the external space as eight areas of 2 Mbytes ⎯ Bus specifications can be set independently for each area ⎯ Burst ROM interface can be set • Basic bus interface* ⎯ Chip select (CS0 to CS7 ) can be output for areas 0 to 7 ⎯ 8-bit access or 16-bit access can be selected for each area ⎯ 2-state access or 3-state access can be selected for each area ⎯ Program wait states can be inserted for each area • Burst ROM interface ⎯ Burst ROM interface can be selected for area 0 ⎯ One or two states can be selected for the burst cycle • Idle cycle insertion ⎯ Idle cycle can be inserted between consecutive read accesses to different areas ⎯ Idle cycle can be inserted before a write access to an external area immediately after a read access to an external area • Bus arbitration ⎯ The on-chip bus arbiter arbitrates bus mastership among CPU, DMAC, and DTC • Other features ⎯ External bus release function Note: * Chip select CS6 in area 6 is for the on-chip USB. Therefore it cannot be used as an external area. 8-bit bus mode, 3-state access, and no program wait state should be set for area 6. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 109 of 846 BSCS207A_010020020100 H8S/2215 Group Section 6 Bus Controller Figure 6.1 shows a block diagram of the bus controller. Chip select signals Internal address bus Area decorder ABWCR External bus control signals ASTCR BCRH BCRL BACK WAIT Bus controller Wait controller Internal data bus BREQ Internal control signals Bus mode signal WCRH WCRL CPU bus request signal Bus arbiter DTC bus request signal DMAC bus request signal CPU bus acknowledge signal DTC bus acknowledge signal DMAC bus acknowledge signal Legend: ABWCR: ASTCR: WCRH, WCRL: BCRH, BCRL: Bus width control register Access state control register Wait control register H, L Bus control register H, L Figure 6.1 Block Diagram of Bus Controller Page 110 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 6.2 Section 6 Bus Controller Input/Output Pins Table 6.1 summarizes the pins of the bus controller. Table 6.1 Pin Configuration Name Symbol I/O Address strove AS Output Strobe signal indicating that address output on address bus is enabled. Read RD Output Strobe signal indicating that external space is being read. High write HWR Output Strobe signal indicating that external space is to be written, and upper half (D15 to D8) of data bus is enabled. Low write LWR Output Strobe signal indicating that external space is to be written, and lower half (D7 to D0) of data bus is enabled. Chip select 0 to 7 CS0 to CS7 Function Output Strobe signal indicating that areas 0 to 7 are selected. Wait WAIT Input Wait request signal when accessing external 3-state access space. Bus request BREQ Input Request signal that releases bus to external device. Bus request acknowledge BACK Output Acknowledge signal indicating that bus has been released. 6.3 Register Descriptions The following shows the registers of the bus controller. • Bus width control register (ABWCR) • Access state control register (ASTCR) • Wait control register H (WCRH) • Wait control register L (WCRL) • Bus control register H (BCRH) • Bus control register L (BCRL ) • Pin function control register (PFCR) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 111 of 846 H8S/2215 Group Section 6 Bus Controller 6.3.1 Bus Width Control Register (ABWCR) ABWCR designates each area for either 8-bit access or 16-bit access. ABWCR sets the data bus width for the external memory space. The bus width for on-chip memory and internal I/O registers except for the on-chip USB is fixed regardless of the settings in ABWCR. Bit Bit Name Initial Value R/W Description 7 ABW7 1 1/0* R/W Area 7 to 0 Bus Width Controls 6 ABW6* R/W 5 ABW5 1/0* 1 1/0* R/W These bits select whether the corresponding area is to be designated for 8-bit access or 16-bit access. 4 ABW4 R/W 0: Area n is designated for 16-bit access 3 ABW3 1/0* 1 1/0* R/W 1: Area n is designated for 8-bit access R/W Note: n = 7 to 0 R/W 2 1 1 2 ABW2 1 ABW1 1/0* 1 1/0* 0 ABW0 1/0* 1 1 R/W Notes: 1. In modes 5 to 7, initial value of each bit is 1. In mode 4, initial value of each bit is 0. 2. The on-chip USB is allocated to area 6. Therefore this bit should be set to 1. Page 112 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 6.3.2 Section 6 Bus Controller Access State Control Register (ASTCR) ASTCR designates each area as either a 2-state access space or a 3-state access space. ASTCR sets the number of access states for the external memory space. The number of access states for on-chip memory and internal I/O registers except for the on-chip USB is fixed regardless of the settings in ASTCR. Bit Bit Name Initial Value R/W Description 7 AST7 1 R/W Area 7 to 0 Access State Controls 6 AST6* 1 R/W 5 AST5 1 R/W 4 AST4 1 R/W These bits select whether the corresponding area is to be designated as a 2-state access space or a 3-state access space. Wait state insertion is enabled or disabled at the same time. 3 AST3 1 R/W 2 AST2 1 R/W 1 AST1 1 R/W 0 AST0 1 R/W 0: Area n is designated for 2-state access Wait state insertion in area n external space is disabled 1: Area n is designated for 3-state access Wait state insertion in area n external space is enabled Note: n = 7 to 0 Note: * The on-chip USB is allocated to area 6. Therefore this bit should be set to 1. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 113 of 846 H8S/2215 Group Section 6 Bus Controller 6.3.3 Wait Control Registers H and L (WCRH, WCRL) WCRH and WCRL select the number of program wait states for each area. Program waits are not inserted in the case of on-chip memory or internal I/O registers except for the on-chip USB. • WCRH Bit Bit Name Initial Value R/W Description 7 W71 1 R/W Area 7 Wait Control 1 and 0 6 W70 1 R/W These bits select the number of program wait states when area 7 in external space is accessed while the AST7 bit in ASTCR is set to 1. 00: Program wait not inserted when external space area 7 is accessed 01: 1 program wait state inserted when external space area 7 is accessed 10: 2 program wait states inserted when external space area 7 is accessed 11: 3 program wait states inserted when external space area 7 is accessed 5 4 W61* W60* 1 R/W Area 6 Wait Control 1 and 0 1 R/W These bits select the number of program wait states when area 6 in external space is accessed while the AST6 bit in ASTCR is set to 1. 00: Program wait not inserted when external space area 6 is accessed 01: 1 program wait state inserted when external space area 6 is accessed 10: 2 program wait states inserted when external space area 6 is accessed 11: 3 program wait states inserted when external space area 6 is accessed Page 114 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 6 Bus Controller Bit Bit Name Initial Value R/W Description 3 W51 1 R/W Area 5 Wait Control 1 and 0 2 W50 1 R/W These bits select the number of program wait states when area 5 in external space is accessed while the AST5 bit in ASTCR is set to 1. 00: Program wait not inserted when external space area 5 is accessed 01: 1 program wait state inserted when external space area 5 is accessed 10: 2 program wait states inserted when external space area 5 is accessed 11: 3 program wait states inserted when external space area 5 is accessed 1 W41 1 R/W Area 4 Wait Control 1 and 0 0 W40 1 R/W These bits select the number of program wait states when area 4 in external space is accessed while the AST4 bit in ASTCR is set to 1. 00: Program wait not inserted when external space area 4 is accessed 01: 1 program wait state inserted when external space area 4 is accessed 10: 2 program wait states inserted when external space area 4 is accessed 11: 3 program wait states inserted when external space area 4 is accessed Note: * The on-chip USB is allocated to area 6. Therefore these bits should be set to 0. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 115 of 846 H8S/2215 Group Section 6 Bus Controller • WCRL Bit Bit Name Initial Value R/W Description 7 W31 1 R/W Area 3 Wait Control 1 and 0 6 W30 1 R/W These bits select the number of program wait states when area 3 in external space is accessed while the AST3 bit in ASTCR is set to 1. 00: Program wait not inserted when external space area 3 is accessed 01: 1 program wait state inserted when external space area 3 is accessed 10: 2 program wait states inserted when external space area 3 is accessed 11: 3 program wait states inserted when external space area 3 is accessed 5 W21 1 R/W Area 2 Wait Control 1 and 0 4 W20 1 R/W These bits select the number of program wait states when area 2 in external space is accessed while the AST2 bit in ASTCR is set to 1. 00: Program wait not inserted when external space area 2 is accessed 01: 1 program wait state inserted when external space area 2 is accessed 10: 2 program wait states inserted when external space area 2 is accessed 11: 3 program wait states inserted when external space area 2 is accessed 3 W11 1 R/W Area 1 Wait Control 1 and 0 2 W10 1 R/W These bits select the number of program wait states when area 1 in external space is accessed while the AST1 bit in ASTCR is set to 1. 00: Program wait not inserted when external space area 1 is accessed 01: 1 program wait state inserted when external space area 1 is accessed 10: 2 program wait states inserted when external space area 1 is accessed 11: 3 program wait states inserted when external space area 1 is accessed Page 116 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 6 Bus Controller Bit Bit Name Initial Value R/W Description 1 W01 1 R/W Area 0 Wait Control 1 and 0 0 W00 1 R/W These bits select the number of program wait states when area 0 in external space is accessed while the AST0 bit in ASTCR is set to 1. 00: Program wait not inserted when external space area 0 is accessed 01: 1 program wait state inserted when external space area 0 is accessed 10: 2 program wait states inserted when external space area 0 is accessed 11: 3 program wait states inserted when external space area 0 is accessed REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 117 of 846 H8S/2215 Group Section 6 Bus Controller 6.3.4 Bus Control Register H (BCRH) BCRH selects enabling or disabling of idle cycle insertion, and the memory interface for area 0. Bit Bit Name Initial Value R/W Description 7 ICIS1 1 Idle Cycle Insert 1 R/W Selects whether or not one idle cycle state is to be inserted between bus cycles when successive external read cycles are performed in different areas. 0: Idle cycle not inserted in case of successive external read cycles in different areas 1: Idle cycle inserted in case of successive external read cycles in different areas 6 ICIS0 1 R/W Idle Cycle Insert 0 Selects whether or not one idle cycle state is to be inserted between bus cycles when successive external read and write cycles are performed. 0: Idle cycle not inserted in case of successive external read and write cycles 1: Idle cycle inserted in case of successive external read and write cycles 5 BRSTRM 0 R/W Burst ROM enable Selects whether area 0 is used as a burst ROM interface. 0: Area 0 is basic bus interface 1: Area 0 is burst ROM interface 4 BRSTS1 1 R/W Burst Cycle Select 1 Selects the number of burst cycles for the burst ROM interface. 0: Burst cycle comprises 1 state 1: Burst cycle comprises 2 states 3 BRSTS0 0 R/W Burst Cycle Select 0 Selects the number of words that can be accessed in a burst ROM interface burst access. 0: Max. 4 words in burst access 1: Max. 8 words in burst access 2 to 0 — Page 118 of 846 All 0 R/W Reserved The write value should always be 0. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 6.3.5 Section 6 Bus Controller Bus Control Register L (BCRL) BCRL performs selection of the external bus-released state protocol, and enabling or disabling of WAIT pin input. Bit Bit Name Initial Value R/W 7 BRLE 0 R/W Description Bus release enable Enables or disables external bus release. 0: External bus release is disabled. BREQ and BACK can be used as I/O ports. 1: External bus release is enabled. 6 — 0 R/W Reserved The write value should always be 0. 5 — 0 — 4 — 0 R/W Reserved This bit is always read as 0 and cannot be modified. Reserved The write value should always be 0. 3 — 1 R/W Reserved The write value should always be 1. 2, — All 0 R/W 1 0 Reserved The write value should always be 0. WAITE 0 R/W WAIT pin enable Selects enabling or disabling of wait input by the WAIT pin. 0: Wait input by WAIT pin disabled. WAIT pin can be used as I/O port. 1: Wait input by WAIT pin enabled. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 119 of 846 H8S/2215 Group Section 6 Bus Controller 6.3.6 Pin Function Control Register (PFCR) PFCR performs address output control in external extended mode. Bit Bit Name Initial Value R/W Description 7 to 4 — All 0 Reserved 3 AE3 1/0* R/W Address Output Enable 3 to 0 2 AE2 1/0* R/W 1 AE1 0 R/W 0 AE0 1/0* R/W These bits select enabling or disabling of address outputs A8 to A23 in ROMless extended mode and modes with ROM. Note: R/W The write value should always be 0. * When a pin is enabled for address output, the address is output regardless of the corresponding DDR setting. When a pin is disabled for address output, it becomes an output port when the corresponding DDR bit is set to 1. 0000: A8 to A23 output disabled (Initial value in modes 6, 7) 0001: A8 output enabled; A9 to A23 output disabled 0010: A8, A9 output enabled; A10 to A23 output disabled 0011: A8 to A10 output enabled; A11 to A23 output disabled 0100: A8 to A11 output enabled; A12 to A23 output disabled 0101: A8 to A12 output enabled; A13 to A23 output disabled 0110: A8 to A13 output enabled; A14 to A23 output disabled 0111: A8 to A14 output enabled; A15 to A23 output disabled 1000: A8 t o A15 output enabled; A16 to A23 output disabled 1001: A8 to A16 output enabled; A17 to A23 output disabled 1010: A8 to A17 output enabled; A18 to A23 output disabled 1011: A8 to A18 output enabled; A19 to A23 output disabled 1100: A8 to A19 output enabled; A20 to A23 output disabled 1101: A8 to A20 output enabled; A21 to A23 output disabled (Initial value in modes 4, 5) 1110: A8 to A21 output enabled; A22, A23 output disabled 1111: A8 to A23 output enabled In modes 4 and 5, initial value of each bit is 1. In modes 6 and 7, initial value of each bit is 0. Page 120 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 6.4 Bus Control 6.4.1 Area Divisions Section 6 Bus Controller In advanced mode, the bus controller partitions the 16-Mbyte address space into eight areas, 0 to 7, in 2-Mbyte units, and performs bus control for external space in area units. In normal mode*, it controls a 64-kbyte address space comprising part of area 0. Figure 6.2 shows an outline of the memory map. Chip select signals (CS0 to CS7 ) can be output for each area. Note: * Not available in this LSI. H'000000 H'0000 Area 0 (2 Mbytes) H'1FFFFF H'200000 Area 1 (2 Mbytes) H'3FFFFF H'400000 Area 2 (2 Mbytes) H'FFFF H'5FFFFF H'600000 Area 3 (2 Mbytes) H'7FFFFF H'800000 Area 4 (2 Mbytes) H'9FFFFF H'A00000 Area 5 (2 Mbytes) H'BFFFFF H'C00000 Area 6*2 (2 Mbytes) H'DFFFFF H'E00000 Area 7 (2 Mbytes) H'FFFFFF (1) Advanced mode (2) Normal mode*1 Notes: 1. Not available in this LSI. 2. This area is allocated to the on-chip USB in this LSI. Figure 6.2 Overview of Area Divisions REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 121 of 846 H8S/2215 Group Section 6 Bus Controller 6.4.2 Bus Specifications The external space bus specifications consist of three elements: bus width, number of access states, and number of program wait states. The bus width and number of access states for on-chip memory and internal I/O registers except for the on-chip USB are fixed, and are not affected by the bus controller. Bus Width: A bus width of 8 or 16 bits can be selected with ABWCR. An area for which an 8-bit bus is selected functions as an 8-bit access space, and an area for which a 16-bit bus is selected functions as a 16-bit access space. If all areas are designated for 8-bit access, 8-bit bus mode is set; if any area is designated for 16-bit access, 16-bit bus mode is set. When the burst ROM interface is designated, 16-bit bus mode is always set. 8-bit bus mode should be set for area 6 in this LSI. Number of Access States: Two or three access states can be selected with ASTCR. An area for which 2-state access is selected functions as a 2-state access space, and an area for which 3-state access is selected functions as a 3-state access space. With the burst ROM interface, the number of access states may be determined without regard to ASTCR. When 2-state access space is designated, wait insertion is disabled. Area 6 should be set to function as a 3-state access space in this LSI. Number of Program Wait States: When 3-state access space is designated by ASTCR, the number of program wait states to be inserted automatically is selected with WCRH and WCRL. From 0 to 3 program wait states can be selected. The number of program wait states in area 6 should be set to 0 in this LSI. Page 122 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Table 6.2 Section 6 Bus Controller Bus Specifications for Each Area (Basic Bus Interface) ABWCR ASTCR WCRH, WCRL ABWn ASTn Wn1 Wn0 Number of Access Number of Program Wait States Bus Width States 0 0 ⎯ ⎯ 16 1 0 0 1 1 6.4.3 2 0 3 0 1 1 0 2 1 3 0 ⎯ ⎯ 1 0 0 1 Bus Specifications (Basic Bus Interface) 8 2 3 0 0 1 1 0 2 1 3 Bus Interface for Each Area The initial state of each area is basic bus interface, 3-state access space. The initial bus width is selected according to the operating mode. The bus specifications described here cover basic items only, and the sections on each memory interface (see section 6.6, Basic Bus Interface and section 6.7, Burst ROM Interface) should be referred to for further details. Area 0: Area 0 includes on-chip ROM, and in ROM-disabled extended mode, all of area 0 is external space. In ROM-enabled extended mode, the space excluding on-chip ROM is external space. When area 0 external space is accessed, the CS0 signal can be output. Either basic bus interface or burst ROM interface can be selected for area 0. Areas 1 to 6: In external extended mode, all of areas 1 to 6 are external spaces. When areas 1 to 6 external space are accessed, the CS1 to CS6 pin signals respectively can be output. Only the basic bus interface can be used for areas 1 to 6. Area 6 is only for the on-chip USB. For details, see section 15, Universal Serial Bus Interface (USB). Area 7: Area 7 includes the on-chip RAM and internal l/O registers. In external extended mode, the space excluding the on-chip RAM and internal l/O registers, is external space. The on-chip RAM is enabled when the RAME bit in the system control register (SYSCR) is set to 1; when the REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 123 of 846 H8S/2215 Group Section 6 Bus Controller RAME bit is cleared to 0, the on-chip RAM is disabled and the corresponding space becomes external space. When area 7 external space is accessed, the CS7 signal can be output. Only the basic bus interface can be used for the area 7. 6.4.4 Chip Select Signals This LSI can output chip select signals (CS0 to CS7) to areas 0 to 7, the signal being driven low when the corresponding external space area is accessed. Figure 6.3 shows an example of CSn (n = 0 to 7) output timing. Enabling or disabling of the CSn signal is performed by setting the data direction register (DDR) for the port corresponding to the particular CSn pin. In ROM-disabled extended mode, the CS0 pin is placed in the output state after a power-on reset. Pins CS1 to CS7 are placed in the input state after a power-on reset, and so the corresponding DDR should be set to 1 when outputting signals CS1 to CS7. In ROM-enabled extended mode, pins CS0 to CS7 are all placed in the input state after a power-on reset, and so the corresponding DDR should be set to 1 when outputting signals CS0 to CS7. For details, see section 9, I/O Ports. Bus cycle T1 T2 T3 φ Address bus Area n external address CSn Figure 6.3 CSn Signal Output Timing (n = 0 to 7) 6.5 Basic Timing The CPU is driven by a system clock (φ), denoted by the symbol φ. The period from one rising edge of φ to the next is referred to as a “state”. The memory cycle or bus cycle consists of one, two, or three states. Different methods are used to access on-chip memory, on-chip peripheral modules, and the external address space. Page 124 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 6.5.1 Section 6 Bus Controller On-Chip Memory (ROM, RAM) Access Timing On-chip memory is accessed in one state. The data bus is 16 bits wide, permitting both byte and word transfer instruction. Figure 6.4 shows the on-chip memory access cycle. Figure 6.5 shows the pin states. Bus cycle T1 φ Internal address bus Address Internal read signal Read access Internal data bus Read data Internal write signal Write access Internal data bus Write data Figure 6.4 On-Chip Memory Access Cycle Bus cycle T1 φ Address bus Unchanged AS High RD High HWR, LWR High Data bus High-impedance state Figure 6.5 Pin States during On-Chip Memory Access REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 125 of 846 H8S/2215 Group Section 6 Bus Controller 6.5.2 On-Chip Peripheral Module Access Timing The on-chip peripheral modules are accessed in two states except on-chip USB. The data bus is either 8 bits or 16 bits wide, depending on the particular internal I/O register being accessed. Figure 6.6 shows the access timing for the on-chip peripheral modules. Figure 6.7 shows the pin states. Bus cycle T1 T2 φ Internal address bus Read access Address Internal read signal Internal data bus Write access Read data Internal write signal Internal data bus Write data Figure 6.6 On-Chip Peripheral Module Access Cycle Bus cycle T1 T2 φ Address bus Unchanged AS High RD High HWR, LWR High Data bus High-impedance state Figure 6.7 Pin States during On-Chip Peripheral Module Access Page 126 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 6.5.3 Section 6 Bus Controller External Address Space Access Timing The external address space is accessed with an 8-bit or 16-bit data bus width in a two-state or three-state bus cycle. In three-state access, wait states can be inserted. For further details, refer to section 6.6.3, Basic Timing. 6.6 Basic Bus Interface The basic bus interface enables direct connection of ROM, SRAM, and so on. 6.6.1 Data Size and Data Alignment Data sizes for the CPU and other internal bus masters are byte, word, and longword. The bus controller has a data alignment function, and when accessing external space, controls whether the upper data bus (D15 to D8) or lower data bus (D7 to D0) is used according to the bus specifications for the area being accessed (8-bit access space or 16-bit access space) and the data size. 8-Bit Access Space: Figure 6.8 illustrates data alignment control for the 8-bit access space. With the 8-bit access space, the upper data bus (D15 to D8) is always used for accesses. The amount of data that can be accessed at one time is one byte: a word transfer instruction is performed as twobyte accesses, and a longword transfer instruction, as four-byte accesses. Upper data bus Lower data bus D15 D8 D7 D0 Byte size Word size 1st bus cycle 2nd bus cycle 1st bus cycle Longword size 2nd bus cycle 3rd bus cycle 4th bus cycle Figure 6.8 Access Sizes and Data Alignment Control (8-Bit Access Space) 16-Bit Access Space: Figure 6.9 illustrates data alignment control for the 16-bit access space. With the 16-bit access space, the upper data bus (D15 to D8) and lower data bus (D7 to D0) are used for accesses. The amount of data that can be accessed at one time is one byte or one word, and a longword transfer instruction is executed as two word transfer instructions. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 127 of 846 H8S/2215 Group Section 6 Bus Controller In byte access, whether the upper or lower data bus is used is determined by whether the address is even or odd. The upper data bus is used for an even address, and the lower data bus for an odd address. Upper data bus Lower data bus D15 D8 D7 D0 Byte size · Even address Byte size · Odd address Word size 1st bus cycle Longword size 2nd bus cycle Figure 6.9 Access Sizes and Data Alignment Control (16-Bit Access Space) 6.6.2 Valid Strobes Table 6.3 shows the data buses used and valid strobes for the access spaces. In a read, the RD signal is valid without discrimination between the upper and lower halves of the data bus. In a write, the HWR signal is valid for the upper half of the data bus, and the LWR signal for the lower half. Table 6.3 Area 8-bit access space Data Buses Used and Valid Strobes Access Size Read/ Write Address Valid Strobe Upper Data Bus Lower Data Bus (D15 to D8) (D7 to D0) Byte Read — RD Valid Write — HWR Read Even RD 16-bit access Byte space Odd Hi-Z Valid Invalid Invalid Valid Even HWR Valid Hi-Z Odd LWR Hi-Z Valid Read — RD Valid Valid Write — HWR, LWR Valid Valid Write Word Invalid Notes: Hi-Z: High impedance. Invalid: Input state: input value is ignored. Page 128 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 6.6.3 Section 6 Bus Controller Basic Timing 8-Bit 2-State Access Space: Figure 6.10 shows the bus timing for an 8-bit 2-state access space. When an 8-bit access space is accessed, the upper half (D15 to D8) of the data bus is used. Wait states cannot be inserted. Bus cycle T1 T2 φ Address bus CSn AS RD Read D15 to D8 Valid D7 to D0 Invalid HWR LWR (16-bit bus mode) Write LWR (8-bit bus mode) D15 to D8 D7 to D0 High High impedance Valid High impedance Note: n = 0 to 7 Figure 6.10 Bus Timing for 8-Bit 2-State Access Space REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 129 of 846 H8S/2215 Group Section 6 Bus Controller 8-Bit 3-State Access Space (Except Area 6): Figure 6.11 shows the bus timing for an 8-bit 3state access space. When an 8-bit access space is accessed, the upper half (D15 to D8) of the data bus is used. Wait states can be inserted. Bus cycle T1 T2 T3 φ Address bus CSn AS RD Read D15 to D8 Valid D7 to D0 Invalid HWR LWR (16-bit bus mode) Write LWR (8-bit bus mode) D15 to D8 D7 to D0 High High impedance Valid High impedance Note: n = 0 to 5, 7 Figure 6.11 Bus Timing for 8-Bit 3-State Access Space (Except Area 6) Page 130 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 6 Bus Controller 8-Bit 3-State Access Space (Area 6): Figure 6.12 shows the bus timing for area 6. When area 6 is accessed, the data bus cannot be used. Wait states cannot be inserted. Bus cycle T1 T2 T3 φ Address bus CS6 AS RD Read D15 to D8 Invalid D7 to D0 Invalid HWR LWR (16-bit bus mode) Write LWR (8-bit bus mode) D15 to D8 High High impedance High impedance High impedance D7 to D0 Figure 6.12 Bus Timing for Area 6 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 131 of 846 H8S/2215 Group Section 6 Bus Controller 16-Bit 2-State Access Space: Figures 6.13 to 6.15 show bus timings for a 16-bit 2-state access space. When a 16-bit access space is accessed, the upper half (D15 to D8) of the data bus is used for the even address, and the lower half (D7 to D0) for the odd address. Wait states cannot be inserted. Bus cycle T1 T2 φ Address bus CSn AS RD Read D15 to D8 Valid D7 to D0 Invalid HWR LWR High Write D15 to D8 D7 to D0 Valid High impedance Note: n = 0 to 7 Figure 6.13 Bus Timing for 16-Bit 2-State Access Space (1) (Even Address Byte Access) Page 132 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 6 Bus Controller Bus cycle T1 T2 φ Address bus CSn AS RD Read D15 to D8 Invalid D7 to D0 Valid HWR High LWR Write High impedance D15 to D8 D7 to D0 Valid Note: n = 0 to 7 Figure 6.14 Bus Timing for 16-Bit 2-State Access Space (2) (Odd Address Byte Access) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 133 of 846 H8S/2215 Group Section 6 Bus Controller Bus cycle T1 T2 φ Address bus CSn AS RD Read D15 to D8 Valid D7 to D0 Valid HWR LWR Write D15 to D8 Valid D7 to D0 Valid Note: n = 0 to 7 Figure 6.15 Bus Timing for 16-Bit 2-State Access Space (3) (Word Access) Page 134 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 6 Bus Controller 16-Bit 3-State Access Space: Figures 6.16 to 6.18 show bus timings for a 16-bit 3-state access space. When a 16-bit access space is accessed, the upper half (D15 to D8) of the data bus is used for the even address, and the lower half (D7 to D0) for the odd address. Wait states can be inserted. Bus cycle T1 T2 T3 φ Address bus CSn AS RD Read D15 to D8 Valid D7 to D0 Invalid HWR LWR High Write D15 to D8 D7 to D0 Valid High impedance Note: n = 0 to 7 Figure 6.16 Bus Timing for 16-Bit 3-State Access Space (1) (Even Address Byte Access) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 135 of 846 H8S/2215 Group Section 6 Bus Controller Bus cycle T1 T2 T3 φ Address bus CSn AS RD Read D15 to D8 Invalid D7 to D0 Valid HWR High LWR Write D15 to D8 D7 to D0 High impedance Valid Note: n = 0 to 7 Figure 6.17 Bus Timing for 16-Bit 3-State Access Space (2) (Odd Address Byte Access) Page 136 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 6 Bus Controller Bus cycle T1 T2 T3 φ Address bus CSn AS RD Read D15 to D8 Valid D7 to D0 Valid HWR LWR Write D15 to D8 Valid D7 to D0 Valid Note: n = 0 to 7 Figure 6.18 Bus Timing for 16-Bit 3-State Access Space (3) (Word Access) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 137 of 846 Section 6 Bus Controller 6.6.4 H8S/2215 Group Wait Control When accessing external space, this LSI can extend the bus cycle by inserting one or more wait states (Tw). There are two ways of inserting wait states: program wait insertion and pin wait insertion using the WAIT pin. Program Wait Insertion: From 0 to 3 wait states can be inserted automatically between the T2 state and T3 state on an individual area basis in 3-state access space, according to the settings of WCRH and WCRL. Pin Wait Insertion: Setting the WAITE bit in BCRL to 1 enables wait insertion by means of the WAIT pin. When external space is accessed in this state, program wait insertion is first carried out according to the settings in WCRH and WCRL. Then, if the WAIT pin is low at the falling edge of φ in the last T2 or TW state, a TW state is inserted. If the WAIT pin is held low, TW states are inserted until it goes high. Page 138 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 6 Bus Controller Figure 6.19 shows an example of wait state insertion timing. By program wait T1 T2 Tw By WAIT pin Tw Tw T3 φ WAIT Address bus AS RD Read Data bus Read data HWR, LWR Write Data bus Write data Note: ↓ indicates the timing of WAIT pin sampling. Figure 6.19 Example of Wait State Insertion Timing 6.7 urst ROM Interface With this LSI, external space area 0 can be designated as burst ROM space, and burst ROM interfacing can be performed. The burst ROM space interface enables 16-bit configuration ROM with burst access capability to be accessed at high speed. Area 0 can be designated as burst ROM space by means of the BRSTRM bit in BCRH. Consecutive burst accesses of a maximum of 4 words or 8 words can be performed for CPU instruction fetches only. One or two states can be selected for burst access. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 139 of 846 H8S/2215 Group Section 6 Bus Controller 6.7.1 Basic Timing The number of states in the initial cycle (full access) of the burst ROM interface is in accordance with the setting of the AST0 bit in ASTCR. Also, when the AST0 bit is set to 1, wait state insertion is possible. One or two states can be selected for the burst cycle, according to the setting of the BRSTS1 bit in BCRH. Wait states cannot be inserted. When area 0 is designated as burst ROM space, it becomes 16-bit access space regardless of the setting of the ABW0 bit in ABWCR. When the BRSTS0 bit in BCRH is cleared to 0, burst access of up to 4 words is performed; when the BRSTS0 bit is set to 1, burst access of up to 8 words is performed. The basic access timing for burst ROM space is shown in figures 6.20 and 6.21. The timing shown in figure 6.20 is for the case where the AST0 and BRSTS1 bits are both set to 1, and that in figure 6.21 is for the case where both these bits are cleared to 0. Full access T1 T2 Burst access T3 T1 T2 T1 T2 φ Only lower address changed Address bus CS0 AS RD Data bus Read data Read data Read data Figure 6.20 Example of Burst ROM Access Timing (When AST0 = BRSTS1 = 1) Page 140 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 6 Bus Controller Full access T1 T2 Burst access T1 T1 φ Address bus Only lower address changed CS0 AS RD Data bus Read data Read data Read data Figure 6.21 Example of Burst ROM Access Timing (When AST0 = BRSTS1 = 0) 6.7.2 Wait Control As with the basic bus interface, either program wait insertion or pin wait insertion using the WAIT pin can be used in the initial cycle (full access) of the burst ROM interface. See section 6.6.4, Wait Control. Wait states cannot be inserted in a burst cycle. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 141 of 846 H8S/2215 Group Section 6 Bus Controller 6.8 Idle Cycle When this LSI accesses external space, it can insert a 1-state idle cycle (TI) between bus cycles in the following two cases: (1) when read accesses between different areas occur consecutively, and (2) when a write cycle occurs immediately after a read cycle. By inserting an idle cycle it is possible, for example, to avoid data collisions between ROM, with a long output floating time, and high-speed memory, I/O interfaces, and so on. Consecutive Reads between Different Areas: If consecutive reads between different areas occur while the ICIS1 bit in BCRH is set to 1, an idle cycle is inserted at the start of the second read cycle. Figure 6.22 shows an example of the operation in this case. In this example, bus cycle A is a read cycle from ROM with a long output floating time, and bus cycle B is a read cycle from SRAM, each being located in a different area. In (a), an idle cycle is not inserted, and a collision occurs in cycle B between the read data from ROM and that from SRAM. In (b), an idle cycle is inserted, and a data collision is prevented. Bus cycle A φ T1 T2 T3 Bus cycle B T1 Bus cycle A T2 φ Address bus Address bus CS (area A) CS (area A) CS (area B) CS (area B) RD RD Data bus Data bus Long output floating time (a) Idle cycle not inserted (ICIS1 = 0) T1 T2 T3 Bus cycle B TI T1 T2 Data collision (b) Idle cycle inserted (Initial value ICIS1 = 1) Figure 6.22 Example of Idle Cycle Operation (1) Page 142 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 6 Bus Controller Write after Read: If an external write occurs after an external read while the ICIS0 bit in BCRH is set to 1, an idle cycle is inserted at the start of the write cycle. Figure 6.23 shows an example of the operation in this case. In this example, bus cycle A is a read cycle from ROM with a long output floating time, and bus cycle B is a CPU write cycle. In (a), an idle cycle is not inserted, and a collision occurs in cycle B between the read data from ROM and the CPU write data. In (b), an idle cycle is inserted, and a data collision is prevented. Bus cycle A T1 T2 T3 Bus cycle B T1 Bus cycle A T2 T1 φ φ Address bus Address bus CS (area A) CS (area A) CS (area B) CS (area B) RD RD HWR HWR Data bus Data bus Long output floating time (a) Idle cycle not inserted (ICIS0 = 0) T2 T3 Bus cycle B TI T1 T2 Data collision (b) Idle cycle inserted (Initial value ICIS0 = 1) Figure 6.23 Example of Idle Cycle Operation (2) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 143 of 846 H8S/2215 Group Section 6 Bus Controller Relationship between Chip Select (CS) Signal and Read (RD) Signal: Depending on the system’s load conditions, the RD signal may lag behind the CS signal. An example is shown in figure 6.24. In this case, with the setting for no idle cycle insertion (a), there may be a period of overlap between the bus cycle A RD signal and the bus cycle B CS signal. Setting idle cycle insertion, as in (b), however, will prevent any overlap between the RD and CS signals. In the initial state after reset release, idle cycle insertion (b) is set. Bus cycle A T1 T2 T3 Bus cycle B T1 Bus cycle A T2 T1 φ φ Address bus Address bus CS (area A) CS (area A) CS (area B) CS (area B) RD RD T2 T3 Bus cycle B TI T1 T2 Possibility of overlap between CS (area B) and RD (a) Idle cycle not inserted (ICIS1 = 0) (b) Idle cycle inserted (Initial value ICIS1 = 1) Figure 6.24 Relationship between Chip Select (CS) and Read (RD) Table 6.4 shows pin states in an idle cycle. Table 6.4 Pin States in Idle Cycle Pins Pin State A23 to A0 Contents of next bus cycle D15 to D0 High impedance CSn High AS High RD High HWR High LWR High Page 144 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 6.9 Section 6 Bus Controller Bus Release This LSI can release the external bus in response to a bus request from an external device. In the external bus released state, the internal bus master continues to operate as long as there is no external access. In external extended mode, the bus can be released to an external device by setting the BRLE bit in BCRL to 1. Driving the BREQ pin low issues an external bus request to this LSI. When the BREQ pin is sampled, at the prescribed timing the BACK pin is driven low, and the address bus, data bus, and bus control signals are placed in the high-impedance state, establishing the external bus-released state. In the external bus released state, an internal bus master can perform accesses using the internal bus. When an internal bus master wants to make an external access, it temporarily defers activation of the bus cycle, and waits for the bus request from the external bus master to be dropped. When the BREQ pin is driven high, the BACK pin is driven high at the prescribed timing and the external bus released state is terminated. In the event of simultaneous external bus release request and external access request generation, the order of priority is as follows: (High) External bus release > Internal bus master external access (Low) Table 6.5 shows pin states in the external bus released state. Table 6.5 Pin States in Bus Released State Pins Pin State A23 to A0 High impedance D15 to D0 High impedance CSn High impedance AS High impedance RD High impedance HWR High impedance LWR High impedance REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 145 of 846 H8S/2215 Group Section 6 Bus Controller Figure 6.25 shows the timing for transition to the bus-released state. CPU cycle T0 T1 CPU cycle External bus released state T2 φ High impedance Address bus Address High impedance Data bus High impedance CSn High impedance AS High impedance RD High impedance HWR, LWR BREQ BACK Minimum 1 state [1] [1] [2] [3] [4] [5] [2] [3] [4] [5] Low level of BREQ pin is sampled at rise of T2 state. BACK pin is driven low at end of CPU read cycle, releasing bus to external bus master. BREQ pin state is still sampled in external bus released state. High level of BREQ pin is sampled. BACK pin is driven high, ending bus release cycle. Note : n = 0 to 7 Figure 6.25 Bus-Released State Transition Timing 6.9.1 Notes on Bus Release The external bus release function halts when a transition is made to sleep mode while MSTPCR is set to H'FFFFFF. To use the external bus release function in sleep mode, do not set MSTPCR to H'FFFFFF. Page 146 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 6.10 Section 6 Bus Controller Bus Arbitration This LSI has a bus arbiter that arbitrates bus master operations. There are three bus masters, the CPU, DMAC, and DTC, which perform read/write operations when they have possession of the bus. Each bus master requests the bus by means of a bus request signal. The bus arbiter determines priorities at the prescribed timing, and permits use of the bus by means of a bus request acknowledge signal. The selected bus master then takes possession of the bus and begins its operation. 6.10.1 Operation The bus arbiter detects the bus masters’ bus request signals, and if the bus is requested, sends a bus request acknowledge signal to the bus master making the request. If there are bus requests from more than one bus master, the bus request acknowledge signal is sent to the one with the highest priority. When a bus master receives the bus request acknowledge signal, it takes possession of the bus until that signal is canceled. The order of priority of the bus masters is as follows: (High) DMAC > DTC > CPU (Low) An internal bus access by an internal bus master, and external bus release, can be executed in parallel. In the event of simultaneous external bus release request, and internal bus master external access request generation, the order of priority is as follows: (High) External bus release > Internal bus master external access (Low) 6.10.2 Bus Transfer Timing Even if a bus request is received from a bus master with a higher priority than that of the bus master that has acquired the bus and is currently operating, the bus is not necessarily transferred immediately. There are specific times at which each bus master can relinquish the bus. CPU: The CPU is the lowest-priority bus master, and if a bus request is received from the DMAC and DTC, the bus arbiter transfers the bus to the bus master that issued the request. The timing for transfer of the bus is as follows: REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 147 of 846 Section 6 Bus Controller H8S/2215 Group • The bus is transferred at a break between bus cycles. However, if a bus cycle is executed in discrete operations, as in the case of a longword-size access, the bus is not transferred between the operations. • If the CPU is in sleep mode, it transfers the bus immediately. DTC: The DTC sends the bus arbiter a request for the bus when an activation request is generated. The DTC can release the bus after a vector read, a register information read (3 states), a single data transfer, or a register information write (3 states). It does not release the bus during a register information read (3 states), a single data transfer, or a register information write (3 states). DMAC: The DMAC sends the bus arbiter a request for the bus when an activation request is generated. In the case of a USB request in normal mode, and in short address mode or in cycle steal mode, the DMAC releases the bus after a single transfer. In block transfer mode, it releases the bus after transfer of one block, and in burst mode, after completion of the transfer. 6.10.3 External Bus Release Usage Note External bus release can be performed on completion of an external bus cycle. The CS signal remains low until the end of the external bus cycle. Therefore, when external bus release is performed, the CS signal may change from the low level to the high-impedance state. 6.11 Resets and the Bus Controller In a power-on reset, this LSI, including the bus controller, enters the reset state at that point, and an executing bus cycle is discontinued. In a manual reset, the bus controller’s registers and internal state are maintained, and an executing external bus cycle is completed. In this case, WAIT input is ignored and write data is not guaranteed. Page 148 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 7 DMA Controller (DMAC) Section 7 DMA Controller (DMAC) This LSI has a built-in DMA controller (DMAC) which can carry out data transfer on up to 4 channels. 7.1 Features The features of the DMAC are listed below. • Choice of short address mode or full address mode (1) Short address mode ⎯ Maximum of 4 channels can be used ⎯ Choice of dual address mode ⎯ In dual address mode, one of the two addresses, transfer source and transfer destination, is specified as 24 bits and the other as 16 bits ⎯ Choice of sequential mode, idle mode, or repeat mode for dual address mode (2) Full address mode ⎯ Maximum of 2 channels can be used ⎯ Transfer source and transfer destination address specified as 24 bits ⎯ Choice of normal mode or block transfer mode • 16-Mbyte address space can be specified directly • Byte or word can be set as the transfer unit • Activation sources: internal interrupt, USB request, auto-request (depending on transfer mode) ⎯ 16-bit timer-pulse unit (TPU) compare match/input capture interrupts ⎯ Serial communication interface (SCI_0, SCI_1) transmission complete interrupt, reception complete interrupt ⎯ A/D conversion end interrupt ⎯ USB request ⎯ Auto-request • Module stop mode can be set REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 149 of 846 DMAS220A_010020020100 H8S/2215 Group Section 7 DMA Controller (DMAC) A block diagram of the DMAC is shown in figure 7.1. Internal address bus Internal interrupts TGI0A TGI1A TGI2A TXI0 RXI0 TXI1 RXI1 ADI Addres buffer USB request signals DREQ0 DREQ1 DMAWER DMATCR Channel 1 DMACR0A DMACR0B Interrupt signals DEND0A DEND0B DEND1A DEND1B DMACR1A DMACR1B DMABCR MAR0A IOAR0A ETCR0A MAR0B IOAR0B ETCR0B Module data bus Channel 0 Control logic Channel 1B Channel 1A Channel 0B Channel 0A Processor MAR1A IOAR1A ETCR1A MAR1B IOAR1B ETCR1B Data buffer Internal address bus Legend: DMAWER: DMA write enable register DMATCR: DMA terminal control register * DMABCR: DMA band control register (for all channels) DMACR: DMA control register Memory address register MAR: I/O address register IOAR: Executive transfer counter register ETCR: Note: * Reserved register Figure 7.1 Block Diagram of DMAC Page 150 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 7.2 Section 7 DMA Controller (DMAC) Register Configuration The DMAC registers are listed below. • Memory address register 0A (MAR0A) • I/O address register 0A (IOAR0A) • Transfer count register 0A (ETCR0A) • Memory address register 0B (MAR0B) • I/O address register 0B (IOAR0B) • Transfer count register 0B (ETCR0B) • Memory address register 1A (MAR1A) • I/O address register 1A (IOAR1A) • Transfer count register 1A (ETCR1A) • Memory address register 1B (MAR1B) • I/O address register 1B (IOAR1B) • Transfer count register 1B (ETCR1B) • DMA write enable register (DMAWER) • DMA control register 0A (DMACR0A) • DMA control register 0B (DMACR0B) • DMA control register 1A (DMACR1A) • DMA control register 1B (DMACR1B) • DMA band control register (DMABCR) The DMAC register functions differs depending on the address modes: short address mode and full address mode. The DMAC register functions are described in each address mode. Short address mode or full address mode can be selected for channels 1 and 0 independently by means of bits FAE1 and FAE0. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 151 of 846 H8S/2215 Group Section 7 DMA Controller (DMAC) Table 7.1 FAE0 0 Short Address Mode and Full Address Mode (For 1 Channel: Example of Channel 0) Description Short address mode specified (channels A and B operate independently) Specifies transfer source/transfer destination address Channel 0A MAR0A IOAR0A Specifies transfer destination/transfer source address ETCR0A Specifies number of transfers DMACR0A Specifies transfer source/transfer destination address Channel 0B MAR0B IOAR0B Specifies transfer destination/transfer source address ETCR0B Specifies number of transfers DMACR0B Specifies transfer size, mode, activation source, etc. Full address mode specified (channels A and B operate combination) Channel 0 1 Specifies transfer size, mode, activation source, etc. MAR0A Specifies transfer source address MAR0B Specifies transfer destination address IOAR0A Not used IOAR0B Not used ETCR0A Specifies number of transfers ETCR0B Specifies number of transfers (used in block transfer mode only) DMACR0A DMACR0B Page 152 of 846 Specifies transfer size, mode, activation source, etc. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 7.3 Register Descriptions 7.3.1 Memory Address Registers (MAR) Section 7 DMA Controller (DMAC) • Short Address Mode MAR is a 32-bit readable/writable register that specifies the transfer source address or destination address. The upper 8 bits of MAR are reserved: they are always read as 0, and cannot be modified. Whether MAR functions as the source address register or as the destination address register can be selected by means of the DTDIR bit in DMACR. MAR is incremented or decremented each time a byte or word transfer is executed, so that the address specified by MAR is constantly updated. For details, see section 7.3.4, DMA Control Register (DMACR). MAR is not initialized by a reset or in standby mode. • Full Address Mode MAR is a 32-bit readable/writable register; MARA functions as the transfer source address register, and MARB as the destination address register. MAR is composed of two 16-bit registers, MARH and MARL. The upper 8 bits of MARH are reserved: they are always read as 0, and cannot be modified. MAR is incremented or decremented each time a byte or word transfer is executed, so that the source or destination memory address can be updated automatically. For details, see section 7.3.4, DMA Control Register (DMACR). MAR is not initialized by a reset or in standby mode. 7.3.2 I/O Address Register (IOAR) • Short Address Mode IOAR is a 16-bit readable/writable register that specifies the lower 16 bits of the transfer source address or destination address. The upper 8 bits of the transfer address are automatically set to H'FF. Whether IOAR functions as the source address register or as the destination address register can be selected by means of the DTDIR bit in DMACR. IOAR is not incremented or decremented each time a transfer is executed, so that the address specified by IOAR is fixed. IOAR is not initialized by a reset or in standby mode. • Full Address Mode IOAR is not used in full address mode transfer. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 153 of 846 Section 7 DMA Controller (DMAC) 7.3.3 H8S/2215 Group Execute Transfer Count Register (ETCR) • Short Address Mode ETCR is a 16-bit readable/writable register that specifies the number of transfers. The setting of this register is different for sequential mode and idle mode on the one hand, and for repeat mode on the other. ETCR is not initialized by a reset or in standby mode. ⎯ Sequential Mode and Idle Mode In sequential mode and idle mode, ETCR functions as a 16-bit transfer counter (with a count range of 1 to 65,536). ETCR is decremented by 1 each time a transfer is performed, and when the count reaches H'0000, the DTE bit in DMABCR is cleared, and transfer ends. ⎯ Repeat Mode In repeat mode, ETCR functions as an 8-bit transfer counter ETCRL (with a count range of 1 to 256) and transfer number storage register ETCRH. ETCRL is decremented by 1 each time a transfer is performed, and when the count reaches H'00, ETCRL is loaded with the value in ETCRH. At this point, MAR is automatically restored to the value it had when the count was started. The DTE bit in DMABCR is not cleared, and so transfers can be performed repeatedly until the DTE bit is cleared by the user. • Full Address Mode ETCR is a 16-bit readable/writable register that specifies the number of transfers. The function of this register is different in normal mode and in block transfer mode. ETCR is not initialized by a reset or in standby mode. ⎯ Normal Mode (a) ETCRA In normal mode, ETCRA functions as a 16-bit transfer counter. ETCRA is decremented by 1 each time a transfer is performed, and transfer ends when the count reaches H'0000. (b) ETCRB ETCRB is not used in normal mode. ⎯ Block Transfer Mode (a) ETCRA In block transfer mode, ETCRAL functions as an 8-bit block size counter and ETCRAH holds the block size. ETCRAL is decremented each time a 1-byte or 1-word transfer is performed, and when the count reaches H'00, ETCRAL is loaded with the value in ETCRAH. So by setting the block size in ETCRAH and ETCRAL, it is possible to repeatedly transfer blocks consisting of any desired number of bytes or words. (b) ETCRB ETCRB functions in block transfer mode, as a 16-bit block transfer counter. ETCRB is decremented by 1 each time a block is transferred, and transfer ends when the count reaches H'0000. Page 154 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 7.3.4 Section 7 DMA Controller (DMAC) DMA Control Register (DMACR) DMACR controls the operation of each DMAC channel. • Short Address Mode (common to DMACRA and DMACRB) Bit Bit Name Initial Value R/W Description 7 Data Transfer Size DTSZ 0 R/W Selects the size of data to be transferred at one time. 0: Byte-size transfer 1: Word-size transfer 6 DTID 0 R/W Data Transfer Increment/Decrement Selects incrementing or decrementing of MAR every data transfer in sequential mode or repeat mode. In idle mode, MAR is neither incremented nor decremented. 0: MAR is incremented after a data transfer • When DTSZ = 0, MAR is incremented by 1 after a transfer • When DTSZ = 1, MAR is incremented by 2 after a transfer 1: MAR is decremented after a data transfer REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 • When DTSZ = 0, MAR is decremented by 1 after a transfer • When DTSZ = 1, MAR is decremented by 2 after a transfer Page 155 of 846 H8S/2215 Group Section 7 DMA Controller (DMAC) Bit Bit Name Initial Value R/W Description 5 Repeat Enable RPE 0 R/W Used in combination with the DTIE bit in DMABCR to select the mode (sequential, idle, or repeat) in which transfer is to be performed. RPE DTIE 0 0: Transfer in sequential mode (no transfer end interrupt) 0 1: Transfer in sequential mode (with transfer end interrupt) 1 0: Transfer in repeat mode (no transfer end interrupt) 1 1: Transfer in idle mode (with transfer end interrupt) Note: For details of operation in sequential, idle, and repeat mode, see section 7.4.2, Sequential Mode, section 7.4.3, Idle Mode, and section 7.4.4, Repeat Mode. 4 DTDIR 0 R/W Data Transfer Direction Specifies the data transfer direction (source or destination). 0: Transfer with MAR as source address and IOAR as destination address 1: Transfer with IOAR as source address and MAR as destination address Page 156 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 7 DMA Controller (DMAC) Bit Bit Name Initial Value R/W Description 3 DTF3 0 R/W Data Transfer Factor 2 DTF2 0 R/W These bits select the data transfer factor (activation source). 1 DTF1 0 R/W 0000: — 0 DTF0 0 R/W 0001: Activated by A/D conversion end interrupt 0010: — 0011: — 0100: Activated by SCI channel 0 transmission complete interrupt 0101: Activated by SCI channel 0 reception complete interrupt 0110: Activated by SCI channel 1 transmission complete interrupt 0111: Activated by SCI channel 1 reception complete interrupt 1000: Activated by TPU channel 0 compare match/input capture A interrupt 1001: Activated by TPU channel 1 compare match/input capture A interrupt 1010: Activated by TPU channel 2 compare match/input capture A interrupt 1011: — 1100: — 1101: — 1110: — 1111: — The same factor can be selected for more than one channel. In this case, activation starts with the highest-priority channel according to the relative channel priorities. For relative channel priorities, see section 7.4.10, DMAC Multi-Channel Operation. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 157 of 846 H8S/2215 Group Section 7 DMA Controller (DMAC) • Full Address Mode (DMACRA) Bit Bit Name Initial Value R/W Description 15 Data Transfer Size DTSZ 0 R/W Selects the size of data to be transferred at one time. 0: Byte-size transfer 1: Word-size transfer 14 SAID 0 R/W Source Address Increment/Decrement 13 SAIDE 0 R/W Source Address Increment/Decrement Enable These bits specify whether source address register MARA is to be incremented, decremented, or left unchanged, when data transfer is performed. 00: MARA is fixed 01: MARA is incremented after a data transfer • When DTSZ = 0, MARA is incremented by 1 after a transfer • When DTSZ = 1, MARA is incremented by 2 after a transfer 10: MARA is fixed 11: MARA is decremented after a data transfer • • Page 158 of 846 When DTSZ = 0, MARA is decremented by 1 after a transfer When DTSZ = 1, MARA is decremented by 2 after a transfer REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 7 DMA Controller (DMAC) Bit Bit Name Initial Value R/W Description 12 BLKDIR 0 R/W Block Direction 11 BLKE 0 R/W Block Enable These bits specify whether normal mode or block transfer mode is to be used. If block transfer mode is specified, the BLKDIR bit specifies whether the source side or the destination side is to be the block area. 00: Transfer in normal mode 01: Transfer in block transfer mode, destination side is block area 10: Transfer in normal mode 11: Transfer in block transfer mode, source side is block area For operation in normal mode and block transfer mode, see section 7.4, Operation. 10 ⎯ to 8 All 0 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 R/W Reserved Although these bits are readable/writable, only 0 should be written here. Page 159 of 846 H8S/2215 Group Section 7 DMA Controller (DMAC) • Full Address Mode (DMACRB) Bit Bit Name Initial Value R/W 7 ⎯ 0 R/W Description Reserved Although this bit is readable/writable, only 0 should be written here. 6 DAID 0 R/W Destination Address Increment/Decrement 5 DAIDE 0 R/W Destination Address Increment/Decrement Enable These bits specify whether destination address register MARB is to be incremented, decremented, or left unchanged, when data transfer is performed. 00: MARB is fixed 01: MARB is incremented after a data transfer • When DTSZ = 0, MARB is incremented by 1 after a transfer • When DTSZ = 1, MARB is incremented by 2 after a transfer 10: MARB is fixed 11: MARB is decremented after a data transfer • • 4 — 0 R/W When DTSZ = 0, MARB is decremented by 1 after a transfer When DTSZ = 1, MARB is decremented by 2 after a transfer Reserved Although this bit is readable/writable, only 0 should be written here. Page 160 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 7 DMA Controller (DMAC) Bit Bit Name Initial Value R/W 3 2 1 0 DTF3 DTF2 DTF1 DTF0 0 0 0 0 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 R/W R/W R/W R/W Description Data Transfer Factor These bits select the data transfer factor (activation source). In normal mode 0000: — 0001: — 0010: — 0011: — 010×: — 0110: Auto-request (cycle steal) 0111: Auto-request (burst) 1×××: — In block transfer mode 0000: — 0001: Activated by A/D conversion end interrupt 0010: — 0011: Activated by DREQ signal’s low level input from USB (USB request) 0100: Activated by SCI channel 0 transmission complete interrupt 0101: Activated by SCI channel 0 reception complete interrupt 0110: Activated by SCI channel 1 transmission complete interrupt 0111: Activated by SCI channel 1 reception complete interrupt 1000: Activated by TPU channel 0 compare match/input capture A interrupt 1001: Activated by TPU channel 1 compare match/input capture A interrupt 1010: Activated by TPU channel 2 compare match/input capture A interrupt 1011: — 11××: — The same factor can be selected for more than one channel. In this case, activation starts with the highest-priority channel according to the relative channel priorities. For relative channel priorities, see section 7.4.10, DMAC Multi-Channel Operation. Legend: ×: Don’t care Page 161 of 846 H8S/2215 Group Section 7 DMA Controller (DMAC) 7.3.5 DMA Band Control Register (DMABCR) DMABCR controls the operation of each DMAC channel. • Short Address Mode Bit Bit Name Initial Value R/W 15 FAE1 0 R/W Description Full Address Enable 1 Specifies whether channel 1 is to be used in short address mode or full address mode. In short address mode, channels 1A and 1B are used as independent channels. 0: Short address mode 1: Full address mode 14 FAE0 0 R/W Full Address Enable 0 Specifies whether channel 0 is to be used in short address mode or full address mode. In short address mode, channels 0A and 0B are used as independent channels. 0: Short address mode 1: Full address mode 13, ⎯ 12 Page 162 of 846 All 0 R/W Reserved Only 0 should be written to these bits. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 7 DMA Controller (DMAC) Bit Bit Name Initial Value R/W Description 11 DTA1B 0 R/W Data Transfer Acknowledge 10 DTA1A 0 R/W 9 DTA0B 0 R/W 8 DTA0A 0 R/W These bits enable or disable clearing, when DMA transfer is performed, of the internal interrupt source selected by the data transfer factor setting. When DTE = 1 and DTA = 1, the internal interrupt source selected by the data transfer factor setting is cleared automatically by DMA transfer. When DTE = 1 and DTA = 1, the internal interrupt source selected by the data transfer factor setting does not issue an interrupt request to the CPU or DTC. When DTE = 1 and DTA = 0, the internal interrupt source selected by the data transfer factor setting is not cleared when a transfer is performed, and can issue an interrupt request to the CPU or DTC in parallel. In this case, the interrupt source should be cleared by the CPU or DTC transfer. When DTE = 0, the internal interrupt source selected by the data transfer factor setting issues an interrupt request to the CPU or DTC regardless of the DTA bit setting. 0: Clearing of selected internal interrupt source at time of DMA transfer is disabled 1: Clearing of selected internal interrupt source at time of DMA transfer is enabled REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 163 of 846 H8S/2215 Group Section 7 DMA Controller (DMAC) Bit Bit Name Initial Value R/W Description 7 DTE1B 0 R/W Data Transfer Enable 6 DTE1A 0 R/W 5 DTE0B 0 R/W 4 DTE0A 0 R/W When DTE = 0, data transfer is disabled and the activation source selected by the data transfer factor setting is ignored. If the activation source is an internal interrupt, an interrupt request is issued to the CPU or DTC. If the DTIE bit is set to 1when DTE = 0, the DMAC regards this as indicating the end of a transfer, and issues a transfer end interrupt request to the CPU or DTC. The conditions for the DTE bit being cleared to 0 are as follows: • • When initialization is performed When the specified number of transfers have been completed in a transfer mode other than repeat mode • When 0 is written to the DTE bit to forcibly abort the transfer, or for a similar reason When DTE = 1, data transfer is enabled and the DMAC waits for a request by the activation source selected by the data transfer factor setting. When a request is issued by the activation source, DMA transfer is executed. The condition for the DTE bit being set to 1 is as follows: • When 1 is written to the DTE bit after the DTE bit is read as 0 0: Data transfer disabled 1: Data transfer enabled 3 DTIE1B 0 R/W Data Transfer End Interrupt Enable 2 DTIE1A 0 R/W 1 DTIE0B 0 R/W 0 DTIE0A 0 R/W These bits enable or disable an interrupt to the CPU or DTC when transfer ends. If the DTIE bit is set to 1 when DTE = 0, the DMAC regards this as indicating the end of a transfer, and issues a transfer end interrupt request to the CPU or DTC. A transfer end interrupt can be canceled either by clearing the DTIE bit to 0 in the interrupt handling routine, or by performing processing to continue transfer by setting the transfer counter and address register again, and then setting the DTE bit to 1. 0: Transfer end interrupt disabled 1: Transfer end interrupt enabled Page 164 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 7 DMA Controller (DMAC) • Full Address Mode Bit Bit Name Initial Value R/W Description 15 Full Address Enable 1 FAE1 0 R/W Specifies whether channel 1 is to be used in short address mode or full address mode. In full address mode, channels 1A and 1B are used together as a single channel. 0: Short address mode 1: Full address mode 14 FAE0 0 R/W Full Address Enable 0 Specifies whether channel 0 is to be used in short address mode or full address mode. In full address mode, channels 0A and 0B are used together as a single channel. 0: Short address mode 1: Full address mode 13, — 12 All 0 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 R/W Reserved Although these bits are readable/writable, only 0 should be written here. Page 165 of 846 H8S/2215 Group Section 7 DMA Controller (DMAC) Bit Bit Name Initial Value R/W Description Data Transfer Acknowledge Enables or disables clearing, when DMA transfer is performed, of the internal interrupt source selected by the data transfer factor setting. When DTE = 1 and DTA = 1, the internal interrupt source selected by the data transfer factor setting is cleared automatically by DMA transfer. When DTE = 1 and DTA = 1, the internal interrupt source selected by the data transfer factor setting does not issue an interrupt request to the CPU or DTC. When DTE = 1 and DTA = 0, the internal interrupt source selected by the data transfer factor setting is not cleared when a transfer is performed, and can issue an interrupt request to the CPU or DTC in parallel. In this case, the interrupt source should be cleared by the CPU or DTC transfer. When DTE = 0, the internal interrupt source selected by the data transfer factor setting issues an interrupt request to the CPU or DTC regardless of the DTA bit setting. The state of the DTME bit does not affect the above operations. 11 DTA1 0 R/W Data transfer acknowledge 1 Enables or disables clearing, when DMA transfer is performed, of the internal interrupt source selected by the channel 1 data transfer factor setting. 0: Clearing of selected internal interrupt source at time of DMA transfer is disabled 1: Clearing of selected internal interrupt source at time of DMA transfer is enabled 10 — 0 R/W Reserved This bit can be read from or written to. The write value should always be 0. Page 166 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 7 DMA Controller (DMAC) Bit Bit Name Initial Value R/W Description 9 Data Transfer Acknowledge 0 DTA0 0 R/W Enables or disables clearing, when DMA transfer is performed, of the internal interrupt source selected by the channel 0 data transfer factor setting. 0: Clearing of selected internal interrupt source at time of DMA transfer is disabled 1: Clearing of selected internal interrupt source at time of DMA transfer is enabled 8 — 0 R/W Reserved Although this bit is readable/writable, only 0 should be written here. Data Transfer Master Enable 1 Together with the DTE bit, this bit controls enabling or disabling of data transfer on the relevant channel. When both the DTME bit and the DTE bit are set to 1, transfer is enabled for the channel. If the relevant channel is in the middle of a burst mode transfer when an NMI interrupt is generated, the DTME bit is cleared, the transfer is interrupted, and bus mastership passes to the CPU. When the DTME bit is subsequently set to 1 again, the interrupted transfer is resumed. In block transfer mode, however, the DTME bit is not cleared by an NMI interrupt, and transfer is not interrupted. The conditions for the DTME bit being cleared to 0 are as follows: • When initialization is performed • When NMI is input in burst mode • When 0 is written to the DTME bit The condition for DTME being set to 1 is as follows: • 7 DTME1 0 R/W When 1 is written to DTME after DTME is read as 0 Data Transfer Master Enable 1 Enables or disables data transfer on channel 1 0: Data transfer disabled. In burst mode, cleared to 0 by an NMI interrupt 1: Data transfer enabled REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 167 of 846 H8S/2215 Group Section 7 DMA Controller (DMAC) Bit Bit Name Initial Value R/W Description Data Transfer Enable 1 When DTE = 0, data transfer is disabled and the activation source selected by the data transfer factor setting is ignored. If the activation source is an internal interrupt, an interrupt request is issued to the CPU or DTC. If the DTIE bit is set to 1 when DTE = 0, the DMAC regards this as indicating the end of a transfer, and issues a transfer end interrupt request to the CPU. The conditions for the DTE bit being cleared to 0 are as follows: • • When initialization is performed When the specified number of transfers have been completed • When 0 is written to the DTE bit to forcibly abort the transfer, or for a similar reason When DTE = 1 and DTME = 1, data transfer is enabled and the DMAC waits for a request by the activation source selected by the data transfer factor setting. When a request is issued by the activation source, DMA transfer is executed. The condition for the DTE bit being set to 1 is as follows: • 6 DTE1 0 R/W When 1 is written to the DTE bit after the DTE bit is read as 0 Data Transfer Enable 1 Enables or disables data transfer on channel 1. 0: Data transfer disabled 1: Data transfer enabled 5 DTME0 0 R/W Data Transfer Master Enable 0 Enables or disables data transfer on channel 0. 0: Data transfer disabled. In burst mode, cleared to 0 by an NMI interrupt 1: Data transfer enabled 4 DTE0 0 R/W Data Transfer Enable 0 Enables or disables data transfer on channel 0. 0: Data transfer disabled 1: Data transfer enabled Page 168 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 7 DMA Controller (DMAC) Bit Bit Name Initial Value R/W Description Data Transfer Interrupt Enable B Enables or disables an interrupt to the CPU or DTC when transfer is interrupted. If the DTIEB bit is set to 1 when DTME = 0, the DMAC regards this as indicating a break in the transfer, and issues a transfer break interrupt request to the CPU or DTC. A transfer break interrupt can be canceled either by clearing the DTIEB bit to 0 in the interrupt handling routine, or by performing processing to continue transfer by setting the DTME bit to 1. 3 DTIE1B 0 R/W Data Transfer Interrupt Enable 1B Enables or disables the channel 1 transfer break interrupt. 0: Transfer break interrupt disabled 1: Transfer break interrupt enabled Data Transfer End Interrupt Enable A Enables or disables an interrupt to the CPU or DTC when transfer ends. If the DTIEA bit is set to 1 when DTE = 0, the DMAC regards this as indicating the end of a transfer, and issues a transfer end interrupt request to the CPU or DTC. A transfer end interrupt can be canceled either by clearing the DTIEA bit to 0 in the interrupt handling routine, or by performing processing to continue transfer by setting the DTE bit to 1. 2 DTIE1A 0 R/W Data Transfer End Interrupt Enable 1A Enables or disables the channel 1 transfer end interrupt. 0: Transfer end interrupt disabled 1: Transfer end interrupt enabled 1 DTIE0B 0 R/W Data Transfer Interrupt Enable 0B Enables or disables the channel 0 transfer break interrupt. 0: Transfer break interrupt disabled 1: Transfer break interrupt enabled 0 DTIE0A 0 R/W Data Transfer End Interrupt Enable 0A Enables or disables the channel 0 transfer end interrupt. 0: Transfer end interrupt disabled 1: Transfer end interrupt enabled REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 169 of 846 H8S/2215 Group Section 7 DMA Controller (DMAC) 7.3.6 DMA Write Enable Register (DMAWER) The DMAC can activate the DTC with a transfer end interrupt, rewrite the channel on which the transfer ended using a DTC chain transfer, and reactivate the DTC. DMAWER applies restrictions so that only specific bits of DMACR for the specific channel and also DMABCR can be changed to prevent inadvertent changes being made to registers other than those for the channel concerned. The restrictions applied by DMAWER are valid for the DTC. Figure 7.2 shows the transfer areas for activating the DTC with a channel 0A transfer end interrupt, and reactivating channel 0A. The address register and count register area is re-set by the first DTC transfer, then the control register area is re-set by the second DTC chain transfer. When re-setting the control register area, perform masking by setting bits in DMAWER to prevent modification of the contents of the other channels. First transfer area MAR0A IOAR0A ETCR0A MAR0B IOAR0B ETCR0B MAR1A DTC IOAR1A ETCR1A MAR1B IOAR1B ETCR1B Second transfer area using chain transfer DMAWER DMATCR DMACR0A DMACR0B DMACR1A DMACR1B DMABCR Figure 7.2 Areas for Register Re-Setting by DTC (Example: Channel 0A) DMAWER controls enabling or disabling of writes to the DMACR and DMABCR by the DTC. Page 170 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 7 DMA Controller (DMAC) Bit Bit Name Initial Value R/W Description 7 to — 4 All 0 Reserved 3 0 WE1B — These bits are always read as 0 and cannot be modified. R/W Write Enable 1B Enables or disables writes to all bits in DMACR1B, bits 11, 7, and 3 in DMABCR by the DTC. 0: Writes to all bits in DMACR1B, bits 11, 7, and 3 in DMABCR are disabled 1: Writes to all bits in DMACR1B, bits 11, 7, and 3 in DMABCR are enabled 2 WE1A 0 R/W Write Enable 1A Enables or disables writes to all bits in DMACR1A, and bits 10, 6, and 2 in DMABCR by the DTC. 0: Writes to all bits in DMACR1A, and bits 10, 6, and 2 in DMABCR are disabled 1: Writes to all bits in DMACR1A, and bits 10, 6, and 2 in DMABCR are enabled 1 WE0B 0 R/W Write Enable 0B Enables or disables writes to all bits in DMACR0B, bits 9, 5, and 1 in DMABCR by the DTC. 0: Writes to all bits in DMACR0B, bits 9, 5, and 1 in DMABCR, are disabled 1: Writes to all bits in DMACR0B, bits 9, 5, and 1 in DMABCR are enabled 0 WE0A 0 R/W Write Enable 0A Enables or disables writes to all bits in DMACR0A, and bits 8, 4, and 0 in DMABCR by the DTC. 0: Writes to all bits in DMACR0A, and bits 8, 4, and 0 in DMABCR are disabled 1: Writes to all bits in DMACR0A, and bits 8, 4, and 0 in DMABCR are enabled Writes by the DTC to bits 15 to 12 (FAE and SAE) in DMABCR are invalid regardless of the DMAWER settings. These bits should be changed, if necessary, by CPU processing. In writes by the DTC to bits 7 to 4 (DTE) in DMABCR, 1 can be written without first reading 0. To reactivate a channel set to full address mode, write 1 to both Write Enable A and Write Enable B for the channel to be reactivated. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 171 of 846 H8S/2215 Group Section 7 DMA Controller (DMAC) MAR, IOAR, and ETCR are always write-enabled regardless of the DMAWER settings. When modifying these registers, the channel for which the modification is to be made should be halted. 7.4 Operation 7.4.1 Transfer Modes Table 7.2 lists the DMAC modes. Table 7.2 DMAC Transfer Modes Transfer Mode Short address mode Dual address mode Transfer Source (1) Sequential mode • (2) Idle mode (3) Repeat Mode • • • Full address mode (4) Normal mode • • (5) Block transfer mode • • • • Page 172 of 846 Remarks TPU channel 0 to 2 • compare match/input capture A interrupts SCI transmission complete interrupt SCI reception complete interrupt A/D conversion end interrupt • USB request Auto-request TPU channel 0 to 2 compare match/input • capture A interrupts SCI transmission complete interrupt SCI reception complete interrupt A/D conversion end interrupt Up to 4 channels can operate independently Max. 2-channel operation, combining channels A and B With auto-request, burst mode transfer or cycle steal transfer can be selected REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 7.4.2 Section 7 DMA Controller (DMAC) Sequential Mode Sequential mode can be specified by clearing the RPE bit in DMACR to 0. In sequential mode, MAR is updated after each byte or word transfer in response to a single transfer request, and this is executed the number of times specified in ETCR. One address is specified by MAR, and the other by IOAR. The transfer direction can be specified by the DTDIR bit in DMACR. Table 7.3 summarizes register functions in sequential mode. Table 7.3 Register Functions in Sequential Mode Function Register 23 DTDIR = 0 DTDIR = 1 Initial Setting Operation 0 Source address register Destination address register Start address of transfer destination or transfer source Incremented/decrem ented every transfer 0 Destination address register Source address register Start address of transfer source or transfer destination Fixed MAR 23 15 H'FF IOAR 15 0 ETCR Transfer counter Number of transfers Decremented every transfer, transfer ends when count reaches H'0000 MAR specifies the start address of the transfer source or transfer destination as 24 bits. MAR is incremented or decremented by 1 or 2 each time a byte or word is transferred. IOAR specifies the lower 16 bits of the other address. The 8 bits above IOAR have a value of H'FF. Figure 7.3 illustrates operation in sequential mode. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 173 of 846 H8S/2215 Group Section 7 DMA Controller (DMAC) Address T Transfer IOAR 1 byte or word transfer performed in response to 1 transfer request Address B Note: Address T = L Address B = L + (–1)DTID · (2DTSZ · (N–1)) Where: L = Value set in MAR N = Value set in ETCR Figure 7.3 Operation in Sequential Mode The number of transfers is specified as 16 bits in ETCR. ETCR is decremented by 1 each time a transfer is executed, and when its value reaches H'0000, the DTE bit is cleared and transfer ends. If the DTIE bit is set to 1 at this time, an interrupt request is sent to the CPU or DTC. The maximum number of transfers, when H'0000 is set in ETCR, is 65,536. Transfer requests (activation sources) consist of A/D conversion end interrupt, SCI transmission complete and reception complete interrupts, and TPU channel 0 to 2 compare match/input capture A interrupts. External requests can be set for channel B only. Figure 7.4 shows an example of the setting procedure for sequential mode. Page 174 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 7 DMA Controller (DMAC) [1] Set each bit in DMABCRH. Sequential mode setting · Clear the FAE bit to 0 to select short address mode. · Specify enabling or disabling of internal interrupt Set DMABCRH [1] clearing with the DTA bit. [2] Set the transfer source address and transfer destination address in MAR and IOAR. [3] Set the number of transfers in ETCR. Set transfer source and transfer destination addresses [2] [4] Set each bit in DMACR. · Set the transfer data size with the DTSZ bit. · Specify whether MAR is to be incremented or decremented with the DTID bit. Set number of transfers [3] · Clear the RPE bit to 0 to select sequential mode. · Specify the transfer direction with the DTDIR bit. · Select the activation source with bits DTF3 to Set DMACR [4] DTF0. [5] Read the DTE bit in DMABCRL as 0. [6] Set each bit in DMABCRL. · Specify enabling or disabling of transfer Read DMABCRL [5] andinterrupts with the DTIE bit. · Set the DTE bit to 1 to enable transfer. Set DMABCRL [6] Sequential mode Figure 7.4 Example of Sequential Mode Setting Procedure REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 175 of 846 H8S/2215 Group Section 7 DMA Controller (DMAC) 7.4.3 Idle Mode Idle mode can be specified by setting the RPE bit and DTIE bit in DMACR to 1. In idle mode, one byte or word is transferred in response to a single transfer request, and this is executed the number of times specified in ETCR. One address is specified by MAR, and the other by IOAR. The transfer direction can be specified by the DTDIR bit in DMACR. Table 7.4 summarizes register functions in idle mode. Table 7.4 Register Functions in Idle Mode Function Register 23 DTDIR = 0 DTDIR = 1 Initial Setting Operation 0 Source address register Destination address register Start address of transfer destination or transfer source Fixed 0 Destination address register Source address register Start address of transfer source or transfer destination Fixed MAR 23 15 H'FF IOAR 15 0 Transfer counter Number of transfers Decremented every transfer, transfer ends when count reaches H'0000 ETCR MAR specifies the start address of the transfer source or transfer destination as 24 bits. MAR is neither incremented nor decremented each time a byte or word is transferred. IOAR specifies the lower 16 bits of the other address. The 8 bits above IOAR have a value of H'FF. Figure 7.5 illustrates operation in idle mode. MAR Transfer IOAR 1 byte or word transfer performed in response to 1 transfer request Figure 7.5 Operation in Idle Mode The number of transfers is specified as 16 bits in ETCR. ETCR is decremented by 1 each time a transfer is executed, and when its value reaches H'0000, the DTE bit is cleared and transfer ends. If the DTIE bit is set to 1 at this time, an interrupt request is sent to the CPU or DTC. The maximum number of transfers, when H'0000 is set in ETCR, is 65,536. Page 176 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 7 DMA Controller (DMAC) Transfer requests (activation sources) consist of A/D conversion end interrupt, SCI transmission complete and reception complete interrupts, and TPU channel 0 to 2 compare match/input capture A interrupts. External requests can be set for channel B only. When the DMAC is used in single address mode, only channel B can be set. Figure 7.6 shows an example of the setting procedure for idle mode. [1] Set ech bit in DMABCRH. Idle mode setting · Clear the FAE bit to 0 to select short address mode. · Specify enabling or disabling of internal interrupt Set DMABCRH [1] clearing with the DTA bit. [2] Set the transfer source address and transfer destinatiln address in MAR and IOAR. Set transfer source and transfer destination addresses [3] Set the number of transfers in ETCR. [2] [4] Set each bit in DMACR. · Set the transfer data size with the DTSZ bit. · Specify whether MAR is to be incremented or decremented with the DTID bit. Set number of transfers [3] · Set the RPE bit to 1. · Specify the transfer direction with the DTDIR bit. · Select the activation source with bits DTF3 to DTF0. Set DMACR [4] [5] Read the DTE bit in DMABCRL as 0. [6] Set each bit in DMABCRL. · Set the DTIE bit to 1. · Set the DTE bit to 1 to enable transfer. Read DMABCRL [5] Set DMABCRL [6] Idle mode Figure 7.6 Example of Idle Mode Setting Procedure REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 177 of 846 H8S/2215 Group Section 7 DMA Controller (DMAC) 7.4.4 Repeat Mode Repeat mode can be specified by setting the RPE bit in DMACR to 1, and clearing the DTIE bit to 0. In repeat mode, MAR is updated after each byte or word transfer in response to a single transfer request, and this is executed the number of times specified in ETCR. On completion of the specified number of transfers, MAR and ETCRL are automatically restored to their original settings and operation continues. One address is specified by MAR, and the other by IOAR. The transfer direction can be specified by the DTDIR bit in DMACR. Table 7.5 summarizes register functions in repeat mode. Table 7.5 Register Functions in Repeat Mode Function Register 23 DTDIR = 0 DTDIR = 1 Initial Setting Operation 0 Source address register Destination address register Start address of transfer destination or transfer source Incremented/decrem ented every transfer. Initial setting is restored when value reaches H'0000 0 Destination address register Source address register Start address of transfer source or transfer destination Fixed MAR 23 15 H'FF IOAR 7 0 Holds number of transfers Number of transfers Fixed Transfer counter Number of transfers Decremented every transfer. Loaded with ETCRH value when count reaches H'00 ETCRH 7 0 ETCRL MAR specifies the start address of the transfer source or transfer destination as 24 bits. MAR is incremented or decremented by 1 or 2 each time a byte or word is transferred. IOAR specifies the lower 16 bits of the other address. The 8 bits above IOAR have a value of H'FF. The number of transfers is specified as 8 bits by ETCRH and ETCRL. The maximum number of transfers, when H'00 is set in both ETCRH and ETCRL, is 256. Page 178 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 7 DMA Controller (DMAC) In repeat mode, ETCRL functions as the transfer counter, and ETCRH is used to hold the number of transfers. ETCRL is decremented by 1 each time a transfer is executed, and when its value reaches H'00, it is loaded with the value in ETCRH. At the same time, the value set in MAR is restored in accordance with the values of the DTSZ and DTID bits in DMACR. The MAR restoration operation is as shown below. MAR = MAR – (–1) DTID ·2 DTSZ · ETCRH The same value should be set in ETCRH and ETCRL. In repeat mode, operation continues until the DTE bit is cleared. To end the transfer operation, therefore, you should clear the DTE bit to 0. A transfer end interrupt request is not sent to the CPU or DTC. By setting the DTE bit to 1 again after it has been cleared, the operation can be restarted from the transfer after that terminated when the DTE bit was cleared. Figure 7.7 illustrates operation in repeat mode. Address T Transfer IOAR 1 byte or word transfer performed in rewponse to 1 transfer request Address B Note: Address T = L Address B = L + (–1)DTID · (2DTSZ · (N–1)) Where: L = Value set in MAR N = Value set in ETCR Figure 7.7 Operation in Repeat Mode REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 179 of 846 H8S/2215 Group Section 7 DMA Controller (DMAC) Transfer requests (activation sources) consist of A/D conversion end interrupt, SCI transmission complete and reception complete interrupts, and TPU channel 0 to 2 compare match/input capture A interrupts. External requests can be set for channel B only. Figure 7.8 shows an example of the setting procedure for repeat mode. [1] Set each bit in DMABCRH. Repeat mode setting · Clear the FAE bit to 0 to select short address mode. · Specify enabling or disabling of internal interrupt Read DMABCRH [1] clearing with the DTA bit. [2] Set the transfer source address and transfer destination address in MAR and IOAR. [3] Set the number of transfers in ETCR. Set transfer source and transfer destination addresses [2] [4] Set each bit in DMACR. · Set the transfer data size with the DTSZ bit. · Specify whether MAR is to be incremented or decremented with the DTID bit. Set number of transfers [3] · Set the RPE bit to 1. · Specify the transfer direction with the DTDIR bit. · Select the activation source with bits DTF3 to DTF0. Set DMACR [4] [5] Read the DTE bit in DMABCRL as 0. [6] Set each bit in DMABCRL. · Clear the DTIE bit to 1. · Set the DTE bit to 1 to enable transfer. Read DMABCRL [5] Set DMABCRL [6] Repeat mode Figure 7.8 Example of Repeat Mode Setting Procedure Page 180 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 7.4.5 Section 7 DMA Controller (DMAC) Normal Mode In normal mode, transfer is performed with channels A and B used in combination. Normal mode can be specified by setting the FAE bit in DMABCR to 1 and clearing the BLKE bit in DMACRA to 0. In normal mode, MAR is updated after each byte or word transfer in response to a single transfer request, and this is executed the number of times specified in ETCRA. The transfer source is specified by MARA, and the transfer destination by MARB. Table 7.6 summarizes register functions in normal mode. Table 7.6 Register Functions in Normal Mode Register 23 Function Initial Setting Operation 0 Source address register Start address of transfer source Incremented/decremented every transfer, or fixed 0 Destination address Start address of register transfer destination MARA 23 MARB 15 0 ETCRA Transfer counter Incremented/decremented every transfer, or fixed Number of transfers Decremented every transfer; transfer ends when count reaches H'0000 MARA and MARB specify the start addresses of the transfer source and transfer destination, respectively, as 24 bits. MAR can be incremented or decremented by 1 or 2 each time a byte or word is transferred, or can be fixed. Incrementing, decrementing, or holding a fixed value can be set separately for MARA and MARB. The number of transfers is specified by ETCRA as 16 bits. ETCRA is decremented each time a transfer is performed, and when its value reaches H'0000 the DTE bit is cleared and transfer ends. If the DTIE bit is set to 1 at this time, an interrupt request is sent to the CPU or DTC. The maximum number of transfers, when H'0000 is set in ETCRA, is 65,536. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 181 of 846 H8S/2215 Group Section 7 DMA Controller (DMAC) Figure 7.9 illustrates operation in normal mode. Address TA Transfer Address TB Address BB Address BA Note: Address TA = LA Address TB = LB Address BA = LA + SAIDE · (–1)SAID · (2DTSZ · (N–1)) Address BB = LB + DAIDE · (–1)DAID · (2DTSZ · (N–1)) LA = Value set in MARA LB = Value set in MARB N = Value set in ETCRA Figure 7.9 Operation in Normal Mode Transfer requests (activation sources) are external requests and auto-requests. With auto-request, the DMAC is only activated by register setting, and the specified number of transfers are performed automatically. With auto-request, cycle steal mode or burst mode can be selected. In cycle steal mode, the bus is released to another bus master each time a transfer is performed. In burst mode, the bus is held continuously until transfer ends. For setting details, see section 7.3.4, DMA Controller Register (DMACR). Page 182 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 7 DMA Controller (DMAC) Figure 7.10 shows an example of the setting procedure for normal mode. [1] Set each bit in DMABCRH. Normal mode setting · Set the FAE bit to 1 to select full address mode. · Specify enabling or disabling of internal interrupt clearing with the DTA bit. Set DMABCRH [1] [2] Set the transfer source address in MARA, and the transfer destination address in MARB. [3] Set the number of transfers in ETCRA. [4] Set each bit in DMACRA and DMACRB. Set transfer source and transfer destination addresses [2] · Set the transfer data size with the DTSZ bit. · Specify whether MARA is to be incremented, decremented, or fixed, with the SAID and SAIDE bits. Set number of transfers [3] · Clear the BLKE bit to 0 to select normal mode. · Specify whether MARB is to be incremented, decremented, or fixed, with the DAID and DAIDE bits. Set DMACR [4] · Select the activation source with bits DTF3 to DTF0. [5] Read the DTE = 0 and DTME = 0 in DMABCRL. [6] Set each bit in DMABCRL. Read DMABCRL [5] · Specify enabling or desabling of transfer end interrupts with the DTIE bit. · Set both the DTME bit and the DTE bit to 1 to enable transfer. Set DMABCRL [6] Normal mode Figure 7.10 Example of Normal Mode Setting Procedure REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 183 of 846 H8S/2215 Group Section 7 DMA Controller (DMAC) 7.4.6 Block Transfer Mode In block transfer mode, transfer is performed with channels A and B used in combination. Block transfer mode can be specified by setting the FAE bit in DMABCR and the BLKE bit in DMACRA to 1. In block transfer mode, a transfer of the specified block size is carried out in response to a single transfer request, and this is executed the specified number of times. The transfer source is specified by MARA, and the transfer destination by MARB. Either the transfer source or the transfer destination can be selected as a block area (an area composed of a number of bytes or words). Table 7.7 summarizes register functions in block transfer mode. Table 7.7 Register Functions in Block Transfer Mode Register 23 Function Initial Setting Operation 0 Source address register Start address of transfer source Incremented/decremented every transfer, or fixed 0 Description address Start address of register transfer destination Incremented/decremented every transfer, or fixed Holds block size Block size Fixed Block size counter Block size decremented every transfer; ETCRH value copied when count reaches H'00 Block transfer counter Number of block transfers Decremented every block transfer; transfer ends when count reaches H'0000 MARA 23 MARB 7 0 ETCRAH 7 0 ETCRAL 15 0 ETCRA MARA and MARB specify the start addresses of the transfer source and transfer destination, respectively, as 24 bits. MAR can be incremented or decremented by 1 or 2 each time a byte or word is transferred, or can be fixed. Incrementing, decrementing, or holding a fixed value can be set separately for MARA and MARB. Whether a block is to be designated for MARA or for MARB is specified by the BLKDIR bit in DMACRA. To specify the number of transfers, if M is the size of one block (where M = 1 to 256) and N transfers are to be performed (where N = 1 to 65,536), M is set in both ETCRAH and ETCRAL, and N in ETCRB. Page 184 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 7 DMA Controller (DMAC) Figure 7.11 illustrates operation in block transfer mode when MARB is designated as a block area. Address TB Address TA 1st block 2nd block Transfer Consecutive transfer of M bytes or words is performed in rewponse to one request Block area Address BB Nth block Address BA Note: Address TA = LA Address TB = LB Address BA = LA + SAIDE · (–1)SAID · (2DTSZ · (M · N–1)) Address BB = LB + DAIDE · (–1)DAID · (2DTSZ · (N–1)) LA = Value set in MARA LB = Value set in MARB N = Value set in ETCRA M = Value set in ETCRAH and ETCRAL Figure 7.11 Operation in Block Transfer Mode (BLKDIR = 0) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 185 of 846 H8S/2215 Group Section 7 DMA Controller (DMAC) Figure 7.12 illustrates operation in block transfer mode when MARA is designated as a block area. Address TA Address TB Block area Address BA Transfer 1st block Consecutive transfer of M bytes or words is performed in rewponse to one request 2nd block Nth block Address BB Note: Address TA = LA Address TB = LB Address BA = LA + SAIDE · (–1)SAID · (2DTSZ · (N–1)) Address BB = LB + DAIDE · (–1)DAID · (2DTSZ · (M · N–1)) LA = Value set in MARA LB = Value set in MARB N = Value set in ETCRB M = Value set in ETCRAH and ETCRAL Figure 7.12 Operation in Block Transfer Mode (BLKDIR = 1) ETCRAL is decremented by 1 each time a byte or word transfer is performed. In response to a single transfer request, burst transfer is performed until the value in ETCRAL reaches H'00. ETCRAL is then loaded with the value in ETCRAH. At this time, the value in the MAR register for which a block designation has been given by the BLKDIR bit in DMACRA is restored in accordance with the DTSZ, SAID/DAID, and SAIDE/DAIDE bits in DMACR. Page 186 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 7 DMA Controller (DMAC) ETCRB is decremented by 1 every block transfer, and when the count reaches H'0000 the DTE bit is cleared and transfer ends. If the DTIE bit is set to 1 at this point, an interrupt request is sent to the CPU or DTC. Figure 7.13 shows the operation flow in block transfer mode. Start (DTE = DTME = 1) Transfer request? No Yes Acquire bus Read address specified by MARA MARA = MARA + SAIDE · (–1)SAID · 2DTSZ Write to address specified by MARB MARB = MARB + DAIDE · (–1)DAID · 2DTSZ ETCRAL = ETCRAL–1 ETCRAL = H'00 No Yes Release bus ETCRAL = ETCRAH BLKDIR = 0 No Yes MARB = MARB – DAIDE · (–1)DAID · 2DTSZ · ETCRAH MARA = MARA – SAIDE · (–1)SAID · 2DTSZ · ETCRAH ETCRB = ETCRB – 1 No ETCRB = H'0000 Yes Clear DTE bit to 0 to end transfer Figure 7.13 Operation Flow in Block Transfer Mode REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 187 of 846 H8S/2215 Group Section 7 DMA Controller (DMAC) Transfer requests (activation sources) consist of A/D conversion end interrupt, SCI transmission complete and reception complete interrupts, and TPU channel 0 to 2 compare match/input capture A interrupts. For details, see section 7.3.4, DMA Control Register (DMACR). Figure 7.14 shows an example of the setting procedure for block transfer mode. [1] Set each bit in DMABCRH. Block transfer mode setting · Set the FAE bit to 1 to select full address mode. · Specify enabling or disabling of internal Set DMABCRH [1] interrupt clearing with the DTA bit. [2] Set the transfer source address in MARA, and the transfer destination address in MARB. [3] Set the transfer source address in ETCRAH and Set transfer source and transfer destination addresses [2] ETCRAL. Set the number of transfers in ETCRB. [4] Set each bit in DMACRA and DMACRB. · Set the transfer data size with the DTSZ bit. · Specify whether MARA is to be incremented, Set number of transfers [3] decremented, or fixed, with the SAID and SAIDE bits. · Set the BLKE bit to 1 to select block transfer mode. Set DMACR [4] · Specify whether the transfer source or the transfer destination is a block area with the BLKDIR bit. · Select MARB increment/decrement/fixed with Read DMABCRL [5] DAID and DAIDE bits. · Select the activation source with bits DTF3 to DTF0. [5] Read the DTE = 0 and DTME = 0 in DMABCRL. Set DMABCRL [6] [6] Set each bit in DMABCRL. · Specify enabling or desabling of transfer end interrupts to the CPU with the DTIE bit. · Set both the DTME bit and the DTE bit to 1 to Block transfer mode enable transfer. Figure 7.14 Example of Block Transfer Mode Setting Procedure Page 188 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 7.4.7 Section 7 DMA Controller (DMAC) DMAC Activation Sources DMAC activation sources consist of internal interrupts, external requests, and auto-requests. The activation sources that can be specified depend on the transfer mode, as shown in table 7.8. Table 7.8 DMAC Activation Sources Full Address Mode Short Address Mode Normal Mode Activation Source Internal interrupt ADI × TXI0 × RXI0 × TXI1 × RXI1 × TGI0A × TGI1A × × TGI2A USB request Low level input of the DERQ signal Auto-request Block Transfer Mode × × × × Legend: : Can be specified ×: Cannot be specified Activation by Internal Interrupt: An interrupt request selected as a DMAC activation source can be sent simultaneously to the CPU and DTC. For details, see section 5, Interrupt Controller. With activation by an internal interrupt, the DMAC accepts the request independently of the interrupt controller. Consequently, interrupt controller priority settings are not accepted. If the DMAC is activated by a CPU interrupt source or an interrupt source that is not used as a DTC activation source (DTA = 1), the interrupt source flag is cleared automatically by the DMA transfer. With ADI, TXI, and RXI interrupts, however, the interrupt source flag is not cleared unless the prescribed register is accessed in a DMA transfer. If the same interrupt is used as an activation source for more than one channel, the interrupt request flag is cleared when the highestpriority channel is activated first. Transfer requests for other channels are held pending in the DMAC, and activation is carried out in order of priority. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 189 of 846 Section 7 DMA Controller (DMAC) H8S/2215 Group When DTE = 0, such as after completion of a transfer, a request from the selected activation source is not sent to the DMAC, regardless of the DTA bit. In this case, the relevant interrupt request is sent to the CPU or DTC. In case of overlap with a CPU interrupt source or DTC activation source (DTA = 0), the interrupt request flag is not cleared by the DMAC. Activation by USB Request: A USB request (DREQ signal) may be specified as the activation source. Level sensing is used for USB requests. In the normal mode of the full address mode, USB requests operate as follows. Transfer request standby status continues while the DREQ signal is held high. If the DREQ signal is held low, the bus is released each time a single byte of data is transferred, causing continuous transfers to be split up into chunks. If the DREQ signal goes high while a transfer is in progress, the transfer is suspended and the status changes to transfer request standby. Activation by Auto-Request: Auto-request activation is performed by register setting only, and transfer continues to the end. With auto-request activation, cycle steal mode or burst mode can be selected. In cycle steal mode, the DMAC releases the bus to another bus master each time a byte or word is transferred. DMA and CPU cycles usually alternate. In burst mode, the DMAC keeps possession of the bus until the end of the transfer, and transfer is performed continuously. Page 190 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 7.4.8 Section 7 DMA Controller (DMAC) Basic DMAC Bus Cycles An example of the basic DMAC bus cycle timing is shown in figure 7.15. In this example, wordsize transfer is performed from 16-bit, 2-state access space to 8-bit, 3-state access space. When the bus is transferred from the CPU to the DMAC, a source address read and destination address write are performed. The bus is not released in response to another bus request, etc., between these read and write operations. As with CPU cycles, DMA cycles conform to the bus controller settings. CPU cycle DMAC cycle (1-word transfer) T1 T2 T1 T2 T3 T1 T2 CPU cycle T3 φ Source address Destination address Address bus RD HWR LWR Figure 7.15 Example of DMA Transfer Bus Timing The address is not output to the external address bus in an access to on-chip memory or an internal I/O register. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 191 of 846 H8S/2215 Group Section 7 DMA Controller (DMAC) 7.4.9 DMAC Bus Cycles (Dual Address Mode) Short Address Mode: Figure 7.16 shows a transfer example in which TEND* output is enabled and byte-size short address mode transfer (sequential/idle/repeat mode) is performed from external 8-bit, 2-state access space to internal I/O space. DMA read DMA write DMA read DMA write DMA DMA read DMA write dead φ Address bus RD HWR LWR TEND* Bus release Bus release Bus release Last transfer cycle Bus release Note: * TEND output cannot be used with this LSI. Figure 7.16 Example of Short Address Mode Transfer A one-byte or one-word transfer is performed for one transfer request, and after the transfer the bus is released. While the bus is released one or more bus cycles are inserted by the CPU or DTC. In the transfer end cycle (the cycle in which the transfer counter reaches 0), a one-state DMA dead cycle is inserted after the DMA write cycle. In repeat mode, when TEND* output is enabled, TEND* output goes low in the transfer cycle in which the transfer counter reaches 0. Note: * TEND output cannot be used with this LSI. Page 192 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 7 DMA Controller (DMAC) Full Address Mode (Cycle Steal Mode): Figure 7.17 shows a transfer example in which TEND*output is enabled and word-size full address mode transfer (cycle steal mode) is performed from external 16-bit, 2-state access space to external 16-bit, 2-state access space. DMA read DMA write DMA read DMA write DMA DMA read DMA write dead φ Address bus RD HWR LWR TEND* Bus release Bus release Bus release Last transfer cycle Bus release Note: * TEND output cannot be used with this LSI. Figure 7.17 Example of Full Address Mode (Cycle Steal) Transfer A one-byte or one-word transfer is performed, and after the transfer the bus is released. While the bus is released one bus cycle is inserted by the CPU or DTC. In the transfer end cycle (the cycle in which the transfer counter reaches 0), a one-state DMA dead cycle is inserted after the DMA write cycle. Note: * TEND output cannot be used with this LSI. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 193 of 846 H8S/2215 Group Section 7 DMA Controller (DMAC) Full Address Mode (Burst Mode): Figure 7.18 shows a transfer example in which TEND* output is enabled and word-size full address mode transfer (burst mode) is performed from external 16- bit, 2-state access space to external 16-bit, 2-state access space. DMA DMA read DMA write DMA read DMA write DMA read DMA write dead φ Address bus RD HWR LWR TEND* Last transfer cycle Bus release Bus release Burst transfer Note: * TEND output cannot be used with this LSI. Figure 7.18 Example of Full Address Mode (Burst Mode) Transfer In burst mode, one-byte or one-word transfers are executed consecutively until transfer ends. In the transfer end cycle (the cycle in which the transfer counter reaches 0), a one-state DMA dead cycle is inserted after the DMA write cycle. If a request from another higher-priority channel is generated after burst transfer starts, that channel has to wait until the burst transfer ends. If an NMI is generated while a channel designated for burst transfer is in the transfer enabled state, the DTME bit is cleared and the channel is placed in the transfer disabled state. If burst transfer has already been activated inside the DMAC, the bus is released on completion of a one-byte or one-word transfer within the burst transfer, and burst transfer is suspended. If the last transfer cycle of the burst transfer has already been activated inside the DMAC, execution continues to the end of the transfer even if the DTME bit is cleared. Note: * TEND output cannot be used with this LSI. Page 194 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 7 DMA Controller (DMAC) Full Address Mode (Block Transfer Mode): Figure 7.19 shows a transfer example in which TEND* output is enabled and word-size full address mode transfer (block transfer mode) is performed from internal 16-bit, 1-state access space to external 16-bit, 2-state access space. DMA read DMA write DMA read DMA write DMA dead DMA read DMA write DMA read DMA write DMA dead φ Address bus RD HWR LWR TEND* Bus release Block transfer Bus release Last block transfer Bus release Note: * TEND output cannot be used with this LSI. Figure 7.19 Example of Full Address Mode (Block Transfer Mode) Transfer A one-block transfer is performed for one transfer request, and after the transfer the bus is released. While the bus is released, one or more bus cycles are inserted by the CPU or DTC. In the transfer end cycle of each block (the cycle in which the transfer counter reaches 0), a onestate DMA dead cycle is inserted after the DMA write cycle. One block is transmitted without interruption. NMI generation does not affect block transfer operation. Note: * TEND output cannot be used with this LSI. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 195 of 846 H8S/2215 Group Section 7 DMA Controller (DMAC) DREQ Signal Level Activation Timing (Normal Mode): Set the DTA bit for the channel for which the DREQ signal is selected to 1. Figure 7.20 shows an example of DREQ level activated normal mode transfer. Bus release DMA read DMA write Bus release Transfer source Transfer destination DMA read DMA write Transfer source Transfer destination Bus release φ DREQ Address bus DMA control Channel Idle Read Write Request Request clear period Minimum of 2 cycles [1] [2] Idle [3] Read Request Write Idle Request clear period Minimum of 2 cycles [4] [5] Acceptance resumes [6] [7] Acceptance resumes Acceptance after transfer enabling; the DREQ signal low level is sampled on the rising edge of f, and the request is held. [2] [5] The request is cleared at the next bus break, and activation is started in the DMAC. [3] [6] Start of DMA cycle. [4] [7] Acceptance is resumed after the write cycle is completed. (As in [1], the DREQ signal low level is sampled on the rising edge of f, and the request is held.) [1] Figure 7.20 Example of DREQ Level Activated Normal Mode Transfer DREQ signal sampling is performed every cycle, with the rising edge of the next φ cycle after the end of the DMABCR write cycle for setting the transfer enabled state as the starting point. When the DREQ signal low level is sampled while acceptance by means of the DREQ signal is possible, the request is held in the DMAC. Then, when activation is initiated in the DMAC, the request is cleared. Acceptance resumes after the end of the write cycle, DREQ pin low level sampling is performed again, and this operation is repeated until the transfer ends. Note: The DREQ signal of this chip is an internal signal of chip, so it is not output from the pin. Page 196 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 7.4.10 Section 7 DMA Controller (DMAC) DMAC Multi-Channel Operation The DMAC channel priority order is: channel 0 > channel 1, and channel A > channel B. Table 7.9 summarizes the priority order for DMAC channels. Table 7.9 DMAC Channel Priority Order Short Address Mode Full Address Mode Priority Channel 0A Channel 0 High Channel 0B Channel 1A Channel 1 Channel 1B Low If transfer requests are issued simultaneously for more than one channel, or if a transfer request for another channel is issued during a transfer, when the bus is released the DMAC selects the highest-priority channel from among those issuing a request according to the priority order shown in table 7.14. During burst transfer, or when one block is being transferred in block transfer, the channel will not be changed until the end of the transfer. Figure 7.21 shows a transfer example in which transfer requests are issued simultaneously for channels 0A, 0B, and 1. DMA read DMA write DMA read DMA write DMA read DMA DMA write read φ Address bus RD HWR LWR DMA control Idle Read Channel 0A Idle Write Read Write Idle Read Write Read Request clear Channel 0B Request hold Selection Channel 1 Request hold Nonselection Bus release Channel 0A transfer Request clear Request hold Bus release Selection Channel 0B transfer Request clear Bus release Channel 1 transfer Figure 7.21 Example of Multi-Channel Transfer REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 197 of 846 H8S/2215 Group Section 7 DMA Controller (DMAC) 7.4.11 Relation between the DMAC, External Bus Requests, and the DTC There can be no break between a DMA cycle read and a DMA cycle write. This means that a refresh cycle, external bus release cycle, or DTC cycle is not generated between the external read and external write in a DMA cycle. In the case of successive read and write cycles, such as in burst transfer or block transfer, a refresh or external bus released state may be inserted after a write cycle. Since the DTC has a lower priority than the DMAC, the DTC does not operate until the DMAC releases the bus. When DMA cycle reads or writes are accesses to on-chip memory or internal I/O registers, these DMA cycles can be executed at the same time as refresh cycles or external bus release. However, simultaneous operation may not be possible when a write buffer is used. 7.4.12 NMI Interrupts and DMAC When an NMI interrupt is requested, burst mode transfer in full address mode is interrupted. An NMI interrupt does not affect the operation of the DMAC in other modes. In full address mode, transfer is enabled for a channel when both the DTE bit and the DTME bit are set to 1. With burst mode setting, the DTME bit is cleared when an NMI interrupt is requested. If the DTME bit is cleared during burst mode transfer, the DMAC discontinues transfer on completion of the 1-byte or 1-word transfer in progress, then releases the bus, which passes to the CPU. The channel on which transfer was interrupted can be restarted by setting the DTME bit to 1 again. Figure 7.22 shows the procedure for continuing transfer when it has been interrupted by an NMI interrupt on a channel designated for burst mode transfer. Page 198 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 7 DMA Controller (DMAC) Resumption of transfer on interrupted channel DTE = 1 DTME = 0 [1] Check that DTE = 1 and DTME = 0 in DMABCRL. [2] Write 1 to the DTME bit. [1] No Yes Set DTME bit to 1 [2] Transfer ends Transfer continues Figure 7.22 Example of Procedure for Continuing Transfer on Channel Interrupted by NMI Interrupt 7.4.13 Forced Termination of DMAC Operation If the DTE bit for the channel currently operating is cleared to 0, the DMAC stops on completion of the 1-byte or 1-word transfer in progress. DMAC operation resumes when the DTE bit is set to 1 again. In full address mode, the same applies to the DTME bit. Figure 7.23 shows the procedure for forcibly terminating DMAC operation by software. [1] Forced termination of DMAC Clear DTE bit to 0 Clear the DTE bit in DMABCRL to 0. If you want to prevent interrupt generation after forced termination of DMAC operation, clear the DTIE bit to 0 at the same time. [1] Forced termination Figure 7.23 Example of Procedure for Forcibly Terminating DMAC Operation REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 199 of 846 H8S/2215 Group Section 7 DMA Controller (DMAC) 7.4.14 Clearing Full Address Mode Figure 7.24 shows the procedure for releasing and initializing a channel designated for full address mode. After full address mode has been cleared, the channel can be set to another transfer mode using the appropriate setting procedure. Clearing full address mode Stop the channel [1] [1] Clear both the DTE bit and the DTME bit in DMABCRL to 0; or wait until the transfer ends and the DTE bit is cleared to 0, then clear the DTME bit to 0. Also clear the corresponding DTIE bit to 0 at the same time. [2] Clear all bits in DMACRA and DMACRB to 0. [3] Clear the FAE bit in DMABCRH to 0. Initialize DMACR [2] Clear FAE bit to 0 [3] Initialization; operation halted Figure 7.24 Example of Procedure for Clearing Full Address Mode Page 200 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 7.5 Section 7 DMA Controller (DMAC) Interrupts The sources of interrupts generated by the DMAC are transfer end and transfer break. Table 7.10 shows the interrupt sources and their priority order. Table 7.10 Interrupt Source Priority Order Interrupt Name Interrupt Source Interrupt Priority Order Short Address Mode Full Address Mode DEND0A Interrupt due to end of transfer on channel 0A Interrupt due to end of transfer on channel 0 DEND0B Interrupt due to end of transfer on channel 0B Interrupt due to break in transfer on channel 0 DEND1A Interrupt due to end of transfer on channel 1A Interrupt due to end of transfer on channel 1 DEND1B Interrupt due to end of transfer on channel 1B Interrupt due to break in transfer on channel 1 Low High Enabling or disabling of each interrupt source is set by means of the DTIE bit for the corresponding channel in DMABCR, and interrupts from each source are sent to the interrupt controller independently. The relative priority of transfer end interrupts on each channel is decided by the interrupt controller, as shown in table 7.10. Figure 7.25 shows a block diagram of a transfer end/transfer break interrupt. An interrupt is always generated when the DTIE bit is set to 1 while DTE bit is cleared to 0. DTE/ DTME Transfer end/transfer break interrupt DTIE Figure 7.25 Block Diagram of Transfer End/Transfer Break Interrupt In full address mode, a transfer break interrupt is generated when the DTME bit is cleared to 0 while DTIEB bit is set to 1. In both short address mode and full address mode, DMABCR should be set so as to prevent the occurrence of a combination that constitutes a condition for interrupt generation during setting. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 201 of 846 H8S/2215 Group Section 7 DMA Controller (DMAC) 7.6 Usage Notes 7.6.1 DMAC Register Access during Operation Except for forced termination, the operating (including transfer waiting state) channel setting should not be changed. The operating channel setting should only be changed when transfer is disabled. Also, the DMAC register should not be written to in a DMA transfer. DMAC register reads during operation (including the transfer waiting state) are described below. 1. DMAC control starts one cycle before the bus cycle, with output of the internal address. Consequently, MAR is updated in the bus cycle before DMAC transfer. Figure 7.26 shows an example of the update timing for DMAC registers in dual address transfer mode. DMA last transfer cycle DMA transfer cycle DMA read DMA read DMA write DMA write DMA dead φ DMA Internal address DMA control Idle DMA register operation [1] Transfer source Transfer destination Read Write [2] Transfer destination Transfer source Read Idle [1] Write [2'] Idle Dead [3] [1] Transfer source address register MAR operation (incremented/decremented/fixed) Transfer counter ETCR operation (decremented) Block size counter ETCR operation (decremented in block transfer mode) [2] Transfer destination address register MAR operation (incremented/decremented/fixed) [2'] Transfer destination address register MAR operation (incremented/decremented/fixed) Block transfer counter ETCR operation (decremented, in last transfer cycle of a block in block transfer mode) [3] Transfer address register MAR restore operation (in block or repeat transfer mode) Transfer counter ETCR restore (in repeat transfer mode) Block size counter ETCR restore (in block transfer mode) Note: The MAR operation is post-incrementing/decrementing of the DMA internal address value. Figure 7.26 DMAC Register Update Timing Page 202 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 7 DMA Controller (DMAC) 2. If a DMAC transfer cycle occurs immediately after a DMAC register read cycle, the DMAC register is read as shown in figure 7.27. DMA transfer cycle CPU longword read MAR upper word read MAR lower word read DMA read DMA write φ DMA internal address DMA control DMA register operation Note: Idle [1] Transfer source Transfer destination Read Write Idle [2] The lower word of MAR is the updated value after the operation in [1]. Figure 7.27 Contention between DMAC Register Update and CPU Read 7.6.2 Module Stop When the MSTPA7 bit in MSTPCR is set to 1, the DMAC clock stops, and the module stop state is entered. However, 1 cannot be written to the MSTPA7 bit if any of the DMAC channels is enabled. This setting should therefore be made when DMAC operation is stopped. When the DMAC clock stops, DMAC register accesses can no longer be made. Since the following DMAC register settings are valid even in the module stop state, they should be invalidated, if necessary, before a module stop. • Transfer end/suspend interrupt (DTE = 0 and DTIE = 1) 7.6.3 Medium-Speed Mode When the DTA bit is 0, internal interrupt signals specified as DMAC transfer sources are edgedetected. In medium-speed mode, the DMAC operates on a medium-speed clock, while on-chip peripheral modules operate on a high-speed clock. Consequently, if the period in which the relevant interrupt source is cleared by the CPU, DTC, or another DMAC channel, and the next interrupt is generated, is less than one state with respect to the DMAC clock (bus master clock), edge detection may not be possible and the interrupt may be ignored. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 203 of 846 Section 7 DMA Controller (DMAC) 7.6.4 H8S/2215 Group Activation Source Acceptance At the start of activation source acceptance, a low level is detected in both DREQ signal falling edge sensing and low level sensing. Similarly, in the case of an internal interrupt, the interrupt request is detected. Therefore, a request is accepted from an internal interrupt or DREQ pin low level that occurs before execution of the DMABCRL write to enable transfer. When the DMAC is activated, take any necessary steps to prevent an internal interrupt or DREQ signal low level remaining from the end of the previous transfer, etc. 7.6.5 Internal Interrupt after End of Transfer When the DTE bit is cleared to 0 by the end of transfer or an abort, the selected internal interrupt request will be sent to the CPU or DTC even if DTA is set to 1. Also, if internal DMAC activation has already been initiated when operation is aborted, the transfer is executed but flag clearing is not performed for the selected internal interrupt even if DTA is set to 1. An internal interrupt request following the end of transfer or an abort should be handled by the CPU as necessary. 7.6.6 Channel Re-Setting To reactivate a number of channels when multiple channels are enabled, use exclusive handling of transfer end interrupts, and perform DMABCR control bit operations exclusively. Note, in particular, that in cases where multiple interrupts are generated between reading and writing of DMABCR, and a DMABCR operation is performed during new interrupt handling, the DMABCR write data in the original interrupt handling routine will be incorrect, and the write may invalidate the results of the operations by the multiple interrupts. Ensure that overlapping DMABCR operations are not performed by multiple interrupts, and that there is no separation between read and write operations by the use of a bit-manipulation instruction. Also, when the DTE and DTME bits are cleared by the DMAC or are written with 0, they must first be read while cleared to 0 before the CPU can write a 1 to them. Page 204 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 8 Data Transfer Controller (DTC) Section 8 Data Transfer Controller (DTC) This LSI includes a data transfer controller (DTC). The DTC can be activated by an interrupt or software, to transfer data. 8.1 Features • Transfer possible over any number of channels ⎯ Transfer information is stored in memory ⎯ One activation source can trigger a number of data transfer (chain transfer) • Three transfer modes ⎯ Normal, repeat, and block transfer modes available • One activation source can trigger a number of data transfers (chain transfer) • Direct specification of 16-Mbyte address space possible • Activation by software is possible • Transfer can be set in byte or word units • A CPU interrupt can be requested for the interrupt that activated the DTC • Module stop mode can be set Figure 8.1 shows a block diagram of the DTC. The DTC’s register information is stored in the onchip RAM. When the DTC is used, the RAME bit in SYSCR must be set to 1. A 32-bit bus connects the DTC to the on-chip RAM (1 kbyte), enabling 32-bit/1-state reading and writing of the DTC register information. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 205 of 846 DTCH807A_000120020100 H8S/2215 Group Section 8 Data Transfer Controller (DTC) Internal address bus CPU interrupt request Legend: MRA, MRB: CRA, CRB: SAR: DAR: DTCERA to DTCERF: DTVECR: Register information MRA MRB CRA CRB DAR SAR DTC service request DTVECR Interrupt request DTCERA to DTCERF On-chip RAM DTC Control logic Interrupt controller Internal data bus DTC mode registers A and B DTC transfer count registers A and B DTC source address register DTC destination address register DTC enable registers A to F DTC vector register Figure 8.1 Block Diagram of DTC Page 206 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 8.2 Section 8 Data Transfer Controller (DTC) Register Descriptions DTC has the following registers. • DTC mode register A (MRA) • DTC mode register B (MRB) • DTC source address register (SAR) • DTC destination address register (DAR) • DTC transfer count register A (CRA) • DTC transfer count register B (CRB) These six registers cannot be directly accessed from the CPU. When activated, the DTC reads a set of register information that is stored in an on-chip RAM to the corresponding DTC registers and transfers data. After the data transfer, it writes a set of updated register information back to the RAM. • DTC enable registers (DTCERA to DTCERF) • DTC vector register (DTVECR) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 207 of 846 H8S/2215 Group Section 8 Data Transfer Controller (DTC) 8.2.1 DTC Mode Register A (MRA) MRA selects the DTC operating mode. Bit Bit Name Initial Value R/W Description 7 SM1 Undefined — Source Address Mode 1 and 0 6 SM0 Undefined — These bits specify an SAR operation after a data transfer. 0×: SAR is fixed 10: SAR is incremented after a transfer (by +1 when Sz = 0; by +2 when Sz = 1) 11: SAR is decremented after a transfer (by –1 when Sz = 0; by –2 when Sz = 1) 5 DM1 Undefined — Destination Address Mode 1 and 0 4 DM0 Undefined — These bits specify a DAR operation after a data transfer. 0×: DAR is fixed 10: DAR is incremented after a transfer (by +1 when Sz = 0; by +2 when Sz = 1) 11: DAR is decremented after a transfer (by –1 when Sz = 0; by –2 when Sz = 1) 3 MD1 Undefined — DTC Mode 2 MD0 Undefined — These bits specify the DTC transfer mode. 00: Normal mode 01: Repeat mode 10: Block transfer mode 11: Setting prohibited 1 DTS Undefined — DTC Transfer Mode Select Specifies whether the source side or the destination side is set to be a repeat area or block area, in repeat mode or block transfer mode. 0: Destination side is repeat area or block area 1: Source side is repeat area or block area 0 Sz Undefined — DTC Data Transfer Size Specifies the size of data to be transferred. 0: Byte-size transfer 1: Word-size transfer Legend: ×: Don’t care Page 208 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 8.2.2 Section 8 Data Transfer Controller (DTC) DTC Mode Register B (MRB) MRB selects the DTC operating mode. Bit Bit Name Initial Value R/W Description 7 CHNE — DTC Chain Transfer Enable Undefined This bit specifies a chain transfer. For details, refer to section 8.5.4, Chain Transfer. In data transfer with CHNE set to 1, determination of the end of the specified number of transfers, clearing of the interrupt source flag, and clearing of DTCER, are not performed. 0: DTC data transfer completed (waiting for start) 1: DTC chain transfer (reads new register information and transfers data) 6 DISEL Undefined — DTC Interrupt Select This bit specifies whether CPU interrupt is disabled or enabled after a data transfer. 0: Interrupt request is issued to the CPU when the specified data transfer is completed. 1: DTC issues interrupt request to the CPU in every data transfer (DTC does not clear the interrupt request flag that is a cause of the activation). 5 to 0 8.2.3 — Undefined — Reserved These bits have no effect on DTC operation, and the write value should always be 0. DTC Source Address Register (SAR) SAR is a 24-bit register that designates the source address of data to be transferred by the DTC. For word-size transfer, specify an even source address. 8.2.4 DTC Destination Address Register (DAR) DAR is a 24-bit register that designates the destination address of data to be transferred by the DTC. For word-size transfer, specify an even destination address. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 209 of 846 H8S/2215 Group Section 8 Data Transfer Controller (DTC) 8.2.5 DTC Transfer Count Register A (CRA) CRA is a 16-bit register that designates the number of times data is to be transferred by the DTC. In normal mode, the entire CRA functions as a 16-bit transfer counter (1 to 65,536). It is decremented by 1 every time data is transferred, and transfer ends when the count reaches H'0000. In repeat mode or block transfer mode, the CRA is divided into two parts: the upper 8 bits (CRAH) and the lower 8 bits (CRAL). CRAH holds the number of transfers while CRAL functions as an 8-bit transfer counter (1 to 256). In block transfer mode, CRAH stores the block size while CRAL functions as an 8-bit block size counter (1 to 256). CRAL is decremented by 1 every time data is transferred, and the contents of CRAH are sent when the count reaches H'00. This operation is repeated. 8.2.6 DTC Transfer Count Register B (CRB) CRB is a 16-bit register that designates the number of times data is to be transferred by the DTC in block transfer mode. It functions as a 16-bit transfer counter (1 to 65,536) that is decremented by 1 every time data is transferred, and transfer ends when the count reaches H'0000. 8.2.7 DTC Enable Registers (DTCERA to DTCERF) DTCER which is comprised of seven registers, DTCERA to DTCERF, is a register that specifies DTC activation interrupt sources. The correspondence between interrupt sources and DTCE bits is shown in table 8.2. For DTCE bit setting, use bit manipulation instructions such as BSET and BCLR for reading and writing. If all interrupts are masked, multiple activation sources can be set at one time (only at the initial setting) by writing data after executing a dummy read on the relevant register. Bit Bit Name Initial Value R/W Description 7 6 5 4 3 2 1 0 DTCEn7 DTCEn6 DTCEn5 DTCEn4 DTCEn3 DTCEn2 DTCEn1 DTCEn0 R/W R/W R/W R/W R/W R/W R/W R/W DTC Activation Enable 7 to 0 0: Prohibits DTC startup by an interrupt. 1: Selects a corresponding interrupt source as the DTC startup source. [Clearing conditions] • When the DISEL bit is 1 and the data transfer has ended • When the specified number of transfers have ended 0 0 0 0 0 0 0 0 [Holding condition] • These bits are not cleared when the DISEL bit is 0 and the specified number of transfers have not ended Page 210 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 8.2.8 Section 8 Data Transfer Controller (DTC) DTC Vector Register (DTVECR) DTVECR enables or disables DTC activation by software, and sets a vector number for the software activation interrupt. Bit Bit Name Initial Value R/W 7 SWDTE R/W* DTC Software Activation Enable 0 Description This bit specifies whether DTC software startup is enabled or prohibited. 0: Prohibits DTC software startup. 1: Enables DTC software startup. [Clearing conditions] • • When the DISEL bit is 0 and the specified number of transfers have not ended When 0 s written to the DISEL bit after a softwareactivated data transfer end interrupt (SWDTEND) request has been sent to the CPU [Holding conditions] • • • The DISEL bit is set to 1 and data transfer has finished. The specified number of data transfers have completed. A software-triggered data transfer is in progress. 6 DTVEC6 0 R/W DTC Software Activation Vector 6 to 0 5 DTVEC5 0 R/W 4 DTVEC4 0 R/W These bits specify a vector number for DTC software activation. 3 DTVEC3 0 R/W 2 DTVEC2 0 R/W 1 DTVEC1 0 R/W 0 DTVEC0 0 R/W Note: * Only 1 may be written to the SWDTE bit. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 The vector address is expressed as H'0400 + (vector number × 2). For example, when DTVEC6 to DTVEC0 = H'10, the vector address is H'0420. When the bit SWDTE is 0, these bits can be written. Page 211 of 846 Section 8 Data Transfer Controller (DTC) 8.3 H8S/2215 Group Activation Sources The DTC operates when activated by an interrupt or by a write to DTVECR by software. DTCER is used to select the activation interrupt source. An interrupt request can be directed to the CPU or DTC, as designated by the corresponding DTCER bit. At the end of a data transfer (or the last consecutive transfer in the case of chain transfer), the activation source or corresponding DTCER bit is cleared. Table 8.1 shows an activation source and DTCER clearance. The activation source flag, in the case of RXI0, for example, is the RDRF flag of SCI channel 0. When an interrupt has been designated a DTC activation source, existing CPU mask level and interrupt controller priorities have no effect. If there is more than one activation source at the same time, the DTC operates in accordance with the default priorities. Figure 8.2 shows a block diagram of activation source control. For details see section 5, Interrupt Controller. Table 8.1 Activation Source and DTCER Clearance Activation Source When the DISEL Bit Is 0 and the Specified Number of Transfer Have Not Ended When the DISEL Bit Is 1, or when the Specified Number of Transfers Have Ended Software activation The SWDTE bit is cleared to 0 The SWDTE bit remains set to 1 An interrupt is issued to the CPU Interrupt activation The corresponding DTCER bit remains set to 1 The corresponding DTCER bit is cleared to 0 The activation source flag is cleared The activation source flag remains to 0 set to 1 A request is issued to the CPU for the activation source interrupt Page 212 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 8 Data Transfer Controller (DTC) Source flag cleared Clear controller Clear DTCER On-chip supporting module IRQ interrupt DTVECR Interrupt request Selection circuit Select Clear request DTC CPU Interrupt controller Interrupt mask Figure 8.2 Block Diagram of DTC Activation Source Control 8.4 Location of Register Information and DTC Vector Table Locate the register information in the on-chip RAM (addresses: H'FFEBC0 to H'FFEFBF). Register information should be located at the address that is multiple of four within the range. Locating the register information in address space is shown in figure 8.3. Locate the MRA, SAR, MRB, DAR, CRA, and CRB registers, in that order, from the start address of the register information. In the case of chain transfer, register information should be located in consecutive areas and the register information start address should be located at the corresponding vector address to the interrupt source. The DTC reads the start address of the register information from the vector address set for each activation source, and then reads the register information from that start address. When the DTC is activated by software, the vector address is obtained from: H'0400 + (DTVECR[6:0] × 2). For example, if DTVECR is H'10, the vector address is H'0420. The configuration of the vector address is the same in both normal and advanced modes, a 2-byte unit being used in both cases. These two bytes specify the lower bits of the register information start address. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 213 of 846 H8S/2215 Group Section 8 Data Transfer Controller (DTC) Lower address 0 Register information start address 1 2 MRA SAR MRB DAR Register information CRB CRA Chain transfer 3 MRA SAR MRB DAR Register information for 2nd transfer in chain transfer CRB CRA 4 bytes Figure 8.3 Correspondence between DTC Vector Address and Register Information DTC vector address Register information start address Register information Chain transfer Figure 8.4 Correspondence between DTC Vector Address and Register Information Page 214 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Table 8.2 Section 8 Data Transfer Controller (DTC) Interrupt Sources, DTC Vector Addresses, and Corresponding DTCE Interrupt Source Origin of Interrupt Source Vector Number DTC Vector Address Software Write to DTVECR DTVECR H'0400 + DTVECR[6:0] ×2 External pins IRQ0 16 H'0420 DTCEA7 IRQ1 17 H'0422 DTCEA6 IRQ2 18 H'0424 DTCEA5 IRQ3 19 H'0426 DTCEA4 IRQ4 20 H'0428 DTCEA3 IRQ5 21 H'042A DTCEA2 IRQ7 23 H'042E DTCEA0 A/D ADI 28 H'0438 DTCEB6 TPU channel 0 TGIA0 32 H'0440 DTCEB5 TGIB0 33 H'0442 DTCEB4 TGIC0 34 H'0444 DTCEB3 TGID0 35 H'0446 DTCEB2 TGI1A 40 H'0450 DTCEB1 TGI1B 41 H'0452 DTCEB0 TPU channel 1 TPU channel 2 8-bit timer channel 0 8-bit timer channel 1 DMAC SIC channel 0 SIC channel 1 SIC channel 2 Note: * Priority High TGI2A 44 H'0458 DTCEC7 TGI2B 45 H'045A DTCEC6 CMIA0 64 H'0480 DTCED3 CMIB0 65 H'0482 DTCED2 CMIA1 68 H'0488 DTCED1 CMIB1 69 H'048A DTCED0 DEND0A 72 H'0490 DTCEE7 DEND0B 73 H'0492 DTCEE6 DEND1A 74 H'0494 DTCEE5 DEND1A 75 H'0496 DTCEE4 RXI0 81 H'04A2 DTCEE3 TXI0 82 H'04A4 DTCEE2 RXI1 85 H'04AA DTCEE1 TXI1 86 H'04AC DTCEE0 RXI2 89 H'04B2 DTCEF7 TXI2 90 H'04B4 DTCEF6 Low DTCE bits with no corresponding interrupt are reserved, and the write value should always be 0. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 DTCE* Page 215 of 846 H8S/2215 Group Section 8 Data Transfer Controller (DTC) 8.5 Operation Register information is stored in an on-chip RAM. When activated, the DTC reads register information in an on-chip RAM and transfers data. After the data transfer, it writes updated register information back to the memory. Pre-storage of register information in the memory makes it possible to transfer data over any required number of channels. The transfer mode can be specified as normal, repeat, and block transfer mode. Setting the CHNE bit to 1 makes it possible to perform a number of transfers with a single activation source (chain transfer). The 24-bit SAR designates the DTC transfer source address and the 24-bit DAR designates the transfer destination address. After each transfer, SAR and DAR are independently incremented, decremented, or left fixed depending on its register information. Figure 8.5 shows a flowchart of DTC operation. Start Read DTC vector Next transfer Register information read Data transfer Write register information CHNE = 1 Yes No Transfer counter = 0 or DISEL = 1 No Yes *2 Clear an active flag Clear DTCER End Interrupt exception handling *1 Note: *1 For details on the processing that takes place, refer to the chapter on the peripheral module in question. *2 When IRQx is the DTC activation source and the IRQ sense control registers (ISCRH and ISCRL) are set to level sensing, the activation source flag is not cleared while IRQx is low level and DTC transfers are performed repeatedly. Figure 8.5 Flowchart of DTC Operation Page 216 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 8 Data Transfer Controller (DTC) Table 8.3 summarizes DTC functions. Table 8.3 Overview of DTC Functions Address Register Transfer Mode Activation Source Source Destination Normal mode • • • • 24 bits 24 bits • One byte or one word data is transferred in response to a single transfer request. • The memory address is incremented by 1 or 2. • The number of times of data transfer is designated as 1 to 65,536. Repeat mode • One byte or one word data is transferred in response to a single transfer request. • The memory address is incremented by 1 or 2. • When the specified number of transfers (1 to 256) have ended, the initial state is restored, and transfer is repeated. Block transfer mode • • • • • • • IRQ TGI for TPU CMI for 8-bit timer TXI and RXI for SCI ADI for A/D converter DEND for DMAC Software The data of the specified block is transferred in response to a single transfer request. The block size is designated as 1 to 256 bytes or words. The number of times of data transfer is designated as 1 to 65,536. Either the transfer source or destination is designated as a block area. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 217 of 846 H8S/2215 Group Section 8 Data Transfer Controller (DTC) 8.5.1 Normal Mode In normal mode, one operation transfers one byte or one word of data. From 1 to 65,536 transfers can be specified. Once the specified number of transfers have ended, a CPU interrupt can be requested. Table 8.4 shows the register information in normal mode, and figure 8.6 shows the memory mapping in normal mode. Table 8.4 Register Information in Normal Mode Name Abbreviation Function DTC source address register SAR Designates source address DTC destination address register DAR Designates destination address DTC transfer count register A CRA Designates transfer count DTC transfer count register B CRB Not used SAR DAR Transfer Figure 8.6 Memory Mapping in Normal Mode Page 218 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 8.5.2 Section 8 Data Transfer Controller (DTC) Repeat Mode In repeat mode, one operation transfers one byte or one word of data. From 1 to 256 transfers can be specified. Once the specified number of transfers have ended, the initial state of the transfer counter and the address register specified as the repeat area is restored, and transfer is repeated. In repeat mode the transfer counter value does not reach H'00, and therefore CPU interrupts cannot be requested when DISEL = 0. Table 8.5 shows the register information in repeat mode, and figure 8.7 shows the memory mapping in repeat mode. Table 8.5 Register Information in Repeat Mode Name Abbreviation DTC source address register SAR Designates source address DTC destination address register DAR Designates destination address DTC transfer count register AH CRAH Holds number of transfers DTC transfer count register AL CRAL Designates transfer count DTC transfer count register B CRB Not used SAR or DAR Function Repeat area Transfer DAR or SAR Figure 8.7 Memory Mapping in Repeat Mode REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 219 of 846 H8S/2215 Group Section 8 Data Transfer Controller (DTC) 8.5.3 Block Transfer Mode In block transfer mode, one operation transfers one block of data. Either the transfer source or the transfer destination is designated as a block area. The block size is 1 to 256. When the transfer of one block ends, the initial state of the block size counter and the address register specified as the block area is restored. The other address register is then incremented, decremented, or left fixed. From 1 to 65,536 transfers can be specified. Once the specified number of transfers have ended, a CPU interrupt is requested. Table 8.6 shows the register information in block transfer mode, and figure 8.8 shows the memory mapping in block transfer mode. Table 8.6 Register Information in Block Transfer Mode Name Abbreviation Function DTC source address register SAR Designates source address DTC destination address register DAR Designates destination address DTC transfer count register AH CRAH Holds block size DTC transfer count register AL CRAL Designates block size count DTC transfer count register B CRB Transfer count First block SAR or DAR . . . DAR or SAR Block area Transfer Nth block Figure 8.8 Memory Mapping in Block Transfer Mode Page 220 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 8.5.4 Section 8 Data Transfer Controller (DTC) Chain Transfer Setting the CHNE bit to 1 enables a number of data transfers to be performed consecutively in response to a single transfer request. SAR, DAR, CRA, CRB, MRA, and MRB, which define data transfers, can be set respectively. Figure 8.9 shows the memory map for chain transfer. When activated, the DTC reads the register information start address stored at the vector address, and then reads the first register information at that start address. After the data transfer, the CHNE bit will be tested. When it has been set to 1, DTC reads next register information located in a consecutive area and performs the data transfer. These sequences are repeated until the CHNE bit is cleared to 0. In the case of transfer with CHNE set to 1, an interrupt request to the CPU is not generated at the end of the specified number of transfers or by setting of the DISEL bit to 1, and the interrupt source flag for the activation source is not affected. Source Destination Register information CHNE = 1 DTC vector address Register information start address Register information CHNE = 0 Source Destination Figure 8.9 Chain Transfer Memory Map REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 221 of 846 H8S/2215 Group Section 8 Data Transfer Controller (DTC) 8.5.5 Interrupts An interrupt request is issued to the CPU when the DTC finishes the specified number of data transfers, or a data transfer for which the DISEL bit was set to 1. In the case of interrupt activation, the interrupt set as the activation source is generated. These interrupts to the CPU are subject to CPU mask level and interrupt controller priority level control. In the case of activation by software, a software activated data transfer end interrupt (SWDTEND) is generated. When the DISEL bit is 1 and one data transfer has ended, or the specified number of transfers have ended, after data transfer ends, the SWDTE bit is held at 1 and an SWDTEND interrupt is generated. The interrupt handling routine should clear the SWDTE bit to 0. When the DTC is activated by software, an SWDTEND interrupt is not generated during a data transfer wait or during data transfer even if the SWDTE bit is set to 1. 8.5.6 Operation Timing Figures 8.10 to 8.12 show the DTC operation timing. φ DTC activation request DTC request Vector read Data transfer Address Read Write Transfer information read Transfer information write Figure 8.10 DTC Operation Timing (Example in Normal Mode or Repeat Mode) Page 222 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 8 Data Transfer Controller (DTC) φ DTC activation request DTC request Data transfer Vector read Read Write Read Write Address Transfer information read Transfer information write Figure 8.11 DTC Operation Timing (Example of Block Transfer Mode, with Block Size of 2) φ DTC activation request DTC request Data transfer Data transfer Read Write Read Write Vector read Address Transfer information read Transfer information write Transfer information read Transfer information write Figure 8.12 DTC Operation Timing (Example of Chain Transfer) 8.5.7 Number of DTC Execution States Table 8.7 lists execution status for a single DTC data transfer, and table 8.8 shows the number of states required for each execution status. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 223 of 846 H8S/2215 Group Section 8 Data Transfer Controller (DTC) Table 8.7 DTC Execution Status Vector Read Register information Read/Write Data read Data Write Internal Operations Mode I J K L M Normal 1 6 1 1 3 Repeat 1 6 1 1 3 Block transfer 1 6 N N 3 Legend: N: Block size (initial setting of CRAH and CRAL) Table 8.8 Number of States Required for Each Execution Status On- OnOn-Chip I/O Chip Chip Registers RAM ROM Object to be Accessed External Devices Bus width 32 16 8 16 Access states 1 1 2 2 2 3 2 3 SI — 1 — — 4 6 + 2m 2 3+m Register information read/write SJ 1 — — — — — — — Byte data read SK 1 1 2 2 2 3+m 2 3+m Word data read SK 1 1 4 2 4 6 + 2m 2 3+m Byte data write SL 1 1 2 2 2 3+m 2 3+m Word data write SL 1 1 4 2 4 6 + 2m 2 3+m Internal operation SM Execution status Vector read 8 16 1 Legend: m: Number of wait states in an external device access The number of execution states is calculated from the formula below. Note that Σ means the sum of all transfers activated by one activation event (the number in which the CHNE bit is set to 1, plus 1). Number of execution states = I · S I + Σ (J · S J + K · S K + L · S L ) + M · S M For example, when the DTC vector address table is located in on-chip ROM, normal mode is set, and data is transferred from the on-chip ROM to an internal I/O register, the time required for the DTC operation is 13 states. The time from activation to the end of the data write is 10 states. Page 224 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 8.6 Procedures for Using DTC 8.6.1 Activation by Interrupt Section 8 Data Transfer Controller (DTC) The procedure for using the DTC with interrupt activation is as follows: 1. Set the MRA, MRB, SAR, DAR, CRA, and CRB register information in the on-chip RAM. 2. Set the start address of the register information in the DTC vector address. 3. Set the corresponding bit in DTCER to 1. 4. Set the enable bits for the interrupt sources to be used as the activation sources to 1. The DTC is activated when an interrupt used as an activation source is generated. 5. After the end of one data transfer, or after the specified number of data transfers have ended, the DTCE bit is cleared to 0 and a CPU interrupt is requested. If the DTC is to continue transferring data, set the DTCE bit to 1. 8.6.2 Activation by Software The procedure for using the DTC with software activation is as follows: 1. Set the MRA, MRB, SAR, DAR, CRA, and CRB register information in the on-chip RAM. 2. Set the start address of the register information in the DTC vector address. 3. Check that the SWDTE bit is 0. 4. Write 1 to SWDTE bit and the vector number to DTVECR. 5. Check the vector number written to DTVECR. 6. After the end of one data transfer, if the DISEL bit is 0 and a CPU interrupt is not requested, the SWDTE bit is cleared to 0. If the DTC is to continue transferring data, set the SWDTE bit to 1. When the DISEL bit is 1, or after the specified number of data transfers have ended, the SWDTE bit is held at 1 and a CPU interrupt is requested. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 225 of 846 H8S/2215 Group Section 8 Data Transfer Controller (DTC) 8.7 Examples of Use of the DTC 8.7.1 Normal Mode An example is shown in which the DTC is used to receive 128 bytes of data via the SCI. 1. Set MRA to fixed source address (SM1 = SM0 = 0), incrementing destination address (DM1 = 1, DM0 = 0), normal mode (MD1 = MD0 = 0), and byte size (Sz = 0). The DTS bit can have any value. Set MRB for one data transfer by one interrupt (CHNE = 0, DISEL = 0). Set the SCI RDR address in SAR, the start address of the RAM area where the data will be received in DAR, and 128 (H'0080) in CRA. CRB can be set to any value. 2. Set the start address of the register information at the DTC vector address. 3. Set the corresponding bit in DTCER to 1. 4. Set the SCI to the appropriate receive mode. Set the RIE bit in SCR to 1 to enable the reception complete (RXI) interrupt. Since the generation of a receive error during the SCI reception operation will disable subsequent reception, the CPU should be enabled to accept receive error interrupts. 5. Each time reception of one byte of data ends on the SCI, the RDRF flag in SSR is set to 1, an RXI interrupt is generated, and the DTC is activated. The receive data is transferred from RDR to RAM by the DTC. DAR is incremented and CRA is decremented. The RDRF flag is automatically cleared to 0. 6. When CRA becomes 0 after the 128 data transfers have ended, the RDRF flag is held at 1, the DTCE bit is cleared to 0, and an RXI interrupt request is sent to the CPU. The interrupt handling routine should perform wrap-up processing. 8.7.2 Software Activation An example is shown in which the DTC is used to transfer a block of 128 bytes of data by means of software activation. The transfer source address is H'1000 and the destination address is H'2000. The vector number is H'60, so the vector address is H'04C0. 1. Set MRA to incrementing source address (SM1 = 1, SM0 = 0), incrementing destination address (DM1 = 1, DM0 = 0), block transfer mode (MD1 = 1, MD0 = 0), and byte size (Sz = 0). The DTS bit can have any value. Set MRB for one block transfer by one interrupt (CHNE = 0). Set the transfer source address (H'1000) in SAR, the destination address (H'2000) in DAR, and 128 (H'8080) in CRA. Set 1 (H'0001) in CRB. 2. Set the start address of the register information at the DTC vector address (H'04C0). 3. Check that the SWDTE bit in DTVECR is 0. Check that there is currently no transfer activated by software. Page 226 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 8 Data Transfer Controller (DTC) 4. Write 1 to the SWDTE bit and the vector number (H'60) to DTVECR. The write data is H'E0. 5. Read DTVECR again and check that it is set to the vector number (H'60). If it is not, this indicates that the write failed. This is presumably because an interrupt occurred between steps 3 and 4 and led to a different software activation. To activate this transfer, go back to step 3. 6. If the write was successful, the DTC is activated and a block of 128 bytes of data is transferred. 7. After the transfer, an SWDTEND interrupt occurs. The interrupt handling routine should clear the SWDTE bit to 0 and perform other wrap-up processing. 8.8 Usage Notes 8.8.1 Module Stop DTC operation can be prohibited or enabled using the module stop control register. Access to the register is prohibited in the module stop mode. However, the module stop mode cannot be specified while the DTC is operating. For details, see section 22, Power-Down Modes. 8.8.2 On-Chip RAM The MRA, MRB, SAR, DAR, CRA, and CRB registers are all located in on-chip RAM. When the DTC is used, the RAME bit in SYSCR must not be cleared to 0. 8.8.3 DTCE Bit Setting For DTCE bit setting, use bit manipulation instructions such as BSET and BCLR. If all interrupts are masked, multiple activation sources can be set at one time (only at the initial setting) by writing data after executing a dummy read on the relevant register. 8.8.4 DMAC Transfer End Interrupt When DTC transfer is activated by a DMAC transfer end interrupt, the DMAC’s DTE bit is not subject to DTC control, regardless of the transfer counter and DISEL bit, and the write data has priority. Consequently, an interrupt request is not sent to the CPU when the DTC transfer counter reaches 0. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 227 of 846 Section 8 Data Transfer Controller (DTC) Page 228 of 846 H8S/2215 Group REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 9 I/O Ports Section 9 I/O Ports Table 9.1 summarizes the port functions. The pins of each port also have other functions such as input/output or external interrupt input pins of on-chip peripheral modules. Each I/O port includes a data direction register (DDR) that controls input/output, a data register (DR) that stores output data, and a port register (PORT) used to read the pin states. The input-only ports do not have a DR and a DDR. Ports A to E have a built-in pull-up MOS function and a input pull-up MOS control register (PCR) to control the on/off state of input pull-up MOS. Ports 3 and A include an open-drain control register (ODR) that controls the on/off state of the output buffer PMOS. All the I/O ports can drive a single TTL load and 30 pF capacitive load. Table 9.1 Port Functions (1) Port Description Modes 4 and 5 Port 1 General I/O port also functioning as TPU I/O pins, interrupt input pins, and external USB transceiver I/O P17/TIOCB2/TCLKD/OE P16/TIOCA2/IRQ1 P15/TIOCB1/TCLKC/FSE0 P13/TIOCD0/TCLKB P12/TIOCC0/TCLKA/A22/RCV P12/TIOCC0/TCLKA P11/TIOCB0/A21/VP P11/TIOCB0 P10/TIOCA0/A20/VM P10/TIOCA0 P36 P35/SCK1/IRQ5 P34/RxD1 P33/TxD1 P32/SCK0/IRQ4 P31/RxD0 P30/TxD0 Port 4 General I/O port P43/AN3 also functioning P42/AN2 as A/D converter P41/AN1 analog inputs P40/AN0 Open-drain output Schmitt triggered input (IRQ5, IRQ4) The USB may be unusable in mode 7 in some cases. See section 3, MCU Operating Modes, for details. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Input/Output Type P17/TIOCB2/TCLKD Schmitt triggered input (IRQ1, IRQ0) P15/TIOCB1/TCLKC P13/TIOCD0/TCLKB/A23/VPO General I/O port also functioning as SCI_0, SCI_1 pins and interrupt input pins * Mode 7* P14/TIOCA1/IRQ0 Port 3 Note: Mode 6 Page 229 of 846 H8S/2215 Group Section 9 I/O Ports Table 9.1 Port Functions (2) Port Description Modes 4 and 5 Port 7 General I/O port also functioning as bus control output pins, manual reset input pin, and 8bit timer I/O P74/MRES P73/TMO1/CS7 P72/TMO0/CS6*2 Mode 6 P71/CS5 P70/TMRI01/TMCI01/CS4 Port 9 General I/O port P97/AN15/DA1 also functioning P96/AN14/DA0 as D/A converter analog outputs and A/D converter analog input Port A General I/O port also functioning as SCI_2 I/O pins, address output pins, and external USB transceiver output Port B General I/O port PB7/A15 also functioning PB6/A14 as address output PB5/A13 pins PB4/A12 PB3/A11 PB2/A10 PB1/A9 PB0/A8 Port C General I/O port A7 also functioning as address output A6 pins P74/MRES P73/TMO1 P72/TMO0 P71 P70/TMRI01/TMCI01 PA3/SCK2 PA2/RxD2 PA1/TxD2 PA0 Built-in input pull-up MOS Open-drain output PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 Built-in input pull-up MOS When DDR = 0: PC7 When DDR = 1: A7*2 PC7 Built-in input pull-up MOS When DDR = 0: PC6 When DDR = 1: A6*2 PC6 When DDR = 0: PC5 When DDR = 1: A5*2 PC5 PA3/A19/SCK2/SUSPND PA2/A18/RxD2 PA1/A17/TxD2 PA0/A16 A5 Input/Output Type Mode 7*1 Notes: 1. The USB may be unusable in mode 7 in some cases. See section 3, MCU Operating Modes, for details. 2. CS6 and A7 to A0 should be designated as an output when on-chip USB is used in mode 6. Page 230 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Table 9.1 Section 9 I/O Ports Port Functions (3) Mode 6 Mode 7*1 General I/O port A4 also functioning as address output A3 pins When DDR = 0: PC4 When DDR = 1: A4*2 PC4 When DDR = 0: PC3 When DDR = 1: A3*2 PC3 A2 When DDR = 0: PC2 When DDR = 1: A2*2 PC2 A1 When DDR = 0: PC1 When DDR = 1: A1*2 PC1 A0 When DDR = 0: PC0 When DDR = 1: A0*2 PC0 Port Description Port C Port D Port E General I/O port also functioning as data I/O pins Modes 4 and 5 D15 PD7 D14 D13 D12 D11 D10 D9 D8 PD6 PD5 PD4 PD3 PD2 PD1 PD0 General I/O port 8-bit bus mode: PE7 also functioning 16-bit bus mode: D7 as address output 8-bit bus mode: PE6 pins 16-bit bus mode: D6 PE7 8-bit bus mode: PE5 16-bit bus mode: D5 PE5 8-bit bus mode: PE4 16-bit bus mode: D5 PE4 8-bit bus mode: PE3 PE3 Input/Output Type Built-in input pull-up MOS Built-in input pull-up MOS Built-in input pull-up MOS PE6 16-bit bus mode: D3 8-bit bus mode: PE2 16-bit bus mode: D2 PE2 Notes: 1. The USB may be unusable in mode 7 in some cases. See section 3, MCU Operating Modes, for details. 2. CS6 and A7 to A0 should be designated as an output when on-chip USB is used in mode 6. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 231 of 846 H8S/2215 Group Section 9 I/O Ports Table 9.1 Port Functions (4) Port Description Port E General I/O port 8-bit bus mode: PE1 also functioning 16-bit bus mode: D1 as address output 8-bit bus mode: PE0 pins 16-bit bus mode: D0 Port F General I/O port also functioning as interrupt input pins and bus control I/O pins Port G General I/O port also functioning as bus control input pins and interrupt Input pins Modes 4 and 5 Mode 6 Input/Output Type Mode 7* PE1 Built-in input pull-up MOS PE0 When DDR = 0: PF7 When DDR = 1 (after reset): φ When DDR = 0 (after reset): PF7 When DDR = 1: φ AS PF6 RD PF5 HWR PF4 8-bit bus mode: PF3/ADTRG/IRQ3 16-bit bus mode: LWR PF3/ADTRG/IRQ3 When WAITE = 0 (after reset) : PF2 When WAITE = 1: WAIT PF2 When BRLE = 0 (after reset): PF1 When BRLE = 1: BACK PF1 When BRLE = 0 (after reset): PF0/IRQ2 When BRLE = 1: BREQ/IRQ2 PF0/IRQ2 When DDR = 0 (after reset in mode 6): PG4 PG4 When DDR = 1 (after reset in modes 4, 5): CS0 When DDR = 0: PG3 When DDR = 1: CS1 PG3 When DDR = 0: PG2 PG2 Schmitt triggered input (IRQ3, IRQ2) Schmitt triggered input (IRQ7) When DDR = 1: CS2 When DDR = 0: PG1/IRQ7 When DDR = 1: CS3/IRQ7 PG1/IRQ7 PG0 Note: * The USB may be unusable in mode 7 in some cases. See section 3, MCU Operating Modes, for details. Page 232 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 9.1 Section 9 I/O Ports Port 1 Port 1 is an 8-bit I/O port. The port 1 has the following registers. • Port 1 data direction register (P1DDR) • Port 1 data register (P1DR) • Port 1 register (PORT1) 9.1.1 Port 1 Data Direction Register (P1DDR) P1DDR is an 8-bit write-only register, the individual bits of which specify input or output for the pins of port 1. Since this is a write-only register, bit manipulation instructions should not be used to write to it. For details, see section 2.9.4, Accessing Registers Containing Write-Only Bits. Bit Bit Name Initial Value R/W Description 7 P17DDR 0 W 6 P16DDR 0 W 5 P15DDR 0 W 4 P14DDR 0 W 3 P13DDR 0 W Modes 4 to 6 If address output is enabled by the setting of bits AE3 to AE0 in PFCR, pins P13 to P10 are address outputs. Pins P17 to P14, and pins P13 to P10 when address output is disabled, are output ports when the corresponding P1DDR bits are set to 1, and input ports when the corresponding P1DDR bits are cleared to 0. 2 P12DDR 0 W 1 P11DDR 0 W 0 P10DDR 0 W REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Mode 7 Setting a P1DDR bit to 1 makes the corresponding port 1 pin an output port, while clearing the bit to 0 makes the pin an input port. Page 233 of 846 H8S/2215 Group Section 9 I/O Ports 9.1.2 Port 1 Data Register (P1DR) P1DR stores output data for the port 1 pins. Bit Bit Name Initial Value R/W Description 7 P17DR 0 R/W 6 P16DR 0 R/W An output data for a pin is stored when the pin function is specified to a general purpose output port. 5 P15DR 0 R/W 4 P14DR 0 R/W 3 P13DR 0 R/W 2 P12DR 0 R/W 1 P11DR 0 R/W 0 P10DR 0 R/W 9.1.3 Port 1 Register (PORT1) PORT1 shows the pin states. Bit Bit Name Initial Value R/W Description 7 P17 R P16 ⎯* ⎯* P15 ⎯* If a port 1 read is performed while P1DDR bits are set to 1, the P1DR value is read. If a port 1 read is performed while P1DDR bits are cleared to 0, the pin states are read. 6 R 4 P14 ⎯* R 3 P13 R 2 P12 ⎯* ⎯* P11 ⎯* R P10 ⎯* R 5 1 0 Note: * R R Determined by the states of pins P17 to P10. Page 234 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 9.1.4 Section 9 I/O Ports Pin Functions Port 1 pins also function as TPU I/O pins, external interrupt input pins (IRQ1, IRQ0), external USB transceiver input, and address bus (A23 to A20) output pins. The correspondence between the register specification and the pin functions is shown below. Table 9.2 P17 Pin Function FADSEL in UCTLR* 3 TPU Channel 2 Setting* 1 Output P17DDR Pin function 0 1 Input or Initial Value — — 0 1 — TIOCB2 output P17 input P17 output 3 OE output* TIOCB2 input TCLKD input Table 9.3 P16 Pin Function TPU Channel 2 Setting* P16DDR Pin function 1 Output Input or Initial Value — 0 1 TIOCA2 output P16 input P16 output TIOCA2 input IRQ1 input* 2 Notes: 1. For details on the TPU channel specification, refer to section 10, 16-Bit Timer Pulse Unit (TPU). 2. When used as an external interrupt pin, do not use for another functions. 3. The USB may be unusable in mode 7 in some cases. See section 3, MCU Operating Modes, for details. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 235 of 846 H8S/2215 Group Section 9 I/O Ports Table 9.4 P15 Pin Function FADSEL in UCTLR* 3 1 TPU Channel 1 Setting* Output P15DDR Pin function 0 1 Input or Initial Value — — 0 1 — TIOCB1 output P15 input P15 output FSE0 output* 3 TIOCB1 input TCLKC input Table 9.5 P14 Pin Function TPU Channel 1 Setting* 1 Output P14DDR Pin function Input or Initial Value — 0 1 TIOCA1 output P14 input P14 output TIOCA1 input 2 * IRQ0 input Notes: 1. For details on the TPU channel specification, refer to section 10, 16-Bit Timer Pulse Unit (TPU). 2. When used as an external interrupt pin, do not use for another functions. 3. On-chip USB cannot be used in mode 7. Table 9.6 AE3 to AE0* P13 Pin Function 1 FADSEL in UCTLR* Other than B'1111 3 TPU Channel 0 Setting* P13DDR Pin function 0 2 Output Input or Initial Value B'1111 1 — — — — 0 1 — — TIOCD0 output P13 input P13 output VPO 3 output* A23 output TIOCD0 input TCLKB input Notes: 1. Valid in modes 4 to 6. 2. For details on the TPU channel specification, refer to section 10, 16-Bit Timer Pulse Unit (TPU). 3. The USB may be unusable in mode 7 in some cases. See section 3, MCU Operating Modes, for details. Page 236 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Table 9.7 AE3 to AE0* Section 9 I/O Ports P12 Pin Function 1 Other than B'1111 3 FADSEL in UCTLR* 0 2 TPU Channel 0 Setting* Output P12DDR — Pin function TIOCC0 output Input or Initial Value 0 P12 input B'1111 1 — — — 1 — P12 output RCV input* — 3 A22 output TIOCC0 input TCLKA input Table 9.8 AE3 to AE0* P11 Pin Function 1 Other than (B'1110 to B'1111) 3 FADSEL in UCTLR* 0 2 TPU Channel 0 Setting* Output P11DDR — Pin function TIOCB0 output Table 9.9 AE3 to AE0* 1 — — — 1 — — P11 output 3 VP input* A21 output Input or Initial Value 0 P11 input B'1110 to B'1111 TIOCB0 input P10 Pin Function 1 FADSEL in UCTLR* Other than (B'1101 to B'1111) 3 0 TPU Channel 0 Setting* 2 P10DDR Pin function Output Input or Initial Value B'1101 to B'1111 1 — — — — 0 1 — — TIOCA0 output P10 input P10 output VM input A20 output TIOCA0 input Notes: 1. Valid in modes 4 to 6. 2. For details on the TPU channel specification, refer to section 10, 16-Bit Timer Pulse Unit (TPU). 3. The USB may be unusable in mode 7 in some cases. See section 3, MCU Operating Modes, for details. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 237 of 846 H8S/2215 Group Section 9 I/O Ports 9.2 Port 3 Port 3 is a 7-bit I/O port also functioning as SCI I/O and external interrupt input (IRQ4, IRQ5). • Port 3 data direction register (P3DDR) • Port 3 data register (P3DR) • Port 3 register (PORT3) • Port 3 open-drain control register (P3ODR) 9.2.1 Port 3 Data Direction Register (P3DDR) The individual bits of P3DDR specify input or output for the pins of port 3. Since this is a writeonly register, bit manipulation instructions should not be used to write to it. For details, see section 2.9.4, Accessing Registers Containing Write-Only Bits. Bit Bit Name Initial Value R/W Description 7 — — Reserved Undefined This bit is undefined and cannot be modified. 6 P36DDR 0 W 5 P35DDR 0 W 4 P34DDR 0 W 3 P33DDR 0 W 2 P32DDR 0 W 1 P31DDR 0 W 0 P30DDR 0 W Page 238 of 846 Setting a P3DDR bit to 1 makes the corresponding port 3 pin an output pin, while clearing the bit to 0 makes the pin an input pin. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 9.2.2 Section 9 I/O Ports Port 3 Data Register (P3DR) P3DR stores output data for the port 3 pins (P36 to P30). Bit Bit Name Initial Value R/W Description 7 — — Reserved Undefined This bit is undefined and cannot be modified. 6 P36DR 0 R/W 5 P35DR 0 R/W 4 P34DR 0 R/W 3 P33DR 0 R/W 2 P32DR 0 R/W 1 P31DR 0 R/W 0 P30DR 0 R/W 9.2.3 An output data for a pin is stored when the pin function is specified to a general purpose output port. Port 3 Register (PORT3) PORT3 shows the pin states. Bit Bit Name Initial Value R/W Description 7 — — Reserved Undefined This bit is undefined. 6 P36 —* R 5 P35 —* R 4 P34 —* R 3 P33 —* R 2 P32 —* R 1 P31 R 0 P30 —* —* Note: * R Determined by the state of pins P36 to P30. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 If a port 3 read is performed while P3DDR bits are set to 1, the P3DR values are read. If a port 3 read is performed while P3DDR bits are cleared to 0, the pin states are read. Page 239 of 846 H8S/2215 Group Section 9 I/O Ports 9.2.4 Port 3 Open-Drain Control Register (P3ODR) P3ODR controls the PMOS on/off status for each port 3 pin (P36 to P30). Bit Bit Name Initial Value R/W Description 7 — — Reserved Undefined This bit is undefined and cannot be modified. 6 P36ODR 0 R/W 5 P35ODR 0 R/W 4 P34ODR 0 R/W 3 P33ODR 0 R/W 2 P32ODR 0 R/W 1 P31ODR 0 R/W 0 P30ODR 0 R/W 9.2.5 Setting a P3ODR bit to 1 makes the corresponding port 3 pin an NMOS open-drain output pin, while clearing the bit to 0 makes the pin a CMOS output pin. Pin Functions Port 3 pins also function as SCI I/O pins and external interrupt input pins (IRQ4, IRQ5). Port 3 pin functions are shown below. Table 9.10 P36 Pin Function P36DDR Pin function Page 240 of 846 0 1 P36 input P36 output (USB D+ pull-up control output in HD64F2215U, HD64F2215RU, HD64F2215TU, HD64F2215CU) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 9 I/O Ports Table 9.11 P35 Pin Function CKE1 in SCR_1 0 C/A in SMR_1 1 0 CKE0 in SCR_1 0 P35DDR 0 Pin function 1 P35 input 1 — 1 — — — — — P35 output* SCK1 output* SCK1 output* SCK1 input 1 IRQ5 input* 2 2 2 Notes: 1. When used as an external interrupt pin, do not use for another function. 2. Note on Development Using the E6000 Emulator 2 The H8S/2215 Group does not have an I C bus function and pins 35 and 34 are used for CMOS output (except when P35ODR and P34ODR are set to 1). The E6000 emulator expects pins 35 and 34 to be used for NMOS push-pull output, which differs from the pin output characteristics of the H8S/2215 Group. If it is necessary to use pins 35 and 34 for CMOS output, an appropriate resistance should be used for pull-up when using the H8S/2215 with the E6000. Table 9.12 P34 Pin Function RE in SCR_1 0 P34DDR Pin function Note: * 1 0 1 — P34 input P34 output* RxD1 input Note on Development Using the E6000 Emulator 2 The H8S/2215 Group does not have an I C bus function and pins 35 and 34 are used for CMOS output (except when P35ODR and P34ODR are set to 1). The E6000 emulator expects pins 35 and 34 to be used for NMOS push-pull output, which differs from the pin output characteristics of the H8S/2215 Group. If it is necessary to use pins 35 and 34 for CMOS output, an appropriate resistance should be used for pull-up when using the H8S/2215 with the E6000. Table 9.13 P33 Pin Function SMIF in SCMR_1 0 TE in SCR_1 P33DDR Pin function REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 0 1 1 0 1 0 1 — 0 1 0 1 P33 input P33 output TxD1 output P33 input Setting prohibited TxD1 output Setting prohibited Page 241 of 846 H8S/2215 Group Section 9 I/O Ports Table 9.14 P32 Pin Function CKE1 in SCR_0 0 C/A in SMR_0 0 CKE0 in SCR_0 Pin function * 1 — 1 — — — — — 0 P32DDR Note: 1 0 1 P32 input P32 output SCK0 output SCK0 output IRQ4 input* SCK0 input When used as an external interrupt pin, do not use for another function. Table 9.15 P31 Pin Function RE in SCR_0 0 P31DDR Pin function 1 0 1 — P31 input P31 output RxD0 input Table 9.16 P30 Pin Function SMIF in SCMR_0 0 TE in SCR_0 P30DDR Pin function Page 242 of 846 0 1 1 0 1 0 1 — 0 1 0 1 P30 input P30 output TxD0 output P30 input Setting prohibited TxD0 output Setting prohibited REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 9.3 Section 9 I/O Ports Port 4 Port 4 is a 4-bit I/O port also functioning as A/D converter analog input. Port 4 has the following register. • Port 4 register (PORT4) 9.3.1 Port 4 Register (PORT4) PORT4 shows port 4 pin states. PORT4 cannot be modified. Bit Bit Name Initial Value R/W Description 7 to 4 — Undefined — Reserved 3 P43 R 2 P41 —* —* 1 P41 R 0 P40 —* —* Note: 9.3.2 These bits are undefined. R The pin states are always read when a port 4 read is performed. R Determined by the states of pins P43 to P40. * Pin Function Port 4 also functions as A/D converter analog input (AN3 to AN0). REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 243 of 846 H8S/2215 Group Section 9 I/O Ports 9.4 Port 7 Port 7 is a 5-bit I/O port also functioning as bus control output, manual reset input, and 8-bit timer I/O. Port 7 has the following registers. • Port 7 data direction register (P7DDR) • Port 7 data register (P7DR) • Port 7 register (PORT7) 9.4.1 Port 7 Data Direction Register (P7DDR) P7DDR is an 8-bit write-only register, the individual bits of which specify input or output for the pins of port 7. P7DDR cannot be read; if it is, an undefined value will be read. Since this is a write-only register, bit manipulation instructions should not be used to write to it. For details, see section 2.9.4, Accessing Registers Containing Write-Only Bits. Bit Bit Name Initial Value R/W Description 7 to 5 — — Reserved 4 P74DDR 0 W 3 P73DDR 0 W 2 P72DDR 0 W 1 P71DDR 0 W 0 P70DDR 0 W Undefined These bits are undefined and cannot be modified. Page 244 of 846 Setting a P7DDR bit to 1 makes the corresponding port 7 pin an output pin, while clearing the bit to 0 makes the pin an input pin. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 9.4.2 Section 9 I/O Ports Port 7 Data Register (P7DR) P7DR stores output data for the port 7 pins. Bit Bit Name Initial Value R/W Description 7 to 5 — — Reserved 4 P74DR 0 R/W 3 P73DR 0 R/W 2 P72DR 0 R/W 1 P71DR 0 R/W 0 P70DR 0 R/W Undefined These bits are undefined and cannot be modified. 9.4.3 Stores output data for the port 7 pins. Port 7 Register (PORT7) PORT7 shows the pin states. Bit Bit Name Initial Value R/W Description 7 to 5 — Undefined — Reserved P74 —* R P73 —* R P72 —* R 1 P71 R 0 P70 —* —* 4 3 2 Note: These bits are undefined and cannot be modified. * R Determined by the state of pins P74 to P70. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 If a port 7 read is performed while P7DDR bits are set to 1, the P7DR values are read. If a port 7 read is performed while P7DDR bits are cleared to 0, the pin states are read. Page 245 of 846 H8S/2215 Group Section 9 I/O Ports 9.4.4 Pin Functions Port 7 pins also function as bus control output pins, manual reset input pin, and 8 bit timer input/output. Port 7 pin functions are shown below. Table 9.17 P74 Pin Function MRESE 0 P74DDR Pin function 1 0 1 — P74 input P74 output MRES input Table 9.18 P73 Pin Function Operating Mode OS3 to OS0 in TCSR_1 P73DDR Modes 4 to 6 OS3 to OS0 are all 0 0 Pin function Mode 7 At least one of OS3 to OS0 is 1 1 — OS3 to OS0 are all 0 0 At least one of OS3 to OS0 is 1 1 — P73 input CS7 output TMO1 output P73 input P73 output TMO1 output Table 9.19 P72 Pin Function Modes 4 to 6* Operating Mode OS3 to OS0 in TCSR_0 P72DDR 0 Pin function Note: * OS3 to OS0 are all 0s Mode 7 At least one of OS3 to OS0 is 1 1 P72 input CS6 output OS3 to OS0 are all 0 At least one of OS3 to OS0 is 1 — 0 1 — TMO0 output P72 input P72output TMO0 output When on-chip USB is used in modes 4 to 6, bit P72DDR should be set to 1 so that the pin outputs CS6. Table 9.20 P71 Pin Function Operating Mode P71DDR Pin function Page 246 of 846 Modes 4 to 6 Mode 7 0 1 0 1 P71 input CS5 output P71 input P71 output REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 9 I/O Ports Table 9.21 P70 Pin Function Operating Mode Modes 4 to 6 P70DDR Pin function Mode 7 0 1 0 1 P70 input CS4 output P70 input P70 output TMRI01, TMCI01 input 9.5 Port 9 Port 9 pins also function as A/D converter analog input and D/A converter analog output pins. The port 9 has the following register. • Port 9 register (PORT9) 9.5.1 Port 9 Register (PORT9) PORT9 shows port 9 pin states. Bit Bit Name Initial Value 7 P97 6 P96 —* —* 5 to 0 — Undefined Note: 9.5.2 R/W Description R The pin states are always read when a port 9 read is performed. — R Reserved These bits are undefined. Determined by the states of pins P97 and P96. * Pin Function Port 9 also functions as A/D converter analog input (AN15, AN14) and D/A converter analog output (DA1, DA0). REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 247 of 846 H8S/2215 Group Section 9 I/O Ports 9.6 Port A Port A is a 4-bit I/O port that also functions as address bus (A19 to A16) output, external USB transceiver output, and SCI_2 I/O, and interrupt input. The port A has the following registers. • Port A data direction register (PADDR) • Port A data register (PADR) • Port A register (PORTA) • Port A pull-up MOS control register (PAPCR) • Port A open-drain control register (PAODR) 9.6.1 Port A Data Direction Register (PADDR) The individual bits of PADDR specify input or output for the pins of port A. Since this is a writeonly register, bit manipulation instructions should not be used to write to it. For details, see section 2.9.4, Accessing Registers Containing Write-Only Bits. Bit Bit Name Initial Value R/W Description 7 to 4 — — Reserved 3 PA3DDR 0 W 2 PA2DDR 0 W 1 PA1DDR 0 W 0 PA0DDR 0 W Undefined These bits are undefined and cannot be modified. Modes 4 to 6 If address output is enabled by the setting of bits AE3 to AE0 in PFCR, the corresponding port A pins are address outputs. When address output is disabled, setting a PADDR bit to 1 makes the corresponding port A pin an output port, while clearing the bit to 0 makes the pin an input port. Mode 7 Setting a PADDR bit to 1 makes the corresponding port A pin an output port, while clearing the bit to 0 makes the pin an input port. Page 248 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 9.6.2 Section 9 I/O Ports Port A Data Register (PADR) PADR stores output data for the port A pins. Bit Bit Name Initial Value R/W Description 7 to 4 — — Reserved 3 PA3DR 0 R/W 2 PA2DR 0 R/W 1 PA1DR 0 R/W 0 PA0DR 0 R/W Undefined These bits are undefined and cannot be modified. 9.6.3 An output data for a pin is stored when the pin function is specified to a general purpose output port. Port A Register (PORTA) PORTA shows port A pin states. Bit Bit Name Initial Value R/W Description 7 to 4 — — Reserved 3 PA3 —* R 2 PA2 —* R 1 PA1 —* R 0 PA0 —* R Note: Undefined These bits are undefined and cannot be modified. * Determined by the states of pins PA3 to PA0. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 If a port A read is performed while PADDR bits are set to 1, the PADR values are read. If a port A read is performed while PADDR bits are cleared to 0, the pin states are read. Page 249 of 846 H8S/2215 Group Section 9 I/O Ports 9.6.4 Port A MOS Pull-Up Control Register (PAPCR) PAPCR controls the function of the port A input pull-up MOS. PAPCR is valid for port input and SCI input pins. Bit Bit Name Initial Value R/W Description 7 to 4 — — Reserved 3 PA3PCR* 0 R/W 2 PA2PCR 0 R/W 1 PA1PCR 0 R/W 0 PA0PCR 0 R/W Note: Undefined These bits are undefined and cannot be modified. * 9.6.5 When a pin function is specified to an input port, setting the corresponding bit to 1 turns on the input pull-up MOS for that pin. Set PA3PCR to 0 when FADSEL of USB is 1. Port A Open Drain Control Register (PAODR) PAODR specifies an output type of port A. PAODR is valid for port output and SCI output pins. Bit Bit Name Initial Value R/W Description 7 to 4 — — Reserved 3 PA3ODR 0 R/W 2 PA2ODR 0 R/W 1 PA1ODR 0 R/W 0 PA0ODR 0 R/W Undefined These bits are undefined and cannot be modified. Page 250 of 846 Setting a PAODR bit to 1 makes the corresponding port A pin an NMOS open-drain output pin, while clearing the bit to 0 makes the pin a CMOS output pin. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 9.6.6 Section 9 I/O Ports Pin Functions Port A pins also function as address bus (A19 to A16) output, external USB transceiver output, SCI_2 I/O, and interrupt input. The correspondence between the register specification and the pin functions is shown below. Table 9.22 PA3 Pin Function Operating mode Modes 4 to 6 AE3 to AE0 11xx Other than 11xx FADSEL of UCTLR — CKE1 in SCR_2 — C/A in SMR_2 — CKE0 in SCR_2 — PA3DDR — 0 A19 output PA3 input Pin function 0 0 1 — 1 — — 1 — — — 1 — — — — PA3 output SCK2 output SCK2 output SCK2 input SUSPND output 0 0 Operating mode Mode 7 AE3 to AE0 — FADSEL of UCTLR* 0 C/A in SMR_2 Note: * — 1 — — 0 1 — — — 0 1 — — — — PA3 input PA3 output SCK2 output SCK2 output SCK2 input SUSPND output* On-chip USB cannot be used in mode 7. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 1 0 CKE0 in SCR_2 Pin function 1* 0 CKE1 in SCR_2 PA3DDR 1 Page 251 of 846 H8S/2215 Group Section 9 I/O Ports Table 9.23 PA2 Pin Function Operating mode AE3 to AE0 Modes 4 to 6 1011 or 11xx Mode 7 Other than 1011 or 11xx RE in SCR_2 — PA2DDR — 0 1 — 0 1 — A18 output PA2 input PA2 output RxD2 input PA2 input PA2 output RxD2 input Pin function 0 — 1 0 1 Table 9.24 PA1 Pin Function Operating mode AE3 to AE0 Modes 4 to 6 101x or 11xx SMIF in SCMR_2 — TE in SCR_2 — PA1DDR Pin function Other than 101x or 11xx 0 1 0 1 — 0 1 — 0 1 0 1 PA1 input PA1 output TxD2 output PA1 input Setting prohibited TxD2 output Setting prohibited Mode 7 SMIF in SCMR_2 0 TE in SCR_2 Pin function 1 A17 output Operating mode PA1DDR 0 1 0 1 0 1 0 1 — 0 1 0 1 PA1 input PA1 output TxD2 output PA1 input Setting prohibited TxD2 output Setting prohibited Table 9.25 PA0 Pin Function Operating mode AE3 to AE0 PA0DDR Pin function Page 252 of 846 Modes 4 to 6 Other than 0xxxx or 1000 Mode 7 0xxx or 1000 — — 0 1 0 1 PA16 output PA0 input PA0 output PA0 input PA0 output REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 9.6.7 Section 9 I/O Ports Port A Input Pull-Up MOS Function Port A has a built-in input pull-up MOS function that can be controlled by software. Input pull-up MOS can be specified as on or off for individual bits. Table 9.26 summarizes the input pull-up MOS states. Table 9.26 Input Pull-Up MOS States (Port A) Pins Power-On Reset Address output, port output, SCI output Hardware Standby Mode Manual Reset OFF Port input, SCI input Software Standby Mode In Other Operations OFF ON/OFF Legend: OFF: Input pull-up MOS is always off. ON/OFF: On when PADDR = 0 and PAPCR = 1; otherwise off. 9.7 Port B Port B is an 8-bit I/O port that also has address bus (A15 to A8) output. The port B has the following registers. Internal I/O Register. • Port B data direction register (PBDDR) • Port B data register (PBDR) • Port B register (PORTB) • Port B MOS pull-up control register (PBPCR) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 253 of 846 H8S/2215 Group Section 9 I/O Ports 9.7.1 Port B Data Direction Register (PBDDR) The individual bits of PBDDR specify input or output for the pins of port B. Since this is a writeonly register, bit manipulation instructions should not be used to write to it. For details, see section 2.9.4, Accessing Registers Containing Write-Only Bits. Bit Bit Name Initial Value R/W Description 7 PB7DDR 0 W 6 PB6DDR 0 W 5 PB5DDR 0 W 4 PB4DDR 0 W 3 PB3DDR 0 W Modes 4 to 6 If address output is enabled by the setting of bits AE3 to AE0 in PFCR, the corresponding port B pins are address outputs. When address output is disabled, setting a PBDDR bit to 1 makes the corresponding port B pin an output port, while clearing the bit to 0 makes the pin an input port. 2 PB2DDR 0 W 1 PB1DDR 0 W 0 PB0DDR 0 W 9.7.2 Mode 7 Setting a PBDDR bit to 1 makes the corresponding port B pin an output port, while clearing the bit to 0 makes the pin an input port. Port B Data Register (PBDR) PBDR stores output data for the port B pins. Bit Bit Name Initial Value R/W Description 7 PB7DR 0 R/W 6 PB6DR 0 R/W An output data for a pin is stored when the pin function is specified to a general purpose output port. 5 PB5DR 0 R/W 4 PB4DR 0 R/W 3 PB3DR 0 R/W 2 PB2DR 0 R/W 1 PB1DR 0 R/W 0 PB0DR 0 R/W Page 254 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 9.7.3 Section 9 I/O Ports Port B Register (PORTB) PORTB shows port B pin states. Bit Bit Name Initial Value R/W Description 7 PB7 —* R PB6 —* R 5 PB5 —* R If the port B read is performed while PBDDR bits are set to 1, the PBDR values are read. If a port B read is performed while PBDDR bits are cleared to 0, the pin states are read. 6 4 PB4 —* R 3 PB3 —* R 2 PB2 —* R 1 PB1 R 0 PB0 —* —* Note: 9.7.4 R Determined by the status of pins PB7 to PB0. * Port B MOS Pull-Up Control Register (PBPCR) PBPCR controls the on/off state of input pull-up MOS of port B. Bit Bit Name Initial Value R/W Description 7 PB7PCR 0 R/W 6 PB6PCR 0 R/W When a pin functions specified to an input port, setting the corresponding bit to 1 turns on the input pull-up MOS for that pin. 5 PB5PCR 0 R/W 4 PB4PCR 0 R/W 3 PB3PCR 0 R/W 2 PB2PCR 0 R/W 1 PB1PCR 0 R/W 0 PB0PCR 0 R/W REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 255 of 846 H8S/2215 Group Section 9 I/O Ports 9.7.5 Pin Functions Port B pins also function as address bus (A15 to A9) output pins. The correspondence between the register specification and the pin functions is shown below. Table 9.27 PB7 Pin Function Operating mode AE3 to AE0 PB7DDR Pin function Modes 4 to 6 B'1xxx Mode 7 Other than B'1xxx — — 0 1 0 1 A15 output PB7 input PB7 output PB7 input PB7 output Table 9.28 PB6 Pin Function Operating mode AE3 to AE0 PB6DDR Pin function Modes 4 to 6 B'0111 or B'1xxx Mode 7 Other than B'0111 or B'1xxx — — 0 1 0 1 A14 output PB6 input PB6 output PB6 input PB6 output Table 9.29 PB5 Pin Function Operating mode AE3 to AE0 PB5DDR Pin function Modes 4 to 6 B'011x or B'1xxx Mode 7 Other than B'011x or B'1xxx — — 0 1 0 1 A13 output PB5 input PB5 output PB5 input PB5 output Table 9.30 PB4 Pin Function Operating mode AE3 to AE0 PB4DDR Pin function Page 256 of 846 Modes 4 to 6 Other than B'0100 or B'00xx Mode 7 B'0100 or B'00xx — — 0 1 0 1 A12 output PB4 input PB4 output PB4 input PB4 output REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 9 I/O Ports Table 9.31 PB3 Pin Function Operating mode AE3 to AE0 Modes 4 to 6 Other than B'00xx PB3DDR Pin function Mode 7 B'00xx — — 0 1 0 1 A11 output PB3 input PB3 output PB3 input PB3 output Table 9.32 PB2 Pin Function Operating mode AE3 to AE0 Modes 4 to 6 Other than B'0010 or B'000x PB2DDR Pin function Mode 7 B'0010 or B'000x — — 0 1 0 1 A10 output PB2 input PB2 output PB2 input PB2 output Table 9.33 PB1 Pin Function Operating mode AE3 to AE0 Modes 4 to 6 Other than B'000x PB1DDR Pin function Mode 7 B'000x — — 0 1 0 1 A9 output PB1 input PB1 output PB1 input PB1 output Table 9.34 PB0 Pin Function Operating mode AE3 to AE0 Modes 4 to 6 Other than B'0000 PB0DDR Pin function B'0000 — 0 0 1 0 1 A8 output PB0 input PB0 output PB0 input PB0 output REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Mode 7 Page 257 of 846 H8S/2215 Group Section 9 I/O Ports 9.7.6 Port B Input Pull-Up MOS Function Port B has a built-in input pull-up MOS function that can be controlled by software. Input pull-up MOS can be specified as on or off for individual bits. Table 9.35 summarizes the input pull-up MOS states. Table 9.35 Input Pull-Up MOS States (Port B) Pins Power-On Reset Address output, port output Hardware Standby Mode Manual Reset OFF Port input Software Standby Mode In Other Operations OFF ON/OFF Legend: OFF: Input pull-up MOS is always off. ON/OFF: On when PBDDR = 0 and PBPCR = 1; otherwise off. 9.8 Port C Port C is an 8-bit I/O port that also has address bus (A7 to A0) output pins. The port C has the following registers. • Port C data direction register (PCDDR) • Port C data register (PCDR) • Port C register (PORTC) • Port C pull-up MOS control register (PCPCR) Note: When using the on-chip USB in mode 6, set PCDDR so that addresses A7 to A0 are output from PC7 to PC0. Page 258 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 9.8.1 Section 9 I/O Ports Port C Data Direction Register (PCDDR) The individual bits of PCDDR specify input or output for the pins of port C. Since this is a writeonly register, bit manipulation instructions should not be used to write to it. For details, see section 2.9.4, Accessing Registers Containing Write-Only Bits. Bit Bit Name Initial Value R/W Description 7 PC7DDR 0 W 6 PC6DDR 0 W Modes 4 and 5 Port C pins are address outputs regardless of the PCDDR settings. 5 PC5DDR 0 W 4 PC4DDR 0 W 3 PC3DDR 0 W 2 PC2DDR 0 W 1 PC1DDR 0 W 0 PC0DDR 0 W 9.8.2 Mode 6 Setting a PCDDR bit to 1 makes the corresponding port C pin an address output, while clearing the bit to 0 makes the pin an input port. Mode 7 Setting a PCDDR bit to 1 makes the corresponding port C pin an output port, while clearing the bit to 0 makes the pin an input port. Port C Data Register (PCDR) PCDR stores output data for the port C pins. Bit Bit Name Initial Value R/W Description 7 PC7DR 0 R/W 6 PC6DR 0 R/W An output data for a pin is stored when the pin function is specified to a general purpose output port. 5 PC5DR 0 R/W 4 PC4DR 0 R/W 3 PC3DR 0 R/W 2 PC2DR 0 R/W 1 PC1DR 0 R/W 0 PC0DR 0 R/W REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 259 of 846 H8S/2215 Group Section 9 I/O Ports 9.8.3 Port C Register (PORTC) PORTC shows port C pin states. Bit Bit Name Initial Value R/W Description 7 PC7 —* R PC6 —* R 5 PC5 —* R If a port C read is performed while PCDDR bits are set to 1, the PCDR values are read. If a port C read is performed while PCDDR bits are cleared to 0, the pin states are read. 6 4 PC4 —* R 3 PC3 —* R 2 PC2 —* R 1 PC1 R 0 PC0 —* —* Note: 9.8.4 * R Determined by the states of pins PC7 to PC0. Port C Pull-Up MOS Control Register (PCPCR) PCPCR controls the on/off state of input pull-up MOS of port C. Bit Bit Name Initial Value R/W Description 7 PC7PCR 0 R/W 6 PC6PCR 0 R/W When a pin function is specified to an input port, setting the corresponding bit to 1 turns on the input pull-up MOS for that pin. 5 PC5PCR 0 R/W 4 PC4PCR 0 R/W 3 PC3PCR 0 R/W 2 PC2PCR 0 R/W 1 PC1PCR 0 R/W 0 PC0PCR 0 R/W Page 260 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 9.8.5 Section 9 I/O Ports Pin Functions Port C pins also function as Address bus (A7 to A0) output. The correspondence between the register specification and the pin functions is shown below. Table 9.36 PC7 Pin Function Operating Mode PC7DDR Pin Function Mode 6* Modes 4 and 5 Mode 7 — 0 1 0 1 A7 output PC7 input A7 output PC7 input PC7 output Table 9.37 PC6 Pin Function Operating Mode PC6DDR Pin Function Mode 6* Modes 4 and 5 Mode 7 — 0 1 0 1 A6 output PC6 input A6 output PC6 input PC6 output Table 9.38 PC5 Pin Function Operating Mode PC5DDR Pin Function Mode 6* Modes 4 and 5 Mode 7 — 0 1 0 1 A5 output PC5 input A5 output PC5 input PC5 output Table 9.39 PC4 Pin Function Operating Mode PC4DDR Pin Function Mode 6* Modes 4 and 5 Mode 7 — 0 1 0 1 A4 output PC4 input A4 output PC4 input PC4 output Table 9.40 PC3 Pin Function Operating Mode PC3DDR Pin Function REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Mode 6* Modes 4 and 5 Mode 7 — 0 1 0 1 A3 output PC3 input A3 output PC3 input PC3 output Page 261 of 846 H8S/2215 Group Section 9 I/O Ports Table 9.41 PC2 Pin Function Operating Mode PC2DDR Pin Function Mode 6* Modes 4 and 5 Mode 7 — 0 1 0 1 A2 output PC2 input A2 output PC2 input PC2 output Table 9.42 PC1 Pin Function Operating Mode PC1DDR Pin Function Mode 6* Modes 4 and 5 Mode 7 — 0 1 0 1 A1 output PC1 input A1 output PC1 input PC1 output Table 9.43 PC0 Pin Function Operating Mode PC0DDR Pin Function Note: * Mode 6* Modes 4 and 5 Mode 7 — 0 1 0 1 A0 output PC0 input A0 output PC0 input PC0 output When on-chip USB is used in mode 6, bits PC7DDR to PC0DDR should be set to H'FF so that the pins output A7 to A0. Page 262 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 9.8.6 Section 9 I/O Ports Port C Input Pull-Up MOS Function Port C has a built-in input pull-up MOS function that can be controlled by software. Input pull-up MOS can be used in modes 6 and 7, and can be specified as on or off for individual bits. Table 9.44 summarizes the input pull-up MOS states. Table 9.44 Input Pull-Up MOS States (Port C) Pins Power-On Reset Address output (modes 4 and 5), port output (modes 6 and 7) Hardware Standby Mode Manual Reset OFF Port input (modes 6 and 7) Software Standby Mode In Other Operations OFF ON/OFF Legend: OFF: Input pull-up MOS is always off. ON/OFF: On when PCDDR = 0 and PCPCR = 1; otherwise off. 9.9 Port D Port D is an 8-bit I/O port that also has data bus (D15 to D8) I/O. The port D has the following registers. • Port D data direction register (PDDDR) • Port D data register (PDDR) • Port D register (PORTD) • Port D Pull-up MOS control register (PDPCR) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 263 of 846 H8S/2215 Group Section 9 I/O Ports 9.9.1 Port D Data Direction Register (PDDDR) The individual bits of PDDDR specify input or output for the pins of port D. Since this is a writeonly register, bit manipulation instructions should not be used to write to it. For details, see section 2.9.4, Accessing Registers Containing Write-Only Bits. Bit Bit Name Initial Value R/W Description 7 PD7DDR 0 W 6 PD6DDR 0 W Modes 4 to 6 Port D pins automatically function as data input/output pins. 5 PD5DDR 0 W 4 PD4DDR 0 W 3 PD3DDR 0 W 2 PD2DDR 0 W 1 PD1DDR 0 W 0 PD0DDR 0 W 9.9.2 Mode 7 Setting a PDDDR bit to 1 makes the corresponding port D pin an output port, while clearing the bit to 0 makes the pin an input port. Port D Data Register (PDDR) PDDR stores output data for the port D pins. Bit Bit Name Initial Value R/W Description 7 PD7DR 0 R/W 6 PD6DR 0 R/W An output data for a pin is stored when the pin function is specified to a general purpose I/O output port. 5 PD5DR 0 R/W 4 PD4DR 0 R/W 3 PD3DR 0 R/W 2 PD2DR 0 R/W 1 PD1DR 0 R/W 0 PD0DR 0 R/W Page 264 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 9.9.3 Section 9 I/O Ports Port D Register (PORTD) PORTD shows port D pin states. Bit Bit Name Initial Value R/W Description 7 PD7 —* R PD6 —* R 5 PD5 —* R If a port D read is performed while PDDDR bits are set to 1, the PDDR values are read. If a port D read is performed while PDDDR bits are cleared to 0, the pin states are read. 6 4 PD4 —* R 3 PD3 —* R 2 PD2 —* R 1 PD1 R 0 PD0 —* —* Note: 9.9.4 R Determined by the states of pins PD7 to PD0. * Port D Pull-Up MOS Control Register (PDPCR) PDPCR controls on/off states of the input pull-up MOS of port D. Bit Bit Name Initial Value R/W Description 7 PD7PCR 0 R/W 6 PD6PCR 0 R/W When the pin is in its input state, the input pull-up MOS of the input pin is on when the corresponding bit is set to 1. 5 PD5PCR 0 R/W 4 PD4PCR 0 R/W 3 PD3PCR 0 R/W 2 PD2PCR 0 R/W 1 PD1PCR 0 R/W 0 PD0PCR 0 R/W REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 265 of 846 H8S/2215 Group Section 9 I/O Ports 9.9.5 Pin Functions Port D pins also functions as data bus (D15 to D8) I/O. The correspondence between the register specification and the pin functions in shown below. Table 9.45 PD7 Pin Function Operating Mode PD7DDR Pin Function Modes 4 to 6 Mode 7 — 0 1 D15 input/output PD7 input PD7 output Table 9.46 PD6 Pin Function Operating Mode PD6DDR Pin Function Modes 4 to 6 Mode 7 — 0 1 D14 input/output PD6 input PD6 output Table 9.47 PD5 Pin Function Operating Mode PD5DDR Pin Function Modes 4 to 6 Mode 7 — 0 1 D13 input/output PD5 input PD5 output Table 9.48 PD4 Pin Function Operating Mode PD4DDR Pin Function Modes 4 to 6 Mode 7 — 0 1 D12 input/output PD4 input PD4 output Table 9.49 PD3 Pin Function Operating Mode PD3DDR Pin Function Page 266 of 846 Modes 4 to 6 Mode 7 — 0 1 D11 input/output PD3 input PD3 output REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 9 I/O Ports Table 9.50 PD2 Pin Function Operating Mode Modes 4 to 6 PD2DDR Pin Function Mode 7 — 0 1 D10 input/output PD2 input PD2 output Table 9.51 PD1 Pin Function Operating Mode Modes 4 to 6 PD1DDR Pin Function Mode 7 — 0 1 D9 input/output PD1 input PD1 output Table 9.52 PD0 Pin Function Operating Mode Modes 4 to 6 PD0DDR Pin Function 9.9.6 Mode 7 — 0 1 D8 input/output PD0 input PD0 output Port D Input Pull-Up MOS Function Port D has a built-in input pull-up MOS function that can be controlled by software. Input pull-up MOS can be used in mode 7, and can be specified as on or off for individual bits. Table 9.53 summarizes the input pull-up MOS states. Table 9.53 Input Pull-Up MOS States (Port D) Pins Address output (modes 4 to 6), port output (mode 7) Power-On Reset Hardware Standby Mode Manual Reset OFF Port input (mode 7) Software Standby Mode In Other Operations OFF ON/OFF Legend: OFF: Input pull-up MOS is always off. ON/OFF: On when PDDDR = 0 and PDPCR = 1; otherwise off. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 267 of 846 H8S/2215 Group Section 9 I/O Ports 9.10 Port E Port E is an 8-bit I/O port that also has data bus (D7 to D0) I/O. The port E has the following registers. • Port E data direction register (PEDDR) • Port E data register (PEDR) • Port E register (PORTE) • Port E Pull-up MOS control register (PEPCR) 9.10.1 Port E Data Direction Register (PEDDR) The individual bits of PEDDR specify input or output for the pins of port E. Since this is a writeonly register, bit manipulation instructions should not be used to write to it. For details, see section 2.9.4, Accessing Registers Containing Write-Only Bits. Bit Bit Name Initial Value R/W Description 7 PE7DDR 0 W 6 PE6DDR 0 W 5 PE5DDR 0 W 4 PE4DDR 0 W 3 PE3DDR 0 W 2 PE2DDR 0 W 1 PE1DDR 0 W Modes 4 to 6 When 8-bit bus mode is selected, port E functions as an I/O port. Setting a PEDDR bit to 1 makes the corresponding port E pin an output port, while clearing the bit to 0 makes the pin an input port. When 16-bit bus mode is selected, the input/output direction settings in PEDDR are ignored, and port E pins automatically function as data input/output pins. See section 6, Bus Controller, on 8-/16-bit bus mode. 0 PE0DDR 0 W Page 268 of 846 Mode 7 Setting a PEDDR bit to 1 makes the corresponding port E pin an output port, while clearing the bit to 0 makes the pin an input port. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 9.10.2 Section 9 I/O Ports Port E Data Register (PEDR) PEDR stores output data for the port E pins. Bit Bit Name Initial Value R/W Description 7 PE7DR 0 R/W 6 PE6DR 0 R/W An output data for a pin is stored when the pin function is specified to a general purpose output port. 5 PE5DR 0 R/W 4 PE4DR 0 R/W 3 PE3DR 0 R/W 2 PE2DR 0 R/W 1 PE1DR 0 R/W 0 PE0DR 0 R/W 9.10.3 Port E Register (PORTE) PORTE shows port E pin states. Bit Bit Name Initial Value R/W Description 7 PE7 —* R PE6 —* R 5 PE5 —* R If a port E read is performed while PEDDR bits are set to 1, the PEDR values are read. If a port E read is performed while PEDDR bits are cleared to 0, the pin states are read. 6 4 PE4 —* R 3 PE3 —* R 2 PE2 —* R 1 PE1 R 0 PE0 —* —* Note: * Determined by the states of pins PE7 to PE0. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 R Page 269 of 846 H8S/2215 Group Section 9 I/O Ports 9.10.4 Port E Pull-Up MOS Control Register (PEPCR) PEPCR controls on/off states of the input pull-up MOS of port E. Bit Bit Name Initial Value R/W Description 7 PE7PCR 0 R/W 6 PE6PCR 0 R/W When the pin is in the input state, the input pull-up MOS of the input pin is on when the corresponding bit is set to 1. 5 PE5PCR 0 R/W 4 PE4PCR 0 R/W 3 PE3PCR 0 R/W 2 PE2PCR 0 R/W 1 PE1PCR 0 R/W 0 PE1PCR 0 R/W 9.10.5 Pin Function Port E pins also functions as data bus (D7 to D0) I/O. The correspondence between the register specification and the pin function in show below. Table 9.54 PE7 Pin Function Operating Mode Modes 4 to 6 Mode 7 Bus Mode 8-bit bus mode PE7DDR 0 1 — 0 1 PE7 input PE7 output D7 input/output PE7 input PE7 output Pin Function 16-bit bus mode — Table 9.55 PE6 Pin Function Operating Mode Modes 4 to 6 Mode 7 Bus Mode 8-bit bus mode PE6DDR 0 1 — 0 1 PE6 input PE6 output D6 input/output PE6 input PE6 output Pin Function Page 270 of 846 16-bit bus mode — REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 9 I/O Ports Table 9.56 PE5 Pin Function Operating Mode Modes 4 to 6 Mode 7 Bus Mode 8-bit bus mode PE5DDR 0 1 — 0 1 PE5 input PE5 output D5 input/output PE5 input PE5 output Pin Function 16-bit bus mode — Table 9.57 PE4 Pin Function Operating Mode Modes 4 to 6 Mode 7 Bus Mode 8-bit bus mode PE4DDR 0 1 — 0 1 PE4 input PE4 output D4 input/output PE4 input PE4 output Pin Function 16-bit bus mode — Table 9.58 PE3 Pin Function Operating Mode Modes 4 to 6 Mode 7 Bus Mode 8-bit bus mode PE3DDR 0 1 — 0 1 PE3 input PE3 output D3 input/output PE3 input PE3 output Pin Function 16-bit bus mode — Table 9.59 PE2 Pin Function Operating Mode Modes 4 to 6 Mode 7 Bus Mode 8-bit bus mode PE2DDR 0 1 — 0 1 PE2 input PE2 output D2 input/output PE2 input PE2 output Pin Function REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 16-bit bus mode — Page 271 of 846 H8S/2215 Group Section 9 I/O Ports Table 9.60 PE1 Pin Function Operating Mode Modes 4 to 6 Mode 7 Bus Mode 8-bit bus mode PE1DDR 0 1 — 0 1 PE1 input PE1 output D1 input/output PE1 input PE1 output Pin Function 16-bit bus mode — Table 9.61 PE0 Pin Function Operating Mode Modes 4 to 6 Mode 7 Bus Mode 8-bit bus mode PE0DDR 0 1 — 0 1 PE0 input PE0 output D0 input/output PE0 input PE0 output Pin Function Page 272 of 846 16-bit bus mode — REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 9.10.6 Section 9 I/O Ports Port E Input Pull-Up MOS State Port E has a built-in input pull-up MOS function that can be controlled by software. Input pull-up MOS can be used in 8-bit bus mode in modes 4 to 6 or in mode 7, and can be specified as on or off for individual bits. Table 9.62 summarizes the input pull-up MOS states. Table 9.62 Input Pull-Up MOS States (Port E) Pins Data output (16-bit bus mode in modes 4 to 6), port output (8-bit bus mode in modes 4 to 6 or mode 7) Power-On Reset Hardware Standby Mode Manual Reset OFF Port input (8-bit bus mode in modes 4 to 6 or mode 7) Software Standby Mode In Other Operations OFF ON/OFF Legend: OFF: Input pull-up MOS is always off. ON/OFF: On when PEDDR = 0 and PEPCR = 1; otherwise off. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 273 of 846 H8S/2215 Group Section 9 I/O Ports 9.11 Port F Port F is an 8-bit I/O port that also has external interrupt input (IRQ2, IRQ3), bus control sign I/O, system clock output. The port F has the following registers. • Port F data direction register (PFDDR) • Port F data register (PFDR) • Port F register (PORTF) 9.11.1 Port F Data Direction Register (PFDDR) The individual bits of PFDDR specify input or output for the pins of port F. Since this is a writeonly register, bit manipulation instructions should not be used to write to it. For details, see section 2.9.4, Accessing Registers Containing Write-Only Bits. Bit Bit Name Initial Value R/W Description W Modes 4 to 6 Pin PF7 functions as the φ output pin when the corresponding PFDDR bit is set to 1, and as an input port when the bit is cleared to 0. The input/output direction specification in PFDDR is ignored for pins PF6 to PF3, which are automatically designated as bus control outputs. Pins PF2 to PF0 are made bus control input/output pins by bus controller settings. Otherwise, setting a PFDDR bit to 1 makes the corresponding pin an output port, while clearing the bit to 0 makes the pin an input port. 7 PF7DDR 1/0* 6 PF6DDR 0 W 5 PF5DDR 0 W 4 PF4DDR 0 W 3 PF3DDR 0 W 2 PF2DDR 0 W 1 PF1DDR 0 W 0 PF0DDR 0 W Mode 7 Setting a PFDDR bit to 1 makes the corresponding port F pin PF6 to PF0 an output port, or in the case of pin PF7, the φ output pin. Clearing the bit to 0 makes the pin an input port. Note: * In modes 4 to 6, set to 1; in mode 7 cleared to 0. Page 274 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 9.11.2 Section 9 I/O Ports Port F Data Register (PFDR) PFDR stores output data for the port F pins. Bit Bit Name Initial Value R/W Description 7 PF7DR 0 R/W 6 PF6DR 0 R/W An output data for a pin is stored when the pin function is specified to a general purpose output port. 5 PF5DR 0 R/W 4 PF4DR 0 R/W 3 PF3DR 0 R/W 2 PF2DR 0 R/W 1 PF1DR 0 R/W 0 PF0DR 0 R/W 9.11.3 Port F Register (PORTF) PORTF shows port F pin states. Bit R/W Description PF7 —* R PF6 —* R PF5 —* R If a port F read is performed while PFDDR bits are set to 1, the PFDR values are read. If a port F read is performed while PFDDR bits are cleared to 0, the pin states are read. PF4 —* R PF3 —* R PF2 —* R 1 PF1 R 0 PF0 —* —* 7 6 5 4 3 2 Note: Bit Name Initial Value * Determined by the states of pins PF7 to PF0. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 R Page 275 of 846 H8S/2215 Group Section 9 I/O Ports 9.11.4 Pin Functions Port F is an 8-bit I/O port. Port F pins also function as external interrupt input (IRQ2 and IRQ3), bus control signal, and system clock output (φ). Table 9.63 PF7 Pin Function PF7DDR Pin function 0 1 PF7 input φ output Table 9.64 PF6 Pin Function Operating Mode Modes 4 to 6 PF6DDR Pin function Mode 7 — 0 1 AS output PF6 input PF6 output Table 9.65 PF5 Pin Function Operating Mode Modes 4 to 6 PF5DDR Pin function Mode 7 — 0 1 RD output PF5 input PF5 output Table 9.66 PF4 Pin Function Operating Mode PF4DDR Pin function Page 276 of 846 Modes 4 to 6 Mode 7 — 0 1 HWR output PF4 input PF4 output REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 9 I/O Ports Table 9.67 PF3 Pin Function Operating Mode Modes 4 to 6 Mode 7 Bus Mode 16 bits PF3DDR — 0 1 0 LWR output PF3 input PF3 output PF3 input Pin function 8 bits — ADTRG input * 2 IRQ3 input * 1 PF3 output 1 Notes: 1. ADTRG input when TRGS0=TRGS1=1. 2. When used as an external interrupt input pin, do not use as an I/O pin for another function. Table 9.68 PF2 Pin Function Operating Mode Modes 4 to 6 WAITE 0 PF2DDR Pin function Mode 7 1 — 0 1 — 0 1 PF2 input PF2 output WAIT input PF2 input PF2 output Table 9.69 PF1 Pin Function Operating Mode Modes 4 to 6 BRLE 0 PF1DDR Pin function Mode 7 1 — 0 1 — 0 1 PF1 input PF1 output BACK output PF1 input PF1 output Table 9.70 PF0 Pin Function Operating Mode Modes 4 to 6 BRLE 0 PF0DDR Pin function Note: * 1 — 0 1 — 0 1 PF0 input PF0 output BREQ input IRQ2 input* PF0 input PF0 output When used as an external interrupt input pin, do not use as an I/O pin for another function. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Mode 7 Page 277 of 846 H8S/2215 Group Section 9 I/O Ports 9.12 Port G Port G is a 5-bit I/O port that also has functioning as external interrupt input (IRQ7) and bus control output (CS0 to CS3). The port G has the following registers. • Port G data direction register (PGDDR) • Port G data register (PGDR) • Port G register (PORTG) 9.12.1 Port G Data Direction Register (PGDDR) The individual bits of PGDDR specify input or output for the pins of port G. If port G is, an undefined value will be read. Since this is a write-only register, bit manipulation instructions should not be used to write to it. For details, see section 2.9.4, Accessing Registers Containing Write-Only Bits. Bit Bit Name Initial Value R/W Description 7 to 5 — — Reserved 4 PG4DDR 0/1* W 3 PG3DDR 0 W 2 PG2DDR 0 W 1 PG1DDR 0 W 0 PG0DDR 0 W Undefined These bits are undefined and cannot be modified. Modes 4 to 6 Setting a PGDDR bit to 1 makes the PG4 to PG1 pins bus control signal outputs, while clearing the bit to 0 makes the pin input ports. Signal outputs, while clearing the bit to 0 makes the pin input ports. Setting a PGDDR bit to 1 makes the PG0 pin an output port, while clearing the bit to 0 makes the pin an input port. Mode 7 Setting a PGDDR bit to 1 makes the corresponding port G pin an output port, while clearing the bit to 0 makes the pin an input port. Note: * In modes 4 and 5, set to 1; in modes 6 and 7 cleared to 0. Page 278 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 9.12.2 Section 9 I/O Ports Port G Data Register (PGDR) PGDR stores output data for the port G pins. Bit Bit Name Initial Value R/W Description 7 to 5 — — Reserved 4 PG4DR 0 R/W 3 PG3DR 0 R/W 2 PG2DR 0 R/W 1 PG1DR 0 R/W 0 PG0DR 0 R/W Undefined These bits are undefined and cannot be modified. 9.12.3 An output data for a pin is stored when the pin function is specified to a general purpose output port. Port G Register (PORTG) PORTG shows port G pin states. Bit Bit Name Initial Value R/W Description 7 to 5 — — Reserved 4 PG4 —* R 3 PG3 —* R 2 PG2 —* R 1 PG1 R 0 PG0 —* —* Note: Undefined These bits are undefined and cannot be modified. * R Determined by the states of pins PG4 to PG0. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 If a port G read is performed while PGDDR bits are set to 1, the PGDR values are read. If a port G read is performed while PGDDR bits are cleared to 0, the pin states are read. Page 279 of 846 H8S/2215 Group Section 9 I/O Ports 9.12.4 Pin Functions Port G is an 8-bit I/O port. Port G pins also function as external interrupt inputs (IRQ7) and bus control signals (CS0 to CS3). Table 9.71 PG4 Pin Function Operating Mode Modes 4 to 6 PG4DDR Pin function Mode 7 0 1 0 1 PG4 input CS0 output PG4 input PG4 output Table 9.72 PG3 Pin Function Operating Mode Modes 4 to 6 PG3DDR Pin function Mode 7 0 1 0 1 PG3 input CS1 output PG3 input PG3 output Table 9.73 PG2 Pin Function Operating Mode Modes 4 to 6 PG2DDR Pin function Mode 7 0 1 0 1 PG2 input CS2 output PG2 input PG2 output Table 9.74 PG1 Pin Function Operating Mode Modes 4 to 6 PG1DDR Pin function Mode 7 0 1 0 1 PG1 input CS3 output PG1 input PG1output IRQ7 input* Note: * When used as an external interrupt input pin, do not use as an I/O pin for another function. Table 9.75 PG0 Pin Function PG0DDR Pin function Page 280 of 846 0 1 PG0 input PG0 output REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 9.13 Section 9 I/O Ports Handling of Unused Pins Unused input pins should be fixed high or low. Generally, the input pins of CMOS products are high-impedance. Leaving unused pins open can cause the generation of intermediate levels due to peripheral noise induction. This can result in shoot-through current inside the device and cause it to malfunction. Table 9.76 lists examples of ways to handle unused pins. For the handling of dedicated boundary scan pins that are unused, see section 14.2, Pin Configuration, and section 14.5, Usage Notes. For the handling of dedicated USB pins that are unused, see section 15.9.14, Pin Processing when USB Not Used. Table 9.76 Examples of Ways to Handle Unused Input Pins Pin Name Pin Handling Example Port 1 Connect each pin to Vcc (pull-up) or to Vss (pull-down) via a resistor. Port 3 Port 4 Connect each pin to AVcc (pull-up) or to AVss (pull-down) via a resistor. Port 7 Connect each pin to Vcc (pull-up) or to Vss (pull-down) via a resistor. Port 9 Connect each pin to AVcc (pull-up) or to AVss (pull-down) via a resistor. Port A Connect each pin to Vcc (pull-up) or to Vss (pull-down) via a resistor. Port B Port C Port D Port E Port F Port G REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 281 of 846 Section 9 I/O Ports Page 282 of 846 H8S/2215 Group REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Section 10 16-Bit Timer Pulse Unit (TPU) This LSI has an on-chip 16-bit timer pulse unit (TPU) that comprises three 16-bit timer channels. The function list of the 16-bit timer unit and its block diagram are shown in table 10.1 and figure 10.1, respectively. 10.1 Features • Maximum 8-pulse input/output • Selection of 8 counter input clocks for each channel ⎯ The following operations can be set for each channel Waveform output at compare match, input capture function, counter clear operation, simultaneous writing to multiple timer counters (TCNT), simultaneous clearing using compare match or input capture, simultaneous input/output for individual registers using counter synchronous operation, PWM output using user-defined duty, up to 7-phase PWM output by combination with synchronous operation • Buffer operation settable for channel 0 • Phase counting mode settable independently for each of channels 1 and 2 • Fast access via internal 16-bit bus • 13 interrupt sources • Automatic transfer of register data • A/D converter conversion start trigger can be generated • Module stop mode can be set • Baud rate clock for the SCI0 can be generated by channels 1 and 2 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 283 of 846 TIMTPU2A_010020020100 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Legend: TSTR: Timer start register TSYR: Timer synchro register TCR: Timer control register TMDR: Timer mode register A/D converter convertion start signal TGRC TGRD TGRB TGRB TGRB TCNT TCNT TGRA TCNT TGRA Module data bus TSR TSR TGRA Bus interface Internal data bus TSTR TIER TIER TIER TSR TIOR TIOR TIORH TIORL Common Control logic TMDR Channel 2 TCR TMDR Channel 1 TIOR (H, L): TIER: TSR: TGR (A, B, C, D): TCR SCK0 (to SCI0) TMDR Channel 2: Channel 0 Channel 1: TIOCA0 TIOCB0 TIOCC0 TIOCD0 TIOCA1 TIOCB1 TIOCA2 TIOCB2 Control logic for channels 0 to 2 Input/output pins Channel 0: TCR External clock: φ/1 φ/4 φ/16 φ/64 φ/256 φ/1024 TCLKA TCLKB TCLKC TCLKD TSYR Clock input Internal clock: Interrupt request signals Channel 0: TGI0A TGI0B TGI0C TGI0D TCI0V Channel 1: TGI1A TGI1B TCI1V TCI1U Channel 2: TGI2A TGI2B TCI2V TCI2U Timer I/O control registers (H, L) Timer interrupt enable register Timer status register TImer general registers (A, B, C, D) Figure 10.1 Block Diagram of TPU Page 284 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Table 10.1 TPU Functions Item Channel 0 Channel 1 Channel 2 Count clock φ/1 φ/1 φ/1 φ/4 φ/4 φ/4 φ/16 φ/16 φ/16 φ/64 φ/64 φ/64 TCLKA φ/256 φ/1024 TCLKB TCLKA TCLKA TCLKC TCLKB TCLKB TCLKD General registers TCLKC TGRA_0 TGRA_1 TGRA_2 TGRB_0 TGRB_1 TGRB_2 General registers/buffer TGRC_0 registers TGRD_0 not possible not possible I/O pins TIOCA0 TIOCA1 TIOCA2 TIOCB0 TIOCB1 TIOCB2 TIOCC0 TIOCD0 Counter clear function TGR compare match TGR compare match TGR compare match or or input capture or input capture input capture Compare match output possible 0 output possible possible 1 output possible possible possible Toggle output possible possible possible Input capture function possible possible possible Synchronous operation possible possible possible PWM mode possible possible possible Phase counting mode not possible possible possible Buffer operation possible not possible not possible REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 285 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Item Channel 0 DTC activation TGR compare match or TGR compare match or TGR compare match input capture input capture or input capture DMAC activation TGRA_0 compare match or input capture TGRA_1 compare match or input capture TGRA_2 compare match or input capture A/D converter trigger TGRA_0 compare match or input capture TGRA_1 compare match or input capture TGRA_2 compare match or input capture 5 sources 4 sources 4 sources • • • Interrupt sources • • • • Page 286 of 846 Compare match or input capture 0A Compare match or input capture 0B Compare match or input capture 0C Compare match or input capture 0D Overflow Channel 1 • • • Compare match or input capture 1A Compare match or input capture 1B Overflow Underflow Channel 2 • • • Compare match or input capture 2A Compare match or input capture 2B Overflow Underflow REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 10.2 Section 10 16-Bit Timer Pulse Unit (TPU) Input/Output Pins Table 10.2 Pin Configuration Channel Symbol I/O Function All TCLKA Input External clock A input pin (Channel 1 phase counting mode A phase input) TCLKB Input External clock B input pin (Channel 1 phase counting mode B phase input) TCLKC Input External clock C input pin (Channel 2 phase counting mode A phase input) TCLKD Input External clock D input pin (Channel 2 phase counting mode B phase input) TIOCA0 I/O TGRA_0 input capture input/output compare output/PWM output pin TIOCB0 I/O TGRB_0 input capture input/output compare output/PWM output pin TIOCC0 I/O TGRC_0 input capture input/output compare output/PWM output pin TIOCD0 I/O TGRD_0 input capture input/output compare output/PWM output pin TIOCA1 I/O TGRA_1 input capture input/output compare output/PWM output pin TIOCB1 I/O TGRB_1 input capture input/output compare output/PWM output pin TIOCA2 I/O TGRA_2 input capture input/output compare output/PWM output pin TIOCB2 I/O TGRB_2 input capture input/output compare output/PWM output pin 0 1 2 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 287 of 846 Section 10 16-Bit Timer Pulse Unit (TPU) 10.3 H8S/2215 Group Register Descriptions The TPU has the following registers. • Timer control register_0 (TCR_0) • Timer mode register_0 (TMDR_0) • Timer I/O control register H_0 (TIORH_0) • Timer I/O control register L_0 (TIORL_0) • Timer interrupt enable register_0 (TIER_0) • Timer status register_0 (TSR_0) • Timer counter_0 (TCNT_0) • Timer general register A_0 (TGRA_0) • Timer general register B_0 (TGRB_0) • Timer general register C_0 (TGRC_0) • Timer general register D_0 (TGRD_0) • Timer control register_1 (TCR_1) • Timer mode register_1 (TMDR_1) • Timer I/O control register _1 (TIOR_1) • Timer interrupt enable register_1 (TIER_1) • Timer status register_1 (TSR_1) • Timer counter_1 (TCNT_1) • Timer general register A_1 (TGRA_1) • Timer general register B_1 (TGRB_1) • Timer control register_2 (TCR_2) • Timer mode register_2 (TMDR_2) • Timer I/O control register_2 (TIOR_2) • Timer interrupt enable register_2 (TIER_2) • Timer status register_2 (TSR_2) • Timer counter_2 (TCNT_2) • Timer general register A_2 (TGRA_2) • Timer general register B_2 (TGRB_2) Common Registers • Timer start register (TSTR) • Timer synchro register (TSYR) Page 288 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 10.3.1 Section 10 16-Bit Timer Pulse Unit (TPU) Timer Control Register (TCR) The TCR registers control the TCNT operation for each channel. The TPU has a total of three TCR registers, one for each channel (channels 0 to 2). TCR register settings should be made only when TCNT operation is stopped. Bit Bit Name Initial value R/W Description 7 CCLR2 0 R/W Counter Clear 2 to 0 6 CCLR1 0 R/W 5 CCLR0 0 R/W These bits select the TCNTcounter clearing source. See tables 10.3 and 10.4 for details. 4 CKEG1 0 R/W Clock Edge 1 and 0 3 CKEG0 0 R/W These bits select the input clock edge. When the internal clock is counted using both edges, the input clock frequency is halved (e.g., φ/4 both edges = φ/2 rising edge). If phase counting mode is used on channels 1, 2, 4, and 5, this setting is ignored and the phase counting mode setting has priority. Internal clock edge selection is valid when the input clock is φ/4 or slower. If φ/1 is selected as the input clock, this setting is ignored and count at falling edge of φ is selected. 00: Count at rising edge 01: Count at falling edge 1×: Count at both edges Legend: ×: Don’t care 2 TPSC2 0 R/W Time Prescaler 2 to 0 1 TPSC1 0 R/W 0 TPSC0 0 R/W These bits select the TCNT counter clock. The clock source can be selected independently for each channel. See tables 10.5 to 10.10 for details. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 289 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Table 10.3 CCLR2 to CCLR0 (channel 0) Bit 7 Bit 6 Bit 5 Channel CCLR2 CCLR1 CCLR0 0 0 0 0 TCNT clearing disabled 1 TCNT cleared by TGRA compare match/input capture 0 TCNT cleared by TGRB compare match/input capture 1 TCNT cleared by counter clearing for another channel performing synchronous 1 clearing/synchronous operation* 0 TCNT clearing disabled 1 TCNT cleared by TGRC compare 2 match/input capture* 0 TCNT cleared by TGRD compare 2 match/input capture* 1 TCNT cleared by counter clearing for another channel performing synchronous 1 clearing/synchronous operation* 1 1 0 1 Description Notes: 1. Synchronous operation setting is performed by setting the SYNC bit in TSYR to 1. 2. When TGRC or TGRD is used as a buffer register. TCNT is not cleared because the buffer register setting has priority, and compare match/input capture does not occur. Table 10.4 CCLR2 to CCLR0 (channels 1 and 2) Bit 7 Bit 6 Bit 5 Channel 2 Reserved* CCLR1 CCLR0 Description 1, 2 0 0 TCNT clearing disabled 1 TCNT cleared by TGRA compare match/input capture 0 TCNT cleared by TGRB compare match/input capture 1 TCNT cleared by counter clearing for another channel performing synchronous 1 clearing/synchronous operation* 0 1 Notes: 1. Synchronous operation setting is performed by setting the SYNC bit in TSYR to 1. 2. Bit 7 is reserved in channels 1 and 2. It is always read as 0 and cannot be modified. Page 290 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Table 10.5 TPSC2 to TPSC0 (channel 0) Bit 2 Bit 1 Bit 0 Channel TPSC2 TPSC1 TPSC0 Description 0 0 0 0 Internal clock: counts on φ/1 1 Internal clock: counts on φ/4 0 Internal clock: counts on φ/16 1 Internal clock: counts on φ/64 0 External clock: counts on TCLKA pin input 1 External clock: counts on TCLKB pin input 0 External clock: counts on TCLKC pin input 1 External clock: counts on TCLKD pin input 1 1 0 1 Table 10.6 TPSC2 to TPSC0 (channel 1) Bit 2 Bit 1 Bit 0 Channel TPSC2 TPSC1 TPSC0 Description 1 0 0 0 Internal clock: counts on φ/1 1 Internal clock: counts on φ/4 1 0 Internal clock: counts on φ/16 1 Internal clock: counts on φ/64 0 External clock: counts on TCLKA pin input 1 External clock: counts on TCLKB pin input 0 Internal clock: counts on φ/256 1 Setting prohibited 1 0 1 Note: This setting is ignored when channel 1 is in phase counting mode. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 291 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Table 10.7 TPSC2 to TPSC0 (channel 2) Bit 2 Bit 1 Bit 0 Channel TPSC2 TPSC1 TPSC0 Description 2 0 0 0 Internal clock: counts on φ/1 1 Internal clock: counts on φ/4 0 Internal clock: counts on φ/16 1 Internal clock: counts on φ/64 0 External clock: counts on TCLKA pin input 1 External clock: counts on TCLKB pin input 0 External clock: counts on TCLKC pin input 1 Internal clock: counts on φ/1024 1 1 0 1 Note: This setting is ignored when channel 1 is in phase counting mode. Page 292 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 10.3.2 Section 10 16-Bit Timer Pulse Unit (TPU) Timer Mode Register (TMDR) The TMDR registers are used to set the operating mode for each channel. The TPU has three TMDR registers, one for each channel. TMDR register settings should be made only when TCNT operation is stopped. Bit Bit Name Initial value R/W 7, — — All 1 6 5 Description Reserved These bits are always read as 1 and cannot be modified. BFB 0 R/W Buffer Operation B Specifies whether TGRB is to operate in the normal way, or TGRB and TGRD are to be used together for buffer operation. When TGRD is used as a buffer register. TGRD input capture/output compare is not generation. In channels 1 and 2, which have no TGRD, bit 5 is reserved. It is always read as 0 and cannot be modified. 0: TGRB operates normally 1: TGRB and TGRD used together for buffer operation 4 BFA 0 R/W Buffer Operation A Specifies whether TGRA is to operate in the normal way, or TGRA and TGRC are to be used together for buffer operation. When TGRC is used as a buffer register, TGRC input capture/output compare is not generated. In channels 1 and 2, which have no TGRC, bit 4 is reserved. It is always read as 0 and cannot be modified. 0: TGRA operates normally 1: TGRA and TGRC used together for buffer operation 3 MD3 0 R/W Modes 3 to 0 2 MD2 0 R/W These bits are used to set the timer operating mode. 1 MD1 0 R/W 0 MD0 0 R/W MD3 is a reserved bit. In a write, the write value should always be 0. See table 10.8, for details. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 293 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Table 10.8 MD3 to MD0 Bit 3 Bit2 Bit 1 Bit 0 1 MD3* 2 MD2* MD1 MD0 Description 0 0 0 0 Normal operation 1 Reserved 0 PWM mode 1 1 PWM mode 2 0 Phase counting mode 1 1 Phase counting mode 2 0 Phase counting mode 3 1 Phase counting mode 4 × — 1 1 0 1 1 × × Legend: ×: Don’t care Notes: 1. MD3 is reserved bit. In a write, it should be written with 0. 2. Phase counting mode cannot be set for channels 0 and 3. In this case, 0 should always be written to MD2. Page 294 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 10.3.3 Section 10 16-Bit Timer Pulse Unit (TPU) Timer I/O Control Register (TIOR) The TIOR registers control the TGR registers. The TPU has eight TIOR registers, two each for channel 0, and one each for channels 1 and 2. Care is required since TIOR is affected by the TMDR setting. The initial output specified by TIOR is valid when the counter is stopped (the CST bit in TSTR is cleared to 0). Note also that, in PWM mode 2, the output at the point at which the counter is cleared to 0 is specified. When TGRC or TGRD is designated for buffer operation, this setting is invalid and the register operates as a buffer register. • TIORH_0, TIOR_1, TIOR_2 Bit Bit Name Initial value R/W Description 7 IOB3 0 R/W I/O Control B3 to B0 6 IOB2 0 R/W Specify the function of TGRB. 5 IOB1 0 R/W 4 IOB0 0 R/W 3 IOA3 0 R/W I/O Control A3 to A0 2 IOA2 0 R/W Specify the function of TGRA. 1 IOA1 0 R/W 0 IOA0 0 R/W Bit Bit Name Initial value R/W Description 7 IOD3 0 R/W I/O Control D3 to D0 6 IOD2 0 R/W Specify the function of TGRD. 5 IOD1 0 R/W 4 IOD0 0 R/W 3 IOC3 0 R/W I/O Control C3 to C0 2 IOC2 0 R/W Specify the function of TGRC. 1 IOC1 0 R/W 0 IOC0 0 R/W • TIORL_0 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 295 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Table 10.9 TIORH_0 (channel 0) Description Bit 7 Bit 6 Bit 5 Bit 4 TGRB_0 IOB3 IOB2 IOB1 IOB0 Function TIOCB0 Pin Function 0 0 0 0 Output compare register Output disabled 1 1 0 Initial output is 0 output 0 output at compare match Initial output is 0 output 1 output at compare match 1 Initial output is 0 output Toggle output at compare match 1 0 0 Output disabled 1 Initial output is 1 output 0 output at compare match 1 0 Initial output is 1 output 1 output at compare match Initial output is 1 output 1 Toggle output at compare match 1 0 1 0 0 Input capture register Capture input source is TIOCB0 pin Input capture at rising edge 1 Capture input source is TIOCB0 pin Input capture at falling edge 1 × Capture input source is TIOCB0 pin Input capture at both edges × × Setting prohibited Legend: ×: Don’t care Page 296 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Table 10.10 TIORH_0 (channel 0) Description Bit 3 Bit 2 Bit 1 Bit 0 TGRA_0 IOA3 IOA2 IOA1 IOA0 Function TIOCA0 Pin Function 0 0 0 0 Output compare register Output disabled 1 1 0 Initial output is 0 output 0 output at compare match Initial output is 0 output 1 output at compare match 1 Initial output is 0 output Toggle output at compare match 1 0 0 Output disabled 1 Initial output is 1 output 0 output at compare match 1 0 Initial output is 1 output 1 output at compare match Initial output is 1 output 1 Toggle output at compare match 1 0 0 0 1 Input capture register Capture input source is TIOCA0 pin Input capture at rising edge Capture input source is TIOCA0 pin Input capture at falling edge 1 × Capture input source is TIOCA0 pin Input capture at both edges 1 × × Setting prohibited Legend: ×: Don’t care REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 297 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Table 10.11 TIORL_0 (channel 0) Description Bit 7 Bit 6 Bit 5 Bit 4 TGRD_0 IOD3 IOD2 IOD1 IOD0 Function 0 0 0 0 Output Compare register* 1 1 0 TIOCD0 Pin Function Output disabled Initial output is 0 output 0 output at compare match Initial output is 0 output 1 output at compare match 1 Initial output is 0 output Toggle output at compare match 1 0 0 Output disabled 1 Initial output is 1 output 0 output at compare match 1 0 Initial output is 1 output 1 Initial output is 1 output Toggle output at compare match 1 0 1 0 0 Input capture register* Capture input source is TIOCD0 pin Input capture at rising edge 1 Capture input source is TIOCD0 pin Input capture at falling edge 1 × Capture input source is TIOCD0 pin Input capture at both edges × × Setting prohibited Legend: ×: Don’t care Note: * When the BFB bit in TMDR_0 is set to 1 and TGRD_0 is used as a buffer register, this setting is invalid and input capture/output compare is not generated. Page 298 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Table 10.12 TIORL_0 (channel 0) Description Bit 3 Bit 2 Bit 1 Bit 0 TGRC_0 IOC3 IOC2 IOC1 IOC0 Function 0 0 0 0 Output compare register* 1 1 0 TIOCC0 Pin Function Output disabled Initial output is 0 output 0 output at compare match Initial output is 0 output 1 output at compare match 1 Initial output is 0 output Toggle output at compare match 1 0 0 Output disabled 1 Initial output is 1 output 0 output at compare match 1 0 Initial output is 1 output 1 output at compare match Initial output is 1 output 1 Toggle output at compare match 1 0 1 0 0 Input capture register* Capture input source is TIOCC0 pin Input capture at rising edge 1 Capture input source is TIOCC0 pin Input capture at falling edge 1 × Capture input source is TIOCC0 pin Input capture at both edges × × Setting prohibited Legend: ×: Don’t care Note: * When the BFA bit in TMDR_0 is set to 1and TGRC_0 is used as a buffer register, this setting is invalid and input capture/output compare is not generated. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 299 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Table 10.13 TIOR_1 (channel 1) Description Bit 7 Bit 6 Bit 5 Bit 4 TGRB_1 IOB3 IOB2 IOB1 IOB0 Function 0 0 0 0 Output compare register 1 1 0 TIOCB1 Pin Function Output disabled Initial output is 0 output 0 output at compare match Initial output is 0 output 1 output at compare match 1 Initial output is 0 output Toggle output at compare match 1 0 0 Output disabled 1 Initial output is 1 output 0 output at compare match 1 0 Initial output is 1 output 1 output at compare match Initial output is 1 output 1 Toggle output at compare match 1 0 1 0 0 Input capture register Capture input source is TIOCB1 pin Input capture at rising edge 1 Capture input source is TIOCB1 pin Input capture at falling edge 1 × Capture input source is TIOCB1 pin Input capture at both edges × × Setting prohibited Legend: ×: Don’t care Page 300 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Table 10.14 TIOR_1 (channel 1) Description Bit 3 Bit 2 Bit 1 Bit 0 TGRA_1 IOA3 IOA2 IOA1 IOA0 Function 0 0 0 0 Output compare register 1 1 0 TIOCA1 Pin Function Output disabled Initial output is 0 output 0 output at compare match Initial output is 0 output 1 output at compare match 1 Initial output is 0 output Toggle output at compare match 1 0 0 Output disabled 1 Initial output is 1 output 0 output at compare match 1 0 Initial output is 1 output 1 output at compare match Initial output is 1 output 1 Toggle output at compare match 1 0 1 0 0 Input capture register Capture input source is TIOCA1 pin Input capture at rising edge 1 Capture input source is TIOCA1 pin Input capture at falling edge 1 × Capture input source is TIOCA1 pin Input capture at both edges × × Setting prohibited Legend: ×: Don’t care REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 301 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Table 10.15 TIOR_2 (channel 2) Description Bit 7 Bit 6 Bit 5 Bit 4 TGRB_2 IOB3 IOB2 IOB1 IOB0 Function 0 0 0 0 Output compare register 1 1 0 TIOCB2 Pin Function Output disabled Initial output is 0 output 0 output at compare match Initial output is 0 output 1 output at compare match 1 Initial output is 0 output Toggle output at compare match 1 0 0 Output disabled 1 Initial output is 1 output 0 output at compare match 1 0 Initial output is 1 output 1 output at compare match Initial output is 1 output 1 Toggle output at compare match 1 × 0 1 0 Input capture register Capture input source is TIOCB2 pin Input capture at rising edge 1 Capture input source is TIOCB2 pin Input capture at falling edge × Capture input source is TIOCB2 pin Input capture at both edges Legend ×: Don’t care Page 302 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Table 10.16 TIOR_2 (channel 2) Description Bit 3 Bit 2 Bit 1 Bit 0 TGRA_2 IOA3 IOA2 IOA1 IOA0 Function 0 0 0 0 Output compare register 1 1 0 TIOCA2 Pin Function Output disabled Initial output is 0 output 0 output at compare match Initial output is 0 output 1 output at compare match 1 Initial output is 0 output Toggle output at compare match 1 0 0 Output disabled 1 Initial output is 1 output 0 output at compare match 1 0 Initial output is 1 output 1 output at compare match Initial output is 1 output 1 Toggle output at compare match 1 × 0 1 0 Input capture register Capture input source is TIOCA2 pin Input capture at rising edge 1 Capture input source is TIOCA2 pin Input capture at falling edge × Capture input source is TIOCA2 pin Input capture at both edges Legend: ×: Don’t care REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 303 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) 10.3.4 Timer Interrupt Enable Register (TIER) The TIER registers control enabling or disabling of interrupt requests for each channel. The TPU has three TIER registers, one for each channel. Bit Bit Name Initial value R/W Description 7 TTGE R/W A/D Conversion Start Request Enable 0 Enables or disables generation of A/D conversion start requests by TGRA input capture/compare match. 0: A/D conversion start request generation disabled 1: A/D conversion start request generation enabled 6 — 1 — Reserved This bit is always read as 1 and cannot be modified. 5 TCIEU 0 R/W Underflow Interrupt Enable Enables or disables interrupt requests (TCU) by the TCFU flag when the TCFU flag in TSR is set to 1 in channels 1 and 2. In channel 0, bit 5 is reserved. 0: Interrupt requests (TCIU) by TCFU disabled 1: Interrupt requests (TCIU) by TCFU enabled 4 TCIEV 0 R/W Overflow Interrupt Enable Enables or disables interrupt requests (TCIV) by the TCFV flag when the TCFV flag in TSR is set to 1. 0: Interrupt requests (TCIV) by TCFV disabled 1: Interrupt requests (TCIV) by TCFV enabled 3 TGIED 0 R/W TGR Interrupt Enable D Enables or disables interrupt requests (TGID) by the TGFD bit when the TGFD bit in TSR is set to 1 in channel 0. In channels 1 and 2, bit 3 is reserved. It is always read as 0 and cannot be modified. 0: Interrupt requests (TGID) by TGFD disabled 1: Interrupt requests (TGID) by TGFD enabled 2 TGIEC 0 R/W TGR Interrupt Enable C Enables or disables interrupt requests (TGIC) by the TGFC bit when the TGFC bit in TSR is set to 1 in channel 0. In channels 1 and 2, bit 2 is reserved. It is always read as 0 and cannot be modified. 0: Interrupt requests (TGIC) by TGFC disabled 1: Interrupt requests (TGIC) by TGFC enabled Page 304 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Bit Bit Name Initial value R/W Description 1 TGIEB R/W TGR Interrupt Enable B 0 Enables or disables interrupt requests (TGIB) by the TGFB bit when the TGFB bit in TSR is set to 1. 0: Interrupt requests (TGIB) by TGFB disabled 1: Interrupt requests (TGIB) by TGFB enabled 0 TGIEA 0 R/W TGR Interrupt Enable A Enables or disables interrupt requests (TGIA) by the TGFA bit when the TGFA bit in TSR is set to 1. 0: Interrupt requests (TGIA) by TGFA disabled 1: Interrupt requests (TGIA) by TGFA enabled REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 305 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) 10.3.5 Timer Status Register (TSR) The TSR registers indicate the status of each channel. The TPU has three TSR registers, one for each channel. Bit Bit Name Initial value R/W 7 TCFD 1 R Description Count Direction Flag Status flag that shows the direction in which TCNT counts in channels 1 and 2. In channel 0, bit 7 is reserved. It is always read as 0 and cannot be modified. 0: TCNT counts down 1: TCNT counts up 6 — 1 — 0 R/(W)* Reserved This bit is always read as 1 and cannot be modified. 5 TCFU Underflow Flag Status flag that indicates that TCNT underflow has occurred when channels 1 and 2 are set to phase counting mode. The write value should always be 0 to clear this flag. In channel 0, bit 5 is reserved. [Setting condition] • When the TCNT value underflows (change from H'0000 to H'FFFF) [Clearing condition] • 4 TCFV 0 R/(W)* When 0 is written to TCFU after reading TCFU = 1 Overflow Flag Status flag that indicates that TCNT overflow has occurred. The write value should always be 0 to clear this flag. [Setting condition] • When the TCNT value overflows (change from H'FFFF to H'0000) [Clearing condition] • Page 306 of 846 When 0 is written to TCFV after reading TCFV = 1 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Bit Bit Name Initial value R/W 3 TGFD 0 R/(W)* Description Input Capture/Output Compare Flag D Status flag that indicates the occurrence of TGRD input capture or compare match in channel 0. The write value should always be 0 to clear this flag. In channels 1 and 2, bit 3 is reserved. It is always read as 0 and cannot be modified. [Setting conditions] • When TCNT = TGRD while TGRD is functioning as output compare register • When TCNT value is transferred to TGRD by input capture signal while TGRD is functioning as input capture register [Clearing conditions] • • 2 TGFC 0 R/(W)* When DTC is activated by TGID interrupt, DISEL bit in MRB of DTC is cleared to 0, and transfer counter value is not 0 When 0 is written to TGFD after reading TGFD = 1 Input Capture/Output Compare Flag C Status flag that indicates the occurrence of TGRC input capture or compare match in channel 0. The write value should always be 0 to clear this flag. In channels 1 and 2, bit 2 is reserved. It is always read as 0 and cannot be modified. [Setting conditions] • When TCNT = TGRC while TGRC is functioning as output compare register • When TCNT value is transferred to TGRC by input capture signal while TGRC is functioning as input capture register [Clearing conditions] • • REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 When DTC is activated by TGIC interrupt, DISEL bit in MRB of DTC is cleared to 0, and transfer counter value is not 0 When 0 is written to TGFC after reading TGFC = 1 Page 307 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Bit Bit Name Initial value R/W 1 TGFB 0 R/(W)* Description Input Capture/Output Compare Flag B Status flag that indicates the occurrence of TGRB input capture or compare match. The write value should always be 0 to clear this flag. [Setting conditions] • When TCNT = TGRB while TGRB is functioning as output compare register • When TCNT value is transferred to TGRB by input capture signal while TGRB is functioning as input capture register [Clearing conditions] • • 0 TGFA 0 R/(W)* When DTC is activated by TGIB interrupt, DISEL bit in MRB of DTC is cleared to 0, and transfer counter value is not 0 When 0 is written to TGFB after reading TGFB = 1 Input Capture/Output Compare Flag A Status flag that indicates the occurrence of TGRA input capture or compare match. The write value should always be 0 to clear this flag. [Setting conditions] • When TCNT = TGRA while TGRA is functioning as output compare register • When TCNT value is transferred to TGRA by input capture signal while TGRA is functioning as input capture register [Clearing conditions] • • Note: * When DTC is activated by TGIA interrupt, DISEL bit in MRB of DTC is cleared to 0, and transfer counter value is not 0 When 0 is written to TGFA after reading TGFA = 1 The write value should always be 0 to clear the flag. Page 308 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 10.3.6 Section 10 16-Bit Timer Pulse Unit (TPU) Timer Counter (TCNT) The TCNT registers are 16-bit counters. The TPU has three TCNT counters, one for each channel. The TCNT counters are initialized to H'0000 by a reset, and in hardware standby mode. The TCNT counters cannot be accessed in 8-bit units; they must always be accessed as a 16-bit unit. 10.3.7 Timer General Register (TGR) The TGR registers are 16-bit registers with a dual function as output compare and input capture registers. The TPU has 16 TGR registers, four each for channel 0 and two each for channels 1 and 2. TGRC and TGRD for channel 0 can also be designated for operation as buffer registers. The TGR registers cannot be accessed in 8-bit units; they must always be accessed as a 16-bit unit. TGR buffer register combinations are TGRA—TGRC and TGRB—TGRD. 10.3.8 Timer Start Register (TSTR) TSTR is an 8-bit readable/writable register that selects operation/stoppage for channels 0 to 2. When setting the operating mode in TMDR or setting the count clock in TCR, first stop the TCNT counter. Bit Bit Name Initial Value R/W Description 7 to 3 — — Reserved 2 CST2 0 R/W Counter Start 2 to 0 (CST2 to CST0) 1 CST1 0 R/W These bits select operation or stoppage for TCNT. 0 CST0 0 R/W If 0 is written to the CST bit during operation with the TIOC pin designated for output, the counter stops but the TIOC pin output compare output level is retained. All 0 The write value should always be 0. If TIOR is written to when the CST bit is cleared to 0, the pin output level will be changed to the set initial output value. 0: TCNT_2 to TCNT_0 count operation is stopped 1: TCNT_2 to TCNT_0 performs count operation REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 309 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) 10.3.9 Timer Synchro Register (TSYR) TSYR selects independent operation or synchronous operation for the channel 0 to 2 TCNT counters. A channel performs synchronous operation when the corresponding bit in TSYR is set to 1. Bit Bit Name Initial Value R/W 7 to 3 — — 2 SYNC2 0 R/W Timer Synchro 2 to 0 1 SYNC1 0 R/W 0 SYNC0 0 R/W These bits select whether operation is independent of or synchronized with other channels. When synchronous operation is selected, synchronous presetting of multiple channels, and synchronous clearing through counter clearing on another channel are possible. To set synchronous operation, the SYNC bits for at least two channels must be set to 1. To set synchronous clearing, in addition to the SYNC bit, the TCNT clearing source must also be set by means of bits CCLR2 to CCLR0 in TCR. All 0 Description Reserved The write value should always be 0. 0: TCNT_2 to TCNT_0 operates independently (TCNT presetting /clearing is unrelated to other channels) 1: TCNT_2 to TCNT_0 performs synchronous operation TCNT synchronous presetting/synchronous clearing is possible Page 310 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) 10.4 Interface to Bus Master 10.4.1 16-Bit Registers TCNT and TGR are 16-bit registers. As the data bus to the bus master is 16 bits wide, these registers can be read and written to in 16-bit units. These registers cannot be read from or written to in 8-bit units; 16-bit access must always be used. An example of 16-bit register access operation is shown in figure 10.2. Internal data bus H Bus master L Module data bus Bus interface TCNTH TCNTL Figure 10.2 16-Bit Register Access Operation [Bus Master ↔ TCNT (16 Bits)] 10.4.2 8-Bit Registers Registers other than TCNT and TGR are 8-bit. As the data bus to the CPU is 16 bits wide, these registers can be read and written to in 16-bit units. They can also be read and written to in 8-bit units. Examples of 8-bit register access operation are shown in figures 10.3 to 10.5. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 311 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Internal data bus H Bus master L Module data bus Bus interface TCR Figure 10.3 8-Bit Register Access Operation [Bus Master ↔ TCR (Upper 8 Bits)] Internal data bus H Bus master L Module data bus Bus interface TMDR Figure 10.4 8-Bit Register Access Operation [Bus Master ↔ TMDR (Lower 8 Bits)] Internal data bus H Bus master L Module data bus Bus interface TCR TMDR Figure 10.5 8-Bit Register Access Operation [Bus Master ↔ TCR and TMDR (16 Bits)] Page 312 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) 10.5 Operation 10.5.1 Basic Functions Each channel has a TCNT and TGR. TCNT performs up-counting, and is also capable of freerunning operation, synchronous counting, and external event counting. Each TGR can be used as an input capture register or output compare register. Counter Operation: When one of bits CST0 to CST2 is set to 1 in TSTR, the TCNT counter for the corresponding channel starts counting. TCNT can operate as a free-running counter, periodic counter, and so on. 1. Example of count operation setting procedure Figure 10.6 shows an example of the count operation setting procedure. Operation selection Select counter clock [1] Periodic counter Select counter clearing source Free-running counter [2] [3] Select output compare register Set period [4] Start count operation [5] <Periodic counter> Start count operation <Free-running counter> [1] Select the counter clock with bits TPSC2 to TPSC0 in TCR. At the same time, select the input clock edge with bits CKEG1 and CKEG0 in TCR. [2] For periodic counter operation, select the TGR to be used as the TCNT clearing source with bits CCLR2 to CCLR0 in TCR. [3] Designate the TGR selected in [2] as an output compare register by means of TIOR. [4] Set the periodic counter cycle in the TGR selected in [2]. [5] Set the CST bit in TSTR to 1 to start the counter operation. Figure 10.6 Example of Counter Operation Setting Procedure REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 313 of 846 Section 10 16-Bit Timer Pulse Unit (TPU) H8S/2215 Group 2. Free-running count operation and periodic count operation Immediately after a reset, the TPU’s TCNT counters are all designated as free-running counters. When the relevant bit in TSTR is set to 1 the corresponding TCNT counter starts upcount operation as a free-running counter. When TCNT overflows (from H'FFFF to H'0000), the TCFV bit in TSR is set to 1. If the value of the corresponding TCIEV bit in TIER is 1 at this point, the TPU requests an interrupt. After overflow, TCNT starts counting up again from H'0000. Figure 10.7 illustrates free-running counter operation. TCNT value H'FFFF H'0000 Time CST bit TCFV Figure 10.7 Free-Running Counter Operation When compare match is selected as the TCNT clearing source, the TCNT counter for the relevant channel performs periodic count operation. The TGR register for setting the period is designated as an output compare register, and counter clearing by compare match is selected by means of bits CCLR2 to CCLR0 in TCR. After the settings have been made, TCNT starts up-count operation as periodic counter when the corresponding bit in TSTR is set to 1. When the count value matches the value in TGR, the TGF bit in TSR is set to 1 and TCNT is cleared to H'0000. If the value of the corresponding TGIE bit in TIER is 1 at this point, the TPU requests an interrupt. After a compare match, TCNT starts counting up again from H'0000. Figure 10.8 illustrates periodic counter operation. Page 314 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Counter cleared by TGR compare match TCNT value TGR H'0000 Time CST bit Flag cleared by software or DTC activation TGF Figure 10.8 Periodic Counter Operation Waveform Output by Compare Match: The TPU can perform 0, 1, or toggle output from the corresponding output pin using compare match. 1. Example of setting procedure for waveform output by compare match Figure 10.9 shows an example of the setting procedure for waveform output by compare match. Output selection Select waveform output mode [1] Set output timing [2] Start count operation [3] [1] Select initial value 0 output or 1 output, and compare match output value 0 output, 1 output, or toggle output, by means of TIOR. The set initial value is output at the TIOC pin unit the first compare match occurs. [2] Set the timing for compare match generation in TGR. [3] Set the CST bit in TSTR to 1 to start the count operation. <Waveform output> Figure 10.9 Example of Setting Procedure for Waveform Output by Compare Match REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 315 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) 2. Examples of waveform output operation Figure 10.10 shows an example of 0 output/1 output. In this example TCNT has been designated as a free-running counter, and settings have been made so that 1 is output by compare match A, and 0 is output by compare match B. When the set level and the pin level coincide, the pin level does not change. TCNT value H'FFFF TGRA TGRB Time H'0000 No change No change 1 output TIOCA No change TIOCB 0 output No change Figure 10.10 Example of 0 Output/1 Output Operation Figure 10.11 shows an example of toggle output. In this example TCNT has been designated as a periodic counter (with counter clearing performed by compare match B), and settings have been made so that output is toggled by both compare match A and compare match B. TCNT value Counter cleared by TGRB compare match H'FFFF TGRB TGRA Time H'0000 Toggle output TIOCB Toggle output TIOCA Figure 10.11 Example of Toggle Output Operation Page 316 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Input Capture Function: The TCNT value can be transferred to TGR on detection of the TIOC pin input edge. Rising edge, falling edge, or both edges can be selected as the detected edge. 1. Example of input capture operation setting procedure Figure 10.12 shows an example of the input capture operation setting procedure. Input selection Select input capture input Start count [1] Designate TGR as an input capture register by means of TIOR, and select rising edge, falling edge, or both edges as the input capture source and input signal edge. [2] Set the CST bit in TSTR to 1 to start the count operation. [1] [2] <Input capture operation> Figure 10.12 Example of Input Capture Operation Setting Procedure REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 317 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) 2. Example of input capture operation Figure 10.13 shows an example of input capture operation. In this example both rising and falling edges have been selected as the TIOCA pin input capture input edge, falling edge has been selected as the TIOCB pin input capture input edge, and counter clearing by TGRB input capture has been designated for TCNT. Counter cleared by TIOCB input (falling edge) TCNT value H'0180 H'0160 H'0010 H'0005 Time H'0000 TIOCA TGRA H'0005 H'0160 H'0010 TIOCB TGRB H'0180 Figure 10.13 Example of Input Capture Operation Page 318 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 10.5.2 Section 10 16-Bit Timer Pulse Unit (TPU) Synchronous Operation In synchronous operation, the values in a number of TCNT counters can be rewritten simultaneously (synchronous presetting). Also, a number of TCNT counters can be cleared simultaneously by making the appropriate setting in TCR (synchronous clearing). Synchronous operation enables TGR to be incremented with respect to a single time base. Channels 0 to 2 can all be designated for synchronous operation. Example of Synchronous Operation Setting Procedure: Figure 10.14 shows an example of the synchronous operation setting procedure. Synchronous operation selection Set synchronous operation [1] Synchronous presetting Set TCNT Synchronous clearing [2] Clearing source generation channel? No Yes <Synchronous presetting> Select counter clearing source [3] Set synchronous counter clearing [4] Start count [5] Start count [5] <Counter clearing> <Synchronous clearing> [1] Set to 1 the SYNC bits in TSYR corresponding to the channels to be designated for synchronous operation. [2] When the TCNT counter of any of the channels designated for synchronous operation is written to, the same value is simultaneously written to the other TCNT counters. [3] Use bits CCLR2 to CCLR0 in TCR to specify TCNT clearing by input capture/output compare, etc. [4] Use bits CCLR2 to CCLR0 in TCR to designate synchronous clearing for the counter clearing source. [5] Set to 1 the CST bits in TSTR for the relevant channels, to start the count operation. Figure 10.14 Example of Synchronous Operation Setting Procedure REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 319 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Example of Synchronous Operation: Figure 10.15 shows an example of synchronous operation. In this example, synchronous operation and PWM mode 1 have been designated for channels 0 to 2, TGRB_0 compare match has been set as the channel 0 counter clearing source, and synchronous clearing has been set for the channel 1 and 2 counter clearing sources. Three-phase PWM waveforms are output from pins TIOC0A, TIOC1A, and TIOC2A. At this time, synchronous presetting, and synchronous clearing by TGRB_0 compare match, is performed for channel 0 to 2 TCNT counters, and the data set in TGRB_0 is used as the PWM cycle. For details of PWM modes, see section 10.5.4, PWM Modes. Synchronous clearing by TGRB_0 compare match TCNT0 to TCNT2 values TGRB_0 TGRB_1 TGRA_0 TGRB_2 TGRA_1 TGRA_2 Time H'0000 TIOCA_0 TIOCA_1 TIOCA_2 Figure 10.15 Example of Synchronous Operation 10.5.3 Buffer Operation Buffer operation, provided for channel 0, enables TGRC and TGRD to be used as buffer registers. Buffer operation differs depending on whether TGR has been designated as an input capture register or as a compare match register. Table 10.17 shows the register combinations used in buffer operation. Table 10.17 Register Combinations in Buffer Operation Channel Timer General Register Buffer Register 0 TGRA_0 TGRC_0 TGRB_0 TGRD_0 Page 320 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) • When TGR is an output compare register When a compare match occurs, the value in the buffer register for the corresponding channel is transferred to the timer general register. This operation is illustrated in figure 10.16. Compare match signal Timer general register Buffer register Comparator TCNT Figure 10.16 Compare Match Buffer Operation • When TGR is an input capture register When input capture occurs, the value in TCNT is transferred to TGR and the value previously held in the timer general register is transferred to the buffer register. This operation is illustrated in figure 10.17. Input capture signal Timer general register Buffer register TCNT Figure 10.17 Input Capture Buffer Operation Example of Buffer Operation Setting Procedure: Figure 10.18 shows an example of the buffer operation setting procedure. Buffer operation Select TGR function [1] Set buffer operation [2] Start count [3] [1] Designate TGR as an input capture register or output compare register by means of TIOR. [2] Designate TGR for buffer operation with bits BFA and BFB in TMDR. [3] Set the CST bit in TSTR to 1 start the count operation. <Buffer operation> Figure 10.18 Example of Buffer Operation Setting Procedure REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 321 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Examples of Buffer Operation 1. When TGR is an output compare register Figure 10.19 shows an operation example in which PWM mode 1 has been designated for channel 0, and buffer operation has been designated for TGRA and TGRC. The settings used in this example are TCNT clearing by compare match B, 1 output at compare match A, and 0 output at compare match B. As buffer operation has been set, when compare match A occurs the output changes and the value in buffer register TGRC is simultaneously transferred to timer general register TGRA. This operation is repeated each time compare match A occurs. For details of PWM modes, see section 10.5.4, PWM Modes. TCNT value TGRB_0 H'0520 H'0450 H'0200 TGRA_0 Time H'0000 TGRC_0 H'0200 H'0450 H'0520 Transfer TGRA_0 H'0200 H'0450 TIOCA Figure 10.19 Example of Buffer Operation (1) Page 322 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) 2. When TGR is an input capture register Figure 10.20 shows an operation example in which TGRA has been designated as an input capture register, and buffer operation has been designated for TGRA and TGRC. Counter clearing by TGRA input capture has been set for TCNT, and both rising and falling edges have been selected as the TIOCA pin input capture input edge. As buffer operation has been set, when the TCNT value is stored in TGRA upon occurrence of input capture A, the value previously stored in TGRA is simultaneously transferred to TGRC. TCNT value H'0F07 H'09FB H'0532 H'0000 Time TIOCA TGRA TGRC H'0532 H'0F07 H'09FB H'0532 H'0F07 Figure 10.20 Example of Buffer Operation (2) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 323 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) 10.5.4 PWM Modes In PWM mode, PWM waveforms are output from the output pins. 0, 1, or toggle output can be selected as the output level in response to compare match of each TGR. Settings of TGR registers can output a PWM waveform in the range of 0 % to 100 % duty. Designating TGR compare match as the counter clearing source enables the period to be set in that register. All channels can be designated for PWM mode independently. Synchronous operation is also possible. There are two PWM modes, as described below. • PWM mode 1 PWM output is generated from the TIOCA and TIOCC pins by pairing TGRA with TGRB and TGRC with TGRD. The output specified by bits IOA3 to IOA0 and IOC3 to IOC0 in TIOR is output from the TIOCA and TIOCC pins at compare matches A and C, and the output specified by bits IOB3 to IOB0 and IOD3 to IOD0 in TIOR is output at compare matches B and D. The initial output value is the value set in TGRA or TGRC. If the set values of paired TGRs are identical, the output value does not change when a compare match occurs. In PWM mode 1, a maximum 4-phase PWM output is possible. • PWM mode 2 PWM output is generated using one TGR as the cycle register and the others as duty registers. The output specified in TIOR is performed by means of compare matches. Upon counter clearing by a synchronization register compare match, the output value of each pin is the initial value set in TIOR. If the set values of the cycle and duty registers are identical, the output value does not change when a compare match occurs. In PWM mode 2, a maximum 7-phase PWM output is possible by combined use with synchronous operation. The correspondence between PWM output pins and registers is shown in table 10.18. Table 10.18 PWM Output Registers and Output Pins Output Pins Channel Registers PWM Mode 1 0 TGRA_0 TIOCA0 TGRB_0 TGRC_0 TGRA_1 TIOCC0 TGRA_2 TGRB_2 TIOCC0 TIOCD0 TIOCA1 TGRB_1 2 TIOCA0 TIOCB0 TGRD_0 1 PWM Mode 2 TIOCA1 TIOCB1 TIOCA2 TIOCA2 TIOCB2 Note: In PWM mode 2, PWM output is not possible for the TGR register in which the period is set. Page 324 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Example of PWM Mode Setting Procedure: Figure 10.21 shows an example of the PWM mode setting procedure. PWM mode Select counter clock [1] Select counter clearing source [2] Select waveform output level [3] Set TGR [4] Set PWM mode [5] Start count [6] [1] Select the counter clock with bits TPSC2 to TPSC0 in TCR. At the same time, select the input clock edge with bits CKEG1 and CKEG0 in TCR. [2] Use bits CCLR2 to CCLR0 in TCR to select the TGR to be used as the TCNT clearing source. [3] Use TIOR to designate the TGR as an output compare register, and select the initial value and output value. [4] Set the cycle in the TGR selected in [2], and set the duty in the other the TGR. [5] Select the PWM mode with bits MD3 to MD0 in TMDR. [6] Set the CST bit in TSTR to 1 start the count operation. <PWM mode> Figure 10.21 Example of PWM Mode Setting Procedure Examples of PWM Mode Operation: Figure 10.22 shows an example of PWM mode 1 operation. In this example, TGRA compare match is set as the TCNT clearing source, 0 is set for the TGRA initial output value and output value, and 1 is set as the TGRB output value. In this case, the value set in TGRA is used as the period, and the values set in TGRB registers as the duty. TCNT value Counter cleared by TGRA compare match TGRA TGRB H'0000 Time TIOCA Figure 10.22 Example of PWM Mode Operation (1) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 325 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Figure 10.23 shows an example of PWM mode 2 operation. In this example, synchronous operation is designated for channels 0 and 1, TGRB_1 compare match is set as the TCNT clearing source, and 0 is set for the initial output value and 1 for the output value of the other TGR registers (TGRA_0 to TGRD_0, TGRA_1), to output a 5-phase PWM waveform. In this case, the value set in TGRB_1 is used as the cycle, and the values set in the other TGRs as the duty. TCNT value Counter cleared by TGRB_1 compare match TGRB_1 TGRA_1 TGRD_0 TGRC_0 TGRB_0 TGRA_0 H'0000 Time TIOCA0 TIOCB0 TIOCC0 TIOCD0 TIOCA1 Figure 10.23 Example of PWM Mode Operation (2) Page 326 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Figure 10.24 shows examples of PWM waveform output with 0% duty and 100% duty in PWM mode. TCNT value TGRB rewritten TGRA TGRB TGRB rewritten TGRB rewritten H'0000 Time 0% duty TIOCA Output does not change when cycle register and duty register compare matches occur simultaneously TCNT value TGRB rewritten TGRA TGRB rewritten TGRB rewritten TGRB H'0000 Time 100% duty TIOCA Output does not change when cycle register and duty register compare matches occur simultaneously TCNT value TGRB rewritten TGRA TGRB rewritten TGRB TGRB rewritten Time H'0000 100% duty TIOCA 0% duty Figure 10.24 Example of PWM Mode Operation (3) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 327 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) 10.5.5 Phase Counting Mode In phase counting mode, the phase difference between two external clock inputs is detected and TCNT is incremented/decremented accordingly. This mode can be set for channels 1 and 2. When phase counting mode is set, an external clock is selected as the counter input clock and TCNT operates as an up/down-counter regardless of the setting of bits TPSC2 to TPSC0 and bits CKEG1 and CKEG0 in TCR. However, the functions of bits CCLR1 and CCLR0 in TCR, and of TIOR, TIER, and TGR are valid, and input capture/compare match and interrupt functions can be used. This can be used for two-phase encoder pulse input. When overflow occurs while TCNT is counting up, the TCFV flag in TSR is set; when underflow occurs while TCNT is counting down, the TCFU flag is set. The TCFD bit in TSR is the count direction flag. Reading the TCFD flag provides an indication of whether TCNT is counting up or down. Table 10.19 shows the correspondence between external clock pins and channels. Table 10.19 Phase Counting Mode Clock Input Pins External Clock Pins Channels A-Phase B-Phase When channel 1 is set to phase counting mode TCLKA TCLKB When channel 2 is set to phase counting mode TCLKC TCLKD Example of Phase Counting Mode Setting Procedure: Figure 10.25 shows an example of the phase counting mode setting procedure. [1] Select phase counting mode with bits MD3 to MD0 in TMDR. [2] Set the CST bit in TSTR to 1 to start the count operation. Phase counting mode Select phase counting mode [1] Start count [2] <Phase counting mode> Figure 10.25 Example of Phase Counting Mode Setting Procedure Page 328 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Examples of Phase Counting Mode Operation: In phase counting mode, TCNT counts up or down according to the phase difference between two external clocks. There are four modes, according to the count conditions. 1. Phase counting mode 1 Figure 10.26 shows an example of phase counting mode 1 operation, and table 10.20 summarizes the TCNT up/down-count conditions. TCLKA (channel 1) TCLKC (channel 2) TCLKB (channel 1) TCLKD (channel 2) TCNT value Down-count Up-count Time Figure 10.26 Example of Phase Counting Mode 1 Operation Table 10.20 Up/Down-Count Conditions in Phase Counting Mode 1 TCLKA (Channel 1) TCLKB (Channel 1) TCLKC (Channel 2) TCLKD (Channel 2) High level Operation Up-count Low level Low level High level Down-count High level Low level High level Low level Legend: : Rising edge : Falling edge REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 329 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) 2. Phase counting mode 2 Figure 10.27 shows an example of phase counting mode 2 operation, and table 10.21 summarizes the TCNT up/down-count conditions. TCLKA (channel 1) TCLKC (channel 2) TCLKB (channel 1) TCLKD (channel 2) TCNT value Up-count Down-count Time Figure 10.27 Example of Phase Counting Mode 2 Operation Table 10.21 Up/Down-Count Conditions in Phase Counting Mode 2 TCLKA (Channel 1) TCLKB (Channel 1) TCLKC (Channel 2) TCLKD (Channel 2) High level Operation Don’t care Low level Low level High level High level Up-count Don’t care Low level High level Low level Down-count Legend: : Rising edge : Falling edge Page 330 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) 3. Phase counting mode 3 Figure 10.28 shows an example of phase counting mode 3 operation, and table 10.22 summarizes the TCNT up/down-count conditions. TCLKA (channel 1) TCLKC (channel 2) TCLKB (channel 1) TCLKD (channel 2) TCNT value Down-count Up-count Time Figure 10.28 Example of Phase Counting Mode 3 Operation Table 10.22 Up/Down-Count Conditions in Phase Counting Mode 3 TCLKA (Channel 1) TCLKB (Channel 1) TCLKC (Channel 2) TCLKD (Channel 2) High level Operation Don’t care Low level Low level High level High level Up-count Down-count Low level Don’t care High level Low level Legend: : Rising edge : Falling edge REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 331 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) 4. Phase counting mode 4 Figure 10.29 shows an example of phase counting mode 4 operation, and table 10.23 summarizes the TCNT up/down-count conditions. TCLKA (channel 1) TCLKC (channel 2) TCLKB (channel 1) TCLKD (channel 2) TCNT value Down-count Up-count Time Figure 10.29 Example of Phase Counting Mode 4 Operation Table 10.23 Up/Down-Count Conditions in Phase Counting Mode 4 TCLKA (Channel 1) TCLKB (Channel 1) TCLKC (Channel 2) TCLKD (Channel 2) High level Operation Up-count Low level Low level Don’t care High level Down-count High level Low level High level Don’t care Low level Legend: : Rising edge : Falling edge Page 332 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) 10.6 Interrupts 10.6.1 Interrupt Source and Priority There are three kinds of TPU interrupt source: TGR input capture/compare match, TCNT overflow, and TCNT underflow. Each interrupt source has its own status flag and enable/disabled bit, allowing generation of interrupt request signals to be enabled or disabled individually. When an interrupt request is generated, the corresponding status flag in TSR is set to 1. If the corresponding enable/disable bit in TIER is set to 1 at this time, an interrupt is requested. The interrupt request is cleared by clearing the status flag to 0. Relative channel priorities can be changed by the interrupt controller, but the priority order within a channel is fixed. For details, see section 5, Interrupt Controller. Table 10.24 lists the TPU interrupt sources. Table 10.24 Channel Name 0 1 2 Note: * TPU Interrupts Interrupt Source DTC Activation DMAC Activation Priority* High TGI0A TGFA TGRA_0 input capture/compare match Possible Possible TGI0B TGFB TGRB_0 input capture/compare match Possible Not possible TGI0C TGFC TGRC_0 input capture/compare match Possible Not possible TGI0D TGFD TGRD_0 input capture/compare match Possible Not possible TCI0V TCNT_0 overflow TGI1A TGFA TGRA_1 input capture/compare match Possible Possible TGI1B TGFB TGRB_1 input capture/compare match Possible Not possible TCI1V TCNT_1 overflow TCFV Not possible Not possible TCI1U TCNT_1 underflow TCFU Not possible Not possible TGI2A TGFA TGRA_2 input capture/compare match Possible Possible TGI2B TGFB TGRB_2 input capture/compare match Possible Not possible TCFV Not possible Not possible TCI2V TCNT_2 overflow TCFV Not possible Not possible TCI2U TCNT_2 underflow TCFU Not possible Not possible Low This table shows the initial state immediately after a reset. The relative channel priorities can be changed by the interrupt controller. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Interrupt Flag Page 333 of 846 Section 10 16-Bit Timer Pulse Unit (TPU) H8S/2215 Group Input Capture/Compare Match Interrupt: An interrupt is requested if the TGIE bit in TIER is set to 1 when the TGF flag in TSR is set to 1 by the occurrence of a TGR input capture/compare match on a particular channel. The interrupt request is cleared by clearing the TGF flag to 0. The TPU has 8 input capture/compare match interrupts, four each for channel 0, and two each for channels 1 and 2. Overflow Interrupt: An interrupt is requested if the TCIEV bit in TIER is set to 1 when the TCFV flag in TSR is set to 1 by the occurrence of TCNT overflow on a channel. The interrupt request is cleared by clearing the TCFV flag to 0. The TPU has three overflow interrupts, one for each channel. Underflow Interrupt: An interrupt is requested if the TCIEU bit in TIER is set to 1 when the TCFU flag in TSR is set to 1 by the occurrence of TCNT underflow on a channel. The interrupt request is cleared by clearing the TCFU flag to 0. The TPU has two underflow interrupts, one each for channels 1 and 2. 10.6.2 DTC Activation The DTC can be activated by the TGR input capture/compare match interrupt for a channel. For details, see section 8, Data Transfer Controller (DTC). A total of 8 TPU input capture/compare match interrupts can be used as DTC activation sources, four each for channel 0, and two each for channels 1 and 2. 10.6.3 DMAC Activation The DMAC can be activated by the TGRA input capture/compare match interrupt for a channel. For details, see section 7, DMA Controller (DMAC). With the TPU, a total of three TGRA input capture/compare match interrupts can be used as DMAC activation sources, one for each channel. 10.6.4 A/D Converter Activation The A/D converter can be activated by the TGRA input capture/compare match for a channel. If the TTGE bit in TIER is set to 1 when the TGFA flag in TSR is set to 1 by the occurrence of a TGRA input capture/compare match on a particular channel, a request to start A/D conversion is sent to the A/D converter. If the TPU conversion start trigger has been selected on the A/D converter side at this time, A/D conversion is started. In the TPU, a total of three TGRA input capture/compare match interrupts can be used as A/D converter conversion start sources, one for each channel. Page 334 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) 10.7 Operation Timing 10.7.1 Input/Output Timing TCNT Count Timing: Figure 10.30 shows TCNT count timing in internal clock operation, and figure 10.31 shows TCNT count timing in external clock operation. φ Internal clock Falling edge Rising edge TCNT input clock N-1 TCNT N N+1 N+2 Figure 10.30 Count Timing in Internal Clock Operation φ External clock Falling edge Rising edge Falling edge TCNT input clock N-1 TCNT N N+1 N+2 Figure 10.31 Count Timing in External Clock Operation REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 335 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Output Compare Output Timing: A compare match signal is generated in the final state in which TCNT and TGR match (the point at which the count value matched by TCNT is updated). When a compare match signal is generated, the output value set in TIOR is output at the output compare output pin. After a match between TCNT and TGR, the compare match signal is not generated until the TCNT input clock is generated. Figure 10.32 shows output compare output timing. φ TCNT input clock N TCNT N+1 N TGR Compare match signal TIOC pin Figure 10.32 Output Compare Output Timing Input Capture Signal Timing: Figure 10.33 shows input capture signal timing. φ Input capture input Input capture signal TCNT TGR N N+1 N+2 N N+2 Figure 10.33 Input Capture Input Signal Timing Page 336 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Timing for Counter Clearing by Compare Match/Input Capture: Figure 10.34 shows the timing when counter clearing by compare match occurrence is specified, and figure 10.35 shows the timing when counter clearing by input capture occurrence is specified. φ Compare match signal Counter clear signal TCNT N TGR N H'0000 Figure 10.34 Counter Clear Timing (Compare Match) φ Input capture signal Counter clear signal N TCNT H'0000 N TGR Figure 10.35 Counter Clear Timing (Input Capture) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 337 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Buffer Operation Timing: Figures 10.36 and 10.37 show the timing in buffer operation. φ TCNT n n+1 Compare match signal TGRA, TGRB n TGRC, TGRD N N Figure 10.36 Buffer Operation Timing (Compare Match) φ Input capture signal TCNT N TGRA, TGRB n TGRC, TGRD N+1 N N+1 n N Figure 10.37 Buffer Operation Timing (Input Capture) Page 338 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 10.7.2 Section 10 16-Bit Timer Pulse Unit (TPU) Interrupt Signal Timing TGF Flag Setting Timing in Case of Compare Match: Figure 10.38 shows the timing for setting of the TGF flag in TSR by compare match occurrence, and TGI interrupt request signal timing. φ TCNT input clock TCNT N TGR N N+1 Compare match signal TGF flag TGI interrupt Figure 10.38 TGI Interrupt Timing (Compare Match) TGF Flag Setting Timing in Case of Input Capture: Figure 10.39 shows the timing for setting of the TGF flag in TSR by input capture occurrence, and TGI interrupt request signal timing. φ Input capture signal TCNT N TGR N TGF flag TGI interrupt Figure 10.39 TGI Interrupt Timing (Input Capture) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 339 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) TCFV Flag/TCFU Flag Setting Timing: Figure 10.40 shows the timing for setting of the TCFV flag in TSR by overflow occurrence, and TCIV interrupt request signal timing. Figure 10.41 shows the timing for setting of the TCFU flag in TSR by underflow occurrence, and TCIU interrupt request signal timing. φ TCNT input clock TCNT (overflow) H'FFFF H'0000 Overflow signal TCFV flag TCIV interrupt Figure 10.40 TCIV Interrupt Setting Timing φ TCNT input clock TCNT (underflow) H'0000 H'FFFF Underflow signal TCFU flag TCIU interrupt Figure 10.41 TCIU Interrupt Setting Timing Page 340 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Status Flag Clearing Timing: After a status flag is read as 1 by the CPU, it is cleared by writing 0 to it. When the DTC or DMAC is activated, the flag is cleared automatically. Figure 10.42 shows the timing for status flag clearing by the CPU, and figure 10.43 shows the timing for status flag clearing by the DTC or DMAC. TSR write cycle T1 T2 φ Address TSR address Write signal Status flag Interrupt request signal Figure 10.42 Timing for Status Flag Clearing by CPU DTC/DMAC read cycle T1 T2 DTC/DMAC write cycle T1 T2 φ Address Source address Destination address Status flag Interrupt request signal Figure 10.43 Timing for Status Flag Clearing by DTC or DMAC Activation REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 341 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) 10.8 Usage Notes Input Clock Restrictions: The input clock pulse width must be at least 1.5 states in the case of single-edge detection, and at least 2.5 states in the case of both-edge detection. The TPU will not operate properly with a narrower pulse width. In phase counting mode, the phase difference and overlap between the two input clocks must be at least 1.5 states, and the pulse width must be at least 2.5 states. Figure 10.44 shows the input clock conditions in phase counting mode. Overlap Phase Phase differdifferOverlap ence ence Pulse width Pulse width TCLKA (TCLKC) TCLKB (TCLKD) Pulse width Pulse width Notes: Phase difference and overlap : 1.5 states or more Pulse width : 2.5 states or more Figure 10.44 Phase Difference, Overlap, and Pulse Width in Phase Counting Mode Caution on Period Setting: When counter clearing by compare match is set, TCNT is cleared in the final state in which it matches the TGR value (the point at which the count value matched by TCNT is updated). Consequently, the actual counter frequency is given by the following formula: φ f = ———— (N + 1) Where f : Counter frequency φ : Operating frequency N : TGR set value Page 342 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Contention between TCNT Write and Clear Operations: If the counter clear signal is generated in the T2 state of a TCNT write cycle, TCNT clearing takes precedence and the TCNT write is not performed. Figure 10.45 shows the timing in this case. TCNT write cycle T2 T1 φ TCNT address Address Write signal Counter clear signal TCNT N H'0000 Figure 10.45 Contention between TCNT Write and Clear Operations Contention between TCNT Write and Increment Operations: If incrementing occurs in the T2 state of a TCNT write cycle, the TCNT write takes precedence and TCNT is not incremented. Figure 10.46 shows the timing in this case. TCNT write cycle T2 T1 φ TCNT address Address Write signal TCNT input clock TCNT N M TCNT write data Figure 10.46 Contention between TCNT Write and Increment Operations REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 343 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Contention between TGR Write and Compare Match: If a compare match occurs in the T2 state of a TGR write cycle, the TGR write takes precedence and the compare match signal is inhibited. A compare match does not occur even if the same value as before is written. Figure 10.47 shows the timing in this case. TGR write cycle T2 T1 φ TGR address Address Write signal Compare match signal Prohibited TCNT N N+1 TGR N M TGR write data Figure 10.47 Contention between TGR Write and Compare Match Page 344 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Contention between Buffer Register Write and Compare Match: If a compare match occurs in the T2 state of a TGR write cycle, the data transferred to TGR by the buffer operation will be the data prior to the write. Figure 10.48 shows the timing in this case. TGR write cycle T2 T1 φ Buffer register address Address Write signal Compare match signal Buffer register write data Buffer register N M N TGR Figure 10.48 Contention between Buffer Register Write and Compare Match Contention between TGR Read and Input Capture: If the input capture signal is generated in the T1 state of a TGR read cycle, the data that is read will be the data after input capture transfer. Figure 10.49 shows the timing in this case. TGR read cycle T2 T1 φ TGR address Address Read signal Input capture signal TGR X Internal data bus M M Figure 10.49 Contention between TGR Read and Input Capture REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 345 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Contention between TGR Write and Input Capture: If the input capture signal is generated in the T2 state of a TGR write cycle, the input capture operation takes precedence and the write to TGR is not performed. Figure 10.50 shows the timing in this case. TGR write cycle T2 T1 φ Address TGR address Write signal Input capture signal TCNT TGR M M Figure 10.50 Contention between TGR Write and Input Capture Page 346 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Contention between Buffer Register Write and Input Capture: If the input capture signal is generated in the T2 state of a buffer register write cycle, the buffer operation takes precedence and the write to the buffer register is not performed. Figure 10.51 shows the timing in this case. Buffer register write cycle T2 T1 φ Buffer register address Address Write signal Input capture signal TCNT N M TGR Buffer register N M Figure 10.51 Contention between Buffer Register Write and Input Capture Contention between Overflow/Underflow and Counter Clearing: If overflow/underflow and counter clearing occur simultaneously, the TCFV/TCFU flag in TSR is not set and TCNT clearing takes precedence. Figure 10.52 shows the operation timing when a TGR compare match is specified as the clearing source, and H'FFFF is set in TGR. φ TCNT input clock TCNT H'FFFF H'0000 Counter clear signal TGF flag Prohibited TCFV flag Figure 10.52 Contention between Overflow and Counter Clearing REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 347 of 846 H8S/2215 Group Section 10 16-Bit Timer Pulse Unit (TPU) Contention between TCNT Write and Overflow/Underflow: If there is an up-count or downcount in the T2 state of a TCNT write cycle, and overflow/underflow occurs, the TCNT write takes precedence and the TCFV/TCFU flag in TSR is not set. Figure 10.53 shows the operation timing when there is contention between TCNT write and overflow. TCNT write cycle T2 T1 φ Address TCNT address Write signal TCNT TCFV flag TCNT write data H'FFFF M Prohibited Figure 10.53 Contention between TCNT Write and Overflow Multiplexing of I/O Pins: In this LSI, the TCLKA input pin is multiplexed with the TIOCC0 I/O pin, the TCLKB input pin with the TIOCD0 I/O pin, the TCLKC input pin with the TIOCB1 I/O pin, and the TCLKD input pin with the TIOCB2 I/O pin. When an external clock is input, compare match output should not be performed from a multiplexed pin. Interrupts and Module Stop Mode: If module stop mode is entered when an interrupt has been requested, it will not be possible to clear the CPU interrupt source or the DTC activation source. Interrupts should therefore be disabled before entering module stop mode. Module Stop Mode Setting: TPU operation can be disabled or enabled using the module stop control register. The initial setting is for TPU operation to be halted. Register access is enabled by clearing module stop mode. For details, refer to section 22, Power-Down Modes. Page 348 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 11 8-Bit Timers (TMR) Section 11 8-Bit Timers (TMR) This LIS includes an 8-bit timer module with two channels. Each channel has an 8-bit counter and two registers that are constantly compared with the TCNT value to detect compare match events. The 8-bit timer module can thus be used for a variety of functions, including pulse output with an arbitrary duty cycle. 11.1 Features The features of the 8-bit timer module are listed below. • Selection of four clock sources ⎯ The counters can be driven by one of three internal clock signals (φ/8, φ/64, or φ/8192) or an external clock input (enabling use as an external event counter). • Selection of three ways to clear the counters ⎯ The counters can be cleared on compare match A or B, or by an external reset signal. • Timer output control by a combination of two compare match signals ⎯ The timer output signal in each channel is controlled by a combination of two independent compare match signals, enabling the timer to generate output waveforms with an arbitrary duty cycle or PWM output. • Provision for cascading of two channels ⎯ Operation as a 16-bit timer is possible, using channel 0 (TMR_0) for the upper 8 bits and channel 1 (TMR_1) for the lower 8 bits (16-bit count mode). ⎯ Channel 1 (TMR_1) can be used to count channel 0 (TMR_0) compare matches (compare match count mode). • Three independent interrupts ⎯ Compare match A and B and overflow interrupts can be requested independently. • A/D converter conversion start trigger can be generated ⎯ Channel 0 compare match A signal can be used as an A/D converter conversion start trigger. ⎯ Module stop mode can be set Figure 11.1 shows a block diagram of the 8-bit timer module (TMR_0 and TMR_1). REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 349 of 846 TIMH220A_000020020100 H8S/2215 Group Section 11 8-Bit Timers (TMR) External clock source TMCI01 Internal clock sources φ/8 φ/64 φ/8192 Clock select Clock 1 Clock 0 TCORA_0 TCORA_1 Compare match A1 Compare match A0 Comparator A_0 Overflow 1 Overflow 0 TMO0 TMRI01 TCNT_0 Comparator A_1 TCNT_1 Clear 0 TMO1 Control logic Compare match B1 Compare match B0 Comparator B_0 A/D conversion start request signal Internal bus Clear 1 Comparator B_1 TCORB_0 TCORB_1 TCSR_0 TCSR_1 TCR_0 TCR_1 CMIA0 CMIB0 OVI0 CMIA1 CMIB1 OVI1 Interrupt signals Legend: TCORA_0: TCORB_0: TCNT_0: TCSR_0: TCR_0: Time constant register A_0 Time constant register B_0 Timer counter_0 Timer control/status register_0 Timer control register_0 TCORA_1: TCORB_1: TCNT_1: TCSR_1: TCR_1: Time constant register A_1 Time constant register B_1 Timer counter_1 Timer control/status register_1 Timer control register_1 Figure 11.1 Block Diagram of 8-Bit Timer Page 350 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 11.2 Section 11 8-Bit Timers (TMR) Input/Output Pins Table 11.1 summarizes the input and output pins of the TMR. Table 11.1 Pin Configuration Channel Name Symbol I/O Function 0 Timer output pin 0 TMO0 Output Outputs at compare match 1 Timer output pin 1 TMO1 Output Outputs at compare match All Timer clock input pin 01 TMCI01 Input Inputs external clock for counter Timer reset input pin 01 TMRI01 Input Inputs external reset to counter 11.3 Register Descriptions The TMR registers are listed below. For details on the module stop control register, refer to section 22.1.2, Module Stop Registers A to C (MSTPCRA to MSTPCRC). • Timer counter (TCNT) • Time constant register A (TCORA) • Time constant register B (TCORB) • Timer control register (TCR) • Timer control/status register (TCSR) 11.3.1 Timer Counters (TCNT) The TCNT registers are 8-bit up-counters. TCNT_0 and TCNT_1 comprise a single 16-bit register so they can be accessed together by a word transfer instruction. Bits CKS2 to CKS0 in TCR are used to select a clock. The TCNT counters can be cleared by an external reset input or by a compare match signal A or B. Which signal is to be used for clearing is selected by bits CCLR1 and CCLR0 in TCR. When a TCNT counter overflows from H'FF to H'00, OVF in TCSR is set to 1. The TCNT counters are each initialized to H'00. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 351 of 846 Section 11 8-Bit Timers (TMR) 11.3.2 H8S/2215 Group Time Constant Registers A (TCORA) The TCORA_0 and TCORA_1 registers are 8-bit readable/writable registers. TCORA_0 and TCORA_1 comprise a single 16-bit register so they can be accessed together by a word transfer instruction. The value in TCORA is continually compared with the value in TCNT. When a match is detected, the corresponding CMFA flag in TCSR is set to 1. Note, however, that comparison is disabled during the T2 state of a TCOR write cycle. The timer output (TMO) can be freely controlled by these compare match signals and the settings of bits OS1 and OS0 in TCSR. TCORA_0 and TCORA_1 are each initialized to H'FF. 11.3.3 Time Constant Registers B (TCORB) The TCORB_0 registers are 8-bit readable/writable registers. TCORB_0 and TCORB_1 comprise a single 16-bit register so they can be accessed together by a word transfer instruction. TCORB is continually compared with the value in TCNT. When a match is detected, the corresponding CMFB flag in TCSR is set to 1. Note, however, that comparison is disabled during the T2 state of a TCOR write cycle. The timer output can be freely controlled by these compare match signals and the settings of output select bits OS3 and OS2 in TCSR. TCORB_0 and TCORB_1 are each initialized to H'FF. Page 352 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 11.3.4 Section 11 8-Bit Timers (TMR) Time Control Registers (TCR) The TCR registers select the clock source and the time at which TCNT is cleared, and enable interrupts. Bit Bit Name Initial Value R/W Description 7 CMIEB 0 R/W Compare Match Interrupt Enable B Selects whether CMFB interrupt requests (CMIB) are enabled or disabled when the CMFB flag in TCSR is set to 1. 0: CMFB interrupt requests (CMIB) are disabled 1: CMFB interrupt requests (CMIB) are enabled 6 CMIEA 0 R/W Compare Match Interrupt Enable A Selects whether CMFA interrupt requests (CMIA) are enabled or disabled when the CMFA flag in TCSR is set to 1. 0: CMFA interrupt requests (CMIA) are disabled 1: CMFA interrupt requests (CMIA) are enabled 5 OVIE 0 R/W Timer Overflow Interrupt Enable Selects whether OVF interrupt requests (OVI) are enabled or disabled when the OVF flag in TCSR is set to 1. 0: OVF interrupt requests (OVI) are disabled 1: OVF interrupt requests (OVI) are enabled 4 3 CCLR1 CCLR0 0 0 R/W R/W Counter Clear 1 and 0 These bits select the method by which TCNT is cleared. 00: Clear is disabled 01: Clear by compare match A 10: Clear by compare match B 11: Clear by rising edge of external reset input 2 1 0 CKS2 CKS1 CKS0 0 0 0 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 R/W R/W R/W Clock Select 2 to 0 These bits select the clock input to TCNT and count condition. See table 11.2. Page 353 of 846 H8S/2215 Group Section 11 8-Bit Timers (TMR) Table 11.2 Clock Input to TCNT and Count Condition TCR Bit 2 Bit 1 Bit 0 Channel CKS2 CKS1 CKS0 Description TMR_0 0 0 1 TMR_1 All Note: 11.3.5 * 0 Clock input disabled 1 Internal clock, counted at falling edge of φ/8 0 Internal clock, counted at falling edge of φ/64 1 1 0 0 Internal clock, counted at falling edge of φ/8192 Count at TCNT1 overflow signal* 0 0 0 Clock input disabled 1 Internal clock, counted at falling edge of φ/8 1 0 Internal clock, counted at falling edge of φ/64 1 Internal clock, counted at falling edge of φ/8192 1 0 0 Count at TCNT0 compare match A* 1 0 1 External clock, counted at rising edge 1 0 External clock, counted at falling edge 1 1 External clock, counted at both rising and falling edges If the count input of TMR_0 is the TCNT_1 overflow signal and that of TMR_1 is the TCNT_0 compare match signal, no incrementing clock is generated. This setting is prohibited. Timer Control/Status Registers (TCSR) The TCSR registers display status flags, and control compare match output. Page 354 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 11 8-Bit Timers (TMR) Bit Bit Name Initial Value R/W 7 CMFB 0 R/(W)* Compare Match Flag B 0 [Setting condition] • Set when TCNT matches TCORB [Clearing conditions] • Cleared by reading CMFB when CMFB = 1, then writing 0 to CMFB • When DTC is activated by CMIB interrupt, while DISEL bit is 0, and transfer counter value is not 0 R/(W)* Compare Match Flag A 0 [Setting condition] • Set when TCNT matches TCORA [Clearing conditions] • Cleared by reading CMFA when CMFA = 1, then writing 0 to CMFA • When DTC is activated by CMIA interrupt, while DISEL bit is 0, and transfer counter value is not 0 * R/(W) Timer Overflow Flag 6 5 CMFA OVF Description [Setting condition] • Set when TCNT overflows from H'FF to H'00 [Clearing condition] • Cleared by reading OVF when OVF = 1, then writing 0 to OVF 4 ADTE 0 R/W A/D Trigger Enable (only in channel 0) Selects enabling or disabling of A/D converter start requests by compare match A. This bit is reserved in channel 1. Always read as 1, and cannot be modified. 0: A/D converter start requests by compare match A are disabled 1: A/D converter start requests by compare match A are enabled 3 2 OS3 OS2 0 0 R/W R/W Output Select 3 and 2 These bits select a method of TMO pin output when compare match B of TCOR and TCNT occurs. 00: No change when compare match B occurs 01: 0 is output when compare match B occurs 10: 1 is output when compare match B occurs 11: Output is inverted when compare match B occurs (toggle output) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 355 of 846 H8S/2215 Group Section 11 8-Bit Timers (TMR) Bit Bit Name Initial Value R/W Description 1 0 OS1 OS0 0 0 R/W R/W Output Select 1 and 0 These bits select a method of TMO pin output when compare match A of TCOR and TCNT occurs. 00: No change when compare match A occurs 01: 0 is output when compare match A occurs 10: 1 is output when compare match A occurs 11: Output is inverted when compare match A occurs (toggle output) Note: The write value should always be 0 to clear these flags. * 11.4 Operation 11.4.1 Pulse Output Figure 11.2 shows an example that the 8-bit timer is used to generate a pulse output with a selected duty cycle. The control bits are set as follows: 1. In TCR, bit CCLR1 is cleared to 0 and bit CCLR0 is set to 1 so that the timer counter is cleared at a TCORA compare match. 2. In TCSR, bits OS3 to OS0 are set to B'0110, causing the output to change to 1 at a TCORA compare match and to 0 at a TCORB compare match. With these settings, the 8-bit timer provides output of pulses at a rate determined by TCORA with a pulse width determined by TCORB. No software intervention is required. TCNT H'FF Counter clear TCORA TCORB H'00 TMO Figure 11.2 Example of Pulse Output Page 356 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 11 8-Bit Timers (TMR) 11.5 Operation Timing 11.5.1 TCNT Incrementation Timing Figure 11.3 shows the count timing for internal clock input. Figure 11.4 shows the count timing for external clock signal. Note that the external clock pulse width must be at least 1.5 states for incrementation at a single edge, and at least 2.5 states for incrementation at both edges. The counter will not increment correctly if the pulse width is less than these values. φ Internal clock Clock input to TCNT TCNT N–1 N N+1 Figure 11.3 Count Timing for Internal Clock Input φ External clock input Clock input to TCNT TCNT N–1 N N+1 Figure 11.4 Count Timing for External Clock Input REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 357 of 846 H8S/2215 Group Section 11 8-Bit Timers (TMR) 11.5.2 Setting of Compare Match Flags CMFA and CMFB The CMFA and CMFB flags in TCSR are set to 1 by a compare match signal generated when the TCOR and TCNT values match. The compare match signal is generated at the last state in which the match is true, just before the timer counter is updated. Therefore, when TCOR and TCNT match, the compare match signal is not generated until the next incrementation clock input. Figure 11.5 shows this timing. φ TCNT N TCOR N N+1 Compare match signal CMF Figure 11.5 Timing of CMF Setting 11.5.3 Timer Output Timing When compare match A or B occurs, the timer output changes as specified by bits OS3 to OS0 in TCSR. Figure 11.6 shows the timing when the output is set to toggle at compare match A. φ Compare match A signal Timer output pin Figure 11.6 Timing of Timer Output Page 358 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 11.5.4 Section 11 8-Bit Timers (TMR) Timing of Compare Match Clear The timer counter is cleared when compare match A or B occurs, depending on the setting of the CCLR1 and CCLR0 bits in TCR. Figure 11.7 shows the timing of this operation. φ Compare match signal TCNT N H'00 Figure 11.7 Timing of Compare Match Clear 11.5.5 Timing of TCNT External Reset TCNT is cleared at the rising edge of an external reset input, depending on the settings of the CCLR1 and CCLR0 bits in TCR. The clear pulse width must be at least 1.5 states. Figure 11.8 shows the timing of this operation. φ External reset input pin Clear signal TCNT N–1 N H'00 Figure 11.8 Timing of Clearance by External Reset REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 359 of 846 H8S/2215 Group Section 11 8-Bit Timers (TMR) 11.5.6 Timing of Overflow Flag (OVF) Setting The OVF in TCSR is set to 1 when TCNT overflows (changes from H'FF to H'00). Figure 11.9 shows the timing of this operation. φ TCNT H'FF H'00 Overflow signal OVF Figure 11.9 Timing of OVF Setting Page 360 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 11.6 Section 11 8-Bit Timers (TMR) Operation with Cascaded Connection If bits CKS2 to CKS0 in either TCR_0 or TCR_1 are set to B'100, the 8-bit timers of the two channels are cascaded. With this configuration, a single 16-bit timer could be used (16-bit counter mode) or compare matches of the 8-bit channel 0 could be counted by the timer of channel 1 (compare match count mode). In this case, the timer operates as below. 11.6.1 16-Bit Counter Mode When bits CKS2 to CKS0 in TCR_0 are set to B'100, the timer functions as a single 16-bit timer with channel 0 occupying the upper 8 bits and channel 1 occupying the lower 8 bits. • Setting of compare match flags ⎯ The CMF flag in TCSR_0 is set to 1 when a 16-bit compare match event occurs. ⎯ The CMF flag in TCSR_1 is set to 1 when a lower 8-bit compare match event occurs. • Counter clear specification ⎯ If the CCLR1 and CCLR0 bits in TCR_0 have been set for counter clear at compare match, the 16-bit counters (TCNT_0 and TCNT_1 together) are cleared when a 16-bit compare match event occurs. The 16-bit counters (TCNT0 and TCNT1 together) are cleared even if counter clear by the TMRI0 pin has also been set. ⎯ The settings of the CCLR1 and CCLR0 bits in TCR_1 are ignored. The lower 8 bits cannot be cleared independently. • Pin output ⎯ Control of output from the TMO0 pin by bits OS3 to OS0 in TCSR_0 is in accordance with the 16-bit compare match conditions. ⎯ Control of output from the TMO1 pin by bits OS3 to OS0 in TCSR_1 is in accordance with the lower 8-bit compare match conditions. 11.6.2 Compare Match Count Mode When bits CKS2 to CKS0 in TCR_1 are B'100, TCNT_1 counts compare match A’s for channel 0. Channels 0 and 1 are controlled independently. Conditions such as setting of the CMF flag, generation of interrupts, output from the TMO pin, and counter clear are in accordance with the settings for each channel. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 361 of 846 H8S/2215 Group Section 11 8-Bit Timers (TMR) 11.7 Interrupts 11.7.1 Interrupt Sources and DTC Activation There are three 8-bit timer interrupt sources: CMIA, CMIB, and OVI. Their relative priorities are shown in table 11.3. Each interrupt source is set as enabled or disabled by the corresponding interrupt enable bit in TCR or TCSR, and independent interrupt requests are sent for each to the interrupt controller. It is also possible to activate the DTC by means of CMIA and CMIB interrupts. Table 11.3 8-Bit Timer Interrupt Sources Channel 0 1 Note: * Name Interrupt Source Interrupt Flag DTC Activation Priority* High CMIA0 TCORA_0 compare match CMFA Possible CMIB0 TCORB_0 compare match CMFB Possible OVI0 TCNT_0 overflow OVF Not possible CMIA1 TCORA_1 compare match CMFA Possible CMIB1 TCORB_1 compare match CMFB Possible OVI1 TCNT_1 overflow OVF Not possible Low This table shows the initial state immediately after a reset. The relative channel priorities can be changed by the interrupt controller. Page 362 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 11.7.2 Section 11 8-Bit Timers (TMR) A/D Converter Activation The A/D converter can be activated only by TMR_0 compare match A. If the ADTE bit in TCSR0 is set to 1 when the CMFA flag is set to 1 by the occurrence of TMR_0 compare match A, a request to start A/D conversion is sent to the A/D converter. If the 8-bit timer conversion start trigger has been selected on the A/D converter side at this time, A/D conversion is started. 11.8 Usage Notes 11.8.1 Contention between TCNT Write and Clear If a timer counter clock pulse is generated during the T2 state of a TCNT write cycle, the clear takes priority, so that the counter is cleared and the write is not performed. Figure 11.10 shows this operation. TCNT write cycle by CPU T1 T2 φ Address TCNT address Internal write signal Counter clear signal TCNT N H'00 Figure 11.10 Contention between TCNT Write and Clear REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 363 of 846 H8S/2215 Group Section 11 8-Bit Timers (TMR) 11.8.2 Contention between TCNT Write and Increment If a timer counter clock pulse is generated during the T2 state of a TCNT write cycle, the write takes priority and the counter is not incremented. Figure 11.11 shows this operation. TCNT write cycle by CPU T1 T2 φ Address TCNT address Internal write signal TCNT input clock TCNT N M Counter write data Figure 11.11 Contention between TCNT Write and Increment Page 364 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 11.8.3 Section 11 8-Bit Timers (TMR) Contention between TCOR Write and Compare Match During the T2 state of a TCOR write cycle, the TCOR write has priority and the compare match signal is prohibited even if a compare match event occurs. Figure 11.12 shows this operation. TCOR write cycle by CPU T1 T2 φ Address TCOR address Internal write signal TCNT N N+1 TCOR N M TCOR write data Compare match signal Prohibited Figure 11.12 Contention between TCOR Write and Compare Match REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 365 of 846 H8S/2215 Group Section 11 8-Bit Timers (TMR) 11.8.4 Contention between Compare Matches A and B If compare match events A and B occur at the same time, the 8-bit timer operates in accordance with the priorities for the output statuses set for compare match A and compare match B, as shown in table 11.4. Table 11.4 Timer Output Priorities Output Setting Priority Toggle output High 1 output 0 output No change 11.8.5 Low Switching of Internal Clocks and TCNT Operation TCNT may increment erroneously when the internal clock is switched over. Table 11.5 shows the relationship between the timing at which the internal clock is switched (by writing to the CKS1 and CKS0 bits) and the TCNT operation. When the TCNT clock is generated from an internal clock, the falling edge of the internal clock pulse is detected. If clock switching causes a change from high to low level, as shown in case 3 in table 11.5, a TCNT clock pulse is generated on the assumption that the switchover is a falling edge. This increments TCNT. The erroneous incrementation can also happen when switching between internal and external clocks. Page 366 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 11 8-Bit Timers (TMR) Table 11.5 Switching of Internal Clock and TCNT Operation No. 1 Timing of Switchover by Means of CKS1 and CKS0 Bits TCNT Clock Operation Switching from 1 low to low* Clock before switchover Clock after switchover TCNT clock TCNT N N+1 CKS bit rewrite 2 Switching from 2 low to high* Clock before switchover Clock after switchover TCNT clock TCNT N N+1 N+2 CKS bit rewrite 3 Switching from 3 high to low* Clock before switchover Clock after switchover *4 TCNT clock TCNT N N+1 N+2 CKS bit rewrite REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 367 of 846 H8S/2215 Group Section 11 8-Bit Timers (TMR) No. 4 Timing of Switchover by Means of CKS1 and CKS0 Bits TCNT Clock Operation Switching from high to high Clock before switchover Clock after switchover TCNT clock TCNT N N+1 N+2 CKS bit rewrite Notes: 1. 2. 3. 4. 11.8.6 Includes switching from low to stop, and from stop to low. Includes switching from stop to high. Includes switching from high to stop. Generated on the assumption that the switchover is a falling edge; TCNT is incremented. Mode Setting with Cascaded Connection If 16-bit counter mode and compare match count mode are specified at the same time, input clocks for TCNT_0 and TCNT_1 are not generated, and the counter stops. Do not specify 16-bit counter and compare match count modes simultaneously. 11.8.7 Module Stop Mode Setting Operation of the TMR can be disabled or enabled using the module stop control register. The initial setting is for operation of the TMR to be halted. Register access is enabled by clearing module stop mode. For details, refer to section 22, Power-Down Modes. Page 368 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 12 Watchdog Timer (WDT) Section 12 Watchdog Timer (WDT) The watchdog timer (WDT) is an 8-bit timer that can generate an internal reset signal for this LSI if a system crash prevents the CPU from writing to the timer counter, thus allowing it to overflow. When this watchdog function is not needed, the WDT can be used as an interval timer. In interval timer operation, an interval timer interrupt is generated each time the counter overflows. The block diagram of the WDT is shown in figure 12.1. 12.1 Features • Selectable from eight counter input clocks • Switchable between watchdog timer mode and interval timer mode In watchdog timer mode • If the counter overflows, it is possible to select whether this LSI is internally reset or not. In interval timer mode • If the counter overflows, the WDT generates an interval timer interrupt (WOVI). Internal reset signal* Interrupt control Clock Clock select Reset control RSTCSR TCNT φ/2 φ/64 φ/128 φ/512 φ/2048 φ/8192 φ/32768 φ/131072 Internal clock sources TCSR Module bus Bus interface Internal bus Overflow WOVI (interrupt request signal) WDT Legend: Timer control/status register TCSR: Timer counter TCNT: RSTCSR: Reset control/status register Note: * The type of internal reset signal depends on a register setting. Figure 12.1 Block Diagram of WDT REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 369 of 846 WDT0104A_000020020100 H8S/2215 Group Section 12 Watchdog Timer (WDT) 12.2 Register Descriptions The WDT has the following three registers. For details, refer to section 23, List of Registers. To prevent accidental overwriting, TCSR, TCNT, and RSTCSR have to be written to by a different method to normal registers. For details, refer to section 12.5.1, Notes on Register Access. • Timer counter (TCNT) • Timer control/status register (TCSR) • Reset control/status register (RSTCSR) 12.2.1 Timer Counter (TCNT) TCNT is an 8-bit readable/writable up-counter. TCNT is initialized to H'00 by a reset, when the TME bit in TCSR is cleared to 0. 12.2.2 Timer Control/Status Register (TCSR) TCSR is an 8-bit readable/writable register. Its functions include selecting the clock source to be input to TCNT, and selecting the timer mode. Bit Bit Name Initial Value R/W Description 7 OVF 0 R/(W)* Overflow Flag Indicates that TCNT has overflowed. Only a write of 0 is permitted, to clear the flag. [Setting condition] • When TCNT overflows (changes from H'FF to H'00) When internal reset request generation is selected in watchdog timer mode, OVF is cleared automatically by the internal reset. [Clearing condition] • Cleared by reading TCSR when OVF = 1, then writing 0 to OVF When polling CVF when the interval timer interrupt has been prohibited, OVF = 1 status should be read two or more times. Page 370 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 12 Watchdog Timer (WDT) Bit Bit Name Initial Value R/W Description 6 WT/IT 0 R/W Timer Mode Select Selects whether the WDT is used as a watchdog timer or interval timer. 0: Interval timer mode 1: Watchdog timer mode 5 TME 0 R/W Timer Enable When this bit is set to 1, TCNT starts counting. When this bit is cleared, TCNT stops counting and is initialized to H'00. 4, 3 — All 1 — Reserved These bits are always read as 1 and cannot be modified. 2 CKS2 0 R/W Clock Select 2 to 0 1 CKS1 0 R/W 0 CKS0 0 R/W Selects the clock source to be input to TCNT. The overflow frequency for φ = 16 MHz is enclosed in parentheses. 000: Clock φ/2 (frequency: 32.0 μs) 001: Clock φ/64 (frequency: 1.0 ms) 010: Clock φ/128 (frequency: 2.0 ms) 011: Clock φ/512 (frequency: 8.2 ms) 100: Clock φ/2048 (frequency: 32.8 ms) 101: Clock φ/8192 (frequency: 131.1 ms) 110: Clock φ/32768 (frequency: 524.3 ms) 111: Clock φ/131072 (frequency: 2.1 s) Note: * The write value should always be 0 to clear this flag. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 371 of 846 H8S/2215 Group Section 12 Watchdog Timer (WDT) 12.2.3 Reset Control/Status Register (RSTCSR) RSTCSR is an 8-bit readable/writable register that controls the generation of the internal reset signal when TCNT overflows, and selects the type of internal reset signal. RSTCSR is initialized to H'1F by a reset signal from the RES pin, and not by the WDT internal reset signal caused by overflows. Bit 7 Bit Name WOVF Initial Value R/W Description 0 R/(W)* Watchdog Overflow Flag This bit is set when TCNT overflows in watchdog timer mode. This bit cannot be set in interval timer mode, and the write value should always be 0. [Setting condition] • Set when TCNT overflows (changed from H'FF to H'00) in watchdog timer mode [Clearing condition] • 6 RSTE 0 R/W Cleared by reading RSTCSR when WOVF = 1, and then writing 0 to WOVF Reset Enable Specifies whether or not a reset signal is generated in the chip if TCNT overflows during watchdog timer operation. 0: Reset signal is not generated even if TCNT overflows (Though this LSI is not reset, TCNT and TCSR in WDT are reset) 1: Reset signal is generated if TCNT overflows 5 RSTS 0 R/W Reset Select Selects the type of internal reset generated if TCNT overflows during watchdog timer operation. 0: Power-on reset 1: Setting prohibited 4 to 0 — All 1 — Reserved These bits are always read as 1 and cannot be modified. Note: * The write value should always be 0 to clear this flag. Page 372 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 12 Watchdog Timer (WDT) 12.3 Operation 12.3.1 Watchdog Timer Mode To use the WDT as a watchdog timer, set the WT/IT bit in TCSR and the TME bit to 1. TCNT does not overflow while the system is operating normally. Software must prevent TCNT overflows by rewriting the TCNT value (normally be writing H'00) before overflows occurs. When the RSTE bit of the RSTCSR is set to 1, and if the TCNT overflows, an internal reset signal for this LSI is issued. In this case, select power-on reset or manual reset by setting the RSTS bit of the RSTCSR to 0. If a reset caused by a signal input to the RES pin occurs at the same time as a reset caused by a WDT overflow, the RES pin reset has priority and the WOVF bit in RSTCSR is cleared to 0. The internal reset signal is output for 518 states. When the TCNT overflows in watchdog timer mode, the WOVF bit of the RSTCSR is set to 1. If the RSTE bit of the RSTCSR has been set to 1, an internal reset signal for the entire LSI is generated at TCNT overflow. TCNT value Overflow H'FF Time H'00 WT/IT = 1 TME = 1 H'00 written to TCNT WOVF = 1 Internal reset generated WT/IT = 1 H'00 written TME = 1 to TCNT Internal reset signal* 518 states (WDT0) Legend: WT/IT: Timer mode select bit TME: Timer enable bit Note: * With WDT0, the internal reset signal is generated only when the RSTE bit is set to 1. Figure 12.2 Operation in Watchdog Timer Mode REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 373 of 846 H8S/2215 Group Section 12 Watchdog Timer (WDT) 12.3.2 Timing of Setting of Watchdog Timer Overflow Flag (WOVF) With WDT0, the WOVF bit in RSTCSR is set to 1 if TCNT overflows in watchdog timer mode. If TCNT overflows while the RSTE bit in RSTCSR is set to 1, an internal reset signal is generated for the entire chip. This timing is illustrated in figure 12.3. φ TCNT H'FF H'00 Overflow signal (internal signal) WOVF Internal reset signal 518 states (WDT0) Figure 12.3 Timing of WOVF Setting Page 374 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 12.3.3 Section 12 Watchdog Timer (WDT) Interval Timer Mode To use the WDT as an interval timer, clear bit WT/IT in TCSR to 0 and set bit TME to 1. When the interval timer is operating, an interval timer interrupt (WOVI) is generated each time the TCNT overflows. Therefore, an interrupt can be generated at intervals. TCNT count Overflow H'FF Overflow Overflow Overflow Time H'00 WT/IT = 0 TME = 1 WOVI WOVI WOVI WOVI Legend: WOVI: Interval interrupt request generation Figure 12.4 Operation in Interval Timer Mode 12.3.4 Timing of Setting of Overflow Flag (OVF) The OVF flag is set to 1 if TCNT overflows during interval timer operation. At the same time, an interval timer interrupt (WOVI) is requested. This timing is shown in figure 12.5. φ TCNT H'FF H'00 Overflow signal (internal signal) OVF Figure 12.5 Timing of OVF Setting REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 375 of 846 H8S/2215 Group Section 12 Watchdog Timer (WDT) 12.4 Interrupts During interval timer mode operation, an overflow generates an interval timer interrupt (WOVI). The interval timer interrupt is requested whenever the OVF flag is set to 1 in TCSR. OVF must be cleared to 0 in the interrupt handling routine. Table 12.1 WDT Interrupt Source Name Interrupt Source Interrupt Flag DTC Activation WOVI TCNT overflow WOVF Impossible 12.5 Usage Notes 12.5.1 Notes on Register Access The watchdog timer’s TCNT, TCSR, and RSTCSR registers differ from other registers in being more difficult to write to. The procedures for writing to and reading these registers are given below. Writing to TCNT and TCSR: These registers must be written to by a word transfer instruction. They cannot be written to with byte transfer instructions. Figure 12.6 shows the format of data written to TCNT and TCSR. TCNT and TCSR both have the same write address. For a write to TCNT, the upper byte of the written word must contain H'5A and the lower byte must contain the write data. For a write to TCSR, the upper byte of the written word must contain H'A5 and the lower byte must contain the write data. This transfers the write data from the lower byte to TCNT or TCSR. TCNT write 15 8 7 H'5A Address: H'FF74 0 Write data TCSR write 15 Address: H'FF74 8 7 H'A5 0 Write data Figure 12.6 Format of Data Written to TCNT and TCSR Page 376 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 12 Watchdog Timer (WDT) Writing to RSTCSR: RSTCSR must be written to by a word transfer to address H'FF76. It cannot be written to with byte instructions. Figure 12.7 shows the format of data written to RSTCSR. The method of writing 0 to the WOVF bit differs from that for writing to the RSTE and RSTS bits. To write 0 to the WOVF bit, the upper byte of the written word must contain H'A5 and the lower byte must contain H'00. This clears the WOVF bit to 0, but has no effect on the RSTE and RSTS bits. To write to the RSTE and RSTS bits, the upper byte must contain H'5A and the lower byte must contain the write data. This writes the values in bits 6 and 5 of the lower byte into the RSTE and RSTS bits, but has no effect on the WOVF bit. Writing 0 to WOVF bit 15 8 7 H'A5 Address: H'FF76 0 H'00 Write to RSTE, RSTS bits 15 Address: H'FF76 8 7 H'5A 0 Write data Figure 12.7 Format of Data Written to RSTCSR (Example of WDT0) Reading from TCNT, TCSR, and RSTCSR: TCNT, TCSR, and RSTCSR are read by using the same method as for the general registers. TCSR, TCNT, and RSTCSR are allocated in addresses H'FF74, H'FF75, and H'FF77 respectively. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 377 of 846 H8S/2215 Group Section 12 Watchdog Timer (WDT) 12.5.2 Contention between Timer Counter (TCNT) Write and Increment If a timer counter clock pulse is generated during the T2 state of a TCNT write cycle, the write takes priority and the timer counter is not incremented. Figure 12.8 shows this operation. TCNT write cycle T1 T2 φ Address Internal write signal TCNT input clock TCNT N M Counter write data Figure 12.8 Contention between TCNT Write and Increment 12.5.3 Changing Value of CKS2 to CKS0 If bits CKS0 to CKS2 in TCSR are written to while the WDT is operating, errors could occur in the incrementation. Software must be used to stop the watchdog timer (by clearing the TME bit to 0) before changing the value of bits CKS0 to CKS2. 12.5.4 Switching between Watchdog Timer Mode and Interval Timer Mode If the mode is switched from watchdog timer to interval timer while the WDT is operating, errors could occur in the incrementation. Software must be used to stop the watchdog timer (by clearing the TME bit to 0) before switching the mode. Page 378 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 12.5.5 Section 12 Watchdog Timer (WDT) Internal Reset in Watchdog Timer Mode This LSI is not reset internally if TCNT overflows while the RSTE bit is cleared to 0 during watchdog timer operation, however TCNT and TCSR of the WDT are reset. TCNT, TCSR, or RSTCR cannot be written to for 132 states following an overflow. During this period, any attempt to read the WOVF flag is not acknowledged. Accordingly, wait 132 states after overflow to write 0 to the WOVF flag for clearing. 12.5.6 OVF Flag Clearing in Interval Timer Mode When the OVF flag setting conflicts with the OVF flag reading in interval timer mode, writing 0 to the OVF flag may not clear the flag even though the OVF flag has been read while it is 1. If there is a possibility that the OVF flag setting and reading will conflict, such as when the OVF flag is polled with the interval timer interrupt disabled, read the OVF flag while it is 1 at least twice before writing 0 to the OVF flag to clear the flag. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 379 of 846 Section 12 Watchdog Timer (WDT) Page 380 of 846 H8S/2215 Group REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface Section 13 Serial Communication Interface This LSI has three independent serial communication interface (SCI) channels. The SCI can handle both asynchronous and clocked synchronous serial communication. Asynchronous serial data communication can be carried out using standard asynchronous communication chips such as a Universal Asynchronous Receiver/Transmitter (UART) or an Asynchronous Communication Interface Adapter (ACIA). The SCI also supports the smart card (IC card) interface based on ISO/IEC 7816-3 (Identification Card) as an enhanced asynchronous communication function. 13.1 Features • Choice of asynchronous or clocked synchronous serial communication mode • Full-duplex communication capability The transmitter and receiver are mutually independent, enabling transmission and reception to be executed simultaneously. Double-buffering is used in both the transmitter and the receiver, enabling continuous transmission and continuous reception of serial data. • On-chip baud rate generator allows any bit rate to be selected External clock can be selected as a transfer clock source (except for in Smart Card interface mode). • Choice of LSB-first or MSB-first transfer (except in the case of asynchronous mode 7-bit data) • Four interrupt sources Transmit-end, transmit-data-empty, receive-data-full, and receive error — that can issue requests. The transmit-data-empty interrupt and receive data full interrupts can be used to activate the DMA controller (DMAC) or the Data Transfer Controller (DTC). • Module stop mode can be set Asynchronous Mode • Data length: 7 or 8 bits • Stop bit length: 1 or 2 bits • Parity: Even, odd, or none • Receive error detection: Parity, overrun, and framing errors • Break detection: Break can be detected by reading the RxD pin level directly in the case of a framing error REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 381 of 846 H8S/2215 Group Section 13 Serial Communication Interface • Average transfer rate generator (SCI_0): In H8S/2215 720 kbps, 460.784 kbps, or 115.196 kbps can be selected at 16 MHz. In H8S/2215R, H8S/2215T and H8S/2215C 921.569 kbps, 720 kbps, 460.784 kbps, or 115.196 kbps can be selected at 16 MHz. 921.053 kbps, 720 kbps, 460.526 kbps, or 115.132 kbps can be selected at 24 MHz. • A transfer rate clock can be input from the TPU (SCI_0) • A multiprocessor communication function is provided that enables serial data communication with a number of processors Clocked Synchronous Mode • Data length: 8 bits • Receive error detection: Overrun errors detected • SCI select function (SCI_0): TxD0 = high-impedance and SCK0 = fixed high-level input can selected when IRQ7 = 1) • Serial data communication can be carried out with other chips that have a synchronous communication function Smart Card Interface • An error signal can be automatically transmitted on detection of a parity error during reception • Data can be automatically re-transmitted on detection of a error signal during transmission • Both direct convention and inverse convention are supported Page 382 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 13.1.1 Section 13 Serial Communication Interface Block Diagram Bus interface Module data bus SCMR TDR RDR Internal data bus Figure 13.1 shows the block diagram of the SCI_0 for H8S/2215, figure 13.2 shows the block diagram of the SCI_0 for H8S/2215R, H8S/2215T and H8S/2215C. Figure 13.2 shows the block diagram of the SCI_1 and SCI_2. BRR SSR φ SCR RxD0 RSR Baud rate generator SMR TSR SEMR control transmission and reception TxD0 φ/4 φ/16 φ/64 Detecting parity Parity Clock check TEI TXI RXI ERI PG1/IRQ7 C/A CKE1 Average transfer rate generator SSE External clock SCK0 10.667 MHz · 115.152 kbps · 460.606 kbps 16 MHz · 115.196 kbps · 460.784 kbps · 720 kbps TIOCA1 TCLKA TIOCA2 Legend: RSR: Receive shift register RDR: Receive data register TSR: Transmit shift register TDR: Transmit data register SMR: Serial mode register SCR: SSR: SCMR: BRR: SEMR: TPU Serial control register Serial status register Smart card mode register Bit rate register Serial Extended mode register Figure 13.1 Block Diagram of SCI_0 (H8S/2215) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 383 of 846 Bus interface Module data bus RDR RxD0 TDR RSR TxD0 PG1/IRQ7 Parity generation Parity check BRR SCMR SSR SCR SMR SEMRA_0 SEMRB_0 control transmission and reception TSR Internal data bus H8S/2215 Group Section 13 Serial Communication Interface φ Baud rate generator φ/4 φ/16 φ/64 Clock TEI TXI RXI ERI C/A CKE1 SSE Average transfer rate generator External clock SCK0 SCI transfer clock generator in TPU 10.667 MHz · 115.152 kbps · 460.606 kbps 16 MHz · 115.196 kbps · 460.784 kbps · 720 kbps · 921.569 kbps 24 MHz · 115.132 kbps · 460.526 kbps · 720 kbps · 921.053 kbps TIOCA0 TIOCC0 TIOCA1 TPU TIOCA2 Legend: RSR: Receive shift register RDR: Receive data register TSR: Transmit shift register TDR: Transmit data register SMR: Serial mode register SCR: SSR: SCMR: BRR: SEMRA_0: SEMRB_0: Serial control register Serial status register Smart card mode register Bit rate register Serial extended mode register A_0 Serial extended mode register B_0 Figure 13.2 Block Diagram of SCI_0 (H8S/2215R, H8S/2215T and H8S/2215C) Page 384 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Module data bus RDR TDR SCMR BRR SSR φ SCR RxD RSR TSR Baud rate generator SMR Detecting parity φ/4 φ/16 control transmission and reception TxD Internal data bus Bus interface Section 13 Serial Communication Interface φ/64 Clock Parity check External clock SCK Legend: RSR: Receive shift register RDR: Receive data register TSR: Transmit shift register TDR: Transmit data register SMR: Serial mode register SCR: Serial control register SSR: Serial status register SCMR: Smart card register BRR: Bit rate register TEI TXI RXI ERI Figure 13.3 Block Diagram of SCI_1 and SCI_2 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 385 of 846 H8S/2215 Group Section 13 Serial Communication Interface 13.2 Input/Output Pins Table 13.1 shows the serial pins for each SCI channel. Table 13.1 Pin Configuration Channel Pin Name* I/O Function 0 SCK0 I/O SCI_0 clock input/output 1 2 Note: 13.3 * RxD0 Input SCI_0 receive data input TxD0 Output SCI_0 transmit data output SCK1 I/O SCI_1 clock input/output RxD1 Input SCI_1 receive data input TxD1 Output SCI_1 transmit data output SCK2 I/O SCI_2 clock input/output RxD2 Input SCI_2 receive data input TxD2 Output SCI_2 transmit data output Pin names SCK, RxD, and TxD are used in the text for all channels, omitting the channel designation. Register Descriptions The SCI has the following registers for each channel. Some bits in the serial mode register (SMR), serial status register (SSR), and serial control register (SCR) have different functions in different modes⎯normal serial communication interface mode and smart card interface mode; therefore, the bits are described separately for each mode in the corresponding register sections. • Receive shift register (RSR) • Receive data register (RDR) • Transmit data register (TDR) • Transmit shift register (TSR) • Serial mode register (SMR) • Serial control register (SCR) • Serial status register (SSR) • Smart card mode register (SCMR) • Serial extended mode register (SEMR) (only for channel 0 in H8S/2215) • Serial extended mode register A_0 (SEMRA_0) (only for channel 0 in H8S/2215R, H8S/2215T and H8S/2215C) Page 386 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface • Serial extended mode register B_0 (SEMRB_0) (only for channel 0 in H8S/2215R, H8S/2215T and H8S/2215C) • Bit rate register (BRR) 13.3.1 Receive Shift Register (RSR) RSR is a shift register that is used to receive serial data input to the RxD pin and convert it into parallel data. When one byte of data has been received, it is transferred to RDR automatically. RSR cannot be directly accessed by the CPU. 13.3.2 Receive Data Register (RDR) RDR is an 8-bit register that stores received data. When the SCI has received one byte of serial data, it transfers the received serial data from RSR to RDR, where it is stored. After this, RSR is receive-enabled. As RSR and RDR function as a double buffer in this way, continuous receive operations are possible. After confirming that the RDRF bit in SSR is set to 1, read RDR only once. RDR cannot be written to by the CPU. 13.3.3 Transmit Data Register (TDR) TDR is an 8-bit register that stores data for transmission. When the SCI detects that TSR is empty, it transfers the transmit data written in TDR to TSR and starts transmission. The double-buffered structure of TDR and TSR enables continuous serial transmission. If the next transmit data has already been written to TDR during serial transmission, the SCI transfers the written data to TSR to continue transmission. Although TDR can be read from or written to by the CPU at all times, to achieve reliable serial transmission, write transmit data to TDR only once after confirming that the TDRE bit in SSR is set to 1. 13.3.4 Transmit Shift Register (TSR) TSR is a shift register that transmits serial data. To perform serial data transmission, the SCI first transfers transmit data from TDR to TSR, then sends the data to the TxD pin. TSR cannot be directly accessed by the CPU. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 387 of 846 H8S/2215 Group Section 13 Serial Communication Interface 13.3.5 Serial Mode Register (SMR) SMR is used to set the SCI's serial transfer format and select the baud rate generator clock source. Some bits in SMR have different functions in normal mode and smart card interface mode. • Normal Serial Communication Interface Mode (When SMIF in SCMR is 0) Bit Bit Name Initial Value R/W Description 7 C/A R/W Communication Mode 0 0: Asynchronous mode 1: Clocked synchronous mode 6 CHR 0 R/W Character Length (enabled only in asynchronous mode) 0: Selects 8 bits as the data length 1: Selects 7 bits as the data length. LSB-first is fixed and the MSB of TDR is not transmitted in transmission In clocked synchronous mode, a fixed data length of 8 bits is used. 5 PE 0 R/W Parity Enable (enabled only in asynchronous mode) When this bit is set to 1, the parity bit is added to transmit data before transmission, and the parity bit is checked in reception. For a multiprocessor format, parity bit addition and checking are not performed regardless of the PE bit setting. 4 O/E 0 R/W Parity Mode (enabled only when the PE bit is 1 in asynchronous mode) 0: Selects even parity 1: Selects odd parity 3 STOP 0 R/W Stop Bit Length (enabled only in asynchronous mode) Selects the stop bit length in transmission. 0: 1 stop bit 1: 2 stop bits In reception, only the first stop bit is checked. If the second stop bit is 0, it is treated as the start bit of the next transmit character. Page 388 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface Bit Bit Name Initial Value R/W Description 2 MP R/W Multiprocessor Mode (enabled only in asynchronous mode) 0 When this bit is set to 1, the multiprocessor communication function is enabled. The PE bit and O/E bit settings are invalid in multiprocessor mode. For details, see section 13.5, Multiprocessor Communication Function. 1 CKS1 0 R/W Clock Select 0 and 1: 0 CKS0 0 R/W These bits select the clock source for the baud rate generator. 00: φ clock (n = 0) 01: φ/4 clock (n = 1) 10: φ/16 clock (n = 2) 11: φ/64 clock (n = 3) For the relationship between the bit rate register setting and the baud rate, see section 13.3.12, Bit Rate Register (BRR). n is the decimal representation of the value of n in BRR (see section 13.3.12, Bit Rate Register (BRR)). REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 389 of 846 H8S/2215 Group Section 13 Serial Communication Interface • Smart Card Interface Mode (When SMIF in SCMR is 1) Bit Bit Name Initial Value R/W Description 7 GM 0 R/W GSM Mode Setting this bit to 1 allows GSM mode operation. In GSM mode, the TEND set timing is put forward to 11.0 etu from the start and the clock output control function is appended. For details, see section 13.7.9, Clock Output Control. 0: Normal smart card interface mode operation (initial value) (1) The TEND flag is generated 12.5 etu (11.5 etu in the block transfer mode) after the beginning of the start bit. (2) Clock output on/off control only. 1: GSM mode operation in smart card interface mode (1) The TEND flag is generated 11.0 etu after the beginning of the start bit. (2) In addition to clock output on/off control, high/how fixed control is supported (set using SCR). 6 BLK 0 R/W Setting this bit to 1 allows block transfer mode operation. For details, see section 13.7.4, Block Transfer Mode. 0: Normal smart card interface mode operation (initial value) (1) Error signal transmission, detection, and automatic data retransmission are performed. (2) The TXI interrupt is generated by the TEND flag. (3) The TEND flag is set 12.5 etu (11.0 etu in the GSM mode) after transmission starts. 1: Operation in block transfer mode (1) Error signal transmission, detection, and automatic data retransmission are not performed. (2) The TXI interrupt is generated by the TDRE flag. (3) The TEND flag is set 11.5 etu (11.0 etu in the GSM mode) after transmission starts. Page 390 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface Bit Bit Name Initial Value R/W Description 5 PE R/W Parity Enable 0 When this bit is set to 1, the parity bit is added to transmit data before transmission, and the parity bit is checked in reception. Set this bit to 1 in smart card interface mode. 4 O/E 0 R/W Parity Mode (valid only when the PE bit is 1) 0: Selects even parity 1: Selects odd parity For details on the usage of this bit in smart card interface mode, see section 13.7.2, Data Format (Except for Block Transfer Mode). 3 BCP1 0 R/W Basic Clock Pulse 1,0 2 BCP0 0 R/W These bits select the number of basic clock cycles in a 1bit data transfer time in smart card interface mode. 00: 32 clock cycles (S = 32) 01: 64 clock cycles (S = 64) 10: 372 clock cycles (S = 372) 11: 256 clock cycles (S = 256) For details, see section 13.7.5, Receive Data Sampling Timing and Reception Margin. S is described in section 13.3.12, Bit Rate Register (BRR). 1 CKS1 0 R/W Clock Select 1,0 0 CKS0 0 R/W These bits select the clock source for the baud rate generator. 00: φ clock (n = 0) 01: φ/4 clock (n = 1) 10: φ/16 clock (n = 2) 11: φ/64 clock (n = 3) For the relation between the bit rate register setting and the baud rate, see section 13.3.12, Bit Rate Register (BRR). n is the decimal display of the value of n in BRR (see section 13.3.12, Bit Rate Register (BRR)). REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 391 of 846 H8S/2215 Group Section 13 Serial Communication Interface 13.3.6 Serial Control Register (SCR) SCR is a register that enables or disables SCI transfer operations and interrupt requests, and is also used to selection of the transfer clock source. For details on interrupt requests, refer to section 13.9, Interrupts. Some bits in SCR have different functions in normal mode and smart card interface mode. • Normal Serial Communication Interface Mode (When SMIF in SCMR is 0) Bit Bit Name Initial Value R/W 7 TIE R/W 0 Description Transmit Interrupt Enable When this bit is set to 1, the TXI interrupt request is enabled. TXI interrupt request cancellation can be performed by reading 1 from the TDRE flag, then clearing it to 0, or clearing the TIE bit to 0. 6 RIE 0 R/W Receive Interrupt Enable When this bit is set to 1, RXI and ERI interrupt requests are enabled. RXI and ERI interrupt request cancellation can be performed by reading 1 from the RDRF flag, or the FER, PER, or ORER flag, then clearing the flag to 0, or clearing the RIE bit to 0. 5 TE 0 R/W Transmit Enable When this bit s set to 1, transmission is enabled. In this state, serial transmission is started when transmit data is written to TDR and the TDRE flag in SSR is cleared to 0. SMR setting must be performed to decide the transfer format before setting the TE bit to 1. The TDRE flag in SSR is fixed at 1 if transmission is disabled by clearing this bit to 0. 4 RE 0 R/W Receive Enable When this bit is set to 1, reception is enabled. Serial reception is started in this state when a start bit is detected in asynchronous mode or serial clock input is detected in clocked synchronous mode. SMR setting must be performed to decide the transfer format before setting the RE bit to 1. Clearing the RE bit to 0 does not affect the RDRF, FER, PER, and ORER flags, which retain their states. Page 392 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface Bit Bit Name Initial Value R/W Description 3 MPIE R/W Multiprocessor Interrupt Enable (enabled only when the MP bit in SMR is 1 in asynchronous mode) 0 When this bit is set to 1, receive data in which the multiprocessor bit is 0 is skipped, and setting of the RDRF, FER, and ORER status flags in SSR is prohibited. On receiving data in which the multiprocessor bit is 1, this bit is automatically cleared and normal reception is resumed. For details, refer to section 13.5, Multiprocessor Communication Function. When receive data including MPB = 0 is received, receive data transfer from RSR to RDR, receive error detection, and setting of the RDRF, FER, and ORER flags in SSR, is not performed. When receive data including MPB = 1 is received, the MPB bit in SSR is set to 1, the MPIE bit is cleared to 0 automatically, and generation of RXI and ERI interrupts (when the TIE and RIE bits in SCR are set to 1) and FER and ORER flag setting is enabled. 2 TEIE 0 R/W Transmit End Interrupt Enable This bit is set to 1, TEI interrupt request is enabled. TEI cancellation can be performed by reading 1 from the TDRE flag in SSR, then clearing it to 0 and clearing the TEND flag to 0, or clearing the TEIE bit to 0. 1 CKE1 0 R/W Clock Enable 0 and 1 0 CKE0 0 R/W Selects the clock source and SCK pin function. Asynchronous mode 00: Internal baud rate generator SCK pin functions as I/O port 01: Internal baud rate generator Outputs a clock of the same frequency as the bit rate from the SCK pin. 1X: External clock Inputs a clock with a frequency 16 times the bit rate from the SCK pin. Clocked synchronous mode 0X: Internal clock (SCK pin functions as clock output) 1X: External clock (SCK pin functions as clock input) Legend: X: Don’t care REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 393 of 846 H8S/2215 Group Section 13 Serial Communication Interface • Smart Card Interface Mode (When SMIF in SCMR is 1) Bit Bit Name Initial Value R/W Description 7 TIE R/W Transmit Interrupt Enable 0 When this bit is set to 1, TXI interrupt request is enabled. TXI interrupt request cancellation can be performed by reading 1 from the TDRE flag in SSR, then clearing it to 0, or clearing the TIE bit to 0. 6 RIE 0 R/W Receive Interrupt Enable When this bit is set to 1, RXI and ERI interrupt requests are enabled. RXI and ERI interrupt request cancellation can be performed by reading 1 from the RDRF, FER, PER, or ORER flag in SSR, then clearing the flag to 0, or clearing the RIE bit to 0. 5 TE 0 R/W Transmit Enable When this bit s set to 1, transmission is enabled. In this state, serial transmission is started when transmit data is written to TDR and the TDRE flag in SSR is cleared to 0. SMR setting must be performed to decide the transfer format before setting the TE bit to 1. When this bit is cleared to 0, the transmission operation is disabled, and the TDRE flag is fixed at 1. 4 RE 0 R/W Receive Enable When this bit is set to 1, reception is enabled. Serial reception is started in this state when a start bit is detected in asynchronous mode or serial clock input is detected in clocked synchronous mode. SMR setting must be performed to decide the reception format before setting the RE bit to 1. Clearing the RE bit to 0 does not affect the RDRF, FER, PER, and ORER flags, which retain their states. Page 394 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface Bit Bit Name Initial Value R/W Description 3 MPIE 0 R/W Multiprocessor Interrupt Enable (enabled only when the MP bit in SMR is 1 in asynchronous mode) Write 0 to this bit in Smart Card interface mode. When receive data including MPB = 0 is received, receive data transfer from RSR to RDR, receive error detection, and setting of the RERF, FER, and ORER flags in SSR, are not performed. When receive data including MPB = 1 is received, the MPB bit in SSR is set to 1, the MPIE bit is cleared to 0 automatically, and generation of RXI and ERI interrupts (when the TIE and RIE bits in SCR are set to 1) and FER and ORER flag setting are enabled. 2 TEIE 0 R/W Transmit End Interrupt Enable Write 0 to this bit in Smart Card interface mode. TEI cancellation can be performed by reading 1 from the TDRE flag in SSR, then clearing it to 0 and clearing the TEND flag to 0, or clearing the TEIE bit to 0. 1 CKE1 0 R/W 0 CKE0 0 Clock Enable 0 and 1 Enables or disables clock output from the SCK pin. The clock output can be dynamically switched in GSM mode. For details, refer to section 13.7.9, Clock Output Control. When the GM bit in SMR is 0: 00: Output disabled (SCK pin can be used as an I/O port pin) 01: Clock output 1X: Reserved When the GM bit in SMR is 1: 00: Output fixed low 01: Clock output 10: Output fixed high 11: Clock output Legend: X: Don’t care REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 395 of 846 H8S/2215 Group Section 13 Serial Communication Interface 13.3.7 Serial Status Register (SSR) SSR is a register containing status flags of the SCI and multiprocessor bits for transfer. 1 cannot be written to flags TDRE, RDRF, ORER, PER, and FER; they can only be cleared. Some bits in SSR have different functions in normal mode and smart card interface mode. • Normal Serial Communication Interface Mode (When SMIF in SCMR is 0) Bit 7 Bit Name Initial Value R/W TDRE R/(W)* Transmit Data Register Empty 1 Description 1 Displays whether TDR contains transmit data. [Setting conditions] • • When the TE bit in SCR is 0 When data is transferred from TDR to TSR and data can be written to TDR [Clearing conditions] 3 • When 0 is written to TDRE after reading TDRE = 1* 2 • When the DMAC or the DTC* is activated by a TXI interrupt request and writes data to TDR 6 RDRF 0 R/(W)* Receive Data Register Full 1 Indicates that the received data is stored in RDR. [Setting condition] • When serial reception ends normally and receive data is transferred from RSR to RDR [Clearing conditions] • • When 0 is written to RDRF after reading RDRF = 1* 2 When the DMAC or the DTC* is activated by an RXI interrupt and transferred data from RDR RDR and the RDRF flag are not affected and retain their previous values when the RE bit in SCR is cleared to 0. 3 The RDRF flag is not affected and retains their previous values when the RE bit in SCR is cleared to 0. Page 396 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Bit 5 Section 13 Serial Communication Interface Bit Name Initial Value R/W ORER R/(W)* Overrun Error 0 Description 1 [Setting condition] • When the next serial reception is completed while RDRF = 1 The receive data prior to the overrun error is retained in RDR, and the data received subsequently is lost. Also, subsequent serial reception cannot be continued while the ORER flag is set to 1. In clocked synchronous mode, serial transmission cannot be continued, either. [Clearing condition] 3 • When 0 is written to ORER after reading ORER = 1* The ORER flag is not affected and retains its previous state when the RE bit in SCR is cleared to 0. 4 FER 0 1 R/(W)* Framing Error [Setting condition] • When the stop bit is 0 In 2-stop-bit mode, only the first stop bit is checked for a value of 0; the second stop bits not checked. If a framing error occurs, the receive data is transferred to RDR but the RDRF flag is not set. Also, subsequent serial reception cannot be continued while the FER flag is set to 1. In clocked synchronous mode, serial transmission cannot be continued, either. [Clearing condition] 3 • When 0 is written to FER after reading FER = 1* The FER flag is not affected and retains its previous state when the RE bit in SCR is cleared to 0. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 397 of 846 H8S/2215 Group Section 13 Serial Communication Interface Bit 3 Bit Name Initial Value R/W PER R/(W)* Parity Error 0 Description 1 [Setting condition] • When a parity error is detected during reception If a parity error occurs, the receive data is transferred to RDR but the RDRF flag is not set. Also, subsequent serial reception cannot be continued while the PER flag is set to 1. In clocked synchronous mode, serial transmission cannot be continued, either. [Clearing condition] 3 • When 0 is written to PER after reading PER = 1* The PER flag is not affected and retains its previous state when the RE bit in SCR is cleared to 0. 2 TEND 1 R Transmit End [Setting conditions] • • When the TE bit in SCR is 0 When TDRE = 1 at transmission of the last bit of a 1byte serial transmit character [Clearing conditions] • • 1 MPB 0 R When 0 is written to TDRE after reading TDRE = 1 2 When the DMAC or the DTC* is activated by a TXI interrupt and writes data to TDR Multiprocessor Bit MPB stores the multiprocessor bit in the receive data. When the RE bit in SCR is cleared to 0 its previous state is retained. This bit retains its previous state when the RE bit in SCR is cleared to 0. 0 MPBT 0 R/W Multiprocessor Bit Transfer MPBT stores the multiprocessor bit to be added to the transmit data. Notes: 1. The write value should always be 0 to clear the flag. 2. The clearing conditions using the DTC are that DISEL bit be cleared to 0 and the transfer counter value be other than 0. 3. To clear the flag by the CPU on the H8S/2215R, H8S/2215T, and H8S/2215C, reread the flag after writing 0 to it. Page 398 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface • Smart Card Interface Mode (When SMIF in SCMR is 1) Bit 7 Bit Name Initial Value R/W TDRE 1 Description R/(W)* Transmit Data Register Empty 1 Indicates whether TDR contains transmit data. [Setting conditions] • • When the TE bit in SCR is 0 When data is transferred from TDR to TSR and data can be written to TDR [Clearing conditions] 3 • When 0 is written to TDRE after reading TDRE = 1* 2 • When the DMAC or the DTC* is activated by a TXI interrupt request and writes data to TDR 6 RDRF 0 1 R/(W)* Receive Data Register Full Indicates that the received data is stored in RDR. [Setting condition] • When serial reception ends normally and receive data is transferred from RSR to RDR [Clearing conditions] 3 • When 0 is written to RDRF after reading RDRF = 1* 2 • When the DMAC or the DTC* is activated by an RXI interrupt and transferred data from RDR The RDRF flag is not affected and retains their previous values when the RE bit in SCR is cleared to 0. If reception of the next data is completed while the RDRF flag is still set to 1, an overrun error will occur and the receive data will be lost. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 399 of 846 H8S/2215 Group Section 13 Serial Communication Interface Bit 5 Bit Name Initial Value R/W ORER 0 Description R/(W)* Overrun Error 1 Indicates that an overrun error occurred during reception, causing abnormal termination. [Setting condition] • When the next serial reception is completed while RDRF = 1 The receive data prior to the overrun error is retained in RDR, and the data received subsequently is lost. Also, subsequent serial cannot be continued while the ORER flag is set to 1. In clocked synchronous mode, serial transmission cannot be continued, either. [Clearing condition] • When 0 is written to ORER after reading ORER = 1* The ORER flag is not affected and retains its previous state when the RE bit in SCR is cleared to 0. 4 ERS 0 3 1 R/(W)* Error Signal Status Indicates that the status of an error, signal 1 returned from the reception side at reception [Setting condition] • When the low level of the error signal is sampled [Clearing condition] 3 • When 0 is written to ERS after reading ERS = 1* The ERS flag is not affected and retains its previous state when the RE bit in SCR is cleared to 0. 3 PER 0 1 R/(W)* Parity Error Indicates that a parity error occurred during reception using parity addition in asynchronous mode, causing abnormal termination. [Setting condition] • When a parity error is detected during reception If a parity error occurs, the receive data is transferred to RDR but the RDRF flag is not set. Also, subsequent serial reception cannot be continued while the PER flag is set to 1. In clocked synchronous mode, serial transmission cannot be continued, either. [Clearing condition] 3 • When 0 is written to PER after reading PER = 1* The PER flag is not affected and retains its previous state when the RE bit in SCR is cleared to 0. Page 400 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface Bit Bit Name Initial Value R/W Description 2 TEND Transmit End 1 R This bit is set to 1 when no error signal has been sent back from the receiving end and the next transmit data is ready to be transferred to TDR. [Setting conditions] • • When the TE bit in SCR is 0 and the ERS bit is also 0 When the ESR bit is 0 and the TDRE bit is 1 after the specified interval following transmission of 1-byte data. The timing of bit setting differs according to the register setting as follows: When GM = 0 and BLK = 0, 2.5 etu after transmission starts When GM = 0 and BLK = 1, 1.0 etu after transmission starts When GM = 1 and BLK = 0, 1.5 etu after transmission starts When GM = 1 and BLK = 1, 1.0 etu after transmission starts [Clearing conditions] • • 1 MPB 0 R When 0 is written to TDRE after reading TDRE = 1 2 When the DMAC or the DTC* is activated by a TXI interrupt and transfers transmission data to TDR Multiprocessor Bit This bit is not used in Smart Card interface mode. 0 MPBT 0 R/W Multiprocessor Bit Transfer Write 0 to this bit in Smart Card interface mode. Notes: 1. The write value should always be 0 to clear the flag. 2. The clearing conditions using the DTC are that DISEL bit be cleared to 0 and the transfer counter value be other than 0. 3. To clear the flag by the CPU on the H8S/2215R, H8S/2215T, and H8S/2215C, reread the flag after writing 0 to it. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 401 of 846 H8S/2215 Group Section 13 Serial Communication Interface 13.3.8 Smart Card Mode Register (SCMR) SCMR selects the operation in smart card interface or the data Transfer formats. Bit Bit Name Initial Value R/W Description 7 to 4 — All 1 — Reserved 3 0 R/W Smart Card Data Transfer Direction These bits are always read as 1. DIR Selects the serial/parallel conversion format. 0: LSB-first in transfer 1: MSB-first in transfer The bit setting is valid only when the transfer data format is 8 bits. 2 INV 0 R/W Smart Card Data Invert Specifies inversion of the data logic level. The SINV bit does not affect the logic level of the parity bit. To invert the parity bit, invert the O/E bit in SMR. 0: TDR contents are transmitted as they are. Receive data is stored as it is in RDR 1: TDR contents are inverted before being transmitted. Receive data is stored in inverted form in RDR 1 — 1 — Reserved This bit is always read as 1. 0 SMIF 0 R/W Smart Card Interface Mode Select When this bit is set to 1, smart card interface mode is selected. 0: Normal asynchronous or clocked synchronous mode 1: Smart card interface mode Page 402 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 13.3.9 Section 13 Serial Communication Interface Serial Extended Mode Register (SEMR) (Only for Channel 0 in H8S/2215) SEMR extends the functions of SCI_0. SEMR0 enables selection of the SCI_0 select function in synchronous mode, base clock setting in asynchronous mode, and also clock source selection and automatic transfer rate setting. Figure 13.3 shows an example of the internal base clock when an average transfer rate is selected and figure 13.4 shows as example of the setting when the TPU clock input is selected. Bit Bit Name Initial Value R/W Description 7 SSE 0 R/W SCI_0 Select Enable Allows selection of the SCI0 select function when an external clock is input in synchronous mode. The SSE setting is valid when external clock input is used (CKE1 = 1 in SCR) in synchronous mode (C/A = 1 in SMR). 0: SCI_0 select function disabled 1: SCI_0 select function enabled When the SCI_0 select function is enabled, if 1 is input to the PG1/IRQ7 pin, TxD0 output goes to the high-impedance state, SCK0 input is fixed high. 6 to 4 — Undefined — Reserved The write value should always be 0. 3 ABCS 0 R/W Asynchronous Base Clock Select Selects the 1-bit-interval base clock in asynchronous mode. The ABCS setting is valid in asynchronous mode (C/A = 0 in SMR). 0: SCI_0 operates on base clock with frequency of 16 times transfer rate 1: SCI_0 operates on base clock with frequency of 8 times transfer rate REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 403 of 846 H8S/2215 Group Section 13 Serial Communication Interface Bit Bit Name Initial Value R/W Description 2 ACS2 0 R/W Asynchronous Clock Source Select 2 to 0 1 ACS1 0 0 ACS0 0 R/W These bits select the clock source in asynchronous mode. R/W When an average transfer rate is selected, the base clock is set automatically regardless of the ABCS value. Note that average transfer rates are not supported for operating frequencies other than 10.667 MHz and 16 MHz. The setting in bits ACS2 to ACS0 is valid when external clock input is used (CKE1 = 1 in SCR) in asynchronous mode (C/A = 0 in SMR). Figures 13.3 and 13.4 show setting examples. 000: External clock input 001: 115.152 kbps average transfer rate (for φ = 10.667 MHz only) is selected* (SCI_0 operates on base clock with frequency of 16 times transfer rate) 010: 460.606 kbps average transfer rate (for φ = 10.667 MHz only) is selected* (SCI_0 operates on base clock with frequency of 8 times transfer rate) 011: Reserved 100: TPU clock input (AND of TIOCA1 and TIOCA2) The signal generated by TIOCA1 and TIOCA2, which are the compare match outputs for TPU_1 and TPU_2 or PWM outputs, is used as a base clock. Note that IRQ0 and IRQ1 cannot be used since TIOCA1 and TIOCA2 are used as outputs. The high pulse width for TIOCA1 should be its low pulse width or less. 101: 115.196 kbps average transfer rate (for φ = 16 MHz only) is selected (SCI_0 operates on base clock with frequency of 16 times transfer rate) 110: 460.784 kbps average transfer rate (for φ = 16 MHz only) is selected (SCI_0 operates on base clock with frequency of 16 times transfer rate) 111: 720 kbps average transfer rate (for φ = 16 MHz only) is selected (SCI_0 operates on base clock with frequency of 8 times transfer rate) Note: * Cannot be used in this LSI because the operating frequency φ in this LSI is 13 MHz or greater. Page 404 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Sep 16, 2010 REJ09B0140-0900 Rev. 9.00 1 1 2 2 3 3 4 5 7 8 9 10 11 12 Base clock 1 1 2 2 3 3 4 5 7 8 9 10 11 12 1 1 2 2 4 5 6 7 5.76 MHz 4 5 8 MHz 6 8 3 4 5 6 7 8 13 14 15 16 1 2 3 4 5 6 7 8 7 1 2 3 4 Average transfer rate = 5.76 MHz/8 = 720 kbps Average error = ±0% 8 5 6 7 8 1 2 3 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 1 bit = base clock × 8* 3 3 Note: * As the base clock synchronization varies, so does the length of one bit. (average) 8 MHz × (18/25) = 5.76 MHz 16 MHz/2 = 8 MHz Base clock 2 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 4 2 5 3 4 6 5 7 6 7 8 8 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 1 2 3 4 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 9 10 11 12 13 14 15 16 1 2 16 1 2 16 1 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 1 1 bit = base clock × 16* 7.3725 MHz 5 6 7 8 6 Average transfer rate = 7.3725 MHz/16 = 460.784 kbps Average error = -0.004% 4 8 MHz Base clock with 720 kbps average transfer rate (ACS2 to 0 = B'111) (average) 8 MHz × (47/51) = 7.3725 MHz 16 MHz/2 = 8 MHz 13 14 15 16 1 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 1 1 bit = base clock × 16* 1.8431 MHz 5 6 7 8 6 Average transfer rate = 1.8431 MHz/16 = 115.196 kbps Average error = -0.004% 4 2 MHz Base clock with 460.784 kbps average transfer rate (ACS2 to 0 = B'110) (average) 2 MHz × (47/51) = 1.8431 MHz 16 MHz/8 = 2 MHz Base clock Base clock with 115.196 kbps average transfer rate (ACS2 to 0 = B'101) When φ = 16 MHz 2 3 3 4 2 3 3 4 4 5 4 5 5 6 5 6 6 7 7 8 6 7 7 8 H8S/2215 Group Section 13 Serial Communication Interface Figure 13.4 Examples of Base Clock when Average Transfer Rate Is Selected (1) Page 405 of 846 Page 406 of 846 6 7 8 9 1 bit = base clock × 16* 1.8421 MHz 2 3 4 5 10 11 Average transfer rate =1.8421 MHz/16 = 115.132 kbps Average error with 115.2 kbps = -0.0059% 1 3 MHz 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 1 2 6 7 8 9 1 bit = base clock × 16* 7.3684 MHz 2 3 4 5 1 5 6 1 bit = base clock × 8* 5.76 MHz 3 4 7 Average transfer rate = 5.76 MHz/8= 720 kbps Average error with 720 kbps = ±0% 2 12 MHz 13 14 15 16 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 6 7 8 Average transfer rate = 7.3684 MHz/8= 921.053 kbps Average error with 921.1 kbps = -0.059% 1 bit = base clock × 8* 7.3684 MHz 2 3 4 5 12 MHz 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 1 2 8 Note: * The lengh of one bit varies according to the base clock synchronization. Base clock 24 MHz/2 = 12 MHz 12 MHz × (35/57) = 7.3684 MHz (Average) 12 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 2 3 4 Base clock with 921.053-kbps average transfer rate (ACS3 to ACS0 = B'1011) Base clock 24 MHz/2 = 12 MHz 12 MHz × (12/25) = 5.76 MHz (Average) 10 11 Average transfer rate = 7.3684 MHz/16 = 460.526 kbps Average error with 460.6kbps = -0.059% 1 12 MHz Base clock with 720-kbps average transfer rate (ACS3 to ACS0 = B'1010) Base clock 24 MHz/2 = 12 MHz 12 MHz × (35/57) = 7.3684 MHz (Average) Base clock with 460.526-kbps average transfer rate (ACS3 to ACS0 = B'1001) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 1 2 Base clock 24 MHz/8 = 3 MHz 3 MHz × (35/57) = 1.8421 MHz (Average) Base clock with 115.132-kbps average transfer rate (ACS3 to ACS0 = B'1000) When φ = 24 MHz Section 13 Serial Communication Interface H8S/2215 Group Figure 13.4 Examples of Base Clock when Average Transfer Rate Is Selected (2) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 1 1 1 4 4 7.3846 MHz 3 4 8 MHz 3 3 5 5 5 6 6 6 7 7 7 8 8 8 Average transfer rate = 7.3846 MHz/8 = 923.077 kbps Average error relative to 921.6 kbps = +0.16% 1 bit = 8 base clocks* 2 2 2 1 9 9 Note: * As the base clock synchronization varies, so does the length of one bit. Internal base clock = 8 MHz x 12/13 = 7.3846 MHz TIOCA2 (TPU_2) output TIOCA1(TPU_1) output = 8 MHz Main clock: 16 MHz 2 10 10 3 11 11 4 12 12 Sample TPU and SCI settings TMDR_1 = TMDR_2 = H'C2 [PWM mode 1] TCR_1 = H'20 [TCNT_1 incremented on rising edge of ø/1, TCNT_1 cleared by TGRA_1 compare match] TGRB_1 = H'0000, TGRA_1 = H'0001 TIOR_1 = H'21 [1 output on TGRB_1 compare match, TIOCA1 initial output 0, 0 output on TGRA_1 compare match] TCR_2 = H'2C [TCNT_2 incremented on falling edge of TCLKA (TIOCA1), TCNT_2 cleared by TGRA_2 compare match] TGRB_2 = H'0000, TGRA_2 = H'000C TIOR_2 = H'21 [1 output on TGRB_2 compare match, TIOCA2 initial output 0, 0 output on TGRA_2 compare match] SEMR = H'0C (ABCS = 1, ACS2-0 = B'100) (1) An 8 MHz base clock provided by TPU_1 is multiplied by 12/13 by TPU_2 to generate a 7.3846 MHz base clock (2) By making 1 bit = 8 base clocks, the average transfer rate is made 7.3846 MHz/8 = 923.077 kbps. Example for 921.6 kbps when φ = 16 MHz Generation of clock with 923.077 kbps average transfer rate by means of TPU (ACS2 to 0 = B'100) 13 5 1 1 6 2 2 7 3 3 8 4 4 1 5 5 2 6 6 3 7 7 4 8 8 5 9 9 6 10 10 7 11 11 8 12 12 13 1 1 1 H8S/2215 Group Section 13 Serial Communication Interface Figure 13.5 Example of Average Transfer Rate Setting when TPU Clock Is Input (1) Page 407 of 846 Page 408 of 846 SCK0 Base clock = 9.6 MHz × 15/16 = 9 MHz (Average) Clock enable TIOCA1 output Base clock (TIOCA0 + TIOCC0) output = 9.6 MHz TIOCC0 output = 4.8 MHz TIOCA0 output = 4.8 MHz 5 5 9.6 MHz 4 4 6 6 6 7 7 7 8 8 8 1 bit = Base clock × 16* 9 MHz 3 4 5 3 3 9 9 9 10 11 12 13 14 15 10 11 12 13 14 15 10 11 12 13 14 15 16 Average transfer rate = 9 MHz/16 = 562.5 kbps 2 2 2 16 1 1 Note: * The length of one bit varies according to the base clock synchronization. 1 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 • TCR_0 = H'20 [TCNT_0 cleared by TGRA_0 compare match, TCNT_0 incremented at rising edge of φ/1] • TCR_1 = H'2D [TCNT_1 cleared by TGRA_1 compare match, TCNT_1 incremented at falling edge of TCLKB • TMDR_0 = TMDR_1 = H'C2 [PWM mode 1] • TIORH_0 = H'21 [0 as TIOCA0 initial output, 0 output on TGRA_0 compare match, 1 output on TGRB_0 compare match] • TIORL_0 = H'21 [0 as TIOCC0 initial output, 0 output on TGRC_0 compare match, 1 output on TGRD_0 compare match] • TIOR_1 = H'21 [0 as TIOCA1 initial output, 0 output on TGRA_1 compare match, 1 output on TGRB_1 compare match] • TCNT_0 = TCNT_1 = H'0000 • TGRA_0 = H'0004, TGRB_0 = H'0002, TGRC_0 = H'0001, TGRD_0 = H'0000 • TGRA_1 = H'000F, TGRB_1 = H'0000 • SCR_0 = H'03 (external clock) • SEMRA_0 = H'14 (TCS2 to TCS0 = B'001, ABCS = 0, ACS2 to ACS0 = B'100) • SEMRB_0 = H'00 (ACS3 = 0) TPU and SCI settings Example for TPU clock generation for 562.5 kbps average transfer rate when φ = 24 MHz (TCS2 to TCS0 = B'001) (1) 9.6-MHz base clock provided by TPU_0 is multiplied by 15/16 by TPU_1 to generate 9-MHz base clock (2) By making 1 bit = 16 base clocks, the average transfer will be 9 MHz/16 = 562.5 kbps 6 7 7 7 8 8 8 9 9 Q φ >CK D 9 10 11 12 13 14 10 11 12 13 14 15 10 11 12 13 14 15 16 TCLKB TCLKA TIOCA0 TIOCC0 TIOCA1 TIOCA2 TPU 2 2 15 16 1 1 1 3 3 2 4 4 Base clock Clock enable 3 5 5 4 6 6 5 7 7 6 8 8 SCK0 7 9 9 SCI_0 8 9 10 11 10 11 Section 13 Serial Communication Interface H8S/2215 Group Figure 13.5 Example of Average Transfer Rate Setting when TPU Clock Is Input (2) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 SCK0 Base clock = 6 MHz × 23/25 = 5.52 MHz (Average) 25 1 1 1 2 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 10 11 12 10 11 12 10 11 12 13 Average transfer rate = 5.52 MHz/16 = 345 kbps 1 bit = Base clock × 16* 4 6 MHz 3 4 5.52 MHz 2 3 2 3 13 13 18 14 15 16 1 2 18 19 20 14 15 16 17 14 15 16 17 Note: * The length of one bit varies according to the base clock synchronization. Clock enable (TIOCA1×TIOCA2) output TIOCA2(TPU_2) output TIOCA1(TPU_1) output Base clock TIOCA0 (TPU_0) output = 6 MHz 3 4 24 25 5 6 7 1 TCLKB TCLKA TIOCA0 TIOCC0 TIOCA1 TIOCA2 TPU 21 22 23 21 22 23 19 20 • TCR_0 = H'20 [TCNT_0 cleared by TGRA_0 compare match, TCNT_0 incremented at rising edge of φ/1] • TCR_1 = H'2D [TCNT_1 cleared by TGRA_1 compare match, TCNT_1 incremented at falling edge of TCLKB] • TCR_2 = H'2D [TCNT_2 cleared by TGRA_2 compare match, TCNT_2 incremented at falling edge of TCLKB • TMDR_0 = TMDR_1 = TMDR_2 = H'C2 [PWM mode 1] • TIORH_0 = H'21 [0 as TIOCA0 initial output, 0 output on TGRA_0 compare match, 1 output on TGRB_0 compare match] • TIOR_1 = H'21 [0 as TIOCA1 initial output, 0 output on TGRA_1 compare match, 1 output on TGRB_1 compare match] • TIOR_2 = H'21 [0 as TIOCA2 initial output, 0 output on TGRA_2 compare match, 1 output on TGRB_2 compare match] • TCNT_0 = TCNT_1 = H'0000, TCNT_2 = H'000C • TGRA_0 = H'0003, TGRB_0 = H'0001 • TGRA_1 = H'0018, TGRB_1 = H'0000 • TGRA_2 = H'0018, TGRB_2 = H'0000 • SCR_0 = H'03 (external clock) • SEMRA_0 = H'24 (TCS2 to TCS0 = B'010, ABCS = 0, ACS2 to ACS0 = B'100) • SEMRB_0 = H'00 (ACS3 = 0) TPU and SCI settings Example for TPU clock generation for 345 kbps average transfer rate when φ = 24 MHz (TCS2 to TCS0 = B'010) (1) 6-MHz base clock provided by TPU_0 is multiplied by 23/25 by TPU_1 and TPU_2 to generate 5.52-MHz base clock (2) By making 1 bit = 16 base clocks, the average transfer will be 5.52 MHz/16 = 345 kbps 8 1 2 9 2 3 4 5 10 11 3 4 12 5 6 7 8 8 9 16 9 1 2 3 10 11 12 10 11 12 13 Base clock 13 14 15 6 7 φ >CK D Q Clock enable 4 5 6 13 14 15 14 15 16 17 SCK0 SCI_0 7 8 9 18 19 20 16 17 18 10 19 24 25 11 12 13 14 20 21 22 23 21 22 23 1 2 3 15 16 1 2 H8S/2215 Group Section 13 Serial Communication Interface Figure 13.5 Example of Average Transfer Rate Setting when TPU Clock Is Input (3) Page 409 of 846 Page 410 of 846 SCK0 Base clock = 9.6 MHz × 23/25 = 8.832 MHz (Average) Clock enable (TIOCA1×TIOCA2) output TIOCA2 output TIOCA1 output Base clock (TIOCA0 + TIOCC0) output = 9.6 MHz TIOCC0 output = 4.8 MHz TIOCA0 output = 4.8 MHz 5 5 6 6 8.832 MHz 4 5 6 9.6 MHz 4 4 7 7 7 8 8 8 1 bit = Base clock × 16* 3 3 3 9 9 9 10 11 12 10 11 12 13 13 14 15 14 15 16 1 2 3 4 5 6 7 16 17 18 19 20 21 22 23 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Average transfer rate = 8.832 MHz/16 = 552 kbps 2 2 2 Note: * The length of one bit varies according to the base clock synchronization. 1 1 1 TCLKB TCLKA TIOCA0 TIOCC0 TIOCA1 TPU and SCI settings • TCR_0 = H'20 [TCNT_0 cleared by TGRA_0 compare match, TCNT_0 incremented at rising edge of φ/1] • TCR_1 = H'2D [TCNT_1 cleared by TGRA_1 compare match, TCNT_1 incremented at falling edge of TCLKB] • TCR_2 = H'2D [TCNT_2 cleared by TGRA_2 compare match, TCNT_2 incremented at falling edge of TCLKB • TMDR_0 = TMDR_1 = TMDR_2 = H'C2 [PWM mode 1] • TIORH_0 = H'21 [0 as TIOCA0 initial output, 0 output on TGRA_0 compare match, 1 output on TGRB_0 compare match] • TIORL_0 = H'21 [0 as TIOCC0 initial output, 0 output on TGRC_0 compare match, 1 output on TGRD_0 compare match] • TIOR_1 = H'21 [0 as TIOCA1 initial output, 0 output on TGRA_1 compare match, 1 output on TGRB_1 compare match] • TIOR_2 = H'21 [0 as TIOCA2 initial output, 0 output on TGRA_2 compare match, 1 output on TGRB_2 compare match] • TCNT_0 = TCNT_1 = H'0000, TCNT_2 = H'000C • TGRA_0 = H'0004, TGRB_0 = H'0002, TGRC_0 = H'0001, TGRD_0 = H'0000 • TGRA_1 = H'0018, TGRB_1 = H'0000 • TGRA_2 = H'0018, TGRB_2 = H'0000 • SCR_0 = H'03 (external clock) • SEMRA_0 = H'34 (TCS2 to TCS0 = B'011, ABCS = 0, ACS2 to ACS0 = B'100) • SEMRB_0 = H'00 (ACS3 = 0) TIOCA2 TPU Example for TPU clock generation for 552 kbps average transfer rate when φ = 24 MHz (TCS2 to TCS0 = B'011) (1) 9.6-MHz base clock provided by TPU_0 is multiplied by 23/25 by TPU_1 and TPU_2 to generate 8.832-MHz base clock (2) By making 1 bit = 16 base clocks, the average transfer will be 8.832 MHz/16 = 552 kbps 8 1 1 9 2 2 4 4 5 5 6 6 7 7 10 11 12 13 14 3 3 φ 9 9 15 16 8 8 SCK0 1 2 3 10 11 12 4 5 6 7 8 13 14 15 16 17 10 11 12 13 14 15 16 17 18 Base clock Q Clock enable >CK D SCI_0 Section 13 Serial Communication Interface H8S/2215 Group Figure 13.5 Example of Average Transfer Rate Setting when TPU Clock Is Input (4) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface 13.3.10 Serial Extended Mode Register A_0 (SEMRA_0) (Only for Channel 0 in H8S/2215R, H8S/2215T and H8S/2215C) SEMRA_0 extends the functions of SCI_0. SEMR0 enables selection of the SCI_0 select function in synchronous mode, base clock setting in asynchronous mode, and also clock source selection and automatic transfer rate setting. Figure 13.4 shows an example of the internal base clock when an average transfer rate is selected and figure 13.5 shows as example of the setting when the TPU clock input is selected. Bit Bit Name Initial Value R/W Description 7 SSE 0 R/W SCI_0 Select Enable Allows selection of the SCI0 select function when an external clock is input in synchronous mode. The SSE setting is valid when external clock input is used (CKE1 = 1 in SCR) in synchronous mode (C/A = 1 in SMR). 0: SCI_0 select function disabled 1: SCI_0 select function enabled When the SCI_0 select function is enabled, if 1 is input to the PG1/IRQ7 pin, TxD0 output goes to the high-impedance state, SCK0 input is fixed high. 6 TCS2 0 R/W TPU Clock Select 5 TCS1 0 4 TCS0 0 R/W When the TPU clock is input (ACS3 to ACS0 = B'0100) as R/W the clock source in asynchronous mode, serial transfer clock is generated depending on the combination of the TPU clock. Base Clock Clock Enable TCLKA TCLKB TCLKC 000 TIOCA1 TIOCA2 Base clock written in the left column Pin input Pin input 001 TIOCA0 | TIOCC0 TIOCA1 Pin input Base clock written in the left column Pin input 010 TIOCA0 TIOCA1 & TIOCA2 Pin input Base clock written in the left column Pin input 011 TIOCA0 | TIOCC0 TIOCA1 & TIOCA2 Pin input Base clock written in the left column Pin input 1×× Reserved (Setting prohibited) Legend: &: AND (logical multiplication) I : OR (logical addition) Note: The functions of bits 6 to 4 are not supported by the E6000 emulator. Figure 13.5 shows the setting examples. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 411 of 846 H8S/2215 Group Section 13 Serial Communication Interface Bit Bit Name Initial Value R/W Description 3 ABCS 0 R/W Asynchronous Base Clock Select Selects the 1-bit-interval base clock in asynchronous mode. The ABCS setting is valid in asynchronous mode (C/A = 0 in SMR). 0: SCI_0 operates on base clock with frequency of 16 times transfer rate 1: SCI_0 operates on base clock with frequency of 8 times transfer rate 2 ACS2 0 R/W Asynchronous Clock Source Select 2 to 0 1 ACS1 0 0 ACS0 0 R/W These bits select the clock source in asynchronous mode R/W depending on the combination with the bit 7 (ACS3) in SEMRB_0 (serial extended mode register B_0). When an average transfer rate is selected, the base clock is set automatically regardless of the ABCS value. Note that average transfer rates support only 10.667 MHz, 16 MHz, and 24 MHz, and not support other operating frequencies. Set ACS3 to ACS0 when inputting the external clock (the CKE1 bit in the SCR register is 1) in asynchronous mode (the C/A bit in the SMR register is 0). Figures 13.4 and 13.5 show the setting examples. ACS 3210 0000: External clock input 0001: 115.152 kbps average transfer rate (for φ = 10.667 MHz only) is selected (SCI_0 operates on base clock with frequency of 16 times transfer rate) 0010: 460.606 kbps average transfer rate (for φ = 10.667 MHz only) is selected (SCI_0 operates on base clock with frequency of eight times transfer rate) 0011: 921.569 kbps average transfer rate (for φ = 16 MHz only) is selected (SCI_0 operates on base clock with frequency of eight times transfer rate) 0100: TPU clock input The signal generated by TIOCA0, TIOCC0, TIOCA1, and TIOCA2, which are the compare match outputs for TPU_0 to TPU_2 or PWM outputs, is used as a base clock. Note that IRQ0 and IRQ1 cannot be used since TIOCA1 and TIOCA2 are used as outputs. Page 412 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface Bit Bit Name Initial Value R/W Description 2 ACS2 0 1 ACS1 0 0 ACS0 0 R/W 0101: 115.196 kbps average transfer rate (for φ = 16 MHz only) is selected (SCI_0 operates on base clock with R/W frequency of 16 times transfer rate) R/W 0110: 460.784 kbps average transfer rate (for φ = 16 MHz only) is selected (SCI_0 operates on base clock with frequency of eight times transfer rate) 0111: 720 kbps average transfer rate (for φ = 16 MHz only) is selected (SCI_0 operates on base clock with frequency of eight times transfer rate) 1000: 115.132 kbps average transfer rate (for φ = 24 MHz only) is selected* (SCI_0 operates on base clock with frequency of 16 times transfer rate) 1001: 460.526 kbps average transfer rate (for φ = 24 MHz only) is selected* (SCI_0 operates on base clock with frequency of 16 times transfer rate) 1010: 720 kbps average transfer rate (for φ = 24 MHz only) is selected* (SCI_0 operates on base clock with frequency of eight times transfer rate) 1011: 921.053 kbps average transfer rate (for φ = 24 MHz only) is selected* (SCI_0 operates on base clock with frequency of eight times transfer rate) 11××: Reserved (Setting prohibited) Note: The average transfer rate select functions for 24 MHz only (ACS3 to ACS0 = B'10XX) are not supported by the E6000 emulator. * 13.3.11 Serial Extended Mode Register B_0 (SEMRB_0) (Only for Channel 0 in H8S/2215R, H8S/2215T and H8S/2215C) SEMRB_0 enables clock source selection with the combination of SEMRA_0, automatic transfer rate setting, and control of port 1 pins (P16, P14, P12, and P10) at the transfer clock generation by TPU. Note: SEMRB_0 is not supported by the E6000 emulator. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 413 of 846 H8S/2215 Group Section 13 Serial Communication Interface Bit Bit Name Initial Value R/W Description 7 ACS3 R/W Asynchronous Clock Source Select 0 Selects the clock source in asynchronous mode depending on the combination with the ACS2 to ACS0 (bits 2 to 0 in SEMRA_0). For details, see section 13.3.9, Serial Extended Mode Register (SEMR) (Only for channel 0 in H8S/2215). 6 to 4 — Undefined 3 TIOCA2E 1 — Reserved The write value should always be 0. R/W TIOCA2 Output Enable Controls the TIOCA2 output on the P16 pin. When the TIOCA2 in TPU is output to generate the transfer clock, P16 is used as other function pin by setting this bit to 0. 0: Disables output of TIOCA2 in TPU 1: Enables output of TIOCA2 in TPU 2 TIOCA1E 1 R/W TIOCA1 Output Enable Controls the TIOCA1 output on the P14 pin. When the TIOCA1 in TPU is output to generate the transfer clock, P14 is used as other function pin by setting this bit to 0. 0: Disables output of TIOCA1 in TPU 1: Enables output TIOCA1 in TPU 1 TIOCC0E 1 R/W TIOCC0 Output Enable Controls the TIOCC0 output on the P12 pin. When the TIOCC0 in TPU is output to generate the transfer clock, P12 is used as other function pin by setting this bit to 0. 0: Disables output of TIOCC0 in TPU 1: Enables output of TIOCC0 in TPU 0 TIOCA0E 1 R/W TIOCA0 Output Enable Controls the TIOCA0 output on the P10 pin. When the TIOCA0 in TPU is output to generate the transfer clock, P10 is used as other function pin by setting this bit to 0. 0: Disables output of TIOCA0 in TPU 1: Enables output of TIOCA0 in TPU Page 414 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface 13.3.12 Bit Rate Register (BRR) BRR is an 8-bit register that adjusts the bit rate. As the SCI performs baud rate generator control independently for each channel, different bit rates can be set for each channel. Table 13.2 shows the relationships between the N setting in BRR and bit rate B for normal asynchronous mode, clocked synchronous mode, and Smart Card interface mode. The initial value of BRR is H'FF, and it can be read from or written to by the CPU at all times. Table 13.2 Relationships between the N Setting in BRR and Bit Rate B Mode ABCS Asynchronous mode 0 1 Clocked synchronous mode x Smart Card interface mode x Bit Rate Error B= φ × 106 φ × 106 Error (%) = | – 1 | × 100 B × 64 × 22n-1 × (N + 1) 64 × 22n-1 × (N + 1) B= φ × 106 φ × 106 Error (%) = | – 1 | × 100 2n-1 B × 32 × 22n-1 × (N + 1) 32 × 2 × (N + 1) B= φ × 106 8 × 22n-1 × (N + 1) ⎯ B= φ × 106 S× (N + 1) Error (%) = | 22n+1 × φ × 106 – 1 | × 100 B × S × 22n+1 × (N + 1) Legend: B: Bit rate (bps) N: BRR setting for baud rate generator (0 ≤ N ≤ 255) φ: Operating frequency (MHz) n, S: Determined by the SMR settings shown in the following tables. x: Don’t care SMR Setting SMR Setting CKS1 CKS0 Clock Source n BCP1 BCP0 S 0 0 φ 0 0 0 32 0 1 φ/4 1 0 1 64 1 0 φ/16 2 1 0 372 1 1 φ/64 3 1 1 256 Table 13.3 shows sample N settings in BRR in normal asynchronous mode. Table 13.4 shows the maximum bit rate for each frequency in normal asynchronous mode. Table 13.6 shows sample N settings in BRR in clocked synchronous mode. Table 13.8 shows sample N settings in BRR in Smart Card interface mode. In Smart Card interface mode, S (the number of basic clock periods in REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 415 of 846 H8S/2215 Group Section 13 Serial Communication Interface a 1-bit transfer interval) can be selected. For details, see section 13.7.5, Receive Data Sampling Timing and Reception Margin. Tables 13.5 and 13.7 show the maximum bit rates with external clock input. When the ABCS bit in SCI_0's serial extended mode register (SEMR) is set to 1 in asynchronous mode, the maximum bit rates are twice those shown in table 13.3. Table 13.3 BRR Settings for Various Bit Rates (Asynchronous Mode) Operating Frequency φ (MHz) 2 2.097152 2.4576 3 Bit Rate (bit/s) n N Error (%) n N Error (%) n N Error (%) n N Error (%) 110 1 141 0.03 1 148 –0.04 1 174 –0.26 1 212 0.03 150 1 103 0.16 1 108 0.21 1 127 0.00 1 155 0.16 300 0 207 0.16 0 217 0.21 0 255 0.00 1 77 0.16 600 0 103 0.16 0 108 0.21 0 127 0.00 0 155 0.16 1200 0 51 0.16 0 54 –0.70 0 63 0.00 0 77 0.16 2400 0 25 0.16 0 26 1.14 0 31 0.00 0 38 0.16 4800 0 12 0.16 0 13 –2.48 0 15 0.00 0 19 –2.34 9600 — — — — 6 –2.48 0 7 0.00 0 9 –2.34 19200 — — — — — — 0 3 0.00 0 4 –2.34 31250 0 1 0.00 — — — — — — 0 2 0.00 38400 — — — — — — 0 1 0.00 — — — Page 416 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface Operating Frequency φ (MHz) 3.6864 4 4.9152 5 Bit Rate (bit/s) n N Error (%) n N Error (%) n N Error (%) n N Error (%) 110 2 64 0.70 2 70 0.03 2 86 0.31 2 88 –0.25 150 1 191 0.00 1 207 0.16 1 255 0.00 2 64 0.16 300 1 95 0.00 1 103 0.16 1 127 0.00 1 129 0.16 600 0 191 0.00 0 207 0.16 0 255 0.00 1 64 0.16 1200 0 95 0.00 0 103 0.16 0 127 0.00 0 129 0.16 2400 0 47 0.00 0 51 0.16 0 63 0.00 0 64 0.16 4800 0 23 0.00 0 25 0.16 0 31 0.00 0 32 –1.36 9600 0 11 0.00 0 12 0.16 0 15 0.00 0 15 1.73 19200 0 5 0.00 — — — 0 7 0.00 0 7 1.73 31250 — — — 0 3 0.00 0 4 –1.70 0 4 0.00 38400 0 2 0.00 — — — 0 3 0.00 0 3 1.73 Operating Frequency φ (MHz) 6 6.144 7.3728 8 Bit Rate (bit/s) n N Error (%) n N Error (%) n N Error (%) n N Error (%) 110 2 106 –0.44 2 108 0.08 2 130 –0.07 2 141 0.03 150 2 77 0.16 2 79 0.00 2 95 0.00 2 103 0.16 300 1 155 0.16 1 159 0.00 1 191 0.00 1 207 0.16 600 1 77 0.16 1 79 0.00 1 95 0.00 1 103 0.16 1200 0 155 0.16 0 159 0.00 0 191 0.00 0 207 0.16 2400 0 77 0.16 0 79 0.00 0 95 0.00 0 103 0.16 4800 0 38 0.16 0 39 0.00 0 47 0.00 0 51 0.16 9600 0 19 –2.34 0 19 0.00 0 23 0.00 0 25 0.16 19200 0 9 –2.34 0 9 0.00 0 11 0.00 0 12 0.16 31250 0 5 0.00 0 5 2.40 — — — 0 7 0.00 38400 0 4 –2.34 0 4 0.00 0 5 0.00 — — — REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 417 of 846 H8S/2215 Group Section 13 Serial Communication Interface Operating Frequency φ (MHz) 9.8304 10 12 12.288 Bit Rate (bit/s) n N Error (%) n N Error (%) n N Error (%) n N Error (%) 110 2 174 –0.26 2 177 –0.25 2 212 0.03 2 217 0.08 150 2 127 0.00 2 129 0.16 2 155 0.16 2 159 0.00 300 1 255 0.00 2 64 0.16 2 77 0.16 2 79 0.00 600 1 127 0.00 1 129 0.16 1 155 0.16 1 159 0.00 1200 0 255 0.00 1 64 0.16 1 77 0.16 1 79 0.00 2400 0 127 0.00 0 129 0.16 0 155 0.16 0 159 0.00 4800 0 63 0.00 0 64 0.16 0 77 0.16 0 79 0.00 9600 0 31 0.00 0 32 –1.36 0 38 0.16 0 39 0.00 19200 0 15 0.00 0 15 1.73 0 19 –2.34 0 19 0.00 31250 0 9 –1.70 0 9 0.00 0 11 0.00 0 11 2.40 38400 0 7 0.00 0 7 1.73 0 9 –2.34 0 9 0.00 Operating Frequency φ (MHz) 14 14.7456 16 Bit Rate (bit/s) n N Error (%) n N Error (%) n N Error (%) 110 2 248 –0.17 3 64 0.70 3 70 0.03 150 2 181 0.16 2 191 0.00 2 207 0.16 300 2 90 0.16 2 95 0.00 2 103 0.16 600 1 181 0.16 1 191 0.00 1 207 0.16 1200 1 90 0.16 1 95 0.00 1 103 0.16 2400 0 181 0.16 0 191 0.00 0 207 0.16 4800 0 90 0.16 0 95 0.00 0 103 0.16 9600 0 45 –0.93 0 47 0.00 0 51 0.16 19200 0 22 –0.93 0 23 0.00 0 25 0.16 31250 0 13 0.00 0 14 –1.70 0 15 0.00 38400 — — — 0 11 0.00 0 12 0.16 Page 418 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface Operating Frequency φ (MHz) 17.2032 Bit Rate (bps) n N 18 Error (%) n N 19.6608 Error (%) n N 20 Error (%) n N Error (%) 110 3 75 0.48 3 79 –0.12 3 86 0.31 3 88 –0.25 150 2 223 0.00 2 233 0.16 2 255 0.00 3 64 0.16 300 2 111 0.00 2 116 0.16 2 127 0.00 2 129 0.16 600 1 223 0.00 1 233 0.16 1 255 0.00 2 64 0.16 1200 1 111 0.00 1 116 0.16 1 127 0.00 1 129 0.16 2400 0 223 0.00 0 233 0.16 0 255 0.00 1 64 0.16 4800 0 111 0.00 0 116 0.16 0 127 0.00 0 129 0.16 9600 0 55 0.00 0 58 –0.69 0 63 0.00 0 64 0.16 19200 0 27 0.00 0 28 1.02 0 31 0.00 0 32 –1.36 31250 0 16 1.20 0 17 0.00 0 19 –1.17 0 19 0.00 38400 0 13 0.00 0 14 –2.34 0 15 0.00 0 15 1.73 Operating Frequency φ (MHz) 24 Bit Rate (bps) n N Error (%) 110 3 106 –0.44 150 3 77 0.16 300 2 155 0.16 600 2 77 0.16 1200 1 155 0.16 2400 1 77 0.16 4800 0 155 0.16 9600 0 77 0.16 19200 0 38 0.16 31250 0 23 0.00 38400 0 19 –2.34 Note: This table shows bit rates when the ABCS bit in SEMRA_0 is cleared to 0. When the ABCS bit in SEMRA_0 is set to 1, the bit rates are twice those shown in this table. In this LSI, operating frequency φ must be 13 MHz or greater. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 419 of 846 H8S/2215 Group Section 13 Serial Communication Interface Table 13.4 Maximum Bit Rate for Each Frequency (Asynchronous Mode) Maximum Bit Rate (kbps) Maximum Bit Rate (kbps) φ (MHz) ABCS = 0 ABCS = 1 n N φ (MHz) ABCS = 0 ABCS = 1 n N 2 62.5 125.0 0 0 9.8304 307.2 614.4 0 0 2.097152 65.536 131.027 0 0 10 312.5 625.0 0 0 2.4576 76.8 153.6 0 0 12 375.0 750.0 0 0 3 93.75 187.5 0 0 12.288 384.0 768.0 0 0 3.6864 115.2 230.4 0 0 14 437.5 875.0 0 0 4 125.0 250.0 0 0 14.7456 460.8 921.6 0 0 4.9152 153.6 307.2 0 0 16 500.0 1000.0 0 0 5 156.25 312.5 0 0 17.2032 537.6 1075.2 0 0 6 187.5 375.0 0 0 18 562.5 1125.0 0 0 6.144 192.0 384.0 0 0 19.6608 614.4 1228.8 0 0 7.3728 230.4 460.8 0 0 20 625.0 1250.0 0 0 8 250.0 500.0 0 0 24 750.0 1500.0 0 0 Table 13.5 Maximum Bit Rate with External Clock Input (Asynchronous Mode) Maximum Bit Rate (kbps) Maximum Bit Rate External (kbps) Input Clock (MHz) ABCS = 0 ABCS = 1 φ (MHz) External Input Clock (MHz) ABCS = 0 ABCS = 1 2 0.5000 31.25 62.5 9.8304 2.4576 153.6 307.2 2.097152 0.5243 327.68 65.536 10 2.5000 156.25 312.5 φ (MHz) 2.4576 0.6144 38.4 76.8 12 3.0000 187.5 375.0 3 0.7500 46.875 93.75 12.288 3.0720 192.0 384.0 3.6864 0.9216 57.6 115.2 14 3.5000 218.75 437.0 4 1.0000 62.5 125.0 14.7456 3.6864 230.4 460.8 4.9152 1.2288 76.8 153.6 16 4.0000 250.0 500.0 5 1.2500 78.125 156.25 17.2032 4.3008 268.8 537.6 6 1.5000 93.75 187.5 18 4.5000 281.25 562.5 6.144 1.5360 96.0 192.0 19.6608 4.9152 307.2 614.4 7.3728 1.8432 115.2 230.4 20 5.0000 312.5 625.0 8 2.0000 125.0 250.0 24 6.0000 375.0 750.0 Note: In this LSI, operating frequency φ must be 13 MHz or greater. Page 420 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface Table 13.6 BRR Settings for Various Bit Rates (Clocked Synchronous Mode) Operating Frequency φ (MHz) Bit Rate 2 4 6 8 10 16 (bps) n N n N n N n N n N n N 110 3 70 — — 250 2 124 2 249 3 124 — — 3 249 500 1 249 2 124 2 249 — — 3 124 1k 1 124 1 249 2 124 — — 2 249 2.5 k 0 199 1 99 1 149 1 199 1 249 2 99 5k 0 99 0 199 1 74 1 99 1 124 1 199 10 k 0 49 0 99 0 149 0 199 0 249 1 99 25 k 0 19 0 39 0 59 0 79 0 99 0 159 50 k 0 9 0 19 0 29 0 39 0 49 0 79 100 k 0 4 0 9 0 14 0 19 0 24 0 39 250 k 0 1 0 3 0 5 0 7 0 9 0 15 500 k 0 0* 0 1 0 2 0 3 0 4 0 7 1M 0 0* 0 1 0 3 2M 0 0* 0 1 2.5 M 0 0* 4M 0 0* 5M 6M Legend: Blank: Cannot be set. —: Can be set, but there will be a degree of error. *: Continuous transfer is not possible. n 20 N n — — 2 1 1 0 0 0 0 0 0 — — 124 249 124 199 99 49 19 9 4 0 1 0 0* 24 N — — 2 2 1 0 0 0 0 0 0 0 — — — 149 74 149 239 119 59 23 11 5 2 — — 0 — 0* Table 13.7 Maximum Bit Rate with External Clock Input (Clocked Synchronous Mode) φ (MHz) External Input Clock (MHz) Maximum Bit Rate (Mbps) φ (MHz) External Input Clock (MHz) Maximum Bit Rate (Mbps) 2 0.333 0.333 14 2.333 2.333 4 0.667 0.667 16 2.667 2.667 6 1.000 1.000 18 3.000 3.000 8 1.333 1.333 20 3.333 3.333 10 1.667 1.667 24 4.000 4.000 12 2.000 2.000 Note: In this LSI, operating frequency φ must be 13 MHz or greater. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 421 of 846 H8S/2215 Group Section 13 Serial Communication Interface Table 13.8 BRR Settings for Various Bit Rates (Smart Card Interface Mode, when n = 0 and S = 372) Operating Frequency φ (MHz) 5.00 Bit Rate (bps) N Error (%) 6720 0 0.01 9600 0 30.00 7.00 7.1424 10.00 10.7136 13.00 Error (%) N Error (%) N Error (%) N Error (%) 1 30.00 1 28.57 1 0.01 1 7.14 2 13.33 0 1.99 0 0.00 1 30.00 1 25.00 1 8.99 N N Error (%) Operating Frequency φ (MHz) 14.2848 16.00 18.00 20.00 24.00 Bit Rate (bps) N Error (%) N Error (%) N Error (%) N Error (%) N Error (%) 6720 2 4.76 2 6.67 3 0.01 3 0.01 4 3.99 9600 1 0.00 1 12.01 2 15.99 2 6.66 2 12.01 Table 13.9 Maximum Bit Rate at Various Frequencies (Smart Card Interface Mode) Maximum Bit Rate (bps) φ (MHz) S = 32 S = 64 S = 256 5.00 78125 39063 6.00 93750 46875 7.00 109375 7.1424 S = 372 n N 9766 6720 0 0 11719 8065 54688 13672 9409 0 0 111600 55800 13950 9600 0 0 10.00 156250 78125 19531 13441 0 0 10.7136 167400 83700 20925 14400 0 0 13.00 203125 101563 25391 17473 0 0 14.2848 223200 111600 27900 19200 0 0 16.00 250000 125000 31250 21505 0 0 18.00 281250 140625 35156 24194 0 0 20.00 312500 156250 39063 26882 0 0 24.00 375000 187500 46875 32258 0 0 Note: In this LSI, operating frequency φ must be 13 MHz or greater. Page 422 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 13.4 Section 13 Serial Communication Interface Operation in Asynchronous Mode Figure 13.6 shows the general format for asynchronous serial communication. One frame consists of a start bit (low level), followed by data (in LSB-first order), a parity bit (high or low level), and finally stop bits (high level). In asynchronous serial communication, the transmission line is usually held in the mark state (high level). The SCI monitors the transmission line. When the transmission line goes to the space state (low level), the SCI recognizes a start bit and starts serial communication. Inside the SCI, the transmitter and receiver are independent units, enabling fullduplex. Both the transmitter and the receiver also have a double-buffered structure, so data can be read from or written during transmission or reception, enabling continuous data transfer. 1 Serial data LSB 0 D0 Idle state (mark state) 1 MSB D1 D2 D3 D4 D5 Start bit Transmit/receive data 1 bit 7 or 8 bits D6 D7 0/1 Parity bit 1 bit, or none 1 1 Stop bit 1 or 2 bits One unit of transfer data (character or frame) Figure 13.6 Data Format in Asynchronous Communication (Example with 8-Bit Data, Parity, Two Stop Bits) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 423 of 846 H8S/2215 Group Section 13 Serial Communication Interface 13.4.1 Data Transfer Format Table 13.10 shows the data transfer formats that can be used in asynchronous mode. Any of 12 transfer formats can be selected according to the SMR setting. For details on the multiprocessor bit, refer to section 13.5, Multiprocessor Communication Function. Table 13.10 Serial Transfer Formats (Asynchronous Mode) CHR SMR Settings PE MP STOP 1 2 Serial Transfer Format and Frame Length 3 4 5 6 7 8 9 10 11 12 0 0 0 0 S 8-bit data STOP 0 0 0 1 S 8-bit data STOP STOP 0 1 0 0 S 8-bit data P STOP 0 1 0 1 S 8-bit data P STOP STOP 1 0 0 0 S 7-bit data STOP 1 0 0 1 S 7-bit data STOP STOP 1 1 0 0 S 7-bit data P STOP 1 1 0 1 S 7-bit data P STOP STOP 0 – 1 0 S 8-bit data MPB STOP 0 – 1 1 S 8-bit data MPB STOP STOP 1 – 1 0 S 7-bit data MPB STOP 1 – 1 1 S 7-bit data MPB STOP STOP Legend: S: Start bit STOP: Stop bit P: Parity bit MPB: Multiprocessor bit Page 424 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 13.4.2 Section 13 Serial Communication Interface Receive Data Sampling Timing and Reception Margin in Asynchronous Mode In asynchronous mode, the SCI operates on a basic clock with a frequency of 16 times the transfer rate. In reception, the SCI samples the falling edge of the start bit using the basic clock, and performs internal synchronization. Receive data is latched internally at the rising edge of the 8th pulse of the basic clock as shown in Figure 13.7. Thus, the reception margin in asynchronous mode is given by formula (1) below. | M = (0.5 – 1 ) – (L – 0.5) F – 2N | D – 0.5 | N | (1+ F) × 100 [%] ... Formula (1) Where M: Reception margin N: Ratio of bit rate to clock (N = 16 if ABCS = 0, N = 8 if ABCS = 1) D: Clock duty (D = 0 to 1.0) L: Frame length (L = 9 to 12) F: Absolute value of clock rate deviation Assuming values of F (absolute value of clock rate deviation) = 0, D (clock duty) = 0.5, and N (ratio of bit rate to clock) = 16 in formula (1), the reception margin can be given by the formula. M = {0.5 – 1/(2 × 16)} × 100 [%] = 46.875% However, this is only the computed value, and a margin of 20% to 30% should be allowed for in system design. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 425 of 846 H8S/2215 Group Section 13 Serial Communication Interface 16 clocks * 8 clocks * 0 7 15 0 7 15 0 Internal basic clock Receive data (RxD) Start bit D0 D1 Synchronization sampling timing Data sampling timing Note: * Figure 13.7 shows an example when the ABCS bit of SEMR is cleared to 0. When ABCS is set to 1, the clock frequency of basic clock is 8 times the bit rate and the receive data is sampled at the rising edge of the 4th pulse of the basic clock. Figure 13.7 Receive Data Sampling Timing in Asynchronous Mode 13.4.3 Clock Either an internal clock generated by the on-chip baud rate generator or an external clock input at the SCK pin can be selected as the SCI's serial clock, according to the setting of the C/A bit in SMR and the CKE0 and CKE1 bits in SCR. When an external clock is input at the SCK pin, the clock frequency should be 16 times the bit rate used. When an external clock is selected, the basic clock of average transfer rate can be selected according to the ACS2 to ACS0 bit setting of SEMR. When the SCI is operated on an internal clock, the clock can be output from the SCK pin by setting CKE1 = 0 and CKE0 = 1. The frequency of the clock output in this case is equal to the bit rate, and the phase is such that the rising edge of the clock is in the middle of the transmit data, as shown in figure 13.8. SCK 0 TxD D0 D1 D2 D3 D4 D5 D6 D7 0/1 1 1 1 frame Figure 13.8 Relationship between Output Clock and Transfer Data Phase (Asynchronous Mode) Page 426 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 13.4.4 Section 13 Serial Communication Interface SCI Initialization (Asynchronous Mode) Before transmitting and receiving data, you should first clear the TE and RE bits in SCR to 0, then initialize the SCI as described in a sample flowchart in figure 13.9. When the operating mode, or transfer format, is changed for example, the TE and RE bits must be cleared to 0 before making the change using the following procedure. When the TE bit is cleared to 0, the TDRE flag is set to 1. Note that clearing the RE bit to 0 does not initialize the contents of the RDRF, PER, FER, and ORER flags, or the contents of RDR. When the external clock is used in asynchronous mode, the clock must be supplied even during initialization. [1] Start initialization Set the clock selection in SCR. Be sure to clear bits RIE, TIE, TEIE, and MPIE, and bits TE and RE, to 0. Clear TE and RE bits in SCR to 0 Set CKE1 and CKE0 bits in SCR (TE, RE bits 0) [1] Set data transfer format in SMR, SCMR, and SEMR [2] Set value in BRR [3] When the clock is selected in asynchronous mode, it is output immediately after SCR settings are made. [2] Set the data transfer format in SMR, SCMR, and SEMR. [3] Write a value corresponding to the bit rate to BRR. Not necessary if an external clock or average transfer rate clock by ACS2 to ACS0 is used. [4] Wait at least one bit interval, then set the TE bit or RE bit in SCR to 1. Also set the RIE, TIE, TEIE, and MPIE bits. Wait No 1-bit interval elapsed? Yes Set TE and RE bits* in SCR to 1, and set RIE, TIE, TEIE, and MPIE bits <Initialization completion> [4] Note: * Set this bit while the RxD pin is 1. If the RE bit is set to 1 while the RxD pin is 0, the signal may erroneously be recognized as a start bit. Figure 13.9 Sample SCI Initialization Flowchart REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 427 of 846 H8S/2215 Group Section 13 Serial Communication Interface 13.4.5 Data Transmission (Asynchronous Mode) Figure 13.10 shows an example of operation for transmission in asynchronous mode. In transmission, the SCI operates as described below. 1. The SCI monitors the TDRE flag in SSR. If the flag is cleared to 0, the SCI recognizes that data has been written to TDR, and transfers the data from TDR to TSR. 2. After transferring data from TDR to TSR, the SCI sets the TDRE flag to 1 and starts transmission. If the TIE bit is set to 1 at this time, a transmit data empty interrupt request (TXI) is generated. Continuous transmission is possible because the TXI interrupt routine writes next transmit data to TDR before transmission of the current transmit data has been completed. 3. Data is sent from the TxD pin in the following order: start bit, transmit data, parity bit or multiprocessor bit (may be omitted depending on the format), and stop bit. 4. The SCI checks the TDRE flag at the timing for sending the stop bit. 5. If the TDRE flag is 0, the data is transferred from TDR to TSR, the stop bit is sent, and then serial transmission of the next frame is started. 6. If the TDRE flag is 1, the TEND flag in SSR is set to 1, the stop bit is sent, and then the "mark state" is entered, in which 1 is output. If the TEIE bit in SCR is set to 1 at this time, a TEI interrupt request is generated. 1 Start bit 0 Data D0 D1 Parity Stop Start bit bit bit D7 0/1 1 0 Data D0 D1 Parity Stop bit bit D7 0/1 1 1 Idle state (mark state) TDRE TEND TXI interrupt Data written to TDR and TXI interrupt request generated TDRE flag cleared to 0 in request generated TXI interrupt service routine TEI interrupt request generated 1 frame Figure 13.10 Example of Operation in Transmission in Asynchronous Mode (Example with 8-Bit Data, Parity, One Stop Bit) Page 428 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface Figure 13.11 shows a sample flowchart for transmission in asynchronous mode. [1] Initialization [1] SCI initialization: The TxD pin is automatically designated as the transmit data output pin. After the TE bit is set to 1, a frame of 1s is output, and transmission is enabled. [2] SCI status check and transmit data write: Read SSR and check that the TDRE flag is set to 1, then write transmit data to TDR and clear the TDRE flag to 0. [3] Serial transmission continuation procedure: To continue serial transmission, read 1 from the TDRE flag to confirm that writing is possible, then write data to TDR, and then clear the TDRE flag to 0. Checking and clearing of the TDRE flag is automatic when the DMAC or the DTC* is activated by a transmit data empty interrupt (TXI) request, and data is written to TDR. [4] Break output at the end of serial transmission: To output a break in serial transmission, set DDR for the port corresponding to the TxD pin to 1, clear DR to 0, then clear the TE bit in SCR to 0. Start transmission Read TDRE flag in SSR TDRE = 1 [2] No Yes Write transmit data to TDR and clear TDRE flag in SSR to 0 All data transmitted? No Yes [3] Read TEND flag in SSR TEND = 1 No Yes Break output? No [4] Yes Clear DR to 0 and set DDR to 1 Clear TE bit in SCR to 0 <End> Note: * Checking and clearing of the TDRE flag are performed automatically by the DTC when the DTC’s DISEL bit is cleared to 0 and the transfer counter value is not 0. Consequently, it is necessary to use the CPU to clear the TDRE flag if DISEL is set to 1 or if the transfer counter value is 0. Figure 13.11 Sample Serial Transmission Data Flowchart REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 429 of 846 H8S/2215 Group Section 13 Serial Communication Interface 13.4.6 Serial Data Reception (Asynchronous Mode) Figure 13.12 shows an example of operation for reception in asynchronous mode. In serial reception, the SCI operates as described below. 1. The SCI monitors the communication line. If a start bit is detected, the SCI performs internal synchronization, receives receive data in RSR, and checks the parity bit and stop bit. 2. If an overrun error occurs (when reception of the next data is completed while the RDRF flag is still set to 1), the ORER bit in SSR is set to 1. If the RIE bit in SCR is set to 1 at this time, an ERI interrupt request is generated. Receive data is not transferred to RDR. The RDRF flag remains to be set to 1. 3. If a parity error is detected, the PER bit in SSR is set to 1 and receive data is transferred to RDR. If the RIE bit in SCR is set to 1 at this time, an ERI interrupt request is generated. 4. If a framing error is detected (when the stop bit is 0), the FER bit in SSR is set to 1 and receive data is transferred to RDR. If the RIE bit in SCR is set to 1 at this time, an ERI interrupt request is generated. 5. If reception is completed successfully, the RDRF bit in SSR is set to 1, and receive data is transferred to RDR. If the RIE bit in SCR is set to 1 at this time, an RXI interrupt request is generated. Continuous reception is possible because the RXI interrupt routine reads the receive data transferred to RDR before reception of the next receive data has been completed. 1 Start bit 0 RxD Data D0 D1 Parity Stop Start bit bit bit D7 0/1 1 0 Data D0 D1 Parity Stop bit bit D7 0/1 0 1 Idle state (mark state) After confirming that RxD = 1, set the RE bit to 1 RE RDRF FER RXI interrupt request generated RDR data read and RDRF flag cleared to 0 in RXI interrupt service routine ERI interrupt request generated by framing error 1 frame Figure 13.12 Example of SCI Operation in Reception (Example with 8-Bit Data, Parity, One Stop Bit) Page 430 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface Table 13.11 shows the states of the SSR status flags and receive data handling when a receive error is detected. If a receive error is detected, the RDRF flag retains its state before receiving data. Reception cannot be resumed while a receive error flag is set to 1. Accordingly, clear the ORER, FER, PER, and RDRF bits to 0 before resuming reception. Figure 13.13 shows a sample flow chart for serial data reception. Table 13.11 SSR Status Flags and Receive Data Handling SSR Status Flag RDRF* ORER FER PER Receive Data Receive Error Type 1 1 0 0 Lost Overrun error 0 0 1 0 Transferred to RDR Framing error 0 0 0 1 Transferred to RDR Parity error 1 1 1 0 Lost Overrun error + framing error 1 1 0 1 Lost Overrun error + parity error 0 0 1 1 Transferred to RDR Framing error + parity error 1 1 1 1 Lost Overrun error + framing error + parity error Note: * The RDRF flag retains the state it had before data reception. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 431 of 846 H8S/2215 Group Section 13 Serial Communication Interface [1] Initialization [1] SCI initialization: The RxD pin is automatically designated as the receive data input pin. [2] [3] Receive error processing and break detection: If a receive error occurs, read the ORER, PER, and FER flags in SSR to identify the error. After performing the appropriate error processing, ensure that the ORER, PER, and FER flags are all cleared to 0. Reception cannot be resumed if any of these flags are set to 1. In the case of a framing error, a break can be detected by reading the value of the input port corresponding to the RxD pin. [4] SCI status check and receive data read: Read SSR and check that RDRF = 1, then read the receive data in RDR and clear the RDRF flag to 0. Transition of the RDRF flag from 0 to 1 can also be identified by an RXI interrupt. [5] Serial reception continuation procedure: To continue serial reception, before the end bit for the current frame is received, reading the RDRF flag and RDR, and clearing the RDRF flag to 0 should be finished. The RDRF flag is cleared automatically when DMAC or the DTC* is activated by a reception complete interrupt (RXI) and the RDR value is read. Start reception [2] Read ORER, PER, and FER flags in SSR Yes PER ∨ FER ∨ ORER = 1 [3] No Error processing (Continued on next page) Read RDRF flag in SSR [4] No RDRF = 1 Yes Read receive data in RDR, and clear RDRF flag in SSR to 0 No All data received? Yes Clear RE bit in SCR to 0 [5] <End> Note: * Clearing of the RDRF flag are performed automatically by the DTC when the DTC's DISEL bit is cleared to 0 and the transfer counter value is not 0. Consequently, it is necessary to use the CPU to clear the RDRF flag if DISEL is set to 1 or if the transfer counter value is 0. Figure 13.13 Sample Serial Reception Data Flowchart (1) Page 432 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface [3] Error processing No ORER = 1 Yes Overrun error processing No FER = 1 Yes Break? Yes No Framing error processing No Clear RE bit in SCR to 0 PER = 1 Yes Parity error processing Clear ORER, PER, and FER flags in SSR to 0 <End> Figure 13.13 Sample Serial Reception Data Flowchart (2) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 433 of 846 Section 13 Serial Communication Interface 13.5 H8S/2215 Group Multiprocessor Communication Function Use of the multiprocessor communication function enables data transfer between a number of processors sharing communication lines by asynchronous serial communication using the multiprocessor format, in which a multiprocessor bit is added to the transfer data. When multiprocessor communication is performed, each receiving station is addressed by a unique ID code. The serial communication cycle consists of two component cycles; an ID transmission cycle that specifies the receiving station, and a data transmission cycle. The multiprocessor bit is used to differentiate between the ID transmission cycle and the data transmission cycle. If the multiprocessor bit is 1, the cycle is an ID transmission cycle; if the multiprocessor bit is 0, the cycle is a data transmission cycle. Figure 13.14 shows an example of inter-processor communication using the multiprocessor format. The transmitting station first sends the ID code of the receiving station with which it wants to perform serial communication as data with a 1 multiprocessor bit added. It then sends transmit data as data with a 0 multiprocessor bit added. When data with a 1 multiprocessor bit is received, the receiving station compares that data with its own ID. The station whose ID matches then receives the data sent next. Stations whose ID do not match continue to skip data until data with a 1 multiprocessor bit is again received. The SCI uses the MPIE bit in SCR to implement this function. When the MPIE bit is set to 1, transfer of receive data from RSR to RDR, error flag detection, and setting the SSR status flags, RDRF, FER, and ORER to 1, are inhibited until data with a 1 multiprocessor bit is received. On reception of a receive character with a 1 multiprocessor bit, the MPB bit in SSR is set to 1 and the MPIE bit is automatically cleared, thus normal reception is resumed. If the RIE bit in SCR is set to 1 at this time, an RXI interrupt is generated. When the multiprocessor format is selected, the parity bit setting is rendered invalid. All other bit settings are the same as those in normal asynchronous mode. The clock used for multiprocessor communication is the same as that in normal asynchronous mode. Page 434 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface Transmitting station Serial transmission line Receiving station A Receiving station B Receiving station C Receiving station D (ID = 01) (ID = 02) (ID = 03) (ID = 04) Serial data H'01 H'AA (MPB = 1) Legend: MPB: Multiprocessor bit ID transmission cycle = receiving station specification (MPB = 0) Data transmission cycle = Data transmission to receiving station specified by ID Figure 13.14 Example of Communication Using Multiprocessor Format (Transmission of Data H'AA to Receiving Station A) 13.5.1 Multiprocessor Serial Data Transmission Figure 13.15 shows a sample flowchart for multiprocessor serial data transmission. For an ID transmission cycle, set the MPBT bit in SSR to 1 before transmission. For a data transmission cycle, clear the MPBT bit in SSR to 0 before transmission. All other SCI operations are the same as those in asynchronous mode. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 435 of 846 H8S/2215 Group Section 13 Serial Communication Interface [1] Initialization [1] SCI initialization: The TxD pin is automatically designated as the transmit data output pin. After the TE bit is set to 1, a frame of 1s is output, and transmission is enabled. [2] SCI status check and transmit data write: Read SSR and check that the TDRE flag is set to 1, then write transmit data to TDR. Set the MPBT bit in SSR to 0 or 1. Finally, clear the TDRE flag to 0. [3] Serial transmission continuation procedure: To continue serial transmission, be sure to read 1 from the TDRE flag to confirm that writing is possible, then write data to TDR, and then clear the TDRE flag to 0. Checking and clearing of the TDRE flag is automatic when the DMAC or the DTC* is activated by a transmit data empty interrupt (TXI) request, and data is written to TDR. [4] Break output at the end of serial transmission: To output a break in serial transmission, set the port DDR to 1, clear DR to 0, then clear the TE bit in SCR to 0. Start transmission Read TDRE flag in SSR [2] No TDRE = 1 Yes Write transmit data to TDR and set MPBT bit in SSR Clear TDRE flag to 0 No [3] All data transmitted? Yes Read TEND flag in SSR No TEND = 1 Yes No Break output? Yes Clear DR to 0 and set DDR to 1 [4] Note: * Checking and clearing of the TDRE flag are performed automatically by the DTC when the DTC’s DISEL bit is cleared to 0 and the transfer counter value is not 0. Consequently, it is necessary to use the CPU to clear the TDRE flag if DISEL is set to 1 or if the transfer counter value is 0. Clear TE bit in SCR to 0 <End> Figure 13.15 Sample Multiprocessor Serial Transmission Flowchart Page 436 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 13.5.2 Section 13 Serial Communication Interface Multiprocessor Serial Data Reception Figure 13.17 shows a sample flowchart for multiprocessor serial data reception. If the MPIE bit in SCR is set to 1, data is skipped until data with a 1 multiprocessor bit is sent. On receiving data with a 1 multiprocessor bit, the receive data is transferred to RDR. An RXI interrupt request is generated at this time. All other SCI operations are the same as in asynchronous mode. Figure 13.16 shows an example of SCI operation for multiprocessor format reception. 1 Start bit 0 Data (ID1) MPB D0 D1 D7 1 Stop bit Start bit 1 0 Data (Data1) D0 D1 D7 Stop MPB bit 0 1 1 Idle state (mark state) MPIE RDRF RDR value ID1 MPIE = 0 RXI interrupt request (multiprocessor interrupt) generated If not this station’s ID, RXI interrupt request is not generated, and RDR MPIE bit is set to 1 retains its state again RDR data read and RDRF flag cleared to 0 in RXI interrupt service routine (a) Data does not match station’s ID 1 Start bit 0 Data (ID2) D0 D1 D7 Stop MPB bit 1 1 Start bit 0 Data (Data2) D0 D1 D7 Stop MPB bit 0 1 1 Idle state (mark state) MPIE RDRF RDR value ID2 ID1 MPIE = 0 RXI interrupt request (multiprocessor interrupt) generated RDR data read and RDRF flag cleared to 0 in RXI interrupt service routine Data2 MPIE bit set to 1 Matches this station’s ID, so reception continues, and again data is received in RXI interrupt service routine (b) Data matches station’s ID Figure 13.16 Example of SCI Operation in Reception (Example with 8-Bit Data, Multiprocessor Bit, One Stop Bit) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 437 of 846 H8S/2215 Group Section 13 Serial Communication Interface Initialization Start reception Read MPIE bit in SCR [1] SCI initialization: The RxD pin is automatically designated as the receive data input pin. [2] ID reception cycle: Set the MPIE bit in SCR to 1. [3] SCI status check, ID reception and comparison: Read SSR and check that the RDRF flag is set to 1, then read the receive data in RDR and compare it with this station’s ID. If the data is not this station’s ID, set the MPIE bit to 1 again, and clear the RDRF flag to 0. If the data is this station’s ID, clear the RDRF flag to 0. [4] SCI status check and data reception: Read SSR and check that the RDRF flag is set to 1, then read the data in RDR. [5] Receive error processing and break detection: If a receive error occurs, read the ORER and FER flags in SSR to identify the error. After performing the appropriate error processing, ensure that the ORER and FER flags are all cleared to 0. Reception cannot be resumed if either of these flags is set to 1. In the case of a framing error, a break can be detected by reading the RxD pin value. [1] [2] Read ORER and FER flags in SSR Yes FER∨ORER = 1 No Read RDRF flag in SSR [3] No RDRF = 1 Yes Read receive data in RDR No This station’s ID? Yes Read ORER and FER flags in SSR FER ∨ ORER = 1 Yes No Read RDRF flag in SSR [4] No RDRF = 1 Yes Read receive data in RDR No All data received? [5] Error processing Yes Clear RE bit in SCR to 0 (Continued on next page) <End> Figure 13.17 Sample Multiprocessor Serial Reception Flowchart (1) Page 438 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface [5] Error processing No ORER = 1 Yes Overrun error processing No FER = 1 Yes Yes Break? No Framing error processing Clear RE bit in SCR to 0 Clear ORER, PER, and FER flags in SSR to 0 <End> Figure 13.17 Sample Multiprocessor Serial Reception Flowchart (2) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 439 of 846 H8S/2215 Group Section 13 Serial Communication Interface 13.6 Operation in Clocked Synchronous Mode Figure 13.18 shows the general format for clocked synchronous communication. In clocked synchronous mode, data is transmitted or received synchronous with clock pulses. In clocked synchronous serial communication, data on the transmission line is output from one falling edge of the serial clock to the next. In clocked synchronous mode, the SCI receives data in synchronous with the rising edge of the serial clock. After 8-bit data is output, the transmission line holds the MSB state. In clocked synchronous mode, no parity or multiprocessor bit is added. Inside the SCI, the transmitter and receiver are independent units, enabling full-duplex communication through the use of a common clock. Both the transmitter and the receiver also have a double-buffered structure, so data can be read from or written during transmission or reception, enabling continuous data transfer. One unit of transfer data (character or frame) * * Synchronization clock LSB Bit 0 Serial data MSB Bit 1 Don't care Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 Don't care Note: * High except in continuous transfer Figure 13.18 Data Format in Synchronous Communication (For LSB-First) 13.6.1 Clock Either an internal clock generated by the on-chip baud rate generator or an external synchronization clock input at the SCK pin can be selected, according to the setting of CKE0 and CKE1 bits in SCR. When the SCI is operated on an internal clock, the serial clock is output from the SCK pin. Eight serial clock pulses are output in the transfer of one character, and when no transfer is performed the clock is fixed high. Page 440 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 13.6.2 Section 13 Serial Communication Interface SCI Initialization (Clocked Synchronous Mode) Before transmitting and receiving data, the TE and RE bits in SCR should be cleared to 0, then the SCI should be initialized as described in a sample flowchart in figure 13.19. When the operating mode, or transfer format, is changed for example, the TE and RE bits must be cleared to 0 before making the change using the following procedure. When the TE bit is cleared to 0, the TDRE flag is set to 1. Note that clearing the RE bit to 0 does not change the contents of the RDRF, PER, FER, and ORER flags, or the contents of RDR. Start initialization Clear TE and RE bits in SCR to 0 [1] Set the clock selection in SCR. Be sure to clear bits RIE, TIE, TEIE, MPIE, TE, and RE, to 0. [2] Set the data transfer format in SMR and SCMR. Set CKE1 and CKE0 bits in SCR (TE, RE bits 0) [1] [3] Write a value corresponding to the bit rate to BRR. Not necessary if an external clock is used. Set data transfer format in SMR and SCMR [2] [4] Set value in BRR [3] Wait at least one bit interval, then set the TE bit or RE bit in SCR to 1. Also set the RIE, TIE TEIE, and MPIE bits. Setting the TE and RE bits enables the TxD and RxD pins to be used. Wait No 1-bit interval elapsed? Yes Set TE and RE bits in SCR to 1, and set RIE, TIE, TEIE, and MPIE bits [4] <Transfer start> Note: In simultaneous transmit and receive operations, the TE and RE bits should both be cleared to 0 or set to 1 simultaneously. Figure 13.19 Sample SCI Initialization Flowchart 13.6.3 Serial Data Transmission (Clocked Synchronous Mode) Figure 13.20 shows an example of SCI operation for transmission in clocked synchronous mode. In serial transmission, the SCI operates as described below. 1. The SCI monitors the TDRE flag in SSR, and if the flag is 0, the SCI recognizes that data has been written to TDR, and transfers the data from TDR to TSR. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 441 of 846 H8S/2215 Group Section 13 Serial Communication Interface 2. After transferring data from TDR to TSR, the SCI sets the TDRE flag to 1 and starts transmission. If the TIE bit in SCR is set to 1 at this time, a transmit data empty interrupt (TXI) is generated. Continuous transmission is possible because the TXI interrupt routine writes the next transmit data to TDR before transmission of the current transmit data has been completed. 3. 8-bit data is sent from the TxD pin synchronized with the output clock when output clock mode has been specified, and synchronized with the input clock when use of an external clock has been specified. 4. The SCI checks the TDRE flag at the timing for sending the MSB (bit 7). 5. If the TDRE flag is cleared to 0, data is transferred from TDR to TSR, and serial transmission of the next frame is started. 6. If the TDRE flag is set to 1, the TEND flag in SSR is set to 1, and the TDRE flag maintains the output state of the last bit. If the TEIE bit in SCR is set to 1 at this time, a TEI interrupt request is generated. The SCK pin is fixed high. Figure 13.21 shows a sample flow chart for serial data transmission. Even if the TDRE flag is cleared to 0, transmission will not start while a receive error flag (ORER, FER, or PER) is set to 1. Make sure that the receive error flags are cleared to 0 before starting transmission. Note that clearing the RE bit to 0 does not clear the receive error flags. Transfer direction Synchronization clock Serial data Bit 0 Bit 1 Bit 7 Bit 0 Bit 1 Bit 6 Bit 7 TDRE TEND TXI interrupt request generated Data written to TDR and TDRE flag cleared to 0 in TXI interrupt service routine TXI interrupt request generated TEI interrupt request generated 1 frame Figure 13.20 Sample SCI Transmission Operation in Clocked Synchronous Mode Page 442 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface Initialization [1] Start transmission Read TDRE flag in SSR SCI initialization: The TxD pin is automatically designated as the transmit data output pin. [2] SCI status check and transmit data write: Read SSR and check that the TDRE flag is set to 1, then write transmit data to TDR and clear the TDRE flag to 0. [3] Serial transmission continuation procedure: To continue serial transmission, be sure to read 1 from the TDRE flag to confirm that writing is possible, then write data to TDR, and then clear the TDRE flag to 0. Checking and clearing of the TDRE flag is automatic when the DMAC or the DTC* is activated by a transmit data empty interrupt (TXI) request and data is written to TDR. [2] No TDRE = 1 Yes Write transmit data to TDR and clear TDRE flag in SSR to 0 No All data transmitted? [3] Yes Read TEND flag in SSR No TEND = 1 [1] Note: * Checking and clearing of the TDRE flag are performed automatically by the DTC when the DTC’s DISEL bit is cleared to 0 and the transfer counter value is not 0. Consequently, it is necessary to use the CPU to clear the TDRE flag if DISEL is set to 1 or if the transfer counter value is 0. Yes Clear TE bit in SCR to 0 <End> Figure 13.21 Sample Serial Transmission Data Flowchart REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 443 of 846 H8S/2215 Group Section 13 Serial Communication Interface 13.6.4 Serial Data Reception (Clocked Synchronous Mode) Figure 13.22 shows an example of SCI operation for reception in clocked synchronous mode. In serial reception, the SCI operates as described below. 1. The SCI performs internal initialization synchronous with a synchronous clock input or output, starts receiving data, and stores the received data in RSR. 2. If an overrun error occurs (when reception of the next data is completed while the RDRF flag in SSR is still set to 1), the ORER bit in SSR is set to 1. If the RIE bit in SCR is set to 1 at this time, an ERI interrupt request is generated, receive data is not transferred to RDR, and the RDRF flag remains to be set to 1. 3. If reception is completed successfully, the RDRF bit in SSR is set to 1, and receive data is transferred to RDR. If the RIE bit in SCR is set to 1 at this time, an RXI interrupt request is generated. Continuous reception is possible because the RXI interrupt routine reads the receive data transferred to RDR before reception of the next receive data has finished. Synchronization clock Bit 7 Serial data Bit 0 Bit 7 Bit 0 Bit 1 Bit 6 Bit 7 RDRF ORER RXI interrupt request generated RDR data read and RDRF flag cleared to 0 in RXI interrupt service routine RXI interrupt request generated ERI interrupt request generated by overrun error 1 frame Figure 13.22 Example of SCI Operation in Reception Reception cannot be resumed while a receive error flag is set to 1. Accordingly, clear the ORER, FER, PER, and RDRF bits to 0 before resuming reception. Figure 13.23 shows a sample flow chart for serial data reception. When the internal clock is selected during reception, the synchronization clock will be output until an overrun error occurs or the RE bit is cleared. To receive data in frame units, a dummy data of one frame must be transmitted simultaneously. Page 444 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface Initialization [1] [1] SCI initialization: The RxD pin is automatically designated as the receive data input pin. [2] [3] Receive error processing: If a receive error occurs, read the ORER flag in SSR, and after performing the appropriate error processing, clear the ORER flag to 0. Transfer cannot be resumed if the ORER flag is set to 1. [4] SCI status check and receive data read: Read SSR and check that the RDRF flag is set to 1, then read the receive data in RDR and clear the RDRF flag to 0. Transition of the RDRF flag from 0 to 1 can also be identified by an RXI interrupt. [5] Serial reception continuation procedure: To continue serial reception, before the MSB (bit 7) of the current frame is received, reading the RDRF flag, reading RDR, and clearing the RDRF flag to 0 should be finished. The RDRF flag is cleared automatically when the DMAC or the DTC* is activated by a receive data full interrupt (RXI) request and the RDR value is read. Start reception Read ORER flag in SSR [2] Yes ORER = 1 [3] No Error processing (Continued below) Read RDRF flag in SSR No [4] RDRF = 1 Yes Read receive data in RDR, and clear RDRF flag in SSR to 0 No All data received? [5] Yes Clear RE bit in SCR to 0 <End> [3] Error processing Overrun error processing Note: * Clearing of the RDRF flag are performed automatically by the DTC when the DTC's DISEL bit is cleared to 0 and the transfer counter value is not 0. Consequently, it is necessary to use the CPU to clear the RDRF flag if DISEL is set to 1 or if the transfer counter value is 0. Clear ORER flag in SSR to 0 <End> Figure 13.23 Sample Serial Reception Flowchart 13.6.5 Simultaneous Serial Data Transmission and Reception (Clocked Synchronous Mode) Figure 13.24 shows a sample flowchart for simultaneous serial transmit and receive operations. The following procedure should be used for simultaneous serial data transmit and receive operations. To switch from transmit mode to simultaneous transmit and receive mode, after checking that the SCI has finished transmission and the TDRE and TEND flags are set to 1, clear TE to 0. Then simultaneously set TE and RE to 1 with a single instruction. To switch from receive mode to simultaneous transmit and receive mode, after checking that the SCI has finished reception, clear RE to 0. Then after checking that the RDRF and receive error flags (ORER, FER, and PER) are cleared to 0, simultaneously set TE and RE to 1 with a single instruction. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 445 of 846 H8S/2215 Group Section 13 Serial Communication Interface Initialization [1] [1] SCI initialization: The TxD pin is designated as the transmit data output pin, and the RxD pin is designated as the receive data input pin, enabling simultaneous transmit and receive operations. [2] SCI status check and transmit data write: Read SSR and check that the TDRE flag is set to 1, then write transmit data to TDR and clear the TDRE flag to 0. Transition of the TDRE flag from 0 to 1 can also be identified by a TXI interrupt. Receive error processing: If a receive error occurs, read the ORER flag in SSR, and after performing the appropriate error processing, clear the ORER flag to 0. Transmission/reception cannot be resumed if the ORER flag is set to 1. Start transmission/reception Read TDRE flag in SSR [2] No TDRE = 1 Yes Write transmit data to TDR and clear TDRE flag in SSR to 0 [3] Read ORER flag in SSR ORER = 1 No Read RDRF flag in SSR Yes [3] [4] SCI status check and receive data read: Read SSR and check that the RDRF flag is set to 1, then read the receive data in RDR and clear the RDRF flag to 0. Transition of the RDRF flag from 0 to 1 can also be identified by an RXI interrupt. [5] Serial transmission/reception continuation procedure: To continue serial transmission/ reception, before the MSB (bit 7) of the current frame is received, finish reading the RDRF flag, reading RDR, and clearing the RDRF flag to 0. Also, before the MSB (bit 7) of the current frame is transmitted, read 1 from the TDRE flag to confirm that writing is possible. Then write data to TDR and clear the TDRE flag to 0. Checking and clearing of the TDRE flag is automatic when the DMAC or the DTC* is activated by a transmit data empty interrupt (TXI) request and data is written to TDR. Also, the RDRF flag is cleared automatically when the DMAC or the DTC* is activated by a receive data full interrupt (RXI) request and the RDR value is read. Error processing [4] No RDRF = 1 Yes Read receive data in RDR, and clear RDRF flag in SSR to 0 No All data received? [5] Yes Clear TE and RE bits in SCR to 0 <End> Notes: When switching from transmit or receive operation to simultaneous transmit and receive operations, first clear the TE bit and RE bit to 0, then set both these bits to 1 simultaneously. * The TDRE and RDRF flags are automatically cleared by the DTC when the DTC's DISEL bit is cleared to 0 and the transfer counter value is not 0. Consequently, it is necessary to use the CPU to clear the TDRE and RDRF flags if DISEL is set to 1 or if the transfer counter value is 0. Figure 13.24 Sample Flowchart of Simultaneous Serial Transmit and Receive Operations Page 446 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 13.7 Section 13 Serial Communication Interface Operation in Smart Card Interface The SCI supports an IC card (Smart Card) interface that conforms to ISO/IEC 7816-3 (Identification Card) as a serial communication interface extension function. Switching between the normal serial communication interface and the Smart Card interface mode is carried out by means of a register setting. 13.7.1 Pin Connection Example Figure 13.25 shows an example of connection with the Smart Card. In communication with an IC card, as both transmission and reception are carried out on a single data transmission line, the TxD pin and RxD pin should be connected to the LSI pin. The data transmission line should be pulled up to the VCC power supply with a resistor. If an IC card is not connected, and the TE and RE bits are both set to 1, closed transmission/reception is possible, enabling self-diagnosis to be carried out. When the clock generated on the Smart Card interface is used by an IC card, the SCK pin output is input to the CLK pin of the IC card. This LSI port output is used as the reset signal. VCC TxD RxD SCK Rx (port) This LSI Data line Clock line Reset line I/O CLK RST IC card Connected equipment Figure 13.25 Schematic Diagram of Smart Card Interface Pin Connections REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 447 of 846 H8S/2215 Group Section 13 Serial Communication Interface 13.7.2 Data Format (Except for Block Transfer Mode) Figure 13.26 shows the transfer data format in Smart Card interface mode. • One frame consists of 8-bit data plus a parity bit in asynchronous mode. • In transmission, a guard time of at least 2 etu (Elementary time unit: the time for transfer of one bit) is left between the end of the parity bit and the start of the next frame. • If a parity error is detected during reception, a low error signal level is output for one etu period, 10.5 etu after the start bit. • If an error signal is sampled during transmission, the same data is retransmitted automatically after a delay of 2 etu or longer. When there is no parity error Ds D0 D1 D2 D3 D4 D5 D6 D7 Dp D6 D7 Dp Transmitting station output When a parity error occurs Ds D0 D1 D2 D3 D4 D5 DE Transmitting station output Legend: DS: D0 to D7: Dp: DE: Receiving station output Start bit Data bits Parity bit Error signal Figure 13.26 Normal Smart Card Interface Data Format Data transfer with other types of IC cards (direct convention and inverse convention) are performed as described in the following. (Z) A Z Z A Z Z Z A A Z Ds D0 D1 D2 D3 D4 D5 D6 D7 Dp (Z) State Figure 13.27 Direct Convention (SDIR = SINV = O/E = 0) With the direction convention type IC and the above sample start character, the logic 1 level corresponds to state Z and the logic 0 level to state A, and transfer is performed in LSB-first order. The start character data above is H'3B. For the direct convention type, clear the SDIR and SINV Page 448 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface bits in SCMR to 0. According to Smart Card regulations, clear the O/E bit in SMR to 0 to select even parity mode. (Z) A Z Z A A A A A A Z Ds D7 D6 D5 D4 D3 D2 D1 D0 Dp (Z) State Figure 13.28 Inverse Convention (SDIR = SINV = O/E = 1) With the inverse convention type, the logic 1 level corresponds to state A and the logic 0 level to state Z, and transfer is performed in MSB-first order. The start character data for the above is H'3F. For the inverse convention type, set the SDIR and SINV bits in SCMR to 1. According to Smart Card regulations, even parity mode is the logic 0 level of the parity bit, and corresponds to state Z. In this LSI, the SINV bit inverts only data bits D0 to D7. Therefore, set the O/E bit in SMR to 1 to invert the parity bit for both transmission and reception. 13.7.3 Clock Only an internal clock which is generated by the on-chip baud rate generator is used as a transmit/receive clock. When an output clock is selected by setting CKE0 to 1, a clock with a frequency S* times the bit rate is output from the SCK pin. Note: * S is the value shown in section 13.3.12, Bit Rate Register (BRR). 13.7.4 Block Transfer Mode Operation in block transfer mode is the same as that in the normal Smart Card interface mode, except for the following points. • In reception, though the parity check is performed, no error signal is output even if an error is detected. However, the PER bit in SSR is set to 1 and must be cleared before receiving the parity bit of the next frame. • In transmission, a guard time of at least 1 etu is left between the end of the parity bit and the start of the next frame. • In transmission, because retransmission is not performed, the TEND flag is set to 1, 11.5 etu after transmission start. • As with the normal Smart Card interface, the ERS flag indicates the error signal status, but since error signal transfer is not performed, this flag is always cleared to 0. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 449 of 846 H8S/2215 Group Section 13 Serial Communication Interface 13.7.5 Receive Data Sampling Timing and Reception Margin In Smart Card interface mode an internal clock generated by the on-chip baud rate generator can only be used as a transmission/reception clock. In this mode, the SCI operates on a basic clock with a frequency of 32, 64, 372, or 256 times the transfer rate (fixed to 16 times in normal asynchronous mode) as determined by bits BCP1 and BCP0. In reception, the SCI samples the falling edge of the start bit using the basic clock, and performs internal synchronization. As shown in figure 13.29, by sampling receive data at the rising-edge of the 16th, 32nd, 186th, or 128th pulse of the basic clock, data can be latched at the middle of the bit. The reception margin is given by the following formula. | M = (0.5 – 1 ) – (L – 0.5) F – 2N | D – 0.5 | N | (1+ F) × 100 [%] Where M: Reception margin (%) N: Ratio of bit rate to clock (N = 32, 64, 372, and 256) D: Clock duty (D = 0 to 1.0) L: Frame length (L = 10) F: Absolute value of clock frequency deviation Assuming values of F = 0, D = 0.5 and N = 372 in the above formula, the reception margin formula is as follows. M = (0.5 – 1/2 × 372) × 100% = 49.866% 372 clocks 186 clocks 0 185 185 371 0 371 0 Internal basic clock Receive data (RxD) Start bit D0 D1 Synchronization sampling timing Data sampling timing Figure 13.29 Receive Data Sampling Timing in Smart Card Mode (Using Clock of 372 Times the Transfer Rate) Page 450 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 13.7.6 Section 13 Serial Communication Interface Initialization Before transmitting and receiving data, initialize the SCI as described below. Initialization is also necessary when switching from transmit mode to receive mode, or vice versa. 1. Clear the TE and RE bits in SCR to 0. 2. Clear the error flags ERS, PER, and ORER in SSR to 0. 3. Set the GM, BLK, O/E, BCP0, BCP1, CKS0, CKS1 bits in SMR. Set the PE bit to 1. 4. Set the SMIF, SDIR, and SINV bits in SCMR. When the SMIF bit is set to 1, the TxD and RxD pins are both switched from ports to SCI pins, and are placed in the high-impedance state. 5. Set the value corresponding to the bit rate in BRR. 6. Set the CKE0 and CKE1 bits in SCR. Clear the TIE, RIE, TE, RE, MPIE, and TEIE bits to 0. If the CKE0 bit is set to 1, the clock is output from the SCK pin. 7. Wait at least one bit interval, then set the TIE, RIE, TE, and RE bits in SCR. Do not set the TE bit and RE bit at the same time, except for self-diagnosis. To switch from receive mode to transmit mode, after checking that the SCI has finished reception, initialize the SCI, and set RE to 0 and TE to 1. Whether SCI has finished reception or not can be checked with the RDRF, PER, or ORER flags. To switch from transmit mode to receive mode, after checking that the SCI has finished transmission, initialize the SCI, and set TE to 0 and RE to 1. Whether SCI has finished transmission or not can be checked with the TEND flag. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 451 of 846 Section 13 Serial Communication Interface 13.7.7 H8S/2215 Group Serial Data Transmission (Except for Block Transfer Mode) As data transmission in Smart Card interface mode involves error signal sampling and retransmission processing, the operations are different from those in normal serial communication interface mode (except for block transfer mode). Figure 13.30 illustrates the retransfer operation when the SCI is in transmit mode. 1. If an error signal is sent back from the receiving end after transmission of one frame is complete, the ERS bit in SSR is set to 1. If the RIE bit in SCR is enabled at this time, an ERI interrupt request is generated. The ERS bit in SSR should be cleared to 0 by the time the next parity bit is sampled. 2. The TEND bit in SSR is not set for a frame in which an error signal indicating an abnormality is received. Data is retransferred from TDR to TSR, and retransmitted automatically. 3. If an error signal is not sent back from the receiving end, the ERS bit in SSR is not set. Transmission of one frame, including a retransfer, is judged to have been completed, and the TEND bit in SSR is set to 1. If the TIE bit in SCR is enabled at this time, a TXI interrupt request is generated. Writing transmit data to TDR transfers the next transmit data. Figure 13.32 shows a flowchart for transmission. A sequence of transmit operations can be performed automatically by specifying the DTC or the DMAC to be activated with a TXI interrupt source. In a transmit operation, the TDRE flag is set to 1 at the same time as the TEND flag in SSR is set, and a TXI interrupt will be generated if the TIE bit in SCR has been set to 1. If the TXI request is designated beforehand as a DTC* or the DMAC activation source, the DTC* or the DMAC will be activated by the TXI request, and transfer of the transmit data will be carried out. The TDRE and TEND flags are automatically cleared to 0 when data is transferred by the DTC* or the DMAC. In the event of an error, the SCI retransmits the same data automatically. During this period, the TEND flag remains cleared to 0 and the DTC* or the DMAC is not activated. Therefore, the SCI and DTC* or the DMAC will automatically transmit the specified number of bytes in the event of an error, including retransmission. However, the ERS flag is not cleared automatically when an error occurs, and so the RIE bit should be set to 1 beforehand so that an ERI request will be generated in the event of an error, and the ERS flag will be cleared. When performing transfer using the DMAC or the DTC, it is essential to set and enable the DMAC or the DTC* before carrying out SCI setting. For details of the DMAC or the DTC* setting procedures, refer to section 8, Data Transfer Controller (DTC) or section 7, DMA controller (DMAC). Note: * The Flags are automatically cleared by the DTC when the DTC's DISEL bit is cleared to 0 and the transfer counter value is not 0. Page 452 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface nth transfer frame Transfer frame n + 1 Retransferred frame Ds D0 D1 D2 D3 D4 D5 D6 D7 Dp DE Ds D0 D1 D2 D3 D4 D5 D6 D7 Dp (DE) Ds D0 D1 D2 D3 D4 TDRE Transfer to TSR from TDR Transfer to TSR from TDR Transfer to TSR from TDR TEND FER/ERS Figure 13.30 Retransfer Operation in SCI Transmit Mode The timing for setting the TEND flag depends on the value of the GM bit in SMR. The TEND flag set timing is shown in figure 13.31. I/O data Ds TXI (TEND interrupt) D0 D1 D2 D3 D4 D5 D6 D7 Dp DE Guard time 12.5 etu When GM = 0 11.0 etu When GM = 1 Legend: Ds: D0 to D7: Dp: DE: Start bit Data bits Parity bit Error signal Figure 13.31 TEND Flag Generation Timing in Transmission Operation REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 453 of 846 H8S/2215 Group Section 13 Serial Communication Interface Start Initialization Start transmission ERS = 0? No Yes Error processing No TEND = 1? Yes Write data to TDR, and clear TDRE flag in SSR to 0 No All data transmitted ? Yes No ERS = 0? Yes Error processing No TEND = 1? Yes Clear TE bit to 0 End Figure 13.32 Example of Transmission Processing Flow Page 454 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 13.7.8 Section 13 Serial Communication Interface Serial Data Reception (Except for Block Transfer Mode) Data reception in Smart Card interface mode uses the same operation procedure as for normal serial communication interface mode. Figure 13.33 illustrates the retransfer operation when the SCI is in receive mode. 1. If an error is found when the received parity bit is checked, the PER bit in SSR is automatically set to 1. If the RIE bit in SCR is set at this time, an ERI interrupt request is generated. The PER bit in SSR should be kept cleared to 0 until the next parity bit is sampled. 2. The RDRF bit in SSR is not set for a frame in which an error has occurred. 3. If no error is found when the received parity bit is checked, the PER bit in SSR is not set to 1, the receive operation is judged to have been completed normally, and the RDRF flag in SSR is automatically set to 1. If the RIE bit in SCR is enabled at this time, an RXI interrupt request is generated. Figure 13.34 shows a flowchart for reception. A sequence of receive operations can be performed automatically by specifying the DTC* or the DMAC to be activated using an RXI interrupt source. In a receive operation, an RXI interrupt request is generated when the RDRF flag in SSR is set to 1. If the RXI request is designated beforehand as a DTC* or the DMAC activation source, the DTC* or the DMAC will be activated by the RXI request, and the receive data will be transferred. The RDRF flag is cleared to 0 automatically when data is transferred by the DTC* or the DMAC. If an error occurs in receive mode and the ORER or PER flag is set to 1, a transfer error interrupt (ERI) request will be generated. Hence, so the error flag must be cleared to 0. In the event of an error, the DTC* or the DMAC is not activated and receive data is skipped. Therefore, receive data is transferred for only the specified number of bytes in the event of an error. Even when a parity error occurs in receive mode and the PER flag is set to 1, the data that has been received is transferred to RDR and can be read from there. Notes: For details on receive operations in block transfer mode, refer to section 13.4, Operation in Asynchronous Mode. * The Flags are automatically cleared by the DTC when the DTC's DISEL bit is cleared to 0 and the transfer counter value is not 0. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 455 of 846 H8S/2215 Group Section 13 Serial Communication Interface nth transfer frame Transfer frame n + 1 Retransferred frame Ds D0 D1 D2 D3 D4 D5 D6 D7 Dp DE Ds D0 D1 D2 D3 D4 D5 D6 D7 Dp (DE) Ds D0 D1 D2 D3 D4 RDRF PER Figure 13.33 Retransfer Operation in SCI Receive Mode Start Initialization Start reception ORER = 0 and PER = 0 No Yes Error processing No RDRF = 1? Yes Read RDR and clear RDRF flag in SSR to 0 No All data received? Yes Clear RE bit to 0 Figure 13.34 Example of Reception Processing Flow Page 456 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 13.7.9 Section 13 Serial Communication Interface Clock Output Control When the GM bit in SMR is set to 1, the clock output level can be fixed with bits CKE0 and CKE1 in SCR. At this time, the minimum clock pulse width can be made the specified width. Figure 13.35 shows the timing for fixing the clock output level. In this example, GM is set to 1, CKE1 is cleared to 0, and the CKE0 bit is controlled. CKE0 SCK Specified pulse width Specified pulse width Figure 13.35 Timing for Fixing Clock Output Level When turning on the power or switching between Smart Card interface mode and software standby mode, the following procedures should be followed in order to maintain the clock duty. Powering On: To secure clock duty from power-on, the following switching procedure should be followed. 1. The initial state is port input and high impedance. Use a pull-up resistor or pull-down resistor to fix the potential. 2. Fix the SCK pin to the specified output level with the CKE1 bit in SCR. 3. Set SMR and SCMR, and switch to smart card mode operation. 4. Set the CKE0 bit in SCR to 1 to start clock output. When changing from smart card interface mode to software standby mode: 1. Set the data register (DR) and data direction register (DDR) corresponding to the SCK pin to the value for the fixed output state in software standby mode. 2. Write 0 to the TE bit and RE bit in the serial control register (SCR) to halt transmit/receive operation. At the same time, set the CKE1 bit to the value for the fixed output state in software standby mode. 3. Write 0 to the CKE0 bit in SCR to halt the clock. 4. Wait for one serial clock period. During this interval, clock output is fixed at the specified level, with the duty preserved. 5. Make the transition to the software standby state. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 457 of 846 H8S/2215 Group Section 13 Serial Communication Interface When returning to smart card interface mode from software standby mode 1. Exit the software standby state. 2. Write 1 to the CKE0 bit in SCR and output the clock. Signal generation is started with the normal duty. Normal operation Software standby Normal operation Figure 13.36 Clock Halt and Restart Procedure Page 458 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 13.8 Section 13 Serial Communication Interface SCI Select Function The SCI_0 supports the SCI select function which allows clock synchronous communication between master LSI and one of multiple slave LSI. Figure 13.37 shows an example of communication using the SCI select function. Figure 13.38 shows the operation. The master LSI can communicate with slave LSI_A by bringing SEL_A and SEL_B signals low and high, respectively. In this case, the TxD0_B pin of the slave LSI_B is brought high-impedance state and the internal SCK0_A signal is fixed high. This halts the communication operation of slave LSI_B. The master LSI can communicate with slave LSI_B by bringing the SEL_A and SEL_B signals high and low, respectively. The slave LSI detects the selection by receiving the low level input from the IRQ7 pin and immediately executes data transmission/reception processing. Note: The selection signals (SEL_A and SEL_B) of the LSI must be switched while the serial clock (M_SCK) is high after the end bit of the transmit data has been send. Note that one selection signal can be brought low at the same time. Master LSI SEL_A M_TxD M_RxD M_SCK Slave LSI_A (This LSI) IRQ7_A Interrupt controller RxD0_A RSR0_A TSR0_A TxD0_A SCK0_A SCK0 Transmission/ reception control C/A = CKE1 = SSE = 1 Slave LSI_B (This LSI) SEL_B IRQ7_B RxD0_B TxD0_B SCK0 SCK0_B Figure 13.37 Example of Communication Using the SCI Select Function REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 459 of 846 H8S/2215 Group Section 13 Serial Communication Interface Communication between master LSI Communication between master LSI and slave LSI_A and slave LSI_B Period of M_SCK = high [Master LSI] M_SCK M_TxD D0 D1 D7 D0 D1 D7 M_RxD D0 D1 D7 D0 D1 D7 SEL_A SEL_B [Slave LSI_A] IRQ7_A (SEL_A) SCK0_A Fixed high level RSR0_A TxD0_A D0 Hi-Z D0 D6 D1 D7 Hi-Z D7 [Slave LSI_B] IRQ7_B (SEL_B) Fixed high level SCK0_B RSR0_B TxD0_B D0 Hi-Z D0 D6 D1 D7 D7 Hi-Z Figure 13.38 Example of Communication Using the SCI Select Function Page 460 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface 13.9 Interrupts 13.9.1 Interrupts in Normal Serial Communication Interface Mode Table 13.12 shows the interrupt sources in normal serial communication interface mode. A different interrupt vector is assigned to each interrupt source, and individual interrupt sources can be enabled or disabled using the enable bits in SCR. When the TDRE flag in SSR is set to 1, a TXI interrupt request is generated. When the TEND flag in SSR is set to 1, a TEI interrupt request is generated. A TXI interrupt can activate the DMAC or the DTC to perform data transfer. The TDRE flag is cleared to 0 automatically when data is transferred by the DMAC or the DTC*. When the RDRF flag in SSR is set to 1, an RXI interrupt request is generated. When the ORER, PER, or FER flag in SSR is set to 1, an ERI interrupt request is generated. An RXI interrupt request can activate the DMAC or the DTC to transfer data. The RDRF flag is cleared to 0 automatically when data is transferred by the DMAC or the DTC*. A TEI interrupt is requested when the TEND flag is set to 1 and the TEIE bit is set to 1. If a TEI interrupt and a TXI interrupt are requested simultaneously, the TXI interrupt has priority for acceptance. However, if the TDRE and TEND flags are cleared simultaneously by the TXI interrupt routine, the SCI cannot branch to the TEI interrupt routine later. Note: * The Flags are automatically cleared by the DTC when the DTC's DISEL bit is cleared to 0 and the transfer counter value is not 0. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 461 of 846 H8S/2215 Group Section 13 Serial Communication Interface Table 13.12 SCI Interrupt Sources DTC Activation DMAC Activation ORER, FER, PER Not possible Not possible High Receive Data Full RDRF Possible Possible TXI0 Transmit Data Empty TDRE Possible Possible TEI0 Transmission End TEND Not possible Not possible ERI1 Receive Error ORER, FER, PER Not possible Not possible RXI1 Receive Data Full RDRF Possible Possible TXI1 Transmit Data Empty TDRE Possible Possible TEI1 Transmission End TEND Not possible Not possible ERI2 Receive Error ORER, FER, PER Not possible Not possible RXI2 Receive Data Full RDRF Possible Not possible TXI2 Transmit Data Empty TDRE Possible Not possible TEI2 Transmission End TEND Not possible Not possible Low Channel Name 0 1 2 Note: * Interrupt Source Interrupt Flag ERI0 Receive Error RXI0 Priority* This table shows the initial state immediately after a reset. The relative channel priorities can be changed by the interrupt controller. Page 462 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 13.9.2 Section 13 Serial Communication Interface Interrupts in Smart Card Interface Mode Table 13.13 shows the interrupt sources in Smart Card interface mode. The transmit end interrupt (TEI) request cannot be used in this mode. Note: In case of block transfer mode, see section 13.9.1, Interrupts in Normal Serial Communication Interface Mode. Table 13.13 Interrupt Sources in Smart Card Interface Mode Channel Name Interrupt Source Interrupt Flag DTC Activation DMAC Activation 0 ERI0 Receive Error, detection ORER, PER, ERS Not possible Not possible High RXI0 Receive Data Full RDRF Possible Possible TXI0 Transmit Data Empty TEND Possible Possible ERI1 Receive Error, detection ORER, PER, ERS Not possible Not possible RXI1 Receive Data Full RDRF Possible Possible TXI1 Transmit Data Empty TEND Possible Possible ERI2 Receive Error, detection ORER, PER, ERS Not possible Not possible RXI2 Receive Data Full RDRF Possible Not possible TXI2 Transmit Data Empty TEND Possible Not possible Low 1 2 Notes: * Indicates the initial state immediately after a reset. Priorities in channels can be changed by the interrupt controller. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Priority* Page 463 of 846 Section 13 Serial Communication Interface 13.10 H8S/2215 Group Usage Notes 13.10.1 Break Detection and Processing (Asynchronous Mode Only) When framing error detection is performed, a break can be detected by reading the RxD pin value directly. In a break, the input from the RxD pin becomes all 0s, setting the FER flag, and possibly the PER flag. Note that as the SCI continues the receive operation after receiving a break, even if the FER flag is cleared to 0, it will be set to 1 again. 13.10.2 Mark State and Break Detection (Asynchronous Mode Only) When TE is 0, the TxD pin is used as an I/O port whose direction (input or output) and level are determined by DR and DDR. This can be used to set the TxD pin to mark state (high level) or send a break during serial data transmission. To maintain the communication line at mark state until TE is set to 1, set both DDR and DR to 1. As TE is cleared to 0 at this point, the TxD pin becomes an I/O port, and 1 is output from the TxD pin. To send a break during serial transmission, first set PCR to 1 and PDR to 0, and then clear TE to 0. When TE is cleared to 0, the transmitter is initialized regardless of the current transmission state, the TxD pin becomes an I/O port, and 0 is output from the TxD pin. 13.10.3 Receive Error Flags and Transmit Operations (Clocked Synchronous Mode Only) Transmission cannot be started when a receive error flag (ORER, PER, or FER) is set to 1, even if the TDRE flag is cleared to 0. Be sure to clear the receive error flags to 0 before starting transmission. Note also that receive error flags cannot be cleared to 0 even if the RE bit is cleared to 0. 13.10.4 Restrictions on Use of DMAC or DTC • When an external clock source is used as the serial clock, the transmit clock should not be input until at least 5 φ clock cycles after TDR is updated by the DMAC or the DTC. Misoperation may occur if the transmit clock is input within 4 φ clocks after TDR is updated. (figure 13.39) • When RDR is read by the DMAC or the DTC, be sure to set the activation source to the relevant SCI reception end interrupt (RXI). • During data transfer, the TDRE and RDRF flags are automatically cleared by the DTC when the DTC's DISEL bit is cleared to 0 and the transfer counter value is not 0. Consequently, it is necessary to use the CPU to clear the TDRE and RDRF flags if DISEL is set to 1 or if the transfer counter value is 0. Page 464 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface In particular, data transmission cannot be completed correctly unless the TDRE flag is cleared using the CPU. SCK t TDRE LSB Serial data D0 D1 D2 D3 D4 D5 D6 D7 Note: When operating on an external clock, set t>4 clocks. Figure 13.39 Example of Clocked Synchronous Transmission by DMAC or DTC 13.10.5 Operation in Case of Mode Transition • Transmission Operation should be stopped (by clearing TE, TIE, and TEIE to 0) before making a module stop mode, software standby mode, or subsleep mode transition. TSR, TDR, and SSR are reset. The output pin states in module stop mode, software standby mode, or subsleep mode depend on the port settings, and becomes high-level output after the relevant mode is cleared. If a transition is made during transmission, the data being transmitted will be undefined. When transmitting without changing the transmit mode after the relevant mode is cleared, transmission can be started by setting TE to 1 again, and performing the following sequence: SSR read -> TDR write -> TDRE clearance. To transmit with a different transmit mode after clearing the relevant mode, the procedure must be started again from initialization. Figure 13.40 shows a sample flowchart for mode transition during transmission. Port pin states are shown in figures 13.41 and 13.42. Operation should also be stopped (by clearing TE, TIE, and TEIE to 0) before making a transition from transmission by DTC transfer to module stop mode or software standby mode transition. To perform transmission with the DTC after the relevant mode is cleared, setting TE and TIE to 1 will set the TXI flag and start DTC transmission. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 465 of 846 H8S/2215 Group Section 13 Serial Communication Interface <Transmission> No All data transmitted? [1] Yes Read TEND flag in SSR No TEND = 1 Yes [1] Data being transmitted is interrupted. After exiting software standby mode, etc., normal CPU transmission is possible by setting TE to 1, reading SSR, writing TDR, and clearing TDRE to 0, but note that if the DTC* or the DMAC has been activated, the remaining data in DTCRAM will be transmitted when TE and TIE are set to 1. [2] Includes module stop mode. TE = TIE = TEIE = 0 Transition to software standby mode, etc. [2] Exit from software standby mode, etc. Change operating mode? No Note: * The TDRE and RDRF flags are automatically cleared by the DTC when the DTC's DISEL bit is cleared to 0 and the transfer counter value is not 0. Consequently, it is necessary to use the CPU to clear the TDRE and RDRF flags if DISEL is set to 1 or if the transfer counter value is 0. Yes Initialization TE = 1 <Start of transmission> Figure 13.40 Sample Flowchart for Mode Transition during Transmission Start of transmission End of transmission Exit from software standby Transition to software standby TE bit Port input/output SCK output pin TxD output pin Port input/output Port High output Start SCI TxD output Stop Port input/output Port High output SCI TxD output Figure 13.41 Port Pin State of Asynchronous Transmission Using Internal Clock Page 466 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface Start of transmission End of transmission Exit from software standby Transition to software standby TE bit SCK output pin Port input/output TxD output pin Port input/output Final TxD bit retention High output Port SCI TxD output Port input/output Port High output* SCI TxD output Note: * Initialized by the software standby. Figure 13.42 Port Pin State of Synchronous Transmission Using Internal Clock • Reception Receive operation should be stopped (by clearing RE to 0) before making a module stop mode, software standby mode, watch mode, subactive mode, or subsleep mode transition. RSR, RDR, and SSR are reset. If a transition is made without stopping operation, the data being received will be invalid. To continue receiving without changing the reception mode after the relevant mode is cleared, set RE to 1 before starting reception. To receive with a different receive mode, the procedure must be started again from initialization. Figure 13.43 shows a sample flowchart for mode transition during reception. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 467 of 846 H8S/2215 Group Section 13 Serial Communication Interface <Reception> Read RDRF flag in SSR RDRF = 1 No [1] [1] Receive data being received becomes invalid. Yes [2] Includes module stop mode. Read receive data in RDR RE = 0 Transition to software standby mode, etc. [2] Exit from software standby mode, etc. Change operating mode? No Yes Initialization RE = 1 <Start of reception> Figure 13.43 Sample Flowchart for Mode Transition during Reception Page 468 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 13 Serial Communication Interface 13.10.6 Switching from SCK Pin Function to Port Pin Function When switching the SCK pin function to the output port function (high-level output) by making the following settings while DDR = 1, DR = 1, C/A = 1, CKE1 = 0, CKE0 = 0, and TE = 1 (synchronous mode), low-level output occurs for one half-cycle. 1. End of serial data transmission 2. TE bit = 0 3. C/A bit = 0 ... switchover to port output 4. Occurrence of low-level output (see figure 13.44) Half-cycle low-level output SCK/port 1. End of transmission Data Bit 6 TE C/A 4. Low-level output Bit 7 2. TE = 0 3. C/A = 0 CKE1 CKE0 Figure 13.44 Operation when Switching from SCK Pin Function to Port Pin Function REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 469 of 846 H8S/2215 Group Section 13 Serial Communication Interface Sample Procedure for Avoiding Low-Level Output: As this sample procedure temporarily places the SCK pin in the input state, the SCK/port pin should be pulled up beforehand with an external circuit. With DDR = 1, DR = 1, C/A = 1, CKE1 = 0, CKE0 = 0, and TE = 1, make the following settings in the order shown. 1. End of serial data transmission 2. TE bit = 0 3. CKE1 bit = 1 4. C/A bit = 0 ... switchover to port output 5. CKE1 bit = 0 High-level output SCK/port Data 1. End of transmission Bit 6 Bit 7 2. TE = 0 TE 4. C/A = 0 C/A 3. CKE1 = 1 CKE1 5. CKE1 = 0 CKE0 Figure 13.45 Operation when Switching from SCK Pin Function to Port Pin Function (Example of Preventing Low-Level Output) 13.10.7 Module Stop Mode Setting Operation of the SCI can be disabled or enabled using the module stop control register. The initial setting is for operation of the SCI to be halted. Register access is enabled by clearing module stop mode. For details, refer to section 22, Power-Down Modes. Page 470 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 14 Boundary Scan Function Section 14 Boundary Scan Function This LSI incorporates a boundary scan function, which is a serial I/O interface based on the JTAG (Joint Test Action Group, IEEEStd.1149.1 and IEEE Standard Test Access Port and Boundary Scan Architecture). Figure 14.1 shows the block diagram of the boundary scan function. 14.1 Features • Five test signals ⎯ TCK, TDI, TDO, TMS, TRST • Six test modes supported ⎯ BYAPASS, SAMPLE/PRELOAD, EXTEST, CLAMP, HIGHZ, IDCODE • Boundary scan function cannot be performed on the following pins. ⎯ Power supply pins: VCC, VSS, Vref, AVCC, AVSS, PLLVCC, PLLVSS, PLLCAP, DrVCC, DrVSS ⎯ Clock signals: EXTAL, XTAL, EXTAL48, XTAL48 ⎯ Analog signals: P40 to P43, P96, P97, USD+, USD- ⎯ Boundary scan signals: TCK, TDI, TDO, TMS, TRST ⎯ E10A signal (EMLE) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 471 of 846 IFJTAG0A_000020020100 H8S/2215 Group Section 14 Boundary Scan Function BSCANR (Boundary scan cell chain) IDCODE MUX TDO MUX BYPASS TDI INSTR TCK TMS TAP controller TRST Legend: BSCANR: IDCODE: BYPASS: INSTR: TAP: Boundary scan register IDCODE register BYPASS register Instruction register Test access port Figure 14.1 Block Diagram of Boundary Scan Function Page 472 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 14.2 Section 14 Boundary Scan Function Pin Configuration Table 14.1 shows the I/O pins used in the boundary scan function. Table 14.1 Pin Configuration Pin Name I/O TMS Input Function Test Mode Select Controls the TAP controller which is a 16-state Finite State Machine. The TMS input value at the rising edge of TCK determines the status transition direction on the TAP controller. The TMS is fixed high when the boundary scan function is not used. The protocol is based on JTAG standard (IEEE Std.1149.1). This pin has a pull-up resistor. TCK Input Test Clock A clock signal for the boundary scan function. When the boundary scan function is used, input a clock of 50% duty to this pin. This pin has a pull-up resistor. TDI Input Test Data Input A data input signal for the boundary scan function. Data input from the TDI is latched at the rising edge of TCK. TDI is fixed high when the boundary scan function is not used. This pin has a pull-up resistor. TDO Output Test Data Output A data output signal for the boundary scan function. Data output from the TDO changes at the falling edge of TCK. The output driver of the TDO is driven only when it is necessary only in Shift-IR or Shift-DR states, and is brought to the highimpedance state when not necessary. TRST Input Test Reset Asynchronously resets the TAP controller when TRST is brought low. The user must apply power-on reset signal specific to the boundary scan function when the power is supplied (For details on signal design, see section 14.5, Usage Notes). This pin has a pull-up resistor. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 473 of 846 H8S/2215 Group Section 14 Boundary Scan Function 14.3 Register Descriptions The boundary scan function has the following registers. These registers cannot be accessed by the CPU. • Instruction register (INSTR) • IDCODE register (IDCODE) • BYPASS register (BYPASS) • Boundary scan register (BSCANR) 14.3.1 Instruction Register (INSTR) INSTR is a 3-bit register. At initialization, this register is specified to IDCODE mode. When TRST is pulled low, or when the TAP controller is in the Test-Logic-Reset state, INSTR is initialized. INSTR can be written by the serial data input from the TDI. If more than three bits of instruction is input from the TDI, INSTR stores the last three bits of serial data. If a command reserved in INSTR is used, the correct operation cannot be guaranteed. Bit Bit Name Initial Value R/W Description 2 TI2 1 — Test Instruction Bits 1 TI1 0 — Instruction configuration is shown in table 14.2. 0 TI0 1 — Table 14.2 Instruction configuration Bit 2 Bit1 Bit 0 TI2 TI1 TI0 Instruction 0 0 0 EXTEST 0 0 1 SAMPLE/PRELOAD 0 1 0 CLAMP 0 1 1 HIGHZ 1 0 0 Reserved 1 0 1 IDCODE 1 1 0 Reserved 1 1 1 BYPASS Page 474 of 846 (initial value) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 14 Boundary Scan Function EXTEST: The EXTEST instruction is used to test external circuits when this LSI is installed on the print circuit board. If this instruction is executed, output pins are used to output test data (specified by the SAMPLE/PRELOAD instruction) from the boundary scan register to the print circuit board, and input pins are used to input test results. SAMPLE/PRELOAD: The SAMPLE/PRELOAD instruction is used to input data from the LSI internal circuits to the boundary scan register, output data from scan path, and reload the data to the scan path. While this instruction is executed, input signals are directly input to the LSI and output signals are also directly output to the external circuits. The LSI system circuit is not affected by this instruction. In SAMPLE operation, the boundary scan register latches the snap shot of data transferred from input pins to internal circuit or data transferred from internal circuit to output pins. The latched data is read from the scan path. The scan register latches the snap data at the rising edge of the TCK in Capture-DR state. The scan register latches snap shot without affecting the LSI normal operation. In PRELOAD operation, initial value is written from the scan path to the parallel output latch of the boundary scan register prior to the EXTEST instruction execution. If the EXTEST is executed without executing this RELOAD operation, undefined values are output from the beginning to the end (transfer to the output latch) of the EXTEST sequence. (In EXTEST instruction, output parallel latches are always output to the output pins.) CLAMP: When the CLAMP instruction is selected output pins output the boundary scan register value which was specified by the SAMPLE/PRELOAD instruction in advance. While the CLAMP instruction is selected, the status of boundary scan register is maintained regardless of the TAP controller state. BYPASS is connected between TDI and TDO, the same operation as BYPASS instruction can be achieved. HIGHZ: When the HIGHZ instruction is selected, all outputs enter high-impedance state. While this instruction is selected, the status of boundary scan register is maintained regardless of the TAP controller state. BYPASS resistor is connected between TDI and TDO, the same operation as BYPASS instruction can be achieved. IDCODE : When the IDCODE instruction is selected, IDCODE register value is output to the TDO in Shift-DR state of TAP controller. In this case, IDCODE register value is output from the LSB. During this instruction execution, test circuit does not affect the system circuit. INSTR is initialized by the IDCODE instruction in Test-Logic-Reset state of TAP controller. BYPASS: The BYPASS instruction is a standard instruction necessary to operate bypass register. The BYPASS instruction improves the serial data transfer speed by bypassing the scan path. During this instruction execution, test circuit does not affect the system circuit. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 475 of 846 H8S/2215 Group Section 14 Boundary Scan Function 14.3.2 IDCODE Register (IDCODE) IDCODE is a 32-bit register. If INSTR is set to IDCODE mode, IDCODE is connected between TDI and TDO. The HD64F2215 and H8S/2215U output fixed code H'0002200F, HD6432215B output fixed code H'001B200F, HD6432215C output fixed code H'001C200F, HD64F2215R, HD64F2215RU and HD64F2215CU output fixed code H'08030447, and HD64F2215T and HD64F2215TU output fixed code H'08031447, respectively, from the TDO. Serial data cannot be written to IDCODE through TDI. Table 14.3 shows the IDCODE configuration. Table 14.3 IDCODE Register Configuration Bits 31 to 28 27 to 12 11 to 1 0 HD64F2215 code 0000 0000 0000 0010 0010 0000 0000 111 1 HD6432215B code 0000 0000 0001 1011 0010 0000 0000 111 1 HD6432215C code 0000 0000 0001 1100 0010 0000 0000 111 1 HD64F2215R code 0000 1000 0000 0011 0000 0100 0100 011 1 HD64F2215RU and HD64F2215CU code 0000 1000 0000 0011 0000 0100 0100 011 1 HD64F2215T and HD64F2215TU code 0000 1000 0000 0011 0001 0100 0100 011 1 Contents Version (4 bits) Part No. (16 bits) Product No. (11 bits) Fixed code (1 bit) HD64F2215U code 14.3.3 BYPASS Register (BYPASS) BYPASS is a 1-bit register. If INSTR is specified to BYPASS mode, CLAMP mode, or HIGHZ mode, BYPASS is connected between TDI and TDO. Page 476 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 14.3.4 Section 14 Boundary Scan Function Boundary Scan Register (BSCANR) BSCAN is a 217-bit shift register assigned on the pins to control input/output pins. The I/O pins consists of three bits (IN, Control, OUT), input pins 1 bit (IN), and output pins 1 bit (OUT) of shift registers. The boundary scan test based on the JTAG standard can be performed by using instructions listed in table 14.2. Table 14.4 shows the correspondence between the LSI pins and boundary scan registers. (In table 14.4, Control indicates the high active pin. By specifying Control to high, the pin is driven by OUT.) Figure 14.2 shows the boundary scan register configuration example. TDI pin IN Control OUT I/O pin TDO pin Figure 14.2 Boundary Scan Register Configuration REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 477 of 846 H8S/2215 Group Section 14 Boundary Scan Function Table 14.4 Correspondence between LSI Pins and Boundary Scan Register TFP-120, TFP-120V Pin No. BP-112, BP-112V Pin No. Pin Name 111 A4 PE0/D0 I/O Bit Name IN 216 Control 215 OUT 214 IN 213 From TDI 113 115 116 117 118 119 120 2 3 Page 478 of 846 D5 B4 A3 C4 B3 A2 C3 B2 B1 PE1/D1 PE2/D2 PE3/D3 PE4/D4 PE5/D5 PE6/D6 PE7/D7 PD0/D8 PD1/D9 Control 212 OUT 211 IN 210 Control 209 OUT 208 IN 207 Control 206 OUT 205 IN 204 Control 203 OUT 202 IN 201 Control 200 OUT 199 IN 198 Control 197 OUT 196 IN 195 Control 194 OUT 193 IN 192 Control 191 OUT 190 IN 189 Control 188 OUT 187 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 14 Boundary Scan Function TFP-120, TFP-120V Pin No. BP-112, BP-112V Pin No. Pin Name I/O Bit Name 4 D4 PD2/D10 IN 186 Control 185 5 6 7 8 9 11 13 14 15 16 C2 C1 D3 D2 D1 E3 E2 F3 F1 F2 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 PD3/D11 PD4/D12 PD5/D13 PD6/D14 PD7/D15 PC0/A0 PC1/A1 PC2/A2 PC3/A3 PC4/A4 OUT 184 IN 183 Control 182 OUT 181 IN 180 Control 179 OUT 178 IN 177 Control 176 OUT 175 IN 174 Control 173 OUT 172 IN 171 Control 170 OUT 169 IN 168 Control 167 OUT 166 IN 165 Control 164 OUT 163 IN 162 Control 161 OUT 160 IN 159 Control 158 OUT 157 IN 156 Control 155 OUT 154 Page 479 of 846 H8S/2215 Group Section 14 Boundary Scan Function TFP-120, TFP-120V Pin No. BP-112, BP-112V Pin No. Pin Name I/O Bit Name 17 F4 PC5/A5 IN 153 Control 152 18 19 20 21 23 25 26 27 28 29 Page 480 of 846 G1 G2 G3 H1 G4 H2 J1 H3 J2 K1 PC6/A6 PC7/A7 PB0/A8 PB1/A9 PB2/A10 PB3/A11 PB4/A12 PB5/A13 PB6/A14 PB7/A15 OUT 151 IN 150 Control 149 OUT 148 IN 147 Control 146 OUT 145 IN 144 Control 143 OUT 142 IN 141 Control 140 OUT 139 IN 138 Control 137 OUT 136 IN 135 Control 134 OUT 133 IN 132 Control 131 OUT 130 IN 129 Control 128 OUT 127 IN 126 Control 125 OUT 124 IN 123 Control 122 OUT 121 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 14 Boundary Scan Function TFP-120, TFP-120V Pin No. BP-112, BP-112V Pin No. Pin Name I/O Bit Name 30 J3 PA0/A16 IN 120 Control 119 31 32 33 35 36 37 38 39 40 41 K2 L2 H4 K3 L3 J4 K4 L4 H5 J5 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 PA1/A17/TxD2 PA2/A18/RxD2 PA3/A19/SCK2/SUSPND P10/TIOCA0/A20/VM P11/TIOCB0/A21/VP P12/TIOCC0/TCLKA/A22/RCV P13/TIOCD0/TCLKB/A23/VPO P14/TIOCA1/IRQ0 P15/TIOCB1/TCLKC/FSE0 P16/TIOCA2/IRQ1 OUT 118 IN 117 Control 116 OUT 115 IN 114 Control 113 OUT 112 IN 111 Control 110 OUT 109 IN 108 Control 107 OUT 106 IN 105 Control 104 OUT 103 IN 102 Control 101 OUT 100 IN 99 Control 98 OUT 97 IN 96 Control 95 OUT 94 IN 93 Control 92 OUT 91 IN 90 Control 89 OUT 88 Page 481 of 846 H8S/2215 Group Section 14 Boundary Scan Function TFP-120, TFP-120V Pin No. BP-112, BP-112V Pin No. Pin Name I/O Bit Name 42 L5 P17/TIOCB2/TCLKD/OE IN 87 Control 86 OUT 85 53 H7 USPND OUT 84 55 K8 VBUS IN 83 56 L9 UBPM IN 82 67 H9 MD0 IN 81 68 H10 MD1 IN 80 69 H11 FWE IN 79 70 G8 NMI IN 78 71 G9 STBY IN 77 72 G11 RES IN 76 77 F8 MD2 IN 75 78 E11 PF7/φ IN 74 Control 73 OUT 72 IN 71 Control 70 OUT 69 IN 68 Control 67 79 80 81 83 85 Page 482 of 846 E10 E9 D11 E8 D10 PF6/AS PF5/RD PF4/HWR PF3/LWR/ADTRG/IRQ3 PF2/WAIT OUT 66 IN 65 Control 64 OUT 63 IN 62 Control 61 OUT 60 IN 59 Control 58 OUT 57 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 14 Boundary Scan Function TFP-120, TFP-120V Pin No. BP-112, BP-112V Pin No. Pin Name I/O Bit Name 86 C11 PF1/BACK IN 56 Control 55 87 88 89 90 91 92 93 94 96 97 D9 C10 B11 C9 B10 A10 D8 B9 A9 C8 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 PF0/BREQ/IRQ2 P30/TxD0 P31/RxD0 P32/SCK0/IRQ4 P33/TxD1 P34/RxD1 P35/SCK1/IRQ5 P36 P74/MRES P73/TMO1/CS7 OUT 54 IN 53 Control 52 OUT 51 IN 50 Control 49 OUT 48 IN 47 Control 46 OUT 45 IN 44 Control 43 OUT 42 IN 41 Control 40 OUT 39 IN 38 Control 37 OUT 36 IN 35 Control 34 OUT 33 IN 32 Control 31 OUT 30 IN 29 Control 28 OUT 27 IN 26 Control 25 OUT 24 Page 483 of 846 H8S/2215 Group Section 14 Boundary Scan Function TFP-120, TFP-120V Pin No. BP-112, BP-112V Pin No. Pin Name I/O Bit Name 98 B8 P72/TMO0/CS6 IN 23 Control 22 OUT 21 IN 20 Control 19 99 100 101 102 103 104 105 A8 D7 C7 A7 B7 C6 A6 P71/CS5 P70/TMRI01/TMCI01/CS4 PG0 PG1/CS3/IRQ7 PG2/CS2 PG3/CS1 PG4/CS0 OUT 18 IN 17 Control 16 OUT 15 IN 14 Control 13 OUT 12 IN 11 Control 10 OUT 9 IN 8 Control 7 OUT 6 IN 5 Control 4 OUT 3 IN 2 Control 1 OUT 0 to TDO Page 484 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 14 Boundary Scan Function 14.4 Boundary Scan Function Operation 14.4.1 TAP Controller Figure 14.3 shows the TAP controller status transition diagram, based on the JTAG standard. Test-Logic-Reset 0 1 Run-Test/Idle 1 Select-DR 0 1 0 0 1 Select-IR 0 1 Capture-DR 0 Shift-DR 1 Exit1-DR 1 Update-DR 0 1 Capture-IR 0 1 Shift-IR 1 0 Exit1-IR 1 Pause-DR 0 1 0 1 Exit2-DR 0 1 Update-IR 0 Pause-IR 0 1 1 0 Exit2-IR 0 Figure 14.3 TAP Controller Status Transition Note: The transition condition is the TMS value at the rising edge of TCK. The TDI value is sampled at the rising edge of the TCK and shifted at the falling edge of the TCK. The TDO value changes at the falling edge of the TCK. In addition, TDO is high-impedance state in a state other than Shift-DR or Shift-IR state. If TRST is 0, Test-Logic-Reset state is entered asynchronously with the TCK. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 485 of 846 H8S/2215 Group Section 14 Boundary Scan Function 14.5 Usage Notes 1. When using the boundary scan function, clear TRST to 0 at power-on and after the tRESW time has elapsed set TRST to 1 and set TCK, TMS, and TDI appropriately. During normal operation when the boundary scan function is not used, set TCK, TMS, and TDI to Hi-Z, clear TRST to 0 at power-on, and after the tRESW time has elapsed set TRST to 1 or to Hi-Z. These pins are pulled up internally, so care must be taken in standby mode because breakthrough current flow can occur if there is a potential difference between the pin input voltage value when set to 1 and the power supply voltage Vcc. 2. The following must be noted on the power-on reset signal applied to the TRST pin. • Reset signal must be applied at power-on. • TRST must be separated in order not to affect the system operation. • TRST must be separated from the system circuitry in order not to affect the system operation. • System circuitry must also be separated from the TRST in order not to affect TRST operation as shown in figure 14.4. Board edge pin LSI System reset RES Power-on reset circuit TRST TRST Figure 14.4 Recommended Reset Signal Design 3. TCK clock speed should be slower than system clock frequency. 4. In serial communication, data is input or output from the LSB as shown in figure 14.5. TDI Bit n Boundary scan register Bit n - 1 Bit 1 Bit 0 TDO Figure 14.5 Serial Data Input/Output Page 486 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 14 Boundary Scan Function 5. If a pin with pull-up function is SAMPLEed with pull-up function enabled, the corresponding IN register is set to 1. In this case, the corresponding Control register must be cleared to 0. 6. If a pin with open-drain function is SAMPLEed while its open-drain function is enabled and while the corresponding OUT register is set to 1, the corresponding Control register is cleared to 0 (the pin status is Hi-Z). If the pin is SAMPLEed while the corresponding OUT register is cleared to 0, the corresponding Control register is set to 1 (the pin status is 0). 7. If EXTEST, CLAMP, or HIGHZ state is entered, this LSI enters guarded mode such as hardware standby mode (RES = STBY = 0). Before entering normal operating mode from EXTEST, CLAMP, or HIGHZ state, specify RES, STBY, FWE, and MD2 to MD0 pin to the designated mode. 8. When using the boundary scan function, leave the EMLE pin open. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 487 of 846 Section 14 Boundary Scan Function Page 488 of 846 H8S/2215 Group REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) Section 15 Universal Serial Bus Interface (USB) This LSI incorporates a USB function module complying with USB standard version 1.1. Figure 15.1 shows the block diagram of the USB. 15.1 Features • USB standard version 2.0 full speed mode (12 Mbps) support • Bus-powered mode or self-powered mode is selectable via the USB specific pin (UBPM) • On-chip 48-MHz clock generator and PLL circuit (16 MHz × 3 = 48 MHz, 24 MHz* × 2 = 48 MHz) Note: * Available only in H8S/2215R, H8S/2215T and H8S/2215C. • On-chip bus transceiver • Standard commands are processed automatically by hardware ⎯ Only Set_Descriptor, Get_Descriptor, Class/VendorCommand, and SynchFrame commands should be processed by software • Configuration value, InterfaceNumber value, and AlternateSetting value can be checked by Set_Configuration and Set_Interface interrupts • Four transfer mode supported (Control, Interrupt, Bulk, Isochronous) • Endpoint configuration selectable Maximum of 9 endpoints can be specified (including endpoint 0) The size of the FIFO buffer used by each endpoint can be specified via firmware The FIFO buffer for bulk transfer and isochronous transfer has a double-buffer configuration Total 1288-byte FIFO —EP0s fixed: Control_setup FIFO, 8 bytes —EP0i fixed: Control_in FIFO, 64 bytes —EP0o fixed: Control_out FIFO, 64 bytes —EPn selectable: Interrupt_in FIFO, variable 0 to 64 bytes —EPn selectable: Bulk_in FIFO, 64 bytes × 2 (double-buffer configuration) —EPn selectable: Bulk_out FIFO, 64 bytes × 2 (double-buffer configuration) —EPn selectable: Isochronous_in FIFO, variable 0 to 128 bytes × 2 (double-buffer configuration) —EPn selectable: Isochronous_out FIFO, variable 0 to 128 bytes × 2 (double-buffer configuration) —EPn selectable: Bulk_in FIFO, 64 bytes × 2 (double-buffer configuration) —EPn selectable: Bulk_out FIFO, 64 bytes × 2 (double-buffer configuration) —EPn selectable: Interrupt_in FIFO, variable 0 to 64 bytes REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 489 of 846 IFUSB30A_010020020100 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) • Maximum Configuration, InterfaceNumber, and AlternateSetting configuration specifications of this LSI H8S/2215: EP0 Configuration 1 ----- InterfaceNumber 0 to 2 ----- AlternateSetting 0 to 7 ----- EP1 to EP8 H8S/2215R, H8S/2215T and H8S/2215C: EP0 Configuration 1 ----- InterfaceNumber 0 to 3 ----- AlternateSetting 0 to 7 ----- EP1 to EP8 • Start of frame (SOF) marker function ⎯ SOF interrupt occurs every 1 ms even though broken SOF received by error • 23 kinds of interrupts (H8S/2215) 25 kinds of interrupts (H8S/2215R, H8S/2215T and H8S/2215C) ⎯ Suspend/resume interrupt source can be assigned for IRQ6 ⎯ Each interrupt source can be assigned for EXIRQ0 or EXIRQ1 via registers • DMA transfer interface ⎯ Two DMA requests are selectable from four Bulk transfer requests • 8-bit bus (3 cycle bus access timing) connected to the external bus interface ⎯ Internal registers are addressed to a part of area 6 of external address (H'C00000 to H'DFFFFF) ⎯ The area of H'C00100 to H'DFFFFF is reserved for USB and should not be accessed Page 490 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) USB [Power mode selection] 1288-byte FIFO EP0s EP2i EP4i EP0i EP2o EP4o EP0o EP3i EP5i EP1i EP3o UBPM [Connection/disconnection] VBUS [Suspend] USPND [Interrupt request signal] [Power supply] IRQ6 DrVcc EXIRQ0, EXIRQ1 [DMA internal request signal] DREQ0, DREQ1 DrVss Registers [Internal bus] Peripheral data bus Peripheral address bus Internal transceiver Interface [Data] USD+ USD- Rs Rs D+ D- Peripheral bus control signal UDC synchronization circuit (12 MHz) [System clock] φ (16 MHz or 24 MHz*) [USB operating clock] EXTAL48 XTAL48 Legend: UDC: EP0s: EP0i to 5i: EP0o to 4o: PLL circuit (×3) (×2)* (48 MHz) UDC core USB clock generator (48 MHz) [External transceiver connection] RCV VP VM VPO FSE0 OE SUSPEND USB Device Controller Endpoint 0 setup FIFO Endpoint 0 to 5 In FIFO Endpoint 0 to 4 Out FIFO Note: * Available only in H8S/2215R, H8S/2215T and H8S/2215C. Figure 15.1 Block Diagram of USB REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 491 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.2 Input/Output Pins Table 15.1 shows the USB pin configuration. Table 15.1 Pin Configuration Pin Name I/O Function USD+ I/O I/O pin for USB data DrVCC Input USB internal transceiver power supply pin DrVSS Input USB internal transceiver ground pin VBUS Input USB cable connection/disconnection detection signal pin UBPM Input USD- USB bus-power/self-power mode selection pin When USB is used in bus-power mode, UBPM must be fixed low. When USB is used in self-power mode, UBPM must be fixed high. XTAL48, EXTAL48 Input USB operating clock input pin 48-MHz clock for USB communication is input. When the internal PLL is used, EXTAL48 and XTAL48 must be fixed low and open, respectively. USPND Output USB suspend output pin Set to high level when the system enter the suspend state. RCV Input External transceiver connection signals VP Input Signals used to connect with the transceiver (ISP1104) VM Input manufactured by NXP. VPO Output FSE0 Output OE Output SUSPND Output Page 492 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 15.3 Section 15 Universal Serial Bus Interface (USB) Register Descriptions The USB has the following registers for each channel. • USB endpoint information register 00_0 to 22_4 (UEPIR00_0 to UEPIR22_4) • USB control register (UCTLR) • USB DMAC transfer request register (UDMAR)* • USB device resume register (UDRR) • USB trigger register 0 (UTRG0)* • USB trigger register 1 (UTRG1)* • USB FIFO clear register 0 (UFCLR0)* • USB FIFO clear register 1 (UFCLR1)* • USB endpoint stall register 0 (UESTL0)* • USB endpoint stall register 1 (UESTL1)* • USB endpoint data register 0s (UEDR0s) [for Setup data reception] • USB endpoint data register 0i (UEDR0i) [for Control_in data transmission] • USB endpoint data register 0o (UEDR0o) [for Control_out data reception] • USB endpoint data register 1i (UEDR1i)* [for Interrupt_in data transmission] • USB endpoint data register 2i (UEDR2i)* [for Bulk_in data transmission] • USB endpoint data register 2o (UEDR2o)* [for Bulk_out data reception] • USB endpoint data register 3i (UEDR3i)* [for Isochronous_in data transmission] • USB endpoint data register 3o (UEDR3o)* [for Isochronous_out data reception] • USB endpoint data register 4i (UEDR4i)* [for Bulk_in data transmission] • USB endpoint data register 4o (UEDR4o)* [for Bulk_out data reception] • USB endpoint data register 5i (UEDR5i)* [for Interrupt_in data transmission] • USB endpoint receive data size register 0o (UESZ0o) [for Control _out data reception] • USB endpoint receive data size register 2o (UESZ2o)* [for Bulk_out data reception] • USB endpoint receive data size register 3o (UESZ3o)* [for Isochronous_out data reception] • USB endpoint receive data size register 4o (UESZ4o)* [for Bulk _out data reception] • USB interrupt flag register 0 (UIFR0)* • USB interrupt flag register 1 (UIFR1)* • USB interrupt flag register 2 (UIFR2)* • USB interrupt flag register 3 (UIFR3) • USB interrupt enable register 0 (UIER0)* • USB interrupt enable register 1 (UIER1)* • USB interrupt enable register 2 (UIER2)* REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 493 of 846 Section 15 Universal Serial Bus Interface (USB) H8S/2215 Group • USB interrupt enable register 3 (UIER3) • USB interrupt selection register 0 (UISR0)* • USB interrupt selection register 1 (UISR1)* • USB interrupt selection register 2 (UISR2)* • USB interrupt selection register 3 (UISR3) • USB data status register (UDSR)* • USB configuration value register (UCVR) • USB time stamp register H, L (UTSRH, L) • USB test register 0 (UTSTR0) • USB test register 1 (UTSTR1) • USB test register 2 (UTSTR2) • USB test register A (UTSTRA) • USB test register B (UTSTRB) • USB test register C (UTSTRC) • USB test register D (UTSTRD) • USB test register E (UTSTRE) • USB test register F (UTSTRF) • Module stop control register B (MSTPCRB) Note: * Indicates the register name or bit name when each endpoint formation is specified based on the Bluetooth standard. Register names and bit names must be modified according to the endpoint configuration selected. For details, refer to section 15.7, Endpoint Configuration Example. The area of H'C00100 to H'DFFFFF is reserved for USB and should not be accessed. Page 494 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 15.3.1 Section 15 Universal Serial Bus Interface (USB) USB Endpoint Information Registers 00_0 to 22_4 (UEPIR00_0 to UEPIR22_4) UEPIR is used to set 23 kinds of endpoint (EPINFO data). EPINFO data for each endpoint consists of 40 bits (five bytes). 115 bytes of endpoint data for all UEPIR00_0 to UEPIR22_4 registers must be written after the UDC interface software reset has been cancelled (the UIFST bit of the UCTLR register is cleared to 0). The endpoint data is automatically loaded and stored in the buffers in the UDC core after the UDC core software reset has been cancelled (the UDCRST bit of the UCTLR register is cleared to 0). For details on EPINFO data setting procedure, refer to section 15.5, Communication Operation. The USB module in this LSI is designed to automatically load EPINFO data after UDC software reset. Accordingly, EPINFO data must be specified correctly. Otherwise, USB communication cannot be performed correctly. EPINFO data written to UEPIR is maintained in the register. This EPINFO data is automatically re-loaded after each UDC core reset. Accordingly, EPINFO data need to be written only once. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 495 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) • UEPIRnn_0 Bit Bit Name Initial Value R/W Description 7 to 4 D39 to D36 — R/W Endpoint number (4-bit configuration, settable values: 0 to 8) 0000: Control transfer (EP0) 0001 to 1000: Other than Control transfer (EP1 to EP8) There are restrictions on settable endpoint numbers according to the Interface number and Alternate number to which the endpoint belongs. Restriction 1: Set different endpoint numbers under one Alternate. However, there is no problem with use of the same endpoint number if the transfer directions (IN/OUT) are different. (Ex: Alt0 -- EP1, EP2i, EP2o) Restriction 2: Do not set the same endpoint number under different Interface numbers. (Ex: Int0 -- Alt0 -- EP1, EP2, Int1 -- Alt0 -- EP3) 3 D35 — R/W 2 D34 — R/W Configuration number to which endpoint belongs (2-bit configuration, settable values: 0, 1) 00: Control transfer 01: Other than Control transfer 1 D33 — R/W H8S/2215 0 D32 — R/W Interface number to which endpoint belongs (2-bit configuration, settable values: 0 to 2) 00: Control transfer 00 to 10: Other than Control transfer H8S/2215R, H8S/2215T and H8S/2215C Interface number to which endpoint belongs (2-bit configuration, settable values: 0 to 3) 00: Control transfer 00 to 11: Other than Control transfer Page 496 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) • UEPIRnn_1 Bit Bit Name Initial Value R/W Description 7 to 5 D31 to D29 — R/W Alternate number to which endpoint belongs (3-bit configuration, settable values: 0 to 7) 000: Control transfer 000 to 111: Other than Control transfer 4 D28 — R/W Endpoint transfer type (2-bit configuration) 3 D27 — R/W 00: Control (UEPIR00) 01: Isochronous (UEPIR04 to UEPIR19) 10: Bulk (UEPIR02, UEPIR03, UEPIR20, UEPIR21) 11: Interrupt (UEPIR01, UEPIR22) 2 D26 — R/W Endpoint transfer direction (1-bit configuration) 0: out (UEPIR00, 03, 05, 07, 09, 11, 13, 15, 17, 19, 21) 1: in (UEPIR01, 02, 04, 06, 08, 10, 12, 14, 16, 18, 20, 22) 1 D25 — R/W 0 D24 — R/W Endpoint maximum packet size (D25 to D16 10-bit configuration) Control transfer = 64 only (UEPIR00) Interrupt transfer = 0 to 64 (UEPIR01, UEPIR22) Bulk transfer = 0 or 64 (UEPIR02, UEPIR03, UEPIR20, UEPIR21) Isochronous transfer = 0 to 128 (UEPIR04 to UEPIR19) • UEPIRnn_2 Bit Bit Name Initial Value R/W Description 7 to 0 D23 to D16 — R/W Endpoint maximum packet size (D25 to D16 10-bit configuration) Control transfer = 64 only (UEPIR00) Interrupt transfer = 0 to 64 (UEPIR01, UEPIR22) Bulk transfer = 0 or 64 (UEPIR02, UEPIR03, UEPIR20, UEPIR21) Isochronous transfer = 0 to 128 (UEPIR04 to UEPIR19) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 497 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) • UEPIRnn_3 Bit Bit Name Initial Value R/W Description 7 to 0 D15 to D8 — R/W Endpoint internal address (D15 to D0 16-bit configuration) Set UEPIR00_3, UEPIR00_4 = H'0000 Set UEPIR01_3, UEPIR01_4 = H'0001 : Set UEPIR21_3, UEPIR21_4 = H'0015 Set UEPIR22_3, UEPIR22_4 = H'0016 • UEPIRnn_4 Bit Bit Name Initial Value R/W Description 7 to 0 D7 to D0 — R/W Endpoint internal address (D15 to D0 16-bit configuration) Set UEPIR00_3, UEPIR00_4 = H'0000 Set UEPIR01_3, UEPIR01_4 = H'0001 : Set UEPIR21_3, UEPIR21_4 = H'0015 Set UEPIR22_3, UEPIR22_4 = H'0016 This manual assumes that endpoint information (EPINFO data) is configured based on the Bluetooth standard shown in figure 15.2. If endpoint data is configured in a configuration other than that shown in figure 15.2, care must be taken for the correspondence between endpoint number, Configuration/Interface/Alternate number and maximum packet size, and register name and bit name. For details, refer to section 15.7, Endpoint Configuration Example. Endpoint data configured based on the Bluetooth standard can be specified as shown in table 15.2. Endpoint data shown in table 15.2 includes unused endpoints (EP4i, EP4o, and EP5i). To load all EPINFO data items from UEPIR00_0 to UEPIR22_4 correctly, unused end pints must also be dummy written as shown in table 15.2. In addition, to prevent unused endpoints from being accessed from the host, descriptor information for the unused endpoints must not be returned in the enumeration phase at connection. This correctly informs the host of usable endpoint information and enables access control for unused endpoints. If descriptor information for the unused endpoints is returned to the host, the USB cannot operate correctly when the host accesses the unused endpoint. Page 498 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) Note that endpoint data information must match the corresponding descriptor information to be returned to the host . Otherwise, the USB cannot operate correctly. For example, if the descriptor information is returned as 16 bytes while the maximum packet size of the EPINFO data is eight bytes, the host attempts to access the EPINFO data in 16 byte units and cannot operate correctly. Configuration 1 InterfaceNumber 0 AlternateSetting 0 InterfaceNumber 1 AlternateSetting 0 AlternateSetting 1 AlternateSetting 2 AlternateSetting 3 AlternateSetting 4 AlternateSetting 5 AlternateSetting 6 AlternateSetting 7 InterfaceNumber 2 AlternateSetting 0 EP0 Control(in,out) 64 bytes EP1i Interrupt(in) 16 bytes EP2i Bulk(in) 64 bytes EP2o Bulk(out) 64 bytes EP3i Isoch(in) 0 bytes EP3o Isoch(out) 0 bytes EP3i Isoch(in) 9 bytes EP3o Isoch(out) 9 bytes EP3i Isoch(in) 17 bytes EP3o Isoch(out) 17 bytes EP3i Isoch(in) 25 bytes EP3o Isoch(out) 25 bytes EP3i Isoch(in) 33 bytes EP3o Isoch(out) 33 bytes EP3i Isoch(in) 49 bytes EP3o Isoch(out) 49 bytes EP3i Isoch(in) 0 bytes (Unused) EP3o Isoch(out) 0 bytes (Unused) EP3i Isoch(in) 0 bytes (Unused) EP3o Isoch(out) 0 bytes (Unused) EP4i Bulk(in) 0 bytes (Unused) EP4o Bulk(out) 0 bytes (Unused) EP5i Interrupt(in) 0 bytes (Unused) Figure 15.2 Example of Endpoint Configuration based on Bluetooth Standard Table 15.2 shows the example of EPINFO data setting for endpoint configuration based on the Bluetooth standard. The USB module of this LSI is optimized by the hardware specific to the transfer type. Accordingly, endpoints cannot be configured completely freely. Endpoints can be modified within the restrictions (only data within parentheses [ ] ) in table 15.2. Data other than that within parentheses [ ] must be specified according to table 15.2. For details on other endpoint configuration, refer to section 15.7, Endpoint Configuration Example. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 499 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) Table 15.2 EPINFO Data Settings EPINFO Data Settings Based on Bluetooth Standard Register No. Name Address Corresponding UEPIRn_0 to Transfer Mode*1 UEPIRn_4 Settings*2 UEPI UEPI UEPI UEPI UEPI Rn_0 Rn_1 Rn_2 Rn_3 Rn_3 1 UEPIR00_0 to H'C00000 to Specific to Control transfer UEPIR00_4 H'C0004 B'0000_00_00_000_00_0_ 0001000000_0000000000000000 H'00 H'00 H'40 H'00 H'00 2 UEPIR01_0 to H'C00005 to Specific to UEPIR01_4 H'C0009 Interrupt in transfer B’[0001]_01_[00]_[000]_11_1_ [0000010000]_0000000000000001*3 H'14 H'1C H'10 H'00 H'01 3 UEPIR02_0 to H'C0000A to Specific to Bulk in B’[0010]_01_[00]_[000]_10_1_ UEPIR02_4 H'C000E transfer [0001000000]_0000000000000010*4 H'24 H'14 H'40 H'00 H'02 4 UEPIR03_0 to H'C0000F to Specific to Bulk UEPIR03_4 H'C0013 out transfer B’[0010]_01_[00]_[000]_10_0 [0001000000]_0000000000000011*4 H'24 H'10 H'40 H'00 H'03 5 UEPIR04_0 to H'C00014 to Specific to Isoch B’[0011]_01_[01]_[000]_01_1_ UEPIR04_4 H'C0018 in transfer [0000000000]_0000000000000100*5 H'35 H'0C H'00 H'00 H'04 6 UEPIR05_0 to H'C00019 to Specific to Isoch B’[0011]_01_[01]_[000]_01_0_ UEPIR05_4 H'C001D out transfer [0000000000]_0000000000000101*5 H'35 H'08 H'00 H'00 H'05 7 UEPIR06_0 to H'C0001E to Specific to Isoch B’[0011]_01_[01]_[001]_01_1_ UEPIR06_4 H'C0022 in transfer [0000001001]_0000000000000110*5 H'35 H'2C H'09 H'00 H'06 8 UEPIR07_0 to H'C00023 to Specific to Isoch B’[0011]_01_[01]_[001]_01_0_ UEPIR07_4 H'C0027 out transfer [0000001001]_0000000000000111*5 H'35 H'28 H'09 H'00 H'07 9 UEPIR08_0 to H'C00028 to Specific to Isoch B’[0011]_01_[01]_[010]_01_1_ UEPIR08_4 H'C002C in transfer [0000010001]_0000000000001000*5 H'35 H'4C H'11 H'00 H'08 10 UEPIR09_0 to H'C0002D to Specific to Isoch B’[0011]_01_[01]_[010]_01_0_ UEPIR09_4 H'C0031 out transfer [0000010001]_0000000000001001*5 H'35 H'48 H'11 H'00 H'09 11 UEPIR10_0 to H'C00032 to Specific to Isoch B’[0011]_01_[01]_[011]_01_1_ UEPIR10_4 H'C0036 in transfer [0000011001]_0000000000001010*5 H'35 H'6C H'19 H'00 H'0A 12 UEPIR11_0 to H'C00037 to Specific to Isoch B’[0011]_01_[01]_[011]_01_0_ UEPIR11_4 H'C003B out transfer [0000011001]_0000000000001011*5 H'35 H'68 H'19 H'00 H'0B 13 UEPIR12_0 to H'C0003C to Specific to Isoch B’[0011]_01_[01]_[100]_01_1_ UEPIR12_4 H'C0040 in transfer [0000100001]_0000000000001100*5 H'35 H'8C H'21 H'00 H'0C 14 UEPIR13_0 to H'C00041 to Specific to Isoch B’[0011]_01_[01]_[100]_01_0_ UEPIR13_4 H'C0045 out transfer [0000100001]_0000000000001101*5 H'35 H'88 H'21 H'00 H'0D 15 UEPIR14_0 to H'C00046 to Specific to Isoch B’[0011]_01_[01]_[101]_01_1_ UEPIR14_4 H'C004A in transfer [0000110001]_0000000000001110*5 H'35 H'AC H'31 H'00 H'0E 16 UEPIR15_0 to H'C0004B to Specific to Isoch B’[0011]_01_[01]_[101]_01_0_ UEPIR15_4 H'C004F out transfer [0000110001]_0000000000001111*5 H'35 H'A8 H'31 H'00 H'0F 17 UEPIR16_0 to H'C00050 to Specific to Isoch B’[0011]_01_[01]_[110]_01_1_ H'35 UEPIR16_4 H'C0054 in transfer [0000000000]_0000000000010000*5*6 H'CC H'00 H'00 H'10 Page 500 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) EPINFO Data Settings Based on Bluetooth Standard Register No. Name Address Corresponding UEPIRn_0 to Transfer Mode*1 UEPIRn_4 Settings*2 UEPI UEPI UEPI UEPI UEPI Rn_0 Rn_1 Rn_2 Rn_3 Rn_3 18 UEPIR17_0 to H'C00055 to Specific to Isoch B'[0011]_01_[01]_[110]_01_0_ H'35 UEPIR17_4 H'C0059 out transfer [0000000000]_0000000000010001*5*6 H'C8 H'00 H'00 H'11 19 UEPIR18_0 to H'C0005A to Specific to Isoch B'[0011]_01_[01]_[111]_01_1_ H'35 UEPIR18_4 H'C005E in transfer [0000000000]_0000000000010010*5*6 H'EC H'00 H'00 H'12 20 UEPIR19_0 to H'C0005F to Specific to Isoch B'[0011]_01_[01]_[111]_01_0_ H'35 UEPIR19_4 H'C0063 out transfer [0000000000]_0000000000010011*5*6 H'E8 H'00 H'00 H'13 21 UEPIR20_0 to H'C00064 to Specific to Bulk in B'[0100]_01_[10]_[000]_10_1_ H'46 UEPIR20_4 H'C0068 transfer [0000000000]_0000000000010100*4*6 H'14 H'00 H'00 H'14 22 UEPIR21_0 to H'C00069 to Specific to Bulk UEPIR21_4 H'C006D out transfer B'[0100]_01_[10]_[000]_10_0_ H'46 [0000000000]_0000000000010101*4*6 H'10 H'00 H'00 H'15 23 UEPIR22_0 to H'C0006E to Specific to UEPIR22_4 H'C0072 Interrupt in transfer B'[0101]_01_[10]_[000]_11_1_ H'56 [0000000000]_0000000000010110*3*6 H'1C H'00 H'00 H'16 Notes: 1. Each endpoint is optimized by the hardware specific for the transfer mode. The transfer mode shown in table 15.2 must be specified. (D28 and D27 for all EPINFO data items must e specified as shown in table 15.2.) 2. Data indicated within parentheses [ ] can be modified. Data other than that within parentheses [ ] must be specified as shown in table 15.2. 3. Maximum packet size of Interrupt transfer must be from 0 to 64. 4. Maximum packet size of Bulk transfer must be 64 when used or 0 when unused. 5. Maximum packet size of Isochronous transfer must be from 0 to 128. 6. Maximum packet size of endpoint must be 0 when unused. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 501 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.2 USB Control Register (UCTLR) UCTLR is used to select USB data input/output pin and USB operating clock, specify SOF marker function, and controls the USB module reset. UCTLR can be read from or written to even in USB module stop mode. For details on UCTLR setting procedure, refer to section 15.5, Communication Operation. Bit Bit Name Initial Value R/W Description 7 FADSEL 0 I/O Analog or Digital Selection R/W Selects USB function data I/O pins 0: USD+ and USD- are used as data I/O pins 1: Control I/O ports 1 and A compatible with Philips Corp. transceiver are connected to data I/O pins. P17 (output) → OE: Output enable P15 (output) → FSE0: SE0 setting P13 (output) → VPO: Data+ output P12 (input) ← PCV: Differential input P11 (input) ← VP: Data+ input P10 (input) ← VM: Data– input PA3 (output) → SUSPND: Suspend enable Ports 1 and A are prioritized to address outputs. Accordingly, before setting FADSEL to 1, disable A23 to A19 output via PFCR. In addition, FADSEL must be set during USB module stop mode. 6 SFME 0 R/W Start Of Frame (SOF) Marker Function Enable Controls the SOF marker function. If SFME is set to 1, the SOF interrupt flag can be set to 1 every 1ms even if the SOF packet has been broken. Note, however, that UTSR stores a time stamp when the correct SOF packet is received. The USB does not support UTSR automatic update function when the SOF packet is broken. To set SFME the first time, SFME must be set after SOF flag detection. SFME must be cleared to 0 when the suspension is detected. To set SFME after resume detection, SFME must also be set after SOF flag detection. 0: Disables the SOF marker function 1: Enables the SOF marker function Page 502 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) Bit Bit Name Initial Value R/W Description 5 UCKS3 0 R/W USB Operating Clock Selection 3 to 0 4 UCKS2 0 R/W 3 UCKS1 0 R/W 2 UCKS0 0 R/W Select the USB operating clock (48 MHz). When UCKS0 to UCKS3 are 0000, both the 48-MHz oscillator and internal PLL circuit stop and USB operating clock must be selected according to the clock source. The internal PLL circuit and 48-MHz oscillator start operating after USB module stop mode has been cancelled. In addition, the USB operating clock is supplied to the UDC core after 48-MHz clock stabilization time has been passed. The USB clock stabilization wait time completion can be detected by the CK48READY flag of UIFR3. UCKS0 to UCKS3 muse be written during USB module stop mode. 0000: USB operating clock stops (Both 48-MHz oscillator and PLL stop) 0001: Reserved 0010 (H8S/2215): Reserved 0010 (H8S/2215R, H8S/2215T and H8S/2215C): Uses a clock (48 MHz) generated by doubling the 24MHz system clock by the PLL circuit. The 48MHz oscillator stops. The USB operating clock stabilization time is 2 ms. 0011: Uses a clock (48 MHz) generated by tripling the 16-MHz external clock (EXTAL pin input) by the PLL circuit. 0100: Reserved 0101: Reserved 0110 (H8S/2215): Reserved 0110 (H8S/2215R, H8S/2215T and H8S/2215C): Uses a clock (48 MHz) generated by doubling the 24MHz system clock by the PLL circuit. The 48MHz oscillator stops. The USB operating clock stabilization time is 8 ms. 0111: Uses a clock (48 MHz) generated by tripling the 16-MHz crystal oscillator (system clock pulse generator) by the PLL circuit. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 503 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) Bit Bit Name Initial Value R/W Description 5 UCKS3 0 R/W 4 UCKS2 0 R/W 3 UCKS1 0 R/W 1000: Uses a clock supplied by the 48-MHz external clock (EXTAL48 pin input) directly. The PLL stops. The USB operating clock stabilization time is 246 to 200 μs. 2 UCKS0 0 R/W 1001 (H8S/2215): Reserved 1001 (H8S/2215R, H8S/2215T and H8S/2215C): Uses the clock supplied by the 48-MHz external clock (EXTAL48 pin input) directly. The PLL stops. The USB operating clock stabilization time is 300 to 200 µs (when using a 16-MHz to 24-MHz system clock). 1010: Reserved 1011: Reserved 1100: Uses the USB operating clock (48 MHz) directly. The PLL stops. The USB operating clock stabilization time is 9.9 to 8 ms. 1101 (H8S/2215): Reserved 1101 (H8S/2215R, H8S/2215T and H8S/2215C): Uses the USB operating clock (48 MHz) directly. The PLL stops. The USB operating clock stabilization time is 12 to 8 ms (when using a 16-MHz to 24-MHz system clock). 1110: Reserved 1111: Reserved Note that the USB operating clock stabilization time differs according to the selected clock source and is automatically counted by the system clock. The USB operating clock stabilization time shown above is for the case when the 13- to 24- MHz system clock is used. Page 504 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) Bit Bit Name Initial Value R/W Description 1 UIFRST 1 USB Interface Software Reset R/W Controls USB module internal reset. When the UIFRST bit is set to 1, the USB internal modules other than UCTLR, UIER3, and the CK48 READY bit of UIFR3 are all reset. At initialization, the UIFRST bit must be cleared to 0 after the USB operating clock stabilization time has passed following USB module stop mode cancellation. 0: Sets the USB internal modules to the operating state (at initialization, this bit must be cleared after the USB operating clock stabilization time has passed). 1: Sets the USB internal modules other than UCTLR, UIER3, and the CK48 READY bit of UIFR3 reset state. If after being cleared to 0 the UIFIRST bit is again set to 1, the UDCRST bit must also be set to 1 at the same time. 0 UDCRST 1 R/W UDC Core Software Reset Controls reset of the UDC core in the USB module. When the UDCRST bit is set to 1, the UDC core is reset and USB bus synchronization operation stops. At initialization, UDCRST must be cleared to 0 after D+ pull-up following UIFRST clearing to 0. In the suspend state, to maintain the internal state of the UDC core, enter software standby mode after setting USB module stop mode with the UDCRST bit to be maintained. After VBUS disconnection detection, UDCRST must be set to 1. 0: Sets the UDC core in the USB module to operating state (at initialization, UDCRST must be cleared after D+ pull-up following UIFRST clearing to 0). 1: Sets the UDC core in the USB module to reset state (in the suspend state, UDCRST must not be set to 1; after VBUS disconnection detection, UDCRST must be set to 1). REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 505 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.3 USB DMAC Transfer Request Register (UDMAR) UDMAR is set when data transfer by means of a USB request of the on-chip DMAC is performed for data registers UEDR2i, UEDR2o, UEDR4i, and UEDR4o corresponding to EP2i, EP2o, EP4i, and EP4o used for Bulk transfer, respectively. DMAC transfer request sources specified in UDMAR must be two or less. If two DMAC transfer request sources are specified, a source must use DREQ0 and another source must use DREQ1. If three or more DMAC transfer requests are specified or if DREQ0 and DREQ1 usage overlaps, the USB cannot operate correctly. For details on DMAC transfer, refer to section 15.6, DMA Transfer Specifications. Note: As the DREQ signal is not used in the data transfer by auto request of the on-chip DMAC, set UDMAR to H'00. Bit Bit Name Initial Value R/W Description 7 EP4oT1 0 R/W EP4o DMAC Transfer Request Selection 1, 0 6 EP4oT0 0 R/W 00: Does not request EP4o DMAC transfer 01: Reserved 10: Requests EP4o DMAC transfer by DREQ0 11: Requests EP4o DMAC transfer by DREQ1 5 EP4iT1 0 R/W EP4i DMAC Transfer Request Selection 1, 0 4 EP4iT0 0 R/W 00: Does not request EP4i DMAC transfer 01: Reserved 10: Requests EP4i DMAC transfer by DREQ0 11: Requests EP4i DMAC transfer by DREQ1 3 EP2oT1 0 R/W EP2o DMAC Transfer Request Selection 1, 0 2 EP2oT0 0 R/W 00: Does not request EP2o DMAC transfer 01: Reserved 10: Requests EP2o DMAC transfer by DREQ0 11: Requests EP2o DMAC transfer by DREQ1 1 EP2iT1 0 R/W EP2i DMAC Transfer Request Selection 1, 0 0 EP2iT0 0 R/W 00: Does not request EP2i DMAC transfer 01: Reserved 10: Requests EP2i DMAC transfer by DREQ0 11: Requests EP2i DMAC transfer by DREQ1 Page 506 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 15.3.4 Section 15 Universal Serial Bus Interface (USB) USB Device Resume Register (UDRR) UDRR indicates remote wakeup according to the host enable/disable state and enables or disables remote wakeup of the USB modules in the suspend state. Bit Bit Name 7 to 2 — Initial Value R/W All 0 R Description Reserved These bits are always read as 0 and cannot be modified. 1 RWUPs 0 R Remote Wakeup Status Indicates the enabled or disabled state of remote wakeup by the host. This bit is a status bit and cannot be written to. If the remote wakeup from the host is disabled by Device_Remote_Wakeup through the Set_Feature/Clear_Feature request, this bit is cleared to 0. If the remote wakeup is enabled, this bit is set to 1. 0: Remote wakeup disabled state 1: Remote wakeup enabled state 0 DVR 0 W Device Resume Cancels suspend state (remote wakeup execution). This bit can be written to 1 and is always read as 0. Before executing remote wakeup, software standby mode or USB module stop mode must be cancelled to provide a clock for the USB module. 0: Performs no operation 1: Cancels suspend state (executes remote wakeup) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 507 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.5 USB Trigger Register 0 (UTRG0) UTRG0 generates one-shot triggers to the FIFO for each endpoint EP0 to EP2. For information on accessing this register, see 2.9.4, Accessing Registers Containing Write-Only Bits. Bit Bit Name Initial Value R/W 7, 6 — All 0 R Description Reserved These bits are always read as 0 and cannot be modified. 5 EP2oRDFN 0 W EP2o Read Completion 0: Performs no operation 1: Writes 1 to this bit after reading data for EP2o OUT FIFO. EP2o FIFO has a dual FIFO configuration. This trigger is generated to the currently effective FIFO. 4 EP2iPKTE 0 W EP2i Packet Enable 0: Performs no operation 1: Generates a trigger to enable data transfer to the EP2i IN FIFO. EP2i FIFO has a dual FIFO configuration. This trigger is generated for the currently effective FIFO. 3 EP1iPKTE 0 W EP1i Packet Enable 0: Performs no operation 1: Generates a trigger to enable data transfer to the EP1i IN FIFO. 2 EP0oRDFN 0 W EP0o Read Completion 0: Performs no operation 1: Writes 1 to this bit after reading data for EP0o OUT FIFO. This trigger enables the next packet to be received. 1 EP0iPKTE 0 W EP0i Packet Enable 0: Performs no operation 1: Generates a trigger to enable data transfer to the EP0i IN FIFO. Page 508 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) Bit Bit Name Initial Value R/W 0 EP0sRDFN 0 W Description EP0s Read Completion 0: Performs no operation. A NAK handshake is returned in response to transmit/receive requests from the host in the data stage until 1 is written to this bit. 1: Writes 1 to this bit after reading data for EP0s OUT FIFO. After receiving the setup command, this trigger enables the next packet to be received by the EP0i and EP0o in the data stage. EP0s can always be overwritten and receive data regardless of this trigger. Note: As triggers to EP3i and EP3o for Isochronous transfer are automatically generated each time the SOF packet is received from the host, the user need not generate triggers to EP3i and EP3o. Accordingly, data write to UEDR3i and data read from UEDR3o must be completed before the next packet has been received. 15.3.6 USB Trigger Register 1 (UTRG1) UTRG1 generates one-shot triggers to the FIFO for each endpoint EP4 and EP5. For information on accessing this register, see 2.9.4, Accessing Registers Containing Write-Only Bits. Bit Bit Name Initial Value R/W 7 to 3 — All 0 2 EP5iPKTE 0 W EP5i Packet Enable 0: Performs no operation 1: Generates a trigger to enable data transfer to the EP5i IN FIFO. 1 EP4oRDFN 0 W EP4o Read Completion R Description Reserved These bits are always read as 0 and cannot be modified. 0: Performs no operation 1: Writes 1 to this bit after reading data for EP4o OUT FIFO. EP4o FIFO has a dual FIFO configuration. This trigger is generated to the currently effective FIFO. 0 EP4iPKTE 0 W EP4i Packet Enable 0: Performs no operation 1: Generates a trigger to enable data transfer to the EP4i IN FIFO. EP4i FIFO has a dual FIFO configuration. This trigger is generated for the currently effective FIFO. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 509 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.7 USBFIFO Clear Register 0 (UFCLR0) UFCLR0 is a one-shot register used to clear the FIFO for each end point from EP0 to EP3. Writing 1 to a bit clears the data in the corresponding FIFO. For IN FIFO, writing 1 to a bit in UFCLR0 clears the data for which the corresponding PKTE bit in UTRG0 is cleared to 0 after data write, or data that is validated by setting the corresponding PKTE bit in UTRG0. For OUT FIFO, writing 1 to a bit in UFCLR0 clears data that has not been fixed during reception or received data for which the corresponding RDFN bit is not set to 1. Accordingly, care must be taken not to clear data that is currently being received or transmitted. EP2i, EP2o, EP3i, and EP3o FIFOs, having a dual FIFO configuration, are cleared by entire FIFOs. Note that this trigger does not clear the corresponding interrupt flag. For information on accessing this register, see 2.9.4, Accessing Registers Containing Write-Only Bits. Bit Bit Name Initial Value R/W Description 7 EP3oCLR 0 EP3o clear W 0: Performs no operation 1: Clears EP3o OUT FIFO 6 EP3iCLR 0 W EP3i clear 0: Performs no operation 1: Clears EP3i IN FIFO 5 EP2oCLR 0 W EP2o clear* 0: Performs no operation 1: Clears EP2o OUT FIFO 4 EP2iCLR 0 W EP2i clear 0: Performs no operation 1: Clears EP2i IN FIFO 3 EP1iCLR 0 W EP1i clear 0: Performs no operation 1: Clears EP1i IN FIFO 2 EP0oCLR 0 W EP0o clear 0: Performs no operation 1: Clears EP0o OUT FIFO 1 EP0iCLR 0 W EP0i clear 0: Performs no operation 1: Clears EP0i IN FIFO 0 — 0 R Reserved This bit is always read as 0 and cannot be modified. Page 510 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Note: When DMA transfers are enabled (EP2oT1 bit set to 1 and EP2oT0 bit set to 0 or 1 in the UDMAR register), the data in the FIFO is cannot be cleared by writing 1 to EP2oCLR. To clear the data in the FIFO, first disable DMA transfers (clear the EP2oT1 and EP2oT0 bits in the UDMAR register to 0) and then write 1 to EP2oCLR. * 15.3.8 Section 15 Universal Serial Bus Interface (USB) USBFIFO Clear Register 1 (UFCLR1) UFCLR1 is a one-shot register used to clear the FIFO for each endpoint from EP4 to EP5. Writing 1 to a bit clears the data in the corresponding FIFO. For IN FIFO, writing 1 to a bit in UFCLR1 clears the data for which the corresponding PKTE bit in UTRG1 is cleared to 0 after data write, or data that is validated by setting the corresponding PKTE bit in UTRG1. For OUT FIFO, writing 1 to a bit in UFCLR1 clears data that has not been fixed during reception or received data for which the corresponding read completion bit is not set to 1. Accordingly, care must be taken not to clear data that is currently being received or transmitted. EP4i and EP4o FIFOs, having a dual FIFO configuration, are cleared by entire FIFOs. Note that this trigger does not clear the corresponding interrupt flag. For information on accessing this register, see 2.9.4, Accessing Registers Containing Write-Only Bits. Bit Bit Name 7 to 3 — Initial Value R/W Description All 0 Reserved R These bits are always read as 0 and cannot be modified. 2 EP5iCLR 0 W EP5i clear 0: Performs no operation 1: Clears EP5i IN FIFO 1 EP4oCLR 0 W EP4o clear* 0: Performs no operation 1: Clears EP4o OUT FIFO 0 EP4iCLR 0 W EP4i clear 0: Performs no operation 1: Clears EP4i IN FIFO Note: * When DMA transfers are enabled (EP4oT1 bit set to 1 and EP4oT0 bit set to 0 or 1 in the UDMAR register), the data in the FIFO is cannot be cleared by writing 1 to EP4oCLR. To clear the data in the FIFO, first disable DMA transfers (clear the EP4oT1 and EP4oT0 bits in the UDMAR register to 0) and then write 1 to EP4oCLR. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 511 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.9 USB Endpoint Stall Register 0 (UESTL0) UESTL0 is used to forcibly stall the endpoints for EP0 to EP3. While the bit is set to 1, the corresponding endpoint returns a stall handshake to the host. However, note that EP3 (Isochronous transfer) does not return a stall handshake. The stall bit for endpoint 0 (EP0STL) is cleared automatically on reception of 8-bit command data for which decoding is performed by the function. When the SetupTS flag in UIFR0 is set, a write of 1 to the EP0STL bit is ignored. For details, refer to section 15.5.11, Stall Operations. Bit Bit Name Initial Value R/W Description 7 EP3oSTL 0 EP3o stall R/W 0: Cancels the EP3o stall state 1: Places the EP3o stall state 6 EP3iSTL 0 R/W EP3i stall 0: Cancels the EP3i stall state 1: Places the EP3i stall state When the EP3i is placed in the stall state, a 0-length packet is returned for the first IN token. For the following IN token, nothing is returned. 5 EP2oSTL 0 R/W EP2o stall 0: Cancels the EP2o stall state 1: Places the EP2o stall state 4 EP2iSTL 0 R/W EP2i stall 0: Cancels the EP2i stall state 1: Places the EP2i stall state 3 EP1iSTL 0 R/W EP1i stall 0: Cancels the EP1i stall state 1: Places the EP1i stall state 2 ,1 — All 0 R Reserved These bits are always read as 0 and cannot be modified. 0 EP0STL 0 R/W EP0 stall 0: Cancels the EP0 stall state 1: Places the EP0 stall state Page 512 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.10 USB Endpoint Stall Register 1 (UESTL1) UESTL1 is used to forcibly stall the endpoints for EP4 and EP5. In addition, UESTL1 can cancel all endpoint stall states. While the bit is set to 1, the corresponding endpoint returns a stall handshake to the host. For details, refer to section 15.5.11, Stall Operations. Bit Bit Name Initial Value R/W Description 7 SCME 0 Reserved R/W The write value should always be 0. 6 to 3 — All 0 R Reserved These bits are always read as 0 and cannot be modified. 2 EP5iSTL 0 R/W EP5i stall 0: Cancels the EP5i stall state 1: Places the EP5i stall state 1 EP4oSTL 0 R/W EP4o stall 0: Cancels the EP4o stall state 1: Places the EP4o stall state 0 EP4iSTL 0 R/W EP4i stall 0: Cancels the EP4i stall state 1: Places the EP4i stall state 15.3.11 USB Endpoint Data Register 0s (UEDR0s) UEDR0s stores the setup command for endpoint 0s (for Control_out transfer). UEDR0s stores 8byte command data sent from the host in setup stage. For details on USB operation when the data for the next setup stage is received while data in UEDR0s is being read, refer to section 15.9, Usage Notes. UEDR0s is a byte register to which 4-byte address area is assigned. Accordingly, UEDR0s allows the user to read 2-byte or 4-byte data by word transfer or longword transfer. Bit Bit Name 7 to 0 D7 to D0 Initial Value R/W Description — These bits store setup command for Control_out transfer REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 R Page 513 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.12 USB Endpoint Data Register 0i (UEDR0i) UEDR0i is a data register for endpoint 0i (for Control_in transfer). UEDR0i stores data to be sent to the host. The number of data items to be written continuously must be the maximum packet size or less. UEDR0i is a byte register to which 4-byte address area is assigned. Accordingly, UEDR0i allows the user to write 2-byte or 4-byte data by word transfer or longword transfer. For information on accessing this register, see 2.9.4, Accessing Registers Containing Write-Only Bits. Bit Bit Name 7 to 0 D7 to D0 Initial Value R/W Description All 0 These bits store data for Control_in transfer W 15.3.13 USB Endpoint Data Register 0o (UEDR0o) UEDR0o is a data register for endpoint 0o (for Control_out transfer). UEDR0o stores data received from the host. The number of data items to be read must be specified by UESZ0o. When 1 byte is read from UEDR0o, UESZ0o is decremented by 1. UEDR0o is a 1-byte register to which a 4-byte address area is assigned. Accordingly, UEDR0o allows the user to read 2-byte or 4-byte data by word transfer or longword transfer. Bit Bit Name 7 to 0 D7 to D0 Initial Value R/W Description — These bits store data for Control_out transfer R 15.3.14 USB Endpoint Data Register 1i (UEDR1i) UEDR1i is a data register for endpoint 1i (for Interrupt_in transfer). UEDR1i stores data to be sent to the host. The number of data items to be written continuously must be the maximum packet size or less. UEDR1i is a byte register to which 4-byte address area is assigned. Accordingly, UEDR1i allows the user to write 2-byte or 4-byte data by word transfer or longword transfer. For information on accessing this register, see 2.9.4, Accessing Registers Containing Write-Only Bits. Bit Bit Name 7 to 0 D7 to D0 Page 514 of 846 Initial Value R/W Description All 0 These bits store data for Interrupt_in transfer W REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.15 USB Endpoint Data Register 2i (UEDR2i) UEDR2i is a data register for endpoint 2i (for Bulk_in transfer). UEDR2i stores data to be sent to the host. The number of data items to be written continuously must be the maximum packet size or less. UEDR2i is a byte register to which 4-byte address area is assigned. Accordingly, UEDR2i allows the user to write 2-byte or 4-byte data by word transfer or longword transfer. For information on accessing this register, see 2.9.4, Accessing Registers Containing Write-Only Bits. Bit Bit Name 7 to 0 D7 to D0 Initial Value R/W Description All 0 These bits store data for Bulk_in transfer W 15.3.16 USB Endpoint Data Register 2o (UEDR2o) UEDR2o is a data register for endpoint 2o (for Bulk_out transfer). UEDR2o stores data received from the host. The number of data items to be read must be specified by UESZ2o. When 1 byte is read from UEDR2o, UESZ2o is decremented by 1. UEDR2o is a byte register to which 4-byte address area is assigned. Accordingly, UEDR2o allows the user to read 2-byte or 4-byte data by word transfer or longword transfer. Bit Bit Name 7 to 0 D7 to D0 Initial Value R/W Description — These bits store data for Bulk_out transfer R 15.3.17 USB Endpoint Data Register 3i (UEDR3i) UEDR3i is a data register for endpoint 3i (for Isochronous_in transfer). UEDR3i stores data to be sent to the host. The number of data items to be written continuously must be the maximum packet size or less. All data items must be written to before the next SOF packet is received. UEDR3i is a byte register to which 4-byte address area is assigned. Accordingly, UEDR3i allows the user to write 2-byte or 4-byte data by word transfer or longword transfer. For information on accessing this register, see 2.9.4, Accessing Registers Containing Write-Only Bits. Bit Bit Name 7 to 0 D7 to D0 Initial Value R/W Description All 0 These bits store data for Isochronous_in transfer REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 W Page 515 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.18 USB Endpoint Data Register 3o (UEDR3o) UEDR3o is a data register for endpoint 3o (for Isochronous_out transfer). UEDR3o stores data received from the host. The number of data items to be read must be specified by UESZ3o. When 1 byte is read from UEDR3o, UESZ3o is decremented by 1. All data items must be read before the next SOF packet is received. UEDR3o is a byte register to which 4-byte address area is assigned. Accordingly, UEDR3o allows the user to read 2-byte or 4-byte data by word transfer or longword transfer. Bit Bit Name 7 to 0 D7 to D0 Initial Value R/W Description — These bits store data for Isochronous_out transfer R 15.3.19 USB Endpoint Data Register 4i (UEDR4i) UEDR4i is a data register for endpoint 4i (for Bulk_in transfer). UEDR4i stores data to be sent to the host. The number of data items to be written continuously must be the maximum packet size or less. UEDR4i is a byte register to which 4-byte address area is assigned. Accordingly, UEDR4i allows the user to write 2-byte or 4-byte data by word transfer or longword transfer. For information on accessing this register, see 2.9.4, Accessing Registers Containing Write-Only Bits. Bit Bit Name 7 to 0 D7 to D0 Initial Value R/W Description All 0 These bits store data for Bulk_in transfer W 15.3.20 USB Endpoint Data Register 4o (UEDR4o) UEDR4o is a data register for endpoint 4o (for Bulk_out transfer). UEDR4o stores data received from the host. The number of data items to be read must be specified by UESZ4o. When 1 byte is read from UEDR4o, UESZ4o is decremented by 1. UEDR4o is a byte register to which 4-byte address area is assigned. Accordingly, UEDR4o allows the user to read 2-byte or 4-byte data by word transfer or longword transfer. Bit Bit Name 7 to 0 D7 to D0 Page 516 of 846 Initial Value R/W Description — These bits store data for Bulk_out transfer R REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.21 USB Endpoint Data Register 5i (UEDR5i) UEDR5i is a data register for endpoint 5i (for Interrupt_in transfer). UEDR5i stores data to be sent to the host. The number of data items to be written continuously must be the maximum packet size or less. UEDR5i is a byte register to which 4-byte address area is assigned. Accordingly, UEDR5i allows the user to write 2-byte or 4-byte data by word transfer or longword transfer. For information on accessing this register, see 2.9.4, Accessing Registers Containing Write-Only Bits. Bit Bit Name 7 to 0 D7 to D0 Initial Value R/W Description All 0 These bits store data for Interrupt_in transfer W 15.3.22 USB Endpoint Receive Data Size Register 0o (UESZ0o) UESZ0o is the receive data size register for endpoint 0o (for Control_out transfer). UESZ0o indicates the number of bytes of data to be received from the host. Note that UESZ0o is decremented by 1 every time when 1 byte is read from UEDR0o. Bit Bit Name Initial Value R/W Description 7 — — R Reserved 6 to 0 D6 to D0 — R These bits indicate the size of data to be received in Control_out transfer 15.3.23 USB Endpoint Receive Data Size Register 2o (UESZ2o) UESZ2o is the receive data size register for endpoint 2o (for Bulk_out transfer). UESZ2o indicates the number of bytes of data to be received from the host. Note that UESZ2o is decremented by 1 every time when 1 byte is read from UEDR2o. The FIFO for endpoint 2o (for Bulk_out transfer) has a dual-FIFO configuration. The data size indicated by this register refers to the currently selected FIFO. Bit Bit Name Initial Value R/W Description 7 — — R Reserved 6 to 0 D6 to D0 — R These bits indicate the size of data to be received in Bulk_out transfer REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 517 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.24 USB Endpoint Receive Data Size Register 3o (UESZ3o) UESZ3o is the receive data size register for endpoint 3o (for Isochronous_out transfer). UESZ3o indicates the number of bytes of data to be received from the host. Note that UESZ3o is decremented by 1 every time when 1 byte is read from UEDR3o. The FIFO for endpoint 3o (for Isochronous_out transfer) has a dual-FIFO configuration. The data size indicated by this register refers to the currently selected FIFO. Bit Bit Name 7 to 0 D7 to D0 Initial Value R/W Description — These bits indicate the size of data to be received in Isochronous_out transfer R 15.3.25 USB Endpoint Receive Data Size Register 4o (UESZ4o) UESZ4o is the receive data size register for endpoint 4o (for Bulk_out transfer). UESZ4o indicates the number of bytes of data to be received from the host. Note that UESZ4o is decremented by 1 every time when 1 byte is read from UEDR4o. The FIFO for endpoint 4o (for Bulk_out transfer) has a dual-FIFO configuration. The data size indicated by this register refers to the currently selected FIFO. Bit Bit Name Initial Value R/W Description 7 — — R Reserved 6 to 0 D6 toD0 — R These bits indicate the size of data to be received in Bulk_out transfer 15.3.26 USB Interrupt Flag Register 0 (UIFR0) UIFR0 is an interrupt flag register indicating the setup command reception, EP0 and EP1 transmission/reception, and bus reset states. If the corresponding bit is set to 1, the corresponding EXIRQ0 or EXIRQ1 interrupt is requested to the CPU. A bit in this register can be cleared by writing 0 to it. Writing 1 to a bit is invalid and causes no operation. Consequently, to clear only a specific flag it is necessary to write 0 to the bit corresponding to the flag to be cleared and 1 to all the other bits. (To clear bit 5 only, write H'DF.) The bit-clear instruction is a read/modify/write instruction. There is a danger that the wrong bits may be cleared if a new flag is set between the read and write. Therefore, the bit-clear instruction should not be used to clear bits in this interrupt flag register. Page 518 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) Bit Bit Name Initial Value R/W 7 BRST 0 Description R/(W)* Bus Reset Set to 1 when the bus reset signal is detected on the USB bus. The corresponding interrupt output is EXIRQ0 or EXIRQ1. Note that BRST is also set to 1if D+ is not pulled-up during USB cable connection. 6 5 — EP1iTR 0 R Reserved 0 This bit is always read as 0 and cannot be modified. * R/(W) EP1i Transfer Request Set to 1 if there is no valid transmit data in the FIFO when an IN token is sent from the host to EP1i. The corresponding interrupt output is EXIRQ0 or EXIRQ1. 4 EP1iTS 0 R/(W)* EP1i Transfer Complete Set to 1 if the transmit data written in EP1i is transferred to the host normally and the ACK handshake is returned. The corresponding interrupt output is EXIRQ0 or EXIRQ1. 3 EP0oTS 0 R/(W)* EP0o Receive Complete Set to 1 if the EP0o receives data from the host normally and returns the ACK handshake to the host. The corresponding interrupt output is EXIRQ0 or EXIRQ1. 2 EP0iTR 0 R/(W)* EP0i Transmit Request Set to 1 if there is no valid transmit data in the FIFO when an IN token is sent from the host to EP0i. The corresponding interrupt output is EXIRQ0 or EXIRQ1. 1 EP0iTS 0 R/(W)* EP0i Transmit Complete Set to 1 if the transmit data written in EP0i is transferred to the host normally and the ACK handshake is returned. The corresponding interrupt output is EXIRQ0 or EXIRQ1. 0 SetupTS 0 R/(W)* Setup Command Receive Complete Set to 1 if the EP0s normally receives 8-byte data to be decoded by the function from the host and returns the ACK handshake to the host. The corresponding interrupt output is EXIRQ0 or EXIRQ1. Note: * The write value should always be 0 to clear this flag. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 519 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.27 USB Interrupt Flag Register 1 (UIFR1) (Only in H8S/2215) UIFR1 is an interrupt flag register indicating the EP2i, EP2o, EP3i, and EP3o. If the corresponding bit is set to 1, the corresponding EXIRQ0 or EXIRQ1 interrupt is requested from the CPU. EP2iTR and EP3iTR flags can cleared by writing 0 to them. Writing 1 to them is invalid and causes no operation. However, EP2iEMPTY, EP2oREDY, EP3oTS and EP3oTF are status bits, and cannot be cleared. Bit Bit Name Initial Value R/W Description 7 EP3oTF 0 EP3o Abnormal Receive R Indicates the status of EP3o FIFO, which can be read after the next SOF packet has been received following the data transmission from the host. This flag is set to 1 if a PID error, CRC error, bit staff error, data size error, or Bad EOP occurs when the data is transferred from the host to the EP3o. This is a status bit and cannot be cleared. In addition, an interrupt cannot be requested by this flag. 6 EP3oTS 0 R EP3o Normal Receive Indicates the status of EP3o FIFO, which can be read after the next SOF packet has been received following the data transmission from the host. This flag is set to 1 if data is normally transferred from the host to the EP3o. This is a status bit and cannot be cleared. In addition, an interrupt cannot be requested by this flag. 5 EP3iTF 0 R/(W)* EP3i Abnormal Transfer Set to 1 if data to be written to the EP3i FIFO is lost because no IN token has been returned. This flag is set when the SOF packet that is two packets after the data write is received. The corresponding interrupt output is EXIRQ0 or EXIRQ1. 4 EP3iTR 0 R/(W)* EP3i Transmit Request Set to 1 if there is no valid transmit data in the FIFO to be accessed by the UDC when an IN token is sent from the host to EP3i. The corresponding interrupt output is EXIRQ0 or EXIRQ1. Page 520 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) Bit Bit Name Initial Value R/W Description 3 — 0 Reserved R This bit is always read as 0 and cannot be modified. 2 EP2oREADY 0 R EP2o Data Ready EP2o FIFO has a dual-FIFO configuration. This flag is set if there is a valid data in at least one EP2o FIFO. This flag is cleared to 0 if there is no valid data in EP2o FIFO. This flag is a status flag and cannot be cleared. The corresponding interrupt output is EXIRQ0 or EXIRQ1. 1 EP2iTR 0 R/(W)* EP2i Transmit Request Set to 1 if the EP2i FIFO is empty when an IN token is sent from the host to EP2i. The corresponding interrupt output is EXIRQ0 or EXIRQ1. 0 EP2iEMPTY 1 R EP2i FIFO Empty EP2i FIFO has a dual-FIFO configuration. This flag is set if at least one EP2i FIFO is empty. This flag is cleared to 0 if EP2i FIFO is full. This flag is a status flag and cannot be cleared. The corresponding interrupt output is EXIRQ0 or EXIRQ1. Note: * The write value should always be 0 to clear this flag. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 521 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.28 USB Interrupt Flag Register 1 (UIFR1) (Only in H8S/2215R, H8S/2215T and H8S/2215C) UIFR1 is an interrupt flag register indicating the EP2i, EP2o, EP3i, and EP3o. If the corresponding bit is set to 1, the corresponding EXIRQ0 or EXIRQ1 interrupt is requested from the CPU. EP2iTR and EP3iTR flags can cleared by writing 0 to them. Writing 1 to them is invalid and causes no operation. Consequently, to clear only a specific flag it is necessary to write 0 to the bit corresponding to the flag to be cleared and 1 to all the other bits. (To clear bit 5 only, write H'DF.) The bit-clear instruction is a read/modify/write instruction. There is a danger that the wrong bits may be cleared if a new flag is set between the read and write. Therefore, the bit-clear instruction should not be used to clear bits in this interrupt flag register. However, EP2iEMPTY, EP2oREDY, EP3oTS and EP3oTF are status bits, and cannot be cleared. Bit Bit Name Initial Value R/W Description 7 EP3oTF 0 EP3o Abnormal Receive R Indicates the status of EP3o FIFO, which can be read after the next SOF packet has been received following the data transmission from the host. This flag is set to 1 if a PID error, CRC error, bit staff error, data size error, or Bad EOP occurs when the data is transferred from the host to the EP3o. This is a status bit and cannot be cleared. In addition, an interrupt cannot be requested by this flag. 6 EP3oTS 0 R EP3o Normal Receive Indicates the status of EP3o FIFO, which can be read after the next SOF packet has been received following the data transmission from the host. This flag is set to 1 if data is normally transferred from the host to the EP3o. This is a status bit and cannot be cleared. In addition, an interrupt cannot be requested by this flag. 5 EP3iTF 0 R/(W)* EP3i Abnormal Transfer Set to 1 if data to be written to the EP3i FIFO is lost because no IN token has been returned. This flag is set when the SOF packet that is two packets after the data write is received. The corresponding interrupt output is EXIRQ0 or EXIRQ1. 4 EP3iTR 0 R/(W)* EP3i Transmit Request Set to 1 if there is no valid transmit data in the FIFO to be accessed by the UDC when an IN token is sent from the host to EP3i. The corresponding interrupt output is EXIRQ0 or EXIRQ1. Page 522 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) Bit Bit Name Initial Value R/W Description 3 EP2iALL 1 EP2i FIFO All Empty Status R EMPTYS 2 EP2i FIFO has a dual FIFO configuration. This flag is set to 1 if both FIFOs are empty. (Corresponds to a UDSR/EP2iDE negative-polarity signal.) EP2oREADY 0 R EP2o Data Ready EP2o FIFO has a dual-FIFO configuration. This flag is set if there is a valid data in at least one EP2o FIFO. This flag is cleared to 0 if there is no valid data in EP2o FIFO. This flag is a status flag and cannot be cleared. The corresponding interrupt output is EXIRQ0 or EXIRQ1. 1 EP2iTR 0 R/(W)* EP2i Transmit Request Set to 1 if the EP2i FIFO is empty when an IN token is sent from the host to EP2i. The corresponding interrupt output is EXIRQ0 or EXIRQ1. 0 EP2iEMPTY 1 R EP2i FIFO Empty EP2i FIFO has a dual-FIFO configuration. This flag is set if at least one EP2i FIFO is empty. This flag is cleared to 0 if EP2i FIFO is full. This flag is a status flag and cannot be cleared. The corresponding interrupt output is EXIRQ0 or EXIRQ1. Note: * The write value should always be 0 to clear this flag. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 523 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.29 USB Interrupt Flag Register 2 (UIFR2) (Only in H8S/2215) UIFR2 is an interrupt flag register indicating the state of EP4i, EP4o, and EP5i. If the corresponding bit is set to 1, the corresponding EXIRQ0 or EXIRQ1 interrupt is requested to the CPU. EP4iTR EP5iTS and EP4iTR flags can cleared by writing 0 to them. Writing 1 to them is invalid and causes no operation. However, EP4iEMPTY and EP4oREADY are status bits indicating the EP4i and EP4o FIFO status, and cannot be cleared. Bit Bit Name Initial Value R/W Description 7, 6 — All 0 Reserved R These bits are always read as 0 and cannot be modified. 5 EP5iTR 0 R/(W)* EP5i Transfer Request Set to 1 if there is no valid transmit data in the FIFO when an IN token is sent from the host to EP5i. The corresponding interrupt output is EXIRQ0 or EXIRQ1. 4 EP5iTS 0 R/(W)* EP5i Transfer Complete Set to 1 if the transmit data written in EP5i is transferred to the host normally and the ACK handshake is returned. The corresponding interrupt output is EXIRQ0 or EXIRQ1. 3 — 0 R Reserved This bit is always read as 0 and cannot be modified. 2 EP4oREADY 0 R EP4o Data Ready EP4o FIFO has a dual-FIFO configuration. This flag is set if there is a valid data in at least one EP4o FIFO. This flag is cleared to 0 if there is no valid data in EP4o FIFO. This flag is a status flag and cannot be cleared. The corresponding interrupt output is EXIRQ0 or EXIRQ1. 1 EP4iTR 0 R/(W)* EP4i Transfer Request Set to 1 if the EP4i FIFO is empty when an IN token is sent form the host to EPi4. The corresponding interrupt output is EXIRQ0 or EXIRQ1. 0 EP4iEMPTY 1 R EP4i FIFO Empty EP4i FIFO has a dual-FIFO configuration. This flag is set if at least one EP4i FIFO is empty. This flag is cleared to 0 if EP4i FIFO is full. This flag is a status flag and cannot be cleared. The corresponding interrupt output is EXIRQ0 or EXIRQ1. Note: * The write value should always be 0 to clear this flag. Page 524 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.30 USB Interrupt Flag Register 2 (UIFR2) (Only in H8S/2215R, H8S/2215T and H8S/2215C) UIFR2 is an interrupt flag register indicating the state of EP4i, EP4o, and EP5i. If the corresponding bit is set to 1, the corresponding EXIRQ0 or EXIRQ1 interrupt is requested to the CPU. EP4iTR EP5iTS and EP4iTR flags can cleared by writing 0 to them. Writing 1 to them is invalid and causes no operation. Consequently, to clear only a specific flag it is necessary to write 0 to the bit corresponding to the flag to be cleared and 1 to all the other bits. (To clear bit 5 only, write H'DF.) The bit-clear instruction is a read/modify/write instruction. There is a danger that the wrong bits may be cleared if a new flag is set between the read and write. Therefore, the bit-clear instruction should not be used to clear bits in this interrupt flag register. However, EP4iEMPTY and EP4oREADY are status bits indicating the EP4i and EP4o FIFO status, and cannot be cleared. Bit Bit Name Initial Value R/W Description 7, 6 — All 0 Reserved R These bits are always read as 0 and cannot be modified. 5 EP5iTR 0 R/(W)* EP5i Transfer Request Set to 1 if there is no valid transmit data in the FIFO when an IN token is sent from the host to EP5i. The corresponding interrupt output is EXIRQ0 or EXIRQ1. 4 EP5iTS 0 R/(W)* EP5i Transfer Complete Set to 1 if the transmit data written in EP5i is transferred to the host normally and the ACK handshake is returned. The corresponding interrupt output is EXIRQ0 or EXIRQ1. 3 EP4iALL 1 R EMPTYS 2 EP4oREADY 0 EP4i FIFO All Empty Status EP4i FIFO has a dual FIFO configuration. This flag is set to 1 if both FIFOs are empty. (Corresponds to a UDSR/EP4iDE negative-polarity signal.) R EP4o Data Ready EP4o FIFO has a dual-FIFO configuration. This flag is set if there is a valid data in at least one EP4o FIFO. This flag is cleared to 0 if there is no valid data in EP4o FIFO. This flag is a status flag and cannot be cleared. The corresponding interrupt output is EXIRQ0 or EXIRQ1. Note: * The write value should always be 0 to clear this flag. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 525 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) Bit Bit Name Initial Value R/W 1 EP4iTR 0 Description R/(W)* EP4i Transfer Request Set to 1 if the EP4i FIFO is empty when an IN token is sent form the host to EPi4. The corresponding interrupt output is EXIRQ0 or EXIRQ1. 0 EP4iEMPTY 1 R EP4i FIFO Empty EP4i FIFO has a dual-FIFO configuration. This flag is set if at least one EP4i FIFO is empty. This flag is cleared to 0 if EP4i FIFO is full. This flag is a status flag and cannot be cleared. The corresponding interrupt output is EXIRQ0 or EXIRQ1. Note: * The write value should always be 0 to clear this flag. Page 526 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.31 USB Interrupt Flag Register 3 (UIFR3) UIFR3 is an interrupt flag register indicating the USB status. If the corresponding bit is set to 1, the corresponding EXIRQ0, EXIRQ1, or IRQ6 interrupt is requested from the CPU. VBUSi, SPRSi, SETI, SETC, SOF, and CK48READY flags can be cleared by writing 0. Writing 1 to them is invalid and causes no operation. Consequently, to clear only a specific flag it is necessary to write 0 to the bit corresponding to the flag to be cleared and 1 to all the other bits. (To clear bit 5 only, write H'DF.) The bit-clear instruction is a read/modify/write instruction. There is a danger that the wrong bits may be cleared if a new flag is set between the read and write. Therefore, the bit-clear instruction should not be used to clear bits in this interrupt flag register. VBUSs and SPRSs are status flags and cannot be cleared. Bit Bit Name Initial Value R/W 7 CK48READY 0 Description R/(W)* USB Operating Clock (48 MHz) Stabilization Detection Set to 1 when the 48-MHz USB operating clock stabilization time has been automatically counted after USB module rest mode cancellation. The corresponding interrupt output is EXIRQ0 or EXIRQ1. CK48READY can also operate in USB interface software reset state (the UIFRST bit of UCTLR is set to 1). Note that USB operating clock stabilization time differs according to the clock source, refer to the UCKS3 to UCKS0 bits of the UCTLR. 6 SOF 0 R/(W)* Start of Frame Packet Detection Set to 1 if the SOF packet is detected. This flag can be used to start time stamp check, EP3i transmit data write, or EP3o receive data read timing in EP3 isochronous transfer. The corresponding interrupt output is EXIRQ0 or EXIRQ1. 5 SETC 0 R/(W)* Set_Configuration Command Detection Set to 1 if the Set_Configuration command is detected. The corresponding interrupt output is EXIRQ0 or EXIRQ1. 4 SETI 0 R/(W)* Set_Inferface Command Detection Set to 1 if the Set_Interface command is detected. The corresponding interrupt output is EXIRQ0 or EXIRQ1. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 527 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) Bit Bit Name Initial Value R/W Description 3 SPRSs 0 Suspend/Resume Status R Indicates the suspend/resume status and cannot request an interrupt. 0: Indicates that the bus is in the normal state. 1: Indicates that the bus is in the suspend state. 2 SPRSi 0 R/(W)* Suspend/Resume Interrupt Set to 1 if a transition from normal state to suspend state or suspend state to normal state has occurred. The corresponding interrupt output is IRQ6. This bit can be used to cancel software standby state at resume. 1 VBUSs 0 R VBUS Status Indicates the VBUS state by the USB cable connection and disconnection. An interrupt cannot be requested by the VBUSs. 0: Indicates that the VBUS (USB cable) bus is disconnected. 1: Indicates that the VBUS (USB cable) bus is connected. 0 VBUSi 0 R/(W)* VBUS Interrupt Set to 1 if a VBUS state changes by USB cable connection or disconnection. The corresponding interrupt output is EXIRQ0 or EXIRQ1. Note: * The write value should always be 0 to clear this flag. Page 528 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.32 USB Interrupt Enable Register 0 (UIER0) UIER0 enables the interrupt request indicated in the interrupt flag register 0 (UIFR0). When an interrupt flag is set while the corresponding bit in UIER0 is set to 1, an interrupt is requested by asserting the corresponding EXIRQ0 or EXIRQ1 pin. Either EXIRQ0 or EXIRQ1 must be selected by the interrupt select register 0 (UISR0). Bit Bit Name Initial Value R/W Description 7 BRSTE 0 R/W Enables the BRST interrupt 6 — 0 R Reserved This bit is always read as 0. 5 EP1iTRE 0 R/W Enables the EP1iTR interrupt 4 EP1iTSE 0 R/W Enables the EP1iTS interrupt 3 EP0oTSE 0 R/W Enables the EP0oTS interrupt 2 EP0iTRE 0 R/W Enables the EP0iTR interrupt 1 EP0iTSE 0 R/W Enables the EP0iTS interrupt 0 SetupTSE 0 R/W Enables the SetupTS interrupt 15.3.33 USB Interrupt Enable Register 1 (UIER1) (Only in H8S/2215) UIER1 enables the interrupt request indicated in the interrupt flag register 1 (UIFR1). When an interrupt flag is set while the corresponding bit in UIER1 is set to 1, an interrupt is requested by asserting the corresponding EXIRQ0 or EXIRQ1 pin. Either EXIRQ0 or EXIRQ1 must be selected by the interrupt select register 1 (UISR1). Bit Bit Name Initial Value R/W 7, 6 — All 0 R Description Reserved These bits are always read as 0. 5 EP3iTFE 0 R/W Enables the EP3iTF interrupt 4 EP3iTRE 0 R/W Enables the EP3iTR interrupt 3 — 0 R Reserved 2 EP2oREADYE 0 R/W Enables the EP2oREADY interrupt 1 EP2iTRE 0 R/W Enables the EP2iTR interrupt 0 EP2iEMPTYE 0 R/W Enables the EP2iEMPTYE interrupt This bit is always read as 0. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 529 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.34 USB Interrupt Enable Register 1 (UIER1) (Only in H8S/2215R, H8S/2215T and H8S/2215C) UIER1 enables the interrupt request indicated in the interrupt flag register 1 (UIFR1). When an interrupt flag is set while the corresponding bit in UIER1 is set to 1, an interrupt is requested by asserting the corresponding EXIRQ0 or EXIRQ1 pin. Either EXIRQ0 or EXIRQ1 must be selected by the interrupt select register 1 (UISR1). Bit Bit Name Initial Value R/W 7, 6 — All 0 R Description Reserved These bits are always read as 0. 5 EP3iTFE 0 R/W Enables the EP3iTF interrupt 4 EP3iTRE 0 R/W Enables the EP3iTR interrupt 3 EP2iALL 0 R/W Enables EP2iALLEMPTYE interrupt 2 EP2oREADYE 0 R/W Enables the EP2oREADY interrupt 1 EP2iTRE 0 R/W Enables the EP2iTR interrupt 0 EP2iEMPTYE 0 R/W Enables the EP2iEMPTYE interrupt EMPTYE 15.3.35 USB Interrupt Enable Register 2 (UIER2) UIER2 enables the interrupt request indicated in the interrupt flag register 2 (UIFR2). When an interrupt flag is set while the corresponding bit in UIER2 is set to 1, an interrupt is requested by asserting the corresponding EXIRQ0 or EXIRQ1 pin. Either EXIRQ0 or EXIRQ1 must be selected by the interrupt select register 2 (UISR2). Bit Bit Name Initial Value R/W Description 7, 6 — All 0 Reserved R These bits are always read as 0. 5 EP5iTRE 0 R/W Enables the EP5iTR interrupt 4 EP5iTSE 0 R/W Enables the EP5iTS interrupt 3 — 0 R Reserved This bit is always read as 0. 2 EP4oREADYE 0 R/W Enables the EP4oREADY interrupt 1 EP4iTRE 0 R/W Enables the EP4iTR interrupt 0 EP4iEMPTYE 0 R/W Enables the EP4iEMPTY interrupt Page 530 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.36 USB Interrupt Enable Register 2 (UIER2) (Only in H8S/2215R, H8S/2215T and H8S/2215C) UIER2 enables the interrupt request indicated in the interrupt flag register 2 (UIFR2). When an interrupt flag is set while the corresponding bit in UIER2 is set to 1, an interrupt is requested by asserting the corresponding EXIRQ0 or EXIRQ1 pin. Either EXIRQ0 or EXIRQ1 must be selected by the interrupt select register 2 (UISR2). Bit Bit Name Initial Value R/W 7, 6 — All 0 R Description Reserved These bits are always read as 0. 5 EP5iTRE 0 R/W Enables the EP5iTR interrupt 4 EP5iTSE 0 R/W Enables the EP5iTS interrupt 3 EP4iALL 0 R/W Enables EP4iALLEMPTYE interrupt EMPTYE 2 EP4oREADYE 0 R/W Enables the EP4oREADY interrupt 1 EP4iTRE 0 R/W Enables the EP4iTR interrupt 0 EP4iEMPTYE 0 R/W Enables the EP4iEMPTY interrupt 15.3.37 USB Interrupt Enable Register 3 (UIER3) UIER3 enables the interrupt request indicated in the interrupt flag register 3 (UIFR3). This register is readable/writable even though in USB module stop mode. When an interrupt flag is set while the corresponding bit in UIER3 is set to 1, an interrupt is requested by asserting the corresponding EXIRQ0 or EXIRQ1 pin. Either EXIRQ0 or EXIRQ1 must be selected by the interrupt select register 3 (UISR3). Note, however, that the SPRSiE bit is an interrupt enable bit specific to the IRQ6 pin and cannot be selected by UISR3. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 531 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) Bit Bit Name 7 Initial Value R/W Description CK48READYE 1 R/W Enables the CK48READY interrupt 6 SOFE 0 R/W Enables the SOF interrupt 5 SETCE 0 R/W Enables the SETC interrupt 4 SETIE 0 R/W Enables the SETI interrupt 3 — 0 R Reserved This bit is always read as 0. 2 SPRSiE 0 R/W Enables the SPRSi interrupt (only for IRQ6) 1 — 0 R Reserved 0 VBUSiE 0 R/W This bit is always read as 0. Enables the VBUSi interrupt 15.3.38 USB Interrupt Select Register 0 (UISR0) UISR0 selects the EXIRQ pin to output interrupt request indicated in the interrupt flag register 0 (UIFR0). When a bit in UIER0 corresponding to the UISR0 bit is cleared to 0, an interrupt request is output to EXIRQ0. When a bit in UIER0 corresponding to the UISR0 bit is set to 1, an interrupt request is output to EXIRQ1. Bit Bit Name Initial Value R/W Description 7 BRSTS 0 R/W Selects the BRST interrupt 6 — 0 R Reserved This bit is always read as 0. 5 EP1iTRS 0 R/W Selects the EP1iTR interrupt 4 EP1iTSS 0 R/W Selects the EP1iTS interrupt 3 EP0oTSS 0 R/W Selects the EP0oTS interrupt 2 EP0iTRS 0 R/W Selects the EP0iTR interrupt 1 EP0iTSS 0 R/W Selects the EP0iTS interrupt 0 SetupTSS 0 R/W Selects the SetupTS interrupt Page 532 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.39 USB Interrupt Select Register 1 (UISR1) (Only in H8S/2215) UISR1 selects the EXIRQ pin to output interrupt request indicated in the interrupt flag register 1 (UIFR1). When a bit in UIER1 corresponding to the UISR1 bit is cleared to 0, an interrupt request is output to EXIRQ0. When a bit in UIER1 corresponding to the UISR1 bit is set to 1, an interrupt request is output to EXIRQ1. Bit Bit Name Initial Value R/W Description 7, 6 — All 0 R Reserved 5 EP3iTFS 0 R/W Selects the EP3iTF interrupt 4 EP3iTRS 0 R/W Selects the EP3iTR interrupt 3 — 0 R Reserved These bits are always read as 0. This bit is always read as 0. 2 EP2oREADYS 0 R/W Selects the EP2oREADY interrupt 1 EP2iTRS 0 R/W Selects the EP2iTR interrupt 0 EP2iEMPTYS 0 R/W Selects the EP2iEMPTY interrupt 15.3.40 USB Interrupt Select Register 1 (UISR1) (Only in H8S/2215R, H8S/2215T and H8S/2215C) UISR1 selects the EXIRQ pin to output interrupt request indicated in the interrupt flag register 1 (UIFR1). When a bit in UIER1 corresponding to the UISR1 bit is cleared to 0, an interrupt request is output to EXIRQ0. When a bit in UIER1 corresponding to the UISR1 bit is set to 1, an interrupt request is output to EXIRQ1. Bit Bit Name Initial Value R/W Description 7, 6 — All 0 Reserved R These bits are always read as 0. 5 EP3iTFS 0 R/W Selects the EP3iTF interrupt 4 EP3iTRS 0 R/W Selects the EP3iTR interrupt 3 EP2iALL 0 R/W Selects EP2iALLEMPTY interrupt 2 EP2oREADYS 0 R/W Selects the EP2oREADY interrupt 1 EP2iTRS 0 R/W Selects the EP2iTR interrupt 0 EP2iEMPTYS 0 R/W Selects the EP2iEMPTY interrupt EMPTYS REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 533 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.41 USB Interrupt Select Register 2 (UISR2) (Only in H8S/2215) UISR2 selects the EXIRQ pin to output interrupt request indicated in the interrupt flag register 2 (UIFR2). When a bit in UIER2 corresponding to the UISR2 bit is cleared to 0, an interrupt request is output to EXIRQ0. When a bit in UIER2 corresponding to the UISR2 bit is set to 1, an interrupt request is output to EXIRQ1. Bit Bit Name Initial Value R/W Description 7, 6 — All 0 R Reserved 5 EP5iTRS 0 R/W Selects the EP5iTR interrupt 4 EP5iTSS 0 R/W Selects the EP5iTS interrupt 3 — 0 R Reserved These bits are always read as 0. This bit is always read as 0. 2 EP4oREADYS 0 R/W Selects the EP4oREADY interrupt 1 EP4iTRS 0 R/W Selects the EP4iTR interrupt 0 EP4iEMPTYS 0 R/W Selects the EP4iEMPTY interrupt 15.3.42 USB Interrupt Select Register 2 (UISR2) (Only in H8S/2215R, H8S/2215T and H8S/2215C) UISR2 selects the EXIRQ pin to output interrupt request indicated in the interrupt flag register 2 (UIFR2). When a bit in UIER2 corresponding to the UISR2 bit is cleared to 0, an interrupt request is output to EXIRQ0. When a bit in UIER2 corresponding to the UISR2 bit is set to 1, an interrupt request is output to EXIRQ1. Bit Bit Name Initial Value R/W Description 7, 6 — All 0 Reserved R These bits are always read as 0. 5 EP5iTRS 0 R/W 4 EP5iTSS 0 R/W Selects the EP5iTS interrupt 3 EP4iALL 0 R/W Selects the EP4iALLEMPTY EMPTYS Selects the EP5iTR interrupt interrupt 2 EP4oREADYS 0 R/W Selects EP4oREADY interrupt 1 EP4iTRS 0 R/W Selects the EP4iTR interrupt 0 EP4iEMPTYS 0 R/W Selects the EP4iEMPTY interrupt Page 534 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.43 USB Interrupt Select Register 3 (UISR3) UISR3 selects the EXIRQ pin to output interrupt request indicated in the interrupt flag register 3 (UIFR3). When a bit in UIER3 corresponding to the UISR3 bit is cleared to 0, an interrupt request is output to EXIRQ0. When a bit in UIER3 corresponding to the UISR3 bit is set to 1, an interrupt request is output to EXIRQ1. Bit Bit Name 7 CK48READYS 1 R/W Selects the CK48READY interrupt 6 SOFS 0 R/W Selects the SOF interrupt 5 SETCS 0 R/W Selects the SETC interrupt 4 SETIS 0 R/W Selects the SETI interrupt All 0 R 3 to 1 — Initial Value R/W Description Reserved These bits are always read as 0. 0 VBUSiS 0 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 R/W Selects the VBUSi interrupt Page 535 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.44 USB Data Status Register (UDSR) UDSR indicates whether the IN FIFO data registers (EP0i, EP1i, EP2i, EP4i, and EP5i) contain valid data or not. A bit in USDR is set when data written to the corresponding IN FIFO becomes valid after the corresponding PKTE bit in UTRG is set to 1. A bit in USDR is cleared when all valid data is sent to the host. For EP2i and EP4i, having a dual-FIFO configuration, the corresponding bit in USDR is cleared to 0 and FIFO becomes empty. Bit Bit Name Initial Value R/W Description 7, 6 — All 0 Reserved R These bits are always read as 0 and cannot be modified. 5 EP5iDE 0 R EP5i Data Enable 0: Indicates that the EP5i contains no valid data 1: Indicates that the EP5i contains valid data 4 EP4iDE 0 R EP4i Data Enable 0: Indicates that the EP4i contains no valid data 1: Indicates that the EP4i contains valid data 3 — 0 R Reserved This bit is always read as 0 and cannot be modified. 2 EP2iDE 0 R EP2i Data Enable 0: Indicates that the EP2i contains no valid data 1: Indicates that the EP2i contains valid data 1 EP1iDE 0 R EP1i Data Enable 0: Indicates that the EP1i contains no valid data 1: Indicates that the EP1i contains valid data 0 EP0iDE 0 R EP0i Data Enable 0: Indicates that the EP0i contains no valid data 1: Indicates that the EP0i contains valid data Page 536 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.45 USB Configuration Value Register (UCVR) UCVR stores the Configuration value, Interface Number value and Alternate Setting value when the Set_Configuration and Set_Interface commands are received from the host. Bit Bit Name Initial Value R/W 7, 6 — All 0 R Description Reserved These bits are always read as 0 and cannot be modified. 5 CNFV0 0 R Configuration Value 0 Stores the Configuration value when the Set_Configuration command is received. CNFV0 is modified when the SETC bit in UIFR3 is set to 1. 4 INTV1 0 R Interface Number Value 1, 0 3 INTV0 0 R Store the Interface number value when the Set_Interface command is received. INTV1 and INTV0 are modified when the SETI bit in UIFR3 is set to 1. 2 ATLV2 0 R Alternate Setting Value 2 to 0 1 ATLV1 0 R 0 ATLV0 0 R Store the Alternate Setting value when the Set_Interface command is received. ATLV2 to ATLV0 are modified when the SETI bit in UIFR3 is set to 1. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 537 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.46 USB Time Stamp Registers H, L (UTSRH, UTSRL) UTSRH and UTSRL store the current time stamp values. The time stamp values in UTSRH and UTSRL are modified when the SOF flag in UIFR3 is set to 1. UTSRH combined with UTSRL can also be handled as a 16-bit register. The USB module has an 8-bit bus. The upper byte of UTSRH can be read directly, while the lower byte of UTSRL is read through an 8-bit temporary register. Accordingly, UTSRH and UTSRL must be read in this order. If only UTSRL is read, the read data cannot be guaranteed. In addition, note that the time stamp automatic update function is not supported if the SOF packed has been broken even if the SOF marker function is enabled by setting the SFME bit of UCTLR. • UTSRH Bit Bit Name 7 to 3 — Initial Value R/W Description All 0 Reserved R These bits are always read as 0. 2 to 0 D10 to D8 All 0 R Stores time stamp D10 to D8. • UTSRL Bit Bit Name 7 to 0 D7 to D0 Page 538 of 846 Initial Value R/W Description All 0 Stores time stamp D7 to D0. R REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.47 USB Test Register 0 (UTSTR0) UTSTR0 controls internal or external transceiver output signals. After clearing UCTLR/UIFRST and UDCRST to 0, setting the PTSTE bit to 1 enable user setting of transceiver output. Table 15.3 shows the relationship between UTSTR0 settings and pin outputs. Bit Bit Name Initial Value R/W Description 7 PTSTE 0 Pin Test Enable R/W Enables the test control of the internal/external transceiver output signals. When FADSEL in UCTLR is 0, the test control for the internal transceiver output pins (USD+ and USD-) and USPND pin are enabled. When FADSEL in UCTLR is 1, the test control for the external transceiver output pins (P17/OE, P15/FSE0, P13/VPO, and PA3/SUSPND) and USPND pin are enabled. 6 to 4 — All 0 R Reserved These bits are always read as 0 and cannot be modified. 3 SUSPEND 0 R/W Internal/External Transceiver Output Signal 2 OE 1 R/W Setting Bits 1 FSE0 0 R/W SUSPEND: Specifies USPND and PA3/SUSPND pin. 0 VPO 0 R/W OE: Specifies internal transceiver OE signal and P17/OE pin. FSE0: Specifies internal transceiver FSE0 signal and P15/FSE0 pin. VPO: Specifies internal transceiver VPO signal and P13/VPO pin. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 539 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) Table 15.3 Relationship between the UTSTR0 Setting and Pin Outputs Pin Input Register Setting Pin Outputs P17/ P15/ P13/ VBUS UCTLR/ FADSEL PTSTE SUSPEND OE FSE0 VPO USD+ USD- USPND SUSPND PA3/ OE FSE0 VPO 0 × 0 × × × × ⎯ ⎯ ⎯ ⎯ ⎯ ⎯ ⎯ 0 0 1 0/1 × × × Hi-Z Hi-Z 0/1 ⎯ ⎯ ⎯ ⎯ 0 1 1 0/1 × × × Hi-Z Hi-Z 0/1 1 1 ⎯ ⎯ 0 1 1 × × 0/1 × Hi-Z Hi-Z ⎯ 1 1 0/1 ⎯ 0 1 1 × × × 0/1 Hi-Z Hi-Z ⎯ 1 1 ⎯ 0/1 1 × 0 × × × × ⎯ ⎯ ⎯ ⎯ ⎯ ⎯ ⎯ 1 0 1 0 0 0 0 0 1 0 ⎯ ⎯ ⎯ ⎯ 1 0 1 0 0 0 1 1 0 0 ⎯ ⎯ ⎯ ⎯ 1 0 1 0 0 1 × 0 0 0 ⎯ ⎯ ⎯ ⎯ 1 0 1 0 1 × × Hi-Z Hi-Z 0 ⎯ ⎯ ⎯ ⎯ 1 0 1 1 0 0 0 0 1 1 ⎯ ⎯ ⎯ ⎯ 1 0 1 1 0 0 1 1 0 1 ⎯ ⎯ ⎯ ⎯ 1 0 1 1 0 1 × 0 0 1 ⎯ ⎯ ⎯ ⎯ 1 0 1 1 1 × × Hi-Z Hi-Z 1 ⎯ ⎯ ⎯ ⎯ 1 1 1 0/1 × × × Hi-Z Hi-Z 0/1 0/1 ⎯ ⎯ ⎯ 1 1 1 × 0/1 × × Hi-Z Hi-Z ⎯ ⎯ 0/1 ⎯ ⎯ 1 1 1 × × 0/1 × Hi-Z Hi-Z ⎯ ⎯ ⎯ 0/1 ⎯ 1 1 1 × × × 0/1 Hi-Z Hi-Z ⎯ ⎯ ⎯ ⎯ 0/1 Legend: ×: Don’t care 0/1: Register setting equals pin output —: Cannot be controlled. Indicates state in normal operation according to the USB operation and port settings. Page 540 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.48 USB Test Register 1 (UTSTR1) UTSTR1 allows internal or external transceiver input signals to be monitored. When the FADSEL bit of UCTLR is set to 0, internal transceiver input signals can be monitored. When the FADSEL bit is FADSEL = 1, external transceiver input signals can be monitored. Table 15.4 shows the relationship between UTSTR1 settings and pin inputs. Bit Bit Name Initial Value R/W Description 7 VBUS R Internal/External Transceiver Input Signal Monitor Bits 6 UBPM —* —* R VBUS: Monitors VBUS pin UBPM: Monitors UBPM pin 5 to 3 — Al 0 R Reserved These bits are always read as 0 and cannot be modified. R Internal/External Transceiver Input Signal Monitor Bits VP —* —* R VM —* R RCV: Monitors the RCV signal of the internal/external transceiver 2 RCV 1 0 Note: * Monitors the VP signal of the internal/external transceiver VM: Monitors the VM signal of the internal/external transceiver Determined by the status of the VBUS, UBPM, USD+, USD-, RCV, VP, and VM pins. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 VP: Page 541 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) Table 15.4 Relationship between the UTSTR1 Settings and Pin Inputs Pin Input UTSTR1 Monitor VBUS UBPM 0/1 × Register Settings VBUS UBPM × 0/1 × 0/1 × 0/1 UTSTR1 Monitor Pin Input UCTLR/ UTSTR0/ UTSTR0/ FADSEL PTSTE SUSPEND VBUS USD+ P12/ USD- RCV P11/ VP P10/ VM RCV VP VM 0 × × 0 × × × × × 0 0 0 1 × × 0 × × 0/1 × × 0/1 0 0 0 0 × 1 0 0 × × × × 0 0 0 0 × 1 0 1 × × × 0 0 1 0 0 × 1 1 0 × × × 1 1 0 0 0 × 1 1 1 × × × × 1 1 0 1 0 1 0 0 × × × × 0 0 0 1 0 1 0 1 × × × 0 0 1 0 1 0 1 1 0 × × × 1 1 0 0 1 0 1 1 1 × × × × 1 1 0 1 1 1 0/1 × × × × 0 0/1 × 0 1 1 1 × 0/1 × × × 0 × 0/1 1 × × 1 × × 0/1 × × 0/1 × × 1 × × 1 × × × 0/1 × × 0/1 × 1 × × 1 × × × × 0/1 × × 0/1 Legend: ×: Don’t care 0/1: Register setting equals pin output Page 542 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.3.49 USB Test Registers 2 and A to F (UTSTR2, UTSRA to UTSRF) UTSTR2 and UTSRTA to UTSRTF are test registers and cannot be written to. 15.3.50 Module Stop Control Register B (MSTPCRB) Bit Bit Name Initial Value R/W Description 7 MSTPB7 1 R/W Module Stop Bits 6 MSTPB6 1 R/W 5 MSTPB5 1 R/W For details, refer to section 22.1.2, Module Stop Control Registers A to C (MSTPCRA to MSTPCRC). 4 MSTPB4 1 R/W 3 MSTPB3 1 R/W 2 MSTPB2 1 R/W 1 MSTPB1 1 R/W 0 MSTPB0 1 R/W Module Stop USB 0: Cancels USB module stop mode. A clock is provided for the USB module. After this bit has been cleared, the USB operating clock (48 MHz) oscillator or internal PLL circuit starts operation. Registers in the USB module must be accessed after the USB operating clock stabilization time (CK48READY bit of UIFR3 is set ) has passed. 1: Places the USB module in stop mode. Both the USB operating clock (48 MHz) oscillator and internal PLL circuit stop operation. In this mode, the USB module register contents are maintained. Note: For details on USB module stop mode cancellation procedure, refer to section 15.5, Communication Operation. 15.4 Interrupt Sources This module has three interrupt signals. Table 15.5 shows the interrupt sources and their corresponding interrupt request signals. EXIRQ interrupt signals are activated at low level. The EXIRQ interrupt requests can only be detected at low level (specified as level sensitive). The suspend/resume interrupt request IRQ6 must be specified to be detected at the falling edge (falling-edge sensitive) by the interrupt controller register. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 543 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) Table 15.5 SCI Interrupt Sources Interrupt Source Description SetupTS*1 Setup command receive completion EXIRQ0 or EXIRQ1 × 1 EP0iTS*1 EP0i transfer completion EXIRQ0 or EXIRQ1 × 2 EP0iTR*1 EP0i transfer request EXIRQ0 or EXIRQ1 × 3 EP0oTS *1 EP0o receive request EXIRQ0 or EXIRQ1 × EP1iTS EP1i transfer completion EXIRQ0 or EXIRQ1 × EP1iTR EP1i transfer request EXIRQ0 or EXIRQ1 × Register Bit UIFR0 0 4 Transfer Mode Control transfer (EP0) Interrupt_in transfer (EP1i) 5 UIFR1 DMAC Activation by USB Request*9 Interrupt Request Signal 6 — Reserved — — — 7 (Status) BRST Bus reset EXIRQ0 or EXIRQ1 × 0 Bulk_in transfer (EP2i) EP2iEMPTY EP2i FIFO empty EXIRQ0 or EXIRQ1 DREQ0 or DREQ1*2 EP2iTR EP2i transfer request EXIRQ0 or EXIRQ1 × EP2o data ready EXIRQ0 or EXIRQ1 DREQ0 or DREQ1*3 1 2 Bulk_out transfer EP2oREADY (EP2o) 3 Bulk_in transfer*7 EP2iALLEMPTYS*8 EP2i all empty states*7 (EP2i) EXIRQ0 or EXIRQ1*7 ×* 7 4 Isochronous_in Transfer (EP3i) 5 6 7 Page 544 of 846 Isochronous_out Transfer (EP3o) EP3iTR EP3i transfer request EXIRQ0 or EXIRQ1 × EP3iTF EP3i abnormal transfer EXIRQ0 or EXIRQ1 × EP3oTS EP3o normal receive × × EP3oTF EP3o abnormal receive × × REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) Register Bit Interrupt Request Signal DMAC Activation by USB Request*9 UIFR2 0 Transfer Mode Bulk_in transfer (EP4i) 1 EP4i FIFO empty EXIRQ0 or EXIRQ1 DREQ0 or DREQ1*4 EP4iTR EP4i transfer request EXIRQ0 or EXIRQ1 × EP4o data ready EXIRQ0 or EXIRQ1 DREQ0 or DREQ1*5 Bulk_out transfer EP4oREADY (EP4o) 3 Bulk_in transfer*7 EP4iALLEMPTYS*8 EP4i all empty states*7 (EP4i) EXIRQ0 or EXIRQ1*7 ×* 7 4 Interrupt_in transfer (EP5i) EP5iTS EP5i transfer completion EXIRQ0 or EXIRQ1 × EP5iTR EP5i transfer request EXIRQ0 or EXIRQ1 × — Reserved — — × 7 — Reserved — — × 0 ⎯ (Status) VBUSi VBUS interrupt EXIRQ0 or EXIRQ1 × 1 VBUSs VBUS status × × 2 SPRSi Suspend/resume interrupt IRQ6 *6 6 Notes: Description EP4iEMPTY 2 5 UIFR3 Interrupt Source × 3 SPRSs Suspend/resume status × × 4 SETI Set_Interface detection EXIRQ0 or EXIRQ1 × 5 SETC Set_Configuration detection EXIRQ0 or EXIRQ1 × 6 SOF Start of Frame packet detection EXIRQ0 or EXIRQ1 × 7 CK48READY USB bus clock stabilization EXIRQ0 or detection EXIRQ1 × 1. EP0 interrupts must be assigned to the same interrupt request signal. 2. An EP2i DMA transfer by a USB request is specified by the EP2iT1 and EP2iT0 bits of UDMAR. 3. An EP2o DMA transfer by a USB request is specified by the EP2oT1 and EP2oT0 bits of UDMAR. 4. An EP4i DMA transfer by a USB request is specified by the EP4iT1 and EP4iT0 bits of UDMAR. 5. An EP4oDMA transfer by a USB request is specified by the EP4oT1 and EP4oT0 bits of UDMAR. 6. The suspend/resume interrupt request IRQ6 must be specified to be detected at the falling edge (IRQ6SCB, A = 01 in ISCRH) by the interrupt controller register. 7. Available only in H8S/2215R, H8S/2215T and H8S/2215C. “—” in H8S/2215. 8. Available only in H8S/2215R, H8S/2215T and H8S/2215C. Reserved in H8S/2215. 9. The DREQ signal is not used for auto-request. The CPU can activate the DMAC using any flags and interrupts. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 545 of 846 Section 15 Universal Serial Bus Interface (USB) H8S/2215 Group • EXIRQ0 signal The EXIRQ0 signal requests interrupt sources for which the corresponding bits in interrupt select registers 0 to 3 (UISR0 to UISR3) are cleared to 0. The EXIRQ0 is driven low if a corresponding bit in the interrupt flag register is set to 1. • EXIRQ1 signal The EXIRQ1 signal requests interrupt sources for which the corresponding bits in interrupt select registers 0 to 3 (UISR0 to UISR3) are cleared to 0. The EXIRQ1 is driven low if a corresponding bit in the interrupt flag register is set to 1. • IRQ6 signal The IRQ6 signal is specific to the suspend/resume interrupt request. The rising edge of the IRQ6 signal is output at the transition from the suspend state or from the resume state. Page 546 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.5 Communication Operation 15.5.1 Initialization The USB must be initialized as described in the flowchart in figure 15.3. USB function Firmware Cancel power-on reset Select USB operating clock Write UCKS3 to UCKS0 in UCTLR Start USB operationg clock oscillation Cancel USB module stop mode Clear MSTPB0 in MSTPCRB to 0 USB operating clock stabilization time has passed? No Wait for USB operating clock stabilization Yes USB operating clock stabilization detection interrupt occurs EXIRQ0 Cancel USB interface reset Clear UIFRST in UCTLR to 0 USB interface operation OK Clear CK48READY in UIFR3 to 0 Set EPINFO Write 115-byte data to UEPIR00_0 to UEPIR22_4 Set EPINFO Set each interrupt Set each interrupt (Bus powered) No Self powered? Yes (Self powered) System enters power-down mode? No Yes To USB cable connecting procedure Stop USB module operation Write MSTPB0 in MSTPCRB to 1 * Enter software standby state (If necessary) * Wait for USB cable connection 15.5.2 to (1) Note: * Before entering the software standby state, USB module operation must be stopped by setting the MSTPB0 bit in MSTPCRB register to 1. Figure 15.3 USB Initialization REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 547 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.5.2 USB Cable Connection/Disconnection (1) USB Cable Connection (When USB Module Stop or Software Standby Is Not Used) If the USB cable enters the connection state from the disconnection state in an application (self powered) where USB module stop or software standby mode is not used, perform the operation shown in figure 15.4. In bus-powered mode, perform the operation described in note 2. USB function Firmware Connect the USB cable *1 A VBUS interrupt occurs EXIRQx Clear VBUSi in UIFR3 from 15.5.1 Check the USB cable connection state Check if VBUSs in UIFR3 is set to 1 *2 After completing the buspowered function initialization Clear all FIFOs System ready? No Yes Enable D+ pull-up by the port Automatical load EPINFO to UDC core Cancel UDC core reset Clear UDCRST in UCTLR to 0 Complete the USB module initialization Receive bus reset from the host A bus reset interrupt occurs. EXIRQx Initialize the firmware Wait for a setup interrupt Notes: 1. A VBUS interrupt in the USB module cannot be detected in the software standby state or in the USB module stop state. 2. During the password function, power is applied after the USB cable has been connected. Accordingly, immediately after completing the power-on reset, initialization (15.5.1), clearing all FIFO, and system preparation, enable the D+ pull-up via a general port and cancel the UDC core reset state. Figure 15.4 USB Cable Connection (When USB Module Stop or Software Standby Is Not Used) Page 548 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) (2) USB Cable Connection (When USB Module Stop or Software Standby Is Used) If the USB cable enters the connection state from disconnection state an application (self powered) where USB module stop or software standby mode is used, perform the operation as shown in figure 15.5. USB function Firmware Connect the USB cable * External interrupt IRQx * Yes Software standby? No USB module stopped? No Yes Start USB operating clock oscillation USB operating clock stabilization time has passed? Cancel USB module stop mode Clear MSTPB0 in MSTPCRB to 0 Wait for USB operating clock stabilization No Yes A USB operating clock stabilization detection interrupt occurs EXIRQx Clear CK48READY in UIFR3 to 0 Check the USB cable connection state Check by using the port function in IRQx = 1 Clear all FIFOs System ready? No Yes Enable D+ pull-up by the port Automatically load EPINFO to the UDC core Cancel UDC core reset Clear UDCRST in UCTLR to 0 Complete USB module initialization Receive bus reset A bus reset interrupt occurs EXIRQx Initializa the firmware Wait for a setup interrupt Note: * A VBUS interrupt in the USB module cannot be detected in the software standby state or in the USB module stop state. Accordingly, in an application in which software standby or USB module stop is used in self-powered mode, a VBUS interrupt of the USB must be detected via the external interrupt pin IRQx. In this case, the IRQx pin must be specified as both-edge sensitive. When IRQx is used, a VBUS interrupt in the USB module need not to be used. Figure 15.5 USB Cable Connection (When USB Module Stop or Software Standby Is Used) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 549 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) (3) USB Cable Disconnection (When USB Module Stop or Software Standby Is Not Used) If the USB cable enters the disconnection state from the connection state in an application (self powered) where USB module stop or software standby mode is not used, perform the operation shown in figure 15.6. In bus-powered mode, the power is automatically turned off when the USB cable is disconnected and the following processing is not required. USB function Firmware Disconnect the USB cable A VBUS interrupt occurs * EXIRQx Clear VBUSi in UIFR3 to 0 Check if VBUSs in UIFR3 is cleared to 0 SOF marker function enabled? No Yes Stop the SOF marker function Clear SFME in UCTLR to 0 Stop SOF marker function Reset the UDC core Write UDCRST in UCTLR to1 Reset the UDC core Enable D + pull-up by the port Wait for a USB cable connection Note: * A VBUS interrupt in the USB module cannot be detected in the software standby state or in the USB module stop state. Figure 15.6 USB Cable Disconnection (When USB Module Stop or Software Standby Is Not Used) Page 550 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) (4) USB Cable Disconnection (When USB Module Stop or Software Standby Is Used) If the USB cable enters the disconnection state from the connection state in an application (self powered) where USB module stop or software standby mode is used, perform the operation shown in figure 15.7. USB function Firmware Disconnect the USB cable *1 1 External interrupt IRQx * Yes Software standby? No USB module stopped? No Yes Start USB operating clock oscillation USB operating clock stabilization time has passed? Cancel USB module stop mode Clear MSTPB0 in MSTPCRB to 0 Wait for USB operating clock stabilization No Yes A USB operating clock stabilization detection interrupt occurs EXIRQx Clear CK48READY in UIFR3 to 0 Check connections by using the port function in IRQx = 0 SOF marker function enabled? Check the USB cable disconnection state No Yes Stop SOF marker fouction Clear SFME in UCTLR to 0 Stop SOF marker function Reset UDC core Write UDCRST in UCTRL to 1 Reset UDC core Enable D+ pull-up by the port System needs to enter power-down mode? No Yes Stop USB module Write MSTPB0 in MSTPCRB to 1 Enter software standby (only if necessary) *2 *2 Wait for USB cable connection Notes: 1. A VBUS interrupt in the USB module cannot be detected in the software standby state or in the USB module stop state. Accordingly, in an application in which software standby or USB module stop is used in self-powered mode, a VBUS interrupt of the USB must be detected via the external interrupt pin IRQx. In this case, the IRQx pin must be specified as both edge sensitive. When IRQx is used, a VBUS interrupt in the USB module need not to be used. 2. Before entering the software standby state, USB module operation must be stopped by setting the MSTPB0 bit in MSTPCRB register to 1. Figure 15.7 USB Cable Disconnection (When USB Module Stop or Software Standby Is Used) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 551 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.5.3 Suspend and Resume Operations (1) Suspend and Resume Operations Figures 15.8 and 15.9 are flowcharts of the suspend and resume operations. If the USB bus enters the suspend state from a non-suspend state, or if it enters a non-suspend state from the suspend state due to a resume signal from up-stream, perform the operations shown below. USB function Firmware Main process Suspend/resume interrupt processing Enable SPRSi and IRQ6 interrupts (Set SPRSiE in UIER3 to 1) (Set IRQ6E in IER to 1) *1 Initialize standby enable flag (Clear standby enable flag to 0) USB cable connected A bus idle of 3 ms or more occurs A suspend/resume interrupt occurs IRQ6 Run user program Suspend interrupt processing (see figure 15.9) *1 Suspend state Standby enable flag = 1? No Yes Mask all interrupts (Manipulate bit I using LDC instruction, etc.) *2 Enable IRQ6 interrupt (Set IRQ6E in IER to 1) *2 Unmask all interrupts (Clear bit I using LDC instruction, etc.) Transition to software standby (Execute SLEEP instruction) *2 A resume interrupt is generated from up-stream A suspend/resume interrupt occurs Software standby state IRQ6 Resume interrupt processing (see figure 15.9) *1 Standby enable flag = 0? Notes: 1. The standby enable flag is a software flag for controlling transition to the standby state. There is no such hardware flag. 2. Interrupts should be masked from when the IRQ6 interrupt is received until the SLEEP instruction is executed. Finally, unmask the interrupts using the LDC instruction or the like and execute the SLEEP instruction immediately afterward. No Yes Figure 15.8 Example Flowchart of Suspend and Resume Operations Page 552 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) (2) Suspend and Resume Interrupt Processing Figure 15.9 is a flowchart of suspend and resume interrupt processing. USB function Firmware IRQ6 Resume interrupt processing Suspend interrupt processing *1 No Yes Standby enable flag = 0? *5 Clear USB module stop mode (Clear MSTPB0 in MSTPCRB to 0) Suspend state confirmed? (SPRSs in UIFR3 = 1?) No Yes Clear resume flag (Clear SPRSi in UIFR3 to 0) Start USB operating clock oscillation USB operating clock stabilization time has passed? No Prohibit IRQ6 (Clear IRQ6E in IER to 0) Clear standby enable flag to 0 *1 Wait for USB operating clock stabilization *5 *2 Clear suspend flag (Clear SPRSi in UIFR3 to 0) Suspend state confirmed? (SPRSs in UIFR3 = 1?) Yes Clear suspend flag (Clear SPRSi in UIFR3 to 0) No Enable IRQ6 interrupt (Set IRQ6E in IER to 1) Yes SOF marker function enabled? A USB operating clock stabilization detection interrupt occurs EXIRQx USB operating clock stabilization detection interrupt processing Clear USB operating clock *6 stabilization detection flag (Clear CK48READY in UIFR3 to 0) *6 Suspend state confirmed? (SPRSs in UIFR3 = 1?) Start SOF marker function EXIRQx Yes Disable SOF marker function (Clear SFME in UCTLR to 0) Remote*3 wakeup enabled? (RWUPs in UDRR = 1) Yes No Yes No Receive SOF Detect SOF packet An interrupt occurs No Confirm that remote-wakeup is enabled Confirm that remote-wakeup is prohibited SOF interrupt processing Clear SOF packet *4 detection flag (Clear SOF in UIFR3 to 0) Enable USB module stop mode (Set MSTPB0 in MSTPCRB to 1) Enable SIF marker *4 function (Set SFME in UCTLR to 1) Set standby enable flag to 1 *1 Resume main process Notes: 1. The standby enable flag is a software flag for controlling transition to the standby state. There is no such hardware flag. 2. Interrupts should be masked from when the IRQ6 interrupt is received until the SLEEP instruction is executed. Finally, unmask the interrupts using the LDC instruction or the like and execute the SLEEP instruction immediately afterward. 3. The remote-wakeup function cannot be used unless it is enabled by the host. Accordingly, the remote-wakeup function cannot be used unless it is enabled by the host. Accordingly, make sure to check RWUPs in UDRR before using the remote-wakeup function. However, it is not necessary to confirm that the remote-wakeup function is enabled by the host if the application does not make use of this function. 4. Make this setting only if the SOF marker function will be used. 5. When resuming by means of remote-wakeup the USB operating clock has already stabilized, so this step is not necessary. 6. Return to the main process and wait for the USB operating clock stabilization detection interrupt. When resuming by means of remotewakeup the USB operating clock has already stabilized, so this step is not necessary. Figure 15.9 Example Flowchart of Suspend and Resume Interrupt Processing REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 553 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) (3) Suspend and Remote-Wakeup Operations Figures 15.10 and 15.11 are flowcharts of the suspend and remote-wakeup operations. If the USB bus enters a non-suspend state from the suspend state due to a remote-wakeup signal from this function, perform the operations shown below. USB function Firmware Main process Suspend/remote-wakeup interrupt processing Enable SPRSi and IRQ6 interrupts (Set SPRSiE in UIER3 to 1) (Set IRQ6E in IER to 1) *1 Initialize standby enable flag (Clear standby enable flag to 0) USB cable connected A bus idle of 3 ms or more occurs IRQ6 A suspend/resume interrupt occurs Run user program Suspend interrupt processing (see figure 15.9) *1 Suspend state Standby enable flag = 1? No Yes Mask all interrupts (Manipulate bit I using LDC instruction, etc.) *2 Enable IRQ6 interrupt (Set IRQ6E in IER to 1) *2 Unmask all interrupts (Clear bit I using LDC instruction, etc.) Transition to software standby (Execute SLEEP instruction) *2 Software standby state Output resume signal to USB bus A suspend/resume interrupt occurs NMI or IRQx Remotewakeup Remote-wakeup interrupt processing (see figure 15.11) IRQ6 *1 Standby enable flag = 0? Notes: 1. The standby enable flag is a software flag for controlling transition to the standby state. There is no such hardware flag. 2. Interrupts should be masked from when the IRQ6 interrupt is received until the SLEEP instruction is executed. Finally, unmask the interrupts using the LDC instruction or the like and execute the SLEEP instruction immediately afterward. No Yes Figure 15.10 Example Flowchart of Suspend and Remote-Wakeup Operations Page 554 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) (4) Remote-Wakeup Interrupt Processing Figure 15.11 is a flowchart of remote-wakeup interrupt processing. USB function Firmware NMI or IRQx Remote-wakeup interrupt processing No Is remotewakeup enabled by host? Wait for resume signal from up-stream Start USB operating clock oscillation USB operating clock stabilization time has passed? No USB operating clock stabilization detection interrupt processing EXIRQx Remotewakeup Output resume signal to USB bus A suspend/resume interrupt occurs Clear USB module stop mode (Clear SPRSi in UIFR3 to 0) Wait for USB operating clock stabilization Yes A USB operating clock stabilization detection interrupt occurs Yes Clear USB operating clock stabilization detection flag (Clear CK48READY in UIFR3 to 0) Execute remote-wakeup (Set DVR in UDRR to 1) IRQ6 Resume interrupt processing (see figure 15.9) Resume main process Figure 15.11 Example Flowchart of Remote-Wakeup Interrupt Processing REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 555 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.5.4 Control Transfer The control transfer consists of three stages; setup, data (sometimes omitted), and status, as shown in figure 15.12. The data stage consists of multiple bus transactions. Figures 15.13 to 15.17 show operation flows in each stage. Setup stage Control-in Control-out No data Data stage SETUP (0) IN (1) IN (0) DATA0 DATA1 DATA0 SETUP (0) OUT (1) OUT (0) DATA0 DATA1 DATA0 Status stage ... ... IN (0/1) OUT (1) DATA0/1 DATA1 OUT (0/1) IN (1) DATA0/1 DATA1 SETUP (0) IN (1) DATA0 DATA1 Figure 15.12 Control Transfer Stage Configuration Page 556 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) (1) Setup Stage USB function Firmware Receive SETUP token Receive 8-byte command data in UEDR0s Command to be processed by firmware? No Automatic processing by this module Yes Set setup command receive complete flag (SetupTS in UIFR0 = 1) To data stage EXIRQx Clear SetupTS flag (SetupTS in UIFR0 = 0) Clear EP0iFIFO (EP0iCLR in UFCLR0 = 1) Clear EP0oFIFO (EP0oCLR in UFCLR0 = 1) Read 8-byte data from UEDR0s Decode command data Determine data stage direction*1 Write 1 to EP0s read complete bit (EP0sRDFN in UTRG0 = 1) *2 To control-in data stage To control-out data stage Notes: 1. In the setup stage, the firmware first analyzes the command data sent from the host required to be processed by the firmware, and determines subsequent processing. (For example, the data stage direction.) 2. When the transfer direction must be enabled here. When the transfer direction is control-in, an EP0i transfer request interrupt is not required and must be disabled. Figure 15.13 Setup Stage Operation REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 557 of 846 Section 15 Universal Serial Bus Interface (USB) H8S/2215 Group (2) Data Stage (Control-In) The firmware first analyzes command data from the host in the setup stage, and determines the subsequent data stage direction. If the result of command data analysis is that the data stage is intransfer, one packet of data to be sent to the host is written to the FIFO. If there is more data to be sent, this data is written to the FIFO after the data written first has been sent to the host (EP0iTS of UIFR0 is set to 1). The end of the data stage is identified when the host transmits an OUT token and the status stage is entered. Page 558 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) USB function Firmware Receive IN token From setup stage 1 written to EP0sRDFN in UTRG0? Write data to USB endpoint data register 0i (UEDR0i) No NAK Yes Valid data in EP0iFIFO? Write 1 to EP0i packet enable bit (EP0iPKTE in UTRG0 = 1) No NAK Yes Transmit data to host ACK Set EP0i transmit complete flag (EP0iTS in UIFR0 = 1) EXIRQx Clear EP0i transmit complete flag (EP0iTS in UIFR0 = 0) Write data to USB endpoint data register 0i (UEDR0i) Write 1 to EP0i packet enable bit (EP0iPKTE in UTRG0 = 1) Note: If the size of the data transmitted by the function is smaller than the data size requested by the host, the function indicates the end of the data stage by returnning to the host a packet shorter than the maximum packet size. If the size of the data transmitted by the function is an integral multiple of the maximum packet size, the function indicates the end of the data stage by transmitting a zero-length packet. Figure 15.14 Data Stage Operation (Control-In) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 559 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) (3) Data Stage (Control-Out) The firmware first analyzes command data from the host in the setup stage, and determines the subsequent data stage direction. If the result of command data analysis is that the data stage is outtransfer, the application waits for data from the host, and after data is received (EP0oTS of UIFR0 is set to 1), reads data from the FIFO. Next, the firmware writes 1 to the EP0o read complete bit, empties the receive FIFO, and waits for reception of the next data. The end of the data stage is identified when the host transmits an IN token and the status stage is entered. USB function Firmware Receive OUT token 1 written to EP0sRDFN in UTRG0? No NAK Yes Receive data from host ACK EXIRQx Set EP0o receive complete flag (EP0oTS in UIFR0 = 1) Read data from USB endpoint receive data size register 0o (UESZ0o) Receive OUT token 1 written to EP0oRDFN in UTRG0? Clear EP0o receive complete flag (EP0oTS in UIFR0 = 0) No NAK Read data from USB endpoint data register 0o (UEDR0o) Yes Write 1 to EP0o read complete bit (EP0oRDFN in UTRG0 = 1) Figure 15.15 Data Stage Operation (Control-Out) Page 560 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) (4) Status Stage (Control-In) The control-in status stage starts with an OUT token from the host. The firmware receives 0-byte data from the host, and ends control transfer. USB function Firmware Receive OUT token 0-byte reception from host ACK Set EP0o receive complete flag (EP0oTS UIFR0 = 1) End of control transfer EXIRQx Clear EP0o receive complete flag (EP0oTS in UIFR0 = 0) Write 1 to EP0o read complete bit (EP0oRDFN in UTRG0 = 1) End of control transfer Figure 15.16 Status Stage Operation (Control-In) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 561 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) (5) Status Stage (Control-Out) The control-out status stage starts with an IN token from the host. When an IN-token is received at the start of the status stage, there is not yet any data in the EP0iFIFO, and so an EP0i transfer request interrupt is generated. The application recognizes from this interrupt that the status stage has started. Next, in order to transmit 0-byte data to the host, 1 is written to the EP0i packet enable bit but no data is written to the EP0iFIFO. As a result, the next IN token causes 0-byte data to be transmitted to the host, and control transfer ends. After the application has finished all processing relating to the data stage, 1 should be written to the EP0i packet enable bit. USB function Firmware Receive IN token Valid data in EP0iFIFO? No EXIRQx NAK Clear EP0i transfer request flag (EP0iTR in UIFR0 = 0) Yes Write 1 to EP0i packet enable bit (EP0iPKTE in UTRG0 = 1) Transfer 0-byte data to host ACK Write 0 to EP0i transfer request interrupt enable bit (EP0iTRE in UIER0 = 0) Set EP0i transmit complete flag (EP0iTS in UIFR0 = 1) End of control transfer EXIRQx Clear EP0i transmit complete flag (EP0iTS in UIFR0 = 0) End of control transfer Figure 15.17 Status Stage Operation (Control-Out) Page 562 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 15.5.5 Section 15 Universal Serial Bus Interface (USB) Interrupt-In Transfer (EP1i Is specified as Endpoint) USB function Firmware Is there transmit data to host? No Yes Receive IN token Write data to USB endpoint data register 1i (UEDR1i) Valid data in EP1iFIFO? No NAK Yes Write 1 to EP1i packet enable bit (EP1iPKTE in UTRG0 = 1) Transmit data to host ACK Set EP1i transmit complete flag (EP1iTS in UIFR0 = 1) Interrupt request Clear EP1i transmit complete flag (EP1iTS in UIFR0 = 0) Is there transmit data to host? No Yes Write data to USB endpoint data register 1i (UEDR1i) Write 1 to EP1i packet enable bit (EP1iPKTE in UTRG0 = 1) Note: This flowchart shows just one example of interrupt transfer processing. Other possibilities include an operation flow in which, if there is data to be transferred, the EP1i data enable bit in the USB data status register is referenced to confirm that the FIFO is empty, and then data is written to the FIFO. Figure 15.18 EP1i Interrupt-In Transfer Operation REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 563 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.5.6 Bulk-In Transfer (Dual FIFOs) (EP2i Is specified as Endpoint) EP2i has two 64-byte FIFOs, but the user can perform data transmission and transmit data writes without being aware of this dual-FIFO configuration. However, one data write is performed for one FIFO. For example, even if both FIFOs are empty, it is not possible to perform EP2iPKTE at one time after consecutively writing 128 bytes of data. EP2iPKTE must be performed for each 64byte write. When transmitting data to the host using a bulk-in transfer, the EP2iFIFO empty interrupt must first be enabled. 1 is written to the UIER1/EP2iEMPTYE bit, and the EP2iFIFO empty interrupt is enabled. At first, both EP2iFIFOs are empty, and so an EP2iFIFO empty interrupt is generated immediately. The data to be transmitted is written to the data register using this interrupt. After the first transmit data write for one FIFO, the other FIFO is empty, and so the next transmit data can be written to the other FIFO immediately. When both FIFOs are full, EP2iEMPTY is cleared to 0. If at least one FIFO is empty, UIFR1/EP2iEMPTY is set to 1. When ACK is returned from the host after data transmission is completed, the FIFO used in the data transmission becomes empty. If the other FIFO contains valid transmit data at this time, transmission can be continued. When transmission of all data has been completed, write 0 to UIER1/EP2iEMPTYE and disable EXIRQ0 or EXIRQ1 interrupt requests. Page 564 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) USB function Firmware Receive IN token No Valid data in EP2iFIFO? Is there data to be transmitted to the host? NAK Yes No Yes Write 1 to EP2iFIFO empty enable (EP2iEMPTYE in UIER1 = 1) Transmit data to host ACK Yes Space in EP2iFIFO? Set EP2iFIFO empty status (EP2iEMPTY in UIFR1 = 1) EXIRQx EP2iEMPTY in UIFR1 interrupt No Clear EP2iFIFO empty status (EP2iEMPTY in UIFR1 = 0) Write one packet of data to USB endpoint data register 2i (UEDR2i) Write 1 to EP2i packet enable bit (EP2iPKTE in UTRG0 = 1) Is there data to be transmitted to the host? No Yes Write 0 to EP2iFIFO empty interrupt enable bit (EP2iEMPTYE in UIER1 = 0) Figure 15.19 EP2i Bulk-In Transfer Operation REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 565 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.5.7 Bulk-Out Transfer (Dual FIFOs) (EP2o Is specified as Endpoint) EP2o has two 64-byte FIFOs, but the user can perform data reception and receive data reads without being aware of this dual-FIFO configuration. When one FIFO is full after reception is completed, the UIFR1/EP2oREADY bit is set. After the first receive operation into one of the FIFOs when both FIFOs are empty, the other FIFO is empty, and so the next packet can be received immediately. When both FIFOs are full, NAK is returned to the host automatically. When reading of the receive data is completed following data reception, 1 is written to the UTRG0/EP2oRDFN bit. This operation empties the FIFO that has just been read, and makes it ready to receive the next packet. Page 566 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) USB function Firmware Receive OUT token Space in EP2oFIFO? No NAK Yes Transmit data from host ACK EXIRQx Set EP2o data ready status (EP2oREADY in UIFR1 = 1) Read USB endpoint receive data size register 2o (UESZ2o) Read data from USB endpoint data register 2o (UEDR2o) Write 1 to EP2o read complete bit (EP2oRDFN in UTRG0 = 1) Both EP2oFIFOs empty? No EXIRQx Yes Clear EP2o data ready status (EP2oREADY in UIFR1 = 0) Figure 15.20 EP2o Bulk-Out Transfer Operation REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 567 of 846 Section 15 Universal Serial Bus Interface (USB) 15.5.8 H8S/2215 Group Isochronous–In Transfer (Dual-FIFO) (When EP3i Is Specified as Endpoint) EP3i has two 128-byte (maximum) FIFOs, however the user can perform data transmission and transmit data writes without being aware of this dual-FIFO configuration. In isochronous transfer, as a transmission is performed once a frame (1 ms), the hardware automatically switches FIFOs when the hardware receives the SOF. Even when SOF cannot be received by an error, enabling the SOF marker function allows the hardware to automatically switch the FIFOs every 1 ms. In addition, the USB function checks if the valid data of the previous frame was transferred from the FIFO to the host after SOF has been received. As a result, if the valid data in the FIFO is not transferred to the host (if the host does not return an IN token or if an IN token error has occurred), the USB regards it as EP3i IN token not received and sets the EP3iTF bit of UIFR1 to 1. Two FIFOs are switched when the SOF is received, the FIFO used to transfer data to the host differs from the FIFO to which the firmware writes transmit data. Accordingly, no contention occurs between one FIFO read and the other FIFO write. The data to be written by the firmware is transferred to the host in the next frame. As two FIFOs are automatically switched when the SOF is received, data must be written within a single frame. The USB function transfers data to the host if the FIFO contains data to be sent to the host after an IN token has been received. If the FIFO contains no data, the USB function sets the TR flag to 1 and sends 0-byte data to the host. The firmware first calls the isochronous transfer process routine by the SOF interrupt and checks the time stamp. The firmware then writes 1-packet data to the FIFO and this 1-packed data is sent to the host in the next frame. Page 568 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) USB function Firmware EXIRQx Receive SOF Valid data in FIFO B has been transferred? No EP3i IN token not received (Set EP3iTF in UIFR1 to 1) Yes Clear the SOF packet detection flag (Clear SOF in UIFR3 to 0) Read USB time stamp registers H and L (UTSRH and UTSRL) Switch to FIFO A FIFO A FIFO B Receive IN token Valid data in FIFO A has been transferred? No Set EP3i transfer request flag (Set EP3iTR in UIFR1 to 1) Write 1-packet data to the USB endpoint data register 3i (UEDR3i) Yes Send 0-byte data Send data to the host EXIRQx Receive SOF Valid data in FIFO A has been transferred? EP3i IN token not received (Set EP3iTF in UIFR1 to 1) No Yes Start of Frame Clear the SOF packet detection flag (Clear SOF in UIFR3 to 0) Read USB time stamp registers H and L (UTSRH and UTSRL) Switch to FIFO B FIFO A FIFO B Receive IN token Is there a valid data in EP3iFIFO? No EP3i IN token not received (Set EP3iTR in UIFR1 to 1) Write 1-packet data to the USB endpoint data register 3i (UEDR3i) Yes Send 0-byte data Send data to the host Figure 15.21 EP3i Isochronous-In Transfer Operation REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 569 of 846 Section 15 Universal Serial Bus Interface (USB) 15.5.9 H8S/2215 Group Isochronous–Out Transfer (Dual-FIFO) (When EP3o Is Specified as Endpoint) EP3o has two 128-byte (maximum) FIFOs, however the user can perform data transmission and transmit data writes without being aware of this dual-FIFO configuration. In isochronous transfer, as a transmission is performed once a frame (1 ms), the hardware automatically switches FIFOs when the hardware receives the SOF. (Even when SOF cannot be received by an error, enabling the SOF marker function allows the hardware to automatically switch the FIFOs every 1 ms.) Two FIFOs are switched when the SOF is received, the FIFO used to transfer data from the host to the firmware differs from the FIFO from which the firmware reads transmit data. Accordingly, no contention occurs between one FIFO read and the other FIFO write. The firmware read the data in the previous frame. As two FIFOs are automatically switched when the SOF is received, data must be read within a single frame. The USB function receives data from the host after an OUT token has been received. If a data error occurs on data reception, the USB function sets the TF flag to 1; if no data error occurs, the USB function sets the TS flag to 1. The firmware first calls the isochronous transfer process routine via the SOF interrupt, checks the time stamp, and then reads from the FIFO. Accordingly, the firmware checks whether a data error occurs or not via status information indicated by the TF and TS flags. These TF and TS flags indicate the status of the FIFO currently being read. Page 570 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) USB function Firmware EXIRQx Receive SOF Switch to FIFO B-side UIFR1/EP3oTS, EP3oTF update Start of Frame Clear the SOF packet detection flag (Clear SOF in UIFR3 to 0) Read USB time stamp registers H and L (UTSRH and UTSRL) FIFO B FIFO A Receive OUT token Read EP3o statis (Read EP3oTS and EP3oTF in UIFR1) Receive data from the host Receive data error? Read USB endpoint receive data size register 3o (UESZ3o) No Read data from the USB endpoint data register 3o (UEDR3o) Yes Set EP3o normal receive status to 1 Set EP3o abnormal receive status to 1 (Set internal EP3oTS to 1) (Set internal EP3oTF to 1) EXIRQx Receive SOF Switch to FIFO A-side UIFR1/EP3oTS, EP3oTF update Start of Frame Clear the SOF packet detection flag (Clear SOF in UIFR3 to 0) Read USB time stamp registers H and L (UTSRH and UTSRL) FIFO A FIFO B Receive OUT token Read EP3o status (Read EP3oTS and EP3oTF in UIFR1) Receive data from the host Receive data error? Read USB endpoint receive data size register 3o (UESZ3o) No Yes Set EP3o normal receive status to 1 Set EP3o abnormal receive status to 1 (Set Internal EP3oTS to 1) (Set Internal EP3oTF to 1) Read data from the USB endpoint data register 3o (UEDR3o) Figure 15.22 EP3o Isochronous-Out Transfer Operation REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 571 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.5.10 Processing of USB Standard Commands and Class/Vendor Commands (1) Processing of Commands Transmitted by Control Transfer A command transmitted from the host by control transfer may require decoding and execution of command processing by the firmware. Whether or not command decoding is required by the firmware is indicated in table 15.6 below. Table 15.6 Command Decoding on Firmware Decoding not Necessary on Firmware Decoding Necessary on Firmware Clear Feature Get Descriptor Get Configuration Synch Frame Get Interface Get Status Set Descriptor Class/Vendor command Set Address Set Configuration Set Feature Set Interface If decoding is not necessary on the firmware, command decoding and data stage and status stage processing are performed automatically. No processing is necessary by the user. An interrupt is not generated in this case. If decoding is necessary on the firmware, the USB function module stores the command in the EP0sFIFO. After normal reception is completed, the SetupTS flag of UIER0 is set and an interrupt request is generated from the EXIRQx. In the interrupt routine, eight bytes of data must be read from the EP0s data register (UEDR0s) and decoded by firmware. The necessary data stage and status stage processing should then be carried out according to the result of the decoding operation. Page 572 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.5.11 Stall Operations (1) Overview This section describes stall operations in the USB function module. There are two cases in which the USB function module stall function is used: 1. When the firmware forcibly stalls an endpoint for some reason 2. When a stall is performed automatically within the USB function module due to a USB specification violation The USB function module has internal status bits that hold the status (stall or non-stall) of each endpoint. When a transaction is sent from the host, the module references these internal status bits and determines whether to return a stall to the host. These bits cannot be cleared by the application; they must be cleared with a Clear Feature command from the host. (2) Forcible Stall by Firmware The firmware uses UESTL to issue a stall request for the USB function module. When the firmware wishes to stall a specific endpoint, it sets the corresponding EPnSTL bit (1-1 in figure 15.23). The internal status bits are not changed. When a transaction is sent from the host for the endpoint for which the EPnSTL bit was set, the USB function module references the internal status bit, and if this is not set, references the corresponding EPnSTL bit (1-2 in figure 15.23). If the corresponding EPnSTL bit is not set, the internal status bit is not changed and the transaction is accepted. If the corresponding EPnSTL bit is set, the USB function module sets the internal status bit and returns a stall handshake to the host (1-3 in figure 15.23). Once an internal status bit is set, it remains set until cleared by a Clear Feature command from the host, without regard to EPnSTL. Even after a bit is cleared by the Clear Feature command (3-1 in figure 15.23), the USB function module continues to return a stall handshake while the EPnSTL bit is set, since the internal status bit is set each time a transaction is executed for the corresponding endpoint (1-2 in figure 15.23). To clear a stall, therefore, it is necessary for the corresponding EPnSTL bit to be cleared by the firmware, and also for the internal status bit to be cleared with a Clear Feature command (2-1 to 2-3 in figure 15.23). REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 573 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) (1) Transition from normal operation to stall USB function module (1-1) USB EPnSTL 0→1 Internal status bit 0 1. Set EPnSTL to 1 by firmware (1-2) Reference Transaction request EPnSTL 1 Internal status bit 0 1. Receive IN/OUT token from the host 2. Refer to EPnSTL To (1-3) (1-3) Stall STALL handshake EPnSTL 1 (SCME = 0) Internal status bit 0→1 To (2-1) or (3-1) 1. SCME is set to 1 2. EPnSTL is set to 1 3. Set internal status bit to 1 4. Transmit STALL handshake (2) When Clear Feature is sent after EPnSTL is cleared (2-1) Transaction request Internal status bit 1 EPnSTL 1→0 Internal status bit 1 EPnSTL 0 Internal status bit 1→0 EPnSTL 0 1. Clear EPnSTL to 0 by firmware 2. Receive IN/OUT token from the host 3. Internal status bit has been set to 1 4. EPnSTL not referenced 5. No change in internal status bit (2-2) STALL handshake 1. Transmit STALL handshake (2-3) Clear Feature command 1. Clear internal status bit to 0 Normal status restored (3) When Clear Feature is sent before EPnSTL is cleared to 0 (3-1) Clear Feature command EPnSTL 1 Internal status bit 1→0 1. Clear internal status bit to 0 2. No change in EPnSTL bit To (1-2) Figure 15.23 Forcible Stall by Firmware Page 574 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) (3) Automatic Stall by USB Function Module When a stall setting is made with the Set Feature command, when the information of this module differs from that returned to the host by the Get Descriptor, or in the event of a USB specification violation, the USB function module automatically sets the internal status bit for the relevant endpoint without regard to EPnSTL, and returns a stall handshake (1-1 in figure 15.24). Once an internal status bit is set, it remains set until cleared by a Clear Feature command from the host, without regard to EPnSTL. After a bit is cleared by the Clear Feature command, EPnSTL is referenced (3-1 in figure 15.24). The USB function module continues to return a stall handshake while the internal status bit is set, since the internal status bit is set even if a transaction is executed for the corresponding endpoint (2-1 and 2-2 in figure 15.24). To clear a stall, therefore, the internal status bit must be cleared with a Clear Feature command (3-1 in figure 15.24). If set by the firmware, EPnSTL should also be cleared (2-1 in figure 15.24). REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 575 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) (1) Transition from normal operation to stall USB function module (1-1) STALL handshake Internal status bit 0→1 EPnSTL 0 To (2-1) or (3-1) 1. In case of USB specification violation, USB function module stalls endpoint automatically. (2) When transaction is performed when internal status bit is set (2-1) Transaction request Internal status bit 1 EPnSTL 0 Internal status bit 1 EPnSTL 0 1. Receive IN/OUT token from the host 2. Internal status bit has been set to 1 3. EPnSTL not referenced 4. No change internal status bit (2-2) STALL handshake 1. Transmit STALL handshake Stall status maintained (3) When Clear Feature is sent before transaction is performed (3-1) Clear Feature command Internal status bit 1→0 EPnSTL 0 1. Clear the internal status bit to 0 2. No change in EPnSTL Normal status restored Figure 15.24 Automatic Stall by USB Function Module Page 576 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 15.6 Section 15 Universal Serial Bus Interface (USB) DMA Transfer Specifications Two methods of USB request and auto request are available for the DMA transfer of USB data. 15.6.1 DMA Transfer by USB Request (1) Overview Only normal mode in full address mode (cycle steal mode) supports the transfer by a USB request of the on-chip DMAC. Endpoints that can be transferred by the on-chip DMAC are EP2 and EP4 in Bulk transfer (corresponding registers are UEDR2i, UEDR2o, UEDR4i, and UEDR4o). In DMA transfer, the USB module must be accessed as an external device in area 6. The USB module cannot be accessed as a device with external ACK (single-address transfer cannot be performed). 0-byte data transfer to EP2o or EP4o is ignored even if the DMA transfer is enabled by setting the EP2oT1 or EP4oT1 bit of UDMAR to 1. (2) On-Chip DMAC Settings The on-chip DMAC must be specified as follows: A USB request (DREQ signal), activated by low-level input, byte size, full-address mode transfer, and the DTA bit of DMABCR = 1. After completing the DMA transfers of specified time, the DMAC automatically stops. Note, however, that the USB module keeps the DREQ signal low while data to be transferred by the on-chip DMAC remains regardless of the DMAC status. (3) EP2i and EP4i DMA Transfer The EP2iT1 and EP4iT1 bits of UDMAR enable DMA transfer. The EP2iT0 and EP4iT0 bits of the UDMAR specify the DREQ signal to be used by the DMA transfer. When the EP2iT1 or EP4iT1 is set to 1, the DREQ signal is driven low if at least one of EP2i and EP4i data FIFOs are empty; the DREQ signal is driven high if both EP2i and EP4i data FIFOs are full. (a) EP2iPKTE and EP4iPKTE Bits of UTRG When DMA transfer is performed on EP2i and EP4i transmit data, the USB module automatically performs the same processing as writing 1 to EP2iPKTE and EP4iPKTE if one data FIFO (64 bytes) becomes full. Accordingly, to transfer data of integral multiples of 64 bytes, the user need not write EP2iPKTE and EP4iPKTE to 1. To transfer data of less than 64 bytes, the user must write EP2iPKTE and EP4iPKTE to 1 using the DMA transfer end interrupt of the on-chip DMAC. If the user writes 1 to EP2iPKTE and EP4iPKTE in cases other than the case when data of less than 64 bytes is transferred, excess transfer occurs and correct operation cannot be guaranteed. Figure 15.25 shows an example for transmitting 150 bytes of data from EP2i to the host. In this case, internal processing the same as writing 1 to EP2iPKTE is automatically performed twice. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 577 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) This kind of internal processing is performed when the currently selected data FIFO becomes full. Accordingly, this processing is automatically performed only when 64-byte data is sent. This processing is not performed automatically when data less than 64 bytes is sent. (b) EP2i DMA Transfer Procedure 1. Set bits EP2iT1 and EP2iT0 in UDMAR. 2. DMAC settings (in DMAC specify number of transfers for 150 bytes). 3. Start DMAC. 4. DMA transfer. 5. Write 1 to EP2iPKTE in UTRG0 using DMA transfer end interrupt. 64 bytes 64 bytes EP2iPKTE (Automatically performed) 22 bytes EP2iPKTE (Automatically performed) EP2iPKTE is not performed Execute by DMA transfer end interrupt (user) Figure 15.25 EP2iPKTE Operation in UTRG0 (4) EP2o and EP4o DMA Transfer The EP2oT1 and EP4oT1 bits of UDMAR enable DMA transfer. The EP2oT0 and EP4oT0 bits of the UDMAR specify the DREQ signal to be used by the DMA transfer. When the EP2oT1 or EP4oT1 is set to 1, the DREQ signal is driven low if at least one of EP2o and EP4o data FIFOs are full (ready state); the DREQ signal is driven high if both EP2o and EP4o data FIFOs are empty when all receive data items are read. (a) EP2oRDFN and EP4oRDFN Bits of UTRG When DMA transfer is performed on EP2o and EP4o receive data, do not write 1 to EP2oRDFN or EP4oRDFN after one data FIFO (64 bytes) has been read. In data transfer other than DMA transfer, the next data cannot be read after one data FIFO (64 bytes) has been read unless EP2oRDFN and EP4oRDFN are set to 1. While in DMA transfer, the USB module automatically performs the same processing as writing 1 to EP2oRDFN and EP4oRDFN if the currently selected FIFO becomes empty. Accordingly, in DMA transfer, the user need not write EP2oRDFN and EP4oRDFN to 1. If the user writes EP2oRDFN and EP4oRDFN to 1 in DMA transfer, excess transfer occurs and correct operation cannot be guaranteed. Figure 15.26 shows an example of EP2o receiving 150 bytes of data from the host. In this case, internal processing the same as writing 1 to EP2oRDFN is automatically performed three times. Page 578 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) This kind of internal processing is performed when the currently selected data FIFO becomes empty. Accordingly, this processing is automatically performed both when 64-byte data is sent and when data less than 64 bytes is sent. (b) EP2o DMA Transfer Procedure The DMAC transfer unit should be one packet. Therefore, after the EP2oREADY flag is set, check the size of the data received from the host and make DMAC settings to match the number of transfers required. 1. Set bits EP2oT1 and EP2oT0 in UDMAR. 2. Wait for EP2oREADY flag to be set. 3. DMAC settings. Read value of UESZ2o and specify number of transfers to match size of received data (64 bytes or less). 4. Start DMAC. 5. DMA transfer (transfer of 64 bytes or less). 6. Wait for end of DMA transfer. 7. Repeat steps 2 to 6 above. 64 bytes 64 bytes EP2oRDFN (Automatically performed) 22 bytes EP2oRDFN EP2oRDFN (Automatically (Automatically performed) performed) Figure 15.26 EP2oRDFN Operation in UTRG0 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 579 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.6.2 DMA Transfer by Auto-Request (1) Overview Burst mode transfer or ycle steal transfer can be selected for the on-chip DMAC auto-request transfer. Endpoints that can be transferred by the on-chip DMAC are all registers (UEDR0s, UEDR0i, UEDR0o, UEDR1i, UEDR2i, UEDR2o, UEDR3i, UEDR3o, UEDR4i, UEDR4o, and UEDR5i). Confirm flags and interrupts corresponding to each data register before activating the DMA. As UDMAR is not used in auto-request mode, set UDMAR to H'00. (2) On-Chip DMAC Settings The on-chip DMAC must be specified as follows: Auto-request, byte size, full-address mode transfer, and number of transfers equal to or less than the maximum packet size of the data register. After completing the DMAC transfers of specified time, the DMAC automatically stops. (3) EPni DMA Transfer (n = 0 to 5) (a) EPniPKTE Bits of UTRG (n = 0 to 5) Note that 1 is not automatically written to EPniPKTE in case of auto-request transfer. Always write 1 to EPniPKTE by the CPU. The following example shows when 150-byte data is transmitted from EP2i to the host. In this case, 1 should be written to EP2iPKTE three times as shown in figure 15.27. (b) EP2i DMA Transfer Procedure The DMAC transfer unit should be one packet. Therefore, set the number of transfers so that it is equal to or less than the maximum packet size of each endpoint. 1. Confirm that UIFR1/EP2iEMPTY flag is 1. 2. DMAC settings for EP2i data transfer (such as auto-request and address setting). 3. Set the number of transfers for 64 bytes (the maximum packet size or less) in the DMAC. 4. Activate the DMAC (write 1 to DTE after reading DTE as 0). 5. DMA transfer. 6. Write 1 to the UTRG0/EP2iPKTE bit after the DMA transfer is completed. 7. Repeat steps 1 to 6 above. 8. Confirm that UIFR1/EP2iEMPTY flag is 1. 9. Set the number of transfer for 22 bytes in the DMAC. 10. Activate the DMAC (write 1 to DTE after reading DTE as 0). 11. DMA transfer. 12. Write 1 to the UTRG0/EP2iPKTE bit after the DMA transfer is completed. Page 580 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 64 bytes 64 bytes Write 1 to EP2iPKTE 22 bytes Write 1 to EP2iPKTE Write 1 to EP2iPKTE Figure 15.27 EP2iPKTE Operation in UTRG0 (Auto-Request) (4) EPno DMA Transfer (n = 0, 2, 4) (a) EPnoRDFN Bits of UTRG (n = 0, 2, 4) Note that 1 is not automatically written to EPnoRDFN in case of auto-request transfer. Always write 1 to EPnoRDFN by the CPU. The following example shows when EP2o receives 150-byte data from the host. In this case, 1 should be written to EP2oRDFN three times as shown in figure 15.28. (b) EP2o DMA Transfer Procedure The DMAC transfer unit should be one packet. Therefore, set the number of transfers so that it is equal to or less than the maximum packet size of each endpoint. 1. Wait for the UIFR1/EP2oREADY flag to be set. 2. DMAC settings for EP2o data transfer (such as auto-request and address setting). Read value of UESZ2o and specify number of transfers to match size of received data (64 bytes or less). 3. Activate the DMAC (write 1 to DTE after reading DTE as 0). 4. DMA transfer (transfer of 64 bytes or less). 5. Write 1 to the UTRG0/EP2oRDFN bit after the DMA transfer is completed. 6. Repeat steps 1 to 5 above. 64 bytes 64 bytes Write 1 to EP2oRDFN 22 bytes Write 1 to EP2oRDFN Write 1 to EP2oRDFN Figure 15.28 EP2oRDFN Operation in UTRG0 (Auto-Request) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 581 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.7 Endpoint Configuration Example Figure 15.29 shows an example of endpoint configuration. EPINFO data for the endpoint configuration shown in figure 15.29 is shown in table 15.9. In this example, two endpoints are not used. However, note that to load all EPINFO data from UEP1R00_0 to UEPIR22_4, dummy data must be written to the unused endpoints. An example of dummy data is also shown in table 15.9. Configuration 1 InterfaceNumber 0 AlternateSetting 0 InterfaceNumber 1 AlternateSetting 0 EP0 Control(in,out) 64 bytes EP1 Bulk(out) 64 bytes EP2 Bulk(in) 64 bytes EP3 Interrupt(in) 32 bytes EP4 Interrupt(in) 64 bytes EP5 Bulk(in) 64 bytes EP6 Bulk(out) 64 bytes Unused EP Unused EP Figure 15.29 Endpoint Configuration Example If endpoints are configured as shown in figure 15.27, some register names change as shown in table 15.7. In addition, some register bit names also change as shown in table 15.8. In the example shown in figure 15.27, register or bit names are modified for those determined based on the Bluetooth standard as follows: EP1i→EP3, EP2i→EP2, EP2o→EP1, EP4i→EP5, EP4o→EP6, and EP5i→EP4. Page 582 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) Table 15.7 Register Name Modification List Register Name Based on Bluetooth Standard Modified Register Name Abbreviation R/W Initial Value Address UEDR1i USB endpoint data register 3 (For Interrupt_in data transfer) UEDR3 W H'00 H'C0009C to 8 H'C0009F UEDR2i USB endpoint data register 2 (For Bulk_in data transfer) UEDR2 W H'00 H'C000A0 to 8 H'C000A3 UEDR2o USB endpoint data register 1 (For Bulk_out data transfer) UEDR1 R Undefined H'C000A4 to 8 H'C000A7 UEDR3i Reserved register (For Isochronous_in data transfer)* (UEDRn)* W H'00 H'C000A8 to 8 H'C000AB UEDR3o Reserved register (For Isochronous_out data transfer)* (UEDRn)* R Undefined H'C000AC to 8 H'C000AF UEDR4i USB endpoint data register 5 (For Bulk_in data transfer) UEDR5 W H'00 H'C000B0 to 8 H'C000B3 UEDR4o USB endpoint data register 6 (For Bulk_out data transfer) UEDR6 R Undefined H'C000B4 to 8 H'C000B7 UEDR5i USB endpoint data register 4 (For Interrupt_in data transfer) UEDR4 W H'00 H'C000B8 to 8 H'C000BB USEZ2o USB endpoint receive data size UESZ1 register 1 (For Bulk_out data transfer) R Undefined H'C000BD 8 USEZ3o Reserved register (For Isochronous_out data transfer)* (UESZn)* R Undefined H'C000BE 8 USEZ4o USB endpoint receive data size UESZ6 register 6 (For Bulk_out data transfer) Undefined H'C000BF 8 Note: * Registers related to unused endpoints are handled as reserved registers. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 R Access Width Page 583 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) Table 15.8 Bit Name Modification List Abbreviation R/W Initial Value Address Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 UDMAR R/W H'00 H'C00082 EP6T1 EP6T0 EP5T1 EP5T0 EP1T1 EP1T0 EP2T1 EP2T0 UTRG0 W H'00 H'C00084 — — EP1RDFN EP2PKTE EP3PKTE EP0o RDFN EP0iPKTE EP0s RDFN UTRG1 W H'00 H'C00085 — — — — — EP4PKTE EP6RDFN EP5PKTE UFCLR0 W H'00 H'C00086 (EPnCLR) (EPnCLR) EP1CLR EP2CLR EP3CLR EP0oCLR EP0iCLR — UFCLR1 W H'00 H'C00087 — — — — — EP4CLR EP6CLR EP5CLR UESTL0 R/W H'00 H'C00088 (EPnSTL) (EPnSTL) EP1STL EP2STL EP3STL — — EP0STL EP5STL UESTL1 R/W H'00 H'C00089 SCME — — — — EP4STL EP6STL UIFR0 R/W H'00 H'C000C0 BRST — EP3TR EP3TS EP0oTS EP0iTR EP0iTS SetupTS UIFR1 R/W H'01*1 H'C000C1 (EPnTF) (EPnTS) (EPnTF) (EPnTR) *2 EP1 READY EP2TR EP2 EMPTY EP6 READY EP5TR EP5 EMPTY or H'09 UIFR2 R/W H'01*1 EP2ALL EMPTY H'C000C2 — — EP4TR EP4TS or H'09 UIER0 UIER1 R/W R/W H'00 H'00 *2 EP5ALL EMPTY H'C000C4 H'C000C5 BRSTE (EPnTFE) — (EPnTSE) EP3TRE (EPnTFE) EP3TSE EP0oTSE EP0iTRE EP0iTSE SetupTSE (EPnTRE) *2 EP1 READYE EP2TRE EP2 EMPTYE EP6 READYE EP5TRE EP5 EMPTYE EP2ALL EMPTYE UIER2 R/W H'00 H'C000C6 — — EP4TRE EP4TSE *2 EP5ALL EMPTYE UISR0 UISR1 R/W R/W H'00 H'00 H'C000C8 H'C000C9 BRSTS (EPnTFS) — (EPnTSS) EP3TRS (EPnTFS) EP3TSS EP0oTSS EP0iTRS EP0iTSS SetupTSS (EPnTRS) *2 EP1 READYS EP2TRS EP2 EMPTYS EP6 READYS EP5TRS EP5 EMPTYS EP2DE EP3DE EP0iDE EP2ALL EMPTYS UISR2 R/W H'00 H'C000CA — — EP4TRS EP4TSS *2 EP5ALL EMPTYS UDSR R H'00 H'C000CC — — EP4DE EP5DE — Notes: 1. H'01 in H8S/2215. H'09 in H8S/2215R, H8S/2215T and H8S/2215C. 2. Available only in H8S/2215R, H8S/2215T and H8S/2215C. “⎯” in H8S/2215. Table 15.9 shows the EPINFO data for the endpoint configuration shown in figure 15.27. This USB module is optimized by the hardware specific to the transfer type. Accordingly, endpoints cannot be configured completely freely. Endpoint configuration can be modified within the restriction as shown in table 15.9 (data indicated within parentheses [ ]), data other than that within parentheses [ ] must be specified the value shown in table 15.9. For unused endpoints, dummy data (0) must be written. Page 584 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) Table 15.9 EPINFO Data Settings EPINFO Data Settings Based on Bluetooth Standard Register No. Name 1 2 Address Corresponding UEPIRn_0 to Transfer Mode*1 UEPIRn_4 Settings*2 UEPIR00_0 to H'C00000 to Specific to B'0000_00_00_000_00_0_ UEPIR00_4 0001000000_0000000000000000 H'C0004 Control transfer UEPIR01_0 to H'C00005 to Specific to B'[0011]_01_[00]_[000]_11_1_ UEPIR01_4 3 [0000100000]_0000000000000001* H'C0009 Interrupt in UEPI UEPI UEPI UEPI UEPI Rn_0 Rn_1 Rn_2 Rn_3 Rn_4 H'00 H'00 H'40 H'00 H'00 H'34 H'1C H'20 H'00 H'01 H'24 H'14 H'40 H'00 H'02 H'14 H'10 H'40 H'00 H'03 H'04 H'0C H'00 H'00 H'04 H'04 H'08 H'00 H'00 H'05 H'04 H'0C H'00 H'00 H'06 H'04 H'08 H'00 H'00 H'07 H'04 H'0C H'00 H'00 H'08 H'04 H'08 H'00 H'00 H'09 H'04 H'0C H'00 H'00 H'0A H'04 H'08 H'00 H'00 H'0B H'04 H'0C H'00 H'00 H'0C H'04 H'08 H'00 H'00 H'0D H'04 H'0C H'00 H'00 H'0E H'04 H'08 H'00 H'00 H'0F H'04 H'0C H'00 H'00 H'10 transfer 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 UEPIR02_0 to H'C0000A to Specific to Bulk B'[0010]_01_[00]_[000]_10_1_ UEPIR02_4 4 [0001000000]_0000000000000010* H'C000E in transfer UEPIR03_0 to H'C0000F to Specific to Bulk B'[0001]_01_[00]_[000]_10_0 UEPIR03_4 4 [0001000000]_0000000000000011* H'C0013 out transfer UEPIR04_0 to H'C00014 to Specific to Isoch B'[0000]_01_[00]_[000]_01_1_ UEPIR04_4 5 6 [0000000000]_0000000000000100* * H'C0018 in transfer UEPIR05_0 to H'C00019 to Specific to Isoch B'[0000]_01_[00]_[000]_01_0_ UEPIR05_4 5 6 [0000000000]_0000000000000101* * H'C001D out transfer UEPIR06_0 to H'C0001E to Specific to Isoch B'[0000]_01_[00]_[000]_01_1_ UEPIR06_4 5 6 [0000000000]_0000000000000110* * H'C0022 in transfer UEPIR07_0 to H'C00023 to Specific to Isoch B'[0000]_01_[00]_[000]_01_0_ UEPIR07_4 5 6 [0000000000]_0000000000000111* * H'C0027 out transfer UEPIR08_0 to H'C00028 to Specific to Isoch B'[0000]_01_[00]_[000]_01_1_ UEPIR08_4 5 6 [0000000000]_0000000000001000* * H'C002C in transfer UEPIR09_0 to H'C0002D to Specific to Isoch B'[0000]_01_[00]_[000]_01_0_ UEPIR09_4 5 6 [0000000000]_0000000000001001* * H'C0031 out transfer UEPIR10_0 to H'C00032 to Specific to Isoch B'[0000]_01_[00]_[000]_01_1_ UEPIR10_4 5 6 [0000000000]_0000000000001010* * H'C0036 in transfer UEPIR11_0 to H'C00037 to Specific to Isoch B'[0000]_01_[00]_[000]_01_0_ UEPIR11_4 5 6 [0000000000]_0000000000001011* * H'C003B out transfer UEPIR12_0 to H'C0003C to Specific to Isoch B'[0000]_01_[00]_[000]_01_1_ UEPIR12_4 5 6 [0000000000]_0000000000001100* * H'C0040 in transfer UEPIR13_0 to H'C00041 to Specific to Isoch B'[0000]_01_[00]_[000]_01_0_ UEPIR13_4 5 6 [0000000000]_0000000000001101* * H'C0045 out transfer UEPIR14_0 to H'C00046 to Specific to Isoch B'[0000]_01_[00]_[000]_01_1_ UEPIR14_4 5 6 [0000000000]_0000000000001110* * H'C004A in transfer UEPIR15_0 to H'C0004B to Specific to Isoch B'[0000]_01_[00]_[000]_01_0_ UEPIR15_4 5 6 [0000000000]_0000000000001111* * H'C004F out transfer UEPIR16_0 to H'C00050 to Specific to Isoch B'[0000]_01_[00]_[000]_01_1_ UEPIR16_4 5 6 [0000000000]_0000000000010000* * H'C0054 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 in transfer Page 585 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) EPINFO Data Settings Based on Bluetooth Standard Register No. Name 18 19 20 21 22 23 Address Corresponding UEPIRn_0 to Transfer Mode*1 UEPIRn_4 Settings*2 UEPIR17_0 to H'C00055 to Specific to Isoch B'[0000]_01_[00]_[000]_01_0_ UEPIR17_4 5 6 [0000000000]_0000000000010001* * H'C0059 out transfer UEPIR18_0 to H'C0005A to Specific to Isoch B'[0000]_01_[00]_[000]_01_1_ UEPIR18_4 5 6 [0000000000]_0000000000010010* * H'C005E in transfer UEPIR19_0 to H'C0005F to Specific to Isoch B'[0000]_01_[00]_[000]_01_0_ UEPIR19_4 5 6 [0000000000]_0000000000010011* * H'C0063 out transfer UEPIR20_0 to H'C00064 to Specific to Bulk B'[0101]_01_[01]_[000]_10_1_ UEPIR20_4 4 [0001000000]_0000000000010100* H'C0068 in transfer UEPIR21_0 to H'C00069 to Specific to Bulk B'[0110]_01_[01]_[000]_10_0_ UEPIR21_4 4 [0001000000]_0000000000010101* H'C006D out transfer UEPIR22_0 to H'C0006E to Specific to B'[0100]_01_[01]_[000]_11_1_ UEPIR22_4 3 [0001000000]_0000000000010110* H'C0072 Interrupt in UEPI UEPI UEPI UEPI UEPI Rn_0 Rn_1 Rn_2 Rn_3 Rn_4 H'04 H'08 H'00 H'00 H'11 H'04 H'0C H'00 H'00 H'12 H'04 H'08 H'00 H'00 H'13 H'55 H'14 H'40 H'00 H'14 H'65 H'10 H'40 H'00 H'15 H'45 H'1C H'40 H'00 H'16 transfer Notes: 1. Each endpoint is optimized by the hardware specific for the transfer mode. The transfer mode shown in table 15.8 must be specified. (D28 and D27 for all EPINFO data items must e specified as shown in table 15.8.) 2. Data indicated within parentheses [ ] can be modified. Data other than that within parentheses [ ] must be specified as shown in table 15.8. 3. Maximum packet size of Interrupt transfer must be from 0 to 64. 4. Maximum packet size of Bulk transfer must be 64 when used or 0 when unused. 5. Maximum packet size of Isochronous transfer must be from 0 to 128. Endpoint number of Isochronous_in can differ from that of Isochronous_out. However, note that endpoint numbers of all Isochronous_in must be the same. Endpoint numbers of all Isochronous_out must also be the same. 6. Maximum packet size of the unused endpoint must be 0. Page 586 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 15.8 Section 15 Universal Serial Bus Interface (USB) USB External Circuit Example Figures 15.30 and 15.31 show the USB external circuit examples when the on-chip transceiver is used. Figures 15.32 and 15.33 show the USB external circuit examples when an external transceiver is used. USB Internal transceiver *3 Pxx VCC *4 DrVCC (P36) (3.3 V) VBUS (3.3 V) USD+ VCC (3.3 V) Regulator *1 USD- 24 Ω DrVSS 24 Ω VSS UBPM 0: Bus-powered mode VCC *2 Pull-up control external circuit for full speed D+ 1.5 kΩ DGND VBUS (5 V) USB connector Notes: 1. Step-down to the operating voltage VCC (3.3 V) of this LSI. 2. To protect the LSI, voltage applicable IC such as HD74LV-A series must be used even when the system power is turned off. 3. In HD64F2215, HD64F2215R, HD64F2215T, HD6432215B, and HD6432215C, Pxx should be assigned to an output port as the D+ pull-up control pin. In HD64F2215U, HD64F2215RU, HD64F2215TU and HD64F2215CU, in which on-chip ROM can be programmed by using the USB, P36 should be used as the D+ pull-up control pin. 4. Steps should be taken prevent noise from affecting the VBUS terminal during USB communications. Figure 15.30 USB External Circuit in Bus-Powered Mode (When On-Chip Transceiver Is Used) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 587 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) USB Internal transceiver *3 Pxx VCC *2 *4 DrVCC (P36)(3.3 V) IRQx VBUS (3.3 V) USD+ USD- DrVSS VSS UBPM VCC VCC 3.3 V 24 Ω 24 Ω 1: Self-powered mode *1 VCC *1 1.5 kΩ Pull-up control external circuit for full speed VBUS D+ (5 V) D- GND USB connector Notes: 1. To protect the LSI, voltage applicable IC such as HD74LV-A series must be used even when the system power is turned off. 2. To cancel software standby state by detecting the USB cable disconnection, the level shifter signal must also be connected to the IRQx pin. Note that the software standby state cannot be canceled by the USB interrupt EXIRQx. 3. In HD64F2215, HD64F2215R, HD64F2215T, HD6432215B, and HD6432215C, Pxx should be assigned to an output port as the D+ pull-up control pin. In HD64F2215U, HD64F2215RU, HD64F2215TU and HD64F2215CU, in which on-chip ROM can be programmed by using the USB, P36 should be used as the D+ pull-up control pin. 4. Steps should be taken prevent noise from affecting the VBUS terminal during USB communications. Figure 15.31 USB External Circuit in Self-Powered Mode (When On-Chip Transceiver Is Used) Page 588 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) P17 SUSPND PA3 SPEED P15 DrVSS VSS UBPM VCC OE P13 FSE0 VPO VM RCV VP P12 P11 *3 Pxx VCC *4 DrVCC (P36) (3.3 V) VBUS (3.3 V) P10 USB D- MODE D+ GND VCC External transceiver (ISP1104 manufactured by NXP) VCC (3.3 V) Regulator *1 Rs 0: Bus-powered mode Rs VCC D+ *2 1.5 kΩ Pull-up control external circuit for full speed DGND VBUS (5 V) USB connector Notes: 1. Step-down to the operating voltage VCC (3.3 V) of this LSI. 2. To protect the LSI, voltage applicable IC such as HD74LV-A series must be used even when the system power is turned off. 3. In HD64F2215, HD64F2215R, HD64F2215T, HD6432215B, and HD6432215C, Pxx should be assigned to an output port as the D+ pull-up control pin. In HD64F2215U, HD64F2215RU, HD64F2215TU and HD64F2215CU, in which on-chip ROM can be programmed by using the USB, P36 should be used as the D+ pull-up control pin. 4. Steps should be taken prevent noise from affecting the VBUS terminal during USB communications. Figure 15.32 USB External Circuit in Bus-Powered Mode (When External Transceiver Is Used) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 589 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) P17 SUSPND PA3 SPEED P15 DrVSS VSS UBPM VCC OE P13 FSE0 P10 VPO VM RCV VP *3 Pxx VCC *2 *4 DrVCC (P36)(3.3 V) IRQx VBUS (3.3 V) P12 P11 USB *1 D- Rs MODE D+ GND VCC VCC 3.3 V External transceiver (ISP1104 manufactured by NXP) VCC 1: Self-powered mode Rs VCC *1 1.5 kΩ Pull-up control external circuit for full speed D+ D- VBUS (5 V) GND USB connector Notes: 1. To protect the LSI, voltage applicable IC such as HD74LV-A series must be used even when the system power is turned off. 2. To cancel software standby state by detecting the USB cable disconnection, the VBUS signal must also be connected to the IRQx pin (Note that the software standby state cannot be canceled by the USB internal interrupt EXIRQx). 3. In HD64F2215, HD64F2215R, HD64F2215T, HD6432215B, and HD6432215C, Pxx should be assigned to an output port as the D+ pull-up control pin. In HD64F2215U, HD64F2215RU, HD64F2215TU and HD64F2215CU, in which on-chip ROM can be programmed by using the USB, P36 should be used as the D+ pull-up control pin. 4. Steps should be taken prevent noise from affecting the VBUS terminal during USB communications. Figure 15.33 USB External Circuit in Self-Powered Mode (When External Transceiver Is Used) Page 590 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 15.9 Usage Notes 15.9.1 Operating Frequency Section 15 Universal Serial Bus Interface (USB) • In H8S/2215 When the on-chip PLL circuit is used, the system clock of this LSI must be 16 MHz. This 16MHz system clock, used as base clock, is tripled in the on-chip PLL circuit to generate the 48MHz USB operating clock. When the USB operating clock (48 MHz) oscillator or 48-MHz external clock is used, the system clock of the LSI must be 13-MHz to 16-MHz. Mediumspeed mode is not supported; use full-speed mode. • In H8S/2215R, H8S/2215T and H8S/2215C When the on-chip PLL circuit is used, the system clock of this LSI must be 16 MHz or 24 MHz. If the system clock frequency is 16 MHz, it is tripled by the on-chip PLL circuit, and if the system clock frequency is 25 MHz, it is doubled, to generate the 48-MHz USB operating clock. When the USB operating clock (48 MHz) oscillator or 48-MHz external clock is used, the system clock of the LSI must be 13 MHz to 24 MHz*. Medium-speed mode is not supported; use full-speed mode. Note: * On the H8S/2215T, use a 16-MHz or 24-MHz system clock for the MCU, even if a 48MHz oscillator or 48-MHz external clock is used as the USB operation clock. For the H8S/2215C, use a MCU system clock in the range of 16 MHz to 24 MHz. 15.9.2 Bus Interface This module’s interface is based on the bus specifications of external area 6. Before accessing the USB, area 6 must be specified as having an 8-bit bus width and 3-state access using the bus controller register. In mode 7 (single-chip mode), the USB module cannot be accessed. In mode 6 (internal ROM enabled mode), CS6 and A7 to A0 pins are used as inputs at initialization and USB cannot be accessed. Before access to this module, set P72DDR to 1 and PC7DDR to PC0DDR to H'FF, respectively, to use CS6 and A7 to A0 pins as outputs. In mode 4 or 5 (on-chip ROM disabled mode), set P72DDR to 1 to use the CS6 pin as an output. 15.9.3 Setup Data Reception The following must be noted for the EP0s FIFO used to receive 8-byte setup data. The USB is designed to always receive setup commands. Accordingly, write from the UDC has higher priority than read from the LSI. If the reception of the next setup command starts while the is LSI reading data after completing reception, this data read from the LSI is forcibly cancelled and the next setup command write starts. After the next setup command write, data read from the LSI is thus undefined. Read operation is forcibly disabled because data cannot be guaranteed if DP-RAM used as FIFO accesses the same address for write and read. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 591 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.9.4 FIFO Clear If the USB cable is disconnected during communication, old data may be contained in the FIFO. Accordingly, FIFO must be cleared immediately after USB cable connection. In addition, after bus reset, all FIFO must also be cleared. Note, however, that FIFOs that are currently used for data transfer to or from the host must not be cleared. 15.9.5 IRQ6 Interrupt A suspend/resume interrupt requested by IRQ6 must be specified as falling-edge sensitive. 15.9.6 Data Register Overread or Overwrite When the CPU reads or writes to data registers, the following must be noted: • Transmit data registers (UEDR0i, UEDR1i, UEDR2i, UEDR3i, UEDR4i, UEDR5i) Data to be written to the transmit data registers must be within the maximum packet size. For the transmit data registers of EP2i, EP3i, and EP4i having a dual-FIFO configuration, data to be written at any time must be within the maximum packet size. In this case, after a data write, the FIFO is switched to the other FIFO, enabling an further data write when the PKTE bit of UTRG is set to 1 (in EP3i, the same operation is automatically performed when the SOF packet is received). Accordingly, data of size corresponding to two FIFO must not be written to the transmit data registers of EP2i, EP3i, and EP4i at a time. • Receive data registers (UEDR0o, UEDR2o, UEDR3o, UEDR4o) Receive data registers must not read a data size that is greater than the effective size of the read data item. In other words, receive data registers must not read data with data size larger than that specified by the receive data size register. For the receive data registers of EP2o, EP3o, and EP4o having a dual-FIFO configuration, data to be read at any time must be within the maximum packet size. In this case, after reading the currently selected FIFO, set the RDFN bit of UTRG to 1 (in EP3o, the same operation is automatically performed when the SOF packet is received). This switches the FIFO to the other FIFO and updates the receive data size, enabling the next data read. In addition, if there is no receive data in a FIFO, data must not be read. Otherwise, the pointer that controls the internal module FIFO is updated and correct operation cannot be guaranteed. Page 592 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 15.9.7 Section 15 Universal Serial Bus Interface (USB) EP3o Isochronous Transfer • Reception of EP3o data larger than the maximum packet size The EP3o data FIFO cannot receive data with size larger than the maximum packet size; the excessive data is lost. In this case, the receive size register 3o (UESZ3o) can count up to the maximum packet size and the EP3o abnormal transfer flag (EP3oTF) is set to 1. Figure 15.34 shows the 10-byte data reception when the maximum packet size is specified as 9 bytes. EP3o FIFO Data (1) Data (2) Data (3) Data (4) Data (5) Data (6) Data (7) Data (8) Data (9) Data (10) Data storage Data (1) Data (2) Data (3) Data (4) Data (5) Data (6) Data (7) Data (8) Data (9) UESZ3o H'09 Count up to maximum packet size UIFR1/EP3oTF 1 Set the EP3o abnormal transfer flag Store data items within the maximum packet size Exessive data items are lost Figure 15.34 10-Byte Data Reception REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 593 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) • EP3o receive data and status bit reading As shown in figure 15.35, FIFO are switched on SOF packet reception. FIFOs thus store the latest data. Accordingly, receive data sent from the host in frame [N] can only be read in frame [N+1]. In addition, the EP3oTF and EP3oTS status bits of UIFR1 are automatically switched on with each SOF packet reception; the EP3oTF and EP3oTS status in frame [N] can only be read in frame [N + 1]. [In frame N] EP3o FIFO A Data (1) Receive USB data (1) EP3o FIFO B — Internal flag (A-side) TF TS Modify UIFR1 No change — — Internal flag (B-side) — — Next frame [In frame N + 1] EP3o FIFO A Data (1) Receive USB data (2) EP3o FIFO B Data (2) Internal flag (A-side) TF TS UIFR1 A-side flag update TF TS Can be read Internal flag (B-side) Data (1) can be read in TF TS Modify frame [N + 1] Next frame [In frame N + 2] EP3o FIFO A Data (3) Receive USB data (3) EP3o FIFO B Data (2) Internal flag (A-side) TF TS UIFR1 Modify B-side flag update TF TS Can be read Internal flag (B-side) TF TS Data (2) can only be read in frame [N + 2] Figure 15.35 EP3o Data Reception Page 594 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 15.9.8 Section 15 Universal Serial Bus Interface (USB) Reset • A manual reset should not be performed during USB communication as the LSI will stop with the USD+, USD- pin state maintained. This USB module uses synchronous reset for some registers. The reset state of these registers must be cancelled after the clock oscillation stabilization time has passed. At initialization, reset must be cancelled using the following procedure: 1. Select the USB operating clock: Specify the UCKS3 to UCKS0 bits in UCTLR. 2. Cancel the USB module stop mode: Clear the MSTPB0 bit in MSTPCRB to 0. 3. Wait for the USB clock stabilization time: Wait until the CK48READY bit in UIFR3 is set to 1. 4. Cancel the USB interface reset state: Clear the UIFRST bit in UCTLR to 0. 5. Cancel the UDC core reset state: Clear the UDCRST bit in UCTLR to 0. For detail, see the flowcharts in section 15.5.1, Initialization, and section 15.5.2, USB Cable Connection/Disconnection. • The USB registers are not initialized when the watchdog timer (WDT) triggers a power-on reset. Therefore, the USB may not operate properly after a power-on reset is triggered by the WDT due to CPU runaway or a similar cause. (If a power-on reset is triggered by input of a power-on reset signal from the RES pin, the USB registers are initialized and there is no problem.) Consequently, an initialization routine should be used to write the initial values listed below to the following three registers, thereby ensuring that all the USB registers are properly initialized, immediately following a reset. UCTLR = H'03, UIER3 = H'80, UIFR3 = H'00 15.9.9 EP0 Interrupt Assignment EP0 interrupt sources assigned to bits 3 to 0 in UIFR0 must be assigned to the same interrupt sign (EXIRQx) by setting UISR0. There are no other restrictions on EP0 interrupt sources. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 595 of 846 Section 15 Universal Serial Bus Interface (USB) H8S/2215 Group 15.9.10 Level Shifter for VBUS and IRQx Pins The VBUS and IRQx pins of this USB module must be connected to the USB connector’s VBUS pin via a level shifter. This is because the USB module has a circuit that operates by detecting USB cable connection or disconnection. Even if the power of the device incorporating this USB module is turned off, 5-V power is applied to the USB connector’s VBUS pin while the USB cable is connected to the device set. To protect the LSI from destruction, use a level shifter such as the HD74LV-A series, which allows voltage application to the pin even when the power is off. 15.9.11 Read and Write to USB Endpoint Data Register To write data to an USB endpoint data register (UEDRni) on the transmit side using a CPU word or longword transfer instruction, the correct size of data must be written to the USB endpoint data register. Otherwise, an error may occur. For example, when 7-byte data is transferred to the host, 8-byte data is sent to the host if data is written twice by the longword transfer instructions or if data is written four times by the word transfer instructions. To write 7-byte data correctly, data must be written once by a longword transfer instruction, once by a word transfer instruction, and once by a byte transfer instruction, or data must be written three times by a word transfer instruction and once by a byte transfer instruction. To read data from the USB endpoint data register (UEDRno) on the receive side, the correct size of data must be read. In this case, the data size is specified by the USB endpoint receive size data register (UESZno). To execute DMA transfer on data in the USB endpoint data register using the on-chip DMAC, byte transfer musts be used. In word transfer, odd-byte data cannot be transferred. Word transfer is thus disabled. 15.9.12 Restrictions for Software Standby Mode Transition Before entering the software standby mode, disabled the SOF marker function and set the USB module stop state as shown in figure 15.34. The UDC core must not be reset. To access the USB module after software standby mode, cancel the USB module stop state and wait for the USB operating clock (48 MHz) stabilization time as shown in figure 15.34. Page 596 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) Procedure to enter software standby mode (1) Specify IRQ6 to falling edge sensitive (Set IRQ6E in IER to 1) (Write IRQ6SCB and A in ISCRH to 01) (2) Detect USB bus suspend state USPND pin = High (3) IRQ6 = Low (falling edge output) Set IRQ6F in ISR to 1 Set SPRSi and SPRSs in UIFR3 to 1 (4) Confirm SPRSs in UIFR3 as 1 Clear IRQ6E in IER to 0* Clear SPRSi in UIFR3 to 0 Clear SFME in UCTLR to 0 Procedure to cancel software standby mode (10) Detect USB bus resume USPND pin = Low (11) IRQ6 = Low (falling edge output) Set IRQ6F in ISR to 1 (12) (13) Cancel software standby mode Wait for system clock stabilization time (For external clock: 16 states min) (For crystal oscillator clock: 4 ms min) Enter active mode (LSI internal clock starts oscillation) (14) (5) IRQ6 = High (6) Enter USB module stop state (Stop MSTPB0 in MSTPCRB to 1) (7) All USB module internal clocks stop (8) Mask all interrupts with LDC instruction, etc.* Set IRQ6E in IER to 1* Unmask all interrupts with LDC instruction, etc.* Enter software standby mode* (Execute SLEEP instruction) (9) All LSI clocks stop Guide to Flowchart Figures : Indicates operations to be done by firmware. : Indicates operations to be automatically done by hardware in this LSI. (15) (16) (17) Cancel USB module stop mode (Clear MSTPB0 in MSTPCRB to 0) USB module internal clock operation starts Wait 2 ms for USB operation clock to stabilize (Wait for CK48READY in UIFR3 is set to 1) (18) Set SPRSi in UIFR3 to 1 Clear SPRSs in UIFR3 to 0 (19) Clear SPRSi in UIFR3 to 0 (20) IRQ6 = High (21) (22) Set CK48READY in UIFR3 to 1 (USB operating clock stabilized) (23) (24) Detect SOF packet Set SOF in UIFR3 to 1 (25) Set SFME in UCTLR to 1 USB communication operations can be restarted by using several USB registers Note: * Interrupts should be masked from when the IRQ6 interrupt is received until the SLEEP instruction is executed. Finally, unmask the interrupts using the LDC instruction or the like and execute the SLEEP instruction immediately afterward. Figure 15.36 Transition to and from Software Standby Mode REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 597 of 846 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) (1) USB bus state Normal (10) (2) USPND IRQ6 (23) SOF Resume → Normal Suspend (10) (3) (5) (11) ISR/IRQ6F (3) (4) (11) UIFR3/SPRSi (3) (4) (18) (19) UIFR3/SPRSs (3) (4) (18) (19) (20) (14) UIFR3/SOF (24) UCTLR/SFME (4) USB module stop (6) Standby mode (25) (15) (8) (12) System clock (16 MHz) (9) φ (16 MHz) (9) USB internal clock (16 MHz) (13) (14) (7) (16) UIFR3/ CK48READY (21) CLK48 (48 MHz) (7) USB operating clock (48 MHz) (7) (17) (22) Software standby mode 4 ms wait for oscillator to stabilize 2 ms wait for USB operation clock to stabilize USB operation resumes USB module stop state Figure 15.37 USB Software Standby Mode Transition Timing 15.9.13 USB External Circuit Example The USB external circuit examples are used for reference only. In actual board design, carefully check the system operation. In addition, the USB external circuits examples cannot guarantee correct system operation. The user must individually take measures against external surges or ESD noise by incorporating protective diodes or other components if necessary. Page 598 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 15 Universal Serial Bus Interface (USB) 15.9.14 Pin Processing when USB Not Used Pin processing should be performed as follows. DrVCC = Vcc, DrVSS = 0 V, USD+ = USD- = USPND = open state, VBUS = UBPM = 0 V 15.9.15 Notes on Emulator Usage Using the I/O register window function, or the like, to display UEDR0o, UEDR2o, UEDR3o, and UEDR4o can cause the EP0oFIFO, EP2oFIFO, EP3oFIFO, and EP4oFIFO read pointers to malfunction, preventing UEDR0o to UEDR4o and UESZ0o to UESZ4o from being read correctly. Therefore, UEDR0o to UEDR4o should not be displayed. 15.9.16 Notes on TR Interrupt Note the following when using the transfer request interrupt (TR interrupt) for IN transfer to EP0i, EP2i, EP3i, EP4i, or EP5i. The TR interrupt flag is set if the FIFO for the target EP has no data when the IN token is sent from the USB host. However, at the timing shown in figure 15.38, multiple TR interrupts occur successively. Take appropriate measures against malfunction in such a case. Note: This module determines whether to return NAK if the FIFO of the target EP has no data when receiving the IN token, but the TR interrupt flag is set only after a NAK handshake is sent. If the next IN token is sent before PKTE of UTRGx is written to, the TR interrupt flag is set again. TR interrupt routine CPU Host TR interrupt routine Clear Writes TR flag transmit data UTRGx/ PKTE IN token IN token Determines whether to return NAK Determines whether to return NAK USB NAK IN token Transmits data NAK Sets TR flag Sets TR flag (Sets the flag again) ACK Figure 15.38 TR Interrupt Flag Set Timing REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 599 of 846 Section 15 Universal Serial Bus Interface (USB) H8S/2215 Group 15.9.17 Notes on UIFRO The bit-clear instruction cannot be used to clear a flag in some USB interrupt flag registers to 0. These registers have flags which are cleared to 0 by writing 0 and to which writing 1 is ignored. The concerning registers are USB interrupt flag registers 0 to 3 (UIFR0 to UIFR3) in the H8S/2215 Group. A single bit-clear instruction actually executes reading the value of a register, modifying the read value, and writing the modified value. When clearing a flag with the bit-clear instruction, if a source which will set another flag is activated between reading and writing, the flag is unintentionally cleared to 0. Therefore, the bit-clear instruction cannot be used. To clear these flags, write 0 to a flag which should be cleared and write 1 to other flags with the MOVE instruction. For example, to clear only bit 7, write H'7F and to clear bits 6 and 7, write H'3F. 15.9.18 Clearing the FIFOs in DMA Transfer Mode When DMA transfers are enabled at endpoints 2 and 4, it is not possible to clear the EP2o OUTFIFO and EP4o OUTFIFO. To clear the FIFOs, first disable DMA transfers. Page 600 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 16 A/D Converter Section 16 A/D Converter This LSI includes a successive approximation type 10-bit A/D converter that allows up to six analog input channels to be selected. The block diagram of the A/D converter is shown in figure 16.1. 16.1 Features • 10-bit resolution • Six input channels • Conversion time: 8.1 µs per channel (at 16-MHz operation), 10.7 µs per channel (at 24-MHz operation)* Note: * Available only in H8S/2215R, H8S/2215T and H8S/2215C. • Two operating modes ⎯ Single mode: Single-channel A/D conversion ⎯ Scan mode: Continuous A/D conversion on 1 to 4 channels • Four data registers ⎯ Conversion results are held in a 16-bit data register for each channel • Sample and hold function • Three methods conversion start ⎯ Software ⎯ Timer (TPU or TMR) conversion start trigger ⎯ External trigger signal (ADTRG) • Interrupt request ⎯ An A/D conversion end interrupt request (ADI) can be generated • Module stop mode can be set • Settable analog conversion voltage range Analog conversion voltage range settable using the reference voltage pin (Vref) as the reference voltage REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 601 of 846 ADCMS34A_000120020100 H8S/2215 Group Section 16 A/D Converter AVCC Module data bus Bus interface Successive approximation register 10 bit D/A Vref Internal data bus A D D R A A D D R B A D D R C A D D R D A D C S R A D C R + AN0 AN2 AN3 AN14 AN15 φ/2 Multiplexer AN1 Comparator Control circuit Sample and hold circuit φ/4 φ/8 φ/16 ADI interrupt signal Time conversion start trigger from TPU or 8 bit timer ADTRG Off during A/D conversion standby On during A/D conversion AVSS Legend: ADCR: ADCSR: ADDRA: ADDRB: ADDRC: ADDRD: A/D control register A/D control/status register A/D data register A A/D data register B A/D data register C A/D data register D Figure 16.1 Block Diagram of A/D Converter Page 602 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 16.2 Section 16 A/D Converter Input/Output Pins Table 16.1 summarizes the input pins used by the A/D converter. The AN0 to AN3 and AN14 to AN15 pins are analog input pins. The AVCC and AVSS pins are the power supply pins for the analog block in the A/D converter. The Vref pin is the reference voltage pin for the A/D conversion. Table 16.1 Pin Configuration Pin Name Symbol I/O Function Analog power supply pin AVCC Input Analog block power supply and reference voltage Analog ground pin AVSS Input Analog block ground and reference voltage Analog reference voltage pin Vref Input Reference voltage pin for the A/D Analog input pin 0 AN0* Input Analog input pins Analog input pin 1 AN1* Input Analog input pin 2 AN2 Input Analog input pin 3 AN3 Input Analog input pin 14 AN14 Input Analog input pin 15 AN15 Input A/D external trigger input pin ADTRG Input Note: 16.3 External trigger input pin for starting A/D conversion AN0 and AN1 can be used only when Vcc = AVcc. * Register Descriptions The A/D converter has the following registers. • A/D data register A (ADDRA) • A/D data register B (ADDRB) • A/D data register C (ADDRC) • A/D data register D (ADDRD) • A/D control/status register (ADCSR) • A/D control register (ADCR) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 603 of 846 H8S/2215 Group Section 16 A/D Converter 16.3.1 A/D Data Registers A to D (ADDRA to ADDRD) There are four 16-bit read-only ADDR registers; ADDRA to ADDRD, used to store the results of A/D conversion. The ADDR registers, which store a conversion result for each channel, are shown in table 16.2. The converted 10-bit data is stored in bits 6 to 15. The lower 6 bits are always read as 0. The data bus between the CPU and the A/D converter is 8 bits wide. The upper byte can be read directly from the CPU, however the lower byte should be read via a temporary register. The temporary register contents are transferred from the ADDR when the upper byte data is read. When reading the ADDR, read the upper byte before the lower byte, or read in word unit. The initial value of ADDR is H'0000. Table 16.2 Analog Input Channels and Corresponding ADDR Registers Analog Input Channel A/D Data Register to Be Stored the Results of A/D Conversion AN0 ADDRA AN1 ADDRB AN2, AN14 ADDRC AN3, AN15 ADDRD 16.3.2 A/D Control/Status Register (ADCSR) ADCSR controls A/D conversion operations. Bit Bit Name Initial Value R/W 7 ADF R/(W)* A/D End Flag A status flag that indicates the end of A/D conversion. [Setting conditions] 0 Description • • When A/D conversion ends When A/D conversion ends on all channels specified in scan mode [Clearing conditions] • • Page 604 of 846 When 0 is written after reading ADF = 1 When the DMAC or DTC is activated by an ADI interrupt and ADDR is read when DISEL = 0 and the transfer counter ≠ 0 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 16 A/D Converter Bit Bit Name Initial Value R/W Description 6 ADIE 0 R/W A/D Interrupt Enable A/D conversion end interrupt (ADI) request enabled when 1 is set. 5 ADST 0 R/W A/D Start Clearing this bit to 0 stops A/D conversion, and the A/D converter enters the unit state. Setting this bit to 1 starts A/D conversion. It can be set to 1 by software, the timer conversion start trigger, and the A/D external trigger (ADTRG). In single mode, this bit is cleared to 0 automatically when conversion on the specified channel is complete. In scan mode, conversion continues sequentially on the specified channels until this bit is cleared to 0 by software, a reset, a transition to standby mode, or module stop mode. 4 SCAN 0 R/W Scan Mode Selects single mode or scan mode as the A/D conversion operating mode. 0: Single mode 1: Scan mode 3 2 1 0 CH3 CH2 CH1 CH0 0 0 0 0 R/W R/W R/W R/W Channel Select 3 to 0 Select analog input channels. When SCAN = 0 When SCAN = 1 0000: AN0 0000: AN0 0001: AN1 0001: AN0 to AN1 0010: AN2 0010: AN0 to AN2 0011: AN3 0011: AN0 to AN3 01××: Setting prohibited 01××: Setting prohibited 10××: Setting prohibited 1×××: Setting prohibited 110×: Setting prohibited 1110: AN14 1111: AN15 Legend: ×: Don’t care Note: * The write value should always be 0 to clear this flag. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 605 of 846 H8S/2215 Group Section 16 A/D Converter 16.3.3 A/D Control Register (ADCR) The ADCR enables A/D conversion started by an external trigger signal. Bit Bit Name Initial Value R/W Description 7 TRGS1 0 R/W Timer Trigger Select 1 and 0 6 TRGS0 0 R/W Enables the start of A/D conversion by a trigger signal. Only set bits TRGS1 and TRGS0 while conversion is stopped (ADST = 0). 00: A/D conversion start by software 01: A/D conversion start by TPU 10: A/D conversion start by TMR 11: A/D conversion start by external trigger pin (ADTRG) 5, 4 — All 1 — Reserved These bits are always read as 1 cannot be modified. 3 CKS1 0 R/W Clock Select 1 and 0 2 CKS0 0 R/W These bits specify the A/D conversion time. The conversion time should be changed only when ADST = 0. 00: Conversion time = 530 states (max.) 01: Conversion time = 266 states (max.) 10: Conversion time = 134 states (max.) 11: Conversion time = 68 states (max.) The conversion time setting should exceed the conversion time shown in section 24.6, A/D Converter Characteristics. 1, 0 — All 1 — Reserved These bits are always read as 1 cannot be modified. Page 606 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 16.4 Section 16 A/D Converter Interface to Bus Master ADDRA to ADDRD are 16-bit registers. As the data bus to the bus master is 8 bits wide, the bus master accesses to the upper byte of the registers directly while to the lower byte of the registers via the temporary register (TEMP). Data in ADDR is read in the following way: When the upper-byte data is read, the upper-byte data will be transferred to the CPU and the lower-byte data will be transferred to TEMP. Then, when the lower-byte data is read, the lower-byte data will be transferred to the CPU. When data in ADDR is read, the data should be read from the upper byte and lower byte in the order. When only the upper-byte data is read, the data is guaranteed. However, when only the lower-byte data is read, the data is not guaranteed. Figure 16.2 shows data flow when accessing to ADDR. Read the upper byte Module data bus Bus master (H'AA) Bus interface TEMP (H'40) ADDRnH (H'AA) ADDRnL (H'40) (n = A to D) Read the lower byte Module data bus Bus master (H'40) Bus interface TEMP (H'40) ADDRnH (H'AA) ADDRnL (H'40) (n = A to D) Figure 16.2 Access to ADDR (When Reading H'AA40) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 607 of 846 Section 16 A/D Converter 16.5 H8S/2215 Group Operation The A/D converter operates by successive approximation with 10-bit resolution. It has two operating modes; single mode and scan mode. When changing the operating mode or analog input channel, in order to prevent incorrect operation, first clear the bit ADST to 0 in ADCSR. The ADST bit can be set at the same time as the operating mode or analog input channel is changed. 16.5.1 Single Mode In single mode, A/D conversion is to be performed only once on the specified single channel. The operations are as follows. 1. A/D conversion is started when the ADST bit is set to 1, according to software, TPU, or external trigger input. 2. When A/D conversion is completed, the result is transferred to the corresponding A/D data register to the channel. 3. On completion of conversion, the ADF bit in ADCSR is set to 1. If the ADIE bit is set to 1 at this time, an ADI interrupt request is generated. 4. The ADST bit remains set to 1 during A/D conversion. When A/D conversion ends, the ADST bit is automatically cleared to 0 and the A/D converter enters the wait state. Page 608 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 16 A/D Converter Set* ADIE ADST A/D conversion starts Set* Set* Clear* Clear* ADF State of channel 0 (AN0) Idle State of channel 1 (AN1) Idle State of channel 2 (AN2) Idle State of channel 3 (AN3) Idle A/D conversion 1 Idle A/D conversion 2 Idle ADDRA ADDRB Read conversion result* A/D conversion result 1 Read conversion result* A/D conversion result 2 ADDRC ADDRD Note: * Vertical arrows ( ) indicate instructions executed by software. Figure 16.3 A/D Conversion Timing (Single-Chip Mode, Channel 1 Selected) 16.5.2 Scan Mode In scan mode, A/D conversion is to be performed sequentially on the specified channels (four channels maximum). The operations are as follows. 1. When the ADST bit is set to 1 by software, TPU, or external trigger input, A/D conversion starts on the first channel in the group (AN0 when CH3 and CH2 = 00, AN4 when CH3 and CH2 = 01, or AN8 when CH3 and CH2 = 10). 2. When A/D conversion for each channel is completed, the result is sequentially transferred to the A/D data register corresponding to each channel. 3. When conversion of all the selected channels is completed, the ADF flag is set to 1. If the ADIE bit is set to 1 at this time, an ADI interrupt is requested after A/D conversion ends. Conversion of the first channel in the group starts again. 4. Steps 2 to 3 are repeated as long as the ADST bit remains set to 1. When the ADST bit is cleared to 0, A/D conversion stops. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 609 of 846 H8S/2215 Group Section 16 A/D Converter Continuous A/D conversion execution Clear*1 Set*1 ADST Clear*1 ADF A/D conversion time State of channel 0 (AN0) State of channel 1 (AN1) State of channel 2 (AN2) Idle Idle A/D conversion 1 Idle Idle A/D conversion 2 Idle Idle A/D conversion 4 A/D conversion 5 *2 Idle A/D conversion 3 State of channel 3 (AN3) Idle Idle Transfer ADDRA A/D conversion result 1 ADDRB ADDRC A/D conversion result 4 A/D conversion result 2 A/D conversion result 3 ADDRD Notes: 1. Vertical arrows ( ) indicate instructions executed by software. 2. Data currently being converted is ignored. Figure 16.4 A/D Conversion Timing (Scan Mode, Channels AN0 to AN3 Selected) 16.5.3 Input Sampling and A/D Conversion Time The A/D converter has a built-in sample-and-hold circuit. The A/D converter samples the analog input when the A/D conversion start delay time (tD) has passed after the ADST bit is set to 1, then starts conversion. Figure 16.5 shows the A/D conversion timing. Tables 16.3 and 16.4 show the A/D conversion time. As indicated in figure 16.5, the A/D conversion time (tCONV) includes tD and the input sampling time (tSPL). The length of tD varies depending on the timing of the write access to ADCSR. The total conversion time therefore varies within the ranges indicated in table 16.4. In scan mode, the values given in table 16.4 apply to the first conversion time. The values given in table 16.5 apply to the second and subsequent conversions. Page 610 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 16 A/D Converter (1) φ Address (2) Write signal Input sampling timing ADF tD tSPL tCONV Legend: (1): ADCSR write cycle (2): ADCSR address tD: A/D conversion start delay tSPL: Input sampling time tCONV: A/D conversion time Figure 16.5 A/D Conversion Timing Table 16.3 A/D Conversion Time (Single Mode) CKS1 = 0 Item Symbol CKS0 = 0 CKS1 = 1 CKS0 = 1 CKS0 = 0 CKS0 = 1 Min Typ Max Min Typ Max Min Typ Max Min Typ Max A/D conversion start delay tD 18 — 33 10 — 17 6 — 9 4 — 5 Input sampling time tSPL — 127 — — 63 — — 31 — — 15 — A/D conversion time tCONV 515 — — 134 67 — 68 530 259 — 266 131 Note: All values represent the number of states. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 611 of 846 H8S/2215 Group Section 16 A/D Converter Table 16.4 A/D Conversion Time (Scan Mode) CKS1 CKS0 Conversion Time (State) 0 0 512 (Fixed) 1 256 (Fixed) 0 128 (Fixed) 1 64 (Fixed) 1 16.5.4 External Trigger Input Timing A/D conversion can be externally triggered. When the TRGS0 and TRGS1 bits are set to 11 in ADCR, external trigger input is enabled at the ADTRG pin. A falling edge at the ADTRG pin sets the ADST bit to 1 in ADCSR, starting A/D conversion. Other operations, in both single and scan modes, are the same as when the bit ADST has been set to 1 by software. Figure 16.6 shows the timing. φ ADTRG Internal trigger signal ADST A/D conversion Figure 16.6 External Trigger Input Timing Page 612 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 16.6 Section 16 A/D Converter Interrupts The A/D converter generates an A/D conversion end interrupt (ADI) at the end of A/D conversion. Setting the ADIE bit to 1 enables ADI interrupt requests while the bit ADF in ADCSR is set to 1 after A/D conversion is completed. The DMAC or DTC can be activated by an ADI interrupt. Table 16.5 A/D Converter Interrupt Source Name Interrupt Source Interrupt Source Flag DMAC or DTC Activation ADI A/D conversion completed ADF Possible 16.7 A/D Conversion Precision Definitions This LSI's A/D conversion precision definitions are given below. • Resolution The number of A/D converter digital output codes • Quantization error The deviation inherent in the A/D converter, given by 1/2 LSB (see figure 16.7). • Offset error The deviation of the analog input voltage value from the ideal A/D conversion characteristic when the digital output changes from the minimum voltage value B'0000000000 (H'000) to B'0000000001 (H'001) (see figure 16.8). • Full-scale error The deviation of the analog input voltage value from the ideal A/D conversion characteristic when the digital output changes from B'1111111110 (H'3FE) to B'1111111111 (H'3FF) (see figure 16.8). • Nonlinearity error The error with respect to the ideal A/D conversion characteristic between zero voltage and fullscale voltage. Does not include offset error, full-scale error, or quantization error (see figure 16.8). • Absolute precision The deviation between the digital value and the analog input value. Includes offset error, fullscale error, quantization error, and nonlinearity error. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 613 of 846 H8S/2215 Group Section 16 A/D Converter Digital output Ideal A/D conversion characteristic 111 110 101 100 011 010 Quantization error 001 000 1 2 1024 1024 1022 1023 FS 1024 1024 Analog input voltage Figure 16.7 A/D Conversion Precision Definitions (1) Full-scale error Digital output Ideal A/D conversion characteristic Nonlinearity error Actual A/D conversion characteristic Offset error FS Analog input voltage Figure 16.8 A/D Conversion Precision Definitions (2) Page 614 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 16 A/D Converter 16.8 Usage Notes 16.8.1 Permissible Signal Source Impedance This LSI's analog input is designed such that conversion precision is guaranteed for an input signal for which the signal source impedance is 5 kΩ or less. This specification is provided to enable the A/D converter's sample-and-hold circuit input capacitance to be charged within the sampling time; if the sensor output impedance exceeds 5 kΩ, charging may be insufficient and it may not be possible to guarantee A/D conversion precision. However, for A/D conversion in single mode with a large capacitance provided externally, the input load will essentially comprise only the internal input resistance of 10 kΩ, and the signal source impedance is ignored. However, as a low-pass filter effect is obtained in this case, it may not be possible to follow an analog signal with a large differential coefficient (e.g., 5 mV/Ωs or greater) (see figure 16.9). When converting a high-speed analog signal, a low-impedance buffer should be inserted. 16.8.2 Influences on Absolute Precision Adding capacitance results in coupling with GND, and therefore noise in GND may adversely affect absolute precision. Be sure to make the connection to an electrically stable GND such as AVSS. Care is also required to insure that filter circuits do not communicate with digital signals on the mounting board (i.e., acting as antennas). This LSI Sensor output impedance to 5 kΩ A/D converter equivalent circuit 10 kΩ Sensor input Low-pass filter C to 0.1 μF Cin = 15 pF 20 pF Figure 16.9 Example of Analog Input Circuit REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 615 of 846 H8S/2215 Group Section 16 A/D Converter 16.8.3 Range of Analog Power Supply and Other Pin Settings If the conditions below are not met, the reliability of the device may be adversely affected. • Analog input voltage range The voltage applied to analog input pin ANn during A/D conversion should be in the range AVSS ≤ ANn ≤ Vref. • Relationship between AVcc, AVss and Vcc, Vss Set AVss = Vss as the relationship between AVcc, AVss and Vcc, Vss. If the A/D converter is not used, the AVcc and AVss pins must not be left open. In addition, AN0 and AN1 can be used only when Vcc = AVcc. • Vref input range The analog reference voltage input at the Vref pin set is the range Vref ≤ AVcc. 16.8.4 Notes on Board Design In board design, digital circuitry and analog circuitry should be as mutually isolated as possible, and layout in which digital circuit signal lines and analog circuit signal lines cross or are in close proximity should be avoided as far as possible. Failure to do so may result in incorrect operation of the analog circuitry due to inductance, adversely affecting A/D conversion values. Also, digital circuitry must be isolated from the analog input signals (AN0 to AN3 or AN14 to AN15), analog reference voltage pin (Vref), and analog power supply (AVcc) by the analog ground (AVss). Also, the analog ground (AVss) should be connected at one point to a stable digital ground (Vss) on the board. 16.8.5 Notes on Noise Countermeasures A protection circuit should be connected in order to prevent damage due to abnormal voltage, such as an excessive surge at the analog input pins (AN0 to AN3 or AN14 to AN15) and analog reference voltage pin (Vref), between AVcc and AVss, as shown in figure 16.10. Also, the bypass capacitors connected to AVcc and the filter capacitor connected to analog input pins (AN0 to AN3 or AN14 to AN15) must be connected to AVss. If a filter capacitor is connected, the input currents at the analog input pins (AN0 to AN3 or AN14 to AN15) are averaged, and so an error may arise. Also, when A/D conversion is performed frequently, as in scan mode, if the current charged and discharged by the capacitance of the sample-and-hold circuit in the A/D converter exceeds the current input via the input impedance (Rin), an error will arise in the analog input pin voltage. Careful consideration is therefore required when deciding circuit constants. Page 616 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 16 A/D Converter AVCC Vref *1 100 Ω Rin*2 *1 AN0 to AN11 0.1 μF AVSS Notes: Values are reference values. 1. 10 μF 0.01 μF 2. Rin: Input impedance Figure 16.10 Example of Analog Input Protection Circuit Table 16.6 Analog Pin Specifications Item Min Max Unit Analog input capacitance — 20 pF — 5* kΩ Permissible signal source impedance Note: * Vcc = 2.7 to 3.6 V 10 kΩ ANn To A/D converter 20 pF Note: Values are reference values. Figure 16.11 Analog Input Pin Equivalent Circuit REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 617 of 846 Section 16 A/D Converter 16.8.6 H8S/2215 Group Module Stop Mode Setting Operation of the A/D converter can be disabled or enabled using the module stop control register. The initial setting is for operation of the A/D converter to be halted. Register access is enabled by clearing module stop mode. For details, refer to section 22, Power-Down Modes. Page 618 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 17 D/A Converter Section 17 D/A Converter This LSI includes a D/A converter with 2 channels. 17.1 Features D/A converter features are listed below. • 8-bit resolution • Two output channels • Maximum conversion time of 10 µs (with 20 pF load) • Output voltage of 0 V to Vref • D/A output hold function in software standby mode • Module stop mode can be set Figure 17.1 shows a block diagram of the D/A converter. Internal data bus Bus interface Module data bus Vref AVCC 8 bit D/A DA1 DA0 D A D R 0 D A D R 1 D A C R AVSS Control cycle Legend: DACR: D/A control register DADR0: D/A data register 0 DADR1: D/A data register 1 Figure 17.1 Block Diagram of D/A Converter REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 619 of 846 DAC0004A_010020020100 H8S/2215 Group Section 17 D/A Converter 17.2 Input/Output Pins Table 17.1 summarizes the input and output pins of the D/A converter. Table 17.1 Pin Configuration Pin Name Symbol I/O Function Analog power pin AVCC Input Analog power Analog ground pin AVSS Input Analog ground and reference voltage Analog output pin 0 DA0 Output Channel 0 analog output Analog output pin 1 DA1 Output Channel 1 analog output Reference voltage pin Vref Input Analog reference voltage 17.3 Register Description The D/A converter has the following registers. • D/A data register (DADR) • D/A control register (DACR) 17.3.1 D/A Data Register (DADR) DADR is an 8-bit readable/writable register that store data for conversion. Whenever output is enabled, the values in DADR are converted and output from the analog output pins. This register is initialized to H'00 on reset or in hardware standby mode. Page 620 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 17.3.2 Section 17 D/A Converter D/A Control Register (DACR) DACR controls the operation of the D/A converter. DACR01 Bit Bit Name Initial Value R/W Description 7 DAOE1 0 R/W D/A Output Enable 1 6 DAOE0 0 R/W D/A Output Enable 0 5 DAE 0 R/W D/A Enable Control the D/A conversion and analog output. 00×: Channel 0 and 1 D/A conversions disabled 010: Channel 0 D/A conversion enabled Channel 1 D/A conversion disabled 011: Channel 0 and 1 D/A conversions enabled 100: Channel 0 D/A conversion disabled Channel 1 D/A conversion enabled 101: Channel 0 and 1 D/A conversions enabled 11×: Channel 0 and 1 D/A conversions enabled Legend: ×: Don’t care If this LSI enters software standby mode when D/A conversion is enabled, the D/A output is held and the analog power current is the same as during D/A conversion. When it is necessary to reduce the analog power current in software standby mode, clear the DAOE0, DAOE1, and DAE bits to 0 to disable D/A output. 4 to 0 — All 1 — Reserved These bits are always read as 1 and cannot be modified. 17.4 Operation D/A conversion takes place constantly as long as the D/A converter is enabled by the DACR. When DADR_0 and DADR_1 are overwritten, the new data is converted immediately. The conversion result is output by setting the DAOE0 and DAOE1 bits to 1. The operation example concerns D/A conversion on channel 0. Figure 17.2 shows the timing of this operation. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 621 of 846 H8S/2215 Group Section 17 D/A Converter [1] Write the conversion data to DADR_0. [2] Set the DAOE0 bit in DACR01 to 1. D/A conversion is started. The conversion result is output after the conversion time tDCONV has elapsed. The output value is expressed by the following formula: DADR contents ——————— × Vref 256 The conversion results are output continuously until DADR_0 is written to again or the DAOE0 bit is cleared to 0. [3] If DADR_0 is written to again, the conversion is immediately started. The conversion result is output after the conversion time tDCONV has elapsed. [4] If the DAOE0 bit is cleared to 0, analog output is disabled. DADR0 write cycle DADR0 write cycle DACR write cycle DACR write cycle φ Address DADR_0 Conversion data 1 Conversion data 2 DAOE0 DA0 Conversion result 2 Conversion result 1 High-impedance state tDCONV tDCONV Legend: tDCONV: D/A conversion time Figure 17.2 Example of D/A Converter Operation Page 622 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 17.5 Usage Note 17.5.1 Module Stop Mode Setting Section 17 D/A Converter Operation of the D/A converter can be disabled or enabled using the module stop control register. The initial setting is for operation of the D/A converter to be halted. Register access is enabled by clearing module stop mode. For details, refer to section 22, Power-Down Modes. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 623 of 846 Section 17 D/A Converter Page 624 of 846 H8S/2215 Group REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 18 RAM Section 18 RAM This LSI has on-chip high-speed static RAM. The RAM is connected to the CPU by a 16-bit data bus, enabling one-state access by the CPU to both byte data and word data. This makes it possible to perform fast word data transfer. The on-chip RAM can be enabled or disabled by means of the RAM enable bit (RAME) in the system control register (SYSCR). For details on SYSCR, refer to section 3.2.2, System Control Register (SYSCR). Product Class H8S/2215 Group ROM Type HD64F2215R Flash memory Version RAM Size RAM Address 20 kbytes H'FFA000 to H'FFEFBF H'FFFFC0 to H'FFFFFF HD64F2215RU HD64F2215T HD64F2215TU HD64F2215CU HD64F2215 16 kbytes H'FFFFC0 to H'FFFFFF HD64F2215U HD6432215B HD6432215C H'FFB000 to H'FFEFBF Masked ROM Version 8 kbytes H'FFD000 to H'FFEFBF H'FFFFC0 to H'FFFFFF REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 625 of 846 Section 18 RAM Page 626 of 846 H8S/2215 Group REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 19 Flash Memory (F-ZTAT Version) Section 19 Flash Memory (F-ZTAT Version) The features of the on-chip flash memory are summarized below. The block diagram of the flash memory is shown in figure 19.1. 19.1 • Features Size Product Category H8S/2215 Group HD64F2215, HD64F2215U, HD64F2215R, HD64F2215RU, HD64F2215T, HD64F2215TU, HD64F2215CU ROM Size ROM Addresses 256 kbytes H'000000 to H'03FFFF (Modes 6 and 7) • Programming/erase methods ⎯ The flash memory is programmed 128 bytes at a time. Erase is performed in single-block units. The flash memory is configured as follows: four kbytes × eight blocks, 32 kbytes × 1 block, 64 kbytes × 3 and blocks. To erase the entire flash memory, each block must be erased in turn. • Reprogramming capability ⎯ Flash memory can be reprogrammed a minimum of 100 times. • Two flash memory operating modes ⎯ Boot mode (SCI boot mode: HD64F2215, HD64F2215R, HD64F2215T. USB boot mode: HD64F2215U, HD64F2215RU, HD64F2215TU, HD64F2215CU) ⎯ User program mode On-board programming/erasing can be done in boot mode in which the boot program built into the chip is started for erase or programming of the entire flash memory. In normal user program mode, individual blocks can be erased or programmed. • Automatic bit rate adjustment (SCI boot mode) ⎯ With data transfer in SCI boot mode, this LSI’s bit rate can be automatically adjusted to match the transfer bit rate of the host. • Programming/erasing protection ⎯ Sets hardware protection, software protection, and error protection against flash memory programming/erasing. • Programmer mode ⎯ Flash memory can be programmed/erased in programmer mode, using a PROM programmer, as well as in on-board programming mode. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 627 of 846 ROMF252A_010020020100 H8S/2215 Group Section 19 Flash Memory (F-ZTAT Version) • Flash memory emulation in RAM ⎯ Flash memory programming can be emulated in real time by overlapping a part of RAM onto flash memory. Internal data bus (upper 8 bits) Module bus Internal data bus (lower 8 bits) FLMCR1 FLMCR2 EBR1 Bus interface/controller Operating mode EBR2 FWE pin Mode pins (MD2 to MD0) PF3, PF0, P16, P14 RAMER H'000000 H'000002 H'000001 H'000003 Flash memory (256 kbytes) H'03FFFE Legend: FLMCR1: FLMCR2: EBR1: EBR2: RAMER: H'03FFFF Flash memory control register 1 Flash memory control register 2 Erase block register 1 Erase block register 2 RAM emulation register Figure 19.1 Block Diagram of Flash Memory Page 628 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 19.2 Section 19 Flash Memory (F-ZTAT Version) Mode Transitions When the mode pins and the FWE pin are set in the reset state and a reset-start is executed, this LSI enters an operating mode as shown in figure 19.2. In user mode, flash memory can be read but not programmed or erased. The boot and user program modes are provided as modes to write and erase the flash memory. The differences between boot mode and user program mode are shown in table 19.1. Boot mode and user program mode operations are shown in figures 19.3 and 19.4, respectively. MD2 to 0 = 11x, FWE = 0 *1 User mode (on-chip ROM enabled) FWE = 1 Reset state RES = 0 MD2 to 0 = 11x, FWE = 1 FWE = 0 RES = 0 RES = 0 MD2 to 0 = 01x or 10x*3 FWE = 1 *2 RES = 0 Programmer mode *1 User program mode SCI,USB Boot mode On-board programming mode Notes: Only make a transition between user mode and user program mode when the CPU is not accessing the flash memory. 1. RAM emulation possible 2. MD2 to MD0 = 000, PF3, PF0, P16, P14 = 1100 3. 10x applies only to the HD64F2215RU, HD64F2215TU and HD64F2215CU with 24-MHz system clock. Figure 19.2 Flash Memory State Transitions REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 629 of 846 H8S/2215 Group Section 19 Flash Memory (F-ZTAT Version) Table 19.1 Differences between Boot Mode and User Program Mode SCI,USB Boot Mode User Program Mode User Mode Total erase Yes Yes No Block erase No Yes No Programming control program* Program/program-verify Erase/erase-verify — Program/program-verify Emulation Note: * To be provided by the user, in accordance with the recommended algorithm. Page 630 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 19 Flash Memory (F-ZTAT Version) 1. Initial state The old program version or data remains written in the flash memory. The user should prepare the programming control program and new application program beforehand in the host. 2. Programming control program transfer When boot mode is entered, the boot program in this LSI (originally incorporated in the chip) is started and the programming control program in the host is transferred to RAM via SCI or USB communication. The boot program required for flash memory erasing is automatically transferred to the RAM boot program area. Host Host Programming control program New application program New application program This LSI This LSI SCI or USB Boot program Flash memory RAM SCI or USB Boot program Flash memory RAM Boot program area Application program (old version) Application program (old version) 3. Flash memory initialization The erase program in the boot program area (in RAM) is executed, and the flash memory is initialized (to H'FF). In boot mode, total flash memory erasure is performed, without regard to blocks. Programming control program 4. Writing new application program The programming control program transferred from the host to RAM is executed, and the new application program in the host is written into the flash memory. Host Host New application program This LSI Boot program Flash memory This LSI SCI or USB RAM Boot program Flash memory Boot program area Flash memory preprogramming erase Programming control program SCI or USB RAM Boot program area New application program Programming control program Program execution state Figure 19.3 Boot Mode (Sample) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 631 of 846 H8S/2215 Group Section 19 Flash Memory (F-ZTAT Version) 1. Initial state The FWE assessment program that confirms that user program mode has been entered, and the program that will transfer the programming/erase control program from flash memory to on-chip RAM should be written into the flash memory by the user beforehand. The programming/erase control program should be prepared in the host or in the flash memory. 2. Programming/erase control program transfer When user program mode is entered, user software confirms this fact, executes transfer program in the flash memory, and transfers the programming/erase control program to RAM. Host Host Programming/ erase control program New application program New application program This LSI This LSI SCI or USB Boot program Flash memory RAM SCI or USB Boot program RAM Flash memory FWE assessment program FWE assessment program Transfer program Transfer program Programming/ erase control program Application program (old version) Application program (old version) 3. Flash memory initialization The programming/erase program in RAM is executed, and the flash memory is initialized (to H'FF). Erasing can be performed in block units, but not in byte units. 4. Writing new application program Next, the new application program in the host is written into the erased flash memory blocks. Do not write to unerased blocks. Host Host New application program This LSI Boot program Flash memory This LSI SCI or USB RAM FWE assessment program Boot program Flash memory RAM FWE assessment program Transfer program Transfer program Programming/ erase control program Flash memory erase SCI or USB Programming/ erase control program New application program Program execution state Figure 19.4 User Program Mode (Sample) Page 632 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 19.3 Section 19 Flash Memory (F-ZTAT Version) Block Configuration Figure 19.5 shows the block configuration of 256-kbyte flash memory. The thick lines indicate erasing units, the narrow lines indicate programming units, and the values are addresses. The flash memory is divided into 4 kbytes (eight blocks), 32 kbytes (one block), and 64 kbytes (three blocks). Erasing is performed in these divided units. Programming is performed in 128-byte units starting from an address whose lower eight bits are H'00 or H'80. EB0 Erase unit 4 kbyte H'000000 H'000001 H'000002 Programming unit: 128 bytes H'001001 H'001002 Programming unit: 128 bytes H'002001 H'002002 Programming unit: 128 bytes H'003001 H'003002 Programming unit: 128 bytes H'004001 H'004002 Programming unit: 128 bytes H'005001 H'005002 Programming unit: 128 bytes H'006001 H'006002 Programming unit: 128 bytes H'007001 H'007002 Programming unit: 128 bytes H'008001 H'008002 Programming unit: 128 bytes H'010001 H'010002 Programming unit: 128 bytes H'020001 H'020002 Programming unit: 128 bytes H'030001 H'030002 Programming unit: 128 bytes H'00007F H'000080 H'000FFF EB1 H'001000 Erase unit 4 kbyte H'001080 EB2 Erase unit 4 kbyte H'002000 EB3 Erase unit 4 kbyte H'003000 EB4 Erase unit 4 kbyte H'004000 H'00107F H'001FFF H'00207F H'002080 H'002FFF H'00307F H'003080 H'003FFF H'00407F H'004080 H'004FFF EB5 Erase unit 4 kbyte H'005000 EB6 H'006000 H'00507F H'005080 H'005FFF Erase unit 4 kbyte EB7 Erase unit 4 kbyte H'00607F H'006080 H'006FFF H'007000 H'00707F H'007080 H'007FFF EB8 Erase unit 32 kbyte H'008000 EB9 Erase unit 64 kbyte H'010000 EB10 H'020000 H'00807F H'008080 H'00FFFF H'01007F H'010080 H'01FFFF Erase unit 64 kbyte EB11 Erase unit 64 kbyte H'02007F H'020080 H'02FFFF H'030000 H'03007F H'030080 H'03FFFF Figure 19.5 Flash Memory Block Configuration REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 633 of 846 H8S/2215 Group Section 19 Flash Memory (F-ZTAT Version) 19.4 Input/Output Pins The flash memory is controlled by means of the pins shown in table 19.2. Table 19.2 Pin Configuration Pin Name I/O Function RES Input Reset FWE Input Flash program/erase protection by hardware MD2,MD1,MD0 Input Sets this LSI’s operating mode PF3,PF0,P16, P14 Input Sets this LSI’s operating mode in programmer mode TxD2 Output Serial transmit data output RxD2 Input Serial receive data input USB+,USB- Input/Output USB data output VBUS Input USB cable connection/disconnection detection UBPM Input USB bus power mode/self power mode setting USPND Output USB suspend output P36 (PUPD+) Output D+ pull-up control 19.5 HD64F2215 and HD64F2215U HD64F2215 HD64F2215U Register Descriptions The flash memory has the following registers. For details on register addresses and register states during each processing, refer to section 23, List of Registers. • Flash memory control register 1 (FLMCR1) • Flash memory control register 2 (FLMCR2) • Erase block register 1 (EBR1) • Erase block register 2 (EBR2) • RAM emulation register (RAMER) • Serial control register X (SCRX) The above registers are not implemented in the mask ROM version, so attempting to read from them will return undefined values. It is not possible to write to them. Page 634 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 19.5.1 Section 19 Flash Memory (F-ZTAT Version) Flash Memory Control Register 1 (FLMCR1) FLMCR1 is a register that makes the flash memory transit to program mode, program-verify mode, erase mode, or erase-verify mode. For details on register setting, refer to section 19.8, Flash Memory Programming/Erasing. Bit 7 Bit Name Initial Value FWE —* R/W Description R Flash Write Enable Reflects the input level at the FWE pin. It is set to 1 when a low level is input to the FWE pin, and cleared to 0 when a high level is input. 6 SWE1 0 R/W Software Write Enable When this bit is set to 1, flash memory programming/erasing is enabled. When this bit is cleared to 0, other FLMCR1 register bits and all EBR1, EBR2 bits cannot be set. [Setting condition] • 5 ESU1 0 R/W When FWE = 1 Erase Setup When this bit is set to 1, the flash memory transits to the erase setup state. When it is cleared to 0, the erase setup state is cancelled. Set this bit to 1 before setting the E1 bit in FLMCR1. [Setting condition] • 4 PSU1 0 R/W When FWE = 1 and SWE1 = 1 Program Setup When this bit is set to 1, the flash memory transits to the program setup state. When it is cleared to 0, the program setup state is cancelled. Set this bit to 1 before setting the P1 bit in FLMCR1. [Setting condition] • 3 EV1 0 R/W When FWE = 1 and SWE1 = 1 Erase-Verify When this bit is set to 1, the flash memory transits to erase-verify mode. When it is cleared to 0, erase-verify mode is cancelled. [Setting condition] • REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 When FWE = 1 and SWE1 = 1 Page 635 of 846 H8S/2215 Group Section 19 Flash Memory (F-ZTAT Version) Bit Bit Name Initial Value R/W Description 2 PV1 R/W Program-Verify 0 When this bit is set to 1, the flash memory transits to program-verify mode. When it is cleared to 0, programverify mode is cancelled. [Setting condition] • 1 E1 0 R/W When FWE = 1 and SWE1 = 1 Erase When this bit is set to 1 while the SWE1 and ESU1 bits are 1, the flash memory transits to erase mode. When it is cleared to 0, erase mode is cancelled. [Setting condition] • 0 P1 0 R/W When FWE = 1, SWE1 = 1, and ESU1 = 1 Program When this bit is set to 1 while the SWE1 and PSU1 bits are 1, the flash memory transits to program mode. When it is cleared to 0, program mode is cancelled. [Setting condition] • Note: * 19.5.2 When FWE = 1, SWE1 = 1, and PSU1 = 1 Set according to the FWE pin state. Flash Memory Control Register 2 (FLMCR2) FLMCR2 is a register that displays the state of flash memory programming/erasing. FLMCR2 is a read-only register, and should not be written to. Bit Bit Name Initial Value R/W Description 7 FLER R Indicates that an error has occurred during an operation on flash memory (programming or erasing). When FLER is set to 1, flash memory goes to the error-protection state. 0 See section 19.9.3 Error Protection, for details. 6 to 0 — All 0 — Reserved These bits always read as 0. Page 636 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 19.5.3 Section 19 Flash Memory (F-ZTAT Version) Erase Block Register 1 (EBR1) EBR1 specifies the flash memory erase area block. EBR1 is initialized to H'00 when the SWE bit in FLMCR is 0. Do not set more than one bit at a time, as this will cause all the bits in EBR1 and EBR2 to be automatically cleared to 0. Bit Bit Name Initial Value R/W Description 7 EB7 0 R/W When this bit is set to 1, 4 kbytes of EB7 (H'007000 to H'007FFF) are to be erased. 6 EB6 0 R/W When this bit is set to 1, 4 kbytes of EB6 (H'006000 to H'006FFF) are to be erased. 5 EB5 0 R/W When this bit is set to 1, 4 kbytes of EB5 (H'005000 to H'005FFF) are to be erased. 4 EB4 0 R/W When this bit is set to 1, 4 kbytes of EB4 (H'004000 to H'004FFF) are to be erased. 3 EB3 0 R/W When this bit is set to 1, 4 kbytes of EB3 (H'003000 to H'003FFF) is to be erased. 2 EB2 0 R/W When this bit is set to 1, 4 kbytes of EB2 (H'002000 to H'002FFF) is to be erased. 1 EB1 0 R/W When this bit is set to 1, 4 kbytes of EB1 (H'001000 to H'001FFF) is to be erased. 0 EB0 0 R/W When this bit is set to 1, 4 kbytes of EB0 (H'000000 to H'000FFF) is to be erased. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 637 of 846 H8S/2215 Group Section 19 Flash Memory (F-ZTAT Version) 19.5.4 Erase Block Register 2 (EBR2) EBR2 specifies the flash memory erase area block. EBR2 is initialized to H'00 when the SWE bit in FLMCR1 is 0. Do not set more than one bit at a time, as this will cause all the bits in EBR1 and EBR2 to be automatically cleared to 0. Bit Bit Name Initial Value 7 to 4 — All 0 R/W R/W Description Reserved The write value should always be 0. 3 EB11 0 R/W When this bit is set to 1, 64 kbytes of EB11 (H'030000 to H'03FFFF) are to be erased. 2 EB10 0 R/W When this bit is set to 1, 64 kbytes of EB10 (H'020000 to H'02FFFF) are to be erased. 1 EB9 0 R/W When this bit is set to 1, 64 kbytes of EB9 (H'010000 to H'01FFFF) are to be erased. 0 EB8 0 R/W When this bit is set to 1, 32 kbytes of EB8 (H'008000 to H'0'0FFFF) are to be erased. Page 638 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 19.5.5 Section 19 Flash Memory (F-ZTAT Version) RAM Emulation Register (RAMER) RAMER specifies the area of flash memory to be overlapped with part of RAM when emulating real-time flash memory programming. RAMER settings should be made in user mode or user program mode. To ensure correct operation of the emulation function, the ROM for which RAM emulation is performed should not be accessed immediately after this register has been modified. Normal execution of an access immediately after register modification is not guaranteed. For details, refer to section 19.7, Flash Memory Emulation in RAM. Bit Bit Name Initial Value 7 to 5 — All 0 R/W — Description Reserved These bits always read as 0. 4 — 0 R/W Reserved The write value should always be 0. 3 RAMS 0 R/W RAM Select Specifies selection or non-selection of flash memory emulation in RAM. When RAMS = 1, the flash memory is overlapped with part of RAM, and all flash memory block are program/erase-protected. 2 RAM2 0 R/W Flash Memory Area Selection 1 RAM1 0 R/W 0 RAM0 0 R/W When the RAMS bit is set to 1, selects one of the following flash memory areas to overlap the RAM area. The areas correspond with 4-kbyte erase blocks. 000: H'000000 to H'000FFF (EB0) 001: H'001000 to H'001FFF (EB1) 010: H'002000 to H'002FFF (EB2) 011: H'003000 to H'003FFF (EB3) 100: H'004000 to H'004FFF (EB4) 101: H'005000 to H'005FFF (EB5) 110: H'006000 to H'006FFF (EB6) 111: H'007000 to H'007FFF (EB7) REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 639 of 846 H8S/2215 Group Section 19 Flash Memory (F-ZTAT Version) 19.5.6 Serial Control Register X (SCRX) SCRX performs register access control. Bit Bit Name Initial Value 7 to 4 — All 0 R/W Description R/W Reserved The write value should always be 0. 3 FLSHE 0 R/W Flash Memory Control Register Enable Controls CPU access to the flash memory control registers (FLMCR1, FLMCR2, EBR1, and EBR2). Setting the FLSHE bit to 1 enables read/write access to the flash memory control registers. If FLSHE is cleared to 0, the flash memory control registers are deselected. In this case, the flash memory control register contents are retained. 0: Flash control registers deselected in area H'FFFFA8 to H'FFFFAC 1: Flash control registers selected in area H'FFFFA8 to H'FFFFAC 2 to 0 — All 0 R/W Reserved The write value should always be 0. Page 640 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 19.6 Section 19 Flash Memory (F-ZTAT Version) On-Board Programming Modes When pins are set to on-board programming mode and a reset-start is executed, a transition is made to the on-board programming state in which program/erase/verify operations can be performed on the on-chip flash memory. There are two on-board programming modes: boot mode and user program mode. The pin settings for transition to each of these modes are shown in table 19.3. For a diagram of the transitions to the various flash memory modes, see figure 19.2. Table 19.3 Setting On-Board Programming Modes Mode FWE MD2 MD1 MD0 SCI boot mode (HD64F2215, HD64F2215R, HD64F2215T) Advanced: On-chip ROM extended mode 1 0 1 0 Advanced: Single-chip mode 1 0 1 1 USB boot mode (HD64F2215U, HD64F2215RU, HD64F2215TU, 1 HD64F2215CU)* Advanced: On-chip ROM extended mode 1 0 1 0 Advanced: Single-chip mode 1 0 1 1 USB boot mode (HD64F2215RU, HD64F2215TU, 2 HD64F2215CU)* Advanced: On-chip ROM extended mode 1 1 0 0 Advanced: Single-chip mode 1 1 0 1 User program mode Advanced: On-chip ROM extended mode (MCU operating mode 6) 1 1 1 0 Advanced: Single-chip mode (MCU operating mode 7) 1 1 1 1 Notes: 1. When the system clock is 16 MHz. 2. When the system clock is 24 MHz. 19.6.1 SCI Boot Mode (HD64F2215, HD64F2215R, and HD64F2215T) When a reset-start is executed after the LSI’s pins have been set to boot mode, the boot program built into the LSI is started and the programming control program prepared in the host is serially transmitted to the LSI via the SCI. In the LSI, the programming control program received via the SCI is written into the programming control program area in on-chip RAM. After the transfer is completed, control branches to the start address of the programming control program area and the programming control program execution state is entered (flash memory programming is performed). The system configuration in SCI boot mode is shown in figure 19.6. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 641 of 846 H8S/2215 Group Section 19 Flash Memory (F-ZTAT Version) H8S/2215 Group 1 01× Host Write data reception Verify data transmission FWE* MD2 to 0* RxD2 SCI_2 TxD2 Flash memory On-chip RAM Legend: ×: Don’t care Note: * FWE pin and mode pin input must satisfy the mode programming setup time (tMDS = 200 ns) when a reset is released. Figure 19.6 System Configuration in SCI Boot Mode Table 19.4 shows the boot mode operations between reset end and branching to the programming control program. 1. When boot mode is used, the flash memory programming control program must be prepared in the host beforehand. Prepare a programming control program in accordance with the description in section 19.8, Flash Memory Programming/Erasing. In boot mode, if any data has been programmed into the flash memory (if all data is not 1), all flash memory blocks are erased. Boot mode is for use in enforced exit when user program mode is unavailable, such as the first time on-board programming is performed, or if the program activated in user program mode is accidentally erased. 2. The SCI_2 should be set to asynchronous mode, and the transfer format as follows: 8-bit data, 1 stop bit, and no parity. 3. When the boot program is initiated, the chip measures the low-level period of asynchronous SCI communication data (H'00) transmitted continuously from the host. The chip then calculates the bit rate of transmission from the host, and adjusts the SCI_2 bit rate to match that of the host. The reset should end with the RxD pin high. The RxD and TxD pins should be pulled up on the board if necessary. After the reset ends, it takes approximately 100 states before the chip is ready to measure the low-level period. 4. After matching the bit rates, the chip transmits one H'00 byte to the host to indicate the end of bit rate adjustment. The host should confirm that this adjustment end indication (H'00) has been received normally, and transmit one H'55 byte to the chip. If reception could not be Page 642 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group Section 19 Flash Memory (F-ZTAT Version) performed normally, initiate boot mode again by a reset. Depending on the host’s transfer bit rate and system clock frequency of this LSI, there will be a discrepancy between the bit rates of the host and the chip. To operate the SCI properly, set the host’s transfer bit rate and system clock frequency of this LSI within the ranges listed in table 19.5. 5. In boot mode, a part of the on-chip RAM area (4 kbytes) is used by the boot program. Addresses H'FFE000 to H'FFEFBF is the area to which the programming control program is transferred from the host. The boot program area cannot be used until the execution state in boot mode switches to the programming control program. 6. Before branching to the programming control program, the chip terminates transfer operations by the SCI_2 (by clearing the RE and TE bits in SCR to 0), but the adjusted bit rate value remains set in BRR. Therefore, the programming control program can still use it for transfer of write data or verify data with the host. The TxD pin is high. The contents of the CPU general registers are undefined immediately after branching to the programming control program. These registers must be initialized at the beginning of the programming control program, since the stack pointer (SP), in particular, is used implicitly in subroutine calls, etc. 7. Boot mode can be cleared by a reset. End the reset* after driving the reset pin low, waiting at least 20 states, and then setting the FWE pin and the mode (MD) pins. Boot mode is also cleared when a WDT overflow occurs. 8. Do not change the MD pin input levels in boot mode. If the mode pin input levels are changed (for example, from low to high) during a reset, the state of ports with multiplexed address functions and bus control output pins (AS, RD, WR) will change according to the change in the microcomputer’s operating mode . Therefore, care must be taken to make pin settings to prevent these pins from becoming output signal pins during a reset, or to prevent collision with signals outside the microcomputer. 9. All interrupts are disabled during programming or erasing of the flash memory. Note: * Mode pin and FWE pin input must satisfy the mode programming setup time (tMDS = 200 ns) with respect to the reset release timing. REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 Page 643 of 846 H8S/2215 Group Section 19 Flash Memory (F-ZTAT Version) Table 19.4 SCI Boot Mode Operation Item Host Operation LSI Operation Branches to boot program at resetstart. Bit rate adjustment Continuously transmits data H'00 at specified bit rate. Measures low-level period of receive data H'00. Calculates bit rate and sets it in BRR of SCI_2. Transmits data H'55 when data H'00 is received error-free. Transmits data H'00 to host as adjustment end indication. Transmits data H'AA to host when data H'55 is received. Transmits number of Transmits number of bytes (N) of Echobacks the 2-byte data received bytes (N) of programming programming control program to as verification data. control program be transferred as 2-byte data (loworder byte following high-order byte) Transmits 1-byte of programming control program (repeated for N times) Transmits 1-byte of programming control program Echobacks received data to host and also transfers it to RAM Flash memory erase Checks flash memory data, erases all flash memory blocks in case of written data existing, and transmits data H'AA to host. (If erase could not be done, transmits data H'FF to host and aborts operation.) Programming control program execution Branches to programming control program transferred to on-chip RAM and starts execution. Table 19.5 System Clock Frequencies for Which Automatic Adjustment of LSI Bit Rate Is Possible Host Bit Rate System Clock Frequency Range of LSI 19,200 bps HD64F2215: 13 to 16 MHz 9,600 bps HD64F2215R: 13 to 24 MHz 4,800 bps HD64F2215T: 16 MHz and 24 MHz Page 644 of 846 REJ09B0140-0900 Rev. 9.00 Sep 16, 2010 H8S/2215 Group 19.6.2 Section 19 Flash Memory (F-ZTAT Version) USB Boot Mode (HD64F2215U, HD64F2215RU, HD64F2215TU and HD64F2215CU) • Features ⎯ Selection of bus-powered mode or self-powered mode ⎯ HD64F2215U: Supports only 16-MHz system clock, with USB operating clock generation by means of PLL3 multiplication HD64F2215RU, HD64F2215TU and HD64F2215CU: Supports either 16-MHz or 24-MHz system clock, with USB operating clock generation by means of PLL2 or PLL3 multiplication, respectively. ⎯