HD64F3672FP
HD64F3672FP
The semiconductor operations of Mitsubishi Electric and Hitachi were transferred to Renesas
Technology Corporation on April 1st 2003. These operations include microcomputer, logic, analog
and discrete devices, and memory chips other than DRAMs (flash memory, SRAMs etc.)
Accordingly, although Hitachi, Hitachi, Ltd., Hitachi Semiconductors, and other Hitachi brand
names are mentioned in the document, these names have in fact all been changed to Renesas
Technology Corp. Thank you for your understanding. Except for our corporate trademark, logo and
corporate statement, no changes whatsoever have been made to the contents of the document, and
these changes do not constitute any alteration to the contents of the document itself.
H8/3672 Series
H8/3672
HD64F3672
H8/3670
HD64F3670
Hardware Manual
ADE-602-239A
Rev. 2.0
03/20/02
Hitachi, Ltd.
Cautions
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.
1. Treatment of NC Pins
Note: Do not connect anything to the NC pins.
The NC (not connected) pins are either not connected to any of the internal circuitry or are
used as test pins or to reduce noise. If something is connected to the NC pins, the
operation of the LSI is not guaranteed.
When designing an application system that includes this LSI, take notes into account. Each section
includes notes in relation to the descriptions given, and usage notes are given, as required, as the
final part of each section.
7. List of Registers
8. Electrical Characteristics
9. Appendix
10. Main Revisions and Additions in this Edition (only for revised versions)
The list of revisions is a summary of points that have been revised or added to earlier versions.
This does not include all of the revised contents. For details, see the actual locations in this
manual.
11. Index
Target Users: This manual was written for users who will be using the H8/3672 Series 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 H8/3672 Series to the target users.
Refer to the H8/300H Series Programming Manual for a detailed description of the
instruction set.
Notes:
When using an on-chip emulator (E10T) for H8/3672 program development and debugging, the
following restrictions must be noted.
1. The 10, pin is reserved for the E10T, and cannot be used.
2. Area H’4000 to H’4FFF is used by the E10T, and is not available to the user.
3. Area H’F780 to H’FB7F must on no account be accessed.
4. When the E10T is used, address breaks can be set as either available to the user or for use by
the E10T. If address breaks are set as being used by the E10T, the address break control
registers must not be accessed.
5. When the E10T is used, 10, is an input/output pin (open-drain in output mode).
Application notes:
Section 1 Overview........................................................................................1
1.1 Features ....................................................................................................................... 1
1.2 Internal Block Diagram ................................................................................................ 2
1.3 Pin Arrangement .......................................................................................................... 3
1.4 Pin Functions ...............................................................................................................5
Section 2 CPU................................................................................................7
2.1 Address Space and Memory Map ................................................................................. 8
2.2 Register Configuration ................................................................................................. 9
2.2.1 General Registers............................................................................................. 10
2.2.2 Program Counter (PC) ..................................................................................... 11
2.2.3 Condition-Code Register (CCR)....................................................................... 11
2.3 Data Formats................................................................................................................13
2.3.1 General Register Data Formats......................................................................... 13
2.3.2 Memory Data Formats ..................................................................................... 15
2.4 Instruction Set............................................................................................................. . 16
2.4.1 Table of Instructions Classified by Function..................................................... 16
2.4.2 Basic Instruction Formats ................................................................................ 25
2.5 Addressing Modes and Effective Address Calculation .................................................. 27
2.5.1 Addressing Modes ........................................................................................... 27
2.5.2 Effective Address Calculation.......................................................................... 29
2.6 Basic Bus Cycle ........................................................................................................... 32
2.6.1 Access to On-Chip Memory (RAM, ROM) ...................................................... 32
2.6.2 On-Chip Peripheral Modules............................................................................ 33
2.7 CPU States................................................................................................................... 34
2.8 Usage Notes.................................................................................................................35
2.8.1 Notes on Data Access to Empty Areas.............................................................. 35
2.8.2 EEPMOV Instruction....................................................................................... 35
2.8.3 Bit Manipulation Instruction ............................................................................ 35
Index .....................................................................................................295
1.1 Features
• High-speed H8/300H central processing unit with an internal 16-bit architecture
Upward-compatible with H8/300 CPU on an object level
Sixteen 16-bit general registers
62 basic instructions
• Various peripheral functions
Timer V (8-bit timer)
Timer W (16-bit timer)
Watchdog timer
SCI3 (Asynchronous or clocked synchronous serial communication interface)
10-bit A/D converter
• On-chip memory
OSC1
OSC2
TEST
VCC
VSS
VCL
E10T_0
System E10T_1
clock CPU E10T_2
generator H8/300H
Address bus
P17/ /TRGV Data bus (lower)
P16
P15
Port 1
P14/
P12
P11
P10
ROM RAM
P22/TXD
Port 2
P21/RXD
P20/SCK3
P76/TMOV
Port 7
P75/TMCIV
Timer W SCI3
P74/TMRIV
Watchdog
Port 8
P82/FTIOB
P57 P81/FTIOA
P56 P80/FTCI
P55/ /
A/D converter
Port 5
P54/
P53/
P52/
P51/
P50/
Port B
PB3/AN3
PB2/AN2
PB1/AN1
PB0/AN0
AVCC
P84/FTIOD
P83/FTIOC
P82/FTIOB
P81/FTIOA
P20/SCK3
P80/FTCI
P21/RXD
P22/TXD
E10T_2
E10T_1
E10T_0
NC
NC
NC
NC
48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33
NC 49 32 NC
NC 50 31 NC
P14/ 51 30 P76/TMOV
P15 52 29 P75/TMCIV
P16 53 28 P74/TMRIV
P17/ /TRGV 54 27 P57
NC 55 26 P56
NC 56 25 P12
H8/3672
NC 57 24 P11
Top view
NC 58 23 P10
PB3/AN3 59 22 P55/ /
PB2/AN2 60 21 P54/
PB1/AN1 61 20 P53/
PB0/AN0 62 19 P52/
NC 63 18 NC
NC 64 17 NC
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
NC
NC
AVCC
NC
NC
VCL
TEST
VSS
OSC2
OSC1
VCC
NC
NC
P50/
P51/
Note: Do not connect NC pins (these pins are not connected to the internal circuitry).
P80/FTCI
P21/RXD
P22/TXD
E10T_2
E10T_1
E10T_0
36 35 34 33 32 31 30 29 28 27 26 25
P14/ 37 24 P76/TMOV
P15 38 23 P75/TMCIV
P16 39 22 P74/TMRIV
P17/ /TRGV 40 21 P57
NC 41 20 P56
H8/3672
NC 42 19 P12
Top view
NC 43 18 P11
NC 44 17 P10
PB3/AN3 45 16 P55/ /
PB2/AN2 46 15 P54/
PB1/AN1 47 14 P53/
PB0/AN0 48 13 P52/
1 2 3 4 5 6 7 8 9 10 11 12
AVcc
NC
NC
VCL
TEST
Vss
OSC2
OSC1
Vcc
P50/
P51/
Note: Do not connect NC pins (these pins are not connected to the internal circuitry).
HD64F3672 HD64F3670
(Flash memory version) (Flash memory version)
H'0000 H'0000
H'0033 Interrupt vector H'0033 Interrupt vector
H'0034 H'0034
On-chip ROM
(8 kbytes)
H'1FFF
On-chip ROM
(16 kbytes)
Not used
H'3FFF
H'4000 H'4000
E10T control E10T control
program area program area
H'4FFF (4 kbytes) H'4FFF (4 kbytes)
H'F780 H'F780
H'FF7F H'FF7F
H'FF80 H'FF80
Internal I/O register Internal I/O register
H'FFFF H'FFFF
7 6 5 4 3 2 1 0
CCR I UI H U N Z V C
Legend
SP :Stack pointer H :Half-carry flag
PC :Program counter U :User bit
CCR :Condition-code register N :Negative flag
I :Interrupt mask bit Z :Zero flag
UI :User bit V :Overflow flag
C :Carry flag
The H8/300H CPU has eight 32-bit general registers. These general registers are all functionally
identical 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.3 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 of sixteen 16-bit
registers. The E registers (E0 to E7) are also referred to as extended registers.
The R registers divide into 8-bit registers designated by the letters RH (R0H to R7H) and RL (R0L
to R7L). These registers are functionally equivalent, providing a maximum of sixteen 8-bit
registers.
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.4 shows the
stack.
SP (ER7)
Stack area
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). The PC is initialized when the
start address is loaded by the vector address generated during reset exception-handling sequence.
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. The I bit is initialized to 1
by reset exception-handling sequence, but other bits are not initialized.
Some instructions leave flag bits unchanged. 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.
For the action of each instruction on the flag bits, see appendix A.1, Instruction List.
7 0
RnL Don't care 7 6 5 4 3 2 1 0
1-bit data
7 4 3 0
4-bit BCD data RnH Upper Lower Don't care
7 4 3 0
4-bit BCD data RnL Don't care Upper Lower
7 0
Byte data RnH Don't care
MSB LSB
7 0
Byte data RnL Don't care
MSB LSB
Word data Rn
15 0
15 0
MSB LSB
Longword ERn
data 31 16 15 0
MSB LSB
Legend
ERn : General register ER
En : General register E
Rn : General register R
RnH : General register RH
RnL : General register RL
MSB : Most significant bit
LSB : Least significant bit
Figure 2.6 shows the data formats in memory. The H8/300H CPU can access word data and
longword data in memory, however 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, an address error does not
occur, however the least significant bit of the address is regarded as 0, so access begins the
preceding address. This also applies to instruction fetches.
When ER7 (SP) is used as an address register to access the stack, the operand size should be word
or longword.
7 0
1-bit data Address L 7 6 5 4 3 2 1 0
Address 2N+2
The H8/300H CPU has 62 instructions. Tables 2.2 to 2.9 summarize the instructions in each
functional category. The notation used in tables 2.2 to 2.9 is defined below.
op rn rm
MOV.B @(d:16, Rn), Rm
EA(disp)
The following describes the H8/300H CPU. In this LSI, the upper eight bits are ignored in the
generated 24-bit address, so the effective address is 16 bits.
The H8/300H CPU supports the eight addressing modes listed in table 2.10. Each instruction uses
a subset of these addressing modes. Addressing modes that can be used differ depending on the
instruction. For details, refer to appendix A.4, Combinations of Instructions and 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 the 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.
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.
Register Indirect—@ERn
The register field of the instruction code specifies an address register (ERn), the lower 24 bits of
which contain the address of the operand on memory.
A 16-bit or 24-bit displacement contained in the instruction is added to an address register (ERn)
specified by the register field of the instruction, and the lower 24 bits of the sum the address of a
memory operand. A 16-bit displacement is sign-extended when added.
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)
For an 8-bit absolute address, the upper 16 bits are all assumed to be 1 (H'FFFF). For a 16-bit
absolute address the upper 8 bits are a sign extension. A 24-bit absolute address can access the
entire address space.
The access ranges of absolute addresses for the series of this LSI are those shown in table 2.11,
because the upper 8 bits are ignored.
The instruction contains 8-bit (#xx:8), 16-bit (#xx:16), or 32-bit (#xx:32) immediate data as an
operand.
Rev. 2.0, 03/02, page 28 of 298
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.
This mode is used in the BSR instruction. 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. 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.
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 memory operand is accessed by longword access. The first byte of the memory operand is
ignored, generating a 24-bit branch address. Figure 2.8 shows how to specify branch address for in
memory indirect mode. 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).
Note that the first part of the address range is also the exception vector area.
Specified Dummy
by @aa:8
Branch address
Table 2.12 indicates how effective addresses are calculated in each addressing mode. In this LSI
the upper 8 bits of the effective address are ignored in order to generate a 16-bit effective address.
No Addressing Mode and Instruction Format Effective Address Calculation Effective Address (EA)
1 Register direct(Rn)
Operand is general register contents.
op rm rn
2 Register indirect(@ERn) 31 0 23 0
General register contents
op r
31 0
Sign extension disp
op r 1, 2, or 4
op r 1, 2, or 4
No Addressing Mode and Instruction Format Effective Address Calculation Effective Address (EA)
5 Absolute address
@aa:8 23 8 7 0
op abs H'FFFF
@aa:16 23 16 15 0
op abs Sign extension
@aa:24
op 23 0
abs
6 Immediate
#xx:8/#xx:16/#xx:32
Operand is immediate data.
op IMM
7 Program-counter relative 23 0
@(d:8,PC) @(d:16,PC) PC contents
op disp 23 0
Sign
extension disp
23 0
23 8 7 0
op abs
H'0000 abs
15 0 23 16 15 0
Memory contents H'00
Legend
r, rm,rn : Register field
op : Operation field
disp : Displacement
IMM : Immediate data
abs : Absolute address
Access to on-chip memory takes place in two states. The data bus width is 16 bits, allowing access
in byte or word size. Figure 2.9 shows the on-chip memory access cycle.
Bus cycle
T1 state T2 state
ø or ø SUB
On-chip peripheral modules are accessed in two states or three states. The data bus width is 8 bits
or 16 bits depending on the register. For description on the data bus width and number of
accessing states of each register, refer to section 16.1, Register Addresses. Registers with 16-bit
data bus width can be accessed by word size only. Registers with 8-bit data bus width can be
accessed by byte or word size. When a register with 8-bit data bus width is accessed by word size,
access is completed in two cycles. In two-state access, the operation timing is the same as that for
on-chip memory.
Figure 2.10 shows the operation timing in the case of three-state access to an on-chip peripheral
module.
Bus cycle
ø or ø SUB
Internal Address
address bus
Internal
read signal
Internal
data bus Read data
(read access)
Internal
write signal
Internal
data bus Write data
(write access)
Exception-
handling state
A transient state in which the CPU changes
the processing flow due to a reset or an interrupt
Reset Interrupt
occurs source
Reset Interrupt Exception-
occurs source handling
complete
The address space of this LSI includes empty areas in addition to the ROM, RAM, and on-chip
I/O registers areas available to the user. When data is transferred from CPU to empty areas, the
transferred data will be lost. This action may also cause the CPU to malfunction. When data is
transferred from an empty area to CPU, the contents of the data cannot be guaranteed.
EEPMOV is a block-transfer instruction and transfers the byte size of data indicated by R4L,
which starts from the address indicated by R5, to the address indicated by R6. Set R4L and R6 so
that the end address of the destination address (value of R6 + R4L) does not exceed H'FFFF (the
value of R6 must not change from H'FFFF to H'0000 during execution).
The BSET, BCLR, BNOT, BST, and BIST instructions read data from the specified address in
byte units, manipulate the data of the target bit, and write data to the same address again in byte
units. Special care is required when using these instructions in cases where two registers are
assigned to the same address or when a bit is directly manipulated for a port, because this may
rewrite data of a bit other than the bit to be manipulated.
Example: Bit manipulation for the timer load register and timer counter
(Applicable for timer B and timer C, not for the series of this LSI.)
Read
Count clock Timer counter
Reload
Write
Timer load register
Internal bus
Figure 2.13 Example of Timer Configuration with Two Registers Allocated to Same
Address
P57 and P56 are input pins, with a low-level signal input at P57 and a high-level signal input at
P56. P55 to P50 are output pins and output low-level signals. An example to output a high-level
signal at P50 with a BSET instruction is shown below.
Description on operation
When the BSET instruction is executed, first the CPU reads port 5.
Since P57 and P56 are input pins, the CPU reads the pin states (low-level and high-level input).
P55 to P50 are output pins, so the CPU reads the value in PDR5. In this example PDR5 has a
value of H'80, but the value read by the CPU is H'40.
Next, the CPU sets bit 0 of the read data to 1, changing the PDR5 data to H'41.
As a result of the BSET instruction, bit 0 in PDR5 becomes 1, and P50 outputs a high-level signal.
However, bits 7 and 6 of PDR5 end up with different values. To prevent this problem, store a copy
of the PDR5 data in a work area in memory. Perform the bit manipulation on the data in the work
area, then write this data to PDR5.
MOV.B #80, R0L The PDR5 value (H'80) is written to a work area in
MOV.B R0L, @RAM0 memory (RAM0) as well as to PDR5.
MOV.B R0L, @PDR5
BSET #0, @RAM0 The BSET instruction is executed designating the PDR5
work area (RAM0).
MOV.B @RAM0, R0L The work area (RAM0) value is written to PDR5.
MOV.B R0L, @PDR5
P57 and P56 are input pins, with a low-level signal input at P57 and a high-level signal input at
P56. P55 to P50 are output pins that output low-level signals. An example of setting the P50 pin as
an input pin by the BCLR instruction is shown below. It is assumed that a high-level signal will be
input to this input pin.
Rev. 2.0, 03/02, page 38 of 298
Prior to executing BCLR
Description on operation
When the BCLR instruction is executed, first the CPU reads PCR5. Since PCR5 is a write-only
register, the CPU reads a value of H'FF, even though the PCR5 value is actually H'3F.
Next, the CPU clears bit 0 in the read data to 0, changing the data to H'FE.
As a result of this operation, bit 0 in PCR5 becomes 0, making P50 an input port. However, bits 7
and 6 in PCR5 change to 1, so that P57 and P56 change from input pins to output pins. To prevent
this problem, store a copy of the PCR5 data in a work area in memory and manipulate data of the
bit in the work area, then write this data to PCR5.
MOV.B #3F, R0L The PCR5 value (H'3F) is written to a work area in
MOV.B R0L, @RAM0 memory (RAM0) as well as to PCR5.
MOV.B R0L, @PCR5
BCLR #0, @RAM0 The BCLR instructions executed for the PCR5 work area
(RAM0).
MOV.B @RAM0, R0L The work area (RAM0) value is written to PCR5.
MOV.B R0L, @PCR5
• Reset
A reset has the highest exception priority. Exception handling starts as soon as the reset is cleared
by the 5(6 pin. The chip is also reset when the watchdog timer overflows, and exception handling
starts. Exception handling is the same as exception handling by the 5(6 pin.
• Trap Instruction
Exception handling starts when a trap instruction (TRAPA) is executed. The TRAPA instruction
generates a vector address corresponding to a vector number from 0 to 3, as specified in the
instruction code. Exception handling can be executed at all times in the program execution state.
• Interrupts
External interrupts other than NMI and internal interrupts other than address break are masked by
the I bit in CCR, and kept masked while the I bit is set to 1. Exception handling starts when the
current instruction or exception handling ends, if an interrupt request has been issued.
IEGR1 selects the direction of an edge that generates interrupt requests of pins and ,54 and
,54.
IEGR2 selects the direction of an edge that generates interrupt requests of the pins $'75* and
:.3 to :.3.
When disabling interrupts by clearing bits in an interrupt enable register, or when clearing bits in
an interrupt flag register, always do so while interrupts are masked (I = 1). If the above clear
operations are performed while I = 0, and as a result a conflict arises between the clear instruction
and an interrupt request, exception handling for the interrupt will be executed after the clear
instruction has been executed.
IRR1 is a status flag register for direct transition interrupts, and ,54 and ,54 interrupt requests.
Bit Bit Name Initial Value R/W Description
7 IRRDT 0 R/W Direct Transfer Interrupt Request Flag
[Setting condition]
When a direct transfer is made by executing a SLEEP
instruction while DTON in SYSCR2 is set to 1.
[Clearing condition]
When IRRDT is cleared by writing 0
6 0 Reserved
This bit is always read as 0.
5 1 Reserved
4 1 These bits are always read as 1.
3 IRRI3 0 R/W IRQ3 Interrupt Request Flag
[Setting condition]
When ,54 pin is designated for interrupt input and the
designated signal edge is detected.
[Clearing condition]
When IRRI3 is cleared by writing 0
2 0 Reserved
1 0 These bits are always read as 0.
0 IRRl0 0 R/W IRQ0 Interrupt Request Flag
[Setting condition]
When ,54 pin is designated for interrupt input and the
designated signal edge is detected.
[Clearing condition]
When IRRI0 is cleared by writing 0
NMI
IRQ3 to IRQ0 interrupts are requested by input signals to pins ,54 to ,54. These four
interrupts are given different vector addresses, and are detected individually by either rising
edge sensing or falling edge sensing, depending on the settings of bits IEG3 to IEG0 in
IEGR1.
When pins ,54 to ,54 are designated for interrupt input in PMR1 and the designated signal
edge is input, the corresponding bit in IRR1 is set to 1, requesting the CPU of an interrupt.
When IRQ3 to IRQ0 interrupt is accepted, the I bit is set to 1 in CCR. These interrupts can be
masked by setting bits IEN3 to IEN0 in IENR1.
WKP5 to WKP0 interrupts are requested by input signals to pins :.35 to :.30. These six
interrupts have the same vector addresses, and are detected individually by either rising edge
sensing or falling edge sensing, depending on the settings of bits WPEG5 to WPEG0 in
IEGR2.
Reset cleared
Initial program
Vector fetch Internal instruction prefetch
processing
Internal
(1) (2)
address bus
Internal read
signal
Internal write
signal
Internal data
(2) (3)
bus (16 bits)
Each on-chip peripheral module has a flag to show the interrupt request status and the enable bit to
enable or disable the interrupt. For direct transfer interrupt requests generated by execution of a
SLEEP instruction, this function is included in IRR1 and IENR1.
When an on-chip peripheral module requests an interrupt, the corresponding interrupt request
status flag is set to 1, requesting the CPU of an interrupt. When this interrupt is accepted, the I bit
is set to 1 in CCR. These interrupts can be masked by writing 0 to clear the corresponding enable
bit.
Figure 3.3 shows a typical interrupt sequence where the program area is in the on-chip ROM and
the stack area is in the on-chip RAM.
SP – 4 SP (R7) CCR
SP – 3 SP + 1 CCR*3
SP – 2 SP + 2 PCH
SP – 1 SP + 3 PCL
SP (R7) SP + 4 Even address
Stack area
Legend:
PCH : Upper 8 bits of program counter (PC)
PCL : Lower 8 bits of program counter (PC)
CCR: Condition code register
SP: Stack pointer
Notes: 1. PC shows the address of the first instruction to be executed upon return from the interrupt
handling routine.
2. Register contents must always be saved and restored by word length, starting from
an even-numbered address.
3. Ignored when returning from the interrupt handling routine.
Table 3.2 shows the number of wait states after an interrupt request flag is set until the first
instruction of the interrupt handling-routine is executed.
Interrupt
request signal
Internal read
signal
Internal write
signal
If an interrupt is accepted after a reset and 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.W #xx: 16, SP).
When word data is accessed, the least significant bit of the address is regarded as 0. Access to the
stack always takes place in word size, so the stack pointer (SP: R7) should never indicate an odd
address. Use PUSH Rn (MOV.W Rn, @–SP) or POP Rn (MOV.W @SP+, Rn) to save or restore
register values.
When a port mode register is rewritten to switch the functions of external interrupt pins, ,54 to
,54, and :.3 to :.3, the interrupt request flag may be set to 1.
Figure 3.4 shows a port mode register setting and interrupt request flag clearing procedure.
When switching a pin function, mask the interrupt before setting the bit in the port mode register.
After accessing the port mode register, execute at least one instruction (e.g., NOP), then clear the
interrupt request flag from 1 to 0.
Figure 3.4 Port Mode Register Setting and Interrupt Request Flag Clearing Procedure
Comparator
BARH BARL
BDRH BDRL
Comparator
Interrupt
Legend:
BARH, BARL: Break address register
BDRH, BDRL: Break data register
ABRKCR: Address break control register
ABRKSR: Address break status register
When an address break is set in the data read cycle or data write cycle, the data bus used will
depend on the combination of the byte/word access and address. Table 4.1 shows the access and
data bus used. When an I/O register space with an 8-bit data bus width is accessed in word size, a
byte access is generated twice. For details on data widths of each register, see section 16.1,
Register Addresses.
ABRKSR consists of the address break interrupt flag and the address break interrupt enable bit.
BARH and BARL are 16-bit read/write registers that set the address for generating an address
break interrupt. When setting the address break condition to the instruction execution cycle, set
the first byte address of the instruction. The initial value of this register is H'FFFF.
BDRH and BDRL are 16-bit read/write registers that set the data for generating an address break
interrupt. BDRH is compared with the upper 8-bit data bus. BDRL is compared with the lower 8-
bit data bus. When memory or registers are accessed by byte, the upper 8-bit data bus is used for
even and odd addresses in the data transmission. Therefore, comparison data must be set in
BDRH for byte access. For word access, the data bus used depends on the address. See section
Rev. 2.0, 03/02, page 57 of 298
4.1.1, Address Break Control Register (ABRKCR), for details. The initial value of this register is
undefined.
4.2 Operation
When the ABIF and ABIE bits in ABRKSR are set to 1, the address break function generates an
interrupt request to the CPU. The ABIF bit in ABRKSR is set to 1 by the combination of the
address set in BAR, the data set in BDR, and the conditions set in ABRKCR. When the interrupt
request is accepted, interrupt exception handling starts after the instruction being executed ends.
The address break interrupt is not masked because of the I bit in CCR of the CPU.
Figures 4.2 show the operation examples of the address break interrupt setting.
Address
bus 0258 025A 025C 025E SP-2 SP-4
Interrupt
request
Interrupt acceptance
Address
bus 025C 025E 0260 025A 0262 0264 SP-2
Interrupt
request
Interrupt acceptance
Adress break
interrupt request
Adress break
interrupt request
ABIF
Figure 4.4 Operation when Another Interrupt is Accepted at Address Break Setting
Instruction
øOSC
System Duty System øOSC/8 ø
OSC1 øOSC øOSC øOSC/16
clock correction clock
OSC2 oscillator (fOSC) (fOSC) divider øOSC/32
circuit
øOSC/64 ø/2
Prescaler S to
System clock pulse generator (13 bits) ø/8192
The basic clock signals that drive the CPU and on-chip peripheral modules are ø.
The system clock is divided into ø/8192 to ø/2 by prescaler S and they are supplied to respective
peripheral modules.
OSC 2
LPM
OSC 1
Figure 5.3 shows a typical method of connecting a crystal resonator. An AT-cut parallel-resonance
crystal resonator should be used. Figure 5.4 shows the equivalent circuit of a crystal resonator. A
resonator having the characteristics given in table 5.1 should be used.
C1
OSC 1
OSC 2 C2
C1 = C 2 = 12 pF ±20%
LS RS
CS
OSC 1 OSC 2
C0
C1
OSC1
C2
OSC2 C1 = 30 pF ±10%
C2 = 30 pF ±10%
Connect an external clock signal to pin OSC1, and leave pin OSC2 open. Figure 5.6 shows a typical
connection. The duty cycle of the external clock signal must be 45 to 55%.
OSC 2 Open
5.2 Prescalers
5.2.1 Prescaler S
Prescaler S is a 13-bit counter using the system clock (ø) as its input clock. It is incremented once
per clock period. Prescaler S is initialized to H'0000 by a reset, and starts counting on exit from
the reset state. In standby mode and subsleep mode, the system clock pulse generator stops.
Prescaler S also stops and is initialized to H'0000. The CPU cannot read or write prescaler S.
The output from prescaler S is shared by the on-chip peripheral modules. The divider ratio can be
set separately for each on-chip peripheral function. In active mode and sleep mode, the clock input
to prescaler S is determined by the division factor designated by MA2 to MA0 in SYSCR2.
Resonator characteristics are closely related to board design and should be carefully evaluated by
the user, referring to the examples shown in this section. Resonator circuit constants will differ
depending on the resonator element, stray capacitance in its interconnecting circuit, and other
factors. Suitable constants should be determined in consultation with the resonator element
manufacturer. Design the circuit so that the resonator element never receives voltages exceeding
its maximum rating.
When using a crystal resonator (ceramic resonator), place the resonator and its load capacitors as
close as possible to the OSC1 and OSC2 pins. Other signal lines should be routed away from the
oscillator circuit to prevent induction from interfering with correct oscillation (see figure 5.7).
C1
OSC1
C2
OSC2
• Active mode
The CPU and all on-chip peripheral modules are operable on the system clock. The system
clock frequency can be selected from øosc, øosc/8, øosc/16, øosc/32, and øosc/64.
• Sleep mode
The CPU halts. On-chip peripheral modules are operable on the system clock.
• Standby mode
The CPU and all on-chip peripheral modules halt.
• Subsleep mode
The CPU and all on-chip peripheral modules halt. I/O ports keep the same states as before the
transition.
• Module standby mode
Independent of the above modes, power consumption can be reduced by halting on-chip
peripheral modules that are not used in module units.
MSTCR1 allows the on-chip peripheral modules to enter a standby state in module units.
Reset state
SLEEP
instruction
Interrupt
Subsleep mode
Notes: 1. To make a transition to another mode by an interrupt, make sure interrupt handling is after the interrupt
is accepted.
2. Details on the mode transition conditions are given in table 6.2.
In sleep mode, CPU operation is halted but the on-chip peripheral modules function at the clock
frequency set by the MA2 to MA0 bits in SYSCR2. CPU register contents are retained. When an
interrupt is requested, sleep mode is cleared and interrupt exception handling starts. Sleep mode is
not cleared if the I bit of the condition code register (CCR) is set to 1 or the requested interrupt is
disabled in the interrupt enable register. a transition is made to subactive mode when the bit is 1.
When the 5(6 pin goes low, the CPU goes into the reset state and sleep mode is cleared.
In standby mode, the clock pulse generator stops, so the CPU and on-chip peripheral modules stop
functioning. However, as long as the rated voltage is supplied, the contents of CPU registers, on-
chip RAM, and some on-chip peripheral module registers are retained. On-chip RAM contents
will be retained as long as the voltage set by the RAM data retention voltage is provided. The I/O
ports go to the high-impedance state.
Standby mode is cleared by an interrupt. When an interrupt is requested, the system clock pulse
generator starts. After the time set in bits STS2–STS0 in SYSCR1 has elapsed, and interrupt
exception handling starts. Standby mode is not cleared if the I bit of CCR is set to 1 or the
requested interrupt is disabled in the interrupt enable register.
When the 5(6 pin goes low, the system clock pulse generator starts. Since system clock signals
are supplied to the entire chip as soon as the system clock pulse generator starts functioning, the
5(6 pin must be kept low until the pulse generator output stabilizes. After the pulse generator
output has stabilized, the CPU starts reset exception handling if the 5(6 pin is driven high.
In subsleep mode, the system clock oscillator is halted, and operation of the CPU and on-chip
peripheral modules is halted. As long as a required voltage is applied, the contents of CPU
registers, the on-chip RAM, and some registers of the on-chip peripheral modules are retained. I/O
ports keep the same states as before the transition.
Subsleep mode is cleared by an interrupt. When an interrupt is requested, the system clock
oscillator starts to oscillate. Subsleep mode is cleared and an interrupt exception handling starts
when the time set in bits STS2 to STS0 in SYSCR1 elapses. Subsleep mode is not cleared if the I
bit of CCR is 1 or the interrupt is disabled in the interrupt enable bit.
If the direct transition interrupt is disabled in interrupt enable register 1, a transition is made
instead to sleep mode. Note that if a direct transition is attempted while the I bit in CCR is set to 1,
sleep mode will be entered, and the resulting mode cannot be cleared by means of an interrupt.
• 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: 1 kbyte × 4 blocks, 16 kbytes × 1 block.
To erase the entire flash memory, each block must be erased in turn.
• Reprogramming capability
The flash memory can be reprogrammed up to 1,000 times.
• On-board programming
On-board programming/erasing can be done in boot mode, in which the boot program built
into the chip is started to erase or program of the entire flash memory. In normal user
program mode, individual blocks can be erased or programmed.
• Automatic bit rate adjustment
For data transfer in boot mode, this LSI's bit rate can be automatically adjusted to match
the transfer bit rate of the host.
• Programming/erasing protection
Sets software protection against flash memory programming/erasing.
FLMCR1 is a register that makes the flash memory change to program mode, program-verify
mode, erase mode, or erase-verify mode. For details on register setting, refer to section 7.4, Flash
Memory Programming/Erasing.
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.
EBR1 specifies the flash memory erase area block. EBR1 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 to
be automatically cleared to 0.
Bit 7 (FLSHE) in FENR enables or disables the CPU access to the flash memory control registers,
FLMCR1, FLMCR2, and EBR1.
When changing to boot mode, the boot program built into this LSI is initiated. The boot program
transfers the programming control program from the externally-connected host to on-chip RAM
via SCI3. After erasing the entire flash memory, the programming control program is executed.
This can be used for programming initial values in the on-board state or for a forcible return when
programming/erasing can no longer be done in user program mode. In user program mode,
individual blocks can be erased and programmed by branching to the user program/erase control
program prepared by the user.
TEST 10, E10T_0 PB0 PB1 PB2 LSI State after Reset End
0 1 X X X X User Mode
0 0 1 X X X Boot Mode
Legend: X: Don’t care.
Table 7.2 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 7.4, Flash Memory Programming/Erasing.
2. SCI3 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 SCI3 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 is complete, 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
completion 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 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 7.3.
5. In boot mode, a part of the on-chip RAM area is used by the boot program. The area H'F780 to
H'FEEF 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 SCI3 (by clearing the RE and TE bits in SCR3 to 0), however 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 (PCR22 = 1, P22 = 1). 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, as 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 TEST pin and 10, pin. Boot mode is also cleared when a
WDT overflow occurs.
8. Do not change the TEST pin and NMI pin input levels in boot mode.
Item
Processing Contents Processing Contents
Boot mode initiation
Branches to boot program at reset-start.
H'00.
• Calculates bit rate and sets BRR in SCI3.
H'00 • Transmits data H'00 to host as adjustment
Transmits data H'55 when data H'00
is received error-free. H'55 end indication.
Flash memory erase
H'FF
Boot program Checks flash memory data, erases all flash
erase error memory blocks in case of written data
existing, and transmits data H'AA to host.
(If erase could not be done, transmits data
H'AA
H'AA reception H'FF to host and aborts operation.)
Transfer of number of bytes of
programming control program
H'AA
H'AA reception Transmits data H'AA to host when data H'55
is received.
On-board programming/erasing of an individual flash memory block can also be performed in user
program mode by branching to a user program/erase control program. The user must set branching
conditions and provide on-board means of supplying programming data. The flash memory must
contain the user program/erase control program or a program that provides the user program/erase
control program from external memory. As the flash memory itself cannot be read during
programming/erasing, transfer the user program/erase control program to on-chip RAM, as in boot
mode. Figure 7.2 shows a sample procedure for programming/erasing in user program mode.
Prepare a user program/erase control program in accordance with the description in section 7.4,
Flash Memory Programming/Erasing.
Reset-start
No
Program/erase?
Yes
7.4.1 Program/Program-Verify
When writing data or programs to the flash memory, the program/program-verify flowchart shown
in figure 7.3 should be followed. Performing programming operations according to this flowchart
will enable data or programs to be written to the flash memory without subjecting the chip to
voltage stress or sacrificing program data reliability.
n= 1
Set P bit in FLMCR1
m= 0
Wait (Wait time=programming time)
Write 128-byte data in RAM reprogram
Clear P bit in FLMCR1 data area consecutively to flash memory
Wait 4 µs
Wait 5 µs
Set block start address as
Disable WDT verify address
n←n+1
Wait 2 µs *
Read verify data
Increment address
Verify data = No
write data?
m=1
Yes
No
n≤6?
Yes
Additional-programming data computation
128-byte
data verification completed?
No
Yes
Clear PV bit in FLMCR1
Wait 2 µs
No
n ≤ 6?
Yes
Successively write 128-byte data from additional-
programming data area in RAM to flash memory
Sub-Routine-Call
Apply Write Pulse
No Yes
m= 0 ? n ≤ 1000 ?
Yes No
Clear SWE bit in FLMCR1 Clear SWE bit in FLMCR1
Note: *The RTS instruction must not be used during the following 1. and 2. periods.
1. A period between 128-byte data programming to flash memory and the P bit clearing
2. A period between dummy writing of H'FF to a verify address and verify data reading
Additional-Program
Reprogram Data Verify Data Data Comments
0 0 0 Additional-program bit
0 1 1 No additional programming
1 0 1 No additional programming
1 1 1 No additional programming
n Programming In Additional
(Number of Writes) Time Programming Comments
1 to 6 30 10
7 to 1,000 200 —
Note: Time shown in µs.
7.4.2 Erase/Erase-Verify
When erasing flash memory, the erase/erase-verify flowchart shown in figure 7.4 should be
followed.
All interrupts, including the 10, interrupt, are disabled while flash memory is being programmed
or erased, or while the boot program is executing, for the following three reasons:
SWE bit ← 1
Wait 1 µs
n←1
Set EBR1
Enable WDT
ESU bit ← 1
Wait 100 µs
E bit ← 1
Wait 10 µs
E bit ← 0
Wait 10 µs
ESU bit ← 10
10 µs
Disable WDT
EV bit ← 1
Wait 20 µs
Wait 2 µs *
n←n+1
Read verify data
No
Increment address Verify data + all 1s ?
Yes
No
Last address of block ?
Yes
EV bit ← 0 EV bit ← 0
No Yes
All erase block erased ? n ≤100 ?
No
Yes
Yes
SWE bit ← 0 SWE bit ← 0
Note: *The RTS instruction must not be used during a period between dummy writing of H'FF to a verify address and verify data reading.
Software protection can be implemented against programming/erasing of all flash memory blocks
by clearing the SWE bit in FLMCR1. When software protection is in effect, setting the P or E bit
in FLMCR1 does not cause a transition to program mode or erase mode. By setting the erase
block register 1 (EBR1), erase protection can be set for individual blocks. When EBR1 is set to
H'00, erase protection is set for all blocks.
In error protection, an error is detected when CPU runaway occurs during flash memory
programming/erasing, or operation is not performed in accordance with the program/erase
algorithm, and the program/erase operation is aborted. Aborting the program/erase operation
prevents damage to the flash memory due to overprogramming or overerasing.
When the following errors are detected during programming/erasing of flash memory, the FLER
bit in FLMCR2 is set to 1, and the error protection state is entered.
• When the flash memory of the relevant address area is read during programming/erasing
(including vector read and instruction fetch)
• Immediately after exception handling excluding a reset during programming/erasing
• When a SLEEP instruction is executed during programming/erasing
The FLMCR1, FLMCR2, and EBR1 settings are retained, however program mode or erase mode
is aborted at the point at which the error occurred. Program mode or erase mode cannot be re-
entered by re-setting the P or E bit. However, PV and EV bit setting is enabled, and a transition
can be made to verify mode. Error protection can be cleared only by a power-on reset.
9.1 Port 1
Port 1 is a general I/O port also functioning as IRQ interrupt input pins and a timer V input pin.
Figure 9.1 shows its pin configuration.
P17/ /TRGV
P16
P15
Port 1 P14/
P12
P11
P10
PCR1 selects inputs/outputs in bit units for pins to be used as general I/O ports of port 1.
PUCR1 controls the pull-up MOS in bit units of the pins set as the input ports.
The correspondence between the register specification and the port functions is shown below.
P17/,54
,54/TRGV pin
P16 pin
Register PCR1
Bit Name PCR16 Pin Function
Setting value 0 P16 input pin
1 P16 output pin
Register PCR1
Bit Name PCR15 Pin Function
Setting value 0 P15 input pin
1 P15 output pin
P14/,54
,54 pin
P12 pin
Register PCR1
Bit Name PCR12 Pin Function
Setting value 0 P12 input pin
1 P12 output pin
P11 pin
Register PCR1
Bit Name PCR11 Pin Function
Setting value 0 P11 input pin
1 P11 output pin
P10 pin
Register PCR1
Bit Name PCR10 Pin Function
Setting value 0 P10 input pin
1 P10 output pin
P22/TXD
Port 2 P21/RXD
P20/SCK3
PCR2 selects inputs/outputs in bit units for pins to be used as general I/O ports of port 2.
The correspondence between the register specification and the port functions is shown below.
P22/TXD pin
P21/RXD pin
9.3 Port 5
Port 5 is a general I/O port also functioning as an A/D trigger input pin and wakeup interrupt input
pin. Each pin of the port 5 is shown in figure 9.3.
P57
P56
P55/ /
P54/
Port 5
P53/
P52/
P51/
P50/
PCR5 selects inputs/outputs in bit units for pins to be used as general I/O ports of port 5.
PUCR5 controls the pull-up MOS in bit units of the pins set as the input ports.
The correspondence between the register specification and the port functions is shown below.
P57 pin
P56 pin
P54/:.3 pin
P53/:.3 pin
P52/:.3 pin
P50/:.3 pin
9.4 Port 7
Port 7 is a general I/O port also functioning as a timer V I/O pin. Each pin of the port 7 is shown
in figure 9.4. The register setting of TCSRV in timer V has priority for functions of pin
P76/TMOV. The pins, P75/TMCIV and P74/TMRIV, are also functioning as timer V input ports
that are connected to the timer V regardless of the register setting of port 7.
P76/TMOV
Port 7 P75/TMCIV
P74/TMRIV
PCR7 selects inputs/outputs in bit units for pins to be used as general I/O ports of port 7.
The correspondence between the register specification and the port functions is shown below.
P76/TMOV pin
P75/TMCIV pin
Register PCR7
Bit Name PCR75 Pin Function
Setting Value 0 P75 input/TMCIV input pin
1 P75 output/TMCIV input pin
P74/TMRIV pin
Register PCR7
Bit Name PCR74 Pin Function
Setting Value 0 P74 input/TMRIV input pin
1 P74 output/TMRIV input pin
P84/FTIOD
P83/FTIOC
Port 8 P82/FTIOB
P81/FTIOA
P80/FTCI
PCR8 selects inputs/outputs in bit units for pins to be used as general I/O ports of port 8.
The correspondence between the register specification and the port functions is shown below.
P84/FTIOD pin
P82/FTIOB pin
P81/FTIOA pin
Register PCR8
Bit Name PCR80 Pin Function
Setting Value 0 P80 input/FTCI input pin
1 P80 output/FTCI input pin
9.6 Port B
Port B is an input port also functioning as an A/D converter analog input pin. Each pin of the port
B is shown in figure 9.6.
PB3/AN3
PB2/AN2
Port B
PB1/AN1
PB0/AN0
0 PB0 R
10.1 Features
• Choice of seven clock signals is available.
Choice of six internal clock sources (ø/128, ø/64, ø/32, ø/16, ø/8, ø/4) or an external clock.
• Counter can be cleared by compare match A or B, or by an external reset signal. If the count
stop function is selected, the counter can be halted when cleared.
• Timer output is controlled by two independent compare match signals, enabling pulse output
with an arbitrary duty cycle, PWM output, and other applications.
• Three interrupt sources: compare match A, compare match B, timer overflow
• Counting can be initiated by trigger input at the TRGV pin. The rising edge, falling edge, or
both edges of the TRGV input can be selected.
TCORB
Trigger
TRGV
control
Comparator
Clear
TMRIV TCRV0
control
Interrupt
request
control
Output
TMOV TCSRV
control
CMIA
Legend: CMIB
TCORA: Time constant register A OVI
TCORB: Time constant register B
TCNTV: Timer counter V
TCSRV: Timer control/status register V
TCRV0: Timer control register V0
TCRV1: Timer control register V1
PSS: Prescaler S
CMIA: Compare-match interrupt A
CMIB: Compare-match interrupt B
OVI: Overflow interupt
TCNTV is an 8-bit up-counter. The clock source is selected by bits CKS2 to CKS0 in timer
control register V0 (TCRV0). The TCNTV value can be read and written by the CPU at any time.
TCNTV can be cleared by an external reset input signal, or by compare match A or B. The
clearing signal is selected by bits CCLR1 and CCLR0 in TCRV0.
TCORA and TCNTV are compared at all times. When the TCORA and TCNTV contents match,
CMFA is set to 1 in TCSRV. If CMIEA is also set to 1 in TCRV0, a CPU interrupt is requested.
Note that they must not be compared during the T3 state of a TCORA write cycle.
Timer output from the TMOV pin can be controlled by the identifying signal (compare match A)
and the settings of bits OS3 to OS0 in TCSRV.
TCRV0 selects the input clock signals of TCNTV, specifies the clearing conditions of TCNTV,
and controls each interrupt request.
TCSRV indicates the status flag and controls outputs by using a compare match.
TCRV1 selects the edge at the TRGV pin, enables TRGV input, and selects the clock input to
TCNTV.
1. According to table 10.2, six internal/external clock signals output by prescaler S can be
selected as the timer V operating clock signals. When the operating clock signal is selected,
TCNTV starts counting-up. Figure 10.2 shows the count timing with an internal clock signal
selected, and figure 10.3 shows the count timing with both edges of an external clock signal
selected.
2. When TCNTV overflows (changes from H'FF to H'00), the overflow flag (OVF) in TCRV0
will be set. The timing at this time is shown in figure 10.4. An interrupt request is sent to the
CPU when OVIE in TCRV0 is 1.
3. TCNTV is constantly compared with TCORA and TCORB. Compare match flag A or B
(CMFA or CMFB) is set to 1 when TCNTV matches TCORA or TCORB, respectively. The
compare-match signal is generated in the last state in which the values match. Figure 10.5
shows the timing. An interrupt request is generated for the CPU when CMIEA or CMIEB in
TCRV0 is 1.
4. When a compare match A or B is generated, the TMOV responds with the output value
selected by bits OS3 to OS0 in TCSRV. Figure 10.6 shows the timing when the output is
toggled by compare match A.
5. When CCLR1 or CCLR0 in TCRV0 is 01 or 10, TCNTV can be cleared by the corresponding
compare match. Figure 10.7 shows the timing.
6. When CCLR1 or CCLR0 in TCRV0 is 11, TCNTV can be cleared by the rising edge of the
input of TMRIV pin. A TMRIV input pulse-width of at least 1.5 system clocks is necessary.
Figure 10.8 shows the timing.
7. When a counter-clearing source is generated with TRGE in TCRV1 set to 1, the counting-up is
halted as soon as TCNTV is cleared. TCNTV resumes counting-up when the edge selected by
TVEG1 or TVEG0 in TCRV1 is input from the TGRV pin.
Internal clock
TCNTV input
clock
TMCIV
(External clock
input pin)
TCNTV input
clock
Overflow signal
OVF
TCNTV N N+1
TCORA or
TCORB N
Compare match
signal
CMFA or
CMFB
Compare match
A signal
Timer V output
pin
Compare match
A signal
TCNTV N H'00
Compare match
A signal
Timer V output
pin
Figure 10.9 shows an example of output of pulses with an arbitrary duty cycle.
1. Set bits CCLR1 and CCLR0 in TCRV0 so that TCNTV will be cleared by compare match with
TCORA.
2. Set bits OS3 to OS0 in TCSRV so that the output will go to 1 at compare match with TCORA
and to 0 at compare match with TCORB.
3. Set bits CKS2 to CKS0 in TCRV0 and bit ICKS0 in TCRV1 to select the desired clock source.
4. With these settings, a waveform is output without further software intervention, with a period
determined by TCORA and a pulse width determined by TCORB.
TCNTV value
H'FF
Counter cleared
TCORA
TCORB
H'00 Time
TMOV
The trigger function can be used to output a pulse with an arbitrary pulse width at an arbitrary
delay from the TRGV input, as shown in figure 10.10. To set up this output:
1. Set bits CCLR1 and CCLR0 in TCRV0 so that TCNTV will be cleared by compare match with
TCORB.
2. Set bits OS3 to OS0 in TCSRV so that the output will go to 1 at compare match with TCORA
and to 0 at compare match with TCORB.
3. Set bits TVEG1 and TVEG0 in TCRV1 and set TRGE to select the falling edge of the TRGV
input.
4. Set bits CKS2 to CKS0 in TCRV0 and bit ICKS0 in TCRV1 to select the desired clock source.
5. After these settings, a pulse waveform will be output without further software intervention,
with a delay determined by TCORA from the TRGV input, and a pulse width determined by
(TCORB – TCORA).
TCNTV value
H'FF
Counter cleared
TCORB
TCORA
H'00 Time
TRGV
TMOV
1. Writing to registers is performed in the T3 state of a TCNTV write cycle. If a TCNTV clear
signal is generated in the T3 state of a TCNTV write cycle, as shown in figure 10.11, clearing
takes precedence and the write to the counter is not carried out. If counting-up is generated in
the T3 state of a TCNTV write cycle, writing takes precedence.
2. If a compare match is generated in the T3 state of a TCORA or TCORB write cycle, the write
to TCORA or TCORB takes precedence and the compare match signal is inhibited. Figure
10.12 shows the timing.
3. If compare matches A and B occur simultaneously, any conflict between the output selections
for compare match A and compare match B is resolved by the following priority: toggle
output > output 1 > output 0.
4. Depending on the timing, TCNTV may be incremented by a switch between different internal
clock sources. When TCNTV is internally clocked, an increment pulse is generated from the
falling edge of an internal clock signal, that is divided system clock (φ). Therefore, as shown
in figure 10.3 the switch is from a high clock signal to a low clock signal, the switchover is
seen as a falling edge, causing TCNTV to increment. TCNTV can also be incremented by a
switch between internal and external clocks.
T1 T2 T3
TCNTV N H'00
T1 T2 T3
TCNTV N N+1
TCORA N M
TCORA write data
Clock before
switching
Clock after
switching
Count clock
11.1 Features
• Selection of five counter clock sources: four internal clocks (φ, φ/2, φ/4, and φ/8) and an
external clock (external events can be counted)
• Capability to process up to four pulse outputs or four pulse inputs
• Four general registers:
Independently assignable output compare or input capture functions
Usable as two pairs of registers; one register of each pair operates as a buffer for the output
compare or input capture register
• Four selectable operating modes :
Waveform output by compare match
Selection of 0 output, 1 output, or toggle output
Input capture function
Rising edge, falling edge, or both edges
Counter clearing function
Counters can be cleared by compare match
PWM mode
Up to three-phase PWM output can be provided with desired duty ratio.
• Any initial timer output value can be set
• Five interrupt sources
Four compare match/input capture interrupts and an overflow interrupt.
Table 11.1 summarizes the timer W functions, and figure 11.1 shows a block diagram of the timer
W.
TIERW
TMRW
TCRW
TSRW
TCNT
TIOR
GRC
GRD
GRA
GRB
Internal
Bus interface
data bus
Legend:
TMRW: Timer mode register W (8 bits)
TCRW: Timer control register W (8 bits)
TIERW: Timer interrupt enable register W (8 bits)
TSRW: Timer status register W (8 bits)
TIOR: Timer I/O control register (8 bits)
TCNT: Timer counter (16 bits)
GRA: General register A (input capture/output compare register: 16 bits)
GRB: General register B (input capture/output compare register: 16 bits)
GRC: General register C (input capture/output compare register: 16 bits)
GRD: General register D (input capture/output compare register: 16 bits)
IRRTW: Timer W interrupt request
TMRW selects the general register functions and the timer output mode.
TIOR1 selects the functions of GRC and GRD, and specifies the functions of the FTIOC and
FTIOD pins.
TCNT is a 16-bit readable/writable up-counter. The clock source is selected by bits CKS2 to
CKS0 in TCRW. TCNT can be cleared to H'0000 through a compare match with GRA by setting
the CCLR in TCRW to 1. When TCNT overflows (changes from H'FFFF to H'0000), the OVF
flag in TSRW is set to 1. If OVIE in TIERW is set to 1 at this time, an interrupt request is
generated. TCNT must always be read or written in 16-bit units; 8-bit access is not allowed.
TCNT is initialized to H'0000 by a reset.
Each general register is a 16-bit readable/writable register that can function as either an output-
compare register or an input-capture register. The function is selected by settings in TIOR0 and
TIOR1.
When a general register is used as an input-compare register, its value is constantly compared with
the TCNT value. When the two values match (a compare match), the corresponding flag (IMFA,
IMFB, IMFC, or IMFD) in TSRW is set to 1. An interrupt request is generated at this time, when
IMIEA, IMIEB, IMIEC, or IMIED is set to 1. Compare match output can be selected in TIOR.
GRC and GRD can be used as buffer registers of GRA and GRB, respectively, by setting BUFEA
and BUFEB in TMRW.
For example, when GRA is set as an output-compare register and GRC is set as the buffer register
for GRA, the value in the buffer register GRC is sent to GRA whenever compare match A is
generated.
When GRA is set as an input-capture register and GRC is set as the buffer register for GRA, the
value in TCNT is transferred to GRA and the value in the buffer register GRC is transferred to
GRA whenever an input capture is generated.
GRA to GRD must be written or read in 16-bit units; 8-bit access is not allowed. GRA to GRD are
initialized to H'FFFF by a reset.
• Normal Operation
• PWM Operation
TCNT performs free-running or periodic counting operations. After a reset, TCNT is set as a free-
running counter. When the CST bit in TMRW is set to 1, TCNT starts incrementing the count.
When the count overflows from H'FFFF to H'0000, the OVF flag in TSRW is set to 1. If the OVIE
in TIERW is set to 1, an interrupt request is generated. Figure 11.2 shows free-running counting.
TCNT value
H'FFFF
H'0000 Time
CST bit
Flag cleared
by software
OVF
Periodic counting operation can be performed when GRA is set as an output compare register and
bit CCLR in TCRW is set to 1. When the count matches GRA, TCNT is cleared to H'0000, the
IMFA flag in TSRW is set to 1. If the corresponding IMIEA bit in TIERW is set to 1, an interrupt
request is generated. TCNT continues counting from H'0000. Figure 11.3 shows periodic
counting.
H'0000 Time
CST bit
Flag cleared
by software
IMFA
TCNT value
H'FFFF
GRA
GRB
H'0000 Time
Figure 11.5 shows an example of toggle output when TCNT operates as a free-running counter,
and toggle output is selected for both compare match A and B.
H'FFFF
GRA
GRB
H'0000 Time
Figure 11.6 shows another example of toggle output when TCNT operates as a periodic counter,
cleared by compare match A. Toggle output is selected for both compare match A and B.
TCNT value
Counter cleared by compare match with GRA
H'FFFF
GRA
GRB
H'0000 Time
Toggle
FTIOA output
Toggle
FTIOB
output
The TCNT value can be captured into a general register (GRA, GRB, GRC, or GRD) when a
signal level changes at an input-capture pin (FTIOA, FTIOB, FTIOC, or FTIOD). Capture can
take place on the rising edge, falling edge, or both edges. By using the input-capture function, the
pulse width and periods can be measured. Figure 11.7 shows an example of input capture when
both edges of FTIOA and the falling edge of FTIOB are selected as capture edges. TCNT operates
as a free-running counter.
H'FFFF
H'F000
H'AA55
H'55AA
H'1000
H'0000 Time
FTIOA
FTIOB
GRB H'AA55
Figure 11.8 shows an example of buffer operation when the GRA is set as an input-capture
register and GRC is set as the buffer register for GRA. TCNT operates as a free-running counter,
and FTIOA captures both rising and falling edge of the input signal. Due to the buffer operation,
the GRA value is transferred to GRC by input-capture A and the TCNT value is stored in GRA.
TCNT value
H'FFFF
H'DA91
H'5480
H'0245
H'0000 Time
FTIOA
In PWM mode, PWM waveforms are generated by using GRA as the period register and GRB,
GRC, and GRD as duty registers. PWM waveforms are output from the FTIOB, FTIOC, and
FTIOD pins. Up to three-phase PWM waveforms can be output. In PWM mode, a general register
functions as an output compare register automatically. The output level of each pin depends on the
corresponding timer output level set bit (TOB, TOC, and TOD) in TCRW. When TOB is 1, the
FTIOB output goes to 1 at compare match A and to 0 at compare match B. When TOB is 0, the
FTIOB output goes to 0 at compare match A and to 1 at compare match B. Thus the compare
match output level settings in TIOR0 and TIOR1 are ignored for the output pin set to PWM mode.
If the same value is set in the cycle register and the duty register, the output does not change when
a compare match occurs.
Figure 11.9 shows an example of operation in PWM mode. The output signals go to 1 and TCNT
is cleared at compare match A, and the output signals go to 0 at compare match B, C, and D
(TOB, TOC, and TOD = 1: initial output values are set to 1).
TCNT value
Counter cleared by compare match A
GRA
GRB
GRC
GRD
H'0000 Time
FTIOB
FTIOC
FTIOD
Figure 11.10 shows another example of operation in PWM mode. The output signals go to 0 and
TCNT is cleared at compare match A, and the output signals go to 1 at compare match B, C, and
D (TOB, TOC, and TOD = 0: initial output values are set to 1).
FTIOB
FTIOC
FTIOD
Figure 11.11 shows an example of buffer operation when the FTIOB pin is set to PWM mode and
GRD is set as the buffer register for GRB. TCNT is cleared by compare match A, and FTIOB
outputs 1 at compare match B and 0 at compare match A.
Due to the buffer operation, the FTIOB output level changes and the value of buffer register GRD
is transferred to GRB whenever compare match B occurs. This procedure is repeated every time
compare match B occurs.
TCNT value
GRA H'0520
H'0450
H'0200
GRB
H'0000 Time
FTIOB
Figures 11.12 and 11.13 show examples of the output of PWM waveforms with duty cycles of 0%
and 100%.
GRA
GRB
Write to GRB
H'0000 Time
Duty 0%
FTIOB
Write to GRB
GRB
H'0000 Time
Duty 100%
FTIOB
H'0000 Time
GRA
GRB
Write to GRB
H'0000 Time
Duty 100%
FTIOB
Write to GRB
GRB
H'0000 Time
Duty 0%
FTIOB
H'0000 Time
Figure 11.14 shows the TCNT count timing when the internal clock source is selected. Figure
11.15 shows the timing when the external clock source is selected. The pulse width of the external
clock signal must be at least two system clock (φ) cycles; shorter pulses will not be counted
correctly.
Internal
Rising edge
clock
TCNT input
clock
External
clock Rising edge Rising edge
TCNT input
clock
The compare match signal is generated in the last state in which TCNT and GR match (when
TCNT changes from the matching value to the next value). When the compare match signal is
generated, the output value selected in TIOR is output at the compare match output pin (FTIOA,
FTIOB, FTIOC, or FTIOD).
When TCNT matches GR, the compare match signal is generated only after the next counter clock
pulse is input.
TCNT input
clock
TCNT N N+1
GRA to GRD N
Compare
match signal
FTIOA to FTIOD
Input capture on the rising edge, falling edge, or both edges can be selected through settings in
TIOR0 and TIOR1. Figure 11.17 shows the timing when the falling edge is selected. The pulse
width of the input capture signal must be at least two system clock (φ) cycles; shorter pulses will
not be detected correctly.
Input capture
input
Input capture
signal
GRA to GRD N
Figure 11.18 shows the timing when the counter is cleared by compare match A. When the GRA
value is N, the counter counts from 0 to N, and its cycle is N + 1.
Compare
match signal
TCNT N H'0000
GRA N
Compare
match signal
TCNT N N+1
GRC, GRD M
GRA, GRB M
Input capture
signal
TCNT N N+1
GRC, GRD M N
If a general register (GRA, GRB, GRC, or GRD) is used as an output compare register, the
corresponding IMFA, IMFB, IMFC, or IMFD flag is set to 1 when TCNT matches the general
register.
The compare match signal is generated in the last state in which the values match (when TCNT is
updated from the matching count to the next count). Therefore, when TCNT matches a general
register, the compare match signal is generated only after the next TCNT clock pulse is input.
Figure 11.21 shows the timing of the IMFA to IMFD flag setting at compare match.
TCNT input
clock
TCNT N N+1
GRA to GRD N
Compare
match signal
IMFA to IMFD
IRRTW
If a general register (GRA, GRB, GRC, or GRD) is used as an input capture register, the
corresponding IMFA, IMFB, IMFC, or IMFD flag is set to 1 when an input capture occurs. Figure
11.22 shows the timing of the IMFA to IMFD flag setting at input capture.
Input capture
signal
TCNT N
GRA to GRD N
IMFA to IMFD
IRRTW
When the CPU reads a status flag while it is set to 1, then writes 0 in the status flag, the status flag
is cleared. Figure 11.23 shows the status flag clearing timing.
Write signal
IMFA to IMFD
IRRTW
1. The pulse width of the input clock signal and the input capture signal must be at least two
system clock (φ) cycles; shorter pulses will not be detected correctly.
2. Writing to registers is performed in the T2 state of a TCNT write cycle.
If counter clear signal occurs in the T2 state of a TCNT write cycle, clearing of the counter
takes priority and the write is not performed, as shown in figure 11.24. If counting-up is
generated in the TCNT write cycle to contend with the TCNT counting-up, writing takes
precedence.
3. Depending on the timing, TCNT may be incremented by a switch between different internal
clock sources. When TCNT is internally clocked, an increment pulse is generated from the
rising edge of an internal clock signal, that is divided system clock (φ). Therefore, as shown in
figure 11.25 the switch is from a low clock signal to a high clock signal, the switchover is seen
as a rising edge, causing TCNT to increment.
4. If timer W enters module standby mode while an interrupt request is generated, the interrupt
request cannot be cleared. Before entering module standby mode, disable interrupt requests.
Write signal
Counter clear
signal
TCNT N H'0000
New clock
Count clock
TMWD
12.1 Features
• Selectable from nine counter input clocks.
Eight clock sources (φ/64, φ/128, φ/256, φ/512, φ/1024, φ/2048, φ/4096, and φ/8192) or the
internal oscillator can be selected as the timer-counter clock. When the internal oscillator is
selected, it can operate as the watchdog timer in any operating mode.
• Reset signal generated on counter overflow
An overflow period of 1 to 256 times the selected clock can be set.
TCSRWD performs the TCSRWD and TCWD write control. TCSRWD also controls the
watchdog timer operation and indicates the operating state. TCSRWD must be rewritten by using
the MOV instruction. The bit manipulation instruction cannot be used to change the setting value.
TCWD is an 8-bit readable/writable up-counter. When TCWD overflows from H'FF to H'00, the
internal reset signal is generated and the WRST bit in TCSRWD is set to 1. TCWD is initialized to
H'00.
4 × 106
× 30 × 10–3 = 14.6
8192
TCWD overflow
H'FF
H'F1
TCWD
count value
H'00
Start
Internal reset
signal
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 or on-chip baud rate generator can be selected as a transfer clock source.
• Six interrupt sources
Transmit-end, transmit-data-empty, receive-data-full, overrun error, framing error, and parity
error.
Asynchronous mode
BRC BRR
Clock
SMR
SSR
Interrupt request
Legend: (TEI, TXI, RXI, ERI)
RSR: Receive shift register
RDR: Receive data register
TSR: Transmit shift register
TDR: Transmit data register
SMR: Serial mode register
SCR3: Serial control register 3
SSR: Serial status register
BRR: Bit rate register
BRC: Bit rate counter
RSR is a shift register that is used to receive serial data input from 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.
RDR is an 8-bit register that stores received data. When the SCI3 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. RDR is initialized to H'00.
TSR is a shift register that transmits serial data. To perform serial data transmission, the SCI3 first
transfers transmit data from TDR to TSR automatically, then sends the data that starts from the
LSB to the TXD pin. TSR cannot be directly accessed by the CPU.
TDR is an 8-bit register that stores data for transmission. When the SCI3 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 transmission of one-frame data, the SCI3 transfers
the written data to TSR to continue transmission. To achieve reliable serial transmission, write
transmit data to TDR only once after confirming that the TDRE bit in SSR is set to 1. TDR is
initialized to H'FF.
SMR is used to set the SCI3’s serial transfer format and select the on-chip baud rate generator
clock source.
SCR3 is a register that enables or disables SCI3 transfer operations and interrupt requests, and is
also used to select the transfer clock source. For details on interrupt requests, refer to section 13.7,
Interrupts.
SSR is a register containing status flags of the SCI3 and multiprocessor bits for transfer. 1 cannot
be written to flags TDRE, RDRF, OER, PER, and FER; they can only be cleared.
[Clearing conditions]
• When 0 is written to TDRE after reading TDRE
=1
• When the transmit data is written to TDR
6 RDRF 0 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]
• When 0 is written to RDRF after reading RDRF
=1
• When data is read from RDR
5 OER 0 R/W Overrun Error
[Setting condition]
• When an overrun error occurs in reception
[Clearing condition]
• When 0 is written to OER after reading OER =
1
[Clearing condition]
• When 0 is written to FER after reading FER =
1
3 PER 0 R/W Parity Error
[Setting condition]
• When a parity error is generated during
reception
[Clearing condition]
• When 0 is written to PER after reading PER =
1
2 TEND 1 R Transmit End
[Setting conditions]
• When the TE bit in SCR3 is 0
• When TDRE = 1 at transmission of the last bit
of a 1-byte serial transmit character
[Clearing conditions]
• When 0 is written to TEND after reading TEND
=1
• When the transmit data is written to TDR
1 MPBR 0 R Multiprocessor Bit Receive
MPBR stores the multiprocessor bit in the receive
character data. When the RE bit in SCR3 is
cleared to 0, its previous state is retained.
0 MPBT 0 R/W Multiprocessor Bit Transfer
MPBT stores the multiprocessor bit to be added to
the transmit character data.
BRR is an 8-bit register that adjusts the bit rate. The initial value of BRR is H'FF. Table 13.2
shows the relationship between the N setting in BRR and the n setting in bits CKS1 and CKS0 of
SMR in asynchronous mode. Table 13.3 shows the maximum bit rate for each frequency in
asynchronous mode. The values shown in both tables 13.2 and 13.3 are values in active (high-
speed) mode. Table 13.4 shows the relationship between the N setting in BRR and the n setting in
bits CKS1 and CKS0 in SMR in clocked synchronous mode. The values shown in table 13.4 are
values in active (high-speed) mode. The N setting in BRR and error for other operating
frequencies and bit rates can be obtained by the following formulas:
[Asynchronous Mode]
φ
N= × 106 – 1
64 × 22n–1 × B
φ × 106
Error (%) = – 1 × 100
(N + 1) × B × 64 × 22n–1
φ
N= × 106 – 1
8 × 22n–1 × B
Table 13.3 Maximum Bit Rate for Each Frequency (Asynchronous Mode)
LSB MSB 1
Serial Start Parity Mark state
Transmit/receive data Stop bit
data bit bit
13.4.1 Clock
Either an internal clock generated by the on-chip baud rate generator or an external clock input at
the SCK3 pin can be selected as the SCI3’s serial clock source, according to the setting of the
COM bit in SMR and the CKE0 and CKE1 bits in SCR3. When an external clock is input at the
SCK3 pin, the clock frequency should be 16 times the bit rate used.
When the SCI3 is operated on an internal clock, the clock can be output from the SCK3 pin. 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.3.
Clock
1 character (frame)
Figure 13.3 Relationship between Output Clock and Transfer Data Phase
(Asynchronous Mode)(Example with 8-Bit Data, Parity, Two Stop Bits)
Follow the flowchart as shown in figure 13.4 to initialize the SCI3. 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 OER flags, or the contents of RDR. When the external clock is used in
asynchronous mode, the clock must be supplied even during initialization.
Set value in BRR [3] [2] Set the data transfer format in SMR.
1. The SCI3 monitors the TDRE flag in SSR. If the flag is cleared to 0, the SCI3 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 SCI3 sets the TDRE flag to 1 and starts
transmission. If the TIE bit is set to 1 at this time, a TXI interrupt request 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. The SCI3 checks the TDRE flag at the timing for sending the stop bit.
4. 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.
5. 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 SCR3 is set to 1 at this time, a TEI
interrupt request is generated.
6. Figure 13.6 shows a sample flowchart for transmission in asynchronous mode.
TDRE
TEND
LSI TXI interrupt TDRE flag TXI interrupt request generated TEI interrupt request
operation request cleared to 0 generated
generated
User Data written
processing to TDR
No
TEND = 1
Yes
No
[3] Break output?
Yes
<End>
Figure 13.7 shows an example of operation for reception in asynchronous mode. In serial
reception, the SCI operates as described below.
1. The SCI3 monitors the communication line. If a start bit is detected, the SCI3 performs
internal synchronization, receives 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 OER bit in SSR is set to 1. If the RIE bit in SCR3 is set to 1 at this time, an
ERI interrupt request is generated. Receive data is not transferred to RDR.
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 SCR3 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 SCR3 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 SCR3 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.
Start Receive Parity Stop Start Receive Parity Stop Mark state
bit data bit bit bit data bit bit (idle state)
Serial 1 0 D0 D1 D7 0/1 1 0 D0 D1 D7 0/1 0 1
data
1 frame 1 frame
RDRF
FER
Yes
All data received? [3]
(A) No
<End>
Error processing
No
OER = 1
Yes
No
FER = 1
Yes
Yes
Break?
No
No
PER = 1
Yes
(A)
<End>
8-bit
13.5.1 Clock
Either an internal clock generated by the on-chip baud rate generator or an external
synchronization clock input at the SCK3 pin can be selected, according to the setting of the COM
bit in SMR and CKE0 and CKE1 bits in SCR3. When the SCI3 is operated on an internal clock,
the serial clock is output from the SCK3 pin. Eight serial clock pulses are output in the transfer of
one character, and when no transfer is performed the clock is fixed high.
Before transmitting and receiving data, the SCI3 should be initialized as described in a sample
flowchart in figure 13.4.
Figure 13.10 shows an example of SCI3 operation for transmission in clocked synchronous mode.
In serial transmission, the SCI3 operates as described below.
1. The SCI3 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.
2. The SCI3 sets the TDRE flag to 1 and starts transmission. If the TIE bit in SCR3 is set to 1 at
this time, a transmit data empty interrupt (TXI) is generated.
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. Serial data is transmitted sequentially from the LSB (bit 0), from the TXD
pin.
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 SCR3 is set to 1 at this time, a TEI interrupt
request is generated.
7. The SCK3 pin is fixed high.
Figure 13.11 shows a sample flowchart for serial data transmission. Even if the TDRE flag is
cleared to 0, transmission will not start while a receive error flag (OER, FER, or PER) is set to 1.
Make sure that the receive error flags are cleared to 0 before starting transmission.
Serial
clock
Serial
Bit 0 Bit 1 Bit 7 Bit 0 Bit 1 Bit 6 Bit 7
data
1 frame 1 frame
TDRE
TEND
LSI TXI interrupt TDRE flag TXI interrupt request generated TEI interrupt request
operation request cleared generated
generated to 0
Yes
[2] All data transmitted?
No
No
TEND = 1
Yes
<End>
Figure 13.12 shows an example of SCI3 operation for reception in clocked synchronous mode. In
serial reception, the SCI3 operates as described below.
1. The SCI3 performs internal initialization synchronous with a synchronous clock input or
output, starts receiving data.
2. The SCI3 stores the received data in RSR.
3. 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 OER bit in SSR is set to 1. If the RIE bit in SCR3 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.
4. 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 SCR3 is set to 1 at this time, an RXI interrupt request is
generated.
Serial
clock
Serial
Bit 7 Bit 0 Bit 7 Bit 0 Bit 1 Bit 6 Bit 7
data
1 frame 1 frame
RDRF
OER
LSI RXI interrupt RDRF flag RXI interrupt request generated ERI interrupt request
operation request cleared generated by
generated to 0 overrun error
Reception cannot be resumed while a receive error flag is set to 1. Accordingly, clear the OER,
FER, PER, and RDRF bits to 0 before resuming reception. Figure 13.13 shows a sample flowchart
for serial data reception.
Yes
All data received? [3]
No
<End>
<End>
Figure 13.14 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 SCI3 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 SCI3 has finished
reception, clear RE to 0. Then after checking that the RDRF and receive error flags (OER, FER,
and PER) are cleared to 0, simultaneously set TE and RE to 1 with a single instruction.
Yes
All data received? [3]
No
<End>
Figure 13.14 Sample Flowchart of Simultaneous Serial Transmit and Receive Operations
(Clocked Synchronous Mode)
The SCI3 uses the MPIE bit in SCR3 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 OER 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 MPBR bit in SSR is set to 1 and
the MPIE bit is automatically cleared, thus normal reception is resumed. If the RIE bit in SCR3 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.
Serial
H'01 H'AA
data
(MPB = 1) (MPB = 0)
Figure 13.16 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 SCI3 operations are the same
as those in asynchronous mode.
Start transmission
[1] Read SSR and check that the TDRE
flag is set to 1, set the MPBT bit in
[1] Read TDRE flag in SSR SSR to 0 or 1, then write transmit
data to TDR. When data is written to
TDR, the TDRE flag is automatically
No
TDRE = 1 cleared to 0.
[2] To continue serial transmission, be
Yes sure to read 1 from the TDRE flag to
confirm that writing is possible, then
write data to TDR. When data is
Set MPBT bit in SSR
written to TDR, the TDRE flag is
automatically cleared to 0.
[3] To output a break in serial
Write transmit data to TDR transmission, set the port PCR to 1,
clear PDR to 0, then clear the TE bit
in SCR3 to 0.
Yes
[2] All data transmitted?
No
No
TEND = 1
Yes
No
[3] Break output?
Yes
<End>
Figure 13.17 shows a sample flowchart for multiprocessor serial data reception. If the MPIE bit in
SCR3 is set to 1, data is skipped until data with a 1 multiprocessor bit is received. 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 SCI3 operations are the same as in asynchronous mode. Figure
13.18 shows an example of SCI3 operation for multiprocessor format reception.
Yes
FER+OER = 1
No
No
RDRF = 1 [5]
Error processing
Yes
(Continued on
Read receive data in RDR next page)
Yes
All data received?
No
[A]
<End>
No
OER = 1
Yes
No
FER = 1
Yes
Yes
Break?
No [A]
<End>
MPIE
RDRF
RDR ID1
value
MPIE
RDRF
The initial value of the TDRE flag in SSR is 1. Thus, when the TIE bit in SCR3 is set to 1 before
transferring the transmit data to TDR, a TXI interrupt request is generated even if the transmit data
is not ready. The initial value of the TEND flag in SSR is 1. Thus, when the TEIE bit in SCR3 is
set to 1 before transferring the transmit data to TDR, a TEI interrupt request is generated even if
the transmit data has not been sent. It is possible to make use of the most of these interrupt
requests efficiently by transferring the transmit data to TDR in the interrupt routine. To prevent
the generation of these interrupt requests (TXI and TEI), set the enable bits (TIE and TEIE) that
correspond to these interrupt requests to 1, after transferring the transmit data to TDR.
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 0, setting the FER flag, and possibly
the PER flag. Note that as the SCI3 continues the receive operation after receiving a break, even if
the FER flag is cleared to 0, it will be set to 1 again.
When TE is 0, the TxD pin is used as an I/O port whose direction (input or output) and level are
determined by PCR and PDR. 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 PCR and PDR 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.
Rev. 2.0, 03/02, page 191 of 298
13.8.3 Receive Error Flags and Transmit Operations (Clocked Synchronous Mode Only)
Transmission cannot be started when a receive error flag (OER, 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.
In asynchronous mode, the SCI3 operates on a basic clock with a frequency of 16 times the
transfer rate. In reception, the SCI3 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.19.
Thus, the reception margin in asynchronous mode is given by formula (1) below.
1 D – 0.5
M = (0.5 – )– – (L – 0.5) F × 100(%)
2N N
... Formula (1)
Assuming values of F (absolute value of clock rate deviation) = 0 and D (clock duty) = 0.5 in
formula (1), the reception margin can be given by the formula.
However, this is only the computed value, and a margin of 20% to 30% should be allowed for in
system design.
16 clocks
8 clocks
0 7 15 0 7 15 0
Internal basic
clock
Synchronization
sampling timing
Data sampling
timing
14.1 Features
• 10-bit resolution
• Four input channels
• Conversion time: at least 4.4 µs per channel (at 16 MHz operation)
• 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
• Two conversion start methods
Software
External trigger signal
• Interrupt request
An A/D conversion end interrupt request (ADI) can be generated
Bus interface
Successive approximations
AVCC
A A A A A A
register
D D D D D D
10-bit D/A D D D D C C
R R R R S R
A B C D R
+
Analog multiplexer
ø/4
AN0 Control circuit
AN1 ø/8
Comparator
AN2
AN3 Sample-and- ADI
hold circuit interrupt request
Legend
ADCR : A/D control register
ADCSR : A/D control/status register
ADDRA : A/D data register A
ADDRB : A/D data register B
ADDRC : A/D data register C
ADDRD : A/D data register D
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 14.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 ADDR, read the upper bytes only or read in word units. ADDR is initialized to
H'0000.
ADCSR consists of the control bits and conversion end status bits of the A/D converter.
[Clearing conditions]
• When 0 is written after reading ADF = 1
6 ADIE 0 R/W A/D Interrupt Enable
A/D conversion end interrupt (ADI) request enabled
by ADF when 1 is set
5 ADST 0 R/W A/D Start
Setting this bit to 1 starts A/D conversion. 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, or a transition to standby
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 CKS 0 R/W Clock Select
Selects the A/D conversions time
0: Conversion time = 134 states (max.)
1: Conversion time = 70 states (max.)
Clear the ADST bit to 0 before switching the
conversion time.
In single mode, A/D conversion is performed once for the analog input on the specified single
channel as follows:
1. A/D conversion is started from the first channel when the ADST bit in ADCSR is set to 1,
according to software 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.
In scan mode, A/D conversion is performed sequentially for the analog input on the specified
channels (four channels maximum) as follows:
1. When the ADST bit is set to 1 by software, or external trigger input, A/D conversion starts on
the first channel in the group.
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 in ADCSR is set to 1.
If the ADIE bit is set to 1 at this time, an ADI interrupt is requested. Conversion of the first
channel in the group starts again.
4. The ADST bit is not automatically cleared to 0. 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.
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 14.2 shows the A/D conversion timing. Table 14.3 shows the A/D
conversion time.
As indicated in figure 14.2, the A/D conversion time includes tD and the input sampling time. 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 14.3.
In scan mode, the values given in table 14.3 apply to the first conversion time. In the second and
subsequent conversions, the conversion time is 128 states (fixed) when CKS = 0 and 66 states
(fixed) when CKS = 1.
(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
CKS = 0 CKS = 1
Item Symbol Min Typ Max Min Typ Max
A/D conversion start delay tD 6 — 9 4 — 5
Input sampling time tSPL — 31 — — 15 —
A/D conversion time tCONV 131 — 134 69 — 70
Note: All values represent the number of states.
A/D conversion can also be started by an external trigger input. When the TRGE bit is set to 1 in
ADCR, external trigger input is enabled at the $'75* pin. A falling edge at the $'75* input
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 14.3
shows the timing.
ADST
A/D conversion
• 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 14.4).
• 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 0000000000 to 0000000001
(see figure 14.5).
• Full-scale error
The deviation of the analog input voltage value from the ideal A/D conversion characteristic
when the digital output changes from 1111111110 to 1111111111 (see figure 14.5).
• Nonlinearity error
The error with respect to the ideal A/D conversion characteristics between zero voltage and
full-scale voltage. Does not include offset error, full-scale error, or quantization error.
• Absolute accuracy
The deviation between the digital value and the analog input value. Includes offset error, full-
scale error, quantization error, and nonlinearity error.
Digital output
110
101
100
011
001
000
1 2 3 4 5 6 7 FS
8 8 8 8 8 8 8
Analog
input voltage
Nonlinearity
error
This LSI's analog input is designed such that conversion accuracy 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 accuracy. 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 14.6). When converting a high-speed
analog signal or converting in scan mode, a low-impedance buffer should be inserted.
Adding capacitance results in coupling with GND, and therefore noise in GND may adversely
affect absolute accuracy. Be sure to make the connection to an electrically stable GND.
Care is also required to ensure that filter circuits do not interfere with digital signals or act as
antennas on the mounting board.
Step-down circuit
VCL
Internal Stabilization
Internal capacitance
power
logic (approx. 0.1 µF)
supply
VSS
Figure 15.1 Power Supply Connection when Internal Step-Down Circuit is Used
Step-down circuit
VCL
Internal Internal
logic power
supply
VSS
Figure 15.2 Power Supply Connection when Internal Step-Down Circuit is Not Used
2. Register bits
• Bit configurations of the registers are described in the same order as the register addresses.
• Reserved bits are indicated by in the bit name column.
• When registers consist of 16 bits, bits are described from the MSB side.
The number of access states indicates the number of states based on the specified reference clock.
Data
Abbre- Module Bus Access
Register Name viation Bit No Address Name Width State
Timer mode register W TMRW 8 H'FF80 Timer W 8 2
Timer control register W TCRW 8 H'FF81 Timer W 8 2
Timer interrupt enable register W TIERW 8 H'FF82 Timer W 8 2
Timer status register W TSRW 8 H'FF83 Timer W 8 2
Timer I/O control register 0 TIOR0 8 H'FF84 Timer W 8 2
Timer I/O control register 1 TIOR1 8 H'FF85 Timer W 8 2
1
Timer counter TCNT 16 H'FF86 Timer W 16* 2
1
General register A GRA 16 H'FF88 Timer W 16* 2
1
General register B GRB 16 H'FF8A Timer W 16* 2
1
General register C GRC 16 H'FF8C Timer W 16* 2
1
General register D GRD 16 H'FF8E Timer W 16* 2
Flash memory control register 1 FLMCR1 8 H'FF90 ROM 8 2
Flash memory control register 2 FLMCR2 8 H'FF91 ROM 8 2
Erase block register 1 EBR1 8 H'FF93 ROM 8 2
Flash memory enable register FENR 8 H'FF9B ROM 8 2
Timer control register V0 TCRV0 8 H'FFA0 Timer V 8 3
Timer control/status register V TCSRV 8 H'FFA1 Timer V 8 3
Timer constant register A TCORA 8 H'FFA2 Timer V 8 3
Timer constant register B TCORB 8 H'FFA3 Timer V 8 3
Timer counter V TCNTV 8 H'FFA4 Timer V 8 3
Timer control register V1 TCRV1 8 H'FFA5 Timer V 8 3
Serial mode register SMR 8 H'FFA8 SCI3 8 3
Bit rate register BRR 8 H'FFA9 SCI3 8 3
Serial control register 3 SCR3 8 H'FFAA SCI3 8 3
Each line covers eight bits, and 16-bit registers are shown as 2 lines.
Register
Name Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Module Name
TMRW CTS — BUFEB BUFEA — PWMD PWMC PWMB Timer W
TCRW CCLR CKS2 CKS1 CKS0 TOD TOC TOB TOA
TIERW OVIE — — — IMIED IMIEC IMIEB IMIEA
TSRW OVF — — — IMFD IMFC IMFB IMFA
TIOR0 — IOB2 IOB1 IOB0 — IOA2 IOA1 IOA0
TIOR1 — IOD2 IOD1 IOD0 — IOC2 IOC1 IOC0
TCNT TCNT15 TCNT14 TCNT13 TCNT12 TCNT11 TCNT10 TCNT9 TCNT8
TCNT7 TCNT6 TCNT5 TCNT4 TCNT3 TCNT2 TCNT1 TCNT0
GRA GRA15 GRA14 GRA13 GRA12 GRA11 GRA10 GRA9 GRA8
GRA7 GRA6 GRA5 GRA4 GRA3 GRA2 GRA1 GRA0
GRB GRB15 GRB14 GRB13 GRB12 GRB11 GRB10 GRB9 GRB8
GRB7 GRB6 GRB5 GRB4 GRB3 GRB2 GRB1 GRB0
GRC GRC15 GRC14 GRC13 GRC12 GRC11 GRC10 GRC9 GRC8
GRC7 GRC6 GRC5 GRC4 GRC3 GRC2 GRC1 GRC0
GRD GRD15 GRD14 GRD13 GRD12 GRD11 GRD10 GRD9 GRD8
GRD7 GRD6 GRD5 GRD4 GRD3 GRD2 GRD1 GRD0
FLMCR1 — SWE ESU PSU EV PV E P ROM
FLMCR2 FLER — — — — — — —
EBR1 — — — EB4 EB3 EB2 EB1 EB0
FENR FLSHE — — — — — — —
TCRV0 CMIEB CMIEA OVIE CCLR1 CCLR0 CKS2 CKS1 CKS0 Timer V
TCSRV CMFB CMFA OVF — OS3 OS2 OS1 OS0
TCORA TCORA7 TCORA6 TCORA5 TCORA4 TCORA3 TCORA2 TCORA1 TCORA0
TCORB TCORB7 TCORB6 TCORB5 TCORB4 TCORB3 TCORB2 TCORB1 TCORB0
TCNTV TCNTV7 TCNTV6 TCNTV5 TCNTV4 TCNTV3 TCNTV2 TCNTV1 TCNTV0
TCRV1 — — — TVEG1 TVEG0 TRGE — ICKS0
SMR COM CHR PE PM STOP MP CKS1 CKS0 SCI3
BRR BRR7 BRR6 BRR5 BRR4 BRR3 BRR2 BRR1 BRR0
SCR3 TIE RIE TE RE MPIE TEIE CKE1 CKE0
TDR TDR7 TDR6 TDR5 TDR4 TDR3 TDR2 TDR1 TDR0
2.0
3.0 4.0 5.5 VCC (V) 3.0 4.0 5.5 VCC (V)
ø (MHz)
16.0
10.0
1.0
1250
78.125
Analog Power Supply Voltage and A/D Converter Accuracy Guarantee Range
ø (MHz)
16.0
10.0
2.0
VCC = 3.0 V to 5.5 V, VSS = 0.0 V, Ta = –20°C to +75°C unless otherwise indicated.
Values
Item Symbol Applicable Pins Test Condition Min Typ Max Unit Notes
Input high VIH 5(6, VCC = 4.0 V to 5.5 V VCC × 0.8 — VCC + 0.3 V
voltage :.3 to :.3,
,54 to ,54,
$'75*,TMRIV,
TMCIV, FTCI, VCC × 0.9 — VCC + 0.3
FTIOA to FTIOD,
SCK3, TRGV
RXD, VCC = 4.0 V to 5.5 V VCC × 0.7 — VCC + 0.3 V
P12 to P10,
P17 to P14,
P22 to P20,
P57 to P50, VCC × 0.8 — VCC + 0.3
P76 to P74,
P84 to P80
PB3 to PB0 VCC = 4.0 V to 5.5 V VCC × 0.7 — AVCC + 0.3 V
VCC × 0.8 — AVCC + 0.3
OSC1 VCC = 4.0 V to 5.5 V VCC – 0.5 — VCC + 0.3 V
VCC – 0.3 — VCC + 0.3
Input low VIL 5(6, VCC = 4.0 V to 5.5 V –0.3 — VCC × 0.2 V
voltage :.3 to :.3,
,54, ,54,
$'75*,TMRIV,
TMCIV, FTCI, –0.3 — VCC × 0.1
FTIOA to FTIOD,
SCK3, TRGV
RXD, VCC = 4.0 V to 5.5 V –0.3 — VCC × 0.3 V
P12 to P10,
P17 to P14,
P22 to P20,
P57 to P50, –0.3 — VCC × 0.2
P76 to P74,
P84 to P80,
PB3 to PB0
OSC1 VCC = 4.0 V to 5.5 V –0.3 — 0.5 V
–0.3 — 0.3
VCC = 3.0 V to 5.5 V, VSS = 0.0 V, Ta = –20°C to +75°C, unless otherwise indicated.
Applicable Values
VCC = 3.0 V to 5.5 V, VSS = 0.0 V, Ta = –20°C to +75°C, unless otherwise specified.
Values
Applicable Reference
Item Symbol Pins Test Condition Min Typ Max Unit Figure
1
System clock fOSC OSC1, VCC = 4.0 V to 5.5 V 2.0 — 16.0 MHz *
oscillation OSC2
frequency 2.0 — 10.0 MHz
2
System clock (ø) tcyc 1 — 64 tOSC *
cycle time
— — 12.8 µs
Instruction cycle 2 — — tcyc
time
Oscillation trc OSC1, — — 10.0 ms
stabilization time OSC2
(crystal resonator)
Oscillation trc OSC1, — — 5.0 ms
stabilization time OSC2
(ceramic resonator)
External clock tCPH OSC1 VCC = 4.0 V to 5.5 V 25.0 — — ns Figure 17.1
high width
40.0 — — ns
External clock tCPL OSC1 VCC = 4.0 V to 5.5 V 25.0 — — ns
low width
40.0 — — ns
External clock tCPr OSC1 VCC = 4.0 V to 5.5 V — — 10.0 ns
rise time
— — 15.0 ns
External clock tCPf OSC1 VCC = 4.0 V to 5.5 V — — 10.0 ns
fall time
— — 15.0 ns
VCC = 3.0 V to 5.5 V, VSS = 0.0 V, Ta = –20°C to +75°C, unless otherwise specified.
Values
Applicable Reference
Item Symbol Pins Test Condition Min Typ Max Unit Figure
Input Asynchro- tScyc SCK3 4 — — tcyc Figure 17.4
clock nous
cycle
Clocked 6 — — tcyc
synchro-
nous
Input clock pulse tSCKW SCK3 0.4 — 0.6 tScyc
width
Transmit data delay tTXD TXD VCC = 4.0 V to 5.5 V — — 1 tcyc Figure 17.5
time (clocked
— — 1 tcyc
synchronous)
VCC = 3.0 V to 5.5 V, VSS = 0.0 V, Ta = –20°C to +75°C, unless otherwise specified.
Values
Applicable Test Reference
Item Symbol Pins Condition Min Typ Max Unit Figure
1
Analog power supply AVCC AVCC 3.3 VCC 5.5 V *
voltage
Analog input voltage AVIN AN3 to VSS – 0.3 — AVCC + 0.3 V
AN0
Analog power supply AIOPE AVCC AVCC = 5.0 V — — 2.0 mA
current
fOSC =
16 MHz
2
AISTOP1 AVCC — 50 — µA *
Reference
value
3
AISTOP2 AVCC — — 5.0 µA *
Analog input CAIN AN3 to — — 30.0 pF
capacitance AN0
Allowable signal RAIN AN3 to — — 5.0 kΩ
source impedance AN0
Resolution (data 10 10 10 bit
length)
Conversion time AVCC = 3.3 V 134 — — tcyc
(single mode) to 5.5 V
Nonlinearity error — — ±7.5 LSB
Offset error — — ±7.5 LSB
Full-scale error — — ±7.5 LSB
Quantization error — — ±0.5 LSB
Absolute accuracy — — ±8.0 LSB
Conversion time AVCC = 4.0 V 70 — — tcyc
(single mode) to 5.5 V
Nonlinearity error — — ±7.5 LSB
Offset error — — ±7.5 LSB
Full-scale error — — ±7.5 LSB
Quantization error — — ±0.5 LSB
Absolute accuracy — — ±8.0 LSB
VCC = 3.0 V to 5.5 V, VSS = 0.0 V, Ta = –20°C to +75°C, unless otherwise specified.
VCC = 3.0 V to 5.5 V, VSS = 0.0 V, Ta = –20°C to +75°C, unless otherwise specified.
Values
Test
Item Symbol Condition Min Typ Max Unit
1 2 4
Programming time (per 128 bytes)* * * tP — 7 — ms
1 3 6
Erase time (per block) * * * tE — 100 — ms
Reprogramming count NWEC — — 1000 Times
Programming Wait time after SWE x 1 — — µs
1
bit setting*
Wait time after PSU y 50 — — µs
1
bit setting*
Wait time after P bit setting z1 1≤n≤6 28 30 32 µs
7 ≤ n ≤ 1000
1 4
** z2 198 200 202 µs
z3 Additional- 8 10 12 µs
programming
α
1
Wait time after P bit clear* 5 — — µs
Wait time after PSU bit clear* β
1
5 — — µs
Wait time after PV γ 4 — — µs
1
bit setting*
Wait time after dummy write* ε
1
2 — — µs
η
1
Wait time after PV bit clear* 2 — — µs
Wait time after SWE θ 100 — — µs
1
bit clear*
Maximum N — — 1000 Times
1 4 5
programming count* * *
t OSC
VIH
OSC1
VIL
t CPH t CPL
t CPr t CPf
OSC1
tREL
VIL VIL
tREL
,
to VIH
FTCI VIL
FTIOA to FTIOD
TMCIV, TMRIV
TRGV t IL t IH
SCK3
t Scyc
t Scyc
VIH or VOH *
SCK3 VIL or VOL *
t TXD
TXD VOH*
(transmit data) *
VOL
t RXS
t RXH
RXD
(receive data)
VCC
2.4 kΩ
30 pF 12 k Ω
Symbol Description
Rd General (destination*) register
Rs General (source*) register
Rn General register*
ERd General destination register (address register or 32-bit register)
ERs General source register (address register or 32-bit register)
ERn General register (32-bit register)
(EAd) Destination operand
(EAs) Source operand
PC Program counter
SP Stack pointer
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
disp Displacement
→ Transfer from the operand on the left to the operand on the right, or transition from
the state on the left to the state on the right
+ Addition of the operands on both sides
– Subtraction of the operand on the right from the operand on the left
× Multiplication of the operands on both sides
÷ Division of the operand on the left by the operand on the right
∧ Logical AND of the operands on both sides
∨ Logical OR of the operands on both sides
⊕ Logical exclusive OR of the operands on both sides
¬ NOT (logical complement)
( ), < > Contents of operand
Note: General registers include 8-bit registers (R0H to R7H and R0L to R7L) and 16-bit registers
(R0 to R7 and E0 to E7).
Symbol Description
↔
Changed according to execution result
* Undetermined (no guaranteed value)
0 Cleared to 0
1 Set to 1
— Not affected by execution of the instruction
∆ Varies depending on conditions, described in notes
@–ERn/@ERn+
Condition Code
Operand Size
Mnemonic Operation
@(d, ERn)
Advanced
@(d, PC)
Normal
@@aa
@ERn
@aa
#xx
Rn
—
I H N Z V C
#xx:8 → Rd8
↔ ↔ ↔ ↔ ↔ ↔
↔ ↔ ↔ ↔ ↔ ↔
MOV MOV.B #xx:8, Rd B 2 — — 0 — 2
MOV.B Rs, Rd B 2 Rs8 → Rd8 — — 0 — 2
MOV.B @ERs, Rd B 2 @ERs → Rd8 — — 0 — 4
MOV.B @(d:16, ERs), Rd B 4 @(d:16, ERs) → Rd8 — — 0 — 6
MOV.B @(d:24, ERs), Rd B 8 @(d:24, ERs) → Rd8 — — 0 — 10
MOV.B @ERs+, Rd B 2 @ERs → Rd8 — — 0 — 6
ERs32+1 → ERs32
@aa:8 → Rd8
↔ ↔ ↔ ↔ ↔ ↔ ↔
↔ ↔ ↔ ↔ ↔ ↔ ↔
MOV.B @aa:8, Rd B 2 — — 0 — 4
MOV.B @aa:16, Rd B 4 @aa:16 → Rd8 — — 0 — 6
MOV.B @aa:24, Rd B 6 @aa:24 → Rd8 — — 0 — 8
MOV.B Rs, @ERd B 2 Rs8 → @ERd — — 0 — 4
MOV.B Rs, @(d:16, ERd) B 4 Rs8 → @(d:16, ERd) — — 0 — 6
MOV.B Rs, @(d:24, ERd) B 8 Rs8 → @(d:24, ERd) — — 0 — 10
MOV.B Rs, @–ERd B 2 ERd32–1 → ERd32 — — 0 — 6
Rs8 → @ERd
Rs8 → @aa:8
↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔
↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔
MOV.B Rs, @aa:8 B 2 — — 0 — 4
MOV.B Rs, @aa:16 B 4 Rs8 → @aa:16 — — 0 — 6
MOV.B Rs, @aa:24 B 6 Rs8 → @aa:24 — — 0 — 8
MOV.W #xx:16, Rd W 4 #xx:16 → Rd16 — — 0 — 4
MOV.W Rs, Rd W 2 Rs16 → Rd16 — — 0 — 2
MOV.W @ERs, Rd W 2 @ERs → Rd16 — — 0 — 4
MOV.W @(d:16, ERs), Rd W 4 @(d:16, ERs) → Rd16 — — 0 — 6
MOV.W @(d:24, ERs), Rd W 8 @(d:24, ERs) → Rd16 — — 0 — 10
MOV.W @ERs+, Rd W 2 @ERs → Rd16 — — 0 — 6
ERs32+2 → @ERd32
@aa:16 → Rd16
↔ ↔ ↔ ↔ ↔
↔ ↔ ↔ ↔ ↔
MOV.W @aa:16, Rd W 4 — — 0 — 6
MOV.W @aa:24, Rd W 6 @aa:24 → Rd16 — — 0 — 8
MOV.W Rs, @ERd W 2 Rs16 → @ERd — — 0 — 4
MOV.W Rs, @(d:16, ERd) W 4 Rs16 → @(d:16, ERd) — — 0 — 6
MOV.W Rs, @(d:24, ERd) W 8 Rs16 → @(d:24, ERd) — — 0 — 10
@–ERn/@ERn+
Condition Code
Operand Size
Mnemonic Operation
@(d, ERn)
Advanced
@(d, PC)
Normal
@@aa
@ERn
@aa
#xx
Rn
—
I H N Z V C
ERd32–2 → ERd32
↔
↔
MOV MOV.W Rs, @–ERd W 2 — — 0 — 6
Rs16 → @ERd
Rs16 → @aa:16
↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔
↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔
MOV.W Rs, @aa:16 W 4 — — 0 — 6
MOV.W Rs, @aa:24 W 6 Rs16 → @aa:24 — — 0 — 8
MOV.L #xx:32, Rd L 6 #xx:32 → Rd32 — — 0 — 6
MOV.L ERs, ERd L 2 ERs32 → ERd32 — — 0 — 2
MOV.L @ERs, ERd L 4 @ERs → ERd32 — — 0 — 8
MOV.L @(d:16, ERs), ERd L 6 @(d:16, ERs) → ERd32 — — 0 — 10
MOV.L @(d:24, ERs), ERd L 10 @(d:24, ERs) → ERd32 — — 0 — 14
MOV.L @ERs+, ERd L 4 @ERs → ERd32 — — 0 — 10
ERs32+4 → ERs32
@aa:16 → ERd32
↔ ↔ ↔ ↔ ↔ ↔
↔ ↔ ↔ ↔ ↔ ↔
MOV.L @aa:16, ERd L 6 — — 0 — 10
MOV.L @aa:24, ERd L 8 @aa:24 → ERd32 — — 0 — 12
MOV.L ERs, @ERd L 4 ERs32 → @ERd — — 0 — 8
MOV.L ERs, @(d:16, ERd) L 6 ERs32 → @(d:16, ERd) — — 0 — 10
MOV.L ERs, @(d:24, ERd) L 10 ERs32 → @(d:24, ERd) — — 0 — 14
MOV.L ERs, @–ERd L 4 ERd32–4 → ERd32 — — 0 — 10
ERs32 → @ERd
ERs32 → @aa:16
↔ ↔ ↔
↔ ↔ ↔
MOV.L ERs, @aa:16 L 6 — — 0 — 10
MOV.L ERs, @aa:24 L 8 ERs32 → @aa:24 — — 0 — 12
POP POP.W Rn W 2 @SP → Rn16 — — 0 — 6
SP+2 → SP
4 @SP → ERn32
↔
↔
POP.L ERn L — — 0 — 10
SP+4 → SP
2 SP–2 → SP ↔
↔
PUSH PUSH.W Rn W — — 0 — 6
Rn16 → @SP
4 SP–4 → SP
↔
↔
PUSH.L ERn L — — 0 — 10
ERn32 → @SP
@–ERn/@ERn+
Condition Code
Operand Size
Mnemonic Operation
@(d, ERn)
Advanced
@(d, PC)
Normal
@@aa
@ERn
@aa
#xx
Rn
—
I H N Z V C
Rd8+#xx:8 → Rd8
↔ ↔
↔ ↔ ↔ ↔ ↔
↔ ↔ ↔ ↔ ↔
↔ ↔ ↔ ↔ ↔
↔ ↔ ↔ ↔ ↔
ADD ADD.B #xx:8, Rd B 2 — 2
ADD.B Rs, Rd B 2 Rd8+Rs8 → Rd8 — 2
ADD.W #xx:16, Rd W 4 Rd16+#xx:16 → Rd16 — (1) 4
ADD.W Rs, Rd W 2 Rd16+Rs16 → Rd16 — (1) 2
ADD.L #xx:32, ERd L 6 ERd32+#xx:32 → — (2) 6
ERd32
ERd32+ERs32 →
↔
↔
↔
↔
ADD.L ERs, ERd L 2 — (2) 2
ERd32
Rd8+#xx:8 +C → Rd8
↔ ↔
↔ ↔
↔ ↔
↔ ↔
ADDX ADDX.B #xx:8, Rd B 2 — (3) 2
ADDX.B Rs, Rd B 2 Rd8+Rs8 +C → Rd8 — (3) 2
ADDS ADDS.L #1, ERd L 2 ERd32+1 → ERd32 — — — — — — 2
ADDS.L #2, ERd L 2 ERd32+2 → ERd32 — — — — — — 2
ADDS.L #4, ERd L 2 ERd32+4 → ERd32 — — — — — — 2
Rd8+1 → Rd8
↔ ↔ ↔ ↔ ↔ ↔
↔ ↔ ↔ ↔ ↔ ↔
↔ ↔ ↔ ↔ ↔
INC INC.B Rd B 2 — — — 2
INC.W #1, Rd W 2 Rd16+1 → Rd16 — — — 2
INC.W #2, Rd W 2 Rd16+2 → Rd16 — — — 2
INC.L #1, ERd L 2 ERd32+1 → ERd32 — — — 2
INC.L #2, ERd L 2 ERd32+2 → ERd32 — — — 2
DAA DAA Rd B 2 Rd8 decimal adjust — * * — 2
→ Rd8
Rd8–Rs8 → Rd8
↔
↔ ↔ ↔ ↔ ↔ ↔ ↔
↔ ↔ ↔ ↔ ↔
↔ ↔ ↔ ↔ ↔ ↔ ↔
↔ ↔ ↔ ↔ ↔ ↔ ↔
SUB SUB.B Rs, Rd B 2 — 2
SUB.W #xx:16, Rd W 4 Rd16–#xx:16 → Rd16 — (1) 4
SUB.W Rs, Rd W 2 Rd16–Rs16 → Rd16 — (1) 2
SUB.L #xx:32, ERd L 6 ERd32–#xx:32 → ERd32 — (2) 6
SUB.L ERs, ERd L 2 ERd32–ERs32 → ERd32 — (2) 2
Rd8–#xx:8–C → Rd8
↔ ↔
DEC DEC.B Rd B 2 — — — 2
DEC.W #1, Rd W 2 Rd16–1 → Rd16 — — — 2
DEC.W #2, Rd W 2 Rd16–2 → Rd16 — — — 2
@–ERn/@ERn+
Condition Code
Operand Size
Mnemonic Operation
@(d, ERn)
Advanced
@(d, PC)
Normal
@@aa
@ERn
@aa
#xx
Rn
—
I H N Z V C
ERd32–1 → ERd32
↔ ↔ ↔
↔ ↔ ↔
↔ ↔
DEC DEC.L #1, ERd L 2 — — — 2
DEC.L #2, ERd L 2 ERd32–2 → ERd32 — — — 2
DAS DAS.Rd B 2 Rd8 decimal adjust — * * — 2
→ Rd8
↔
↔
MULXS MULXS. B Rs, Rd B 4 — — — — 16
(signed multiplication)
Rd16 × Rs16 → ERd32
↔
↔
MULXS. W Rs, ERd W 4 — — — — 24
(signed multiplication)
@–ERn/@ERn+
Condition Code
Operand Size
Mnemonic Operation
@(d, ERn)
Advanced
@(d, PC)
Normal
@@aa
@ERn
@aa
#xx
Rn
—
I H N Z V C
B 0–Rd8 → Rd8
↔ ↔ ↔
↔ ↔ ↔
↔ ↔ ↔ ↔
↔ ↔ ↔
↔ ↔ ↔
NEG NEG.B Rd 2 — 2
NEG.W Rd W 0–Rd16 → Rd16 2 — 2
NEG.L ERd L 0–ERd32 → ERd32 2 — 2
EXTU EXTU.W Rd W 0 → (<bits 15 to 8> 2 — — 0 0 — 2
of Rd16)
L 0 → (<bits 31 to 16>
↔
EXTU.L ERd 2 — — 0 0 — 2
of ERd32)
↔
↔
EXTS EXTS.W Rd 2 — — 0 — 2
(<bits 15 to 8> of Rd16)
↔
↔
EXTS.L ERd 2 — — 0 — 2
(<bits 31 to 16> of
ERd32)
@–ERn/@ERn+
Condition Code
Operand Size
Mnemonic Operation
@(d, ERn)
Advanced
@(d, PC)
Normal
@@aa
@ERn
@aa
#xx
Rn
—
I H N Z V C
Rd8∧#xx:8 → Rd8
↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔
↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔
AND AND.B #xx:8, Rd B 2 — — 0 — 2
AND.B Rs, Rd B 2 Rd8∧Rs8 → Rd8 — — 0 — 2
AND.W #xx:16, Rd W 4 Rd16∧#xx:16 → Rd16 — — 0 — 4
AND.W Rs, Rd W 2 Rd16∧Rs16 → Rd16 — — 0 — 2
AND.L #xx:32, ERd L 6 ERd32∧#xx:32 → ERd32 — — 0 — 6
AND.L ERs, ERd L 4 ERd32∧ERs32 → ERd32 — — 0 — 4
OR OR.B #xx:8, Rd B 2 Rd8⁄#xx:8 → Rd8 — — 0 — 2
OR.B Rs, Rd B 2 Rd8⁄Rs8 → Rd8 — — 0 — 2
OR.W #xx:16, Rd W 4 Rd16⁄#xx:16 → Rd16 — — 0 — 4
OR.W Rs, Rd W 2 Rd16⁄Rs16 → Rd16 — — 0 — 2
OR.L #xx:32, ERd L 6 ERd32⁄#xx:32 → ERd32 — — 0 — 6
OR.L ERs, ERd L 4 ERd32⁄ERs32 → ERd32 — — 0 — 4
XOR XOR.B #xx:8, Rd B 2 Rd8⊕#xx:8 → Rd8 — — 0 — 2
XOR.B Rs, Rd B 2 Rd8⊕Rs8 → Rd8 — — 0 — 2
XOR.W #xx:16, Rd W 4 Rd16⊕#xx:16 → Rd16 — — 0 — 4
XOR.W Rs, Rd W 2 Rd16⊕Rs16 → Rd16 — — 0 — 2
XOR.L #xx:32, ERd L 6 ERd32⊕#xx:32 → ERd32 — — 0 — 6
XOR.L ERs, ERd L 4 ERd32⊕ERs32 → ERd32 — — 0 — 4
NOT NOT.B Rd B 2 ¬ Rd8 → Rd8 — — 0 — 2
NOT.W Rd W 2 ¬ Rd16 → Rd16 — — 0 — 2
NOT.L ERd L 2 ¬ Rd32 → Rd32 — — 0 — 2
@–ERn/@ERn+
Condition Code
Operand Size
Mnemonic Operation
@(d, ERn)
Advanced
@(d, PC)
Normal
@@aa
@ERn
@aa
#xx
Rn
—
I H N Z V C
↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔
↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔
↔ ↔ ↔
↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔
SHAL SHAL.B Rd B 2 — — 2
C 0
SHAL.W Rd W 2 — — 2
SHAL.L ERd L 2 MSB LSB — — 2
SHAR SHAR.B Rd B 2 — — 0 2
C
SHAR.W Rd W 2 — — 0 2
SHAR.L ERd L 2 MSB LSB — — 0 2
SHLL SHLL.B Rd B 2 — — 0 2
C 0
SHLL.W Rd W 2 — — 0 2
SHLL.L ERd L 2 MSB LSB — — 0 2
SHLR SHLR.B Rd B 2 — — 0 2
0 C
SHLR.W Rd W 2 — — 0 2
SHLR.L ERd L 2 MSB LSB — — 0 2
ROTXL ROTXL.B Rd B 2 — — 0 2
C
ROTXL.W Rd W 2 — — 0 2
ROTXL.L ERd L 2 MSB LSB — — 0 2
ROTXR ROTXR.B Rd B 2 — — 0 2
C
ROTXR.W Rd W 2 — — 0 2
ROTXR.L ERd L 2 MSB LSB — — 0 2
ROTL ROTL.B Rd B 2 — — 0 2
C
ROTL.W Rd W 2 — — 0 2
ROTL.L ERd L 2 MSB LSB — — 0 2
ROTR ROTR.B Rd B 2 — — 0 2
C
ROTR.W Rd W 2 — — 0 2
ROTR.L ERd L 2 MSB LSB — — 0 2
@–ERn/@ERn+
Condition Code
Operand Size
Mnemonic Operation
@(d, ERn)
Advanced
@(d, PC)
Normal
@@aa
@ERn
@aa
#xx
Rn
—
I H N Z V C
¬ (#xx:3 of Rd8) → Z
↔ ↔ ↔ ↔ ↔ ↔
@–ERn/@ERn+
Condition Code
Operand Size
Mnemonic Operation
@(d, ERn)
Advanced
@(d, PC)
Normal
@@aa
@ERn
@aa
#xx
Rn
—
I H N Z V C
(#xx:3 of @ERd) → C
↔ ↔ ↔ ↔ ↔
BLD BLD #xx:3, @ERd B 4 — — — — — 6
BLD #xx:3, @aa:8 B 4 (#xx:3 of @aa:8) → C — — — — — 6
BILD BILD #xx:3, Rd B 2 ¬ (#xx:3 of Rd8) → C — — — — — 2
BILD #xx:3, @ERd B 4 ¬ (#xx:3 of @ERd) → C — — — — — 6
BILD #xx:3, @aa:8 B 4 ¬ (#xx:3 of @aa:8) → C — — — — — 6
BST BST #xx:3, Rd B 2 C → (#xx:3 of Rd8) — — — — — — 2
BST #xx:3, @ERd B 4 C → (#xx:3 of @ERd24) — — — — — — 8
BIST BST #xx:3, @aa:8 B 4 C → (#xx:3 of @aa:8) — — — — — — 8
BIST #xx:3, Rd B 2 ¬ C → (#xx:3 of Rd8) — — — — — — 2
BIST #xx:3, @ERd B 4 ¬ C → (#xx:3 of @ERd24) — — — — — — 8
BIST #xx:3, @aa:8 B 4 ¬ C → (#xx:3 of @aa:8) — — — — — — 8
C∧(#xx:3 of Rd8) → C
↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔ ↔
BAND BAND #xx:3, Rd B 2 — — — — — 2
BAND #xx:3, @ERd B 4 C∧(#xx:3 of @ERd24) → C — — — — — 6
BIAND BAND #xx:3, @aa:8 B 4 C∧(#xx:3 of @aa:8) → C — — — — — 6
BIAND #xx:3, Rd B 2 C∧ ¬ (#xx:3 of Rd8) → C — — — — — 2
BIAND #xx:3, @ERd B 4 C∧ ¬ (#xx:3 of @ERd24) → C — — — — — 6
BIAND #xx:3, @aa:8 B 4 C∧ ¬ (#xx:3 of @aa:8) → C — — — — — 6
BOR BOR #xx:3, Rd B 2 C⁄(#xx:3 of Rd8) → C — — — — — 2
BOR #xx:3, @ERd B 4 C⁄(#xx:3 of @ERd24) → C — — — — — 6
BOR #xx:3, @aa:8 B 4 C⁄(#xx:3 of @aa:8) → C — — — — — 6
BIOR BIOR #xx:3, Rd B 2 C⁄ ¬ (#xx:3 of Rd8) → C — — — — — 2
BIOR #xx:3, @ERd B 4 C⁄ ¬ (#xx:3 of @ERd24) → C — — — — — 6
BIOR #xx:3, @aa:8 B 4 C⁄ ¬ (#xx:3 of @aa:8) → C — — — — — 6
BXOR BXOR #xx:3, Rd B 2 C⊕(#xx:3 of Rd8) → C — — — — — 2
BXOR #xx:3, @ERd B 4 C⊕(#xx:3 of @ERd24) → C — — — — — 6
BXOR #xx:3, @aa:8 B 4 C⊕(#xx:3 of @aa:8) → C — — — — — 6
BIXOR BIXOR #xx:3, Rd B 2 C⊕ ¬ (#xx:3 of Rd8) → C — — — — — 2
BIXOR #xx:3, @ERd B 4 C⊕ ¬ (#xx:3 of @ERd24) → C — — — — — 6
BIXOR #xx:3, @aa:8 B 4 C⊕ ¬ (#xx:3 of @aa:8) → C — — — — — 6
@–ERn/@ERn+
Condition Code
Operand Size
Mnemonic Operation
@(d, ERn)
Advanced
@(d, PC)
Normal
@@aa
@ERn
@aa
Branch
#xx
Rn
—
Condition I H N Z V C
@–ERn/@ERn+
Condition Code
Operand Size
Mnemonic Operation
@(d, ERn)
Advanced
@(d, PC)
Normal
@@aa
@ERn
@aa
#xx
Rn
—
I H N Z V C
@–ERn/@ERn+
Condition Code
Operand Size
Mnemonic Operation
@(d, ERn)
Advanced
@(d, PC)
Normal
@@aa
@ERn
@aa
#xx
Rn
—
I H N Z V C
CCR ← @SP+
↔
↔
↔
↔
↔
↔
RTE RTE — 10
PC ← @SP+
SLEEP SLEEP — Transition to power- — — — — — — 2
down state
#xx:8 → CCR
↔ ↔ ↔ ↔ ↔
↔ ↔ ↔ ↔ ↔
↔ ↔ ↔ ↔ ↔
↔ ↔ ↔ ↔ ↔
↔ ↔ ↔ ↔ ↔
↔ ↔ ↔ ↔ ↔
LDC LDC #xx:8, CCR B 2 2
LDC Rs, CCR B 2 Rs8 → CCR 2
LDC @ERs, CCR W 4 @ERs → CCR 6
LDC @(d:16, ERs), CCR W 6 @(d:16, ERs) → CCR 8
LDC @(d:24, ERs), CCR W 10 @(d:24, ERs) → CCR 12
LDC @ERs+, CCR W 4 @ERs → CCR 8
↔
↔
↔
↔
↔
↔
ERs32+2 → ERs32
@aa:16 → CCR
↔ ↔
↔ ↔
↔ ↔
↔ ↔
↔ ↔
↔ ↔
LDC @aa:16, CCR W 6 8
LDC @aa:24, CCR W 8 @aa:24 → CCR 10
STC STC CCR, Rd B 2 CCR → Rd8 — — — — — — 2
STC CCR, @ERd W 4 CCR → @ERd — — — — — — 6
STC CCR, @(d:16, ERd) W 6 CCR → @(d:16, ERd) — — — — — — 8
STC CCR, @(d:24, ERd) W 10 CCR → @(d:24, ERd) — — — — — — 12
STC CCR, @–ERd W 4 ERd32–2 → ERd32 — — — — — — 8
CCR → @ERd
@–ERn/@ERn+
Condition Code
Operand Size
Mnemonic Operation
@(d, ERn)
Advanced
@(d, PC)
Normal
@@aa
@ERn
@aa
#xx
Rn
—
I H N Z V C
Notes: 1. The number of states in cases where the instruction code and its operands are located
in on-chip memory is shown here. For other cases see section A.3, Number of
Execution States.
2. n is the value set in register R4L or R4.
(1) Set to 1 when a carry or borrow occurs at bit 11; otherwise cleared to 0.
(2) Set to 1 when a carry or borrow occurs at bit 27; otherwise cleared to 0.
(3) Retains its previous value when the result is zero; otherwise cleared to 0.
(4) Set to 1 when the adjustment produces a carry; otherwise retains its previous value.
(5) The number of states required for execution of an instruction that transfers data in
synchronization with the E clock is variable.
(6) Set to 1 when the divisor is negative; otherwise cleared to 0.
(7) Set to 1 when the divisor is zero; otherwise cleared to 0.
(8) Set to 1 when the quotient is negative; otherwise cleared to 0.
Instruction code: 1st byte 2nd byte Instruction when most significant bit of BH is 0.
AH AL BH BL
Instruction when most significant bit of BH is 1.
AL
0 1 2 3 4 5 6 7 8 9 A B C D E F
AH
Table A-2 Table A-2 Table A-2 Table A-2 Table A-2 Table A-2 Table A-2 Table A-2
1 OR.B XOR.B AND.B SUB CMP SUBX
(2) (2) (2) (2) (2) (2) (2) (2)
4 BRA BRN BHI BLS BCC BCS BNE BEQ BVC BVS BPL BMI BGE BLT BGT BLE
Table A-2
5 MULXU DIVXU MULXU DIVXU RTS BSR RTE TRAPA JMP BSR JSR
(2)
BST
6 OR XOR AND MOV
BIST
BSET BNOT BCLR BTST
BOR BXOR BAND BLD Table A-2 Table A-2 Table A-2
7 MOV EEPMOV
BIOR BIXOR BIAND BILD (2) (2) (3)
8 ADD
9 ADDX
A CMP
B SUBX
C OR
D XOR
E AND
F MOV
Instruction code: 1st byte 2nd byte
AH AL BH BL
BH
0 1 2 3 4 5 6 7 8 9 A B C D E F
AH AL
Table A-2 Table A-2 Table A-2
01 MOV LDC/STC SLEEP
(3) (3) (3)
0A INC ADD
0F DAA MOV
Table A.2 Operation Code Map (2)
1A DEC SUB
1F DAS CMP
58 BRA BRN BHI BLS BCC BCS BNE BEQ BVC BVS BPL BMI BGE BLT BGT BLE
CL
AH 0 1 2 3 4 5 6 7 8 9 A B C D E F
ALBH
BLCH
LDC LDC LDC LDC
01406
STC STC STC STC
7Cr06 * 1 BTST
7Eaa6 * 2 BTST
Execution states = I × SI + J × SJ + K × SK + L × SL + M × SM + N × SN
Examples: When instruction is fetched from on-chip ROM, and an on-chip RAM is accessed.
When instruction is fetched from on-chip ROM, branch address is read from on-chip ROM, and
on-chip RAM is used for stack area.
JSR @@ 30
ADD.B Rs, Rd 1
ADD.W #xx:16, Rd 2
ADD.W Rs, Rd 1
ADDX Rs, Rd 1
AND.B Rs, Rd 1
AND.W #xx:16, Rd 2
AND.W Rs, Rd 1
BHI d:8 2
BLS d:8 2
BNE d:8 2
BEQ d:8 2
BVC d:8 2
BVS d:8 2
BPL d:8 2
BMI d:8 2
BGE d:8 2
BGT d:8 2
BLE d:8 2
BHI d:16 2 2
BLS d:16 2 2
BNE d:16 2 2
BEQ d:16 2 2
BVC d:16 2 2
BVS d:16 2 2
BPL d:16 2 2
BMI d:16 2 2
BGE d:16 2 2
BLT d:16 2 2
BGT d:16 2 2
BLE d:16 2 2
BCLR Rn, Rd 1
BNOT Rn, Rd 1
BSET Rn, Rd 1
BSR d:16 2 1 2
BTST Rn, Rd 1
CMP.B Rs, Rd 1
CMP.W #xx:16, Rd 2
CMP.W Rs, Rd 1
DAA DAA Rd 1
DAS DAS Rd 1
DEC DEC.B Rd 1
DEC.W #1/2, Rd 1
EXTS EXTS.W Rd 1
EXTS.L ERd 1
EXTU EXTU.W Rd 1
EXTU.L ERd 1
INC INC.B Rd 1
INC.W #1/2, Rd 1
JMP @aa:24 2 2
JMP @@aa:8 2 1 2
JSR @aa:24 2 1 2
JSR @@aa:8 2 1 1
LDC@ERs, CCR 2 1
LDC@(d:24,ERs), CCR 5 1
LDC@ERs+, CCR 2 1 2
LDC@aa:16, CCR 3 1
LDC@aa:24, CCR 4 1
MOV.B Rs, Rd 1
MOV.B @ERs, Rd 1 1
MOV.B @ERs+, Rd 1 1 2
MOV.B @aa:8, Rd 1 1
MOV.B @aa:16, Rd 2 1
MOV.B @aa:24, Rd 3 1
MOV.W #xx:16, Rd 2
MOV.W Rs, Rd 1
MOV.W @ERs, Rd 1 1
MOV.W @(d:16,ERs), Rd 2 1
MOV.W @(d:24,ERs), Rd 4 1
MOV.W @ERs+, Rd 1 1 2
MOV.W @aa:16, Rd 2 1
MOV.W @aa:24, Rd 3 1
MOV.L ERs,@ERd 2 2
NEG NEG.B Rd 1
NEG.W Rd 1
NEG.L ERd 1
NOP NOP 1
NOT NOT.B Rd 1
NOT.W Rd 1
NOT.L ERd 1
OR OR.B #xx:8, Rd 1
OR.B Rs, Rd 1
OR.W #xx:16, Rd 2
OR.W Rs, Rd 1
POP POP.W Rn 1 1 2
POP.L ERn 2 2 2
PUSH PUSH.W Rn 1 1 2
PUSH.L ERn 2 2 2
ROTL ROTL.B Rd 1
ROTL.W Rd 1
ROTL.L ERd 1
ROTR ROTR.B Rd 1
ROTR.W Rd 1
ROTR.L ERd 1
ROTXL ROTXL.B Rd 1
ROTXL.W Rd 1
ROTXL.L ERd 1
ROTXR ROTXR.B Rd 1
ROTXR.W Rd 1
ROTXR.L ERd 1
RTE RTE 2 2 2
RTS RTS 2 1 2
SHAL SHAL.B Rd 1
SHAL.W Rd 1
SHAL.L ERd 1
SHAR SHAR.B Rd 1
SHAR.W Rd 1
SHAR.L ERd 1
SHLL SHLL.B Rd 1
SHLL.W Rd 1
SHLL.L ERd 1
SHLR SHLR.B Rd 1
SHLR.W Rd 1
SHLR.L ERd 1
SLEEP SLEEP 1
STC CCR,@-ERd 2 1 2
SUB.W #xx:16, Rd 2
SUB.W Rs, Rd 1
SUBX. Rs, Rd 1
XOR.B Rs, Rd 1
XOR.W #xx:16, Rd 2
XOR.W Rs, Rd 1
Note: 1. n:specified value in R4L and R4. The source and destination operands are accessed
n+1 times respectively.
2. Cannot be used in this LSI.
@ERn+/@ERn
@(d:16.ERn)
@(d:24.ERn)
@(d:16.PC)
@(d:8.PC)
Functions Instructions
@@aa:8
@aa:16
@aa:24
@ERn
@aa:8
#xx
Rn
—
Data MOV BWL BWL BWL BWL BWL BWL B BWL BWL — — — —
transfer POP, PUSH — — — — — — — — — — — — WL
instructions
MOVFPE, — — — — — — — — — — — — —
MOVTPE
Arithmetic ADD, CMP BWL BWL — — — — — — — — — — —
operations SUB WL BWL — — — — — — — — — — —
ADDX, SUBX B B — — — — — — — — — — —
ADDS, SUBS — L — — — — — — — — — — —
INC, DEC — BWL — — — — — — — — — — —
DAA, DAS — B — — — — — — — — — — —
MULXU, — BW — — — — — — — — — — —
MULXS,
DIVXU,
DIVXS
NEG — BWL — — — — — — — — — — —
EXTU, EXTS — WL — — — — — — — — — — —
Logical AND, OR, XOR — BWL — — — — — — — — — — —
operations NOT — BWL — — — — — — — — — — —
Shift operations — BWL — — — — — — — — — — —
Bit manipulations — B B — — — B — — — — — —
Branching BCC, BSR — — — — — — — — — — — — —
instructions JMP, JSR — — — — — — — — — —
RTS — — — — — — — — — — —
System TRAPA — — — — — — — — — — — —
control RTE — — — — — — — — — — — —
instructions
SLEEP — — — — — — — — — — — —
LDC B B W W W W — W W — — —
STC — B W W W W — W W — — — —
ANDC, ORC, B — — — — — — — — — — — —
XORC
NOP — — — — — — — — — — — —
Block data transfer instructions — — — — — — — — — — — — BW
PUCR
Pull-up MOS
PMR
PDR
PCR
TRGV
Legend
PUCR: Port pull-up control register
PMR: Port mode register
PDR: Port data register
PCR: Port control register
PUCR
Pull-up MOS
PMR
PDR
PCR
Legend
PUCR: Port pull-up control register
PMR: Port mode register
PDR: Port data register
PCR: Port control register
PUCR
Pull-up MOS
PDR
PCR
Legend
PUCR: Port pull-up control register
PDR: Port data register
PCR: Port control register
PUCR
Pull-up MOS
PDR
PCR
Legend
PUCR: Port pull-up control register
PDR: Port data register
PCR: Port control register
PMR
PDR
PCR
SCI3
TxD
Legend
PMR: Port mode register
PDR: Port data register
PCR: Port control register
PDR
PCR
SCI3
RE
RxD
Legend
PDR: Port data register
PCR: Port control register
SCKIE
SCKOE
Internal data bus
PDR
PCR
SCKO
SCKI
Legend
PDR: Port data register
PCR: Port control register
PMR
PDR
PCR
Legend
PMR: Port mode register
PDR: Port data register
PCR: Port control register
PUCR
Pull-up MOS
PMR
PDR
PCR
Legend
PUCR: Port pull-up control register
PMR: Port mode register
PDR: Port data register
PCR: Port control register
PUCR
Pull-up MOS
PMR
PDR
PCR
Legend
PUCR: Port pull-up control register
PMR: Port mode register
PDR: Port data register
PCR: Port control register
Timer V
OS3
OS2
OS1
OS0
PDR
PCR
TMOV
Legend
PDR: Port data register
PCR: Port control register
PDR
PCR
Timer V
TMCIV
Legend
PDR: Port data register
PCR: Port control register
PDR
PCR
Timer V
TMRIV
Legend
PDR: Port data register
PCR: Port control register
Timer W
Output
control
signals
A to D
PDR
PCR
FTIOA
FTIOB
FTIOC
FTIOD
Legend
PDR: Port data register
PCR: Port control register
PDR
PCR
Timer W
FTCI
Legend
PDR: Port data register
PCR: Port control register
A/D converter
DEC CH3 to CH0
VIN
Package
(Hitachi Package
Product Type Product Code Model Marking Code)
H8/3672 Flash memory Standard HD64F3672FP HD64F3672FP LQFP-64 (FP-64E)
version product
HD64F3672FX HD64F3672FX LQFP-48 (FP-48F)
Unit: mm
12.0 ± 0.2
10
48 33
49 32
12.0 ± 0.2
0.5
64 17
1 16
*0.22 ± 0.05
0.08 M
*0.17 ± 0.05
0.15 ± 0.04
0.20 ± 0.04 1.70 Max
1.25 1.0
1.45
0¡ Ð 8¡
0.10 ± 0.10
0.65
37 24
12.0 ± 0.2
48 13
1 12
1.425
*0.32 ± 0.05
0.13 M
0.30 ± 0.04
*0.17 ± 0.05
0.15 ± 0.04
1.65 Max
1.45
1.0
0 –8
0.1 ± 0.05
0.50 ± 0.1 0.10
0.5
37 24
9.0 ± 0.2
48 13
1 12
*0.22 ± 0.05
0.08 M
0.20 ± 0.04
*0.17 ± 0.05
0.15 ± 0.04
1.70 Max
1.40
0.75 1.0
0˚ – 8˚
44 43 42 41 40
Arrangement (FP-48F,
FP-48B)
34 33 32 31 30
H'F780 H'F780
(1-kbyte work area (1-kbyte work area
for flash memory for flash memory
programming&E10T) programming&E10T)
H'FB7F
LPM
OSC1
Item
Processing Contents Processing Contents
Operation
H'FF
Boot program Checks flash memory data, erases all flash
erase error memory blocks in case of written data
existing, and transmits data H'AA to host.
(If erase could not be done, transmits data
H'AA
H'AA reception H'FF to host and aborts operation.)
Transfer of number of bytes of
programming control program
H'AA
H'AA reception Transmits data H'AA to host when data H'55
is received.
Wait 1 µs
Set PSU bit in FLMCR1
m= 0
Flowchart Wait (Wait time=programming time)
Write 128-byte data in RAM reprogram
Clear P bit in FLMCR1 data area consecutively to flash memory
Wait 4 µs
Wait 5 µs
Set block start address as
Disable WDT verify address
n←n+1
Wait 2 µs *
Read verify data
Note: *The RTS instruction must not be used during the following 1. and 2. periods.
1. A period between 128-byte data programming to flash memory and the P bit clearing
2. A period between dummy writing of H'FF to a verify address and verify data reading
7.4.3 87 2.0
Interrupt Handling when
EV bit ← 1
Programming/Erasing Wait 20 µs
Note: *The RTS instruction must not be used during a period between dummy writing of H'FF to a verify address and verify data reading.
0: Output value is 0*
1: Output value is 1*
0: Output value is 0*
1: Output value is 1*
0: Output value is 0*
1: Output value is 1*
0: Output value is 0*
1: Output value is 1*
GRB
H'0000
Bit R/W
7 R/W
5 R/W
3 R/W
1 R/W
PMR
PDR
PCR