电子工程世界电子工程世界电子工程世界

型号

产品描述

搜索
 

M38040F3LWG

器件型号:M38040F3LWG
文件大小:1812.96KB,共0页
厂商名称:RENESAS [Renesas Technology Corp]
厂商官网:http://www.renesas.com
下载文档

器件描述

文档预览

M38040F3LWG器件文档内容

To our customers,

                  Old Company Name in Catalogs and Other Documents

   On April 1st, 2010, NEC Electronics Corporation merged with Renesas Technology
Corporation, and Renesas Electronics Corporation took over all the business of both
companies. Therefore, although the old company name remains in this document, it is a valid
Renesas Electronics document. We appreciate your understanding.

                           Renesas Electronics website: http://www.renesas.com

                                                                            April 1st, 2010
                                                                            Renesas Electronics Corporation

Issued by: Renesas Electronics Corporation (http://www.renesas.com)
Send any inquiries to http://www.renesas.com/inquiry.
                                                        Notice

1. All information included in this document is current as of the date this document is issued. Such information, however, is
       subject to change without any prior notice. Before purchasing or using any Renesas Electronics products listed herein, please
       confirm the latest product information with a Renesas Electronics sales office. Also, please pay regular and careful attention to
       additional and different information to be disclosed by Renesas Electronics such as that disclosed through our website.

2. Renesas Electronics does not assume any liability for infringement of patents, copyrights, or other intellectual property rights
       of third parties by or arising from the use of Renesas Electronics products or technical information described in this document.
       No license, express, implied or otherwise, is granted hereby under any patents, copyrights or other intellectual property rights
       of Renesas Electronics or others.

3. You should not alter, modify, copy, or otherwise misappropriate any Renesas Electronics product, whether in whole or in part.

4. Descriptions of circuits, software and other related information in this document are provided only to illustrate the operation of
       semiconductor products and application examples. You are fully responsible for the incorporation of these circuits, software,
       and information in the design of your equipment. Renesas Electronics assumes no responsibility for any losses incurred by
       you or third parties arising from the use of these circuits, software, or information.

5. When exporting the products or technology described in this document, you should comply with the applicable export control
       laws and regulations and follow the procedures required by such laws and regulations. You should not use Renesas
       Electronics products or the technology described in this document for any purpose relating to military applications or use by
       the military, including but not limited to the development of weapons of mass destruction. Renesas Electronics products and
       technology may not be used for or incorporated into any products or systems whose manufacture, use, or sale is prohibited
       under any applicable domestic or foreign laws or regulations.

6. Renesas Electronics has used reasonable care in preparing the information included in this document, but Renesas Electronics
       does not warrant that such information is error free. Renesas Electronics assumes no liability whatsoever for any damages
       incurred by you resulting from errors in or omissions from the information included herein.

7. Renesas Electronics products are classified according to the following three quality grades: "Standard", "High Quality", and
       "Specific". The recommended applications for each Renesas Electronics product depends on the product's quality grade, as
       indicated below. You must check the quality grade of each Renesas Electronics product before using it in a particular
       application. You may not use any Renesas Electronics product for any application categorized as "Specific" without the prior
       written consent of Renesas Electronics. Further, you may not use any Renesas Electronics product for any application for
       which it is not intended without the prior written consent of Renesas Electronics. Renesas Electronics shall not be in any way
       liable for any damages or losses incurred by you or third parties arising from the use of any Renesas Electronics product for an
       application categorized as "Specific" or for which the product is not intended where you have failed to obtain the prior written
       consent of Renesas Electronics. The quality grade of each Renesas Electronics product is "Standard" unless otherwise
       expressly specified in a Renesas Electronics data sheets or data books, etc.

"Standard":  Computers; office equipment; communications equipment; test and measurement equipment; audio and visual
             equipment; home electronic appliances; machine tools; personal electronic equipment; and industrial robots.

"High Quality": Transportation equipment (automobiles, trains, ships, etc.); traffic control systems; anti-disaster systems; anti-
                     crime systems; safety equipment; and medical equipment not specifically designed for life support.

"Specific":  Aircraft; aerospace equipment; submersible repeaters; nuclear reactor control systems; medical equipment or
             systems for life support (e.g. artificial life support devices or systems), surgical implantations, or healthcare
             intervention (e.g. excision, etc.), and any other applications or purposes that pose a direct threat to human life.

8. You should use the Renesas Electronics products described in this document within the range specified by Renesas Electronics,
       especially with respect to the maximum rating, operating supply voltage range, movement power voltage range, heat radiation
       characteristics, installation and other product characteristics. Renesas Electronics shall have no liability for malfunctions or
       damages arising out of the use of Renesas Electronics products beyond such specified ranges.

9. Although Renesas Electronics endeavors to improve the quality and reliability of its products, semiconductor products have
       specific characteristics such as the occurrence of failure at a certain rate and malfunctions under certain use conditions. Further,
       Renesas Electronics products are not subject to radiation resistance design. Please be sure to implement safety measures to
       guard them against the possibility of physical injury, and injury or damage caused by fire in the event of the failure of a
       Renesas Electronics product, such as safety design for hardware and software including but not limited to redundancy, fire
       control and malfunction prevention, appropriate treatment for aging degradation or any other appropriate measures. Because
       the evaluation of microcomputer software alone is very difficult, please evaluate the safety of the final products or system
       manufactured by you.

10. Please contact a Renesas Electronics sales office for details as to environmental matters such as the environmental
       compatibility of each Renesas Electronics product. Please use Renesas Electronics products in compliance with all applicable
       laws and regulations that regulate the inclusion or use of controlled substances, including without limitation, the EU RoHS
       Directive. Renesas Electronics assumes no liability for damages or losses occurring as a result of your noncompliance with
       applicable laws and regulations.

11. This document may not be reproduced or duplicated, in any form, in whole or in part, without prior written consent of Renesas
       Electronics.

12. Please contact a Renesas Electronics sales office if you have any questions regarding the information contained in this
       document or Renesas Electronics products, or if you have any other inquiries.

(Note 1) "Renesas Electronics" as used in this document means Renesas Electronics Corporation and also includes its majority-
            owned subsidiaries.

(Note 2) "Renesas Electronics product(s)" means any product developed or manufactured by or for Renesas Electronics.
3804 Group (Spec.L)                                                                         REJ03B0266-0100
                                                                                                         Rev.1.00
SINGLE-CHIP 8-BIT CMOS MICROCOMPUTER
                                                                                                    Oct 27, 2008

DESCRIPTION                                                                                  Power source voltage
                                                                                              [In high-speed mode]
The 3804 group (Spec.L) is the 8-bit microcomputer based on the                                 At 16.8 MHz oscillation frequency .................... 4.5 to 5.5 V
740 family core technology.                                                                     At 12.5 MHz oscillation frequency .................... 4.0 to 5.5 V
The 3804 group (Spec.L) is designed for household products,                                     At 8.4 MHz oscillation frequency ...................... 2.7 to 5.5 V
office automation equipment, and controlling systems that                                     [In middle-speed mode]
require analog signal processing, including the A/D converter                                   At 16.8 MHz oscillation frequency .................... 4.5 to 5.5 V
and D/A converters.                                                                             At 12.5 MHz oscillation frequency .................... 2.7 to 5.5 V
                                                                                              [In low-speed mode]
FEATURES                                                                                        At 32 kHz oscillation frequency......................... 2.7 to 5.5 V
Basic machine-language instructions ................................. 71
Minimum instruction execution time .......................... 0.24 s                      Power dissipation
                                                                                              In high-speed mode ........................................ 27.5 mW (typ.)
                                  (at 16.8 MHz oscillation frequency)                         (at 16.8 MHz oscillation frequency, at 5 V power source voltage)
Memory size                                                                                 In low-speed mode ........................................ 1200 W (typ.)
                                                                                              (at 32 kHz oscillation frequency, at 3 V power source voltage)
  ROM (Flash memory) ............................................ 60 K bytes
  RAM ...................................................................... 2048 bytes      Operating temperature range ............................. -20 to 85 C
Programmable input/output ports ....................................... 56                Packages
Software pull-up resistors ............................................ Built-in
Interrupts                                                                                  SP...............PRDP0064BA-A (64P4B) (64-pin 750 mil SDIP)
  21 sources, 16 vectors...............................................................       HP ......PLQP0064KB-A (64P6Q-A) (64-pin 10 10 mm LQFP)
                                                                                              KP ......PLQP0064GA-A (64P6U-A) (64-pin 14 14 mm LQFP)
                                   (external 8, internal 12, software 1)                      WG ........PTLG0064JA-A (64F0G) (64-pin 6 6 mm FLGA)
Timers ...................................................................... 16-bit 1
                                                                                            
                                                                  8-bit 4                  Power source voltage ................................ VCC = 2.7 to 5.5 V
                                                   (with 8-bit prescaler)                   Program/Erase voltage ............................. VCC = 2.7 to 5.5 V
Serial interface ......... 8-bit 2 (UART or Clock-synchronized)                         Programming method ............... Programming in unit of byte
                                        8-bit 1 (Clock-synchronized)                      Erasing method ................................................. Block erasing
PWM ....................................... 8-bit 1 (with 8-bit prescaler)               Program/Erase control by software command
A/D converter ........................................ 10-bit 16 channels                Number of times for programming/erasing ...................... 100
                                                   (8-bit reading enabled)
D/A converter ............................................ 8-bit 2 channels             APPLICATION
Watchdog timer ....................................................... 16-bit 1         Camera, Household appliance, Consumer electronics, etc.
Multi-master I2C-BUS interface.............................. 1 channel
LED direct drive port............................................................. 8
Clock generating circuit ............................. Built-in 2 circuits
  (connect to external ceramic resonator or quartz-crystal oscillator)

Rev.1.00 Oct 27, 2008 Page 1 of 128
REJ03B0266-0100
3804 Group (Spec.L)

                                    P00/AN8  P01/AN9  P02/AN10  P03/AN11  P04/AN12  P05/AN13   P06/AN14   P07/AN15   P10/INT41  P11/INT01  P12       P13              P14        P15       P16       P17

                                    48       47       46        45        44        43         42         41         40         39         38        37               36         35        34        33

                     P37/SRDY3  49                                                                                                                                                                             32       P20(LED0)

                     P36/SCLK3  50                                                                                                                                                                             31       P21(LED1)

                     P35/TXD3   51                                                                                                                                                                             30       P22(LED2)

                     P34/RXD3   52                                                                                                                                                                             29       P23(LED3)

                     P33/SCL    53                                                                                                                                                                             28       P24(LED4)

                     P32/SDA    54                                                                                                                                                                             27       P25(LED5)

                     P31/DA2    55                                                                                                                                                                             26       P26(LED6)

                     P30/DA1    56                              M38049FFLHP/KP                                                                                                                                 25       P27(LED7)

                     VCC        57                                                                                                                                                                             24       VSS

                     VREF       58                                                                                                                                                                             23       XOUT

                     AVSS       59                                                                                                                                                                             22       XIN

                     P67/AN7    60                                                                                                                                                                             21       P40/INT40/XCOUT

                     P66/AN6    61                                                                                                                                                                             20       P41/INT00/XCIN

                     P65/AN5    62                                                                                                                                                                             19       RESET

                     P64/AN4    63                                                                                                                                                                             18       CNVSS

                     P63/AN3    64                                                                                                                                                                             17       P42/INT1

                                    1        2        3         4         5         6          7          8          9          10         11        12               13         14        15        16

                                    P62/AN2  P61/AN1  P60/AN0   P57/INT3  P56/PWM   P55/CNTR1  P54/CNTR0  P53/SRDY2  P52/SCLK2  P51/SOUT2  P50/SIN2  P47/SRDY1/CNTR2  P46/SCLK1  P45/TXD1  P44/RXD1  P43/INT2

                                    Package code : PLQP0064KB-A (64P6Q-A)/PLQP0064GA-A (64P6U-A)
Fig. 1 Pin configuration (Top view) PLQP0064KB-A (64P6Q-A)/PLQP0064GA-A (64P6U-A)

                                    VCC                                   1                                                                                                                          64            P30/DA1

                                    VREF                                  2                                                                                                                          63            P31/DA2

                                    AVSS                                  3                                                                                                                          62            P32/SDA

                                    P67/AN7                               4                                                                                                                          61            P33/SCL

                                    P66/AN6                               5                                                                                                                          60            P34/RXD3

                                    P65/AN5                               6                                                                                                                          59            P35/TXD3

                                    P64/AN4                               7                                                                                                                          58            P36/SCLK3

                                    P63/AN3                               8                                                                                                                          57            P37/SRDY3

                                    P62/AN2                               9                                                                                                                          56            P00/AN8

                                    P61/AN1                               10                                                                                                                         55            P01/AN9

                                    P60/AN0                               11                                                                                                                         54            P02/AN10

                                    P57/INT3                              12                                                                                                                         53            P03/AN11

                                P56/PWM                                   13                                                    M38049FFLSP                                                          52            P04/AN12

                                P55/CNTR1                                 14                                                                                                                         51            P05/AN13

                                P54/CNTR0                                 15                                                                                                                         50            P06/AN14

                                P53/SRDY2                                 16                                                                                                                         49            P07/AN15

                                P52/SCLK2                                 17                                                                                                                         48            P10/INT41

                                P51/SOUT2                                 18                                                                                                                         47            P11/INT01

                                    P50/SIN2                              19                                                                                                                         46            P12

                                P47/SRDY1/CNTR2                           20                                                                                                                         45            P13

                                P46/SCLK1                                 21                                                                                                                         44            P14

                                P45/TXD1                                  22                                                                                                                         43            P15

                                P44/RXD1                                  23                                                                                                                         42            P16

                                    P43/INT2                              24                                                                                                                         41            P17

                                    P42/INT1                              25                                                                                                                         40            P20(LED0)

                                    CNVSS                                 26                                                                                                                         39            P21(LED1)

                                    RESET                                 27                                                                                                                         38            P22(LED2)

                                P41/INT00/XCIN                            28                                                                                                                         37            P23(LED3)

                                P40/INT40/XCOUT                           29                                                                                                                         36            P24(LED4)

                                    XIN                                   30                                                                                                                         35            P25(LED5)

                                    XOUT                                  31                                                                                                                         34            P26(LED6)

                                    VSS                                   32                                                                                                                         33            P27(LED7)

                                                        Package code : PRDP0064BA-A (64P4B)
Fig. 2 Pin configuration (Top view) (PRDP0064BA-A (64P4B))

Rev.1.00 Oct 27, 2008 Page 2 of 128
REJ03B0266-0100
3804 Group (Spec.L)

PIN CONFIGURATION (TOP VIEW)

                     A  B        C     D             E                            F    G         H

8 50 46 44 41 40 32 31 30 8

           P36/SCLK3 P02/AN10 P04/AN12 P07/AN15 P10/INT41 P20(LED0) P21(LED1) P22(LED2)

7 51 47 45 42 39 27 29 28 7
            P35/TXD3 P01/AN9 P03/AN11 P06/AN14 P11/INT01 P25(LED5) P23(LED3) P24(LED4)

6 53 52 48 43 38                                                                  37 26 25 6

   P33/SCL P34/RXD3 P00/AN8 P05/AN13                 P12                          P13  P26(LED6) P27(LED7)

5 56 55 54 49 33 36 35 34 5

   P30/DA1              P31/DA2  P32/SDA P37/SRDY3   P17                          P14  P15       P16

4 1 64 58 59 57 24 22 23 4

   P62/AN2              P63/AN3  VREF  AVSS          VCC                          VSS  XIN       XOUT

3 60 61 4                              7 12 14 21 20 3

   P67/AN7              P66/AN6  P57/INT3 P54/CNTR0 P47/SRDY1/CNTR2 P45/TXD1 P40/INT40/XCOUT P41/INT00/XCIN

       62 63 5                         8 10 13 17 19

2                                                                                                          2

   P65/AN5              P64/AN4 P56/PWM P53/SRDY2 P51/SOUT2 P46/SCLK1 P42/INT1                   RESET

1  2 3 6 9 11 15 16 18                                                                                       1

   P61/AN1              P60/AN0 P55/CNTR1 P52/SCLK2  P50/SIN2  P44/RXD1                P43/INT2  CNVSS

                     A  B        C     D             E                            F    G         H

                                 Package code : PTLG0064JA-A (64F0G)

Note : The numbers in circles corresponds with the number on the packages HP/KP.            M38049
                                                                                            FFLWG

                                                                                       Package (TOP VIEW)

Fig. 3 Pin configuration (Top view) (PTLG0064JA-A (64F0G))

Rev.1.00 Oct 27, 2008 Page 3 of 128
REJ03B0266-0100
3804 Group (Spec.L)

Table 1 Performance overview

                            Parameter                                                Function
                                             71
Number of basic instructions                 0.24 s (Oscillation frequency 16.8 MHz)
                                             Oscillation frequency 16.8 MHz (Maximum)
Minimum instruction execution time           60 Kbytes
                                             2048 bytes
Oscillation frequency                        56 pins
                                             Built-in
Memory     ROM                               21 sources, 16 vectors (8 external, 12 internal, 1 software)
sizes      RAM                               8-bit 4 (with 8-bit prescaler), 16-bit 1
                                             8-bit 2 (UART or Clock-synchronized)
I/O port   P0-P6                             8-bit 1 (Clock-synchronized)
                                             8-bit 1 (with 8-bit prescaler)
Software pull-up resistors                   10-bit 16 channels (8-bit reading enabled)
                                             8-bit 2 channels
Interrupt                                    16-bit 1
                                             1 channel
Timer
                                             8 (average current: 15 mA, peak current: 30 mA, total current: 90 mA)
Serial interface                             Built-in 2 circuits
                                             (connect to external ceramic resonator or quartz-crystal oscillator)
PWM                                          4.5 to 5.5 V
A/D converter                                4.0 to 5.5 V
D/A converter                                2.7 to 5.5 V
Watchdog timer                               4.5 to 5.5 V
Multi-master I2C-BUS interface               2.7 to 5.5 V
LED direct drive port                        2.7 to 5.5 V
Clock generating circuits                    Typ. 27.5 mW (Vcc = 5.0 V, f(XIN) = 16.8 MHz, Ta = 25 C)
                                             Typ. 1200 W (Vcc = 3.0 V, f(XIN) = stop, f(XCIN) = 32 kHz, Ta = 25 C)
Power      In high-speed        At 16.8 MHz  -20 to 85 C
source     mode                 At 12.5 MHz  CMOS silicon gate
voltage                         At 8.4 MHz   64-pin plastic molded SDIP/LQFP/FLGA

           In middle-speed      At 16.8 MHz
           mode                 At 12.5 MHz

           In low-speed mode At 32 MHz

Power      In high-speed mode

dissipation In low-speed mode

Operating temperature range

Device structure

Package

Rev.1.00 Oct 27, 2008 Page 4 of 128
REJ03B0266-0100
                                                                                                                                                                                                                                     3804 Group (Spec.L)

               Fig. 4 Functional block diagram
   Rev.1.00 Oct 27, 2008 Page 5 of 128
REJ03B0266-0100
FUNCTIONAL BLOCK DIAGRAM (Package: PRDP0064BA-A (64P4B))

Main       Main    Sub-clock Sub-clock                                                                                              Reset input
clock      clock                                                                                                                       RESET
input      output  input   output
XIN        XOUT                                                                                                                                27
                   XCIN    XCOUT                                                      VSS             VCC                                            CNVSS
30           31
                   28      29                                                          32                1                                                26

                                                                                               Data bus

Clock generating circuit                RAM                      ROM                          CPU                                                                                                     Timer 1 (8)
                                                                                                              A                                                                                       Timer 2 (8)

                                                                                                            X                                                 Prescaler 12 (8)

                                                                                                            Y

                                                                                                                                                              Prescaler X (8)                         Timer X (8)

                                                                                                            S                                        CNTR0
                                                                                                                                                     CNTR1
                                                                                      PCH             PCL                                            CNTR2    Prescaler Y (8)                         Timer Y (8)

                                                                                                      PS

                                                                                                                                                                       Timer Z (16)

                                                                                      0

   A/D                         PWM (8)                           SI/O2 (8) SI/O1 (8)              D/A               D/A             SI/O3 (8)                     I2C
converter                                                                                      converter         converter

   (10)                                                                                           2 (8)             1 (8)

                                        INT3                                                   INT00                                                                                                  INT01
                                                                                               INT1                                                                                                   INT41
                                                         P5 (8)                                INT2
                   P6 (8)                                                             P4 (8)   INT40                        P3 (8)                   P2 (8)            P1 (8)                                      P0 (8)

    23     4 5 6 7 8 9 10 11            12 13 14 15 16 17 18 19       20 21 22 23 24 25 28 29                               57 58 59 60 61 62 63 64  33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48         49 50 51 52 53 54 55 56
VREF AVSS
             I/O port P6                   I/O port P5                  I/O port P4                                           I/O port P3                                                                       I/O port P0
                                                                                                                                                     I/O port P2       I/O port P1
                                                                                                                                                     (LED drive)
3804 Group (Spec.L)

PIN DESCRIPTION

Table 2 Pin description

          Pin           Name                                         Functions                         Function except a port function
                 Power source
VCC, VSS         CNVSS input       Apply voltage of 2.7 V - 5.5 V to VCC, and 0 V to VSS.
CNVSS            Reference          This pin controls the operation mode of the chip.
                 voltage            Normally connected to VSS.
VREF             Analog power       Reference voltage input pin for A/D and D/A converters.
                 source
AVSS             Reset input       Analog power source input pin for A/D and D/A converters.
                 Main clock input   Connect to VSS.
RESET            Main clock
XIN              output             Reset input pin for active "L".
                 I/O port P0
XOUT             I/O port P1       Input and output pins for the clock generating circuit.
                                    Connect a ceramic resonator or quartz-crystal oscillator between the XIN and XOUT pins to set
P00/AN8-         I/O port P2
P07/AN15         I/O port P3         the oscillation frequency.
P10/INT41                           When an external clock is used, connect the clock source to the XIN pin and leave the XOUT pin
P11/INT01        I/O port P4
P12-P17                              open.
                 I/O port P5
P20(LED0)-                         8-bit CMOS I/O port.                                              A/D converter input pin
P27(LED7)        I/O port P6       I/O direction register allows each pin to be individually          Interrupt input pin
P30/DA1
P31/DA2                              programmed as either input or output.
P32/SDA                            CMOS compatible input level.
P33/SCL                            CMOS 3-state output structure.
P34/RXD3                            Pull-up control is enabled in a bit unit.
P35/TXD3                            P20 - P27 (8 bits) are enabled to output large current for
P36/SCLK3
P37/SRDY3                            LED drive.

P40/INT40/XCOUT                     8-bit CMOS I/O port.                                              D/A converter input pin
P41/INT00/XCIN
                                    I/O direction register allows each pin to be individually          I2C-BUS interface function pins
P42/INT1                             programmed as either input or output.
P43/INT2
P44/RXD1                            CMOS compatible input level.
P45/TXD1
P46/SCLK1                           P32 to P33 can be switched between CMOS compatible                Serial I/O3 function pin
P47/SRDY1/CNTR2                      input level or SMBUS input level in the I2C-BUS interface
P50/SIN2
P51/SOUT2                          function.
P52/SCLK2
P53/SRDY2                           P30, P31, P34 - P37 are CMOS 3-state output structure.
P54/CNTR0
P55/CNTR1                           P32, P33 are N-channel open-drain output structure.
P56/PWM
P57/INT3                            Pull-up control of P30, P31, P34 - P37 is enabled in a bit unit.
P60/AN0-
P67/AN7                            8-bit CMOS I/O port.                                              Interrupt input pin

                                    I/O direction register allows each pin to be individually          Sub-clock generating I/O pin
                                     programmed as either input or output.                               (resonator connected)

                                    CMOS compatible input level.                                       Interrupt input pin
                                    CMOS 3-state output structure.
                                    Pull-up control is enabled in a bit unit.                         Serial I/O1 function pin

                                                                                                       Serial I/O1, timer Z function pin
                                                                                                       Serial I/O2 function pin

                                                                                                       Timer X function pin
                                                                                                       Timer Y function pin
                                                                                                       PWM output pin
                                                                                                       Interrupt input pin
                                                                                                       A/D converter input pin

Rev.1.00 Oct 27, 2008 Page 6 of 128
REJ03B0266-0100
3804 Group (Spec.L)
PART NUMBERING

Product name           M3804 9 F F L SP

                                         Package code
                                         SP : PRDP0064BA-A (64P4B)
                                         HP : PLQP0064KB-A (64P6Q-A)
                                         KP : PLQP0064GA-A (64P6U-A)
                                         WG : PTLG0064JA-A (64F0G)

                                         -: standard
                                         L: Minner spec. change product

                                         ROM/PROM size

                                         1: 4096 bytes   9: 36864 bytes
                                         2: 8192 bytes   A: 40960 bytes
                                         3: 12288 bytes  B: 45056 bytes
                                         4: 16384 bytes  C: 49152 bytes
                                         5: 20480 bytes  D: 53248 bytes
                                         6: 24576 bytes  E: 57344 bytes
                                         7: 28672 bytes  F: 61440 bytes
                                         8: 32768 bytes

                                         Memory type
                                         F: Flash memory version

                                         RAM size        5: 768 bytes
                                                         6: 896 bytes
                                         0: 192 bytes    7: 1024 bytes
                                         1: 256 bytes    8: 1536 bytes
                                         2: 384 bytes    9: 2048 bytes
                                         3: 512 bytes
                                         4: 640 bytes

Fig. 5 Part numbering

Rev.1.00 Oct 27, 2008 Page 7 of 128
REJ03B0266-0100
3804 Group (Spec.L)

GROUP EXPANSION                                                                          Packages

Renesas plans to expand the 3804 group (Spec.L) as follows.                               PRDP0064BA-A (64P4B)
                                                                                           ........................................... 64-pin shrink plastic-molded SDIP
Memory Size
Flash memory size .....................................................60 Kbytes       PLQP0064KB-A (64P6Q-A)
RAM size ................................................................. 2048 bytes    ...........................................0.5 mm-pitch plastic molded LQFP

                                                                                          PLQP0064GA-A (64P6U-A)
                                                                                           ...........................................0.8 mm-pitch plastic molded LQFP

                                                                                          PTLG0064JA-A (64F0G)
                                                                                           ........................................0.65 mm-pitch plastic molded FLGA

Memory Expansion Plan

             ROM size (bytes)

             60 K                                                                                 M38049FFL
             48 K
             32 K
             28 K
             24 K
             20 K
             16 K
             12 K

              8K

                          384 512 640 768 896 1024 1152 1280 1408 1536 2048 3072 4032
                                                              RAM size (bytes)

Fig. 6 Memory expansion plan

Table 3 Support products

Part No.                       ROM size (bytes)  RAM size                                Package  Remarks
                                                  (bytes)
M38049FFLSP                                                                               PRDP0064BA-A (64P4B)
                                                    2048                                 PLQP0064KB-A (64P6Q-A)
M38049FFLHP               57344+4096 (NOTE)
M38049FFLKP                                                                                                                      VCC = 2.7 to 5.5 V
                                                                                         PLQP0064GA-A (64P6U-A)
M38049FFLWG
                                                                                           PTLG0064JA-A (64F0G)

NOTE:
   1. ROM size includes the ID code area.

Rev.1.00 Oct 27, 2008 Page 8 of 128
REJ03B0266-0100
3804 Group (Spec.L)

FUNCTIONAL DESCRIPTION                                                  [Stack Pointer (S)]

CENTRAL PROCESSING UNIT (CPU)                                           The stack pointer is an 8-bit register used during subroutine calls
The 3804 group (Spec.L) uses the standard 740 Family                    and interrupts. This register indicates start address of stored area
instruction set. Refer to the 740 Family Software Manual for            (stack) for storing registers during subroutine calls and
details on the instruction set.                                         interrupts.
Machine-resident 740 Family instructions are as follows:                The low-order 8 bits of the stack address are determined by the
                                                                        contents of the stack pointer. The high-order 8 bits of the stack
    The FST and SLW instructions cannot be used.                        address are determined by the stack page selection bit. If the
    The STP, WIT, MUL, and DIV instructions can be used.                stack page selection bit is "0", the high-order 8 bits becomes
                                                                        "0016". If the stack page selection bit is "1", the high-order 8 bits
[Accumulator (A)]                                                       becomes "0116".
The accumulator is an 8-bit register. Data operations such as data      The operations of pushing register contents onto the stack and
transfer, etc. are executed mainly through the accumulator.             popping them from the stack are shown in Figure 8.
                                                                        Store registers other than those described in Figure 7 with
[Index Register X (X)]                                                  program when the user needs them during interrupts or
The index register X is an 8-bit register. In the index addressing      subroutine calls (see Table 4).
modes, the value of the OPERAND is added to the contents of
register X and specifies the real address.                              [Program Counter (PC)]

[Index Register Y (Y)]                                                  The program counter is a 16-bit counter consisting of two 8-bit
The index register Y is an 8-bit register. In partial instruction, the  registers PCH and PCL. It is used to indicate the address of the
value of the OPERAND is added to the contents of register Y             next instruction to be executed.
and specifies the real address.

                     b7                                                 b0
                                A                                            Accumulator

                     b7                                                 b0

                                          X                                 Index Register X

                     b7                                                 b0
                                Y                                            Index Register Y

                     b7                                                 b0
                                S                                            Stack Pointer

b15                  b7                                                 b0
          PCH
                                          PCL                               Program Counter

                     b7                                                 b0

                     N V T B D I Z C Processor Status Register (PS)

                                                                            Carry Flag
                                                                            Zero Flag
                                                                            Interrupt Disable Flag
                                                                            Decimal Mode Flag
                                                                            Break Flag
                                                                            Index X Mode Flag
                                                                            Overflow Flag
                                                                            Negative Flag

Fig. 7 740 Family CPU register structure

Rev.1.00 Oct 27, 2008 Page 9 of 128
REJ03B0266-0100
3804 Group (Spec.L)

                                                 On-going Routine

                           Interrupt request(1)

                                                                            M(S)(PCH)                                                          Push Return Address
                                                                            (S)(S) - 1                                                         on Stack

                                                 Execute JSR

                                                                            M(S)(PCL)

Push Return   M(S)(PCH)                                                     (S)(S) - 1                                                         Push Contents of
Address       (S)(S) - 1                                                    M(S)(PS)                                                           Processor
on Stack      M(S)(PCL)                                                                                                                        Status Register on Stack
              (S)(S) - 1
                                                                             (S)(S) - 1                                                        I Flag is Set from
               Subroutine                                                        Interrupt                                                     "0" to "1"
                                                                                                                                               Fetch the Jump
                                                                            Service Routine
                                                                                                                                               Vector
                                                                               Execute RTI
                                                                                                                                        .....
                           .....

                     Execute RTS                                            (S)(S) + 1
                                                                            (PS)M(S)
POP Return    (S)(S) + 1                                                                                                                       POP Contents of
Address from  (PCL)M(S)                                                                                                                        Processor Status Register
Stack                                                                                                                                          from Stack

                                                                            (S)(S) + 1

              (S)(S) + 1                                                    (PCL)M(S)
                                                                            (S)(S) + 1
              (PCH)M(S)                                                                                                                        POP Return
                                                                                                                                               Address from Stack

                                                                            (PCH)M(S)

Note 1 : Condition for acceptance of an interrupt  Interrupt enable flag is "1"
                                                                      Interrupt disable flag is "0"

Fig. 8 Register push and pop at interrupt generation and subroutine call

Table 4 Push and pop instructions of accumulator or processor status register

Accumulator                                      Push instruction to stack                                                                     Pop instruction from stack
Processor status register                                     PHA                                                                                            PLA
                                                              PHP                                                                                            PLP

Rev.1.00 Oct 27, 2008 Page 10 of 128
REJ03B0266-0100
3804 Group (Spec.L)

[Processor status register (PS)]                                       Bit 4: Break flag (B)
The processor status register is an 8-bit register consisting of 5         The B flag is used to indicate that the current interrupt was
flags which indicate the status of the processor after an                  generated by the BRK instruction. The BRK flag in the
arithmetic operation and 3 flags which decide MCU operation.               processor status register is always "0". When the BRK
Branch operations can be performed by testing the Carry (C)                instruction is used to generate an interrupt, the processor
flag, Zero (Z) flag, Overflow (V) flag, or the Negative (N) flag.          status register is pushed onto the stack with the break flag set
In decimal mode, the Z, V, N flags are not valid.                          to "1".

Bit 0: Carry flag (C)                                                  Bit 5: Index X mode flag (T)
    The C flag contains a carry or borrow generated by the                 When the T flag is "0", arithmetic operations are performed
    arithmetic logic unit (ALU) immediately after an arithmetic            between accumulator and memory. When the T flag is "1",
    operation. It can also be changed by a shift or rotate                 direct arithmetic operations and direct data transfers are
    instruction.                                                           enabled between memory locations.

Bit 1: Zero flag (Z)                                                   Bit 6: Overflow flag (V)
    The Z flag is set if the result of an immediate arithmetic             The V flag is used during the addition or subtraction of one
    operation or a data transfer is "0", and cleared if the result is      byte of signed data. It is set if the result exceeds +127 to -
    anything other than "0".                                               128. When the BIT instruction is executed, bit 6 of the
                                                                           memory location operated on by the BIT instruction is stored
Bit 2: Interrupt disable flag (I)                                          in the overflow flag.
    The I flag disables all interrupts except for the interrupt
    generated by the BRK instruction.                                  Bit 7: Negative flag (N)
    Interrupts are disabled when the I flag is "1".                        The N flag is set if the result of an arithmetic operation or
                                                                           data transfer is negative. When the BIT instruction is
Bit 3: Decimal mode flag (D)                                               executed, bit 7 of the memory location operated on by the
    The D flag determines whether additions and subtractions are           BIT instruction is stored in the negative flag.
    executed in binary or decimal. Binary arithmetic is executed
    when this flag is "0"; decimal arithmetic is executed when it
    is "1".
    Decimal correction is automatic in decimal mode. Only the
    ADC and SBC instructions can execute decimal arithmetic.

Table 5 Set and clear instructions of each bit of processor status register

Set instruction      C flag  Z flag   I flag                           D flag  B flag  T flag  V flag  N flag
Clear instruction    SEC       -      SEI                              SED        -    SET        -       -
                     CLC       -      CLI                              CLD        -     CLT               -
                                                                                                CLV

Rev.1.00 Oct 27, 2008 Page 11 of 128
REJ03B0266-0100
3804 Group (Spec.L)

[CPU Mode Register (CPUM)] 003B16
The CPU mode register contains the stack page selection bit, the
internal system clock control bits, etc.
The CPU mode register is allocated at address 003B16.

             b7                        b0 CPU mode register

                              1                (CPUM: address 003B16)

Fig. 9 Structure of CPU mode register                  Processor mode bits
                                                        b1 b0
                                                         0 0 : Single-chip mode
                                                         0 1:
                                                         1 0 : Not available
                                                         1 1:

                                                       Stack page selection bit
                                                         0 : 0 page
                                                         1 : 1 page

                                                       Fix this bit to "1".

                                                       Port XC switch bit
                                                         0 : I/O port function (stop oscillating)
                                                         1 : XCIN-XCOUT oscillating function

                                                       Main clock (XIN-XOUT) stop bit
                                                         0 : Oscillating
                                                         1 : Stopped

                                                       Main clock division ratio selection bits
                                                        b7 b6
                                                         0 0 :  = f(XIN)/2 (high-speed mode)
                                                         0 1 :  = f(XIN)/8 (middle-speed mode)
                                                         1 0 :  = f(XCIN)/2 (low-speed mode)
                                                         1 1 : Not available

Rev.1.00 Oct 27, 2008 Page 12 of 128
REJ03B0266-0100
3804 Group (Spec.L)

MISRG                                                                Middle-speed mode automatic switch by program

(1) Bit 0 of address 001016: Oscillation stabilizing time           The middle-speed mode can also be automatically switched by
    set after STP instruction released bit                          program while operating in low-speed mode. By setting the
                                                                    middle-speed automatic switch start bit (bit 3) of MISRG
When the MCU stops the clock oscillation by the STP instruction     (address 001016) to "1" in the condition that the middle-speed
and the STP instruction has been released by an external            mode automatic switch set bit is "1" while operating in low-
interrupt source, usually, the fixed values of Timer 1 and          speed mode, the MCU will automatically switch to middle-speed
Prescaler 12 (Timer 1 = 0116, Prescaler 12 = FF16) are              mode. In this case, the oscillation stabilizing time of the main
automatically reloaded in order for the oscillation to stabilize.   clock can be selected by the middle-speed automatic switch wait
The user can inhibit the automatic setting by setting "1" to bit 0  time set bit (bit 2) of MISRG (address 001016).
of MISRG (address 001016).
However, by setting this bit to "1", the previous values, set just
before the STP instruction was executed, will remain in Timer 1
and Prescaler 12. Therefore, you will need to set an appropriate
value to each register, in accordance with the oscillation
stabilizing time, before executing the STP instruction.
Figure 10 shows the structure of MISRG.

(2) Bits 1, 2, 3 of address 001016: Middle-speed Mode
    Automatic Switch Function

In order to switch the clock mode of an MCU which has a sub-
clock, the following procedure is necessary:
set CPU mode register (003B16) --> start main clock oscillation
--> wait for oscillation stabilization --> switch to middle-speed
mode (or high-speed mode).
However, the 3804 group (Spec.L) has the built-in function
which automatically switches from low to middle-speed mode by
program.

b7                                    b0 MISRG

                                      (MISRG: address 001016)

                                                                        Oscillation stabilizing time set after STP instruction
                                                                        released bit
                                                                          0 : Automatically set "0116" to Timer 1, "FF16" to

                                                                              Prescaler 12
                                                                          1 : Automatically set disabled

                                                                        Middle-speed mode automatic switch set bit
                                                                          0 : Not set automatically
                                                                          1 : Automatic switching enabled(1)

                                                                        Middle-speed mode automatic switch wait time set bit
                                                                          0 : 4.5 to 5.5 machine cycles
                                                                          1 : 6.5 to 7.5 machine cycles

                                                                        Middle-speed mode automatic switch start bit
                                                                        (Depending on program)
                                                                          0 : Invalid
                                                                          1 : Automatic switch start(1)

                                                                        Not used (return "0" when read)
                                                                        (Do not write "1" to this bit)

Note 1 : When automatic switch to middle-speed mode from low-speed mode occurs,
           the values of CPU mode register (3B16) change.

Fig. 10 Structure of MISRG

Rev.1.00 Oct 27, 2008 Page 13 of 128
REJ03B0266-0100
3804 Group (Spec.L)

MEMORY                                                            Zero Page
Special Function Register (SFR) Area                           Access to this area with only 2 bytes is possible in the zero page
The Special Function Register area in the zero page contains     addressing mode.
control registers such as I/O ports and timers.
                                                                  Special Page
RAM                                                            Access to this area with only 2 bytes is possible in the special
The RAM is used for data storage and for stack area of           page addressing mode.
subroutine calls and interrupts.
                                                                 
ROM                                                            Since the contents of RAM are undefined at reset, be sure to set
The ROM area can program/erase.                                  an initial value before use.

Interrupt Vector Area
The interrupt vector area contains reset and interrupt vectors.

RAM area             Address                                     000016  SFR area               Zero page
    RAM size         XXXX16                                      004016
      (bytes)                         RAM                        010016  Not used
                     00FF16                                              SFR area
        192          013F16                                      XXXX16  Not used
        256          01BF16
        384          023F16                                      0FF016
        512          02BF16                                      0FFF16
        640          033F16
        768          03BF16                                      YYYY16
        896          043F16
       1024          063F16
       1536          083F16
       2048

ROM area             Address          ROM
   ROM size          YYYY16
      (bytes)        F00016                                      FF0016  Reserved ROM area      Special page
       4096          E00016                                      FFD416          (ID code)
       8192          D00016                                      FFDB16
      12288          C00016                                      FFDC16  Reserved ROM area
      16384          B00016                                      FFFE16  (ROM code Protect)
      20480          A00016                                      FFFF16  Interrupt vector area
      24576           900016
      28672           800016                                             Reserved ROM area
      32768           700016
      36864           600016
      40960           500016
      45056           400016
      49152           300016
      53248           200016
      57344           100016
      61440

Fig. 11 Memory map diagram

Rev.1.00 Oct 27, 2008 Page 14 of 128
REJ03B0266-0100
3804 Group (Spec.L)

000016 Port P0 (P0)                                           002016 Prescaler 12 (PRE12)
000116 Port P0 direction register (P0D)                       002116 Timer 1 (T1)
000216 Port P1 (P1)                                           002216 Timer 2 (T2)
000316 Port P1 direction register (P1D)                       002316 Timer XY mode register (TM)
000416 Port P2 (P2)                                           002416 Prescaler X (PREX)
000516 Port P2 direction register (P2D)                       002516 Timer X (TX)
000616 Port P3 (P3)                                           002616 Prescaler Y (PREY)
000716 Port P3 direction register (P3D)                       002716 Timer Y (TY)
000816 Port P4 (P4)                                           002816 Timer Z low-order (TZL)
000916 Port P4 direction register (P4D)                       002916 Timer Z high-order (TZH)
000A16 Port P5 (P5)                                           002A16 Timer Z mode register (TZM)
000B16 Port P5 direction register (P5D)                       002B16 PWM control register (PWMCON)
000C16 Port P6 (P6)                                           002C16 PWM prescaler (PREPWM)
000D16 Port P6 direction register (P6D)                       002D16 PWM register (PWM)
000E16 Timer 12, X count source selection register (T12XCSS)  002E16
000F16 Timer Y, Z count source selection register (TYZCSS)    002F16 Baud rate generator 3 (BRG3)
001016 MISRG                                                  003016 Transmit/Receive buffer register 3 (TB3/RB3)
001116 I2C data shift register (S0)                           003116 Serial I/O3 status register (SIO3STS)
001216 I2C special mode status register (S3)                  003216 Serial I/O3 control register (SIO3CON)
001316 I2C status register (S1)                               003316 UART3 control register (UART3CON)
001416 I2C control register (S1D)                             003416 AD/DA control register (ADCON)
001516 I2C clock control register (S2)                        003516 AD conversion register 1 (AD1)
001616 I2C START/STOP condition control register (S2D)        003616 DA1 conversion register (DA1)
001716 I2C special mode control register (S3D)                003716 DA2 conversion register (DA2)
001816 Transmit/Receive buffer register 1 (TB1/RB1)           003816 AD conversion register 2 (AD2)
001916 Serial I/O1 status register (SIO1STS)                  003916 Interrupt source selection register (INTSEL)
001A16 Serial I/O1 control register (SIO1CON)                 003A16 Interrupt edge selection register (INTEDGE)
001B16 UART1 control register (UART1CON)                      003B16 CPU mode register (CPUM)
001C16 Baud rate generator (BRG1)                             003C16 Interrupt request register 1 (IREQ1)
001D16 Serial I/O2 control register (SIO2CON)                 003D16 Interrupt request register 2 (IREQ2)
001E16 Watchdog timer control register (WDTCON)               003E16 Interrupt control register 1 (ICON1)
001F16 Serial I/O2 register (SIO2)                            003F16 Interrupt control register 2 (ICON2)

0FE016 Flash memory control register 0 (FMCR0)                0FF016  Port P0 pull-up control register (PULL0)
0FE116 Flash memory control register 1 (FMCR1)                0FF116  Port P1 pull-up control register (PULL1)
0FE216 Flash memory control register 2 (FMCR2)                0FF216  Port P2 pull-up control register (PULL2)
0FE316 Reserved (1)                                           0FF316  Port P3 pull-up control register (PULL3)
0FE416 Reserved (1)                                           0FF416  Port P4 pull-up control register (PULL4)
0FE516 Reserved (1)                                           0FF516  Port P5 pull-up control register (PULL5)
0FE616 Reserved (1)                                           0FF616  Port P6 pull-up control register (PULL6)
0FE716 Reserved (1)                                           0FF716  I2C slave address register 0 (S0D0)
0FE816 Reserved (1)                                           0FF816  I2C slave address register 1 (S0D1)
0FE916 Reserved (1)                                           0FF916  I2C slave address register 2 (S0D2)
0FEA16 Reserved (1)
0FEB16 Reserved (1)                                           Note 1: Do not write any data to these addresses, because these are
0FEC16 Reserved (1)                                                      reserved area.
0FED16 Reserved (1)
0FEE16 Reserved (1)
0FEF16 Reserved (1)

Fig. 12 Memory map of special function register (SFR)

Rev.1.00 Oct 27, 2008 Page 15 of 128
REJ03B0266-0100
3804 Group (Spec.L)

I/O PORTS                                                                input are floating. If a pin set to input is written to, only the port
                                                                         output latch is written to and the pin remains floating.
The I/O ports have direction registers which determine the               By setting the port P0 pull-up control register (address 0FF016)
input/output direction of each individual pin. Each bit in a             to the port P6 pull-up control register (address 0FF616) ports can
direction register corresponds to one pin, and each pin can be set       control pull-up with a program. However, the contents of these
to be input port or output port.                                         registers do not affect ports programmed as the output ports.
When "0" is written to the bit corresponding to a pin, that pin
becomes an input pin. When "1" is written to that bit, that pin
becomes an output pin.
If data is read from a pin which is set to output, the value of the
port output latch is read, not the value of the pin itself. Pins set to

Table 6 I/O port function

Pin              Name      Input/     I/O Structure                      Non-Port Function  Related SFRs                       Ref.

                           Output                                                                                              No.

P00/AN8-P07/AN15 Port P0 Input/output, CMOS compatible input level A/D converter input AD/DA control register                  (1)

P10/INT41        Port P1 individual  CMOS 3-state output                 External interrupt input Interrupt edge selection (2)
P11/INT01                    bits                                                                         register

P12-P17                                                                                                                        (3)

P20(LED0)-       Port P2
P27(LED7)

P30/DA1          Port P3                                                 D/A converter output AD/DA control register           (4)
P31/DA2

P32/SDA                              CMOS compatible input level I2C-BUS interface          I2C control register               (5)
P33/SCL
                                     N-channel open-drain output function I/O

                                     CMOS/SMBUS input level

                                     (when selecting I2C-BUS

                                     interface function)

P34/RXD3                             CMOS compatible input level Serial I/O3 function I/O Serial I/O3 control register (6)
P35/TXD3
P36/SCLK3                            CMOS 3-state output                                    UART3 control register             (7)
P37/SRDY3
                                                                                                                               (8)

                                                                                                                               (9)

P40/INT40/XCOUT  Port P4                                                 External interrupt input Interrupt edge selection (10)
P41/INT00/XCIN
                                                                         Sub-clock generating register                         (11)

                                                                         circuit            CPU mode register

P42/INT1                                                                 External interrupt input Interrupt edge selection (2)
P43/INT2                                                                                                  register

P44/RXD1                                                                 Serial I/O1 function I/O Serial I/O1 control register (6)
P45/TXD1
P46/SCLK1                                                                                   UART1 control register             (7)

                                                                                                                               (8)

P47/SRDY1/CNTR2                                                          Serial I/O1 function I/O Serial I/O1 control register (12)
                                                                         Timer Z function I/O Timer Z mode register

P50/SIN2         Port P5                                                 Serial I/O2 function I/O Serial I/O2 control register (13)
P51/SOUT2                                                                                                                                       (14)
P52/SCLK2                                                                                                                                       (15)
P53/SRDY2                                                                                                                                       (16)

P54/CNTR0                                                                Timer X, Y function I/O Timer XY mode register (17)
P55/CNTR1

P56/PWM                                                                  PWM output         PWM control register               (18)

P57/INT3                                                                 External interrupt input Interrupt edge selection (2)
                                                                                                          register

P60/AN0-P67/AN7 Port P6                                                  A/D converter input AD/DA control register            (1)

NOTES:
   1. Refer to the applicable sections how to use double-function ports as function I/O ports.
   2. Make sure that the input level at each pin is either 0 V or VCC during execution of the STP instruction.
       When an input level is at an intermediate potential, a current will flow from VCC to VSS through the input-stage gate.

Rev.1.00 Oct 27, 2008 Page 16 of 128
REJ03B0266-0100
3804 Group (Spec.L)

(1) Ports P0, P6                                                                              (2) Ports P10, P11, P42, P43, P57

                          Pull-up control bit                                                                                    Pull-up control bit

          Data bus           Direction                                                        Data bus  Direction
                             register                                                                   register

                             Port latch                                                                 Port latch

                                                  A/D converter input                                                                       Interrupt input
                                                                            Analog input pin
                                                                            selection bit     (4) Ports P30, P31

(3) Ports P12 to P17, P2                                                                                                         Pull-up control bit

                                      Pull-up control bit

          Data bus           Direction                                                        Data bus  Direction
                             register                                                                   register

                             Port latch                                                                 Port latch

(5) Ports P32, P33                                                                                                                         D/A converter output
                                                                                                                                                         DA1 output enable bit (P30)
         I2C-BUS interface enable bit                                                                                                                    DA2 output enable bit (P31)

                          Direction                                                           (6) Ports P34, P44
                          register
                                                                                                                                   Pull-up control bit
                                                                                                               Serial I/O enable bit

                                                                                                                Receive enable bit

                                                                                                                                    Direction
                                                                                                                                    register

          Data bus        Port latch

                                                                                              Data bus  Port latch

                    SDA output                 SDA input                                                                                              Serial I/O input
                    SCL output                 SCL input

(7) Ports P35, P45                                                                            (8) Ports P36, P46

                             Pull-up control bit                                               Serial I/O synchronous clock                 Pull-up control bit
                                                                                                                     selection bit
Serial I/O enable bit                          P-channel
Transmit enable bit                                 output                                                 Serial I/O enable bit
                                                                                               Serial I/O mode selection bit
               Direction                       disable bit
               register                                                                                    Serial I/O enable bit

                                                                                                                                 Direction
                                                                                                                                 register

Data bus  Port latch                                                                          Data bus  Port latch

          Serial I/O output                                                                   Serial I/O clock output
                                                                                                                           Serial I/O external clock input

Fig. 13 Port block diagram (1)

Rev.1.00 Oct 27, 2008 Page 17 of 128
REJ03B0266-0100
3804 Group (Spec.L)

(9) Port P37                            Pull-up control bit                (10) Port P40                        Pull-up control bit

Serial I/O3 mode selection bit                                                          Port XC switch bit
           Serial I/O3 enable bit                                                                    Direction
                                                                                                     register
        SRDY3 output enable bit
                            Direction
                            register

                                                                           Data bus       Port latch

Data bus       Port latch

                                                                                                                INT40 Interrupt input

Serial I/O3 ready output                                                                                                                        Port XC
                                                                                                                                                switch bit

(11) Port P41                           Pull-up control bit                (12) Port P47                                 Pull-up control bit

                Port XC switch bit                                          Timer Z operating
                             Direction                                            mode bits
                             register                                                Bit 2
                                                                                     Bit 1
Data bus       Port latch                                                            Bit 0

                                                                           Serial I/O1 mode selection bit
                                                                                      Serial I/O1 enable bit

                                                                                   SRDY1 output enable bit

                                                                                                              Direction
                                                                                                              register

                   INT00 Interrupt input                                   Data bus       Port latch

                                                               Port XC
                                                               switch bit
               Sub-clock generating circuit input

                                                                                          Timer output

                                                                                     Serial I/O1 ready output

                                                                                                                         CNTR2 interrupt input

(13) Port P50                                                              (14) Port P51

                                        Pull-up control bit                                                     Pull-up control bit

               Direction                                                   Serial I/O2 transmit completion signal                               P-channel
               register                                                                Serial I/O2 port selection bit                           output
                                                                                                                                                disable bit
                                                                                                         Direction
                                                                                                         register

Data bus       Port latch

                                                                           Data bus       Port latch

                                        Serial I/O2 input

                                                                                     Serial I/O2 output

Fig. 14 Port block diagram (2)

Rev.1.00 Oct 27, 2008 Page 18 of 128
REJ03B0266-0100
3804 Group (Spec.L)

(15) Port P52                                                       (16) Port P53                           Pull-up control bit

                                                Pull-up control bit                 SRDY2 output enable bit
Serial I/O2 synchronous clock
                                                                               Direction
                        selection bit                                          register
             Serial I/O2 port selection bit

                               Direction
                               register

                                                                     Data bus  Port latch

Data bus  Port latch

                                                                     Serial I/O2 ready output

Serial I/O2 clock output
                             Serial I/O2 external clock input

(17) Ports P54, P55                                                  (18) Port P56

                      Pull-up control bit                                         PWM function enable bit    Pull-up control bit

          Direction                                                            Direction
          register                                                             register

Data bus  Port latch

                                                                     Data bus  Port latch

          Pulse output mode                                                    PWM output
                  Timer output

                                 CNTR Interrupt input

Fig. 15 Port block diagram (3)

Rev.1.00 Oct 27, 2008 Page 19 of 128
REJ03B0266-0100
3804 Group (Spec.L)

b7                   b0

                         Port P0 pull-up control register
                         (PULL0: address 0FF016)

                         P00 pull-up control bit           Note:  Pull-up control is valid when the corresponding
                          0: No pull-up                           bit of the port direction register is "0" (input).
                          1: Pull-up                              When that bit is "1" (output), pull-up cannot be
                                                                  set to the port of which pull-up is selected.
                         P01 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P02 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P03 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P04 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P05 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P06 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P07 pull-up control bit
                          0: No pull-up
                          1: Pull-up

b7                   b0

                         Port P1 pull-up control register
                         (PULL1: address 0FF116)

                         P10 pull-up control bit           Note:  Pull-up control is valid when the corresponding
                          0: No pull-up                           bit of the port direction register is "0" (input).
                          1: Pull-up                              When that bit is "1" (output), pull-up cannot be
                                                                  set to the port of which pull-up is selected.
                         P11 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P12 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P13 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P14 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P15 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P16 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P17 pull-up control bit
                          0: No pull-up
                          1: Pull-up

Fig. 16 Structure of port pull-up control register (1)

Rev.1.00 Oct 27, 2008 Page 20 of 128
REJ03B0266-0100
3804 Group (Spec.L)

b7                   b0

                         Port P2 pull-up control register
                         (PULL2: address 0FF216)

                         P20 pull-up control bit           Note:  Pull-up control is valid when the corresponding
                          0: No pull-up                           bit of the port direction register is "0" (input).
                          1: Pull-up                              When that bit is "1" (output), pull-up cannot be
                                                                  set to the port of which pull-up is selected.
                         P21 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P22 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P23 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P24 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P25 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P26 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P27 pull-up control bit
                          0: No pull-up
                          1: Pull-up

b7                   b0

                         Port P3 pull-up control register
                         (PULL3: address 0FF316)

                         P30 pull-up control bit           Note:  Pull-up control is valid when the corresponding
                          0: No pull-up                           bit of the port direction register is "0" (input).
                          1: Pull-up                              When that bit is "1" (output), pull-up cannot be
                                                                  set to the port of which pull-up is selected.
                         P31 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         Not used
                          (return "0" when read)

                         P34 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P35 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P36 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P37 pull-up control bit
                          0: No pull-up
                          1: Pull-up

Fig. 17 Structure of port pull-up control register (2)

Rev.1.00 Oct 27, 2008 Page 21 of 128
REJ03B0266-0100
3804 Group (Spec.L)

b7                   b0

                         Port P4 pull-up control register
                         (PULL4: address 0FF416)

                         P40 pull-up control bit           Note:  Pull-up control is valid when the corresponding
                          0: No pull-up                           bit of the port direction register is "0" (input).
                          1: Pull-up                              When that bit is "1" (output), pull-up cannot be
                                                                  set to the port of which pull-up is selected.
                         P41 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P42 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P43 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P44 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P45 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P46 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P47 pull-up control bit
                          0: No pull-up
                          1: Pull-up

b7                   b0

                         Port P5 pull-up control register
                         (PULL5: address 0FF516)

                         P50 pull-up control bit           Note:  Pull-up control is valid when the corresponding
                          0: No pull-up                           bit of the port direction register is "0" (input).
                          1: Pull-up                              When that bit is "1" (output), pull-up cannot be
                                                                  set to the port of which pull-up is selected.
                         P51 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P52 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P53 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P54 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P55 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P56 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P57 pull-up control bit
                          0: No pull-up
                          1: Pull-up

Fig. 18 Structure of port pull-up control register (3)

Rev.1.00 Oct 27, 2008 Page 22 of 128
REJ03B0266-0100
3804 Group (Spec.L)

b7                   b0

                         Port P6 pull-up control register
                         (PULL6: address 0FF616)

                         P60 pull-up control bit           Note:  Pull-up control is valid when the corresponding
                          0: No pull-up                           bit of the port direction register is "0" (input).
                          1: Pull-up                              When that bit is "1" (output), pull-up cannot be
                                                                  set to the port of which pull-up is selected.
                         P61 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P62 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P63 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P64 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P65 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P66 pull-up control bit
                          0: No pull-up
                          1: Pull-up

                         P67 pull-up control bit
                          0: No pull-up
                          1: Pull-up

Fig. 19 Structure of port pull-up control register (4)

Rev.1.00 Oct 27, 2008 Page 23 of 128
REJ03B0266-0100
3804 Group (Spec.L)

Termination of unused pins                                         Especially, when expecting low consumption
                                                                   current (at STP or WIT instruction execution etc.),
Termination of common pins                                       pull-up or pull-down input ports to prevent
I/O ports: Select an input port or an output port and follow       through current (built-in resistor can be used).
                                                                   We recommend processing unused pins through a
                 each processing method.                           resistor which can secure IOH(avg) or IOL(avg).
                 In addition, it is recommended that related       Because, when an I/O port or a pin which have an
                 registers be overwritten periodically to prevent  output function is selected as an input port, it may
                 malfunctions, etc.                                operate as an output port by incorrect operation
Output ports: Open.                                                etc.
Input ports: If the input level become unstable, through current
                 flow to an input circuit, and the power supply
                 current may increase.

Table 7 Termination of unused pins

                 Pins                                                                   Termination
P0, P1, P2, P3, P4, P5, P6   Set to the input mode and connect each to VCC or VSS through a resistor of 1 k to 10 k.
                            Set to the output mode and open at "L" or "H" output state.
VREF                        Connect to VCC or VSS (GND).
AVSS                        Connect to VCC or VSS (GND).
XOUT                        Open (only when using external clock)

Rev.1.00 Oct 27, 2008 Page 24 of 128
REJ03B0266-0100
3804 Group (Spec.L)

INTERRUPTS                                                          An interrupt requests is accepted when all of the following
                                                                    conditions are satisfied:
The 3804 group (Spec.L) interrupts are vector interrupts with a
fixed priority scheme, and generated by 16 sources among 24             Interrupt disable flag................................."0"
sources: 10 external, 13 internal, and 1 software.
The interrupt sources, vector addresses(1), and interrupt priority       Interrupt request bit..................................."1"
are shown in Table 8.                                                    Interrupt enable bit...................................."1"
                                                                    Though the interrupt priority is determined by hardware, priority
Each interrupt except the BRK instruction interrupt has the         processing can be performed by software using the above bits
interrupt request bit and the interrupt enable bit. These bits and  and flag.
the interrupt disable flag (I flag) control the acceptance of
interrupt requests. Figure 20 shows an interrupt control diagram.

Table 8 Interrupt vector addresses and priority

     Interrupt Source  Priority      Vector      Interrupt Request Generating                                Remarks
                                 Addresses(1)                Conditions
                                                                                         Non-maskable
                                 High  Low                                               External interrupt
                                                                                         (active edge selectable)
Reset(2)               1 FFFD16 FFFC16 At reset
                                                                                         External interrupt
INT0                   2 FFFB16 FFFA16 At detection of either rising or falling          (active edge selectable)
                                                          edge of INT0 input             Valid when serial I/O1 is selected

Timer Z                                        At timer Z underflow                      Valid when serial I/O1 is selected

INT1                   3 FFF916 FFF816 At detection of either rising or falling          External interrupt
                                                          edge of INT1 input             (active edge selectable)

Serial I/O1 reception  4 FFF716 FFF616 At completion of serial I/O1 data                 STP release timer underflow
                                                          reception
                                                                                         External interrupt
Serial I/O1            5 FFF516 FFF416 At completion of serial I/O1                      (active edge selectable)
transmission                                              transmission shift or when     External interrupt
                                                          transmission buffer is empty   (active edge selectable)
                                                                                         External interrupt
SCL, SDA                                       At detection of either rising or falling  (active edge selectable)
                                               edge of SCL or SDA                        Valid when serial I/O3 is selected

Timer X                6 FFF316 FFF216 At timer X underflow                              Valid when serial I/O2 is selected

Timer Y                7 FFF116 FFF016 At timer Y underflow                              External interrupt
                                                                                         (active edge selectable)
Timer 1                8 FFEF16 FFEE16 At timer 1 underflow
                                                                                         External interrupt
Timer 2                9 FFED16 FFEC16 At timer 2 underflow                              (active edge selectable)
                                                                                         External interrupt
CNTR0                  10 FFEB16 FFEA16 At detection of either rising or falling         (active edge selectable)
                                                           edge of CNTR0 input           External interrupt
                                                                                         (active edge selectable)
SCL, SDA                                       At detection of either rising or falling
                                               edge of SCL or SDA                        Valid when serial I/O3 is selected

CNTR1                  11 FFE916 FFE816 At detection of either rising or falling         Non-maskable software interrupt
                                                           edge of CNTR1 input

Serial I/O3 reception                          At completion of serial I/O3 data
                                               reception

Serial I/O2            12 FFE716 FFE616 At completion of serial I/O2 data
                                                           transmission or reception

Timer Z                                        At timer Z underflow

INT2                   13 FFE516 FFE416 At detection of either rising or falling
                                                           edge of INT2 input

I2C                                            At completion of data transfer

INT3                   14 FFE316 FFE216 At detection of either rising or falling
                                                           edge of INT3 input

INT4                   15 FFE116 FFE016 At detection of either rising or falling
                                                           edge of INT4 input

CNTR2                                          At detection of either rising or falling
                                               edge of CNTR2 input

A/D conversion         16 FFDF16 FFDE16 At completion of A/D conversion

Serial I/O3                                    At completion of serial I/O3
transmission                                   transmission shift or when
                                               transmission buffer is empty

BRK instruction        17 FFDD16 FFDC16 At BRK instruction execution

NOTES:
   1. Vector addresses contain interrupt jump destination addresses.
   2. Reset function in the same way as an interrupt with the highest priority.

Rev.1.00 Oct 27, 2008 Page 25 of 128
REJ03B0266-0100
3804 Group (Spec.L)

Interrupt request bit                                                  Interrupt request
Interrupt enable bit

             Interrupt disable flag (I)

                                               BRK instruction
                                                            Reset

Fig. 20 Interrupt control diagram

Interrupt Disable Flag                                                Interrupt Source Selection
The interrupt disable flag is assigned to bit 2 of the processor       Any of the following combinations can be selected by the
status register. This flag controls the acceptance of all interrupt    interrupt source selection register (003916).
requests except for the BRK instruction. When this flag is set to
"1", the acceptance of interrupt requests is disabled. When it is         1. INT0 or timer Z
set to "0", acceptance of interrupt requests is enabled. This flag is     2. Serial I/O1 transmission or SCL, SDA
set to "1" with the SET instruction and set to "0" with the CLI           3. CNTR0 or SCL, SDA
instruction.                                                              4. CNTR1 or Serial I/O3 reception
When an interrupt request is accepted, the contents of the                5. Serial I/O2 or timer Z
processor status register are pushed onto the stack while the             6. INT2 or I2C
interrupt disable flag remains set to "0". Subsequently, this flag is     7. INT4 or CNTR2
automatically set to "1" and multiple interrupts are disabled. To         8. A/D conversion or serial I/O3 transmission
use multiple interrupts, set this flag to "0" with the CLI
instruction within the interrupt processing routine.                   External Interrupt Pin Selection
The contents of the processor status register are popped off the       For external interrupts INT0 and INT4, the INT0, INT4 interrupt
stack with the RTI instruction.                                        switch bit in the interrupt edge selection register (bit 6 of address
                                                                       003A16) can be used to select INT00 and INT40 pin input or
Interrupt Request Bits                                               INT01 and INT41 pin input.
Once an interrupt request is generated, the corresponding
interrupt request bit is set to "1" and remains "1" until the request
is accepted. When the request is accepted, this bit is
automatically set to "0".
Each interrupt request bit can be set to "0", but cannot be set to
"1", by software.

Interrupt Enable Bits

The interrupt enable bits control the acceptance of the
corresponding interrupt requests. When an interrupt enable bit is
set to "0", the acceptance of the corresponding interrupt request
is disabled. If an interrupt request occurs in this condition, the
corresponding interrupt request bit is set to "1", but the interrupt
request is not accepted. When an interrupt enable bit is set to "1",
acceptance of the corresponding interrupt request is enabled.
Each interrupt enable bit can be set to "0" or "1" by software.
The interrupt enable bit for an unused interrupt should be set to
"0".

Rev.1.00 Oct 27, 2008 Page 26 of 128
REJ03B0266-0100
3804 Group (Spec.L)

b7  b0 Interrupt edge selection register

                     (INTEDGE : address 003A16)

                     INT0 interrupt edge selection bit         0 : Falling edge active
                     INT1 interrupt edge selection bit         1 : Rising edge active
                     Not used (returns "0" when read)
                     INT2 interrupt edge selection bit         0 : Falling edge active
                     INT3 interrupt edge selection bit         1 : Rising edge active
                     INT4 interrupt edge selection bit
                     INT0, INT4 interrupt switch bit

                      0 : INT00, INT40 interrupt
                      1 : INT01, INT41 interrupt
                     Not used (returns "0" when read)

b7  b0 Interrupt request register 1                               b7                    b0 Interrupt request register 2

                     (IREQ1 : address 003C16)                                           (IREQ2 : address 003D16)

                     INT0/Timer Z interrupt request bit                                 CNTR0/SCL,SDA interrupt request bit
                     INT1 interrupt request bit                                         CNTR1/Serial I/O3 receive interrupt
                     Serial I/O1 receive interrupt request bit                          request bit
                     Serial I/O1 transmit/SCL,SDA interrupt                             Serial I/O2/Timer Z interrupt request bit
                     request bit                                                        INT2/I2C interrupt request bit
                     Timer X interrupt request bit                                      INT3 interrupt request bit
                     Timer Y interrupt request bit                                      INT4/CNTR2 interrupt request bit
                     Timer 1 interrupt request bit                                      AD converter/Serial I/O3 transmit
                     Timer 2 interrupt request bit                                      interrupt request bit
                                                                                        Not used (returns "0" when read)
                     0 : No interrupt request issued
                     1 : Interrupt request issued                                       0 : No interrupt request issued
                                                                                        1 : Interrupt request issued

b7  b0 Interrupt control register 1                               b7                    b0 Interrupt control register 2

                     (ICON1 : address 003E16)                                           (ICON2 : address 003F16)

                     INT0/Timer Z interrupt enable bit                                  CNTR0/SCL,SDA interrupt enable bit
                     INT1 interrupt enable bit                                          CNTR1/Serial I/O3 receive interrupt
                     Serial I/O1 receive interrupt enable bit                           enable bit
                     Serial I/O1 transmit/SCL,SDA interrupt                             Serial I/O2/Timer Z interrupt enable bit
                     enable bit                                                         INT2/I2C interrupt enable bit
                     Timer X interrupt enable bit                                       INT3 interrupt enable bit
                     Timer Y interrupt enable bit                                       INT4/CNTR2 interrupt enable bit
                     Timer 1 interrupt enable bit                                       AD converter/Serial I/O3 transmit
                     Timer 2 interrupt enable bit                                       interrupt enable bit
                                                                                        Not used (returns "0" when read)
                     0 : Interrupts disabled                                            (Do not write "1".)
                     1 : Interrupts enabled
                                                                                        0 : Interrupts disabled
                                                                                        1 : Interrupts enabled

b7  b0 Interrupt source selection register

                     (INTSEL : address 003916)

                     INT0/Timer Z interrupt source selection bit

                     0 : INT0 interrupt

                       1 : Timer Z interrupt                                            (Do not write "1" to these bits simultaneously.)
                     Serial I/O2/Timer Z interrupt source selection bit

                     0 : Serial I/O2 interrupt

                     1 : Timer Z interrupt

                     Serial I/O1 transmit/SCL, SDA interrupt source selection bit

                     0 : Serial I/O1 transmit interrupt

                       1 : SCL, SDA interrupt                                           (Do not write "1" to these bits simultaneously.)
                     CNTR0/SCL, SDA interrupt source selection bit

                     0 : CNTR0 interrupt

                     1 : SCL, SDA interrupt

                     INT4/CNTR2 interrupt source selection bit

                     0 : INT4 interrupt

                     1 : CNTR2 interrupt

                     INT2/I2C interrupt source selection bit

                     0 : INT2 interrupt

                     1 : I2C interrupt

                     CNTR1/Serial I/O3 receive interrupt source selection bit

                     0 : CNTR1 interrupt

                     1 : Serial I/O3 receive interrupt

                     AD converter/Serial I/O3 transmit interrupt source selection bit

                     0 : A/D converter interrupt

                     1 : Serial I/O3 transmit interrupt

Fig. 21 Structure of interrupt-related registers

Rev.1.00 Oct 27, 2008 Page 27 of 128
REJ03B0266-0100
3804 Group (Spec.L)

Interrupt Request Generation, Acceptance, and Handling              
Interrupts have the following three phases.
(i) Interrupt Request Generation                                      The interrupt request bit may be set to "1" in the following cases.
                                                                      When setting the external interrupt active edge
     An interrupt request is generated by an interrupt source
     (external interrupt signal input, timer underflow, etc.) and       Related registers: Interrupt edge selection register
     the corresponding request bit is set to "1".                                            (address 003A16)
(ii) Interrupt Request Acceptance                                                            Timer XY mode register (address 002316)
     Based on the interrupt acceptance timing in each instruction                            Timer Z mode register (address 002A16)
     cycle, the interrupt control circuit determines acceptance                              I2C START/STOP condition control register
     conditions (interrupt request bit, interrupt enable bit, and                            (address 001616)
     interrupt disable flag) and interrupt priority levels for
     accepting interrupt requests. When two or more interrupt          When switching the interrupt sources of an interrupt vector
     requests are generated simultaneously, the highest priority        address where two or more interrupt sources are assigned
     interrupt is accepted. The value of interrupt request bit for      Related registers: Interrupt source selection register
     an unaccepted interrupt remains the same and acceptance is                              (address 003916)
     determined at the next interrupt acceptance timing point.
(iii) Handling of Accepted Interrupt Request                          If it is not necessary to generate an interrupt synchronized with
     The accepted interrupt request is processed.                     these settings, take the following sequence.

Figure 22 shows the time up to execution in the interrupt               (1) Set the corresponding enable bit to "0" (disabled).
processing routine, and Figure 23 shows the interrupt sequence.         (2) Set the interrupt edge selection bit (the active edge switch
Figure 24 shows the timing of interrupt request generation,
interrupt request bit, and interrupt request acceptance.                      bit) or the interrupt source bit.
                                                                        (3) Set the corresponding interrupt request bit to "0" after one
Interrupt Handling Execution
When interrupt handling is executed, the following operations                 or more instructions have been executed.
are performed automatically.                                            (4) Set the corresponding interrupt enable bit to "1" (enabled).
(1) Once the currently executing instruction is completed, an
                                                                      Interrupt request  Interrupt request                      Interrupt routine
     interrupt request is accepted.                                       generated
(2) The contents of the program counters and the processor                                   acceptance                         starts

     status register at this point are pushed onto the stack area in                                        Interrupt sequence
     order from 1 to 3.
     1. High-order bits of program counter (PCH)                      Main routine                       Stack push and             Interrupt handling
     2. Low-order bits of program counter (PCL)                                                            Vector fetch                    routine
     3. Processor status register (PS)
(3) Concurrently with the push operation, the jump address of         0 to 16*cycles                        7 cycles
     the corresponding interrupt (the start address of the interrupt
     processing routine) is transferred from the interrupt vector to                                               7 to 23 cycles
     the program counter.                                                            * When executing DIV instruction
(4) The interrupt request bit for the corresponding interrupt is
     set to "0". Also, the interrupt disable flag is set to "1" and   Fig. 22 Time up to execution in interrupt routine
     multiple interrupts are disabled.
(5) The interrupt routine is executed.                                                                   Push onto stack                           Execute interrupt
(6) When the RTI instruction is executed, the contents of the                                              Vector fetch                            routine
     registers pushed onto the stack area are popped off in the
     order from 3 to 1. Then, the routine that was before running                        PC        S,SPS S-1,SPS S-2,SPS BL         BH             AL,AH
     interrupt processing resumes.                                            SYNC
                                                                                         Not used        PCH PCL PS             AL      AH
As described above, it is necessary to set the stack pointer and                  RD
the jump address in the vector area corresponding to each                        WR
interrupt to execute the interrupt processing routine.                Address bus
                                                                          Data bus

                                                                         SYNC : CPU operation code fetch cycle
                                                                                    (This is an internal signal that cannot be observed from the external unit.)

                                                                         BL, BH: Vector address of each interrupt
                                                                         AL, AH: Jump destination address of each interrupt
                                                                         SPS : "0016" or "0116"

                                                                                    ([SPS] is a page selected by the stack page selection bit of CPU mode register.)

                                                                      Fig. 23 Interrupt sequence

Rev.1.00 Oct 27, 2008 Page 28 of 128
REJ03B0266-0100
3804 Group (Spec.L)

                         Instruction cycle          Push onto stack                                      Instruction cycle
                                                      Vector fetch

Internal clock

SYNC

                         1                  2

                     T1                     IR1 T2                                               IR2 T3

                     T1 T2 T3 : Interrupt acceptance timing points
                     IR1 IR2 : Timings points at which the interrupt request bit is set to "1".

                     Note : Period 2 indicates the last  cycle during one instruction cycle.

                 (1) The interrupt request bit for an interrupt request generated during period 1 is set to "1" at timing point IR1.
                 (2) The interrupt request bit for an interrupt request generated during period 2 is set to "1" at timing point IR1 or IR2.

                     The timing point at which the bit is set to "1" varies depending on conditions. When two or more interrupt
                     requests are generated during the period 2, each request bit may be set to "1" at timing point IR1 or IR2
                     separately.

Fig. 24 Timing of interrupt request generation, interrupt request bit, and interrupt acceptance

Rev.1.00 Oct 27, 2008 Page 29 of 128
REJ03B0266-0100
3804 Group (Spec.L)

TIMERS                                                                (1) Timer mode

8-bit Timers                                                         Mode selection
The 3804 group (Spec.L) has four 8-bit timers: timer 1, timer 2,      This mode can be selected by setting "00" to the timer X
timer X, and timer Y.                                                 operating mode bits (bits 1 and 0) and the timer Y operating
The timer 1 and timer 2 use one prescaler in common, and the          mode bits (bits 5 and 4) of the timer XY mode register (address
timer X and timer Y use each prescaler. Those are 8-bit               002316).
prescalers. Each of the timers and prescalers has a timer latch or
a prescaler latch.                                                    Explanation of operation
The division ratio of each timer or prescaler is given by 1/(n + 1),  The timer count operation is started by setting "0" to the timer X
where n is the value in the corresponding timer or prescaler latch.   count stop bit (bit 3) and the timer Y count stop bit (bit 7) of the
All timers are down-counters. When the timer reaches "0016", an       timer XY mode register (address 002316).
underflow occurs at the next count pulse and the contents of the      When the timer reaches "0016", an underflow occurs at the next
corresponding timer latch are reloaded into the timer and the         count pulse and the contents of timer latch are reloaded into the
count is continued. When the timer underflows, the interrupt          timer and the count is continued.
request bit corresponding to that timer is set to "1".
                                                                      (2) Pulse Output Mode
Timer divider
The divider count source is switched by the main clock division       Mode selection
ratio selection bits of CPU mode register (bits 7 and 6 at address    This mode can be selected by setting "01" to the timer X
003B16). When these bits are "00" (high-speed mode) or "01"           operating mode bits (bits 1 and 0) and the timer Y operating
(middle-speed mode), XIN is selected. When these bits are "10"        mode bits (bits 5 and 4) of the timer XY mode register (address
(low-speed mode), XCIN is selected.                                   002316).

Prescaler 12                                                         Explanation of operation
The prescaler 12 counts the output of the timer divider. The          The operation is the same as the timer mode's. Moreover the
count source is selected by the timer 12, X count source selection    pulse which is inverted each time the timer underflows is output
register among 1/2, 1/4, 1/8, 1/16, 1/32, 1/64, 1/128, 1/256,         from CNTR0/CNTR1 pin. Regardless of the timer counting or
1/512, 1/1024 of f(XIN) or f(XCIN).                                   not the output of CNTR0/CNTR1 pin is initialized to the level of
                                                                      specified by their active edge switch bits when writing to the
Timer 1 and Timer 2                                                 timer. When the CNTR0 active edge switch bit (bit 2) and the
The timer 1 and timer 2 counts the output of prescaler 12 and         CNTR1 active edge switch bit (bit 6) of the timer XY mode
periodically set the interrupt request bit.                           register (address 002316) is "0", the output starts with "H" level.
                                                                      When it is "1", the output starts with "L" level.
Prescaler X and prescaler Y                                         Switching the CNTR0 or CNTR1 active edge switch bit will
The prescaler X and prescaler Y count the output of the timer         reverse the output level of the corresponding CNTR0 or CNTR1
divider or f(XCIN). The count source is selected by the timer 12,     pin.
X count source selection register (address 000E16) and the timer
Y, Z count source selection register (address 000F16) among 1/2,       Precautions
1/4, 1/8, 1/16, 1/32, 1/64, 1/128, 1/256, 1/512, and 1/1024 of        Set the double-function port of CNTR0/CNTR1 pin and port
f(XIN) or f(XCIN); and f(XCIN).                                       P54/P55 to output in this mode.

Timer X and Timer Y                                                 (3) Event Counter Mode
The timer X and timer Y can each select one of four operating
modes by setting the timer XY mode register (address 002316).          Mode selection
                                                                      This mode can be selected by setting "10" to the timer X
                                                                      operating mode bits (bits 1 and 0) and the timer Y operating
                                                                      mode bits (bits 5 and 4) of the timer XY mode register (address
                                                                      002316).

                                                                      Explanation of operation

                                                                      The operation is the same as the timer mode's except that the
                                                                      timer counts signals input from the CNTR0 or CNTR1 pin. The
                                                                      valid edge for the count operation depends on the CNTR0 active
                                                                      edge switch bit (bit 2) or the CNTR1 active edge switch bit (bit 6)
                                                                      of the timer XY mode register (address 002316). When it is "0",
                                                                      the rising edge is valid. When it is "1", the falling edge is valid.

                                                                      Precautions
                                                                      Set the double-function port of CNTR0/CNTR1 pin and port
                                                                      P54/P55 to input in this mode.

Rev.1.00 Oct 27, 2008 Page 30 of 128
REJ03B0266-0100
3804 Group (Spec.L)

(4) Pulse Width Measurement Mode
Mode selection
This mode can be selected by setting "11" to the timer X
operating mode bits (bits 1 and 0) and the timer Y operating
mode bits (bits 5 and 4) of the timer XY mode register (address
002316).
Explanation of operation
When the CNTR0 active edge switch bit (bit 2) or the CNTR1
active edge switch bit (bit 6) of the timer XY mode register
(address 002316) is "1", the timer counts during the term of one
falling edge of CNTR0/CNTR1 pin input until the next rising
edge of input ("L" term). When it is "0", the timer counts during
the term of one rising edge input until the next falling edge input
("H" term).
Precautions
Set the double-function port of CNTR0/CNTR1 pin and port
P54/P55 to input in this mode.
The count operation can be stopped by setting "1" to the timer X
count stop bit (bit 3) and the timer Y count stop bit (bit 7) of the
timer XY mode register (address 002316). The interrupt request
bit is set to "1" each time the timer underflows.
Precautions when switching count source
When switching the count source by the timer 12, X and Y count
source selection bits, the value of timer count is altered in
inconsiderable amount owing to generating of thin pulses on the
count input signals.
Therefore, select the timer count source before setting the value
to the prescaler and the timer.

Rev.1.00 Oct 27, 2008 Page 31 of 128
REJ03B0266-0100
3804 Group (Spec.L)

XIN  "00"               (1/2, 1/4, 1/8, 1/16, 1/32, 1/64, 1/128, 1/256, 1/512, 1/1024)

     "01"

                        Divider                               Count source
                                                              selection bit
               "10"     Clock for timer 12
XCIN                           Clock for timer Y                                                                            Data bus

        Main clock                         Clock for timer X
        division ratio
        selection bits

                                                                                                                      Prescaler X latch (8)    Timer X latch (8)
                                                                                                                                                  Timer X (8)
                                 f(XCIN)                                         Pulse width  Timer mode
                                                                                 measurement  Pulse output mode
                                         CNTR0 active                            mode
                                         edge switch bit
                                                                                                                         Prescaler X (8)                                  To timer X interrupt
                                                     "0"                                                                                                                  request bit
     P54/CNTR0                                                                   Event        Timer X count stop bit
                                                                                 counter                                                                                  To CNTR0 interrupt
                                                                                 mode                                                                                     request bit

                                                              "1"

                                                                                          CNTR0 active "1"            Q
                                                                                          edge switch bit                Toggle flip-flop T

                                                                                                                 "0"  Q  R

                      Port P54                                Port P54                                                                         Timer X latch write pulse
           direction register                                 latch                                                                            Pulse output mode

                                 Pulse output mode

                                                                                                                            Data bus

                                                              Count source selection bit

                        Clock for timer Y                                                                             Prescaler Y latch (8)    Timer Y latch (8)
                                     f(XCIN)                                                                                                      Timer Y (8)
                                                                                 Pulse width  Timer mode
                                                                                 measurement  Pulse output mode
                                                                                 mode

                                                                                                                         Prescaler Y (8)                                  To timer Y interrupt
                                                                                                                                                                          request bit
     P55/CNTR1                                                CNTR1 active       Event        Timer Y count stop bit
                                                              edge switch bit    counter                                                                                  To CNTR1 interrupt
                                                                                 mode                                                                                     request bit
                                                                            "0"

                                                              "1"

                                                                                          CNTR1 active     "1"
                                                                                          edge switch bit
                                                                                                                      Q
                                                                                                                         Toggle flip-flop T

                                                                                                                      Q  R

                                                              Port P55                                     "0"
                                                              latch
                      Port P55                                                                                                                 Timer Y latch write pulse
           direction register                                                                                                                  Pulse output mode

                                 Pulse output mode

                                                                                                           Data bus

                                 Clock for timer 12                                       Prescaler 12 latch (8)            Timer 1 latch (8)  Timer 2 latch (8)          To timer 2 interrupt
                                                                                               Prescaler 12 (8)                Timer 1 (8)        Timer 2 (8)             request bit

                                                                                                                                                                          To timer 1 interrupt
                                                                                                                                                                          request bit

Fig. 25 Block diagram of timer X, timer Y, timer 1, and timer 2

Rev.1.00 Oct 27, 2008 Page 32 of 128
REJ03B0266-0100
3804 Group (Spec.L)

b7                   b0

                                             Timer XY mode register
                                             (TM : address 002316)

                                             Timer X operating mode bits
                                             b1 b0
                                              0 0: Timer mode
                                              0 1: Pulse output mode
                                              1 0: Event counter mode
                                              1 1: Pulse width measurement mode

                                             CNTR0 active edge switch bit
                                              0: Interrupt at falling edge
                                                  Count at rising edge in event counter mode
                                              1: Interrupt at rising edge
                                                  Count at falling edge in event counter mode

                                             Timer X count stop bit
                                              0: Count start
                                              1: Count stop

                                             Timer Y operating mode bits
                                             b5 b4
                                              0 0: Timer mode
                                              0 1: Pulse output mode
                                              1 0: Event counter mode
                                              1 1: Pulse width measurement mode

                                             CNTR1 active edge switch bit
                                              0: Interrupt at falling edge
                                                  Count at rising edge in event counter mode
                                              1: Interrupt at rising edge
                                                  Count at falling edge in event counter mode

                                             Timer Y count stop bit

                                              0: Count start
                                              1: Count stop

Fig. 26 Structure of timer XY mode register

Rev.1.00 Oct 27, 2008 Page 33 of 128
REJ03B0266-0100
3804 Group (Spec.L)

b7                   b0

                                      Timer 12, X count source selection register
                                      (T12XCSS : address 000E16)

                                      Timer 12 count source selection bits         1010:  Not used
                                       b3 b2 b1 b0                                 1011:
                                       0 0 0 0 : f(XIN)/2 or f(XCIN)/2             1100:
                                       0 0 0 1 : f(XIN)/4 or f(XCIN)/4             1101:
                                       0 0 1 0 : f(XIN)/8 or f(XCIN)/8             1110:
                                       0 0 1 1 : f(XIN)/16 or f(XCIN)/16           1111:
                                       0 1 0 0 : f(XIN)/32 or f(XCIN)/32
                                       0 1 0 1 : f(XIN)/64 or f(XCIN)/64
                                       0 1 1 0 : f(XIN)/128 or f(XCIN)/128
                                       0 1 1 1 : f(XIN)/256 or f(XCIN)/256
                                       1 0 0 0 : f(XIN)/512 or f(XCIN)/512
                                       1 0 0 1 : f(XIN)/1024 or f(XCIN)/1024

                                      Timer X count source selection bits          1011:  Not used
                                       b7 b6 b5 b4                                 1100:
                                       0 0 0 0 : f(XIN)/2 or f(XCIN)/2             1101:
                                       0 0 0 1 : f(XIN)/4 or f(XCIN)/4             1110:
                                       0 0 1 0 : f(XIN)/8 or f(XCIN)/8             1111:
                                       0 0 1 1 : f(XIN)/16 or f(XCIN)/16
                                       0 1 0 0 : f(XIN)/32 or f(XCIN)/32
                                       0 1 0 1 : f(XIN)/64 or f(XCIN)/64
                                       0 1 1 0 : f(XIN)/128 or f(XCIN)/128
                                       0 1 1 1 : f(XIN)/256 or f(XCIN)/256
                                       1 0 0 0 : f(XIN)/512 or f(XCIN)/512
                                       1 0 0 1 : f(XIN)/1024 or f(XCIN)/1024
                                       1 0 1 0 : f(XCIN)

b7                   b0

                                      Timer Y, Z count source selection register
                                      (TYZCSS : address 000F16)

                                      Timer Y count source selection bits          1011:  Not used
                                       b3 b2 b1 b0                                 1100:
                                       0 0 0 0 : f(XIN)/2 or f(XCIN)/2             1101:
                                       0 0 0 1 : f(XIN)/4 or f(XCIN)/4             1110:
                                       0 0 1 0 : f(XIN)/8 or f(XCIN)/8             1111:
                                       0 0 1 1 : f(XIN)/16 or f(XCIN)/16
                                       0 1 0 0 : f(XIN)/32 or f(XCIN)/32
                                       0 1 0 1 : f(XIN)/64 or f(XCIN)/64
                                       0 1 1 0 : f(XIN)/128 or f(XCIN)/128
                                       0 1 1 1 : f(XIN)/256 or f(XCIN)/256
                                       1 0 0 0 : f(XIN)/512 or f(XCIN)/512
                                       1 0 0 1 : f(XIN)/1024 or f(XCIN)/1024
                                       1 0 1 0 : f(XCIN)

                                      Timer Z count source selection bits          1011:  Not used
                                       b7 b6 b5 b4                                 1100:
                                       0 0 0 0 : f(XIN)/2 or f(XCIN)/2             1101:
                                       0 0 0 1 : f(XIN)/4 or f(XCIN)/4             1110:
                                       0 0 1 0 : f(XIN)/8 or f(XCIN)/8             1111:
                                       0 0 1 1 : f(XIN)/16 or f(XCIN)/16
                                       0 1 0 0 : f(XIN)/32 or f(XCIN)/32
                                       0 1 0 1 : f(XIN)/64 or f(XCIN)/64
                                       0 1 1 0 : f(XIN)/128 or f(XCIN)/128
                                       0 1 1 1 : f(XIN)/256 or f(XCIN)/256
                                       1 0 0 0 : f(XIN)/512 or f(XCIN)/512
                                       1 0 0 1 : f(XIN)/1024 or f(XCIN)/1024
                                       1 0 1 0 : f(XCIN)

Fig. 27 Structure of timer 12, X and timer Y, Z count source selection registers

Rev.1.00 Oct 27, 2008 Page 34 of 128
REJ03B0266-0100
3804 Group (Spec.L)

16-bit Timer                                                          (2) Event counter mode
The timer Z is a 16-bit timer. When the timer reaches "000016",
an underflow occurs at the next count pulse and the                      Mode selection
corresponding timer latch is reloaded into the timer and the count      This mode can be selected by setting "000" to the timer Z
is continued. When the timer underflows, the interrupt request bit      operating mode bits (bits 2 to 0) and setting "1" to the
corresponding to the timer Z is set to "1".                             timer/event counter mode switch bit (bit 7) of the timer Z mode
When reading/writing to the timer Z, perform reading/writing to         register (address 002A16).
both the high-order byte and the low-order byte. When reading           The valid edge for the count operation depends on the CNTR2
the timer Z, read from the high-order byte first, followed by the       active edge switch bit (bit 5) of the timer Z mode register
low-order byte. Do not perform the writing to the timer Z               (address 002A16). When it is "0", the rising edge is valid. When
between read operation of the high-order byte and read operation        it is "1", the falling edge is valid.
of the low-order byte. When writing to the timer Z, write to the
low-order byte first, followed by the high-order byte. Do not            Interrupt
perform the reading to the timer Z between write operation of the       The interrupt at an underflow is the same as the timer mode's.
low-order byte and write operation of the high-order byte.
The timer Z can select the count source by the timer Z count             Explanation of operation
source selection bits of timer Y, Z count source selection register     The operation is the same as the timer mode's.
(bits 7 to 4 at address 000F16).                                        Set the double-function port of CNTR2 pin and port P47 to input
Timer Z can select one of seven operating modes by setting the          in this mode.
timer Z mode register (address 002A16).                                 Figure 30 shows the timing chart of the timer/event counter
                                                                        mode.
(1) Timer mode
                                                                        (3) Pulse output mode
Mode selection
This mode can be selected by setting "000" to the timer Z                Mode selection
operating mode bits (bits 2 to 0) and setting "0" to the                This mode can be selected by setting "001" to the timer Z
timer/event counter mode switch bit (b7) of the timer Z mode            operating mode bits (bits 2 to 0) and setting "0" to the
register (address 002A16).                                              timer/event counter mode switch bit (b7) of the timer Z mode
                                                                        register (address 002A16).
Count source selection
In high- or middle-speed mode, 1/2, 1/4, 1/8, 1/16, 1/32, 1/64,          Count source selection
1/128, 1/256, 1/512 or 1/1024 of f(XIN); or f(XCIN) can be              In high- or middle-speed mode, 1/2, 1/4, 1/8, 1/16, 1/32, 1/64,
selected as the count source.                                           1/128, 1/256, 1/512 or 1/1024 of f(XIN); or f(XCIN) can be
In low-speed mode, 1/2, 1/4, 1/8, 1/16, 1/32, 1/64, 1/128, 1/256,       selected as the count source.
1/512 or 1/1024 of f(XCIN); or f(XCIN) can be selected as the           In low-speed mode, 1/2, 1/4, 1/8, 1/16, 1/32, 1/64, 1/128, 1/256,
count source.                                                           1/512 or 1/1024 of f(XCIN); or f(XCIN) can be selected as the
                                                                        count source.
Interrupt
When an underflow occurs, the INT0/timer Z interrupt request bit         Interrupt
(bit 0) of the interrupt request register 1 (address 003C16) is set to  The interrupt at an underflow is the same as the timer mode's.
"1".
                                                                         Explanation of operation
Explanation of operation                                              The operation is the same as the timer mode's. Moreover the
During timer stop, usually write data to a latch and a timer at the     pulse which is inverted each time the timer underflows is output
same time to set the timer value.                                       from CNTR2 pin. When the CNTR2 active edge switch bit (bit 5)
The timer count operation is started by setting "0" to the timer Z      of the timer Z mode register (address 002A16) is "0", the output
count stop bit (bit 6) of the timer Z mode register (address            starts with "H" level. When it is "1", the output starts with "L"
002A16).                                                                level.
When the timer reaches "000016", an underflow occurs at the
next count pulse and the contents of timer latch are reloaded into       Precautions
the timer and the count is continued.                                   The double-function port of CNTR2 pin and port P47 is
When writing data to the timer during operation, the data is            automatically set to the timer pulse output port in this mode.
written only into the latch. Then the new latch value is reloaded       The output from CNTR2 pin is initialized to the level depending
into the timer at the next underflow.                                   on CNTR2 active edge switch bit by writing to the timer.
                                                                        When the value of the CNTR2 active edge switch bit is changed,
                                                                        the output level of CNTR2 pin is inverted.
                                                                        Figure 31 shows the timing chart of the pulse output mode.

Rev.1.00 Oct 27, 2008 Page 35 of 128
REJ03B0266-0100
3804 Group (Spec.L)

(4) Pulse period measurement mode                                    (5) Pulse width measurement mode

Mode selection                                                      Mode selection
This mode can be selected by setting "010" to the timer Z            This mode can be selected by setting "011" to the timer Z
operating mode bits (bits 2 to 0) and setting "0" to the             operating mode bits (bits 2 to 0) and setting "0" to the
timer/event counter mode switch bit (b7) of the timer Z mode         timer/event counter mode switch bit (b7) of the timer Z mode
register (address 002A16).                                           register (address 002A16).

Count source selection                                              Count source selection

In high- or middle-speed mode, 1/2, 1/4, 1/8, 1/16, 1/32, 1/64,      In high- or middle-speed mode, 1/2, 1/4, 1/8, 1/16, 1/32, 1/64,
1/128, 1/256, 1/512 or 1/1024 of f(XIN); or f(XCIN) can be           1/128, 1/256, 1/512 or 1/1024 of f(XIN); or f(XCIN) can be
selected as the count source.                                        selected as the count source.
In low-speed mode, 1/2, 1/4, 1/8, 1/16, 1/32, 1/64, 1/128, 1/256,    In low-speed mode, 1/2, 1/4, 1/8, 1/16, 1/32, 1/64, 1/128, 1/256,
1/512 or 1/1024 of f(XCIN); or f(XCIN) can be selected as the        1/512 or 1/1024 of f(XCIN); or f(XCIN) can be selected as the
count source.                                                        count source.

Interrupt                                                          Interrupt

The interrupt at an underflow is the same as the timer mode's.       The interrupt at an underflow is the same as the timer mode's.
When the pulse period measurement is completed, the                  When the pulse widths measurement is completed, the
INT4/CNTR2 interrupt request bit (bit 5) of the interrupt request    INT4/CNTR2 interrupt request bit (bit 5) of the interrupt request
register 2 (address 003D16) is set to "1".                           register 2 (address 003D16) is set to "1".

Explanation of operation                                           Explanation of operation

The cycle of the pulse which is input from the CNTR2 pin is          The pulse width which is input from the CNTR2 pin is measured.
measured. When the CNTR2 active edge switch bit (bit 5) of the       When the CNTR2 active edge switch bit (bit 5) of the timer Z
timer Z mode register (address 002A16) is "0", the timer counts      mode register (address 002A16) is "0", the timer counts during
during the term from one falling edge of CNTR2 pin input to the      the term from one rising edge input to the next falling edge input
next falling edge. When it is "1", the timer counts during the       ("H" term). When it is "1", the timer counts during the term from
term from one rising edge input to the next rising edge input.       one falling edge of CNTR2 pin input to the next rising edge of
When the valid edge of measurement completion/start is               input ("L" term).
detected, the 1's complement of the timer value is written to the    When the valid edge of measurement completion is detected, the
timer latch and "FFFF16" is set to the timer.                        1's complement of the timer value is written to the timer latch.
Furthermore when the timer underflows, the timer Z interrupt         When the valid edge of measurement completion/start is
request occurs and "FFFF16" is set to the timer. When reading        detected, "FFFF16" is set to the timer.
the timer Z, the value of the timer latch (measured value) is read.  When the timer Z underflows, the timer Z interrupt occurs and
The measured value is retained until the next measurement            "FFFF16" is set to the timer Z. When reading the timer Z, the
completion.                                                          value of the timer latch (measured value) is read. The measured
                                                                     value is retained until the next measurement completion.
Precautions
                                                                      Precautions
Set the double-function port of CNTR2 pin and port P47 to input
in this mode.                                                        Set the double-function port of CNTR2 pin and port P47 to input
A read-out of timer value is impossible in this mode. The timer      in this mode.
can be written to only during timer stop (no measurement of          A read-out of timer value is impossible in this mode. The timer
pulse period).                                                       can be written to only during timer stop (no measurement of
Since the timer latch in this mode is specialized for the read-out   pulse widths).
of measured values, do not perform any write operation during        Since the timer latch in this mode is specialized for the read-out
measurement.                                                         of measured values, do not perform any write operation during
"FFFF16" is set to the timer when the timer underflows or when       measurement.
the valid edge of measurement start/completion is detected.          "FFFF16" is set to the timer when the timer underflows or when
Consequently, the timer value at start of pulse period               the valid edge of measurement start/completion is detected.
measurement depends on the timer value just before                   Consequently, the timer value at start of pulse width
measurement start.                                                   measurement depends on the timer value just before
Figure 32 shows the timing chart of the pulse period                 measurement start.
measurement mode.                                                    Figure 33 shows the timing chart of the pulse width measurement
                                                                     mode.

Rev.1.00 Oct 27, 2008 Page 36 of 128
REJ03B0266-0100
3804 Group (Spec.L)

(6) Programmable waveform generating mode                                 2. "L" one-shot pulse; Bit 5 of timer Z mode register = "1"
                                                                             The output level of the CNTR2 pin is initialized to "H" at
Mode selection                                                             mode selection. When trigger generation (input signal to
This mode can be selected by setting "100" to the timer Z                    INT1 pin) is detected, "L" is output from the CNTR2 pin.
operating mode bits (bits 2 to 0) and setting "0" to the                     When an underflow occurs, "H" is output. The "L" one-shot
timer/event counter mode switch bit (b7) of the timer Z mode                 pulse width is set by the setting value to the timer Z low-
register (address 002A16).                                                   order and high-order. When trigger generating is detected
                                                                             during timer count stop, although "L" is output from the
Count source selection                                                     CNTR2 pin, "L" output state continues because an under-
In high- or middle-speed mode, 1/2, 1/4, 1/8, 1/16, 1/32, 1/64,              flow does not occur.
1/128, 1/256, 1/512 or 1/1024 of f(XIN); or f(XCIN) can be
selected as the count source.                                           Precautions
In low-speed mode, 1/2, 1/4, 1/8, 1/16, 1/32, 1/64, 1/128, 1/256,      Set the double-function port of INT1 pin and port P42 to input in
1/512 or 1/1024 of f(XCIN); or f(XCIN) can be selected as the          this mode.
count source.                                                          The double-function port of CNTR2 pin and port P47 is
                                                                       automatically set to the programmable one-shot generating port
Interrupt                                                            in this mode.
The interrupt at an underflow is the same as the timer mode's.         This mode cannot be used in low-speed mode.
                                                                       If the value of the CNTR2 active edge switch bit is changed
Explanation of operation                                             during one-shot generating enabled or generating one-shot pulse,
The operation is the same as the timer mode's. Moreover the            then the output level from CNTR2 pin changes.
timer outputs the data set in the output level latch (bit 4) of the    Figure 35 shows the timing chart of the programmable one-shot
timer Z mode register (address 002A16) from the CNTR2 pin              generating mode.
each time the timer underflows.
Changing the value of the output level latch and the timer latch
after an underflow makes it possible to output an optional
waveform from the CNTR2 pin.

Precautions

The double-function port of CNTR2 pin and port P47 is
automatically set to the programmable waveform generating port
in this mode.
Figure 34 shows the timing chart of the programmable waveform
generating mode.

(7) Programmable one-shot generating mode

Mode selection
This mode can be selected by setting "101" to the timer Z
operating mode bits (bits 2 to 0) and setting "0" to the
timer/event counter mode switch bit (b7) of the timer Z mode
register (address 002A16).

Count source selection
In high- or middle-speed mode, 1/2, 1/4, 1/8, 1/16, 1/32, 1/64,
1/128, 1/256, 1/512 or 1/1024 of f(XIN); or f(XCIN) can be
selected as the count source.

Interrupt
The interrupt at an underflow is the same as the timer mode's.
The trigger to generate one-shot pulse can be selected by the INT1
active edge selection bit (bit 1) of the interrupt edge selection
register (address 003A16). When it is "0", the falling edge active is
selected; when it is "1", the rising edge active is selected.
When the valid edge of the INT1 pin is detected, the INT1
interrupt request bit (bit 1) of the interrupt request register 1
(address 003C16) is set to "1".

Explanation of operation
   1. "H" one-shot pulse; Bit 5 of timer Z mode register = "0"
      The output level of the CNTR2 pin is initialized to "L" at
      mode selection. When trigger generation (input signal to
      INT1 pin) is detected, "H" is output from the CNTR2 pin.
      When an underflow occurs, "L" is output. The "H" one-shot
      pulse width is set by the setting value to the timer Z register
      low-order and high-order. When trigger generating is
      detected during timer count stop, although "H" is output
      from the CNTR2 pin, "H" output state continues because an
      underflow does not occur.

Rev.1.00 Oct 27, 2008 Page 37 of 128
REJ03B0266-0100
3804 Group (Spec.L)

                                                                      Switch of interrupt active edge of CNTR2 and INT1
Timer Z write control                                                                          Each interrupt active edge depends on setting of the CNTR2
Which write control can be selected by the timer Z write control                                 active edge switch bit and the INT1 active edge selection bit.
bit (bit 3) of the timer Z mode register (address 002A16), writing
data to both the latch and the timer at the same time or writing                                  Switch of count source
data only to the latch.                                                                          When switching the count source by the timer Z count source
When the operation "writing data only to the latch" is selected,                                 selection bits, the value of timer count is altered in
the value is set to the timer latch by writing data to the address of                            inconsiderable amount owing to generating of thin pulses on the
timer Z and the timer is updated at next underflow. After reset                                  count input signals.
release, the operation "writing data to both the latch and the timer                             Therefore, select the timer count source before setting the value
at the same time" is selected, and the value is set to both the latch                            to the prescaler and the timer.
and the timer at the same time by writing data to the address of
timer Z.                                                                                          Usage of CNTR2 pin as normal I/O port P47
In the case of writing data only to the latch, if writing data to the                            To use the CNTR2 pin as normal I/O port P47, set timer Z
latch and an underflow are performed almost at the same time,                                    operating mode bits (b2, b1, b0) of timer Z mode register
the timer value may become undefined.                                                            (address 002A16) to "000".

Timer Z read control
A read-out of timer value is impossible in pulse period
measurement mode and pulse width measurement mode. In the
other modes, a read-out of timer value is possible regardless of
count operating or stopped.
However, a read-out of timer latch value is impossible.

                                                                                                           CNTR2 active edge                Data bus

                                                                                                           switch bit           Programmable one-shot

                      P42/INT1                                                                                         "1" generating mode
                     Programmable one-shot
                                                                              Programmable one-shot
                              generating mode                                     generating circuit

                                       Output level latch                                                              "0"

                                                                                       Programmable waveform                                           To INT1 interrupt
                                                                                                                                                       request bit
                                                                                       generating mode
                                                                              DQ

                                                                              T
                                                                                      Pulse output mode

                                                                                                      CNTR2 active edge switch bit

                                                                                                 S    "0"
                                                                                                   Q

                                                                                       TQ             "1" Pulse output mode

"001"                                                                        Timer Z low-order latch Timer Z high-order latch                         To timer Z interrupt
"100"                                                                                                                                                 request bit
"101"                     Port P47                                           Timer Z low-order       Timer Z high-order
Timer Z operating          latch
mode bits

Port P47
direction register

                     Pulse period measurement mode
                      Pulse width measurement mode

                                                                                       Edge detection circuit

                                        "1"                                                           "1"                                              To CNTR2 interrupt
                                                                                                                                                       request bit
                                        "0"
P47/SRDY2/           CNTR2 active edge                     Clock for timer z  f(XCIN)
CNTR2                switch bit
                                                                                                      "0"
                          XIN                                                                                       Timer Z count stop bit
                                                                                                      Timer/Event

                                                                                                      counter mode

                                                                                                      switch bit

                                                           Divider                     Count source

                                                                                       selection bit

                     XCIN                                  (1/2, 1/4, 1/8, 1/16, 1/32, 1/64, 1/128, 1/256, 1/512, 1/1024)

Fig. 28 Block diagram of timer Z

Rev.1.00 Oct 27, 2008 Page 38 of 128
REJ03B0266-0100
3804 Group (Spec.L)

b7                   b0

                         Timer Z mode register
                         (TZM : address 002A16)

                         Timer Z operating mode bits
                         b2 b1 b0
                          0 0 0 : Timer/Event counter mode
                          0 0 1 : Pulse output mode
                          0 1 0 : Pulse period measurement mode
                          0 1 1 : Pulse width measurement mode
                          1 0 0 : Programmable waveform generating mode
                          1 0 1 : Programmable one-shot generating mode
                          1 1 0 : Not available
                          1 1 1 : Not available

                         Timer Z write control bit
                          0 : Writing data to both latch and timer simultaneously
                          1 : Writing data only to latch

                         Output level latch
                          0 : "L" output
                          1 : "H" output

                         CNTR2 active edge switch bit
                          0 : Event counter mode: Count at rising edge
                              Pulse output mode: Start outputting "H"
                              Pulse period measurement mode: Measurement between two falling edges
                              Pulse width measurement mode: Measurement of "H" term
                              Programmable one-shot generating mode: After start outputting "L",
                                "H" one-shot pulse generated
                              Interrupt at falling edge
                          1 : Event counter mode: Count at falling edge
                              Pulse output mode: Start outputting "L"
                              Pulse period measurement mode: Measurement between two rising edges
                              Pulse width measurement mode: Measurement of "L" term
                              Programmable one-shot generating mode: After start outputting "H",
                                "L" one-shot pulse generated
                              Interrupt at rising edge

                         Timer Z count stop bit
                         0 : Count start
                         1 : Count stop

                         Timer/Event counter mode switch bit(1)
                         0 : Timer mode
                         1 : Event counter mode

    Note 1: When selecting the modes except the timer/event counter mode, set "0" to this bit.

Fig. 29 Structure of timer Z mode register

Rev.1.00 Oct 27, 2008 Page 39 of 128
REJ03B0266-0100
3804 Group (Spec.L)

                     FFFF16
                           TL

                     000016

                                               TR      TR     TR

                               TL : Value set to timer latch
                               TR : Timer interrupt request

Fig. 30 Timing chart of timer/event counter mode

                     FFFF16

                     TL

                     000016

                                           TR      TR  TR     TR

Waveform output                            CNTR2       CNTR2
from CNTR2 pin

                               TL : Value set to timer latch
                               TR : Timer interrupt request
                               CNTR2 : CNTR2 interrupt request
                               (CNTR2 active edge switch bit = "0"; Falling edge active)

Fig. 31 Timing chart of pulse output mode

Rev.1.00 Oct 27, 2008 Page 40 of 128
REJ03B0266-0100
3804 Group (Spec.L)

            000016                    TR                                                     TR
                  T3                                                       FFFF16
                  T2   FFFF16 + T1        T2     T3
                   T1

            FFFF16

Signal input from
        CNTR2 pin

                                          CNTR2 CNTR2                      CNTR2      CNTR2

                       CNTR2 of rising edge active
                       TR : Timer interrupt request
                       CNTR2 : CNTR2 interrupt request

Fig. 32 Timing chart of pulse period measurement mode (Measuring term between two rising edges)

000016

      T3
      T2
      T1
FFFF16

                                    TR

Signal input from      FFFF16 + T2               T3                               T1
        CNTR2 pin

                                          CNTR2         CNTR2                         CNTR2

                       CNTR2 interrupt of rising edge active; Measurement of "L" width
                       TR : Timer interrupt request
                       CNTR2 : CNTR2 interrupt request

Fig. 33 Timing chart of pulse width measurement mode (Measuring "L" term)

Rev.1.00 Oct 27, 2008 Page 41 of 128
REJ03B0266-0100
3804 Group (Spec.L)

                     FFFF16
                           T3
                             L

                           T2
                           T1

                     000016

Signal output from                    L                  T3

                     CNTR2 pin                  T1             T2

                                            TR TR              TR TR
                                                  CNTR2                 CNTR2

                                L : Timer initial value
                                TR : Timer interrupt request
                                CNTR2 : CNTR2 interrupt request
                                (CNTR2 active edge switch bit = "0"; Falling edge active)

Fig. 34 Timing chart of programmable waveform generating mode

                     FFFF16
                             L

Signal input from                           TR         TR      TR

                     INT1 pin

Signal output from                       L          L          L
         CNTR2 pin

                                            CNTR2 CNTR2

                                L : One-shot pulse width
                                TR : Timer interrupt request
                                CNTR2 : CNTR2 interrupt request
                                (CNTR2 active edge switch bit = "0"; Falling edge active)

Fig. 35 Timing chart of programmable one-shot generating mode ("H" one-shot pulse generating)

Rev.1.00 Oct 27, 2008 Page 42 of 128
REJ03B0266-0100
3804 Group (Spec.L)

SERIAL INTERFACE                                                               (1) Clock Synchronous Serial I/O Mode

Serial I/O1                                                                  Clock synchronous serial I/O1 mode can be selected by setting
Serial I/O1 can be used as either clock synchronous or                         the serial I/O1 mode selection bit of the serial I/O1 control
asynchronous (UART) serial I/O. A dedicated timer is also                      register (bit 6 of address 001A16) to "1".
provided for baud rate generation.                                             For clock synchronous serial I/O, the transmitter and the receiver
                                                                               must use the same clock. If an internal clock is used, transfer is
                                                                               started by a write signal to the transmit/receive buffer register.

                                                             Data bus                                 Serial I/O1 control register    Address 001A16

                                                                         Address 001816               Receive buffer full flag (RBF)
                                                    Receive buffer register 1
P44/RXD1                                             Receive shift register 1                                        Receive interrupt request (RI)
P46/SCLK1
                                                                          Shift clock       Clock control circuit

           BRG count source selection bit           Serial I/O1 synchronous clock selection bit
                                                                    Frequency division ratio 1/(n+1)

f(XIN)                                                                     Baud rate generator 1            1/4

(f(XCIN) in low-speed mode)                                                                 Address 001C16
                                               1/4

P47/SRDY1  F/F                                      Falling-edge detector                   Clock control circuit
P45/TXD1
                                                                               Shift clock                           Transmit shift completion flag (TSC)

                                                         Transmit shift register 1                    Transmit interrupt source selection bit
                                                                                                                                      Transmit interrupt request (TI)

                                                         Transmit buffer register 1                                  Transmit buffer empty flag (TBE)

                                                                          Address 001816              Serial I/O1 status register     Address 001916
                                                           Data bus

Fig. 36 Block diagram of clock synchronous serial I/O1

Transfer shift clock                                D0                     D1  D2                 D3             D4  D5               D6  D7
(1/2 to 1/2048 of the internal
clock, or an external clock)                        D0                     D1  D2                 D3             D4  D5               D6  D7

            Serial output TXD1

              Serial input RXD1

      Receive enable signal SRDY1

Write pulse to receive/transmit
buffer register 1 (address 001816)

                                    TBE = 0                                                                                                     RBF = 1
                                                TBE = 1                                                                                         TSC = 1
                                                TSC = 0
                                                                                                                                          Overrun error (OE)
                                                                                                                                          detection

Notes 1: As the transmit interrupt (TI), which can be selected, either when the transmit buffer has emptied (TBE=1) or after the transmit
            shift operation has ended (TSC=1), by setting the transmit interrupt source selection bit (TIC) of the serial I/O1 control register.

         2: If data is written to the transmit buffer register when TSC=0, the transmit clock is generated continuously and serial data is output
            continuously from the TXD pin.

         3: The receive interrupt (RI) is set when the receive buffer full flag (RBF) becomes "1".

Fig. 37 Operation of clock synchronous serial I/O1

Rev.1.00 Oct 27, 2008 Page 43 of 128
REJ03B0266-0100
3804 Group (Spec.L)

(2) Asynchronous Serial I/O (UART) Mode                                        The transmit and receive shift registers each have a buffer, but
                                                                               the two buffers have the same address in a memory. Since the
Clock asynchronous serial I/O mode (UART) can be selected by                   shift register cannot be written to or read from directly, transmit
clearing the serial I/O1 mode selection bit (b6) of the serial I/O1            data is written to the transmit buffer register, and receive data is
control register to "0".                                                       read from the receive buffer register.
Eight serial data transfer formats can be selected, and the transfer           The transmit buffer register can also hold the next data to be
formats used by a transmitter and receiver must be identical.                  transmitted, and the receive buffer register can hold a character
                                                                               while the next character is being received.

                                                                     Data bus

                                                                     Address 001816 Serial I/O1 control register Address 001A16

                                            OE     Receive buffer register 1                               Receive buffer full flag (RBF)

                                    Character length selection bit                                         Receive interrupt request (RI)

P44/RXD1           ST detector      7 bits         Receive shift register 1

                                    8 bits                                                                              1/16

                                                   PE FE SP detector                                                          UART1 control register
                                                                                                                                        Address 001B16
                                                                                                 Clock control circuit

                                                Serial I/O1 synchronous clock selection bit

P46/SCLK1

f(XIN)             BRG count source selection bit    Frequency division ratio 1/(n+1)
                                                          Baud rate generator
(f(XCIN) in low-speed mode)                                    Address 001C16

                               1/4                 ST/SP/PA generator

                                                                                   1/16                                 Transmit shift
                                                                                                                        completion flag (TSC)

P45/TXD1                                                             Transmit shift register 1         Transmit interrupt source selection bit
                                                                                                                                             Transmit interrupt request (TI)

                                    Character length selection bit

                                                                     Transmit buffer register 1                                     Transmit buffer empty flag (TBE)
                                                                                       Address 001816      Serial I/O1 status register Address 001916

                                                                     Data bus

Fig. 38 Block diagram of UART serial I/O1

  Transmit or
receive clock

Transmit buffer
     write signal

                   TBE=0                    TBE=0
                        TSC=0
                                                                               TBE=1                                                           TSC=1*
                        TBE=1

  Serial output                ST   D0      D1                                 SP            ST        D0  D1                                                SP
            TXD1                                                                                                        Generated at 2nd bit in 2-stop-bit mode
                                                1 start bit
Receive buffer                                  7 or 8 data bit
    read signal                                 1 or 0 parity bit
                                                1 or 2 stop bit (s)

                                                                                                           RBF=0

                                                                               RBF=1                                                           RBF=1

Serial input                   ST   D0      D1                                 SP            ST        D0  D1                                  SP
        RXD1

Notes 1: Error flag detection occurs at the same time that the RBF flag becomes "1" (at 1st stop bit, during reception).
        2: As the transmit interrupt (TI), when either the TBE or TSC flag becomes "1", can be selected to occur depending on the setting of the transmit interrupt source
            selection bit (TIC) of the serial I/O1 control register.
        3: The receive interrupt (RI) is set when the RBF flag becomes "1".
        4: After data is written to the transmit buffer when TSC=1, 0.5 to 1.5 cycles of the data shift cycle are necessary until changing to TSC=0.

Fig. 39 Operation of UART serial I/O1

Rev.1.00 Oct 27, 2008 Page 44 of 128
REJ03B0266-0100
3804 Group (Spec.L)

[Transmit Buffer Register 1/Receive Buffer Register 1
(TB1/RB1)] 001816
The transmit buffer register 1 and the receive buffer register 1 are
located at the same address. The transmit buffer is write-only and
the receive buffer is read-only. If a character bit length is 7 bits,
the MSB of data stored in the receive buffer is "0".
[Serial I/O1 Status Register (SIO1STS)] 001916
The read-only serial I/O1 status register consists of seven flags
(bits 0 to 6) which indicate the operating status of the serial I/O1
function and various errors.
Three of the flags (bits 4 to 6) are valid only in UART mode.
The receive buffer full flag (bit 1) is cleared to "0" when the
receive buffer register is read.
If there is an error, it is detected at the same time that data is
transferred from the receive shift register to the receive buffer
register, and the receive buffer full flag is set. A write to the
serial I/O1 status register clears all the error flags OE, PE, FE,
and SE (bit 3 to bit 6, respectively). Writing "0" to the serial I/O1
enable bit SIOE (bit 7 of the serial I/O1 control register) also
clears all the status flags, including the error flags.
Bits 0 to 6 of the serial I/O1 status register are initialized to "0" at
reset, but if the transmit enable bit (bit 4) of the serial I/O1
control register has been set to "1", the transmit shift completion
flag (bit 2) and the transmit buffer empty flag (bit 0) become "1".
[Serial I/O1 Control Register (SIO1CON)] 001A16
The serial I/O1 control register consists of eight control bits for
the serial I/O1 function.
[UART1 Control Register (UART1CON)] 001B16
The UART control register consists of four control bits (bits 0 to
3) which are valid when asynchronous serial I/O is selected and
set the data format of an data transfer, and one bit (bit 4) which is
always valid and sets the output structure of the P45/TXD1 pin.
[Baud Rate Generator 1 (BRG1)] 001C16
The baud rate generator determines the baud rate for serial
transfer.
The baud rate generator divides the frequency of the count source
by 1/(n + 1), where n is the value written to the baud rate
generator.

Rev.1.00 Oct 27, 2008 Page 45 of 128
REJ03B0266-0100
3804 Group (Spec.L)

b7  b0 Serial I/O1 status register                  b7  b0 Serial I/O1 control register

    (SIO1STS : address 001916)                          (SIO1CON : address 001A16)

    Transmit buffer empty flag (TBE)                    BRG count source selection bit (CSS)

    0: Buffer full                                      0: f(XIN) (f(XCIN) in low-speed mode)

    1: Buffer empty                                     1: f(XIN)/4 (f(XCIN)/4 in low-speed mode)

    Receive buffer full flag (RBF)                      Serial I/O1 synchronous clock selection bit (SCS)

    0: Buffer empty                                     0: BRG output divided by 4 when clock synchronous

    1: Buffer full                                      serial I/O1 is selected, BRG output divided by 16

    Transmit shift completion flag (TSC)                when UART is selected.

    0: Transmit shift in progress                       1: External clock input when clock synchronous serial

    1: Transmit shift completed                         I/O1 is selected, external clock input divided by 16

    Overrun error flag (OE)                             when UART is selected.

    0: No error                                         SRDY1 output enable bit (SRDY)

    1: Overrun error                                    0: P47 pin operates as normal I/O pin

    Parity error flag (PE)                              1: P47 pin operates as SRDY1 output pin

    0: No error                                         Transmit interrupt source selection bit (TIC)

    1: Parity error                                     0: Interrupt when transmit buffer has emptied

    Framing error flag (FE)                             1: Interrupt when transmit shift operation is completed

    0: No error                                         Transmit enable bit (TE)

    1: Framing error                                    0: Transmit disabled

    Summing error flag (SE)                             1: Transmit enabled

    0: (OE) U (PE) U (FE)=0                             Receive enable bit (RE)

    1: (OE) U (PE) U (FE)=1                             0: Receive disabled

    Not used (returns "1" when read)                    1: Receive enabled

                                                        Serial I/O1 mode selection bit (SIOM)

                                                        0: Clock asynchronous (UART) serial I/O

b7  b0 UART1 control register                            1: Clock synchronous serial I/O
                                                        Serial I/O1 enable bit (SIOE)
    (UART1CON : address 001B16)
                                                         0: Serial I/O1 disabled
    Character length selection bit (CHAS)                    (pins P44 to P47 operate as normal I/O pins)
     0: 8 bits
     1: 7 bits                                           1: Serial I/O1 enabled
                                                             (pins P44 to P47 operate as serial I/O1 pins)
    Parity enable bit (PARE)

    0: Parity checking disabled

    1: Parity checking enabled

    Parity selection bit (PARS)

    0: Even parity

    1: Odd parity

    Stop bit length selection bit (STPS)

    0: 1 stop bit

    1: 2 stop bits

    P45/TXD1 P-channel output disable bit (POFF)

    0: CMOS output (in output mode)

    1: N-channel open drain output (in output mode)

    Not used (return "1" when read)

Fig. 40 Structure of serial I/O1 control registers

Rev.1.00 Oct 27, 2008 Page 46 of 128
REJ03B0266-0100
3804 Group (Spec.L)

                                           2. Notes when selecting clock asynchronous serial I/O
1. Notes when selecting clock synchronous serial I/O                     2.1 Stop of transmission operation
1.1 Stop of transmission operation                                        Note
Note
                                                                           Clear the transmit enable bit to "0" (transmit disabled). The
  Clear the serial I/O1 enable bit and the transmit enable bit to          transmission operation does not stop by clearing the serial
  "0" (serial I/O and transmit disabled).                                  I/O1 enable bit to "0".

Reason                                                                  Reason
  Since transmission is not stopped and the transmission circuit           Since transmission is not stopped and the transmission circuit
  is not initialized even if only the serial I/O1 enable bit is            is not initialized even if only the serial I/O1 enable bit is
  cleared to "0" (serial I/O disabled), the internal transmission is       cleared to "0" (serial I/O disabled), the internal transmission is
  running (in this case, since pins TXD1, RXD1, SCLK1, and                 running (in this case, since pins TXD1, RXD1, SCLK1, and
  SRDY1 function as I/O ports, the transmission data is not                SRDY1 function as I/O ports, the transmission data is not
  output). When data is written to the transmit buffer register in         output). When data is written to the transmit buffer register in
  this state, data starts to be shifted to the transmit shift register.    this state, data starts to be shifted to the transmit shift register.
  When the serial I/O1 enable bit is set to "1" at this time, the          When the serial I/O1 enable bit is set to "1" at this time, the
  data during internally shifting is output to the TXD1 pin and an         data during internally shifting is output to the TXD1 pin and an
  operation failure occurs.                                                operation failure occurs.

1.2 Stop of receive operation                                            2.2 Stop of receive operation
Note                                                                   Note

  Clear the receive enable bit to "0" (receive disabled), or clear         Clear the receive enable bit to "0" (receive disabled).
  the serial I/O1 enable bit to "0" (serial I/O disabled).
                                                                         2.3 Stop of transmit/receive operation
1.3 Stop of transmit/receive operation                                    Note 1 (only transmission operation is stopped)
Note
                                                                           Clear the transmit enable bit to "0" (transmit disabled). The
  Clear both the transmit enable bit and receive enable bit to "0"         transmission operation does not stop by clearing the serial
  (transmit and receive disabled).                                         I/O1 enable bit to "0".
  (when data is transmitted and received in the clock
  synchronous serial I/O mode, any one of data transmission and          Reason
  reception cannot be stopped.)                                            Since transmission is not stopped and the transmission circuit
                                                                           is not initialized even if only the serial I/O1 enable bit is
Reason                                                                   cleared to "0" (serial I/O disabled), the internal transmission is
  In the clock synchronous serial I/O mode, the same clock is              running (in this case, since pins TXD1, RXD1, SCLK1, and
  used for transmission and reception. If any one of transmission          SRDY1 function as I/O ports, the transmission data is not
  and reception is disabled, a bit error occurs because                    output). When data is written to the transmit buffer register in
  transmission and reception cannot be synchronized.                       this state, data starts to be shifted to the transmit shift register.
  In this mode, the clock circuit of the transmission circuit also         When the serial I/O1 enable bit is set to "1" at this time, the
  operates for data reception. Accordingly, the transmission               data during internally shifting is output to the TXD1 pin and an
  circuit does not stop by clearing only the transmit enable bit to        operation failure occurs.
  "0" (transmit disabled). Also, the transmission circuit is not
  initialized by clearing the serial I/O1 enable bit to "0" (serial       Note 2 (only receive operation is stopped)
  I/O disabled) (refer to 1.1).                                            Clear the receive enable bit to "0" (receive disabled).

Rev.1.00 Oct 27, 2008 Page 47 of 128
REJ03B0266-0100
3804 Group (Spec.L)

3. SRDY1 output of reception side                                      7. Transmit interrupt request when transmit enable bit is set
Note                                                                  Note

  When signals are output from the SRDY1 pin on the reception            When using the transmit interrupt, take the following
  side by using an external clock in the clock synchronous serial        sequence.
  I/O mode, set all of the receive enable bit, the SRDY1 output           1. Set the serial I/O1 transmit interrupt enable bit to "0" (dis-
  enable bit, and the transmit enable bit to "1" (transmit
  enabled).                                                                  abled).
                                                                          2. Set the transmit enable bit to "1".
4. Setting serial I/O1 control register again                             3. Set the serial I/O1 transmit interrupt request bit to "0" after
Note
                                                                             1 or more instruction has executed.
  Set the serial I/O1 control register again after the transmission       4. Set the serial I/O1 transmit interrupt enable bit to "1"
  and the reception circuits are reset by clearing both the
  transmit enable bit and the receive enable bit to "0".                     (enabled).

Clear both the transmit enable                                          Reason
bit (TE) and the receive enable                                          When the transmit enable bit is set to "1", the transmit buffer
bit (RE) to "0"                                                          empty flag and the transmit shift register shift completion flag
                                                                         are also set to "1". Therefore, regardless of selecting which
                                                                         timing for the generating of transmit interrupts, the interrupt
                                                                         request is generated and the transmit interrupt request bit is set
                                                                         at this point.

Set the bits 0 to 3 and bit 6 of  Can be set with the
the serial I/O1 control register  LDM instruction at
                                  the same time
Set both the transmit enable bit
(TE) and the receive enable bit
(RE), or one of them to "1"

5.Data transmission control with referring to transmit shift
  register completion flag

Note
  After the transmit data is written to the transmit buffer register,
  the transmit shift register completion flag changes from "1" to
  "0" with a delay of 0.5 to 1.5 shift clocks. When data
  transmission is controlled with referring to the flag after
  writing the data to the transmit buffer register, note the delay.

6. Transmission control when external clock is selected
Note

  When an external clock is used as the synchronous clock for
  data transmission, set the transmit enable bit to "1" at "H" of
  the SCLK1 input level. Also, write data to the transmit buffer
  register at "H" of the SCLK1 input level.

Rev.1.00 Oct 27, 2008 Page 48 of 128
REJ03B0266-0100
3804 Group (Spec.L)

Serial I/O2

The serial I/O2 function can be used only for clock synchronous

serial I/O.

For clock synchronous serial I/O2, the transmitter and the          b7                                 b0

receiver must use the same clock. If the internal clock is used,                                           Serial I/O2 control register
                                                                                                           (SIO2CON : address 001D16)
transfer is started by a write signal to the serial I/O2 register
                                                                                                              Internal synchronous clock selection bits
(address 001F16).                                                                                              b2 b1 b0
                                                                                                                0 0 0: f(XIN)/8 (f(XCIN)/8 in low-speed mode)
[Serial I/O2 Control Register (SIO2CON)] 001D16                                                                 0 0 1: f(XIN)/16 (f(XCIN)/16 in low-speed mode)
                                                                                                                0 1 0: f(XIN)/32 (f(XCIN)/32 in low-speed mode)
The serial I/O2 control register contains eight bits which control                                              0 1 1: f(XIN)/64 (f(XCIN)/64 in low-speed mode)
various serial I/O2 functions.                                                                                  1 1 0: f(XIN)/128 f(XCIN)/128 in low-speed mode)
                                                                                                                1 1 1: f(XIN)/256 (f(XCIN)/256 in low-speed mode)
                                                                                                              Serial I/O2 port selection bit
                                                                                                                0: I/O port
                                                                                                                1: SOUT2, SCLK2 signal output
                                                                                                              SRDY2 output enable bit
                                                                                                                0: I/O port
                                                                                                                1: SRDY2 signal output
                                                                                                              Transfer direction selection bit
                                                                                                                0: LSB first
                                                                                                                1: MSB first
                                                                                                              Serial I/O2 synchronous clock selection bit
                                                                                                                0: External clock
                                                                                                                1: Internal clock
                                                                                                              P51/SOUT2 P-channel output disable bit
                                                                                                                0: CMOS output (in output mode)
                                                                                                                1: N-channel open drain output (in output mode)

                                                                    Fig. 41 Structure of Serial I/O2 control register

                                                   SCLK2                                        1/8    Internal synchronous
                                                                                                1/16   clock selection bits
                                                                                Divider         1/32
                                                                                                1/64                     Data bus
                                                                                                1/128
   f(XIN)                                                                                       1/256

(f(XCIN) in low-speed mode)

P53/SRDY2                      P53 latch                       Serial I/O2 synchronous
                                                               clock selection bit
                                "0"
                                            SRDY2                                       "1"

                                "1"                Synchronization
                   SRDY2 output enable bit               circuit

                                                                                           "0"

                                                                 External clock

P52/SCLK2                        P52 latch                          Serial I/O counter 2 (3)                                       Serial I/O2
P51/SOUT2                       "0"                                                                                                interrupt request

  P50/SIN2                      "1"
                   Serial I/O2 port selection bit

                                 P51 latch
                                "0"

                                 "1"
                   Serial I/O2 port selection bit

                                                                        Serial I/O2 register (8)
                                                                                             Address 001F16

Fig. 42 Block diagram of serial I/O2

Rev.1.00 Oct 27, 2008 Page 49 of 128
REJ03B0266-0100
3804 Group (Spec.L)

     Transfer clock (1)                                         (2)
            Serial I/O2 register
                      write signal  D0  D1  D2  D3  D4  D5  D6  D7

     Serial I/O2 output SOUT2
          Serial I/O2 input SIN2

Receive enable signal SRDY2

                                                                                                                                                 Serial I/O2 interrupt request bit set

       Notes 1: When the internal clock is selected as the transfer clock, the divide ratio of f(XIN), or (f(XCIN) in low-speed mode, can be selected by
                    setting bits 0 to 2 of the serial I/O2 control register.

                2: When the internal clock is selected as the transfer clock, the SOUT2 pin goes to high impedance after transfer completion.

Fig. 43 Timing of serial I/O2

Rev.1.00 Oct 27, 2008 Page 50 of 128
REJ03B0266-0100
3804 Group (Spec.L)

Serial I/O3                                                                  (1) Clock Synchronous Serial I/O Mode

Serial I/O3 can be used as either clock synchronous or                         Clock synchronous serial I/O3 mode can be selected by setting
asynchronous (UART) serial I/O3. A dedicated timer is also                     the serial I/O3 mode selection bit of the serial I/O3 control
provided for baud rate generation.                                             register (bit 6 of address 003216) to "1".
                                                                               For clock synchronous serial I/O, the transmitter and the receiver
                                                                               must use the same clock. If an internal clock is used, transfer is
                                                                               started by a write signal to the transmit/receive buffer register.

                                                             Data bus                                 Serial I/O3 control register    Address 003216

                                                                         Address 003016               Receive buffer full flag (RBF)
                                                    Receive buffer register 3
P34/RXD3                                             Receive shift register 3                                        Receive interrupt request (RI)
P36/SCLK3
                                                                          Shift clock       Clock control circuit

           BRG count source selection bit           Serial I/O3 synchronous clock selection bit
                                                                    Frequency division ratio 1/(n+1)

f(XIN)                                                                     Baud rate generator 3            1/4

(f(XCIN) in low-speed mode)                                                                 Address 002F16
                                               1/4

P37/SRDY3  F/F                                      Falling-edge detector                   Clock control circuit
P35/TXD3
                                                                               Shift clock                           Transmit shift completion flag (TSC)

                                                        Transmit shift register 3                     Transmit interrupt source selection bit
                                                                                                                                      Transmit interrupt request (TI)

                                                        Transmit buffer register 3                                   Transmit buffer empty flag (TBE)

                                                                         Address 003016               Serial I/O3 status register     Address 003116
                                                          Data bus

Fig. 44 Block diagram of clock synchronous serial I/O3

Transfer shift clock                                D0                     D1  D2                 D3             D4  D5               D6  D7
(1/2 to 1/2048 of the internal
clock, or an external clock)                        D0                     D1  D2                 D3             D4  D5               D6  D7

            Serial output TXD3

              Serial input RXD3

   Receive enable signal SRDY3

Write pulse to receive/transmit
buffer register (address 003016)

                                  TBE = 0                                                                                                       RBF = 1
                                              TBE = 1                                                                                           TSC = 1
                                              TSC = 0
                                                                                                                                          Overrun error (OE)
                                                                                                                                          detection

Notes 1: As the transmit interrupt (TI), which can be selected, either when the transmit buffer has emptied (TBE=1) or after the transmit
            shift operation has ended (TSC=1), by setting the transmit interrupt source selection bit (TIC) of the serial I/O3 control register.

         2: If data is written to the transmit buffer register when TSC=0, the transmit clock is generated continuously and serial data is output
            continuously from the TXD pin.

         3: The receive interrupt (RI) is set when the receive buffer full flag (RBF) becomes "1".

Fig. 45 Operation of clock synchronous serial I/O3

Rev.1.00 Oct 27, 2008 Page 51 of 128
REJ03B0266-0100
3804 Group (Spec.L)

(2) Asynchronous Serial I/O (UART) Mode                                        The transmit and receive shift registers each have a buffer, but
                                                                               the two buffers have the same address in a memory. Since the
Clock asynchronous serial I/O mode (UART) can be selected by                   shift register cannot be written to or read from directly, transmit
clearing the serial I/O3 mode selection bit (b6) of the serial I/O3            data is written to the transmit buffer register, and receive data is
control register to "0".                                                       read from the receive buffer register.
Eight serial data transfer formats can be selected, and the transfer           The transmit buffer register can also hold the next data to be
formats used by a transmitter and receiver must be identical.                  transmitted, and the receive buffer register can hold a character
                                                                               while the next character is being received.

                                                                     Data bus

                                                                     Address 003016 Serial I/O3 control register Address 003216

                                            OE     Receive buffer register 3                           Receive buffer full flag (RBF)

                                    Character length selection bit                                     Receive interrupt request (RI)

P34/RXD3           ST detector      7 bits         Receive shift register 3

                                    8 bits                                                                              1/16

                                                   PE FE SP detector                                                          UART3 control register
                                                                                                                                        Address 003316
                                                                                                 Clock control circuit

                                                Serial I/O3 synchronous clock selection bit

P36/SCLK3

f(XIN)             BRG count source selection bit    Frequency division ratio 1/(n+1)
                                                         Baud rate generator 3
(f(XCIN) in low-speed mode)                                    Address 002F16

                               1/4                 ST/SP/PA generator

                                                                                   1/16                                 Transmit shift
                                                                                                                        completion flag (TSC)

P35/TXD3                                                             Transmit shift register 3         Transmit interrupt source selection bit
                                                                                                                                             Transmit interrupt request (TI)

                                    Character length selection bit

                                                                     Transmit buffer register 3                                     Transmit buffer empty flag (TBE)
                                                                                       Address 003016      Serial I/O3 status register Address 003116

                                                                     Data bus

Fig. 46 Block diagram of UART serial I/O3

  Transmit or
receive clock

Transmit buffer    TBE=0                    TBE=0
     write signal       TSC=0
                                                                               TBE=1                                                                          TSC=1*
   Serial output        TBE=1
             TXD3                                                                                                                                             SP
                               ST   D0      D1                                 SP            ST        D0  D1           * Generated at 2nd bit in 2-stop-bit mode
Receive buffer
     read signal                                1 start bit
                                                7 or 8 data bit
                                                1 or 0 parity bit
                                                1 or 2 stop bit (s)

                                                                                                           RBF=0

                                                                               RBF=1                                                           RBF=1

Serial input                   ST   D0      D1                                 SP            ST        D0  D1                                  SP

RXD3

Notes 1: Error flag detection occurs at the same time that the RBF flag becomes "1" (at 1st stop bit, during reception).
        2: As the transmit interrupt (TI), when either the TBE or TSC flag becomes "1", can be selected to occur depending on the setting of the transmit interrupt source
            selection bit (TIC) of the serial I/O3 control register.
        3: The receive interrupt (RI) is set when the RBF flag becomes "1".
        4: After data is written to the transmit buffer when TSC=1, 0.5 to 1.5 cycles of the data shift cycle are necessary until changing to TSC=0.

Fig. 47 Operation of UART serial I/O3

Rev.1.00 Oct 27, 2008 Page 52 of 128
REJ03B0266-0100
3804 Group (Spec.L)

[Transmit Buffer Register 3/Receive Buffer Register 3
(TB3/RB3)] 003016
The transmit buffer register 3 and the receive buffer register 3 are
located at the same address. The transmit buffer is write-only and
the receive buffer is read-only. If a character bit length is 7 bits,
the MSB of data stored in the receive buffer is "0".
[Serial I/O3 Status Register (SIO3STS)] 003116
The read-only serial I/O3 status register consists of seven flags
(bits 0 to 6) which indicate the operating status of the serial I/O3
function and various errors.
Three of the flags (bits 4 to 6) are valid only in UART mode.
The receive buffer full flag (bit 1) is cleared to "0" when the
receive buffer register is read.
If there is an error, it is detected at the same time that data is
transferred from the receive shift register to the receive buffer
register, and the receive buffer full flag is set. A write to the
serial I/O3 status register clears all the error flags OE, PE, FE,
and SE (bit 3 to bit 6, respectively). Writing "0" to the serial I/O3
enable bit SIOE (bit 7 of the serial I/O3 control register) also
clears all the status flags, including the error flags.
Bits 0 to 6 of the serial I/O3 status register are initialized to "0" at
reset, but if the transmit enable bit (bit 4) of the serial I/O3
control register has been set to "1", the transmit shift completion
flag (bit 2) and the transmit buffer empty flag (bit 0) become "1".
[Serial I/O3 Control Register (SIO3CON)] 003216
The serial I/O3 control register consists of eight control bits for
the serial I/O3 function.
[UART3 Control Register (UART3CON)] 003316
The UART control register consists of four control bits (bits 0 to
3) which are valid when asynchronous serial I/O is selected and
set the data format of an data transfer, and one bit (bit 4) which is
always valid and sets the output structure of the P35/TXD3 pin.
[Baud Rate Generator 3 (BRG3)] 002F16
The baud rate generator determines the baud rate for serial
transfer.
The baud rate generator divides the frequency of the count source
by 1/(n + 1), where n is the value written to the baud rate
generator.

Rev.1.00 Oct 27, 2008 Page 53 of 128
REJ03B0266-0100
3804 Group (Spec.L)

b7  b0 Serial I/O3 status register                  b7  b0 Serial I/O3 control register

    (SIO3STS : address 003116)                          (SIO3CON : address 003216)

    Transmit buffer empty flag (TBE)                    BRG count source selection bit (CSS)

    0: Buffer full                                      0: f(XIN) (f(XCIN) in low-speed mode)

    1: Buffer empty                                     1: f(XIN)/4 (f(XCIN)/4 in low-speed mode)

    Receive buffer full flag (RBF)                      Serial I/O3 synchronous clock selection bit (SCS)

    0: Buffer empty                                     0: BRG output divided by 4 when clock synchronous

    1: Buffer full                                      serial I/O3 is selected, BRG output divided by 16

    Transmit shift completion flag (TSC)                when UART is selected.

    0: Transmit shift in progress                       1: External clock input when clock synchronous serial

    1: Transmit shift completed                         I/O3 is selected, external clock input divided by 16

    Overrun error flag (OE)                             when UART is selected.

    0: No error                                         SRDY3 output enable bit (SRDY)

    1: Overrun error                                    0: P37 pin operates as normal I/O pin

    Parity error flag (PE)                              1: P37 pin operates as SRDY3 output pin

    0: No error                                         Transmit interrupt source selection bit (TIC)

    1: Parity error                                     0: Interrupt when transmit buffer has emptied

    Framing error flag (FE)                             1: Interrupt when transmit shift operation is completed

    0: No error                                         Transmit enable bit (TE)

    1: Framing error                                    0: Transmit disabled

    Summing error flag (SE)                             1: Transmit enabled

    0: (OE) U (PE) U (FE)=0                             Receive enable bit (RE)

    1: (OE) U (PE) U (FE)=1                             0: Receive disabled

    Not used (returns "1" when read)                    1: Receive enabled

                                                        Serial I/O3 mode selection bit (SIOM)

                                                        0: Clock asynchronous (UART) serial I/O

b7  b0 UART3 control register                            1: Clock synchronous serial I/O
                                                        Serial I/O3 enable bit (SIOE)
    (UART3CON : address 003316)
                                                         0: Serial I/O3 disabled
    Character length selection bit (CHAS)                    (pins P34 to P37 operate as normal I/O pins)
     0: 8 bits
     1: 7 bits                                           1: Serial I/O3 enabled
                                                             (pins P34 to P37 operate as serial I/O3 pins)
    Parity enable bit (PARE)

    0: Parity checking disabled

    1: Parity checking enabled

    Parity selection bit (PARS)

    0: Even parity

    1: Odd parity

    Stop bit length selection bit (STPS)

    0: 1 stop bit

    1: 2 stop bits

    P35/TXD3 P-channel output disable bit (POFF)

    0: CMOS output (in output mode)

    1: N-channel open drain output (in output mode)

    Not used (return "1" when read)

Fig. 48 Structure of serial I/O3 control registers

Rev.1.00 Oct 27, 2008 Page 54 of 128
REJ03B0266-0100
3804 Group (Spec.L)

                                           2. Notes when selecting clock asynchronous serial I/O
1. Notes when selecting clock synchronous serial I/O                     2.1 Stop of transmission operation
1.1 Stop of transmission operation                                        Note
Note
                                                                           Clear the transmit enable bit to "0" (transmit disabled). The
  Clear the serial I/O3 enable bit and the transmit enable bit to          transmission operation does not stop by clearing the serial
  "0" (serial I/O and transmit disabled).                                  I/O3 enable bit to "0".

Reason                                                                  Reason
  Since transmission is not stopped and the transmission circuit           Since transmission is not stopped and the transmission circuit
  is not initialized even if only the serial I/O3 enable bit is            is not initialized even if only the serial I/O3 enable bit is
  cleared to "0" (serial I/O disabled), the internal transmission is       cleared to "0" (serial I/O disabled), the internal transmission is
  running (in this case, since pins TXD3, RXD3, SCLK3, and                 running (in this case, since pins TXD3, RXD3, SCLK3, and
  SRDY3 function as I/O ports, the transmission data is not                SRDY3 function as I/O ports, the transmission data is not
  output). When data is written to the transmit buffer register in         output). When data is written to the transmit buffer register in
  this state, data starts to be shifted to the transmit shift register.    this state, data starts to be shifted to the transmit shift register.
  When the serial I/O3 enable bit is set to "1" at this time, the          When the serial I/O3 enable bit is set to "1" at this time, the
  data during internally shifting is output to the TXD3 pin and an         data during internally shifting is output to the TXD3 pin and an
  operation failure occurs.                                                operation failure occurs.

1.2 Stop of receive operation                                            2.2 Stop of receive operation
Note                                                                   Note

  Clear the receive enable bit to "0" (receive disabled), or clear         Clear the receive enable bit to "0" (receive disabled).
  the serial I/O3 enable bit to "0" (serial I/O disabled).
                                                                         2.3 Stop of transmit/receive operation
1.3 Stop of transmit/receive operation                                    Note 1 (only transmission operation is stopped)
Note
                                                                           Clear the transmit enable bit to "0" (transmit disabled). The
  Clear both the transmit enable bit and receive enable bit to "0"         transmission operation does not stop by clearing the serial
  (transmit and receive disabled).                                         I/O3 enable bit to "0".
  (when data is transmitted and received in the clock
  synchronous serial I/O mode, any one of data transmission and          Reason
  reception cannot be stopped.)                                            Since transmission is not stopped and the transmission circuit
                                                                           is not initialized even if only the serial I/O3 enable bit is
Reason                                                                   cleared to "0" (serial I/O disabled), the internal transmission is
  In the clock synchronous serial I/O mode, the same clock is              running (in this case, since pins TXD3, RXD3, SCLK3, and
  used for transmission and reception. If any one of transmission          SRDY3 function as I/O ports, the transmission data is not
  and reception is disabled, a bit error occurs because                    output). When data is written to the transmit buffer register in
  transmission and reception cannot be synchronized.                       this state, data starts to be shifted to the transmit shift register.
  In this mode, the clock circuit of the transmission circuit also         When the serial I/O3 enable bit is set to "1" at this time, the
  operates for data reception. Accordingly, the transmission               data during internally shifting is output to the TXD3 pin and an
  circuit does not stop by clearing only the transmit enable bit to        operation failure occurs.
  "0" (transmit disabled). Also, the transmission circuit is not
  initialized by clearing the serial I/O3 enable bit to "0" (serial       Note 2 (only receive operation is stopped)
  I/O disabled) (refer to 1.1).                                            Clear the receive enable bit to "0" (receive disabled).

Rev.1.00 Oct 27, 2008 Page 55 of 128
REJ03B0266-0100
3804 Group (Spec.L)

3. SRDY3 output of reception side                                      7. Transmit interrupt request when transmit enable bit is set
Note                                                                  Note

  When signals are output from the SRDY3 pin on the reception            When using the transmit interrupt, take the following
  side by using an external clock in the clock synchronous serial        sequence.
  I/O mode, set all of the receive enable bit, the SRDY3 output           1. Set the serial I/O3 transmit interrupt enable bit to "0" (dis-
  enable bit, and the transmit enable bit to "1" (transmit
  enabled).                                                                  abled).
                                                                          2. Set the transmit enable bit to "1".
4. Setting serial I/O3 control register again                             3. Set the serial I/O3 transmit interrupt request bit to "0" after
Note
                                                                             1 or more instruction has executed.
  Set the serial I/O3 control register again after the transmission       4. Set the serial I/O3 transmit interrupt enable bit to "1"
  and the reception circuits are reset by clearing both the
  transmit enable bit and the receive enable bit to "0".                     (enabled).

Clear both the transmit enable                                          Reason
bit (TE) and the receive enable                                          When the transmit enable bit is set to "1", the transmit buffer
bit (RE) to "0"                                                          empty flag and the transmit shift register shift completion flag
                                                                         are also set to "1". Therefore, regardless of selecting which
                                                                         timing for the generating of transmit interrupts, the interrupt
                                                                         request is generated and the transmit interrupt request bit is set
                                                                         at this point.

Set the bits 0 to 3 and bit 6 of  Can be set with the
the serial I/O3 control register  LDM instruction at
                                  the same time
Set both the transmit enable bit
(TE) and the receive enable bit
(RE), or one of them to "1"

5.Data transmission control with referring to transmit shift
  register completion flag

Note
  After the transmit data is written to the transmit buffer register,
  the transmit shift register completion flag changes from "1" to
  "0" with a delay of 0.5 to 1.5 shift clocks. When data
  transmission is controlled with referring to the flag after
  writing the data to the transmit buffer register, note the delay.

6. Transmission control when external clock is selected
Note

  When an external clock is used as the synchronous clock for
  data transmission, set the transmit enable bit to "1" at "H" of
  the SCLK3 input level. Also, write data to the transmit buffer
  register at "H" of the SCLK input level.

Rev.1.00 Oct 27, 2008 Page 56 of 128
REJ03B0266-0100
3804 Group (Spec.L)

PWM (PWM: Pulse Width Modulation)                                  PWM Operation
                                                                   When bit 0 (PWM enable bit) of the PWM control register is set
The 3804 group (Spec.L) has PWM functions with an 8-bit            to "1", operation starts by initializing the PWM output circuit,
resolution, based on a signal that is the clock input XIN or that  and pulses are output starting at an "H".
clock input divided by 2 or the clock input XCIN or that clock     If the PWM register or PWM prescaler is updated during PWM
input divided by 2 in low-speed mode.                              output, the pulses will change in the cycle after the one in which
                                                                   the change was made.
Data Setting
The PWM output pin also functions as port P56. Set the PWM                                  31.875 m (n+1)
period by the PWM prescaler, and set the "H" term of output                                                              s
pulse by the PWM register.
If the value in the PWM prescaler is n and the value in the PWM                                        255
register is m (where n = 0 to 255 and m = 0 to 255):
PWM period = 255 (n+1) / f(XIN)                                      PWM output

       = 31.875 (n+1) s                                                                            T = [31.875 (n+1)] s
       (when f(XIN) = 8 MHz, count source selection bit = "0")              m : Contents of PWM register
Output pulse "H" term = PWM period m / 255                                n : Contents of PWM prescaler
       = 0.125 (n+1) m s                                                T : PWM period
       (when f(XIN) = 8 MHz, count source selection bit = "0")
                                                                                 (when f(XIN) = 8 MHz, count source selection bit = "0")

                                                                   Fig. 49 Timing of PWM period

                  Data bus

                                    PWM                                   PWM
                            prescaler pre-latch                    register pre-latch

                                           Transfer control circuit

                                                 PWM                   PWM
                                           prescaler latch         register latch

                            Count source                           PWM register                                                Port P56
                            selection bit
                                                                                       Port P56 latch
             XIN     "0"    PWM prescaler                                                      PWM function enable bit
(XCIN at low-
speed mode)       1/2 "1"

Fig. 50 Block diagram of PWM function

Rev.1.00 Oct 27, 2008 Page 57 of 128
REJ03B0266-0100
3804 Group (Spec.L)

                   b7                         b0
Fig. 51 Structure of PWM control register             PWM control register
                                                      (PWMCON: address 002B16)

                                                       PWM function enable bit
                                                         0 : PWM disabled
                                                         1 : PWM enabled

                                                       Count source selection bit
                                                         0 : f(XIN) (f(XCIN) at low-speed mode)
                                                         1 : f(XIN)/2 (f(XCIN)/2 at low-speed mode)

                                                       Not used
                                                       (return "0" when read)

                                   A          B                          C                                   BC
                                                                                                             T = T2

                    PWM output             T     T                       T2

                    PWM register              (Changes "H" term from "A" to " B".)
                    write signal

                    PWM prescaler             (Changes PWM period from "T" to "T2".)
                    write signal

                           When the contents of the PWM register or PWM prescaler have changed,
                           the PWM output will change from the next period after the change.

Fig. 52 PWM output timing when PWM register or PWM prescaler is changed


The PWM starts after the PWM function enable bit is set to enable and "L" level is output from the PWM pin.
The length of this "L" level output is as follows:

------n-----+----1-------  sec  (Count source selection bit = 0, where n is the value set in the prescaler)
2f(XIN)

--n-----+-----1---  sec         (Count source selection bit = 1, where n is the value set in the prescaler)
f(XIN)

Rev.1.00 Oct 27, 2008 Page 58 of 128
REJ03B0266-0100
3804 Group (Spec.L)

A/D CONVERTER (successive approximation type)                        Channel Selector
                                                                    The channel selector selects one of ports P67/AN7 to P60/AN0 or
[AD Conversion Register 1, 2 (AD1, AD2)] 003516,                    P07/AN15 to P00/AN8, and inputs the voltage to the comparator.
003816
                                                                     Comparator and Control Circuit
The AD conversion register is a read-only register that stores the  The comparator and control circuit compares an analog input
result of an A/D conversion. When reading this register during an   voltage with the comparison voltage, and then stores the result in
A/D conversion, the previous conversion result is read.             the AD conversion registers 1, 2. When an A/D conversion is
Bit 7 of the AD conversion register 2 is the conversion mode        completed, the control circuit sets the AD conversion completion
selection bit. When this bit is set to "0", the A/D converter       bit and the AD interrupt request bit to "1".
becomes the 10-bit A/D mode. When this bit is set to "1", that      Note that because the comparator consists of a capacitor
becomes the 8-bit A/D mode. The conversion result of the 8-bit      coupling, set f(XIN) to 500 kHz or more during an A/D
A/D mode is stored in the AD conversion register 1. As for 10-bit   conversion.
A/D mode, not only 10-bit reading but also only high-order 8-bit
reading of conversion result can be performed by selecting the      b7             b0
reading procedure of the AD conversion registers 1, 2 after A/D
conversion is completed (in Figure 54).                                                    AD/DA control register
As for 10-bit A/D mode, the 8-bit reading inclined to MSB is
performed when reading the AD converter register 1 after A/D                               (ADCON : address 003416)
conversion is started; and when the AD converter register 1 is
read after reading the AD converter register 2, the 8-bit reading                          Analog input pin selection bits 1
inclined to LSB is performed.
                                                                                           b2 b1 b0
[AD/DA Control Register (ADCON)] 003416
                                                                                           0 0 0: P60/AN0 or P00/AN8
The AD/DA control register controls the A/D conversion                                     0 0 1: P61/AN1 or P01/AN9
process. Bits 0 to 2 and bit 4 select a specific analog input pin.                         0 1 0: P62/AN2 or P02/AN10
Bit 3 signals the completion of an A/D conversion. The value of                            0 1 1: P63/AN3 or P03/AN11
this bit remains at "0" during an A/D conversion, and changes to                           1 0 0: P64/AN4 or P04/AN12
"1" when an A/D conversion ends. Writing "0" to this bit starts                            1 0 1: P65/AN5 or P05/AN13
the A/D conversion.                                                                        1 1 0: P66/AN6 or P06/AN14
                                                                                           1 1 1: P67/AN7 or P07/AN15
Comparison Voltage Generator
                                                                                           AD conversion completion bit
The comparison voltage generator divides the voltage between                                0: Conversion in progress
AVSS and VREF into 1024, and that outputs the comparison                                    1: Conversion completed
voltage in the 10-bit A/D mode (256 division in 8-bit A/D mode).
The A/D converter successively compares the comparison                                     Analog input pin selection bit 2
voltage Vref in each mode, dividing the VREF voltage (see                                   0: AN0 to AN7 side
below), with the input voltage.                                                             1: AN8 to AN15 side

10-bit A/D mode (10-bit reading)                                                         Not used (returns "0" when read)
  Vref = -V----R----E---F- n (n = 0 - 1023)
           1024                                                                            DA1 output enable bit
                                                                                            0: DA1 output disabled
                                                                                            1: DA1 output enabled

                                                                                           DA2 output enable bit
                                                                                            0: DA2 output disabled
                                                                                            1: DA2 output enabled

10-bit A/D mode (8-bit reading)                                   Fig. 53 Structure of AD/DA control register
  Vref = V-----R----E---F- n (n = 0 - 255)
            256

8-bit A/D mode

Vref  =  V-----R----E---F-    (n - 0.5) (n = 1 - 255)              10-bit reading
          256
                                                                    (Read address 003816 before 003516)

      =0                       (n = 0)                              AD conversion register 2 b7                                      b0
                                                                                                                                 b9 b8
                                                                    (AD2: address 003816)       0

                                                                    AD conversion register 1 b7                                  b0

                                                                    (AD1: address 003516)       b7 b6 b5 b4 b3 b2 b1 b0

                                                                    Note : Bits 2 to 6 of address 003816 become "0" at reading.

                                                                    8-bit reading

                                                                    (Read only address 003516)

                                                                    AD conversion register 1 b7                                  b0

                                                                    (AD1: address 003516)       b9 b8 b7 b6 b5 b4 b3 b2

                                                                    Fig. 54 Structure of 10-bit A/D mode reading

Rev.1.00 Oct 27, 2008 Page 59 of 128
REJ03B0266-0100
3804 Group (Spec.L)

                                                   Data bus

AD/DA control register b7                                               b0

(Address 003416)

                                       4

P60/AN0                                            A/D control circuit         A/D converter interrupt request
P61/AN1
P62/AN2                                Comparator    AD conversion register 2  (Address 003816)
P63/AN3                                              AD conversion register 1  (Address 003516)
P64/AN4
P65/AN5              Channel selector                         10
P66/AN6                                            Resistor ladder
P67/AN7
P00/AN8                                            VREF AVSS
P01/AN9
P02/AN10
P03/AN11
P04/AN12
P05/AN13
P06/AN14
P07/AN15

Fig. 55 Block diagram of A/D converter

Rev.1.00 Oct 27, 2008 Page 60 of 128
REJ03B0266-0100
3804 Group (Spec.L)                                                                  DA1 conversion register (8)

D/A CONVERTER                                                                                             DA1 output enable bit
The 3804 group (Spec.L) has two internal D/A converters (DA1
and DA2) with 8-bit resolution.                                       Data bus      R-2R resistor ladder            P30/DA1
The D/A conversion is performed by setting the value in each
DA conversion register. The result of D/A conversion is output                      DA2 conversion register (8)
from the DA1 or DA2 pin by setting the DA output enable bit to
"1".                                                                                                      DA2 output enable bit
When using the D/A converter, the corresponding port direction
register bit (P30/DA1 or P31/DA2) must be set to "0" (input
status).
The output analog voltage V is determined by the value n
(decimal notation) in the DA conversion register as follows:

V = VREF n/256 (n = 0 to 255)
       Where VREF is the reference voltage.

At reset, the DA conversion registers are cleared to "0016", and
the DA output enable bits are cleared to "0", and the P30/DA1
and P31/DA2 pins become high impedance.
The DA output does not have buffers. Accordingly, connect an
external buffer when driving a low-impedance load.

                                                                                     R-2R resistor ladder            P31/DA2

                                                                       Fig. 56 Block diagram of D/A converter

      "0" DA1 output enable bit
                     R                 R                           R             R   R   R                        R  2R

P30/DA1
                "1"

                     2R                2R                          2R            2R  2R  2R                2R        2R

                                  MSB                                                                                LSB
DA1 conversion register "0" "1"

AVSS
VREF

Fig. 57 Equivalent connection circuit of D/A converter (DA1)

Rev.1.00 Oct 27, 2008 Page 61 of 128
REJ03B0266-0100
3804 Group (Spec.L)

WATCHDOG TIMER                                                         Bit 6 of Watchdog Timer Control Register
                                                                      When bit 6 of the watchdog timer control register is "0", the
The watchdog timer gives a mean of returning to the reset status
when a program cannot run on a normal loop (for example,                MCU enters the stop mode by execution of STP instruction.
because of a software run-away). The watchdog timer consists of         Just after releasing the stop mode, the watchdog timer restarts
an 8-bit watchdog timer L and an 8-bit watchdog timer H.                counting(Note.). When executing the WIT instruction, the
                                                                        watchdog timer does not stop.
Watchdog Timer Initial Value                                        When bit 6 is "1", execution of STP instruction causes an
Watchdog timer L is set to "FF16" and watchdog timer H is set to        internal reset. When this bit is set to "1" once, it cannot be
"FF16" by writing to the watchdog timer control register (address       rewritten to "0" by program. Bit 6 is "0" at reset.
001E16) or at a reset. Any write instruction that causes a write
signal can be used, such as the STA, LDM, CLB, etc. Data can          The following shows the period between the write execution to
only be written to bits 6 and 7 of the watchdog timer control         the watchdog timer control register and the underflow of
register. Regardless of the value written to bits 0 to 5, the above-  watchdog timer H.
mentioned value will be set to each timer.
Bit 6 can be written only once after releasing reset. After           Bit 7 of the watchdog timer control register is "0":
rewriting it is disable to write any data to this bit.                        when XCIN = 32.768 kHz; 32 s
                                                                              when XIN = 16 MHz; 65.536 ms
Watchdog Timer Operations
The watchdog timer stops at reset and starts to count down by         Bit 7 of the watchdog timer control register is "1":
writing to the watchdog timer control register (address 001E16).              when XCIN = 32.768 kHz; 125 ms
An internal reset occurs at an underflow of the watchdog timer                when XIN = 16 MHz; 256 s
H. The reset is released after waiting for a reset release time and
the program is processed from the reset vector address.               Note. The watchdog timer continues to count even during the wait time
Accordingly, programming is usually performed so that writing                 set by timer 1 and timer 2 to release the stop state and in the wait
to the watchdog timer control register may be started before an               mode. Accordingly, write to the watchdog timer control register to
underflow. If writing to the watchdog timer control register is not           not underflow the watchdog timer in this time.
performed once, the watchdog timer does not function.

  XCIN                   "FF16" is set when                                                      Data bus
                         watchdog timer
Main clock division      control register is                                                             "FF16" is set when
ratio selection bits(1)  written to.                                                                     watchdog timer
                                                                                                         control register is
    XIN                  "10"                 Watchdog timer L (8)    "0"                                written to.

                                  1/16                                "1"  Watchdog timer H (8)

                         "00"                                         Watchdog timer H count
                         "01"                                         source selection bit

STP instruction function selection bit                                      Reset               Internal reset
                             STP instruction                                 circuit

RESET

Note 1: Any one of high-speed, middle-speed or low-speed mode is selected by bits 7 and 6 of the CPU mode register.

Fig. 58 Block diagram of Watchdog timer

b7                                            b0

                                                  Watchdog timer control register

                                                  (WDTCON : address 001E16)

                                                  Watchdog timer H (for read-out of high-order 6 bit)

                                                  STP instruction function selection bit
                                                   0: Entering stop mode by execution of STP instruction
                                                   1: Internal reset by execution of STP instruction

                                                  Watchdog timer H count source selection bit

                                                   0: Watchdog timer L underflow
                                                   1: f(XIN)/16 or f(XCIN)/16

Fig. 59 Structure of Watchdog timer control register

Rev.1.00 Oct 27, 2008 Page 62 of 128
REJ03B0266-0100
3804 Group (Spec.L)

MULTI-MASTER I2C-BUS INTERFACE                                                     Table 9 Multi-master I2C-BUS interface functions

The 3804 group (Spec. L) has the multi-master I2C-BUS                                           Item                                            Function
interface. The multi-master I2C-BUS interface is a serial
communications circuit, conforming to the Philips I2C-BUS data                     Format                                       In conformity with Philips I2C-BUS
transfer format. This interface, offering both arbitration lost                                                                 standard:
detection and a synchronous functions, is useful for the multi-
master serial communications.                                                                                                     10-bit addressing format
Figure 60 shows a block diagram of the multi-master I2C-BUS                                                                       7-bit addressing format
interface and Table 9 lists the multi-master I2C-BUS interface                                                                    High-speed clock mode
functions.                                                                                                                        Standard clock mode
This multi-master I2C-BUS interface consists of the I2C slave
address registers 0 to 2, the I2C data shift register, the I2C clock               Communication                                In conformity with Philips I2C-BUS
control register, the I2C control register, the I2C status register,               mode                                         standard:
the I2C START/STOP condition control register, the I2C special
mode control register, the I2C special mode status register, and                                                                  Master transmission
other control circuits.                                                                                                           Master reception
When using the multi-master I2C-BUS interface, set 1 MHz or                                                                       Slave transmission
more to the internal clock .                                                                                                      Slave reception

                                                                                   SCL clock                                    16.1 kHz to 400 kHz (at  = 4 MHz)
                                                                                   frequency

                                                                                   System clock  = f(XIN)/2 (high-speed mode)

                                                                                                      = f(XIN)/8 (middle-speed mode)

                                                                                   NOTE:

                                                                                      1. We are not responsible for any third party's infringement of
                                                                                          patent rights or other rights attributable to the use of the
                                                                                          control function (bit 6 of the I2C control register at address
                                                                                          002E16) for connections between the I2C-BUS interface and
                                                                                          ports (SCL1, SCL2, SDA1, and SDA2).

               Interrupt   Interrupt request signal b7 I2C slave address registers 0 to 2 b0                                         Interrupt  Interrupt request signal
              generating   (SCL, SDA, IRQ)                                                                                          generating  (I2CIRQ)

                 circuit                                             SAD6 SAD5 SAD4 SAD3 SAD2 SAD1 SAD0 RBW                            circuit

                                                 S0D0-2

                                                                Address comparator

Serial data             Noise             Data                                                       b0
(SDA)                elimination         control b7             I2C data shift register
                                         circuit
                        circuit

                                                    S0                                                       b7                                        b0

                                                                                                                                           AL AAS AD0 LRB
                                                                                                             MST TRX BB PIN

       SIS SIP SSC4 SSC3 SSC2 SSC1 SSC0      AL                                                              S1                                 I2C status register
                                           circuit
S2D I2C START/STOP condition control
      register

                                                                                                             Internal data bus

                                            BB
                                           circuit

Serial clock     Noise            Clock              b7                                        b0                b7                                             b0
(SCL)         elimination         control
                                  circuit                 ACK   FAST                                                SPCF                        AAS2 AAS1 AAS0
                 circuit                            ACK   BIT   MODE   CCR4  CCR3  CCR2  CCR1  CCR0                                       PIN2

                                                       S2                                System clock            S3 I 2C special mode status register
                                                    I2C clock control register           ()

                                                                       Clock division

                                                                                                                                b7                                   b0

                                                     b7                                        b0                SPCFL              PIN2  PIN2  HSLAD  ACKI
                                                                                                                                     HD    IN          CON

                                                    TISS  TSEL  10BIT  ALS   ES0   BC2   BC1   BC0
                                                                SAD

                                                    S1D I2C control register                                     S3D I 2C special mode control register

                                                                                   Bit counter

Fig. 60 Block diagram of multi-master I2C-BUS interface

*: Purchase of Renesas Technology Corporation's I2C components conveys a license under the Philips I2C Patent Rights
   to use these components an I2C system, provided that the system conforms to the I2C Standard Specification as defined
   by Philips.

Rev.1.00 Oct 27, 2008 Page 63 of 128
REJ03B0266-0100
3804 Group (Spec.L)

[I2C Data Shift Register (S0)] 001116                                   b7  b0

The I2C data shift register (S0: address 001116) is an 8-bit shift      SAD6 SAD5 SAD4 SAD3 SAD2 SAD1 SAD0 RWB  I2C slave address register 0
register to store receive data and write transmit data.                                                         (S0D0: address 0FF716)
When transmit data is written into this register, it is transferred to                                          I2C slave address register 1
the outside from bit 7 in synchronization with the SCL, and each                                                (S0D1: address 0FF816)
time one-bit data is output, the data of this register are shifted by                                           I2C slave address register 2
one bit to the left. When data is received, it is input to this
register from bit 0 in synchronization with the SCL, and each                                                   (S0D2: address 0FF916)
time one-bit data is input, the data of this register are shifted by
one bit to the left. The minimum 2 cycles of the internal clock                                                 Read/write bit
are required from the rising of the SCL until input to this register.
The I2C data shift register is in a write enable status only when                                                               Slave address
the I2C-BUS interface enable bit (ES0 bit) of the I2C control
register (S1D: address 001416) is "1". The bit counter is reset by      Fig. 61 Structure of I2C slave address registers 0 to 2
a write instruction to the I2C data shift register. When both the
ES0 bit and the MST bit of the I2C status register (S1: address
001316) are "1", the SCL is output by a write instruction to the
I2C data shift register. Reading data from the I2C data shift
register is always enabled regardless of the ES0 bit value.

[I2C Slave Address Registers 0 to 2 (S0D0 to S0D2)]
0FF716 to 0FF916

The I2C slave address registers 0 to 2 (S0D0 to S0D2: addresses
0FF716 to 0FF916) consists of a 7-bit slave address and a read/
write bit. In the addressing mode, the slave address written in this
register is compared with the address data to be received
immediately after the START condition is detected.

Bit 0: Read/write bit (RWB)

This is not used in the 7-bit addressing mode. In the 10-bit
addressing mode, set RWB to "0" because the first address data
to be received is compared with the contents (SAD6 to SAD0 +
RWB) of the I2C slave address registers 0 to 2.
When 2-byte address data match slave address, a 7-bit slave
address which is received after restart condition has detected and
R/W data can be matched by setting "1" to RWB with software.
The RWB is cleared to "0" automatically when the stop
condition is detected.

Bits 1 to 7: Slave address (SAD0-SAD6)

These bits store slave addresses. Regardless of the 7-bit
addressing mode or the 10-bit addressing mode, the address data
transmitted from the master is compared with these bits'
contents.

Rev.1.00 Oct 27, 2008 Page 64 of 128
REJ03B0266-0100
3804 Group (Spec.L)

[I2C Clock Control Register (S2)] 001516                                     b7                                      b0
The I2C clock control register (S2: address 001516) is used to set
ACK control, SCL mode and SCL frequency.                                     ACK  ACK  FAST  CCR4  CCR3  CCR2  CCR1  CCR0  I2C clock control register
                                                                                  BIT  MODE                                (S2: address 001516)
Bits 0 to 4: SCL frequency control bits (CCR0-CCR4)
These bits control the SCL frequency. Refer to Table 10.                                                                   SCL frequency control bits
                                                                                                                           Refer to Table 10.
Bit 5: SCL mode specification bit (FAST MODE)
This bit specifies the SCL mode. When this bit is set to "0", the                                                          SCL mode specification bit
standard clock mode is selected. When the bit is set to "1", the                                                               0: Standard clock mode
high-speed clock mode is selected.                                                                                             1: High-speed clock mode
When connecting the bus of the high-speed mode I2C bus
standard (maximum 400 kbits/s), use 8 MHz or more oscillation                                                              ACK bit
frequency f(XIN) in the high-speed mode (2 division clock).                                                                    0: ACK is returned
                                                                                                                               1: ACK is not returned
Bit 6: ACK bit (ACK BIT)
This bit sets the SDA status when an ACK clock* is generated.                                                              ACK clock bit
When this bit is set to "0", the ACK return mode is selected and                                                               0: No ACK clock
SDA goes to "L" at the occurrence of an ACK clock. When the                                                                    1: ACK clock
bit is set to "1", the ACK non-return mode is selected. The SDA
is held in the "H" status at the occurrence of an ACK clock.                 Fig. 62 Structure of I2C clock control register
However, when the slave address agree with the address data in
the reception of address data at ACK BIT = "0", the SDA is                   Table 10 Set values of I2C clock control register and
automatically made "L" (ACK is returned). If there is a                                    SCL frequency
disagreement between the slave address and the address data, the
SDA is automatically made "H" (ACK is not returned).                              Setting value of                               SCL frequency
                                                                                   CCR4-CCR0                         (at  = 4 MKz, unit: kHz) (Note 1)
* ACK clock: Clock for acknowledgment
                                                                             CCR4 CCR3 CCR2 CCR1 CCR0                Standard clock    High-speed
Bit 7: ACK clock bit (ACK)                                                                                               mode        clock mode
This bit specifies the mode of acknowledgment which is an
acknowledgment response of data transfer. When this bit is set to            0 0 0 0 0 Setting disabled Setting disabled
"0", the no ACK clock mode is selected. In this case, no ACK
clock occurs after data transmission. When the bit is set to "1",            0 0 0 0 1 Setting disabled Setting disabled
the ACK clock mode is selected and the master generates an
ACK clock each completion of each 1-byte data transfer. The                  0 0 0 1 0 Setting disabled Setting disabled
device for transmitting address data and control data releases the
SDA at the occurrence of an ACK clock (makes SDA "H") and                    00011                                         - (Note 2)  333
receives the ACK bit generated by the data receiving device.
                                                                             00100                                         - (Note 2)  250
Note. Do not write data into the I2C clock control register during trans-
        fer. If data is written during transfer, the I2C clock generator is  00101                                         100         400 (Note 3)
        reset, so that data cannot be transferred normally.
                                                                             00110                                         83.3        166

                                                                             : : : : : 500/CCR value 1000/CCR value

                                                                             :::::                                         (Note 3)    (Note 3)

                                                                             11101                                         17.2        34.5

                                                                             11110                                         16.6        33.3

                                                                             11111                                         16.1        32.3

                                                                             NOTES:

                                                                                1. Duty of SCL output is 50 %. The duty becomes 35 to 45 %
                                                                                    only when the high-speed clock mode is selected and CCR
                                                                                    value = 5 (400 kHz, at  = 4 MHz). "H" duration of the clock
                                                                                    fluctuates from -4 to +2 machine cycles in the standard clock
                                                                                    mode, and fluctuates from -2 to +2 machine cycles in the
                                                                                    high-speed clock mode. In the case of negative fluctuation,

                                                                                    the frequency does not increase because "L" duration is
                                                                                    extended instead of "H" duration reduction. These are values
                                                                                    when SCL synchronization by the synchronous function is

                                                                                    not performed. CCR value is the decimal notation value of
                                                                                    the SCL frequency control bits CCR4 to CCR0.
                                                                                2. Each value of SCL frequency exceeds the limit at  = 4 MHz
                                                                                    or more. When using these setting value, use  of 4 MHz or
                                                                                    less.
                                                                                3. The data formula of SCL frequency is described below:
                                                                                    /(8 CCR value) Standard clock mode
                                                                                    /(4 CCR value) High-speed clock mode (CCR value  5)
                                                                                    /(2 CCR value) High-speed clock mode (CCR value = 5)
                                                                                    Do not set 0 to 2 as CCR value regardless of  frequency.
                                                                                    Set 100 kHz (max.) in the standard clock mode and 400 kHz

                                                                                    (max.) in the high-speed clock mode to the SCL frequency
                                                                                    by setting the SCL frequency control bits CCR4 to CCR0.

Rev.1.00 Oct 27, 2008 Page 65 of 128
REJ03B0266-0100
3804 Group (Spec.L)

[I2C Control Register (S1D)] 001416                                     b7                              b0
The I2C control register (S1D: address 001416) controls data           TISS
communication format.                                                        10BIT  ALS  ES0  BC2  BC1  BC0  I2C control register
                                                                             SAD                             (S1D: address 001416)
Bits 0 to 2: Bit counter (BC0-BC2)
These bits decide the number of bits for the next 1-byte data to be                                          Bit counter (Number of
transmitted. The I2C interrupt request signal occurs immediately                                             transmit/receive bits)
after the number of count specified with these bits (ACK clock is
added to the number of count when ACK clock is selected by                                                    b2 b1 b0
ACK clock bit (bit 7 of S2, address 001516) have been                                                          0 0 0:8
transferred, and BC0 to BC2 are returned to "0002".                                                            0 0 1:7
Also when a START condition is received, these bits become                                                     0 1 0:6
"0002" and the address data is always transmitted and received in                                              0 1 1:5
8 bits.                                                                                                        1 0 0:4
                                                                                                               1 0 1:3
Bit 3: I2C interface enable bit (ES0)                                                                        1 1 0:2
This bit enables to use the multi-master I2C-BUS interface.                                                    1 1 1:1
When this bit is set to "0", the use disable status is provided, so
that the SDA and the SCL become high-impedance. When the bit                                                 I2C-BUS interface enable
is set to "1", use of the interface is enabled.                                                              bit
When ES0 = "0", the following is performed.
PIN = "1", BB = "0" and AL = "0" are set (which are bits of                                                  0: Disabled
                                                                                                               1: Enabled
  the I2C status register, S1, at address 001316 ).
Writing data to the I2C data shift register (S0: address 001116)                                           Data format selection bit
                                                                                                               0: Addressing format
  is disabled.                                                                                                 1: Free data format

Bit 4: Data format selection bit (ALS)                                                                     Addressing format
This bit decides whether or not to recognize slave addresses.                                                selection bit
When this bit is set to "0", the addressing format is selected, so
that address data is recognized. When a match is found between a                                               0: 7-bit addressing
slave address and address data as a result of comparison or when                                                   format
a general call (refer to "I2C Status Register", bit 1) is received,
transfer processing can be performed. When this bit is set to "1",                                             1: 10-bit addressing
the free data format is selected, so that slave addresses are not                                                  format
recognized.
                                                                                                             Not used
                                                                                                             (return "0" when read)

                                                                                                             I2C-BUS interface pin input
                                                                                                             level selection bit

                                                                                                               0: SMBUS input
                                                                                                               1: CMOS input

                                                                       Fig. 63 Structure of I2C clock control register

Bit 5: Addressing format selection bit (10BIT SAD)

This bit selects a slave address specification format. When this
bit is set to "0", the 7-bit addressing format is selected. In this
case, only the high-order 7 bits (slave address) of the I2C slave
address registers 0 to 2 are compared with address data. When
this bit is set to "1", the 10-bit addressing format is selected, and
all the bits of the I2C slave address registers 0 to 2 are compared
with address data.

Bit 7: I2C-BUS interface pin input level selection bit
           (TISS)

This bit selects the input level of the SCL and SDA pins of the
multi-master I2C-BUS interface.

Rev.1.00 Oct 27, 2008 Page 66 of 128
REJ03B0266-0100
3804 Group (Spec.L)

[I2C Status Register (S1)] 001316                                       Bit 4: SCL pin low hold bit (PIN)
                                                                       This bit generates an interrupt request signal. Each time 1-byte
The I2C status register (S1: address 001316) controls the I2C-         data is transmitted, the PIN bit changes from "1" to "0". At the
BUS interface status. The low-order 4 bits are read-only bits and      same time, an interrupt request signal occurs to the CPU. The
the high-order 4 bits can be read out and written to.                  PIN bit is set to "0" in synchronization with a falling of the last
Set "00002" to the low-order 4 bits, because these bits become         clock (including the ACK clock) of an internal clock and an
the reserved bits at writing.                                          interrupt request signal occurs in synchronization with a falling
                                                                       of the PIN bit. When the PIN bit is "0", the SCL is kept in the "0"
Bit 0: Last receive bit (LRB)                                        state and clock generation is disabled. Figure 65 shows an
This bit stores the last bit value of received data and can also be    interrupt request signal generating timing chart.
used for ACK receive confirmation. If ACK is returned when an          The PIN bit is set to "1" in one of the following conditions:
ACK clock occurs, the LRB bit is set to "0". If ACK is not             Executing a write instruction to the I2C data shift register (S0:
returned, this bit is set to "1". Except in the ACK mode, the last
bit value of received data is input. The state of this bit is changed    address 001116). (This is the only condition which the
from "1" to "0" by executing a write instruction to the I2C data         prohibition of the internal clock is released and data can be
shift register (S0: address 001116).                                     communicated except for the start condition detection.)
                                                                        When the ES0 bit is "0"
Bit 1: General call detecting flag (AD0)                              At reset
When the ALS bit is "0", this bit is set to "1" when a general          When writing "1" to the PIN bit by software
call* whose address data is all "0" is received in the slave mode.     The PIN bit is set to "0" in one of the following conditions:
By a general call of the master device, every slave device             Immediately after completion of 1-byte data transmission
receives control data after the general call. The AD0 bit is set to      (including when arbitration lost is detected)
"0" by detecting the STOP condition or START condition, or             Immediately after completion of 1-byte data reception
reset.                                                                  In the slave reception mode, with ALS = "0" and immediately
                                                                         after completion of slave address agreement or general call
* General call: The master transmits the general call address            address reception
                   "0016" to all slaves.                               In the slave reception mode, with ALS = "1" and immediately
                                                                         after completion of address data reception
Bit 2: Slave address comparison flag (AAS)
This flag indicates a comparison result of address data when the       Bit 5: Bus busy flag (BB)
ALS bit is "0".                                                        This bit indicates the status of use of the bus system. When this
(1) In the slave receive mode, when the 7-bit addressing format        bit is set to "0", this bus system is not busy and a START
                                                                       condition can be generated. The BB flag is set/reset by the SCL,
     is selected, this bit is set to "1" in one of the following       SDA pins input signal regardless of master/slave. This flag is set
     conditions:                                                       to "1" by detecting the START condition, and is set to "0" by
    The address data immediately after occurrence of a               detecting the STOP condition. The condition of these detecting is
      START condition agrees with the slave address stored in          set by the START/STOP condition setting bits (SSC4-SSC0) of
      the high-order 7 bits of the I2C slave address register.         the I2C START/STOP condition control register (S2D: address
    A general call is received.                                      001616). When the ES0 bit of the I2C control register (bit 3 of
(2) In the slave receive mode, when the 10-bit addressing              S1D, address 001416) is "0" or reset, the BB flag is set to "0".
     format is selected, this bit is set to "1" with the following     For the writing function to the BB flag, refer to the sections
     condition:                                                        "START Condition Generating Method" and "STOP Condition
    When the address data is compared with the I2C slave             Generating Method" described later.
      address register (8 bits consisting of slave address and
      RWB bit), the first bytes agree.
(3) This bit is set to"0" by executing a write instruction to the
     I2C data shift register (S0: address 001116) when ES0 is set
     to "1" or reset.

Bit 3: Arbitration lost* detecting flag (AL)
In the master transmission mode, when the SDA is made "L" by
any other device, arbitration is judged to have been lost, so that
this bit is set to "1". At the same time, the TRX bit is set to "0",
so that immediately after transmission of the byte whose
arbitration was lost is completed, the MST bit is set to "0". The
arbitration lost can be detected only in the master transmission
mode. When arbitration is lost during slave address transmission,
the TRX bit is set to "0" and the reception mode is set.
Consequently, it becomes possible to detect the agreement of its
own slave address and address data transmitted by another
master device.

The AL bit is set to "0" in one of the following conditions:
Executing a write instruction to the I2C data shift register (S0:

  address 001116)
When the ES0 bit is "0"
At reset

* Arbitration lost: The status in which communication as a
                      master is disabled.

Rev.1.00 Oct 27, 2008 Page 67 of 128
REJ03B0266-0100
3804 Group (Spec.L)

Bit 6: Communication mode specification bit (transfer                     b7       b0
          direction specification bit: TRX)
                                                                                         I2C status register
This bit decides a direction of transfer for data communication.
When this bit is "0", the reception mode is selected and the data           MST TRX BB PIN AL AAS AD0 LRB (S1: address 001316)
of a transmitting device is received. When the bit is "1", the
transmission mode is selected and address data and control data                                                                     Last receive bit (Note)
are output onto the SDA in synchronization with the clock                                                                                0: Last bit = "0"
generated on the SCL.                                                                                                                    1: Last bit = "1"
This bit is set/reset by software and hardware. About set/reset by
hardware is described below. This bit is set to "1" by hardware                                                                     General call detecting flag
when all the following conditions are satisfied:                                                                                    (Note)
When ALS is "0"
In the slave reception mode or the slave transmission mode                                                                             0: No general call detected
When the R/W bit reception is "1"                                                                                                      1: General call detected
This bit is set to "0" in one of the following conditions:
When arbitration lost is detected.                                                                                                Slave address comparison flag
When a STOP condition is detected.                                                                                                (Note)
When writing "1" to this bit by software is invalid by the
                                                                                                                                         0: Address disagreement
  START condition duplication preventing function (Note).                                                                                1: Address agreement
With MST = "0" and when a START condition is detected.
With MST = "0" and when ACK non-return is detected.                                                                               Arbitration lost detecting flag
At reset                                                                                                                          (Note)

Bit 7: Communication mode specification bit (master/                                                                                   0: Not detected
          slave specification bit: MST)                                                                                                  1: Detected

This bit is used for master/slave specification for data                                                                            SCL pin low hold bit
communication. When this bit is "0", the slave is specified, so                                                                          0: SCL pin low hold
that a START condition and a STOP condition generated by the                                                                             1: SCL pin low release
master are received, and data communication is performed in
synchronization with the clock generated by the master. When                                                                        Bus busy flag
this bit is "1", the master is specified and a START condition and                                                                       0: Bus free
a STOP condition are generated. Additionally, the clocks                                                                                 1: Bus busy
required for data communication are generated on the SCL.
This bit is set to "0" in one of the following conditions.                                                                          Communication mode
Immediately after completion of the byte which has lost                                                                           specification bits

  arbitration when arbitration lost is detected                                                                                          0 0 : Slave receive mode
When a STOP condition is detected.                                                                                                     0 1 : Slave transmit mode
Writing "1" to this bit by software is invalid by the START                                                                            1 0 : Master receive mode
                                                                                                                                         1 1 : Master transmit mode
  condition duplication preventing function (Note).
At reset                                                                      Note: These bits and flags can be read out, but cannot be written.
                                                                                         Write "0" to these bits at writing.
Note. START condition duplication preventing function
        The MST, TRX, and BB bits is set to "1" at the same time after      Fig. 64 Structure of I2C status register
        confirming that the BB flag is "0" in the procedure of a START
        condition occurrence. However, when a START condition by                SCL
        another master device occurs and the BB flag is set to "1" imme-        PIN
        diately after the contents of the BB flag is confirmed, the START
        condition duplication preventing function makes the writing to the        I2CIRQ
        MST and TRX bits invalid. The duplication preventing function       Fig. 65 Interrupt request signal generating timing
        becomes valid from the rising of the BB flag to reception comple-
        tion of slave address.

Rev.1.00 Oct 27, 2008 Page 68 of 128
REJ03B0266-0100
3804 Group (Spec.L)

START Condition Generating Method                                    STOP Condition Generating Method

When writing "1" to the MST, TRX, and BB bits of the I2C             When the ES0 bit of the I2C control register (S1D: address
status register (S1: address 001316) at the same time after writing  001416) is "1", write "1" to the MST and TRX bits, and write "0"
the slave address to the I2C data shift register (S0: address        to the BB bit of the I2C status register (S1: address 001316)
001116) with the condition in which the ES0 bit of the I2C           simultaneously. Then a STOP condition occurs. The STOP
control register (S1D: address 001416) is "1" and the BB flag is     condition generating timing is different in the standard clock
"0", a START condition occurs. After that, the bit counter           mode and the high-speed clock mode. Refer to Figure 67, the
becomes "0002" and an SCL for 1 byte is output. The START            STOP condition generating timing diagram, and Table 12, the
condition generating timing is different in the standard clock       STOP condition generating timing table.
mode and the high-speed clock mode. Refer to Figure 66, the
START condition generating timing diagram, and Table 11, the         I2C status register
START condition generating timing table.                                     write signal

I2C status register                                                                    SCL  Setup  Hold time
        write signal                                                                         time
                                                                                      SDA
                  SCL
                 SDA   Setup  Hold time
                        time
                                                                     Fig. 67 STOP condition generating timing diagram

                                                                     Table 12 STOP condition generating timing table

Fig. 66 START condition generating timing diagram                        Item                Standard clock    High-speed clock
                                                                                                    mode               mode
Table 11 START condition generating timing table                     Setup time
                                                                     Hold time              5.0 s (20 cycles)  3.0 s (12 cycles)
                        Standard clock    High-speed clock                                  4.5 s (18 cycles)  2.5 s (10 cycles)
                               mode               mode
    Item                                                             NOTE:
                       5.0 s (20 cycles)  2.5 s (10 cycles)
Setup time             5.0 s (20 cycles)  2.5 s (10 cycles)             1. Absolute time at  = 4 MHz. The value in parentheses
Hold time                                                                   denotes the number of  cycles.

NOTE:

   1. Absolute time at  = 4 MHz. The value in parentheses
       denotes the number of  cycles.

Rev.1.00 Oct 27, 2008 Page 69 of 128
REJ03B0266-0100
3804 Group (Spec.L)

START/STOP Condition Detecting Operation                                                SCL release time

The START/STOP condition detection operations are shown in                        SCL   Setup  Hold time
Figures 68, 69, and Table 13. The START/STOP condition is set                     SDA    time
by the START/STOP condition set bit.
The START/STOP condition can be detected only when the                         BB flag          BB flag
input signal of the SCL and SDA pins satisfy three conditions:                                 reset time
SCL release time, setup time, and hold time (see Table 13).
The BB flag is set to "1" by detecting the START condition and                 Fig. 68 START/STOP condition detecting timing
is reset to "0" by detecting the STOP condition.                                          diagram
The BB flag set/reset timing is different in the standard clock
mode and the high-speed clock mode. Refer to Table 13, the BB
flag set/reset time.

Note. When a STOP condition is detected in the slave mode (MST = 0),
        an interrupt request signal "I2CIRQ" occurs to the CPU.

                                                                                        SCL release time

Table 13 START condition/STOP condition detecting                                 SCL   Setup  Hold time
              conditions                                                          SDA    time

                   Standard clock mode                  High-speed clock mode  BB flag          BB flag
                                                                                               reset time
SCL release   SSC value + 1 cycle (6.25 s)              4 cycle (1.0 s)
     time

Setup time    SSC  value  +  1  cycle < 4 s (3.125  s)  2 cycle (0.5 s)
                   2

Hold time     SSC  value  +  1  cycle < 4 s (3.125  s)  2 cycle (0.5 s)        Fig. 69 STOP condition detecting timing diagram
                   2

BB flag set/  SSC value -1      + 2 cycles (3.375 s)    3.5 cycle (0.875 s)
reset time         2

NOTE:

   1. Unit : Cycle number of system clock
       SSC value is the decimal notation value of the START/STOP
       condition set bits SSC4 to SSC0. Do not set "0" or an odd
       number to SSC value. The value in parentheses is an

       example when the I2C START/STOP condition control
       register is set to "1816" at  = 4 MHz.

Rev.1.00 Oct 27, 2008 Page 70 of 128
REJ03B0266-0100
3804 Group (Spec.L)

[I2C START/STOP Condition Control Register (S2D)]                           Bit 6: SCL/SDA interrupt pin selection bit (SIS)
001616
                                                                           This bit selects the pin of which interrupt becomes valid between
The I2C START/STOP condition control register (S2D: address                the SCL pin and the SDA pin.
001616) controls START/STOP condition detection.
                                                                           Note. When changing the setting of the SCL/SDA interrupt pin polarity
Bits 0 to 4: START/STOP condition set bits                                       selection bit, the SCL/SDA interrupt pin selection bit, or the I2C-
           (SSC4-SSC0)                                                             BUS interface enable bit ES0, the SCL/SDA interrupt request bit
                                                                                   may be set. When selecting the SCL/SDA interrupt source, dis-
SCL release time, setup time, and hold time change the detection                   able the interrupt before the SCL/SDA interrupt pin polarity selec-
condition by value of the main clock divide ratio selection bit                    tion bit, the SCL/SDA interrupt pin selection bit, or the I2C-BUS
and the oscillation frequency f(XIN) because these time are                        interface enable bit ES0 is set. Reset the request bit to "0" after
measured by the internal system clock. Accordingly, set the                        setting these bits, and enable the interrupt.
proper value to the START/STOP condition set bits (SSC4 to
SSC0) in considered of the system clock frequency. Refer to
Table 13.
Do not set "000002" or an odd number to the START/STOP
condition set bits (SSC4 to SSC0).
Refer to Table 14, the recommended set value to START/STOP
condition set bits (SSC4-SSC0) for each oscillation frequency.

Bit 5: SCL/SDA interrupt pin polarity selection bit
          (SIP)

An interrupt can occur when detecting the falling or rising edge
of the SCL or SDA pin. This bit selects the polarity of the SCL or
SDA pin interrupt pin.

b7                      b0

    SIS SIP SSC4 SSC3 SSC2 SSC1 SSC0  I2C START/STOP condition
                                      control register
                                      (S2D: address 001616)

                                      START/STOP condition set bits

                                      SCL/SDA interrupt pin polarity
                                      selection bit

                                        0: Falling edge active
                                        1: Rising edge active

                                      SCL/SDA interrupt pin selection bit
                                        0: SDA valid
                                        1: SCL valid

                                      Not used
                                      (Fix this bit to "0".)

Fig. 70 Structure of I2C START/STOP condition control
           register

Table 14 Recommended set value to START/STOP condition set bits (SSC4-SSC0) for each oscillation frequency

Oscillation  Main clock               Internal clock    START/STOP         SCL release time  Setup time               Hold time
frequency   divide ratio                   (MHz)      condition control           (s)           (s)                      (s)
f(XIN)(MHz)
                                                            register                                            3.25 s (13 cycles)
                                                                                                                3.0 s (12 cycles)
    8                2                4                         XXX11010 6.75 s (27 cycles) 3.5 s (14 cycles)    2.0 s (2 cycles)
                                                                                                                 3.0 s (6 cycles)
                                                                XXX11000 6.25 s (25 cycles) 3.25 s (13 cycles)   2.5 s (5 cycles)
                                                                                                                 2.0 s (2 cycles)
    8                8                1                         XXX00100   5.0 s (5 cycles) 3.0 s (3 cycles)

    4                2                2                         XXX01100   6.5 s (13 cycles) 3.5 s (7 cycles)

                                                                XXX01010   5.5 s (11 cycles) 3.0 s (6 cycles)

    2                2                1                         XXX00100   5.0 s (5 cycles) 3.0 s (3 cycles)

NOTE:

   1. Do not set an odd number to the START/STOP condition set bits (SSC4 to SSC0) and "000002".

Rev.1.00 Oct 27, 2008 Page 71 of 128
REJ03B0266-0100
3804 Group (Spec.L)

[I2C Special Mode Status Register (S3)] 001216                        Bit 5: SCL pin low hold 2 flag (PIN2)
                                                                     When the ACK interrupt control bit (ACKICON) and the ACK
The I2C special mode status register (S3: address 001216)            clock bit (ACK) are "1", this flag is set to "0" in synchronization
consists of the flags indicating I2C operating state in the I2C      with the falling of the data's last SCL clock, just before the ACK
special mode, which is set by the I2C special mode control           clock. The SCL pin is simultaneously held low, and the I2C
register (S3D: address 001716).                                      interrupt request occurs.
The stop condition flag is valid in all operating modes.             This flag is initialized to "1" at reset, when the ACK interrupt
                                                                     control bit (ACKICON) is "0", or when writing "1" to the SCL
Bit 0: Slave address 0 comparison flag (AAS0)                      pin low hold 2 flag set bit (PIN2IN).
Bit 1: Slave address 1 comparison flag (AAS1)                       The SCL pin is held low when either the SCL pin low hold bit
Bit 2: Slave address 2 comparison flag (AAS2)                       (PIN) or the SCL pin low hold 2 flag (PIN2) becomes "0". The
                                                                     low hold state of the SCL pin is released when both the SCL pin
These flags indicate a comparison result of address data. These      low hold bit (PIN) and the SCL pin low hold 2 flag (PIN2) are
flags are valid only when the slave address control bit (MSLAD)      "1".
is "1".
In the 7-bit addressing format of the slave reception mode, the       Bit 7: Stop condition flag (SPCF)
respective slave address i (i = 0, 1, 2) comparison flags            This flag is set to "1" when a STOP condition occurs.
corresponding to the I2C slave address registers 0 to 2 are set to   This flag is initialized to "0" at reset, when the I2C-BUS
"1" when an address data immediately after an occurrence of a        interface enable bit (ES0) is "0", or when writing "1" to the
START condition agrees with the high-order 7-bit slave address       STOP condition flag clear bit (SPFCL).
stored in the I2C slave address registers 0 to 2 (addresses 0FF716
to 0FF916).
In the 10-bit addressing format of the slave mode, the respective
slave address i (i = 0, 1, 2) comparison flags corresponding to the
I2C slave address registers are set to "1" when an address data is
compared with the 8 bits consisting of the slave address stored in
the I2C slave address registers 0 to 2 and the RWB bit, and the
first byte agrees.
These flags are initialized to "0" at reset, when the slave address
control bit (MSLAD) is "0", or when writing data to the I2C data
shift register (S0: address 001116).

                       b7  PIN2                         b0           I2C special mode status register
                                                                     (S3: address 001216)
                     SPCF             AAS2 AAS1 AAS0

                                                                                                 Slave address 0 comparison flag
                                                                                                    0: Address disagreement
                                                                                                    1: Address agreement

                                                                                                 Slave address 1 comparison flag
                                                                                                    0: Address disagreement
                                                                                                    1: Address agreement

                                                                                                 Slave address 2 comparison flag
                                                                                                    0: Address disagreement
                                                                                                    1: Address agreement

                                                                                                 Not used
                                                                                                 (return "0" when read)

                                                                                                 Not used
                                                                                                 (undefined when read)

                                                                                                 SCL pin low hold 2 flag
                                                                                                    0: SCL pin low hold
                                                                                                    1: SCL pin low release (Note)

                                                                                                 Not used
                                                                                                 (return "0" when read)

                                                                                                 STOP condition flag
                                                                                                    0: No detection
                                                                                                    1: Detection

                           Note: In order that the low hold state of the SCL pin may release, it is necessary that the
                                   SCL pin low hold 2 flag and the SCL pin low hold bit (PIN) are "1" simultaneously.

Fig. 71 Structure of I2C special mode status register

Rev.1.00 Oct 27, 2008 Page 72 of 128
REJ03B0266-0100
3804 Group (Spec.L)

[I2C Special Mode Control Register (S3D)] 001716                      Bit 2: I2C slave address control bit (MSLAD)
                                                                     This bit controls a slave address. When this bit is "0", only the
The I2C special mode control register (S3D: address 001716)          I2C slave address register 0 (address 0FF716) becomes valid as a
controls special functions such as occurrence timing of reception    slave address and a read/write bit.
interrupt request and extending slave address comparison to 3        When this bit is "1", all of the I2C slave address registers 0 to 2
bytes.                                                               (addresses 0FF716 to 0FF916) become valid as a slave address
                                                                     and a read/write bit. In this case, when an address data agrees
Bit 1: ACK interrupt control bit (ACKICON)                         with any one of the I2C slave address registers 0 to 2, the slave
This bit controls the timing of I2C interrupt request occurrence at  address comparison flag (AAS) is set to "1" and the I2C slave
completion of data receiving due to master reception or slave        address comparison flag corresponding to the agreed I2C slave
reception.                                                           address registers 0 to 2 is also set to "1".
When this bit is "0", the SCL pin low hold bit (PIN) is set to "0"
in synchronization with the falling of the last SCL clock,            Bit 5: SCL pin low hold 2 flag set bit (PIN2IN)
including the ACK clock. The SCL pin is simultaneously held          Writing "1" to this bit initializes the SCL pin low hold 2 flag
low, and the I2C interrupt request occurs.                           (PIN2) to "1".
When this bit is "1" and the ACK clock bit (ACK) is "1", the         When writing "0", nothing is generated.
SCL pin low hold 2 flag (PIN2) is set to "0" in synchronization
with the falling of the data's last SCL clock, just before the ACK    Bit 6: SCL pin low hold set bit (PIN2HD)
clock. The SCL pin is simultaneously held low, and the I2C           When the SCL pin low hold bit (PIN) becomes "0", the SCL pin
interrupt request occurs again. The ACK bit can be changed after     is held low. However, the SCL pin low hold bit (PIN) cannot be
the contents of data are confirmed by using this function.           set to "0" by software. The SCL pin low hold set bit (PIN2HD)
                                                                     is used to, hold the SCL pin in the low state by software. When
                                                                     writing "1" to this bit, the SCL pin low hold 2 flag (PIN2)
                                                                     becomes "0", and the SCL pin is held low. When writing "0",
                                                                     nothing occurs.

                                                                      Bit 7: STOP condition flag clear bit (SPFCL)

                                                                     Writing "1" to this bit initializes the STOP condition flag (SPCF)
                                                                     to "0".
                                                                     When writing "0", nothing is generated.

                       b7                               b0

                     SPFCL PIN2HD PIN2IN  MSLAD  ACKI                I2C special mode control register
                                                 CON                 (S3D: address 001716)

                                                                                            Not used
                                                                                            (Fix this bit to "0".)

                                                                                            ACK interrupt control bit
                                                                                               0: At communication completion
                                                                                               1: At falling of ACK clock and communication
                                                                                                  completion

                                                                                            Slave address control bit
                                                                                               0: One-byte slave address compare mode
                                                                                               1: Three-byte slave address compare mode

                                                                                            Not used
                                                                                            (return "0" when read)

                                                                                            Not used
                                                                                            (Fix this bit to "0".)

                                                                                            SCL pin low hold 2 flag set bit (Notes 1, 2)
                                                                                               Writing "1" to this bit initializes the SCL pin
                                                                                               low hold 2 flag to "1".

                                                                                            SCL pin low hold set bit (Notes 1, 2)
                                                                                               When writing "1" to this bit, the SCL pin low
                                                                                               hold 2 flag becomes "0" and the SCL pin is
                                                                                               held low.

                                                                                            STOP condition flag clear bit (Note 2)
                                                                                               Writing "1" to this bit initializes the STOP
                                                                                               condition flag to "0".

                     Notes 1: Do not write "1" to these bits simultaneously.
                              2: return "0" when read

Fig. 72 Structure of I2C special mode control register

Rev.1.00 Oct 27, 2008 Page 73 of 128
REJ03B0266-0100
3804 Group (Spec.L)

Address Data Communication                                           address comparison between the RWB bit of the I2C slave
                                                                     address register and the R/W bit which is the last bit of the
There are two address data communication formats, namely, 7-         address data transmitted from the master is made. In the 10-bit
bit addressing format and 10-bit addressing format. The              addressing mode, the RWB bit which is the last bit of the address
respective address communication formats are described below.        data not only specifies the direction of communication for
                                                                     control data, but also is processed as an address data bit.
7-bit addressing format                                            When the first-byte address data agree with the slave address, the
To adapt the 7-bit addressing format, set the 10BIT SAD bit of       AAS bit of the I2C status register (S1: address 001316) is set to
the I2C control register (S1D: address 001416) to "0". The first 7-  "1". After the second-byte address data is stored into the I2C data
bit address data transmitted from the master is compared with the    shift register (S0: address 001116), perform an address
high-order 7-bit slave address stored in the I2C slave address       comparison between the second-byte data and the slave address
register. At the time of this comparison, address comparison of      by software. When the address data of the 2 bytes agree with the
the RWB bit of the I2C slave address register is not performed.      slave address, set the RWB bit of the I2C slave address register to
For the data transmission format when the 7-bit addressing           "1" by software. This processing can make the 7-bit slave
format is selected, refer to Figure 73, (1) and (2).                 address and R/W data agree, which are received after a
                                                                     RESTART condition is detected, with the value of the I2C slave
10-bit addressing format                                           address register. For the data transmission format when the 10-
To adapt the 10-bit addressing format, set the 10BIT SAD bit of      bit addressing format is selected, refer to Figure 73, (3) and (4)
the I2C control register (S1D: address 001416) to "1". An address    .
comparison is performed between the first-byte address data
transmitted from the master and the 8-bit slave address stored in
the I2C slave address register. At the time of this comparison, an

(1) A master-transmitter transmits data to a slave-receiver

S Slave address R/W A Data A Data A/A P

   7 bits              "0"     1 to 8 bits    1 to 8 bits

(2) A master-receiver receives data from a slave-transmitter

S Slave address R/W A Data A Data A P

   7 bits              "1"     1 to 8 bits    1 to 8 bits

(3) A master-transmitter transmits data to a slave-receiver with a 10-bit address

S  Slave address     R/W    A  Slave address  A               Data        A       Data A/A P
   1st 7 bits                  2nd bytes

   7 bits              "0"     8 bits                        1 to 8 bits     1 to 8 bits

(4) A master-receiver receives data from a slave-transmitter with a 10-bit address

S  Slave address     R/W    A  Slave address  A               Sr     Slave address  R/W   A     Data  A  Data            A  P
   1st 7 bits                  2nd bytes                             1st 7 bits

   7 bits              "0"     8 bits                                     7 bits    "1"         1 to 8 bits 1 to 8 bits

S: START condition             P: STOP condition                             : Master to slave
A: ACK bit                     R/W: Read/Write bit                           : Slave to master
Sr: Restart condition

Fig. 73 Address data communication format

Rev.1.00 Oct 27, 2008 Page 74 of 128
REJ03B0266-0100
3804 Group (Spec.L)

Example of Master Transmission                                       Example of Slave Reception

An example of master transmission in the standard clock mode,        An example of slave reception in the high-speed clock mode, at
at the SCL frequency of 100 kHz and in the ACK return mode is        the SCL frequency of 400 kHz, in the ACK non-return mode and
shown below.                                                         using the addressing format is shown below.
(1) Set a slave address in the high-order 7 bits of the I2C slave    (1) Set a slave address in the high-order 7 bits of the I2C slave

     address register and "0" into the RWB bit.                           address register and "0" in the RWB bit.
(2) Set the ACK return mode and SCL = 100 kHz by setting             (2) Set the no ACK clock mode and SCL = 400 kHz by setting

     "8516" in the I2C clock control register (S2: address 001516).       "2516" in the I2C clock control register (S2: address 001516).
(3) Set "0016" in the I2C status register (S1: address 001316) so    (3) Set "0016" in the I2C status register (S1: address 001316) so

     that transmission/reception mode can become initializing             that transmission/reception mode can become initializing
     condition.                                                           condition.
(4) Set a communication enable status by setting "0816" in the       (4) Set a communication enable status by setting "0816" in the
     I2C control register (S1D: address 001416).                          I2C control register (S1D: address 001416).
(5) Confirm the bus free condition by the BB flag of the I2C         (5) When a START condition is received, an address
     status register (S1: address 001316).                                comparison is performed.
(6) Set the address data of the destination of transmission in the   (6) When all transmitted addresses are "0" (general call):
     high-order 7 bits of the I2C data shift register (S0: address         AD0 of the I2C status register (S1: address 001316) is set to
     001116) and set "0" in the least significant bit.                     "1" and an interrupt request signal occurs.
(7) Set "F016" in the I2C status register (S1: address 001316) to         When the transmitted addresses agree with the address set
     generate a START condition. At this time, an SCL for 1                in (1):
     byte and an ACK clock automatically occur.                            AAS of the I2C status register (S1: address 001316) is set to
(8) Set transmit data in the I2C data shift register (S0: address          "1" and an interrupt request signal occurs.
     001116). At this time, an SCL and an ACK clock                      In the cases other than the above AD0 and AAS of the I2C
     automatically occur.                                                  status register (S1: address 001316) are set to "0" and no
(9) When transmitting control data of more than 1 byte, repeat             interrupt request signal occurs.
     step (8).                                                       (7) Set dummy data in the I2C data shift register (S0: address
(10) Set "D016" in the I2C status register (S1: address 001316) to        001116).
     generate a STOP condition if ACK is not returned from           (8) When receiving control data of more than 1 byte, repeat step
     slave reception side or transmission ends.                           (7).
                                                                     (9) When a STOP condition is detected, the communication
                                                                          ends.

Rev.1.00 Oct 27, 2008 Page 75 of 128
REJ03B0266-0100
3804 Group (Spec.L)

Precautions when using multi-master I2C BUS inter-                 5. Disable interrupts during the following three process steps:
face                                                                BB flag confirming
                                                                     Writing of slave address value
(1) Read-modify-write instruction                                    Trigger of START condition generating
                                                                    When the condition of the BB flag is bus busy, enable
The precautions when the read-modify-write instruction such as      interrupts immediately.
SEB, CLB etc. is executed for each register of the multi-master
I2C-BUS interface are described below.                             (3) RESTART condition generating procedure
I2C data shift register (S0: address 001116)
                                                                   1. Procedure example (The necessary conditions of the gener-
  When executing the read-modify-write instruction for this
  register during transfer, data may become a value not intended.  ating procedure are described as the following 2 to 4.)
I2C slave address registers 0 to 2 (S0D0 to S0D2: addresses
  0FF716 to0FF916)                                                 Execute the following procedure when the PIN bit is "0"
  When the read-modify-write instruction is executed for this
  register at detecting the STOP condition, data may become a      :
  value not intended. It is because H/W changes the read/write
  bit (RWB) at the above timing.                                   LDM #$00, S1 (Select slave receive mode)
I2C status register (S1: address 001316)
  Do not execute the read-modify-write instruction for this        LDA -   (Taking out of slave address value)
  register because all bits of this register are changed by H/W.
I2C control register (S1D: address 001416)                       SEI     (Interrupt disabled)
  When the read-modify-write instruction is executed for this
  register at detecting the START condition or at completing the   STA S0  (Writing of slave address value)
  byte transfer, data may become a value not intended. Because
  H/W changes the bit counter (BC0-BC2) at the above timing.       LDM #$F0, S1 (Trigger of RESTART condition generating)
I2C clock control register (S2: address 001516)
  The read-modify-write instruction can be executed for this       CLI     (Interrupt enabled)
  register.
I2C START/STOP condition control register (S2D: address          :
  001616)
  The read-modify-write instruction can be executed for this       2. Select the slave receive mode when the PIN bit is "0". Do
  register.
                                                                   not write "1" to the PIN bit. Neither "0" nor "1" is specified

                                                                   for the writing to the BB bit.

                                                                   The TRX bit becomes "0" and the SDA pin is released.

                                                                   3. The SCL pin is released by writing the slave address value

                                                                   to the I2C data shift register.

                                                                   4. Disable interrupts during the following two process steps:

                                                                   Writing of slave address value

                                                                   Trigger of RESTART condition generating

(2) START condition generating procedure using                     (4) Writing to I2C status register
    multi-master
                                                                   Do not execute an instruction to set the PIN bit to "1" from "0"
1. Procedure example (The necessary conditions of the gener-       and an instruction to set the MST and TRX bits to "0" from "1"
                                                                   simultaneously. It is because it may enter the state that the SCL
ating procedure are described as the following 2 to 5.             pin is released and the SDA pin is released after about one
                                                                   machine cycle. Do not execute an instruction to set the MST and
                                                                   TRX bits to "0" from "1" simultaneously when the PIN bit is
                                                                   "1". It is because it may become the same as above.

:

LDA -                (Taking out of slave address value)           (5) Process of after STOP condition generating

SEI                  (Interrupt disabled)                          Do not write data in the I2C data shift register S0 and the I2C
                                                                   status register S1 until the bus busy flag BB becomes "0" after
BBS 5, S1, BUSBUSY (BB flag confirming and branch process)         generating the STOP condition in the master mode. It is because
                                                                   the STOP condition waveform might not be normally generated.
BUSFREE:                                                           Reading to the above registers does not have the problem.

STA S0               (Writing of slave address value)

LDM #$F0, S1         (Trigger of START condition

generating)

CLI                  (Interrupt enabled)

:

BUSBUSY:

CLI                  (Interrupt enabled)

:

2. Use "Branch on Bit Set" of "BBS 5, S1, -" for the BB flag

confirming and branch process.

3. Use "STA $12, STX $12" or "STY $12" of the zero page

addressing instruction for writing the slave address value to

the I2C data shift register.

4. Execute the branch instruction of above 2 and the store

instruction of above 3 continuously shown the above proce-

dure example.

Rev.1.00 Oct 27, 2008 Page 76 of 128
REJ03B0266-0100
3804 Group (Spec.L)

RESET CIRCUIT                                                                                                           VCC  2.7 V

To reset the microcomputer, RESET pin should be held at an "L"          RESET  VCC                                      0V
level for 16 cycles or more of XIN. Then the RESET pin is               RESET
returned to an "H" level (the power source voltage should be                                 RESET                                                                 0.2VCC or less
between 2.7 V and 5.5 V, and the oscillation should be stable),                                   0V
reset is released. After the reset is completed, the program starts
from the address contained in address FFFD16 (high-order byte)                                                               td(P-R)+XIN16 cycles or more
and address FFFC16 (low-order byte).
Input to the RESET pin in the following procedure.                                                                      5V
When power source is stabilized
(1) Input "L" level to RESET pin.                                                            VCC                             2.7 V
(2) Input "L" level for 16 cycles or more to XIN pin.
(3) Input "H" level to RESET pin.                                                      Power source
At power-on                                                                  VCC voltage detection 0 V
(1) Input "L" level to RESET pin.
(2) Increase the power source voltage to 2.7 V.                                     circuit                             5V
(3) Wait for td(P-R) until internal power source has stabilized.
(4) Input "L" level for 16 cycles or more to XIN pin.                                        RESET
(5) Input "H" level to RESET pin.
                                                                                                    0V

                                                                                                                             td(P-R)+XIN16 cycles or more

                                                                                                  Example at VCC = 5 V

                                                                     Fig. 74 Reset circuit example

XIN



RESET                ?     ?             ?                           ?         FFFC FFFD ADH,L
Internal
                                                                                                                        Reset address from the
    reset                                                                                                               vector table.

Address                 ?             ?     ?                           ?      ADL  ADH

    Data
  SYNC

                                   XIN : 10.5 to 18.5 clock cycles
                                                               Notes 1: The frequency relation of f(XIN) and f() is f(XIN) = 8 f().
                                                                        2: The question marks (?) indicate an undefined state that depends on the previous state.

Fig. 75 Reset sequence

Rev.1.00 Oct 27, 2008 Page 77 of 128
REJ03B0266-0100
3804 Group (Spec.L)

                                              Address Register contents                                                                 Address Register contents

(1) Port P0 (P0)                              000016  0016                           (41) Timer Z (low-order) (TZL)                     002816  FF16
(2) Port P0 direction register (P0D)          000116  0016                           (42) Timer Z (high-order) (TZH)
                                                                                     (43) Timer Z mode register (TZM)                   002916  FF16
                                                                                     (44) PWM control register (PWMCON)
(3) Port P1 (P1)                              000216  0016                           (45) PWM prescaler (PREPWM)                        002A16  0016
                                                                                     (46) PWM register (PWM)
(4) Port P1 direction register (P1D)          000316  0016                                                                              002B16  0016

(5) Port P2 (P2)                              000416  0016                                                                              002C16 X X X X X X X X

(6) Port P2 direction register (P2D)          000516  0016                                                                              002D16 X X X X X X X X

(7) Port P3 (P3)                              000616  0016                           (47) Baud rate generator 3 (BRG3)                  002F16 X X X X X X X X
(8) Port P3 direction register (P3D)          000716  0016
                                                                                     (48) Transmit/Receive buffer register 3 (TB3/RB3) 003016 X X X X X X X X

(9) Port P4 (P4)                              000816  0016                           (49) Serial I/O3 status register (SIO3STS)         003116 1 0 0 0 0 0 0 0
(10) Port P4 direction register (P4D)         000916  0016
(11) Port P5 (P5)                             000A16  0016                           (50) Serial I/O3 control register (SIO3CON)        003216  0016

                                                                                     (51) UART3 control register (UART3CON)             003316 1 1 1 0 0 0 0 0
                                                                                     (52) AD/DA control register (ADCON)
(12) Port P5 direction register (P5D)         000B16  0016                           (53) AD conversion register 1 (AD1)                003416 0 0 0 0 1 0 0 0
                                                                                     (54) DA1 conversion register (DA1)
(13) Port P6 (P6)                             000C16  0016                           (55) DA2 conversion register (DA2)                 003516 X X X X X X X X

(14) Port P6 direction register (P6D)         000D16  0016                                                                              003616  0016

(15) Timer 12, X count source selection register (T12XCSS) 000E16 0 0 1 1 0 0 1 1                                                       003716  0016

(16) Timer Y, Z count source selection register (TYZCSS) 000F16 0 0 1 1 0 0 1 1      (56) AD conversion register 2 (AD2)                003816 0 0 0 0 0 0 X X

(17) MISRG                                    001016  0016                           (57) Interrupt source selection register (INTSEL)  003916  0016
                                                                                     (58) Interrupt edge selection register (INTEDGE)
(18) I2C data shift register (S0)             001116 X X X X X X X X                 (59) CPU mode register (CPUM)                      003A16  0016
                                                                                     (60) Interrupt request register 1 (IREQ1)
(19) I2C special mode status register (S3)    001216 0 0 1 0 0 0 0 0                                                                    003B16 0 1 0 0 1 0 0 0

(20) I2C status register (S1)                 001316 0 0 0 1 0 0 0 X                                                                    003C16  0016

(21) I2C control register (S1D)               001416  0016                           (61) Interrupt request register 2 (IREQ2)          003D16  0016

(22) I2C clock control register (S2)          001516  0016                           (62) Interrupt control register 1 (ICON1)          003E16  0016

(23) I2C START/STOP condition control register (S2D) 001616 0 0 0 1 1 0 1 0          (63) Interrupt control register 2 (ICON2)          003F16  0016

(24) I2C special mode control register (S3D)  001716  0016                           (64) Flash memory control register 0 (FMCR0) 0FE016 0 0 0 0 0 0 0 1

(25) Transmit/Receive buffer register 1 (TB1/RB1) 001816 X X X X X X X X             (65) Flash memory control register 1 (FMCR1) 0FE116 0 1 0 0 0 0 0 0

(26) Serial I/O1 status register (SIO1STS)    001916 1 0 0 0 0 0 0 0                 (66) Flash memory control register 2 (FMCR2) 0FE216 0 1 0 0 0 1 0 1

(27) Serial I/O1 control register (SIO1CON)   001A16  0016                           (67) Port P0 pull-up control register (PULL0)      0FF016  0016

(28) UART1 control register (UART1CON)        001B16 1 1 1 0 0 0 0 0                 (68) Port P1 pull-up control register (PULL1)      0FF116  0016

(29) Baud rate generator 1 (BRG1)             001C16 X X X X X X X X                 (69) Port P2 pull-up control register (PULL2)      0FF216  0016

(30) Serial I/O2 control register (SIO2CON)   001D16  0016                           (70) Port P3 pull-up control register (PULL3)      0FF316  0016

(31) Watchdog timer control register (WDTCON) 001E16 0 0 1 1 1 1 1 1                 (71) Port P4 pull-up control register (PULL4)      0FF416  0016

(32) Serial I/O2 register (SIO2)              001F16 X X X X X X X X                 (72) Port P5 pull-up control register (PULL5)      0FF516  0016

(33) Prescaler 12 (PRE12)                     002016  FF16                           (73) Port P6 pull-up control register (PULL6)      0FF616  0016

(34) Timer 1 (T1)                             002116  0116                           (74) I2C slave address register 0 (S0D0)           0FF716  0016

(35) Timer 2 (T2)                             002216  FF16                           (75) I2C slave address register 1 (S0D1)           0FF816  0016

(36) Timer XY mode register (TM)              002316  0016                           (76) I2C slave address register 2 (S0D2)           0FF916  0016
(37) Prescaler X (PREX)                       002416  FF16
                                                                                     (77) Processor status register                     (PS) X X X X X 1 X X

(38) Timer X (TX)                             002516  FF16                           (78) Program counter                               (PCH) FFFD16 contents

(39) Prescaler Y (PREY)                       002616  FF16                                                                              (PCL)   FFFC16 contents

(40) Timer Y (TY)                             002716  FF16

     Note : X: Not fixed.
              Since the initial values for other than above mentioned registers and
              RAM contents are indefinite at reset, they must be set.

Fig. 76 Internal status at reset

Rev.1.00 Oct 27, 2008 Page 78 of 128
REJ03B0266-0100
3804 Group (Spec.L)

CLOCK GENERATING CIRCUIT                                            Oscillation Control

The 3804 group (Spec.L) has two built-in oscillation circuits:      (1) Stop mode
main clock XIN-XOUT oscillation circuit and sub clock XCIN-
XCOUT oscillation circuit. An oscillation circuit can be formed by  If the STP instruction is executed, the internal clock  stops at an
connecting a resonator between XIN and XOUT (XCIN and               "H" level, and XIN and XCIN oscillators stop. When the
XCOUT). Use the circuit constants in accordance with the            oscillation stabilizing time set after STP instruction released bit
resonator manufacturer's recommended values. No external            (bit 0 of address 001016) is "0", the prescaler 12 is set to "FF16"
resistor is needed between XIN and XOUT since a feed-back           and timer 1 is set to "0116". When the oscillation stabilizing time
resistor exists on-chip.(An external feed-back resistor may be      set after STP instruction released bit is "1", set the sufficient time
needed depending on conditions.) However, an external feed-         for oscillation of used oscillator to stabilize since nothing is set to
back resistor is needed between XCIN and XCOUT.                     the prescaler 12 and timer 1.
Immediately after power on, only the XIN oscillation circuit        After STP instruction is released, the input of the prescaler 12 is
starts oscillating, and XCIN and XCOUT pins function as I/O ports.  connected to count source which had set at executing the STP
                                                                    instruction, and the output of the prescaler 12 is connected to
Frequency Control                                                 timer 1. Oscillator restarts when an external interrupt is received,
                                                                    but the internal clock  is not supplied to the CPU (remains at
(1) Middle-speed mode                                               "H") until timer 1 underflows. The internal clock  is supplied
                                                                    for the first time, when timer 1 underflows. This ensures time for
The internal clock  is the frequency of XIN divided by 8. After     the clock oscillation using the ceramic resonators to be
reset is released, this mode is selected.                           stabilized. When the oscillator is restarted by reset, apply "L"
                                                                    level to the RESET pin until the oscillation is stable since a wait
(2) High-speed mode                                                 time will not be generated.
                                                                    In the flash memory L version, the built-in power source circuit
The internal clock  is half the frequency of XIN.                   is switched to the low power dissipation mode at executing the
                                                                    STP instruction to reduce consumption current. At returning
(3) Low-speed mode                                                  from the STP instruction, the built-in power source circuit is
                                                                    switched to the normal mode, but a specified time is required
The internal clock  is half the frequency of XCIN.                  from when the power supply to the flash memory is started until
                                                                    the flash memory operation is enabled. In this version, set a wait
(4) Low power dissipation mode                                      time of 100 s or more with the oscillation stabilizing time set
                                                                    after STP instruction released function by using timer 1.
The low power consumption operation can be realized by
stopping the main clock XIN in low-speed mode. To stop the          (2) Wait mode
main clock, set bit 5 of the CPU mode register to "1". When the
main clock XIN is restarted (by setting the main clock stop bit to  If the WIT instruction is executed, the internal clock  stops at an
"0"), set sufficient time for oscillation to stabilize.             "H" level, but the oscillator does not stop. The internal clock
The sub-clock XCIN-XCOUT oscillating circuit can not directly       restarts at reset or when an interrupt is received. Since the
input clocks that are generated externally. Accordingly, make       oscillator does not stop, normal operation can be started
sure to cause an external resonator to oscillate.                   immediately after the clock is restarted.

                                                                    To ensure that the interrupts will be received to release the STP
                                                                    or WIT state, their interrupt enable bits must be set to "1" before
                                                                    executing of the STP or WIT instruction.
                                                                    When releasing the STP state, the input of the prescaler 12 and
                                                                    timer 1 is connected to the count source which had set at
                                                                    executing the STP instruction and the prescaler 12 and timer 1
                                                                    will start counting. Set the timer 1 interrupt enable bit to "0"
                                                                    before executing the STP instruction.

                                                                    
                                                                     If you switch the mode between middle/high-speed and low-

                                                                      speed, stabilize both XIN and XCIN oscillations. The sufficient
                                                                      time is required for the sub clock to stabilize, especially
                                                                      immediately after power on and at returning from stop mode.
                                                                      When switching the mode between middle/high-speed and
                                                                      low-speed, set the frequency on condition that f(XIN) >
                                                                      3f(XCIN).
                                                                     When using the quartz-crystal oscillator of high frequency,
                                                                      such as 16 MHz etc., it may be necessary to select a specific
                                                                      oscillator with the specification demanded.
                                                                     When using the oscillation stabilizing time set after STP
                                                                      instruction released bit set to "1", evaluate time to stabilize
                                                                      oscillation of the used oscillator and set the value to the timer 1
                                                                      and prescaler 12.

Rev.1.00 Oct 27, 2008 Page 79 of 128
REJ03B0266-0100
3804 Group (Spec.L)

     XCIN XCOUT             XIN XOUT
          Rf Rd                          Rd

     CCIN CCOUT CIN COUT

      Note 1 : Insert a damping resistor if required.
                  The resistance will vary depending on the
                  oscillator and the oscillation drive capacity
                  setting.
                  Use the value recommended by the maker of the
                  oscillator.
                  Also, if the oscillator manufacturer's data sheet
                  specifies that a feedback resistor be added
                  external to the chip though a feedback resistor
                  exists on-chip, insert a feedback resistor between
                  XIN and XOUT following the instruction.

Fig. 77 Ceramic resonator circuit

     XCIN            XCOUT       XIN  XOUT

            Rf       Rd               Open
           CCIN
                            External oscillation

                     CCOUT            circuit

VCC                         VCC
VSS                         VSS

Fig. 78 External clock input circuit

Rev.1.00 Oct 27, 2008 Page 80 of 128
REJ03B0266-0100
3804 Group (Spec.L)

XCIN                 XCOUT

      "1"            "0"

                     Port XC

                     switch bit

XIN                  XOUT Main clock division ratio

      (4)                   selection bits(1)

                            Low-speed                        Divider
                            mode

                                                    1/2 1/4           Prescaler 12          Timer 1

                            High-speed or                                                            Reset or
                            middle-speed mode                                                        STP instruction(2)
                                                                                       (3)

                                                            Main clock division ratio  Timing  (internal clock)
                                                            selection bits(1)

                                                                Middle-speed mode

                                               High-speed or
                                               low-speed mode

                     Main clock stop bit

      QS                                                     SQ       QS                             Reset
           R
                     STP                          WIT        R        R   STP
                     instruction          instruction                     instruction

                                Reset
    Interrupt disable flag l

           Interrupt request

     Notes 1: Either high-speed, middle-speed or low-speed mode is selected by bits 7 and 6 of the CPU mode register.
                 When low-speed mode is selected, set port XC switch bit (b4) to "1".

              2: f(XIN)/16 is supplied as the count source to the prescaler 12 at reset, the count source before executing the STP instruction is
                 supplied as the count source at executing STP instruction.

              3: When bit 0 of MISRG is "0", timer 1 is set "0116" and prescaler 12 is set "FF16" automatically. When bit 0 of MISRG is "1" , set the
                 appropriate value to them in accordance with oscillation stabilizing time required by the using oscillator because nothing is
                 automatically set into timer 1 and prescaler 12.

              4: Although a feed-back resistor exists on-chip, an external feed-back resistor may be needed depending on conditions.

Fig. 79 System clock generating circuit block diagram (Single-chip mode)

Rev.1.00 Oct 27, 2008 Page 81 of 128
REJ03B0266-0100
3804 Group (Spec.L)

Reset

    Middle-speed mode       CM6                                 High-speed mode
        (f() = 1 MHz)       "1""0"                                 (f() = 4 MHz)

CM7=0                                                      CM7=0

CM6=1                                                      CM6=0
CM5=0 (8 MHz oscillating)                                  CM5=0 (8 MHz oscillating)
CM4=0 (32 kHz stopped)                                     CM4=0 (32 kHz stopped)

CM4                  CM"14"CM"16""0""0"  "1"CM"06"CM4 "1"  CM4
   "1""0"                                       "0"           "1""0"

     Middle-speed mode      CM6                                  High-speed mode
         (f() = 1 MHz)      "1""0"                                 (f() = 4 MHz)

CM7=0                         "1"CM"06"C"0M"7 "1"          CM7=0

CM6=1                                                      CM6=0
CM5=0 (8 MHz oscillating)                                  CM5=0 (8 MHz oscillating)
CM4=1 (32 kHz oscillating)                                 CM4=1 (32 kHz oscillating)

                                                           CM7
                                                              "1""0"

                                                           Low-speed mode

                                                           (f() = 16 kHz)

                                                           CM7=1

                                                           CM6=0                       b7  b4

                                                           CM5=0 (8 MHz oscillating)           CPU mode register
                                                                                               (CPUM : address 003B16)
                                                           CM4=1 (32 kHz oscillating)

                                                           CM5                                 CM4 : Port XC switch bit
                                                              "1""0"                            0 : I/O port function (stop oscillating)
                                                                                                1 : XCIN-XCOUT oscillating function
                                                                 Low-speed mode
                                                                   (f() = 16 kHz)              CM5 : Main clock (XIN-XOUT) stop bit
                                                                                                0 : Operating
                                                           CM7=1                                1 : Stopped

                                                           CM6=0                               CM7, CM6: Main clock division ratio selection bit
                                                           CM5=1 (8 MHz stopped)                b7 b6
                                                           CM4=1 (32 kHz oscillating)            0 0 :  = f(XIN)/2 (High-speed mode)
                                                                                                 0 1 :  = f(XIN)/8 (Middle-speed mode)
                                                                                                 1 0 :  = f(XCIN)/2 (Low-speed mode)
                                                                                                 1 1 : Not available

  Notes 1: Switch the mode by the allows shown between the mode blocks. (Do not switch between the modes directly without an
                allow.)

            2: The all modes can be switched to the stop mode or the wait mode and return to the source mode when the stop mode or the
                wait mode is ended.

            3: Timer operates in the wait mode.
            4: When the stop mode is ended, a delay of approximately 1 ms occurs by connecting prescaler 12 and Timer 1 in middle/high-

                speed mode.
            5: When the stop mode is ended, a delay of approximately 0.25 s occurs by Timer 1 and Timer 2 in low-speed mode.
            6: Wait until oscillation stabilizes after oscillating the main clock X IN before the switching from the low-speed mode to middle/

                high-speed mode.
            7: The example assumes that 8 MHz is being applied to the X IN pin and 32 kHz to the XCIN pin.  indicates the internal clock.

Fig. 80 State transitions of system clock

Rev.1.00 Oct 27, 2008 Page 82 of 128
REJ03B0266-0100
3804 Group (Spec.L)

FLASH MEMORY MODE                                              This flash memory version has some blocks on the flash memory
                                                               as shown in Figure 81 and each block can be erased.
The 3804 group (Spec.L)'s flash memory version has the flash   In addition to the ordinary User ROM area to store the MCU
memory that can be rewritten with a single power source.       operation control program, the flash memory has a Boot ROM
For this flash memory, three flash memory modes are available  area that is used to store a program to control rewriting in CPU
in which to read, program, and erase: the parallel I/O and     rewrite and standard serial I/O modes. This Boot ROM area has
standard serial I/O modes in which the flash memory can be     had a standard serial I/O mode control program stored in it when
manipulated using a programmer and the CPU rewrite mode in     shipped from the factory. However, the user can write a rewrite
which the flash memory can be manipulated by the Central       control program in this area that suits the user's application
Processing Unit (CPU).                                         system. This Boot ROM area can be rewritten in only parallel I/O
                                                               mode.

Summary

Table 15 lists the summary of the 3804 group (Spec.L) flash
memory version.

Table 15 Summary of 3804 group (Spec.L)'s flash memory version

                     Item                                                              Specifications

Power source voltage (VCC)                                     VCC = 2.7 to 5.5 V

Program/Erase VPP voltage (VPP)                                VCC = 2.7 to 5.5 V

Flash memory mode                                              3 modes; Parallel I/O mode, Standard serial I/O mode, CPU
                                                               rewrite mode

Erase block division User ROM area/Data ROM area Refer to Figure 81.

                     Boot ROM area (1)                         Not divided (4 Kbytes)

Program method                                                 In units of bytes

Erase method                                                   Block erase

Program/Erase control method                                   Program/Erase control by software command

Number of commands                                             5 commands

Number of program/Erase times                                  100(Max.)

ROM code protection                                            Available in parallel I/O mode and standard serial I/O mode

NOTE:

   1. The Boot ROM area has had a standard serial I/O mode control program stored in it when shipped from the factory.
       This Boot ROM area can be erased and written in only parallel I/O mode.

Table 16 Electrical characteristics of flash memory (program ROM)

Symbol               Parameter                  Test conditions                              Limits                     Unit

                                                                                       Min.  Typ.         Max.

- Byte programming time                         VCC = 5.0 V, Topr = 25 C              -     60           400           s

                              (Block 1)                                                -     0.5          9             s

                                     (Block 2)  VCC = 5.0 V, Topr = 25 C              -     0.9          9             s
- Block erase time
                                                                                       -     1.3          9             s
                                     (Block 3)

                              (Block A, B)                                             -     0.3          9             s

NOTES:

   1. VCC = AVCC = 2.7 V to 5.5 V, Topr = 0 C to 60 C, unless otherwise noted.
   2. Definition of programming/erase count

       The programming/erase count refers to the number of erase operations per block. For example, if block A is a 2 K-byte block and
       2,048 1-byte writes are performed, all to different addresses, after which block A is erased, the programming/erase count is 1. Note
       that for each erase operation it is not possible to perform more than one programming (write) operation to the same address
       (overwrites prohibited).
   3. This is the number of times for which all electrical characteristics are guaranteed after a programming or erase operation. (The
       guarantee covers the range from 1 to maximum value.)
   4. On systems where reprogramming is performed a large number of times, it is possible to reduce the effective number of overwrites
       by sequentially shifting the write address, so that as much of the available area of the block is used up through successive
       programming (write) operations before an erase operation is performed. For example, if each programming operation uses 16 bytes
       of space, a maximum of 128 programming operations may be performed before it becomes necessary to erase the block in order to
       continue. In this way the effective number of overwrites can be kept low. The effective overwrite count can be further reduced by
       evenly dividing operations between block A and block B. It is recommended that data be retained on the number of times each
       block has been erased and a limit count set.
   5. If a block erase error occurs, execute the clear status register command followed by the block erase command a minimum of three
       times and until the erase error is no longer generated.

Rev.1.00 Oct 27, 2008 Page 83 of 128
REJ03B0266-0100
3804 Group (Spec.L)

Boot Mode                                                         CPU Rewrite Mode

The control program for CPU rewrite mode must be written into     In CPU rewrite mode, the internal flash memory can be operated
the User ROM or Boot ROM area in parallel I/O mode                on (read, program, or erase) under control of the Central
beforehand. (If the control program is written into the Boot ROM  Processing Unit (CPU).
area, the standard serial I/O mode becomes unusable.)             In CPU rewrite mode, only the User ROM area shown in Figure
See Figure 81 for details about the Boot ROM area.                81 can be rewritten; the Boot ROM area cannot be rewritten.
Normal microcomputer mode is entered when the                     Make sure the program and block erase commands are issued for
microcomputer is reset with pulling CNVSS pin low. In this case,  only the User ROM area and each block area.
the CPU starts operating using the control program in the User    The control program for CPU rewrite mode can be stored in
ROM area.                                                         either User ROM or Boot ROM area. In the CPU rewrite mode,
When the microcomputer is reset and the CNVSS pin high after      because the flash memory cannot be read from the CPU, the
pulling the P45/TxD1 pin and CNVSS pin high, the CPU starts       rewrite control program must be transferred to internal RAM
operating (start address of program is stored into addresses      area before it can be executed.
FFFC16 and FFFD16) using the control program in the Boot
ROM area. This mode is called the "Boot mode". Also, User
ROM area can be rewritten using the control program in the Boot
ROM area.

Block Address

Block addresses refer to the maximum address of each block.
These addresses are used in the block erase command.

            000016        SFR area              100016            User ROM area
                                                180016
            004016   Internal RAM area          200016             Data block B:
RAM                       (2 Kbytes)                                  2 Kbytes

            083F16                                                 Data block A:
                                                                      2 Kbytes

                                                                  Block 3: 24 Kbytes

0FE016               SFR area                   800016                                Notes 1: The boot ROM area can be rewritten
                                                                                                  in a parallel I/O mode. (Access to
0FFF16                                                            Block 2: 16 Kbytes              except boot ROM area is disabled.)
100016
                                                                                               2: To specify a block, use the maximum
                                                C00016                                            address in the block.
                                                E00016
                    Internal flash memory area  FFFF16            Block 1: 8 Kbytes   F00016
                              (60 Kbytes)                         Block 0: 8 Kbytes   FFFF16

                                                                                              Boot ROM area
                                                                                                  4 Kbytes

                          FFFF16

Fig. 81 Block diagram of built-in flash memory

Rev.1.00 Oct 27, 2008 Page 84 of 128
REJ03B0266-0100
3804 Group (Spec.L)

Outline Performance                                                     b7  b0

CPU rewrite mode is usable in the single-chip or Boot mode. The                 Flash memory control register 0
only User ROM area can be rewritten.                                            (FMCR0: address : 0FE016: initial value: 0116)
In CPU rewrite mode, the CPU erases, programs and reads the
internal flash memory as instructed by software commands. This                                                       RY/BY status flag
rewrite control program must be transferred to internal RAM                                                          0 : Busy (being written or erased)
area before it can be executed.                                                                                      1 : Ready
The MCU enters CPU rewrite mode by setting "1" to the CPU
rewrite mode select bit (bit 1 of address 0FE016). Then, software                                                    CPU rewrite mode select bit(1)
commands can be accepted.                                                                                            0 : CPU rewrite mode invalid
Use software commands to control program and erase                                                                   1 : CPU rewrite mode valid
operations. Whether a program or erase operation has terminated
normally or in error can be verified by reading the status register.                                                 8 KB user block E/W enable bit(1, 2)
Figure 82 shows the flash memory control register 0.                                                                 0 : E/W disabled
Bit 0 of the flash memory control register 0 is the RY/BY status                                                     1 : E/W enabled
flag used exclusively to read the operating status of the flash
memory. During programming and erase operations, it is "0"                                                           Flash memory reset bit(3, 4)
(busy). Otherwise, it is "1" (ready).                                                                                0 : Normal operation
Bit 1 of the flash memory control register 0 is the CPU rewrite                                                      1 : reset
mode select bit. When this bit is set to "1", the MCU enters CPU
rewrite mode. And then, software commands can be accepted. In                                                        Not used (do not write "1" to this bit.)
CPU rewrite mode, the CPU becomes unable to access the
internal flash memory directly. Therefore, use the control                                                           User ROM area select bit(5)
program in the internal RAM for write to bit 1. To set this bit 1 to                                                 0 : Boot ROM area is accessed
"1", it is necessary to write "0" and then write "1" in succession                                                   1 : User ROM area is accessed
to bit 1. The bit can be set to "0" by only writing "0".
Bit 2 of the flash memory control register 0 is the 8 KB user                                                        Program status flag
block E/W enable bit. By setting combination of bit 4 of the flash                                                   0: Pass
memory control register 2 and this bit as shown in Table 17, E/W                                                     1: Error
is disabled to user block in the CPU rewriting mode.
Bit 3 of the flash memory control register 0 is the flash memory                                                     Erase status flag
reset bit used to reset the control circuit of internal flash memory.                                                0: Pass
This bit is used when flash memory access has failed. When the                                                       1: Error
CPU rewrite mode select bit is "1", setting "1" for this bit resets
the control circuit. To release the reset, it is necessary to set this      Notes 1: For this bit to be set to "1", the user needs to write a "0" and then a
bit to "0".                                                                              "1" to it in succession. For this bit to be set to "0", write "0" only to this
Bit 5 of the flash memory control register 0 is the User ROM                             bit.
area select bit and is valid only in the boot mode. Setting this bit
to "1" in the boot mode switches an accessible area from the boot                    2: This bit can be written only when CPU rewrite mode select bit is "1".
ROM area to the user ROM area. To use the CPU rewrite mode                           3: Effective only when the CPU rewrite mode select bit = "1". Fix this
in the boot mode, set this bit to "1". To rewrite bit 5, execute the
user original reprogramming control software transferred to the                          bit to "0" when the CPU rewrite mode select bit is "0".
internal RAM in advance.                                                             4: When setting this bit to "1" (when the control circuit of flash memory
Bit 6 of the flash memory control register 0 is the program status
flag. This bit is set to "1" when writing to flash memory is failed.                     is reset), the flash memory cannot be accessed for 10 s.
When program error occurs, the block cannot be used.                                 5: Write to this bit in program on RAM
Bit 7 of the flash memory control register 0 is the erase status
flag.                                                                   Fig. 82 Structure of flash memory control register 0
This bit is set to "1" when erasing flash memory is failed. When
erase error occurs, the block cannot be used.                           b7  b0
Figure 83 shows the flash memory control register 1.
Bit 0 of the flash memory control register 1 is the Erase suspend               Flash memory control register 1
enable bit. By setting this bit to "1", the erase suspend mode to               (FMCR1: address : 0FE116: initial value: 4016)
suspend erase processing temporary when block erase command
is executed can be used. In order to set this bit to "1", writing "0"                                            Erase Suspend enable bit(1)
and "1" in succession to bit 0. In order to set this bit to "0", write                                           0 : Suspend invalid
"0" only to bit 0.                                                                                               1 : Suspend valid
Bit 1 of the flash memory control register 1 is the erase suspend
request bit. By setting this bit to "1" when erase suspend enable                                                Erase Suspend request bit(2)
bit is "1", the erase processing is suspended.                                                                   0 : Erase restart
Bit 6 of the flash memory control register 1 is the erase suspend                                                1 : Suspend request
flag. This bit is cleared to "0" at the flash erasing.
                                                                                                                 Not used (do not write "1" to this bit.)

                                                                                                                 Erase Suspend flag
                                                                                                                 0 : Erase active
                                                                                                                 1 : Erase inactive (Erase Suspend mode)

                                                                                                                 Not used (do not write "1" to this bit.)

                                                                        Notes 1: For this bit to be set to "1", the user needs to write a "0" and then a
                                                                                    "1" to it in succession. For this bit to be set to "0", write "0" only to this
                                                                                    bit.

                                                                                 2: Effective only when the suspend enable bit = "1".

                                                                        Fig. 83 Structure of flash memory control register 1

Rev.1.00 Oct 27, 2008 Page 85 of 128
REJ03B0266-0100
3804 Group (Spec.L)

b7                  b0

                        Flash memory control register 2
                        (FMCR2: address : 0FE216: initial value: 4516)

                                              Not used
                                              Not used (do not write "1" to this bit.)
                                              Not used

                                              All user block E/W enable bit(1, 2)
                                              0 : E/W disabled
                                              1 : E/W enabled

                                              Not used

   Notes 1: For this bit to be set to "1", the user needs to write a "0" and then a
                "1" to it in succession. For this bit to be set to "0", write "0" only to this
                bit.

            2: Effective only when the CPU rewrite mode select bit = "1".

Fig. 84 Structure of flash memory control register 2

Table 17 State of E/W inhibition function

All user block E/W  8 KB user block            8 KB 2 block                                        16 KB + 24 KB block                Data block
     enable bit     E/W enable bit   Addresses C00016 to FFFF16                                 Addresses 200016 to BFFF16  Addresses 100016 to 1FFF16
           0
           0                 0                  E/W disabled                                              E/W disabled                E/W enabled
           1                 1                  E/W disabled                                              E/W disabled                E/W enabled
           1                 0                  E/W disabled                                               E/W enabled                E/W enabled
                             1                  E/W enabled                                                E/W enabled                E/W enabled

Figure 85 shows a flowchart for setting/releasing CPU rewrite mode.

                                                                                                                                           Start

                                                                                                         Single-chip mode or Boot mode

                                                                                                         Set CPU mode register(1)

                                                                                                         Transfer CPU rewrite mode control program to internal RAM

                                                                                                         Jump to control program transferred to internal RAM
                                                                                                         (Subsequent operations are executed by control program in
                                                                                                         this RAM)

                                                                                                         Set CPU rewrite mode select bit to "1" (by writing "0" and
                                                                                                         then "1" in succession)

                                                                                                         Set all user block E/W enable bit to "1" (by writing "0" and
                                                                                                         then "1" in succession)
                                                                                                         Set 8 KB user block E/W enable bit (At E/W disabled; writing
                                                                                                         "0" , at E/W enabled;
                                                                                                         writing "0" and then "1" in succession

                                                                                                         Using software command executes erase, program, or other
                                                                                                         operation

                                                                                                         Execute read array command(2)

                                                                                                         Set all user block E/W enable bit to "0"
                                                                                                         Set 8 KB user block E/W enable bit to "0"

                                                                                                          Write "0" to CPU rewrite mode select bit

                                                                                                                                            End

                                              Notes 1: Set the main clock as follows depending on the clock division ratio selection bits of CPU mode register (bits 6, 7 of address 003B16).
                                                       2: Before exiting the CPU rewrite mode after completing erase or program operation, always be sure to execute the read array
                                                           command.

Fig. 85 CPU rewrite mode set/release flowchart be sure to execute

Rev.1.00 Oct 27, 2008 Page 86 of 128
REJ03B0266-0100
3804 Group (Spec.L)

Take the notes described below when rewriting the flash memory
in CPU rewrite mode.
(1) Operation speed
During CPU rewrite mode, set the system clock  to 4.0 MHz or
less using the clock division ratio selection bits (bits 6 and 7 of
address 003B16).
(2) Instructions inhibited against use
The instructions which refer to the internal data of the flash
memory cannot be used during CPU rewrite mode.
(3) Interrupts
The interrupts cannot be used during CPU rewrite mode because
they refer to the internal data of the flash memory.
(4) Watchdog timer
If the watchdog timer has been already activated, internal reset
due to an underflow will not occur because the watchdog timer is
surely cleared during program or erase.
(5) Reset
Reset is always valid. The MCU is activated using the boot mode
at release of reset in the condition of CNVSS = "H", so that the
program will begin at the address which is stored in addresses
FFFC16 and FFFD16 of the boot ROM area.

Rev.1.00 Oct 27, 2008 Page 87 of 128
REJ03B0266-0100
3804 Group (Spec.L)

Software Commands                                                     The RY/BY status flag of the flash memory control register is
                                                                      "0" during write operation and "1" when the write operation is
Table 18 lists the software commands.                                 completed as is the status register bit 7.
After setting the CPU rewrite mode select bit to "1", execute a       At program end, program results can be checked by reading the
software command to specify an erase or program operation.            status register.
Each software command is explained below.

Read Array Command (FF16)                                                       Start
The read array mode is entered by writing the command code
"FF16" in the first bus cycle. When an address to be read is input                Write "4016"
in one of the bus cycles that follow, the contents of the specified
address are read out at the data bus (D0 to D7).                      Write       Write address
The read array mode is retained until another command is                          Write data
written.
                                                                            Read status register
Read Status Register Command (7016)
When the command code "7016" is written in the first bus cycle,
the contents of the status register are read out at the data bus (D0
to D7) by a read in the second bus cycle.
The status register is explained in the next section.

Clear Status Register Command (5016)                                            SR7 = "1"?      NO
This command is used to clear the bits SR4 and SR5 of the status
register after they have been set. These bits indicate that                       or
operation has ended in an error. To use this command, write the
command code "5016" in the first bus cycle.                                       RY/BY = "1"?

Program Command (4016)                                                                  YES                  Program error
Program operation starts when the command code "4016" is                                                NO
written in the first bus cycle. Then, if the address and data to
program are written in the 2nd bus cycle, program operation                      SR4 = "0"?
(data programming and verification) will start.
Whether the write operation is completed can be confirmed by                               YES
read status register or the RY/BY status flag. When the program
starts, the read status register mode is entered automatically and          Program completed
the contents of the status register is read at the data bus (D0 to
D7). The status register bit 7 (SR7) is set to "0" at the same time   Fig. 86 Program flowchart
the write operation starts and is returned to "1" upon completion
of the write operation. In this case, the read status register mode
remains active until the read array command (FF16) is written.

Table 18 List of software commands (CPU rewrite mode)

Command                 cycle  Mode   First bus cycle                    Data     Mode            Second bus cycle     Data
                       number           Address                       (D0 to D7)                      Address       (D0 to D7)
                                                                                  Read
Read array             1       Write  X(4)                            FF16        Write
                                                                                  Write
Read status register   2       Write  X                               7016                                  X       SRD(1)

Clear status register  1       Write  X                               5016

Program                2       Write  X                               4016                                  WA(2)   WD(2)
                                                                                                            BA(3)   D016
Block erase            2       Write  X                               2016

NOTES:

   1. SRD = Status Register Data
   2. WA = Write Address, WD = Write Data
   3. BA = Block Address to be erased (Input the maximum address of each block.)
   4. X denotes a given address in the User ROM area.

Rev.1.00 Oct 27, 2008 Page 88 of 128
REJ03B0266-0100
3804 Group (Spec.L)

Block Erase Command (2016/D016)                                               Start

By writing the command code "2016" in the first bus cycle and               Write "2016"
the confirmation command code "D016" and the block address in
the second bus cycle that follows, the block erase (erase and              Write "D016"
erase verify) operation starts for the block address of the flash         Blockaddress
memory to be specified.
Whether the block erase operation is completed can be confirmed       Read status register
by read status register or the RY/BY status flag of flash memory
control register. At the same time the block erase operation          SR7 = "1"?               NO
starts, the read status register mode is automatically entered, so
that the contents of the status register can be read out. The status  or
register
bit 7 (SR7) is set to "0" at the same time the block erase            RY/BY = "1"?
operation starts and is returned to "1" upon completion of the
block erase operation. In this case, the read status register mode
remains active until the read array command (FF16) is written.
The RY/BY status flag is "0" during block erase operation and
"1" when the block erase operation is completed as is the status
register bit 7.
After the block erase ends, erase results can be checked by
reading the status register. For details, refer to the section where
the status register is detailed.

                                                                             YES                   Erase error
                                                                                              NO

                                                                      SR5 = "0"?

                                                                                     YES

                                                                        Erase completed
                                                                      (write read command

                                                                               "FF16")

                                                                      Fig. 87 Erase flowchart

Rev.1.00 Oct 27, 2008 Page 89 of 128
REJ03B0266-0100
3804 Group (Spec.L)

Status Register                                                      Erase status (SR5)
The status register shows the operating status of the flash           The erase status indicates the operating status of erase operation.
memory and whether erase operations and programs ended                If an erase error occurs, it is set to "1". When the erase status is
successfully or in error. It can be read in the following ways:       cleared, it is reset to "0".
(1) By reading an arbitrary address from the User ROM area
                                                                      Program status (SR4)
     after writing the read status register command (7016)            The program status indicates the operating status of write
(2) By reading an arbitrary address from the User ROM area in         operation.
                                                                      When a write error occurs, it is set to "1".
     the period from when the program starts or erase operation       The program status is reset to "0" when it is cleared.
     starts to when the read array command (FF16) is input.
                                                                      If "1" is written for any of the SR5 and SR4 bits, the read array,
Also, the status register can be cleared by writing the clear status  program, and block erase commands are not accepted. Before
register command (5016).                                              executing these commands, execute the clear status register
After reset, the status register is set to "8016".                    command (5016) and clear the status register.
Table 19 shows the status register. Each bit in this register is      Also, if any commands are not correct, both SR5 and SR4 are set
explained below.                                                      to "1".

Sequencer status (SR7)
The sequencer status indicates the operating status of the flash
memory. This bit is set to "0" (busy) during write or erase
operation and is set to "1" when these operations ends.
After power-on, the sequencer status is set to "1" (ready).

Table 19 Definition of each bit in status register

Each bit of                Status name                                          "1"        Definition
SRD bits                                                                     Ready                                  "0"
                     Sequencer status
SR7 (bit 7)          Reserved                                                    -                                  Busy
SR6 (bit 6)          Erase status                                     Terminated in error                              -
SR5 (bit 5)          Program status                                   Terminated in error
SR4 (bit 4)          Reserved                                                                             Terminated normally
SR3 (bit 3)          Reserved                                                    -                        Terminated normally
SR2 (bit 2)          Reserved                                                    -
SR1 (bit 1)          Reserved                                                    -                                     -
SR0 (bit 0)                                                                      -                                     -
                                                                                                                       -
                                                                                                                       -

Rev.1.00 Oct 27, 2008 Page 90 of 128
REJ03B0266-0100
3804 Group (Spec.L)

Full Status Check
By performing full status check, it is possible to know the
execution results of erase and program operations. Figure 88
shows a full status check flowchart and the action to be taken
when each error occurs.

Read status register

SR4 = "1"             YES                Command                 Execute the clear status register command (5016)
      and                             sequence error             to clear the status register. Try performing the
                                                                 operation one more time after confirming that the
SR5 = "1"?                              Erase error              command is entered correctly.

                       NO             Program error              Should an erase error occur, the block in error
                                 NO                              cannot be used.

          SR5 = "0"?                                             Should a program error occur, the block in error
                                                                 cannot be used.
                       YES
                                 NO

          SR4 = "0"?
                       YES

End (block erase, program)

                           Note: When one of SR5 and SR4 is set to "1", none of the read array, program,
                                    and block erase commands is accepted. Execute the clear status register
                                    command (5016) before executing these commands.

Fig. 88 Full status check flowchart and remedial procedure for errors

Rev.1.00 Oct 27, 2008 Page 91 of 128
REJ03B0266-0100
3804 Group (Spec.L)

Functions To Inhibit Rewriting Flash Memory Version               If one or both of the pair of ROM code protect bits is set to "0",
                                                                  the ROM code protect is turned on, so that the contents of
To prevent the contents of internal flash memory from being read  internal flash memory are protected against readout and
out or rewritten easily, this MCU incorporates a ROM code         modification. The ROM code protect is implemented in two
protect function for use in parallel I/O mode and an ID code      levels. If level 2 is selected, the flash memory is protected even
check function for use in standard serial I/O mode.               against readout by a shipment inspection LSI tester, etc. When an
                                                                  attempt is made to select both level 1 and level 2, level 2 is
ROM Code Protect Function                                       selected by default.
The ROM code protect function is the function to inhibit reading  If both of the two ROM code protect reset bits are set to "00", the
out or modifying the contents of internal flash memory by using   ROM code protect is turned off, so that the contents of internal
the ROM code protect control address (address FFDB16) in          flash memory can be readout or modified. Once the ROM code
parallel I/O mode. Figure 89 shows the ROM code protect           protect is turned on, the contents of the ROM code protect reset
control address (address FFDB16). (This address exists in the     bits cannot be modified in parallel I/O mode. Use the serial I/O
User ROM area.)                                                   or CPU rewrite mode to rewrite the contents of the ROM code
                                                                  protect reset bits.
                                                                  Rewriting of only the ROM code protect control address (address
                                                                  FFDB16) cannot be performed. When rewriting the ROM code
                                                                  protect reset bit, rewrite the whole user ROM area (block 0)
                                                                  containing the ROM code protect control address.

b7                   b0

                     1 1 ROM code protect control address (address FFDB16)
                                ROMCP (FF16 when shipped)

                                        Reserved bits ("1" at read/write)
                                        ROM code protect level 2 set bits (ROMCP2)(1, 2)

                                                           b3 b2

                                          0 0 : Protect enabled
                                          0 1 : Protect enabled
                                          1 0 : Protect enabled
                                          1 1 : Protect disabled
                                        ROM code protect reset bits (ROMCR)(3)

                                                           b5 b4

                                          0 0 : Protect removed
                                          0 1 : Protect set bits effective
                                          1 0 : Protect set bits effective
                                          1 1 : Protect set bits effective
                                        ROM code protect level 1 set bits (ROMCP1)(1)

                                                           b7 b6

                                          0 0 : Protect enabled
                                          0 1 : Protect enabled
                                          1 0 : Protect enabled
                                          1 1 : Protect disabled

Notes 1: When ROM code protect is turned on, the internal flash memory is protected
            against readout or modification in parallel I/O mode.

         2: When ROM code protect level 2 is turned on, ROM code readout by a
            shipment inspection LSI tester, etc. also is inhibited.

         3: The ROM code protect reset bits can be used to turn off ROM code protect
            level 1 and ROM code protect level 2. However, since these bits cannot be
            modified in parallel I/O mode, they need to be rewritten in serial I/O mode or
            CPU rewrite mode.

Fig. 89 Structure of ROM code protect control address

Rev.1.00 Oct 27, 2008 Page 92 of 128
REJ03B0266-0100
3804 Group (Spec.L)

ID Code Check Function
Use this function in standard serial I/O mode. When the contents
of the flash memory are not blank, the ID code sent from the
programmer is compared with the ID code written in the flash
memory to see if they match. If the ID codes do not match, the
commands sent from the programmer are not accepted. The ID
code consists of 8-bit data, and its areas are FFD416 to FFDA16.
Write a program which has had the ID code preset at these
addresses to the flash memory.

Address               ID1
FFD416               ID2
FFD516               ID3
FFD616               ID4
FFD716               ID5
FFD816               ID6
FFD916               ID7
FFDA16  ROM code protect control
FFDB16     Interrupt vector area

Fig. 90 ID code store addresses

Rev.1.00 Oct 27, 2008 Page 93 of 128
REJ03B0266-0100
3804 Group (Spec.L)
Parallel I/O Mode
The parallel I/O mode is used to input/output software
commands, address and data in parallel for operation (read,
program and erase) to internal flash memory.
Use the external device (writer) only for 3804 group (Spec.L)
flash memory version. For details, refer to the user's manual of
each writer manufacturer.
User ROM and Boot ROM Areas
In parallel I/O mode, the User ROM and Boot ROM areas shown
in Figure 81 can be rewritten. Both areas of flash memory can be
operated on in the same way.
The Boot ROM area is 4 Kbytes in size and located at addresses
F00016 through FFFF16. Make sure program and block erase
operations are always performed within this address range.
(Access to any location outside this address range is prohibited.)
In the Boot ROM area, an erase block operation is applied to
only one 4 Kbyte block. The boot ROM area has had a standard
serial I/O mode control program stored in it when shipped from
the factory. Therefore, using the MCU in standard serial I/O
mode, do not rewrite to the Boot ROM area.

Rev.1.00 Oct 27, 2008 Page 94 of 128
REJ03B0266-0100
3804 Group (Spec.L)

Standard serial I/O Mode
The standard serial I/O mode inputs and outputs the software
commands, addresses and data needed to operate (read, program,
erase, etc.) the internal flash memory. This I/O is clock
synchronized serial. This mode requires a purpose-specific
peripheral unit.
The standard serial I/O mode is different from the parallel I/O
mode in that the CPU controls flash memory rewrite (uses the
CPU rewrite mode), rewrite data input and so forth. The standard
serial I/O mode is started by connecting "H" to the CNVSS pin
and "H" to the P45 (BOOTENT) pin, and releasing the reset
operation. (In the ordinary microcomputer mode, set CNVSS pin
to "L" level.) This control program is written in the Boot ROM
area when the product is shipped from Renesas. Accordingly,
make note of the fact that the standard serial I/O mode cannot be
used if the Boot ROM area is rewritten in parallel I/O mode. The
standard serial I/ O mode has standard serial I/O mode 1 of the
clock synchronous serial and standard serial I/O mode 2 of the
clock asynchronous serial. Table 20 and 21 show description of
pin function (standard serial I/O mode). Figures 91 to 96 show
the pin connections for the standard serial I/O mode. Figures 97
and 98 show the operating waveform for standard serial I/O
mode 1 and the operating waveform for standard serial I/O mode
1, respectively. Figures 99 and 100 show the connection
examples in standard serial I/O mode.
In standard serial I/O mode, only the User ROM area shown in
Figure 81 can be rewritten. The Boot ROM area cannot be
written.
In standard serial I/O mode, a 7-byte ID code is used. When there
is data in the flash memory, this function determines whether the
ID code sent from the peripheral unit (programmer) and those
written in the flash memory match. The commands sent from the
peripheral unit (programmer) are not accepted unless the ID code
matches.

Rev.1.00 Oct 27, 2008 Page 95 of 128
REJ03B0266-0100
3804 Group (Spec.L)

Table 20 Description of pin function (Flash Memory Serial I/O Mode 1)

        Pin name                Signal name     I/O                           Function
VCC,VSS              Power supply
CNVSS                CNVSS                      I    Apply 2.7 to 5.5 V to the VCC pin and 0 V to the VSS pin.
RESET                Reset input
                                                I    After input of port is set, input "H" level.

                                                I    Reset input pin. To reset the microcomputer, RESET pin should be

                                                     held at an "L" level for 16 cycles or more of XIN.

XIN                  Clock input                I    Connect an oscillation circuit between the XIN and XOUT pins.
XOUT                 Clock output
AVSS                 Analog power supply input  O As for the connection method, refer to the "clock generating circuit".
VREF                 Reference voltage input
P00-P07, P10-P17,    I/O port                        Connect AVSS to VSS.
P20-P27, P30-P37,
P40-P43, P50-P57,    RxD input                  I    Apply reference voltage of A/D to this pin.
P60-P67              TxD output
P44                  SCLK input                 I/O Input "L" or "H" level, or keep open.
P45                  BUSY output
P46                                             I    Serial data input pin.
P47
                                                O Serial data output pin.

                                                I    Serial clock input pin.

                                                O BUSY signal output pin.

Table 21 Description of pin function (Flash Memory Serial I/O Mode 2)

        Pin name                Signal name     I/O                           Function
VCC,VSS              Power supply
CNVSS                CNVSS                      I    Apply 2.7 to 5.5 V to the VCC pin and 0 V to the VSS pin.
RESET                Reset input
                                                I    After input of port is set, input "H" level.

                                                I    Reset input pin. To reset the microcomputer, RESET pin should be

                                                     held at an "L" level for 16 cycles or more of XIN.

XIN                  Clock input                I    Connect an oscillation circuit between the XIN and XOUT pins.
XOUT                 Clock output
AVSS                 Analog power supply input  O As for the connection method, refer to the "clock generating circuit".
VREF                 Reference voltage input
P00-P07, P10-P17,    I/O port                        Connect AVSS to VSS.
P20-P27, P30-P37,
P40-P43, P50-P57,    RxD input                  I    Apply reference voltage of A/D to this pin.
P60-P67              TxD output
P44                  SCLK input                 I/O Input "L" or "H" level, or keep open.
P45                  BUSY output
P46                                             I    Serial data input pin.
P47
                                                O Serial data output pin.

                                                I    Input "L" level.

                                                O BUSY signal output pin.

Rev.1.00 Oct 27, 2008 Page 96 of 128
REJ03B0266-0100
3804 Group (Spec.L)

                               P00/AN8  P01/AN9  P02/AN10  P03/AN11  P04/AN12  P05/AN13   P06/AN14   P07/AN15   P10/INT41  P11/INT01  P12       P13              P14        P15       P16       P17

                               48       47       46        45        44        43         42         41         40         39         38        37               36         35        34        33

     P37/SRDY3             49                                                                                                                                                                             32  P20(LED0)

     P36/SCLK3             50                                                                                                                                                                             31  P21(LED1)

     P35/TXD3              51                                                                                                                                                                             30  P22(LED2)

     P34/RXD3              52                                                                                                                                                                             29  P23(LED3)

     P33/SCL               53                                                                                                                                                                             28  P24(LED4)

     P32/SDA               54                                                                                                                                                                             27  P25(LED5)

     P31/DA2               55                                                                                                                                                                             26  P26(LED6)

     P30/DA1               56                                                                                                                                                                             25  P27(LED7)

VCC                  VCC   57                              M38049FFLHP/KP                                                                                                                                 24  VSS                 VSS

                     VREF  58                                                                                                                                                                             23  XOUT

                     AVSS  59                                                                                                                                                                             22  XIN              *

     P67/AN7               60                                                                                                                                                                             21  P40/INT40/XCOUT

     P66/AN6               61                                                                                                                                                                             20  P41/INT00/XCIN

     P65/AN5               62                                                                                                                                                                             19  RESET               RESET

     P64/AN4               63                                                                                                                                                                             18  CNVSS               CNVSS

     P63/AN3               64                                                                                                                                                                             17  P42/INT1

                               1        2        3         4         5         6          7          8          9          10         11        12               13         14        15        16

                               P62/AN2  P61/AN1  P60/AN0   P57/INT3  P56/PWM   P55/CNTR1  P54/CNTR0  P53/SRDY2  P52/SCLK2  P51/SOUT2  P50/SIN2  P47/SRDY1/CNTR2  P46/SCLK1  P45/TXD1  P44/RXD1  P43/INT2

              *Connect oscillation circuit.                                                                                                                                                                              RxD       TxD
                                                                                                                                                                                                                         SCLK     BUSY
                                 indicates flash memory pin.

                                                           Package code: PLQP0064KB-A (64P6Q-A) / PLQP0064GA-A (64P6U-A)

Fig. 91 Connection for standard serial I/O mode 1 (M38049FFLHP/KP)

Rev.1.00 Oct 27, 2008 Page 97 of 128
REJ03B0266-0100
3804 Group (Spec.L)

                               P00/AN8  P01/AN9  P02/AN10  P03/AN11  P04/AN12  P05/AN13   P06/AN14   P07/AN15   P10/INT41  P11/INT01  P12       P13              P14        P15       P16       P17

                               48       47       46        45        44        43         42         41         40         39         38        37               36         35        34        33

     P37/SRDY3