Do not use this product for mass production after the on-chip debug function has been used because its reliability cannot
be guaranteed, due to issues with respect to the number of times the flash memory can be rewritten. NEC Electronics
does not accept complaints concerning when use this product for mass production after the on-chip debug function has
been used.
Document No. U17554EJ4V0UD00 (4th edition)
Date Published March 2007 NS CP(K)
Printed in Japan
2005
[MEMO]
2
User’s Manual U17554EJ4V0UD
NOTES FOR CMOS DEVICES
1
VOLTAGE APPLICATION WAVEFORM AT INPUT PIN
Waveform distortion due to input noise or a reflected wave may cause malfunction. If the input of the
IL
CMOS device stays in the area between V
malfunction. Take care to prevent chattering noise from entering the device when the input level is fixed,
and also in the transition period when the input level passes through the area between V
IH
(MIN).
V
HANDLING OF UNUSED INPUT PINS
2
Unconnected CMOS device inputs can be cause of malfunction. If an input pin is unconnected, it is
possible that an internal input level may be generated due to noise, etc., causing malfunction. CMOS
devices behave differently than Bipolar or NMOS devices. Input levels of CMOS devices must be fixed
high or low by using pull-up or pull-down circuitry. Each unused pin should be connected to V
via a resistor if there is a possibility that it will be an output pin. All handling related to unused pins must
be judged separately for each device and according to related specifications governing the device.
3
PRECAUTION AGAINST ESD
A strong electric field, when exposed to a MOS device, can cause destruction of the gate oxide and
ultimately degrade the device operation. Steps must be taken to stop generation of static electricity as
much as possible, and quickly dissipate it when it has occurred. Environmental control must be
adequate. When it is dry, a humidifier should be used. It is recommended to avoid using insulators that
easily build up static electricity. Semiconductor devices must be stored and transported in an anti-static
container, static shielding bag or conductive material. All test and measurement tools including work
benches and floors should be grounded. The operator should be grounded using a wrist strap.
Semiconductor devices must not be touched with bare hands. Similar precautions need to be taken for
PW boards with mounted semiconductor devices.
(MAX) and VIH (MIN) due to noise, etc., the device may
IL
(MAX) and
DD
or GND
4
STATUS BEFORE INITIALIZATION
Power-on does not necessarily define the initial status of a MOS device. Immediately after the power
source is turned ON, devices with reset functions have not yet been initialized. Hence, power-on does
not guarantee output pin levels, I/O settings or contents of registers. A device is not initialized until the
reset signal is received. A reset operation must be executed immediately after power-on for devices
with reset functions.
5
POWER ON/OFF SEQUENCE
In the case of a device that uses different power supplies for the internal operation and external
interface, as a rule, switch on the external power supply after switching on the internal power supply.
When switching the power supply off, as a rule, switch off the external power supply and then the
internal power supply. Use of the reverse power on/off sequences may result in the application of an
overvoltage to the internal elements of the device, causing malfunction and degradation of internal
elements due to the passage of an abnormal current.
The correct power on/off sequence must be judged separately for each device and according to related
specifications governing the device.
6
INPUT OF SIGNAL DURING POWER OFF STATE
Do not input signals or an I/O pull-up power supply while the device is not powered. The current
injection that results from input of such a signal or I/O pull-up power supply may cause malfunction and
the abnormal current that passes in the device at this time may cause degradation of internal elements.
Input of signals during the power off state must be judged separately for each device and according to
related specifications governing the device.
User’s Manual U17554EJ4V0UD
3
EEPROM is trademark of NEC Electronics Corporation.
Windows and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the
United States and/or other countries.
PC/AT is a trademark of International Business Machines Corporation.
HP9000 series 700 and HP-UX are trademarks of Hewlett-Packard Company.
SPARCstation is a trademark of SPARC International, Inc.
Solaris and SunOS are trademarks of Sun Microsystems, Inc.
SuperFlash
is a registered trademark of Silicon Storage Technology, Inc. in several countries including the
United States and Japan.
Caution: This product uses SuperFlash
®
technology licensed from Silicon Storage Technology, inc.
•
The information in this document is current as of March, 2007. The information is subject to change
without notice. For actual design-in, refer to the latest publications of NEC Electronics data sheets or
data books, etc., for the most up-to-date specifications of NEC Electronics products. Not all
products and/or types are available in every country. Please check with an NEC Electronics sales
representative for availability and additional information.
•
No part of this document may be copied or reproduced in any form or by any means without the prior
written consent of NEC Electronics. NEC Electronics assumes no responsibility for any errors that may
appear in this document.
•
NEC Electronics does not assume any liability for infringement of patents, copyrights or other intellectual
property rights of third parties by or arising from the use of NEC Electronics products listed in this document
or any other liability arising from the use of such products. No license, express, implied or otherwise, is
granted under any patents, copyrights or other intellectual property rights of NEC Electronics or others.
Descriptions of circuits, software and other related information in this document are provided for illustrative
•
purposes in semiconductor product operation and application examples. The incorporation of these
circuits, software and information in the design of a customer's equipment shall be done under the full
responsibility of the customer. NEC Electronics assumes no responsibility for any losses incurred by
customers or third parties arising from the use of these circuits, software and information.
•
While NEC Electronics endeavors to enhance the quality, reliability and safety of NEC Electronics products,
customers agree and acknowledge that the possibility of defects thereof cannot be eliminated entirely. To
minimize risks of damage to property or injury (including death) to persons arising from defects in NEC
Electronics products, customers must incorporate sufficient safety measures in their design, such as
redundancy, fire-containment and anti-failure features.
•
NEC Electronics products are classified into the following three quality grades: "Standard", "Special" and
"Specific".
The "Specific" quality grade applies only to NEC Electronics products developed based on a customerdesignated "quality assurance program" for a specific application. The recommended applications of an NEC
Electronics product depend on its quality grade, as indicated below. Customers must check the quality grade of
each NEC Electronics product before using it in a particular application.
"Standard":
"Special":
"Specific":
Computers, office equipment, communications equipment, test and measurement equipment, audio
and visual equipment, home electronic appliances, machine tools, personal electronic equipment
and industrial robots.
Transportation equipment (automobiles, trains, ships, etc.), traffic control systems, anti-disaster
systems, anti-crime systems, safety equipment and medical equipment (not specifically designed
for life support).
Aircraft, aerospace equipment, submersible repeaters, nuclear reactor control systems, life
support systems and medical equipment for life support, etc.
The quality grade of NEC Electronics products is "Standard" unless otherwise expressly specified in NEC
Electronics data sheets or data books, etc. If customers wish to use NEC Electronics products in applications
not intended by NEC Electronics, they must contact an NEC Electronics sales representative in advance to
determine NEC Electronics' willingness to support a given application.
(Note)
(1)
"NEC Electronics" as used in this statement means NEC Electronics Corporation and also includes its
majority-owned subsidiaries.
(2)
"NEC Electronics products" means any product developed or manufactured by or for NEC Electronics (as
defined above).
4
User’s Manual U17554EJ4V0UD
M8E 02. 11-1
[MEMO]
User’s Manual U17554EJ4V0UD
5
INTRODUCTION
Readers This manual is intended for user engineers who wish to understand the functions of the
78K0/FE2 and design and develop application systems and programs for these devices.
The target products are as follows.
78K0/FE2:
Purpose This manual is intended to give users an understanding of the functions described in the
Organization below.
Organization The 78K0/FE2 manual are separated into two parts: this manual and the instructions
How to Read This Manual It is assumed that the readers of this manual have general knowledge of electrical
engineering, logic circuits, and microcontrollers.
• When using this manual as the manual for (A) and (A2) grade products:
→ Only the quality grade differs between (A) grade products and (A2) grade
products.
Read the part number as follows.
• μPD78F0887→ μPD78F0887 (A), 78F0887 (A2)
•
μ
PD78F0888→ μPD78F0888 (A), 78F0888 (A2)
•
μ
PD78F0889→ μPD78F0889 (A), 78F0889 (A2)
•
μ
PD78F0890→ μPD78F0890 (A), 78F0890 (A2)
• To gain a general understanding of functions:
→ Read this manual in the order of the CONTENTS. The mark <R> shows major
revised points.
• How to interpret the register format:
→ For a bit number enclosed in brackets, the bit name is defined as a reserved word
in the assembler, and is already defined in the header file named sfrbit.h in the C
compiler.
• To check the details of a register when you know the register name:
→ Refer to APPENDIX C REGISTER INDEX.
ConventionsData significance: Higher digits on the left and lower digits on the right Active low representations: ××× (overscore over pin and signal name)
Note: Footnote for item marked with Note in the text.
Caution: Information requiring particular attention
Remark: Supplementary information
Numerical representations: Binary
Decimal
Hexadecimal
78K/0 Series
User’s Manual
Instructions
• CPU functions
• Instruction set
• Explanation of each instruction
...
×××× or ××××B
...
××××
...
××××H
6
User’s Manual U17554EJ4V0UD
Related DocumentsThe related documents indicated in this publication may include preliminary versions.
However, preliminary versions are not marked as such.
Documents Related to Devices
Document Name Document No.
78K0/FE2 User’s Manual This manual
78K/0 Series Instructions User’s Manual U12326E
Documents Related to Development Tools (Software) (User’s Manuals)
2.2.16 VDD and EVDD .................................................................................................................................. 36
2.2.17 VSS and EVSS................................................................................................................................... 36
3.2.1 Control registers ................................................................................................................................ 56
3.4.3 Direct addressing ...............................................................................................................................73
3.4.4 Short direct addressing ......................................................................................................................74
3.4.5 Special function register (SFR) addressing........................................................................................75
3.4.7 Based addressing ..............................................................................................................................77
3.4.8 Based indexed addressing.................................................................................................................78
4.4.1 Referencing values between memory banks .....................................................................................83
4.4.2 Branching instruction between memory banks...................................................................................85
4.4.3 Subroutine call between memory banks ............................................................................................87
4.4.4 Instruction branch to bank area by interrupt.......................................................................................89
CHAPTER 5 PORT FUNCTIONS ........................................................................................................... 91
5.1 Port Functions.............................................................................................................................. 91
5.2 Port Configuration ....................................................................................................................... 92
5.2.1 Port 0 .................................................................................................................................................93
5.2.2 Port 1 .................................................................................................................................................95
5.2.3 Port 3 .................................................................................................................................................98
5.2.4 Port 4 ...............................................................................................................................................100
5.2.5 Port 5 ...............................................................................................................................................101
5.2.6 Port 6 ...............................................................................................................................................102
5.2.7 Port 7 ...............................................................................................................................................103
5.2.8 Port 8 ...............................................................................................................................................108
5.2.9 Port 9 ...............................................................................................................................................109
5.2.10 Port 12 ...........................................................................................................................................110
5.2.11 Port 13 ...........................................................................................................................................113
5.3 Registers Controlling Port Function ........................................................................................ 116
5.4 Port Function Operations.......................................................................................................... 123
5.4.1 Writing to I/O port.............................................................................................................................123
5.4.2 Reading from I/O port.......................................................................................................................123
5.4.3 Operations on I/O port......................................................................................................................123
5.5 Cautions on 1-Bit Manipulation Instruction for Port Register n (Pn).................................... 124
16.1.1 Features .........................................................................................................................................378
16.1.2 Overview of functions .....................................................................................................................379
16.3.1 Determining bus priority .................................................................................................................392
16.3.2 Bit stuffing ......................................................................................................................................392
16.3.3 Multi masters..................................................................................................................................392
16.3.4 Multi cast ........................................................................................................................................392
16.3.5 CAN sleep mode/CAN stop mode function ....................................................................................392
16.3.6 Error control function ......................................................................................................................393
16.3.7 Baud rate control function ..............................................................................................................399
16.4 Connection with Target System.............................................................................................. 403
16.5 Internal Registers of CAN Controller...................................................................................... 404
16.5.1 CAN controller configuration...........................................................................................................404
16.5.2 Register access type ......................................................................................................................405
16.5.3 Register bit configuration................................................................................................................414
16.6 Bit Set/Clear Function.............................................................................................................. 418
16.7 Control Registers ..................................................................................................................... 420
16.8 CAN Controller Initialization.................................................................................................... 455
16.8.1 Initialization of CAN module ...........................................................................................................455
16.8.2 Initialization of message buffer.......................................................................................................455
16.8.3 Redefinition of message buffer.......................................................................................................455
16.8.4 Transition from initialization mode to operation mode ....................................................................456
16.8.5 Resetting error counter C0ERC of CAN module ............................................................................457
17.4.4 Interrupt request hold .....................................................................................................................536
CHAPTER 18 STANDBY FUNCTION .................................................................................................. 537
18.1 Standby Function and Configuration..................................................................................... 537
18.1.1 Standby function ............................................................................................................................537
18.2 Standby Function Operation................................................................................................... 540
18.2.1 HALT mode....................................................................................................................................540
24.6.2 Serial interface pins........................................................................................................................607
24.6.4 Port pins .........................................................................................................................................609
24.6.6 Other signal pins ............................................................................................................................609
24.6.7 Power supply..................................................................................................................................610
ANI0 to ANI11 Input A/D converter analog input Input P80 to P87
CTxD Input CAN transmit data output Input P70
CRxD Output CAN receive data input Input P71
AVREF Input
AVSS
RESET Input System reset input
X1 Input Input P121
X2
XT1 Input Input P123
XT2
EXCLK Input External clock input for main system clock Input P122/X2
EXCLKS Input External clock input for subsystem clock Input P124/XT2
EXLVI Input Potential input for external low-voltage detection Input P120/INTP0
VDD
EVDD
VSS
EVSS
FLMD0
REGC
Input
Output
−
−
−
−
−
−
−
−
−
External count clock input to 8-bit timer/event counter 51
8-bit timer H1 output
Clock output (for trimming of high-speed system clock,
subsystem clock)
A/D converter reference voltage input and positive power
supply for port 2
A/D converter ground potential. Make the same potential as
SS or VSS.
EV
Connecting resonator for high-speed system clock
Connecting resonator for subsystem clock
Positive power supply (except for ports)
Positive power supply for ports
Ground potential (except for ports)
Ground potential for ports
Flash memory programming mode setting.
Input
P33/TO51/INTP4
Input
P16/INTP5
Input P72/INTP6
P90 to P93
− −
− −
− −
Input P122/EXCLK
Input P124/EXCLKS
− −
− −
− −
− −
− −
User’s Manual U17554EJ4V0UD
29
CHAPTER 2 PIN FUNCTIONS
2.2 Description of Pin Functions
2.2.1 P00, P01, P05, P06 (port 0)
P00, P01, P05 and P06 function as a 4-bit I/O port. These pins also function as timer I/O and serial interface chip
select input.
The following operation modes can be specified in 1-bit units.
(1) Port mode
P00, P01, P05 and P06 function as 4-bit I/O port. P00, P01, P05 and P06 can be set to input or output in 1-bit
units using port mode register 0 (PM0). Use of an on-chip pull-up resistor can be specified by pull-up resistor
option register 0 (PU0).
(2) Control mode
P00, P01, P05 and P06 function as timer I/O, and serial interface chip select input.
(a) TI000, TI001
These are the pins for inputting an external count clock to 16-bit timer/event counters 00 and 01 and are also
for inputting a capture trigger signal to the capture registers (CR000, CR010 or CR001, CR011) of 16-bit
timer/event counters 00 and 01.
(b) TI010, TI011
These are the pins for inputting a capture trigger signal to the capture register (CR000 or CR001) of 16-bit
timer/event counters 00 and 01.
(c) TO00, TO01
These are timer output pins.
(d) SSI11
This is the serial interface chip select input pin.
30
User’s Manual U17554EJ4V0UD
CHAPTER 2 PIN FUNCTIONS
2.2.2 P10 to P17 (port 1)
P10 to P17 function as an 8-bit I/O port. These pins also function as pins for external interrupt request input, serial
interface data I/O, clock I/O, and timer I/O.
The following operation modes can be specified in 1-bit units.
(1) Port mode
P10 to P17 function as an 8-bit I/O port. P10 to P17 can be set to input or output in 1-bit units using port mode
register 1 (PM1). Use of an on-chip pull-up resistor can be specified by pull-up resistor option register 1 (PU1).
(2) Control mode
P10 to P17 function as external interrupt request input, serial interface data I/O, clock I/O, timer I/O.
(a) SI10
This is a serial interface serial data input pin.
(b) SO10
This is a serial interface serial data output pin.
(c) SCK10
This is a serial interface serial clock I/O pin.
(d) RxD60, RxD61
These are the serial data input pins of the asynchronous serial interface.
(e) TxD60, TxD61
These are the serial data output pins of the asynchronous serial interface.
(f) TI50
This is the pin for inputting an external count clock to 8-bit timer/event counter 50.
(g) TO50, TOH0, and TOH1
These are timer output pins.
(h) INTP5
This is an external interrupt request input pin for which the valid edge (rising edge, falling edge, or both rising
and falling edges) can be specified.
User’s Manual U17554EJ4V0UD
31
CHAPTER 2 PIN FUNCTIONS
2.2.3 P30 to P33 (port 3)
P30 to P33 function as a 4-bit I/O port. These pins also function as pins for external interrupt request input and
timer I/O.
The following operation modes can be specified in 1-bit units.
(1) Port mode
P30 to P33 function as a 4-bit I/O port. P30 to P33 can be set to input or output in 1-bit units using port mode
register 3 (PM3). Use of an on-chip pull-up resistor can be specified by pull-up resistor option register 3 (PU3).
(2) Control mode
P30 to P33 function as external interrupt request input pins and timer I/O pins.
(a) INTP1 to INTP4
These are the external interrupt request input pins for which the valid edge (rising edge, falling edge, or both
rising and falling edges) can be specified.
(b) TI002
This is the pin for inputting an external count clock to 16-bit timer/event counter 02 and is also for inputting a
capture trigger signal to the capture registers (CR002, CR012) of 16-bit timer/event counter 02.
(c) TI012
This is the pin for inputting a capture trigger signal to the capture register (CR002) of 16-bit timer/event
counter 02.
(d) TO02
This is a timer output pin.
(e) TI51
This is an external count clock input pin to 8-bit timer/event counter 51.
(f) TO51
This is a timer output pin.
Cautions 1. Be sure to pull the P31/TI002/INTP2 pin down before a reset release, to prevent malfunction.
2. Connect P31/TI002/INTP2 as follows when writing the flash memory with a flash programmer.
- P31/TI002/INTP2: Connect to EV
SS via a resistor (10 kΩ: recommended).
The above connection is not necessary when writing the flash memory by means of self
programming.
Remark P31/TI002/INTP2 and P32/TI012/TO02/INTP3 can be used as on-chip debug mode setting pins when
the on-chip debug function is used. For details, refer to CHAPTER 25 ON-CHIP DEBUG FUNCTION.
2.2.4 P40 to P43 (port 4)
P40 to P43 function as a 4-bit I/O port. P40 to P43 can be set to input or output in 1-bit units using port mode
register 4 (PM4). Use of an on-chip pull-up resistor can be specified by pull-up resistor option register 4 (PU4).
32
User’s Manual U17554EJ4V0UD
CHAPTER 2 PIN FUNCTIONS
2.2.5 P50 to P53 (port 5)
P50 to P53 function as a 4-bit I/O port. P50 to P53 can be set to input or output in 1-bit units using port mode
register 5 (PM5). Use of an on-chip pull-up resistor can be specified by pull-up resistor option register 5 (PU5).
2.2.6 P60 to P63 (port 6)
P60 to P63 function as a 4-bit I/O port. P60 to P63 can be set to input port or output port in 1-bit units using port
mode register 6 (PM6).
P60 to P63 are N-ch open-drain pins.
2.2.7 P70 to P76 (port 7)
P70 to P76 function as a 7-bit I/O port. These pins also function as external interrupt request input, clock output
pins, buzzer output pins, CAN I/F I/O, serial interface data I/O and clock I/O.
The following operation modes can be specified in 1-bit units.
(1) Port mode
P70 to P76 function as a 7-bit I/O port. P70 to P76 can be set to input or output in 1-bit units using port mode
register 7 (PM7). Use of an on-chip pull-up resistor can be specified by pull-up resistor option register 7 (PU7).
(2) Control mode
P70 to P77 function as external interrupt request input, output pins, buzzer output pins, CAN I/F I/O, serial
interface data I/O and clock I/O.
(a) INTP6, INTP7
These are the external interrupt request input pins for which the valid edge (rising edge, falling edge, or both
rising and falling edges) can be specified.
(b) CRxD
This is the CAN serial receive data input pin.
(c) CTxD
This is the CAN serial transmit data output pin.
(d) PCL
This is a clock output pin.
(e) BUZ
This is a buzzer output pin.
(f) SI11
This is a serial interface serial data input pin.
(g) SO11
This is a serial interface serial data output pin.
(h) SCK11
This is the serial interface serial clock I/O pin.
User’s Manual U17554EJ4V0UD
33
CHAPTER 2 PIN FUNCTIONS
2.2.8 P80 to P87 (port 8)
P80 to P87 function as an 8-bit I/O port. These pins also function as pins for A/D converter analog input.
The following operation modes can be specified in 1-bit units.
(1) Port mode
P80 to P87 function as an 8-bit I/O port. P80 to P87 can be set to input or output in 1-bit units using port mode
register 8 (PM8).
(2) Control mode
P80 to P87 function as A/D converter analog input pins (ANI0 to ANI7). When using these pins as analog input
pins, see (5) P80/ANI0 to P87/ANI7, P90/ANI8 to P93/ANI11 in 13.6 Cautions for A/D Converter.
Caution P80/ANI0 to P87/ANI7 is set in the analog input mode after release of reset.
2.2.9 P90 to P93 (port 9)
P90 to P93 function as an 4-bit I/O port. These pins also function as pins for A/D converter analog input.
The following operation modes can be specified in 1-bit units.
(1) Port mode
P90 to P93 function as an 4-bit I/O port. P90 to P93 can be set to input or output in 1-bit units using port mode
register 9 (PM9).
(2) Control mode
P90 to P93 function as A/D converter analog input pins (ANI8 to ANI11). When using these pins as analog input
pins, see (5) P80/ANI0 to P87/ANI7, P90/ANI8 to P93/ANI11 in 13.6 Cautions for A/D Converter.
Caution P90/ANI8 to P93/ANI11 is set in the analog input mode after release of reset.
2.2.10 P120 to P124 (port 12)
P120 to P124 function as a 5-bit I/O port. These pins also function as pins for external interrupt request input,
external clock input for main system clock, external clock input for subsystem clock and potential input for external
low-voltage detection. The following operation modes can be specified in 1-bit units.
(1) Port mode
P120 to P124 function as a 5-bit I/O port. P120 to P124 can be set to input or output using port mode register 12
(PM12). Only for P120, use of an on-chip pull-up resistor can be specified by pull-up resistor option register 12
(PU12).
(2) Control mode
P120 to P124 function as pins for external interrupt request input, potential input for external low-voltage
detection, resonator connection for main system clock, resonator connection for subsystem clock, external clock
input for main system clock and external clock input for subsystem clock.
(a) INTP0
This functions as an external interrupt request input for which the valid edge (rising edge, falling edge, or
both rising and falling edges) can be specified.
34
User’s Manual U17554EJ4V0UD
CHAPTER 2 PIN FUNCTIONS
(b) EXLVI
This is a potential input pin for external low-voltage detection.
(c) X1, X2
These are the pins for connecting a resonator for high-speed system clock.
When supplying an external clock, input a signal to the X1 pin and input the inverse signal to the X2 pin.
Caution Connect P121/X1 as follows when writing the flash memory with a flash programmer.
- P121/X1: When using this pin as a port, connect it to V
SS via a resistor (10 kΩ:
recommended) (in the input mode) or leave it open (in the output mode).
The above connection is not necessary when writing the flash memory by means of self
programming.
Remark The X1 and X2 pins can be used as on-chip debug mode setting pins when the on-chip debug
function is used. For details, refer to CHAPTER 25 ON-CHIP DEBUG FUNCTION.
(d) EXCLK
This is an external clock input pin for main system clock.
(e) XT1, XT2
These are the pins for connecting a resonator for subsystem clock.
When supplying an external clock, input a signal to the XT1 pin and input the inverse signal to the XT2 pin.
(f) EXCLKS
This is an external clock input pin for subsystem clock.
2.2.11 P130 to P132 (port 13)
P130 functions as a 1-bit output-only port. P131 and P132 function as a 2-bit I/O port. These pins also function as
pins for timer I/O. The following operation modes can be specified in 1-bit units.
(1) Port mode
P131 and P132 can be set to input or output in 1 bit units using port mode register 13 (PM13). P131 and P132 use
of an on-chip pull-up resistor can be specified by pull-up resistor option register 13 (PU13).
(2) Control mode
P130, P131 and P132 function as timer I/O and serial interface chip select input.
(a) TI003
This is the pin for inputting an external count clock to 16-bit timer/event counter 03 and is also for inputting a
capture trigger signal to the capture registers (CR003, CR013) of 16-bit timer/event counter 03.
(b) TI013
This is the pin for inputting a capture trigger signal to the capture register (CR003) of 16-bit timer/event
counter 03.
(c) TO03
This is a timer output pin.
User’s Manual U17554EJ4V0UD
35
CHAPTER 2 PIN FUNCTIONS
2.2.12 AVREF
This is the A/D converter reference voltage input pin.
When the A/D converter is not used, connect this pin directly to EV
DD or VDD
Note
.
Note Connect port 8 and port 9 directly to EVDD when it is used as a digital port.
2.2.13 AVSS
This is the A/D converter ground potential pin. Even when the A/D converter is not used, always use this pin with
the same potential as the EV
SS pin or VSS pin.
2.2.14 RESET
This is the active-low system reset input pin.
2.2.15 REGC
This is the pin for connecting regulator output (2.5 V) stabilization capacitance for internal operation. Connect this
pin to V
SS via a capacitor (0.47 to 1 µF: recommended).
REGC
SS
V
Caution Keep the wiring length as short as possible for the broken-line part in the above figure.
2.2.16 V
DD and EVDD
DD is the positive power supply pin for other than ports.
V
EVDD is the positive power supply pin for ports.
2.2.17 V
SS and EVSS
SS is the ground potential pin for other than ports.
V
SS is the ground potential pin for ports.
EV
2.2.18 FLMD0
This is a pin for setting flash memory programming mode.
Connect to EV
SS or VSS in the normal operation mode. In flash memory programming mode, be sure to connect
this pin to the flash programmer.
36
User’s Manual U17554EJ4V0UD
CHAPTER 2 PIN FUNCTIONS
2.3 Pin I/O Circuits and Recommended Connection of Unused Pins
Table 2-4 shows the types of pin I/O circuits and the recommended connections of unused pins.
Refer to Figure 2-1 for the configuration of the I/O circuit of each type.
Table 2-4. Pin I/O Circuit Types (1/2)
Pin Name I/O Circuit
I/O Recommended Connection of Unused Pins
Type
P00/TI000
P01/TI010/TO00
P05/SSI11/TI001
5-AH
I/O
Input: Independently connect to EV
EV
Output: Leave open.
P06/TI011/TO01
P10/SCK10/TxD61
P11/SI10/RxD61
P12/SO10
5-H
P13/TxD60
P14/RxD60 5-AH
P15/TOH0 5-H
P16/TOH1/INTP5
5-AH
P17/TI50/TO50
P30/INTP1
P31/TI002/INTP2
Note
P32/TI012/TO02/INTP3
P33/TI51/TO51/INTP4
P40 to P43
5-H
P50 to P53
P60 to P63 13-P
Input: Connect to EVSS.
Output: Leave this pin open at low-level
output after clearing the output latch of the
port to 0.
DD or
SS via a resistor.
P70/CTxD 5-H
P71/CRxD
5-AH
P72/PCL/INTP6
Input: Independently connect to EV
EV
SS via a resistor.
Output: Leave open.
DD or
P73/BUZ/INTP7
P74/SO11 5-H
P75/SI11
5-AH
P76/SCK11
Note Connect P31/TI002/INTP2 as follows when writing the flash memory with a flash
programmer.
- P31/TI002/INTP2: Connect to EV
SS via a resistor (10 kΩ: recommended).
The above connection is not necessary when writing the flash memory by means of self
programming.
User’s Manual U17554EJ4V0UD
37
CHAPTER 2 PIN FUNCTIONS
Table 2-4. Pin I/O Circuit Types (2/2)
Pin Name I/O Circuit
I/O Recommended Connection of Unused Pins
Type
P80/ANI0 to P87/ANI7
P90/ANI8 to P93/ANI11
Note 1
Note 1
11-G I/O
<Analog setting>
Connect to AV
REF or AVSS.
<Digital setting>
Input: Independently connect to EV
SS via a resistor.
EV
DD or
Output: Leave open.
P120/INTP0/EXLVI 5-AH I/O Input: Independently connect to EVDD or
EV
SS via a resistor.
Output: Leave open.
P121/X1
P122/X2/EXCLK
P123/XT1
Note 2, 3
Note 2
Note 2
P124/XT2/EXCLKS
Note 2
37 I/O Input: Independently connect to EV
EV
SS via a resistor.
Output: Leave open.
DD or
P130 3-C Output Leave open.
P131/TI003
5-AH I/O Input: Independently connect to EV
EV
SS via a resistor.
DD or
Output: Leave open.
P132/TI013/TO03
RESET 2 Input Connect to EVDD or VDD.
AVREFConnect directly to EVDD or VDD
−−
Note 4
.
AVSSConnect directly to EVSS or VSS.
FLMD0
Connect to EVSS or VSS.
Notes 1. P80/ANI0 to P87/ANI7 and P90/ANI8 to P93/ANI11 are set in the analog input mode
after release of reset.
2. Use the recommended connection above in I/O port mode (see Figure 6-6 Format
of Clock Operation Mode Select Register (OSCCTL)) when these pins are not
used.
3. Connect P121/X1 as follows when writing the flash memory with a flash programmer.
- P121/X1: When using this pin as a port, connect it to V
SS via a resistor (10 kΩ:
recommended) (in the input mode) or leave it open (in the output mode).
The above connection is not necessary when writing the flash memory by means of
self programming.
4. Connect port 8 and port 9 directly to EV
DD when it is used as a digital port.
38
User’s Manual U17554EJ4V0UD
CHAPTER 2 PIN FUNCTIONS
Figure 2-1. Pin I/O Circuit List (1/2)
Type 2
Type 5-H
EV
DD
IN
Schmitt-triggered input with hysteresis characteristics
Type 3-C
EV
DD
P-ch
Data
OUT
N-ch
Vss0
Pullup
enable
Output
data
Output
disable
Input
enable
Type 11-G
Data
Output
disable
Comparator
(threshold voltage)
+
_
AV
REF
AV
P-ch
DD
EV
P-ch
IN/OUT
N-ch
EVss
REF
AV
P-ch
IN/OUT
N-ch
AV
SS
P-ch
N-ch
SS
Type 5-AH
Pull-up
enable
Data
Output
disable
Input
enable
EV
EV
DD
P-ch
N
SS
-ch
EV
DD
P-ch
IN/OUT
Input enable
Type 13-P
Data
Output disable
input enable
IN/OUT
N-ch
EVss
User’s Manual U17554EJ4V0UD
39
CHAPTER 2 PIN FUNCTIONS
Figure 2-1. Pin I/O Circuit List (2/2)
EV
DD
Data
Output
disable
Input
enable
P-ch
N
-ch
X1,
XT1
40
User’s Manual U17554EJ4V0UD
CHAPTER 3 CPU ARCHITECTURE
3.1 Memory Space
Products in the 78K0/FE2 can each access a 64 KB memory space. Figures 3-1 to 3-4 show the memory map.
Caution Regardless of the internal memory capacity, the initial values of the internal memory size
switching register (IMS) and internal expansion RAM size switching register (IXS) of the
78K0/FE2 is fixed (IMS = CFH, IXS = 0CH). Therefore, set the value corresponding to each
product as indicated below.
Table 3-1. Set Values of Internal Memory Size Switching Register (IMS)
and Internal Expansion RAM Size Switching Register (IXS)
Flash Memory Version IMS IXS
μ
PD78F0887
μ
PD78F0888 CFH 08H
μ
PD78F0889
μ
PD78F0890
Note The μPD78F0889 and μPD78F0890 have internal ROMs of 96 KB and 128
CCH 08H
Note
CCH
04H
Note
CCH
00H
KB, respectively. However, the set value of IMS of these devices is the same
as those of the 48 KB product because banks are used. For how to set the
banks, see 4.3 Memory Bank Select Register (BANK).
User’s Manual U17554EJ4V0UD
41
CHAPTER 3 CPU ARCHITECTURE
Figure 3-1. Memory Map (μPD78F0887)
Data memory
space
RAM space in
which instruction
can be fetched
Program
memory space
FFFFH
FF00H
FEFFH
FEE0H
FEDFH
FB00H
FAFFH
FA00H
F9FFH
F800H
F7FFH
F000H
EFFFH
C000H
BFFFH
0190H
018FH
0083H
0082H
0000H
Special function registers
(SFR)
256 × 8 bits
General-purpose
registers
32 × 8 bits
Internal high-speed RAM
1024 × 8 bits
Note 1
AFCAN area
(256 × 8 bits)
Reserved
Internal expansion RAM
2048 × 8 bits
Reserved
Flash memory
49152 × 8 bits
Note 2
FF20H
FF1FH
FE20H
FE1FH
FE10H
FE0FH
Short direct
addressing
BFFFH
1085H
1084H
1080H
107FH
1000H
0FFFH
0800H
07FFH
0085H
0084H
0080H
007FH
0040H
003FH
0000H
Program area
Option byte area
5 × 8 bits
Program area
CALLF entry area
2048 × 8 bits
Program area
1915 × 8 bits
Option byte area
5 × 8 bits
CALLT table area
64 × 8 bits
Vector table area
64 × 8 bits
Note 3
Note 3
1FFFH
Boot cluster 1
Boot cluster 0
Notes 1. During on-chip debugging, use of this area is disabled since it is used as the user data backup area for
communication.
2. During on-chip debugging, use of this area is disabled since it is used as the communication command
area (269 bytes).
3. When boot swap is not used: Set the option bytes to 0080H to 0084H.
When boot swap is used: Set the option bytes to 0080H to 0084H and 1080H to 1084H.
4. Writing boot cluster 0 can be prohibited depending on the setting of security (see 24.8 Security
Setting).
Remark The flash memory is divided into blocks (one block = 1 KB). For the address values and block numbers,
see Table 3-2 Correspondence Between Address Values and Block Numbers in Flash Memory.
BFFFH
EC00H
EBFFH
Block 2FH
Note 4
42
07FFH
0400H
03FFH
0000H
Block 01H
Block 00H
User’s Manual U17554EJ4V0UD
1 KB
CHAPTER 3 CPU ARCHITECTURE
Figure 3-2. Memory Map (μPD78F0888)
Data memory
space
RAM space in
which instruction
can be fetched
Program
memory space
FFFFH
FF00H
FEFFH
FEE0H
FEDFH
FB00H
FAFFH
FA00H
F9FFH
F800H
F7FFH
F000H
EFFFH
0190H
018FH
0083H
0082H
0000H
Special function registers
(SFR)
256 × 8 bits
General-purpose
registers
32 × 8 bits
Internal high-speed RAM
1024 × 8 bits
Note 1
AFCAN area
(256 × 8 bits)
Reserved
Internal expansion RAM
2048 × 8 bits
Flash memory
61440 × 8 bits
Note 2
FF20H
FF1FH
FE20H
FE1FH
FE10H
FE0FH
Short direct
addressing
EFFFH
1085H
1084H
1080H
107FH
1000H
0FFFH
0800H
07FFH
0085H
0084H
0080H
007FH
0040H
003FH
0000H
Program area
Option byte area
5 × 8 bits
Program area
CALLF entry area
2048 × 8 bits
Program area
1915 × 8 bits
Option byte area
5 × 8 bits
CALLT table area
64 × 8 bits
Vector table area
64 × 8 bits
Note 3
Note 3
1FFFH
Boot cluster 1
Boot cluster 0
Notes 1. During on-chip debugging, use of this area is disabled since it is used as the user data backup area for
communication.
2. During on-chip debugging, use of this area is disabled since it is used as the communication command
area (269 bytes).
3. When boot swap is not used: Set the option bytes to 0080H to 0084H.
When boot swap is used: Set the option bytes to 0080H to 0084H and 1080H to 1084H.
4. Writing boot cluster 0 can be prohibited depending on the setting of security (see 24.8 Security
Setting).
Remark The flash memory is divided into blocks (one block = 1 KB). For the address values and block numbers,
see Table 3-2 Correspondence Between Address Values and Block Numbers in Flash Memory.
EFFFH
EC00H
EBFFH
Block 3BH
Note 4
07FFH
0400H
03FFH
0000H
Block 01H
Block 00H
User’s Manual U17554EJ4V0UD
1 KB
43
CHAPTER 3 CPU ARCHITECTURE
Figure 3-3. Memory Map (μPD78F0889)
Data memory
space
RAM space in
which instruction
can be fetched
Program
memory space
FFFFH
FF00H
FEFFH
FEE0H
FEDFH
FB00H
FAFFH
FA00H
F9FFH
F800H
F7FFH
E800H
E7FFH
C000H
BFFFH
8000H
7FFFH
0190H
018FH
0083H
0082H
0000H
Special function
registers (SFR)
256 × 8 bits
General-purpose
registers
32 × 8 bits
Internal high-speed RAM
1024 × 8 bits
Note 1
AFCAN area
256 × 8 bits
Reserved
Internal expansion RAM
4096 × 8 bits
Reserved
Flash memory
16384 × 8 bits
(bank 0)
Flash memory
32768 × 8 bits
(common)
Note 2
FF20H
FF1FH
Short direct
addressing
FE20H
FE1FH
FE10H
FE0FH
16384 × 8 bits
(bank 2)
16384 × 8 bits
(bank 3)
16384 × 8 bits
(bank 1)
7FFFH
1085H
1084H
1080H
107FH
1000H
0FFFH
0800H
07FFH
0085H
0084H
0080H
007FH
0040H
003FH
0000H
Program area
Option byte area
5 × 8 bits
Program area
CALLF entry area
2048 × 8 bits
Program area
1915 × 8 bits
Option byte area
5 × 8 bits
CALLT table area
64 × 8 bits
Vector table area
64 × 8 bits
Note 3
Note 3
1FFFH
Boot cluster 1
Boot cluster 0
Note 4
Notes 1. During on-chip debugging, use of this area is disabled since it is used as the user data backup area for
communication.
2. During on-chip debugging, use of this area is disabled since it is used as the communication command
area (269 bytes).
3. When boot swap is not used: Set the option bytes to 0080H to 0084H.
When boot swap is used: Set the option bytes to 0080H to 0084H and 1080H to 1084H.
4. Writing boot cluster 0 can be prohibited depending on the setting of security (see 24.8 Security
Setting).
Remark The flash memory is divided into blocks (one block = 1 KB). For the address values and block numbers,
see Table 3-2 Correspondence Between Address Values and Block Numbers in Flash Memory.
44
(Memory bank 0)
Block 2FH
Block 20H
Block 1FH
Block 01H
Block 00H
Bank
area
Common
area
BBFFH
7C00H
7BFFH
1 KB
BFFFH
BC00H
84FFH
83FFH
8000H
7FFFH
07FFH
0400H
03FFH
0000H
(Memory bank 1)
Block 3FH
Block 30H
(Memory bank 2)
Block 4FH
Block 40H
User’s Manual U17554EJ4V0UD
(Memory bank 3)
Block 5FH
Block 50H
CHAPTER 3 CPU ARCHITECTURE
Figure 3-4. Memory Map (μPD78F0890)
Data memory
space
RAM space in
which instruction
can be fetched
Program
memory space
FFFFH
FF00H
FEFFH
FEE0H
FEDFH
FB00H
FAFFH
FA00H
F9FFH
F800H
F7FFH
E000H
DFFFH
C000H
BFFFH
8000H
7FFFH
0190H
018FH
0083H
0082H
0000H
Special function
registers (SFR)
256 × 8 bits
General-purpose
registers
32 × 8 bits
Internal high-speed RAM
1024 × 8 bits
Note 1
AFCAN area
256 × 8 bits
Reserved
Internal expansion RAM
6144 × 8 bits
Reserved
Flash memory
16384 × 8 bits
(bank 0)
Flash memory
32768 × 8 bits
(common)
Note 2
FF20H
FF1FH
Short direct
addressing
FE20H
FE1FH
FE10H
FE0FH
16384 × 8 bits
(bank 4)
16384 × 8 bits
(bank 2)
16384 × 8 bits
(bank 5)
16384 × 8 bits
(bank 3)
16384 × 8 bits
(bank 1)
7FFFH
1085H
1084H
1080H
107FH
1000H
0FFFH
0800H
07FFH
0085H
0084H
0080H
007FH
0040H
003FH
0000H
Program area
Option byte area
5 × 8 bits
Program area
CALLF entry area
2048 × 8 bits
Program area
1915 × 8 bits
Option byte area
5 × 8 bits
CALLT table area
64 × 8 bits
Vector table area
64 × 8 bits
Note 3
Note 3
1FFFH
Boot cluster 1
Boot cluster 0
Note 4
Notes 1. During on-chip debugging, use of this area is disabled since it is used as the user data backup area for
communication.
2. During on-chip debugging, use of this area is disabled since it is used as the communication command
area (269 bytes).
3. When boot swap is not used: Set the option bytes to 0080H to 0084H.
When boot swap is used: Set the option bytes to 0080H to 0084H and 1080H to 1084H.
4. Writing boot cluster 0 can be prohibited depending on the setting of security (see 24.8 Security
Setting).
Remark The flash memory is divided into blocks (one block = 1 KB). For the address values and block numbers,
see Table 3-2 Correspondence Between Address Values and Block Numbers in Flash Memory.
BFFFH
BC00H
Bank
area
Common
area
BBFFH
84FFH
83FFH
7FFFH
7C00H
7BFFH
07FFH
03FFH
1 KB
8000H
0400H
0000H
(Memory bank 0)
Block 2FH
Block 20H
Block 1FH
Block 01H
Block 00H
(Memory bank 1)
Block 3FH
Block 30H
(Memory bank 2)
Block 4FH
. . .
Block 40H
User’s Manual U17554EJ4V0UD
(Memory bank 5)
Block 7FH
Block 70H
45
CHAPTER 3 CPU ARCHITECTURE
Correspondence between the address values and block numbers in the flash memory are shown below.
Table 3-2. Correspondence Between Address Values and Block Numbers in Flash Memory (1/2)
(1)
μ
PD78F0887, 78F0888
Address Value
0000H to 03FFH 00H 4000H to 43FFH 10H 8000H to 83FFH 20H C000H to C3FFH 30H
0400H to 07FFH 01H 4400H to 47FFH 11H 8400H to 87FFH 21H C400H to C7FFH 31H
0800H to 0BFFH 02H 4800H to 4BFFH 12H 8800H to 8BFFH 22H C800H to CBFFH 32H
0C00H to 0FFFH 03H 4C00H to 4FFFH 13H 8C00H to 8FFFH 23H CC00H to CFFFH 33H
1000H to 13FFH 04H 5000H to 53FFH 14H 9000H to 93FFH 24H D000H to D3FFH 34H
1400H to 17FFH 05H 5400H to 57FFH 15H 9400H to 97FFH 25H D400H to D7FFH 35H
1800H to 1BFFH 06H 5800H to 5BFFH 16H 9800H to 9BFFH 26H D800H to DBFFH 36H
1C00H to 1FFFH 07H 5C00H to 5FFFH 17H 9C00H to 9FFFH 27H DC00H to DFFFH 37H
2000H to 23FFH 08H 6000H to 63FFH 18H A000H to A3FFH 28H E000H to E3FFH 38H
2400H to 27FFH 09H 6400H to 67FFH 19H A400H to A7FFH 29H E400H to E7FFH 39H
2800H to 2BFFH 0AH 6800H to 6BFFH 1AH A800H to ABFFH 2AH E800H to EBFFH 3AH
2C00H to 2FFFH 0BH 6C00H to 6FFFH 1BH AC00H to AFFFH 2BH EC00H to EFFFH 3BH
3000H to 33FFH 0CH 7000H to 73FFH 1CH B000H to B3FFH 2CH
3400H to 37FFH 0DH 7400H to 77FFH 1DH B400H to B7FFH 2DH
3800H to 3BFFH 0EH 7800H to 7BFFH 1EH B800H to BBFFH 2EH
3C00H to 3FFFH 0FH 7C00H to 7FFFH 1FH BC00H to BFFFH 2FH
Block
Number
Address Value
Block
Number
Address Value
Block
Number
Address Value
RemarkμPD78F0887: Block numbers 00H to 2FH
μ
PD78F0888: Block numbers 00H to 3BH
Block
Number
46
User’s Manual U17554EJ4V0UD
Table 3-2. Correspondence Between Address Values and Block Numbers in Flash Memory (2/2)
(2)
μ
PD78F0889, 78F0890
CHAPTER 3 CPU ARCHITECTURE
Address Value Block
Number
0000H to 03FFH 00H 8000H to 83FFH 20H 8000H to 83FFH 40H 8000H to 83FFH 60H
0400H to 07FFH 01H 8400H to 87FFH 21H 8400H to 87FFH 41H 8400H to 87FFH 61H
0800H to 0BFFH 02H 8800H to 8BFFH 22H 8800H to 8BFFH 42H 8800H to 8BFFH 62H
0C00H to 0FFFH 03H 8C00H to 8FFFH 23H 8C00H to 8FFFH 43H 8C00H to 8FFFH 63H
1000H to 13FFH 04H 9000H to 93FFH 24H 9000H to 93FFH 44H 9000H to 93FFH 64H
1400H to 17FFH 05H 9400H to 97FFH 25H 9400H to 97FFH 45H 9400H to 97FFH 65H
1800H to 1BFFH 06H 9800H to 9BFFH 26H 9800H to 9BFFH 46H 9800H to 9BFFH 66H
1C00H to 1FFFH 07H 9C00H to 9FFFH 27H 9C00H to 9FFFH 47H 9C00H to 9FFFH 67H
2000H to 23FFH 08H A000H to A3FFH 28H A000H to A3FFH 48H A000H to A3FFH 68H
2400H to 27FFH 09H A400H to A7FFH 29H A400H to A7FFH 49H A400H to A7FFH 69H
2800H to 2BFFH 0AH A800H to ABFFH 2AH A800H to ABFFH 4AH A800H to ABFFH6AH
2C00H to 2FFFH 0BH AC00H to AFFFH 2BH AC00H to AFFFH 4BH AC00H to AFFFH6BH
3000H to 33FFH 0CH B000H to B3FFH 2CH B000H to B3FFH 4CH B000H to B3FFH 6CH
3400H to 37FFH 0DH B400H to B7FFH 2DH B400H to B7FFH 4DH B400H to B7FFH 6DH
3800H to 3BFFH 0EH B800H to BBFFH 2EH B800H to BBFFH 4EH B800H to BBFFH6EH
3C00H to 3FFFH 0FH BC00H to BFFFH
4000H to 43FFH 10H 8000H to 83FFH 30H 8000H to 83FFH 50H 8000H to 83FFH 70H
4400H to 47FFH 11H 8400H to 87FFH 31H 8400H to 87FFH 51H 8400H to 87FFH 71H
4800H to 4BFFH 12H 8800H to 8BFFH 32H 8800H to 8BFFH 52H 8800H to 8BFFH 72H
4C00H to 4FFFH 13H 8C00H to 8FFFH 33H 8C00H to 8FFFH 53H 8C00H to 8FFFH 73H
5000H to 53FFH 14H 9000H to 93FFH 34H 9000H to 93FFH 54H 9000H to 93FFH 74H
5400H to 57FFH 15H 9400H to 97FFH 35H 9400H to 97FFH 55H 9400H to 97FFH 75H
5800H to 5BFFH 16H 9800H to 9BFFH 36H 9800H to 9BFFH 56H 9800H to 9BFFH 76H
5C00H to 5FFFH 17H 9C00H to 9FFFH 37H 9C00H to 9FFFH 57H 9C00H to 9FFFH 77H
6000H to 63FFH 18H A000H to A3FFH 38H A000H to A3FFH 58H A000H to A3FFH 78H
6400H to 67FFH 19H A400H to A7FFH 39H A400H to A7FFH 59H A400H to A7FFH 79H
6800H to 6BFFH 1AH A800H to ABFFH 3AH A800H to ABFFH 5AH A800H to ABFFH7AH
6C00H to 6FFFH 1BH AC00H to AFFFH 3BH AC00H to AFFFH 5BH AC00H to AFFFH7BH
7000H to 73FFH 1CH B000H to B3FFH 3CH B000H to B3FFH 5CH B000H to B3FFH 7CH
7400H to 77FFH 1DH B400H to B7FFH 3DH B400H to B7FFH 5DH B400H to B7FFH 7DH
7800H to 7BFFH 1EH B800H to BBFFH 3EH B800H to BBFFH 5EH B800H to BBFFH7EH
7C00H to 7FFFH 1FH BC00H to BFFFH
Address Value
Block
Number
Memory Bank
0
2FH BC00H to BFFFH
1
3FH BC00H to BFFFH
Address Value
Block
Number
Memory Bank
2
4FH BC00H to BFFFH
3
5FH BC00H to BFFFH
Address Value
Block
Number
Memory Bank
4
6FH
5
7FH
RemarkμPD78F0889: Block numbers 00H to 5FH
μ
PD78F0890: Block numbers 00H to 7FH
User’s Manual U17554EJ4V0UD
47
CHAPTER 3 CPU ARCHITECTURE
3.1.1 Internal program memory space
The internal program memory space stores the program and table data. Normally, it is addressed with the program
counter (PC).
78K0/FE2 products incorporate internal ROM (flash memory), as shown below.
The 64-byte area 0040H to 007FH can store the subroutine entry address of a 1-byte call instruction (CALLT).
(3) Option byte area
The option byte area is assigned to the 1-byte area of 0080H. Refer to CHAPTER 23 OPTION BYTE for details.
(4) CALLF instruction entry area
The area 0800H to 0FFFH can perform a direct subroutine call with a 2-byte call instruction (CALLF).
(5) On-chip debug security ID setting area
A 10-byte area of 0085H to 008EH and 1085H to 108EH can be used as an on-chip debug security ID setting
area. Set the on-chip debug security ID of 10 bytes at 0085H to 008EH when the boot swap is not used and at
0085H to 008EH and 1085H to 108EH when the boot swap is used. For details, see CHAPTER 25 ON-CHIP
DEBUG FUNCTION.
μ
3.1.2 Bank area (
The
μ
PD78F0889 has bank areas 0 to 3 and the μPD78F0890 has bank areas 0 to 5 as illustrated below.
PD78F0889 and 78F0890 only)
The banks are selected by a bank select register (BANK) (see 4.3 Memory Bank Select Register (BANK)).
Cautions 1. Instructions cannot be fetched between different memory banks.
2. Branch and access cannot be directly executed between different memory banks. Execute
branch or access between different memory banks via the common area.
3. Allocate interrupt servicing in the common area.
4. An instruction that extends from 7FFFH to 8000H can only be executed in memory bank 0.
Figure 3-5. Internal ROM (Flash Memory) Configuration
(a)
μ
PD78F0889
BFFFH
Bank area 3
16384 × 8 bits
8000H
7FFFH
0000H
Bank area 0
16384 × 8 bits
Bank area 1
16384 × 8 bits
Bank area 2
16384 × 8 bits
Common area
32768 × 8 bits
User’s Manual U17554EJ4V0UD
49
(b) μPD78F0890
BFFFH
8000H
7FFFH
Bank
area 0
16384 ×
8 bits
CHAPTER 3 CPU ARCHITECTURE
Bank
area 1
16384 ×
8 bits
Bank
area 2
16384 ×
8 bits
Common area
32768 × 8 bits
Bank
area 3
16384 ×
8 bits
Bank
area 4
16384 ×
8 bits
Bank
area 5
16384 ×
8 bits
0000H
The following table shows the relations among bank numbers, CPU addresses, and real addresses of the flash
memory.
Table 3-5. Bank Numbers, CPU Addresses, and Real Addresses of Flash Memory
(a)
μ
PD78F0889
Bank No. CPU Address Real Address of Flash Memory
−
0 08000H to 0BFFFH
1 0C000H to 0FFFFH
2 10000H to 13FFFH
3
4 or more Setting prohibited
0000H to 7FFFH (common area) 00000H to 07FFFH
8000H to BFFFH
14000H to 17FFFH
(b)
μ
PD78F0890
Bank No. CPU Address Real Address of Flash Memory
−
0 08000H to 0BFFFH
1 0C000H to 0FFFFH
2 10000H to 13FFFH
3 14000H to 17FFFH
4 18000H to 1BFFFH
5
6 or more Setting prohibited
0000H to 7FFFH (common area) 00000H to 07FFFH
8000H to BFFFH
1C000H to 1FFFFH
50
User’s Manual U17554EJ4V0UD
CHAPTER 3 CPU ARCHITECTURE
3.1.3 Internal data memory space
78K0/FE2 products incorporate the following RAM.
(1) Internal high-speed RAM
Table 3-6. Internal High-Speed RAM Capacity
Part Number Internal High-Speed RAM
μ
PD78F0887
μ
PD78F0888
μ
PD78F0889
μ
PD78F0890
1024 × 8 bits (FB00H to FEFFH)
The 32-byte area FEE0H to FEFFH is assigned to four general-purpose register banks consisting of eight 8-bit
registers per one bank.
This area cannot be used as a program area in which instructions are written and executed.
The internal high-speed RAM can also be used as a stack memory.
(2) Internal expansion RAM
Table 3-7. Internal Expansion RAM Capacity
Part Number Internal Expansion RAM
μ
PD78F0887 2048 × 8 bits (F000H to F7FFH)
μ
PD78F0888
μ
PD78F0889
μ
PD78F0890
4096 × 8 bits (E800H to F7FFH)
6144 × 8 bits (E000H to F7FFH)
The internal expansion RAM can also be used as a normal data area similar to the internal high-speed RAM, as
well as a program area in which instructions can be written and executed.
The internal expansion RAM cannot be used as a stack memory.
3.1.4 Special function register (SFR) area
On-chip peripheral hardware special function registers (SFRs) are allocated in the area FF00H to FFFFH (refer to
Table 3-8 Special Function Register List in 3.2.3 Special Function Registers (SFRs)).
Caution Do not access addresses to which SFRs are not assigned.
3.1.5 Data memory addressing
Addressing refers to the method of specifying the address of the instruction to be executed next or the address of
the register or memory relevant to the execution of instructions.
Several addressing modes are provided for addressing the memory relevant to the execution of instructions for the
78K0/FE2, based on operability and other considerations. For areas containing data memory in particular, special
addressing methods designed for the functions of special function registers (SFR) and general-purpose registers are
available for use. Figure 3-6 to 3-9 show correspondence between data memory and addressing. For details of each
addressing mode, refer to 3.4 Operand Address Addressing.
User’s Manual U17554EJ4V0UD
51
FFFFH
CHAPTER 3 CPU ARCHITECTURE
Figure 3-6. Correspondence Between Data Memory and Addressing (μPD78F0887)
FF00H
FEFFH
FEE0H
FEDFH
FB00H
FAFFH
FA00H
F9FFH
F800H
F7FFH
Special function registers (SFR)
256 × 8 bits
General-purpose registers
32 × 8 bits
Internal high-speed RAM
1024 × 8 bits
Note 1
AFCAN area
(256 × 8 bits)
Reserved
Internal expansion RAM
2048 × 8 bits
SFR addressing
FF20H
FF1FH
Register addressing
FE20H
FE1FH
FE10H
FE0FH
Short direct
addressing
Direct addressing
Register indirect addressing
Based addressing
Based indexed addressing
F000H
EFFFH
Reserved
C000H
BFFFH
Flash memory
49152 × 8 bits
0190H
018FH
0083H
0082H
0000H
Note 2
Notes 1. During on-chip debugging, use of this area is disabled since it is used as the user data backup area for
communication.
2. During on-chip debugging, use of this area is disabled since it is used as the communication command
area (269 bytes).
52
User’s Manual U17554EJ4V0UD
FFFFH
CHAPTER 3 CPU ARCHITECTURE
Figure 3-7. Correspondence Between Data Memory and Addressing (μPD78F0888)
FF00H
FEFFH
FEE0H
FEDFH
FB00H
FAFFH
FA00H
F9FFH
F800H
F7FFH
Special function registers (SFR)
256 × 8 bits
General-purpose registers
32 × 8 bits
Internal high-speed RAM
1024 × 8 bits
Note 1
AFCAN area
(256 × 8 bits)
Reserved
Internal expansion RAM
2048 × 8 bits
SFR addressing
FF20H
FF1FH
Register addressing
FE20H
FE1FH
FE10H
FE0FH
Short direct
addressing
Direct addressing
Register indirect addressing
Based addressing
Based indexed addressing
F000H
EFFFH
Flash memory
61440 × 8 bits
0190H
018FH
0083H
0082H
0000H
Note 2
Notes 1. During on-chip debugging, use of this area is disabled since it is used as the user data backup area for
communication.
2. During on-chip debugging, use of this area is disabled since it is used as the communication command
area (269 bytes).
User’s Manual U17554EJ4V0UD
53
FFFFH
CHAPTER 3 CPU ARCHITECTURE
Figure 3-8. Correspondence Between Data Memory and Addressing (μPD78F0889)
FF00H
FEFFH
FEE0H
FEDFH
FB00H
FAFFH
FA00H
F9FFH
F800H
F7FFH
Special function registers (SFR)
256 × 8 bits
General-purpose registers
32 × 8 bits
Internal high-speed RAM
1024 × 8 bits
Note 1
AFCAN area
(256 × 8 bits)
Reserved
Internal expansion RAM
4096 × 8 bits
SFR addressing
FF20H
FF1FH
Register addressing
FE20H
FE1FH
FE10H
FE0FH
16384 × 8 bits
(bank 2)
Short direct
addressing
Direct addressing
Register indirect addressing
Based addressing
Based indexed addressing
E800H
E7FFH
Reserved
C000H
BFFFH
Flash memory
16384 × 8 bits
(bank 0)
8000H
7FFFH
0190H
018FH
0083H
0082H
0000H
Flash memory
32768 × 8 bits
(common)
Note 2
16384 × 8 bits
(bank 3)
16384 × 8 bits
(bank 1)
Notes 1. During on-chip debugging, use of this area is disabled since it is used as the user data backup area for
communication.
2. During on-chip debugging, use of this area is disabled since it is used as the communication command
area (269 bytes).
54
User’s Manual U17554EJ4V0UD
FFFFH
CHAPTER 3 CPU ARCHITECTURE
Figure 3-9. Correspondence Between Data Memory and Addressing (μPD78F0890)
FF00H
FEFFH
FEE0H
FEDFH
FB00H
FAFFH
FA00H
F9FFH
F800H
F7FFH
Special function registers (SFR)
256 × 8 bits
General-purpose registers
32 × 8 bits
Internal high-speed RAM
1024 × 8 bits
Note 1
AFCAN area
(256 × 8 bits)
Reserved
Internal expansion RAM
6144 × 8 bits
SFR addressing
FF20H
FF1FH
Register addressing
FE20H
FE1FH
FE10H
FE0FH
16384 × 8 bits
(bank 4)
16384 × 8 bits
(bank 2)
Short direct
addressing
Direct addressing
Register indirect addressing
Based addressing
Based indexed addressing
E000H
DFFFH
Reserved
C000H
BFFFH
Flash memory
16384 × 8 bits
(bank 0)
8000H
7FFFH
0190H
018FH
0083H
0082H
0000H
Flash memory
32768 × 8 bits
(common)
Note 2
16384 × 8 bits
16384 × 8 bits
(bank 3)
16384 × 8 bits
(bank 1)
(bank 5)
Notes 1. During on-chip debugging, use of this area is disabled since it is used as the user data backup area for
communication.
2. During on-chip debugging, use of this area is disabled since it is used as the communication command
area (269 bytes).
User’s Manual U17554EJ4V0UD
55
CHAPTER 3 CPU ARCHITECTURE
3.2 Processor Registers
78K0/FE2 products incorporate the following processor registers.
3.2.1 Control registers
The control registers control the program sequence, statuses and stack memory. The control registers consist of a
program counter (PC), a program status word (PSW) and a stack pointer (SP).
(1) Program counter (PC)
The program counter is a 16-bit register that holds the address information of the next program to be executed.
In normal operation, the PC is automatically incremented according to the number of bytes of the instruction to be
fetched. When a branch instruction is executed, immediate data and register contents are set.
Reset signal generation sets the reset Vector code values at addresses 0000H and 0001H to the program
FFF9H 16-bit timer output control register 03 TOC03 R/W
FFFAH 8-bit timer H mode register 1 TMHMD1 R/W
FFFBH Processor clock control register PCC R/W
Note
IMS R/W
PR1
PR1HR/W
CR012
Note
IXS R/W
Manipulatable Bit Unit Address Special Function Register (SFR) Name Symbol R/W
1 Bit 8 Bits 16 Bits
√ √
√ √
− − √
√ √ −
√ √ −
− √ −
− √ −
√ √ −
√ √ −
√ √ −
√
Note Regardless of the internal memory capacity, the initial values of the internal memory size switching register
(IMS) and internal expansion RAM size switching register (IXS) of the 78K0/FE2 is fixed (IMS = CFH, IXS =
0CH). Therefore, set the value corresponding to each as indicated below.
Flash Memory Version IMS IXS
μ
PD78F0887 CCH 08H
μ
PD78F0888 CFH 08H
μ
PD78F0889
μ
PD78F0890
CCH 04H
CCH 00H
User’s Manual U17554EJ4V0UD
67
CHAPTER 3 CPU ARCHITECTURE
3.3 Instruction Address Addressing
An instruction address is determined by program counter (PC) contents and is normally incremented (+1 for each
byte) automatically according to the number of bytes of an instruction to be fetched each time another instruction is
executed. When a branch instruction is executed, the branch destination information is set to the PC and branched by
the following addressing (for details of instructions, refer to 78K/0 Series Instructions User’s Manual (U12326E).
3.3.1 Relative addressing
[Function]
The value obtained by adding 8-bit immediate data (displacement value: jdisp8) of an instruction code to the
start address of the following instruction is transferred to the program counter (PC) and branched. The
displacement value is treated as signed two’s complement data (−128 to +127) and bit 7 becomes a sign bit.
In other words, relative addressing consists of relative branching from the start address of the following
instruction to the −128 to +127 range.
This function is carried out when the BR $addr16 instruction or a conditional branch instruction is executed.
[Illustration]
150
PC
+
150
876
PC indicates the start address
...
of the instruction after the BR instruction.
α
150
PC
When S = 0, all bits of are 0.
When S = 1, all bits of are 1.
α
α
S
jdisp8
68
User’s Manual U17554EJ4V0UD
CHAPTER 3 CPU ARCHITECTURE
3.3.2 Immediate addressing
[Function]
Immediate data in the instruction word is transferred to the program counter (PC) and branched.
This function is carried out when the CALL !addr16 or BR !addr16 or CALLF !addr11 instruction is executed.
CALL !addr16 and BR !addr16 instructions can be branched to the entire memory space. The CALLF !addr11
instruction is branched to the 0800H to 0FFFH area.
[Illustration]
In the case of CALL !addr16 and BR !addr16 instructions
70
CALL or BR
Low Addr.
High Addr.
150
PC
In the case of CALLF !addr11 instruction
70
150
PC
00001
643
10–8
fa
CALLF
fa
7–0
11 10
87
87
User’s Manual U17554EJ4V0UD
69
CHAPTER 3 CPU ARCHITECTURE
3.3.3 Table indirect addressing
[Function]
Table contents (branch destination address) of the particular location to be addressed by bits 1 to 5 of the
immediate data of an operation code are transferred to the program counter (PC) and branched.
This function is carried out when the CALLT [addr5] instruction is executed.
This instruction references the address stored in the memory table from 40H to 7FH, and allows branching to
the entire memory space.
[Illustration]
76510
Operation code
ta
4–0
111
Effective address
Effective address+1
151
01
00000000
Memory (Table)
70
Low Addr.
High Addr.
150
PC
87
87
650
0
3.3.4 Register addressing
[Function]
Register pair (AX) contents to be specified with an instruction word are transferred to the program counter (PC)
and branched.
This function is carried out when the BR AX instruction is executed.
[Illustration]
70
07
70
rp
150
PC
AX
87
User’s Manual U17554EJ4V0UD
CHAPTER 3 CPU ARCHITECTURE
3.4 Operand Address Addressing
The following methods are available to specify the register and memory (addressing) to undergo manipulation
during instruction execution.
3.4.1 Implied addressing
[Function]
The register that functions as an accumulator (A and AX) among the general-purpose registers is automatically
(implicitly) addressed.
Of the 78K0/FE2 instruction words, the following instructions employ implied addressing.
Instruction Register to Be Specified by Implied Addressing
MULU A register for multiplicand and AX register for product storage
DIVUW AX register for dividend and quotient storage
ADJBA/ADJBS A register for storage of numeric values that become decimal correction targets
ROR4/ROL4 A register for storage of digit data that undergoes digit rotation
[Operand format]
Because implied addressing can be automatically employed with an instruction, no particular operand format is
necessary.
[Description example]
In the case of MULU X
With an 8-bit × 8-bit multiply instruction, the product of A register and X register is stored in AX. In this example,
the A and AX registers are specified by implied addressing.
User’s Manual U17554EJ4V0UD
71
CHAPTER 3 CPU ARCHITECTURE
3.4.2 Register addressing
[Function]
The general-purpose register to be specified is accessed as an operand with the register bank select flags
(RBS0 to RBS1) and the register specify codes (Rn and RPn) of an operation code.
Register addressing is carried out when an instruction with the following operand format is executed. When an
8-bit register is specified, one of the eight registers is specified with 3 bits in the operation code.
[Operand format]
Identifier Description
r X, A, C, B, E, D, L, H
rp AX, BC, DE, HL
‘r’ and ‘rp’ can be described by absolute names (R0 to R7 and RP0 to RP3) as well as function names (X, A, C,
B, E, D, L, H, AX, BC, DE, and HL).
[Description example]
MOV A, C; when selecting C register as r
Operation code 0 1100010
Register specify code
INCW DE; when selecting DE register pair as rp
Operation code 1 0000100
Register specify code
72
User’s Manual U17554EJ4V0UD
CHAPTER 3 CPU ARCHITECTURE
3.4.3 Direct addressing
[Function]
The memory to be manipulated is directly addressed with immediate data in an instruction word becoming an
operand address.
[Operand format]
Identifier Description
addr16 Label or 16-bit immediate data
[Description example]
MOV A, !0FE00H; when setting !addr16 to FE00H
Operation code 10001110 OP code
00000000 00H
11111110 FEH
[Illustration]
07
OP code
addr16 (lower)
addr16 (upper)
Memory
User’s Manual U17554EJ4V0UD
73
CHAPTER 3 CPU ARCHITECTURE
3.4.4 Short direct addressing
[Function]
The memory to be manipulated in the fixed space is directly addressed with 8-bit data in an instruction word.
This addressing is applied to the 256-byte space FE20H to FF1FH. Internal RAM and special function registers
(SFRs) are mapped at FE20H to FEFFH and FF00H to FF1FH, respectively.
The SFR area (FF00H to FF1FH) where short direct addressing is applied is a part of the overall SFR area.
Ports that are frequently accessed in a program and compare and capture registers of the timer/event counter
are mapped in this area, allowing SFRs to be manipulated with a small number of bytes and clocks.
When 8-bit immediate data is at 20H to FFH, bit 8 of an effective address is set to 0. When it is at 00H to 1FH,
bit 8 is set to 1. Refer to the [Illustration] shown below.
[Operand format]
Identifier Description
saddr Immediate data that indicate label or FE20H to FF1FH
saddrp Immediate data that indicate label or FE20H to FF1FH (even address only)
[Description example]
MOV 0FE30H, A; when transferring value of A register to saddr (FE30H)
Operation code 1 1110010 OP code
0 0110000 30H (saddr-offset)
[Illustration]
07
OP code
saddr-offset
15
Effective address
1
111111
When 8-bit immediate data is 20H to FFH,
When 8-bit immediate data is 00H to 1FH,
74
87
α
α
= 0
α
= 1
User’s Manual U17554EJ4V0UD
Short direct memory
0
CHAPTER 3 CPU ARCHITECTURE
3.4.5 Special function register (SFR) addressing
[Function]
A memory-mapped special function register (SFR) is addressed with 8-bit immediate data in an instruction word.
This addressing is applied to the 240-byte spaces FF00H to FFCFH and FFE0H to FFFFH. However, the SFRs
mapped at FF00H to FF1FH can be accessed with short direct addressing.
[Operand format]
Identifier Description
sfr Special function register name
sfrp
16-bit manipulatable special function register name (even address
only)
[Description example]
MOV PM0, A; when selecting PM0 (FF20H) as sfr
Operation code 11110110 OP code
00100000 20H (sfr-offset)
[Illustration]
07
Effective address
OP code
sfr-offset
15
1
111111
87
1
SFR
0
User’s Manual U17554EJ4V0UD
75
CHAPTER 3 CPU ARCHITECTURE
3.4.6 Register indirect addressing
[Function]
Register pair contents specified by a register pair specify code in an instruction word and by a register bank
select flag (RBS0 and RBS1) serve as an operand address for addressing the memory. This addressing can be
carried out for all the memory spaces.
[Operand format]
Identifier Description
[DE], [HL]
−
[Description example]
MOV A, [DE]; when selecting [DE] as register pair
Operation code 10000101
[Illustration]
1608D7
DE
The contents of the memory
addressed are transferred.
A
7 0
E
Memory
The memory address
07
specified with the
register pair DE
76
User’s Manual U17554EJ4V0UD
CHAPTER 3 CPU ARCHITECTURE
3.4.7 Based addressing
[Function]
8-bit immediate data is added as offset data to the contents of the base register, that is, the HL register pair in
the register bank specified by the register bank select flag (RBS0 and RBS1), and the sum is used to address
the memory. Addition is performed by expanding the offset data as a positive number to 16 bits. A carry from
the 16th bit is ignored. This addressing can be carried out for all the memory spaces.
[Operand format]
Identifier Description
[HL + byte]
−
[Description example]
MOV A, [HL + 10H]; when setting byte to 10H
Operation code 10101110
00010000
[Illustration]
1608H7
HL
The contents of the memory
addressed are transferred.
7 0
A
L
Memory
07
+10
User’s Manual U17554EJ4V0UD
77
CHAPTER 3 CPU ARCHITECTURE
3.4.8 Based indexed addressing
[Function]
The B or C register contents specified in an instruction word are added to the contents of the base register, that
is, the HL register pair in the register bank specified by the register bank select flag (RBS0 and RBS1), and the
sum is used to address the memory. Addition is performed by expanding the B or C register contents as a
positive number to 16 bits. A carry from the 16th bit is ignored. This addressing can be carried out for all the
memory spaces.
[Operand format]
Identifier Description
[HL + B], [HL + C]
−
[Description example]
In the case of MOV A, [HL + B]; (selecting B register)
Operation code 10101011
[Illustration]
160
78
HL
The contents of the memory
addressed are transferred.
7 0
A
H
+
L
B
Memory
07
07
78
User’s Manual U17554EJ4V0UD
CHAPTER 3 CPU ARCHITECTURE
3.4.9 Stack addressing
[Function]
The stack area is indirectly addressed with the stack pointer (SP) contents.
This addressing method is automatically employed when the PUSH, POP, subroutine call and return
instructions are executed or the register is saved / reset upon generation of an interrupt request.
With stack addressing, only the internal high-speed RAM area can be accessed.
[Description example]
In the case of PUSH DE; (saving DE register)
Operation code 10110101
[Illustration]
Memory07
SP
SP
FEE0H
FEDEH
FEE0H
FEDFH
FEDEH
D
E
User’s Manual U17554EJ4V0UD
79
CHAPTER 4 MEMORY BANK SELECT FUNCTION
(
μ
PD78F0889, 78F0890 ONLY)
4.1 Memory Bank
The
μ
PD78F0889, 78F0890 implement a ROM capacity of 96 KB or 128 KB by selecting a memory bank from a
memory space of 8000H to BFFFH.
The
μ
PD78F0889 has memory banks 0 to 3, and the μPD78F0890 have memory banks 0 to 5, as shown below.
The memory banks are selected by using a memory bank select register (BANK).
Figure 4-1. Internal ROM (Flash Memory) Configuration
(a)
μ
PD78F0889
BFFFH
Bank
area
8000H
7FFFH
(Memory bank 3)
(Memory bank 2)
(Memory bank 1)
Flash memory
16384 × 8 bits
(memory bank 0)
Common
area
0000H
Flash memory
32768 × 8 bits
μ
PD78F0890
(b)
(Memory bank 5)
(Memory bank 4)
(Memory bank 3)
(Memory bank 2)
(Memory bank 1)
BFFFH
Bank
area
8000H
7FFFH
Common
area
0000H
Flash memory
16384 × 8 bits
(memory bank 0)
Flash memory
32768 × 8 bits
80
User’s Manual U17554EJ4V0UD
CHAPTER 4 MEMORY BANK SELECT FUNCTION (μPD78F0889, 78F0890 ONLY)
4.2 Difference in Representation of Memory Space
With the 78K0/FE2 products which support the memory bank, addresses can be viewed in the following two
different ways.
• Memory bank number + CPU address
• Flash memory real address (HEX FORMAT [BANK])
Figure 4-2. Address View
(a) Memory bank number + CPU address
Memory bank 5
Memory bank 4
Memory bank 3
Memory bank 2
BFFFH
Bank
area
8000H
7FFFH
Common
area
0000H
Memory bank 1
Memory bank 0
(16 KB)
Common
(32 KB)
“Memory bank number + CPU address” is represented with a vacancy in the address space, while the flash
memory real address is shown with no vacancy in the address space.
“Memory bank number + CPU address” is used for addressing in the user program. For on-board programming
and self programming not using the self programming sample library
Note that the HEX file that is output by the assembler (RA78K0) by default uses the flash memory real address.
For address representation of the other tools such as the simulator and the debugger
Notes 1. “Memory bank number + CPU address” can be used when performing self programming, using the self
programming sample library, because the addresses are automatically translated.
2. SM+ for 78K0/Fx2, ID78K0-QB
(b) Flash memory real address (HEX FORMAT [BANK])
1FFFFH
1C000H
1BFFFH
18000H
17FFFH
14000H
13FFFH
10000H
0FFFFH
0C000H
0BFFFH
08000H
07FFFH
00000H
Memory bank 5
(16 KB)
Memory bank 4
(16 KB)
Memory bank 3
(16 KB)
Memory bank 2
(16 KB)
Memory bank 1
(16 KB)
Memory bank 0
(16 KB)
Common
(32 KB)
Note 1
, the flash memory real address is used.
Note 2
, see Table 4-1.
User’s Manual U17554EJ4V0UD
81
CHAPTER 4 MEMORY BANK SELECT FUNCTION (μPD78F0889, 78F0890 ONLY)
Table 4-1. Memory Bank Address Representation
Memory Bank Number CPU Address Flash Memory Real Address Address Representation in
Simulator and Debugger
Memory bank 0 08000H-0BFFFH 08000H-0BFFFH
Memory bank 1 0C000H-0FFFFH 18000H-1BFFFH
Memory bank 2 10000H-13FFFH 28000H-2BFFFH
Memory bank 3 14000H-17FFFH 38000H-3BFFFH
Memory bank 4 18000H-1BFFFH 48000H-4BFFFH
Memory bank 5
08000H-0BFFFH
Note 2
1C000H-1FFFFH 58000H-5BFFFH
Notes 1. SM+ for 78K0/Fx2, ID78K0-QB
2. Set the memory bank to be used by the memory bank select register (BANK) (see Figure 4-3).
For details, see the RA78K0 Ver. 3.80 Assembler Package Operation User’s Manual (U17199E).
4.3 Memory Bank Select Register (BANK)
The memory bank select register (BANK) is used to select a memory bank to be used.
BANK can be set by an 8-bit memory manipulation instruction.
Reset signal generation clears BANK to 00H.
Figure 4-3. Format of Memory Bank Select Register (BANK)
Address: FFF3H After reset: 00H R/W
Symbol 7 6 5 4 3 2 1 0
BANK 0 0 0 0 0 BANK2 BANK1 BANK0
Note 1
Bank setting BANK2 BANK1 BANK0
μ
PD78F0889
0 0 0 Common area (32 K) + memory bank 0 (16 K)
0 0 1 Common area (32 K) + memory bank 1 (16 K)
0 1 0 Common area (32 K) + memory bank 2 (16 K)
0 1 1 Common area (32 K) + memory bank 3 (16 K)
1 0 0 Common area (32 K) +
1 0 1
Other than above Setting prohibited
Setting prohibited
μ
PD78F0890
memory bank 4 (16 K)
Common area (32 K) +
memory bank 5 (16 K)
Caution Be sure to change the value of the BANK register in the common area (0000H to 7FFFH).
If the value of the BANK register is changed in the bank area (8000H to BFFFH), an inadvertent
program loop occurs in the CPU. Therefore, never change the value of the BANK register in the
bank area.
82
User’s Manual U17554EJ4V0UD
CHAPTER 4 MEMORY BANK SELECT FUNCTION (μPD78F0889, 78F0890 ONLY)
4.4 Selecting Memory Bank
The memory bank selected by the memory bank select register (BANK) is reflected on the bank area and can be
addressed. Therefore, to access a memory bank different from the one currently selected, that memory bank must be
selected by using the BANK register.
The value of the BANK register must not be changed in the bank area (8000H to BFFFH). Therefore, to change
the memory bank, branch an instruction to the common area (0000H to 7FFFH) and change the value of the BANK
register in that area.
Cautions 1. Instructions cannot be fetched between different memory banks.
2. Branching and accessing cannot be directly executed between different memory banks.
Execute branching or accessing between different memory banks via the common area.
3. Allocate interrupt servicing in the common area.
4. An instruction that extends from 7FFFH to 8000H can only be executed in memory bank 0.
4.4.1 Referencing values between memory banks
Values cannot be directly referenced from one memory bank to another.
To access another memory bank from one memory bank, branch once to the common area (0000H to 7FFFH),
change the setting of the BANK register there, and then reference a value.
Bank
area
Common
area
Bank
area
Common
area
Memory bank n
Memory bank m
Referencing value
Memory bank n
Memory bank m
Referencing value
User’s Manual U17554EJ4V0UD
83
CHAPTER 4 MEMORY BANK SELECT FUNCTION (μPD78F0889, 78F0890 ONLY)
• Software example (to store a value to be referenced in register A)
RAMD DSEG SADDR
R_BNKA: DS 2 ; Secures RAM for specifying an address at the reference destination.
R_BNKN: DS 1 ; Secures RAM for specifying a memory bank number at the reference destination.
R_BNKRN: DS 1 ; Secures RAM for saving a memory bank number at the reference source.
ETRC CSEG UNIT
ENTRY:
MOV R_BNKN,#BANKNUM DATA1 ; Stores the memory bank number at the reference destination.
MOVW R_BNKA,#DATA1 ; Stores the address at the reference destination.
CALL !BNKRD ; Calls a subroutine for referencing between memory banks.
:
:
BNKC CSEG AT 7000H
BNKRD: ; Subroutine for referencing between memory banks.
PUSH HL ; Saves the contents of the HL register.
MOV A,R_BNKN ; Acquires the memory bank number at the reference destination.
XCH A,BANK ; Swaps the memory bank number at the reference source for that at the reference
; destination
MOV R_BNKRN,A ; Saves the memory bank number at the reference source.
XCHW AX,HL ; Saves the contents of the X register.
MOVW AX,R_BNKA ; Acquires the address at the reference destination.
XCHW AX,HL ; Specifies the address at the reference destination.
MOV A,[HL] ; Reads the target value.
XCH A,R_BNKRN ; Acquires the memory bank number at the reference source.
MOV BANK,A ; Specifies the memory bank number at the reference source.
MOV A,R_BNKRN ; Write the target value to the A register.
POP HL ; Restores the contents of the HL register.
RET ; Return
DATA CSEG BANK3
DATA1: DB 0AAH
END
84
User’s Manual U17554EJ4V0UD
CHAPTER 4 MEMORY BANK SELECT FUNCTION (μPD78F0889, 78F0890 ONLY)
4.4.2 Branching instruction between memory banks
Instructions cannot branch directly from one memory bank to another.
To branch an instruction from one memory bank to another, branch once to the common area (0000H to 7FFFH),
change the setting of the BANK register there, and then execute the branch instruction again.
Memory bank n
Bank
area
Common
area
Bank
area
Common
area
Memory bank m
Instruction branch
Memory bank n
Memory bank m
Instruction branch
User’s Manual U17554EJ4V0UD
85
CHAPTER 4 MEMORY BANK SELECT FUNCTION (μPD78F0889, 78F0890 ONLY)
• Software example 1 (to branch from all areas)
RAMD DSEG SADDR
R_BNKA: DS 2 ; Secures RAM for specifying a memory bank at the branch destination.
R_BNKN: DS 1 ; Secures RAM for specifying a memory bank number at the branch destination.
RSAVEAX: DS 2 ; Secures RAM for saving the AX register.
ETRC CSEG UNIT
ENTRY:
MOV R_BNKN,#BANKNUM TEST ; Stores the memory bank number at the branch destination in RAM.
MOVW R_BNKA,#TEST ; Stores the address at the branch destination in RAM.
BR !BNKBR ; Branches to inter-memory bank branch processing.
:
:
BNKC CSEG AT 7000H ;
BNKBR:
MOVW RSAVEAX,AX ; Saves the AX register.
MOV A,R_BNKN ; Acquires the memory bank number at the branch destination.
MOV BANK,A ; Specifies the memory bank number at the branch destination.
MOVW AX,R_BNKA ; Specifies the address at the branch destination.
PUSH AX ; Sets the address at the branch destination to stack.
MOVW AX,RSAVEAX ; Restores the AX register.
RET ; Branch
BN3 CSEG BANK3
TEST:
MOV ⋅⋅⋅ :
:
END
• Software example 2 (to branch from common area to any bank area)
ETRC CSEG AT 2000H
ENTRY:
MOV R_BNKN,#BANKNUM TEST ; Stores the memory bank number at the branch destination in RAM.
BR !TEST ; Stores the address at the branch destination in RAM.
BN3 CSEG BANK3
TEST:
MOV ⋅⋅⋅
:
:
END
86
User’s Manual U17554EJ4V0UD
CHAPTER 4 MEMORY BANK SELECT FUNCTION (μPD78F0889, 78F0890 ONLY)
4.4.3 Subroutine call between memory banks
Subroutines cannot be directly called between memory banks.
To call a subroutine between memory banks, branch once to the common area (0000H to 7FFFH), specify the
memory bank at the calling destination by using the BANK register there, execute the CALL instruction, and branch to
the call destination by that instruction.
At this time, save the current value of the BANK register to RAM. Restore the value of the BANK register before
executing the RET instruction.
Memory bank n
Bank
area
Common
area
Bank
area
Common
area
CALL
inst-
ruction
Memory bank m
Memory bank m
CALL instruction
Memory bank n
BR instruction
CALL
instruction
RET instruction
Change BANK and save
memory bank number at
calling source.
RET instruction
User’s Manual U17554EJ4V0UD
87
CHAPTER 4 MEMORY BANK SELECT FUNCTION (μPD78F0889, 78F0890 ONLY)
• Software example
RAMD DSEG SADDR
R_BNKA: DS 2 ; Secures RAM for specifying an address at the calling destination.
R_BNKN: DS 1 ; Secures RAM for specifying a memory bank number at the calling destination.
R_BNKRN: DS 1 ; Secures RAM for saving a memory bank number at the calling source.
RSAVEAX: DS 2 ; Secures RAM for saving the AX register.
ETRC CSEG UNIT
ENTRY:
MOV R_BNKN,#BANKNUM TEST ; Store the memory bank number at the calling destination in RAM.
MOVW R_BNKA,#TEST ; Stores the address at the calling destination in RAM.
CALL !BNKCAL ; Branches to an inter-memory bank calling processing routine.
:
:
BNKC CSEG AT 7000H
BNKCAL: ; Inter-memory bank calling processing routine
MOVW RSAVEAX,AX ; Saves the AX register.
MOV A,R_BNKN ; Acquires the memory bank number at the calling destination.
XCH A,BANK ; Changes the bank and acquires the memory bank number at the calling source.
MOV R_BNKRN,A ; Saves the memory bank number at the calling source to RAM.
CALL !BNKCALS ; Calls a subroutine to branch to the calling destination.
MOVW RSAVEAX,AX ; Saves the AX register.
XCH A,R_BNKRN ; Acquires the memory bank number at the calling source.
MOV BANK,A ; Specifies the memory bank number at the calling source.
MOVW RSAVEAX,AX ; Restores the AX register.
RET ; Returns to the calling source.
BNKCALS:
MOVW AX,R_BNKA ; Specifies the address at the calling destination.
PUSH AX ; Sets the address at the calling destination to stack.
MOVW AX,RSAVEAX ; Restores source AX register.
RET AX ; Branches to the calling destination.
BN3 CSEG BANK3
TEST: ;
MOV ⋅⋅⋅ :
:
RET
END
Remark In the software example above, multiplexed processing is not supported.
88
User’s Manual U17554EJ4V0UD
CHAPTER 4 MEMORY BANK SELECT FUNCTION (μPD78F0889, 78F0890 ONLY)
4.4.4 Instruction branch to bank area by interrupt
When an interrupt occurs, instructions can branch to the memory bank specified by the BANK register by using the
vector table, but it is difficult to identify the BANK register when the interrupt occurs.
Therefore, specify the branch destination address specified by the vector table in the common area (0000H to
7FFFH), specify the memory bank at the branch destination by using the BANK register in the common area, and
execute the CALL instruction. At this time, save the BANK register value before the change to RAM, and restore the
value of the BANK register before executing the RETI instruction.
Remark Allocate interrupt servicing that requires a quick response in the common area.
Memory bank n
Bank
area
Common
area
Memory bank m
Instruction branch
Vector table
Save the original memory bank number.
Specify the address and memory bank
at the destination, and execute the call
instruction.
• Software example (when using interrupt request of 16-bit timer/event counter 00)
VCTBL CSEG AT 0020H
DW BNKITM000 ; Specifies an address at the timer interrupt destination.
RAMD DSEG SADDR
R_BNKRN: DS 1 ; Secures RAM for saving the memory bank number before the interrupt occurs.
BNKC CSEG AT 7000H
BNKITM000: ; Inter-memory bank interrupt servicing routine
PUSH AX ; Saves the contents of the AX register.
MOV A,BANK
MOV R_BNKRN,A ; Saves the memory bank number before the interrupt to RAM.
MOV BANK,#BANKNUM TEST ; Specifies the memory bank number of the interrupt routine.
CALL !TEST ; Calls the interrupt routine.
MOV A,R_BNKRN ; Restores the memory bank number before the interrupt.
MOV BANK,A
POP AX ; Restores the contents of the AX register.
RETI
BN3 CSEG BANK3
TEST: ; Interrupt servicing routine
MOV ⋅⋅⋅ :
:
RET
END
User’s Manual U17554EJ4V0UD
89
CHAPTER 4 MEMORY BANK SELECT FUNCTION (μPD78F0889, 78F0890 ONLY)
Remark Note the following points to use the memory bank select function efficiently.
• Allocate a routine that is used often in the common area.
• If a value that is planned to be referenced is placed in RAM, it can be referenced from all of the areas.
• If the reference destination and the branch destination of the routine placed in a memory bank are
placed in the same memory bank, then the code size and processing are more efficient.
• Allocate interrupt servicing that requires a quick response in the common area.
90
User’s Manual U17554EJ4V0UD
CHAPTER 5 PORT FUNCTIONS
5.1 Port Functions
There are two types of pin I/O buffer power supplies: AV
supplies and the pins is shown below.
Table 5-1. Pin I/O Buffer Power Supplies
Power Supply Corresponding Pins
AVREFP80 to P87, P90 to P93
EVDDPort pins other than P80 to P87, P90 to P93 and P121 to P124
VDD• P121 to P124
• Non-port pins
78K0/FE2 products are provided with the ports shown in Figure 5-1, which enable variety of control operations.
In addition to the function as digital I/O ports, these ports have several alternate functions. For details of the
alternate functions, refer to CHAPTER 2 PIN FUNCTIONS.
The 78K0/FE2 has a total of 55 I/O ports, ports 0, 1, 3 to 9, 12 and 13. The port configuration is shown below.
Figure 5-1. Port Types
REF and EVDD. The relationship between these power
P70
Port 7
P76
P80
Port 8
P87
P90
Port 9
P93
P120
Port 12
P124
P130
Port 13
P132
P00
P01
P05
P06
P10
P17
P30
P33
P40
P43
P50
P53
P60
P63
Port 0
Port 1
Port 3
Port 4
Port 5
Port 6
User’s Manual U17554EJ4V0UD
91
CHAPTER 5 PORT FUNCTIONS
5.2 Port Configuration
Ports include the following hardware.
Table 5-2. Port Configuration
Item Configuration
Control registers
Port Total: 55 (CMOS I/O: 50, CMOS output: 1, N-ch open drain I/O: 4)
Pull-up resistor Total: 34
Port mode register (PM0, PM1, PM3 to PM9, PM12, PM13)
Port register (P0, P1, P3 to P9, P12, P13)
Pull-up resistor option register (PU0, PU1, PU3 to PU5, PU7, PU12, PU13)
92
User’s Manual U17554EJ4V0UD
CHAPTER 5 PORT FUNCTIONS
5.2.1 Port 0
Port 0 is a 4-bit I/O port with an output latch. Port 0 can be set to the input mode or output mode in 1-bit units
using port mode register 0 (PM0). When the P00, P01, P05 and P06 pins are used as an input port, use of an on-chip
pull-up resistor can be specified in 1-bit units by pull-up resistor option register 0 (PU0).
This port can also be used for timer I/O, serial interface chip select input.
Reset signal generation sets port 0 to input mode.
Figures 5-2 and 5-3 show block diagrams of port 0.
Caution To use P05/SSI11/TI001 as general-purpose ports, set serial operation mode register 11
(CSIM11) to the default status (00H).
Figure 5-2. Block Diagram of P00 and P05
EV
DD
WR
PU
PU0
Internal bus
PU00, PU05
Alternate function
RD
WR
PORT
P0
Output latch
(P00, P05)
WR
PM
PM0
PM00, PM05
P0: Port register 0
PU0: Pull-up resistor option register 0
PM0: Port mode register 0
RD: Read signal
WR××: Write signal
P-ch
Selector
P00/TI000,
P05/SSI11/TI001
User’s Manual U17554EJ4V0UD
93
CHAPTER 5 PORT FUNCTIONS
Figure 5-3. Block Diagram of P01 and P06
EVDD
WR
PU
PU0
Internal bus
PU01, PU06
Alternate
function
RD
WR
PORT
P0
Output latch
(P01, P06)
WRPM
PM0
PM01, PM06
Alternate
function
P0: Port register 0
PU0: Pull-up resistor option register 0
PM0: Port mode register 0
RD: Read signal
WR××: Write signal
P-ch
Selector
P01/TI010/TO00,
P06/TI011/TO01
94
User’s Manual U17554EJ4V0UD
CHAPTER 5 PORT FUNCTIONS
5.2.2 Port 1
Port 1 is an 8-bit I/O port with an output latch. Port 1 can be set to the input mode or output mode in 1-bit units
using port mode register 1 (PM1). When the P10 to P17 pins are used as an input port, use of an on-chip pull-up
resistor can be specified in 1-bit units by pull-up resistor option register 1 (PU1).
This port can also be used for external interrupt request input, serial interface data I/O, clock I/O, and timer I/O.
Reset signal generation sets port 1 to input mode.
Figures 5-4 to 5-6 show block diagrams of port 1.
Caution To use P10/SCK10/TxD61 and P12/SO10 as general-purpose ports, set serial operation mode
register 10 (CSIM10) and serial clock selection register 10 (CSIC10) to the default status (00H).
Figure 5-4. Block Diagram of P10, P16 and P17
User’s Manual U17554EJ4V0UD
95
CHAPTER 5 PORT FUNCTIONS
Figure 5-5. Block Diagram of P11 and P14
EV
DD
WR
PU
PU1
Internal bus
PU11, PU14
Alternate
function
RD
WR
PORT
P1
Output latch
(P11, P14)
WR
PM
PM1
PM11, PM14
P1: Port register 1
PU1: Pull-up resistor option register 1
PM1: Port mode register 1
RD: Read signal
WR××: Write signal
P-ch
Selector
P11/SI10/RxD61,
P14/RxD60
96
User’s Manual U17554EJ4V0UD
WR
RD
PORT
WR
Internal bus
WR
CHAPTER 5 PORT FUNCTIONS
Figure 5-6. Block Diagram of P12, P13 and P15
EV
DD
PU
PU1
PU12, PU13,
PU15
Selector
P1
Output latch
(P12, P13, P15)
PM
PM1
PM12, PM13,
PM15
P-ch
P12/SO10,
P13/TxD60,
P15/TOH0
Alternate
function
P1: Port mode register 1
PU1: Pull-up resistor option register 1
PM1: Port mode register 1
RD: Read signal
WR××: Write signal
User’s Manual U17554EJ4V0UD
97
CHAPTER 5 PORT FUNCTIONS
5.2.3 Port 3
Port 3 is a 4-bit I/O port with an output latch. Port 3 can be set to the input mode or output mode in 1-bit units
using port mode register 3 (PM3). When used as an input port, use of an on-chip pull-up resistor can be specified in
1-bit units by pull-up resistor option register 3 (PU3).
This port can also be used for external interrupt request input and timer I/O.
Reset signal generation sets port 3 to input mode.
Figures 5-7 and 5-8 show block diagrams of port 3.
<R>
Cautions 1. Be sure to pull the P31 pin down before a reset release, to prevent malfunction.
2. Connect P31/TI002/INTP2 as follows when writing the flash memory with a flash programmer.
- P31/TI002/INTP2: Connect to EV
SS via a resistor (10 kΩ: recommended).
The above connection is not necessary when writing the flash memory by means of self
programming.
Remark P31/INTP2/TI002 and P32/INTP3/TI012/TO02 can be used for on-chip debug mode setting when the
on-chip debug function is used. For details, refer to CHAPTER 25 ON-CHIP DEBUG FUNCTION.
Figure 5-7. Block Diagram of P30 and P31
EV
DD
WR
PU
PU3
Internal bus
PU30, PU31
Alternate
function
RD
WR
PORT
P3
Output latch
(P30, P31)
WR
PM
PM3
PM30, PM31
P3: Port register 3
PU3: Pull-up resistor option register 3
PM3: Port mode register 3
RD: Read signal
WR××: Write signal
P-ch
Selector
P30/INTP1,
P31/INTP2/TI002
98
User’s Manual U17554EJ4V0UD
Internal bus
WR
RD
WR
WRPM
PU
PORT
PU3
PU32, PU33
Alternate
function
P3
Output latch
(P32, P33)
PM3
PM32, PM33
CHAPTER 5 PORT FUNCTIONS
Figure 5-8. Block Diagram of P32 and P33
EVDD
P-ch
Selector
P32/INTP3/TI012/TO02,
P33/INTP4/TI51/TO51
Alternate
function
P3: Port register 3
PU3: Pull-up resistor option register 3
PM3: Port mode register 3
RD: Read signal
WR××: Write signal
User’s Manual U17554EJ4V0UD
99
CHAPTER 5 PORT FUNCTIONS
5.2.4 Port 4
Port 4 is a 4-bit I/O port with an output latch. Port 4 can be set to the input mode or output mode in 1-bit units
using port mode register 4 (PM4). Use of an on-chip pull-up resistor can be specified in 1-bit units with pull-up resistor
option register 4 (PU4).
Reset signal generation sets port 4 to input mode.
Figure 5-9 shows a block diagram of port 4.
Figure 5-9. Block Diagram of P40 to P43
EV
DD
WR
PU
PU4
RD
WR
WR
PORT
PM
Internal bus
PU40 to PU43
Selector
P4
Output latch
(P40 to P43)
PM4
PM40 to PM43
P-ch
P40 to P43
P4: Port register 4
PU4: Pull-up resistor option register 4
PM4: Port mode register 4
RD: Read signal
WR××: Write signal
100
User’s Manual U17554EJ4V0UD
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.