1. Hitachi neither warrants nor grants licenses of any rights of Hitachi’s or any third party’s
patent, copyright, trademark, or other intellectual property rights for information contained in
this document. Hitachi bears no responsibility for problems that may arise with third party’s
rights, including intellectual property rights, in connection with use of the information
contained in this document.
2. Products and product specifications may be subject to change without notice. Confirm that you
have received the latest product standards or specifications before final design, purchase or
use.
3. Hitachi makes every attempt to ensure that its products are of high quality and reliability.
However, contact Hitachi’s sales office before using the product in an application that
demands especially high quality and reliability or where its failure or malfunction may directly
threaten human life or cause risk of bodily injury, such as aerospace, aeronautics, nuclear
power, combustion control, transportation, traffic, safety equipment or medical equipment for
life support.
4. Design your application so that the product is used within the ranges guaranteed by Hitachi
particularly for maximum rating, operating supply voltage range, heat radiation characteristics,
installation conditions and other characteristics. Hitachi bears no responsibility for failure or
damage when used beyond the guaranteed ranges. Even within the guaranteed ranges,
consider normally foreseeable failure rates or failure modes in semiconductor devices and
employ systemic measures such as fail-safes, so that the equipment incorporating Hitachi
product does not cause bodily injury, fire or other consequential damage due to operation of
the Hitachi product.
5. This product is not designed to be radiation resistant.
6. No one is permitted to reproduce or duplicate, in any form, the whole or part of this document
without written approval from Hitachi.
7. Contact Hitachi’s sales office for any questions regarding this document or Hitachi
semiconductor products.
Page 3
Preface
The H8S/2633 Series is a series of high-performance microcontrollers with a 32-bit H8S/2600
CPU core, and a set of on-chip supporting functions required for system configuration.
The H8S/2600 CPU can execute basic instructions in one state, and is provided with sixteen 16-bit
general registers with a 32-bit internal configuration, and a concise and optimized instruction set.
The CPU can handle a 16 Mbyte linear address space (architecturally 4 Gbytes). Programs based
on the high-level language C can also be run efficiently.
The address space is divided into eight areas. The data bus width and access states can be selected
for each of these areas, and various kinds of memory can be connected fast and easily.
Single-power-supply flash memory (F-ZTAT™*1), PROM (ZTAT™*2), and mask ROM versions
are available, providing a quick and flexible response to conditions from ramp-up through fullscale volume production, even for applications with frequently changing specifications.
On-chip supporting functions include a 16-bit timer pulse unit (TPU), programmable pulse
generator (PPG), 8-bit timer, 14-bit PWM timer (PWM), watchdog timer (WDT), serial
communication interface (SCI, IrDA), A/D converter, D/A converter, and I/O ports. It is also
possible to incorporate an on-chip PC bus interface (IIC) as an option.
In addition, DMA controller (DMAC) and data transfer controller (DTC) are provided, enabling
high-speed data transfer without CPU intervention.
Use of the H8S/2633 Series enables easy implementation of compact, high-performance systems
capable of processing large volumes of data.
This manual describes the hardware of the H8S/2633 Series. Refer to the H8S/2600 Series and
H8S/2000 Series Programming Manual for a detailed description of the instruction set.
Note: * F-ZTAT (Flexible-ZTAT) is a trademark of Hitachi, Ltd.
Page 4
Main Revisions and Additions in this Edition
Revisions
PageItem
21.1 OverviewTable 1-1 Overview
91.3.2 Pin Functions in Each Operating ModeTable 1-2 Pin Functions in Each
392.6.2 Instructions and Addressing ModesTable 2-2 Combinations of
43, 472.6.3 Table of Instructions Classified by Function Table 2-3 Instructions classified by
(See Manual for Details)
Input clock frequency amended
Operating Mode amended
Notes on TAS Instruction added
Instructions and Addressing Modes
Notes on TAS Instruction added
Function
Notes on TAS Instruction added
662.10 Usage NoteAdded
683.2.1 Mode Control Register (MDCR)Bit 7 description amended
753.4 Pin Functions in Each Operating ModeTable 3-3 Pin Functions in Each
Mode amended
76 to 783.5 Address Map in Each Operating ModeFigure 3-1 Memory Map in Each
Correspondence Diagram amended
82222.11.2 Programmer Mode OperationTable 22-11 Settings for Various
Operating Modes In Programmer
Mode amended
834 to
838
83922.14 Note on Switching from F-ZTAT Version to
22.13 Flash Memory Programming and Erasing
Precautions
Added
Added
Mask ROM Version
84223.2.1 System Clock Control Register (SCKCR)Description amended
843, 84423.2.2 Low-Power Control Register (LPWRCR)Amended
84423.3 OscillatorAmended
Page 9
Revisions
PageItem
(See Manual for Details)
844, 84523.3.1 Connecting a Crystal ResonatorTable 23-2 Damping Resistance
Value
25 MHz added
Crystal Resonator amended
845, 846Table 23-3 Crystal Resonator
Parameters
25 MHz added
Figure 23-5 Points for Attention
Appendix G Package Dimensions................................................................................. 1154
xviii
Page 29
Section 1 Overview
1.1Overview
The H8S/2633 Series is a series of microcomputers (MCUs: microcomputer units), built around
the H8S/2600 CPU, employing Hitachi's proprietary architecture, and equipped with peripheral
functions on-chip.
The H8S/2600 CPU has an internal 32-bit architecture, is provided with sixteen 16-bit general
registers and a concise, optimized instruction set designed for high-speed operation, and can
address a 16-Mbyte linear address space. The instruction set is upward-compatible with H8/300
and H8/300H CPU instructions at the object-code level, facilitating migration from the H8/300,
H8/300L, or H8/300H Series.
On-chip peripheral functions required for system configuration include DMA controller (DMAC),
data transfer controller (DTC) bus masters, ROM and RAM memory, a16-bit timer-pulse unit
(TPU), programmable pulse generator (PPG), 8-bit timer, 14-bit PWM timer (PWM) watchdog
timer (WDT), serial communication interface (SCI, IrDA), A/D converter, D/A converter, and I/O
ports. It is also possible to incorporate an on-chip PC bus interface (IIC) as an option.
On-chip ROM is available as 256-kbyte flash memory (F-ZTAT™ version)* or as 256-, 128-, or
64-kbyte mask ROM. ROM is connected to the CPU via a 16-bit data bus, enabling both byte and
word data to be accessed in one state. Instruction fetching has been speeded up, and processing
speed increased.
Four operating modes, modes 4 to 7, are provided, and there is a choice of single-chip mode or
external expansion mode.
The features of the H8S/2633 Series are shown in table 1-1.
Note: * F-ZTAT™ is a trademark of Hitachi, Ltd.
1
Page 30
Table 1-1Overview
ItemSpecification
CPU
• General-register machine
Sixteen 16-bit general registers (also usable as sixteen 8-bit registers
or eight 32-bit registers)
• High-speed operation suitable for realtime control
Maximum clock rate: 25 MHz
High-speed arithmetic operations
Note:NC pins should be connected to VSS or left open.
13
Page 42
1.3.3Pin Functions
Table 1-3 outlines the pin functions of the H8S/2633 Series.
Table 1-3Pin Functions
TypeSymbolI/OName and Function
PowerVCCInputPower supply: For connection to the power supply.
All VCC pins should be connected to the system power
supply.
PVCC1,
PVCC2
VSSInputGround: For connection to ground
ClockPLLVCCInputPLL power supply: Power supply for on-chip PLL
PLLVSSInputPLL ground: Ground for on-chip PLL oscillator.
PLLCAPInputPLL capacitance: External capacitance pin for on-chip
XTALInputConnects to a crystal oscillator.
EXTALInputConnects to a crystal oscillator.
InputPort power supply pin. Connect all pins to the same
power supply.
(0 V). All VSS pins should be connected to the system
power supply (0 V).
oscillator.
PLL oscillator.
See section 23, Clock Pulse Generator, for typical
connection diagrams for a crystal oscillator and
external clock input.
The EXTAL pin can also input an external clock.
See section 23, Clock Pulse Generator, for typical
connection diagrams for a crystal oscillator and
external clock input.
OSC1InputSubclock: Connects to a 32.768 kHz crystal oscillator.
OSC2InputSubclock: Connects to a 32.768 kHz crystal oscillator.
øOutputSystem clock: Supplies the system clock to an external
14
See Chapter 23 Clock Oscillator for examples of
connections to a crystal oscillator.
See Chapter 23 Clock Oscillator for examples of
connections to a crystal oscillator.
device.
Page 43
TypeSymbolI/OName and Function
Operating mode
control
MD2 to MD0InputMode pins: These pins set the operating mode.
The relation between the settings of pins MD2 to MD0
and the operating mode is shown below. These pins
should not be changed while the H8S/2633 Series is
operating.
MD2MD1MD0Operating Mode
000—
1—
10—
1—
100Mode 4
1Mode 5
10Mode 6
1Mode 7
System controlRESInputReset input: When this pin is driven low, the chip is
reset.
MRESInputManual reset: When this pin is driven low, a
transmission is made to manual reset mode.
STBYInputStandby: When this pin is driven low, a transition is
made to hardware standby mode.
BREQInputBus request: Used by an external bus master to issue
a bus request to the H8S/2633 Series.
BREQOOutputBus request output: The external bus request signal
used when an internal bus master accesses external
space in the external bus-released state.
BACKOutputBus request acknowledge: Indicates that the bus has
been released to an external bus master.
FWEInputFlash write enable: Pin for flash memory use (in
planning stage).
15
Page 44
TypeSymbolI/OName and Function
InterruptsNMIInputNonmaskable interrupt: Requests a nonmaskable
interrupt. When this pin is not used, it should be fixed
high.
IRQ7 to IRQ0 InputInterrupt request 7 to 0: These pins request a
maskable interrupt.
Address busA23 to A0OutputAddress bus: These pins output an address.
Data busD15 to D0I/OData bus: These pins constitute a bidirectional data
bus.
Bus controlCS7 to CS0OutputChip select: Selection signal for areas 0 to 7.
ASOutputAddress strobe: When this pin is low, it indicates that
address output on the address bus is enabled.
RDOutputRead: When this pin is low, it indicates that the
C clock input/output pins.
These functions have a bus driving function.
SCL0's output format is an NMOS open drain.
SDA0
SDA1
I/OI2C data input/output (channel 1, 0):
2
I
C clock input/output pins.
These functions have a bus driving function.
SCL0's output format is an NMOS open drain.
A/D converterAN15 to AN0 InputAnalog 15 to 0: Analog input pins.
ADTRGInputA/D conversion external trigger input: Pin for input of
an external trigger to start A/D conversion.
D/A converterDA3 to DA0OutputAnalog output: Analog output pins for D/A converter.
A/D converter,
D/A converter
AVCCInputA/D converter and D/A converter power supply pin
When the A/D converter and D/A converter are not
used, this pin should be connected to the system
power supply (+5 V).
18
Page 47
TypeSymbolI/OName and Function
A/D converter,
D/A converter
AVSSInputAnalog circuit ground and reference voltage
A/D converter and D/A converter ground and reference
voltage.
Connect to system power supply (0 V).
VrefInputA/D converter and D/A converter reference voltage
input pin
When the A/D converter and D/A converter are not
used, this pin should be connected to the system
power supply (+5 V).
I/O portsP17 to P10I/OPort 1: An 8-bit I/O port. Input or output can be
designated for each bit by means of the port 1 data
direction register (P1DDR).
P37 to P30I/OPort 3: An 8-bit I/O port. Input or output can be
designated for each bit by means of the port 3 data
direction register (P3DDR).
P47 to P40InputPort 4: An 8-bit input port.
P77 to P70I/OPort 7: An 8-bit I/O port. Input or output can be
designated for each bit by means of the port 7 data
direction register (P7DDR).
P97 to P90InputPort 9: An 8-bit input port.
PA3 to PA0I/OPort A: A 4-bit I/O port. Input or output can be
designated for each bit by means of the port A data
direction register (PADDR).
PB7 to PB0I/OPort B: An 8-bit I/O port. Input or output can be
designated for each bit by means of the port B data
direction register (PBDDR).
PC7 to PC0I/OPort C: An 8-bit I/O port. Input or output can be
designated for each bit by means of the port C data
direction register (PCDDR).
PD7 to PD0I/OPort D: An 8-bit I/O port. Input or output can be
designated for each bit by means of the port D data
direction register (PDDDR).
PE7 to PE0I/OPort E: An 8-bit I/O port. Input or output can be
designated for each bit by means of the port E data
direction register (PEDDR).
PF7 to PF0I/OPort F: An 8-bit I/O port. Input or output can be
designated for each bit by means of the port F data
direction register (PFDDR).
PG4 to PG0I/OPort G: An 5-bit I/O port. Input or output can be
designated for each bit by means of the port G data
direction register (PGDDR).
19
Page 48
Section 2 CPU
2.1Overview
The H8S/2600 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/2600 CPU has sixteen 16-bit
general registers, can address a 16-Mbyte (architecturally 4-Gbyte) linear address space, and is
ideal for realtime control.
2.1.1Features
The H8S/2600 CPU has the following features.
• Upward-compatible with H8/300 and H8/300H CPUs
Can execute H8/300 and H8/300H object programs
• General-register architecture
Sixteen 16-bit general registers (also usable as sixteen 8-bit registers or eight 32-bit
• High-speed operation
All frequently-used instructions execute in one or two states
Maximum clock rate: 25 MHz
8/16/32-bit register-register add/subtract: 40 ns
8 × 8-bit register-register multiply: 120 ns
16 ÷ 8-bit register-register divide: 480 ns
16 × 16-bit register-register multiply: 160 ns
32 ÷ 16-bit register-register divide: 800 ns
• Two CPU operating modes
Normal mode*
Advanced mode
Note: * Not available in the H8S/2633 Series.
• Power-down state
Transition to power-down state by SLEEP instruction
CPU clock speed selection
2.1.2Differences 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.
• Number of execution states
The number of execution states of the MULXU and MULXS instructions is different in each
CPU.
Execution States
InstructionMnemonicH8S/2600H8S/2000
MULXUMULXU.B Rs, Rd312
MULXU.W Rs, ERd420
MULXSMULXS.B Rs, Rd413
MULXS.W Rs, ERd521
22
Page 50
In addition, there are differences in address space, CCR and EXR register functions, power-down
modes, etc., depending on the model.
2.1.3Differences from H8/300 CPU
In comparison to the H8/300 CPU, the H8S/2600 CPU has the following enhancements.
• More general registers and control registers
Eight 16-bit expanded registers, and one 8-bit and two 32-bit control registers, have been
added.
• Expanded 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.
Note: * Not available in the H8S/2633 Series.
• 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.
A multiply-and-accumulate instruction has 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.4Differences from H8/300H CPU
In comparison to the H8/300H CPU, the H8S/2600 CPU has the following enhancements.
• Additional control register
One 8-bit and two 32-bit control registers have been added.
• Enhanced instructions
Addressing modes of bit-manipulation instructions have been enhanced.
A multiply-and-accumulate instruction has been added.
23
Page 51
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.2CPU Operating Modes
The H8S/2600 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 (architecturally a maximum 16-Mbyte program area and a maximum of 4 Gbytes for
program and data areas combined). The mode is selected by the mode pins of the microcontroller.
Note: * Not available in the H8S/2633 Series.
Normal mode*
CPU operating modes
Advanced mode
Note: * Not available in the H8S/2633 Series.
Maximum 64 kbytes, program
and data areas combined
Maximum 16-Mbytes for
program and data areas
combined
Figure 2-1 CPU Operating Modes
(1) Normal Mode (Not Available in the H8S/2633 Series)
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.
24
Page 52
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 (figure 2-2). The exception vector table differs depending on the microcontroller. 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 16bit 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.
25
Page 53
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-3. When EXR is invalid, it is
not pushed onto the stack. For details, see section 4, Exception Handling.
SP
(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.
(2) Advanced Mode
PC
(16 bits)
SP
*2
(SP )
Figure 2-3 Stack Structure in Normal Mode
EXR
Reserved
CCR
CCR
PC
(16 bits)
*1
*1,*3
*3
Address Space: Linear access is provided to a 16-Mbyte maximum address space (architecturally
a maximum 16-Mbyte program area and a maximum 4-Gbyte data area, with a maximum of 4
Gbytes for program and data areas combined).
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.
26
Page 54
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-4).
For details of the exception vector table, see section 4, Exception Handling.
H'00000000
H'00000003
H'00000004
H'00000007
H'00000008
H'0000000B
H'0000000C
Reserved
Power-on reset exception vector
Reserved
Manual reset exception vector
Exception vector table
(Reserved for system use)
H'00000010
Reserved
Exception vector 1
Figure 2-4 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, 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.
27
Page 55
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-5. When
EXR is invalid, it is not pushed onto the stack. For details, see section 4, Exception Handling.
SP
Notes: 1.
EXR
CCR
*1
*1,*3
Reserved
SP
*2
(SP )
Reserved
PC
(24 bits)
PC
(24 bits)
(a) Subroutine Branch(b) Exception Handling
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-5 Stack Structure in Advanced Mode
28
Page 56
2.3Address Space
Figure 2-6 shows a memory map of the H8S/2600 CPU. The H8S/2600 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.
H'0000
H'FFFF
H'00000000
H'00FFFFFF
H'FFFFFFFF
Program area
Data area
Cannot be
used by the
H8S/2633
Series
(a) Normal Mode*
Note: * Not available in the H8S/2633 Series.
Figure 2-6 Memory Map
(b) Advanced Mode
29
Page 57
2.4Register Configuration
2.4.1Overview
The CPU has the internal registers shown in figure 2-7. There are two types of registers: general
registers and control registers.
General Registers (Rn) and Extended Registers (En)
1507070
ER0
ER1
ER2
ER3
ER4
ER5
ER6
ER7 (SP)
Control Registers (CR)
6332
MAC
E0
E1
E2
E3
E4
E5
E6
E7
230
Sign extension
R0H
R1H
R2H
R3H
R4H
R5H
R6H
R7H
PC
41
MACL
R0L
R1L
R2L
R3L
R4L
R5L
R6L
R7L
76543210
T
————
76543210
IUIHUNZVCCCR
MACH
I2 I1I0EXR
031
Legend
SP:
PC:
EXR:
T:
I2 to I0:
CCR:
I:
UI:
Note: * Cannot be used as an interrupt mask bit in the H8S/2633 Series.
Stack pointer
Program counter
Extended control register
Trace bit
Interrupt mask bits
Condition-code register
Interrupt mask bit
User bit or interrupt mask bit*
30
H:
U:
N:
Z:
V:
C:
MAC:
Half-carry flag
User bit
Negative flag
Zero flag
Overflow flag
Carry flag
Multiply-accumulate register
Figure 2-7 CPU Registers
Page 58
2.4.2General Registers
The 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. 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.
Figure 2-8 illustrates the usage of the general 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-9 shows the
stack.
Free area
SP (ER7)
Stack area
Figure 2-9 Stack
2.4.3Control Registers
The control registers are the 24-bit program counter (PC), 8-bit extended control register (EXR),
8-bit condition-code register (CCR), and 64-bit multiply-accumulate register (MAC).
(1) 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 2 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) Extended Control Register (EXR): This 8-bit register contains the trace bit (T) and three
interrupt mask bits (I2 to I0).
Bit 7—Trace Bit (T): Selects trace mode. When this bit is cleared to 0, instructions are executed
in sequence. When this bit is set to 1, a trace exception is generated each time an instruction is
executed.
Bits 6 to 3—Reserved: They are always read as 1.
32
Page 60
Bits 2 to 0—Interrupt Mask Bits (I2 to I0): These bits designate the interrupt mask level (0 to
7). For details, refer to section 5, Interrupt Controller.
Operations can be performed on the EXR bits by the LDC, STC, ANDC, ORC, and XORC
instructions. All interrupts, including NMI, are disabled for three states after one of these
instructions is executed, except for STC.
(3) 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.
Bit 7—Interrupt Mask Bit (I): 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 exceptionhandling sequence. For details, refer to section 5, Interrupt Controller.
Bit 6—User Bit or Interrupt Mask Bit (UI): Can be written and read by software using the
LDC, STC, ANDC, ORC, and XORC instructions. This bit can also be used as an interrupt mask
bit. For details, refer to section 5, Interrupt Controller.
Bit 5—Half-Carry Flag (H): 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.
Bit 4—User Bit (U): Can be written and read by software using the LDC, STC, ANDC, ORC, and
XORC instructions.
Bit 3—Negative Flag (N): Stores the value of the most significant bit (sign bit) of data.
Bit 2—Zero Flag (Z): Set to 1 to indicate zero data, and cleared to 0 to indicate non-zero data.
Bit 1—Overflow Flag (V): Set to 1 when an arithmetic overflow occurs, and cleared to 0 at other
times.
Bit 0—Carry Flag (C): 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 borrow
• Shift and rotate instructions, to store the value shifted out of the end bit
The carry flag is also used as a bit accumulator by bit manipulation instructions.
33
Page 61
Some instructions leave some or all of the flag bits unchanged. For the action of each instruction
on the flag bits, refer to Appendix A.1, List of Instructions.
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.
(4) Multiply-Accumulate Register (MAC): This 64-bit register stores the results of multiplyand-accumulate operations. It consists of two 32-bit registers denoted MACH and MACL. The
lower 10 bits of MACH are valid; the upper bits are a sign extension.
2.4.4Initial 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.
34
Page 62
2.5Data Formats
The 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.1General Register Data Formats
Figure 2-10 shows the data formats in general registers.
Data TypeRegister NumberData Format
1-bit data
1-bit data
4-bit BCD data
4-bit BCD data
Byte data
RnH
RnL
RnH
RnL
RnH
70
76543210Don’t care
70
Don’t care76543210
70
70
MSBLSB
43
Don’t care
Don’t careUpperLower
70
Upper
43
Lower
Don’t care
Byte data
RnL
Figure 2-10 General Register Data Formats
Don’t care
70
MSB
LSB
35
Page 63
Data TypeRegister NumberData Format
Word data
Word data
15
Rn
En
0
MSBLSB
Longword data
31
MSB
ERn
16
EnRn
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
15
0
MSBLSB
15
0
LSB
Figure 2-10 General Register Data Formats (cont)
36
Page 64
2.5.2Memory Data Formats
Figure 2-11 shows the data formats in memory. The 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.
BIAND, BOR, BIOR, BXOR, BIXOR
BranchBcc*2, JMP, BSR, JSR, RTS—5
System controlTRAPA, RTE, SLEEP, LDC, STC, ANDC, ORC, XORC, NOP —9
Block data transfer EEPMOV—1
Notes: B-byte size; W-word size; L-longword size.
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. Not available in the H8S/2633 Series.
38
Page 66
2.6.2Instructions and Addressing Modes
Table 2-2 indicates the combinations of instructions and addressing modes that the H8S/2600 CPU
can use.
Table 2-2Combinations of Instructions and Addressing Modes
—
@@aa:8
@(d:16,PC)
@(d:8,PC)
@aa:32
@aa:24
Addressing Modes
@aa:16
@aa:8
@–ERn/@ERn+
@(d:32,ERn)
@(d:16,ERn)
@ERn
Rn
#xx
,—— —————B— —————
*
*
Instruction
Function
MOVBWLBWLBWLBWLBWLBWLBBWL—BWL————
Data
transfer
POP, PUSH—— ——————— ————WL
LDM, STM—— ——————— ————L
MOVEPE
MOVTPE
ADD, CMPBWLBWL——————— — ————
SUBWLBWL——————— —————
Arithmetic
operations
INC, DEC—BWL——————— —————
ADDX, SUBXBB——————— —————
ADDS, SUBS—L——————— —————
DIVXU
MULXS,—BW——————— —————
MULXU, —BW——————— —————
DAA, DAS—B——————— —————
DIVXS
TAS—— B—————— —————
EXTU, EXTS—WL————————————
NEG—BWL————————————
STMAC
LDMAC,—L——————— —————
MAC—— —————— —————
CLRMAC—— ——————— ————
39
Page 67
—
@@aa:8
@(d:16,PC)
@(d:8,PC)
@aa:32
@aa:24
@aa:16
@aa:8
Addressing Modes
Instruction
@–ERn/@ERn+
@(d:32,ERn)
@(d:16,ERn)
@ERn
Rn
#xx
NOT—BWL——————— —————
AND, OR,BWLBWL——————— —————
XOR
—BWL——————— —————
—BB———BB—B————
Bcc, BSR—— ——————— ———
JMP, JSR—— ——————l————
RTS—— ———— ——— — ———
TRAPA—— ——————— ————
RTE—— ———— ——— — ———
SLEEP—— ——————— ————
ANDC,B— ——————— —————
LDCB B WWWW—W—W————
STC—B WWWW—W—W————
—— ——————— ————BW
NOP—— ——————— ————
ORC, XORC
Logic
operations
Shift
Function
Bit manipulation
40
Branch
System
control
Block data transfer
Legend
B: Byte
W: Word
L: Longword
Note: * Not available in the H8S/2633 Series.
Page 68
2.6.3 Table of Instructions Classified by Function
Table 2-3 summarizes the instructions in each functional category. The notation used in table 2-3
is defined below.
Operation Notation
RdGeneral register (destination)*
RsGeneral register (source)*
RnGeneral register*
ERnGeneral register (32-bit register)
MACMultiply-accumulate register (32-bit register)
(EAd)Destination operand
(EAs)Source operand
EXRExtended control register
CCRCondition-code register
NN (negative) flag in CCR
ZZ (zero) flag in CCR
VV (overflow) flag in CCR
CC (carry) flag in CCR
PCProgram counter
SPStack pointer
#IMMImmediate data
dispDisplacement
+Addition
–Subtraction
×Multiplication
÷Division
∧Logical AND
∨Logical OR
⊕Logical exclusive OR
→Move
¬NOT (logical complement)
:8/:16/:24/:328-, 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).
41
Page 69
Table 2-3Instructions Classified by Function
TypeInstructionSize*
1
Function
Data transferMOVB/W/L(EAs) → Rd, Rs → (Ead)
Moves data between two general registers or between a
general register and memory, or moves immediate data
to a general register.
MOVFPEBCannot be used in the H8S/2633 Series.
MOVTPEBCannot be used in the H8S/2633 Series.
POPW/L@SP+ → Rn
Pops a register from the stack. POP.W Rn is identical to
MOV.W @SP+, Rn. POP.L ERn is identical to MOV.L
@SP+, ERn.
PUSHW/LRn → @–SP
Pushes a register onto the stack. PUSH.W Rn is
identical to MOV.W Rn, @–SP. PUSH.L ERn is identical
to MOV.L ERn, @–SP.
LDML@SP+ → Rn (register list)
Pops two or more general registers from the stack.
Arithmetic
operations
STMLRn (register list) → @–SP
Pushes two or more general registers onto the stack.
ADD
SUB
B/W/LRd ± 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
SUBX
BRd ± 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
DEC
B/W/LRd ± 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
SUBS
LRd ± 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
DAS
42
BRd decimal adjust → Rd
Decimal-adjusts an addition or subtraction result in a
general register by referring to the CCR to produce 4-bit
BCD data.
Page 70
TypeInstructionSize*
1
Function
Arithmetic
operations
MULXUB/WRd × 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.
MULXSB/WRd × 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.
DIVXUB/WRd ÷ 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 16bit remainder.
DIVXSB/WRd ÷ 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 16bit remainder.
CMPB/W/LRd – 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.
NEGB/W/L0 – Rd → Rd
Takes the two's complement (arithmetic complement) of
data in a general register.
EXTUW/LRd (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.
EXTSW/LRd (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.
2
TAS*
B@ERd – 0, 1 → (<bit 7> of @Erd)
Tests memory contents, and sets the most significant bit
(bit 7) to 1.
MAC—(EAs) × (EAd) + MAC → MAC
Performs signed multiplication on memory contents and
adds the result to the multiply-accumulate register. The
following operations can be performed:
16 bits × 16 bits + 32 bits → 32 bits, saturating
16 bits × 16 bits + 42 bits → 42 bits, non-saturating
43
Page 71
TypeInstructionSize*
1
Function
Arithmetic
operations
Logic
operations
Shift
operations
CLRMAC—0 → MAC
Clears the multiply-accumulate register to zero.
LDMAC
Performs a logical AND operation on a general register
and another general register or immediate data.
ORB/W/LRd ∨ Rs → Rd, Rd ∨ #IMM → Rd
Performs a logical OR operation on a general register
and another general register or immediate data.
XORB/W/LRd ⊕ Rs → Rd, Rd ⊕ #IMM → Rd
Performs a logical exclusive OR operation on a general
register and another general register or immediate data.
NOTB/W/L¬ (Rd) → (Rd)
Takes the one's complement of general register
contents.
SHAL
SHAR
B/W/LRd (shift) → Rd
Performs an arithmetic shift on general register contents.
1-bit or 2-bit shift is possible.
Bitmanipulation
instructions
SHLL
SHLR
B/W/LRd (shift) → Rd
Performs a logical shift on general register contents.
1-bit or 2-bit shift is possible.
ROTL
ROTR
B/W/LRd (rotate) → Rd
Rotates general register contents.
1-bit or 2-bit rotation is possible.
ROTXL
ROTXR
B/W/LRd (rotate) → Rd
Rotates general register contents through the carry flag.
1-bit or 2-bit rotation is possible.
BSETB1 → (<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.
BCLRB0 → (<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.
BNOTB¬ (<bit-No.> of <EAd>) → (<bit-No.> of <EAd>)
44
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.
Page 72
TypeInstructionSize*
1
Function
Bitmanipulation
instructions
BTSTB¬ (<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.
BXOR
BIXOR
BLD
BILD
B
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.
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.
B
(<bit-No.> of <EAd>) → C
Transfers a specified bit in a general register or memory
operand to the carry flag.
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.
45
Page 73
TypeInstructionSize*
1
Function
Bitmanipulation
instructions
Branch
instructions
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 3-bit immediate data.
Bcc—Branches to a specified address if a specified condition
is true. The branching conditions are listed below.
MnemonicDescriptionCondition
BRA(BT)Always (true)Always
BRN(BF)Never (false)Never
BHIHighC ∨ Z = 0
BLSLow or sameC ∨ Z = 1
BCC(BHS)Carry clear
C = 0
(high or same)
BCS(BLO)Carry set (low)C = 1
BNENot equalZ = 0
BEQEqualZ = 1
BVCOverflow clearV = 0
BVSOverflow setV = 1
BPLPlusN = 0
BMIMinusN = 1
BGEGreater or equalN ⊕ V = 0
BLTLess thanN ⊕ V = 1
BGTGreater thanZ∨(N ⊕ V) = 0
BLELess or equalZ∨(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
System control TRAPA—Starts trap-instruction exception handling.
instructions
RTE—Returns from an exception-handling routine.
SLEEP—Causes a transition to a power-down state.
46
Page 74
TypeInstructionSize*
1
Function
System control
instructions
LDCB/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.
STCB/WCCR → (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.
ANDCBCCR ∧ #IMM → CCR, EXR ∧ #IMM → EXR
Logically ANDs the CCR or EXR contents with
immediate data.
ORCBCCR ∨ #IMM → CCR, EXR ∨ #IMM → EXR
Logically ORs the CCR or EXR contents with immediate
data.
XORCBCCR ⊕ #IMM → CCR, EXR ⊕ #IMM → EXR
Logically exclusive-ORs the CCR or EXR contents with
immediate data.
Block data
transfer
instruction
NOP—PC + 2 → PC
Only increments the program counter.
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;
Transfers a data block according to parameters set in
general registers R4L or R4, ER5, and ER6.
R4L or R4: size of block (bytes)
ER5: starting source address
ER6: starting destination address
Execution of the next instruction begins as soon as the
transfer is completed.
Notes: 1. Size refers to the operand size.
B:Byte
W:Word
L:Longword
2. This instruction should be used with the ER0, ER1, ER4, or ER5 general register only.
47
Page 75
2.6.4Basic Instruction Formats
The H8S/2633 Series instructions consist of 2-byte (1-word) units. An instruction consists of an
operation field (op field), a register field (r field), an effective address extension (EA field), and a
condition field (cc).
(1) 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.
(2) 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.
(3) Effective Address Extension: Eight, 16, or 32 bits specifying immediate data, an absolute
address, or a displacement.
(4) Condition Field: Specifies the branching condition of Bcc instructions.
48
Page 76
Figure 2-12 shows examples of instruction formats.
(1) Operation field only
op
(2) Operation field and register fields
op
rn
rm
(3) Operation field, register fields, and effective address extension
op
rnrm
EA (disp)
(4) Operation field, effective address extension, and condition field
opccEA (disp)BRA d:16, etc
Figure 2-12 Instruction Formats (Examples)
NOP, RTS, etc.
ADD.B Rn, Rm, etc.
MOV.B @(d:16, Rn), Rm, etc.
49
Page 77
2.7Addressing Modes and Effective Address Calculation
2.7.1Addressing Mode
The CPU supports the eight addressing modes listed in table 2-4. 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 program-counter
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-4Addressing Modes
No.Addressing ModeSymbol
1Register directRn
2Register indirect@ERn
3Register indirect with displacement@(d:16,ERn)/@(d:32,ERn)
4Register indirect with post-increment
(1) 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) 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).
(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.
50
Page 78
(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.
(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).
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).
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-5 indicates the accessible absolute address ranges.
Table 2-5Absolute Address Access Ranges
Absolute AddressNormal Mode*Advanced Mode
Data address8 bits (@aa:8)H'FF00 to H'FFFFH'FFFF00 to H'FFFFFF
16 bits (@aa:16)H'0000 to H'FFFFH'000000 to H'007FFF,
H'FF8000 to H'FFFFFF
32 bits (@aa:32)H'000000 to H'FFFFFF
Program instruction
address
24 bits (@aa:24)
Note: *Not available in the H8S/2633 Series.
51
Page 79
(6) 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.
(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.
(8) 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 all 0 (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.
Note: * Not available in the H8S/2633 Series.
52
Page 80
Specified
by @aa:8
Branch address
Specified
by @aa:8
Reserved
Branch address
(a) Normal Mode
Note: * Not available in the H8S/2633 Series.
*
(b) Advanced Mode
Figure 2-13 Branch Address Specification in Memory Indirect Mode
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.)
2.7.2Effective Address Calculation
Table 2-6 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.
Note: * Not available in the H8S/2633 Series.
53
Page 81
Table 2-6Effective Address Calculation
24 23
Effective Address (EA)
Don’t care
Operand is general register contents.
Effective Address Calculation
310
General register contents
310
24 23
Don’t care
310
disp
General register contents
Sign extension
310
310
24 23
Don’t care
310
1, 2, or 4
General register contents
310
24 23
Don’t care
310
1, 2, or 4
1
General register contents
Byte
310
Operand Size Value added
2
4
Word
Longword
rop
oprmrn
Register indirect (@ERn)2
1Register direct (Rn)
No.Addressing Mode and Instruction Format
54
disp
opr
Register indirect with displacement
@(d:16, ERn) or @(d:32, ERn)
3
Register indirect with post-increment or
4
r
op
pre-decrement
• Register indirect with post-increment @ERn+
• Register indirect with pre-decrement @–ERn
r
op
Page 82
H'FFFF
16 15
Sign extension
Effective Address (EA)
24 23
3108 7
Don’t care
24 23
310
Effective Address Calculation
Don’t care
24 23
310
Don’t care
24 23
310
Don’t care
Operand is immediate data.
abs
op
opabs
@aa:8
Absolute address
5
No.Addressing Mode and Instruction Format
@aa:16
abs
op
@aa:24
op
@aa:32
IMM
abs
op
Immediate #xx:8/#xx:16/#xx:32
6
55
Page 83
16 15
H'00
Effective Address (EA)
0
PC contents
23
Effective Address Calculation
0
Sign
23
24 23
Don’t care
310
disp
extension
0
318 7
24 23
Don’t care
310
abs
H'000000
0
0
Memory contents
15
0
318 7
24 23
310
0
abs
H'000000
31
Don’t care
Memory contents
disp
op
Program-counter relative
@(d:8, PC)/@(d:16, PC)8Memory indirect @@aa:8
7
No.Addressing Mode and Instruction Format
56
*
opabs
• Normal mode
opabs
• Advanced mode
Note: * Not available in the H8S/2633 Series.
Page 84
2.8Processing States
2.8.1Overview
The CPU has five main processing states: the reset state, exception handling state, program
execution state, bus-released state, and power-down state. Figure 2-14 shows a diagram of the
processing states. Figure 2-15 indicates the state transitions.
Reset state
The CPU and all on-chip supporting modules have been
initialized and are stopped.
Exception-handling
state
A transient state in which the CPU changes the normal
processing flow in response to a reset, interrupt, or trap
instruction.
Processing
states
Note: *The power-down state also includes a medium-speed mode, module stop mode,
subactive mode, subsleep mode, and watch mode.
Program execution
state
The CPU executes program instructions in sequence.
Bus-released state
The external bus has been released in response to a bus
request signal from a bus master other than the CPU.
Sleep mode
Power-down state
CPU operation is stopped
to conserve power.*
Software standby
mode
Hardware standby
mode
Figure 2-14 Processing States
57
Page 85
End of bus
request
Bus request
End of bus request
Bus request
Program execution state
SLEEP
instruction
with
SSBY = 0
MRES= High
Notes: 1.
Bus-released state
End of exception
Exception handling state
Manual reset state *
Reset state *1
handling
1
Interrupt request
Request for exception handling
External interrupt request
RES= High
Power-on reset state *
1
SLEEP
instruction
with
SSBY = 1
STBY= High, RES= Low
Sleep mode
Software standby mode
Hardware standby mode*
Power-down state*
2
3
From any state except hardware standby mode, a transition to the power-on reset state occurs whenever RES
goes low. From any state except hardware standby mode and power-on reset mode, a transition to the manual
reset state occurs whenever MRES goes low. A transition can also be made to the reset state when the
watchdog timer overflows.
2.
From any state, a transition to hardware standby mode occurs when STBY goes low.
3.
Apart from these states, there are also the watch mode, subactive mode, and the subsleep mode.
See Chapter 24 Power-Down States
Figure 2-15 State Transitions
2.8.2Reset State
The CPU enters the reset state when the RES pin goes low, or when the MRES pin goes low while
manual resets are enabled by the MRESE bit. In the reset state, currently executing processing is
halted and all interrupts are disabled.
For details of MRESE bit setting, see section 3.2.2, System Control Register (SYSCR).
Reset exception handling starts when the RES or MRES pin* changes from low to high.
The reset state can also be entered in the event of watchdog timer overflow. For details see section
15, Watchdog Timer.
Note: * MRES pin in the case of a manual reset.
58
Page 86
2.8.3Exception-Handling State
The exception-handling state is a transient state that occurs when the CPU alters the normal
processing flow due to a reset, interrupt, or trap instruction. The CPU fetches a start address
(vector) from the exception vector table and branches to that address.
(1) Types of Exception Handling and Their Priority
Exception handling is performed for traces, resets, interrupts, and trap instructions. Table 2-7
indicates the types of exception handling and their priority. Trap instruction exception handling is
always accepted, in the program execution state.
Exception handling and the stack structure depend on the interrupt control mode set in SYSCR.
Table 2-7Exception Handling Types and Priority
PriorityType of ExceptionDetection TimingStart of Exception Handling
HighResetSynchronized with clockException handling starts
immediately after a low-to-high
transition at the RES pin, or
when the watchdog timer
overflows.
TraceEnd of instruction
execution or end of
exception-handling
sequence*
1
InterruptEnd of instruction
execution or end of
exception-handling
sequence*
2
When the trace (T) bit is set to
1, the trace starts at the end of
the current instruction or current
exception-handling sequence
When an interrupt is requested,
exception handling starts at the
end of the current instruction or
current exception-handling
sequence
Trap instructionWhen TRAPA instruction
is executed
Low
Exception handling starts when
a trap (TRAPA) instruction is
executed*
3
Notes: 1. Traces are enabled only in interrupt control mode 2. Trace exception-handling is not
executed at the end of the RTE instruction.
2. Interrupts are not detected at the end of the ANDC, ORC, XORC, and LDC instructions,
or immediately after reset exception handling.
3. Trap instruction exception handling is always accepted, in the program execution state.
59
Page 87
(2) Reset Exception Handling
After the RES pin has gone low and the reset state has been entered, when RES pin goes high
again, reset exception handling starts. After the reset state has been entered by driving the MRES
pin low while manual resets are enabled by the MRESE bit, reset exception handling starts when
MRES pin is driven high again. The CPU enters the power-on reset state when the RES pin is low,
and enters the manual reset state when the MRES pin is low. When reset exception handling starts
the CPU fetches a start address (vector) from the exception vector table and starts program
execution from that address. All interrupts, including NMI, are disabled during reset exception
handling and after it ends.
(3) Traces
Traces are enabled only in interrupt control mode 2. Trace mode is entered when the T bit of EXR
is set to 1. When trace mode is established, trace exception handling starts at the end of each
instruction.
At the end of a trace exception-handling sequence, the T bit of EXR is cleared to 0 and trace mode
is cleared. Interrupt masks are not affected.
The T bit saved on the stack retains its value of 1, and when the RTE instruction is executed to
return from the trace exception-handling routine, trace mode is entered again. Trace exceptionhandling is not executed at the end of the RTE instruction.
Trace mode is not entered in interrupt control mode 0, regardless of the state of the T bit.
(4) Interrupt Exception Handling and Trap Instruction Exception Handling
When interrupt or trap-instruction exception handling begins, the CPU references the stack pointer
(ER7) and pushes the program counter and other control registers onto the stack. Next, the CPU
alters the settings of the interrupt mask bits in the control registers. Then the CPU fetches a start
address (vector) from the exception vector table and program execution starts from that start
address.
Figure 2-16 shows the stack after exception handling ends.
60
Page 88
Normal mode
*2
SP
(a) Interrupt control mode 0(b) Interrupt control mode 2
Advanced mode
CCR
*1
CCR
PC
(16 bits)
SP
SP
EXR
Reserved
CCR
*1
CCR
PC
(16 bits)
EXR
Reserved
*1
*1
SP
CCR
PC
(24 bits)
(c) Interrupt control mode 0(d) Interrupt control mode 2
Notes: 1. Ignored when returning.
2. Not available in the H8S/2633 Series.
Figure 2-16 Stack Structure after Exception Handling (Examples)
CCR
PC
(24 bits)
61
Page 89
2.8.4Program Execution State
In this state the CPU executes program instructions in sequence.
2.8.5Bus-Released State
This is a state in which 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.
Bus masters other than the CPU are DMA controller (DMAC) and data transfer controller (DTC).
For further details, refer to section 7, Bus Controller.
2.8.6Power-Down State
The power-down state includes both modes in which the CPU stops operating and modes in which
the CPU does not stop. There are five modes in which the CPU stops operating: sleep mode,
software standby mode, hardware standby mode, subsleep mode, and watch mode. There are also
three other power-down modes: medium-speed mode, module stop mode, and subactive mode. In
medium-speed mode the CPU and other bus masters operate on a medium-speed clock. Module
stop mode permits halting of the operation of individual modules, other than the CPU. Subactive
mode, subsleep mode, and watch mode are power-down states using subclock input. For details,
refer to section 24, Power-Down State.
(1) Sleep Mode: A transition to sleep mode is made if the SLEEP instruction is executed while
the software standby bit (SSBY) in the standby control register (SBYCR) is cleared to 0. In sleep
mode, CPU operations stop immediately after execution of the SLEEP instruction. The contents of
CPU registers are retained.
(2) Software Standby Mode: A transition to software standby mode is made if the SLEEP
instruction is executed while the SSBY bit in SBYCR is set to 1. In software standby mode, the
CPU and clock halt and all MCU operations stop. As long as a specified voltage is supplied, the
contents of CPU registers and on-chip RAM are retained. The I/O ports also remain in their
existing states.
(3) Hardware Standby Mode: A transition to hardware standby mode is made when the STBY
pin goes low. In hardware standby mode, the CPU and clock halt and all MCU operations stop.
The on-chip supporting modules are reset, but as long as a specified voltage is supplied, on-chip
RAM contents are retained.
62
Page 90
2.9Basic Timing
2.9.1Overview
The H8S/2600 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
supporting modules, and the external address space.
2.9.2On-Chip Memory (ROM, RAM)
On-chip memory is accessed in one state. The data bus is 16 bits wide, permitting both byte and
word transfer instruction. Figure 2-17 shows the on-chip memory access cycle. Figure 2-18 shows
the pin states.
Bus cycle
ø
Internal address bus
Internal read signal
Read
access
Internal data bus
Internal write signal
Write
access
Internal data bus
Figure 2-17 On-Chip Memory Access Cycle
T1
Address
Read data
Write data
63
Page 91
Bus cycle
T1
ø
UnchangedAddress bus
AS
RD
HWR, LWR
Data bus
High-impedance state
High
High
High
Figure 2-18 Pin States during On-Chip Memory Access
64
Page 92
2.9.3On-Chip Supporting Module Access Timing
The on-chip supporting modules are accessed in two states. The data bus is either 8 bits or 16 bits
wide, depending on the particular internal I/O register being accessed. Figure 2-19 shows the
access timing for the on-chip supporting modules. Figure 2-20 shows the pin states.
Figure 2-20 Pin States during On-Chip Supporting Module Access
2.9.4External 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 7, Bus Controller.
2.10Usage Note
2.10.1TAS Instruction
Only register ER0, ER1, ER4, or ER5 should be used when using the TAS instruction. The TAS
instruction is not generated by the Hitachi 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.
66
Page 94
Section 3 MCU Operating Modes
3.1Overview
3.1.1Operating Mode Selection
The H8S/2633 Series has four operating modes (modes 4 to 7). These modes enable selection of
the CPU operating mode, enabling/disabling of on-chip ROM, and the initial bus width setting, by
setting the mode pins (MD2 to MD0).
Table 3-1 lists the MCU operating modes.
Table 3-1MCU Operating Mode Selection
MCUCPU
Operating
ModeMD2 MD1 MD0
0*000————
1*1—
2*10
3*1
4100AdvancedOn-chip ROM disabled,
518 bits16 bits
610On-chip ROM enabled,
71Single-chip mode—
Note:* Not available in the H8S/2633 Series.
Operating
ModeDescription
expanded mode
expanded mode
On-Chip
ROM
Disabled 16 bits16 bits
Enabled 8 bits16 bits
External Data Bus
Initial
Width
Max.
Width
The CPU’s architecture allows for 4 Gbytes of address space, but the H8S/2633 Series actually
accesses a maximum of 16 Mbytes.
Modes 4 to 6 are externally expanded modes that allow access to external memory and peripheral
devices.
The external expansion modes allow switching between 8-bit and 16-bit bus modes. After program
execution starts, an 8-bit or 16-bit address space can be set for each area, depending on the bus
controller setting. If 16-bit access is selected for any one area, 16-bit bus mode is set; if 8-bit
access is selected for all areas, 8-bit bus mode is set.
Note that the functions of each pin depend on the operating mode.
67
Page 95
The H8S/2633 Series can be used only in modes 4 to 7. This means that the mode pins must be set
to select one of these modes. Do not change the inputs at the mode pins during operation.
3.1.2Register Configuration
The H8S/2633 Series has a mode control register (MDCR) that indicates the inputs at the mode
pins (MD2 to MD0), and a system control register (SYSCR) that controls the operation of the
H8S/2633 Series. Table 3-2 summarizes these registers.
Table 3-2MCU Registers
NameAbbreviationR/WInitial ValueAddress*
Mode control registerMDCRR/WUndeterminedH'FDE7
System control registerSYSCRR/WH'01H'FDE5
Pin function control registerPFCRR/WH'0D/H'00H'FDEB
Note: * Lower 16 bits of the address.
3.2Register Descriptions
3.2.1Mode Control Register (MDCR)
Bit
Initial value
R/W
Note: * Determined by pins MD2 to MD0.
:
:
:
7
—
1
R/W
MDCR is an 8-bit register that indicates the current operating mode of the H8S/2633 Series.
Bit 7—Reserved: Only 1 should be written to this bit.
Bits 6 to 3—Reserved: These bits always read as 0 and cannot be modified.
6
—
0
—
5
—
0
—
4
—
0
—
3
—
0
—
2
MDS2
—*
R
1
MDS1
—*
R
MDS0
—*
0
R
Bits 2 to 0—Mode Select 2 to 0 (MDS2 to MDS0): 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-they cannot be written to. The mode pin (MD2 to MD0) input
levels are latched into these bits when MDCR is read. These latches are cancelled by a power-on
reset, but maintained by a manual reset.
68
Page 96
3.2.2System Control Register (SYSCR)
Bit
Initial value
R/W
:
:
:
7
MACS
0
R/W
6
—
0
—
5
INTM1
0
R/W
4
INTM0
0
R/W
3
NMIEG
0
R/W
2
MRESE
0
R/W
1
—
0
—
0
RAME
1
R/W
SYSCR is an 8-bit readable-writable register that selects saturating or non-saturating calculation
for the MAC instruction, selects the interrupt control mode, selects the detected edge for NMI,
enables or disenables MRES pin input, and enables or disenables on-chip RAM.
SYSCR is initialized to H'01 by a power-on reset and in hardware standby mode. MACS, INTM1,
INTM0, NMIEG, and RAME bits are initialized in manual reset mode, but the MRESE bit is not
initialized. SYSCR is not initialized in software standby mode.
Bit 7—MAC Saturation (MACS): Selects either saturating or non-saturating calculation for the
MAC instruction.
Bit 7
MACSDescription
0Non-saturating calculation for MAC instruction(Initial value)
1Saturating calculation for MAC instruction
Bit 6—Reserved: This bit always read as 0 and cannot be modified.
Bits 5 and 4—Interrupt Control Mode 1 and 0 (INTM1, INTM0): These bits select the control
mode of the interrupt controller. For details of the interrupt control modes, see section 5.4.1,
Interrupt Control Modes and Interrupt Operation.
Bit 5Bit 4
INTM1INTM0Control ModeDescription
000Control of interrupts by I bit (Initial value)
1—Setting prohibited
102Control of interrupts by I2 to I0 bits and IPR
1—Setting prohibited
Interrupt
69
Page 97
Bit 3—NMI Edge Select (NMIEG): Selects the valid edge of the NMI interrupt input.
Bit 3
NMIEGDescription
0An interrupt is requested at the falling edge of NMI input (Initial value)
1An interrupt is requested at the rising edge of NMI input
Bit 2—Manual Reset Selection Bit (MRESE): Enables or disenables manual reset input. It is
possible to set the P74/TM02/MRES pin to the manual reset input (MRES).
Table 3-3 shows the relationship between the MRES pin power-on reset and manual reset.
Bit 2
MRESEDescription
0Disenables manual reset.
Possible to use P74/TM02/MRES pin as P74/TM02 input pin.(Initial value)
1Enables manual reset.
Possible to use P74/TM02/MRES pin as MRES input pin.
Table 3-3Relationship Between Power-On Reset and Manual Reset
Pin
RESMRESReset Type
0*Power-on reset (Initial state)
10Manual reset
11Operation state
*: Don’t care
Bit 1—Reserved: This bit always read as 0 and cannot be modified.
Bit 0—RAM Enable (RAME): Enables or disables the on-chip RAM. The RAME bit is
initialized when the reset status is released. It is not initialized in software standby mode.
Bit 0
RAMEDescription
0On-chip RAM is disabled
1On-chip RAM is enabled (Initial value)
Note:When the DTC is used, the RAME bit must be set to 1.
70
Page 98
3.2.3Pin Function Control Register (PFCR)
Bit
Initial value
R/W
:
:
:
7
CSS07
0
R/W
6
CSS36
0
R/W
5
BUZZE
0
R/W
4
LCASS
0
R/W
3
AE3
1/0
R/W
2
AE2
1/0
R/W
1
AE1
0
R/W
0
AE0
1/0
R/W
PFCR is an 8-bit readable-writable register that carries out CS selection control for PG4 and PG1
pins, LCAS selection control for PF2 and PF6 pins, and address output control during extension
modes with ROM.
PFCR is initialized by H'0D/H'00 by a power-on reset or a hardware standby mode. The
immediately previous state is maintained in manual reset or software standby mode.
Bit 7—CS0/CS7 Select (CSS07): Selects the CS output content for PG4 pin. In modes 4 to 6, the
selected CS is output by setting the corresponding DDR to 1.
Bit 7
CSS07Description
0Select CS0. (Initial value)
1Select CS7.
Bit 6—CS3/CS6 Select (CSS36): Selects the CS output content for PG1 pin. In modes 4 to 6, the
selected CS is output by setting the corresponding DDR to 1.
Bit 6
CSS36Description
0Select CS3. (Initial value)
1Select CS6
71
Page 99
Bit 5—BUZZ Output Enable (BUZZE): Disenables/enables BUZZ output of PF1 pin. Input
clock of WDT1 selected by PSS, CKS2 to CKS0 bits is output as a BUZZ signal.
Bit 5
BUZZEDescription
0Functions as PF1 input pin (Initial value)
1Functions as BUZZ output pin
Bit 4—LCAS Output Pin Selection Bit (LCASS): Selects the LCAS signal output pin.
Bit 4
LCASSDescription
0Outputs LCAS signal from PF2 (Initial Value)
1Outputs LCAS signal from PF6
Bits 3 to 0—Address Output Enable 3 to 0 (AE3–AE0): These bits select enabling or disabling
of address outputs A8 to A23 in ROMless expanded mode and modes with ROM. 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.
Note: *In expanded mode with ROM, bits AE3 to AE0 are initialized to B'0000.
In ROMless expanded mode, bits AE3 to AE0 are initialized to B'1101.
Address pins A0 to A7 are made address outputs by setting the corresponding DDR bits to
1.
73
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.