The following document contains information on Cypress products. FUJITSU MICROELECTRONICS CONTROLLER MANUAL CM26-10112-4E F2MC-8FX 8-BIT MICROCONTROLLER MB95100B/AM Series HARDWARE MANUAL F2MC-8FX 8-BIT MICROCONTROLLER MB95100B/AM Series HARDWARE MANUAL For the information for microcontroller supports, see the following web site. This web site includes the "Customer Design Review Supplement" which provides the latest cautions on system development and the minimal requirements to be checked to prevent problems before the system development. http://edevice.fujitsu.com/micom/en-support/ FUJITSU MICROELECTRONICS LIMITED PREFACE ■ The Purpose and Intended Readership of This Manual Thank you very much for your continued special support for Fujitsu semiconductor products. The MB95100B/AM series is a line of products developed as general-purpose products in the F2MC-8FX family of proprietary 8-bit single-chip microcontrollers applicable as application-specific integrated circuits (ASICs). The MB95100B/AM series can be used for a wide range of applications from consumer products including portable devices to industrial equipment. Intended for engineers who actually develop products using the MB95100B/AM series of microcontrollers, this manual describes its functions, features, and operations. You should read through the manual. For details on individual instructions, refer to the "F2MC-8FX Programming Manual". Note: F2MC is the abbreviation of FUJITSU Flexible Microcontroller. ■ Trademark The company names and brand names herein are the trademarks or registered trademarks of their respective owners. ■ Sample Programs Fujitsu provides sample programs free of charge to operate the peripheral resources of the F2MC-8FX family of microcontrollers. Feel free to use such sample programs to check the operational specifications and usages of Fujitsu microcontrollers. Microcontroller support information: URL : http://www.fujitsu.com/global/services/microelectronics/product/micom/support/index.html Note: Note that sample programs are subject to change without notice. As these pieces of software are offered to show standard operations and usages, evaluate them sufficiently before use with your system. Fujitsu assumes no liability for any damages whatsoever arising out of the use of sample programs. i • • • • • • • The contents of this document are subject to change without notice. Customers are advised to consult with sales representatives before ordering. The information, such as descriptions of function and application circuit examples, in this document are presented solely for the purpose of reference to show examples of operations and uses of FUJITSU MICROELECTRONICS device; FUJITSU MICROELECTRONICS does not warrant proper operation of the device with respect to use based on such information. When you develop equipment incorporating the device based on such information, you must assume any responsibility arising out of such use of the information. FUJITSU MICROELECTRONICS assumes no liability for any damages whatsoever arising out of the use of the information. Any information in this document, including descriptions of function and schematic diagrams, shall not be construed as license of the use or exercise of any intellectual property right, such as patent right or copyright, or any other right of FUJITSU MICROELECTRONICS or any third party or does FUJITSU MICROELECTRONICS warrant non-infringement of any thirdparty's intellectual property right or other right by using such information. FUJITSU MICROELECTRONICS assumes no liability for any infringement of the intellectual property rights or other rights of third parties which would result from the use of information contained herein. The products described in this document are designed, developed and manufactured as contemplated for general use, including without limitation, ordinary industrial use, general office use, personal use, and household use, but are not designed, developed and manufactured as contemplated (1) for use accompanying fatal risks or dangers that, unless extremely high safety is secured, could have a serious effect to the public, and could lead directly to death, personal injury, severe physical damage or other loss (i.e., nuclear reaction control in nuclear facility, aircraft flight control, air traffic control, mass transport control, medical life support system, missile launch control in weapon system), or (2) for use requiring extremely high reliability (i.e., submersible repeater and artificial satellite). Please note that FUJITSU MICROELECTRONICS will not be liable against you and/or any third party for any claims or damages arising in connection with above-mentioned uses of the products. Any semiconductor devices have an inherent chance of failure. You must protect against injury, damage or loss from such failures by incorporating safety design measures into your facility and equipment such as redundancy, fire protection, and prevention of over-current levels and other abnormal operating conditions. Exportation/release of any products described in this document may require necessary procedures in accordance with the regulations of the Foreign Exchange and Foreign Trade Control Law of Japan and/or US export control laws. The company names and brand names herein are the trademarks or registered trademarks of their respective owners. Copyright ©2006-2010 FUJITSU MICROELECTRONICS LIMITED All rights reserved. ii CONTENTS CHAPTER 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 CHAPTER 2 2.1 DESCRIPTION ............................................................................................. 1 Feature of MB95100B/AM Series ....................................................................................................... 2 Product Lineup of MB95100B/AM Series ........................................................................................... 4 Difference Points among Products and Notes on Selecting a Product ............................................... 7 Block Diagram of MB95100B/AM Series ............................................................................................ 9 Pin Assignment ................................................................................................................................. 10 Package Dimension .......................................................................................................................... 11 Pin Description .................................................................................................................................. 13 I/O Circuit Type ................................................................................................................................. 16 HANDLING DEVICES ................................................................................ 19 Device Handling Precautions ............................................................................................................ 20 CHAPTER 3 MEMORY SPACE ...................................................................................... 25 3.1 Memory Space .................................................................................................................................. 26 3.1.1 Areas for Specific Applications .................................................................................................... 28 3.2 Memory Map ..................................................................................................................................... 29 CHAPTER 4 4.1 MEMORY ACCESS MODE ........................................................................ 31 Memory Access Mode ...................................................................................................................... 32 CHAPTER 5 CPU ............................................................................................................ 33 5.1 Dedicated Registers ......................................................................................................................... 5.1.1 Register Bank Pointer (RP) ......................................................................................................... 5.1.2 Direct Bank Pointer (DP) ............................................................................................................. 5.1.3 Condition Code Register (CCR) .................................................................................................. 5.2 General-purpose Registers ............................................................................................................... 5.3 Placement of 16-bit Data in Memory ................................................................................................ CHAPTER 6 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.8.1 6.8.2 6.8.3 6.8.4 34 36 37 39 41 43 CLOCK CONTROLLER ............................................................................. 45 Overview of Clock Controller ............................................................................................................ Oscillation Stabilization Wait Time .................................................................................................... System Clock Control Register (SYCC) ........................................................................................... PLL Control Register (PLLC) ............................................................................................................ Oscillation Stabilization Wait Time Setting Register (WATR) ........................................................... Standby Control Register (STBC) ..................................................................................................... Clock Mode ....................................................................................................................................... Operations in Low-power Consumption Modes (Standby Modes) ................................................... Notes on Using Standby Mode .................................................................................................... Sleep Mode ................................................................................................................................. Stop Mode ................................................................................................................................... Time-base Timer Mode ............................................................................................................... iii 46 52 54 56 59 62 65 70 71 75 76 77 6.8.5 6.9 6.10 6.11 6.12 6.13 Watch Mode ................................................................................................................................ Clock Oscillator Circuits .................................................................................................................... Overview of Prescaler ....................................................................................................................... Configuration of Prescaler ................................................................................................................ Operating Explanation of Prescaler .................................................................................................. Notes on Use of Prescaler ................................................................................................................ CHAPTER 7 7.1 7.2 7.3 78 79 81 82 83 84 RESET ........................................................................................................ 85 Reset Operation ................................................................................................................................ 86 Reset Source Register (RSRR) ........................................................................................................ 90 Notes on Using Reset ....................................................................................................................... 93 CHAPTER 8 INTERRUPTS ............................................................................................. 95 8.1 Interrupts ........................................................................................................................................... 96 8.1.1 Interrupt Level Setting Registers (ILR0 to ILR5) .......................................................................... 98 8.1.2 Interrupt Processing Steps .......................................................................................................... 99 8.1.3 Nested Interrupts ....................................................................................................................... 102 8.1.4 Interrupt Processing Time ......................................................................................................... 103 8.1.5 Stack Operations During Interrupt Processing .......................................................................... 104 8.1.6 Interrupt Processing Stack Area ................................................................................................ 105 CHAPTER 9 9.1 9.2 9.2.1 9.2.2 9.3 9.3.1 9.3.2 9.4 9.4.1 9.4.2 9.5 9.5.1 9.5.2 9.6 9.6.1 9.6.2 9.7 9.7.1 9.7.2 9.8 9.8.1 9.8.2 9.9 9.9.1 9.9.2 I/O PORT .................................................................................................. 107 Overview of I/O Ports ...................................................................................................................... Port 0 .............................................................................................................................................. Port 0 Registers ......................................................................................................................... Operations of Port 0 .................................................................................................................. Port 1 .............................................................................................................................................. Port 1 Registers ......................................................................................................................... Operations of Port 1 .................................................................................................................. Port 2 .............................................................................................................................................. Port 2 Registers ......................................................................................................................... Operations of Port 2 .................................................................................................................. Port 3 .............................................................................................................................................. Port 3 Registers ......................................................................................................................... Operations of Port 3 .................................................................................................................. Port 4 .............................................................................................................................................. Port 4 Registers ......................................................................................................................... Operations of Port 4 .................................................................................................................. Port 5 .............................................................................................................................................. Port 5 Registers ......................................................................................................................... Operations of Port 5 .................................................................................................................. Port 6 .............................................................................................................................................. Port 6 Registers ......................................................................................................................... Operations of Port 6 .................................................................................................................. Port 7 .............................................................................................................................................. Port 7 Registers ......................................................................................................................... Operations of Port 7 .................................................................................................................. iv 108 110 112 113 115 117 118 120 122 123 125 127 128 130 132 133 135 138 139 141 143 144 146 148 149 9.10 Port 8 .............................................................................................................................................. 9.10.1 Port 8 Registers ......................................................................................................................... 9.10.2 Operations of Port 8 .................................................................................................................. 9.11 Port E .............................................................................................................................................. 9.11.1 Port E Registers ........................................................................................................................ 9.11.2 Operations of Port E .................................................................................................................. 9.12 Port G ............................................................................................................................................. 9.12.1 Port G Registers ........................................................................................................................ 9.12.2 Operations of Port G .................................................................................................................. 151 153 154 156 158 159 161 163 164 CHAPTER 10 TIME-BASE TIMER .................................................................................. 167 10.1 Overview of Time-base Timer ......................................................................................................... 10.2 Configuration of Time-base Timer .................................................................................................. 10.3 Registers of the Time-base Timer .................................................................................................. 10.3.1 Time-base Timer Control Register (TBTC) ................................................................................ 10.4 Interrupts of Time-base Timer ........................................................................................................ 10.5 Explanation of Time-base Timer Operations and Setup Procedure Example ................................ 10.6 Notes on Using Time-base Timer ................................................................................................... 168 169 171 172 174 176 179 CHAPTER 11 WATCHDOG TIMER ................................................................................ 181 11.1 Overview of Watchdog Timer ......................................................................................................... 11.2 Configuration of Watchdog Timer ................................................................................................... 11.3 Register of The Watchdog Timer .................................................................................................... 11.3.1 Watchdog Timer Control Register (WDTC) ............................................................................... 11.4 Explanation of Watchdog Timer Operations and Setup Procedure Example ................................. 11.5 Notes on Using Watchdog Timer .................................................................................................... 182 183 185 186 188 190 CHAPTER 12 WATCH PRESCALER ............................................................................. 191 12.1 Overview of Watch Prescaler ......................................................................................................... 12.2 Configuration of Watch Prescaler ................................................................................................... 12.3 Registers of the Watch Prescaler ................................................................................................... 12.3.1 Watch Prescaler Control Register (WPCR) ............................................................................... 12.4 Interrupts of Watch Prescaler ......................................................................................................... 12.5 Explanation of Watch Prescaler Operations and Setup Procedure Example ................................. 12.6 Notes on Using Watch Prescaler .................................................................................................... 12.7 Sample Programs for Watch Prescaler .......................................................................................... 192 193 195 196 198 200 202 203 CHAPTER 13 WATCH COUNTER .................................................................................. 205 13.1 Overview of Watch Counter ............................................................................................................ 13.2 Configuration of Watch Counter ..................................................................................................... 13.3 Registers of Watch Counter ............................................................................................................ 13.3.1 Watch Counter Data Register (WCDR) ..................................................................................... 13.3.2 Watch Counter Control Register (WCSR) ................................................................................. 13.4 Interrupts of Watch Counter ............................................................................................................ 13.5 Explanation of Watch Counter Operations and Setup Procedure Example ................................... 13.6 Notes on Using Watch Counter ...................................................................................................... 13.7 Sample Programs for Watch Counter ............................................................................................. v 206 207 209 210 211 213 214 216 217 CHAPTER 14 WILD REGISTER ..................................................................................... 219 14.1 Overview of Wild Register .............................................................................................................. 14.2 Configuration of Wild Register ........................................................................................................ 14.3 Registers of Wild Register .............................................................................................................. 14.3.1 Wild Register Data Setup Registers(WRDR0 to WRDR2) ........................................................ 14.3.2 Wild Register Address Setup Registers(WRAR0 to WRAR2) ................................................... 14.3.3 Wild Register Address Compare Enable Register (WREN) ...................................................... 14.3.4 Wild Register Data Test Setup Register (WROR) ..................................................................... 14.4 Operating Description of Wild Register ........................................................................................... 14.5 Typical Hardware Connection Example .......................................................................................... 220 221 223 225 226 227 228 229 230 CHAPTER 15 8/16-BIT COMPOUND TIMER ................................................................. 231 15.1 Overview of 8/16-bit Compound Timer ........................................................................................... 15.2 Configuration of 8/16-bit Compound Timer ..................................................................................... 15.3 Channels of 8/16-bit Compound Timer ........................................................................................... 15.4 Pins of 8/16-bit Compound Timer ................................................................................................... 15.5 Registers of 8/16-bit Compound Timer ........................................................................................... 15.5.1 8/16-bit Compound Timer 00/01 Control Status Register 0 (T00CR0/T01CR0) ........................ 15.5.2 8/16-bit Compound Timer 00/01 Control Status Register 1 (T00CR1/T01CR1) ........................ 15.5.3 8/16-bit Compound Timer 00/01 Timer Mode Control Register ch.0 (TMCR0) ......................... 15.5.4 8/16-bit Compound Timer 00/01 Data Register ch.0 (T00DR/T01DR) ...................................... 15.6 Interrupts of 8/16-bit Compound Timer ........................................................................................... 15.7 Operating Description of Interval Timer Function (One-shot Mode) ............................................... 15.8 Operating Description of Interval Timer Function (Continuous Mode) ............................................ 15.9 Operating Description of Interval Timer Function (Free-run Mode) ................................................ 15.10 Operating Description of PWM Timer Function (Fixed-cycle mode) ............................................... 15.11 Operating Description of PWM Timer Function (Variable-cycle Mode) .......................................... 15.12 Operating Description of PWC Timer Function ............................................................................... 15.13 Operating Description of Input Capture Function ........................................................................... 15.14 Operating Description of Noise Filter .............................................................................................. 15.15 States in Each Mode during Operation ........................................................................................... 15.16 Notes on Using 8/16-bit Compound Timer ..................................................................................... 232 234 237 238 240 241 244 247 250 253 255 257 259 261 263 265 267 269 270 272 CHAPTER 16 8/16-BIT PPG ........................................................................................... 273 16.1 Overview of 8/16-bit PPG ............................................................................................................... 16.2 Configuration of 8/16-bit PPG ......................................................................................................... 16.3 Channels of 8/16-bit PPG ............................................................................................................... 16.4 Pins of 8/16-bit PPG ....................................................................................................................... 16.5 Registers of 8/16-bit PPG ............................................................................................................... 16.5.1 8/16-bit PPG Timer 01 Control Register ch.0 (PC01) ................................................................ 16.5.2 8/16-bit PPG Timer 00 Control Register ch.0 (PC00) ................................................................ 16.5.3 8/16-bit PPG Timer 00/01 Cycle Setup Buffer Register (PPS01), (PPS00) .............................. 16.5.4 8/16-bit PPG Timer 00/01 Duty Setup Buffer Register (PDS01), (PDS00) ............................... 16.5.5 8/16-bit PPG Start Register (PPGS) .......................................................................................... 16.5.6 8/16-bit PPG Output Inversion Register (REVC) ....................................................................... 16.6 Interrupts of 8/16-bit PPG ............................................................................................................... 16.7 Operating Description of 8/16-bit PPG ........................................................................................... vi 274 275 277 278 280 281 283 285 286 287 288 289 290 16.7.1 8-bit PPG Independent Mode .................................................................................................... 16.7.2 8-bit Prescaler + 8-bit PPG Mode .............................................................................................. 16.7.3 16-bit PPG Mode ....................................................................................................................... 16.8 Notes on Using 8/16-bit PPG .......................................................................................................... 16.9 Sample Programs for 8/16-bit PPG Timer ...................................................................................... 291 293 295 297 298 CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR ............................. 301 17.1 Overview of 16-bit PPG Timer ........................................................................................................ 17.2 Configuration of 16-bit PPG Timer .................................................................................................. 17.3 Channels of 16-bit PPG Timer ........................................................................................................ 17.4 Pins of 16-bit PPG Timer ................................................................................................................ 17.5 Registers of 16-bit PPG Timer ........................................................................................................ 17.5.1 16- bit PPG Down Counter Registers Upper, Lower (PDCRH0, PDCRL0) ............................... 17.5.2 16-bit PPG Cycle Setting Buffer Registers Upper, Lower (PCSRH0, PCSRL0) ........................ 17.5.3 16-bit PPG Duty Setting Buffer Registers Upper, Lower (PDUTH0, PDUTL0) .......................... 17.5.4 16-bit PPG Status Control Register Upper, Lower (PCNTH0, PCNTL0) ................................... 17.6 Interrupts of 16-bit PPG Timer ........................................................................................................ 17.7 Explanation of 16-bit PPG Timer Operations and Setup Procedure Example ................................ 17.8 Notes on Using 16-bit PPG Timer .................................................................................................. 17.9 Sample Programs for 16-bit PPG Timer ......................................................................................... 302 303 305 306 309 310 311 312 313 317 318 322 323 CHAPTER 18 16-BIT RELOAD TIMER ........................................................................... 327 18.1 Overview of 16-bit Reload Timer .................................................................................................... 18.2 Configuration of 16-bit Reload Timer .............................................................................................. 18.3 Channels of 16-bit Reload Timer .................................................................................................... 18.4 Pins of 16-bit Reload Timer ............................................................................................................ 18.5 Registers of 16-bit Reload Timer .................................................................................................... 18.5.1 16-bit Reload Timer Control Status Register Upper (TMCSRH0) ............................................. 18.5.2 16-bit Reload Timer Control Status Register Lower (TMCSRL0) .............................................. 18.5.3 16-bit Reload Timer Timer Register Upper (TMRH0)/Lower (TMRL0) ...................................... 18.5.4 16-bit Reload Timer Reload Register Upper (TMRLRH0)/Lower (TMRLRL0) ........................... 18.6 Interrupts of 16-bit Reload Timer .................................................................................................... 18.7 Explanation of 16-bit Reload Timer Operations and Setup Procedure Example ............................ 18.7.1 Internal Clock Mode ................................................................................................................... 18.7.2 Event Count Mode ..................................................................................................................... 18.8 Notes on Using 16-bit Reload Timer ............................................................................................... 18.9 Sample Programs for 16-bit Reload Timer ..................................................................................... 328 330 332 333 335 336 338 340 341 342 343 345 349 351 352 CHAPTER 19 EXTERNAL INTERRUPT CIRCUIT ......................................................... 355 19.1 Overview of External Interrupt Circuit ............................................................................................. 19.2 Configuration of External Interrupt Circuit ....................................................................................... 19.3 Channels of External Interrupt Circuit ............................................................................................. 19.4 Pins of External Interrupt Circuit ..................................................................................................... 19.5 Registers of External Interrupt Circuit ............................................................................................. 19.5.1 External Interrupt Control Register (EIC00) ............................................................................... 19.6 Interrupts of External Interrupt Circuit ............................................................................................. 19.7 Explanation of External Interrupt Circuit Operations and Setup Procedure Example ..................... vii 356 357 358 359 361 362 364 365 19.8 19.9 Notes on Using External Interrupt Circuit ....................................................................................... 367 Sample Programs for External Interrupt Circuit .............................................................................. 368 CHAPTER 20 INTERRUPT PIN SELECTION CIRCUIT ................................................. 371 20.1 Overview of Interrupt Pin Selection Circuit ..................................................................................... 20.2 Configuration of Interrupt Pin Selection Circuit ............................................................................... 20.3 Pins of Interrupt Pin Selection Circuit ............................................................................................. 20.4 Registers of Interrupt Pin Selection Circuit ..................................................................................... 20.4.1 Interrupt Pin Selection Circuit Control Register (WICR) ............................................................ 20.5 Operating Description of Interrupt Pin Selection Circuit ................................................................. 20.6 Notes on Using Interrupt Pin Selection Circuit ................................................................................ 372 373 374 375 376 379 380 CHAPTER 21 UART/SIO ................................................................................................. 381 21.1 Overview of UART/SIO ................................................................................................................... 21.2 Configuration of UART/SIO ............................................................................................................ 21.3 Channels of UART/SIO ................................................................................................................... 21.4 Pins of UART/SIO ........................................................................................................................... 21.5 Registers of UART/SIO ................................................................................................................... 21.5.1 UART/SIO Serial Mode Control Register 1 (SMC10) ................................................................ 21.5.2 UART/SIO Serial Mode Control Register 2 (SMC20) ................................................................ 21.5.3 UART/SIO Serial Status and Data Register (SSR0) ................................................................. 21.5.4 UART/SIO Serial Input Data Register (RDR0) .......................................................................... 21.5.5 UART/SIO Serial Output Data Register (TDR0) ........................................................................ 21.6 Interrupts of UART/SIO ................................................................................................................... 21.7 Explanation of UART/SIO Operations and Setup Procedure Example .......................................... 21.7.1 Operating Description of Operation Mode 0 .............................................................................. 21.7.2 Operating Description of Operation Mode 1 .............................................................................. 21.8 Sample Programs for UART/SIO .................................................................................................... 382 383 385 386 388 389 391 393 395 396 397 398 399 406 412 CHAPTER 22 UART/SIO DEDICATEDBAUD RATEGENERATOR ............................... 417 22.1 Overview of UART/SIO Dedicated Baud Rate Generator .............................................................. 22.2 Channels of UART/SIO Dedicated Baud Rate Generator .............................................................. 22.3 Registers of UART/SIO Dedicated Baud Rate Generator .............................................................. 22.3.1 UART/SIO Dedicated Baud Rate Generator Prescaler Selection Register (PSSR0) ................ 22.3.2 UART/SIO Dedicated Baud Rate Generator Baud Rate Setting Register (BRSR0) ................. 22.4 Operating Description of UART/SIO Dedicated Baud Rate Generator ........................................... 418 419 420 421 422 423 CHAPTER 23 LIN-UART ................................................................................................. 425 23.1 Overview of LIN-UART ................................................................................................................... 23.2 Configuration of LIN-UART ............................................................................................................. 23.3 Pins of LIN-UART ........................................................................................................................... 23.4 Registers of LIN-UART ................................................................................................................... 23.4.1 LIN-UART Serial Control Register (SCR) .................................................................................. 23.4.2 LIN-UART Serial Mode Register (SMR) .................................................................................... 23.4.3 LIN-UART Serial Status Register (SSR) ................................................................................... 23.4.4 LIN-UART Reception Data Register/LIN-UART Transmit Data Register (RDR/TDR) ............... 23.4.5 LIN-UART Extended Status Control Register (ESCR) .............................................................. viii 426 428 433 434 435 437 439 441 443 23.4.6 LIN-UART Extended Communication Control Register (ECCR) ............................................... 23.4.7 LIN-UART Baud Rate Generator Register 1, 01, 0 (BGR1, BGR0) .......................................... 23.5 Interrupt of LIN-UART ..................................................................................................................... 23.5.1 Reception Interrupt Generation and Flag Set Timing ................................................................ 23.5.2 Transmit Interrupt Generation and Flag Set Timing .................................................................. 23.6 LIN-UART Baud Rate ..................................................................................................................... 23.6.1 Baud Rate Setting ..................................................................................................................... 23.6.2 Reload Counter ......................................................................................................................... 23.7 Operations and Setup Procedure Example of LIN-UART ............................................................... 23.7.1 Operation of Asynchronous Mode (Operation Mode 0, 1) ......................................................... 23.7.2 Operation of Synchronous Mode (Operation Mode 2) ............................................................... 23.7.3 Operation of LIN function (Operation Mode 3) .......................................................................... 23.7.4 Serial Pin Direct Access ............................................................................................................ 23.7.5 Bi-directional Communication Function (Normal Mode) ............................................................ 23.7.6 Master/slave Mode Communication Function (Multi-processor Mode) ...................................... 23.7.7 LIN Communication Function .................................................................................................... 23.7.8 Example of LIN-UART LIN Communication Flowchart (Operation Mode 3) .............................. 23.8 Notes on Using LIN-UART .............................................................................................................. 23.9 Sample Programs of LIN-UART ..................................................................................................... 445 447 448 452 454 456 458 462 464 466 470 474 477 478 480 483 484 486 491 CHAPTER 24 I2C ............................................................................................................. 497 24.1 Overview of I2C ............................................................................................................................... 24.2 I2C Configuration ............................................................................................................................ 24.3 I2C Channels .................................................................................................................................. 24.4 I2C Bus Interface Pins .................................................................................................................... 24.5 I2C Registers .................................................................................................................................. 24.5.1 I2C Bus Control Registers (IBCR00, IBCR10) ........................................................................... 24.5.2 I2C Bus Status Register (IBSR0) ............................................................................................... 24.5.3 I2C Data Register (IDDR0) ........................................................................................................ 24.5.4 I2C Address Register (IAAR0) ................................................................................................... 24.5.5 I2C Clock Control Register (ICCR0) .......................................................................................... 24.6 I2C Interrupts .................................................................................................................................. 24.7 I2C Operations and Setup Procedure Examples ............................................................................ 24.7.1 l2C Interface ............................................................................................................................... 24.7.2 Function to Wake up the MCU from Standby Mode .................................................................. 24.8 Notes on Use of I2C ........................................................................................................................ 24.9 Sample Programs for I2C ................................................................................................................ 498 499 502 503 505 506 512 514 515 516 518 521 522 529 531 533 CHAPTER 25 8/10-BIT A/D CONVERTER ..................................................................... 537 25.1 Overview of 8/10-bit A/D Converter ................................................................................................ 25.2 Configuration of 8/10-bit A/D Converter .......................................................................................... 25.3 Pins of 8/10-bit A/D Converter ........................................................................................................ 25.4 Registers of 8/10-bit A/D Converter ................................................................................................ 25.4.1 8/10-bit A/D Converter Control Register 1 (ADC1) .................................................................... 25.4.2 8/10-bit A/D Converter Control Register 2 (ADC2) .................................................................... 25.4.3 8/10-bit A/D Converter Data Registers Upper/Lower (ADDH, ADDL) ....................................... 25.5 Interrupts of 8/10-bit A/D Converter ................................................................................................ ix 538 539 541 544 545 547 549 550 25.6 25.7 25.8 Operations of 8/10-bit A/D Converter and Its Setup Procedure Examples ..................................... 551 Notes on Use of 8/10-bit A/D Converter ......................................................................................... 554 Sample Programs for 8/10-bit A/D Converter ................................................................................. 555 CHAPTER 26 LOW-VOLTAGE DETECTION RESET CIRCUIT ..................................... 559 26.1 26.2 26.3 26.4 Overview of Low-voltage Detection Reset Circuit ........................................................................... Configuration of Low-voltage Detection Reset Circuit .................................................................... Pins of Low-voltage Detection Reset Circuit ................................................................................... Operations of Low-voltage Detection Reset Circuit ........................................................................ 560 561 562 563 CHAPTER 27 CLOCK SUPERVISOR ............................................................................. 565 27.1 Overview of Clock Supervisor ......................................................................................................... 27.2 Configuration of Clock Supervisor .................................................................................................. 27.3 Register of Clock Supervisor .......................................................................................................... 27.3.1 Clock Supervisor Control Register (CSVCR) ............................................................................ 27.4 Operations of Clock Supervisor ...................................................................................................... 27.5 Notes on Using Clock Supervisor ................................................................................................... 566 567 569 570 572 575 CHAPTER 28 DUAL-OPERATIONFLASH MEMORY .................................................... 577 28.1 Overview of Dual-Operation Flash Memory .................................................................................... 28.2 Sector/Bank Configuration of Flash Memory .................................................................................. 28.3 Register of Flash Memory ............................................................................................................... 28.3.1 Flash Memory Status Register (FSR) ........................................................................................ 28.3.2 Flash Memory Sector Write Control Registers (SWRE0/SWRE1) ............................................ 28.4 Starting the Flash Memory Automatic Algorithm ............................................................................ 28.5 Checking the Automatic Algorithm Execution Status ...................................................................... 28.5.1 Data Polling Flag (DQ7) ............................................................................................................ 28.5.2 Toggle Bit Flag (DQ6) ................................................................................................................ 28.5.3 Execution Time-out Flag (DQ5) ................................................................................................. 28.5.4 Sector Erase Timer Flag (DQ3) ................................................................................................. 28.6 Flash Memory Program/Erase ........................................................................................................ 28.6.1 Placing Flash Memory in the Read/Reset State ........................................................................ 28.6.2 Programming Data into Flash Memory ...................................................................................... 28.6.3 Erasing All Data from Flash Memory (Chip Erase) .................................................................... 28.6.4 Erasing Arbitrary Data from Flash Memory (Sector Erasing) .................................................... 28.6.5 Suspending Sector Erasing from Flash Memory ....................................................................... 28.6.6 Resuming Sector Erasing from Flash Memory .......................................................................... 28.7 Operation of Dual-Operation Flash Memory ................................................................................... 28.8 Flash Security ................................................................................................................................. 28.9 Notes on Using Dual-Operation Flash Memory .............................................................................. 578 580 581 582 585 590 592 594 596 598 599 600 601 602 604 605 607 608 609 611 612 CHAPTER 29 EXAMPLE OF SERIAL PROGRAMMING CONNECTION ...................... 613 29.1 29.2 29.3 Basic Configuration of Serial Programming Connection for Flash Memory Products .................... 614 Example of Serial Programming Connection .................................................................................. 617 Example of Minimum Connection to Flash Microcontroller Programmer ........................................ 620 x CHAPTER 30 FRAM ........................................................................................................ 623 30.1 30.2 Overview of the FRAM .................................................................................................................... 624 How to Access to the FRAM ........................................................................................................... 625 APPENDIX ......................................................................................................................... 635 APPENDIX A I/O Map ................................................................................................................................ APPENDIX B Table of Interrupt Causes .................................................................................................... APPENDIX C Memory Map ........................................................................................................................ APPENDIX D Pin Status of MB95100B/AM series ..................................................................................... APPENDIX E Instruction Overview ............................................................................................................ APPENDIX F Mask Option ......................................................................................................................... APPENDIX G Writing to Flash Microcontroller Using Parallel Writer .......................................................... 636 642 643 645 648 664 667 INDEX................................................................................................................................... 671 Register Index..................................................................................................................... 693 Pin Function Index ............................................................................................................. 696 Interrupt Vector Index ........................................................................................................ 697 xi xii Main changes in this edition Page Changes (For details, refer to main body.) - - Deleted product name MB95R107B was deleted. 20 CHAPTER 2 HANDLING DEVICES 2.1 Device Handling Precautions ■ Device Handling Precautions Added "● Serial Communication" 23 ■ Pin Connection Added "● C pin" 90 CHAPTER 7 RESET 7.2 Reset Source Register (RSRR) ■ Configuration of Reset Source Register (RSRR) Figure 7.2-1 • Corrected bit attributes of bit0 to bit5 (6 attributes) R/WX → R,W • Corrected description of writing operation of bit0 to bit5 (6 descriptions) Operation is not affected → Writing sets the bit to "0". • Corrected attribute description R/WX : Read only (Readable, writing has no effect on operation) → R/WX : Read only (Readable, writing has no effect on operation) 91 Table 7.2-1 • Corrected description of bit5 This bit varies only with the models equipped with the clock supervisor. → Read or write access (0 or 1) to this bit sets it to "0". • Corrected the following descriptions of bit4 to bit1 Read access to this bit sets it to "0". → Read or write access (0 or 1) to this bit sets it to "0". • Corrected description of bit0 Read access to this bit or a power-on reset sets it to "0". → Read or write access (0 or 1) to this bit or a power-on reset sets it to "0". • Deleted the following descriptions of bit4 to bit0 "The bit is read-only. Writing has no effect on operation." 97 CHAPTER 8 INTERRUPTS 8.1 Interrupts ■ Interrupt Requests from Peripheral Resources Table 8.1-1 Corrected the upper cell of "Vector table address" of (Mode data) FFFCH → - xiii Page Changes (For details, refer to main body.) 119 CHAPTER 9 I/O PORT 9.3.2 Operations of Port 1 Changed "● Operation of the pull-up control register". 124 9.4.2 Operations of Port 2 129 9.5.2 Operations of Port 3 134 9.6.2 Operations of Port 4 140 9.7.2 Operations of Port 5 150 9.9.2 Operations of Port 7 159 9.11.2 Operations of Port E 164 9.12.2 Operations of Port G 243 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.5.1 8/16-bit Compound Timer 00/ 01 Control Status Register 0 (T00CR0/T01CR0) Changed Table 15.5-1. 0 1 1 1 PWC timer (cycle = rising to falling) 1 0 0 0 PWC timer (cycle = falling to rising) → 0 1 1 1 PWC timer (cycle = rising to rising) 1 0 0 0 PWC timer (cycle = falling to falling) 268 15.13 Operating Description of Input Capture Function Added the comments above the Figure 15.13-2. 272 15.16 Notes on Using 8/16-bit Compound Timer Added the comments in "■ Notes on Using 8/16-bit Compound Timer". 275 CHAPTER 16 8/16-BIT PPG 16.2 Configuration of 8/16-bit PPG Changed Figure 16.2-1. 293 16.7.2 8-bit Prescaler + 8-bit PPG Mode Changed the register name in "■ Operation of 8-bit Prescaler + 8-bit PPG Mode". (PPG timer 00 (ch.1) → PPG timer 01 (ch.0)) 388 CHAPTER 21 UART/SIO 21.5 Registers of UART/SIO ■ Registers Related to UART/SIO Figure 21.5-1 Corrected bit attribute of bit5 in SMC20 R/W → R1/W 392 21.5.2 UART/SIO Serial Mode Control Register 2 (SMC20) Table 21.5-2 Corrected bit description of bit5 Setting the bit to "1" clears the reception error flag. → Setting the bit to "1": has no effect on operation. 436 CHAPTER 23 LIN-UART 23.4.1 LIN-UART Serial Control Register (SCR) ■ LIN-UART Serial Control Register (SCR) Table 23.4-1 • Deleted Note in Function cell of bit5 • Changed Note in Function cell of bit2 449 23.5 Interrupt of LIN-UART ■ Reception Interrupt ● Reception interrupt Changed Note: (MCLK, PCK0 to PCK6 → n/MCLK, 27/FCH, 28/FCH) Added explanation R1/W : Readable/writable (Read value is always "1") xiv Page Changes (For details, refer to main body.) ■ Register and Vector Table Related to LIN-UART Interrupt Table 23.5-4 Corrected the upper/lower addresses for Reception in vector table. Upper: FFFCH → FFECH 465 23.7 Operations and Setting Procedure Example of LINUART ■ Setup Procedure ● Initial setting Corrected explanation 1) Set the port input (DDR1). → 1) Set the port for input (DDR6). 487 to 490 23.8 Notes on Using LIN-UART ■ Notes on Using LIN-UART Added ● Handling framing errors Added Figure23.8-1 to Figure 23.8-3 507 CHAPTER 24 I2C Changed "Function (bit7)" in Table 24.5-1. (Write "1" to this bit in either of the following ways: → Update this bit in either of the following ways:) 451 24.5.1 I2C Bus Control Registers (IBCR00, IBCR10) Lower: FFFDH → FFEDH 508 Changed "Note" under Table 24.5-1. ((IBSR:BER = 1) → (IBCR10:BER = 1)) 511 Changed "Note" under Table 24.5-2 in "■ I2C Bus Control Register 1 (IBCR10)". ((IBSR0:BER = 1) → (IBCR10:BER = 1)) 553 CHAPTER 25 8/10-BIT A/D CONVERTER 25.6 Operations of 8/10-bit A/D Converter and Its Setup Procedure Examples ■ Setup Procedure Example ● Initial setting Corrected explanation 1) Set the port for input (DDR1) → 1) Set the port for input (DDR3, DDR4) 577 CHAPTER 28 DUAL-OPERATION FLASH MEMORY Changed the chapter name 480-KBIT FLASH MEMORY → DUAL-OPERATION FLASH MEMORY 578 28.1 Overview of Dual-Operation Flash Memory Changed the summary. ■ Overview of Dual-Operation Flash Memory Changed the summary. ■ Features of Dual-Operation Flash Memory Added the following descriptions • Compatible with JEDEC standard commands ■ Flash memory program/erase Added description • By using dual-operation flash memory, programs can be executed on the flash memory and programming control using interrupt is enabled. In addition, programs do not need to be downloaded onto the RAM for execution when programming, and it is not necessary to take measures reducing the downloading time or turning OFF the power of the RAM data. 579 xv Page Changes (For details, refer to main body.) 28.5 Checking the Automatic Algorithm Execution Status ■ Hardware Sequence Flag ● Overview of hardware sequence flag Changed explanation the following 5-bit outputs: → the following 4-bit outputs: Deleted " • Toggle bit 2 flag (DQ2)" DQ7, DQ6, DQ5, DQ3, DQ2 → DQ7, DQ6, DQ5, DQ3 Table 28.5-1 Changed bit 2 DQ2 → − ● Explanation of hardware sequence flag Table 28.5-2 Deleted column of "DQ2" Deleted Note(*) at the bottom of the table 28.5.5 Toggle Bit 2 Flag (DQ2) Deleted whole section of 28.5.5 603 28.6.2 Programming Data into Flash Memory ■ Flash Memory Programming Procedure Figure 28.6-1 Changed flow chart Changed hexadecimal number Added "H" 606 28.6.4 Erasing Arbitrary Data from Flash Memory (Sector Erasing) ■ Notes on Erasing Data from Sectors Figure 28.6-2 Changed flow chart 609, 610 28.7 Operation of Dual-Operation Flash Memory Added section 612 28.9 Notes on Using Dual-Operation Flash Memory Added explanation CHAPTER 30 DUAL OPERATION FLASH CHAPTER 28 480-KBIT FLASH MEMORY in previous version was changed to CHAPTER 28 DUAL-OPERATION FLASH MEMORY and CHAPTER 30 DUAL OPERATION FLASH was deleted. APPENDIX APPENDIX B Table of Interrupt Causes Changed the column "Address of vector table (Upper)" (Mode data) in Table B-1. (FFFCH → - ) 592 593 - - 642 ■ Notes on F2MC-8FX Software Development Support Environment (MB95FV100D and MB2146-09) • Writing or erasing the lower bank (1000H to 3FFFH) is not possible. • Do not execute chip erasing. The vertical lines marked in the left side of the page show the changes. xvi CHAPTER 1 DESCRIPTION This chapter explains a feature and a basic specification of the MB95100B/AM series. 1.1 Feature of MB95100B/AM Series 1.2 Product Lineup of MB95100B/AM Series 1.3 Difference Points among Products and Notes on Selecting a Product 1.4 Block Diagram of MB95100B/AM Series 1.5 Pin Assignment 1.6 Package Dimension 1.7 Pin Description 1.8 I/O Circuit Type CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 1 CHAPTER 1 DESCRIPTION 1.1 Feature of MB95100B/AM Series 1.1 MB95100B/AM Series Feature of MB95100B/AM Series In addition to a compact instruction set, the MB95100B/AM series is a general-purpose single-chip microcontroller built-in abundant peripheral functions. ■ Feature of MB95100B/AM Series ● F2MC-8FX CPU core Instruction system optimized for controllers • Multiplication and division instructions • 16-bit operation • Bit test branch instruction • Bit operation instructions etc. ● Clock • Main clock • Main PLL clock • Sub clock (Only for dual-system product) • Sub PLL clock (Only for dual-system product) ● Timer • 8/16bit composite timer × 2 channels • 16-bit reload timer • 8/16-bit PPG × 2 channels • 16-bit PPG × 2 channels • Time-base timer • Watch prescaler (Only for dual-system product) ● LIN-UART • With full-duplex double buffer • An asynchronous clock or a synchronous serial data transfer can be used ● UART/SIO • With full-duplex double buffer • An asynchronous clock or a synchronous serial data transfer can be used ● I2C Built-in wake up function ● External interrupt • Interrupt by the edge detection (Select rising edge/falling edge/both edges) • Can be used to recover from low-power consumption (standby) mode 2 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 1 DESCRIPTION 1.1 Feature of MB95100B/AM Series MB95100B/AM Series ● 8/10-bit A/D converter 8-bit or 10-bit resolutions can be selected ● Low-power consumption (standby) mode • Stop mode • Sleep mode • Watch mode (Only for dual-system product) • Time-base timer mode ● I/O port: Max 54 • General-purpose I/O ports (N-ch open drain) : 6 • General-purpose I/O ports (CMOS) : 48 ● Programmable input voltage levels of port Automotive input level / CMOS input level / hysteresis input level ● Flash memory security function Protects the content of Flash memory (Flash memory device only) CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 3 CHAPTER 1 DESCRIPTION 1.2 Product Lineup of MB95100B/AM Series MB95100B/AM Series Product Lineup of MB95100B/AM Series 1.2 MB95100B/AM series is available in three types. Table 1.2-1 lists the product lineup and Table 1.2-2 lists the CPUs and peripheral functions. ■ Product Lineup of MB95100B/AM Series Table 1.2-1 Product Lineup of MB95100B/AM Series (1 / 2) Option Classification Product ROM/RAM Voltage Clock system MB95FV100D-101 60KB/3.75KB 3V LVD CSV None None None None Yes Yes None Yes Yes Yes None None None Yes Yes None Yes Yes Yes None Single system None None None Dual-system None None None None None None Single system Dual-system Single system Evaluation products*1 MB95FV100D-103 60KB/3.75KB 5V Dual-system MB95F108BS Flash memory products 3V products MB95D108BS MB95F108BW MB95107B Single system 48KB/2KB Dual-system Single system None None Yes Single system Yes None Yes Single system Yes Yes None Dual-system None None Yes MB95F104ANW Dual-system Yes None Yes MB95F104AJW Dual-system Yes Yes None MB95F106AMS Single system None None Yes MB95F106ANS Single system Yes None Yes MB95F106AJS 16KB/512KB Single system Yes Yes None Dual-system None None Yes MB95F106ANW Dual-system Yes None Yes MB95F106AJW Dual-system Yes Yes None MB95F108AMS Single system None None Yes MB95F108ANS Single system Yes None Yes MB95F106AMW MB95F108AJS 32KB/1KB 5V Single system Yes Yes None Dual-system None None Yes MB95F108ANW Dual-system Yes None Yes MB95F108AJW Dual-system Yes Yes None MB95F108AMW 4 3V MB95F104AMS MB95F104AMW Flash memory products None MB95F104ANS MB95F104AJS 5V products None 60KB/2KB MB95D108BW Mask ROM products*2 Reset output 60KB/2KB FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 1 DESCRIPTION 1.2 Product Lineup of MB95100B/AM Series MB95100B/AM Series Table 1.2-1 Product Lineup of MB95100B/AM Series (2 / 2) Option Classification Product ROM/RAM Voltage Clock system Single system 5V products Mask ROM products*2 MB95108AM 60KB/2KB 5V Dual-system LVD CSV None None Yes None Yes Yes None None Yes None Yes Yes Reset output Yes None Yes None LVD: Low-voltage detection reset CSV: Clock supervisor *1: On evaluation products, toggle single/dual system and whether to include LVD with the switch on MCU board (LVD cannot be disabled while CSV is enabled). *2: On mask ROM products, specify single/dual system and whether to include LVD when issuing the mask ROM order (LVD cannot be disabled while CSV is enabled). Table 1.2-2 CPU and Peripheral Function of MB95100B/AM Series (1 / 2) Item Specification CPU function Port Interrupt cycle: 0.5 ms, 2.1 ms, 8.2 ms, 32.8 ms (at external 4 MHz) Watchdog timer Reset generation cycle Main clock at 10 MHz : 105 ms (Min) Sub clock at 32.768 kHz (Only for dual-system product): 250 ms (Min) I2C bus ROM data for three bytes can be replaced. Master/slave sending/receiving Bus error function, Arbitration function, Forwarding direction detection function Generating repeatedly and detecting function of the start condition Built-in wake up function UART/SIO Data transfer is enabled at UART/SIO Built-in full-duplex double buffer, Changeable data length (5/6/7/8-bit), Built-in baud rate generator NRZ method transfer format, Error detected function LSB-first or MSB-first can be selected Serial data transfer is available for clock synchronous (SIO) and clock asynchronous (UART) LIN-UART A wide-range communication speed can be set with the dedicated reload timer Full-duplex double buffer Serial data transfer is available for clock synchronous and clock asynchronous LIN function can be used as a LIN master and LIN slave 8/10-bit A/D converter CM26-10112-4E General-purpose I/O ports (N-ch open drain): 6 General-purpose I/O ports (CMOS) : 3V products : 49 : 5V products : 48 : 3V products : 55 (Max) Total : 5V products : 54 (Max) Time-base timer Wild registers Peripheral function Number of basic instructions: 136 instructions Instruction bit length: 8 bits Instruction length: 1 to 3 bytes Data bit length: 1, 8, and 16 bits Minimum instruction execution time: 61.5ns (at machine clock 16.25 MHz) Interrupt processing time: 0.6 μs (at machine clock 16.25 MHz) 12ch. 8-bit or 10-bit resolution can be selected FUJITSU MICROELECTRONICS LIMITED 5 CHAPTER 1 DESCRIPTION 1.2 Product Lineup of MB95100B/AM Series MB95100B/AM Series Table 1.2-2 CPU and Peripheral Function of MB95100B/AM Series (2 / 2) Item 16-bit reload timer 8/16bit composite timer 16-bit PPG Peripheral function Count operation mode: either reload mode or one-shot mode can be selected Count clock: available from internal clocks (7 types) or external clocks With square wave output 2ch. Can be configured as a 2ch × 8-bit timer or 1ch × 16-bit timer per each timer channel Built-in timer function, PWC function, PWM function and capture function Count clock: available from internal clocks (7 types) or external clocks With square wave output 2ch. PWM mode or one-shot mode can be selected Counter operation clock: available from eight selectable clock sources Support for external trigger activation 8/16-bit PPG 2ch. Can be configured as a 2ch × 8-bit PPG or 1ch × 16-bit PPG per each PPG channel Counter operation clock: available from eight selectable clock sources Watch counter Count clock: available from four selectable clock sources (125 ms, 250 ms, 500 ms, or 1 s) Counter value can be set within the range of 0 to 63 (When one second is selected as for the clock source and the counter value is set to 60, it is possible to count for one minute.) Note: At selecting the dual-system product Watch prescaler External interrupt Flash memory Standby Mode 6 Specification Available from four selectable interval times (125 ms, 250 ms, 500 ms, 1 s) Note: At selecting the dual-system product 12ch. Interrupt by edge detection (Select rising edge/falling edge/both edges) Can be used to recover from standby modes Supports automatic programming, Embedded AlgorithmTM Write/Erase/Erase-Suspend/Resume commands A flag indicating completion of the algorithm Number of write/erase cycles : 10000 times Data retention time : 20 years Erase can be performed on each block Block protection with external programming voltage Flash Memory Security Feature for protecting the content of the Flash Sleep, stop, watch (Only for dual-system product), and time-base timer FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 1.3 CHAPTER 1 DESCRIPTION 1.3 Difference Points among Products and Notes on Selecting a Product Difference Points among Products and Notes on Selecting a Product The following describes differences among MB95100B/AM series products and notes when selecting the product. ■ Difference Points among Products and Notes on Selecting a Product ● Notes on using evaluation products The evaluation products are intended to support software development for a number of different F2MC-8FX family series and products, and it therefore includes additional functions that may not be included in MB95100B/AM series. Accordingly, access to I/O address of peripheral functions that are not used in MB95100B/AM series is prohibited. Reading or writing to these prohibited addresses may cause these unused peripheral functions to operate and lead to unexpected hardware or software problems. Take particular care not to use word access to read or write odd numbered bytes in the prohibited areas (It causes unexpected read/write operation). Also, as the read values of prohibited addresses on the evaluation product are different to the values on the flash memory and mask ROM products, do not use these values in the program. The functions corresponding to certain bits in single-byte registers may not be supported on some mask ROM and flash memory products. However, reading or writing to these bits will not cause malfunction of the hardware. Also, as the evaluation, flash memory, and mask ROM products are designed to have identical hardware and software operation, no particular precautions are required. ● Difference of memory space If the memory size on the evaluation product is different to the flash memory or mask ROM product, please ensure you understand these differences when developing software. ● Current consumption The current consumption of flash memory products is greater than for mask ROM products. For the details of current consumption, refer to "Electric characteristics" in data sheet. ● Package For detailed information on each package, see "■ Package and Its Corresponding Product" and "1.6 Package Dimension". ● Operating voltage The operating voltage may be different depending on the products. For the details, see the "data sheet". ● Difference of RST/MOD pins For mask ROM products, the RST and MOD pins are hysteresis inputs. And, a pull-down resistor is provided for the MOD pin. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 7 CHAPTER 1 DESCRIPTION 1.3 Difference Points among Products and Notes on Selecting a Product MB95100B/AM Series ■ Package and Its Corresponding Product MB95107B MB95F108BS MB95F108BW MB95D108BS MB95D108BW MB95108AM MB95F104AMS MB95F104ANS MB95F104AJS MB95F104AMW MB95F104ANW MB95F104AJW MB95F106AMS MB95F106ANS MB95F106AJS MB95F106AMW MB95F106ANW MB95F106AJW MB95F108AMS MB95F108ANS MB95F108AJS MB95F108AMW MB95F108ANW MB95F108AJW FPT-64P-M03 ❍ ❍ ❍ ❍ × FPT-64P-M09 ❍ ❍ ❍ ❍ × BGA-224P-M08 × × × × ❍ Product Package MB95FV100D-101 MB95FV100D-103 ❍: usable × : unusable 8 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 1 DESCRIPTION 1.4 Block Diagram of MB95100B/AM Series MB95100B/AM Series 1.4 Block Diagram of MB95100B/AM Series Figure 1.4-1 shows the block diagram of all MB95100B/AM series. ■ Block Diagram of All MB95100B/AM Series Figure 1.4-1 Block Diagram of All MB95100B/AM Series 2 F MC-8FX CPU RST X0,X1 PG2/X1A*1 PG1/X0A*1 PG0 Reset control ROM RAM Clock control Interrupt control Watch prescaler Wild register Watch counter P00/INT00 to P07/INT07 External interrupt ch.0 to ch.7 16-bit PPG ch.1 P10/UI0 P11/UO0 UART/SIO P20/PPG00 P21/PPG01 P22/TO00 P23/TO01 P24/EC0 16-bit PPG ch.0 8/16-bit PPG ch.0 8/16-bit Composit timer ch.0 P30/AN00 to P37/AN07 P40/AN08 to P43/AN11 AVCC 8/10-bit A/D converter AVSS INTERNAL BUS P14/PPG0 P53/TRG1 P60/PPG10 8/16-bit PPG ch.1 P12/UCK0 P13/TRG0/ADTG P52/PPG1 8/16-bit Composit timer ch.1 P61/PPG11 P62/TO10 P63/TO11 P64/EC1 P65/SCK LIN-UART P66/SOT P67/SIN 16-bit Reload timer P70/TO0 P71/TI0 P80 to P83 External interrupt ch.8 to ch.11 PE0/INT10 to PE3/INT13 AVR P50/SCL0*2 P51/SDA0*2 I 2C FRAM*3 PORT PORT MOD, VCC, VSS *1 : Single clock product is general-purpose port, and dual clock product is sub clock oscillation pin. *2 : P50 and P51 cannot be used in MB95D108BS and MB95D108BW. *3 : MB95D108BS and MB95D108BW only CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 9 CHAPTER 1 DESCRIPTION 1.5 Pin Assignment 1.5 MB95100B/AM Series Pin Assignment Figure 1.5-1 shows the pin assignment of the MB95100B/AM series. ■ Pin Assignment of MB95100B/AM Series Figure 1.5-1 Pin Assignment of MB95100B/AM Series AVss P30/AN00 P31/AN01 P32/AN02 P33/AN03 P34/AN04 P35/AN05 P36/AN06 P37/AN07 P40/AN08 P41/AN09 P42/AN10 P43/AN11 P67/SIN P66/SOT P65/SCK (TOP VIEW) 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 AVcc AVR PE3/INT13 PE2/INT12 PE1/INT11 PE0/INT10 P83 P82 P81 P80 P71/TI0 P70/TO0 MOD X0 X1 Vss 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 P64/EC1 P63/TO11 P62/TO10 P61/PPG11 P60/PPG10 P53/TRG1 P52/PPG1 P51/SDA0*2 P50/SCL0*2 P24/EC0 P23/TO01 P22/TO00 P21/PPG01 P20/PPG00 P14/PPG0 P13/TRG0/ADTG Vcc PG0/C*3 PG2/X1A*1 PG1/X0A*1 RST P00/INT00 P01/INT01 P02/INT02 P03/INT03 P04/INT04 P05/INT05 P06/INT06 P07/INT07 P10/UI0 P11/UO0 P12/UCK0 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 (FPT-64P-M03, FPT-64P-M09) *1 : Single clock product is general-purpose port, and dual clock product is sub clock oscillation pin. *2 : P50 and P51 cannot be used in MB95D108BS and MB95D108BW. *3 : For 5V products, the C pin is used. 10 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 1 DESCRIPTION 1.6 Package Dimension MB95100B/AM Series 1.6 Package Dimension MB95100B/AM series is available in two types of package. ■ Package Dimension of FPT-64P-M03 Figure 1.6-1 Package Dimension of FPT-64P-M03 64-pin plastic LQFP Lead pitch 0.50 mm Package width × package length 10.0 × 10.0 mm Lead shape Gullwing Sealing method Plastic mold Mounting height 1.70 mm MAX Weight 0.32g Code (Reference) P-LFQFP64-10×10-0.50 (FPT-64P-M03) 64-pin plastic LQFP (FPT-64P-M03) Note 1) * : These dimensions do not include resin protrusion. Note 2) Pins width and pins thickness include plating thickness. Note 3) Pins width do not include tie bar cutting remainder. 12.00±0.20(.472±.008)SQ * 10.00±0.10(.394±.004)SQ 48 0.145±0.055 (.006±.002) 33 32 49 Details of "A" part 0.08(.003) +0.20 1.50 –0.10 +.008 .059 –.004 INDEX 0°~8° 17 64 (Mounting height) 0.10±0.10 (.004±.004) (Stand off) "A" LEAD No. 1 16 0.50(.020) C 0.20±0.05 (.008±.002) 0.08(.003) M 2003-2008 FUJITSU MICROELECTRONICS LIMITED F64009S-c-5-9 0.50±0.20 (.020±.008) 0.60±0.15 (.024±.006) 0.25(.010) Dimensions in mm (inches). Note: The values in parentheses are reference values Please check the latest package dimension at the following URL. http://edevice.fujitsu.com/package/en-search/ CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 11 CHAPTER 1 DESCRIPTION 1.6 Package Dimension MB95100B/AM Series ■ Package Dimension of FPT-64P-M09 Figure 1.6-2 Package Dimension of FPT-64P-M09 64-pin plastic LQFP Lead pitch 0.65 mm Package width × package length 12 × 12 mm Lead shape Gullwing Sealing method Plastic mold Mounting height 1.70 mm MAX Code (Reference) P-LQFP64-12×12-0.65 (FPT-64P-M09) 64-pin plastic LQFP (FPT-64P-M09) Note 1) * : These dimensions do not include resin protrusion. Note 2) Pins width and pins thickness include plating thickness. Note 3) Pins width do not include tie bar cutting remainder. 14.00±0.20(.551±.008)SQ * 12.00±0.10(.472±.004)SQ 48 0.145±0.055 (.0057±.0022) 33 49 32 0.10(.004) Details of "A" part +0.20 1.50 –0.10 +.008 .059 –.004 (Mounting height) 0.25(.010) INDEX 0~8° 64 17 1 0.65(.026) C 0.32±0.05 (.013±.002) 0.50±0.20 (.020±.008) 0.60±0.15 (.024±.006) "A" 16 0.13(.005) 0.10±0.10 (.004±.004) (Stand off) M 2003-2008 FUJITSU MICROELECTRONICS LIMITED F64018S-c-3-6 Dimensions in mm (inches). Note: The values in parentheses are reference values. Please check the latest package dimension at the following URL. http://edevice.fujitsu.com/package/en-search/ 12 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 1 DESCRIPTION 1.7 Pin Description MB95100B/AM Series 1.7 Pin Description Table 1.7-1 shows pin description. The alphabet in the "Circuit Type" column of Table 1.7-1 corresponds to the one in the "Classification" column of Table 1.8-1. ■ Pin Description Table 1.7-1 Pin Description (1 / 3) Pin no. Pin name I/O circuit type* 1 AVCC ⎯ A/D converter power supply pin 2 AVR ⎯ A/D converter reference input pin 3 PE3/INT13 4 PE2/INT12 P General-purpose I/O port The pins are shared with the external interrupt input. O General-purpose I/O port 5 PE1/INT11 6 PE0/INT10 7 P83 8 P82 9 P81 10 P80 11 P71/TI0 Function General-purpose I/O port. The pin is shared with 16 - bit reload timer ch.0 input. H 12 P70/TO0 13 MOD 14 X0 General-purpose I/O port. The pin is shared with 16 - bit reload timer ch.0 output. B An operating mode designation pin Main clock input oscillation pin A 15 X1 Main clock input/output oscillation pin 16 VSS ⎯ Power supply pin (GND) 17 VCC ⎯ Power supply pin 18 PG0/C H General-purpose I/O port (3V products). Capacitor connection pin (5V products). 19 PG2/X1A Single-system product is general-purpose port (PG2). Dual-system product is sub clock input/output oscillation pin (32 kHz). H/A 20 PG1/X0A 21 RST CM26-10112-4E Single-system product is general-purpose port (PG1). Dual-system product is sub clock input oscillation pin (32 kHz). B’ Reset pin FUJITSU MICROELECTRONICS LIMITED 13 CHAPTER 1 DESCRIPTION 1.7 Pin Description MB95100B/AM Series Table 1.7-1 Pin Description (2 / 3) Pin no. Pin name 22 P00/INT00 23 P01/INT01 24 P02/INT02 25 P03/INT03 I/O circuit type* Function C General-purpose I/O port. The pins are shared with external interrupt input. Large current port. G General-purpose I/O port. The pin is shared with UART/SIO ch.0 data input. 26 P04/INT04 27 P05/INT05 28 P06/INT06 29 P07/INT07 30 P10/UI0 31 P11/UO0 32 P12/UCK0 33 P13/TRG0/ ADTG General-purpose I/O port. The pin is shared with 16-bit PPG ch.0 trigger input (TRG0) and A/D trigger input (ADTG). 34 P14/PPG0 General-purpose I/O port. The pin is shared with 16-bit PPG ch.0 output. 35 P20/PPG00 36 P21/PPG01 37 P22/TO00 38 P23/TO01 39 P24/EC0 General-purpose I/O port. The pin is shared with 8/16-bit compound timer ch.0 clock input. 40 P50/SCL0 General-purpose I/O port (Except MB95D108BS and MB95D108BW) . The pin is shared with I2C ch.0 clock I/O. General-purpose I/O port. The pin is shared with UART/SIO ch.0 data output. General-purpose I/O port. The pin is shared with UART/SIO ch.0 clock I/O. H General-purpose I/O port. The pins are shared with 8/16-bit PPG ch.0 output. H General-purpose I/O port. The pins are shared with 8/16-bit compound timer ch.0 output. I 41 P51/SDA0 General-purpose I/O port (Except MB95D108BS and MB95D108BW) . The pin is shared with I2C ch.0 data I/O. 42 P52/PPG1 General-purpose I/O port. The pin is shared with 16-bit PPG ch.1 output. H 43 14 P53/TRG1 General-purpose I/O port. The pin is shared with 16-bit PPG ch.1 trigger input. FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 1 DESCRIPTION 1.7 Pin Description MB95100B/AM Series Table 1.7-1 Pin Description (3 / 3) I/O circuit type* Pin no. Pin name 44 P60/PPG10 45 P61/PPG11 46 P62/TO10 47 P63/TO11 48 P64/EC1 49 P65/SCK General-purpose I/O port. The pin is shared with LIN-UART clock I/O. 50 P66/SOT General-purpose I/O port. The pin is shared with LIN-UART data output. 51 P67/SIN 52 P43/AN11 53 P42/AN10 54 P41/AN09 55 P40/AN08 56 P37/AN07 57 P36/AN06 58 P35/AN05 59 P34/AN04 60 P33/AN03 61 P32/AN02 62 P31/AN01 63 P30/AN00 64 AVSS Function General-purpose I/O port. The pins are shared with 8/16-bit PPG ch.1 output. General-purpose I/O port. The pins are shared with 8/16-bit compound timer ch.1 output. K General-purpose I/O port. The pin is shared with 8/16-bit compound timer ch.1 clock input. L General-purpose I/O port. The pin is shared with LIN-UART data input. J General-purpose I/O port. The pins are shared with A/D converter analog input. J General-purpose I/O port. The pins are shared with A/D converter analog input. ⎯ A/D converter power supply pin (GND) *: For the I/O circuit type, refer to "■ I/O Circuit Type". CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 15 CHAPTER 1 DESCRIPTION 1.8 I/O Circuit Type 1.8 MB95100B/AM Series I/O Circuit Type Table 1.8-1 lists the I/O circuit types. Also, the alphabet in the "Type" column of Table 1.8-1 corresponds to the one in the "I/O circuit type" column of Table 1.7-1. ■ I/O Circuit Type Table 1.8-1 I/O Circuit Type (1 / 3) Type Circuit Remarks A Clock input X1 (X1A) N-ch X0 (X0A) Standby control B Mode input R B’ Reset input • Oscillation circuit • High-speed side Feedback resistance value : approx. 1 MΩ • Low-speed side Feedback resistance : approx. 24 MΩ (Evaluation product : approx. 10 MΩ) Dumping resistance : approx. 144 kΩ (Evaluation product : without dumping resistance) • Only for input Hysteresis input only for MASK ROM product With pull-down resistor only for MASK ROM product • Hysteresis input only for MASK ROM product • Reset output (5-V products only) Reset output N-ch C P-ch N-ch Standby control External interrupt enable 16 Digital output • CMOS output • Hysteresis input • Automotive input Digital output Hysteresis input Automotive input FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 1 DESCRIPTION 1.8 I/O Circuit Type MB95100B/AM Series Table 1.8-1 I/O Circuit Type (2 / 3) Type Circuit Remarks G Pull-up control R P-ch P-ch Digital output Digital output N-ch • • • • • CMOS output CMOS input Hysteresis input With pull-up control Automotive input • • • • CMOS output Hysteresis input With pull-up control Automotive input • • • • N-ch open drain output CMOS input Hysteresis input Automotive input • • • • • CMOS output Hysteresis input Analog input With pull-up control Automotive input CMOS input Hysteresis input Automotive input Standby control H Pull-up control R P-ch P-ch N-ch Digital output Digital output Hysteresis input Automotive input Standby control I N-ch Digital output CMOS input Hysteresis input Automotive input Standby control J Pull-up control R P-ch P-ch Digital output Digital output N-ch Analog input A/D control Standby control CM26-10112-4E Hysteresis input Automotive input FUJITSU MICROELECTRONICS LIMITED 17 CHAPTER 1 DESCRIPTION 1.8 I/O Circuit Type MB95100B/AM Series Table 1.8-1 I/O Circuit Type (3 / 3) Type Circuit Remarks K P-ch Digital output Digital output • CMOS output • Hysteresis input • Automotive input N-ch Hysteresis input Automotive input Standby control L P-ch N-ch Digital output Digital output • • • • CMOS output CMOS input Hysteresis input Automotive input CMOS input Hysteresis input Automotive input Standby control O Digital output N-ch • N-ch open drain output • Hysteresis input • Automotive input Hysteresis input Automotive input Standby control P R P-ch Pull-up control P-ch Digital output • • • • CMOS output Hysteresis input With pull - up control Automotive input Digital output N-ch Standby control External interrupt control 18 Hysteresis input Automotive input FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 2 HANDLING DEVICES This chapter gives notes on using this series. 2.1 Device Handling Precautions Code: CM26-00101-3E Page: 23, 24 CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 19 CHAPTER 2 HANDLING DEVICES 2.1 Device Handling Precautions 2.1 MB95100B/AM Series Device Handling Precautions This section describes the precautions common to all devices including the device's power supply voltage and pin treatment. Note that available functions differ depending on the series. ■ Device Handling Precautions ● Preventing Latch-up Care must be taken to ensure that maximum voltage ratings are not exceeded when they are used. Latch-up may occur on CMOS ICs if voltage higher than Vcc or lower than Vss is applied to input and output pins other than medium- and high-withstand voltage pins or if higher than the rating voltage is applied between Vcc pin and Vss pin. When latch-up occurs, power supply current increases rapidly and might thermally damage elements. Also, take care to prevent the analog power supply voltage (AVcc) and analog input voltage from exceeding the digital power supply voltage (Vcc) when the analog system power supply is turned on or off. ● Stable Supply Voltage Supply voltage should be stabilized. A sudden change in power-supply voltage may cause a malfunction even within the guaranteed operating range of the Vcc power-supply voltage. For stabilization, in principle, keep the variation in Vcc ripple (p-p value) in a commercial frequency range (50 Hz/60 Hz) not to exceed 10% of the standard Vcc value and suppress the voltage variation so that the transient variation rate does not exceed 0.1 V/ms during a momentary change such as when the power supply is switched. ● Precautions for Use of External Clock Even when an external clock is used, oscillation stabilization wait time is required for poweron reset, wake-up from sub clock mode or stop mode. ● Serial Communication There is a possibility to receive wrong data due to noise or other causes on the serial communication. Therefore, design a printed circuit board so as to avoid noise. Consider receiving of wrong data, for example, apply a checksum of data at the end to detect an error. If an error is detected, retransmit the data. 20 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 2 HANDLING DEVICES 2.1 Device Handling Precautions ■ Precautions for Debug When using an evaluation device (mounted on an MCU board) for software development, there may be some differences between the operation of the evaluation device and the device you will actually use. The following lists some points to note during development. ● SYCC Register Settings During debugging, the values of the DIV1 and DIV0 bits in the SYCC register may differ from the user settings. This is because, when a break occurs, the CPU adjusts the communications speed between the evaluation device and the BGM adapter to use the optimum speed. To prevent this from occurring, you need to set response speed optimization to disabled. For this information, refer also to "2.3.1 Setting Operating Environment" in "F2MC-8L/8FX Family SOFTUNE Workbench USER'S MANUAL". ● Flash Memory Types and Sizes Each evaluation device can be used for debugging of a number of different production models (series). When developing your program, please take note of the actual ROM and RAM sizes on the device you intend to use. Further, evaluation devices use dual-operation flash memory. However, some production models have flash memory containing only one sector. Please take note of any differences between the flash memory configurations of the production and evaluation devices, particularly if writing a program that performs self-updating of flash memory. ● Differences in Flash Memory Content The debugger for the F2MC-8FX family uses the software break instruction to implement break points. When continuous or step execution is performed after setting a break point, the software break instruction is written to the break address in the flash memory on the evaluation device. Accordingly, the contents of flash memory after a software break has been inserted by the debugger will be different to the program data image generated by the compiler. Before performing a checksum, you must remember to clear all break points and "synchronize flash memory". ● Restrictions Relating to the Flash Memory on the Evaluation Device The following restrictions apply to the evaluation device for the F2MC-8FX family. (1) Writing or erasing the lower bank (addresses 1000H to 3FFFH) is not possible. When debugging, please do this on the production flash memory model. (2) Do not use the chip erase command for the flash memory on the evaluation device. When debugging, please do this on the production flash memory model. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 21 CHAPTER 2 HANDLING DEVICES 2.1 Device Handling Precautions MB95100B/AM Series ● Operation of Peripheral Functions During a Break When a CPU break occurs, the debugger for the F2MC-8FX family halts CPU operation (instruction code fetch, decoding, instruction execution, updating the PC, etc.) but the peripheral functions (PPG timer, UART, A/D converter, etc.) continue to operate. The following are some example implications: (1) If the overflow flag for a timer/counter is set during a CPU break and the interrupt is enabled, the interrupt routine will run immediately when execution restarts after the break. (2) Clearing the overflow flag for a timer/counter via the memory window or similar during a CPU break will not appear to work as the flag will quickly be reset again. ● Prohibited Access to Undefined I/O Addresses The debugger for the F2MC-8FX family uses the same evaluation device for debugging all models. This evaluation device includes all peripheral functions that may be used during debugging. Accessing a register that does not exist on your target production device may invoke a peripheral function that should not exist and may result in abnormal operation. Accordingly, please do not access undefined address areas. 22 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 2 HANDLING DEVICES 2.1 Device Handling Precautions MB95100B/AM Series ■ Pin Connection ● Treatment of Unused Pin Leaving unused input pins unconnected can cause abnormal operation or latch-up, leaving to permanent damage. Unused input pins should always be pulled up or down through resistance of at least 2 kΩ. Any unused input/output pins may be set to output mode and left open, or set to input mode and treated the same as unused input pins. If there is unused output pin, make it open. ● Treatment of Power Supply Pins on A/D Converter Connect to be AVCC = VCC and AVSS = VSS even if the A/D converter is not in use. Noise riding on the AVCC pin may cause accuracy degradation. Therefore, it is recommended to connect approx. 0.1 μF ceramic capacitor as a bypass capacitor between AVCC and AVSS pins in the vicinity of this device. ● Power Supply Pins In products with multiple VCC or VSS pins, the pins of the same potential are internally connected in the device to avoid abnormal operations including latch-up. However, you must connect the pins to external power supply and a ground line to lower the electro-magnetic emission level, to prevent abnormal operation of strobe signals caused by the rise in the ground level, and to conform to the total output current rating. Moreover, connect the current supply source with the VCC and VSS pins of this device at the low impedance. It is also advisable to connect a ceramic bypass capacitor of approximately 0.1 μF between VCC and VSS pins near this device. ● Mode Pin (MOD) Connect the mode pin directly to VCC or VSS. To prevent the device unintentionally entering test mode due to noise, lay out the printed circuit board so as to minimize the distance from the mode pins to VCC or VSS and to provide a low-impedance connection. ● C pin Use a ceramic capacitor or a capacitor with equivalent frequency characteristics. A bypass capacitor of VCC pin must have a capacitance value higher than CS. For connection of smoothing capacitor CS, see Figure 2.1-1. Figure 2.1-1 C pin connection diagram C CS CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 23 CHAPTER 2 HANDLING DEVICES 2.1 Device Handling Precautions MB95100B/AM Series ● NC Pins Any pins marked "NC" must be left open. ● Analog Power Supply Always set the same potential to AVCC and VCC. When VCC > AVCC, the current may flow through analog input pins (AN). 24 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 3 MEMORY SPACE This chapter describes memory space. 3.1 Memory Space 3.2 Memory Map Code: CM26-00126-1E Page: 29 CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 25 CHAPTER 3 MEMORY SPACE 3.1 Memory Space 3.1 MB95100B/AM Series Memory Space The memory space on the F2MC-8FX family is 64 K bytes, divided into I/O, extended I/O, data, and program areas. The memory space includes specialpurpose areas such as the general-purpose registers and vector table. ■ Configuration of Memory Space ● I/O area (addresses: 0000H to 007FH) • This area contains the control registers and data registers for on-chip peripheral resources. • As the I/O area is allocated as part of memory space, it can be accessed in the same way as for memory. It can also be accessed at higher speed by using direct addressing instructions. ● Extended I/O area (addresses: 0F80H to 0FFFH) • This area contains the control registers and data registers for on-chip peripheral resources. • As the extended I/O area is allocated as part of memory space, it can be accessed in the same way as for memory. ● Data area • Static RAM is incorporated as the internal data area. • The internal RAM capacity is different depending on the product. • The area from 0080H to 047FH is an extended direct addressing area. It can be accessed at higher speed by direct addressing instructions with the direct bank pointer set (initial value: 0080H - 00FFH). • Addresses 0100H to 01FFH can be used as a general-purpose register area. ● Program area • ROM is incorporated as the internal program area. • The internal ROM capacity is different depending on the model. • Addresses FFC0H to FFFFH are used as the vector table. 26 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 3 MEMORY SPACE 3.1 Memory Space MB95100B/AM Series ■ Memory Map Figure 3.1-1 Memory Map 0000H I/O area 0080H 0100H Register banks (General-purpose register area) Direct addressing area Extended direct addressing area 0200H 047FH Data area 0F80H Extended I/O area 0FFFH Program area FFC0H FFFFH CM26-10112-4E Vector table area FUJITSU MICROELECTRONICS LIMITED 27 CHAPTER 3 MEMORY SPACE 3.1 Memory Space 3.1.1 MB95100B/AM Series Areas for Specific Applications The general-purpose register area and vector table area are used for the specific applications. ■ General-purpose Register Area (Addresses: 0100H to 01FFH) • This area contains the auxiliary registers used for 8-bit arithmetic or transfer operations. • As the area is allocated as part of the RAM area, it can also be used as ordinary RAM. • When the area is used as general-purpose registers, general-purpose register addressing enables higher-speed access using short instructions. For details, see Section "5.1.1 Register Bank Pointer (RP)" and Section "5.2 General-purpose Registers". ■ Vector Table Area (Addresses: FFC0H to FFFFH) • This area is used as the vector table for vector call instructions (CALLV), interrupts, and resets. • The vector table area is allocated at the top of the ROM area. At the individual addresses in the vector table, the start addresses of their respective service routines are set as data. Table 8.1-1 lists the vector table addresses to be referenced for vector call instructions, interrupts, and for resets. For details, see "CHAPTER 8 INTERRUPTS", "CHAPTER 7 RESET", and "■Special Instruction ●CALLV #vct" in Appendix "E.2 Special Instruction". 28 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 3 MEMORY SPACE 3.2 Memory Map MB95100B/AM Series 3.2 Memory Map This section gives a memory map of this series. ■ Memory Map Figure 3.2-1 Memory Map MB95FV100D-101 MB95FV100D-103 MB95F108BS/F108BW MB95D108BS/D108BW MB95F104AMS/F104ANS/F104AJS MB95F106AMS/F106ANS/F106AJS MB95F108AMS/F108ANS/F108AJS MB95F104AMW/F104ANW/F104AJW MB95F106AMW/F106ANW/F106AJW MB95F108AMW/F108ANW/F108AJW 0000H 0000H I/O 0080H 0000H I/O 0080H Registers 0200H 0100H 0200H 0100H 0F80H 1000H 0080H Registers Registers 0880H Access barred 0F80H Extended I/O Address #2 RAM 2K bytes 0100H 0200H 0880H Access barred Extended I/O I/O RAM 2K bytes 0200H Address #1 0F80H 0000H 0080H Registers MB95107B I/O RAM RAM 3.75K bytes 0100H MB95108AM Access barred 0F80H Extended I/O 1000H Extended I/O 1000H Access barred Flash 60K bytes Flash 60K bytes* ROM 60K bytes 4000H ROM 48K bytes* FFFFH Flash ROM FFFFH FFFFH FFFFH : Flash memory : Mask ROM CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 29 CHAPTER 3 MEMORY SPACE 3.2 Memory Map MB95100B/AM Series Flash memory* RAM Address #1 Address #2 16K bytes 512 bytes 0280H C000H 32K bytes 1K byte 0480H 8000H 60K bytes 2K bytes 0880H 1000H MB95F104AMS/F104ANS/F104AJS MB95F104AMW/F104ANW/F104AJW MB95F106AMS/F106ANS/F106AJS MB95F106AMW/F106ANW/F106AJW MB95F108BS/F108BW MB95D108BS/D108BW MB95F108AMS/F108ANS/F108AJS MB95F108AMW/F108ANW/F108AJW *: MB95D108BS and MB95D108BW have the built-in FRAM. 30 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 4 MEMORY ACCESS MODE This chapter describes the memory access mode. 4.1 Memory Access Mode Code: CM26-00102-1E CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 31 CHAPTER 4 MEMORY ACCESS MODE 4.1 Memory Access Mode 4.1 MB95100B/AM Series Memory Access Mode The memory access mode supported by this series is only single-chip mode. ■ Single-chip Mode Single-chip mode uses only internal RAM and ROM. External bus access is not used. ● Mode data Mode data is used to determine the memory access mode of the CPU. The mode data address is fixed as FFFDH (the value of FFFCH can be any value). Be sure to set the mode data of internal ROM to "00H" to select single-chip mode. Figure 4.1-1 Mode Data Settings Address FFFDH bit7 bit6 bit5 bit4 bit3 Data 00H Other than 00H bit2 bit1 bit0 Operation Select single-chip mode. Reserved. Do not make any setting. After a reset, the CPU fetches mode data first. The CPU then fetches the reset vector after the mode data. The instruction is performed from the address set by reset vector. ● Mode pin (MOD) Be sure to set the mode pin (MOD) to VSS. 32 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 5 CPU This chapter describes functions and operations of the CPU. 5.1 Dedicated Registers 5.2 General-purpose Registers 5.3 Placement of 16-bit Data in Memory Code: CM26-00103-1E CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 33 CHAPTER 5 CPU 5.1 Dedicated Registers 5.1 MB95100B/AM Series Dedicated Registers The CPU has its dedicated registers:the program counter (PC), two arithmetic registers (A and T), three address pointers (IX, EP, and SP), and the program status (PS) register. Each of the registers is 16 bits long.The PS register consists of the register bank pointer (RP), direct pointer (DP), and condition code register (CCR). ■ Configuration of Dedicated Registers The dedicated registers in the CPU are seven 16-bit registers. Accumulator (A) and temporary accumulator (T) can also be used with only their lower eight bits in service. Figure 5.1-1 shows the configuration of the dedicated registers. Figure 5.1-1 Configuration of Dedicated Registers Initial value 16bits FFFDH PC : Program counter Contains the address of the current instruction. 0000H AH AL : Accumulator (A) Temporary storage register for arithmetic operation and transfer. 0000H TH TL : Temporary accumulator (T) Performs an operation with accumulator. 0000H IX : Index register Register containing an index address. 0000H EP : Extra pointer Pointer containing a memory address. 0000H SP : Stack pointer Contains the current stack location. 0030H RP DP CCR : Program status Register consisting of the register bank pointer, direct bank pointer, and condition code register. PS ■ Functions of Dedicated Registers ● Program counter (PC) The program counter is a 16-bit counter which contains the memory address of the instruction currently executed by the CPU. The program counter is updated whenever an instruction is executed or an interrupt or reset occurs. The initial value set immediately after a reset is the mode data read address (FFFDH). ● Accumulator (A) The accumulator is a 16-bit register for arithmetic operation. It is used for a variety of arithmetic and transfer operations of data in memory or data in other registers such as the temporary accumulator (T). The data in the accumulator can be handled either as word (16-bit) data or byte (8-bit) data. For byte-length arithmetic and transfer operations, only the lower eight bits (AL) of the accumulator are used with the upper eight bits (AH) left unchanged. The initial value after a reset is "0000H". 34 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 5 CPU 5.1 Dedicated Registers ● Temporary accumulator (T) The temporary accumulator is an auxiliary 16-bit register for arithmetic operation. It is used to perform arithmetic operations with the data in the accumulator (A). The data in the temporary accumulator is handled as word data for word-length (16-bit) operations with the accumulator (A) and as byte data for byte-length (8-bit) operations. For byte-length operations, only the lower eight bits (TL) of the temporary accumulator are used and the upper eight bits (TH) are not used. When a MOV instruction is used to transfer data to the accumulator (A), the previous contents of the accumulator are automatically transferred to the temporary accumulator. When transferring byte-length data, the upper eight bits (TH) of the temporary accumulator remain unchanged. The initial value after a reset is "0000H". ● Index register (IX) The index register is a 16-bit register used to hold the index address. The index register is used with a single-byte offset (-128 to +127). The offset value is added to the index address to generate the memory address for data access. The initial value after a reset is "0000H". ● Extra pointer (EP) The extra pointer is a 16-bit register which contains the value indicating the memory address for data access. The initial value after a reset is "0000H". ● Stack pointer (SP) The stack pointer is a 16-bit register which holds the address referenced when an interrupt or subroutine call occurs and by the stack push and pop instructions. During program execution, the value of the stack pointer indicates the address of the most recent data pushed onto the stack. The initial value after a reset is "0000H". ● Program status (PS) The program status is a 16-bit control register. The upper eight bits make up the register bank pointer (RP) and direct bank pointer (DP); the lower eight bits make up the condition code register (CCR). In the upper eight bits, the upper five bits make up the register bank pointer used to contain the address of the general-purpose register bank. The lower three bits make up the direct bank pointer which locates the area to be accessed at high speed by direct addressing. The lower eight bits make up the condition code register (CCR) which consists of flags that represent the state of the CPU. The instructions that can access the program status are MOVW A,PS or MOVW PS,A. The register bank pointer (RP) and direct bank pointer (DP) in the program status register can also be read from or written to by accessing the mirror address (0078H). Note that the condition code register (CCR) is part of the program status register and cannot be accessed independently. Refer to the "F2MC-8FX Programming Manual" for details on using the dedicated registers. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 35 CHAPTER 5 CPU 5.1 Dedicated Registers 5.1.1 MB95100B/AM Series Register Bank Pointer (RP) The register bank pointer (RP) in bits 15 to 11 of the program status (PS) register contains the address of the general-purpose register bank that is currently in use and is translated into a real address when general-purpose register addressing is used. ■ Configuration of Register Bank Pointer (RP) Figure 5.1-2 shows the configuration of the register bank pointer. Figure 5.1-2 Configuration of Register Bank Pointer RP DP CCR bit15 bit14 bit13 bit12 bit11 bit10 bit9 PS R4 R3 R2 R1 R0 bit8 DP2 DP1 DP0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 H I IL1 IL0 N Z V C RP Initial value 00000B The register bank pointer contains the address of the register bank currently being used. The content of the register bank pointer is translated into a real address according to the rule shown in Figure 5.1-3. Figure 5.1-3 Rule for Translation into Real Addresses in General-purpose Register Area Fixed value Generated address Op-code: Lower RP: Upper "0" "0" "0" "0" "0" "0" "0" "1" R4 R3 R2 R1 R0 b2 b1 b0 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ A8 A7 A6 A5 A4 A3 A2 A1 A0 A15 A14 A13 A12 A11 A10 A9 The register bank pointer specifies the register bank used as general-purpose registers in the RAM area. There are a total of 32 register banks. The current register bank is specified by setting a value between 0 and 31 in the upper five bits of the register bank pointer. Each register bank has eight 8-bit general-purpose registers which are selected by the lower three bits of the op-code. The register bank pointer allows the space from "0100H" to up to "01FFH" to be used as a general-purpose register area. Note, however, that the available area is limited depending on the product. The initial value after a reset is "0000H". ■ Mirror Address for Register Bank and Direct Bank Pointers The register bank pointer (RP) and direct bank pointer (DP) can be written to and read from by accessing the program status (PS) register using the "MOVW A,PS" and "MOVW PS,A" instructions, respectively. They can also be written to and read from directly by accessing mirror address "0078H" of the register bank pointer. 36 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 5 CPU 5.1 Dedicated Registers MB95100B/AM Series 5.1.2 Direct Bank Pointer (DP) The direct bank pointer (DP) in bits 10 to 8 of the program status (PS) register specifies the area to be accessed by direct addressing. ■ Configuration of Direct Bank Pointer (DP) Figure 5.1-4 shows the configuration of the direct bank pointer. Figure 5.1-4 Configuration of Direct Bank Pointer RP DP bit15 bit14 bit13 bit12 bit11 bit10 bit9 PS R4 R3 R2 R1 R0 CCR bit8 DP2 DP1 DP0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 H I IL1 IL0 N Z V C DP Initial value 000B The areas from 0000H to 007FH and 0080H to 047FH can be accessed by direct addressing. Access to 0000H to 007FH is specified with an operand regardless of the value in the direct bank pointer. Access to 0080H to 047FH is specified with the value in the value of the direct bank pointer and the operand. Table 5.1-1 shows the relationship between direct bank pointer (DP) and access area; Table 5.1-2 lists the direct addressing instructions. Table 5.1-1 Direct Access Pointer and Access Area Direct bank pointer (DP) [2:0] Operand-specified dir Access area XXXB (It does not affect the mapping.) 0000H to 007FH 0000H to 007FH 000B (Initial value) 0080H to 00FFH 001B 0100H to 017FH 010B 0180H to 01FFH 011B 100B CM26-10112-4E 0080H to 00FFH 0200H to 027FH 0280H to 02FFH 101B 0300H to 037FH 110B 0380H to 03FFH 111B 0400H to 047FH FUJITSU MICROELECTRONICS LIMITED 37 CHAPTER 5 CPU 5.1 Dedicated Registers MB95100B/AM Series Table 5.1-2 Direct Address Instruction List Applicable Instruction CLRB dir:bit SETB dir:bit BBC dir:bit,rel BBS dir:bit,rel MOV A,dir CMP A,dir ADDC A,dir SUBC A,dir MOV dir,A XOR A,dir AND A,dir OR A,dir MOV dir,#imm CMP dir,#imm MOVW A,dir MOVW dir,A 38 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 5 CPU 5.1 Dedicated Registers MB95100B/AM Series 5.1.3 Condition Code Register (CCR) The condition code register (CCR) in the lower eight bits of the program status (PS) register consists of the bits (H, N, Z, V, and C) containing information about the arithmetic result or transfer data and the bits (I, IL1, and IL0) used to control the acceptance of interrupt requests. ■ Configuration of Condition Code Register (CCR) Figure 5.1-5 Configuration of Condition Code Register RP DP bit15 bit14 bit13 bit12 bit11 bit10 bit9 PS R4 R3 R2 R1 R0 CCR bit8 DP2 DP1 DP0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 H I IL1 IL0 N Z V C CCR Initial value 00110000B Half carry flag Interrupt enable flag Interrupt level bits Negative flag Zero flag Overflow flag Carry flag The condition code register is a part of the program status (PS) register and therefore cannot be accessed independently. ■ Bits Result Information Bits ● Half carry flag (H) This flag is set to "1" when a carry from bit3 to bit4 or a borrow from bit4 to bit3 occurs as the result of an operation. Otherwise, the flag is set to "0". Do not use this flag for any operation other than addition and subtraction as the flag is intended for decimal-adjusted instructions. ● Negative flag (N) This flag is set to "1" when the value of the most significant bit is "1" as the result of an operation and set to "0" if the value is "0". ● Zero flag (Z) This flag is set to "1" when the result of an operation is "0" and set to "0" otherwise. ● Overflow flag (V) This flag indicates whether an operation has resulted in an overflow, assuming the operand used for the operation as an integer represented by a two's complement. The flag is set to "1" when an overflow occurs and set to "0" otherwise. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 39 CHAPTER 5 CPU 5.1 Dedicated Registers MB95100B/AM Series ● Carry flag (C) This flag is set to "1" when a carry from bit7 or a borrow to bit7 occurs as the result of an operation. Otherwise, the flag is set to "0". When a shift instruction is executed, the flag is set to the shift-out value. Figure 5.1-6 shows how the carry flag is updated by a shift instruction. Figure 5.1-6 Carry Flag Updated by Shift Instruction • Left-shift (ROLC) • Right-shift (RORC) bit7 bit0 bit7 bit0 C C ■ Interrupt Acceptance Control Bits ● Interrupt enable flag (I) When this flag is set to "1", interrupts are enabled and accepted by the CPU. When this flag is set to "0", interrupts are disabled and rejected by the CPU. The initial value after a reset is "0". The SETI and CLRI instructions set and clear the flag to "1" and "0", respectively. ● Interrupt level bits (IL1, IL0) These bits indicate the level of the interrupt currently accepted by the CPU. The interrupt level is compared with the value of the interrupt level setting register (ILR0 to ILR5) that corresponds to the interrupt request (IRQ0 to IRQ23) of each peripheral resource. The CPU services an interrupt request only when its interrupt level is smaller than the value of these bits with the interrupt enable flag set (CCR: I = 1). Table 5.1-3 lists interrupt level priorities. The initial value after a reset is "11B". Table 5.1-3 Interrupt Levels IL1 IL0 Interrupt Level Priority 0 0 0 High 0 1 1 1 0 2 1 1 3 Low (No interrupt) The interrupt level bits (IL1, IL0) are usually "11B" with the CPU not servicing an interrupt (with the main program running). For details on interrupts, see Section "8.1 Interrupts". 40 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 5 CPU 5.2 General-purpose Registers MB95100B/AM Series 5.2 General-purpose Registers The general-purpose registers are memory blocks consisting of eight 8-bit registers per bank. A total of up to 32 register banks can be used. The register bank pointer (RP) is used to specify the register bank. Register banks are useful for interrupt handling, vector call processing, and subroutine calls. ■ Configuration of General-purpose Registers • The general-purpose registers are 8-bit registers and are located in register banks in the general-purpose register area (in RAM). • Up to 32 banks can be used, where each bank consists of eight registers (R0 to R7). • The register bank pointer (RP) specifies the register bank currently being used and the lower three bits of the op-code specify general-purpose register 0 (R0) to 7 (R7). Figure 5.2-1 shows the configuration of the register banks. Figure 5.2-1 Configuration of Register Banks 8 bits 1F8H This address = 0100H + 8 × (RP) Address 100H R0 R0 R0 R1 R2 R3 R4 R5 R6 107H R1 R2 R3 R4 R5 R6 R7 R1 R2 R3 R4 R5 R6 R7 1FFH Bank 31 R7 Bank 0 32 banks The number of , banks available is restricted by the RAM capacity available. Memory area For information on the general-purpose register area available on each model, see Section "3.1.1 Areas for Specific Applications". CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 41 CHAPTER 5 CPU 5.2 General-purpose Registers MB95100B/AM Series ■ Features of General-purpose Registers There are the following features in the general-purpose registers: • High-speed access to RAM using short instructions (general-purpose register addressing). • Blocks of register banks facilitating data backup and division by function unit. General-purpose register banks can be allocated exclusively for specific interrupt service routines or vector call (CALLV #0 to #7) processing routines. An example is always using the fourth register bank for the second interrupt. Only specifying a dedicated register bank at the beginning of an interrupt service routine automatically saves the general-purpose registers before the interrupt. This eliminates the need for pushing general-purpose register data onto the stack, allowing the CPU to accept interrupts at high speed. Notes: When coding an interrupt service routine, be careful not to change the value of the interrupt level bits (CCR: IL1, IL0) in the condition code register when specifying the register bank by updating the register bank pointer (RP) in that routine. Perform the programming by using either of them. • Read the interrupt level bits and save their value before writing to the RP. • Directly write to the RP mirror address "0078H" to update the RP. 42 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 5 CPU 5.3 Placement of 16-bit Data in Memory MB95100B/AM Series 5.3 Placement of 16-bit Data in Memory This section describes how 16-bit data is stored in memory. ■ Placement of 16-bit Data in Memory ● State of 16-bit data stored in RAM When you write 16-bit data to memory, the upper byte of the data is stored at a smaller address and the lower byte is stored at the next address. When you read 16-bit data, it is handled in the same way. Figure 5.3-1 shows how 16-bit data is placed in memory. Figure 5.3-1 Placing 16-bit Data in Memory Before execution After execution Memory Memory A 1234H A 1234H 12H 34H ● State of operand-specified 16-bit data In the same way, even when the operands in an instruction specifies 16-bit data, the upper byte is stored at the address closer to the op-code (instruction) and the lower byte is stored at the next address. That is true whether the operands are either memory addresses or 16-bit immediate data. Figure 5.3-2 shows how 16-bit data in an instruction is placed. Figure 5.3-2 Storing 16-bit Data in Instruction [Example] Extended address 16-bit immediate data Assemble Extended address 16-bit immediate data ● State of 16-bit data in the stack When 16-bit register data is pushed onto the stack upon an interrupt, the upper byte is stored at a lower address in the same way. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 43 CHAPTER 5 CPU 5.3 Placement of 16-bit Data in Memory 44 MB95100B/AM Series FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 6 CLOCK CONTROLLER This chapter describes the functions and operations of the clock controller. 6.1 Overview of Clock Controller 6.2 Oscillation Stabilization Wait Time 6.3 System Clock Control Register (SYCC) 6.4 PLL Control Register (PLLC) 6.5 Oscillation Stabilization Wait Time Setting Register (WATR) 6.6 Standby Control Register (STBC) 6.7 Clock Mode 6.8 Operations in Low-power Consumption Modes (Standby Modes) 6.9 Clock Oscillator Circuits 6.10 Overview of Prescaler 6.11 Configuration of Prescaler 6.12 Operating Explanation of Prescaler 6.13 Notes on Use of Prescaler Code: CM26-00123-1E Page: 78, 81, 82, 84 CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 45 CHAPTER 6 CLOCK CONTROLLER 6.1 Overview of Clock Controller 6.1 MB95100B/AM Series Overview of Clock Controller The F2MC-8FX family has a built-in clock controller that optimizes its power consumption. It includes dual clock product supporting both of the main clock and sub clock and single clock product supporting only the main clock. The clock controller enables/disables clock oscillation, enables/disables clock supply to the internal circuitry, selects the clock source, and controls the PLL and frequency divider circuits. ■ Overview of Clock Controller The clock controller enables/disables clock oscillation, enables/disables clock supply to the internal circuitry, selects the clock source, and controls the PLL and frequency divider circuits. The clock controller controls the internal clock according to the clock mode, standby mode settings and the reset operation. The current clock mode selects the internal operating clock and the standby mode selects whether to enable or disable clock oscillation and signal supply. The clock controller selects the optimum power consumption and features depending on the combination of clock mode and standby mode. Dual clock product have four different source clocks: a main clock, which is the main oscillation clock divided by two, a sub clock, which is the sub oscillation clock divided by two, a main PLL clock, which is the main oscillation clock multiplied by the PLL multiplier and a sub PLL clock, which is the sub oscillation clock multiplied by the PLL multiplier. Single clock product have two different source clocks: a main clock, which is the main oscillation clock divided by two; and a main PLL clock, which is the main oscillation clock multiplied by the PLL multiplier. 46 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 6 CLOCK CONTROLLER 6.1 Overview of Clock Controller MB95100B/AM Series ■ Block Diagram of the Clock Controller Figure 6.1-1 shows the block diagram of the clock controller. Figure 6.1-1 Clock Controller Block Diagram Standby control register (STBC) PLL controller register (PLLC) MPEN MPMC1 MPMC0 MPRDY SPEN SPMC1 SPMC0 SPRDY STP SLP SPL SRST TMD − − − Stop signal Sleep signal Clock for watch prescaler System clock selector Sub clock oscillator circuit (2) FCL Divide by 2 (4) Sub PLL (6) oscillator circuit Sub clock control Prescaler (7) No division Divide by 4 Divide by 8 Main clock oscillator circuit (1) FCH (3) Divide by 16 Divide by 2 Supply to CPU (8) Clock control circuit Supply to peripheral resources Main PLL (5) oscillator circuit Main clock control Watch or time-base timer Source clock selection control circuit Clock for time-base timer From time-base timer 214 /F CH to 21 /F CH From watch prescaler 215 /F CL to 21 /F CL Oscillation stabilization wait circuit SCM1 SCM0 SCS1 SCS0 SRDY SUBS DIV1 DIV0 System clock control register (SYCC) (1): Main clock (FCH) (2): Sub clock (FCL) (3): Main clock (4): Sub clock CM26-10112-4E SWT3 SWT2 SWT1 SWT0 MWT3 MWT2 MWT1 MWT0 Oscillation stabilization wait time setting register (WATR) (5): Main PLL clock (6): Sub PLL clock (7): Source clock (8): Machine clock (MCLK) FUJITSU MICROELECTRONICS LIMITED 47 CHAPTER 6 CLOCK CONTROLLER 6.1 Overview of Clock Controller MB95100B/AM Series The clock controller consists of the following blocks: ● Main clock oscillator circuit This block is the oscillator circuit for the main clock. ● Sub clock oscillator circuit (Dual clock product) This block is the oscillator circuit for the sub clock. ● Main PLL oscillator circuit This block is the oscillator circuit for the main PLL. ● Sub PLL oscillator circuit (Dual clock product) This block is the oscillator circuit for the sub PLL clock. ● System clock selector This block selects one of the four different source clocks for main clock, sub clock, main PLL clock, and sub PLL clock depending on the clock mode. The prescaler frequency-divides the selected source clock into the machine clock. It is supplied to the clock control circuit. ● Clock control circuit This block controls the supply of the machine clock to the CPU and each peripheral resource according to the standby mode or oscillation stabilization wait time. ● Oscillation stabilization wait circuit This block outputs the oscillation stabilization wait time signal for each clock from 14 types of main clock oscillation stabilization signals created by the time-base timer and 15 types of sub clock oscillation stabilization signals created by the watch prescaler. ● System clock control register (SYCC) This register is used to control current clock mode display, clock mode selection, machine clock divide ratio selection, and sub clock oscillation in main clock mode and main PLL clock mode. ● Standby control register (STBC) This register is used to control the transition from RUN state to standby mode, the setting of pin states in stop mode, time-base timer mode, or watch mode, and the generation of software resets. ● PLL control register (PLLC) This register is used to enable/disable the oscillation of the main PLL and sub PLL clocks, set the multiplier, and to indicate the stability of PLL oscillation. ● Oscillation stabilization wait time setting register (WATR) This register is used to set the oscillation stabilization wait time for the main clock and sub clock. 48 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 6 CLOCK CONTROLLER 6.1 Overview of Clock Controller MB95100B/AM Series ■ Clock Mode There are four clock modes available: main clock mode, main PLL clock mode, sub clock mode, and sub PLL clock mode. Table 6.1-1 shows the relationships between the clock modes and the machine clock (operating clock for the CPU and peripheral resources). Table 6.1-1 Clock Modes and Machine Clock Selection Clock Mode Main clock mode Main PLL clock mode Machine Clock The machine clock is generated from the main clock (main clock divided by 2). The machine clock is generated from the main PLL clock (main clock multiplied by the PLL multiplier). Sub clock mode (Dual clock product only) The machine clock is generated from the sub clock (sub clock divided by 2). Sub PLL clock mode (Dual clock product only) The machine clock is generated from the sub PLL clock (sub clock multiplied by the PLL multiplier). In any of the clock modes, the selected clock can also be frequency-divided. Additionally, in modes using a PLL clock, a multiplier for the clock frequency can also be set. ■ Peripheral Resources Not Affected by Clock Mode Note that the peripheral resources listed in the table below are not affected by the clock mode, division, and PLL multiplier settings. Table 6.1-2 lists the peripheral resources not affected by the clock mode. Table 6.1-2 Peripheral Resources Not Affected by Clock Mode Peripheral Function Operating Clock (21/FCH: Time-base timer Main clock Watchdog timer Main clock (with time-base timer output selected) Sub clock (with watch prescaler output selected) (dual clock product only) main clock divided by 2) Watch prescaler (Dual clock product only) Sub clock (21/FCL: sub clock divided by 2) Watch counter (Dual clock product only) Sub clock (watch prescaler output) For some peripheral resources other than those listed above, it may be possible to select the time-base timer or watch prescaler output as a count clock. Check the description of each peripheral resource for details. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 49 CHAPTER 6 CLOCK CONTROLLER 6.1 Overview of Clock Controller MB95100B/AM Series ■ Standby Modes The clock controller selects whether to enable or disable clock oscillation and clock supply to internal circuitry depending on each standby mode. With the exception of time-base timer mode and watch mode, the standby mode can be set independently of the clock mode. Table 6.1-3 shows the relationships between standby modes and clock supply states. Table 6.1-3 Standby Modes and Clock Supply States 50 Standby Mode Clock Supply States Sleep mode Stops clock supply to the CPU and watchdog timer. As a result, the CPU stops operation, but other peripheral resources continue operating. Time-base timer mode Supplies clock signals only to the time-base timer, watch prescaler, and watch counter while stopping clock supply to other circuits. As a result, all the functions other than the time-base timer, watch prescaler, watch counter, external interrupt, and low-voltage detection reset (option) are stopped. Time-base timer mode is only the standby mode for main clock mode or main PLL clock mode. Watch mode (Dual clock product only) Stops main clock oscillation, but supplies clock signals only to the watch prescaler and watch counter while stopping clock supply to other circuits. As a result, all the functions other than the watch prescaler, watch counter, external interrupt, and low-voltage detection reset (option) are stopped. Watch mode is only the standby mode for sub clock mode or sub PLL clock mode. Stop mode Stops main clock oscillation and sub clock oscillation and stops the supply of all clock signals. As a result, all the functions other than external interrupt and low-voltage detection reset (option) are stopped. FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 6 CLOCK CONTROLLER 6.1 Overview of Clock Controller MB95100B/AM Series ■ Combinations of Clock Mode and Standby Mode Table 6.1-4 lists the combinations of clock mode and standby mode and their respective operating states of internal circuits. Table 6.1-4 Combinations of Standby Mode and Clock Mode and Internal Operating States RUN Time-base TIMER Sleep Watch (Dual clock product) Stop Function Main clock mode Main PLL clock mode Sub Sub PLL clock clock mode mode (Dual (Dual Main clock clock clock product) product) mode Main PLL clock mode Sub Sub PLL clock clock mode mode (Dual (Dual Main clock clock clock product) product) mode Main PLL clock mode Sub Sub PLL clock clock mode mode (Dual (Dual clock clock product) product) Main PLL clock mode Sub PLL clock mode (Dual clock product) Main clock Operating Stopped Operating Stopped Operating Stopped Stopped Stopped Main PLL clock Stopped Operat*1 ing Stopped Stopped Operat*1 ing Stopped Stopped*1 Stopped Stopped Stopped Sub clock Operating*2 Operating Operating*2 Operating Operating*2 Operating Sub PLL clock Stopped*3 Stopped Operat*3 ing Stopped*3 Stopped Operat*3 ing Stopped*3 CPU Operating Operating Stopped Stopped Stopped Stopped Operating Operating Value held Value held Value held Value held Value held Value held I/O port Operating Operating Output held Output held Output held/ Hi-Z Output held/ Hi-Z Output held/ Hi-Z Output held/ Hi-Z Time-base TIMER Operating Stopped Operating Stopped Operating Stopped Watch Prescaler Operating*2 Operating Operating*2 Operating Operating*2 Operating Watch counter Operating*2 Operating Operating*2 Operating Operating*2 Operating External interrupt Operating Operating Operating Operating Operating Operating Watchdog timer Operating Operating Stopped Stopped Stopped Stopped Low-voltage detection reset Operating Operating Operating Operating Operating Operating Other peripheral functions Operating Operating Operating Operating Stopped Stopped ROM RAM Operating*2 Stopped Stopped Operat- Stopped* Stopped *3 ing 3 Stopped Stopped Stopped Stopped Operating*2 Operat- Stopped ing*4 Stopped Operating Operating Stopped Stopped Operating Operating Stopped Stopped *1: Operates when the main PLL clock oscillation enable bit in the PLL control register (PLLC:MPEN) is set to "1". *2: Stops when the sub clock oscillation stop bit in the system clock control register (SYCC:SUBS) is set to "1". *3: Operates when the sub PLL clock oscillation enable bit in the PLL control register (PLLC:SPEN) is set to "1". *4: Watch counter keeps counting and no interrupts occur. When the sub clock oscillation stop bit in the system clock control register (SYCC: SUBS) is set to "1", watch counter stops. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 51 CHAPTER 6 CLOCK CONTROLLER 6.2 Oscillation Stabilization Wait Time 6.2 MB95100B/AM Series Oscillation Stabilization Wait Time The oscillation stabilization wait time is the time after the oscillator circuit stops oscillation until the oscillator resumes its stable oscillation at its natural frequency. The clock controller obtains the oscillation stabilization wait time by counting a set number of oscillation clock cycles to prevent clock supply to internal circuits. ■ Oscillation Stabilization Wait Time The clock controller obtains the oscillation stabilization wait time followed by the initiation of oscillation by counting a set number of oscillation clock cycles to prevent clock supply to internal circuits. When a state transition request for starting oscillation when the power is turned on or for restarting halted oscillation at a clock mode change by a reset, an interrupt in standby mode, or by software, the clock controller automatically waits until the oscillation stabilization wait time for the main clock or sub clock has passed and then causes transition to the next state. Figure 6.2-1 shows oscillation immediately after being started. Figure 6.2-1 Behavior of Oscillator Immediately after Starting Oscillation Oscillation time of oscillator Oscillation stabilization wait time ( Normal operation Operation after returning from stop mode or a reset ) X1 Oscillation stabilized Oscillation started The main clock oscillation stabilization wait time is counted by using the time-base timer. The sub clock oscillation stabilization wait time is counted by using the watch prescaler. The count can be set in the oscillation stabilization wait time setting register (WATR). Set it in keeping with the oscillator characteristics. When a power-on reset occurs, the oscillation stabilization wait time is fixed to the initial value. For masked ROM products, however, you can specify the initial value of the oscillation stabilization wait time when ordering masked ROM. Table 6.2-1 shows the length of oscillation stabilization wait time. Table 6.2-1 Oscillation Stabilization Wait Time Clock Factor Main clock Sub clock (Dual clock product) Oscillation stabilization wait time Power-on reset Initial value: (214-2)/FCH, where FCH is the main clock frequency. (Specified when ROM is ordered for mask ROM products) Other than power-on reset Register setting value (WATR:MWT3, MWT2, MWT1, MWT0) Power-on reset Initial value: (215-2)/FCL, where FCL is the sub clock frequency. Other than power-on reset Register setting value (WATR:SWT3, SWT2, SWT1, SWT0) After the oscillation stabilization wait time of the main clock ends, the oscillation stabilization wait time of sub clock measurement is begun. 52 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 6 CLOCK CONTROLLER 6.2 Oscillation Stabilization Wait Time MB95100B/AM Series ■ PLL Clock Oscillation Stabilization Wait Time As with the oscillation stabilization wait time of the oscillator, the clock controller automatically waits for the PLL oscillation stabilization wait time to elapse after a request for state transition from PLL oscillation stopped state to oscillation start is generated via an interrupt in standby mode or a change of clock mode by software. Note that the PLL clock oscillation stabilization wait time changes according to the PLL startup timing. Table 6.2-2 shows the PLL oscillation stabilization wait time. Table 6.2-2 PLL Oscillation Stabilization Wait Time PLL Oscillation Stabilization Wait Time Remarks Main PLL clock Sub PLL clock (Dual clock product) Minimum time Maximum time 2 /FCH ✕ 2 2 /FCH ✕ 3 11 28/FCL ✕2 11 28/FCL ✕3 • Oscillation stabilization wait time is taken while 211/FCH is counted twice (minimum) or three times (maximum). • FCH represents the main clock frequency. • Oscillation stabilization wait time is taken while 28/FCL is counted twice (minimum) or three times (maximum). • FCL represents the sub clock frequency. ■ Oscillation Stabilization Wait Time and Clock Mode/Standby Mode Transition The clock controller automatically waits for the oscillation stabilization wait time to elapse as needed when the operating state causes a transition. Depending on the state transition, however, the clock controller does not always wait for the oscillation stabilization wait time. For details on state transitions, see Sections "6.7 Clock Mode" and "6.8 Operations in Lowpower Consumption Modes (Standby Modes)". CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 53 CHAPTER 6 CLOCK CONTROLLER 6.3 System Clock Control Register (SYCC) 6.3 MB95100B/AM Series System Clock Control Register (SYCC) The system clock control register (SYCC) is used to indicate and switch the current clock mode, select the machine clock divide ratio, and control sub clock oscillation in main clock mode and main PLL clock mode. ■ Configuration of System Clock Control Register (SYCC) Figure 6.3-1 Configuration of System Clock Control Register (SYCC) Address 0007H bit7 bit6 SCM1 SCM0 R/WX R/WX bit5 SCS1 R/W bit4 SCS0 R/W bit3 bit2 SRDY SUBS R/WX R/W DIV1 0 0 1 1 Initial value 1010x011B Machine clock divide ratio selection bits Source clock Source clock / 4 Source clock / 8 Source clock / 16 Sub clock oscillation stop bit Starts sub clock oscillation Stops sub clock oscillation SRDY Sub clock oscillation stability bit Indicates the sub clock oscillation stabilization wait state or sub clock oscillation being stopped Indicates sub clock oscillation being stable 1 54 bit0 DIV0 R/W SUBS 0 1 0 R/W : R/WX : X : : DIV0 0 1 0 1 bit1 DIV1 R/W SCS1 0 0 1 1 SCS0 0 1 0 1 Cock mode selection bits Sub clock mode Sub PLL clock mode Main clock mode Main PLL clock mode SCM1 0 0 1 1 SCM0 0 1 0 1 Clock mode monitor bits Sub clock mode Sub PLL clock mode Main clock mode Main PLL clock mode Readable/writable (Read value is the same as write value) Read only (Readable, writing has no effect on operation) Indeterminate Initial value FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 6 CLOCK CONTROLLER 6.3 System Clock Control Register (SYCC) MB95100B/AM Series Table 6.3-1 Functions of Bits in System Clock Control Register (SYCC) Bit name Function SCM1, SCM0: clock mode monitor bit Indicate the current clock mode. When set to "00B": the bits indicate sub clock mode. When set to "01B": the bits indicate sub PLL clock mode. When set to "10B": the bits indicate main clock mode. When set to "11B": the bits indicate main PLL clock mode. These bits are read-only. Writing has no effect on operation. bit5, bit4 SCS1, SCS0: clock mode select bits Specify the clock mode. When set to "00B": the bits specify transition to sub clock mode. (Dual clock product only) When set to "01B": the bits specify transition to sub PLL clock mode. (Dual clock product only) When set to "10B": the bits specify transition to main clock mode. When set to "11B": the bits specify transition to main PLL clock mode. Once a clock mode has been selected in the SCS1 and SCS0 bits, any attempt to write to them is ignored until the transition to that clock mode is completed. On single clock product, an attempt to write "00B" or "01B" to these bits is ignored, leaving their value unchanged. bit3 Indicates whether sub clock oscillation has become stable. SRDY: • When set to "1", the SRDY bit indicates that the oscillation stabilization wait time for the Sub clock oscillation sub clock has passed. stability bit • When set to "0", the SRDY bit indicates that the clock controller is in the sub clock (Dual clock product oscillation stabilization wait state or that sub clock oscillation has been stopped. only) This bit is read-only. Writing has no effect on operation. On single clock product, the value of these bits is meaningless. bit2 Stops sub clock oscillation in main clock mode or main PLL clock mode. When set to "0": the bit enables sub clock oscillation. When set to "1": the bit stops sub clock oscillation. Note: SUBS: Sub clock oscillation • In sub clock mode or sub PLL clock mode, the sub clock oscillates regardless of the value of this bit, except in stop mode. stop bit (Dual clock product • In main clock mode or main PLL clock mode as well, the sub clock oscillates regardless of only) the value of this bit when sub PLL clock oscillation has been enabled by the PLL clock oscillation enable bit in the PLL control register (PLLC:SPEN). • Do not update the SYCC: SCS1 bit and this bit at the same time. • On single clock product, the value of the bit has no effect on the operation. bit7, bit6 • These bits select the machine clock divide ratio to the source clock. • The machine clock is generated from the source clock according to the divide ratio set by the bits. bit1, bit0 DIV1, DIV0: Machine Clock divide ratio select bits CM26-10112-4E DIV1 DIV0 Machine Clock Divide Ratio Selection Bits SCM1, SCM0 = 10B 0 0 Source clock (No division) Main clock divided by 2 0 1 Source clock/4 Main clock divided by 8 1 0 Source clock/8 Main clock divided by 16 1 1 Source clock/16 Main clock divided by 32 FUJITSU MICROELECTRONICS LIMITED 55 CHAPTER 6 CLOCK CONTROLLER 6.4 PLL Control Register (PLLC) 6.4 MB95100B/AM Series PLL Control Register (PLLC) The PLL control register (PLLC) controls the main PLL clock and sub PLL clock. ■ Configuration of PLL Control Register (PLLC) Figure 6.4-1 Configuration of PLL Control Register (PLLC) Address 0006H Initial value bit7 bit3 bit5 bit1 bit6 bit2 bit4 bit0 00000000 B SPMC0 MPMC0 SPEN SPRDY MPRDY SPMC1 MPMC1 MPEN R /W R/W R/WX R/W R/W R/W R/WX R/W SPRDY 0 1 Sub PLL clock oscillation stability bit Indicates the sub PLL clock oscillation stabilization wait state or sub PLL clock oscillation being stopped Indicates sub PLL clock oscillation being stable SPMC1 SPMC0 0 0 0 1 1 0 1 1 SPEN 0 1 MPRDY 0 1 Sub PLL clock multiplier setting bits Setting prohibited Sub clock × 2 Sub clock × 3 Sub clock × 4 Sub PLL clock oscillation enable bit Disables sub PLL clock oscillation Enables sub PLL clock oscillation Main PLL clock oscillation stability bit Indicates the main PLL clock oscillation stabilization wait state or main PLL clock oscillation being stopped Indicates main PLL clock oscillation being stable MPMC1 MPMC0 Main PLL clock multiplier setting bits 0 0 Main clock × 1 0 1 Main clock × 2 1 0 Main clock × 2.5 Main clock × 4 1 1 MPEN 0 1 Main PLL clock oscillation enable bit Disables main PLL clock oscillation Enables main PLL clock oscillation R/W : Readable/writable (Read value is the same as write value) R/WX : Read-only (Read-only. Writing does not affect the operation.) : Initial value 56 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 6 CLOCK CONTROLLER 6.4 PLL Control Register (PLLC) MB95100B/AM Series Table 6.4-1 Functions of Bits in PLL Control Register (PLLC) (1 / 2) Bit name MPEN: bit7 Main PLL clock oscillation enable bit Function Enables or disables the oscillation of the main PLL clock in main clock mode or time-base timer mode. When set to "0": the bit disables main PLL clock oscillation. When set to "1": the bit enables main PLL clock oscillation. In main PLL clock mode, the main PLL clock oscillates regardless of the value of this bit either in the RUN state or in sleep mode. Set the multiplier for the main PLL clock. MPMC1 MPMC0 Main PLL clock multiplier setting bits 0 0 Main clock × 1 0 1 Main clock × 2 1 0 Main clock × 2.5 1 1 Main clock × 4 MPMC1, MPMC0: bit6, Main PLL clock bit5 multiplier setting bits Note: The value of these bits can be changed only when the main PLL clock is stopped. Consequently, you should not update the bits either with the main PLL clock oscillation enable bit (MPEN) set to "1" or with the clock mode selection bits in the system clock control register (SYCC:SCS1, SCS0) set to "11B". (It is however possible to set these bits at the same time as setting SPEN to "1".) MPRDY: bit4 Main PLL clock oscillation stability bit Indicates whether main PLL clock oscillation has become stable. • When set to "1", the MPRDY bit indicates that the oscillation stabilization wait time for the main PLL clock has passed. • When set to "0", the MPRDY bit indicates that the clock controller is in the main PLL clock oscillation stabilization wait state or that main PLL clock oscillation has been stopped. This bit is read-only. Any value attempted to be written is meaningless and has no effect on operation. SPEN: Sub PLL clock bit3 oscillation enable bit (Dual clock product only) Enables or disables the oscillation of the sub PLL clock in main clock mode, main PLL clock mode, sub clock mode, or in watch mode. When set to "0": the bit disables sub PLL clock oscillation. When set to "1": the bit enables sub PLL clock oscillation. In sub PLL clock mode, the sub PLL clock oscillates regardless of the value of this bit except in watch mode. Even in sub PLL clock mode, the sub PLL clock stops oscillation in stop mode regardless of the value of this bit. On single clock product, the value of the bit has no effect on the operation. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 57 CHAPTER 6 CLOCK CONTROLLER 6.4 PLL Control Register (PLLC) MB95100B/AM Series Table 6.4-1 Functions of Bits in PLL Control Register (PLLC) (2 / 2) Bit name Function Set the multiplier for the Sub PLL clock. SPMC1 SPMC1, SPMC0: Sub PLL clock bit2, multiplier setting bits bit1 (Dual clock product only) SPMC0 Sub PLL Clock Multiplier Setting Bits 0 0 Setting prohibited.Be sure to write any other value before using the PLL. 0 1 Sub clock × 2 1 0 Sub clock × 3 1 1 Sub clock × 4 On single clock product, the value of the bit has no effect on the operation. Notes: • Although the initial value of these bits is "00B", the PLL does not operate normally with this setting. Be sure to set the bits to any value other than "00B" either before setting the sub PLL clock oscillation enable bit (SPEN) to "1" or before setting the clock mode selection bits in the system clock control register (SYCC:SCS1, SCS0) to "01B". • These bits can be updated only when the sub PLL clock is stopped. Consequently, you should not update the bits either with the sub PLL clock oscillation enable bit (SPEN) set to "1" or with the system clock select bits in the system clock control register (SYCC:SCS1, SCS0) set to "01B". (It is however possible to set these bits at the same time as setting SPEN to "1".) SPRDY: Sub PLL clock bit0 oscillation stability bit (Dual clock product only) 58 Indicates whether sub PLL clock oscillation has become stable. • When set to "1", the SPRDY bit indicates that the oscillation stabilization wait time for the sub PLL clock has passed. • When set to "0", the SPRDY bit indicates that the clock controller is in the sub PLL clock oscillation stabilization wait state or that sub PLL clock oscillation has been stopped. This bit is read-only. Any value written is meaningless. On single clock product, the value of the bit is meaningless. FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 6.5 CHAPTER 6 CLOCK CONTROLLER 6.5 Oscillation Stabilization Wait Time Setting Register (WATR) Oscillation Stabilization Wait Time Setting Register (WATR) This register is used to set the oscillation stabilization wait time. ■ Configuration of Oscillation Stabilization Wait Time Setting Register (WATR) Figure 6.5-1 Configuration of Oscillation Stabilization Wait Time Setting Register (WATR) Address 0005H bit7 SWT3 R/W bit6 SWT2 R/W bit5 SWT1 R/W bit4 SWT0 R/W bit3 bit2 MWT3 MWT2 R/W R/W MWT3 MWT2 MWT1 MWT0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0 Number of Cycles SWT3 SWT2 SWT1 SWT0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0 Number of Cycles bit1 bit0 MWT1 MWT0 R/W R/W Initial value 11111111B Main Oscillation Clock FCH = 4 MHz 14 2 -2 213-2 (214-2)/FCH About 4.10 ms (2 13-2)/F CH About 2.05ms 212-2 211-2 210-2 (2 12-2)/F CH About 1.02ms (2 11-2)/F CH 511.5 s (2 10-2)/F CH 255.5 s 29-2 28-2 27-2 26-2 25-2 24-2 23-2 22-2 (2 9-2)/F CH (2 8-2)/F CH (2 7-2)/F CH (2 6-2)/F CH (2 5-2)/F CH (2 4-2)/F CH (2 3-2)/F CH (2 2-2)/F CH 21-2 21-2 21-2 (2 1-2)/F CH 0.0 s (2 1-2)/F CH 0.0 s (2 1-2)/F CH 0.0 s 15 2 -2 214-2 213-2 212-2 211-2 210-2 29-2 28-2 27-2 26-2 25-2 24-2 23-2 22-2 21-2 21-2 127.5 s 63.5 s 31.5 s 15.5 s 7.5 s 3.5 s 1.5 s 0.5 s Sub Oscillation Clock FCL = 32.768 kHz (2 15-2)/FCL (2 14-2)/FCL (2 13-2)/FCL (2 12-2)/FCL (2 11-2)/FCL (2 10-2)/FCL (2 9-2)/FCL (2 8-2)/FCL (2 7-2)/FCL (2 6-2)/FCL (2 5-2)/FCL (2 4-2)/FCL (2 3-2)/FCL (2 2-2)/FCL (2 1-2)/FCL (2 1-2)/FCL About 1.00s About 0.5s About 0.25s About 0.125s About 62.44ms About 31.19ms About 15.56ms About 7.75ms About 3.85ms About 1.89ms About 915.5 s About 427.2 s About 183.1 s About 61.0 s 0.0 s 0.0 s R/W : Readable/writable (Read value is the same as write value) : Initial value (For mask ROM products, initial oscillation stabilization time depends on the option setting when ordering mask ROM.) CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 59 CHAPTER 6 CLOCK CONTROLLER 6.5 Oscillation Stabilization Wait Time Setting Register (WATR) MB95100B/AM Series Table 6.5-1 Functions of Bits in Oscillation Stabilization Wait Time Setting Register (WATR) (1 / 2) Bit name Function Set the sub clock oscillation stabilization wait time. bit7 to bit4 SWT3, SWT2, SWT1, SWT0: Sub Clock Oscillation stabilization wait time select bits SWT3 SWT2 SWT1 SWT0 Number of Cycles 1111B 215-2 (215-2) /FCL About 1.0 s 1110B 214-2 (214-2) /FCL About 0.5 s 1101B 213-2 (213-2) /FCL About 0.25 s 1100B 212-2 (212-2) /FCL About 0.125 s 1011B 211-2 (211-2) /FCL About 62.44 ms 1010B 210-2 (210-2) /FCL About 31.19 ms 1001B 29-2 (29-2) /FCL About 15.56 ms 1000B 28-2 (28-2) /FCL About 7.75 ms Sub Clock FCL = 32.768kHz 7-2) 0111B 27-2 (2 /FCL About 3.85 ms 0110B 26-2 (26-2) /FCL About 1.89 ms 0101B 25-2 (25-2) /FCL About 9 15.5μs 0100B 24-2 (24-2) /FCL About 4 27.2μs 0011B 23-2 (2 /FCL About 183.1 μs 0010B 22-2 (22-2) /FCL About 61.0 μs 0001B 21-2 (21-2) /FCL 0.0 μs 0000B 21-2 3-2) 1-2) (2 /FCL 0.0 μs On single clock product, the value of these bits is meaningless. Number of cycles in the above table is for a minimum value. Add 1/FCL to the number of cycle in the above table for a maximum value. Note: Do not update these bits during sub clock oscillation stabilization wait time.You should update them either with the sub clock oscillation stability bit in the system clock control register (SYCC:SRDY) set to "1" or in sub clock mode or sub PLL clock mode.You can also update them while the sub clock is stopped with the sub clock oscillation stop bit in the system clock control register (SYCC:SUBS) set to "1" in main clock mode or main PLL clock mode. 60 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 6 CLOCK CONTROLLER 6.5 Oscillation Stabilization Wait Time Setting Register (WATR) Table 6.5-1 Functions of Bits in Oscillation Stabilization Wait Time Setting Register (WATR) (2 / 2) Bit name Function Set the main clock oscillation stabilization wait time. bit3 to bit0 MWT3, MWT2, MWT1, MWT0: Main clock Oscillation stabilization wait time select bits Main Clock FCH = 4 MHz MWT3 MWT2 MWT1 MWT0 Number of Cycles 1111B 214-2 (214-2) /FCH About 4.10 ms 1110B 213-2 (213-2) /FCH About 2.05 ms 1101B 212-2 (212-2) /FCH About 1.02 ms 1100B 211-2 (211-2) /FCH 511.5 μs 1011B 210-2 (210-2) /FCH 255.5 μs 1010B 29-2 (29-2) /FCH 127.5 μs 1001B 28-2 (28-2) /FCH 63.5 μs 1000B 27-2 (27-2) /FCH 31.5 μs 0111B 26-2 (26-2) /FCH 15.5 μs 0110B 25-2 (25-2) /FCH 7.5 μs 0101B 24-2 (24-2) /FCH 3.5 μs 0100B 23-2 (23-2) /FCH 1.5 μs 0011B 22-2 (22-2) /FCH 0.5 μs 0010B 21-2 (21-2) /FCH 0.0 μs 0001B 21-2 (21-2) /FCH 0.0 μs 0000B 21-2 (2 1-2) /FCH 0.0 μs Number of cycles is for a minimum value. Add +1/FCH to the minimum value for a maximum value. Note: Do not update these bits during main clock oscillation stabilization wait time. You should update them in main clock mode or main PLL clock mode. You can also update them in sub clock mode. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 61 CHAPTER 6 CLOCK CONTROLLER 6.6 Standby Control Register (STBC) 6.6 MB95100B/AM Series Standby Control Register (STBC) The standby control register (STBC) is used to control transition from the RUN state to sleep mode, stop mode, time-base timer mode, or watch mode, set the pin state in stop mode, time-base timer mode, and watch mode, and to control the generation of software resets. ■ Standby Control Register (STBC) Figure 6.6-1 Standby Control Register (STBC) Address 0008H bit7 STP R0,W TMD 0 1 SRST 0 1 SPL 0 1 SLP 0 1 STP 0 1 bit6 SLP R0,W bit5 SPL R/W Initial value bit2 bit1 bit0 bit3 bit4 00000000B SRST TMD − − − R0/WX R0/WX R0/WX R0,W R0,W Watch bit Read Always reads "0". − Write Has no effect on the operation. Main clock mode Main PLL clock mode Causes transition to time-base time r mode Sub clock mode Sub PLL clock mode Causes transition to watch mode Software reset bit Read Write Always reads "0". Has no effect on the operation Generates a 3 machine clock reset signal − Pin state setting bit Holds external pins in their immediately preceding state in stop mode, time-base timer mode, or watch mode Places external pins in a high impedance state in stop mode, time-base timer mode, or watch mode. Sleep bit Read Always reads "0". − Write Has no effect on the operation Causes transition to sleep mode Stop bit Read Always reads "0". − Write Has no effect on the operation Causes transition to stop mode R/W : Readable/writable (Read value is the same as write value) R0,W : Write only (Writable, "0" is read) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) − : Undefined : Initial value 62 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 6 CLOCK CONTROLLER 6.6 Standby Control Register (STBC) Table 6.6-1 Functions of Bits in Standby Control Register (STBC) Bit name Function STP: Stop bit Sets transition to stop mode. When set to "0": has no effect on operation. When set to "1": the bit causes transition to stop mode. When read, the bit always returns "0". Note: An attempt to write "1" to this bit is ignored if an interrupt request has been issued. For details, see Section "6.8.1 Notes on Using Standby Mode". SLP: Sleep bit Sets transition to sleep mode. When set to "0": has no effect on operation. When set to "1": the bit causes transition to sleep mode. When read, the bit always returns "0". Note: An attempt to write "1" to this bit is ignored if an interrupt request has been issued. For details, see Section "6.8.1 Notes on Using Standby Mode". SPL: bit5 Pin state setting bit Sets the states of external pins in stop mode, time-base timer mode, and watch mode. When set to "0": the bit holds the states (levels) of external pins in stop mode, time-base timer mode, and watch mode. When set to "1": the bit places external pins in a high impedance state in stop mode, time-base timer mode, and watch mode. (Those pins are pulled up for which pull-up resistor connection has been selected in the pull-up setting register.) SRST: bit4 Software reset bit Sets a software reset. When set to "0": has no effect on operation. When set to "1": the bit generates a 3 machine clock reset signal. When read, the bit always returns "0". bit7 bit6 bit3 TMD: Watch bit bit2 to Undefined bits bit0 CM26-10112-4E On dual clock product, this bit sets transition to time-base timer mode or watch mode. On single clock product, the bit sets transition to time-base timer mode. • Writing "1" to the bit in main clock mode or main PLL clock mode causes transition to timebase timer mode. • Writing "1" to the bit in sub clock mode or sub PLL clock mode causes transition to watch mode. • Writing "0" to this bit has no effect on operation. • When read, the bit always returns "0". Note: An attempt to write "1" to this bit is ignored if an interrupt request has been issued. For details, see Section "6.8.1 Notes on Using Standby Mode". The read value is always "0". These bits are undefined. This bit is read-only. Writing has no effect on operation. FUJITSU MICROELECTRONICS LIMITED 63 CHAPTER 6 CLOCK CONTROLLER 6.6 Standby Control Register (STBC) MB95100B/AM Series Notes: • Set the standby mode after making sure that the transition to clock mode has been completed by comparing the values of the clock mode monitor bits (SYCC:SCM1,SCM0) and clock mode setting bits (SYCC:SCS1,SCS0) in the system clock control register. • If you write "1" simultaneously to two or more of the stop bit (STP), sleep bit (SLP), software reset bit (SRST), and watch bit (TMD), priority is given to them in the following order: (1) Software reset bit (SRST) (2) Stop bit (STP) (3) Watch bit (TMD) (4) Sleep bit (SLP) When released from the standby mode, the device returns to the normal operating status. 64 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 6.7 CHAPTER 6 CLOCK CONTROLLER 6.7 Clock Mode Clock Mode The clock modes available are: main clock mode, sub clock mode, main PLL clock mode, and sub PLL clock mode. Mode switching takes place according to the settings in the system clock control register (SYCC). Sub clock mode and sub PLL clock mode are not supported by single clock product. ■ Operations in Main Clock Mode Main clock mode uses the main clock as the machine clock for the CPU and peripheral resources. The time-base timer operates with the main clock. The watch prescaler and watch counter operate with the sub clock (on dual clock product). If you set standby mode during operation in main clock mode, the device can enter sleep mode, stop mode, or time-base timer mode. After a reset, main clock mode is always set regardless of the clock mode used before the reset. ■ Operations in Sub Clock Mode (on Dual Clock Product) Sub clock mode uses the sub clock as the machine clock for the CPU and peripheral resources with main clock oscillation stopped. In this mode, the time-base timer remains stopped as it requires the main clock for operation. If you set standby mode during operation in sub clock mode, the device can enter sleep mode, stop mode, or watch mode. ■ Operations in Main PLL Clock Mode Main PLL clock mode uses the main PLL clock as the machine clock for the CPU and peripheral resources. The time-base timer and watchdog timer operate with the main clock. The watch prescaler and watch counter operate with the sub clock (on dual clock product). If you set standby mode during operation in main PLL clock mode, the device can enter sleep mode, stop mode, or time-base timer mode. ■ Operations in Sub PLL Clock Mode (on Dual Clock Product) Sub PLL clock mode uses the sub PLL clock as the machine clock for the CPU and peripheral resources with main clock oscillation stopped. In this mode, the time-base timer remains stopped as it requires the main clock for operation. The watch prescaler and watch counter operate with the sub clock. If you set standby mode during operation in sub PLL clock mode, the device can enter sleep mode, stop mode, or watch mode. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 65 CHAPTER 6 CLOCK CONTROLLER 6.7 Clock Mode MB95100B/AM Series ■ Clock Mode State Transition Diagram The clock modes available are: main clock mode, main PLL clock mode, sub clock mode, and sub PLL clock mode. The device can switch between these modes according to the settings in the system clock control register (SYCC). Figure 6.7-1 Clock Mode State Transition Diagram (Dual Clock Product) Power on Reset occurs in each state. Reset state (1) (2) Main clock oscillation stabilization wait time (7) Main PLL clock mode Main clock mode (6) (5) Main PLL clock oscillation stabilization wait time (8) (2) (3) (1) (9) (11) (10) Sub clock / Sub PLL clock oscillation stabilization wait time Sub clock oscillation stabilization wait time (4) Main clock/main PLL clock oscillation stabilization wait time Main clock oscillation stabilization wait time (17) (12) (18) (15) (14) Oscillation stabilization wait time (13) Sub clock mode (16) 66 FUJITSU MICROELECTRONICS LIMITED Sub PLL clock mode CM26-10112-4E CHAPTER 6 CLOCK CONTROLLER 6.7 Clock Mode MB95100B/AM Series Figure 6.7-2 Clock Mode State Transition Diagram (Single Clock Product) Power on Reset occurs in each state. Reset state <1> <2> Main clock oscillation stabilization wait time (7) Main clock mode (6) (5) CM26-10112-4E Main PLL clock mode Main PLL clock oscillation stabilization wait time FUJITSU MICROELECTRONICS LIMITED 67 CHAPTER 6 CLOCK CONTROLLER 6.7 Clock Mode MB95100B/AM Series Table 6.7-1 Clock Mode State Transition Table (1 / 2) Current State Next State Main Clock After a reset, the device waits for the main clock oscillation stabilization wait time to elapse and enters main clock mode. If the reset is a watchdog reset, software reset, or external reset caused in main clock mode or main PLL clock mode, however, the device does not wait for the main clock oscillation stabilization wait time to elapse. Sub Clock The device enters sub clock mode when the system clock select bits in the system clock control register (SYCC:SCS1, SCS0) are set to "00B". Note, however, that the device waits for the sub clock oscillation stabilization wait time to elapse before entering sub clock mode either if the sub clock has been stopped according to the setting of the sub clock oscillation stop bit in the system clock control register (SYCC: SUBS) in main clock mode or if the sub clock oscillation stabilization wait time has not passed immediately after the power is turned on. Sub PLL Clock When the system clock select bits in the system clock control register (SYCC:SCS1, SCS0) are set to "01B", the device enters sub PLL clock mode after waiting for the sub PLL clock oscillation stabilization wait time. Note, however, that the device does not wait for the sub PLL clock oscillation stabilization wait time to elapse if the sub PLL clock has been oscillating according to the setting of the sub PLL clock oscillation enable bit in the PLL control register (PLLC: SPEN) in main clock mode. Note also that the device waits for the sub clock oscillation stabilization wait time to elapse before entering sub PLL clock mode either if the sub clock has been stopped according to the setting of the sub clock oscillation stop bit in the system clock control register (SYCC: SUBS) in main clock mode or if the sub clock oscillation stabilization wait time has not passed immediately after the power is turned on. When the device waits for the sub clock oscillation stabilization wait time or sub PLL clock oscillation stabilization wait time, it waits for whichever is longer to elapse. Main PLL Clock When the system clock select bits in the system clock control register (SYCC:SCS1, SCS0) are set to "11B", the device enters main PLL clock mode after waiting for the main PLL clock oscillation stabilization wait time.Note, however, that the device does not wait for the main PLL clock oscillation stabilization wait time to elapse if the main PLL clock has been oscillating according to the setting of the main PLL clock oscillation enable bit in the PLL control register (PLLC: MPEN). <1> <2> Reset State (1) (2) (3) Main Clock (4) (5) (6) 68 Description FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 6 CLOCK CONTROLLER 6.7 Clock Mode Table 6.7-1 Clock Mode State Transition Table (2 / 2) Current State Next State Description Main Clock The device enters main clock mode when the system clock select bits in the system clock control register (SYCC:SCS1, SCS0) are set to "10B". Sub Clock The device enters sub clock mode when the system clock select bits in the system clock control register (SYCC:SCS1, SCS0) are set to "00B". Note, however, that the device waits for the sub clock oscillation stabilization wait time to elapse before entering sub clock mode either if the sub clock has been stopped according to the setting of the sub clock oscillation stop bit in the system clock control register (SYCC: SUBS) in main PLL clock mode or if the sub clock oscillation stabilization wait time has not passed immediately after the power is turned on. Sub PLL Clock When the system clock select bits in the system clock control register (SYCC:SCS1, SCS0) are set to "01B", the device enters sub PLL clock mode after waiting for the sub PLL clock oscillation stabilization wait time. Note, however, that the device does not wait for the sub PLL clock oscillation stabilization wait time to elapse if the sub PLL clock has been oscillating according to the setting of the sub PLL clock oscillation enable bit in the PLL control register (PLLC: SPEN) in main PLL clock mode. Note also that the device waits for the sub clock oscillation stabilization wait time to elapse before entering sub PLL clock mode either if the sub clock has been stopped according to the setting of the sub clock oscillation stop bit in the system clock control register (SYCC: SUBS) in main PLL clock mode or if the sub clock oscillation stabilization wait time has not passed immediately after the power is turned on. When the device waits for the sub clock oscillation stabilization wait time or sub PLL clock oscillation stabilization wait time, it waits for whichever is longer to elapse. Main Clock When the system clock select bits in the system clock control register (SYCC:SCS1, SCS0) are set to "10B", the device enters main clock mode after waiting for the main clock oscillation stabilization wait time. Sub PLL Clock When the system clock select bits in the system clock control register (SYCC:SCS1, SCS0) are set to "01B", the device enters sub PLL clock mode after waiting for the sub PLL clock oscillation stabilization wait time.Note, however, that the device does not wait for the sub PLL clock oscillation stabilization wait time to elapse if the sub PLL clock has been oscillating according to the setting of the sub PLL clock oscillation enable bit in the PLL control register (PLLC: SPEN) in sub clock mode. (15) Main PLL Clock When the system clock select bits in the system clock control register (SYCC:SCS1, SCS0) are set to "11B", the device enters main PLL clock mode after waiting for the main PLL clock oscillation stabilization wait time or main clock oscillation stabilization wait time to elapse, whichever is longer. (16) Sub Clock The device enters sub clock mode when the system clock select bits in the system clock control register (SYCC:SCS1, SCS0) are set to "00B". Main PLL Clock When the system clock select bits in the system clock control register (SYCC:SCS1, SCS0) are set to "11B", the device enters main PLL clock mode after waiting for the main PLL clock oscillation stabilization wait time or main clock oscillation stabilization wait time to elapse, whichever is longer. Main Clock When the system clock select bits in the system clock control register (SYCC:SCS1, SCS0) are set to "10B", the device enters main clock mode after waiting for the main clock oscillation stabilization wait time. (7) (8) (9 Main (10) PLL Clock (11) (12) (13) (14) Sub Clock (17) Sub PLL Clock (18) CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 69 CHAPTER 6 CLOCK CONTROLLER 6.8 Operations in Low-power Consumption Modes (Standby Modes) 6.8 MB95100B/AM Series Operations in Low-power Consumption Modes (Standby Modes) The standby modes available are: sleep mode, stop mode, time-base timer mode, and watch mode. ■ Overview of Transitions to and from Standby Mode The standby modes available are: sleep mode, stop mode, time-base timer mode, and watch mode. The device enters standby mode according to the settings in the standby control register (STBC). The device is released from standby mode in response to an interrupt or reset. Before transition to normal operation, the device waits for the oscillation stabilization wait time to elapse as required. When released from standby mode by a reset, the device returns to main clock mode. When released from standby mode by an interrupt, the device enters the clock mode in which the device was before entering the standby mode. ■ Pin States in Standby Mode The pin state setting bit (STBC:SPL) of the standby control register can be used to set the I/O port/peripheral resource pins in the stop mode, time-base timer mode, or watch mode to hold their immediately preceding state or to be placed in a high inpedance state. See "Pin Status" for the states of all pins in standby modes. 70 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 6.8.1 CHAPTER 6 CLOCK CONTROLLER 6.8 Operations in Low-power Consumption Modes (Standby Modes) Notes on Using Standby Mode Even if the standby control register (STBC) sets standby mode, transition to the standby mode does not take place when an interrupt request has been issued from a peripheral resource. When the device returns from standby mode to the normal operating state in response to an interrupt, the operation that follows varies depending on whether the interrupt request is accepted or not. ■ Place at Least Three NOP Instructions Immediately Following a Standby Mode Setting Instruction. The device requires four machine clock cycles before entering standby mode after it is set in the standby control register. During that period, the CPU executes the program. To avoid program execution during this transition to standby mode, enter at least three NOP instructions. The device operates normally if you place instructions other than NOP instructions. In that case, however, note that the device may execute the instructions to be executed after being released from standby mode before entering the standby mode and that the device may enter the standby mode during instruction execution, which is resumed after the device is released from the standby mode (increasing the number of instruction execution cycles). ■ Check That Clock-mode Transition has been Completed before Setting Standby Mode. Before setting standby mode, make sure that clock-mode transition has been completed by comparing the values of the clock mode monitor bit (SYCC: SCM1, SCM0) and clock mode setting bit (SYCC:SCS1, SCS0) in the system clock control register. ■ An Interrupt Request may Suppress Transition to Standby Mode. If an attempt is made to set a standby mode while an interrupt request with an interrupt level higher than "11B" has been issued, the device ignores the attempt to write to the standby control register and continues instruction execution without entering the standby mode. The device does not enter the standby mode even after having serviced the interrupt. This behavior is the same as when interrupts are disabled by the interrupt enable flag (CCR:I) and interrupt level bits in the condition code register (CCR:IL1, IL0) of the CPU. ■ Standby Mode is Also Canceled when the CPU Rejects Interrupts. When an interrupt request with an interrupt level higher than "11B" is issued in standby mode, the device is released from the standby mode regardless of the settings of the interrupt enable flag (CCR: I) and interrupt level bits (CCR:IL1, IL0) of the condition code register of the CPU. After being released from standby mode, the device services the interrupt when the CPU's condition code register has been set to accept interrupts. If the register has been set to reject interrupts, the device resumes processing from the instruction that follows the last instruction executed before entering the standby mode. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 71 CHAPTER 6 CLOCK CONTROLLER 6.8 Operations in Low-power Consumption Modes (Standby Modes) MB95100B/AM Series ■ Standby Mode State Transition Diagram Figure 6.8-1 and Figure 6.8-2 are standby mode state transition diagrams. Figure 6.8-1 Standby Mode State Transition Diagram (Dual Clock Product) Power on Reset state Reset occurs in each state. <2> <1> Main clock oscillation stabilization wait time (3) Stop mode (4) Main clock/main PLL clock Sub clock/sub PLL clock oscillation stabilization wait time (8) Normal (RUN) state (5) (9) Sub PLL clock oscillation stabilization wait time (1) Watch mode (10) (6) Time-base timer mode 72 (7) Main PLL clock oscillation stabilization wait time (2) Sleep mode FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 6 CLOCK CONTROLLER 6.8 Operations in Low-power Consumption Modes (Standby Modes) Figure 6.8-2 Standby Mode State Transition Diagram (Single Clock Product) MB95100B/AM Series Power on Reset state Reset occurs in each state. <2> <1> Main clock oscillation stabilization wait time (3) Stop mode (4) Main clock/main PLL clock oscillation stabilization wait time Normal (RUN) state (5) (1) (6) Time-base timer mode CM26-10112-4E (7) Main PLL clock oscillation stabilization wait time (2) Sleep mode FUJITSU MICROELECTRONICS LIMITED 73 CHAPTER 6 CLOCK CONTROLLER 6.8 Operations in Low-power Consumption Modes (Standby Modes) MB95100B/AM Series Table 6.8-1 State Transition Diagram (Transitions to and from Standby Modes) State Transition Description After a reset, the device enters main clock mode. If the reset is a power-on reset, the device always waits for the main clock oscillation stabilization wait time to elapse. When the clock mode before the reset is sub clock mode or sub PLL clock mode, the Normal operation from reset device waits for the main clock oscillation stabilization wait time to elapse. The device state waits for it as well when the standby mode is stop mode. When the clock mode before the reset is main clock mode or main PLL clock mode <2> and the standby mode is other than stop mode, the device does not wait for the main clock oscillation stabilization wait time to elapse even after entering a reset state in response to a watchdog reset, software reset, or external reset. <1> (1) Sleep mode The device enters sleep mode when "1" is written to the sleep bit in the standby control register (STBC: SLP). (2) The device returns to the RUN state in response to an interrupt from a peripheral resource. (3) The device enters stop mode when "1" is written to the stop bit in the standby control register (STBC: STP). (4) In response to an external interrupt, the device returns to the RUN state after waiting for the oscillation stabilization wait time required for each clock mode. When the device waits for a PLL oscillation stabilization wait time, it waits for the relevant oscillation stabilization wait time or PLL oscillation stabilization wait time to elapse, whichever is longer. (5) The device enters time-base timer mode when "1" is written to the watch bit in the standby control register (STBC: TMD) in main clock mode or main PLL clock mode. Stop mode (6) Time-base timer mode (7) The device enters watch mode when "1" is written to the watch bit in the standby control register (STBC: TMD) in sub clock mode or sub PLL clock mode. (8) (9) (10) 74 The device returns to the RUN state in response to a time-base timer interrupt, watch prescaler/watch counter interrupt, or external interrupt. When the clock mode is main PLL clock mode, the device waits for the main PLL clock oscillation stabilization wait time to elapse.If the main PLL oscillation enable bit in the PLL control register (PLLC: MPEN) contains "1", however, the device does not wait for that time to elapse even when the clock mode is main PLL clock mode. Watch mode The device returns to the normal operating state in response to a watch prescaler/ watch counter interrupt or external interrupt. When the clock mode is sub PLL clock mode, the device waits for the sub PLL clock oscillation stabilization wait time to elapse.If the sub PLL oscillation enable bit in the PLL control register (PLLC: SPEN) contains "1", however, the device does not wait for that time to elapse even when the clock mode is sub PLL clock mode. FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 6.8.2 CHAPTER 6 CLOCK CONTROLLER 6.8 Operations in Low-power Consumption Modes (Standby Modes) Sleep Mode Sleep mode stops the operations of the CPU and watchdog timer. ■ Operations in Sleep Mode Sleep mode stops the operating clock for the CPU and watchdog timer. In this mode, the CPU stops while retaining the contents of registers and RAM that exist immediately before the transition to sleep mode, but the peripheral resources except the watchdog timer continue operating. ● Transition to sleep mode Writing "1" to the sleep bit in the standby control register (STBC:SLP) causes the device to enter sleep mode. ● Cancellation of sleep mode A reset or an interrupt from a peripheral resource releases the device from sleep mode. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 75 CHAPTER 6 CLOCK CONTROLLER 6.8 Operations in Low-power Consumption Modes (Standby Modes) 6.8.3 MB95100B/AM Series Stop Mode Stop mode stops the main clock. ■ Operations in Stop Mode Stop mode stops the main clock. In this mode, the device stops all the functions except external interrupt and low-voltage detection reset while retaining the contents of registers and RAM that exist immediately before the transition to stop mode. In main clock mode or main PLL clock mode, however, you can start or stop sub clock oscillation by setting the sub clock oscillation stop bit in the system clock control register (SYCC: SUBS). When the sub clock is oscillating, the watch prescaler and watch counter operate. ● Transition to stop mode Writing "1" to the stop bit in the standby control register (STBC:STP) causes the device to enter stop mode. At this time, the states of external pins are retained when the pin state setting bit in the standby control register (STBC:SPL) is "0", and the states of external pins become high impedance when that bit is "1" (those pins are pulled up for which pull-up resistor connection has been selected in the pull-up setting register). In main clock mode or main PLL clock mode, a time-base timer interrupt request may be generated while the device is waiting for main clock oscillation to stabilize after being released from stop mode by an interrupt. If the interrupt interval time of the time-base timer is shorter than the main clock oscillation stabilization wait time, you should disable interrupt requests output from the time-base timer before entering stop mode, thereby preventing unexpected interrupts from occurring. You should also disable interrupt requests output from the watch prescaler before entering stop mode in sub clock mode or sub PLL clock mode. ● Cancellation of stop mode The device is released from stop mode in response to a reset or an external interrupt. In main clock mode or main PLL clock mode, you can start or stop sub clock oscillation by setting the sub clock oscillation stop bit in the system clock control register (SYCC: SUBS). When the sub clock is oscillating, you can also release the device from stop mode using an interrupt by the watch prescaler or watch counter. Note: When stop mode is canceled via an interrupt, peripheral resources placed into stop mode during an action resume that action. Therefore, the initial interval time of the interval timer and other similar settings are rendered indeterminate. After recovery from stop mode, initialize each peripheral resource as necessary. 76 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 6.8.4 CHAPTER 6 CLOCK CONTROLLER 6.8 Operations in Low-power Consumption Modes (Standby Modes) Time-base Timer Mode Time-base timer mode allows only the main clock oscillation, sub clock oscillation, time-base timer, and watch prescaler to work. The operating clock for the CPU and peripheral resources is stopped in this mode. ■ Operations in Time-base Timer Mode In time-base timer mode, main clock supply is stopped except for the time-base timer. The device stops all the functions except time-base timer, external interrupt and low-voltage detection reset while retaining the contents of registers and RAM that exist immediately before the transition to time-base timer mode. You can start or stop sub clock oscillation by setting the sub clock oscillation stop bit in the system clock control register (SYCC: SUBS). When the sub clock is oscillating, the watch prescaler and watch counter operate. ● Transition to time-base timer mode Writing "1" to the watch bit in the standby control register (STBC:TMD) causes the device to enter time-base timer mode if the system clock monitor bits in the system clock control register (SYCC: SCM1, SCM0) are "10B" or "11B". The device can enter time-base timer mode only when the clock mode is main clock mode or main PLL clock mode. Upon transition to time-base timer mode, the states of external pins are retained when the pin state setting bit in the standby control register (STBC:SPL) is "0", and the states of external pins become high impedance when that bit is "1" (those pins are pulled up for which pull-up resistor connection has been selected in the pull-up setting register). ● Cancellation of time-base timer mode The device is released from time-base timer mode in response to a reset, time-base timer interrupt, or external interrupt. You can start or stop sub clock oscillation by setting the sub clock oscillation stop bit in the system clock control register (SYCC: SUBS). When the sub clock is oscillating, you can also release the device from time-base timer mode using an interrupt by the watch prescaler or watch counter. Note: When time-base timer mode is canceled via an interrupt, peripheral resources placed into time-base timer mode during an action resume that action. Therefore, the initial interval time of the interval timer and other similar settings are rendered indeterminate. After recovery from time-base timer mode, initialize each peripheral resource as necessary. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 77 CHAPTER 6 CLOCK CONTROLLER 6.8 Operations in Low-power Consumption Modes (Standby Modes) 6.8.5 MB95100B/AM Series Watch Mode In watch mode, the operating clock for the CPU and peripheral resources is stopped. The device stops all the functions except the watch prescaler, watch counter, external interrupt, and low-voltage detection reset while retaining the contents of registers and RAM that exist immediately before the transition to watch mode. ■ Operations in Watch Mode In watch mode, the operating clock for the CPU and peripheral resources is stopped. The device stops all the functions except the watch prescaler, watch counter, external interrupt, and low-voltage detection reset while retaining the contents of registers and RAM that exist immediately before the transition to watch mode. ● Transition to watch mode Writing "1" to the watch bit in the standby control register (STBC:TMD) causes the device to enter watch mode if the system clock monitor bits in the system clock control register (SYCC: SCM1, SCM0) are "00B" or "01B". The device can enter watch mode only when the clock mode is sub clock mode or sub PLL clock mode. Upon transition to watch mode, the states of external pins are retained when the pin state setting bit in the standby control register (STBC:SPL) is "0", and the states of external pins become high impedance when that bit is "1" (those pins are pulled up for which pull-up resistor connection has been selected in the pull-up setting register). ● Cancellation of watch mode The device is released from watch mode in response to a reset, watch interrupt, or external interrupt. Note: When watch mode is canceled via an interrupt, peripheral resources placed into watch mode during an action resume that action. Therefore, the initial interval time of the interval timer and other similar settings are rendered indeterminate. After recovery from watch mode, initialize each peripheral resource as necessary. 78 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 6 CLOCK CONTROLLER 6.9 Clock Oscillator Circuits MB95100B/AM Series 6.9 Clock Oscillator Circuits The clock oscillator circuit generates an internal clock with an oscillator connected to or a clock signal input to the clock oscillation pin. ■ Clock Oscillator Circuit ● Using crystal and ceramic oscillators Connect crystal and ceramic oscillators as shown in Figure 6.9-1. Figure 6.9-1 Sample Connections of Crystal and Ceramic Oscillators Dual clock product Main clock oscillator circuit X0 Sub clock oscillator circuit X1 C Single clock product C Main clock oscillator circuit X0A X1A X0 C C C X1 C ● Using external clock As shown inFigure 6.9-2, connect the external clock to the X0 pin while leaving the X1 pin open. To supply the sub clock from an external source, connect the external clock to the X0A pin while leaving the X1A pin open. Figure 6.9-2 Sample Connections of External Clocks Single clock product Dual clock product Main clock oscillator circuit X0 X1 Open CM26-10112-4E Sub clock oscillator circuit X0A X1A Open Main clock oscillator circuit X0 X1 Open FUJITSU MICROELECTRONICS LIMITED 79 CHAPTER 6 CLOCK CONTROLLER 6.9 Clock Oscillator Circuits MB95100B/AM Series Note: If you use only the main clock without using sub clock oscillation on a dual clock product and it enters sub clock mode for some reason, there is no solution for recovering its operation as there is no clock supply available. If you use the main clock alone, therefore, be sure to select a single clock product. 80 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 6.10 CHAPTER 6 CLOCK CONTROLLER 6.10 Overview of Prescaler Overview of Prescaler The prescaler generates the count clock source for various peripheral resources from the machine clock (MCLK) and the count clock output from the time-base timer. ■ Prescaler The prescaler generates the count clock source for various peripheral resources from the machine clock (MCLK) that drives the CPU and the count clock (27/FCH or 28/ FCH) output from the time-base timer. The count clock source is a clock frequency-divided by the prescaler or a buffered clock, used by the peripheral resources listed below. Note that the prescaler has no control register and operates continuously driven by the machine clock (MCLK) and the count clock (27/ FCH or 28/ FCH) of the time-base timer. • 8/16-bit compound timer • 16-bit reload timer • 8/16-bit PPG Timer • 16-bit PPG timer • UART/SIO Dedicated Baud Rate Generator • 8/10-bit A/D converter CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 81 CHAPTER 6 CLOCK CONTROLLER 6.11 Configuration of Prescaler 6.11 MB95100B/AM Series Configuration of Prescaler Figure 6.11-1 is a block diagram of the prescaler. ■ Prescaler Block Diagram Figure 6.11-1 Prescaler Block Diagram Prescaler 2/MCLK 4/MCLK Counter value 8/MCLK MCLK (machine clock) From time-base timer 5-bit counter Output control circuit 27/F CH 16/MCLK 32/MCLK 27/F CH 28/F CH 28/F CH Count clock source to individua periphera resources MCLK: Machine clock (internal operating frequency) • 5 -bit counter The machine clock (MCLK) is counted by a 5-bit counter and the count value is output to the output control circuit. • Output control circuit The division ratio (divided by 2/4/8/16/32) is determined by the counter value of the 5-bit counter. Clocks generated by dividing the machine clock by this value will be supplied to individual peripheral resources. The circuit also buffers the clock from the time-base timer (27/ FCH and 28/ FCH) and supplies it to the peripheral resources. ■ Input Clock The prescaler uses the machine clock or the clock output from the time-base timer as the input clock. ■ Output Clock The prescaler supplies clocks to the 8/10-bit compound timer, 16-bit reload timer, 8/16-bit PPG timer, 16-bit PPG timer, UART/SIO dedicated baud rate generator, and 8/10-bit A/D converter. 82 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 6 CLOCK CONTROLLER 6.12 Operating Explanation of Prescaler MB95100B/AM Series 6.12 Operating Explanation of Prescaler The prescaler generates count clock sources to individual peripheral resources. ■ Operations of Prescaler The prescaler generates count clock sources from the frequency-divided version of the machine clock (MCLK) and buffered signals from the time-base timer (27/ FCH, 28/ FCH) and supplies them to individual peripheral resources. The prescaler remains operating as long as the machine clock and time-base timer clocks are supplied. Table 6.12-1 lists the count clock sources generated by the prescaler. Table 6.12-1 Count Clock Sources Generated by Prescaler Count Clock Source Cycle CM26-10112-4E Cycle (FCH =10MHz, MCLK=10MHz) 2/MCLK MCLK/2 (5MHz) 4/MCLK MCLK/4 8/MCLK MCLK/8 16/MCLK 32/MCLK Cycle (FCH =16MHz, MCLK=16MHz) Cycle (FCH =16.25MHz, MCLK=16.25MHz) MCLK/2 (8MHz) MCLK/2 (8.125MHz) (2.5MHz) MCLK/4 (4MHz) MCLK/4 (4.0625MHz) (1.25MHz) MCLK/8 (2MHz) MCLK/8 (2.0313MHz) MCLK/16 (0.625MHz) MCLK/16 (1MHz) MCLK/16 (1.0156MHz) MCLK/32 (0.3125MHz) MCLK/32 (0.5MHz) MCLK/32 (0.5078MHz) 27/ FCH FCH /27 (78kHz) FCH /27 (125kHz) FCH /27 (127kHz) 28/ FCH FCH /28 (39kHz) FCH /28 (62.5kHz) FCH /28 (63.5kHz) FUJITSU MICROELECTRONICS LIMITED 83 CHAPTER 6 CLOCK CONTROLLER 6.13 Notes on Use of Prescaler 6.13 MB95100B/AM Series Notes on Use of Prescaler This section gives notes on using the prescaler. The prescaler uses the machine clock and time-base timer clock and operates continuously while these clocks are running. Accordingly, the operations of individual peripheral resources immediately after they are activated may involve an error of up to one cycle of the clock source captured by the resource, depending on the prescaler output value. Figure 6.13-1 Clock Capturing Error Immediately after Activation of Peripheral Resources Prescaler output Resource activation Clock capturing by resource Clock capturing error immediately after resource activation The prescaler count value affects the following resources: • UART/SIO • 8/16-bit compound timer • 8/16-bit PPG • 16-bit PPG • 16-bit reload timer • 8/10-bit A/D converter 84 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 7 RESET This section describes the reset operation. 7.1 Reset Operation 7.2 Reset Source Register (RSRR) 7.3 Notes on Using Reset Code: CM26-00104-1E CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 85 CHAPTER 7 RESET 7.1 Reset Operation 7.1 MB95100B/AM Series Reset Operation When a reset factor occurs, the CPU stops the current execution immediately and enters the reset release wait state. When the device is released from the reset, the CPU reads mode data and the reset vector from internal ROM (mode fetch). When the power is turned on or when the device is released from a reset in sub clock mode, sub-PLL clock mode, or stop mode, the CPU performs mode fetch after the oscillation stabilization wait time has passed. ■ Reset Factors Resets are classified into five reset factors. Table 7.1-1 Reset Sources Reset Sources Reset Condition External reset "L" level input to the external reset pin Software reset "1" is written to the software reset bit (STBC: SRST) in the standby control register. Watchdog reset The watchdog timer causes an overflow. Power-on reset/ low-voltage detection reset Clock supervisor reset The power is turned on or the supply voltage falls below the detected voltage. (Option) Abnormal Stop of Clock Oscillation (Option) ● External reset An external reset is generated upon "L" level input to the external reset pin (RST). An externally input reset signal is accepted asynchronously via the internal noise filter and generates an internal reset signal in synchronization with the machine clock to initialize the internal circuit.Consequently, a clock is necessary for internal circuit initialization. Clock input is therefore necessary for operation with an external clock. Note, however, that external pins (including I/O ports and peripheral resources) are reset asynchronously. Additionally, there are standard pulse-width values for external reset input. If the value is below the standard, the reset may not be accepted. The standard value is listed on the data sheet. Please design your external reset circuit so that this standard is met. ● Software reset Writing "1" to the software reset bit of the standby control register (STBC:SRST) generates a software reset. ● Watchdog reset After the watchdog timer starts, a watchdog reset is generated if the watchdog timer is not cleared within a preset amount of time. 86 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 7 RESET 7.1 Reset Operation ● Power-on reset/low-voltage detection reset (Option) A power-on reset is generated when the power is turned on. Some 5-V products have a low-voltage detection reset circuit (option) integrated. The low-voltage detection reset circuit generates a reset if the power supply voltage falls below a predetermined level. The logical function of the low-voltage detection reset is completely equivalent to the poweron reset. All the text in this manual concerning power-on resets applies to low-voltage detection resets as well. For details about low-voltage detection resets, see "CHAPTER 26 LOW-VOLTAGE DETECTION RESET CIRCUIT". ● Clock Supervisor Reset (Option) Some 5V products have the (optional) clock supervisor. The clock supervisor monitors the main and sub clocks and generates a reset when the oscillation stops due to not given state transition but any abnormality.After reset, a clock occurred in the built-in RC oscillation circuit is provided internally. For details on the clock supervisor, see "CHAPTER 27 CLOCK SUPERVISOR". ■ Reset Time In the case of a software reset or watchdog reset, the reset time consists of a total of three machine clock cycles: one machine clock cycle at the machine clock frequency selected before the reset, and two machine clock cycles at the machine clock frequency initially set after the reset (1/32 of the main clock frequency). However, the reset time may be extended in machine clock cycles of the frequency selected before the reset, via the RAM access protection function which suppresses resets during RAM access. In addition, when in main clock oscillation stabilization standby mode, the reset time is further extended for the oscillation stabilization wait time. External resets and resets are also affected by the RAM access protection function and main clock oscillation stabilization wait time. In the case of a power-on reset or low-voltage detection reset, the reset continues during the oscillation stabilization wait time. ■ Reset Output The RST pin of 5 V products with the reset (For details, see Table 1.2-1.) outputs "L" level during reset time. However, a reset pin does not output "L" level in the case of an external reset. The RST pin of 3 V products and 5 V products without the reset outputs do not have an output function. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 87 CHAPTER 7 RESET 7.1 Reset Operation MB95100B/AM Series ■ Overview of Reset Operation Figure 7.1-1 Reset Operation Flow Suppress resets during RAM access Suppress resets during RAM access During reset NO Sub clock mode During operation in sub-PLL clock mode YES Main clock oscillation stabilization wait time Reset state Power-on reset/ low-voltage detection reset External reset input Clock Supervisor Reset Software reset Watchdog reset NO In sub clock mode, sub-PLL clock mode, or stop mode YES Main clock oscillation stabilization wait time Reset state Released from external reset Main clock oscillation stabilization wait time Reset state NO YES Capture mode data (Address : FFFDH) Capture reset vector (Address : FFFEH, FFFFH) Mode fetch Capture instruction code from the address indicated by reset vector and execute the instruction. Normal operation (Run state) In the case of a power-on reset/low-voltage detection reset, and a reset when in sub clock mode, sub-PLL clock mode, or stop mode, the CPU performs mode fetch after the main clock oscillation stabilization wait time has elapsed. If the external reset input is not cleared after the oscillation stabilization wait time has elapsed, the CPU performs mode fetch after the external reset input is cleared. ■ Effect of Reset on RAM Contents When a reset occurs, the CPU halts the operation of the command currently being executed, and enters the reset status. During RAM access execution, however, RAM access protection causes an internal reset signal to be generated in synchronization with the machine clock, after RAM access has ended.This function prevents a word-data write operation from being cut off by a reset after one byte. 88 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 7 RESET 7.1 Reset Operation ■ Pin State During a Reset When a reset occurs, all of the I/O ports and peripheral resource pins remain in a high impedance state until setup is performed by software after the reset is released. Note: Connect a pull-up resistor to those pins which remain at high impedance during a reset to prevent the devices the pins from malfunctioning. See "APPENDIX D Pin Status of MB95100B/AM series" for details about the states of all pins during a reset. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 89 CHAPTER 7 RESET 7.2 Reset Source Register (RSRR) 7.2 MB95100B/AM Series Reset Source Register (RSRR) The reset source register indicates the source or factor causing a reset that has been generated. ■ Configuration of Reset Source Register (RSRR) Figure 7.2-1 Reset Source Register (RSRR) Address 0009H bit7 bit6 bit5 − − CSVR R0/WX R0/WX R,W bit4 bit3 EXTS R,W WDTR PONR R,W R,W SWR 0 1 HWR 0 1 PONR 0 1 WDTR 0 1 EXTS 0 1 CSVR 0 1 bit2 bit1 bit0 HWR R,W SWR R,W Software reset flag bit Read − Factor is software reset Hardware reset flag bit Read − Factor is hardware reset Power-on reset flag bit Read − Factor is power-on reset Watchdog reset flag bit Read − Factor is watchdog reset Initial value XXXXXXXXB Write Writing sets the bit to "0". Write Writing sets the bit to "0". Write Writing sets the bit to "0". Write Writing sets the bit to "0". External reset flag bit Write Read − Writing sets the bit to "0". Factor is external reset Clock supervisor reset flag bit Write Read − Writing sets the bit to "0". Factor is clock supervisor reset R, W : Readable/writable R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) − X 90 : Undefined : Indeterminate FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 7 RESET 7.2 Reset Source Register (RSRR) Table 7.2-1 Functions of Bits in Reset Source Register (RSRR) Bit name Function bit7, bit6 Undefined bits The read value is always "0". These bits are read-only. Writing has no effect on operation. bit5 CSVR: Clock supervisor reset flag bit This bit is set to "1" to indicate that a clock supervisor reset has occurred. Otherwise, the bit retains the value existing before the clock supervisor reset occurred. • Read or write access (0 or 1) to this bit sets it to "0". • The bit value is always "0" in product types that do not have the clock supervisor function. Writing has no effect on the operation. bit4 EXTS: External reset flag bit This bit is set to "1" to indicate that an external reset has occurred. Otherwise, the bit retains the value existing before the reset occurred. • Read or write access (0 or 1) to this bit sets it to "0". bit3 WDTR: watchdog reset flag bit This bit is set to "1" to indicate that an watchdog reset has occurred. Otherwise, the bit retains the value existing before the reset occurred. • Read or write access (0 or 1) to this bit sets it to "0". bit2 PONR: Power-on reset flag bit This bit is set to "1" to indicate that a power-on reset or low-voltage detection reset (option) has occurred. Otherwise, the bit retains the value existing before the reset occurred. • The low-voltage detection reset function is provided for specific models. • Read or write access (0 or 1) to this bit sets it to "0". bit1 HWR: Hardware reset flag bit This bit is set to "1" to indicate that a reset other than a software reset has occurred. When any of bits 2 to 5 is set to "1", therefore, this bit is set to "1" as well. Otherwise, the bit retains the value existing before the reset occurred. • Read or write access (0 or 1) to this bit sets it to "0". bit0 SWR: Software reset flag bit This bit is set to "1" to indicate that a software reset has occurred. Otherwise, the bit retains the value existing before the reset occurred. • Read or write access (0 or 1) to this bit or a power-on reset sets it to "0". Note: Reading the reset source register clears its contents. To use the reset source register for calculation, therefore, you should move the contents of the register to RAM in advance. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 91 CHAPTER 7 RESET 7.2 Reset Source Register (RSRR) MB95100B/AM Series ■ Status of Reset Source Register (RSRR) Table 7.2-2 Status of Reset Source Register Reset Sources − − CSVR EXTS WDTR PONR HWR SWR Power-on reset/ low-voltage detection reset − − ✕ ✕ ✕ 1 1 0 Software reset − − Δ Δ Δ Δ Δ 1 Watchdog reset − − Δ Δ 1 Δ 1 Δ External reset − − Δ 1 Δ Δ 1 Δ Clock supervisor reset − − 1 Δ Δ Δ 1 Δ 1 : Flag set Δ : Previous state saved ✕ : Undefined CSVR : This bit is set to "1" to indicate that a clock supervisor reset has occurred (Always "0" if there is no clock supervisor option) EXTS : This bit is set to "1" to indicate that an external reset has occurred. WDTR : This bit is set to "1" to indicate that a watchdog reset has occurred. PONR : This bit is set to "1" to indicate that a power-on reset or low-voltage detection reset (option) has occurred. HWR : The bit value "1" indicates that a reset source occurs from either CSVR, EXTS, WDTR, or PONR. SWR : This bit is set to "1" to indicate that a software reset has occurred. 92 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 7.3 CHAPTER 7 RESET 7.3 Notes on Using Reset Notes on Using Reset This section explains the notes on using Reset. ■ Notes on Using Reset ● Initialization of the main clock stop detection bit of clock supervisor The main clock stop detection bit (CSVCR:MM) of clock supervisor is initialized only by power-on reset and external reset. The bit is not initialized by the watchdog timer reset/software reset/clock supervisor reset.Therefore, if one of these resets is issued, the CR clock mode continues. ● Initialization of register and bit by reset source Some registers and bits are not initialized by reset source. For the reset source register (RSRR), which of the bit is initialized depends on the reset source. • The main clock stop detection bit (CSVCR:MM) of clock supervisor is initialized only by power-on reset and external reset. • The CR oscillation enable bit (CSVCR:RCE) of clock supervisor is initialized only by power-on reset/ external reset. • The main clock monitoring enable bit (CSVCR:MSVE) of clock supervisor is initialized only by power-on reset. • The oscillation stabilization wait time setting register (WATR) of clock control block is initialized only by power-on reset. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 93 CHAPTER 7 RESET 7.3 Notes on Using Reset 94 MB95100B/AM Series FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 8 INTERRUPTS This section explains the interrupts. 8.1 Interrupts Code: CM26-00105-1E CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 95 CHAPTER 8 INTERRUPTS 8.1 Interrupts 8.1 MB95100B/AM Series Interrupts This section explains the interrupts. ■ Overview of Interrupts The F2MC-8FX family has 24 interrupt request input lines corresponding to peripheral resources, for each of which an interrupt level can be set independently. When a peripheral resource generates an interrupt request, the interrupt request is output to the interrupt controller.The interrupt controller checks the interrupt level of that interrupt request and then passes the occurrence of the interrupt to the CPU. The CPU services the interrupt according to the interrupt acceptance status. Interrupt requests also release the device from standby mode to resume instruction execution. ■ Interrupt Requests from Peripheral Resources Table 8.1-1 shows the interrupt requests corresponding to the peripheral resources. When an interrupt is accepted, a branch to the interrupt service routine takes place with the content of the interrupt vector table address corresponding to the interrupt request as the address of the branch destination. The priority for each interrupt request can be set to one of four levels using the interrupt level setting registers (ILR0 to ILR5). If another interrupt request with the same or lower level occurs during execution of the interrupt service routine, the interrupt is processed after the current interrupt handler routine completes. If interrupt requests of the same level occur at the same time, IRQ0 is assigned the highest priority. 96 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 8 INTERRUPTS 8.1 Interrupts MB95100B/AM Series Table 8.1-1 Interrupt Requests and Interrupt Vectors Vector table address Upper Lower Bit name of interrupt level setting register FFFEH FFFFH - (Mode data) - FFFDH - IRQ0 FFFAH FFFBH L00 [1:0] IRQ1 FFF8H FFF9H L01 [1:0] IRQ2 FFF6H FFF7H L02 [1:0] IRQ3 FFF4H FFF5H L03 [1:0] IRQ4 FFF2H FFF3H L04 [1:0] IRQ5 FFF0H FFF1H L05 [1:0] IRQ6 FFEEH FFEFH L06 [1:0] IRQ7 FFECH FFEDH L07 [1:0] IRQ8 FFEAH FFEBH L08 [1:0] IRQ9 FFE8H FFE9H L09 [1:0] IRQ10 FFE6H FFE7H L10 [1:0] IRQ11 FFE4H FFE5H L11 [1:0] IRQ12 FFE2H FFE3H L12 [1:0] IRQ13 FFE0H FFE1H L13 [1:0] IRQ14 FFDEH FFDFH L14 [1:0] IRQ15 FFDCH FFDDH L15 [1:0] IRQ16 FFDAH FFDBH L16 [1:0] IRQ17 FFD8H FFD9H L17 [1:0] IRQ18 FFD6H FFD7H L18 [1:0] IRQ19 FFD4H FFD5H L19 [1:0] IRQ20 FFD2H FFD3H L20 [1:0] IRQ21 FFD0H FFD1H L21 [1:0] IRQ22 FFCEH FFCFH L22 [1:0] IRQ23 FFCCH FFCDH L23 [1:0] Interrupt request (Reset vector) Priority for equal-level Interrupt requests (generated simultaneously) High Low For interrupt sources, see "APPENDIX B Table of Interrupt Causes". CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 97 CHAPTER 8 INTERRUPTS 8.1 Interrupts 8.1.1 MB95100B/AM Series Interrupt Level Setting Registers (ILR0 to ILR5) The interrupt level setting registers (ILR0 to ILR5) contain 24 pairs of bits assigned for the interrupt requests from different peripheral resources. Each pair of bits (interrupt level setting bits as two-bit data) sets each interrupt level. ■ Configuration of Interrupt Level Setting Registers (ILR0 to ILR5) Figure 8.1-1 Configuration of Interrupt Level Setting Registers Register ILR0 Address 00079H bit7 L03 bit6 [1:0] bit5 L02 bit4 [1:0] bit3 L01 bit2 [1:0] bit1 L00 bit0 [1:0] Initial value R/W 11111111B ILR1 0007AH L07 [1:0] L06 [1:0] L05 [1:0] L04 [1:0] R/W 11111111B ILR2 0007BH L11 [1:0] L10 [1:0] L09 [1:0] L08 [1:0] R/W 11111111B ILR3 0007CH L15 [1:0] L14 [1:0] L13 [1:0] L12 [1:0] R/W 11111111B ILR4 0007DH L19 [1:0] L18 [1:0] L17 [1:0] L16 [1:0] R/W 11111111B ILR5 0007EH L23 [1:0] L22 [1:0] L21 [1:0] L20 [1:0] R/W 11111111B The interrupt level setting registers assign each pair of bits for a different interrupt request. The values of interrupt level setting bits in these registers specify interrupt service priorities (interrupt levels 0 to 3). The interrupt level setting bits are compared with the interrupt level bits in the condition code register (CCR: IL1, IL0). When interrupt level 3 is set for an interrupt request, the CPU ignores the interrupt request. Table 8.1-2 shows the relationships between interrupt level setting bits and interrupt levels. Table 8.1-2 Relationships Between Interrupt Level Setting Bits and Interrupt Levels LXX[1:0] Interrupt Level Priority 00 0 High 01 1 10 2 11 3 Low (No interrupt) XX:00 to 23 Corresponding interrupt number During execution of a main program, the interrupt level bits in the condition code register (CCR: IL1, IL0) are usually "11B". 98 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 8.1.2 CHAPTER 8 INTERRUPTS 8.1 Interrupts Interrupt Processing Steps When an interrupt request is generated by a peripheral resource, the interrupt controller passes the interrupt level to the CPU. When the CPU is ready to accept interrupts, it temporarily halts the program currently being executed and executes an interrupt service routine. ■ Interrupt Processing The procedure of processing an interrupt takes the following steps: the generation of an interrupt resource in a peripheral resource, the execution of the main program, the setting of the interrupt request flag bit, the evaluation of the interrupt request enable bit, the evaluation of interrupt level (ILR0 to ILR5 and CCR:IL1, IL0), the checking for any equal-level interrupt request, and the evaluation of the interrupt enable flag (CCR:I). Figure 8.1-2 illustrates the steps to take for interrupt processing. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 99 CHAPTER 8 INTERRUPTS 8.1 Interrupts MB95100B/AM Series Figure 8.1-2 Interrupt Processing Steps Condition code register (CCR) Internal data bus I START (1) Initialize peripheral resources Check Comparator (7) (5) Release from stop mode Release from sleep mode RAM Release from time-base timer/watch mode Interrupt request flag Interrupt request enabled YES (3) Peripheral resource interrupt request output enabled? NO (4) (3) Level comparator (6) Interrupt from peripheral resource? NO CPU IL AND Each peripheral resource (4) Interrupt controller YES Check interrupt priority and transfer interrupt level to CPU (5) Compare interrupt level with IL bit in PS Interrupt level higher than IL value? YES NO (2) I flag = 1? Run main program YES NO Interrupt service routine Clear interrupt request Save PC and PS onto stack (7) Restore PC and PS Execute interrupt processing (6) RETI 100 FUJITSU MICROELECTRONICS LIMITED PC ←interrupt vector Update IL in PS CM26-10112-4E MB95100B/AM Series CHAPTER 8 INTERRUPTS 8.1 Interrupts (1) Any interrupt request is disabled immediately after a reset. In the peripheral resource initialization program, initialize those peripheral resources which generate interrupts and set their interrupt levels in their respective interrupt level setting registers (ILR0 to ILR5) before starting operating the peripheral resources. The interrupt level can be set to 0, 1, 2, or 3. Level 0 is given the highest priority, and level 1 the second highest. Setting level 3 for a peripheral resource disables interrupts from that resource. (2) Execute the main program (or the interrupt processing routine for nested interrupts). (3) When an interrupt is triggered in a peripheral resource, the interrupt request flag bit of the peripheral resource is set to "1". If the interrupt request enable bit of the peripheral resource has been set to enable interrupts, the interrupt request is then output to the interrupt controller. (4) The interrupt controller always monitors interrupt requests from individual peripheral resources and transfers the highest-priority interrupt level to the CPU among the interrupt levels of the currently generated interrupt requests. The relative priority to be assigned if another request with the same interrupt level occurs simultaneously is also determined at this time. (5) If the received interrupt level or priority is lower than the level set in the interrupt level bits in the condition code register (CCR: IL1, IL0), the CPU checks the content of the interrupt enable flag (CCR:I) and, if interrupts are enabled (CCR:I = 1), accepts the interrupt. (6) The CPU pushes the contents of the program counter (PC) and program status (PS) register onto the stack, fetches the start address of the interrupt processing routine from the corresponding interrupt vector table, changes the value of the interrupt level bits in the condition code register (CCR: IL1, IL0) to the value of the received interrupt level, then starts the execution of the interrupt processing routine. (7) Finally, the CPU uses the RETI instruction to restore the program counter (PC) and program status (PS) values from the stack and resumes execution from the instruction that follows the instruction executed prior to the interrupt. Note: The interrupt request flag bits of peripheral resources are not automatically cleared to "0" after an interrupt request is accepted. The bits must therefore be cleared to "0" by a program (by writing "0" to the interrupt request flag bit) in the interrupt processing routine. An interrupt causes the device to recover from standby mode (low power consumption mode).For details, see Section "6.8 Operations in Low-power Consumption Modes (Standby Modes)". CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 101 CHAPTER 8 INTERRUPTS 8.1 Interrupts 8.1.3 MB95100B/AM Series Nested Interrupts You can set different interrupt levels for two or more interrupt requests from peripheral resources in the interrupt level setting registers (ILR0 to ILR5) to process the nested interrupts. ■ Nested Interrupts If an interrupt request of higher-priority interrupt level occurs while an interrupt service routine is being executed, the CPU halts processing of the current interrupt and accepts the higherpriority interrupt request. The interrupt level can be set to 0 to 3. If it is set to 3, the CPU will accept no interrupt request. [Example: Nested interrupts] To assign higher priority to external interrupts over timer interrupts as an example of processing nested-interrupts, set the timer interrupt and external interrupt levels to 2 and 1, respectively. If an external interrupt occurs while a timer interrupt is being processed with these settings in use, the interrupts are processed as shown in Figure 8.1-3. Figure 8.1-3 Example of Processing Nested Interrupts Main Program Initialize peripheral (1) resources Timer interrupt occurs (2) Timer Interrupt Processing External Interrupt Processing Interrupt level 1 (CCR:IL1,IL0=01B ) Interrupt level 2 ( CCR:IL1,IL0=10B ) ( 3) External interrupt occurs Suspend (4) Process external interrupt Resume Resume main program (8) ( 6) Process timer interrupt (5) Return from external interrupt ( 7) Return from timer interrupt • While a timer interrupt is being processed, the interrupt level bits in the condition code register (CCR: IL1, IL0) hold the same value as that of the interrupt level setting registers (ILR0 to ILR5) corresponding to the current timer interrupt (level 2 in this example). If an interrupt request with a higher-priority interrupt level (level 1 in the example) occurs, the higher-priority interrupt is processed preferentially. • To temporarily disable nested interrupt processing while a timer interrupt is being processed, set the interrupt enable flag in the condition code register to disable interrupts (CCR:I = 0) or set the interrupt level bits (CCR: IL1, IL0) to "00B". • Executing the interrupt return instruction (RETI) after interrupt processing is completed restores the program counter (PC) and program status (PS) values saved in a stack and resumes the processing of the interrupted program.Restoring the program status (PS) also restores the condition code register (CCR) to its value existing prior to the interrupt. 102 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 8 INTERRUPTS 8.1 Interrupts MB95100B/AM Series 8.1.4 Interrupt Processing Time The time between an interrupt request being generated and control being passed to the interrupt processing routine is equal to the sum of the time until the currently executing instruction completes and the interrupt handling time (time required to initiate interrupt processing). This time consists of a maximum of 26 machine clock cycles. ■ Interrupt Processing Time The interrupt request sampling wait time and interrupt handling time intervene between the occurrence and acceptance of an interrupt request and the execution of the relevant interrupt service routine. ● Interrupt request sampling wait time Whether an interrupt request has occurred is determined through the sampling of the interrupt request during the last cycle of each instruction. The CPU cannot therefore recognize interrupt requests during the execution of each instruction. The maximum length of this delay occurs if the interrupt request is generated immediately after the DIVU instruction requiring the longest instruction cycle (17 machine clock cycles) starts executing. ● Interrupt handling time After receiving an interrupt, the CPU requires 9 machine clock cycles to perform the following interrupt processing setup: • Saves the program counter (PC) and program status (PS) values. • Sets the PC to the start address (interrupt vector) of interrupt service routine. • Updates the interrupt level bits (PS:CCR:IL1, IL0) in the program status (PS) register. Figure 8.1-4 Interrupt Processing Time Normal instruction execution Interrupt handling Interrupt processing routine CPU operation Interrupt wait time Interrupt request sampling wait time Interrupt handling time (9 machine clock cycles) Interrupt request generated : Last instruction cycle in which the interrupt request is sampled When an interrupt request is generated immediately after the beginning of execution of the DIVU instruction requiring the longest execution cycle (17 machine clock cycles), it takes an interrupt processing time of 17+9=26 machine clock cycles. The machine clock changes depending on the clock mode and main clock speed switching (gear function). For details, see "CHAPTER 6 CLOCK CONTROLLER". CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 103 CHAPTER 8 INTERRUPTS 8.1 Interrupts 8.1.5 MB95100B/AM Series Stack Operations During Interrupt Processing This section describes how registers are saved and restored during interrupt processing. ■ Stack Operation at the Start of Interrupt Processing Once the CPU accepts an interrupt, it automatically saves the current program counter (PC) and program status (PS) values onto a stack. Figure 8.1-5 shows how the stack is used at the start of interrupt processing. Figure 8.1-5 Stack Operation at Start of Interrupt Processing Immediate before interrupt PS 0870H PC E000H SP 0280H Address 027CH 027DH 027E H 027F H 0280 H 0281 H Memory ×× ×× H ×× ×× ×× ×× H Immediate after interrupt SP 027CH H H H PS 0870H PC E000H H Address 027CH 027DH 027E H 027F H 0280 H 0281 H Memory 0 8 7 0 H E0 0 0 ×× ×× H H H } } PS PC H H ■ Stack Operation upon Returning from Interrupt When the interrupt return instruction (RETI) is executed to end interrupt processing, the program status (PS) and then the program counter (PC) are restored from the stack, in the reverse order from which they were saved to the stack when interrupt processing started. This restores the PS and PC values to their states prior to starting interrupt processing. Note: As the accumulator (A) and temporary accumulator (T) are not saved onto the stack automatically, use the PUSHW and POPW instructions to save and restore the A and T values. 104 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 8 INTERRUPTS 8.1 Interrupts MB95100B/AM Series 8.1.6 Interrupt Processing Stack Area The stack area in RAM is used for interrupt processing. The stack pointer (SP) contains the start address of the stack area. ■ Interrupt Processing Stack Area The stack area is also used to save and restore the program counter (PC) when subroutine call (CALL) or vector call (CALLV) instructions are executed and to temporarily save and restore the registers via the PUSHW and POPW instructions. • The stack area is located in RAM together with the data area. • It is advisable to initialize the stack pointer (SP) to the maximum RAM address and allocate data areas starting from the minimum RAM address. Figure 8.1-6 shows an example of setting the stack area. Figure 8.1-6 Setting Example of Interrupt Processing Stack Area 0000 H I/O 0080 H Data area RAM 0100 H 0200 H Stack area Generalpurpose register 0280 H Recommended SP value (assuming a maximum RAM address of 0280H) Access barred ROM FFFF H Note: The stack area is allocated in descending order of addresses for interrupts, subroutine calls, and the PUSHW instruction; it is deallocated in ascending order of addresses for return (PETI, RET) and POPW instructions. When the stack area address used decreases for nested interrupts or subroutines, prevent the stack area from overlapping the data area or general-purpose register area containing other data. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 105 CHAPTER 8 INTERRUPTS 8.1 Interrupts 106 MB95100B/AM Series FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 9 I/O PORT This chapter describes the functions and operations of the I/O ports. 9.1 Overview of I/O Ports 9.2 Port 0 9.3 Port 1 9.4 Port 2 9.5 Port 3 9.6 Port 4 9.7 Port 5 9.8 Port 6 9.9 Port 7 9.10 Port 8 9.11 Port E 9.12 Port G CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 107 CHAPTER 9 I/O PORT 9.1 Overview of I/O Ports 9.1 MB95100B/AM Series Overview of I/O Ports I/O ports are used to control general-purpose I/O pins. ■ Overview of I/O Ports The I/O port has functions to output data from the CPU and load inputted signals into the CPU, via the port data register (PDR). It is also possible to set the input/output direction of the I/O pins as desired at the bit level, via the port direction register (DDR). Table 9.1-1 lists the registers for each port. Table 9.1-1 Each Port Registers (1 / 2) Register name Read/Write Initial value Port 0 data register (PDR0) R, RM/W 00000000B Port 0 direction register (DDR0) R/W 00000000B Port 1 data register (PDR1) R, RM/W 00000000B Port 1 direction register (DDR1) R/W 00000000B Port 2 data register (PDR2) R, RM/W 00000000B Port 2 direction register (DDR2) R/W 00000000B Port 3 data register (PDR3) R, RM/W 00000000B Port 3 direction register (DDR3) R/W 00000000B Port 4 data register (PDR4) R, RM/W 00000000B Port 4 direction register (DDR4) R/W 00000000B Port 5 data register (PDR5) R, RM/W 00000000B Port 5 direction register (DDR5) R/W 00000000B Port 6 data register (PDR6) R, RM/W 00000000B Port 6 direction register (DDR6) R/W 00000000B Port 7 data register (PDR7) R, RM/W 00000000B Port 7 direction register (DDR7) R/W 00000000B Port 8 data register (PDR8) R, RM/W 00000000B Port 8 direction register (DDR8) R/W 00000000B Port E data register (PDRE) R, RM/W 00000000B Port E direction register (DDRE) R/W 00000000B Port G data register (PDRG) R, RM/W 00000000B Port G direction register (DDRG) R/W 00000000B Port 1 pull-up control register (PUL1) R/W 00000000B Port 2 pull-up control register (PUL2) R/W 00000000B Port 3 pull-up control register (PUL3) R/W 00000000B Port 4 pull-up control register (PUL4) R/W 00000000B Port 5 pull-up control register (PUL5) R/W 00000000B 108 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 9 I/O PORT 9.1 Overview of I/O Ports MB95100B/AM Series Table 9.1-1 Each Port Registers (2 / 2) Register name Read/Write Initial value Port 7 pull-up control register (PUL7) R/W 00000000B Port E pull-up control register (PULE) R/W 00000000B Port G pull-up control register (PULG) R/W 00000000B A/D input disable register lower (AIDRL) R/W 00000000B A/D input disable register upper (AIDRH) R/W 00000000B Input level selection register (ILSR) R/W 00000000B Input level selection register 2* (ILSR2) R/W 00000000B Input level selection register 3* (ILSR3) R/W 00000000B R/W: Readable/Writable (Read value is the same as the write value.) R, RM/W: Readable/Writable (Read value is different from write value, write value is read by read-modify-write (RMW) instruction.) *: Only for 5V products, it is an effective register. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 109 CHAPTER 9 I/O PORT 9.2 Port 0 9.2 MB95100B/AM Series Port 0 Port 0 is a general-purpose I/O port. This section focuses on functions as a general-purpose I/O port. See the chapters on each peripheral function for details about peripheral functions. ■ Configuration of Port 0 Port 0 is made up of the following elements. • General-purpose I/O pins/peripheral function I/O pins • Port 0 data register (PDR0) • Port 0 direction register (DDR0) • Input level selection register 3 (ILSR3) ■ Pins of Port 0 Port 0 has eight I/O pins. Table 9.2-1 lists Pins of the port 0. Table 9.2-1 Pins of Port 0 I/O type Pin name Function Shared peripheral functions Input* Output OD PU P00/INT00 P00 general-purpose I/O INT00 external interrupt input Hysteresis/automotive CMOS - - P01/INT01 P01 general-purpose I/O INT01 external interrupt input Hysteresis/automotive CMOS - - P02/INT02 P02 general-purpose I/O INT02 external interrupt input Hysteresis/automotive CMOS - - P03/INT03 P03 general-purpose I/O INT03 external interrupt input Hysteresis/automotive CMOS - - P04/INT04 P04 general-purpose I/O INT04 external interrupt input Hysteresis/automotive CMOS - - P05/INT05 P05 general-purpose I/O INT05 external interrupt input Hysteresis/automotive CMOS - - P06/INT06 P06 general-purpose I/O INT06 external interrupt input Hysteresis/automotive CMOS - - P07/INT07 P07 general-purpose I/O INT07 external interrupt input Hysteresis/automotive CMOS - - OD: Open drain, PU: Pull-up *:For 5V products, the hysteresis input can be switched to an automotive input. It becomes a hysteresis input besides. 110 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 9 I/O PORT 9.2 Port 0 MB95100B/AM Series ■ Block Diagram of Port 0 Figure 9.2-1 Block Diagram of Port 0 Peripheral function input Peripheral function input enable Hysteresis 0 0 1 PDR read 1 Automotive PDR Pin PDR write Internal bus In bit operation instruction DDR read DDR DDR write Stop, Watch (SPL=1) ILSR3 read ILSR3 ILSR3 write CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 111 CHAPTER 9 I/O PORT 9.2 Port 0 9.2.1 MB95100B/AM Series Port 0 Registers This section describes the port 0 registers. ■ Register Function of Port 0 Table 9.2-2 lists the register functions of port 0. Table 9.2-2 Register Function of Port 0 Register name Data Read Read read-modify-write Write 0 Pin state is "L" level. PDR register value is "0". As output port, outputs "L" level. 1 Pin state is "H" level. PDR register value is "1". As output port, outputs "H" level. PDR0 DDR0 ILSR3* 0 Port input enabled 1 Port output enabled 0 Hysteresis input level selection 1 Automotive input level selection *: Only for 5V products, it is an effective register. Table 9.2-3 lists the correspondence between port 0 pins and each register bit. Table 9.2-3 Correspondence Between Registers and Pins for Port 0 Correspondence between related register bits and pins Pin name PDR0 DDR0 P07 P06 P05 P04 P03 P02 P01 P00 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 ILSR3* bit0 *:Only for 5V products, it is an effective register. 112 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 9.2.2 CHAPTER 9 I/O PORT 9.2 Port 0 Operations of Port 0 This section describes the operations of port 0. ■ Operations of Port 0 ● Operation as an output port • Setting the corresponding DDR register bit to "1" sets a pin as an output port. • When a pin is set as an output port, it outputs the value of the PDR register to pins. • If data is written to the PDR register, the value is stored in the output latch and output to the pin as it is. • Reading the PDR register returns the PDR register value. ● Operation as an input port • Setting the corresponding DDR register bit to "0" sets a pin as an input port. • If data is written to the PDR register, the value is stored in the output latch but not output to the pin. • Reading the PDR register returns the pin value. However, the read-modify-write (RMW) instruction returns the PDR register value. ● Operation as a peripheral function input • Set the DDR register bit, which is corresponding to the peripheral function input pin, to "0" to set a pin as an input port. • Reading the PDR register returns the pin value, regardless of whether the peripheral function uses an input pin. However, the read-modify-write (RMW) instruction returns the PDR register value. ● Operation at reset Resetting the CPU initializes the DDR register values to "0", and sets the port input enabled. ● Operation in stop mode and watch mode • If the pin state specification bit in the standby control register (STBC:SPL) is set to "1" when the device switches to stop or watch mode, the pin is set forcibly to the high-impedance state regardless of the DDR register value. Note that the input is locked to "L" level and blocked in order to prevent leaks due to freed input. However, if the interrupt input is enabled for the external interrupt control register (EIC) of the external interrupt circuit and the interrupt pin selection circuit control register (WICR) of the external interrupt selection circuit, the input is enabled and not blocked. • If the pin state specification bit is "0", the state remains in port I/O or peripheral function I/O and the output is maintained. ● Operation of the external interrupt input pin • Set the DDR register bit, which is corresponding to the external interrupt input pin, to "0". • Pin values are continuously input to the external interrupt circuit. When using the pin for a function other than an interrupt, you must disable the corresponding external interrupt. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 113 CHAPTER 9 I/O PORT 9.2 Port 0 MB95100B/AM Series ● Operation of input revel selection register 3 • The ILSR3 register is a valid register only for 5V models. • Setting bit0 of the ILSR3 register to "1" changes the port 0 input level from the hysteresis input level to the automotive input level. The hysteresis input level is used when bit0 of the ILSR3 register is "0". • Only modify the port 0 input level setting when the peripheral function inputs are halted. Table 9.2-4 shows the pin states of the port 0. Table 9.2-4 Pin State of Port 0 Operating state Normal operation Sleep Stop (SPL=0) Watch (SPL=0) Stop (SPL=1) Watch (SPL=1) At reset Pin state I/O port/ peripheral function I/O Hi-Z Input cutoff (If external interrupts are enabled, the external interrupt can be input.) Hi-Z Input enabled* (Not functional) SPL: Pin state specification bit in standby control register (STBC:SPL) Hi-Z: High impedance *: 114 "Input enabled" means that the input function is in the enabled state. After reset, setting for internal pullup or output pin is recommended. FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 9 I/O PORT 9.3 Port 1 MB95100B/AM Series 9.3 Port 1 Port 1 is a general-purpose I/O port. This section focuses on functions as a general-purpose I/O port. See the chapters on each peripheral function for details about peripheral functions. ■ Configuration of Port 1 Port 1 is made up of the following elements. • General-purpose I/O pins/peripheral function I/O pins • Port 1 data register (PDR1) • Port 1 direction register (DDR1) • Port 1 pull-up control register (PUL1) • Input level selection register (ILSR) • Input level selection register 3 (ILSR3) ■ Pins of Port 1 Port 1 has five I/O pins. Table 9.3-1 lists the pins of port 1. Table 9.3-1 Pins of Port 1 I/O type Pin name Function Shared peripheral functions Input* CMOS - ❍ UO0 UART/SIO ch.0 data output Hysteresis/automotive CMOS - ❍ UO0 UART/SIO ch.0 clock I/O Hysteresis/automotive CMOS - ❍ Hysteresis/automotive CMOS - ❍ Hysteresis/automotive CMOS - ❍ P10/UI0 P10 general-purpose I/O UI0 UART/SIO ch.0 data input P11/UO0 P11 general-purpose I/O P12/UCK0 P12 general-purpose I/O P13/ TRG0/ADTG P13 general-purpose I/O P14/PPG0 P14 general-purpose I/O Hysteresis/CMOS/ automotive Output OD PU TRG0 16-bit PPG ch.0 trigger input ADTG A/D trigger activation input PPG0 16-bit PPG ch.0 output OD: Open drain, PU: Pull-up *: Only for 5V products, the hysteresis input can be switched to the automotive input. It becomes hysteresis input or CMOS input besides. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 115 CHAPTER 9 I/O PORT 9.3 Port 1 MB95100B/AM Series ■ Block Diagram of Port 1 Figure 9.3-1 Block Diagram of Port 1 Hysteresis 0 Only P10 is selectable. Peripheral function input Peripheral function input enable Peripheral function output enable Peripheral function output 0 1 Automotive Pull-up 0 1 1 PDR read CMOS P-ch 1 Pin PDR 0 PDR write In bit operation instruction Only P10, P12 and P13 are selectable. DDR read DDR Internal bus DDR write Stop, Watch (SPL=1) PUL read PUL PUL write ILSR read ILSR ILSR write Only P10 is selectable. ILSR3 read ILSR3 ILSR3 write 116 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 9 I/O PORT 9.3 Port 1 MB95100B/AM Series 9.3.1 Port 1 Registers This section describes the port 1 registers. ■ Register Function of Port 1 Table 9.3-2 lists the register functions of port 1. Table 9.3-2 Register Function of Port 1 Register name Data Read Read read-modify-write Write 0 Pin state is "L" level. PDR register value is "0". As output port, outputs "L" level. 1 Pin state is "H" level. PDR register value is "1". As output port, outputs "H" level. PDR1 DDR1 PUL1 ILSR ILSR3* 0 Port input enabled 1 Port output enabled 0 Pull-up disabled 1 Pull-up enabled 0 Hysteresis input level selection 1 CMOS input level selection 0 Hysteresis input level selection 1 Automotive input level selection *: Only for 5V products, it is an effective register. Table 9.3-3 lists the correspondence between port 1 pins and each register bit. Table 9.3-3 Correspondence Between Registers and Pins for Port 1 Correspondence between related register bits and pins Pin name - - P15 P14 P13 P12 P11 P10 - - bit5 bit4 bit3 bit2 bit1 bit0 - - - - - - - bit0 - - PDR1 DDR1 PUL1 ILSR ILSR3 * bit1 *: Only for 5V products, it is an effective register. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 117 CHAPTER 9 I/O PORT 9.3 Port 1 9.3.2 MB95100B/AM Series Operations of Port 1 This section describes the operations of port 1. ■ Operations of Port 1 ● Operation as an output port • Setting the corresponding DDR register bit to "1" sets a pin as an output port. • For a peripheral function sharing pins, disable its output. • When a pin is set as an output port, it outputs the value of the PDR register to pins. • If data is written to the PDR register, the value is stored in the output latch and output to the pin as it is. • Reading the PDR register returns the PDR register value. ● Operation as an input port • Setting the corresponding DDR register bit to "0" sets a pin as an input port. • For a peripheral function sharing pins, disable its output. • If data is written to the PDR register, the value is stored in the output latch but not output to the pin. • Reading the PDR register returns the pin value. However, the read-modify-write (RMW) instruction returns the PDR register value. ● Operation as a peripheral function output • Setting the output enable bit of a peripheral function sets the corresponding pin as a peripheral function output. • The pin value can be read from the PDR register even if the peripheral function output is enabled. Therefore, the output value of a peripheral function can be read by the read operation on PDR register. However, the read-modify-write (RMW) instruction returns the PDR register value. ● Operation as a peripheral function input • Set the DDR register bit, which is corresponding to the peripheral function input pin, to "0" to set a pin as an input port. • Reading the PDR register returns the pin value, regardless of whether the peripheral function uses an input pin. However, the read-modify-write (RMW) instruction returns the PDR register value. ● Operation at reset Resetting the CPU initializes the DDR register values to "0", and sets the port input enabled. 118 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 9 I/O PORT 9.3 Port 1 MB95100B/AM Series ● Operation in stop mode and watch mode • If the pin state specification bit in the standby control register (STBC:SPL) is set to "1" when the device switches to stop or watch mode, the pin is set forcibly to the high-impedance state regardless of the DDR register value. Note that the input is locked to "L" level and blocked in order to prevent leaks due to freed input. However, if the interrupt input of P10/UI0, P12/UCK0 and P13/TRG0/ADTG port is enabled for the external interrupt control register (EIC) of the external interrupt circuit and the interrupt pin selection circuit control register (WICR) of the external interrupt selection circuit, the input is enabled and not blocked. • If the pin state specification bit is "0", set the DDR register bit, the state remains in port I/O or peripheral function I/O and the output is maintained. ● Operation of the pull-up control register Setting "1" to the PUL register connects the pull-up resistor to the pin. However, when the general-purpose I/O port or shared peripheral resource outputs "L" level, the pull-up resistor is disconnected regardless of the PUL register value. ● Operation of the input level selection register • Writing "1" to the bit0 of ILSR register changes only P10 from the hysteresis input level to the CMOS input level. When the bit0 of ILSR register is "0", it should be the hysteresis input level. • For pins other than P10, the CMOS input level cannot be selected; however, only the hysteresis input level or the automotive input level can. • Make sure that the input level for P10 is changed during the peripheral function (UART/SIO) stopped. ● Operation of input revel selection register 3 • The ILSR3 register is a valid register only for 5V models. Setting bit1 of the ILSR3 register to "1" changes the port 1 input level from the hysteresis input level to the automotive input level. The hysteresis input level is used when bit1 of the ILSR3 register is "0". • P10 only uses the automotive input level when bit0 of the ILSR register is "0". In the case of P10 only, setting "1" to bit0 of the ILSR register has priority over ILSR3. • Only modify the port 1 input level setting when the peripheral functions (UART/SIO) are halted. Table 9.3-4 shows the pin states of the port 1. Table 9.3-4 Pin State of Port 1 Operating state Normal operation Sleep Stop (SPL=0) Watch (SPL=0) Stop (SPL=1) Watch (SPL=1) At reset Pin state I/O port/ peripheral function I/O Hi-Z (the pull-up setting is enabled) Input cutoff Hi-Z Input enabled* (Not functional) SPL: Pin state specification bit in standby control register (STBC:SPL) Hi-Z: High impedance *: "Input enabled" means that the input function is in the enabled state. After reset, setting for internal pullup or output pin is recommended. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 119 CHAPTER 9 I/O PORT 9.4 Port 2 9.4 MB95100B/AM Series Port 2 Port 2 is a general-purpose I/O port. This section focuses on functions as a general-purpose I/O port. See the chapters on each peripheral function for details about peripheral functions. ■ Configuration of Port 2 Port 2 is made up of the following elements. • General-purpose I/O pins/peripheral function I/O pins • Port 2 data register (PDR2) • Port 2 direction register (DDR2) • Port 2 pull-up control register (PUL2) • Input level selection register 3 (ILSR3) ■ Pins of Port 2 Port 2 has five I/O pins. Table 9.4-1 lists the pins of port 2. Table 9.4-1 Pins of Port 2 I/O type Pin name Function Shared peripheral functions Input* Output OD PU P20/PPG00 P20 general-purpose I/O PPG00 8/16-bit PPG0 ch.0 data output Hysteresis/automotive CMOS - ❍ P21/PPG01 P21 general-purpose I/O PPG01 8/16-bit PPG0 ch.1 data output Hysteresis/automotive CMOS - ❍ P22/TO00 P22 general-purpose I/O TO00 8/16-bit compound timer 00 output Hysteresis/automotive CMOS - ❍ P23/TO01 P23 general-purpose I/O TO01 8/16-bit compound timer 01 output Hysteresis/automotive CMOS - ❍ P24/EC0 P24 general-purpose I/O EC0 8/16-bit compound timer ch.0 external clock input Hysteresis/automotive CMOS - ❍ OD: Open drain, PU: Pull-up *:For 5V products, the hysteresis input can be switched to the automotive input. It becomes hysteresis input besides. 120 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 9 I/O PORT 9.4 Port 2 MB95100B/AM Series ■ Block Diagram of Port 2 Figure 9.4-1 Block Diagram of Port 2 Peripheral function input Peripheral function input enable Peripheral function output enable Peripheral function output Hysteresis 0 Pull-up 0 1 1 PDR read Automotive 1 P-ch Pin PDR 0 Only P24 is selectable. PDR write In bit operation instruction Internal bus DDR read DDR DDR write Stop, Watch (SPL=1) PUL read PUL PUL write ILSR3 read ILSR3 ILSR3 write CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 121 CHAPTER 9 I/O PORT 9.4 Port 2 9.4.1 MB95100B/AM Series Port 2 Registers This section describes the port 2 registers. ■ Register Function of Port 2 Table 9.4-2 lists the register functions of port 2. Table 9.4-2 Register Function of Port 2 Register name Data Read Read read-modify-write Write 0 Pin state is "L" level. PDR register value is "0". As output port, outputs "L" level. 1 Pin state is "H" level. PDR register value is "1". As output port, outputs "H" level. PDR2 DDR2 PUL2 ILSR3* 0 Port input enabled 1 Port output enabled 0 Pull-up disabled 1 Pull-up enabled 0 Hysteresis input level selection 1 Automotive input level selection *: Only for 5V products, it is an effective register. Table 9.4-3 lists the correspondence between port 2 pins and each register bit. Table 9.4-3 Correspondence Between Registers and Pins for Port 2 Correspondence between related register bits and pins Pin name - - - P24 P23 P22 P21 P20 - - - bit4 bit3 bit2 bit1 bit0 - - - PDR2 DDR2 PUL2 ILSR3* bit2 *: Only for 5V products, it is an effective register. 122 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 9.4.2 CHAPTER 9 I/O PORT 9.4 Port 2 Operations of Port 2 This section describes the operations of port 2. ■ Operations of Port 2 ● Operation as an output port • Setting the corresponding DDR register bit to "1" sets a pin as an output port. • For a peripheral function sharing pins, disable its output. • When a pin is set as an output port, it outputs the value of the PDR register to pins. • If data is written to the PDR register, the value is stored in the output latch and output to the pin as it is. • Reading the PDR register returns the PDR register value. ● Operation as an input port • Setting the corresponding DDR register bit to "0" sets a pin as an input port. • For a peripheral function sharing pins, disable its output. • If data is written to the PDR register, the value is stored in the output latch but not output to the pin. • Reading the PDR register returns the pin value. However, the read-modify-write (RMW) instruction returns the PDR register value. ● Operation as a peripheral function output • Setting the output enable bit of a peripheral function sets the corresponding pin as a peripheral function output. • The pin value can be read from the PDR register even if the peripheral function output is enabled. Therefore, the output value of a peripheral function can be read by the read operation on PDR register. However, the read-modify-write (RMW) instruction returns the PDR register value. ● Operation as a peripheral function input • Set the DDR register bit, which is corresponding to the peripheral function input pin, to "0" to set a pin as an input port. • Reading the PDR register returns the pin value, regardless of whether the peripheral function uses an input pin. However, the read-modify-write (RMW) instruction returns the PDR register value. ● Operation at reset Resetting the CPU initializes the DDR register values to "0", and sets the port input enabled. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 123 CHAPTER 9 I/O PORT 9.4 Port 2 MB95100B/AM Series ● Operation in stop mode and watch mode • If the pin state specification bit in the standby control register (STBC:SPL) is set to "1" when the device switches to stop or watch mode, the pin is set forcibly to the high-impedance state regardless of the DDR register value. Note that the input is locked to "L" level and blocked in order to prevent leaks due to freed input. However, if the interrupt input of P24/EC0 port is enabled for the external interrupt control register (EIC) of the external interrupt circuit and the interrupt pin selection circuit control register (WICR) of the external interrupt selection circuit, the input is enabled and not blocked. • If the pin state specification bit is "0", the state remains in port I/O or peripheral function I/O and the output is maintained. ● Operation of the pull-up control register Setting "1" to the PUL register connects the pull-up resistor to the pin. However, when the general-purpose I/O port or shared peripheral resource outputs "L" level, the pull-up resistor is disconnected regardless of the PUL register value. ● Operation of input revel selection register 3 • The ILSR3 register is a valid register only for 5V products. • Setting bit2 of the ILSR3 register to "1" changes the port 2 input level from the hysteresis input level to the automotive input level. The hysteresis input level is used when bit2 of the ILSR3 register is "0". • Only modify the port 2 input level setting when the peripheral function inputs are halted. Table 9.4-4 shows the pin states of the port 2. Table 9.4-4 Pin State of Port 2 Operating state Normal operation Sleep Stop (SPL=0) Watch (SPL=0) Stop (SPL=1) Watch (SPL=1) At reset Pin state I/O port/ peripheral function I/O Hi-Z (the pull-up setting is enabled) Input cutoff Hi-Z Input enabled* (Not functional) SPL: Pin state specification bit in standby control register (STBC:SPL) Hi-Z: High impedance *: 124 "Input enabled" means that the input function is in the enabled state. After reset, setting for internal pullup or output pin is recommended. FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 9 I/O PORT 9.5 Port 3 MB95100B/AM Series 9.5 Port 3 Port 3 is a general-purpose I/O port. This section focuses on functions as a general-purpose I/O port. See the chapters on each peripheral function for details about peripheral functions. ■ Configuration of Port 3 Port 3 is made up of the following elements. • General-purpose I/O pins/peripheral function I/O pins • Port 3 data register (PDR3) • Port 3 direction register (DDR3) • Port 3 pull-up control register (PUL3) • A/D input disable register low (AIDRL) • Input level selection register 3 (ILSR3) ■ Pins of Port 3 Port 3 has eight I/O pins. Table 9.5-1 lists the pins of port 3. Table 9.5-1 Pins of Port 3 I/O type Pin name Function Shared peripheral functions Input* Output OD PU P30/AN00 P30 general-purpose I/O AN00 analog input Hysteresis/automotive/ CMOS analog - ❍ P30/AN00 P31 general-purpose I/O AN01 analog input Hysteresis/automotive/ CMOS analog - ❍ P32/AN02 P32 general-purpose I/O AN02 analog input Hysteresis/automotive/ CMOS analog - ❍ P33/AN03 P33 general-purpose I/O AN03 analog input Hysteresis/automotive/ CMOS analog - ❍ P34/AN04 P34 general-purpose I/O AN04 analog input Hysteresis/automotive/ CMOS analog - ❍ P35/AN05 P35 general-purpose I/O AN05 analog input Hysteresis/automotive/ CMOS analog - ❍ P36/AN06 P36 general-purpose I/O AN06 analog input Hysteresis/automotive/ CMOS analog - ❍ P37/AN07 P37 general-purpose I/O AN07 analog input Hysteresis/automotive/ CMOS analog - ❍ OD: Open drain, PU: Pull-up *:For 5V products, the hysteresis input can be switched to the automotive input. It becomes hysteresis input besides. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 125 CHAPTER 9 I/O PORT 9.5 Port 3 MB95100B/AM Series ■ Block Diagram of Port 3 Figure 9.5-1 Block Diagram of Port 3 A/D analog input Hysteresis 0 0 Pull-up 1 1 PDR read Automotive PDR P-ch Pin PDR write In bit operation instruction DDR read DDR Internal bus DDR write Stop, Watch (SPL=1) PUL read PUL PUL write AIDR read AIDR AIDR write ILSR3 read ILSR3 ILSR3 write 126 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 9 I/O PORT 9.5 Port 3 MB95100B/AM Series 9.5.1 Port 3 Registers This section describes the port 3 registers. ■ Register Function of Port 3 Table 9.5-2 lists the register functions of port 3. Table 9.5-2 Register Function of Port 3 Register name Data Read Read read-modify-write Write 0 Pin state is "L" level. PDR register value is "0". As output port, outputs "L" level. 1 Pin state is "H" level. PDR register value is "1". As output port, outputs "H" level. PDR3 DDR3 PUL3 AIDRL ILSR3* 0 Port input enabled 1 Port output enabled 0 Pull-up disabled 1 Pull-up enabled 0 Analog input enabled 1 Port input enabled 0 Hysteresis input level selection 1 Automotive input level selection *: Only for 5V products, it is an effective register. Table 9.5-3 lists the correspondence between port 3 pins and each register bit. Table 9.5-3 Correspondence Between Registers and Pins for Port 3 Correspondence between related register bits and pins Pin name P37 P36 P35 P34 P33 P32 P31 P30 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 PDR3 DDR3 PUL3 AIDRL ILSR3* bit3 *: Only for 5V products, it is an effective register. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 127 CHAPTER 9 I/O PORT 9.5 Port 3 9.5.2 MB95100B/AM Series Operations of Port 3 This section describes the operations of port 3. ■ Operations of Port 3 ● Operation as an output port • Setting the corresponding DDR register bit to "1" sets a pin as an output port. • When a pin is set as an output port, it outputs the value of the PDR register to pins. • If data is written to the PDR register, the value is stored in the output latch and output to the pin as it is. • Reading the PDR register returns the PDR register value. ● Operation as an input port • Setting the corresponding DDR register bit to "0" sets a pin as an input port. • When using the analog input shared pin as an input port, set the corresponding bits in the A/D input disable register low (AIDRL) to "1". • If data is written to the PDR register, the value is stored in the output latch but not output to the pin. • Reading the PDR register returns the pin value. However, the read-modify-write (RMW) instruction returns the PDR register value. ● Operation at reset Resetting the CPU initializes the DDR register and AIDRL register values to "0", and sets the port input disabled. ● Operation in stop mode and watch mode • If the pin state specification bit in the standby control register (STBC:SPL) is set to "1" when the device switches to stop or watch mode, the pin is set forcibly to the high-impedance state regardless of the DDR register value. Note that the input is locked to "L" level and blocked in order to prevent leaks due to freed input. • If the pin state specification bit is "0", the state remains in port I/O or peripheral function I/O and the output is maintained. ● Operation as an analog input • Set the DDR register bit, which is corresponding to the analog input pin, to "0", and set the AIDRL register bit to "0". • Set the corresponding PUL register bit to "0". 128 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 9 I/O PORT 9.5 Port 3 MB95100B/AM Series ● Operation of the pull-up control register Setting "1" to the PUL register connects the pull-up resistor to the pin. However, when the general-purpose I/O port or shared peripheral resource outputs "L" level, the pull-up resistor is disconnected regardless of the PUL register value. ● Operation of input revel selection register 3 • The ILSR3 register is a valid register only for 5V models. • Setting bit3 of the ILSR3 register to "1" changes the port 3 input level from the hysteresis input level to the automotive input level. The hysteresis input level is used when bit3 of the ILSR3 register is "0". Table 9.5-4 shows the pin states of the port 3. Table 9.5-4 Pin State of Port 3 Operating state Normal operation Sleep Stop (SPL=0) Watch (SPL=0) Stop (SPL=1) Watch (SPL=1) At reset Pin state I/O port/ analog input Hi-Z (the pull-up setting is enabled) Input cutoff Hi-Z Input disabled* SPL: Pin state specification bit in standby control register (STBC:SPL) Hi-Z: High impedance *: "Input disabled" means the state that the operation of the input gate close to the pin is disabled. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 129 CHAPTER 9 I/O PORT 9.6 Port 4 9.6 MB95100B/AM Series Port 4 Port 4 is a general-purpose I/O port. This section focuses on functions as a general-purpose I/O port. See the chapters on each peripheral function for details about peripheral functions. ■ Configuration of Port 4 Port 4 is made up of the following elements. • General-purpose I/O pins/peripheral function I/O pins • Port 4 data register (PDR4) • Port 4 direction register (DDR4) • Port 4 pull-up control register (PUL4) • A/D input disable register upper (AIDRH) • Input level selection register 3 (ILSR3) ■ Pins of Port 4 Port 4 has four I/O pins. Table 9.6-1 lists the pins of port 4. Table 9.6-1 Pins of Port 4 I/O type Pin name Function Shared peripheral functions Input* Output OD PU P40/AN08 P40 general-purpose I/O AN08 analog input Hysteresis/automotive/ CMOS analog - ❍ P41/AN09 P41 general-purpose I/O AN09 analog input Hysteresis/automotive/ CMOS analog - ❍ P42/AN10 P42 general-purpose I/O AN10 analog input Hysteresis/automotive/ CMOS analog - ❍ P43/AN11 P43 general-purpose I/O AN11 analog input Hysteresis/automotive/ CMOS analog - ❍ OD: Open drain, PU: Pull-up *: 130 For 5V products, the hysteresis input can be switched to an automotive input. It becomes a hysteresis input besides. FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 9 I/O PORT 9.6 Port 4 MB95100B/AM Series ■ Block Diagram of Port 4 Figure 9.6-1 Block Diagram of Port 4 A/D analog input Hysteresis 0 0 Pull-up 1 1 PDR read Automotive P-ch Pin PDR PDR write In bit operation instruction DDR read Internal bus DDR DDR write Stop, Watch (SPL=1) PUL read PUL PUL write AIDR read AIDR AIDR write ILSR3 read ILSR3 ILSR3 write CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 131 CHAPTER 9 I/O PORT 9.6 Port 4 9.6.1 MB95100B/AM Series Port 4 Registers This section describes the port 4 registers. ■ Register Function of Port 4 Table 9.6-2 lists the register functions of port 4. Table 9.6-2 Register Function of Port 4 Register name Data Read Read read-modify-write Write 0 Pin state is "L" level. PDR register value is "0". As output port, outputs "L" level. 1 Pin state is "H" level. PDR register value is "1". As output port, outputs "H" level. PDR4 DDR4 PUL4 AIDRH ILSR3* 0 Port input enabled 1 Port output enabled 0 Pull-up disabled 1 Pull-up enabled 0 Analog input enabled 1 Port input enabled 0 Hysteresis input level selection 1 Automotive input level selection *: Only for 5V products, it is an effective register. Table 9.6-3 lists the correspondence between port 4 pins and each register bit. Table 9.6-3 Correspondence Between Registers and Pins for Port 4 Correspondence between related register bits and pins Pin name - - - - P43 P42 P41 P40 - - - - bit3 bit2 bit1 bit0 - - - - PDR4 DDR4 PUL4 AIDRH ILSR3* bit4 *: Only for 5V products, it is an effective register. 132 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 9.6.2 CHAPTER 9 I/O PORT 9.6 Port 4 Operations of Port 4 This section describes the operations of port 4. ■ Operations of Port 4 ● Operation as an output port • Setting the corresponding DDR register bit to "1" sets a pin as an output port. • When a pin is set as an output port, it outputs the value of the PDR register to pins. • If data is written to the PDR register, the value is stored in the output latch and output to the pin as it is. • Reading the PDR register returns the PDR register value. ● Operation as an input port • Setting the corresponding DDR register bit to "0" sets a pin as an input port. • When using the analog input shared pin as an input port, set the corresponding bits in the A/D input disable register upper (AIDRH) to "1". • If data is written to the PDR register, the value is stored in the output latch but not output to the pin. • Reading the PDR register returns the pin value. However, the read-modify-write command returns the PDR register value. ● Operation at reset • Resetting the CPU initializes the DDR register and AIDRH register values to "0", and sets the port input disabled. ● Operation in stop mode and watch mode • If the pin state specification bit in the standby control register (STBC:SPL) is set to "1" when the device switches to stop or watch mode, the pin is set forcibly to the high-impedance state regardless of the DDR register value. Note that the input is locked to "L" level and blocked in order to prevent leaks due to freed input. • If the pin state specification bit is "0", the state remains in port I/O or peripheral function I/O and the output is maintained. ● Operation as an analog input • Set the DDR register bit, which is corresponding to the analog input pin, to "0", and set the AIDRH register bit to "0". • Set the corresponding PUL register bit to "0". CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 133 CHAPTER 9 I/O PORT 9.6 Port 4 MB95100B/AM Series ● Operation of the pull-up resistor Setting "1" to the PUL register connects the pull-up resistor to the pin. However, when the general-purpose I/O port or shared peripheral resource outputs "L" level, the pull-up resistor is disconnected regardless of the PUL register value. ● Operation of input level selection register 3 • The ILSR3 register is a valid register only for 5V models. • Setting bit4 of the ILSR3 register to "1" changes the port 4 input level from the hysteresis input level to the automotive input level. The hysteresis input level is used when bit4 of the ILSR3 register is "0". Table 9.6-4 shows the pin states of the port 4. Table 9.6-4 Pin State of Port 4 Operating state Normal operation Sleep Stop (SPL=0) Watch (SPL=0) Stop (SPL=1) Watch (SPL=1) At reset Pin state I/O port/ analog input Hi-Z (the pull-up setting is enabled) Input cutoff Hi-Z Input disabled* SPL: Pin state specification bit in standby control register (STBC:SPL) Hi-Z: High impedance *: "Input disabled" means the state that the operation of the input gate close to the pin is disabled. 134 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 9 I/O PORT 9.7 Port 5 MB95100B/AM Series 9.7 Port 5 Port 5 is a general-purpose I/O port. This section focuses on functions as a general-purpose I/O port. See the chapters on each peripheral function for details about peripheral functions. ■ Configuration of Port 5 Port 5 is made up of the following elements. • General-purpose I/O pins/peripheral function I/O pins • Port 5 data register (PDR5) • Port 5 direction register (DDR5) • Port 5 pull-up control register (PUL5) • Input level selection register (ILSR) • Input level selection register 3 (ILSR3) ■ Pins of Port 5 Port 5 has two I/O pins. Table 9.7-1 lists the pins of port 5. Table 9.7-1 Pins of Port 5 I/O type Pin name Function Shared peripheral functions Input* Output OD PU P50/SCL0 P50 general-purpose I/O SCL0 I2C ch.0 clock I/O Hysteresis/CMOS/ automotive CMOS ❍ - P51/SDA0 P51 general-purpose I/O SDA0 I2C ch.0 data I/O Hysteresis/CMOS/ automotive CMOS ❍ - P52/PPG1 P52 general-purpose I/O PPG1 16-bit PPG ch.1 output Hysteresis/automotive CMOS - ❍ P53 general-purpose I/O TRG1 16-bit PPG ch.1 trigger input Hysteresis/automotive CMOS - ❍ P53/TRG1 OD: Open drain, PU: Pull-up *:For 5V products, the hysteresis input can be switched to the automotive input. It becomes hysteresis input besides. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 135 CHAPTER 9 I/O PORT 9.7 Port 5 MB95100B/AM Series ■ Block Diagram of Port 5 Figure 9.7-1 Block Diagram of Port 5 (Except for P51 and P50) Peripheral function input Peripheral function output enable Peripheral function output Hysteresis 0 0 1 1 PDR read Pull-up Automotive P-ch 1 Pin PDR 0 PDR write Internal bus In bit operation instruction DDR read DDR DDR write Stop, Watch (SPL=1) PUL read PUL PUL write ILSR3 read ILSR3 ILSR3 write 136 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 9 I/O PORT 9.7 Port 5 MB95100B/AM Series Figure 9.7-2 Block Diagram of Port 5 (Only for P51 and P50) Hysteresis Peripheral function input Peripheral function input enable Peripheral function output enable Peripheral function output 0 1 0 Automotive 0 1 1 PDR read CMOS Pin 1 PDR 0 OD Only P50 and P51 are selectable. PDR write Internal bus In bit operation instruction DDR read DDR DDR write Stop, Watch (SPL=1) ILSR read ILSR ILSR write ILSR3 read ILSR3 ILSR3 write CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 137 CHAPTER 9 I/O PORT 9.7 Port 5 9.7.1 MB95100B/AM Series Port 5 Registers This section describes the port 5 registers. ■ Register Function of Port 5 Table 9.7-2 lists the register functions of port 5. Table 9.7-2 Register Function of Port 5 Register name Data Read Read read-modify-write Write 0 Pin state is "L" level. PDR register value is "0". As output port, outputs "L" level. 1 Pin state is "H" level. PDR register value is "1". As output port, outputs "H" level*1. PDR5 DDR5 PUL5 ILSR ILSR3*2 0 Port input enabled 1 Port output enabled 0 Pull-up enabled 1 Pull-up disabled 0 Hysteresis input level selection 1 CMOS input level selection 0 Hysteresis input level selection 1 Automotive input level selection *1: For N-ch open drain pin, this should be Hi-Z. *2: Only for 5V products, it is an effective register. Table 9.7-3 lists the correspondence between port 5 pins and each register bit. Table 9.7-3 Correspondence Between Registers and Pins for Port 5 Correspondence between related register bits and pins Pin name - - - - P53 P52 P51 P50 - - - - bit3 bit2 bit1 bit0 PUL5 - - - - bit3 bit2 - - ILSR - - - - - - bit4 bit3 ILSR3* - - - - PDR5 DDR5 bit5 *: Only for 5V products, it is an effective register. 138 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 9.7.2 CHAPTER 9 I/O PORT 9.7 Port 5 Operations of Port 5 This section describes the operations of port 5. ■ Operations of Port 5 ● Operation as an output port • Setting the corresponding DDR register bit to "1" sets a pin as an output port. • For a peripheral function sharing pins, disable its output. • When a pin is set as an output port, it outputs the value of the PDR register to pins. • If data is written to the PDR register, the value is stored in the output latch and output to the pin as it is. • Reading the PDR register returns the PDR register value. ● Operation as an input port • Setting the corresponding DDR register bit to "0" sets a pin as an input port. • For a peripheral function sharing pins, disable its output. • If data is written to the PDR register, the value is stored in the output latch but not output to the pin. • Reading the PDR register returns the pin value. However, the read-modify-write (RMW) instruction returns the PDR register value. ● Operation as a peripheral function output • Setting the output enable bit of a peripheral function sets the corresponding pin as a peripheral function output. • The pin value can be read from the PDR register even if the peripheral function output is enabled. Therefore, the output value of a peripheral function can be read by the read operation on PDR register. However, the read-modify-write (RMW) instruction returns the PDR register value. ● Operation as a peripheral function input • Set the DDR register bit, which is corresponding to the peripheral function input pin, to "0" to set a pin as an input port. • Reading the PDR register returns the pin value, regardless of whether the peripheral function uses an input pin. However, the read-modify-write (RMW) instruction returns the PDR register value. ● Operation at reset Resetting the CPU initializes the DDR register values to "0", and sets the port input enabled. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 139 CHAPTER 9 I/O PORT 9.7 Port 5 MB95100B/AM Series ● Operation in stop mode and watch mode • If the pin state specification bit in the standby control register (STBC:SPL) is set to "1" when the device switches to stop or watch mode, the pin is set forcibly to the high-impedance state regardless of the DDR register value. Note that the input is locked to "L" level and blocked in order to prevent leaks due to freed input. However, if the peripheral function input (SCL0, SDA0) is enabled, the input is enabled and not blocked. • If the pin state specification bit is "0", the state remains in port I/O or peripheral function I/O and the output is maintained. ● Operation of the pull-up resistor Setting "1" to the PUL register connects the pull-up resistor to the pin. However, when the general-purpose I/O port or shared peripheral resource outputs "L" level, the pull-up resistor is disconnected regardless of the PUL register value. ● Operation of the input level selection register • Setting "1" to the bit4 and bit3 of ILSR register changes only P51 and P50 from the hysteresis input level to the CMOS input level. When the bit4 and bit3 of ILSR register is "0", it should be the hysteresis input level. • Make sure that the input level for P51 and P50 is changed during the peripheral function (I2C) stopped. ● Operation of input level selection register 3 • The ILSR3 register is a valid register only for 5V models. • Setting bit5 of the ILSR3 register to "1" changes the port 5 input level from the hysteresis input level to the automotive input level. The hysteresis input level is used when bit5 of the ILSR3 register is "0". • Only modify the port 5 input level setting when the peripheral function (I2C) is halted. • P51 and P50 only use the automotive input level when bit4 and bit3 of the ILSR register are "0". Setting "1" to bit4 and bit3 of the ILSR register has priority over the ILSR3 register. Table 9.7-4 shows the pin states of the port 5. Table 9.7-4 Pin State of Port 5 Operating state Normal operation Sleep Stop (SPL=0) Watch (SPL=0) Stop (SPL=1) Watch (SPL=1) At reset Pin state I/O port/ peripheral function I/O Hi-Z (the pull-up setting is enabled) Input cutoff Hi-Z Input enabled* (Not functional) SPL: Pin state specification bit in standby control register (STBC:SPL) Hi-Z: High impedance *: 140 "Input enabled" means that the input function is in the enabled state. After reset, setting for internal pullup or output pin is recommended. FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 9 I/O PORT 9.8 Port 6 MB95100B/AM Series 9.8 Port 6 Port 6 is a general-purpose I/O port. This section focuses on functions as a general-purpose I/O port. See the chapters on each peripheral function for details about peripheral functions. ■ Configuration of Port 6 Port 6 is made up of the following elements. • General-purpose I/O pins/peripheral function I/O pins • Port 6 data register (PDR6) • Port 6 direction register (DDR6) • Input level selection register (ILSR) • Input level selection register 3 (ILSR3) ■ Pins of Port 6 Port 6 has eight I/O pins. Table 9.8-1 lists the pins of port 6. Table 9.8-1 Pins of Port 6 I/O type Pin name Function Shared peripheral functions Input* Output OD PU P60/PPG10 P60 general-purpose I/O PPG10 8/16-bit PPG1 ch.0 output Hysteresis/automotive CMOS - - P61/PPG11 P61 general-purpose I/O PPG11 8/16-bit PPG1 ch.1 output Hysteresis/automotive CMOS - - P62/TO10 P62 general-purpose I/O TO10 8/16-bit compound timer 10 output Hysteresis/automotive CMOS - - P63/TO11 P63 general-purpose I/O TO11 8/16-bit compound timer 11 output Hysteresis/automotive CMOS - - P64/EC1 P64 general-purpose I/O EC1 8/16-bit compound timer ch.1 clock input Hysteresis/automotive CMOS - - P65/SCK P65 general-purpose I/O LIN-UART clock I/O Hysteresis/automotive CMOS - - P66/SOT P66 general-purpose I/O LIN-UART data output Hysteresis/automotive CMOS - - P67/SIN P67 general-purpose I/O LIN-UART data input - - Hysteresis/CMOS/ automotive CMOS OD: Open drain, PU: Pull-up *:For 5V products, the hysteresis input can be switched to the automotive input. It becomes hysteresis input besides. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 141 CHAPTER 9 I/O PORT 9.8 Port 6 MB95100B/AM Series ■ Block Diagram of Port 6 Figure 9.8-1 Block Diagram of Port 6 Hysteresis Peripheral function input Peripheral function input enable Peripheral function output enable Peripheral function output Only P67 is selectable. 0 0 1 Automotive 1 CMOS 1 PDR read 0 1 Pin PDR 0 PDR write In bit operation instruction Internal bus DDR read DDR DDR write Stop, Watch (SPL=1) ILSR read ILSR ILSR write Only P67 is selectable. ILSR3 read ILSR3 ILSR3 write 142 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 9 I/O PORT 9.8 Port 6 MB95100B/AM Series 9.8.1 Port 6 Registers This section describes the port 6 registers. ■ Register Function of Port 6 Table 9.8-2 lists the register functions of port 6. Table 9.8-2 Register Function of Port 6 Register name Data Read Read read-modify-write Write 0 Pin state is "L" level. PDR register value is "0". As output port, outputs "L" level. 1 Pin state is "H" level. PDR register value is "1". As output port, outputs "H" level. PDR6 DDR6 ILSR ILSR3* 0 Port input enabled 1 Port output enabled 0 Hysteresis input level selection 1 CMOS input level selection 0 Hysteresis input level selection 1 Automotive input level selection *: Only for 5V products, it is an effective register. Table 9.8-3 lists the correspondence between port 6 pins and each register bit. Table 9.8-3 Correspondence Between Registers and Pins for Port 6 Correspondence between related register bits and pins Pin name PDR6 DDR6 ILSR ILSR3 P67 P66 P65 P64 P63 P62 P61 P60 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 bit2 - - - - - - - * bit6 *: Only for 5V products, it is an effective register. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 143 CHAPTER 9 I/O PORT 9.8 Port 6 9.8.2 MB95100B/AM Series Operations of Port 6 This section describes the operations of port 6. ■ Operations of Port 6 ● Operation as an output port • Setting the corresponding DDR register bit to "1" sets a pin as an output port. • For a peripheral function sharing pins, disable its output. • When a pin is set as an output port, it outputs the value of the PDR register to pins. • If data is written to the PDR register, the value is stored in the output latch and output to the pin as it is. • Reading the PDR register returns the PDR register value. ● Operation as an input port • Setting the corresponding DDR register bit to "0" sets a pin as an input port. • For a peripheral function sharing pins, disable its output. • If data is written to the PDR register, the value is stored in the output latch but not output to the pin. • Reading the PDR register returns the pin value. However, the read-modify-write (RMW) instruction returns the PDR register value. ● Operation as a peripheral function output • Setting the output enable bit of a peripheral function sets the corresponding pin as a peripheral function output. • The pin value can be read from the PDR register even if the peripheral function output is enabled. Therefore, the output value of a peripheral function can be read by the read operation on PDR register. However, the read-modify-write (RMW) command returns the PDR register value. ● Operation as a peripheral function input • Set the DDR register bit, which is corresponding to the peripheral function input pin, to "0" to set a pin as an input port. • Reading the PDR register returns the pin value, regardless of whether the peripheral function uses an input pin. However, the read-modify-write (RMW) instruction returns the PDR register value. ● Operation at reset Resetting the CPU initializes the DDR register values to "0", and sets the port input enabled. 144 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 9 I/O PORT 9.8 Port 6 MB95100B/AM Series ● Operation in stop mode and watch mode • If the pin state specification bit in the standby control register (STBC:SPL) is set to "1" when the device switches to stop or watch mode, the pin is set forcibly to the high-impedance state regardless of the DDR register value. Note that the input is locked to "L" level and blocked in order to prevent leaks due to freed input. However, if the interrupt input of P65/SCK and P67/SIN port is enabled for the external interrupt control register (EIC) of the external interrupt circuit and the interrupt pin selection circuit control register (WICR) of the external interrupt selection circuit, the input is enabled and not blocked. • If the pin state specification bit is "0", the state remains in port I/O or peripheral function I/O and the output is maintained. ● Operation of the input level selection register • Setting "1" to the bit2 of ILSR register changes only P67 from the hysteresis input level to the CMOS input level. When the bit2 of ILSR register is "0", it should be the hysteresis input level. • For pins other than P67, the CMOS input level cannot be selected. Only the hysteresis input level or automotive input level can be selected. • Make sure that the input level for P67 is changed during the peripheral function (LIN-UART) stopped. ● Operation of input revel selection register 3 • The ILSR3 register is a valid register only for 5V models. • Setting bit6 of the ILSR3 register to "1" changes the port 6 input level from the hysteresis input level to the automotive input level. The hysteresis input level is used when bit6 of the ILSR3 register is "0". • Only modify the port 6 input level setting when the peripheral function (LIN-UART) is halted. • P67 only uses the automotive input level when bit2 of the ILSR register is "0". Setting "1" to bit2 of the ILSR register has priority over the ILSR3 register. Table 9.8-4 shows the pin states of the port 6. Table 9.8-4 Pin State of Port 6 Operating state Normal operation Sleep Stop (SPL=0) Watch (SPL=0) Stop (SPL=1) Watch (SPL=1) At reset Pin state I/O port/ peripheral function I/O Hi-Z Input cutoff Hi-Z Input enabled* (Not functional) SPL: Pin state specification bit in standby control register (STBC:SPL) Hi-Z: High impedance *: "Input enabled" means that the input function is in the enabled state. After reset, setting for internal pullup or output pin is recommended. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 145 CHAPTER 9 I/O PORT 9.9 Port 7 9.9 MB95100B/AM Series Port 7 Port 7 is a general-purpose I/O port. This section focuses on functions as a general-purpose I/O port. See the chapters on each peripheral function for details about peripheral functions. ■ Configuration of Port 7 Port 7 is made up of the following elements. • General-purpose I/O pins/peripheral function I/O pins • Port 7 data register (PDR7) • Port 7 direction register (DDR7) • Port 7 pull-up control register (PUL7) • Input level selection register 3 (ILSR3) ■ Pins of Port 7 Port 7 has two I/O pins. Table 9.9-1 lists the pins of port 7. Table 9.9-1 Pins of Port 7 I/O type Pin name Function Shared peripheral functions Input* Output OD PU P70/TO0 P70 general-purpose I/O TO0 16-bit reload timer ch.0 output Hysteresis/ automotive CMOS - ❍ P71/TI0 P71 general-purpose I/O TI0 16-bit reload timer ch.0 trigger input Hysteresis/ automotive CMOS - ❍ OD: Open drain, PU: Pull-up *: For 5V products, the hysteresis input can be switched to the automotive input. It becomes hysteresis input besides. 146 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 9 I/O PORT 9.9 Port 7 MB95100B/AM Series ■ Block Diagram of Port 7 Figure 9.9-1 Block Diagram of Port 7 Peripheral function input Peripheral function output enable Peripheral function output Hysteresis 0 Pull-up 0 1 1 PDR read Automotive P-ch 1 Pin PDR 0 PDR write Internal bus In bit operation instruction DDR read DDR DDR write Stop, Watch (SPL=1) PUL read PUL PUL write ILSR3 read ILSR3 ILSR3 write CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 147 CHAPTER 9 I/O PORT 9.9 Port 7 9.9.1 MB95100B/AM Series Port 7 Registers This section describes the port 7 registers. ■ Register Function of Port 7 Table 9.9-2 lists the register functions of port 7. Table 9.9-2 Register Function of Port 7 Register name Data Read Read read-modify-write Write 0 Pin state is "L" level. PDR register value is "0". As output port, outputs "L" level. 1 Pin state is "H" level. PDR register value is "1". As output port, outputs "H" level*. PDR7 DDR7 PUL7 ILSR3* 0 Port input enabled 1 Port output enabled 0 Pull-up disabled 1 Pull-up enabled 0 Hysteresis input level selection 1 Automotive input level selection *: Only for 5V products, it is an effective register. Table 9.9-3 lists the correspondence between port 7 pins and each register bit. Table 9.9-3 Correspondence Between Registers and Pins for Port 7 Correspondence between related register bits and pins Pin name - - - - - - P71 P70 - - - - - - bit1 bit0 - - - - - - PDR7 DDR7 PUL7 ILSR3*2 bit7 *: Only for 5V products, it is an effective register. 148 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 9.9.2 CHAPTER 9 I/O PORT 9.9 Port 7 Operations of Port 7 This section describes the operations of port 7. ■ Operations of Port 7 ● Operation as an output port • Setting the corresponding DDR register bit to "1" sets a pin as an output port. • For a peripheral function sharing pins, disable its output. • When a pin is set as an output port, it outputs the value of the PDR register to pins. • If data is written to the PDR register, the value is stored in the output latch and output to the pin as it is. • Reading the PDR register returns the PDR register value. ● Operation as an input port • Setting the corresponding DDR register bit to "0" sets a pin as an input port. • For a peripheral function sharing pins, disable its output. • If data is written to the PDR register, the value is stored in the output latch but not output to the pin. • Reading the PDR register returns the pin value. However, the read-modify-write command returns the PDR register value. ● Operation as a peripheral function output • Setting the output enable bit of a peripheral function sets the corresponding pin as a peripheral function output. • The pin value can be read from the PDR register even if the peripheral function output is enabled. Therefore, the output value of a peripheral function can be read by the read operation on PDR register. However, the read-modify-write command returns the PDR register value. ● Operation as a peripheral function input • Set the DDR register bit, which is corresponding to the peripheral function input pin, to "0" to set a pin as an input port. • Reading the PDR register returns the pin value, regardless of whether the peripheral function uses an input pin. However, the read-modify-write command returns the PDR register value. ● Operation at reset • Resetting the CPU initializes the DDR register values to "0", and sets the port input enabled. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 149 CHAPTER 9 I/O PORT 9.9 Port 7 MB95100B/AM Series ● Operation in stop mode and watch mode • If the pin state specification bit in the standby control register (STBC:SPL) is set to "1" when the device switches to stop or watch mode, the pin is set forcibly to the high-impedance state regardless of the DDR register value. Note that the input is locked to "L" level and blocked in order to prevent leaks due to freed input. • If the pin state specification bit is "0", the state remains in port I/O or peripheral function I/O and the output is maintained. ● Operation of the pull-up resistor Setting "1" to the PUL register connects the pull-up resistor to the pin. However, when the general-purpose I/O port or shared peripheral resource outputs "L" level, the pull-up resistor is disconnected regardless of the PUL register value. ● Operation of input level selection register 3 • The ILSR3 register is a valid register only for 5V models. • Setting bit7 of the ILSR3 register to "1" changes the port 7 input level from the hysteresis input level to the automotive input level. The hysteresis input level is used when bit7 of the ILSR3 register is "0". • Only modify the port 7 input level setting when the peripheral functions (UART/SIO) are halted. Table 9.9-4 shows the pin states of the port 7. Table 9.9-4 Pin State of Port 7 Operating state Normal operation Sleep Stop (SPL=0) Watch (SPL=0) Stop (SPL=1) Watch (SPL=1) At reset Pin state I/O port/ peripheral function I/O Hi-Z (the pull-up setting is enabled) Input cutoff Hi-Z Input enabled* (Not functional) SPL: Pin state specification bit in standby control register (STBC:SPL) Hi-Z: High impedance *: 150 "Input enabled" means that the input function is in the enabled state. After reset, setting for internal pullup or output pin is recommended. FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 9 I/O PORT 9.10 Port 8 MB95100B/AM Series 9.10 Port 8 Port 8 is a general-purpose I/O port. This section focuses on functions as a general-purpose I/O port. See the chapters on each peripheral function for details about peripheral functions. ■ Configuration of Port 8 Port 8 is made up of the following elements. • General-purpose I/O pins/peripheral function I/O pins • Port 8 data register (PDR8) • Port 8 direction register (DDR8) • Input level selection register 2 (ILSR2) ■ Pins of Port 8 Port 8 has four I/O pins. Table 9.10-1 lists the pins of port 8. Table 9.10-1 Pins of Port 8 I/O type Pin name Function Shared peripheral functions Input* Output OD PU P80 P80 general-purpose I/O Not shared Hysteresis/automotive CMOS ❍ - P81 P81 general-purpose I/O Not shared Hysteresis/automotive CMOS ❍ - P82 P82 general-purpose I/O Not shared Hysteresis/automotive CMOS ❍ - P83 P83 general-purpose I/O Not shared Hysteresis/automotive CMOS ❍ - OD: Open drain, PU: Pull-up *:For 5V products, the hysteresis input can be switched to an automotive input. It becomes a hysteresis input besides. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 151 CHAPTER 9 I/O PORT 9.10 Port 8 MB95100B/AM Series ■ Block Diagram of Port 8 Figure 9.10-1 Block Diagram of Port 8 Hysteresis 0 0 1 1 PDR read Automotive Pin PDR OD PDR write N-ch Internal bus In bit operation instruction DDR read DDR DDR write Stop, Watch (SPL=1) ILSR2 read ILSR2 ILSR2 write 152 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 9 I/O PORT 9.10 Port 8 MB95100B/AM Series 9.10.1 Port 8 Registers This section describes the port 8 registers. ■ Register Function of Port 8 Table 9.10-2 lists register functions of the port 8. Table 9.10-2 Register Function of Port 8 Register name Data Read Read read-modify-write Write 0 Pin state is "L" level. PDR register value is "0". As output port, outputs "L" level. 1 Pin state is "H" level. PDR register value is "1". As output port, outputs "H" level*1. PDR8 DDR8 ILSR2*2 0 Port input enabled 1 Port output enabled 0 Hysteresis input level selection 1 Automotive input level selection *1: For N-ch open drain pin, this should be Hi-Z. *2: Only for 5V products, it is an effective register. Table 9.10-3 lists the correspondence between port 5 pins and each register bit. Table 9.10-3 Correspondence Between Registers and Pins for Port 5 Correspondence between related register bits and pins Pin name PDR8 DDR8 ILSR2* - - - - P83 P82 P81 P80 - - - - bit3 bit2 bit1 bit0 - - - - bit0 *: Only for 5V products, it is an effective register. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 153 CHAPTER 9 I/O PORT 9.10 Port 8 9.10.2 MB95100B/AM Series Operations of Port 8 This section describes the operations of port 8. ■ Operations of Port 8 ● Operation as an output port • Setting the corresponding DDR register bit to "1" sets a pin as an output port. • When a pin is set as an output port, it outputs the value of the PDR register to pins. • If data is written to the PDR register, the value is stored in the output latch and output to the pin as it is. • Reading the PDR register returns the PDR register value. ● Operation as an input port • Setting the corresponding DDR register bit to "0" sets a pin as an input port. • If data is written to the PDR register, the value is stored in the output latch but not output to the pin. • Reading the PDR register returns the pin value. However, the read-modify-write (RMW) instruction returns the PDR register value. ● Operation at reset Resetting the CPU initializes the DDR register values to "0", and sets the port input enabled. 154 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 9 I/O PORT 9.10 Port 8 MB95100B/AM Series ● Operation in stop mode and watch mode • If the pin state specification bit in the standby control register (STBC:SPL) is set to "1" when the device switches to stop or watch mode, the pin is set forcibly to the high-impedance state regardless of the DDR register value. Note that the input is locked to "L" level and blocked in order to prevent leaks due to freed input. • If the pin state specification bit is "0", the state remains in port I/O or peripheral function I/O and the output is maintained. ● Operation of input level selection register 2 • The ILSR2 register is a valid register only for 5V models. • Setting bit0 of the ILSR2 register to "1" changes the port 8 input level from the hysteresis input level to the automotive input level. The hysteresis input level is used when bit0 of the ILSR2 register is "0". • Only modify the port 8 input level setting when the peripheral function (I2C) is halted. Table 9.10-4 shows the pin states of the port 8. Table 9.10-4 Pin State of Port 8 Operating state Normal operation Sleep Stop (SPL=0) Watch (SPL=0) Stop (SPL=1) Watch (SPL=1) At reset Pin state I/O port/ peripheral function I/O Hi-Z (the pull-up setting is enabled) Input cutoff Hi-Z Input enabled* (Not functional) SPL: Pin state specification bit in standby control register (STBC:SPL) Hi-Z: High impedance *: "Input enabled" means that the input function is in the enabled state. After reset, setting for internal pullup or output pin is recommended. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 155 CHAPTER 9 I/O PORT 9.11 Port E 9.11 MB95100B/AM Series Port E Port E is a general-purpose I/O port. This section focuses on functions as a general-purpose I/O port. See the chapters on each peripheral function for details about peripheral functions. ■ Configuration of Port E Port E is made up of the following elements. • General-purpose I/O pins/peripheral function I/O pins • Port E data register (PDRE) • Port E direction register (DDRE) • Port E pull-up control register (PULE) • Input level selection register 2 (ILSR2) ■ Pins of Port E Port E has four I/O pins. Table 9.11-1 lists Pins of the port E. Table 9.11-1 Pins of Port E I/O type Pin name Function Shared peripheral functions Input* Output OD PU PE0/INT10 PE0 general-purpose I/O INT10 external interrupt input Hysteresis/ automotive CMOS - ❍ PE1/INT11 PE1 general-purpose I/O INT11 external interrupt input Hysteresis/ automotive CMOS - ❍ PE2/INT12 PE2 general-purpose I/O INT12 external interrupt input Hysteresis/ automotive CMOS - ❍ PE3/INT13 PE3 general-purpose I/O INT13 external interrupt input Hysteresis/ automotive CMOS - ❍ OD: Open drain, PU: Pull-up *: For 5V products, the hysteresis input can be switched to the automotive input. It becomes hysteresis input besides. 156 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 9 I/O PORT 9.11 Port E MB95100B/AM Series ■ Block Diagram of Port E Figure 9.11-1 Block Diagram of Port E Peripheral function input Peripheral function input enable Hysteresis 0 0 Pull-up 1 1 PDR read Automotive P-ch Pin PDR PDR write Internal bus In bit operation instruction DDR read DDR DDR write Stop, Watch (SPL=1) PUL read PUL PUL write ILSR2 read ILSR2 ILSR2 write CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 157 CHAPTER 9 I/O PORT 9.11 Port E 9.11.1 MB95100B/AM Series Port E Registers This section describes the port E registers. ■ Register Function of Port E Table 9.11-2 lists register functions of the port E. Table 9.11-2 Register Function of Port E Register name Data Read Read read-modify-write Write 0 Pin state is "L" level. PDR register value is "0". As output port, outputs "L" level. 1 Pin state is "H" level. PDR register value is "1". As output port, outputs "H" level. PDRE DDRE PULE ILSR2* 0 Port input enabled 1 Port output enabled 0 Pull-up disabled 1 Pull-up enabled 0 Hysteresis input level selection 1 Automotive input level selection *: Only for 5V products, it is an effective register. Table 9.11-3 lists the correspondence between port E pins and each register bit. Table 9.11-3 Correspondence Between Registers and Pins for Port E Correspondence between related register bits and pins Pin name - - - - PE3 PE2 PE1 PE0 - - - - bit3 bit2 bit1 bit0 - - - - PDRE DDRE PULE ILSR2* bit1 *: Only for 5V products, it is an effective register. 158 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 9.11.2 CHAPTER 9 I/O PORT 9.11 Port E Operations of Port E This section describes the operations of port E. ■ Operations of Port E ● Operation as an output port • Setting the corresponding DDR register bit to "1" sets a pin as an output port. • When a pin is set as an output port, it outputs the value of the PDR register to pins. • If data is written to the PDR register, the value is stored in the output latch and output to the pin as it is. • Reading the PDR register returns the PDR register value. ● Operation as an input port • Setting the corresponding DDR register bit to "0" sets a pin as an input port. • If data is written to the PDR register, the value is stored in the output latch but not output to the pin. • Reading the PDR register returns the pin value. However, the read-modify-write (RMW) instruction returns the PDR register value. ● Operation at reset Resetting the CPU initializes the DDR register values to "0", and sets the port input enabled. ● Operation in stop mode and watch mode • If the pin state specification bit in the standby control register (STBC:SPL) is set to "1" when the device switches to stop or watch mode, the pin is set forcibly to the high-impedance state regardless of the DDR register value. Note that the input is locked to "L" level and blocked in order to prevent leaks due to freed input. However, if the interrupt input is enabled by the external interrupt control register (EIC) of the external interrupt circuit and the interrupt pin selection circuit control register (WICR) of the external interrupt selection circuit, the input is enabled and not blocked. • If the pin state specification bit is "0", set the DDR register bit, the state remains in port I/O or peripheral function I/O and the output is maintained. ● Operation of the external interrupt input pin • Set the DDR register bit, which is corresponding to the external interrupt input pin, to "0". • Pin values are continuously input to the external interrupt circuit. When using the pin for a function other than an interrupt, you must disable the corresponding external interrupt. ● Operation of the pull-up control register Setting "1" to the PUL register connects the pull-up resistor to the pin. However, when the general-purpose I/O port or shared peripheral resource outputs "L" level, the pull-up resistor is disconnected regardless of the PUL register value. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 159 CHAPTER 9 I/O PORT 9.11 Port E MB95100B/AM Series ● Operation of input level selection register 2 • The ILSR2 register is a valid register only for 5V products. • Setting bit1 of the ILSR2 register to "1" changes the port E input level from the hysteresis input level to the automotive input level. The hysteresis input level is used when bit1 of the ILSR2 register is "0". • Only modify the port E input level setting when the peripheral functions are halted. Table 9.11-4 shows the pin states of the port E. Table 9.11-4 Pin State of Port E Operating state Pin state Normal operation Sleep Stop (SPL=0) Watch (SPL=0) Stop (SPL=1) Watch (SPL=1) At reset I/O port/ peripheral function I/O Hi-Z (the pull-up setting is enabled) Input cutoff (However, an external interrupt can be input when the external interrupt is enable.) Hi-Z Input enabled* (Not functional) SPL: Pin state specification bit in standby control register (STBC:SPL) Hi-Z: High impedance *: 160 "Input enabled" means that the input function is in the enabled state. After reset, setting for internal pullup or output pin is recommended. FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 9 I/O PORT 9.12 Port G MB95100B/AM Series 9.12 Port G Port G is a general-purpose I/O port. This section focuses on functions as a general-purpose I/O port. ■ Configuration of Port G Port G is made up of the following elements. • General-purpose I/O pins • Port G data register (PDRG) • Port G direction register (DDRG) • Port G pull-up control register (PULG) • Input level selection register 2 (ILSR2) ■ Pins of Port G Port G has three I/O pins. Table 9.12-1 lists pins of the port G. Table 9.12-1 Pins of Port G I/O type Pin name Function Shared peripheral functions Input*3 Output OD PU PG0*1 PG0 general-purpose I/O Not shared Hysteresis/automotive CMOS - ❍ PG1/X0A*2 PG1 general-purpose I/O Not shared Hysteresis/automotive CMOS - ❍ PG2/X1A*2 PG2 general-purpose I/O Not shared Hysteresis/automotive CMOS - ❍ OD: Open drain, PU: Pull-up *1:For the 5V product, the C pin is used. *2:For the single-system clock product, the general-purpose port is used; for the dual-system clock product, the sub clock oscillation pin is used. *3:For 5V products, the hysteresis input can be switched to the automotive input. It becomes hysteresis input besides. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 161 CHAPTER 9 I/O PORT 9.12 Port G MB95100B/AM Series ■ Block Diagram of Port G Figure 9.12-1 Block Diagram of Port G Hysteresis 0 0 Pull-up 1 1 PDR read Automotive PDR P-ch Pin PDR write In bit operation instruction Internal bus DDR read DDR DDR write Stop, Watch (SPL=1) PUL read PUL PUL write ILSR2 read ILSR2 ILSR2 write 162 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 9 I/O PORT 9.12 Port G MB95100B/AM Series 9.12.1 Port G Registers This section describes the port G registers. ■ Register Function of Port G Table 9.12-2 lists the port G register functions. Table 9.12-2 Port G Register Function Register name Data Read Read read-modify-write Write 0 Pin state is "L" level. PDR register value is "0". As output port, outputs "L" level. 1 Pin state is "H" level. PDR register value is "1". As output port, outputs "H" level. PDRG DDRG PULG ILSR2* 0 Port input enabled 1 Port output enabled 0 Pull-up disabled 1 Pull-up enabled 0 Hysteresis input level selection 1 Automotive input level selection *: Only for 5V products, it is an effective register. Table 9.12-3 lists the correspondence between port G pins and each register bit. Table 9.12-3 Correspondence Between Registers and Pins for Port G Correspondence between related register bits and pins Pin name - - - - - PG2 PG1 PG0*2 - - - - - bit2 bit1 bit0 - - - - - PDRG DDRG PULG ILSR2*1 bit2 *1: Only for 5V products, it is an effective register. *2: For the 5V product, the C pin is used. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 163 CHAPTER 9 I/O PORT 9.12 Port G 9.12.2 MB95100B/AM Series Operations of Port G This section describes the operations of port G. ■ Operations of Port G ● Operation as an output port • Setting the corresponding DDR register bit to "1" sets a pin as an output port. • When a pin is set as an output port, it outputs the value of the PDR register to pins. • If data is written to the PDR register, the value is stored in the output latch and output to the pin as it is. • Reading the PDR register returns the PDR register value. ● Operation as an input port • Setting the corresponding DDR register bit to "0" sets a pin as an input port. • If data is written to the PDR register, the value is stored in the output latch but not output to the pin. • Reading the PDR register returns the pin value. However, the read-modify-write (RMW) instruction returns the PDR register value. ● Operation at reset Resetting the CPU initializes the DDR register values to "0", and sets the port input enabled. ● Operation in stop mode and watch mode • If the pin state specification bit in the standby control register (STBC:SPL) is set to "1" when the device switches to stop or watch mode, the pin is set forcibly to the high-impedance state regardless of the DDR register value. Note that the input is locked to "L" level and blocked in order to prevent leaks due to freed input. • If the pin state specification bit is "0", the state remains in port I/O and the output is maintained. ● Operation of the pull-up control register Setting "1" to the PUL register connects the pull-up resistor to the pin. However, when the general-purpose I/O port or shared peripheral resource outputs "L" level, the pull-up resistor is disconnected regardless of the PUL register value. ● Operation of input revel selection register 2 • The ILSR2 register is a valid register only for 5V models. • Setting bit2 of the ILSR2 register to "1" changes the port G input level from the hysteresis input level to the automotive input level. The hysteresis input level is used when bit2 of the ILSR2 register is "0". 164 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 9 I/O PORT 9.12 Port G MB95100B/AM Series Table 9.12-4 shows the pin states of the port G. Table 9.12-4 Pin State of Port G Operating state Normal operation Sleep Stop (SPL=0) Watch (SPL=0) Stop (SPL=1) Watch (SPL=1) At reset Pin state I/O port Hi-Z Input cutoff Hi-Z Input enabled* (Not functional) SPL: Pin state specification bit in standby control register (STBC:SPL) Hi-Z: High impedance *: "Input enabled" means that the input function is in the enabled state. After reset, setting for internal pullup or output pin is recommended. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 165 CHAPTER 9 I/O PORT 9.12 Port G 166 MB95100B/AM Series FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 10 TIME-BASE TIMER This chapter describes the functions and operations of the time-base timer. 10.1 Overview of Time-base Timer 10.2 Configuration of Time-base Timer 10.3 Registers of the Time-base Timer 10.4 Interrupts of Time-base Timer 10.5 Explanation of Time-base Timer Operations and Setup Procedure Example 10.6 Notes on Using Time-base Timer Code: CM26-00122-2E Page: 170 CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 167 CHAPTER 10 TIME-BASE TIMER 10.1 Overview of Time-base Timer 10.1 MB95100B/AM Series Overview of Time-base Timer The time-base timer is a 22-bit free-run down-counting counter which is synchronized with the main clock divided by two. The time-base timer has an interval timer function which can repeatedly generate interrupt requests at regular intervals. ■ Interval Timer Function The interval timer function repeatedly generates interrupt requests at regular intervals by using the main clock divided by two as the count clock. • The counter of the time-base timer counts down so that an interrupt request is generated every time the selected interval time elapses. • The interval time can be selected from the following four types. Table 10.1-1 shows the interval times available to the time-base timer. Table 10.1-1 Interval Times of Time-base Timer Internal count clock cycle Interval time 210 ✕ 2/FCH(512.0 μs) 2/FCH(0.5 μs) 212 ✕ 2/FCH(2.05ms) 214 ✕ 2/FCH(8.19ms) 216 ✕ 2/FCH(32.77ms) FCH: Main clock The values in parentheses represent the values used when the main clock operates at 4MHz. 168 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 10 TIME-BASE TIMER 10.2 Configuration of Time-base Timer MB95100B/AM Series 10.2 Configuration of Time-base Timer The time-base timer consists of the following blocks: • Time-base timer counter • Counter clear circuit • Interval timer selector • Time-base Timer Control Register (TBTC) ■ Block Diagram of Time-base Timer Figure 10.2-1 Block Diagram of Time-base Timer Time-base timer counter FCH divided by 2 To prescaler To watchdog timer To clock control block (Main PLL oscillation stabilization wait) × 21 × 22 × 23 × 24 × 25 × 26 × 27 × 28 × 29 × 210 × 211 × 212 × 213 × 214 × 215 × 216 × 217 × 218 × 219 × 220 × 221 × 222 Counter clear (2 14-2)/FCH to (2 1-2)/FCH To clock control block oscillation stabilization wait time selector Watchdog timer clear Resets, stops Main clock Interval timer selector Counter clear circuit Time-base timer interrupt TBIF TBIE − − Time-base timer control register (TBTC) − TBC1 TBC0 TCLR FCH: Main clock CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 169 CHAPTER 10 TIME-BASE TIMER 10.2 Configuration of Time-base Timer MB95100B/AM Series ● Time-base timer counter 22-bit down-counter that uses the main clock divided by two as the count clock. ● Counter clear circuit This circuit controls clearing of the time-base counter. ● Interval timer selector This circuit selects the one bit from four bits in the 22 bits that make up the time-base timer counter to use the interval timer. ● Time-base timer control register (TBTC) This register selects the interval time, clears the counter, controls interrupts and checks the status. ■ Input Clock The time-base timer uses the main clock divided by two as its input clock (count clock). ■ Output Clock The time-base timer supplies clocks to the main clock oscillation stabilization wait time timer, the watchdog timer and the prescaler. 170 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 10 TIME-BASE TIMER 10.3 Registers of the Time-base Timer MB95100B/AM Series 10.3 Registers of the Time-base Timer Figure 10.3-1 shows the register of the Time-base Timer. ■ Registers of the Time-base Timer Figure 10.3-1 Register of the Time-base Timer Time-base timer control register (TBTC) Address bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value 000AH TBIF TBIE − − − TBC1 TBC0 TCLR 00000000B R(RM1),W R/W R/W R/W R0,W R0/WX R0/WX R0/WX R/W : Readable/writable (Read value is the same as write value) R(RM1),W : Readable/writable (Read value is different from write value, "1" is read by read-modify-write (RMW) instruction) R0,W : Write only (Writable, "0" is read) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) − : Undefined CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 171 CHAPTER 10 TIME-BASE TIMER 10.3 Registers of the Time-base Timer 10.3.1 MB95100B/AM Series Time-base Timer Control Register (TBTC) The time-base timer control register (TBTC) selects the interval time, clears the counter, controls interrupts and checks the status. ■ Time-base Timer Control Register (TBTC) Figure 10.3-2 Time-base Timer Control Register (TBTC) Address bit7 bit6 000AH TBIF TBIE R(RM1),W R/W bit5 bit4 bit3 bit2 TBC1 R0/WX R0/WX R0/WX R/W TCLR 0 TBC0 0 0 1 1 0 1 0 1 0 1 00000000 B Clears the counter of time-base timer TBC1 TBIF Initial value bit0 TCLR R0,W Time-base timer initialization bit Write Read No change, "0" is always read No effect on operation 1 TBIE 0 1 bit1 TBC0 R/W Interval time select bit (Main clock FCH = 4MHz) 210× 2/F CH (512.0 s) 212× 2/F CH (2.05ms) 214× 2/F CH (8.19ms) 216× 2/F CH (32.77ms) Time-base timer interrupt request enable bit Disables output of interrupt request Enables output of interrupt request Time-base timer interrupt request flag bit Read Write Interval time has not Clears bit elapsed No change, Interval time has No effect on operation elapsed R/W : Readable/writable (Read value is the same as write value) R(RM1),W : Readable/writable (Read value is different from write value, "1" is read by read-modify-write (RMW) instruction) R0,W : Write only (Writable, "0" is read) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) : Undefined : Initial value 172 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 10 TIME-BASE TIMER 10.3 Registers of the Time-base Timer MB95100B/AM Series Table 10.3-1 Functional Description of Each Bit of Time-base Timer Control Register (TBTC) Bit name bit7 bit6 bit5 to bit3 TBIF: Time-base timer interrupt request flag bit TBIE: Time-base timer interrupt request enable bit Undefined bits Function Set to "1" when interval time selected by the time-base timer elapses. Interrupt request is outputted when this bit and the time-base timer interrupt request enable bit (TBIE) are set to "1". Writing "0": clears the bit. Writing "1": has no effect on operation. "1" is always read in read-modify-write (RMW) instruction. This bit enables/disables output of interrupt requests to the interrupt controller. Writing "0": disables output of time-base timer interrupt requests. Writing "1": enables output of time-base timer interrupt requests. Interrupt request is outputted when this bit and the time-base timer interrupt request flag bit (TBIF) are set to "1". These bits are undefined. • The read value is always "0". • Writing has no effect on the operation. These bits select the interval time. bit2, bit1 bit0 TBC1, TBC0: Interval time select bits TCLR: Time-base timer initialization bit CM26-10112-4E Interval time select bits (Main clock FCH = 4MHz) TBC1 TBC0 0 0 210 ✕ 2/FCH(512.0 μs) 0 1 212 ✕ 2/FCH(2.05ms) 1 0 214 ✕ 2/FCH(8.19ms) 1 1 216 ✕ 2/FCH(32.77ms) This bit clears the time-base timer counter. Writing "0": ignored and has no effect on the operation. Writing "1": initializes all counter bits to "1". The read value is always "0". Note: When the output of the time-base timer is selected as the count clock for the watchdog timer, using this bit to clear the time-base timer also clears the watchdog timer. FUJITSU MICROELECTRONICS LIMITED 173 CHAPTER 10 TIME-BASE TIMER 10.4 Interrupts of Time-base Timer 10.4 MB95100B/AM Series Interrupts of Time-base Timer An interrupt request is triggered when the interval time selected by the timebase timer elapses (interval timer function). ■ Interrupt when Interval Function is in Operation When the time-base timer counter counts down using the internal count clock and the selected time-base timer counter underflows, the time-base timer interrupt request flag bit (TBTC:TBIF) is set to "1". If the time-base timer interrupt request enable bit is enabled (TBTC:TBIE=1), an interrupt request (IRQ19) will be generated to interrupt controller. • Regardless of the value of TBIE bit, TBIF bit is set to "1", when the selected bit underflows. • When TBIF bit is set to "1" and TBIE bit is changed from the disable state to the enable state (0 → 1), an interrupt request is generated immediately. • TBIF bit is not set when the counter is cleared (TBTC:TCLR = 1) and the time-base timer counter underflows at the same time. • Write "1" to TBIF bit to clear an interrupt request in an interrupt processing routine. Note: When enabling the output of interrupt requests after canceling a reset (TBTC:TBIE = 1), always clear TBIF bit at the same time (TBTC:TBIF = 0). Table 10.4-1 Interrupts of Time-base Timer Item 174 Description Interrupt condition Interval time set by "TBTC:TBC1" and "TBC0" has elapsed Interrupt flag TBTC:TBIF Interrupt enable TBTC:TBIE FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 10 TIME-BASE TIMER 10.4 Interrupts of Time-base Timer MB95100B/AM Series ■ Register and Vector Table for Interrupts of Time-base Timer Table 10.4-2 Register and Vector Table for Interrupts of Time-base Timer Interrupt source Time-base timer Interrupt Interrupt level setting register request Registers Setting bit number IRQ19 ILR4 L19 Vector table address Upper Lower FFD4H FFD5H Refer to "CHAPTER 8 INTERRUPTS" for the interrupt request numbers and vector tables of all peripheral functions. Note: If the interval time set for the time-base timer is shorter than the main clock oscillation stabilization wait time, an interrupt request of the time-base timer is generated during the main clock oscillation wait time derived from the transition to the clock mode or standby mode. To prevent this, set the time-base timer interrupt request enable bit of the timebase timer control register (TBTC:TBIE) to "0" to disable interrupts of the time-base timer when entering a mode in which the main clock stops oscillating (stop mode, sub clock mode or sub PLL clock mode). CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 175 CHAPTER 10 TIME-BASE TIMER 10.5 Explanation of Time-base Timer Operations and Setup Procedure Example 10.5 MB95100B/AM Series Explanation of Time-base Timer Operations and Setup Procedure Example This section describes the operations of the interval timer function of the timebase timer. ■ Operations of Time-base Timer The counter of the time-base timer is initialized to "3FFFFFH" after a reset and starts counting while being synchronized with the main clock divided by two. The time-base timer continues to count down as long as the main clock is oscillating. Once the main clock halts, the counter stops counting and is initialized to "3FFFFFH". The settings shown in Figure 10.5-1 are required to use the interval timer function. Figure 10.5-1 Settings of Interval Timer Function TBTC Address: 000AH bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 TBIF TBIE - - - TBC1 TBC0 TCLR 0 1 0 : Bit used 1: Set to "1" 0: Set to "0" When the time-base timer initialization bit in the time-base timer control register (TBTC:TCLR) is set to "1", the counter of the time-base timer is initialized to "3FFFFFH" and continues to count down. When the selected interval time has elapsed, the time-base timer interrupt request flag bit of the time-base timer control register (TBTC:TBIF) becomes "1". In other words, an interrupt request is generated at each interval time selected, based on the time when the counter was last cleared. 176 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 10 TIME-BASE TIMER 10.5 Explanation of Time-base Timer Operations and Setup Procedure Example ■ Clearing Time-base Timer If the time-base timer is cleared when the output of the time-base timer is used in other peripheral functions, this will affect the operation by changing the count time or in other manners. When clearing the counter by using the time-base timer initialization bit (TBTC:TCLR), perform setup so that this does not have unexpected effects on other peripheral functions. When the output of the time-base timer is selected as the count clock for the watchdog timer, clearing the time-base timer also clears the watchdog timer. The time-base timer is cleared not only by the time-base timer initialization bit (TBTC:TCLR), but also when the main clock is stopped and a count is required for the oscillation stabilization wait time. More specifically, the time-base timer is cleared in the following situations: • When moving from the main clock mode or main PLL clock mode to the stop mode • When moving from the main clock mode or main PLL clock mode to the sub clock mode or sub PLL clock mode • At power on • At low-voltage detection reset The counter of the time-base timer is also cleared and stops the operation if a reset occurs while the main clock is still running after the main clock oscillation stabilization wait time has elapsed. The counter, however, continues to operate during a reset if a count is required for the oscillation stabilization wait time. ■ Operating Examples of Time-base Timer Figure 10.5-2 shows operating examples of operation under the following conditions: 1) When a power-on reset is generated 2) When entering the sleep mode during the operation of the interval timer function in the main clock mode or main PLL clock mode 3) When entering the stop mode during the main clock mode or main PLL clock mode 4) When a request is issued to clear the counter The same operation is performed when changing to the time-base timer mode as for when changing to the sleep mode. In the sub clock mode, sub PLL clock mode, main clock mode and main PLL clock mode, the timer operation is stopped during the stop mode, as the time-base timer is cleared and the main clock halts. Upon recovering from the stop mode, the time-base timer is used to count the oscillation stabilization wait time. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 177 CHAPTER 10 TIME-BASE TIMER 10.5 Explanation of Time-base Timer Operations and Setup Procedure Example Figure 10.5-2 Operations of Time-base Timer MB95100B/AM Series Counter value (count down) 3FFFFFH Count value detected in WATR: MWT3, MWT2, MWT1, MWT0 Count value detected in TBTC: TBC1, 0 Interval cycle (TBTC:TBC1,TBC0=11B) Clear by transferring to stop mode 000000H Oscillation stabilization wait time Oscillation stabilization wait time 4) Counter clear (TBTC:TCLR=1) 1) Power-on reset Clear at interval setup Clear in interrupt processing routine TBIF bit TBIE bit Sleep 2)SLP bit (STBC register) Stop Sleep cancelled by timebase timer interrupt (TIRQ) 3)STP bit (STBC register) Stop cancelled by external interrupt • When setting "11B" to interval time select bits of time-base timer control register (TBTC:TBC1, TBC0) (216 x 2/FCH) • TBTC:TBC1,TBC0 : Interval time select bits of time-base timer control register • TBTC:TCLR : Time-base timer initialization bit of time-base timer control register • TBTC:TBIF : Time-base timer interrupt request flag bit of time-base timer control register • TBTC:TBIE : Time-base timer interrupt request enable bit of time-base timer control register • STBC:SLP : Sleep bit of standby control register • STBC:STP : Stop bit of standby control register • WATR:MWT3 to MWT0 : Main clock oscillation stabilization wait time select bit of oscillation stabilization wait time setup register ■ Setup Procedure Example ● Initial setting The time-base timer is set up in the following procedure: 1) Disable interrupts. (TBTC:TBIE = 0) 2) Set the interval time. (TBTC:TBC1, TBC0) 3) Enable interrupts. (TBTC:TBIE = 1) 4) Clear the counter. (TBTC:TCLR = 1) ● Interrupt processing 1) Clear the interrupt request flag.(TBTC:TBIF = 0) 2) Clear the counter. 178 (TBTC:TCLR = 1) FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 10.6 CHAPTER 10 TIME-BASE TIMER 10.6 Notes on Using Time-base Timer Notes on Using Time-base Timer Care must be taken for the following points when using the Time-base Timer. ■ Notes on Using Time-base Timer ● When setting the timer by program The timer cannot be recovered from interrupt processing, when the time-base timer interrupt request flag bit (TBTC:TBIF) is set to "1" and the interrupt request enable bit is enabled (TBTC:TBIE = 1). Always clear TBIF bit in the interrupt processing routine. ● Clearing time-base timer The time-base timer is cleared not only by the time-base timer initialization bit (TBTC:TCLR=1) but also when the oscillation stabilization wait time is required for the main clock. When the time-base timer is selected for the count clock of the watchdog timer (WDTC:CS1, CS0 = 00B or CS1, CS0 = 01B), clearing the time-base timer also clears the watchdog timer. ● Peripheral functions receiving clock from time-base timer In the mode where the source oscillation of the main clock is stopped, the counter is cleared and the time-base timer stops operation. In addition, if the time-base timer is cleared when the output of the time-base timer is used in other peripheral functions, this will affect the operation such as cycle change. The clock for the watchdog timer is also outputted from the initial state. However, as the watchdog timer counter is cleared at the same time, the watchdog timer operates in the normal cycles. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 179 CHAPTER 10 TIME-BASE TIMER 10.6 Notes on Using Time-base Timer 180 MB95100B/AM Series FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 11 WATCHDOG TIMER This chapter describes the functions and operations of the watchdog timer. 11.1 Overview of Watchdog Timer 11.2 Configuration of Watchdog Timer 11.3 Register of The Watchdog Timer 11.4 Explanation of Watchdog Timer Operations and Setup Procedure Example 11.5 Notes on Using Watchdog Timer Code: CM26-00106-3E CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 181 CHAPTER 11 WATCHDOG TIMER 11.1 Overview of Watchdog Timer 11.1 MB95100B/AM Series Overview of Watchdog Timer The watchdog timer functions as a counter used to prevent programs from running out of control. ■ Watchdog Timer Function The watchdog timer functions as a counter used to prevent programs from running out of control. Once the watchdog timer is activated, its counter needs to be cleared at specified intervals regularly. A watchdog reset is generated if the timer is not cleared within a certain amount of time due to a problem such as the program entering an infinite loop. The output of either the time-base timer or watch prescaler can be selected as the count clock for the watchdog timer. The interval times of the watchdog timer are shown in Table 11.1-1. If the counter of the watchdog timer is not cleared, a watchdog reset is generated between the minimum time and the maximum time. Clear the counter of the watchdog timer within the minimum time. Table 11.1-1 Interval Times of Watchdog Timer Count clock type Count clock switch bits (WDTC:CS1, CS0)* Interval time Minimum time Maximum time Time-base timer output (main clock = 4MHz) 00B 524 ms 1.05 s 01B 262 ms 524 ms Watch prescaler output (sub clock = 32.768kHz) 10B 500 ms 1.00 s 11B 250 ms 500 ms *: WDTC:CS1, 0: Count clock switch bit of watchdog timer control register For information about the minimum and maximum times of the watchdog timer interval, refer to "11.4 Explanation of Watchdog Timer Operations and Setup Procedure Example". 182 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 11.2 CHAPTER 11 WATCHDOG TIMER 11.2 Configuration of Watchdog Timer Configuration of Watchdog Timer The watchdog timer consists of the following blocks: • Count clock selector • Watchdog timer counter • Reset control circuit • Watchdog timer clear selector • Counter clear control circuit • Watchdog Timer Control Register (WDTC) ■ Block Diagram of Watchdog Timer Figure 11.2-1 Block Diagram of Watchdog Timer Watchdog timer control register (WDTC) CS1 CS0 − − WTE3 WTE2 WTE1 WTE0 Watchdog timer 221× 2/F CH 220× 2/F CH (Time-base timer output) 214× 2/F CL 213× 2/F CL (Watch prescaler output) Count clock selector Clearing activated Reset control circuit Watchdog timer counter Clear signal from time-base timer Watchdog timer clear selector Reset signal Overflow Clear signal from watch prescaler Sleep mode starts Stop mode starts Time-base timer/ watch mode starts Counter clear control circuit FCH: Main clock FCL: Sub clock CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 183 CHAPTER 11 WATCHDOG TIMER 11.2 Configuration of Watchdog Timer MB95100B/AM Series ● Count clock selector This selector selects the count clock of the watchdog timer counter. ● Watchdog timer counter This is a 1-bit counter that uses the output of either the time-base timer or watch prescaler as the count clock. ● Reset control circuit This circuit generates a reset signal when the watchdog timer counter overflows. ● Watchdog timer clear selector This selector selects the watchdog timer clear signal. ● Counter clear control circuit This circuit controls the clearing and stopping of the watchdog timer counter. ● Watchdog timer control register (WDTC) This register performs setup for activating/clearing the watchdog timer counter as well as for selecting the count clock. ■ Input Clock The watchdog timer uses the output clock from either the time-base timer or watch prescaler as the input clock (count clock). 184 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 11 WATCHDOG TIMER 11.3 Register of The Watchdog Timer MB95100B/AM Series 11.3 Register of The Watchdog Timer Figure 11.3-1 shows the register of the watchdog timer. ■ Register of The Watchdog Timer Figure 11.3-1 Register of The Watchdog Timer Watchdog timer control register (WDTC) Address bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value 000CH CS1 CS0 − − WTE3 WTE2 WTE1 WTE0 00000000B R/W R/W R0,W R0,W R0,W R0,W R/W R0,W R0/WX − R0/WX R0/WX : Readable/writable (Read value is the same as write value) : Write only (Writable, "0" is read) : Undefined bit (Read value is "0", writing has no effect on operation) : Undefined CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 185 CHAPTER 11 WATCHDOG TIMER 11.3 Register of The Watchdog Timer 11.3.1 MB95100B/AM Series Watchdog Timer Control Register (WDTC) The watchdog timer control register (WDTC) activates or clears the watchdog timer. ■ Watchdog Timer Control Register (WDTC) Figure 11.3-2 Watchdog Timer Control Register (WDTC) Address 000C H bit7 CS1 R/W bit6 CS0 R/W bit5 bit4 bit3 − − WTE3 R0/WX R0/WX R0,W bit2 WTE2 R0,W WTE3 WTE2 WTE1 WTE0 0 1 0 Other than above CS1 0 0 1 1 CS0 0 1 0 1 1 bit1 bit0 WTE1 WTE0 R0,W R0,W Initial value 00000000 B Watchdog control bits • Activate watchdog timer (in first write after reset) • Clear watchdog timer (in second or succeeding write after reset) No effect on operation Count clock switch bits Output cycle of time-base timer (221/FCH) Output cycle of time-base timer (220/FCH) Output cycle of watch prescaler (214/FCL) Output cycle of watch prescaler (213/FCL) R/W : Readable/writable (Read value is the same as write value) R0,W : Write only (Writable, "0" is read) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) − : Undefined : Initial value FCH : Main clock FCL : Sub clock 186 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 11 WATCHDOG TIMER 11.3 Register of The Watchdog Timer MB95100B/AM Series Table 11.3-1 Functional Description of Each Bit of Watchdog Timer Control Register (WDTC) Bit name Function These bits select the count clock of the watchdog timer. bit7, bit6 CS1, CS0: Count clock switch bits CS1 CS0 Count clock switch bits 0 0 Output cycle of time-base timer (221/FCH) 0 1 Output cycle of time-base timer (220/FCH) 1 0 Output cycle of watch prescaler (214/FCL) 1 1 Output cycle of watch prescaler (213/FCL) • Write to these bits at the same time as activating the watchdog timer by the watchdog control bits. • No change can be made once the watchdog timer is activated. Note: Always select the output of the watch prescaler in the sub clock mode or sub PLL clock mode, as the time-base timer is stopped in these modes. Do not select the output of the watch prescaler in single clock product. bit5, bit4 Undefined bits bit3 to bit0 WTE3, WTE2, WTE1, WTE0: Watchdog control bits These bits are undefined. • The read value is "00B". • Writing has no effect on the operation. These bits are used to control the watchdog timer. Writing "0101B": activates the watchdog timer (in first write after reset) or clears it (in second or succeeding write after reset). Writing other than "0101B": has no effect on operation. • The read value is "0000B". Read-modify-write (RMW) instructions cannot be used. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 187 CHAPTER 11 WATCHDOG TIMER 11.4 Explanation of Watchdog Timer Operations and Setup Procedure Example 11.4 MB95100B/AM Series Explanation of Watchdog Timer Operations and Setup Procedure Example The watchdog timer generates a watchdog reset when the watchdog timer counter overflows. ■ Operations of Watchdog Timer ● How to activate the watchdog timer • The timer of the watchdog timer is activated when "0101B" is written to the watchdog control bits of the watchdog timer control register (WDTC:WTE3 to WTE0) for the first time after a reset. The count clock switch bits of the watchdog timer control register (WDTC:CS1,CS0) should also be set at the same time. • Once the watchdog timer is activated, a reset is the only way to stop its operation. ● Clearing the watchdog timer • When the counter of the watchdog timer is not cleared within the interval time, it overflows, allowing the watchdog timer to generate a watchdog reset. • The counter of the watchdog timer is cleared when "0101B" is written to the watchdog control bits of the watchdog timer control register (WDTC:WTE3 to WTE0) for the second or any succeeding time. • The watchdog timer is cleared at the same time as the timer selected as the count clock (time-base timer or watch prescaler) is cleared. ● Operations in standby mode Regardless of the clock mode selected, the watchdog timer clears its counter and stops the operation when entering a standby mode (sleep/stop/time-base timer/watch). Once released from the standby mode, the timer restarts the operation. Note: The watchdog timer is also cleared when the timer selected as the count clock (timebase timer or watch prescaler) is cleared. For this reason, the watchdog timer cannot function as such, if the software is set to clear the selected timer repeatedly during the interval time of the watchdog timer. 188 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 11 WATCHDOG TIMER 11.4 Explanation of Watchdog Timer Operations and Setup Procedure Example MB95100B/AM Series ● Interval time The interval time varies depending on the timing for clearing the watchdog timer. Figure 11.41 shows the correlation between the clearing timing of the watchdog timer and the interval time. Figure 11.4-1 Clearing Timing and Interval Time of Watchdog Timer (Main clock = 4MHz, WDTC:CS1, CS0=00B) 524ms Minimum time Time-base timer count clock output Watchdog clear Overflow Watchdog 1-bit counter Watchdog reset Maximum time 1.05s Time-base timer count clock output Watchdog clear Overflow Watchdog 1-bit counter Watchdog reset ● Operation in the sub clock mode When a watchdog reset is generated in the sub clock mode, the timer starts operating in the main clock mode after the oscillation stabilization wait time has elapsed. The reset signal is outputted during this oscillation stabilization wait time. ■ Setup Procedure Example The watchdog timer is set up in the following procedure: 1) Select the count clock. (WDTC:CS1, CS0) 2) Activate the watchdog timer. (WDTC:WTE3 to WTE0 = 0101B) 3) Clear the watchdog timer. (WDTC:WTE3 to WTE0 = 0101B) CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 189 CHAPTER 11 WATCHDOG TIMER 11.5 Notes on Using Watchdog Timer 11.5 MB95100B/AM Series Notes on Using Watchdog Timer Care must be taken for the following points when using the watchdog timer. ■ Notes on Using Watchdog Timer ● Stopping the watchdog timer Once activated, the watchdog timer cannot be stopped until a reset is generated. ● Selecting the count clock The count clock switch bits (WDTC:CS1, 0) can be rewritten only when the watchdog control bits (WDTC:WTE3 to WTE0) are set to "0101B" upon the activation of the watchdog timer. The count clock switch bits cannot be written by a bit operation instruction. Moreover, the bit settings should not be changed once the timer is activated. In the sub clock mode, the time-base timer does not operate because the main clock stops oscillating. In order to operate the watchdog timer in the sub clock mode, it is necessary to select the watch prescaler as the count clock beforehand and set "WDTC:CS1, 0" to "10B" or "11B". ● Clearing the watchdog timer Clearing the counter used for the count clock of the watchdog timer (time-base timer or watch prescaler) also clears the counter of the watchdog timer. The counter of the watchdog timer is cleared when entering the sleep mode, stop mode or watch mode. ● Programming precaution When creating a program in which the watchdog timer is cleared repeatedly in the main loop, set the processing time of the main loop including the interrupt processing time to the minimum watchdog timer interval time or shorter. 190 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 12 WATCH PRESCALER This chapter describes the functions and operations of the watch prescaler. 12.1 Overview of Watch Prescaler 12.2 Configuration of Watch Prescaler 12.3 Registers of the Watch Prescaler 12.4 Interrupts of Watch Prescaler 12.5 Explanation of Watch Prescaler Operations and Setup Procedure Example 12.6 Notes on Using Watch Prescaler 12.7 Sample Programs for Watch Prescaler Code: CM26-00107-1E CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 191 CHAPTER 12 WATCH PRESCALER 12.1 Overview of Watch Prescaler 12.1 MB95100B/AM Series Overview of Watch Prescaler The watch prescaler is a 15-bit down-counting, free-run counter, which is synchronized with the sub clock divided by two. It has an interval timer function that continuously generates interrupt requests at regular intervals. ■ Interval Timer Function The interval timer function continuously generates interrupt requests at regular intervals, using the sub clock divided by two as its count clock. • The counter of the watch prescaler counts down and an interrupt request is generated every time the selected interval time has elapsed. • The interval time can be selected from the following four types: Table 12.1-1 shows the interval times of the watch prescaler. Table 12.1-1 Interval Times of Watch Prescaler Internal count clock cycle Interval time 211 ✕ 2/FCL(125ms) 2/FCL (61.0 μs) 212 ✕ 2/FCL(250ms) 213 ✕ 2/FCL(500ms) 214 ✕ 2/FCL(1.00s) FCL: sub clock The values in parentheses represent the values achieved when the sub clock operates at 32.768kHz. Note: The watch prescaler cannot be used in single clock product. 192 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 12 WATCH PRESCALER 12.2 Configuration of Watch Prescaler MB95100B/AM Series 12.2 Configuration of Watch Prescaler The watch prescaler consists of the following blocks: • Watch prescaler counter • Counter clear circuit • Interval timer selector • Watch Prescaler Control Register (WPCR) ■ Block Diagram of Watch Prescaler Figure 12.2-1 Block Diagram of Watch Prescaler To oscillation stabilization wait timer of sub clock, watchdog timer, watch counter Watch prescaler counter (counter) FCL divided by 2 × 21 × 22 × 23 × 24 × 25 × 26 × 27 × 28 × 29 × 210 × 211 × 212 × 213 × 214 × 215 Counter clear Watchdog timer clear ? Resets, stops Sub clock Interrupt of watch prescaler (To the selector of watch counter) (215-2)/FCL to (21-2)/FCL To clock control oscillation stabilization wait time selector Counter clear circuit WTIF WTIE − − − Watch prescaler control register (WPCR) Interval timer selector WTC1 WTC0 WCLR FCL : Sub clock CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 193 CHAPTER 12 WATCH PRESCALER 12.2 Configuration of Watch Prescaler MB95100B/AM Series ● Watch prescaler counter (counter) This is a 15-bit down-counter that uses the sub clock divided by two as its count clock. ● Counter clear circuit This circuit controls the clearing of the watch prescaler. ● Interval timer selector This circuit selects one out of the four bits used for the interval timer among 15 bits available in the watch prescaler counter. ● Watch prescaler control register (WPCR) This register selects the interval time, clears the counter, controls interrupts and checks the status. ■ Input Clock The watch prescaler uses the sub clock divided by two as its input clock (count clock). ■ Output Clock The watch prescaler supplies its clock to the timer for the oscillation stabilization wait time of the sub clock, the watchdog timer and the watch counter. 194 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 12 WATCH PRESCALER 12.3 Registers of the Watch Prescaler MB95100B/AM Series 12.3 Registers of the Watch Prescaler Figure 12.3-1 shows the register of the watch prescaler. ■ Register of the Watch Prescaler Figure 12.3-1 Register of the Watch Prescaler Watch Prescaler Control Register (WPCR) 000BH bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value WTIF WTIE − − − WTC1 WTC0 WCLR 00000000B R(RM1),W R/W R/W R/W R0,W R0/WX R0/WX R0/WX R/W : Readable/writable (Read value is the same as write value) R(RM1),W : Readable/writable (Read value is different from write value, "1" is read by read-modify-write (RMW) instruction) R0,W : Write only (Writable, "0" is read) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) − : Undefined CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 195 CHAPTER 12 WATCH PRESCALER 12.3 Registers of the Watch Prescaler 12.3.1 MB95100B/AM Series Watch Prescaler Control Register (WPCR) The watch prescaler control register (WPCR) is a register used to select the interval time, clear the counter, control interrupts and check the status. ■ Watch Prescaler Control Register (WPCR) Figure 12.3-2 Watch Prescaler Control Register (WPCR) Address 000B H bit7 bit6 WTIF WTIE R(RM1),W R/W bit5 bit4 bit3 bit2 bit1 − WTC1 WTC0 − − R/W R0/WX R0/WX R0/WX R/W WCLR 0 1 WTIE 0 1 WTIF 0 1 Initial value 00000000 B Watch timer initialization bit Read Write "0" is always read No change, No effect on operation Clears watch prescaler − counter WTC1 WTC0 0 0 1 1 bit0 WCLR R0,W 0 1 0 1 Watch interrupt interval timer time select bit (Sub clock FCL = 32.768kHz) 211 × 2/FCL (125ms) 212 × 2/FCL (250ms) 213 × 2/FCL (500ms) 214 × 2/FCL (1.00s) Interrupt request enable bit Disables interrupt request output Enables interrupt request output Watch interrupt request flag bit Read Write Interval time has Clears the bit not elapsed Interval time has elapsed No change, No effect on operation R/W : Readable/writable (Read value is the same as write value) R(RM1),W: Readable/writable (Read value is different from write value, "1" is read by read-modify-write (RMW) instruction) R0,W : Write only (Writable, "0" is read) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) − : Undefined : Initial value 196 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 12 WATCH PRESCALER 12.3 Registers of the Watch Prescaler MB95100B/AM Series Table 12.3-1 Functional Description of Each Bit of Watch Prescaler Control Register (WPCR) Bit name Function bit7 WTIF: Watch interrupt request flag bit This bit becomes "1" when the selected interval time of the watch prescaler has elapsed. • Interrupt requests are generated when this bit and the interrupt request enable bit (WTIE) are set to "1". Writing "0": sets this bit to "0". Writing "1": ignored and has no effect on the operation. • "1" is always read in read-modify-write (RMW) instruction. bit6 WTIE: Interrupt request enable bit This bit enables/disables output of interrupt requests to the interrupt controller. Writing "0": disables the interrupt request output of the watch prescaler. Writing "1": enables the interrupt request output of the watch prescaler. Interrupt requests are outputted when this bit and the watch interrupt request flag bit (WTIF) are set to "1". bit5 to bit3 Undefined bits These bits are undefined. • The read value is always "0". • Writing has no effect on the operation. These bits select the interval time. bit2, bit1 bit0 WTC1, WTC0: Watch interrupt interval time select bits WCLR: Watch timer initialization bit CM26-10112-4E WTC1 WTC0 Interval time select bits (sub clock FCL = 32.768kHz) 0 0 211 ✕ 2/FCL(125ms) 0 1 212 ✕ 2/FCL(250ms) 1 0 213 ✕ 2/FCL(500ms) 1 1 214 ✕ 2/FCL(1.00s) This bit clears the counter for the watch prescaler. Writing "0": ignored and has no effect on the operation. Writing "1": initializes all counter bits to "1". The read value is always "0". Note: When the output of the watch prescaler is selected as the count clock of the watchdog timer, clearing the watch prescaler with this bit also clears the watchdog timer. FUJITSU MICROELECTRONICS LIMITED 197 CHAPTER 12 WATCH PRESCALER 12.4 Interrupts of Watch Prescaler 12.4 MB95100B/AM Series Interrupts of Watch Prescaler An interrupt request is generated when the selected interval time of the watch prescaler has elapsed (interval timer function). ■ Interrupts in Operation of Interval Timer Function (Watch Interrupts) In any mode other than the main clock stop mode, the watch interrupt request flag bit is set to "1" (WPCR:WTIF = 1), when the watch prescaler counter counts up by using the source oscillation of the sub clock and the time of the interval timer has elapsed. If the interrupt request enable bit is also enabled (WPCR:WTIE = 1) and watch counter start interrupt request enable bit of the watch counter is disabled (WCSR:ISEL=0), an interrupt request (IRQ20) occurs from watch prescaler to an interrupt controller. • Regardless of the value in the WTIE bit, the WTIF bit is set to "1" when the time set by the watch interrupt interval time select bits has been reached. • When the WTIF bit is set to "1", changing the WTIE bit from the disable state to the enable state (WPCR:WTIE = 0 → 1) immediately generates an interrupt request. • The WTIF bit cannot be set when the counter is cleared (WPCR:WCLR = 1) at the same time as the selected bit overflows. • Write "0" to the WTIF bit in the interrupt processing routine to clear an interrupt request to "0". Note: When enabling the output of interrupt requests (WPCR:WTIE = 1) after canceling a reset, always clear the WTIF bit at the same time (WPCR:WTIF=0). ■ Interrupts of Watch Prescaler Table 12.4-1 Interrupts of Watch Prescaler Item Description Interrupt condition 198 Interval time set by "WPCR:WTC1" and "WTC0" has elapsed. Interrupt flag WPCR:WTIF Interrupt enable WPCR:WTIE FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 12 WATCH PRESCALER 12.4 Interrupts of Watch Prescaler MB95100B/AM Series ■ Register and Vector Table Related to Interrupts of Watch Prescaler Table 12.4-2 Register and Vector Table Related to Interrupts of Watch Prescaler Interrupt source Watch prescaler* Interrupt level setting register Interrupt request number Registers Setting bit Upper Lower IRQ20 ILR5 L20 FFD2H FFD3H Vector table address *: The watch prescaler shares the same interrupt request number and vector table as the watch counter. Refer to "CHAPTER 8 INTERRUPTS" for the interrupt request numbers and vector tables of all peripheral functions. Note: If the interval time set for the watch prescaler is shorter than the oscillation stabilization wait time of the sub clock, an interrupt request of the watch prescaler is generated during the oscillation stabilization wait time of the sub clock required for recovery by an external interrupt upon the transition from the sub clock mode or the sub PLL clock mode to the stop mode. To prevent this, set the interrupt request enable bit (WPCR:WTIE) in the watch prescaler control register to "0" to disable interrupts of the watch prescaler when entering the stop mode during the sub clock mode or the sub PLL clock mode. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 199 CHAPTER 12 WATCH PRESCALER 12.5 Explanation of Watch Prescaler Operations and Setup Procedure Example 12.5 MB95100B/AM Series Explanation of Watch Prescaler Operations and Setup Procedure Example The watch prescaler operates as an interval timer. ■ Operations of Interval Timer Function (Watch Prescaler) The counter of the watch prescaler continues to count down using the sub clock divided by two as its count clock as long as the sub clock oscillates. When cleared (WPCR:WCLR=1), the counter starts to count down from "7FFFH". Once "0000H" is reached, the counter returns to "7FFFH" to continue the count. When the time set by the interrupt interval time select bits is reached during down-counting, the watch interrupt request flag bit (WPCR:WTIF) is set to "1" in any mode other than the main clock stop mode. In other words, a watch interrupt request is generated at each selected interval time, based on the time when the counter was last cleared. ■ Clearing Watch Prescaler If the watch prescaler is cleared when the output of the watch prescaler is used in other peripheral functions, this will affect the operation by changing the count time or in other manners. When clearing the counter by using the watch prescaler initialization bit (WPCR:WCLR), perform setup so that this does not have unexpected effects on other peripheral functions. When the output of the watch prescaler is selected as the count clock, clearing the watch prescaler also clears the watchdog timer. The watch prescaler is cleared not only by the watch prescaler initialization bit (WPCR:WCLR) but also when the sub clock is stopped and a count is required for the oscillation stabilization wait time. • When moving from the sub clock mode or sub PLL clock mode to the stop mode • When the sub clock oscillation stop bit in the system clock control register (SYCC:SUBS) is set to "1" in the main clock mode or main PLL clock mode In addition, the counter of the watch prescaler is cleared and stops operation when a reset is generated. ■ Operating Examples of Watch Prescaler Figure 12.5-1 shows operating examples under the following conditions: 1) When a power-on reset is generated 2) When entering the sleep mode during the operation of the interval timer function in the sub clock mode or sub PLL clock mode 3) When entering the stop mode during the operation of the interval timer function in the sub clock mode or sub PLL clock mode 4) When a request is issued to clear the counter The same operation is performed when changing to the watch mode as for when changing to the sleep mode. 200 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 12 WATCH PRESCALER 12.5 Explanation of Watch Prescaler Operations and Setup Procedure Example Figure 12.5-1 Operating Examples of Watch Prescaler MB95100B/AM Series Counter value (count down) 7FFF H Count value detected in WATR:SWT3 to SWT0 Count value detected in WPCR:WTC1, WTC0 Interval cycle (WPCR:WTC1, WTC0 = 11B) 0000 H Sub clock oscillation stabilization wait time Clear by transferring to stop mode 4) Counter clear (WPCR:WCLR=1) Sub clock oscillation stabilization wait time 1) Power-on reset Clear in interrupt processing routine Clear at interval setup WTIF bit WTIE bit Sleep 2)SLP bit (STBC register) Stop Sleep cancelled by watch interrupt (WIRQ 3)STP bit (STBC register) Stop cancelled by external interrupt • When setting interval time select bits in the watch prescaler control register (WPCR:WTC1, WTC0) to "11B" (214x 2/FCL) • WPCR:WTC1,WTC0 : Interval time select bits in watch prescaler control register • WPCR:WCLR : Watch timer initialization bit in watch prescaler control register • WPCR:WTIF : Watch interrupt request flag bit in watch prescaler control register • WPCR:WTIE : Watch interrupt request enable bit in watch prescaler control register • STBC:SLP : Sleep bit in standby control register • STBC:STP : Stop bit in standby control register • WATR:SWT3 to SWT0 : Sub clock oscillation stabilization wait time select bit in oscillation stabilization wait time setup register ■ Setup Procedure Example The watch prescaler is set up in the following procedure: ● Initial setting 1) Set the interrupt level. (ILR5) 2) Set the interval time. (WPCR:WTC1, WTC0) 3) Enable interrupts. (WPCR:WTIE = 1) 4) Clear the counter. (WPCR:WCLR = 1) ● Interrupt processing 1) Clear the interrupt request flag.(WPCR:WTIF = 0) 2) Arbitrary processing CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 201 CHAPTER 12 WATCH PRESCALER 12.6 Notes on Using Watch Prescaler 12.6 MB95100B/AM Series Notes on Using Watch Prescaler Shown below are the precautions that must be followed when using the watch prescaler. The watch prescaler cannot be used in single clock option product. ■ Notes on Using Watch Prescaler ● When setting the prescaler by program The prescaler cannot be recovered from interrupt processing when the watch interrupt request flag bit (WPCR:WTIF) is set to "1" and the interrupt request enable bit is enabled (WPCR:WTIE = 1). Always clear the WTIF bit within the interrupt routine. ● Clearing the watch prescaler When the watch prescaler is selected as the count clock of the watchdog timer (WDTC:CS1, CS0= 10B or CS1, CS0 = 11B), clearing the watch prescaler also clears the watchdog timer. ● Watch interrupts In the main clock stop mode, the watch prescaler performs counting but does not generate the watch prescaler interrupts (IRQ20). ● Peripheral functions receiving clock from the watch prescaler If the watch prescaler is cleared when the output of the watch prescaler is used in other peripheral functions, this will affect the operation by changing the count time or in other manners. The clock for the watchdog timer is also outputted from the initial state. However, as the watchdog timer counter is cleared at the same time as the prescaler counter, the watchdog timer operates in the normal cycles. 202 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 12 WATCH PRESCALER 12.7 Sample Programs for Watch Prescaler MB95100B/AM Series 12.7 Sample Programs for Watch Prescaler We provide sample programs that can be used to operate the watch prescaler. ■ Sample Programs for Watch Prescaler For information about sample programs for the watch prescaler, refer to "■ Sample Programs" in Preface. ■ Setting Methods not Covered by Sample Programs ● How to initialize the watch prescaler The watch timer initialization bit (WPCR:WCLR) is used. Control item Watch timer initialization bit (WCLR) When initializing watch prescaler Set the bit to "1". ● How to select the interval time The watch interrupt interval time select bits (WPCR:WTC1/WTC0) are used to select the interval time. ● Interrupt-related register The interrupt level is set using the interrupt level register shown in the following table. Interrupt source Interrupt level setting register Interrupt vector Watch prescaler Interrupt level register (ILR5) Address: 0007EH #20 Address: 0FFD2H ● How to enable/disable/clear interrupts The interrupt request enable bit (WPCR:WTIE) is used to enable interrupts. Control item Interrupt request enable bit (WTIE) To disable interrupt requests Set the bit to "0". To enable interrupt requests Set the bit to "1". The watch interrupt request flag (WPCR:WTIF) is used to clear interrupt requests. CM26-10112-4E Control item Watch interrupt request flag (WTIF) To clear an interrupt request Set the bit to "0". FUJITSU MICROELECTRONICS LIMITED 203 CHAPTER 12 WATCH PRESCALER 12.7 Sample Programs for Watch Prescaler 204 MB95100B/AM Series FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 13 WATCH COUNTER This chapter describes the functions and operations of the watch counter. 13.1 Overview of Watch Counter 13.2 Configuration of Watch Counter 13.3 Registers of Watch Counter 13.4 Interrupts of Watch Counter 13.5 Explanation of Watch Counter Operations and Setup Procedure Example 13.6 Notes on Using Watch Counter 13.7 Sample Programs for Watch Counter Code: CM26-00108-2E CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 205 CHAPTER 13 WATCH COUNTER 13.1 Overview of Watch Counter 13.1 MB95100B/AM Series Overview of Watch Counter The watch counter can generate interrupt requests ranging from min. 125ms to max. 63s intervals. ■ Watch Counter The watch counter performs counting for the number of times specified in the register by using the selected count clock and generates an interrupt request. The count clock can be selected from the four types shown in Table 13.1-1. The count value can be set to any number from 0 to 63. "When "0" is selected, no interrupt is generated. When the count cycle is set to 1s and the count value is set to "60", an interrupt is generated every one minute. Table 13.1-1 Count Clock Types Count clock Count cycle when FCL operates at 32.768kHz 212/FCL 125ms 213/FCL 250 ms 214/FCL 500 ms 215/FCL 1s FCL: sub clock 206 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 13 WATCH COUNTER 13.2 Configuration of Watch Counter MB95100B/AM Series 13.2 Configuration of Watch Counter Figure 13.2-1 shows the block diagram of the watch counter. ■ Block Diagram of Watch Counter Figure 13.2-1 Block Diagram of Watch Counter Watch counter control register (WCSR) ISEL WCFLG CTR5 CTR4 Interrupt of watch prescaler CTR3 CTR2 CTR1 CTR0 Counter value Interrupt of watch counter Underflow Internal bus Interrupt enabled Counter clear Counter clock selected From watch prescaler 2 12/F CL 2 13/F CL 14 2 /F CL 2 15/F CL CS1 CS0 Counter (6-bit counter) Reload value RCTR5 RCTR4 RCTR3 RCTR2 RCTR1 RCTR0 Watch counter data register (WCDR) FCL: Sub clock CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 207 CHAPTER 13 WATCH COUNTER 13.2 Configuration of Watch Counter MB95100B/AM Series ● Counter This is a 6-bit down-counter that uses the output clock of the watch prescaler as its count clock. ● Watch counter control register (WCSR) This register controls interrupts and checks the status. ● Watch counter data register (WCDR) This register sets the interval time and selects the count clock. ■ Input Clock The watch counter uses the output clock of the watch prescaler as its input clock (count clock). 208 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 13 WATCH COUNTER 13.3 Registers of Watch Counter MB95100B/AM Series 13.3 Registers of Watch Counter Figure 13.3-1 shows the registers of the watch counter. ■ Registers of Watch Counter Figure 13.3-1 Registers Related to Watch Counter Watch counter data register (WCDR) Address 0FE3H bit7 bit6 CS1 R/W CS0 R/W bit5 bit4 bit3 bit2 bit1 bit0 Initial value RCTR5 RCTR4 RCTR3 RCTR2 RCTR1 RCTR0 00111111B R/W R/W R/W R/W R/W R/W Watch counter control register (WCSR) Address 0070H R/W: bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value ISEL R/W WCFLG R(RM1)/W CTR5 R/WX CTR4 R/WX CTR3 R/WX CTR2 R/WX CTR1 R/WX CTR0 R/WX 00000000B Readable/writable (Read value is the same as write value) R(RM1),W : Readable/writable (Read value is different from write value, "1" is read by read-modify-write (RMW) instruction) R/WX : Read only (Readable, writing has no effect on operation) CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 209 CHAPTER 13 WATCH COUNTER 13.3 Registers of Watch Counter 13.3.1 MB95100B/AM Series Watch Counter Data Register (WCDR) The watch counter data register (WCDR) is used to select the count clock and set the counter reload value. ■ Watch Counter Data Register (WCDR) Figure 13.3.1-1 Watch Counter Data Register (WCDR) bit7 Address OFE3H bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value CS1 CS0 RCTR5 RCTR4 RCTR3 RCTR2 RCTR1RCTR0 00111111B R/W R/W R/W R/W R/W R/W R/W R/W RCTR5 to Counter reload value setting bit (Initial value = 3FH) RCTR0 CS1 CS0 Count clock select bits (FCL = 32.768kHz) 0 2 12 /FCL (125ms) 0 0 1 2 13 /FCL(250ms) 1 0 2 14 /FCL (500ms) 2 15 /FCL(1s) 1 1 R/W : Readable/writable (Read value is the same as write value) : Initial value FCL : Sub clock Table 13.3.1-1 Functional Description of Each Bit of Watch Counter Data Register (WCDR) Bit name bit7, bit6 bit5 to bit0 210 Function CS1, CS0: Count clock select bits These bits select the clock for the watch counter. 00B = 212/FCL, 01B = 213/FCL, 10B = 214/FCL, 11B = 215/FCL (FCL: sub clock) These bits should be modified when the WCSR:ISEL bit is "0". RCTR5 to RCTR0: Counter reload value setting bits These bits set the counter reload value. If the value is modified during counting, the modified value will become effective upon a reload after the counter underflows. When set to "0":No interrupt requests will be generated. If the reload value (RCTR5 to RCTR0) is modified at the same time as an interrupt is generated (WCSR:WCFLG = 1), the correct value will not be reloaded. Therefore, the reload value must be modified before an interrupt is generated, such as when the watch counter is stopped (WCSR:ISEL=0), during the interrupt routine. FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 13 WATCH COUNTER 13.3 Registers of Watch Counter MB95100B/AM Series 13.3.2 Watch Counter Control Register (WCSR) The watch counter control register (WCSR) is used to control the operation and interrupts of the watch counter. It can also read the count value. ■ Watch Counter Control Register (WCSR) Figure 13.3.2-1 Watch Counter Control Register (WCSR) bit7 Address 0070H bit6 bit5 bit4 bit3 bit2 bit1 bit0 ISEL WCFLG CTR5 CTR4 CTR3 CTR2 CTR1 CTR0 Initial value 00000000B R/W R(RM1)/W R/WX R/WX R/WX R/WX R/WX R/WX CTR5 to CTR0 Counter read bit These bits can read the counter value. Interrupt request flag bit WCFLG ISEL Write Read 0 No interrupt request generated Clears this bit 1 An interrupt request generated No change, no effect on operation Watch counter start & interrupt enable bit 0 Stops watch counter and disables interrupt request of watch counter (Enables interrupt request of watch prescaler) 1 Activates watch counter and enables interrupt request of watch counter (Disables interrupt request of watch prescaler) R/W : Readable/writable (Read value is the same as write value) R(RM1),W : Readable/writable (Read value is different from write value, "1" is read by read-modify-write (RMW) instruction) R/WX : Read only (Readable, writing has no effect on operation) : Initial value CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 211 CHAPTER 13 WATCH COUNTER 13.3 Registers of Watch Counter MB95100B/AM Series Table 13.3.2-1 Functional Description of Each Bit of Watch Counter Status Register (WCSR) Bit name Function bit7 This bit activates the watch counter and selects whether to enable interrupts of the watch counter or those of the watch prescaler. When set to "0": The watch counter is cleared and stopped. Moreover, interrupt requests of the watch counter are disabled, while interrupt requests of the watch prescaler are enabled. When set to "1": The interrupt request output of the watch counter is enabled ISEL: and the counter starts operation. On the other hand, interrupt Watch counter requests of the watch prescaler are disabled. start & interrupt request enable bit • Always disable interrupts of the watch prescaler before setting this bit to "1" to select interrupts of the watch counter. • The watch counter performs counting, using an asynchronous clock from the watch prescaler. For this reason, an error of up to one count clock may occur at the beginning of a count cycle, depending on the timing for setting ISEL bit to "1". bit6 This bit is set to "1" when the counter underflows. • When this bit and the ISEL bit are both set to "1", a watch counter interrupt is generated. • Writing "0" clears the bit. • Writing "1" to this bit has no effects on the operation. • "1" is always read in read-modify-write (RMW) instruction. bit5 to bit0 212 WCFLG: Interrupt request flag bit • These bits can read the counter value during counting. It should be noted that the correct counter value may not be read if a read is CTR5 to CTR0: attempted while the counter value is being changed. Therefore, read the counter value twice to check if the same value is read on both occasions Counter read bits before using it. • Writing has no effect on the operation. FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 13 WATCH COUNTER 13.4 Interrupts of Watch Counter MB95100B/AM Series 13.4 Interrupts of Watch Counter The watch counter outputs interrupt requests when the counter underflows (counter value = 000001B). ■ Interrupts of Watch Counter When the counter of the watch counter underflows, the interrupt request flag bit (WCFLG) of the watch counter control register (WCSR) is set to "1". If the interrupt request enable bit (ISEL) of the watch counter is set to "1", an interrupt request of the watch counter is outputted to the interrupt controller. Table 13.4-1 shows the interrupt control bits and interrupt sources of the watch timer. Table 13.4-1 Interrupt Control Bits and Interrupt Sources of Watch Timer Item Description Interrupt request flag bit WCFLG bit of the WCSR register Interrupt request enable bit ISEL bit of the WCSR register Interrupt source Counter underflow ■ Register and Vector Table Related to Interrupts of Watch Counter Table 13.4-2 Register and Vector Table Related to Interrupts of Watch Counter Interrupt source Watch counter* Interrupt request number IRQ20 Interrupt level setting register Vector table address Register Setting bit Upper Lower ILR5 L20 FFD2H FFD3H *: The watch counter shares the same interrupt request number and vector table as the watch prescaler. Refer to "CHAPTER 8 INTERRUPTS" for the interrupt request numbers and vector tables of all peripheral functions. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 213 CHAPTER 13 WATCH COUNTER 13.5 Explanation of Watch Counter Operations and Setup Procedure Example 13.5 MB95100B/AM Series Explanation of Watch Counter Operations and Setup Procedure Example The watch counter counts down for the number of times specified in the count value by RCTR5 to RCTR0 bits, using the count clock selected by CS1 and CS0 bits, when the ISEL bit is set to "1". Once the counter underflows, WCFLG bit of the WCSR register is set to "1", generating an interrupt. ■ Setup Procedure of Watch Counter The setup procedure of the watch counter is described below. (1) Select the count clock (CS1 and CS0 bits) and set the counter reload value (RCTR5 to RCTR0 bits). (2) Set the ISEL bit of the WCSR register to "1" to start a down count and enable interrupts. Also disable interrupts of the watch prescaler. The watch counter performs counting by using a divided clock (asynchronous) from the watch prescaler. An error of up to one count clock may occur at the beginning of a count cycle, depending on the timing for setting the ISEL bit to "1". (3) When the counter underflows, the WCFLG bit of the WCSR register is set to "1", generating an interrupt. (4) Write "0" to the WCFLG bit to clear it. (5) If RCTR5 to RCTR0 bits are modified during counting, the reload value will be updated during a reload after the counter is set to "1". (6) When writing "0" to the ISEL bit, the counter becomes "0" and stops operation. Figure 13.5-1 Descriptive Diagram of Watch Counter Operation (6) (2) ISEL Count clock CS1,CS0 (1) RCTR5 to RCTR0 "11B" 7 9 (5) CTR5 to CTR0 0 7 6 5 4 3 2 1 9 8 7 6 5 4 0 WCFLG (3) (4) Note: When the operation is reactivated by WCSR:ISEL=0 after counter stop, please reactivate after confirming reading WCSR:CTR[5:0] twice, and clearing to CTR[5:0]=000000B. 214 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 13 WATCH COUNTER 13.5 Explanation of Watch Counter Operations and Setup Procedure Example ■ Operation in Sub Clock Stop Mode When the device enters the sub clock stop mode, the watch counter stops the count operation and the watch prescaler is also cleared. Therefore, the watch counter cannot count the correct value after the sub clock stop mode is cancelled. After the sub clock stop mode is cancelled, the ISEL bit must always be set to "0" to clear the counter before use. In any standby mode other than the sub clock stop mode, the watch counter continues to operate. ■ Operation at the Main Clock Stop Mode The interrupt is not generated though the clock counter continues the count operation when entering the main clock stop mode. Moreover, the clock counter stops, too, when sub clock oscillation stop bit (SYCC: SUBS) of the system clock control register is set to "1". ■ Setup Procedure Example The watch counter is set up in the following procedure: ● Initial setting 1) Set the interrupt level. (ILR5) 2) Select the count clock. (WCDR:CS1, CS0) 3) Set the counter reload value. (WCDR:RCTR5 to RCTR0) 4) Activate the watch counter and enable interrupts.(WCSR:ISEL=1) ● Interrupt processing 1) Clear the interrupt request flag.(WCSR:WCFLG=0) 2) Arbitrary processing CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 215 CHAPTER 13 WATCH COUNTER 13.6 Notes on Using Watch Counter 13.6 MB95100B/AM Series Notes on Using Watch Counter Shown below are the precautions that must be followed when using the watch counter. • If the watch prescaler is cleared during the operation of the watch counter, the watch counter may not be able to perform normal operation. When clearing the watch prescaler, set the ISEL bit of the WCSR register to "0" to stop the watch counter in advance. • When the operation is reactivated by WCSR:ISEL=0 after counter stop, please reactivate after confirming reading WCSR:CTR[5:0] twice, and clearing to CTR[5:0]=000000B. 216 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 13 WATCH COUNTER 13.7 Sample Programs for Watch Counter MB95100B/AM Series 13.7 Sample Programs for Watch Counter We provide sample programs that can be used to operate the watch counter. ■ Sample Programs for Watch Counter For information about sample programs for the watch counter, refer to "■ Sample Programs" in Preface. ■ Setting Methods not Covered by Sample Programs ● How to enable/stop the watch counter Use the interrupt request enable bit (WCSR:ISEL). Control item Watch timer initialization bit (ISEL) When enabling watch counter Set the bit to "1". When stopping watch counter Set the bit to "0". ● How to select the count clock The count clock select bits (WCDR:CS1/CS0) are used to select the clock. ● Interrupt-related register The interrupt level is set in the interrupt level register shown in the following table. Interrupt source Interrupt level setting register Interrupt vector Watch counter Interrupt level register (ILR5) Address: 0007EH #20 Address: 0FFD2H ● How to enable/disable/clear interrupts The interrupt request enable bit (WCSR:ISEL) is used to enable interrupts. Control item Interrupt request enable bit (ISEL) To disable interrupt requests Set the bit to "0". To enable interrupt requests Set the bit to "1". The interrupt request flag (WCSR:WCFLG) is used to clear interrupt requests. CM26-10112-4E Control item Interrupt request flag (WCFLG) To clear an interrupt request Set the bit to "0". FUJITSU MICROELECTRONICS LIMITED 217 CHAPTER 13 WATCH COUNTER 13.7 Sample Programs for Watch Counter 218 MB95100B/AM Series FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 14 WILD REGISTER This chapter describes the functions and operations of the wild register. 14.1 Overview of Wild Register 14.2 Configuration of Wild Register 14.3 Registers of Wild Register 14.4 Operating Description of Wild Register 14.5 Typical Hardware Connection Example Code: CM26-00109-1E CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 219 CHAPTER 14 WILD REGISTER 14.1 Overview of Wild Register 14.1 MB95100B/AM Series Overview of Wild Register The wild register can be used to patch bugs in the program by using the addresses set in the built-in register and amendment data. The following section describes the wild register function. ■ Wild Register Function The wild register consists of 3 data setup registers, 3 upper-address setup registers, 3 loweraddress setup registers, a 1-byte address compare enable register and a 1-byte data test setup register. When certain addresses and modified data are specified in these registers, the ROM data can be replaced with the modified data specified in the registers. Data of up to three different addresses can be modified. The wild register function can be used to debug the program after creating the mask and patch bugs in the program. 220 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 14 WILD REGISTER 14.2 Configuration of Wild Register MB95100B/AM Series 14.2 Configuration of Wild Register The block diagram of the wild register is shown below. The wild register consists of the following blocks: • Memory area block Wild register data setup register (WRDR0 to WRDR2) Wild register address setup register (WRAR0 to WRAR2) Wild register address compare enable register (WREN) Wild register data test setup register (WROR) • Control circuit block ■ Block Diagram of Wild Register Function Figure 14.2-1 Block Diagram of Wild Register Function Wild register function Control circuit block Decoder and logic control circuit Access control circuit Address compare circuit Internal bus Memory area block Wild register address setup register (WRAR) Access control circuit Wild register data setup register (WRDR) Wild register address compare enable register (WREN) ? ? ? Wild register data test setup register (WROR) Memory space CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 221 CHAPTER 14 WILD REGISTER 14.2 Configuration of Wild Register MB95100B/AM Series ● Memory area block The memory area block consists of the wild register data setup registers (WRDR), wild register address setup registers (WRAR), wild register address compare enable register (WREN) and wild register data test setup register (WROR). The wild register function is used to specify the addresses and data that need to be replaced. The wild register address compare enable register (WREN) enables the wild register function for each wild register data setup register (WRDR). Moreover, the wild register data test setup register (WROR) enables the normal read function for each wild register data setup register (WRDR). ● Control circuit block This circuit compares the actual address data with addresses set in the wild register address setup registers (WRDR), and if the values match, outputs the data from the wild register data setup register (WRDR) to the data bus. The control circuit block uses the wild register address compare enable register (WREN) to control the operation. 222 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 14 WILD REGISTER 14.3 Registers of Wild Register MB95100B/AM Series 14.3 Registers of Wild Register The registers of the wild register include the wild register data setup registers (WRDR), wild register address setup registers (WRAR), wild register address compare enable register (WREN) and wild register data test setup register (WROR). ■ Registers Related to Wild Register Figure 14.3-1 Registers Related to Wild Register Wild register data setup registers (WRDR0 to WRDR2) Address WRDR0 0F82H WRDR1 0F85H WRDR2 0F88H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value RD7 R/W RD6 R/W RD5 R/W RD4 R/W RD3 R/W RD2 R/W RD1 R/W RD0 R/W 00000000B Initial value 00000000B Wild register address setup registers (WRAR0 to WRAR2) WRAR0 WRAR1 WRAR2 Address 0F80H, 0F81H 0F83H, 0F84H 0F86H, 0F87H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 RA15 R/W RA14 R/W RA13 R/W RA12 R/W RA11 R/W RA10 R/W RA9 R/W RA8 R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 RA7 R/W RA6 R/W RA5 R/W RA4 R/W RA3 R/W RA2 R/W RA1 R/W RA0 R/W bit3 bit2 bit1 bit0 Initial value EN0 R/W 00000000B bit0 Initial value Initial value 00000000B Wild register address compare enable register (WREN) WREN Address 0076H bit7 bit6 − − R0/WX R0/WX bit5 bit4 Reserved Reserved Reserved R0/W0 R0/W0 R0/W0 bit4 bit3 EN2 R/W EN1 R/W bit2 bit1 Wild register data test setup register (WROR) WROR R/W R0/W0 R0/WX − Address 0077H bit7 bit6 − − R0/WX R0/WX bit5 Reserved Reserved Reserved R0/W0 R0/W0 R0/W0 DRR2 DRR1 R/W R/W DRR0 00000000B R/W : Readable/writable (Read value is the same as write value) : Reserved bit (Write value is "0", read value is "0") : Undefined bit (Read value is "0", writing has no effect on operation) : Undefined CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 223 CHAPTER 14 WILD REGISTER 14.3 Registers of Wild Register MB95100B/AM Series ■ Wild Register Number Each wild register address setup register (WRAR) and wild register data setup register (WRDR) has its corresponding wild register number. Table 14.3-1 Wild Register Numbers Corresponding to Wild Register Address Setup Registers and Wild Register Data Setup Registers 224 Wild register number Wild registers address setup register (WRAR) Wild registers data setup register (WRDR) 0 WRAR0 WRDR0 1 WRAR1 WRDR1 2 WRAR2 WRDR2 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 14 WILD REGISTER 14.3 Registers of Wild Register MB95100B/AM Series 14.3.1 Wild Register Data Setup Registers (WRDR0 to WRDR2) The wild register data setup registers (WRDR0 to WRDR2) use the wild register function to specify the data to be amended. ■ Wild Register Data Setup Registers (WRDR0 to WRDR2) Figure 14.3-2 Wild Register Data Setup Registers (WRDR0 to WRDR2) WRDR0 Address 0F82H bit7 RD7 R/W bit6 RD6 R/W bit5 RD5 R/W bit4 RD4 R/W bit3 RD3 R/W bit2 RD2 R/W bit1 RD1 R/W bit0 RD0 R/W Initial value 00000000B bit7 RD7 R/W bit6 RD6 R/W bit5 RD5 R/W bit4 RD4 R/W bit3 RD3 R/W bit2 RD2 R/W bit1 RD1 R/W bit0 RD0 R/W Initial value 00000000B bit7 RD7 R/W bit6 RD6 R/W bit5 RD5 R/W bit4 RD4 R/W bit3 RD3 R/W bit2 RD2 R/W bit1 RD1 R/W bit0 RD0 R/W Initial value 00000000B WRDR1 Address 0F85H WRDR2 Address 0F88H R/W: Readable/writable (Read value is the same as write value) Table 14.3-2 Functional Description of Each Bit of Wild Register Data Setup Register (WRDR0 to WRDR2) Bit name bit7 to bit0 RD7 to RD0: Wild registers data setup bits CM26-10112-4E Function These bits specify the data to be amended by the wild register function. • These bits are used to set the amendment data at the address assigned by the wild register address setup register (WRAR). Data is enabled at the address corresponding to each wild register number. • Read access of these bits is enabled only when the corresponding data test setting bit in the wild register data test setup register (WROR) is set to "1". FUJITSU MICROELECTRONICS LIMITED 225 CHAPTER 14 WILD REGISTER 14.3 Registers of Wild Register 14.3.2 MB95100B/AM Series Wild Register Address Setup Registers (WRAR0 to WRAR2) The wild register address setup registers (WRAR0 to WRAR2) set the address to be amended by the wild register function. ■ Wild Register Address Setup Registers (WRAR0 to WRAR2) Figure 14.3-3 Wild Register Address Setup Registers (WRAR0 to WRAR2) WRAR0 Address 0F80H Address 0F81H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 Initial value RA15 R/W RA14 R/W RA13 R/W RA12 R/W RA11 R/W RA10 R/W RA9 R/W RA8 R/W 00000000B bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value RA7 R/W RA6 R/W RA5 R/W RA4 R/W RA3 R/W RA2 R/W RA1 R/W RA0 R/W 00000000B Address 0F83H bit15 RA15 R/W bit14 RA14 R/W bit13 RA13 R/W bit12 RA12 R/W bit11 RA11 R/W bit10 RA10 R/W bit9 RA9 R/W bit8 RA8 R/W Initial value 00000000B Address 0F84H bit7 RA7 R/W bit6 RA6 R/W bit5 RA5 R/W bit4 RA4 R/W bit3 RA3 R/W bit2 RA2 R/W bit1 RA1 R/W bit0 RA0 R/W Initial value 00000000B Address 0F86H bit15 RA15 R/W bit14 RA14 R/W bit13 RA13 R/W bit12 RA12 R/W bit11 RA11 R/W bit10 RA10 R/W bit9 RA9 R/W bit8 RA8 R/W Initial value 00000000B Address bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value 0F87H RA7 R/W RA6 R/W RA5 R/W RA4 R/W RA3 R/W RA2 R/W RA1 R/W RA0 R/W 00000000B WRAR1 WRAR2 R/W: Readable/writable (Read value is the same as write value) Table 14.3-3 Functional Description of Each Bit of Wild Register Address Setup Register (WRAR0 to WRAR2) Bit name bit15 to bit0 226 RA15 to RA0: Wild Registers address setting bits Function These bits set the address to be amended by the wild register function. These bits are used to specify the address to be allocated. The address is specified in accordance with its corresponding wild register number. FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 14 WILD REGISTER 14.3 Registers of Wild Register MB95100B/AM Series 14.3.3 Wild Register Address Compare Enable Register (WREN) The wild register address compare enable register (WREN) enables/disables the operation of the wild register in accordance with each wild register number. ■ Wild Register Address Compare Enable Register (WREN) Figure 14.3-4 Wild Register Address Compare Enable Register (WREN) Address 0076H R/W R0/W0 R0/WX − bit7 − bit6 − bit5 Reser ved bit4 Reser ved bit3 Reser ved bit2 EN2 bit1 EN1 bit0 EN0 R0/WX R0/WX R0/W0 R0/W0 R0/W0 R/W R/W R/W Initial value 00000000B : Readable/writable (Read value is the same as write value) : Reserved bit (Write value is "0", read value is "0") : Undefined bit (Read value is "0", writing has no effect on operation) : Undefined Table 14.3-4 Functional Description of Wild Register Address Compare Enable Register (WREN) Bit name Function bit7, bit6 Undefined bits These bits are undefined. • The read value is "0". • Writing has no effect on the operation. bit5 to bit3 Reserved bit These bits are reserved. • The read value is "0". • Always set "0". EN2, EN1, EN0: Wild register address compare enable bits These bits enable/disable the operation of the wild register. • EN0 corresponds to wild register number 0. • EN1 corresponds to wild register number 1. • EN2 corresponds to wild register number 2. When set to "0": disable the operation of the wild register function. When set to "1": enable the operation of the wild register function. bit2 to bit0 CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 227 CHAPTER 14 WILD REGISTER 14.3 Registers of Wild Register 14.3.4 MB95100B/AM Series Wild Register Data Test Setup Register (WROR) The wild register data test setup register (WROR) enables/disables reading from the corresponding wild register data setup register (WRDR0 to WRDR2). ■ Wild Register Data Test Setup Register (WROR) Figure 14.3-5 Wild Register Data Test Setup Register (WROR) Address 0077H R/W R0/W0 R0/WX − bit7 − bit6 − bit5 Reser ved bit4 Reser ved bit3 Reser ved bit2 DRR2 R0/WX R0/WX R0/W0 R0/W0 R0/W0 R/W bit1 bit0 DRR1 DRR0 R/W Initial value 00000000B R/W : Readable/writable (Read value is the same as write value) : Reserved bit (Write value is "0", read value is "0") : Undefined bit (Read value is "0", writing has no effect on operation) : Undefined Table 14.3-5 Functional Description of Wild Register Data Test Setup Register (WROR) Bit name Function bit7, bit6 Undefined bits These bits are undefined. • The read value is "0". • Writing has no effect on the operation. bit5 to bit3 Reserved bits These bits are reserved. • The read value is "0". • Always set "0". DRR2, DRR1, DRR0: Wild registers data test setup bits These bits enable/disable the normal reading from the corresponding data setup register of the wild register. • DRR0 enables/disables reading from the wild register data setup register (WRDR0). • DRR1 enables/disables reading from the wild register data setup register (WRDR1). • DRR2 enables/disables reading from the wild register data setup register (WRDR2). When set to "0": disable reading. When set to "1": enable reading. bit2 to bit0 228 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 14 WILD REGISTER 14.4 Operating Description of Wild Register MB95100B/AM Series 14.4 Operating Description of Wild Register This section describes the setup procedure for the wild register. ■ Setup Procedure for Wild Register Prepare a special program that can read the value to be set in the wild register from external memory (e.g. E2PROM or FRAM) in the user program before executing the program. The setup method for the wild register is shown below. It should be noted that this section does not explain how to communicate between the external memory and the device. • Write the address of the built-in ROM code that will be modified to the wild register address setup register (WRAR0 to WRAR2). • Write a new code into the corresponding wild register data setup register (WRDR0 to WRDR2). • Write the corresponding bits to the wild register address compare enable register (WREN) to enable the wild register function. Table 14.4-1 shows the register setup procedure for the wild register. Table 14.4-1 Register Setup Procedure for Wild Register Operating step Operation Example operation The built-in ROM code to be modified is in the address "F011H" and the data to be modified is "B5H". Three builtin ROM codes can be modified. 1 Read replacement data from outside through its specific communication method. 2 Write the replacement address into the Set Wild register address setup registers wild register address setup register (WRAR0 = F011H, WRAR1 = ..., WRAR2 = ...). (WRAR0 to WRAR2). 3 Write a new ROM code (replacement for the built-in ROM code) to the wild Set Wild register data setup registers register data setup register (WRDR0 to (WRDR0 = B5H, WRDR1 = ..., WRDR2 = ...). WRDR2). 4 Enable the corresponding bits in the wild register address compare enable register (WREN). Setting bit0 of the address compare enable register (WREN) to "1" enables the wild register function for the wild register number 0. If the address matches the value set in the address setup register (WRAR), the value of the data setup register (WRDR) will replace the built-in ROM code. When replacing more than one built-in ROM code, enable the corresponding bits of the address compare enable register (WREN). ■ Wild Register Applicable Addresses The wild register is applicable to all addresses in the address space except "0078H". As address "0078H" is used as a mirror address for the register bank pointer and direct bank pointer, this address cannot be patched. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 229 CHAPTER 14 WILD REGISTER 14.5 Typical Hardware Connection Example 14.5 MB95100B/AM Series Typical Hardware Connection Example Shown below is a typical hardware connection example applied when using the wild register function. ■ Hardware Connection Example Figure 14.5-1 Typical Hardware Connection Example E2PROM (Stores correction program) SO SI SCK 230 SIN SOT SCK MB95XXX series FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 15 8/16-BIT COMPOUND TIMER This chapter describes the functions and operations of the 8/16-bit compound timer. 15.1 Overview of 8/16-bit Compound Timer 15.2 Configuration of 8/16-bit Compound Timer 15.3 Channels of 8/16-bit Compound Timer 15.4 Pins of 8/16-bit Compound Timer 15.5 Registers of 8/16-bit Compound Timer 15.6 Interrupts of 8/16-bit Compound Timer 15.7 Operating Description of Interval Timer Function (One-shot Mode) 15.8 Operating Description of Interval Timer Function (Continuous Mode) 15.9 Operating Description of Interval Timer Function (Free-run Mode) 15.10 Operating Description of PWM Timer Function (Fixed-cycle mode) 15.11 Operating Description of PWM Timer Function (Variable-cycle Mode) 15.12 Operating Description of PWC Timer Function 15.13 Operating Description of Input Capture Function 15.14 Operating Description of Noise Filter 15.15 States in Each Mode during Operation 15.16 Notes on Using 8/16-bit Compound Timer CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 231 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.1 Overview of 8/16-bit Compound Timer 15.1 MB95100B/AM Series Overview of 8/16-bit Compound Timer The 8/16-bit compound timer consists of two 8-bit counters and can be used as two 8bit timers, or one 16-bit timer if they are connected in cascade. The 8/16-bit compound timer has the following functions: • Interval timer function • PWM timer function • PWC timer function (pulse width measurement) • Input capture function ■ Interval Timer Function (One-shot Mode) When the interval timer function (one-shot mode) is selected, the counter starts counting from "00H" as the timer is started. When the counter value matches the register setting value, the timer output is inverted, the interrupt request occurs, and the count operation is stopped. ■ Interval Timer Function (Continuous Mode) When the interval timer function (continuous mode) is selected, the counter starts counting from "00H" as the timer is started. When the counter value matches the register setting value, the timer output is inverted, the interrupt request occurs, and the count operation is continued from "00H" again. The timer output a square wave as a result of this repeated operation. ■ Interval Timer Function (Free-run Mode) When the interval timer function (free-run mode) is selected, the counter starts counting from "00H". When the counter value matches the register setting value, the timer output is inverted and the interrupt request occurs. When the counter continues to count until reaching "FFH", it restarts counting from "00H" to continue the counting operation. The timer outputs a square wave as a result of this repeated operation. ■ PWM Timer Function (Fixed-cycle Mode) When the PWM timer function (fixed-cycle mode) is selected, a PWM signal with a variable "H" pulse width is generated in fixed cycles. The cycle is fixed to "FFH" during 8-bit operation or "FFFFH" during 16-bit operation. The time is determined by the count clock selected. The "H" pulse width is specified by setting a register. ■ PWM Timer Function (Variable-cycle Mode) When the PWM timer function (variable-cycle mode) is selected, two 8-bit counters are used to generate an 8-bit PWM signal in any cycles and duty depending on the cycle and "L" pulse width specified by registers. In this operation mode, the compound timer cannot serve as a 16-bit counter, as two 8-bit counters are used. 232 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 15 8/16-BIT COMPOUND TIMER 15.1 Overview of 8/16-bit Compound Timer ■ PWC Timer Function When the PWC timer function is selected, the width and cycle of an external input pulse can be measured. In this operation mode, the counter starts counting from "00H" upon detection of a count start edge of an external input signal and transfers the count value to a register to generate an interrupt upon detection of a count end edge. ■ Input Capture Function When the input capture function is selected, the counter value is stored in a register upon detection of an edge for an external input signal. This function is available in either free-run mode or clear mode for count operation. In the clear mode, the counter starts counting from "00H" and transfers its value to a register to generate an interrupt upon detection of an edge. In this case, the counter continues to count from "00H". In the free-run mode, the counter transfers its value to a register to generate an interrupt upon detection of an edge. In this case, however, the counter continues to count without being cleared. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 233 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.2 Configuration of 8/16-bit Compound Timer 15.2 MB95100B/AM Series Configuration of 8/16-bit Compound Timer The 8/16-bit compound timer consists of the following blocks: • 8-bit counter × 2 channels • 8-bit comparator (including a temporary latch) × 2 channels • 8/16-bit compound timer 00/01 data register × 2 channels (T00DR/T01DR) • 8/16-bit compound timer 00/01 control status register 0 × 2 channels (T00CR0/ T01CR0) • 8/16-bit compound timer 00/01 control status register 1 × 2 channels (T00CR1/ T01CR1) • 8/16-bit compound timer 00/01 timer mode control register (TMCR0) • Output controller × 2 channels • Control logic × 2 channels • Count clock selector × 2 channels • Edge detector × 2 channels • Noise filter × 2 channels 234 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 15 8/16-BIT COMPOUND TIMER 15.2 Configuration of 8/16-bit Compound Timer MB95100B/AM Series ■ Block Diagram of 8/16-bit Compound Timer Figure 15.2-1 Block Diagram of 8/16-bit Compound Timer T00CR0 IFE C2 C1 C0 F3 F2 F1 F0 Timer 00 CK00 8-bit counter : : : : Count clock selector CK06 CK07 Timer output Control logics Clocks from prescaler/ time-base timer 8-bit comparator TO00 Output controller ENO0 8-bit data register Edge detector Noise filter EC00 TII0 STA HO IE IR BF IF SO OE T00CR1 TMCR0* TO1 TO0 IRQ0 IRQ Logics IRQ1 16-bit mode control signal IIS MOD FE11 FE10 FE01 FE00 T01CR0 IFE C2 C1 C0 F3 F2 F1 F0 Timer 01 EC0 16-bit mode clock 8-bit counter CK10 : : Count clock selector CK17 External input Noise filter EC01 Timer output Control logics Clocks from : prescaler/ : time-base CK16 timer 8-bit comparator Output controller TO01 ENO1 8-bit data register Edge detector T01CR1 STA HO IE IR BF IF SO OE *: Register shared by timer 00 and timer 01 ● 8-bit counter This counter serves as the basis for various timer operations. It can be used either as two 8-bit counters or as a 16-bit counter. ● 8-bit comparator The comparator compares the values in the 8/16-bit compound timer 00/01 data register and counter. It incorporates a latch to temporarily store the 8/16-bit compound timer 00/01 data register value. ● 8/16-bit compound timer 00/01 data register The 8/16-bit compound timer 00/01 data register is used to write the maximum value counted during interval timer or PWM timer operation and to read the count value during PWC timer or input capture operation. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 235 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.2 Configuration of 8/16-bit Compound Timer MB95100B/AM Series ● 8/16-bit compound timer 00/01 control status registers 0 (T00CR0/T01CR0) These registers are used to select the timer operation mode, select the count clock, and to enable or disable IF flag interrupts. ● 8/16-bit compound timer 00/01 control status registers 1 (T00CR1/T01CR1) These registers are used to control interrupt flags, timer output, and timer operation. ● 8/16-bit compound timer 00/01 timer mode control register (TMCR0) This register is used to select the noise filter function, 8-bit or16-bit operation mode, and signal input to timer 00 and to indicate the timer output value. ● Output controller The output controller controls timer output. The timer output is supplied to the external pin when the pin output has been enabled. ● Control logic The control logic controls timer operation. ● Count clock selector The selector selects the counter operation clock signal from among prescaler outputs (machine clock divided signal and time-base timer output). ● Edge detector The edge detector selects the edge of an external input signal to be used as an event for PWC timer operation or input capture operation. ● Noise filter This filter serves as a noise filter for external input signals. "H" pulse noise, "L" pulse noise, or "H"/"L"pulse noise elimination can be selected as the filter function. ● TII0 internal pin (internally connected to the LIN-UART, available only in channel 0) The TII0 pin serves as the signal input pin for timer 00; it is connected to the LIN-UART inside the chip. For information about how to use the pin, refer to "CHAPTER 23 LIN-UART". Note that the TII0 pin in channel 1 is internally fixed to "0". ■ Input Clock The 8/16-bit compound timer uses the output clock from the prescaler as its input clock (count clock). 236 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 15 8/16-BIT COMPOUND TIMER 15.3 Channels of 8/16-bit Compound Timer MB95100B/AM Series 15.3 Channels of 8/16-bit Compound Timer This section describes the channels of 8/16-bit compound timer. ■ Channels of 8/16-bit Compound Timer MB95100B/AM series contains two channels of 8/16-bit compound timer. In one channel, there are two 8-bit counters. Each counter can be used as two 8-bit timers or one 16-bit timer. The following table lists the external pins and registers corresponding to each channel. Table 15.3-1 8/16-bit Compound Timer Channels and Corresponding External Pins Channel 0 1 Pin name Pin function TO00 Timer 00 output TO01 Timer 01 output EC0 Timer 00 input and timer 01 input TO10 Timer 10 output TO11 Timer 11 output EC1 Timer 10 input and timer 11 input Table 15.3-2 8/16-bit Compound Timer Channels and Corresponding Registers Channel 0 1 Register name Registers T00CR0 Timer 00 control status register 0 T01CR0 Timer 01 control status register 0 T00CR1 Timer 00 control status register 1 T01CR1 Timer 01 control status register 1 T00DR Timer 00 data register T01DR Timer 01 data register TMCR0 Timer 00/01 timer mode control register T10CR0 Timer 10 control status register 0 T11CR0 Timer 11 control status register 0 T10CR1 Timer 10 control status register 1 T11CR1 Timer 11 control status register 1 T10DR Timer 10 data register T11DR Timer 11 data register TMCR1 Timer 10/11 timer mode control register The following sections describe only the 8/16-bit compound timer in channel 0. The other channels are the same as channel 0. The 2-digit number in the pin names and register names corresponds to channel and timer. The upper number corresponds to channel and the lower number corresponds to timer. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 237 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.4 Pins of 8/16-bit Compound Timer 15.4 MB95100B/AM Series Pins of 8/16-bit Compound Timer This section describes the pins related to the 8/16-bit compound timer. ■ Pins Related to 8/16-bit Compound Timer The external pins related to the 8/16-bit compound timer are TO00, TO01, EC0, and EC1. TII0 is for internal chip connection. ● TO00 pin TO00: This pin serves as the timer output pin for timer 00 during 8-bit operation or for timers 00 and 01 during 16-bit operation. When the output is enabled (T00CR1:OE = 1) in interval timer, PWM timer, or PWC timer function, the pin is set for output automatically regardless of the port direction register (DDR2:bit2) to serve as the timer output TO00 pin. The output remains undefined when the input capture function has been selected enabling output. ● TO01 pin TO01: This pin serves as the timer output pin for timer 01 during 8-bit operation. When the output is enabled (T01CR1:OE = 1) in interval timer, PWM timer (fixed cycle mode), or PWC timer function, the pin is set for output automatically regardless of the port direction register (DDR2:bit3) to serve as the timer output TO01 pin. The output remains undefined during 16-bit operation when the PWM timer function (variable-cycle mode) or input capture function has been selected enabling output. ● EC0 pin The EC0 pin is connected to the EC00 and EC01 internal pins. EC00 internal pin: This pin serves as the external count clock input pin for timer 00 when the interval timer or PWM timer function has been selected, or as the signal input pin for timer 00 when the PWC timer or input capture function has been selected. The pin cannot be set as the external count clock input pin when the PWC timer or input capture function has been selected. To use this input feature, set the port direction register (DDR2:bit4) to "0" to set the pin as an input port. EC01 internal pin: This pin serves as the external count clock input pin for timer 01 when the interval timer or PWM timer function has been selected or the signal input pin for timer 01 when the PWC timer or input capture function has been selected. The pin cannot be set as the external count clock input pin when the PWC timer or input capture function has been selected. This input is not used during 16-bit operation. The input can be used as well when the PWM timer function has been selected (variable-cycle mode). To use this input feature, set the port direction register (DDR2:bit4) to set the pin as an input port. 238 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 15 8/16-BIT COMPOUND TIMER 15.4 Pins of 8/16-bit Compound Timer MB95100B/AM Series ■ Block Diagram of Pins Related to 8/16-bit Compound Timer Figure 15.4-1 Block Diagram of Pins (TO00, TO01 and EC0) Related to 8/16-bit Compound Timer Peripheral function input Peripheral function input enable Peripheral function output enable Peripheral function output Hysteresis 0 Pull-up 0 1 1 PDR read P-ch Automotive 1 Pin PDR 0 Only P24 is selectable. PDR write In bit operation instruction Internal bus DDR read DDR DDR write Stop, Watch (SPL=1) PUL read PUL PUL write ILSR3 read ILSR3 ILSR3 write Figure 15.4-2 Block Diagram of Pins (TO10, TO11 and EC1) Related to 8/16-bit Compound Timer Hysteresis Peripheral function input Peripheral function input enable Peripheral function output enable Peripheral function output Only P67 is selectable. 0 0 0 1 Automotive 1 CMOS 1 PDR read 1 Pin PDR 0 PDR write In bit operation instruction Internal bus DDR read DDR DDR write Stop, Watch (SPL=1) ILSR read ILSR ILSR write Only P67 is selectable. ILSR3 read ILSR3 ILSR3 write CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 239 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.5 Registers of 8/16-bit Compound Timer 15.5 MB95100B/AM Series Registers of 8/16-bit Compound Timer This section describes the registers related to the 8/16-bit compound timer. ■ Registers Related to 8/16-bit Compound Timer Figure 15.5-1 Registers Related to 8/16-bit Compound Timer 8/16-bit compound timer 00/01 control status register 0 (T00CR0/T01CR0) Address T01CR0 0F92H T00CR0 0F93H bit7 IFE R, W bit6 C2 R, W bit5 C1 R, W bit4 C0 R, W bit3 F3 R, W bit2 F2 R, W bit0 F1 R, W bit0 F0 R, W Initial value 00000000B bit0 OE R/W Initial value 00000000B R(RM1),W bit0 SO R/W bit2 TDR2 R, W bit0 TDR1 R, W bit0 TDR0 R, W Initial value 00000000B bit0 FE01 R/W bit0 FE00 R/W Initial value 00000000B 8/16-bit compound timer 00/01 control status register 1 (T00CR1/T01CR1) Address T01CR1 0036H T00CR1 0037H bit7 STA R/W bit6 HO R/W bit5 IE R/W bit4 IR R(RM1),W bit3 BF R/WX bit2 IF 8/16-bit compound timer 00/01 data register (T00DR/T01DR) Address T01DR 0F94H T00DR 0F95H bit7 TDR7 R, W bit6 TDR6 R, W bit5 TDR5 R, W bit4 TDR4 R, W bit3 TDR3 R, W 8/16-bit compound timer 00/01 timer mode control register (TMCR0) Address TMCR0 0F96H bit7 TO1 R/WX bit6 TO0 R/WX bit5 IIS R/W bit4 MOD R/W bit3 FE11 R/W bit2 FE10 R/W R/W : Readable/Writable (Read value is the same as write value) R(RM1),W : Readable/Writable (Read value is different from write value, "1" is read by read-modify-write (RMW) instruction) R/WX : Read only (Readable, writing has no effect on operation) R, W : Readable/Writable (Read value is different from write value) 240 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 15 8/16-BIT COMPOUND TIMER 15.5 Registers of 8/16-bit Compound Timer MB95100B/AM Series 15.5.1 8/16-bit Compound Timer 00/01 Control Status Register 0 (T00CR0/T01CR0) The 8/16-bit compound timer 00/01 control status register 0 (T00CR0/T01CR0) selects the timer operation mode, selects the count clock, and enables or disables IF flag interrupts. The T00CR0 and T01CR0 registers correspond to timers 00 and 01, respectively. ■ 8/16-bit Compound Timer 00/01 Control Status Register 0 (T00CR0/T01CR0) Figure 15.5-2 8/16-bit Compound Timer 00/01 Control Status Register 0 (T00CR0/T01CR0) Address T01CR0 0F92H T00CR0 0F93H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value IFE C2 C1 C0 F3 F2 F1 F0 00000000B R, W R, W R, W R, W R, W R, W R, W R, W F3 F2 F1 F0 0 0 0 0 Interval timer (one-shot mode) 0 0 0 1 Interval timer (continuous mode) 0 0 1 0 Interval timer (free-run mode) 0 0 1 1 PWM timer (fixed-cycle mode) 0 1 0 0 PWM timer (variable-cycle mode) 0 1 0 1 PWC timer ("H" pulse = rising to falling) 0 1 1 0 PWC timer ("L" pulse = falling to rising) 0 1 1 1 PWC timer (cycle = rising to rising) 1 0 0 0 PWC timer (cycle = falling to falling) 1 0 0 1 PWC timer ("H" pulse = rising to falling; Cycle = rising to rising) 1 0 1 0 Input capture (rising, free-run counter) 1 0 1 1 Input capture (falling, free-run counter) 1 1 0 0 Input capture (both edges, free-run counter) 1 1 0 1 Input capture (rising, counter clear) 1 1 1 0 Input capture (falling, counter clear) 1 1 1 1 Input capture (both edges, counter clear) C2 C1 C0 0 0 0 1 × MCLK (machine clock) 0 0 1 1/2 × MCLK (machine clock) 0 1 0 1/4 × MCLK (machine clock) 0 1 1 1/8 × MCLK (machine clock) 1 0 0 1/16 × MCLK (machine clock) 1 0 1 1/32 × MCLK (machine clock) 1 1 0 1/27 × FCH 1 1 1 External clock IFE Timer operation mode select bits Count clock select bits IF flag interrupt enable 0 IF flag interrupt disabled 1 IF flag interrupt enabled R,W : Readable/Writable (Read value is different from write value) : Initial value CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 241 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.5 Registers of 8/16-bit Compound Timer MB95100B/AM Series Table 15.5-1 Functional Description of Each Bit of 8/16-bit Compound Timer 00/01 Control Status Register 0 (T00CR0/T01CR0) (1 / 2) Bit name bit7 Function This bit enables or disables IF flag interrupts. IFE: Setting this bit to "0": disables IF flag interrupts. IF flag interrupt enable Setting this bit to "1": an IF flag interrupt request is outputted when both the IE bit (T00CR1/ T01CR1:IE) and the IF flag (T00CR1/T01CR1:IF) are set to "1". These bits select the count clock. • The count clock is generated by the prescaler. Refer to "6.12 Operating Explanation of Prescaler". • Write access to these bits is nullified during timer operation (T00CR1/T01CR1:STA = 1). • The clock selection of T01CR0 (timer 01) is nullified during 16-bit operation. • These bits cannot be set to "111B" when the PWC or input capture function is used. An attempt to write "111B" with the PWC or input capture function in use resets the bits to "000B". The bits are also reset to "000B" if the timer enters the input capture operation mode with the bits set to "111B". bit6 to bit4 242 C2, C1, C0: Count clock select bits C2 C1 C0 Count clock 0 0 0 1 × MCLK (machine clock) 0 0 1 1/2 × MCLK (machine clock) 0 1 0 1/4 × MCLK (machine clock) 0 1 1 1/8 × MCLK (machine clock) 1 0 0 1/16 × MCLK (machine clock) 1 0 1 1/32 × MCLK (machine clock) 1 1 0 1/27 × FCH 1 1 1 External clock FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 15 8/16-BIT COMPOUND TIMER 15.5 Registers of 8/16-bit Compound Timer MB95100B/AM Series Table 15.5-1 Functional Description of Each Bit of 8/16-bit Compound Timer 00/01 Control Status Register 0 (T00CR0/T01CR0) (2 / 2) Bit name Function These bits select the timer operation mode. • The PWM timer function (variable-cycle mode; F3, F2, F1, F0 = 0100B) is set by either the T00CR0 (timer 00) register or T01CR0 (timer 01) register. In this case, the other register is set to F3, F2, F1, F0 = 0100B automatically when the timer starts operation (T00CR1/T01CR1: STA= 1). • The MOD bit is set to "0" automatically when the timer set for 16-bit operation (TMCR0:MOD = 1) starts operation (T00CR1/T01CR1:STA = 1) in the PWM timer function (variable-cycle mode). • Write access to these bits is nullified during timer operation (T00CR1/T01CR1:STA = 1). bit3 to bit0 F3, F2, F1, F0: Timer operation mode select bits CM26-10112-4E F3 F2 F1 F0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 Timer operation mode select bits Interval timer (one-shot mode) Interval timer (continuous mode) Interval timer (free-run mode) PWM timer (fixed-cycle mode) PWM timer (variable-cycle mode) PWC timer ("H" pulse = rising to falling) PWC timer ("L" pulse = falling to rising) PWC timer (cycle = rising to rising) PWC timer (cycle = falling to falling) PWC timer ("H" pulse = rising to falling; Cycle = rising to rising) Input capture (rising, free-run counter) Input capture (falling, free-run counter) Input capture (both edges, free-run counter) Input capture (rising, counter clear) Input capture (falling, counter clear) Input capture (both edges, counter clear) FUJITSU MICROELECTRONICS LIMITED 243 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.5 Registers of 8/16-bit Compound Timer 15.5.2 MB95100B/AM Series 8/16-bit Compound Timer 00/01 Control Status Register 1 (T00CR1/T01CR1) 8/16-bit compound timer 00/01 control status register 1 (T00CR1/T01CR1) controls the interrupt flag, timer output, and timer operations. T00CR1 and T01CR1 registers correspond to timers 00 and 01, respectively. ■ 8/16-bit Compound Timer 00/01 Control Status Register 1 (T00CR1/T01CR1) Figure 15.5-3 8/16-bit Compound Timer 00/01 Control Status Register 1 (T00CR1/T01CR1) Address T01CR1 0036H T00CR1 0037H bit7 bit6 STA HO R/W R/W bit5 bit4 bit3 bit2 bit1 IE IR BF IF SO R/W R(RM1),W R/WX R(RM1),W R/W bit0 Initial value OE 00000000 B R/W Timer output enable bit OE 0 Timer output disabled 1 Timer output enabled Timer output initial value bit SO 0 Timer initial value "0" 1 Timer initial value "1" Timer reload/overflow flag IF Read Write 0 No reload or overflow Flag clear 1 Reload and overflow No effect on operation BF Data register full flag 0 Measurement data absent in data register 1 Measurement data present in data register IR Pulse width measurement complete and edge detection flag Read Write 0 Measurement complete, edge undetected Flag clear 1 Measurement complete, edge detected No effect on operation IE Interrupt request bit 0 Interrupt disabled 1 Interrupt enabled HO Timer pause bit 0 Timer operable 1 Timer paused STA Timer operation enable bit 0 Timer stopped 1 Timer operable R/W : Readable/Writable (Read value is the same as write value) R(RM1),W : Readable/Writable (Read value is different from write value, "1" is read by read-modify-write (RMW) instruction) R/WX : Read only (Readable, writing has no effect on operation) : Initial value 244 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 15 8/16-BIT COMPOUND TIMER 15.5 Registers of 8/16-bit Compound Timer Table 15.5-2 Functional Description of Each Bit of 8/16-bit Compound Timer 00/01 Control Status Register 1 (1 / 2) Bit name Function bit7 This bit enables or stops timer operation. Writing "0": stops the timer operation and sets the count value to "00H". • When the PWM timer function (variable-cycle mode) has been selected (T00CR0/T01CR0: F3, F2, F1, F0 = 0100B), the STA bit can be used to enable or disable timer operation from within either the T00CR1 (timer 00) or T01CR1 (timer 01) register. In this case, the STA bit in the other register is set to the same value automatically. STA: • During 16-bit operation (TMCR0:MOD = 1), use the STA bit in the T00CR1 (timer 00) register to Timer operation enable enable or disable timer operation. In this case, the STA bit in the other register is set to the same bit value automatically. Writing "1": allows timer operation to start from count value "00H". • Set this bit to "1" after setting the count clock select bits (T00CR0/T01CR0:C2, C1, C0), timer operation select bits (T00CR0/T01CR0:F3, F2, F1, F0), timer output initial value bit (T00CR1/ T01CR1:SO), 16-bit mode enable bit (TMCR0:MOD), and filter function select bits (TMCR0:FE11, FE10, FE01, FE00). bit6 HO: Timer suspend bit This bit suspends or resumes timer operation. • Writing "1" to this bit during timer operation suspends the timer operation. • Writing "0" to the bit when timer operation has been enabled (T00CR1/T01CR1:STA = 1) resumes the timer operation. • When the PWM timer function (variable-cycle mode) has been selected (T00CR0/T01CR0: F3, F2, F1, F0=0100B), the HO bit can be used to suspend or resume timer operation from within either the T00CR1 (timer 00) or T01CR1 (timer 01) register. In this case, the HO bit in the other register is set to the same value automatically. • During 16-bit operation (TMCR0:MOD = 1), use the HO bit in the T00CR1 (timer 00) register to suspend or resume timer operation. In this case, the STA bit in the other register is set to the same value automatically. IE: Interrupt request enable bit This bit enables or disables the output of interrupt requests. Writing "0": disables interrupt request. Writing "1": outputs an interrupt request when the pulse width measurement completion/edge detection flag (T00CR1/T01CR1:IR) or timer reload/overflow flag (T00CR1/ T01CR1:IF) is "1". Note, however, that an interrupt request from the timer reload/overflow flag (T00CR1/T01CR1:IF) is not outputted unless the IF flag interrupt enable (T00CR0/ T01CR0:IFE) bit is also set to "1". IR: Pulse width measurement completion/edge detection flag This bit shows the completion of pulse width measurement or the detection of an edge. • The bit is set to "1" upon completion of pulse width measurement when the PWC timer function has been selected. • The bit is set to "1" upon detection of an edge when the input capture function has been selected. • The bit is "0" when any timer function other than the PWC timer and input capture functions has been selected. • This bit always returns "1" to a read modify write (RMW) instruction. • The IR bit in T01CR1 (timer 01) register is set to "0" during 16-bit operation. • Writing "0" to the bit sets it to "0". • An attempt to write "1" to the bit is ignored. bit5 bit4 CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 245 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.5 Registers of 8/16-bit Compound Timer MB95100B/AM Series Table 15.5-2 Functional Description of Each Bit of 8/16-bit Compound Timer 00/01 Control Status Register 1 (2 / 2) Bit name Function BF: Data register full flag • This bit is set to "1" when a count value is stored in the 8/16-bit compound timer 00/01 data register (T00DR/T01DR) upon completion of pulse width measurement in PWC timer function. • This bit is set to "0" when the 8/16-bit compound timer 00/01 data register (T00DR/T01DR) is read during 8-bit operation. • The 8/16-bit compound timer 00/01 data register (T00DR/T01DR) holds data with this bit containing "1". Even when the next edge is detected with this bit containing "1", the count value is not transferred to the 8/16-bit compound timer 00/01 data register (T00DR/T01DR) and thus the next measurement result is lost. However, as the exception, when the "H" pulse and cycle measurement (T00CR0/T01CR0: F3, F2, F1, F0= 1001B) is selected, the "H" pulse measurement result is transferred to the 8/16-bit compound timer 00/01 data register (T00DR/T01DR) with this bit set to "1". The cycle measurement result is not transferred to the 8/16-bit compound timer 00/01 data register with the bit set to "1". For cycle measurement, therefore, the "H" pulse measurement result must be read before the cycle is completed. Note also that the result of "H" pulse measurement or cycle measurement is lost unless read before the completion of the next "H" pulse. • The BF bit in the T00CR1 (timer 00) register is set to "0" when the T01DR (timer 01) register is read during 16-bit operation. • The BF bit in T01CR1 (timer 01) register is set to "0" during 16-bit operation. • This bit is "0" when any timer function other than the PWC timer function has been selected. • Writing to this bit has no effects on the operation. IF: Timer reload/overflow flag This bit detects a match with a count value or a counter overflow. • The bit is set to "1" when the 8/16-bit compound timer 00/01 data register (T00DR/T01DR) value matches the count value during interval timer function (both one-shot and continuous mode) or PWM timer function (variable-cycle mode). • The bit is set to "1" when a counter overflow occurs during PWC or input capture function. • This bit always returns "1" to a read-modify-write (RMW) instruction. • Writing "0" to the bit sets it to "0". • Writing "1" to this bit has no effects on the operation. • The bit is "0" when the PWM function (variable-cycle mode) has been selected. • The IF bit in the T01CR1 (timer 01) register is "0" during 16-bit operation. bit1 SO: Timer output initial value bit Writing to this bit sets the timer output (TMCR0:TO1/TO0) initial value. The value in this bit is reflected in the timer output when the timer operation enable bit (T00CR1/T01CR1:STA) changes from "0" to "1". • During 16-bit operation (TMCR0:MOD = 1), use the SO bit in the T00CR1 (timer 00) register to set the timer output initial value. In this case, the value of the S bit in the other register is meaningless. • An attempt to write to this bit is nullified during timer operation (T00CR1/T01CR1:STA = 1). During 16-bit operation, however, a value can be written to the SO bit in the T01CR1 (timer 01) register even during timer operation but it has no direct effect on the timer output. • The value of this bit is meaningless when the PWM timer function (either fixed-cycle or variablecycle mode) or input capture function has been selected. bit0 This bit enables or disabled timer output. OE: Writing "0": prevents the timer output from being supplied to the external pin. In this case, the external pin serves as a general-purpose port. Timer output enable bit Writing "1": supplies timer output (TMCR0:TO1/TO0) to the external pin. bit3 bit2 246 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 15 8/16-BIT COMPOUND TIMER 15.5 Registers of 8/16-bit Compound Timer MB95100B/AM Series 15.5.3 8/16-bit Compound Timer 00/01 Timer Mode Control Register ch.0 (TMCR0) The 8/16-bit compound timer 00/01 timer mode control register ch.0 (TMCR0) selects the filter function, 8-bit or 16-bit operation mode, and signal input to timer 00 and to indicate the timer output value. This register serves for both of timers 00 and 01. ■ 8/16-bit Compound Timer 00/01 Timer Mode Control Register ch.0 (TMCR0) Figure 15.5-4 8/16-bit Compound Timer 00/01 Timer Mode Control Register ch.0 (TMCR0) TMCR0 Address 0F96H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value TO1 TO0 IIS MOD FE11 FE10 FE01 FE00 00000000 B R/WX R/WX R/W R/W R/W R/W R/W R/W Timer 00 filter function select bits FE01 FE00 0 0 No filtering 0 1 Removing "H" pulse noise 1 0 Removing "L" pulse noise 1 1 Removing "H"/"L" pulse noise FE11 FE10 0 0 No filtering 0 1 Removing "H" pulse noise 1 0 Removing "L" pulse noise 1 1 Removing "H"/"L" pulse noise Timer 01 filter function select bits MOD 8-bit/16-bit operation mode select bit 0 8-bit operation 1 16-bit operation IIS Timer 00 internal signal select bit 0 Selecting external signal (EC00) as timer 00 input 1 Selecting internal signal (TII0) as timer 00 input Timer 00 output bit TO0 0 1 Output value of timer 00 Timer 01 output bit TO1 0 Output value of timer 01 1 R/W : Readable/Writable (Read value is the same as write value) R(RM1),W : Readable/Writable (Read value is different from write value, "1" is read by read-modify-write (RMW) instruction) R/WX : Read only (Readable, writing has no effect on operation) : Initial value CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 247 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.5 Registers of 8/16-bit Compound Timer MB95100B/AM Series Table 15.5-3 Functional Description of Each Bit of 8/16-bit Compound Timer 00/01 Timer Mode Control Register ch.0 (TMCR0) (1 / 2) Bit name Function TO1: Timer 01 output bit This bit indicates the output value of timer 01. When the timer starts operation (T00CR1/ T01CR1:STA = 1), the value in the bit changes depending on the selected timer function. • Writing to this bit has no effect on the operation. • The value in the bit remains undefined during 16-bit operation when the PWM timer function (variable-cycle mode) or input capture function has been selected. • When the timer stops operation (T00CR1/T01CR1:STA = 0) in interval timer or PWC timer function, this bit holds the last value. • When the timer stops operation in PWM timer function (fixed-cycle mode), this bit holds the last value. • When the timer operation mode select bit (T00CR0/T01CR0: F3, F2, F1, F0) is changed with the timer being stopped, the bit indicates the last value of timer operation if the same timer operation has ever been performed or otherwise contains "0". bit6 TO0: Timer 00 output bit This bit indicates the output value of timer 00. When the timer starts operation (T00CR1/ T01CR1:STA = 1), the value in the bit changes depending on the selected timer function. • Writing to this bit has no effect on the operation. • The value in the bit remains undefined when the input capture function has been selected. • When the timer stops operation (T00CR1/T01CR1:STA = 0) in interval timer, PWM timer (variable-cycle mode), or PWC timer function, this bit holds the last value. • When the timer stops operation in PWM timer function (fixed-cycle mode), this bit holds the last value. • When the timer operation mode select bit (T00CR0/T01CR0: F3, F2, F1, F0) is changed with the timer being stopped, the bit indicates the last value of timer operation if the same timer operation has ever been performed or otherwise contains "0". bit5 IIS: Timer 00 internal signal select bit This bit selects the signal input to timer 00 when the PWC timer or input capture function has been selected. Writing "0": selects the external signal (EC00) as the signal input for timer 00. Writing "1": selects the internal signal (TII0) as the signal input for timer 00. MOD: 16-bit mode enable bit This bit selects 8-bit or 16-bit operation mode. Writing "0": allows timers 00 and 01 to operate as separate 8-bit timers. Writing "1": allows timers 00 and 01 to operate as a 16-bit timer. • This bit is set to "0" automatically when the timer starts operation (T00CR1/T01CR1:STA=1) in PWM timer mode (variable-cycle mode). • Write access to this bit is nullified during timer operation (T00CR1:STA = 1 or T01CR1:STA = 1). bit7 bit4 These bits select the filter function for the external signal (EC01) to timer 01 when the PWC timer or input capture function has been selected. bit3, bit2 FE11, FE10: Timer 01 filter function select bits FE11 FE10 Timer 01 filter function 0 0 No filtering 0 1 Removing "H" pulse noise 1 0 Removing "L" pulse noise 1 1 Removing "H"/"L" pulse noise • Write access to these bits is nullified during timer operation (T01CR1:STA = 1). • The settings of the bits have no effect on operation when the interval timer or PWM timer function has been selected (filter function does not operate.). 248 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 15 8/16-BIT COMPOUND TIMER 15.5 Registers of 8/16-bit Compound Timer MB95100B/AM Series Table 15.5-3 Functional Description of Each Bit of 8/16-bit Compound Timer 00/01 Timer Mode Control Register ch.0 (TMCR0) (2 / 2) Bit name Function These bits select the filter function for the external signal (EC00) to timer 00 when the PWC timer or input capture function has been selected. bit1, bit0 FE01, FE00: Timer 00 filter function select bits FE01 FE00 Timer 00 filter function 0 0 No filtering 0 1 Removing "H" pulse noise 1 0 Removing "L" pulse noise 1 1 Removing "H"/"L" pulse noise • An attempt to write to these bits is nullified during timer operation (T00CR1:STA = 1). • The settings of these bits have no effect on operation when the interval timer or PWM timer function has been selected (filter function does not operate.). CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 249 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.5 Registers of 8/16-bit Compound Timer 15.5.4 MB95100B/AM Series 8/16-bit Compound Timer 00/01 Data Register ch.0 (T00DR/T01DR) The 8/16-bit compound timer 00/01 data register (T00DR/T01DR) is used to write the maximum value counted during interval timer or PWM timer operation and to read the count value during PWC timer or input capture operation. The T00DR and T01DR registers correspond to timers 00 and 01, respectively. ■ 8/16-bit Compound Timer 00/01 Data Register (T00DR/T01DR) Figure 15.5-5 8/16-bit Compound Timer 00/01 Data Register (T00DR/T01DR) Address bit7 bit6 bit5 bit4 bit3 bit2 T01DR 0F94H TDR7 TDR6 TDR5 TDR4 TDR3 TDR2 T00DR 0F95H R, W R, W R, W R, W R, W R, W R, W: Readable/Writable (Read value is different from write value) bit1 bit0 Initial value TDR1 R, W TDR0 R, W 00000000B ● Interval timer function The 8/16-bit compound timer 00/01 data register (T00DR/T01DR) is used to set the interval time. When the timer starts operation (T00CR1/T01CR1:STA = 1), the value of this register is transferred to the latch in the 8-bit comparator and the counter starts counting. When the count value matches the value held in the latch in the 8-bit comparator, the value of this register is transferred again to the latch and the count value is reset to "00H" to continue to count. The current count value can be read from this register. An attempt to write "00H" to this register is disabled in interval timer function. In 16-bit operation, set the upper data to T01DR and lower data to T00DR. And, write and read T01DR and T00DR in this order. ● PWM timer functions (fixed-cycle) The 8/16-bit compound timer 00/01 data register (T00DR/T01DR) is used to set "H" pulse width time. When the timer starts operation (T00CR1/T01CR1:STA=1), the value of this register is transferred to the latch in the 8-bit comparator and the counter starts counting from timer output "H". When the count value matches the value held in the latch, the timer output becomes "L" and the counter continues to count until the count value reaches "FFH". When an overflow occurs, the value of this register is transferred again to the latch in the 8-bit comparator and the counter performs the next cycle of counting. The current value can be read from this register. In 16-bit operation, set the upper data to T01DR and lower data to T00DR. And, write and read T01DR and T00DR in this order. 250 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 15 8/16-BIT COMPOUND TIMER 15.5 Registers of 8/16-bit Compound Timer ● PWM timer functions (variable-cycle) The 8/16-bit compound timer 00 data register (T00DR) and 8/16-bit compound timer 01 data register (T01DR) are used to set "L" pulse width timer and cycle, respectively. When the timer starts operation (T00CR1/T01CR1:STA = 1), the value of each register is transferred to the latch in the 8-bit comparator and two counters start counting from timer output "L". When the T00DR value held in the latch matches the timer 00 counter value, the timer output becomes "H" and the counting continues until the T01DR value held in the latch matches the timer 01 counter value. When the T01DR value held in the latch of the 8-bit comparator matches the timer 01 counter value, the values of these registers are transferred again to the latch and the next PWM cycle of counting is performed continuously. The current count value can be read from this register. In 16-bit operation, set the upper data and lower data to T01DR and T00DR, respectively. And, write and read T01DR and T00DR in this order. ● PWC timer function The 8/16-bit compound timer 00/01 data register (T00DR/T01DR) is used to read PWC measurement results. When PWC measurement is completed, the counter value is transferred to this register and the BF bit is set to "1". When the 8/16-bit compound timer 00/01 data register is read, the BF bit is set to "0". Transfer to the 8/16bit compound timer 00/01 data register is not performed with the BF bit containing "1". As the exception, when the "H" pulse and cycle measurement (T00CR0/T01CR0:F3, F2, F1, F0 = 1001B) is selected, the "H" pulse measurement result is transferred to the 8/16-bit compound timer 00/01 data register with the BF bit set to "1", but the cycle measurement result is not transferred to the 8/16-bit compound timer 00/01 data register with the BF bit set to "1". For cycle measurement, therefore, the "H" pulse measurement result must be read before the cycle is completed. Note also that the result of "H" pulse measurement or cycle measurement is lost unless read before the completion of the next "H" pulse. When reading the 8/16-bit compound timer 00/01 data register, be careful not to clear the BF bit unintentionally. Writing to the 8/16-bit compound timer 00/01 data register updates the stored measurement data with the write value. Therefore, do not perform a write operation. In 16-bit operation, the upper data and lower data are transferred to T01DR and T00DR, respectively. Read T01DR and T00DR in this order. ● Input capture function The 8/16-bit compound timer 00/01 data register (T00DR/T01DR) is used to read input capture results. When a specified edge is detected, the counter value is transferred to the 8/16-bit compound timer 00/01 data register. Writing a value to the data register updates the measurement data stored there with that value. Therefore, do not write to the 8/16-bit compound timer 00/01 data register. In 16-bit operation, the upper data and lower data are transferred to T01DR and T00DR, respectively. Read T01DR and T00DR in this order. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 251 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.5 Registers of 8/16-bit Compound Timer MB95100B/AM Series ● Read and write operations Read and write operations of T00DR and T01DR are performed in the following manner during 16-bit operation and PWM timer function (variable-cycle). • Read from T01DR: Read access from the register also involves storing the T00DR value into the internal read buffer. • Read from T00DR: Read from the internal read buffer. • Write to T01DR: Write to the internal write buffer. • Write to T00DR: Write access to the register also involves storing the value of the internal write buffer into T01DR. Figure 15.5-6 shows the T00DR and T01DR registers read from and written to during 16-bit operation. Figure 15.5-6 T00DR and T01DR registers read from and written to during 16-bit operation T00DR register Write data 252 Read data T01DR register Write buffer T01DR write Read buffer T00DR write T01DR read FUJITSU MICROELECTRONICS LIMITED T00DR read CM26-10112-4E MB95100B/AM Series 15.6 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.6 Interrupts of 8/16-bit Compound Timer Interrupts of 8/16-bit Compound Timer The 8/16-bit compound timer generates the following types of interrupts to each of which an interrupt number and interrupt vector are assigned. • Timer 00 interrupt • Timer 01 interrupt ■ Timer 00 Interrupt Table 15.6-1 explains the timer 00 interrupt and its source. Table 15.6-1 Timer 00 Interrupt Description Item Interrupt generating condition Comparison match in interval timer function or PWM timer function (variable-cycle mode) has been selected Overflow in PWC timer function or input capture function Completion of measurement in PWC timer function or edge detection in input capture function Interrupt flag T00CR1:IF T00CR1:IF T00CR1:IR Interrupt enable T00CR1:IE and T00CR0:IFE T00CR1:IE and T00CR0:IFE T00CR1:IE ■ Timer 01 Interrupt Table 15.6-2 explains the timer 01 interrupt and its cause. Table 15.6-2 Timer 01 Interrupt Description Item CM26-10112-4E Interrupt generating condition Comparison match in interval timer function or PWM timer function (variable-cycle mode) has been selected Excluded during 16-bit operation Overflow in PWC timer function or input capture function Excluded during 16-bit operation Completion of measurement in PWC timer function or edge detection in input capture function Excluded during 16-bit operation Interrupt flag T01CR1:IF T01CR1:IF T01CR1:IR Interrupt enable T01CR1:IE and T01CR0:IFE T01CR1:IE and T01CR0:IFE T01CR1:IE FUJITSU MICROELECTRONICS LIMITED 253 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.6 Interrupts of 8/16-bit Compound Timer MB95100B/AM Series ■ Registers and Vector Tables Related to Interrupts of 8/16-bit Compound Timer Table 15.6-3 Registers and Vector Tables Related to Interrupts of 8/16-bit Compound Timer Interrupt source Interrupt request No. Timer 00 Interrupt level setup register Vector table address Register Setting bit Upper Lower IRQ5 ILR1 L05 FFF0H FFF1H Timer 01 IRQ6 ILR1 L06 FFEEH FFEFH Timer 10 IRQ22 ILR5 L22 FFCEH FFCFH Timer 11 IRQ14 ILR3 L14 FFDEH FFDFH The request numbers and vector tables of all peripheral functions are listed in "Appendix B Interrupt Source Tables". 254 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 15 8/16-BIT COMPOUND TIMER 15.7 Operating Description of Interval Timer Function (One-shot Mode) MB95100B/AM Series 15.7 Operating Description of Interval Timer Function (Oneshot Mode) This section describes the operations of the interval timer function (one-shot mode) for the 8/16-bit compound timer. ■ Operation of Interval Timer Function (One-shot Mode) The compound timer requires the register settings shown in Figure 15.7-1 to serve as the interval timer function. Figure 15.7-1 Settings of Interval Timer Function bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 T00CR0/T01CR0 IFE C2 C1 C0 F3 F2 F1 F0 ❍ ❍ ❍ ❍ 0 0 0 0 T00CR1/T01CR1 STA HO IE IR BF IF SO OE 1 ❍ ❍ × × ❍ ❍ ❍ TMCR0 TO1 TO0 IIS MOD FE11 FE10 FE01 FE00 ❍ ❍ × ❍ ❍ ❍ ❍ ❍ T00DR/T01DR Sets interval timer (counter compare value) ❍: Used bit ×: Unused bit 1: Set "1" 0: Set "0" In interval timer function (one-shot mode), enabling timer operation (T00CR0/T00CR1:STA = 1) causes the counter to start counting from "00H" at the rising edge of a selected count clock signal. When the counter value matches the value of the 8/16-bit compound timer 00/01 data register (T00DR/T01DR), the timer output (TMCR0:TO0/TO1) is inverted, the interrupt flag (T00CR1/T01CR1:IF) is set to "1" and the start bit (T00CR0/T00CR1:STA) is set to "0", and then the count operation stops. The value of the 8/16-bit compound timer 00/01 data register (T00DR/T01DR) is transferred to the temporary storage latch (comparison data storage latch) in the comparator when the counter starts counting. Writing "00H" to the 8/16-bit compound timer 00/01 data register is prohibited. Figure 15.7-2 shows the operation of the interval timer function in the 8-bit operation. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 255 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.7 Operating Description of Interval Timer Function (One-shot Mode) MB95100B/AM Series Figure 15.7-2 Operation of Interval Timer Function in 8-bit Mode (Timer 0) Counter value FFH 80H 00H Time T00DR/T01DR value (FFH) Timer cycle T00DR/T01DR value modified (FFH 80H)* Cleared by program IF bit STA bit Automatically cleared Inverted Reactivated Automatically cleared Reactivated Reactivated with output initial value unchanged ("0") Timer output pin For initial value "1" on activation *: If the T00DR/T01DR data register value is modified during operation, the new value is used from the next active cycle. 256 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 15.8 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.8 Operating Description of Interval Timer Function (Continuous Mode) Operating Description of Interval Timer Function (Continuous Mode) This section describes the interval timer function (continuous mode operation) of the 8/16-bit compound timer. ■ Operation of Interval Timer Function (Continuous Mode) The compound timer requires the register settings shown in Figure 15.8-1 to serve as the interval timer function (continuous mode). Figure 15.8-1 Settings for Counter Function (8-bit Mode) T00CR0/T01CR0 T00CR1/T01CR1 TMCR0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 IFE C2 C1 C0 F3 F2 F1 F0 ❍ ❍ ❍ ❍ 0 0 0 1 STA HO IE IR BF IF SO OE 1 ❍ ❍ × × ❍ ❍ ❍ TO1 TO0 IIS MOD FE11 FE10 FE01 FE00 ❍ ❍ × ❍ ❍ ❍ ❍ ❍ Sets interval time (counter compare value) T00DR/T01DR ❍: Used bit ×: Unused bit 1: Set "1" 0: Set "0" In interval timer function (continuous mode), enabling timer operation (T00CR0/T00CR1:STA = 1) causes the counter to start counting from "00H" at the rising edge of a selected count clock signal. When the counter value matches the value in the 8/16-bit compound timer 00/01 data register (T00DR/T01DR), the timer output bit (TMCR0:TO0/TO1) is inverted, the interrupt flag (T00CR1/T01CR1:IF) is set to "1", and the counter continues to count by restarting at "00H". The timer outputs a square wave as a result of this continuous operation. The value of the 8/16-bit compound timer 00/01 data register (T00DR/T01DR) is transferred to the temporary storage latch (comparison data storage latch) in the comparator either when the counter starts counting or when a counter value comparison match is detected. Writing "00H" to the 8/16-bit compound timer 00/01 data register is disabled during the count operation. When the timer stops operation, the timer output bit (TMCR0:TO0/TO1) holds the last value. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 257 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.8 Operating Description of Interval Timer Function (Continuous Mode) MB95100B/AM Series Figure 15.8-2 Operating Diagram of Interval Timer Function (Continuous Mode) Compare value Compare value (E0H) Compare value (80H) Compare value (FFH) FFH E0H 80H 00H Time T00DR/T01DR value modified (FFH→80H)*1 T00DR/T01DR value (E0H) Cleared by program IF bit STA bit Activated Matched Matched Matched Matched Matched Counter clear *2 Timer output pin *1: If the T00DR/T01DR data register value is modified during operation, the new value is used from the next active cycle. *2: The counter is cleared and the data register settings are loaded into the comparison data latch when a match is detected at each point during activation. 258 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 15 8/16-BIT COMPOUND TIMER 15.9 Operating Description of Interval Timer Function (Free-run Mode) MB95100B/AM Series 15.9 Operating Description of Interval Timer Function (Free-run Mode) This section describes the operation of the interval timer function (free-run mode) for the 8/16-bit compound timer. ■ Operation of Interval Timer Function (Free-run Mode) The compound timer requires the settings shown in Figure 15.9-1 to serve as the interval timer function (free-run mode). Figure 15.9-1 Settings for Interval Timer Function (Free-run Mode) T00CR0/T01CR0 T00CR1/T01CR1 TMCR0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 IFE C2 C1 C0 F3 F2 F1 F0 ❍ ❍ ❍ ❍ 0 0 1 0 STA HO IE IR BF IF SO OE 1 ❍ ❍ × × ❍ ❍ ❍ TO1 TO0 IIS MOD FE11 FE10 FE01 FE00 ❍ ❍ × ❍ ❍ ❍ ❍ ❍ T00DR/T01DR Sets interval time (counter compare value) ❍: Used bit ×: Unused bit 1: Set "1" 0: Set "0" In interval timer function (free-run mode), enabling timer operation (T00CR0/T00CR1:STA = 1) causes the counter to start counting from "00H" at the rising edge of a selected count clock signal. When the counter value matches the value in the 8/16-bit compound timer 00/01 data register (T00DR/T01DR), the timer output bit (TMCR0:TO0/TO1) is inverted and the interrupt flag (T00CR1/T01CR1:IF) is set to "1". The counter continues to count, and when the count value reaches "FFH", it restarts counting at "00H" to continue. The timer outputs a square wave as a result of this continuous operation. The value of the 8/16-bit compound timer 00/01 data register (T00DR/T01DR) is transferred to the temporary storage latch (comparison data storage latch) in the comparator either when the counter starts counting or when a counter value comparison match is detected. Writing "00H" to the 8/16-bit compound timer 00/01 data register is prohibited. When the timer stops operation, the timer output bit (TMCR0:TO0/TO1) holds the last value. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 259 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.9 Operating Description of Interval Timer Function (Free-run Mode) MB95100B/AM Series Figure 15.9-2 Operating Diagram of Interval Timer Function (Free-run Mode) (E0H) Counter value FFH E0H 80H 00H Time Although the T00DR/T01DR value is modified, it is not updated into the comparison latch. T00DR/T01DR value (E0H) Cleared by program IF bit STA bit Activated Matched Matched Matched Matched Counter value match * Timer output pin *: The counter is not cleared and the data register settings are not reloaded into the comparison data latch when a match is detected at each point during activation. 260 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 15.10 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.10 Operating Description of PWM Timer Function (Fixed-cycle mode) Operating Description of PWM Timer Function (Fixed-cycle mode) This section describes the operation of the PWM timer function (fixed-cycle mode) for the 8/16-bit compound timer. ■ Operation of PWM Timer Function (Fixed-cycle Mode) The compound timer requires the settings shown in Figure 15.10-1 to serve as the PWM timer function (fixed-cycle mode). Figure 15.10-1 Settings for PWM Timer Function (Fixed-cycle Mode) T00CR0/T01CR0 T00CR1/T01CR1 TMCR0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 IFE C2 C1 C0 F3 F2 F1 F0 ❍ ❍ ❍ ❍ 0 0 1 1 STA HO IE IR BF IF SO OE 1 ❍ × × × × × × TO1 TO0 IIS MOD FE11 FE10 FE01 FE00 ❍ ❍ × ❍ ❍ ❍ ❍ ❍ T00DR/T01DR Sets "H" pulse width (compare value) ❍: Used bit ×: Unused bit 1: Set "1" 0: Set "0" In PWM timer function (fixed-cycle mode), a fixed cycle PWM signal in a variable "H" pulse width is outputted from the timer output pin (TO00/TO01). The cycle is fixed to "FFH" in 8-bit operation or "FFFFH" in 16-bit operation. The time is determined by the count clock selected. The "H" pulse width is specified by the value in the 8/16-bit compound timer 00/01 data register (T00DR/T01DR). This function has no effect on the interrupt flag (T00CR1/T01CR1:IF). As each cycle always starts with "H" pulse output, the timer output initial value setting bit (T00CR1/T01CR1:SO) is meaningless. The value of the 8/16-bit compound timer 00/01 data register (T00DR/T01DR) is transferred to the temporary storage latch (comparison data storage latch) in the comparator either when the counter starts counting or when a counter value comparison match is detected. When the timer stops operation, the timer output bit (TMCR0:TO0/TO1) holds the last value. The "H" pulse is one count clock shorter than the setting value in the output waveform immediately after activation of the timer (write "1" to the STA bit). CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 261 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.10 Operating Description of PWM Timer Function (Fixed-cycle mode) MB95100B/AM Series Figure 15.10-2 Operating Diagram of PWM Timer Function (Fixed-cycle Mode) T00DR/T01DR register value: "00H" (duty ratio = 0%) Counter value PWM waveform FFH00H 00H "H" "L" T00DR/T01DR register value: "80H" (duty ratio = 50%) Counter value PWM waveform 00H 80H FFH00H "H" "L" T00DR/T01DR register value: "FFH" (duty ratio = 99.6%) Counter value 00H FFH00H "H" PWM waveform "L" One count width Note: When the PWM function has been selected, the timer output pin holds the level used when the counter stops (T00CR0/T01CR0:STA = 0). 262 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 15.11 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.11 Operating Description of PWM Timer Function (Variable-cycle Mode) Operating Description of PWM Timer Function (Variablecycle Mode) This section describes the operations of the PWM timer function (variable-cycle mode) for the 8/16-bit compound timer. ■ Operation of PWM Timer Function (Variable-cycle Mode) The compound timer requires the settings shown in Figure 15.11-1 to serve as the PWM timer function (variable-cycle mode). Figure 15.11-1 Settings for PWM Timer Function (Variable-cycle Mode) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 T00CR0/T01CR0 IFE C2 C1 C0 F3 F2 F1 F0 ❍ ❍ ❍ ❍ 0 1 0 0 T00CR1/T01CR1 STA HO IE IR BF IF SO OE 1 ❍ ❍ × × ❍ × × TO1 TO0 IIS MOD FE11 FE10 FE01 FE00 ❍ ❍ × × ❍ ❍ ❍ ❍ TMCR0 T00DR Sets "L" pulse width (compare value) T01DR Sets the cycle of PWM waveform (compare value) ❍: Used bit ×: Unused bit 1: Set "1" 0: Set "0" In PWM timer function (variable-cycle mode), both timers 00 and 01 are used when the cycle is specified by the 8/16-bit compound timer 01 data register (T01DR), and the "L" pulse width is specified by the 8/16bit compound timer 00 data register (T00DR), any cycle and duty PWM signal is generated from the timer output bit (TO00). For this function, the compound timer cannot serve as a 16-bit counter as the two 8-bit counters are used. Enabling timer operation (by setting either T00CR1:STA = 1 or T01CR1:STA = 1) sets the mode bit (TMCR0:MOD) to "0". As the first cycle always begins with "L" pulse output, the timer initial value setting bit (T00CR1/T01CR1:SO) is meaningless. The interrupt flag (T00CR1/T01CR1:IF) is set when each 8-bit counter matches the value in the corresponding 8/16-bit compound timer 00/01 data register (T00DR/T01DR). The 8/16-bit compound timer 00/01 data register value is transferred to the temporary storage latch (comparison data storage latch) in the comparator either when the counter starts counting or when a comparison match with each counter value is detected. "H" is not outputted when the "L" pulse width setting value is greater than the cycle setting value. The count clock must be selected for both of timers 00 and 01. Selecting different count clocks, however, is prohibited. When the timer stops operation, the timer output bit (TMCR0:TO0) holds the last output value. If the 8/16-bit compound timer 00/01 data register is written over during operation, the written data will be effective from the cycle immediately after the detection of a synchronous match. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 263 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.11 Operating Description of PWM Timer Function (Variable-cycle Mode) MB95100B/AM Series Figure 15.11-2 Operating Diagram of PWM Timer Function (Variable-cycle Mode) T00DR register value: "80H", and T01DR register value: "80H" (duty ratio = 0%) (timer 00 value >= timer 01 value) Counter timer 00 value Counter timer 01 value PWM waveform 00H 00H "H" 80H,00H 80H,00H 80H,00H 80H,00H "L" T00DR register value: "40H", and T01DR register value: "80H" (duty ratio = 50%) Counter timer 00 value Counter timer 01 value 00H 00H 40H 00H 80H,00H 40H 00H 80H,00H "H" PWM waveform "L" T00DR register value: "00H", and T01DR register value: "FFH" (duty ratio = 99.6%) Counter timer 00 value Counter timer 01 value 00H FFH,00H 00H 00H "H" PWM waveform "L" 264 One count width FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 15 8/16-BIT COMPOUND TIMER 15.12 Operating Description of PWC Timer Function MB95100B/AM Series 15.12 Operating Description of PWC Timer Function This section describes the operations of the PWC timer function for the 8/16-bit compound timer. ■ Operation of PWC Timer Function The compound timer requires the settings shown in Figure 15.12-1 to serve as the PWC timer function. Figure 15.12-1 Settings for PWC Timer Function bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 T00CR0/T01CR0 IFE C2 C1 C0 F3 F2 F1 F0 ❍ ❍ ❍ ❍ ❍ ❍ ❍ ❍ T00CR1/T01CR1 STA HO IE IR BF IF SO OE 1 ❍ ❍ ❍ ❍ ❍ ❍ × TMCR0 TO1 TO0 IIS MOD FE11 FE10 FE01 FE00 ❍ ❍ ❍ ❍ ❍ ❍ ❍ ❍ T00DR/T01DR Holds pulse width measurement value ❍: Used bit ×: Unused bit 1: Set "1" When the PWC timer function is selected, the width and cycle of an external input pulse can be measured. The edges to start and end counting are selected by timer operation mode setting (T00CR0/T01CR0:F3, F2, F1, F0). In this operation mode, the counter starts counting from "00H" upon detection of the specified count start edge of an external input signal. Upon detection of the specified count end edge, the count value is transferred to the 8/16-bit compound timer 00/01 data register (T00DR/T01DR) and the interrupt flag (T00CR1/T01CR1:IR) and buffer full flag (T00CR1/T01CR1:BF) are set to "1". The buffer full flag is set to "0" when the 8/16-bit compound timer 00/01 data register (T00DR/T01DR) is read from. The 8/16-bit compound timer 00/01 data register holds data with the buffer full flag set to "1". Even when the next edge is detected at this time, the next measurement result is lost as the count value is not transferred to the 8/16-bit compound timer 00/01 data register. As the exception, when the H-pulse and cycle measurement (T00CR0/T01CR0:F3, F2, F1, F0 = 1001B) is selected, the H-pulse measurement result is transferred to the 8/16-bit compound timer 00/01 data register with the BF bit set to "1", but the cycle measurement result is not transferred to the 8/16-bit compound timer 00/01 data register with the BF bit set to "1". For cycle measurement, therefore, the H-pulse measurement result must be read before the cycle is completed. Note also that the result of H-pulse measurement or cycle measurement is lost unless read before the completion of the next H pulse. To measure the time exceeding the value of the counter, you can use software to count the number of occurrences of a counter overflow. When the counter causes an overflow, the interrupt flag (T00CR1/ T01CR1:IF) is set to "1". The interrupt service routine can therefore be used to count the number of times the overflow occurs. Note also that an overflow toggles the timer output. The timer output initial value can be set by the timer output initial value bit (T00CR1/T01CR1:SO). CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 265 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.12 Operating Description of PWC Timer Function MB95100B/AM Series When the timer stops operation, the timer output bit (TMCR0:TO1/TO0) holds the last value. The value of the 8/16-bit compound timer 00/01 data register (T00DR/T01DR) must be nullified if an interrupt occurs before the timer is activated (before "1" is written to the STA bit). Figure 15.12-2 Operating Diagram of PWC Timer (Example of H-pulse Width Measurement) "H" width Pulse input (Input waveform to PWC pin) Counter value FFH Time STA bit Counter operation Cleared by program IR bit BF bit Data transferred from counter to T00DR/T01DR T00DR/T01DR data register read 266 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 15 8/16-BIT COMPOUND TIMER 15.13 Operating Description of Input Capture Function MB95100B/AM Series 15.13 Operating Description of Input Capture Function This section describes the operations of the input capture function for the 8/16-bit compound timer. ■ Operation of Input Capture Function The compound timer requires the settings shown in Figure 15.13-1 to serve as the input capture function. Figure 15.13-1 Settings for Input Capture Function bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 T00CR0/T01CR0 IFE C2 C1 C0 F3 F2 F1 F0 ❍ ❍ ❍ ❍ ❍ ❍ ❍ ❍ T00CR1/T01CR1 STA HO IE IR BF IF SO OE 1 ❍ ❍ ❍ × ❍ × × TMCR0 TO1 TO0 IIS MOD FE11 FE10 FE01 FE00 × × ❍ ❍ ❍ ❍ ❍ ❍ T00DR/T01DR Holds pulse width measurement value ❍: Used bit ×: Unused bit 1: Set "1" When the input capture function is selected, the counter value is stored to the 8/16-bit compound timer 00/01 data register (T00DR/T01DR) upon detection of an edge of the external signal input. The edge to be detected is selected by timer operation mode setting (T00CR0/T01CR0:F3, F2, F1, F0). This function is available in either free-run mode or clear mode, which can be selected by timer operation mode setting. In clear mode, the counter starts counting from "00H". When the edge is detected, the counter value is transferred to the 8/16-bit compound timer 00/01 data register (T00DR/T01DR), the interrupt flag (T00CR1/T01CR1:IR) is set to "1", and the counter continues to count by restarting at "00H". When the edge is detected in free-run mode, the counter value is transferred to the 8/16-bit compound timer 00/01 data register (T00DR/T01DR) and the interrupt flag (T00CR1/T01CR1:IR) is set to "1". In this case, the counter continues to count without being cleared. This function has no effect on the buffer full flag (T00CR1/T01CR1:BF). To measure the time exceeding the value of the counter, software can be used to count the number of occurrences of a counter overflow. When the counter causes an overflow, the interrupt flag (T00CR1/ T01CR1:IF) is set to "1". The interrupt service routine can therefore be used to count the number of times the overflow occurs. The capture value in the 8/16-bit compound timer 00/01 data register (T00DR/T01DR) must be nullified if an interrupt occurs before the timer is activated (before "1" is written to the STA bit). CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 267 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.13 Operating Description of Input Capture Function MB95100B/AM Series When the timing at which the 8/16-bit compound timer captures a counter value is the detection of either edge of the external input signal (T00CR0/T01CR0:F3-F0=1100B or 1111B), the operations in falling edge detection vary according to the level of the external input signal as explained below. • External input signal level: H In both free-run mode and clear mode, the first falling edge is ignored, no counter value is transferred to the data register (T00DR/T01DR), and the pulse width measurement completion/edge detection flag (T00CR1/T01CR1:IR) is not set. In addition, in clear mode, the counter is not cleared either. • External input signal level: L The 8/16-bit compound timer starts edge detection from the first rising edge. Figure 15.13-2 Operating Diagram of Input Capture Function FFH BFH 9FH 7FH 3FH Capture value in T00DR/T01DR BFH Falling edge of capture External input Counter clear mode 268 7FH 3FH Rising edge of capture Falling edge of capture 9FH Rising edge of capture Counter free-run mode FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 15.14 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.14 Operating Description of Noise Filter Operating Description of Noise Filter This section describes the operations of the noise filter for the 8/16-bit compound timer. When the input capture or PWC timer function has been selected, a noise filter can be used to eliminate the pulse noise of the signal from the external input pin (EC0/EC1). "H"-pulse noise, "L"-pulse noise, or "H"/"L"-pulse noise elimination can be selected depending on the register setting (TMCR0:FE11, FE10, FE01, FE00). The maximum pulse width from which to eliminate noise is three machine clock cycles. When the filter function is active, the signal input is subject to a delay of four machine clock cycles. Figure 15.14-1 Operation of Noise Filter Sample filter clock External input signal Output filter "H" noise Output filter "L" noise Output filter "H"/"L" noise CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 269 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.15 States in Each Mode during Operation 15.15 MB95100B/AM Series States in Each Mode during Operation This section describes how the 8/16-bit compound timer behaves when the microcontroller enters watch mode or stop mode or when a suspend (T00CR1/ T01CR1:HO = 1) request is issued during operation. ■ When Interval Timer, Input Capture, or PWC Function Has Been Selected Figure 15.15-1 shows how the counter value changes when transition to watch mode or stop mode or a suspend request occurs during operation of the 8/16-bit compound timer. The counter stops operation while holding the value when transition to stop mode or watch mode occurs. When the stop mode or watch mode is canceled by an interrupt, the counter resumes operation with the last value held. So the first interval time and external clock count are incorrect. After releasing from stop mode or watch mode, be sure to initialize the counter value. Figure 15.15-1 Operations of Counter in Standby Mode or in Pause (Not Serving as PWM Timer) Counter value FFH T00DR/T01DR data register value (FFH) 80H 00H Timer cycle Time Request ends HO request HO request ends Delay of oscillation stabilization wait time Interval time after wake-up from stop mode (undefined) IF bit Operation halts Cleared by program STA bit Operation history Operation reactivated HO bit IE bit Sleep mode SLP bit (STBC register) Wake-up from sleep mode by interrupt Wake-up from stop mode by external interrupt STP bit (STBC register) Stop mode 270 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 15 8/16-BIT COMPOUND TIMER 15.15 States in Each Mode during Operation MB95100B/AM Series Figure 15.15-2 Operations of Counter in Standby Mode or in Pause (Serving as PWM Timer) (FFH) Counter value FFH 00H Delay of oscillation stabilization wait time T00DR/T01DR value (FFH) STA bit Time * PWM timer output pin SLP bit Sleep mode Maintains the level prior to stop Maintains the level prior to hold (STBC register) Wake-up from stop mode by external interrupt Wake-up from sleep mode by interrupt STP bit (STBC register) HO bit *: The PWM timer output maintains the value held before it enters the stop mode. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 271 CHAPTER 15 8/16-BIT COMPOUND TIMER 15.16 Notes on Using 8/16-bit Compound Timer 15.16 MB95100B/AM Series Notes on Using 8/16-bit Compound Timer This section explains the precautions to be taken when using the 8/16-bit compound timer. ■ Notes on Using 8/16-bit Compound Timer When changing the timer function by using the timer operation mode select bits (T00CR0/T01CR0:F3, F2, F1, F0), the timer operation must be stopped (T00CR1/T01CR1:STA = 0) before clearing the interrupt flag (T00CR1/T01CR1:IF, IR), interrupt enable bits (T00CR1/T01CR1:IE, T00CR0/T01CR0:IFE) and buffer full flag (T00CR1/T01CR1:BF). When the PWC or input capture function has been selected, an interrupt may occur even before the timer is activated (STA = 0). Therefore, nullify the value of the 8/16-bit compound timer 00/01 data register (T00DR/T01DR) obtained before the activation. In the case of using the input capture function, when the timing at which the 8/16-bit compound timer captures a counter value is the detection of either edge of the external input signal (T00CR0/T01CR0:F3F0=1100B or 1111B), the operations in falling edge detection vary according to the level of the external input signal as explained below. • External input signal level: H In both free-run mode and clear mode, the first falling edge is ignored, no counter value is transferred to the data register (T00DR/T01DR), and the pulse width measurement completion/edge detection flag (T00CR1/T01CR1:IR) is not set. In addition, in clear mode, the counter is not cleared either. • External input signal level: L The 8/16-bit compound timer starts edge detection from the first rising edge. 272 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 16 8/16-BIT PPG This chapter describes the functions and operations of the 8/16-bit PPG. 16.1 Overview of 8/16-bit PPG 16.2 Configuration of 8/16-bit PPG 16.3 Channels of 8/16-bit PPG 16.4 Pins of 8/16-bit PPG 16.5 Registers of 8/16-bit PPG 16.6 Interrupts of 8/16-bit PPG 16.7 Operating Description of 8/16-bit PPG 16.8 Notes on Using 8/16-bit PPG 16.9 Sample Programs for 8/16-bit PPG Timer CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 273 CHAPTER 16 8/16-BIT PPG 16.1 Overview of 8/16-bit PPG 16.1 MB95100B/AM Series Overview of 8/16-bit PPG The 8/16-bit PPG is an 8-bit reload timer module that uses pulse output control based on timer operation to perform PPG output. The 8/16-bit PPG also operates in cascade (8 bits + 8 bits) as 16-bit PPG. ■ Overview of 8/16-bit PPG The following section summarizes the 8/16-bit PPG functions. ● 8-bit PPG output independent operation mode In this mode, the unit can operate as 2 8-bit PPG (PPG timer 00 and PPG timer 01). ● 8-bit prescaler + 8-bit PPG output operation mode The rising and falling edge detection pulses from the PPG timer 01 output can be inputted to the downcounter of the PPG timer 00 to enable variable-cycle 8-bit PPG output. ● 16-bit PPG output operation mode The unit can also operate in cascade (PPG timer 01 (upper 8 bits) + PPG timer 00 (lower 8 bits)) as 16-bit PPG output. ● PPG output operation In this operation, a variable-cycle pulse waveform is outputted in any duty ratio. The unit can also be used as a D/A converter in conjunction with an external circuit. ● Output inversion mode This mode can invert the PPG output value. 274 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 16 8/16-BIT PPG 16.2 Configuration of 8/16-bit PPG MB95100B/AM Series 16.2 Configuration of 8/16-bit PPG This section shows the block diagram of 8/16-bit PPG. ■ Block Diagram of 8/16-bit PPG Figure 16.2-1 shows the block diagram of the 8/16-bit PPG. Figure 16.2-1 Block Diagram of 8/16-bit PPG CKS02 CKS01 Duty setup register CKS00 Cycle setup register 1/MCLK 2/MCLK 4/MCLK 8/MCLK 16/MCLK 32/MCLK 27/FCH 28/FCH Prescaler Duty setup buffer register PPG timer 00 Comparator circuit 01 CL K LOAD 00 10 11 REV00 8-bit down-counter (PPG timer 00) 0 STOP PEN00 S Q R 1 Pin PPG00 Edge detection BORROW START 0 1 0 1 PIE0 MD1 PUF0 POEN0 POEN0 MD0 IRQ13 Used as the select signal of each selector Duty setup register Cycle setup register CKS12 CKS11 CKS10 Cycle setup buffer register Prescaler 1/MCLK 2/MCLK 4/MCLK 8/MCLK 16/MCLK 32/MCLK 27/FCH 28/FCH 1 1 0 0 LOAD Edge detection 1 STOP PPG timer 01 0 CL K 1 PEN01 Duty register buffer cycle setup Comparator circuit Edge detection 8-bit down-counter (PPG timer 01) START 1 S Q R REV01 0 Pin PPG01 BORROW 0 PIE1 PUF1 POEN1 POEN1 IRQ12 CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 275 CHAPTER 16 8/16-BIT PPG 16.2 Configuration of 8/16-bit PPG MB95100B/AM Series ● Counter clock selector The clock for the countdown of 8-bit down counter is selected from eight types of internal count clocks. ● 8-bit down-counter It counts down with the count clock selected with the count clock selector. ● Comparator circuit The output is kept "H" level until the value of 8-bit down counter is corresponding to the value of 8/16-bit PPG duty setup buffer register from the value of 8/16-bit set buffer register of PPG cycle. Afterwards, after keep "L" level the output until the counter value is corresponding to "1", it keeps counting 8-bit down counter from the value of 8/16-bit PPG cycle setup buffer register. ● 8/16-bit PPG timer 01 control register (PC01) The operation condition on the PPG timer 01 side of 8/16-bit PPG timer is set. ● 8/16-bit PPG timer 00 control register (PC00) The operation mode of 8/16-bit PPG timer and the operation condition on the PPG timer 00 side are set. ● 8/16-bit PPG timer 01/00 cycle setup buffer register ch.0 (PPS01), ch.0(PPS00) The compare value for the cycle of 8/16-bit PPG timer is set. ● 8/16-bit PPG timer 01/00 duty setup buffer register ch.0 (PDS01), ch.0(PDS00) The compare value for "H" width of 8/16-bit PPG timer is set. ● 8/16-bit PPG start register The start or the stop of 8/16-bit PPG timer is set. ● 8/16-bit PPG output inversion register An initial level also includes the output of 8/16-bit PPG timer and it is reversed. ■ Input Clock The 8/16-bit PPG uses the output clock from the prescaler as its input clock (count clock). 276 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 16 8/16-BIT PPG 16.3 Channels of 8/16-bit PPG MB95100B/AM Series 16.3 Channels of 8/16-bit PPG This section describes the channels of the 8/16-bit PPG. ■ Channels of 8/16-bit PPG MB95100B/AM series has two channels of the 8/16-bit PPG. There are 8-bit PPG timer 00 and 8-bit PPG timer 01 in 1 channel. They can be used respectively as two 8-bit PPGs. Also, they can be used as a 16-bit PPG. Table 16.3-1 and Table 16.3-2 show the channels and their corresponding pins and registers. Table 16.3-1 Pins of 8/16-bit PPG Channel 0 1 Pin name Pin function PPG00 PPG timer 00 (8-bit PPG (00), 16-bit PPG) PPG01 PPG timer 01 (8-bit PPG (01), 8-bit prescaler) PPG10 PPG timer 00 (8-bit PPG (10), 16-bit PPG) PPG11 PPG timer 01 (8-bit PPG (11), 8-bit prescaler) Table 16.3-2 Registers of 8/16-bit PPG Channel 0 1 Both channels Register name Corresponding register (as written in this manual) PC01 8/16-bit PPG timer 01 control register PC00 8/16-bit PPG timer 00 control register PPS01 8/16-bit PPG timer 01 cycle setup buffer register PPS00 8/16-bit PPG timer 00 cycle setup buffer register PDS01 8/16-bit PPG timer 01 duty setup buffer register PDS00 8/16-bit PPG timer 00 duty setup buffer register PC11 8/16-bit PPG timer 01 control register PC10 8/16-bit PPG timer 00 control register PPS11 8/16-bit PPG timer 01 cycle setup buffer register PPS10 8/16-bit PPG timer 00 cycle setup buffer register PDS11 8/16-bit PPG timer 01 duty setup buffer register PDS10 8/16-bit PPG timer 00 duty setup buffer register PPGS 8/16-bit PPG start register REVC 8/16-bit PPG output inversion register The following sections describe only the 8/16-bit PPG in ch.0 side. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 277 CHAPTER 16 8/16-BIT PPG 16.4 Pins of 8/16-bit PPG 16.4 MB95100B/AM Series Pins of 8/16-bit PPG This section describes the pins of the 8/16-bit PPG. ■ Pins of 8/16-bit PPG ● PPG00 pin and PPG01 pin These pins function both as general-purpose I/O ports and 8/16-bit PPG outputs. PPG00, PPG01: A PPG waveform is outputted to these pins. The PPG waveform can be outputted by enabling the output by the 8/16-bit PPG timer 01/00 control registers (PC00: POEN0 = 1, PC01: POEN1 = 1). 278 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 16 8/16-BIT PPG 16.4 Pins of 8/16-bit PPG MB95100B/AM Series ■ Block Diagram of Pins Related to 8/16-bit PPG Figure 16.4-1 Block Diagram of Pins (PPG00, PPG01) Related to 8/16-bit PPG Peripheral function input Peripheral function input enable Peripheral function output enable Peripheral function output Hysteresis 0 Pull-up 0 1 1 PDR read P-ch Automotive 1 Pin PDR 0 Only P24 is selectable. PDR write In bit operation instruction Internal bus DDR read DDR DDR write Stop, Watch (SPL=1) PUL read PUL PUL write ILSR3 read ILSR3 ILSR3 write Figure 16.4-2 Block Diagram of Pins (PPG10, PPG11) Related to 8/16-bit PPG Hysteresis Peripheral function input Peripheral function input enable Peripheral function output enable Peripheral function output Only P67 is selectable. 0 0 0 1 Automotive 1 CMOS 1 PDR read 1 Pin PDR 0 PDR write In bit operation instruction Internal bus DDR read DDR DDR write Stop, Watch (SPL=1) ILSR read ILSR ILSR write Only P67 is selectable. ILSR3 read ILSR3 ILSR3 write CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 279 CHAPTER 16 8/16-BIT PPG 16.5 Registers of 8/16-bit PPG 16.5 MB95100B/AM Series Registers of 8/16-bit PPG This section describes the registers of the 8/16-bit PPG. ■ Registers of 8/16-bit PPG Figure 16.5-1 shows the registers of the 8/16-bit PPG. Figure 16.5-1 Registers of 8/16-bit PPG 8/16-bit PPG timer 01 control register (PC01) Address bit7 bit6 bit5 PC01 003AH PIE1 R0/WX R0/WX R/W 8/16-bit PPG timer 00 control register (PC00) Address bit7 bit6 bit5 bit4 PUF1 R(RM1),W bit4 bit3 bit2 POEN1 CKS12 R/W R/W bit3 MD1 MD0 PIE0 PUF0 POEN0 CKS02 R/W R/W R/W R(RM1),W R/W R/W 8/16-bit PPG timer 01 cycle setup buffer register (PPS01) bit7 bit6 bit5 bit4 PPS01 0F9CH PH7 PH6 PH5 PH4 R/W R/W R/W R/W 8/16-bit PPG timer 00 cycle setup buffer register (PPS00) Address bit7 bit6 bit5 bit4 PPS00 0F9DH PL7 PL6 PL5 PL4 R/W R/W R/W R/W 8/16-bit PPG timer 01 duty setup buffer register (PDS01) Address bit7 bit6 bit5 bit4 PDS01 0F9EH DH7 DH6 DH5 DH4 R/W R/W R/W R/W 8/16-bit PPG timer 00 duty setup buffer register (PDS00) Address bit7 Initial value CKS11 R/W CKS10 R/W 00000000B bit1 bit0 Initial value CKS01 R/W CKS00 R/W 00000000B bit3 bit2 bit1 bit0 Reset value PH3 R/W PH2 R/W PH1 R/W PH0 R/W 11111111B bit3 bit2 bit1 bit0 Reset value PL3 R/W PL2 R/W PL1 R/W PL0 R/W 11111111B bit3 bit2 bit1 bit0 Reset value DH3 R/W DH2 R/W DH1 R/W DH0 R/W 11111111B bit6 bit5 bit4 bit3 bit2 bit1 bit0 Reset value DL7 DL6 R/W R/W 8/16-bit PPG start register (PPGS) DL5 R/W DL4 R/W DL3 R/W DL2 R/W DL1 R/W DL0 R/W 11111111B bit5 bit4 bit3 bit2 bit1 bit0 Initial value R0/WX PEN11 R/W PEN10 R/W PEN01 R/W PEN00 R/W 00000000B PDS00 0F9FH Address bit7 bit6 0FA4H R0/WX R0/WX R0/WX 8/16-bit PPG output inversion register (REVC) Address bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value 0FA5H - - - - REV11 REV10 REV01 REV00 00000000B R/W: R(RM1), W: R0/WX: -: 280 bit0 bit2 PC00 003BH Address bit1 R0/WX R0/WX R0/WX R0/WX R/W R/W R/W R/W Readable/Writable (Read value is the same as write value) Readable/Writable (Read value is different from write value, "1" is read by read-modify-write (RMW) instruction) Undefined bit (Read value is "0", writing has no effect on operation) Undefined FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 16 8/16-BIT PPG 16.5 Registers of 8/16-bit PPG MB95100B/AM Series 16.5.1 8/16-bit PPG Timer 01 Control Register ch.0 (PC01) The 8/16-bit PPG timer 01 control register ch.0 (PC01) sets the operating conditions for PPG timer 01. ■ 8/16-bit PPG Timer 01 Control Register ch.0 (PC01) Figure 16.5-2 8/16-bit PPG Timer 01 Control Register ch.0 (PC01) Address PC01 003AH PC11 003CH bit7 bit6 bit5 - - PIE1 R0/WX R0/WX bit4 bit3 bit2 bit1 bit0 PUF1 POEN1 CKS12 CKS11 CKS10 R/W R(RM1),W R/W R/W CKS12 CKS11 CKS10 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 POEN1 0 1 PUF1 0 1 R/W Initial value 00000000B R/W Operating clock select bits 1/MCLK 2/MCLK 4/MCLK 8/MCLK 16/MCLK 32/MCLK 27/FCH 28/FCH Output enable bit Output disabled (general-purpose port) Output enabled Counter borrow detection flag bit for PPG cycle down-counter Read Counter borrow undetected Counter borrow detected Write Flag cleared No effect on operation PIE1 Interrupt request enable bit 0 Interrupt disabled 1 Interrupt enabled MCLK : Machine clock frequency FCH : Main clock oscillation frequency R/W : Readable/Writable (Read value is the same as write value) R(RM1),W : Readable/Writable (Read value is different from write value, "1" is read by read-modify-write (RMW) instruction) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) : Undefined : Initial value CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 281 CHAPTER 16 8/16-BIT PPG 16.5 Registers of 8/16-bit PPG MB95100B/AM Series Table 16.5-1 8/16-bit PPG Timer 01 Control Register (PC01) Bit name Function bit7, bit6 -: Undefined bits These bits are undefined. • Writing to the bits is meaningless. • Read always returns "0". bit5 PIE1: Interrupt request enable bit This bit controls interrupts of PPG timer 01. Setting the bit to "0": disables interrupts of PPG timer 01. Setting the bit to "1": enables interrupts of PPG timer 01. The bit outputs an interrupt request (IRQ) when the counter borrow detection bit (PUF1) and the PIE1 bit are both set to "1". PUF1: Counter borrow detection flag bit for PPG cycle downcounter This bit serves as the counter borrow detection flag for the PPG cycle down-counter of the PPG timer 01. • This bit is set to "1" when a counter borrow occurs during 8-bit PPG mode or 8-bit prescaler mode. • In 16-bit PPG mode, this bit is not set to "1" even when a counter borrow occurs. • Writing "1" to the bit is meaningless. • Writing "0" clears the bit. • "1" is read in read-modify-write (RMW) instruction. When the bit is set to "0": a counter borrow is undetected. When the bit is set to "1": a counter borrow is detected. POEN1: Output enable bit This bit enables or disables the output of PPG timer 01 pin. When the bit is set to "0": the PPG timer 01 pin is used as a general-purpose port. When the bit is set to "1": the PPG timer 01 pin is used as the PPG output pin. Setting this bit to "1" during 16-bit PPG operation mode sets the PPG timer 01 pin as an output. (The setting value of REV01 is outputted. "L" output is supplied when REV01 is "0".) bit4 bit3 bit2 to bit0 CKS12, CKS11, CKS10: Operating clock select bits These bits select the operating clock for 8-bit down-counter of the PPG timer 01. • The operating clock is generated from the prescaler. Refer to "CHAPTER 6 CLOCK CONTROLLER". • In 16-bit PPG operation mode, the setting of this bit has no effect on the operation. "000B": 1/MCLK "001B": 2/MCLK "010B": 4/MCLK "011B": 8/MCLK "100B": 16/MCLK "101B": 32/MCLK "110B": 27/FCH "111B": 28/FCH Note: Use of a sub clock (in dual-system clock product) stops the time-base timer operation. Therefore, selecting "110B" or "111B" is prohibited. 282 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 16 8/16-BIT PPG 16.5 Registers of 8/16-bit PPG MB95100B/AM Series 16.5.2 8/16-bit PPG Timer 00 Control Register ch.0 (PC00) The 8/16-bit PPG timer 00 control register ch.0 (PC00) sets the operating conditions and the operation mode for PPG timer 00. ■ 8/16-bit PPG Timer 00 Control Register ch.0 (PC00) Figure 16.5-3 8/16-bit PPG Timer 00 Control Register ch.0 (PC00) Address PC00 003BH PC10 003DH bit7 bit6 bit5 bit4 bit3 MD1 MD0 PIE0 R/W R/W R/W R(RM1),W R/W bit2 bit1 PUF0 POEN0 CKS02 CKS01 CKS00 R/W CKS02 CKS01 CKS00 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 PUF0 0 1 CM26-10112-4E 00000000B R/W Operating clock select bits 1/MCLK 2/MCLK 4/MCLK 8/MCLK 16/MCLK 32/MCLK 27/FCH 28/FCH Counter borrow detection flag bit for PPG cycle down-counter Read Counter borrow undetected Counter borrow detected PIE0 0 1 MD1 0 0 1 1 R/W Initial value Output enable bit Output disabled (general-purpose port) Output enabled POEN0 0 1 MCLK FCH R/W R(RM1),W bit0 Write Flag cleared No effect on operation Interrupt request enable bit Interrupt disabled Interrupt enabled MD0 0 1 0 1 Operation mode select bits 8-bit PPG independent mode 8-bit prescaler + 8-bit PPG mode 16-bit PPG mode : Machine clock frequency : Main clock oscillation frequency : Readable/Writable (Read value is the same as write value) : Readable/Writable (Read value is different from write value, "1" is read by read-modify-write (RMW) instruction) : Initial value FUJITSU MICROELECTRONICS LIMITED 283 CHAPTER 16 8/16-BIT PPG 16.5 Registers of 8/16-bit PPG MB95100B/AM Series Table 16.5-2 8/16-bit PPG0 Control Register (PC0) Bit name bit7, bit6 bit5 bit4 bit3 bit2 to bit0 Function MD1, MD0: Operation mode select bits These bits select the PPG operation mode. Do not modify the bit settings during counting. When set to "00B": 8-bit PPG independent mode When set to "01B": 8-bit prescaler + 8-bit PPG mode When set to "1xB": 16-bit PPG mode PIE0: Interrupt request enable bit This bit controls interrupts of PPG timer 00. • Set this bit in 16-bit PPG operation mode. Setting the bit to "0": disables interrupts of PPG timer 00. Setting the bit to "1": enables interrupts of PPG timer 00. • An interrupt request (IRQ) is outputted when the counter borrow detection bit (PUF0) and PIE0 bit are both set to "1". PUF0: Counter borrow detection flag bit for PPG cycle downcounter This is the counter borrow detection flag for the PPG cycle down-counter of PPG timer 00. • Only this bit is effective in 16-bit PPG operation mode (PC1:PUF1 is not operable). Note: Always enable the counter borrow detection in 8-bit mode • Writing "1" to this bit is meaningless. • Writing "0" clears the bit. • "1" is read in read-modify-write (RMW) instruction. When set to "0": Counter borrow of PPG timer 00 undetected When set to "1": Counter borrow of PPG timer 00 detected POEN0: Output enable bit This bit enables or disables the output of PPG timer 00 pin. When set to "0": PPG timer 00 pin is used as a general-purpose port. When set to "1": PPG timer 00 pin is used as the PPG output pin. As the output is supplied from the PPG timer 00 pin in 16-bit PPG operation mode, this bit is used to control the operation. CKS02, CKS01, CKS00: Operating clock select bits These bits select the operating clock for PPG down-counter PPG timer 00. • The operating clock is generated from the prescaler. Refer to "CHAPTER 6 CLOCK CONTROLLER". • The rising and falling edge detection pulses from the PPG timer 01 output are used as the count clock for PPG timer 00 when the 8-bit prescaler + 8-bit PPG mode has been selected. Therefore, the setting of this bit has no effect on the operation. • Set this bit in 16-bit PPG operation mode. "000B": 1/MCLK "001B": 2/MCLK "010B": 4/MCLK "011B": 8/MCLK "100B": 16/MCLK "101B": 32/MCLK "110B": 27/FCH "111B": 28/FCH Note: Use of a sub clock (in dual-system clock product) stops the time-base timer operation. Therefore, selecting "110B" or "111B" is prohibited. 284 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 16 8/16-BIT PPG 16.5 Registers of 8/16-bit PPG MB95100B/AM Series 16.5.3 8/16-bit PPG Timer 00/01 Cycle Setup Buffer Register (PPS01), (PPS00) The 8/16-bit PPG timer 00/01 cycle setup buffer register (PPS01), (PPS00) sets the PPG output cycle. ■ 8/16-bit PPG Timer 00/01 Cycle Setup Buffer Register (PPS01), (PPS00) Figure 16.5-4 8/16-bit PPG Timer 00/01 Cycle Setup Buffer Register (PPS01), (PPS00) PPS01 Address PPS01 0F9CH PPS11 0FA0H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 PH7 R/W PH6 R/W PH5 R/W PH4 R/W PH3 R/W PH2 R/W PH1 R/W PH0 R/W PPS00 Address PPS00 0F9DH PPS10 0FA1H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 PL7 R/W PL6 R/W PL5 R/W PL4 R/W PL3 R/W PL2 R/W PL1 R/W PL0 R/W Initial value 11111111B Initial value 11111111B R/W : Readable/Writable (Read value is the same as write value) This register is used to set the PPG output cycle. • In 16-bit PPG mode, PPS01 serves as the upper 8 bits, while PPS00 serves as the lower 8 bits. • In 16-bit PPG mode, write the upper bits before the lower bits. When only the upper bits are written, the previously written value is reused in the next load. • 8-bit mode: Cycle = max. 255 (FFH) × Input clock cycle • 16-bit mode: Cycle = max. 65535 (FFFFH) × Input clock cycle • Initialized at reset. • Do not set the cycle to "00H" or "01H" when using the unit in 8-bit PPG independent mode, or in 8-bit prescaler mode + 8-bit PPG mode • Do not set the cycle to "0000H" or "0001H" when using the unit in 16-bit PPG mode. • If the cycle settings are modified during the operation, the modified settings will be effective from the next PPG cycle. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 285 CHAPTER 16 8/16-BIT PPG 16.5 Registers of 8/16-bit PPG 16.5.4 MB95100B/AM Series 8/16-bit PPG Timer 00/01 Duty Setup Buffer Register (PDS01), (PDS00) The 8/16-bit PPG timer 00/01 duty setup buffer register (PDS01), (PDS00) sets the duty of the PPG output. ■ 8/16-bit PPG Timer 00/01 Duty Setup Buffer Register (PDS01), (PDS00) Figure 16.5-5 8/16-bit PPG Timer 00/01 Duty Setup Buffer Register (PDS01), (PDS00) PDS01 Address PDS01 0F9EH PDS11 0FA2H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 DH7 R/W DH6 R/W DH5 R/W DH4 R/W DH3 R/W DH2 R/W DH1 R/W DH0 R/W PDS00 Address PDS00 0F9FH PDS10 0FA3H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 DL7 R/W DL6 R/W DL5 R/W DL4 R/W DL3 R/W DL2 R/W DL1 R/W DL0 R/W Initial value 11111111B Initial value 11111111B R/W : Readable/Writable (Read value is the same as write value) This register is used to set the duty of the PPG output ("H" pulse width when normal polarity). • In 16-bit PPG mode, PDS01 serves as the upper 8 bits while PDS00 serves as the lower 8 bits. • In 16-bit PPG mode, write the upper bits before the lower bits. When only the upper bits are written, the previously written value is reused in the next load. By writing to PDS00, PDS01 is updated. • Initialized at reset. • To set the duty to 0%, select "00H". • To set the duty to 100%, set it to the same value as the 8/16-bit PPG timer 00/01 cycle setup register (PPS00, PPS01). • When the 8/16-bit PPG timer 00/01 duty setup register (PDS) is set to a larger value than the setting value of the 8/16-bit PPG cycle setup buffer register (PPS), the PPG output becomes "L" output in the normal polarity (when the output level inversion bit of 8/16-bit PPG output inversion register is "0"). • If the duty settings are modified during operation, the modified value will be effective from the next PPG cycle. 286 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 16 8/16-BIT PPG 16.5 Registers of 8/16-bit PPG MB95100B/AM Series 16.5.5 8/16-bit PPG Start Register (PPGS) The 8/16-bit PPG start register (PPGS) starts or stops the down-counter. The operation enable bit of each channel is assigned to the PPGS register, allowing simultaneous activation of the PPG channels. ■ 8/16-bit PPG Start Register (PPGS) Figure 16.5-6 8/16-bit PPG Start Register (PPGS) Address 0FA4H bit7 bit6 bit5 bit4 - * -* - * - * R0/WX R0/WX R0/WX R0/WX bit3 bit2 bit1 bit0 PEN11 PEN10 PEN01 PEN00 R/W R/W R/W Initial value 00000000B R/W PEN00 PPG timer 00 (ch.0) down-counter operation enable bit 0 Stops operation 1 Enables operation PEN01 PPG timer 01 (ch.0) down-counter operation enable bit 0 Stops operation 1 Enables operation PEN10 PPG timer 00 (ch.1) down-counter operation enable bit 0 Stops operation 1 Enables operation PEN11 PPG timer 01 (ch.1) down-counter operation enable bit 0 Stops operation 1 Enables operation R/W : Readable/Writable (Read value is the same as write value) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) : Undefined : Initial value * : writing to bit7 to bit4 is meaningless. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 287 CHAPTER 16 8/16-BIT PPG 16.5 Registers of 8/16-bit PPG 16.5.6 MB95100B/AM Series 8/16-bit PPG Output Inversion Register (REVC) The 8/16-bit PPG output inversion register (REVC) inverts the PPG output including the initial level. ■ 8/16-bit PPG Output Inversion Register (REVC) Figure 16.5-7 8/16-bit PPG Output Inversion Register (REVC) bit7 Address 0FA5H -* bit6 - * bit5 -* bit4 bit3 bit2 bit1 bit0 - * REV11 REV10 REV01 REV00 R0/WX R0/WX R0/WX R0/WX R/W R/W R/W Initial value 00000000B R/W REV00 0 1 PPG timer 00 (ch.0) output level inversion bit Normal Inversion REV01 0 1 PPG timer 01 (ch.0) output level inversion bit Normal Inversion REV10 0 1 PPG timer 00 (ch.1) output level inversion bit Normal Inversion REV11 0 1 PPG timer 01 (ch.1) output level inversion bit Normal Inversion R/W : Readable/Writable (Read value is the same as write value) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) : Undefined : Initial value * : writing to bit7 to bit4 is meaningless. 288 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 16 8/16-BIT PPG 16.6 Interrupts of 8/16-bit PPG MB95100B/AM Series 16.6 Interrupts of 8/16-bit PPG The 8/16-bit PPG outputs an interrupt request when a counter borrow is detected. ■ Interrupts of 8/16-bit PPG Table 16.6-1 shows the interrupt control bits and interrupt sources of the 8/16-bit PPG. Table 16.6-1 Interrupt Control Bits and Interrupt Sources of 8/16-bit PPG Description Item PPG timer 01 (8-bit PPG, 8-bit prescaler) PPG timer 00 (8-bit PPG, 16-bit PPG) Interrupt request flag bit PUF1 bit in PC01 PUF0 bit in PC00 Interrupt request enable bit PIE1 bit in PC01 PIE0 bit in PC00 Interrupt source Counter borrow of PPG cycle down-counter When a counter borrow occurs on the down-counter, the 8/16-bit PPG sets the counter borrow detection flag bit (PUF) in the 8/16-bit PPG timer 00/01 control register (PC) to "1". When the interrupt request enable bit is enabled (PIE = 1), an interrupt request is outputted to the interrupt controller. In 16-bit PPG mode, the 8/16-bit PPG timer 00 control register (PC00) is available. ■ Registers and Vector Table Related to Interrupts of 8/16-bit PPG Table 16.6-2 Registers and Vector Table Related to Interrupts of 8/16-bit PPG Interrupt source Interrupt request No. ch.1 (lower)* Interrupt level setup register Vector table address Register Setting bit Upper Lower IRQ9 ILR2 L09 FFE8H FFE9H ch.1 (upper) IRQ10 ILR2 L10 FFE6H FFE7H ch.0 (lower)* IRQ12 ILR3 L12 FFE2H FFE3H ch.0 (upper) IRQ13 ILR3 L13 FFE0H FFE1H *: ch.1 (lower) shares the same interrupt request number and vector table as UART/SIO (ch.1) and ch.0 (upper) shares them as I2C (ch.1). Refer to "APPENDIX B Table of Interrupt Causes" for the interrupt request numbers and vector tables of all peripheral functions. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 289 CHAPTER 16 8/16-BIT PPG 16.7 Operating Description of 8/16-bit PPG 16.7 MB95100B/AM Series Operating Description of 8/16-bit PPG This section describes the operations of the 8/16-bit PPG. ■ Setup Procedure Example The setup procedure of the 8/16-bit PPG is described below. ● Initial setting 1) Set the port output (DDR2, DDR6) 2) Set the interrupt revel (ILR2, ILR3) 3) Select the operating clock, enable the output and interrupt (PC01) 4) Select the operating clock, enable the output and interrupt, select the operation mode (PC00) 5) Set the cycle (PPS) 6) Set the duty (PDS) 7) Set the output inversion (REVC) 8) Start PPG (PPGS) ● Interrupt processing 1) Process any interrupt 2) Clear the interrupt request flag (PC01: PUF1, PC00: PUF0) 3) Start PPG (PPGS) 290 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 16 8/16-BIT PPG 16.7 Operating Description of 8/16-bit PPG MB95100B/AM Series 16.7.1 8-bit PPG Independent Mode In this mode, the unit operates as two channels (PPG timer 00 and PPG timer 01) of the 8-bit PPG. ■ Setting 8-bit Independent Mode The unit requires the register settings shown in Figure 16.7-1 to operate in 8-bit independent mode. Figure 16.7-1 8-bit Independent Mode bit7 - bit6 - bit5 PIE1 bit4 bit3 bit2 bit1 bit0 PUF1 POEN1 CKS12 CKS11 CKS10 PC00 MD1 0 MD0 0 PIE0 PUF0 POEN0 CKS02 CKS01 CKS00 PPS01 PH7 PH6 PH5 PH4 PH3 PH2 PH1 Set PPG output cycle for PPG timer 01 PH0 PPS00 PL7 PL6 PL5 PL4 PL3 PL2 PL1 Set PPG output cycle for PPG timer 00 PL0 PDS01 DH7 DH6 DH5 DH4 DH3 DH2 DH1 Set PPG output duty for PPG timer 01 DH0 PDS00 DL7 DL6 DL0 PPGS * * * * PEN11 PEN10 PEN01 PEN00 * * REVC * * * * REV11 REV10 REV01 REV00 * * PC01 DL5 DL4 DL3 DL2 DL1 Set PPG output duty for PPG timer 00 : Used bit 0 : Set "0" * : The bit status depends on the number of channels provided. ■ Operation of 8-bit PPG Independent Mode • This mode is selected when the operation mode select bits (MD1, MD0) in the 8/16-bit PPG timer 00 control register (PC00) are set to "00B". • When the corresponding bit (PEN) in the 8/16-bit PPG start register (PPGS) is set to "1", the value in the 8/16-bit PPG cycle setup buffer register (PPS) is loaded to start down-count operation. When the count value reaches "1", the value in the cycle setup register is reloaded to repeat the counting. • "H" is output to the PPG output synchronizing with the count clock. When the down-counter value matches the value in the 8/16-bit PPG timer 00/01 duty setup buffer register (PDS). After "H" which is the value of duty setting is output, "L" is output to the PPG output. If, however, the PPG output inversion bit is set to "1", the PPG output is set and reset inversely from the above process. Figure 16.7-2 shows the operation of the 8-bit PPG independent mode. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 291 CHAPTER 16 8/16-BIT PPG 16.7 Operating Description of 8/16-bit PPG MB95100B/AM Series Figure 16.7-2 Operation of 8-bit PPG Independent Mode Count clock (Cycle T) PEN (Counter start) Stop Cycle setting m=5 (PPS) Duty setting (PDS) n=4 PPG timer 00 counter value 5 4 3 2 1 5 4 3 2 1 5 4 3 2 Down-counter value matches matches duty setting value Counter borrow PPG output source Synchronizing with machine clock Stop PPG00 Pin (Normal polarity) (Inversion polarity) (1) α (2) (1) = n × T (2) = m × T T: m: n: α: Count clock cycle PPS register value PDS register value The value changes depending on the count clock selected and the start timing. Example for setting the duty to 50% When PDS is set to "02H" with PPS set to "04H", the PPG output is set at a duty ratio of 50% (PPS setting value /2 set to PDS). 292 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 16 8/16-BIT PPG 16.7 Operating Description of 8/16-bit PPG MB95100B/AM Series 16.7.2 8-bit Prescaler + 8-bit PPG Mode In this mode, the rising and falling edge detection pulses from the PPG timer 01 output can be used as the count clock of the PPG timer 00 down-counter to allow variablecycle 8-bit PPG output from PPG timer 00. ■ Setting 8-bit Prescaler + 8-bit PPG Mode The unit requires the register settings shown in Figure 16.7-3 to operate in 8-bit prescaler + 8-bit PPG mode. Figure 16.7-3 Setting 8-bit Prescaler + 8-bit PPG Mode bit7 - bit6 - bit5 PIE1 bit4 bit3 bit2 bit1 bit0 PUF1 POEN1 CKS12 CKS11 CKS10 PC00 MD1 0 MD0 1 PIE0 PUF0 POEN0 CKS02 CKS01 CKS00 × × × PPS01 PH7 PH6 PH5 PH4 PH3 PH2 PH1 Set PPG output cycle for PPG timer 01 PH0 PPS00 PL7 PL6 PL5 PL4 PL3 PL2 PL1 Set PPG output cycle for PPG timer 00 PL0 PDS01 DH7 DH6 DH5 DH4 DH3 DH2 DH1 Set PPG output duty for PPG timer 01 DH0 PDS00 DL7 DL6 DL0 PPGS * * * * PEN11 PEN10 PEN01 PEN00 * * REVC * * * * REV11 REV10 REV01 REV00 * * PC01 0 1 × * DL5 DL4 DL3 DL2 DL1 Set PPG output duty for PPG timer 00 : Used bit : Set "0" : Set "1" : Setting nullified : The bit status varies depending of the number of channels implemented ■ Operation of 8-bit Prescaler + 8-bit PPG Mode • This mode is selected by setting the operation mode select bits (MD1, MD0) of the 8/16-bit PPG timer 00 control register (PC00) to "01B". This allows PPG timer 01 to be used as an 8-bit prescaler and PPG timer 00 to be used as an 8-bit PPG. • When the PPG timer 01 (ch.0) down counter operation enable bit (PEN01) is set to "1", the 8-bit prescaler (PPG timer 01) loads the value in the 8/16-bit PPG timer 01 cycle setup buffer register (PPS01) and starts down-count operation. When the value of the down-counter matches the value in the 8/16-bit PPG timer 01 duty setup buffer register (PDS01), the PPG01 output is set to "H" synchronizing with the count clock. After "H" which is the value of duty setting is output, the PPG01 output is set to "L". If the output inversion signal (REV01) is "0", the polarity will remain the same. If it is "1", the CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 293 CHAPTER 16 8/16-BIT PPG 16.7 Operating Description of 8/16-bit PPG MB95100B/AM Series polarity will be inverted and the signal will be outputted to the PPG pin. • When the PPG operation enable bit (PEN00) is set to "1", the 8-bit PPG (PPG timer 00) loads the value in the 8/16-bit PPG timer 00 cycle setup buffer register (PPS00) and starts down-count operation (count clock = rising and falling edge detection pulses of PPG01 output after PPG timer 01 operation is enabled). When the count value reaches "1", the value in the 8/16-bit PPG timer 00 cycle setup buffer register is reloaded to repeat the counting. When the value of the down-counter matches the value in the 8/16-bit PPG timer 00 duty setup buffer register (PDS00), the PPG00 output is set to "H" synchronizing with the count clock. After "H" which is the value of duty setting is output, the PPG00 output is reset to "L". If the output inversion signal (REV00) is "0", the polarity will remain the same. If it is "1", the polarity will be inverted and the signal will be outputted to the PPG00 pin. • Set that the duty of the 8-bit prescaler (PPG timer 01) output to 50%. • When PPG timer 00 is started with the 8-bit prescaler (PPG timer 01) being stopped, PPG timer 00 does not count. • When the duty of the 8-bit prescaler (PPG timer 01) is set to 0% or 100%, PPG timer 00 does not perform counting as the 8-bit prescaler (PPG timer 01) output does not toggle. Figure 16.7-4 shows the operation of 8-bit prescaler + 8-bit PPG mode. Figure 16.7-4 Operation of 8-bit Prescaler + 8-bit PPG Mode Count clock (Cycle T) PEN01 Cycle setting (PPS01) Duty setting (PDS01) PPG timer 01 counter value m1=4 n1=2 4 3 2 1 4 3 2 1 4 3 2 1 4 3 1 2 4 Down-counter value matches matches duty setting value Counter borrow PPG output source Synchronizing with machine clock PPG01 (Normal polarity) (Inversion polarity) (1) α (2) PEN00 Cycle setting m0=3 (PPS00) Duty setting n0=2 (PDS00) PPG timer 00 counter value Down-counter value matches matches duty setting value Counter borrow 3 2 1 3 2 3 1 2 PPG output source Synchronizing with machine clock PPG00 (Normal polarity) (Inversion polarity) (3) β (4) (1) = n1 × T (2) = m1 × T (3) = (1) × n0 (4) = (1) × m0 294 T: m0: n0: m1: n1: Count clock cycle PPS00 register value PDS00 register value PPS01 register value PDS01 register value α: β: The value changes depending on the count clock selected and the PEN01 start timing. The value changes depending on the PPG01 output (ch.1) waveform and the PEN00 start timing. FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 16 8/16-BIT PPG 16.7 Operating Description of 8/16-bit PPG MB95100B/AM Series 16.7.3 16-bit PPG Mode In this mode, the unit can operate as a 16-bit PPG when PPG timer 01 and PPG timer 00 are assigned to the upper and lower bits respectively. ■ Setting 16-bit PPG Mode The unit requires the register settings shown in Figure 16.7-5 to operate in 16-bit PPG mode. Figure 16.7-5 Setting 16-bit PPG Mode bit7 - bit6 - bit5 PIE1 bit4 bit3 bit2 bit1 bit0 PUF1 POEN1 CKS12 CKS11 CKS10 PC00 MD1 0 MD0 0/1 PIE0 PUF0 POEN0 CKS02 CKS01 CKS00 PPS01 PH7 PH6 PH5 PH4 PH3 PH2 PH1 PH0 Set PPG output cycle (Upper 8 bits) for PPG timer 01 PPS00 PL7 PL6 PL5 PL4 PL3 PL2 PL1 PL0 Set PPG output cycle (Lower 8 bits) for PPG timer 00 PDS01 DH7 DH6 DH5 DH4 DH3 DH2 DH1 DH0 Set PPG output duty (Upper 8 bits) for PPG timer 01 PDS00 DL7 DL6 DL5 DL4 DL3 DL2 DL1 DL0 Set PPG output duty (Lower 8 bits) for PPG timer 00 PPGS * * * * PEN11 PEN10 PEN01 PEN00 * * × REVC * * * * REV11 REV10 REV01 REV00 * * × PC01 0 1 × * CM26-10112-4E : Used bit : Set "0" : Set "1" : Setting nullified : The bit status changes depending on the number of channels implemented. FUJITSU MICROELECTRONICS LIMITED 295 CHAPTER 16 8/16-BIT PPG 16.7 Operating Description of 8/16-bit PPG MB95100B/AM Series ■ Operation of 16-bit PPG Mode • This mode is selected by setting the operation mode select bits (MD1, MD0) of the PPG timer 00 control register (PC00) to "10B" or "11B". • When the PPG operation enable bit (PEN00) is set to "1" in 16-bit PPG mode, the 8-bit down-counters (PPG timer 00) and 8-bit down-counter (PPG timer 01) load the values in the 8/16-bit PPG timer 00/01 cycle setup buffer registers (PPS01 for PPG timer 01 and PPS00 for PPG timer 00) and start down-count operation. When the count value reaches "1", the values in the cycle setup register are reloaded and the counters repeat the counting. • When the values of the down-counters match the values in the 8/16-bit PPG timer duty setup buffer registers (both the value in PDS01 for PPG timer 01 and the value in PDS00 for PPG timer 00), the PPG00 pin is set to "H" synchronizing with the count clock. After "H" which is the value of duty setting is output, the PPG00 pin is set to "L". If the output inversion signal (REV00) is "0", the signal will be outputted to the PPG00 with the polarity unchanged. If it is set to "1", the polarity will be inverted and the signal will be outputted to the PPG00 pin. (ch.0 only. ch.1 will be set to the initial value <"L" if REV01 is "0", or "H" if it is "1">.) Figure 16.7-6 shows the operation of 16-bit PPG mode. Figure 16.7-6 Operation of 16-bit PPG Mode Count clock (Cycle T) PEN00 Cycle setup (PPS01 and PPS00) m=256 Duty setup (PDS01 and PDS00) n=2 256 Counter value 255 254 ... 2 1 256 255 ... 2 1 256 255 Down-counter value matches matches duty setting value Counter borrow PPG output source Synchronizing with machine clock PPG00 (Normal polarity) (Inversion polarity) (1) α (2) (1) = n × T (2) = m × T 296 T: m: n: α: FUJITSU MICROELECTRONICS LIMITED Count clock cycle PPS01 & PPS00 PDS01 & PDS00 The value changes depending on the count clock selected and the start timing. CM26-10112-4E MB95100B/AM Series 16.8 CHAPTER 16 8/16-BIT PPG 16.8 Notes on Using 8/16-bit PPG Notes on Using 8/16-bit PPG The following precautions must be followed when using the 8/16-bit PPG. ■ Notes on Using 8/16-bit PPG ● Operational precaution Depending on the timing between the activation of PPG and count clock, an error may occur in the first cycle of the PPG output immediately after the activation. The error varies depending on the count clock selected. The output, however, is performed properly in the succeeding cycles. ● Precaution regarding interrupts A PPG interrupt is generated when the interrupt enable bit (PIE1/PIE0) is set to "1" and the interrupt request flag bit (PUF1/PUF0) in the 8/16-bit PPG timer 01/00 control register (PC01/PC00) is also set to "1". Always clear the interrupt request flag bit (PUF1/PUF0) to "0" in the interrupt routine. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 297 CHAPTER 16 8/16-BIT PPG 16.9 Sample Programs for 8/16-bit PPG Timer 16.9 MB95100B/AM Series Sample Programs for 8/16-bit PPG Timer We provide sample programs that can be used to operate the 8/16-bit PPG timer. ■ Sample Programs for 8/16-bit PPG Timer For information about the sample programs for the 8/16-bit PPG timer, refer to "■ Sample Programs" in Preface. ■ Setup Methods without Sample Program ● How to enable/stop PPG operation The PPG operation enable bit (PPGS:PEN00 or PEN10) is used for PPG timer 00. Control PPG operation enable bit (PEN00 or PEN10) When stopping PPG operation Set the bit to "0" When enabling PPG operation Set the bit to "1" PPG operation must be enabled before the PPG is activated. The PPG operation enable bit (PPGS:PEN01 or PEN11) is used for PPG timer 01. Control PPG operation enable bit (PEN01 or PEN11) When stopping PPG operation Set the bit to "0" When enabling PPG operation Set the bit to "1" PPG operation must be enabled before the PPG is activated. ● How to set the PPG operation mode The operation mode select bits (PC00.MD[1:0]) are used. ● How to select the operating clock ch.1 is selected by the operating clock select bits (PC01:CKS12/CKS11/CKS10). ch.0 is selected by the operating clock select bits (PC00:CKS02/CKS01/CKS00). ● How to enable/disable the PPG output pin The output enable bit (PC00:POEN0 or PC01:POEN1) is used. 298 Control Output enable bit (POEN0 or POEN1) When enabling PPG output Set the bit to "1" When disabling PPG output Set the bit to "0" FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 16 8/16-BIT PPG 16.9 Sample Programs for 8/16-bit PPG Timer MB95100B/AM Series ● How to invert the PPG output The output level inversion bit (REVC:REV00 or REV10) is used for PPG timer 00. Control Output level inversion bit (REV00 or REV10) When inverting PPG output Set the bit to "1" The output level inversion bit (REVC:REV01 or REV11) is used for PPG timer 01. Control Output level inversion bit (REV01 or REV11) When inverting PPG output Set the bit to "1" ● Interrupt-related register The interrupt level is set by the interrupt setup register shown in the following table. Interrupt source Interrupt level setup register Interrupt vector ch.1 (lower) Interrupt level register (ILR2) Address:0007BH #09 Address:0FFE8H ch.1 (upper) Interrupt level register (ILR2) Address:0007BH #10 Address:0FFE6H ch.0 (lower) Interrupt level register (ILR3) Address:0007CH #12 Address:0FFE2H ch.0 (upper) Interrupt level register (ILR3) Address:0007CH #13 Address:0FFE0H ● How to enable/disable/clear interrupts Interrupt request enable flag, Interrupt request flag The interrupt request enable bit (PC00:PIE0 or PC01:PIE1) is used to enable or disable interrupts. Operation Interrupt request enable bit (PIE0 or PIE1) When disabling interrupt requests Set the bit to "0" When enabling interrupt requests Set the bit to "1" The interrupt request flag (PC00:PUF0 or PC01:PUF1) is used to clear interrupt requests. CM26-10112-4E Operation Interrupt request flag (PUF0 or PUF1) When clearing interrupt requests Write "0" FUJITSU MICROELECTRONICS LIMITED 299 CHAPTER 16 8/16-BIT PPG 16.9 Sample Programs for 8/16-bit PPG Timer 300 MB95100B/AM Series FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR This chapter describes the functions and operations of the 16-bit PPG timer. 17.1 Overview of 16-bit PPG Timer 17.2 Configuration of 16-bit PPG Timer 17.3 Channels of 16-bit PPG Timer 17.4 Pins of 16-bit PPG Timer 17.5 Registers of 16-bit PPG Timer 17.6 Interrupts of 16-bit PPG Timer 17.7 Explanation of 16-bit PPG Timer Operations and Setup Procedure Example 17.8 Notes on Using 16-bit PPG Timer 17.9 Sample Programs for 16-bit PPG Timer CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 301 CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR 17.1 Overview of 16-bit PPG Timer 17.1 MB95100B/AM Series Overview of 16-bit PPG Timer The 16-bit PPG timer can generate a PWM (Pulse Width Modulation) output or one-shot (square wave) output, and the period and duty of the output waveform can be changed by software freely. The timer can also generate an interrupt when a start trigger occurs or on the rising or falling edge of the output waveform. ■ 16-bit PPG Timer 16-bit PPG timer can output the PWM output and the one shot. The output wave form can be reversed by setting the register (Normal polarity ↔ Inverted polarity). Output waveform PWM waveform Normal polarity L H L L H Inverted polarity H L H H L One-shot waveform Normal polarity L H L Inverted polarity H L H • The count operation clock can be selected from eight different clock sources (MCLK/1, MCLK/2, MCLK/4, MCLK/8, MCLK/16, MCLK/32, FCH/27, or FCH/28). (MCLK: Machine clock, FCH: Main Clock) • Interrupt can be selectively triggered by the following four conditions: - Occurrence of a start trigger in the PPG timer - Occurrence of a counter borrow in the 16-bit down-counter (cycle match). - Rising edge of PPG in normal polarity or falling edge of PPG in inverted polarity - Counter borrow, rising edge of PPG in normal polarity, or falling edge of PPG in inverted polarity 302 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR 17.2 Configuration of 16-bit PPG Timer MB95100B/AM Series 17.2 Configuration of 16-bit PPG Timer Shown below is the block diagram of the 16-bit PPG timer. ■ Block Diagram of 16-bit PPG Timer Figure 17.2-1 Block Diagram of 16-bit PPG Timer When upper 8 bits of duty setting register are written but lower 8 bits are not 16-bit PPG cycle 16-bit PPG cycle written, the value is "1", setting buffer register setting buffer register (upper 8 bits) (lower 8 bits) otherwise it is "0". CKS2 CKS1 CKS0 1 16-bit PPG duty setting buffer register (lower 8 bits) 16-bit PPG duty setting buffer register for lower 8 bits buffer 0 CLK LOAD Comparator circuit 16-bit down-counter MDSE PGMS OSEL POEN STOP START BORROW POEN S 16-bit PPG down-counter register Lower 8 bits Internal data bus Prescaler 16-bit PPG duty setting buffer register for upper 8 bits buffer 16-bit PPG cycle setting buffer register upper 8 bits buffer MCLK/1 MCLK/2 MCLK/4 MCLK/8 MCLK/16 MCLK/32 FCH/27 FCH/2 8 16-bit PPG duty setting buffer register (upper 8 bits) Pin Q PPG0 R Interrupt selection Edge detection Interrupt of 16-bit PPG IRS1 IRS0 IRQF IREN Pin TRG0 EGS1 EGS0 STRG CNTE RTRG ● Count clock selector The clock for the countdown of 16-bit down-counter is selected from eight types of internal count clocks. ● 16 bit down-counter It counts down with the count clock selected with the count clock selector. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 303 CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR 17.2 Configuration of 16-bit PPG Timer MB95100B/AM Series ● Comparator circuit The output is kept "H" until the value of 16-bit down-counter is corresponding to the value of 8/16-bit PPG duty setting buffer register from the value of 16-bit PPG cycle setting buffer register. Afterwards, after keep "L" the output until the counter value is corresponding to "1", it keeps counting 8-bit down counter from the value of 16-bit PPG cycle setting buffer register. ● 16-bit PPG down-counter register upper, lower (PDCRH0, PDCRL0) The value of 16-bit down-counter of 16-bit PPG timer is read. ● 16-bit PPG cycle setting buffer register upper, lower (PCSRH0, PCSRL0) The compare value for the cycle of 16-bit PPG timer is set. ● 16-bit PPG duty setting buffer register upper, lower (PDUTH0, PDUTL0) The compare value for "H" width of 16-bit PPG timer is set. ● 16-bit PPG status control register upper, lower (PCNTH0, PCNTL0) The operation mode and the operation condition of 16-bit PPG timer are set. ■ Input Clock The 16-bit PPG timer uses the output clock from the prescaler as its input clock (count clock). 304 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 17.3 CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR 17.3 Channels of 16-bit PPG Timer Channels of 16-bit PPG Timer This section describes the channels of the 16-bit PPG timer. ■ Channels of 16-bit PPG Timer This series has two 16-bit PPG timers. Table 17.3-1 and Table 17.3-2 show the correspondence among the channel, pin and register. Table 17.3-1 Pins of 16-bit PPG Timer Channel Pin name Pin function PPG0 TRG0 PPG1 TRG1 PPG0 output Trigger 0 input PPG1 output Trigger 1 input 0 1 Table 17.3-2 Registers of 16-bit PPG Timer Channel 0 1 Register name PDCRH0 PDCRL0 PCSRH0 PCSRL0 PDUTH0 PDUTL0 PCNTH0 PCNTL0 PDCRH1 PDCRL1 PCSRH1 PCSRL1 PDUTH1 PDUTL1 PCNTH1 PCNTL1 Corresponding register (name in this manual) 16-bit PPG down counter register (upper) 16-bit PPG down counter register (lower) 16-bit PPG cycle setting buffer register (upper) 16-bit PPG cycle setting buffer register (lower) 16-bit PPG duty setting buffer register (upper) 16-bit PPG duty setting buffer register (lower) 16-bit PPG status control register (upper) 16-bit PPG status control register (lower) 16-bit PPG down counter register (upper) 16-bit PPG down counter register (lower) 16-bit PPG cycle setting buffer register (upper) 16-bit PPG cycle setting buffer register (lower) 16-bit PPG duty setting buffer register (upper) 16-bit PPG duty setting buffer register (lower) 16-bit PPG status control register (upper) 16-bit PPG status control register (lower) The following sections describe only the 16-bit PPG timer in ch.0. The other channels are the same as it. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 305 CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR 17.4 Pins of 16-bit PPG Timer 17.4 MB95100B/AM Series Pins of 16-bit PPG Timer This section describes the pins of the 16-bit PPG timer. ■ Pins of 16-bit PPG Timer The pin related to the 16-bit PPG timer is namely the PPG0 pin and TRG0 pin. ● PPG0 pin Each pin serves as a general-purpose I/O port as well as a 16-bit PPG timer output. PPG0: A PPG waveform is outputted to these pins. The PPG waveform can be outputted by using the 16bit PPG status control register to enable output (PCNTL0: POEN=1). ● TRG0 pin TRG0:Used to start 16-bit PPG timer by hardware trigger. 306 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR 17.4 Pins of 16-bit PPG Timer MB95100B/AM Series ■ Block Diagrams of Pins Related to 16-bit PPG Figure 17.4-1 Block Diagram of Pin Related to 16-bit PPG (PPG0, TRG0) Hysteresis 0 Only P10 is selectable. Peripheral function input Peripheral function input enable Peripheral function output enable Peripheral function output 0 1 Automotive Pull-up 0 1 1 PDR read P-ch CMOS 1 Pin PDR 0 PDR write In bit operation instruction Only P10, P12 and P13 are selectable. DDR read DDR Internal bus DDR write Stop, Watch (SPL=1) PUL read PUL PUL write ILSR read ILSR ILSR write Only P10 is selectable. ILSR3 read ILSR3 ILSR3 write CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 307 CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR 17.4 Pins of 16-bit PPG Timer MB95100B/AM Series Figure 17.4-2 Block Diagram of Pin Related to 16-bit PPG (PPG1, TRG1) Peripheral function input Peripheral function output enable Peripheral function output Hysteresis 0 0 1 PDR read Pull-up 1 Automotive P-ch 1 Pin PDR 0 PDR write Internal bus In bit operation instruction DDR read DDR DDR write Stop, Watch (SPL=1) PUL read PUL PUL write ILSR3 read ILSR3 ILSR3 write 308 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 17.5 CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR 17.5 Registers of 16-bit PPG Timer Registers of 16-bit PPG Timer This section describes the registers of the 16-bit PPG timer. ■ Registers of 16-bit PPG Timer Figure 17.5-1 Registers of 16-bit PPG Timer 16-bit PPG down counter register (upper): PDCRH Address PDCRH0 0FAAH bit7 DC15 R/WX bit6 DC14 R/WX bit5 DC13 R/WX bit4 DC12 R/WX bit3 DC11 R/WX bit2 DC10 R/WX bit1 DC09 R/WX bit0 DC08 R/WX Initial value 00000000B bit3 DC03 R/WX bit2 DC02 R/WX bit1 DC01 R/WX bit0 DC00 R/WX Initial value 00000000B bit10 CS10 R/W bit9 CS09 R/W bit8 CS08 R/W Initial value 11111111B bit2 CS02 R/W bit1 CS01 R/W bit0 CS00 R/W Initial value 11111111B bit11 DU11 R/W bit10 DU10 R/W bit9 DU09 R/W bit8 DU08 R/W Initial value 11111111B bit3 DU03 R/W bit2 DU02 R/W bit1 DU01 R/W bit0 DU00 R/W Initial value 11111111B bit11 CKS2 R/W bit10 CKS1 R/W bit9 bit8 CKS0 PGMS R/W R/W Initial value 00000000B bit3 IRS1 R/W bit2 IRS0 R/W bit1 bit0 POEN OSEL R/W R/W Initial value 00000000B 16-bit PPG down counter register (lower): PDCRL Address PDCRL0 0FABH bit7 DC07 R/WX bit6 DC06 R/WX bit5 DC05 R/WX bit4 DC04 R/WX 16-bit PPG cycle setting buffer register (upper): PCSRH Address PCSRH0 0FACH bit15 CS15 R/W bit14 CS14 R/W bit13 CS13 R/W bit12 CS12 R/W bit11 CS11 R/W 16-bit PPG cycle setting buffer register (lower): PCSRL Address PCSRL0 0FADH bit7 CS07 R/W bit6 CS06 R/W bit5 CS05 R/W bit4 CS04 R/W bit3 CS03 R/W 16-bit PPG duty setting buffer register (upper): PDUTH Address PDUTH0 0FAEH bit15 DU15 R/W bit14 DU14 R/W bit13 DU13 R/W bit12 DU12 R/W 16-bit PPG duty setting buffer register (lower): PDUTL Address PDUTL0 0FAFH bit7 DU07 R/W bit6 DU06 R/W bit5 DU05 R/W bit4 DU04 R/W 16-bit PPG status control register (upper): PCNTH Address PCNTH0 0042H bit15 bit14 bit13 bit12 CNTE STRG MDSE RTRG R/W R0, W R/W R/W 16-bit PPG status control register (lower): PCNTL Address PCNTL0 0043H R/W: R/WX: R(RM1), W: R0, W: CM26-10112-4E bit7 EGS1 R/W bit6 EGS0 R/W bit5 IREN R/W bit4 IRQF R(RM1),W Readable/Writable (Read value is the same as write value) Read only (Readable, writing has no effect on operation) Readable/Writable (Read value is different from write value, "1" is read by read-modifywrite (RMW) instruction) Write only (Writable, "0" is read) FUJITSU MICROELECTRONICS LIMITED 309 CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR 17.5 Registers of 16-bit PPG Timer 17.5.1 MB95100B/AM Series 16- bit PPG Down Counter Registers Upper, Lower (PDCRH0, PDCRL0) The 16-bit PPG down counter registers upper, lower (PDCRH0, PDCRL0) form a 16-bit register which is used to read the count value from the 16-bit PPG down-counter. ■ 16-bit PPG Down Counter Registers Upper, Lower (PDCRH0, PDCRL0) Figure 17.5-2 16-bit PPG Down Counter Registers Upper, Lower (PDCRH0, PDCRL0) 16-bit PPG down counter register (upper) PDCRH0 Address PDCRH0 0FAAH bit7 DC15 R/WX bit6 DC14 R/WX bit5 DC13 R/WX bit4 DC12 R/WX bit3 DC11 R/WX bit2 DC10 R/WX bit1 DC09 R/WX bit0 DC08 R/WX Initial value 00000000B 16-bit PPG down counter register (lower) PDCRL0 Address PDCRL0 0FABH bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value DC07 R/WX DC06 R/WX DC05 R/WX DC04 R/WX DC03 R/WX DC02 R/WX DC01 R/WX DC00 R/WX 00000000B R/WX: Read only (Readable, writing has no effect on operation) These registers form a 16-bit register which is used to read the count value from the 16-bit down-counter. The initial values of the register are all "0". Always use one of the following procedures to read from this register. • Use the "MOVW" instruction (use a 16-bit access instruction to read the PDCRH0 register address). • Use the "MOV" instruction and read PDCRH0 first and PDCRL0 second (reading PDCRH0 automatically copies the lower 8 bits of the down-counter to PDCRL0). These registers are read-only and writing has no effect on the operation. Note: If you use the "MOV" instruction and read PDCRL0 before PDCRH0, PDCRL0 will return the value from the previous valid read operation. Therefore, the value of the 16-bit down-counter will not be read correctly. 310 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 17.5.2 CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR 17.5 Registers of 16-bit PPG Timer 16-bit PPG Cycle Setting Buffer Registers Upper, Lower (PCSRH0, PCSRL0) The 16-bit PPG cycle setting buffer registers are used to set the cycle for the output pulses generated by the PPG. ■ 16-bit PPG Cycle Setting Buffer Registers Upper, Lower (PCSRH0, PCSRL0) Figure 17.5-3 16-bit PPG Cycle Setting Buffer Registers Upper, Lower (PCSRH0, PCSRL0) 16-bit PPG cycle setting buffer register (upper) PCSRH0 Address PCSRH0 0FACH bit15 CS15 R/W bit14 CS14 R/W bit13 CS13 R/W bit12 CS12 R/W bit11 CS11 R/W bit10 CS10 R/W bit9 CS09 R/W bit8 CS08 R/W Initial value 11111111B bit3 CS03 R/W bit2 CS02 R/W bit1 CS01 R/W bit0 CS00 R/W Initial value 11111111B 16-bit PPG cycle setting buffer register (lower) PCSRL0 Address PCSRL0 0FADH bit7 CS07 R/W bit6 CS06 R/W bit5 CS05 R/W bit4 CS04 R/W R/W: Readable/Writable (Read value is the same as write value) These registers form a 16-bit register which sets the period for the output pulses generated by the PPG. The values set in these registers are loaded to the down-counter. When writing to these registers, always use one of the following procedures. • Use the "MOVW" instruction (use a 16-bit access instruction to write to the PCSRH0 register address) • Use the "MOV" instruction and write to PCSRH0 first and PCSRL0 second If a down-counter load occurs after writing data to PCSRH0 (but before writing data to PCSRL0), the previous valid PCSRH0/PCSRL0 value will be loaded to the down-counter. If the PCSRH0/PCSRL0 value is modified during counting, the modified value will become effective from the next load of the down-counter. • Do not set PCSRH0 and PCSRL0 to "00H", or PCSRH0 to "01H" and PCSRL0 to "01H". Note: If the down-counter load occurs after the "MOV" instruction is used to write data to PCSRL0 before PCSRH0, the previous valid PCSRH0 value and newly written PCSRL0 value are loaded to the down-counter. It should be noted that as a result, the correct period cannot be set. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 311 CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR 17.5 Registers of 16-bit PPG Timer 17.5.3 MB95100B/AM Series 16-bit PPG Duty Setting Buffer Registers Upper, Lower (PDUTH0, PDUTL0) The 16-bit PPG duty setting buffer registers control the duty ratio for the output pulses generated by the PPG. ■ 16-bit PPG Duty Setting Buffer Registers Upper, Lower (PDUTH0, PDUTL0) Figure 17.5-4 16-bit PPG Duty Setting Buffer Registers Upper, Lower (PDUTH0, PDUTL0) 16-bit PPG duty setting buffer register (upper) PDUTH0 Address PDUTH0 0FAEH bit15 DU15 R/W bit14 DU14 R/W bit13 DU13 R/W bit12 DU12 R/W bit11 DU11 R/W bit10 DU10 R/W bit9 DU09 R/W bit8 DU08 R/W Initial value 11111111B bit3 DU03 R/W bit2 DU02 R/W bit1 DU01 R/W bit0 DU00 R/W Initial value 11111111B 16-bit PPG duty setting buffer register (lower) PDUTL0 Address PDUTL0 0FAFH bit7 DU07 R/W bit6 DU06 R/W bit5 DU05 R/W bit4 DU04 R/W R/W: Readable/Writable (Read value is the same as write value) These registers form a 16-bit register which controls the duty ratio for the output pulses generated by the PPG. Transfer of the data from the 16-bit PPG duty setting buffer registers to the duty setting registers is performed at the same timing as the down-counter read. When writing to these registers, always use one of the following procedures. • Use the "MOVW" instruction (use a 16-bit access instruction to write to the PDUTH0 register address) • Use the "MOV" instruction and write to PDUTH0 first and PDUTL0 second If a down-counter load occurs after writing data to PDUTH0 (but before writing data to PDUTL0), the value of the 16-bit PPG duty setting buffer registers is not transferred to the duty setting registers. The relation between the value of the 16-bit PPG duty setting registers and output pulse is as follows: • When the same value is set in both the 16-bit PPG cycle setting buffer registers and duty setting registers, the "H" level will always be outputted if normal polarity is set, or the "L" level will always be outputted if inverted polarity is set. • When the duty setting registers are set to "0000H", the "L" level will always be outputted if normal polarity is set, or the "H" level will always be outputted if inverted polarity is set. • When the value set in the duty setting registers is greater than the value in the 16-bit PPG cycle setting buffer registers, the "L" level will always be outputted if normal polarity is set, and the "H" level will always be outputted if inverted polarity is set. 312 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR 17.5 Registers of 16-bit PPG Timer MB95100B/AM Series 17.5.4 16-bit PPG Status Control Register Upper, Lower (PCNTH0, PCNTL0) The 16-bit PPG status control register is used to enable and disable the 16-bit PPG timer and also to set the operating status for the software trigger, retrigger control interrupt, and output polarity. This register can also check the operation status. ■ 16-bit PPG Status Control Register, Upper (PCNTH0) Figure 17.5-5 16-bit PPG Status Control Register, Upper (PCNTH0) bit7 bit6 Address PCNTH0 0042H CNTE STRG R/W R0, W bit5 bit4 bit3 MDSE RTRG CKS2 R/W R/W R/W bit2 bit1 bit0 Initial value 00000000B CKS1 CKS0 PGMS R/W R/W R/W PGMS PPG0 output mask ena ble bit 0 Disables PPG0 output mask 1 Enables PPG0 output mask CKS2 CKS1 CKS0 Counter clock select bit 0 0 0 MCLK/1 0 0 1 MCLK/2 0 1 0 MCLK/4 0 1 1 MCLK/8 1 0 0 MCLK/16 1 0 1 MCLK/32 1 1 0 FCH/2 7 1 FCH/2 8 1 1 MCLK: Machine clock, FCH: Main clock RTRG Software retrigger enable bit 0 Disables software retrigger 1 Enables software retrigger MDSE Mode select bit 0 PWM mode 1 One-shot mode STRG R/W: Readable/Writable (Read value is the same as write value) R0, W: Write only (Writable, "0" is read) : Initial value CM26-10112-4E Software trigger bit Write 0 No effect on operation 1 Generates software trigger Read Always reads "0" CNTE Timer enable bit 0 Stops PPG timer 1 Enables PPG timer FUJITSU MICROELECTRONICS LIMITED 313 CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR 17.5 Registers of 16-bit PPG Timer MB95100B/AM Series Table 17.5-1 16-bit PPG Status Control Register, Upper (PCNTH0) Bit name Function bit7 CNTE: Timer enable bit This bit is used to enable/stop PPG timer operation. When the bit is set to "0", the PPG operation halts immediately and the PPG0 output goes to the initial level ("L" output if OSEL is "0"; "H" output if OSEL is "1"). When the bit is set to "1", PPG operation is enabled and the PPG goes to standby to wait for a trigger. bit6 STRG: Software trigger bit This bit is used to start the PPG timer by software. When the bit is set to "1", setting the CNTE bit to "1" starts the PPG timer. Reading this bit always returns "0". bit5 MDSE: Mode select bit This bit is used to set the PPG operation mode. When the bit is set to "0", the PPG operates in PWM mode. When the bit is set to "1", the PPG operates in one-shot mode. Note: Modifying this bit is prohibited during operation. bit4 RTRG: Software retrigger enable bit This bit is used to enable or disable the software retrigger function of the PPG during operation. When the bit is set to "0", the software retrigger function is "disabled". When the bit is set to "1", the software retrigger function is "enabled". bit3 to bit1 CKS2 to CKS0: Count clock select bits These bits select the operating clock for the 16-bit PPG timer. The count clock signal is generated by the prescaler. Refer to "6.12 Operating Explanation of Prescaler". Note: As the time-base timer (TBT) is halted in sub clock mode, FCH/27 and FCH/28 cannot be selected in this case. bit0 314 PGMS: PPG output mask enable bit This bit is used to mask the PPG0 output to a specific level regardless of the mode setting (MDSE: bit5), period setting (PCSRH0, PCSRL0), and duty setting (PDUTH0, PDUTL0). When the bit is set to "0", the PPG0 output mask function is disabled. When the bit is set to "1", the PPG0 output mask function is enabled. When the PPG0 output polarity setting is set to "normal" (PCNTL0: OSEL = 0), the output is always masked to "L". When the polarity setting is se to "inverted" (PCNTL0: OSEL = 1), the PPG0 output is always masked to "H". FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR 17.5 Registers of 16-bit PPG Timer MB95100B/AM Series ■ 16-bit PPG Status Control Register, Lower (PCNTL0) Figure 17.5-6 16-bit PPG Status Control Register, Lower (PCNTL0) bit7 Address PCNTL0 0043H EGS1 R/W bit6 bit5 bit4 bit3 bit2 bit1 EGS0 IREN IRQF IRS1 IRS0 R/W R/W R(RM1),W R/W R/W Initial value 00000000B POEN OSEL R/W R/W OSEL Output inversion bit 0 Normal polarity 1 Inverted polarity POEN Output enable bit 0 General-purpose I/O port 1 PPG output pin IRS1 IRS0 0 0 0 1 1 0 1 1 IRQF EGS0 bit0 Interrupt type select bit Trigger, software trigger, and retrigger by TRG0 input Counter borrow Rising edge of PPG output in normal polarity or falling edge of PPG output in inverted polarity (Duty match) Counter borrow, rising edge of PPG output in normal polarity, or falling edge of PPG output in inverted polarity PPG interrupt flag bit Read Write 0 No PPG interrupt Clears this bit 1 PPG interrupt generated No effect on operation IREN PPG interrupt request enable flag 0 Disables interrupt request 1 Enables interrupt request Hardware trigger enable bit0 0 The falling edge of TRG0 has no effect on operation 1 The operation is started by the falling edge of TRG0 EGS1 Hardware trigger enable bit1 0 The rising edge of TRG0 has no effect on operation 1 The operation is started by the rising edge of TRG0 R/W : Readable/Writable (Read value is the same as write value) R(RM1), W : Readable/Writable (Read value is different from write value, "1" is read by read-modify-write (RMW) instruction) : Initial value CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 315 CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR 17.5 Registers of 16-bit PPG Timer MB95100B/AM Series Table 17.5-2 16-bit PPG Status Control Register, Lower (PCNTL0) Bit name Function bit7 EGS1: Hardware trigger enable bit1 This bit determines whether to allow or disallow the falling edge of TRG0 input to stop operation. When the bit is set to "0", the falling edge of TRG0 has no effect on operation. When the bit is set to "1", the operation is stopped by the falling edge of TRG0. bit6 EGS0: Hardware trigger enable bit0 This bit determines whether to allow or disallow the rising edge of TRG0 input to start operation. When the bit is set to "0", the rising edge of TRG0 has no effect on operation. When the bit is set to "1", the operation is started by the rising edge of TRG0. bit5 IREN: PPG interrupt request enable bit This bit enables or disables PPG interrupt request to the interrupt controller. When the bit is set to "0", an interrupt request is disabled. When the bit is set to "1", an interrupt request is enabled. bit4 IRQF: PPG interrupt flag bit This bit is set to "1" when a PPG interrupt occurs. When the bit is set to "0", clears the bit. When the bit is set to "1", has no effect on operation. "1" is always read in read-modify-write (RMW) instruction. These bits select the interrupt type for the PPG timer. IRS1 bit3, bit2 bit1 bit0 316 IRS1, IRS0: Interrupt type select bits IRS0 Type of interrupt 0 0 Trigger by TRG0 input, software trigger, or retrigger 0 1 Counter borrow 1 0 Rising edge of PPG output in normal polarity, or falling edge of PPG output in inverted polarity 1 1 Counter borrow, rising edge of PPG output in normal polarity, or falling edge of PPG output in inverted polarity POEN: Output enable bit This bit enables or disables output from the PPG output pin. When the bit is set to "0", the pin serves as a general-purpose port. When the bit is set to "1", the pin serves as the PPG timer output pin. OSEL: Output inversion bit This bit selects the polarity of PPG output pin. When the bit is set to "0", the PPG output goes to "H" when "L" is output in the internal start and the 16-bit down-counter value matches the duty setting register value, and goes to "L" when a downcounter borrow occurs (Normal polarity). When the bit is set to "1", the PPG output is inverted (Inverted polarity). FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR 17.6 Interrupts of 16-bit PPG Timer MB95100B/AM Series 17.6 Interrupts of 16-bit PPG Timer The 16-bit PPG timer can generate interrupt requests in the following cases: • When a trigger or counter borrow occurs • When a rising edge of PPG is generated in normal polarity • When a falling edge of PPG is generated in inverted polarity The interrupt operation is controlled by IRS1 (bit3) and IRS0 (bit2) in the PCNTL register. ■ Interrupts of 16-bit PPG Timer Table 17.6-1 shows interrupt control bits and interrupt sources of the 16-bit PPG timer. Table 17.6-1 Interrupt Control Bits and Interrupt Sources of 16-bit PPG Timer Item Description Interrupt flag bit PCNTL0:IRQF Interrupt request enable bit PCNTL0:IREN Interrupt type select bits PCNTL0:IRS1, IRS0 PCNTL0:IRS1, IRS0=01B Hardware trigger by TRG0 Pin input of 16-bit down-counter, software trigger and retrigger PCNTL0:IRS1, IRS0=00B Counter borrow of 16-bit down-counter Interrupt sources PCNTL0:IRS1, IRS0=10B Rising edge of PPG0 output in normal polarity, or falling edge of PPG0 output in inverted polarity PCNTL0:IRS1, IRS0=11B Counter borrow of 16-bit down-counter, rising edge of PPG0 output in normal polarity, or falling edge of PPG0 output in inverted polarity When IRQF (bit4) in the 16-bit PPG status control register (PCNTL0) is set to "1" and interrupt requests are enabled (PCNTL0:IREN: bit5 = 1) in the 16-bit PPG timer, an interrupt request is generated and outputted to the controller. ■ Registers and Vector Table Related to Interrupts of 16-bit PPG Timer Table 17.6-2 Registers and Vector Table Related to Interrupts of 16-bit PPG Timer Interrupt source Interrupt request No. ch.0 IRQ15 Interrupt level setting register Vector table address Register Setting bit Upper Lower ILR3 L15 FFDCH FFDDH ch: Channel Refer to "APPENDIX B Table of Interrupt Causes" for the interrupt request numbers and vector tables of all peripheral functions. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 317 CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR 17.7 Explanation of 16-bit PPG Timer Operations and Setup Procedure Example 17.7 MB95100B/AM Series Explanation of 16-bit PPG Timer Operations and Setup Procedure Example The 16-bit PPG timer can operate in PWM mode or one-shot mode. In addition, a retrigger function can be used in the 16-bit PPG timer. ■ PWM Mode (MDSE of PCNTH Register: bit5 = 0) In PWM operation mode, the 16-bit PPG cycle setting buffer register (PCSRH0, PCSRL0) values are loaded and the 16-bit down-counter starts down-count operation when a software trigger is inputted or a hardware trigger by TRG0 pin input is inputted. When the count value reaches "1", the 16-bit PPG cycle setting buffer register (PCSRH0, PCSRL0) values are reloaded to repeat the down-count operation. The initial state of the PPG output is "L". When the 16-bit down-counter value matches the value set in the duty setting registers, the output changes to "H" synchronizing with count clock. The output changes back to "L" when the "H" was output until the value of duty setting. (The output levels will be reversed if OSEL is set to "1".) When the retrigger function is disabled (RTRG = 0), software triggers (STRG = 1) are ignored during the operation of the down-counter. When the down-counter is not running, the maximum time between a valid trigger input occurring and the down-counter starting is as follows. Software trigger: 1count clock cycle + 2 machine clock cycles Hardware trigger by TRG0 Pin input: 1 count clock cycle + 3 machine clock cycles The minimum time is as follows. Software trigger: 2 machine clock cycles Hardware trigger by TRG0 Pin input: 3 machine clock cycles When the down-counter is running, the maximum time between a valid retrigger input occurring and the down-counter restarting is as follows. Software trigger: 1 count clock cycle + 2 machine clock cycles Hardware trigger by TRG0 Pin input: 1 count clock cycle + 3 machine clock cycles The minimum time is as follows. Software trigger: 2 machine clock cycles Hardware trigger by TRG0 Pin input: 3 machine clock cycles 318 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR 17.7 Explanation of 16-bit PPG Timer Operations and Setup Procedure Example Invalidating the retrigger (RTRG of PCNTH0 register: bit4 = 0) MB95100B/AM Series ● Figure 17.7-1 When Retrigger Is Invalid in PWM Mode 16-bit down counter value m n 0 Time Rising edge detected Trigger ignored Software trigger PPG (Normal polarity) PPG (Inverted polarity) (1) (2) (1)=n × T ns (2)=m × T ns T : Count clock cycle m: PCSRH0 & PCSRL0 register value n : PDUTH0 & PDUTL0 register value ● Validating the retrigger (RTRG of PCNTH0 register: bit4 = 1) Figure 17.7-2 When Retrigger Is Valid in PWM Mode Counter value m n 0 Time Rising edge detected Restarted by trigger Software trigger PPG (Normal polarity) PPG (Inverted polarity) (1) (2) (1)=n × T ns (2)=m × T ns CM26-10112-4E T : Count clock cycle m: PCSRH0 & PCSRL0 register value n : PDUTH0 & PDUTL0 register value FUJITSU MICROELECTRONICS LIMITED 319 CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR 17.7 Explanation of 16-bit PPG Timer Operations and Setup Procedure Example MB95100B/AM Series ■ One-shot Mode (MDSE of PCNTH0 Register: bit5 = 1) One-shot operation mode can be used to output a single pulse with a specified width when a valid trigger input occurs. When retriggering is enabled and a valid trigger is detected during the counter operation, the down counter value is reloaded. The initial state of the PPG0 output is "L". When the 16-bit down-counter value matches the value set in the duty setting registers, the output changes to "H". The output changes back to "L" when the counter reaches "1". (The output levels will be reversed if OSEL is set to "1".) ● Invalidating the retrigger (RTRG of PCNTH0 register: bit4 = 0) Figure 17.7-3 When Retrigger Is Invalid in One-shot Mode Counter value m n 0 Time Rising edge detected Trigger ignored Software trigger PPG (Normal polarity) PPG (Inverted polarity) (1) (2) T : Count clock cycle m: PCSRH0 & PCSRL0 register value n : PDUTH0 & PDUTL0 register value (1)=n × T ns (2)=m × T ns ● Validating the retrigger (RTRG of PCNTH0 register: bit4 = 1) Figure 17.7-4 When Retrigger Is Valid in One-shot Mode Counter value m n 0 Time Rising edge detected Trigger restarted Software trigger PPG (Normal polarity) PPG (Inverted polarity) (1) (2) (1)=n × T ns (2)=m × T ns 320 T : Count clock cycle m: PCSRH0 & PCSRL0 register value n : PDUTH0 & PDUTL0 register value FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR 17.7 Explanation of 16-bit PPG Timer Operations and Setup Procedure Example MB95100B/AM Series ■ Hardware Trigger "Hardware trigger" refers to PPG activation by signal input to the TRG0 input pin. When EGS1 and EGS0 are set to "11B" and the hardware trigger is used with TRG0 input, PPG starts operation on a rising edge and halts the operation upon the detection of a falling edge. Moreover, the PPG timer begins operation of the following rising edge from the beginning. The operation can be retriggered by a valid TRG0 input hardware trigger regardless of the retrigger setting of the RTRG bit when the TRG0 input hardware trigger has been selected. Figure 17.7-5 Hardware Trigger in PWM Mode Counter value m n 0 Time Rising edge detected Falling edge detected Hardware trigger PPG (Normal polarity) PPG (Inverted polarity) (1) (2) (1)=n × T ns (2)=m × T ns T : Count clock cycle m: PCSRH0 & PCSRL0 register value n : PDUTH0 & PDUTL0 register value ■ Setup Procedure Example The 16-bit PPG timer is set up in the following procedure: ● Initial setting 1) Set the interrupt level (ILR3, ILR4) 2) Enable the hardware trigger and interrupts, select the interrupt type, and enable output (PCNTL0) 3) Select the count clock and the mode, and enable timer operation (PCNTH0) 4) Set the cycle (PCSRL0, PCSRH0) 5) Set the duty (PDUTH0, PDUNT0) 6) Start the PPG by the software trigger (PCNTH0:STRG = 1) ● Interrupt processing 1) Process any interrupt 2) Clear the interrupt request flag (PCNTL0:IRQF) CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 321 CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR 17.8 Notes on Using 16-bit PPG Timer 17.8 MB95100B/AM Series Notes on Using 16-bit PPG Timer Shown below are the precautions that must be followed when using the 16-bit PPG timer. ■ Notes on Using 16-bit PPG Timer ● Precautions when setting the program Do not use the retrigger if the same values are set for the cycle and duty. If used, the PPG0 output will go to the "L" level for one count clock cycle after the retrigger, and then go back to the "H" level when normal polarity has been selected. If the microcontroller enters a standby mode, the TRG0 pin setting may change and cause the device to malfunction. Therefore, disable the timer enable bit (PCNTH0:CNTE = 0) or disable the hardware trigger enable bit (PCNTL0:EGS1, EGS0 = 00B). When the cycle and duty are set to the same value, an interrupt is generated only once by duty match. Moreover, if the duty is set to a value greater than the value of the period, no interrupt will be generated by duty match. Do not disable the timer enable bit (PCNTH0: CNTE = 0) and software trigger (PCNTH0: STRG =1) at the same time when retrigger by the software is enabled (PCNTH0: RTRG =1) and the retrigger is selected as an interrupt type (PCNTL0: IRS1, IRS0 = 00B) during count operation. If it occurs, interrupt flag bit may set by retrigger although timer stops. 322 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 17.9 CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR 17.9 Sample Programs for 16-bit PPG Timer Sample Programs for 16-bit PPG Timer We provide sample programs that can be used to operate the 16-bit PPG timer. ■ Sample Programs for 16-bit PPG Timer For information about the sample programs for the 16-bit PPG timer, refer to "■ Sample Programs" in Preface. ■ Setup Methods without Sample Program ● How to set the PPG operation mode The operation mode select bit (PCNTH0:MDSE) is used. Operation mode Operation mode select bit (MDSE) PWM mode Set the bit to "0" One-shot mode Set the bit to "1" ● How to select the operating clock The operating clock select bits (PCNTH0:CKS2/CKS1/CKS0) are used to select the clock. ● How to enable/disable the PPG output pin The output enable bit (PCNTL0:POEN) is used. Operation Output enable bit (POEN) When enabling PPG0 output Set the bit to "1" When disabling PPG0 output Set the bit to "0" ● How to enable/disable PPG operation The timer enable bit (PCNTH0:CNTE) is used. Operation Timer enable bit (CNTE) When disabling PPG0 operation Set the bit to "0" When enabling PPG0 operation Set the bit to "1" Enable PPG operation before starting the PPG. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 323 CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR 17.9 Sample Programs for 16-bit PPG Timer MB95100B/AM Series ● How to start PPG operation by software The software trigger bit (PCNTH0:STRG) is used. Operation Software trigger bit (STRG) When starting PPG operation by software Set the bit to "1" ● How to enable/disable the retrigger function of the software trigger The retrigger enable bit (PCNTH0:RTRG) is used. Operation Retrigger enable bit (RTRG) When enabling retrigger function Set the bit to "1" When disabling retrigger function Set the bit to "0" ● How to start/stop operation on a rising edge of trigger input The hardware trigger enable bit (PCNTL0:EGS0) is used. Operation Hardware trigger enable bit (EGS0) When starting operation on rising edge Set the bit to "1" When stopping operation on rising edge Set the bit to "0" ● How to start/stop operation on a falling edge of trigger input The hardware trigger enable bit (PCNTL0:EGS1) is used. Operation Hardware trigger enable bit (EGS1) When starting operation on falling edge Set the bit to "1" When stopping operation on falling edge Set the bit to "0" ● How to invert PPG output The output inversion bit (PCNTL0:OSEL) is used. 324 Operation Output inversion bit (OSEL) When inverting PPG output Set the bit to "1" FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR 17.9 Sample Programs for 16-bit PPG Timer MB95100B/AM Series ● How to set the PPG output to the "H" or "L" level The PPG output mask enable bit (PCNTH0:PGMS) and the output inversion bit (PCNTL0:OSEL) are used. Operation PPG output mask enable bit (PGMS) Output inversion bit (OSEL) When setting output to "H" level Set the bit to "1" Set the bit to "1" When setting output to "L" level Set the bit to "1" Set the bit to "0" ● How to select the interrupt source The interrupt select bits (PCNTL0:IRS1/IRS0) are used to select the interrupt source. Interrupt source Interrupt select bits (IRS1/IRS0) Trigger by TRG0 input, software trigger, or retrigger Set the bits to "00B" Counter borrow Set the bits to "01B" Rising edge of PPG0 output in normal polarity, or falling edge of PPG0 output in inverted polarity Set the bits to "10B" Counter borrow, rising edge of PPG0 output in normal polarity, or falling edge of PPG0 output in inverted polarity Set the bits to "11B" ● Interrupt-related registers The interrupt level is set by the level setting registers shown in the following table. Interrupt source Interrupt level setting register Interrupt vector ch.0 Interrupt level register (ILR3) Address: 0007CH #15 Address: 0FFDCH ● How to enable/disable/clear interrupts The interrupt request enable bit (PCNTL0:IREN) is used to enable interrupts. Operation Interrupt request enable bit (IREN) When disabling interrupt request Set the bit to "0" When enabling interrupt request Set the bit to "1" The interrupt request flag (PCNTL0:IRQF) is used to clear interrupt requests. CM26-10112-4E Operation Interrupt request flag (IRQF) When clearing interrupt request Write "0" to the bit FUJITSU MICROELECTRONICS LIMITED 325 CHAPTER 17 UART/SIO DEDICATED BAUD RATE GENERATOR 17.9 Sample Programs for 16-bit PPG Timer 326 MB95100B/AM Series FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 18 16-BIT RELOAD TIMER This chapter describes the functions and operations of the 16-bit reload timer. 18.1 Overview of 16-bit Reload Timer 18.2 Configuration of 16-bit Reload Timer 18.3 Channels of 16-bit Reload Timer 18.4 Pins of 16-bit Reload Timer 18.5 Registers of 16-bit Reload Timer 18.6 Interrupts of 16-bit Reload Timer 18.7 Explanation of 16-bit Reload Timer Operations and Setup Procedure Example 18.8 Notes on Using 16-bit Reload Timer 18.9 Sample Programs for 16-bit Reload Timer Code: CM26-00119-2E Page: 334 CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 327 CHAPTER 18 16-BIT RELOAD TIMER 18.1 Overview of 16-bit Reload Timer 18.1 MB95100B/AM Series Overview of 16-bit Reload Timer The 16-bit reload timer has two counter operation modes available in the following two clock modes. The 16-bit reload timer can be used as an interval timer by generating an interrupt when an underflow occurs in the timer. ■ Operation Modes of 16-bit Reload Timer Table 18.1-1 shows the operation modes of the 16-bit reload timer. Table 18.1-1 Operation Modes of 16-bit Reload Timer Clock mode Counter operation mode Trigger operation mode Reload mode Software trigger operation External trigger input operation External gate input operation Internal clock mode One-shot mode Event count mode (External clock mode) Reload mode One-shot mode Software trigger operation ■ Internal Clock Mode Internal clock mode is selected when any value other than "111B" is set in the count clock setting bits (CSL2 to CSL0) of the timer control status register upper (TMCSRH0). In internal clock mode, the following three trigger operation modes are available. ● Software trigger operation The count starts when the count enable bit (CNTE) in the timer control status register lower (TMCSRL0) is set to "1" and the software trigger bit (TRG) is set to "1". ● External trigger input operation When the count enable bit (CNTE) in the timer control status register lower (TMCSRL0) is set to "1", the count will start if a valid edge (rising, falling, or both selectable) specified by the operation mode setting bits (MOD2 to MOD0) is inputted to the TI pin. ● External gate input operation When the count enable bit (CNTE) in the timer control status register lower (TMCSRL0) is set to "1", the count will start if a valid trigger input level ("L" or "H" selectable) specified by the operation mode setting bits (MOD2 to MOD0) is inputted to the TI pin. ■ Event Count Mode (External Clock Mode) When the count clock setting bits (CSL2 to CSL0) in the timer control status register upper (TMCSRH0) are set to "111B", the count will start if a valid edge of trigger input (rising, falling, or both) specified by the operation mode setting bits (MOD2 to MOD0) is inputted to the TI pin. When an external clock is inputted in regular cycles, the reload timer can also be used as an interval timer. 328 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 18 16-BIT RELOAD TIMER 18.1 Overview of 16-bit Reload Timer ■ Counter Operation Mode ● Reload mode The value of the 16-bit reload register (TMRLRH0/TMRLRL0) is loaded to the 16-bit downcounter and the count continues when an underflow occurs on the 16-bit down-counter ("0000H" → "FFFFH"). Also, the interrupt request is output by an underflow, so the mode can be used as the interval timer. ● One-shot mode An interrupt is generated when an underflow occurs on the 16-bit down-counter. During counter operation, the TO pin outputs a square waveform indicating that the counter is currently running. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 329 CHAPTER 18 16-BIT RELOAD TIMER 18.2 Configuration of 16-bit Reload Timer 18.2 MB95100B/AM Series Configuration of 16-bit Reload Timer The 16-bit reload timer consists of the following blocks: • Count clock generation circuit • Reload control circuit • Output control circuit • Operation control circuit • 16-bit timer register (TMRH0, TMRL0) • 16-bit reload register (TMRLRH0, TMRLRL0) • Timer control status register (TMCSRH0, TMCSRL0) ■ Block Diagram of 16-bit Reload Timer Figure 18.2-1 shows the block diagram of the 16-bit reload timer. Figure 18.2-1 Block Diagram of 16-bit Reload Timer Internal bus 16-bit reload register (TMRLRH/TMRLRL) Reload control circuit Reload 16-bit timer register (TMRH/TMRL) CLK Output control circuit Count clock generation circuit Pin Input control circuit Valid clock judgment circuit TI Pin Enable Wait Operation control circuit Select Function selection CSL2 CSL1 CSL0 TO CLK Clock selection Internal clock Output signal generation Invercircuit sion MOD2 MOD1 MOD0 OUTE OUTL RELD I NTE UF CNTE TRG Timer control status register (TMCSR) Interrupt request signal Internal bus 330 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 18 16-BIT RELOAD TIMER 18.2 Configuration of 16-bit Reload Timer ● Count clock generation circuit The count clock for the 16-bit reload timer is generated from the internal clock or TI pin input signal. ● Reload control circuit This circuit controls reload operation when the timer is started or an underflow occurs. ● Output control circuit This circuit controls the inversion of TO pin output by an underflow of the 16-bit downcounter and the enabling and disabling of TO pin output. ● Operation control circuit This circuit controls the starting and stopping of the 16-bit down-counter. ● 16-bit timer register (TMRH0, TMRL0) TMRH and TMRL form a 16-bit down-counter. Reading returns the current count value. ● 16-bit reload register (TMRLRH0, TMRLRL0) This register sets the load value to the 16-bit down-counter. The register loads the setting value of the 16-bit reload register to the 16-bit down-counter to down count. ● Timer control status register (TMCSRH0, TMCSRL0) This register controls the count clock operation mode, clock selection, interrupts and other aspects of the 16-bit reload timer as well as indicates the current operation status. ■ Input Clock The 16-bit reload timer uses the output clock from the prescaler or the input signal from the TI0 pin as its input clock (count clock). CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 331 CHAPTER 18 16-BIT RELOAD TIMER 18.3 Channels of 16-bit Reload Timer 18.3 MB95100B/AM Series Channels of 16-bit Reload Timer This section describes the channels of the 16-bit reload timer. ■ Channels of 16-bit Reload Timer This series contains one channel of 16-bit reload timer. Table 18.3-1 and Table 18.3-2 show the correspondence among the channel, pin and register. Table 18.3-1 Pins of 16-bit Reload Timer Channel 0 Pin name Pin function TO0 Timer output TI0 Timer input Table 18.3-2 Registers of 16-bit Reload Timer Channel 0 332 Register name Corresponding register (Representation in this manual) TMCSRH0 16-bit reload timer control status register (upper) TMCSRL0 16-bit reload timer control status register (lower) TMRH0 16-bit reload timer timer register (upper) TMRL0 16-bit reload timer timer register (lower) TMRLRH0 16-bit reload timer reload register (upper) TMRLRL0 16-bit reload timer reload register (lower) FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 18.4 CHAPTER 18 16-BIT RELOAD TIMER 18.4 Pins of 16-bit Reload Timer Pins of 16-bit Reload Timer This section describes the pins related to the 16-bit reload timer and shows the block diagram of these pins. ■ Pins Related to 16-bit Reload Timer The pins related to the 16-bit reload timer are namely the TI0 and TO0 pins. ● TI0 pin This pin is used both as a general-purpose I/O port and as an external pulse input pin for the counter (TI). TI0: Any pulse edge inputted to this pin is counted during counter operation. To use it as the TI pin in counter operation, set the port direction register (DDR7) to "0" and use the pin as an input port. ● TO0 pin This pin is used both as a general-purpose I/O port and as the output pin of the 16-bit reload timer (TO0). TO0: The pin outputs a waveform of the 16-bit reload timer. When using this pin as the TO pin for the 16-bit reload timer, enabling timer output (TMCSRL0:OUTE = 1) allows output to be performed automatically regardless of the setting of the port direction register (DDR7) and the pin to serve as the TO pin of the timer output. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 333 CHAPTER 18 16-BIT RELOAD TIMER 18.4 Pins of 16-bit Reload Timer MB95100B/AM Series ■ Block Diagram of Pins Related to 16-bit Reload Timer Figure 18.4-1 Block Diagram of Pins (TO0, TI0) Related to 16-bit Reload Timer Peripheral function input Peripheral function output enable Peripheral function output Hysteresis 0 Pull-up 0 1 1 PDR read Automotive P-ch 1 Pin PDR 0 PDR write Internal bus In bit operation instruction DDR read DDR DDR write Stop, Watch (SPL=1) PUL read PUL PUL write ILSR3 read ILSR3 ILSR3 write 334 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 18 16-BIT RELOAD TIMER 18.5 Registers of 16-bit Reload Timer MB95100B/AM Series 18.5 Registers of 16-bit Reload Timer This section describes the registers of the 16-bit reload timer. ■ List of Registers of 16-bit Reload Timer Figure 18.5-1 shows the registers of the 16-bit reload timer. Figure 18.5-1 Registers of 16-bit Reload Timer 16-bit reload timer control status register (upper) TMCSRH0 Address bit7 bit6 bit5 bit4 bit3 TMCSRH0 003EH − − CSL2 CSL1 CSL0 R0/WX R0/WX R/W R/W R/W 16-bit reload timer control status register (lower) TMCSRL0 Address bit7 TMCSRL0 003FH − bit0 MOD2 MOD1 MOD0 R/W R/W R/W Initial value 00000000B bit3 bit2 bit1 bit0 Initial value RELD INTE UF CNTE TRG 00000000B R0/WX R/W R/W R/W 16-bit reload timer timer register (upper) TMRH0 R/W R(RM1),W R/W R0,W TMRH0 00FA6H bit5 bit1 bit4 Address bit6 bit2 OUTE OUTL bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value D15 D14 D13 D12 D11 D10 D9 D8 00000000B R/W R/W R/W R/W R/W R/W R/W R/W 16-bit reload timer timer register (lower) TMRL0 Address TMRL0 00FA7H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value D7 D6 D5 D4 D3 D2 D1 D0 00000000B R/W R/W R/W R/W R/W R/W R/W R/W 16-bit reload timer reload register (upper) TMRLRH0 Address bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value D15 D14 D13 D12 D11 D10 D9 D8 00000000B R/W R/W R/W R/W 16-bit reload timer reload register (lower) TMRLRL0 R/W R/W R/W R/W bit3 bit2 bit1 bit0 Initial value 00000000B TMRLRH0 00FA6H Address TMRLRL0 00FA7H bit7 bit6 bit5 bit4 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W R/W : Readable/writable (Read value is the same as write value) R(RM1), W : Readable/writable (Read value is different from write value, "1" is read by read-modify-write (RMW) instruction) R0, W : Write only (Writable, "0" is read) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) Note: •TMRH0 and TMRLRH0 are assigned to the same address. •TMRL0 and TMRLRL0 are assigned to the same address. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 335 CHAPTER 18 16-BIT RELOAD TIMER 18.5 Registers of 16-bit Reload Timer 18.5.1 MB95100B/AM Series 16-bit Reload Timer Control Status Register Upper (TMCSRH0) The 16-bit reload timer control status register (TMCSRH0) sets the operation mode and operating conditions of the 16-bit reload timer. ■ 16-bit Reload Timer Control Status Register Upper (TMCSRH0) Figure 18.5-2 16-bit Reload Timer Control Status Register Upper (TMCSRH0) Address bit7 bit6 bit5 bit4 TMCSRH0 003EH − − CSL2 CSL1 CSL0 MOD2 MOD1 MOD0 R/W R/W R0/WX R0/WX R/W bit3 bit2 R/W MOD2 MOD1 MOD0 bit1 R/W bit0 0 0 1 1 X X 0 1 0 1 0 1 MOD2 MOD1 MOD0 Operation mode selection bits (In internal clock mode, CSL2 to CSL0 = any value other than "111B") External input invalid Trigger input Gate input 0 0 1 1 X 0 1 0 1 X Valid edge, level − Rising edge Falling edge Both edges "L" level "H" level Operation mode selection bits (In event count mode, CSL2 to CSL0 = 111B) Input pin function 0 0 0 0 1 00000000 B R/W Input pin function 0 0 0 0 1 1 Initial value Valid edge − Rising edge Trigger input Falling edge Both edges Setting disabled External input invalid Note : X can be set to either "0" or "1". CSL2 CSL1 CSL0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 Count clock selection bits Count clock Operation mode 1/MCLK 2/MCLK 4/MCLK Internal clock 8/MCLK 16/MCLK 32/MCLK 27/MCLK Event count TIx pin R/W : Readable/writable (Read value is the same as write value) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) MCLK : Machine clock FCH : Main oscillation frequency : Initial value 336 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 18 16-BIT RELOAD TIMER 18.5 Registers of 16-bit Reload Timer Table 18.5-1 16-bit Reload Timer Control Status Register Upper (TMCSRH0) Bit name Function bit7, bit6 −: Undefined bits These bits are undefined. • Writing has no effect on the operation. • Reading always returns "0". bit5 to bit3 CSL2, CSL1, CSL0: Count clock selection bits These bits select the count clock for the 16-bit reload timer. When set to any value other than "111": Internal clock is counted (internal clock mode). The internal clock is generated by the prescaler. See Section "6.12 Operating Explanation of Prescaler". When set to "111": Edge of the external event clock is counted (event count mode). These bits set the operating conditions of the 16-bit reload timer. • bit2 to bit0 Internal clock mode (CSL2 to CSLCSL0 = any value other than "111") MOD2 bit selects the input pin function. When MOD2 bit is set to "0": - TI pin serves as a trigger input. - MOD1 and MOD0 bits are used to select the edge to be detected. - When the edge is detected, the value set in the 16-bit reload timer reload register is reloaded MOD2, in the 16-bit reload timer timer register (TMR) and the TMR starts counting. MOD1, When MOD2 bit is set to "1": MOD0: - TI pin serves as a gate input. Operation mode - Setting the MOD1 bit is invalid. select bits - The MOD0 bit is used to select the valid signal level (H or L). The TMR only counts while the valid signal level is being inputted. Note: External input is disabled when MOD2 to MOD0 are "000". In this case, the TRG bit is used to start operation by software. • Event count mode (CSL2 to CSL0 = "111") - The MOD2 bit is always fixed to "0". - The external event clock is inputted from the TI pin. - The MOD1 and MOD0 bits are used to select the edge to be detected. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 337 CHAPTER 18 16-BIT RELOAD TIMER 18.5 Registers of 16-bit Reload Timer 18.5.2 MB95100B/AM Series 16-bit Reload Timer Control Status Register Lower (TMCSRL0) The 16-bit reload timer control status register lower (TMCSRL0) sets the operating conditions of the 16-bit reload timer, enables or disables counting, controls interrupts, and checks the interrupt request status. ■ 16-bit Reload Timer Control Status Register Lower (TMCSRL0) Figure 18.5-3 16-bit Reload Timer Control Status Register Lower (TMCSRL0) Address TMCSRL0 003FH bit7 - bit6 bit5 bit4 OUTE OUTL RELD R0/WX R/W R/W R/W TRG 0 1 CNTE 0 1 UF 0 1 bit3 bit2 bit1 bit0 Initial value INTE UF CNTE TRG R/W R(RM1),W R/W R0, W 00000000 B Software trigger bit Read Always reads "0" Write No effect on operation Starts counting after reload Count enable bit Stops count Enables count (waiting for start trigger) Underflow interrupt request flag bit Read Write No underflow Clears this bit No effect on operation Underflow INTE 0 1 Underflow interrupt request enable bit Disables underflow interrupt Enables underflow interrupt RELD 0 1 Reload selection bit One-shot mode Reload mode OUTL 0 1 Pin output level selection bit One-shot mode Reload mode Outputs "H" square waveform during counting Outputs "L" toggle when counting starts Outputs "L" square waveform during counting Outputs "H" toggle when counting starts OUTE Timer output enable bit 0 Disables timer output (general-purpose I/O port) 1 Enables timer output R/W : Readable/writable (Read value is the same as write value) R(RM1),W : Readable/writable (Read value is different from write value, "1" is read by read-modify-write instruction) R0,W : Write only (Writable, "0" is read) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) : Initial value 338 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 18 16-BIT RELOAD TIMER 18.5 Registers of 16-bit Reload Timer Table 18.5-2 16-bit Reload Timer Control Status Register Lower (TMCSRL0) Bit name Function bit7 −: Undefined bit These bits are undefined. • Writing has no effect on the operation. • Reading always returns "0". bit6 OUTE: Timer output enable bit This bit sets the TO pin function of the 16-bit reload timer. When set to "0": The pin functions as a general-purpose I/O port. When set to "1": The pin functions as the TO pin of the 16-bit reload timer. This bit sets the output level of the output pin of the 16-bit reload timer. • When one-shot mode is selected(RELD = 0) "0": Outputs "H" level square waveform while the 16-bit reload timer counts. "1": Outputs "L" level square waveform while the 16-bit reload timer counts. OUTL: Pin output level selection bit • bit4 RELD: Reload selection bit This bit sets reload operation when an underflow occurs. "0": When an underflow occurs, counting is suspended. (One-shot mode) "1": When an underflow occurs, the value that has been set to the 16-bit reload register is loaded to the 16-bit timer register, and counting continues. (Reload mode) bit3 INTE: Underflow interrupt request enable bit This bit enables or disables underflow interrupts. When the bit is set to "0", an interrupt request is disabled. When the bit is set to "1", an interrupt request is enabled. bit2 UF: Underflow interrupt request flag bit This bit indicates that an underflow has occurred on the 16-bit reload timer. When set to "0": UF bit is cleared. When set to "1": Writing is nullified. • "1" is always read in read-modify-write (RMW) instructions. bit1 CNTE: Count enable bit This bit enables or disables the operation of the 16-bit reload timer. "0": Counting is halted. "1": The unit goes to standby to wait for a start trigger. When a start trigger is inputted, the 16-bit timer register starts counting. TRG: Software trigger bit This bit allows the 16-bit reload timer to be started by software. The TRG bit is valid only when timer operation is enabled (CNTE = 1). "0": No effect on operation "1": The value set in the 16-bit reload register is reloaded to the 16-bit timer register and then the 16-bit timer register starts counting from the next count clock input. Note: This bit can be set to "1" at the same time as the CNTE bit without affecting the operation. • When read: "0" is always returned. However, "1" is read during the time between writing "1" to start the timer and when the timer count actually starts. bit5 bit0 CM26-10112-4E When reload mode is selected(RELD = 1) "0": Outputs an "L" when the 16-bit reload timer is started and then toggles each time an underflow occurs. "1": Outputs an "H" when the 16-bit reload timer is started and then toggles each time an underflow occurs. FUJITSU MICROELECTRONICS LIMITED 339 CHAPTER 18 16-BIT RELOAD TIMER 18.5 Registers of 16-bit Reload Timer 18.5.3 MB95100B/AM Series 16-bit Reload Timer Timer Register Upper (TMRH0)/Lower (TMRL0) The 16-bit reload timer timer register upper (TMRH0) and lower (TMRL0) can be used to read the value of the 16-bit down-counter. ■ 16-bit Reload Timer Timer Register Upper (TMRH0)/Lower (TMRL0) Figure 18.5-4 16-bit Reload Timer Timer Register Upper (TMRH0)/Lower (TMRL0) TMRH0 Address TMRH0 0FA6H TMRL0 Address TMRL0 0FA7H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 D15 R/W D14 R/W D13 R/W D12 R/W D11 R/W D10 R/W D9 R/W D8 R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 D7 R/W D6 R/W D5 R/W D4 R/W D3 R/W D2 R/W D1 R/W D0 R/W Initial value 00000000B Initial value 00000000B R/W: Readable/writable (Read value is the same as write value) The 16-bit timer register can read the count value of the 16-bit down-counter. If counting is enabled (TMCSRL0: CNTE=1) at the beginning of a count, the value written in the 16-bit reload register will be reloaded to this register and the timer will start counting down. Notes: • These registers can read the count value even during counting. As for read access, use a word transfer instruction or read the upper byte first and the lower byte second. The circuit is configured so that the value in the lower byte is saved when the upper byte is read. • The registers are read-only and located at the same address as the 16-bit reload register. Accordingly, writing to these registers also writes to the 16-bit reload register. 340 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 18 16-BIT RELOAD TIMER 18.5 Registers of 16-bit Reload Timer MB95100B/AM Series 18.5.4 16-bit Reload Timer Reload Register Upper (TMRLRH0)/Lower (TMRLRL0) The 16-bit reload timer reload upper (TMRLRH0)/lower (TMRLRL0) registers set the reload value to the 16-bit down-counter. The value set in the 16-bit reload registers is reloaded to the 16-bit down-counter to down count. ■ 16-bit Reload Timer Reload Register Upper (TMRLRH0)/Lower (TMRLRL0) Figure 18.5-5 16-bit Reload Timer Reload Register Upper (TMRLRH0)/Lower (TMRLRL0) TMRLRH0 Address TMRLRH0 0FA6H TMRL0 Address TMRLRL0 0FA7H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 D15 R/W D14 R/W D13 R/W D12 R/W D11 R/W D10 R/W D9 R/W D8 R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 D7 R/W D6 R/W D5 R/W D4 R/W D3 R/W D2 R/W D1 R/W D0 R/W Initial value 00000000B Initial value 00000000B R/W: Readable/writable (Read value is the same as write value) These registers set the reload value to the 16-bit down-counter. The value set in the 16-bit reload timer reload registers is reloaded to the 16-bit down-counter to start down-counting at the timing of start or underflow (Also rewritable during counter operation). Notes: • The registers can be written to even while the counter is running. As for write access, use a word transfer instruction or write the upper byte first and the lower byte second. (The circuit is implemented so that the upper byte is not used until the lower byte is written.) • These are write-only registers and located at the same address as the 16-bit timer register. Therefore, reading from them also reads from the 16-bit timer register. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 341 CHAPTER 18 16-BIT RELOAD TIMER 18.6 Interrupts of 16-bit Reload Timer 18.6 MB95100B/AM Series Interrupts of 16-bit Reload Timer The 16-bit reload timer outputs an interrupt request when an underflow occurs on the 16-bit down-counter. ■ Interrupts of 16-bit Reload Timer Table 18.6-1 shows the interrupt control bits and interrupt sources of the 16-bit reload timer. Table 18.6-1 Interrupt Control Bits and Interrupt Sources of 16-bit Reload Timer Item Description Interrupt request flag bit UF bit in TMCSRL0 register Interrupt request enable bit INTE bit in TMCSRL0 register Interrupt source Underflow of down-counter (TMRH0/TMRL0) The 16-bit reload timer sets the underflow interrupt request flag bit (UF) in the 16-bit reload timer control status register lower (TMCSRL0) to "1" when an underflow occurs in the 16-bit down-counter ("0000H" → "FFFFH"). If the underflow interrupt request enable bit is enabled (INTE = 1), the interrupt request will be outputted to the interrupt controller. The interrupt request numbers and vector tables of all peripheral functions are listed in Appendix B "Interrupt Source Tables". ■ Registers and Vector Table Related to Interrupts of 16-bit Reload Timer Table 18.6-2 Registers and Vector Table Related to Interrupts of 16-bit Reload Timer Interrupt source ch.0 Interrupt request number IRQ11 Interrupt level setting register Vector table address Registers Setting bit Upper Lower ILR2 L11 FFE4H FFE5H ch. : Channel 342 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 18.7 CHAPTER 18 16-BIT RELOAD TIMER 18.7 Explanation of 16-bit Reload Timer Operations and Setup Procedure Example Explanation of 16-bit Reload Timer Operations and Setup Procedure Example This section describes the operating status of the 16-bit reload timer counter. ■ Operating Status of Counter The counter status is determined by the value of the count enable bit (CNTE) in the 16-bit reload timer control status register (TMCSRL0) and the internal signal start trigger wait signal (WAIT). The STOP state (halted), WAIT state (waiting for a start trigger) and RUN state (operating state) can be set. Figure 18.7-1 shows the status transition of these counters. Figure 18.7-1 Diagram of Counter State Transition Reset STOP state CNTE=0,WAIT=1 TI pin: Input disabled TO pin: General-purpose I/O port 16-bit reload timer timer register: Holds the value at stop Value immediately after reset = 0000H CNTE=0 CNTE=0 CNTE=0 CNTE=1 TRG=0 WAIT state CNTE=1 TRG=1 RUN state CNTE=1,WAIT=1 TI pin: Only trigger input is valid UF=1 & RELD=0 (One-shot mode) TO pin: 16-bit reload timer reload register output 16-bit reload timer timer register: Holds the value at stop Until loaded immediately after reset = 0000H TRG=1 (Software trigger) External trigger from TI pin CNTE=1,WAIT=0 TI pin: 16-bit reload timer input TO pin: 16-bit reload timer reload register output 16-bit reload timer timer register: count operation UF=1 & RELD=1 (Reload mode) LOAD CNTE=1,WAIT=0 16-bit reload timer reload register value loaded to 16-bit reload timer timer register TRG=1 (Software trigger) External trigger from TI pin Load completed : State transition by hardware : State transition by register access WAIT : WAIT signal (internal signal) TRG : Software trigger bit (TMCSRL) CNTE : Timer operation enable bit (TMCSRL) UF : Underflow generation flag bit (TMCSRL) RELD : Reload selection bit (TMCSRL) CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 343 CHAPTER 18 16-BIT RELOAD TIMER 18.7 Explanation of 16-bit Reload Timer Operations and Setup Procedure Example MB95100B/AM Series ■ Setup Procedure Example The 16-bit reload timer is set up in the following procedure. ● Initial setting 1) Set the interrupt level. (ILR2) 2) Set the reload value. (TMR0) 3) Select the clock. (TMCSRH0:CSL2 to CSL0) 4) Select the operation mode. (TMCSRH0:MOD2 to MOD0) 5) Enable the output. (TMCSRL0:OUTE = 1) 6) Select the output level. (TMCSRL0:OUTL) 7) Select reload. (TMCSRL0:RELD) 8) Enable a count. (TMCSRL0:CNTE = 1) 9) Perform the software trigger. (TMCSRL0:TRG = 1) 10)Enable underflow interrupt. (TMCSRL0:INTE = 1) ● Interrupt processing 1) Clear the underflow interrupt request flag. (TMCSRL0:UF=0) 2) Disable underflow interrupt. (TMCSRL0:INTE = 0) 3) Process any interrupt. 4) Enable underflow interrupt. (TMCSRL0:INTE = 1) 344 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 18.7.1 CHAPTER 18 16-BIT RELOAD TIMER 18.7 Explanation of 16-bit Reload Timer Operations and Setup Procedure Example Internal Clock Mode In this mode, the 16-bit down-counter counts down while being synchronized with the internal count clock, and outputs an interrupt request to the interrupt controller every time an underflow occurs ("0000H" → "FFFFH"). And, TO pin can output the toggle waveform. ■ Internal Clock Mode Setup The timer requires the register settings shown in Figure 18.7-2 to operate as an interval timer. Figure 18.7-2 Internal Clock Mode Setup TMCSRH0 bit7 − bit6 − bit5 bit4 bit3 CSL2 CSL1 CSL0 Other than "111" bit7 − 0 bit6 bit5 OUTE OUTL bit1 CNTE 1 bit0 TRG TMRLRH0 bit7 D15 bit6 bit5 bit4 bit3 bit2 bit1 D14 D13 D12 D11 D10 D9 Set initial value of counter (reload value) (upper) bit0 D8 TMRLRL0 bit7 D7 bit6 bit5 bit4 bit3 bit2 bit1 D6 D5 D4 D3 D2 D1 Set initial value of counter (reload value) (lower) bit0 D0 TMCSRL0 bit4 RELD bit2 bit1 bit0 MOD2 MOD1 MOD0 0 bit3 INTE bit2 UF : Used bit 0 : Set to "0" 1 : Set to "1" ■ Operation of Internal Clock Mode (Reload Mode) When "1" is set to the count enable bit (CNTE) to enable counting, and the timer is started by setting "1" to the software trigger bit (TRG) or by an external trigger, the value set in the 16-bit reload register (TMRLR0) is reloaded to the 16-bit counter and down-counting starts. When the count enable bit (CNTE) and software trigger bit (TRG) are set to "1" at the same time and then counting is enabled, the count is started simultaneously. If the reload select bit (RELD) is "1", the value of the 16-bit reload register (TMRLR0) is reloaded to the 16-bit counter and the count continues when the 16-bit counter underflows ("0000H" → "FFFFH"). If the underflow interrupt request flag bit (UF) is "1" when the underflow interrupt request enable bit (INTE) is set to "1", an interrupt request is outputted. The TO pin can output a toggle waveform that is inverted every time an underflow occurs. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 345 CHAPTER 18 16-BIT RELOAD TIMER 18.7 Explanation of 16-bit Reload Timer Operations and Setup Procedure Example MB95100B/AM Series ● Software trigger operation The count starts when the count enable bit (CNTE) is "1" and the software trigger bit (TRG) is also set to "1". Figure 18.7-3 shows the software trigger operation in reload mode. Figure 18.7-3 Count Operation in Reload Mode (Software Trigger Operation) Count clock -1 Counter Data load signal 0000 Reload data -1 0000 Reload data -1 0000 Reload data -1 Reload data UF bit CNTE bit TRG bit TO pin ● External trigger input operation The count starts when the count enable bit (CNTE) is set to "1" and a valid edge of trigger input (rising, falling, or both selectable) set by the operation mode select bits (MOD2 to MOD0) is inputted to the TI pin. The timer start with the software trigger becomes effective as well as the start with an external trigger, too. Figure 18.7-4 shows the external trigger input operation in reload mode. Figure 18.7-4 Count Operation in Reload Mode (External Trigger Input Operation) Count clock -1 Counter Data load signal Reload data 0000 -1 Reload data 0000 -1 Reload data 0000 -1 Reload data UF bit CNTE bit TI pin TO pin ● Gate input operation The count starts when the count enable bit (CNTE) is "1" and the software trigger bit (TRG) is also set to "1". The timer continues counting while the valid gate input level ("L" or "H" selectable) set by the operation mode select bits (MOD2 to MOD0) is being inputted to the TI pin. The timer start with the software trigger becomes effective as well as the start with an external trigger, too. Figure 18.7-5 shows the gate input operation in reload mode. 346 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 18 16-BIT RELOAD TIMER 18.7 Explanation of 16-bit Reload Timer Operations and Setup Procedure Example Figure 18.7-5 Count Operation in Reload Mode (External Gate Input Operation) MB95100B/AM Series Count clock Counter Reload data -1 -1 -1 0000 -1 -1 Reload data Data load signal UF bit CNTE bit TRG bit TI pin TO pin ■ Operation of Internal Clock Mode (One-shot Mode) When the count enable bit (CNTE) is set to "1" and the software trigger bit (TRG) is set to "1" or the valid edge (rising, falling or both edges selectable) specified by the operation mode select bits (MOD2 to MOD0) is inputted to the TI pin, the value set in the 16-bit reload register is reloaded to the 16-bit down-counter and down-counting starts. When the count enable bit (CNTE) and software trigger bit (TRG) are set to "1" at the same time and then counting is enabled, the count is started simultaneously. If the reload select bit (RELD) is "0", the 16-bit counter halts at "FFFFH" when the 16-bit counter underflows ("0000H" → "FFFFH"). In this case, the underflow interrupt request flag bit (UF) is set to "1" and if the underflow interrupt request enable bit (INTE) is "1", an interrupt request is outputted. A square waveform can be outputted from the TO pin to indicate that the count is in progress. ● Software trigger operation The count starts when the count enable bit (CNTE) is "1" and the software trigger bit (TRG) is also set to "1". Figure 18.7-6 shows the software trigger operation in one-shot mode. Figure 18.7-6 Count Operation in One-shot Mode (Software Trigger Operation) Count clock -1 Counter Data load signal 0000 FFFF Reload data -1 0000 FFFF Reload data UF bit CNTE bit TRG bit TO pin Wait for start trigger input ● External trigger input The count starts when the count enable bit (CNTE) is "1" and the valid edge of trigger input (rising, falling, or both edges) specified by the operation mode select bits (MOD2 to MOD0) is inputted to the TI pin. Figure 18.7-7 shows the external trigger input operation in one-shot mode. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 347 CHAPTER 18 16-BIT RELOAD TIMER 18.7 Explanation of 16-bit Reload Timer Operations and Setup Procedure Example Figure 18.7-7 Count Operation in One-shot Mode (External Trigger Input Operation) MB95100B/AM Series Count clock -1 Counter Data load signal -1 0000 FFFF Reload data 0000 FFFF Reload data UF bit CNTE bit TI pin TO pin Wait for start trigger input ● Gate input operation The count starts when the count enable bit (CNTE) is "1" and the software trigger bit (TRG) is also set to "1". The timer continues counting as long as the trigger input enable level ("L" or "H" selectable) specified by the operation mode select bits (MOD2 to MOD0) is inputted to the TI pin. Figure 18.7-8 shows the external gate input operation in one-shot mode. Figure 18.7-8 Count Operation in One-shot Mode (External Gate Input Operation) Count clock Counter Data load signal Reload data -1 -1 0000 FFFF -1 Reload data UF bit CNTE bit TRG bit TI pin TO pin Wait for start trigger input 348 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 18.7.2 CHAPTER 18 16-BIT RELOAD TIMER 18.7 Explanation of 16-bit Reload Timer Operations and Setup Procedure Example Event Count Mode In this mode, the 16-bit down-counter counts down each time the valid edge is detected on the pulses inputted to the TI pin, and an interrupt request is outputted to the interrupt controller when an underflow occurs ("0000H" → "FFFFH"). In addition, a toggle waveform or square waveform can be outputted from the TO pin. ■ Event Count Mode Setup The timer requires the register settings shown in Figure 18.7-9 to operate as an event counter. Figure 18.7-9 Event Count Mode Setup TMCSRH0 bit7 − TMCSRL0 bit6 − bit5 CSL2 1 bit4 CSL1 1 bit3 CSL0 1 bit2 bit1 bit0 MOD2 MOD1 MOD0 bit7 − bit6 bit5 OUTE OUTL bit4 RELD bit3 INTE bit1 CNTE 1 bit0 TRG TMRLRH0 bit7 D15 bit6 bit5 bit4 bit3 bit2 bit1 D14 D13 D12 D11 D10 D9 Set initial value of counter (reload value) (upper) bit0 D8 TMRLRL0 bit7 D7 bit6 bit5 bit4 bit3 bit2 bit1 D6 D5 D4 D3 D2 D1 Set initial value of counter (reload value) (lower) bit0 D0 bit2 UF : Used bit 1 : Set to "1" ■ Event Count Mode The value set in the 16-bit reload register (TMRLRH0/TMRLRL0) is reloaded to the 16-bit counter when the count enable bit (CNTE) is set to "1" and the software trigger bit (TRG) is set to "1". The counter counts each time the valid edge (rising, falling, or both edges selectable) is detected on the pulses inputted to the TI pin (external count clock). ● Operation of reload mode If the reload select bit (RELD) is "1", the value of the 16-bit reload register (TMRLRH0/ TMRLR0) is reloaded to the 16-bit counter and the count continues when the 16-bit counter underflows ("0000H" → "FFFFH"). The underflow interrupt request flag bit (UF) in the lower timer control status register (TMCSRL0) is set to "1" when an underflow occurs ("0000H"→"FFFFH") in the 16-bit counter. If the underflow interrupt enable bit (INTE) is set to "1", the interrupt request will be outputted. The TO pin can output a toggle waveform that is inverted every time an underflow occurs. Figure 18.7-10 shows the count operation in reload mode. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 349 CHAPTER 18 16-BIT RELOAD TIMER 18.7 Explanation of 16-bit Reload Timer Operations and Setup Procedure Example Figure 18.7-10 Count Operation in Reload Mode (Event Count Mode) MB95100B/AM Series TI pin -1 Counter Data load signal Reload data -1 0000 0000 Reload data -1 -1 0000 Reload data Reload data UF bit CNTE bit TRG bit TO pin ● Operation of one-shot mode If the reload select bit (RELD) is "0", the 16-bit counter halts at "FFFFH" when the 16-bit counter underflows ("0000H" → "FFFFH"). An interrupt request is outputted when the underflow request flag bit (UF) in the lower timer control status register (TMCSRL0) is set to "1" with the underflow interrupt enable bit (INTE) set to "1". A square waveform will be outputted from the TO pin to indicate that the count is in progress. Figure 18.7-11 shows the count operation in one-shot mode. Figure 18.7-11 Counter Operation in One-shot Mode (Event Count Mode) TI pin Counter Data load signal -1 0000 FFFF Reload data -1 0000 FFFF Reload data UF bit CNTE bit TRG bit TO pin Wait for start trigger input 350 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 18.8 CHAPTER 18 16-BIT RELOAD TIMER 18.8 Notes on Using 16-bit Reload Timer Notes on Using 16-bit Reload Timer This section explains the precautions that must be taken when using the 16-bit reload timer. ■ Notes on Using 16-bit Reload Timer ● Notes on setting the program • A value can be read from the 16-bit timer register even during counting. As for read access, use a word transfer instruction or read the upper byte first and the lower byte second. • A value can be written to the 16-bit reload register even during counting. As for write access, use a word transfer instruction or write the upper byte first and the lower byte second. ● Precaution for interrupts • The unit cannot recover from interrupt processing when the underflow interrupt request enable bit (INTE) is set to "1" and "1" is set to the underflow interrupt request flag bit (UF) of the lower timer control status register (TMCSRL). Always set the underflow interrupt request flag bit (UF) to "0". CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 351 CHAPTER 18 16-BIT RELOAD TIMER 18.9 Sample Programs for 16-bit Reload Timer 18.9 MB95100B/AM Series Sample Programs for 16-bit Reload Timer We provide sample programs that can be used to operate the 16-bit reload timer. ■ Sample Programs for 16-bit Reload Timer For information about the sample programs for the 16-bit reload timer, refer to "■ Sample Programs" in Preface. ■ Setting Methods not Covered by Sample Programs ● How to select the count clock The count clock select bits (TMCSR0:CSL[2:0]) are used. Control item Count clock select bits (CSL[2:0]) When selecting internal clock Set the bits to any value other than "111" When selecting external event clock Set the bits to "111" ● How to select the operating conditions of internal clock mode The operation mode select bits (TMCSR0:MOD[2:0]) are used to set the conditions. Operating condition Operation mode select bits (MOD[2:0]) Trigger input from TI0 pin (rising edge) Set the bits to "001" Trigger input from TI0 pin (falling edge) Set the bits to "010" Trigger input from TI0 pin (both edges) Set the bits to "011" Gate input from TI0 pin ("L"level) Set the bits to "1x0" Gate input from TI0 pin ("H"level) Set the bits to "1x1" ● How to select the operating conditions of event count mode The operation mode select bits (TMCSR0:MOD[1:0]) are used to set the conditions. Operating condition Operation mode select bits (MOD[1:0]) Rising edge Set the bits to "01" Falling edge Set the bits to "10". Both edges Set the bits to "11". The setting of MOD2 has no effect on operation, whether it is "0" or "1". 352 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 18 16-BIT RELOAD TIMER 18.9 Sample Programs for 16-bit Reload Timer MB95100B/AM Series ● How to enable/stop the count operation of the reload timer The count enable bit of the timer (TMCSR0:CNTE) is used. Control item Operation enable bit (CNTE) When stopping reload timer Set the bit to "0" When enabling count operation of reload timer Set the bit to "1" The count cannot be resumed from the stop state. Enable the operation before or at the same time as the activation. ● How to set reload the timer mode (reload/one-shot) The mode select bit (TMCSR0:RELD) is used. Operation mode Mode select bit (RELD) When selecting one-shot mode Set the bit to "0" When selecting reload mode Set the bit to "1" ● How to invert the output level The output level is specified as shown in the following table. The pin output level select bit (TMCSR0:OUTL) is used to set the output level. Pin output level selection bit (OUTL) Output level "L" toggle output when count starts in reload mode Set the bit to "0" "H" toggle output when count starts in reload mode Set the bit to "1" Outputting "H" square waveform during counting in one-shot mode Set the bit to "0" Outputting "L" square waveform during counting in one-shot mode Set the bit to "1" ● How to switch the TI pin to an external event input pin or to an external trigger input pin "0" is set to the data direction specification bit (DDRx:Pxx). Pin Control bit TI0 pin Data direction register DDR7 Data direction specification bit (P71) ● How to enable/disable the TO pin The timer output enable bit (TMCSR0:OUTE) is used. CM26-10112-4E Control item Timer output enable bit (TMCSR0:OUTE) When enabling TO pin Set to "1" When disabling TO pin Set to "0" FUJITSU MICROELECTRONICS LIMITED 353 CHAPTER 18 16-BIT RELOAD TIMER 18.9 Sample Programs for 16-bit Reload Timer MB95100B/AM Series ● How to generate a start trigger • How to generate the software trigger The software trigger bit (TMCSR0:TRG) is used. Writing "1" to the software trigger bit (TRG) generates a trigger. When enabling and starting operation at the same time, set the count enable bit (TMCSR0:CNTE) and the software trigger bit (TMCSR0:TRG) at the same time. • How to generate an external trigger An external trigger is generated when the edge specified by the operation mode select bits is inputted to the trigger pin corresponding to each reload timer. Timer Trigger pin Reload timer TI0 ● Interrupt-related registers The interrupt level is set by the interrupt level registers shown in the following table. Reload timer ch.0 Interrupt level setting bit Interrupt vector Interrupt level register (ILR2) Address: 0007BH #11 Address: 0FFE4H ● How to enable interrupts Interrupt request enable bit, Interrupt request flag The interrupt request enable bit (TMCSR0:INTE) is used to enable interrupts. Operation Interrupt request enable bit (INTE) When disabling interrupt requests Set the bit to "0" When enabling interrupt requests Set the bit to "1" The interrupt request bit (TMCSR0:UF) is used to clear interrupt requests. 354 Operation Interrupt request bit (UF) When disabling interrupt requests Set the bit to "0" FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 19 EXTERNAL INTERRUPT CIRCUIT This chapter describes the functions and operations of the external interrupt circuit. 19.1 Overview of External Interrupt Circuit 19.2 Configuration of External Interrupt Circuit 19.3 Channels of External Interrupt Circuit 19.4 Pins of External Interrupt Circuit 19.5 Registers of External Interrupt Circuit 19.6 Interrupts of External Interrupt Circuit 19.7 Explanation of External Interrupt Circuit Operations and Setup Procedure Example 19.8 Notes on Using External Interrupt Circuit 19.9 Sample Programs for External Interrupt Circuit CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 355 CHAPTER 19 EXTERNAL INTERRUPT CIRCUIT 19.1 Overview of External Interrupt Circuit 19.1 MB95100B/AM Series Overview of External Interrupt Circuit The external interrupt circuit detects edges on the signal that is inputted to the external interrupt pin and generates interrupt requests to the CPU. ■ Functions of External Interrupt Circuit The external interrupt circuit has the functions to detect any edge of a signal that is inputted to an external interrupt pin and generate an interrupt request to the CPU. This interrupt allows the unit to recover from a standby mode and return to its normal operation. 356 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 19 EXTERNAL INTERRUPT CIRCUIT 19.2 Configuration of External Interrupt Circuit MB95100B/AM Series 19.2 Configuration of External Interrupt Circuit The external interrupt circuit consists of the following blocks: • Edge detection circuit • External interrupt control register ■ Block Diagram of External Interrupt Circuit Figure 19.2-1 shows the block diagram of the external interrupt circuit. Figure 19.2-1 Block Diagram of External Interrupt Circuit (Unit0) Interrupt pin select circuit * Edge detection circuit 1 Edge detection circuit 0 External interrupt control register (EIC) 11 EIR1 SL11 SL10 01 11 EIE1 EIR0 SL01 SL00 EIE0 Internal data bus 01 Pin INT01 10 Selector 10 Selector Pin INT00 Interrupt request 0 Interrupt request 1 * : Only for INT00 pin of unit 0 See "CHAPTER 20 INTERRUPT PIN SELECTION CIRCUIT". ● Edge detection circuit When the polarity of the edge detected on a signal inputted to an external interrupt circuit pin (INT) matches the polarity of the edge selected in the interrupt control register (EIC), the corresponding external interrupt request flag bit (EIR) is set to "1". ● External interrupt control register (EIC) This register is used to select the valid edge, enable or disable interrupt requests, check for interrupt requests, etc. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 357 CHAPTER 19 EXTERNAL INTERRUPT CIRCUIT 19.3 Channels of External Interrupt Circuit 19.3 MB95100B/AM Series Channels of External Interrupt Circuit This section describes the channels of the external interrupt circuit. ■ Channels of External Interrupt Circuit In MB95100B/AM series, each unit has six channels of the external interrupt circuit. Table 19.3-1 and Table 19.3-2 show the correspondence among the channel, pin and register. Table 19.3-1 Pins of External Interrupt Circuit Unit 0 1 2 3 4 5 Pin name Pin function INT00 External interrupt input ch.0 INT01 External interrupt input ch.1 INT02 External interrupt input ch.2 INT03 External interrupt input ch.3 INT04 External interrupt input ch.4 INT05 External interrupt input ch.5 INT06 External interrupt input ch.6 INT07 External interrupt input ch.7 INT10 External interrupt input ch.8 INT11 External interrupt input ch.9 INT12 External interrupt input ch.10 INT13 External interrupt input ch.11 Table 19.3-2 Registers of External Interrupt Circuit Unit Register name 0 EIC00 1 EIC10 2 EIC20 3 EIC30 4 EIC01 5 EIC11 Corresponding register (Name in this manual) EIC: External Interrupt Control register The following sections only describe the unit 0 side of the external interrupt circuit. The other units are the same as unit 0. 358 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 19.4 CHAPTER 19 EXTERNAL INTERRUPT CIRCUIT 19.4 Pins of External Interrupt Circuit Pins of External Interrupt Circuit This section shows the pins related to the external interrupt circuit and the block diagram of such pins. ■ Pins Related to External Interrupt Circuit The pins related to the external interrupt circuit are the INT00 to INT07, INT10 to INT13 pins. ● INT00 to INT07, INT10 to INT13 pins These pins serve both as external interrupt inputs and as general-purpose I/O ports. INT00 to INT07, INT10 to INT13: When the corresponding pin of the INT00 to INT07, INT10 to INT13 pins is set as an input port by the port direction register (DDR) and the corresponding external interrupt input is enabled by the external interrupt control register (EIC), that pin functions as an external interrupt input pin (INT00 = INT13). The state of pins can be read from the port data register (PDR) whenever input port is set as a pin function. However, the value of PDR is read when read-modify-write instruction is used. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 359 CHAPTER 19 EXTERNAL INTERRUPT CIRCUIT 19.4 Pins of External Interrupt Circuit MB95100B/AM Series ■ Block Diagram of Pins Related to External Interrupt Circuit Figure 19.4-1 Block Diagram of Pins (INT00 to INT07) Related to External Interrupt Circuit Peripheral function input Peripheral function input enable Hysteresis 0 0 1 1 PDR read Automotive PDR Pin PDR write Internal bus In bit operation instruction DDR read DDR DDR write Stop, Watch (SPL=1) ILSR3 read ILSR3 ILSR3 write Figure 19.4-2 Block Diagram of Pins (INT10 to INT13) Related to External Interrupt Circuit Peripheral function input Peripheral function input enable Hysteresis 0 0 Pull-up 1 1 PDR read Automotive P-ch Pin PDR PDR write Internal bus In bit operation instruction DDR read DDR DDR write Stop, Watch (SPL=1) PUL read PUL PUL write ILSR2 read ILSR2 ILSR2 write 360 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 19 EXTERNAL INTERRUPT CIRCUIT 19.5 Registers of External Interrupt Circuit MB95100B/AM Series 19.5 Registers of External Interrupt Circuit This section describes the registers of the external interrupt circuit. ■ List of Registers of External Interrupt Circuit Figure 19.5-1 shows the registers of the external interrupt circuit. Figure 19.5-1 Registers of External Interrupt Circuit External interrupt control register (EIC) Address EIC00 0048H Address EIC10 0049H Address EIC20 004AH Address EIC30 004BH Address EIC01 004CH Address EIC11 004DH R/W: R(RM1), W: CM26-10112-4E bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value 00000000B EIR1 SL11 SL10 EIE1 EIR0 SL01 SL00 EIE0 R(RM1),W R/W R/W R/W R(RM1),W R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value 00000000B EIR1 SL11 SL10 EIE1 EIR0 SL01 SL00 EIE0 R(RM1),W R/W R/W R/W R(RM1),W R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value 00000000B EIR1 SL11 SL10 EIE1 EIR0 SL01 SL00 EIE0 R(RM1),W R/W R/W R/W R(RM1),W R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value 00000000B EIR1 SL11 SL10 EIE1 EIR0 SL01 SL00 EIE0 R(RM1),W R/W R/W R/W R(RM1),W R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value 00000000B EIR1 SL11 SL10 EIE1 EIR0 SL01 SL00 EIE0 R(RM1),W R/W R/W R/W R(RM1),W R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value EIR1 SL11 SL10 EIE1 EIR0 SL01 SL00 EIE0 00000000B R(RM1),W R/W R/W R/W R(RM1),W R/W R/W R/W Readable/Writable (Read value is the same as write value) Readable/Writable (Read value is different from write value, "1" is read by read-modify-write instruction) FUJITSU MICROELECTRONICS LIMITED 361 CHAPTER 19 EXTERNAL INTERRUPT CIRCUIT 19.5 Registers of External Interrupt Circuit MB95100B/AM Series External Interrupt Control Register (EIC00) 19.5.1 The external interrupt control register (EIC00) is used to select the edge polarity for the external interrupt input and control interrupts. ■ External Interrupt Control Register (EIC00) Figure 19.5-2 External Interrupt Control Register (EIC00) Address EIC00 EIC10 EIC20 EIC30 EIC01 EIC11 bit7 bit6 0048H 0049H EIR1 SL11 004AH R(RM1),W R/W 004BH 004CH 004DH bit5 bit4 bit3 bit2 bit1 bit0 Initial value SL10 EIE1 EIR0 SL01 SL00 EIE0 00000000B R/W R/W R(RM1),W R/W R/W R/W EIE0 0 1 SL01 0 0 1 1 Interrupt request enable bit 0 Disables output of interrupt request Enables output of interrupt request SL00 0 1 0 1 External interrupt request flag bit 0 Read Write EIR0 0 1 Specified edge not inputted Specified edge inputted EIE1 0 1 SL11 0 0 1 1 EIR1 0 1 Edge polarity select bits 0 No edge detection Rising edge Falling edge Both edges Clears this bit No change, no effect on others Interrupt request enable bit 1 Disables output of interrupt request Enables output of interrupt request SL10 0 1 0 1 Edge polarity select bits 1 No edge detection Rising edge Falling edge Both edges External interrupt request flag bit 1 Read Write Specified edge not inputted Specified edge inputted Clears this bit No change, no effect on others R/W : Readable/Writable (Read value is the same as write value) R(RM1),W : Readable/Writable (Read value is different from write value, "1" is read by read-modify-write instruction) : Initial value 362 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 19 EXTERNAL INTERRUPT CIRCUIT 19.5 Registers of External Interrupt Circuit Table 19.5-1 Functional Description of Each Bit of External Interrupt Control Register (EIC00) Bit name Function bit7 EIR1: External interrupt request flag bit 1 This flag is set to "1" when the edge selected by the edge polarity select bits (SL11, SL10) is inputted to the external interrupt pin INT01. • When this bit and the interrupt request enable bit 1 (EIE1) are set to "1", an interrupt request is outputted. • Writing "0" clears the bit. Writing "1" has no effect. • "1" is read in read-modify-write instructions. bit6, bit5 SL11, SL10: Edge polarity select bits 1 These bits select the polarity of the interrupt source edge of the pulse inputted to the external interrupt pin INT01. • Edge detection is not performed and no interrupt is generated when these bits are set to "00B". • Rising edges are detected when these bits are "01B", falling edges when "10B", and both edges when "11B". EIE1: Interrupt request enable bit 1 This bit is used to enable and disable output of interrupt requests to the interrupt controller. When this bit and the external interrupt request flag bit 1 (EIR1) are "1", an interrupt request is outputted. • When using an external interrupt pin, write "0" to the corresponding bit in the port direction register (DDR) to set the pin as an input. • The status of the external interrupt pin can be read directly from the port data register, regardless of the status of the interrupt request enable bit. bit3 EIR0: External interrupt request flag bit 0 This flag is set to "1" when the edge selected by the edge polarity select bits (SL01, SL00) is inputted to the external interrupt pin INT00. • When this bit and the interrupt request enable bit 0 (EIE0) are set to "1", an interrupt request is outputted. • Writing "0" clears the bit. Writing "1" has no effect. • "1" is read in read-modify-write instructions. bit2, bit1 SL01, SL00: Edge polarity select bits 0 These bits are used to select the polarity of the interrupt source edge of the pulse inputted to the external interrupt pin INT00. • Edge detection is not performed and no interrupt request is generated when these bits are "00B". • Rising edges are detected when the bits are "01B", falling edges when "10B", and both edges when "11B". EIE0: Interrupt request enable bit 0 This bit enables or disables the output of interrupt requests to the interrupt controller. An interrupt request is outputted when this bit and the external interrupt request flag bit 0 (EIR0) are "1". • When using an external interrupt pin, write "0" to the corresponding bit in the port direction register (DDR) to set the pin as an input. • The status of the external interrupt pin can be read directly from the port data register (PFR), regardless of the status of the interrupt request enable bit. bit4 bit0 CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 363 CHAPTER 19 EXTERNAL INTERRUPT CIRCUIT 19.6 Interrupts of External Interrupt Circuit 19.6 MB95100B/AM Series Interrupts of External Interrupt Circuit The interrupt sources for the external interrupt circuit include detection of the specified edge of the signal inputted to an external interrupt pin. ■ Interrupt During Operation of External Interrupt Circuit When the specified edge of external interrupt input is detected, the corresponding external interrupt request flag bit (EIC: EIR0, EIR1) is set to "1". In this case, an interrupt request will be generated to the interrupt controller, if the corresponding interrupt request enable bit is enabled (EIC: EIE0, EIE1=1). Write "0" to the corresponding external interrupt request flag big to clear the interrupt request in the interrupt process routine. ■ Registers and Vector Table Related to Interrupts of External Interrupt Circuit Table 19.6-1 Registers and Vector Table Related to Interrupts of External Interrupt Circuit Interrupt source ch.0 ch.4 ch.1 ch.5 ch.2 ch.6 ch.3 ch.7 Interrupt request No. Interrupt level setting register Vector table address Register Setting bit Upper Lower IRQ0 ILR0 L00 FFFAH FFFBH IRQ1 ILR0 L01 FFF8H FFF9H IRQ2 ILR0 L02 FFF6H FFF7H IRQ3 ILR0 L03 FFF4H FFF5H IRQ21 ILR5 L21 FFD0H FFD1H ch.8 ch.9 ch.10 ch.11 ch: Channel Appendix B "Table of Interrupt Sources" describes the interrupt request numbers and vector tables for all peripheral functions. 364 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 19.7 CHAPTER 19 EXTERNAL INTERRUPT CIRCUIT 19.7 Explanation of External Interrupt Circuit Operations and Setup Procedure Example Explanation of External Interrupt Circuit Operations and Setup Procedure Example This section describes the operation of the external interrupt circuit. ■ Operation of External Interrupt Circuit When the polarity of an edge of a signal inputted from one of the external interrupt pins (INT00, 1INT01) matches the polarity of the edge selected by the external interrupt control register (EIC: SL00, SL01, SL10, SL11), the corresponding external interrupt request flag bit (EIC: EIR0, EIR1) is set to "1" and the interrupt request is generated. Always set the interrupt enable bit to "0" when not using an external interrupt to recover from a standby mode. When setting the edge polarity select bit (SL), set the interrupt request enable bit (EIE) to "0" to prevent the interrupt request from being generated accidentally. Also clear the interrupt request flag bit (EIR) to "0" after changing the edge polarity. Figure 19.7-1 shows the operation for setting the INT00 pin as an external interrupt input. Figure 19.7-1 Operation of External Interrupt Input waveform to INT00 pin Cleared by program Interrupt request flag bit cleared by program EIR0 bit EIE0 bit SL01 bit SL00 bit IRQ No edge detection Rising edge Falling edge Both edges ■ Setup Procedure Examples The external interrupt circuit is set up in the following procedure: ● Initial setting 1) Set the interrupt level. (ILR0, ILR5) 2) Select the edge polarity. (EIC:SL01, SL00) 3) Enable interrupt requests. (EIC:EIE0 = 1) CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 365 CHAPTER 19 EXTERNAL INTERRUPT CIRCUIT 19.7 Explanation of External Interrupt Circuit Operations and Setup Procedure Example ● Interrupt processing MB95100B/AM Series 1) Clear the interrupt request flag. (EIC:EIR0 = 0) 2) Process any interrupt. Note: The external interrupt input is also used as an I/O port. Therefore, when it is used as the external interrupt input, the corresponding bit in the port direction register (DDR) must be set to "0" (input). 366 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 19.8 CHAPTER 19 EXTERNAL INTERRUPT CIRCUIT 19.8 Notes on Using External Interrupt Circuit Notes on Using External Interrupt Circuit This section describes the precautions that must be followed when using the external interrupt circuit. ■ Notes on Using External Interrupt Circuit • Set the interrupt request enable bit (EIE) to "0" (disabling interrupt requests) when setting the edge polarity select bit (SL). Also clear the external interrupt request flag bit (EIR) to "0" after setting the edge polarity. • The operation cannot recover from the interrupt processing routine if the external interrupt request flag bit is "1" and the interrupt request enable bit is enabled. Always clear the external interrupt request flag bit in the interrupt processing routine. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 367 CHAPTER 19 EXTERNAL INTERRUPT CIRCUIT 19.9 Sample Programs for External Interrupt Circuit 19.9 MB95100B/AM Series Sample Programs for External Interrupt Circuit We provide sample programs that can be used to operate the external interrupt circuit. ■ Sample Programs for External Interrupt Circuit For information about the sample programs for the external interrupt circuit, refer to "■ Sample Programs" in Preface. ■ Setup Methods without Sample Program ● Detection levels and setup methods Four detection levels are available: no edge detection, rising edge, falling edge, both edges The detection level bits (EIC: SL01, SL00 or EIC:SL11, SL10) are used. Operation mode Detection level bits (SL01,SL00) No edge detection Set the bits to "00B" Detecting rising edges Set the bits to "01B" Detecting falling edges Set the bits to "10B" Detecting both edges Set the bits to "11B" ● How to use the external interrupt pin Set the corresponding data direction register (DDR0, DDRE) to "0". 368 Operation Direction bit (P00 to P07) Setting Using INT00 pin for external interrupt DDR0:P00 Set the register to "0" Using INT01 pin for external interrupt DDR0:P01 Set the register to "0" Using INT02 pin for external interrupt DDR0:P02 Set the register to "0" Using INT03 pin for external interrupt DDR0:P03 Set the register to "0" Using INT04 pin for external interrupt DDR0:P04 Set the register to "0" Using INT05 pin for external interrupt DDR0:P05 Set the register to "0" Using INT06 pin for external interrupt DDR0:P06 Set the register to "0" Using INT07 pin for external interrupt DDR0:P07 Set the register to "0" Using INT10 pin for external interrupt DDRE:PE4 Set the register to "0" Using INT11 pin for external interrupt DDRE:PE5 Set the register to "0" Using INT12 pin for external interrupt DDRE:PE6 Set the register to "0" Using INT13 pin for external interrupt DDRE:PE7 Set the register to "0" FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 19 EXTERNAL INTERRUPT CIRCUIT 19.9 Sample Programs for External Interrupt Circuit ● Interrupt-related registers The interrupt level is set by the interrupt level setting registers shown in the following table. CM26-10112-4E Channel Interrupt level setting register Interrupt vector ch.0 Interrupt level register (ILR0) Address: 00079H #0 Address: 0FFFAH ch.1 Interrupt level register (ILR0) Address: 00079H #1 Address: 0FFF8H ch.2 Interrupt level register (ILR0) Address: 00079H #2 Address: 0FFF6H ch.3 Interrupt level register (ILR0) Address: 00079H #3 Address: 0FFF4H ch.4 Interrupt level register (ILR0) Address: 00079H #0 Address: 0FFFAH ch.5 Interrupt level register (ILR0) Address: 00079H #1 Address: 0FFF8H ch.6 Interrupt level register (ILR0) Address: 00079H #2 Address: 0FFF6H ch.7 Interrupt level register (ILR0) Address: 00079H #3 Address: 0FFF4H ch.8 Interrupt level register (ILR5) Address: 0007EH #21 Address: 0FFD0H ch.9 Interrupt level register (ILR5) Address: 0007EH #21 Address: 0FFD0H ch.10 Interrupt level register (ILR5) Address: 0007EH #21 Address: 0FFD0H ch.11 Interrupt level register (ILR5) Address: 0007EH #21 Address: 0FFD0H FUJITSU MICROELECTRONICS LIMITED 369 CHAPTER 19 EXTERNAL INTERRUPT CIRCUIT 19.9 Sample Programs for External Interrupt Circuit MB95100B/AM Series ● How to enable/disable/clear interrupts Interrupt request enable flag, Interrupt request flag Interrupts are enabled by the interrupt enable bit (EIC00:EIE0 or EIC00:EIE1). Operation Interrupt enable bit (EIE0 or EIE1) When disabling interrupt request Set the bit to "0" When enabling interrupt request Set the bit to "1" Interrupt requests are cleared by the interrupt request bit (EIC00:EIR0 or EIC00:EIR1). 370 Operation Interrupt request bit (EIR0 or EIR1) When clearing interrupt request Write "0" FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 20 INTERRUPT PIN SELECTION CIRCUIT This chapter describes the functions and operations of the interrupt pin selection circuit. 20.1 Overview of Interrupt Pin Selection Circuit 20.2 Configuration of Interrupt Pin Selection Circuit 20.3 Pins of Interrupt Pin Selection Circuit 20.4 Registers of Interrupt Pin Selection Circuit 20.5 Operating Description of Interrupt Pin Selection Circuit 20.6 Notes on Using Interrupt Pin Selection Circuit Code: CM26-00110-2E CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 371 CHAPTER 20 INTERRUPT PIN SELECTION CIRCUIT 20.1 Overview of Interrupt Pin Selection Circuit 20.1 MB95100B/AM Series Overview of Interrupt Pin Selection Circuit The interrupt pin selection circuit selects pins to be used as interrupt input pins from among various peripheral input pins. ■ Interrupt Pin Selection Circuit The interrupt pin selection circuit is used to select interrupt input pins from amongst various peripheral inputs (TRG0/ADTG, UCK0, UI0, EC0, SCK, SIN, INT00). The input signal from each peripheral function pin is selected by this circuit and the signal is used as the INT00 (channel 0) input of external interrupt. This enables the input signals to the peripheral function pins to also serve as external interrupt pins. 372 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 20 INTERRUPT PIN SELECTION CIRCUIT 20.2 Configuration of Interrupt Pin Selection Circuit MB95100B/AM Series 20.2 Configuration of Interrupt Pin Selection Circuit Figure 20.2-1 shows the block diagram of the interrupt pin selection circuit. ■ Block Diagram of Interrupt Pin Selection Circuit Figure 20.2-1 Block Diagram of Interrupt Pin Selection Circuit To each peripheral function External interrupt circui INT01 Pin INT01 Interrupt pin selection circuit TRG0/ADTG Pin UCK0 Pin UI0 Pin INT00 (Unit 0) Internal date bus Selection circuit INT00 Pin EC0 Pin SCK Pin SIN Pin WICR register ● WICR register (interrupt pin selection circuit control register) This register is used to determine which of the available peripheral input pins should be outputted to the interrupt circuit and which interrupt pins they should serve as. ● Selection circuit This circuit outputs the input from the pin selected by the WICR register to the INT00 input of the external interrupt circuit (ch.0). CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 373 CHAPTER 20 INTERRUPT PIN SELECTION CIRCUIT 20.3 Pins of Interrupt Pin Selection Circuit 20.3 MB95100B/AM Series Pins of Interrupt Pin Selection Circuit This section describes the pins of the interrupt pin selection circuit. ■ Pins Related to Interrupt Pin Selection Circuit The peripheral function pins related to the interrupt pin selection circuit are the TRG0/ADTG, UCK0, UI0, EC0, SCK, SIN, and INT00 pins. These inputs (except INT00) are also connected to their respective peripheral units in parallel and can be used for both functions simultaneously. Table 20.3-1 lists the correlation between the peripheral functions and peripheral input pins. Table 20.3-1 Correlation Between Peripheral Functions and Peripheral Input Pins Peripheral input pin name 374 Peripheral functions name INT00 Interrupt pin selection circuit TRG0/ADTG Interrupt pin selection circuit 16-bit PPG timer (trigger input) 8/10-bit A/D converter (trigger input) UCK0 Interrupt pin selection circuit UART/SIO (clock input/output) UI0 Interrupt pin selection circuit UART/SIO (data input) EC0 Interrupt pin selection circuit 8/16-bit compound timer (event input) SCK Interrupt pin selection circuit LIN-UART (clock input/output) SIN Interrupt pin selection circuit LIN-UART (data input) FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 20.4 CHAPTER 20 INTERRUPT PIN SELECTION CIRCUIT 20.4 Registers of Interrupt Pin Selection Circuit Registers of Interrupt Pin Selection Circuit Figure 20.4-1 shows the registers related to the interrupt pin selection circuit. ■ Registers Related to Interrupt Pin Selection Circuit Figure 20.4-1 Registers Related to Interrupt Pin Selection Circuit Interrupt pin selection circuit control register (WICR) Address 0FEFH bit7 − bit6 INT00 R0/WX R/W bit5 SIN R/W bit4 SCK R/W bit3 EC0 R/W bit2 UI0 R/W bit1 UCK0 R/W bit0 TRG0 R/W Initial value 01000000B R/W : Readable/writable (Read value is the same as write value) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 375 CHAPTER 20 INTERRUPT PIN SELECTION CIRCUIT 20.4 Registers of Interrupt Pin Selection Circuit 20.4.1 MB95100B/AM Series Interrupt Pin Selection Circuit Control Register (WICR) This register is used to determine which of the available peripheral input pins should be outputted to the interrupt circuit and which interrupt pins they should serve as. ■ Interrupt Pin Selection Circuit Control Register (WICR) Figure 20.4-2 Interrupt Pin Selection Circuit Control Register (WICR) Interrupt pin selection circuit control register (WICR) Address 0FEFH bit6 bit5 bit4 bit3 bit2 bit1 bit0 bit7 INT00 SI SCK EC0 UI0 UCK0 TRG0 R0/WX R/W R/W R/W R/W R/W R/W R/W TRG0 Initial value 01000000B TRG0 interrupt pin select bit 0 Deselects TRG0 as interrupt input pin 1 Selects TRG0 as interrupt input pin UCK0 UCK0 interrupt pin select bit 0 Deselects UCK0 as interrupt input pin 1 Selects UCK0 as interrupt input pin UI0 UI0 interrupt pin select bit 0 Deselects UI0 as interrupt input pin 1 Selects UI0 as interrupt input pin EC0 ECO interrupt pin select bit 0 Deselects ECO as interrupt input pin 1 Selects ECO as interrupt input pin SCK SCK interrupt pin select bit 0 Deselects SCK as interrupt input pin 1 Selects SCK as interrupt input pin SIN SIN interrupt pin select bit 0 Deselects SIN as interrupt input pin 1 Selects SIN as interrupt input pin INT00 INT00 interrupt pin select bit 0 Deselects INT00 as interrupt input pin 1 Selects INT00 as interrupt input pin R/W : Readable/writable (Read value is the same as write value) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) : Initial value 376 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 20 INTERRUPT PIN SELECTION CIRCUIT 20.4 Registers of Interrupt Pin Selection Circuit Table 20.4-1 Functional Description of Each Bit of Interrupt Pin Selection Circuit Control Register (WICR) (1 / 2) Bit name Function This bit is undefined. • The read value is always "0". • Writing has no effect on the operation. bit7 Undefined bit bit6 This bit is used to determine whether to select the INT00 pin as an interrupt input pin. Setting the bit to "0": Deselects the INT00 pin as an interrupt input pin and the circuit treats the INT00 pin input as being fixed at "0". INT00: Setting the bit to "1": Selects the INT00 pin as an interrupt input pin and the circuit IINT00 interrupt pin passes the INT00 pin input to INT00 (ch.0) of the external select bit interrupt circuit. In this case, the input signal to the INT00 pin can generate an external interrupt if INT00 (ch.0) operation is enabled in the external interrupt circuit. bit5 SIN: SIN interrupt pin select bit This bit is used to determine whether to select the SIN pin as an interrupt input pin. Setting the bit to "0": Deselects the SIN pin as an interrupt input pin and the circuit treats the SIN pin input as being fixed at "0". Setting the bit to "1": Selects the SIN pin as an interrupt input pin and the circuit passes the SIN pin input to INT00 (ch.0) of the external interrupt circuit. In this case, the input signal to the SIN pin can generate an external interrupt if INT00 (ch.0) operation is enabled in the external interrupt circuit. SCK: SCK interrupt pin select bit This bit is used to determine whether to select the SCK pin as an interrupt input pin. Setting the bit to "0": Deselects the SCK pin as an interrupt input pin and the circuit treats the SCK pin input as being fixed at "0". Setting the bit to "1": Selects the SCK pin as an interrupt input pin and the circuit passes the SCK pin input to INT00 (ch.0) of the external interrupt circuit. In this case, the input signal to the SCK pin can generate an external interrupt if INT00 (ch.0) operation is enabled in the external interrupt circuit. EC0: EC0 interrupt pin select bits This bit is used to determine whether to select the EC0 pin as an interrupt input pin. Setting the bit to "0": Deselects the EC0 pin as an interrupt input pin and the circuit treats the EC0 pin input as being fixed at "0". Setting the bit to "1": Selects the EC0 pin as an interrupt input pin and the circuit passes the EC0 pin input to INT000 (ch.0) of the external interrupt circuit. In this case, the input signal to the EC0 pin can generate an external interrupt if INT00 (ch.0) operation is enabled in the external interrupt circuit. UI0: UI0 interrupt pin select bits This bit is used to determine whether to select the UI0 pin as an interrupt input pin. Setting the bit to "0": Deselects theUI0 pin as an interrupt input pin and the circuit treats the UI0 pin input as being fixed at "0". Setting the bit to "1": Selects the UI0 pin as an interrupt input pin and the circuit passes the UI0 pin input to INT00 (ch.0) of the external interrupt circuit. In this case, the input signal to the UI0 pin can generate an external interrupt if INT00 (ch.0) operation is enabled in the external interrupt circuit. UCK0: UCK0 interrupt pin select bit This bit is used to determine whether to select the UCK0 pin as an interrupt input pin. Setting the bit to "0": Deselects theUCK0 pin as an interrupt input pin and the circuit treats the UCK0 pin input as being fixed at "0". Setting the bit to "1": Selects the UCK0 pin as an interrupt input pin and the circuit passes the UCK0 pin input to INT00 (ch.0) of the external interrupt circuit. In this case, the input signal to the UCK0 pin can generate an external interrupt if INT00 (ch.0) operation is enabled in the external interrupt circuit. bit4 bit3 bit2 bit1 CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 377 CHAPTER 20 INTERRUPT PIN SELECTION CIRCUIT 20.4 Registers of Interrupt Pin Selection Circuit MB95100B/AM Series Table 20.4-1 Functional Description of Each Bit of Interrupt Pin Selection Circuit Control Register (WICR) (2 / 2) Bit name bit0 TRG0: TRG0 interrupt pin select bit Function This bit is used to determine whether to select the TRG0 pin as an interrupt input pin. Setting the bit to "0": Deselects the TRG0 pin as an interrupt input pin and the circuit treats the TRG0 pin input as being fixed at "0". Setting the bit to "1": Selects the TRG0 pin as an interrupt input pin and the circuit passes the TRG0 pin input to INT00 (ch.0) of the external interrupt circuit. In this case, the input signal to the SCK pin can generate an external interrupt if INT00 (ch.0) operation is enabled in the external interrupt circuit. When these bits are set to "1" and the operation of INT00 (ch.0) of the external interrupt circuit is enabled in MCU standby mode, the selected pins are enabled to perform input operation. The MCU wakes up from the standby mode when a valid edge pulse is inputted to the pins. For information about the standby modes, refer to "6.8 Operations in Low-power Consumption Modes (Standby Modes)". Note: The input signals to the peripheral pins do not generate an external interrupt even when "1" is written to these bits if the INT00 (ch.0) of the external interrupt circuit is disabled. Do not modify the values of these bits while the INT00 (ch.0) of the external interrupt circuit is enabled. If modified, the external interrupt circuit may detect a valid edge, depending on the pin input level. If more than one interrupt pin are selected in WICR (interrupt pin selection circuit control register) simultaneously and the operation of INT00 (ch.0) of the external interrupt circuit is enabled (the values other than "00B" are set to SL01, SL00 bits in EIC00 register of external interrupt circuit and the interrupt is enabled by writing "1" to the EIE0 bit when selecting the valid edge), the selected pins will remain enabled to perform input so as to accept interrupts even in a standby mode. 378 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 20.5 CHAPTER 20 INTERRUPT PIN SELECTION CIRCUIT 20.5 Operating Description of Interrupt Pin Selection Circuit Operating Description of Interrupt Pin Selection Circuit The interrupt pins are selected by setting WICR (interrupt pin selection circuit control register). ■ Operation of Interrupt Pin Selection Circuit The WICR (interrupt pin selection circuit control register) setting is used to select the input pins to be inputted to INT00 of the external interrupt circuit (ch.0). Shown below is the setup procedure for the interrupt pin selection circuit and external interrupt circuit (ch.0), which must be followed when selecting the TRG0 pin as an interrupt pin. 1) Write "0" to the corresponding bit in the port direction register (DDR) to set the pin as an input. 2) Select the TRG0 pin as an interrupt input pin in WICR (interrupt pin selection circuit control register). (Write "01H" to the WICR register. At this point, after writing "0" in the EIE0 bit of the EIC00 register of the external interrupt circuit, the operation of the external interrupt circuit is disabled). 3) Enable the operation of INT00 of the external interrupt circuit (ch.0). (Set the SL01 and SL00 bits of the EIC00 register to any value other than "00B" in the external interrupt circuit to select the valid edge. Also write "1" to the EIE0 bit to enable interrupts). 4) The subsequent interrupt operation is the same as for the external interrupt circuit. When a reset is released, WICR (interrupt pin selection circuit control register) is initialized to "40H" and the INT00 bit is selected as the only available interrupt pin. Update the value of this register before enabling the operation of the external interrupt circuit, when using any pins other than the INT00 pin as external interrupt pins. Note: If more than one interrupt pin are selected in WICR (interrupt pin selection circuit control register) simultaneously, an input to INT00 (ch.0) of the external interrupt circuit is treated as "H" if any of the selected input signals is "H". (It becomes "OR" of the signals inputted to the selected pins.) CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 379 CHAPTER 20 INTERRUPT PIN SELECTION CIRCUIT 20.6 Notes on Using Interrupt Pin Selection Circuit 20.6 MB95100B/AM Series Notes on Using Interrupt Pin Selection Circuit This section explains the precautions to be taken when using the interrupt pin selection circuit. ■ Notes on Using Interrupt Pin Selection Circuit • If more than one interrupt pin are selected in WICR (interrupt pin selection circuit control register) simultaneously and the operation of INT00 (ch.0) of the external interrupt circuit is enabled (the values other than "00B" are set to SL01, SL00 bits in EIC00 register of external interrupt circuit and the interrupt is enabled by writing "1" to the EIE0 bit when selecting the valid edge), the selected pins will remain enabled to perform input so as to accept interrupts even in a standby mode. • If more than one interrupt pin are selected in WICR (interrupt pin selection circuit control register) simultaneously, an input to INT00 (ch.0) of the external interrupt circuit is treated as "H" level if any of the selected input signals is "H" level (it becomes "OR" of the signals inputted to the selected pins). 380 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 21 UART/SIO This chapter describes the functions and operations of UART/SIO. 21.1 Overview of UART/SIO 21.2 Configuration of UART/SIO 21.3 Channels of UART/SIO 21.4 Pins of UART/SIO 21.5 Registers of UART/SIO 21.6 Interrupts of UART/SIO 21.7 Explanation of UART/SIO Operations and Setup Procedure Example 21.8 Sample Programs for UART/SIO Code: CM26-00120-2E Page: 387 CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 381 CHAPTER 21 UART/SIO 21.1 Overview of UART/SIO 21.1 MB95100B/AM Series Overview of UART/SIO The UART/SIO is a general-purpose serial data communication interface. Serial data transfers of variable-length data can be made with a synchronous or asynchronous clock. The transfer format is NRZ. The transfer rate can be set with the dedicated baud rate generator or external clock (in clock synchronous mode). ■ Functions of UART/SIO The UART/SIO is capable of serial data transmission/reception (serial input/output) to and from another CPU or peripheral device. • Equipped with a full-duplex double buffer that allows 2-way full-duplex communication. • The synchronous or asynchronous transfer mode can be selected. • The optimum baud rate can be selected with the dedicated baud rate generator. • The data length is variable; it can be set to 5 bits to 8 bits when no parity is used or to 6 bits to 9 bits when parity is used. (Refer to Table 21.1-1). • The serial data direction (endian) can be selected. • The data transfer format is NRZ (Non-Return-to-Zero). • Two operation modes (operation modes 0 and 1) are available. Operation mode 0 operates as asynchronous clock mode (UART). Operation mode 1 operates as clock synchronous mode (SIO). Table 21.1-1 Operation Modes of UART/SIO Operation mode 0 1 382 Data length No parity With parity 5 6 6 7 7 8 8 9 5 − 6 − 7 − 8 − Synchronous mode Stop bit length Asynchronous 1 bit or 2 bits Synchronous − FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 21 UART/SIO 21.2 Configuration of UART/SIO MB95100B/AM Series 21.2 Configuration of UART/SIO The UART/SIO consists of the following blocks: • UART/SIO serial mode control register 1 (SMC10) • UART/SIO serial mode control register 2 (SMC20) • UART/SIO serial status and data register (SSR0) • UART/SIO serial input data register (RDR0) • UART/SIO serial output data register (TDR0) ■ Block Diagram of UART/SIO Figure 21.2-1 Block Diagram of UART/SIO PER State from each block Reception state decision circuit OVE FER RDRF RIE Dedicated baud rate generator 1/4 External clock input UCK0 Reception interrupt TDRE Clock selector State from each block Pin Transmission state decision circuit TEIE TCP Transmission interrupt TCIE Serial clock output Serial data input UI0 Reception bit count Shift register for reception Pin Data sample clock input Serial data output UO0 Pin Serial status and data register Parity operation Shift register for transmission Serial input data register Serial output data register Transmission Parity bit operation Internal bus Start bit detection count Port control Set to each block CM26-10112-4E Serial mode control registers 1, 2 FUJITSU MICROELECTRONICS LIMITED 383 CHAPTER 21 UART/SIO 21.2 Configuration of UART/SIO MB95100B/AM Series ● UART/SIO serial mode control register 1 (SMC10) This register controls UART/SIO operation mode. The register is used to set the serial data direction (endian), parity and its polarity, stop bit length, operation mode (synchronous/ asynchronous), data length, and serial clock. ● UART/SIO serial mode control register 2 (SMC20) This register controls UART/SIO operation mode.It is used to enable/disable serial clock output, serial data output, transmission/reception, and interrupts and to clear the reception error flag. ● UART/SIO serial status and data register (SSR0) This register indicates the transmission/reception status and error status of UART/SIO. ● UART/SIO serial input data register (RDR0) This register holds the receive data. The serial input is converted and then stored in this register. ● UART/SIO serial output data register (TDR0) This register sets the transmit data. Data written to this register is serial-converted and then outputted. ■ Input Clock The UART/SIO uses the output clock (internal clock) from the dedicated baud rate generator or the input signal (external clock) from the UCK0 pin as its input clock (serial clock). 384 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 21 UART/SIO 21.3 Channels of UART/SIO MB95100B/AM Series 21.3 Channels of UART/SIO This section describes the channels of UART/SIO. ■ Channels of UART/SIO This series contains one channel of the UART/SIO. Table 21.3-1 and Table 21.3-2show the correspondence of sthe channel, pin, and register. Table 21.3-1 Pins of UART/SIO Channel 0 Pin name Pin function UCK0 Clock input/output UO0 Data output UI0 Data input Table 21.3-2 Registers of UART/SIO Channel 0 CM26-10112-4E Register name Corresponding register (Representation in this manual) SMC10 UART/SIO serial mode control register 1 SMC20 UART/SIO serial mode control register 2 SSR0 UART/SIO serial status and data register TDR0 UART/SIO serial output data register RDR0 UART/SIO serial input data register FUJITSU MICROELECTRONICS LIMITED 385 CHAPTER 21 UART/SIO 21.4 Pins of UART/SIO 21.4 MB95100B/AM Series Pins of UART/SIO This section describes the pins related to the UART/SIO. ■ Pins Related to UART/SIO The pins associated with UART/SIO are the clock input and output pin (UCK0), serial data output pin (UO0) and serial data input pin (UI0). UCK0: Clock input/output pin for UART/SIO. When the clock output is enabled (SMC20:SCKE=1), it serves as a UART/SIO clock output pin (UCK0) regardless of the value of the corresponding port direction register. At this time, do not select the external clock (set SMC10:CKS = 0). When it is to be used as a UART/SIO clock input pin, disable the clock output (SMC20:SCKE = 0) and make sure that it is set as input port by the corresponding port direction register. At this time, be sure to select the external clock (set SMC10:CKS = 0). UO0: Serial data output pin for UART/SIO. When the serial data output is enabled (SMC20:TXOE = 1), it serves as a UART/SIO serial data output pin (UO0) regardless of the value of the corresponding port direction register. UI0: Serial data input pin for UART/SIO. When it is to be used as a UART/SIO serial data input pin, make sure that it is set as input port by the corresponding port direction register. 386 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 21 UART/SIO 21.4 Pins of UART/SIO MB95100B/AM Series ■ Block Diagram of Pins Related to UART/SIO Figure 21.4-1 Block Diagram of Pins Related to UART/SIO (UI0, UO0, UCK0) Hysteresis Only P10 is selectable. Peripheral function input Peripheral function output Peripheral function output enable Peripheral function input enable 0 1 0 Automotive Pull-up 0 1 1 PDR read CMOS P-ch 1 Pin PDR 0 PDR read P10,P12,P13 are selectable. In bit operation instruction DDR read DDR Internal bus DDR read Stop, Watch (SPL=1) PUL read PUL PUL write ILSR read ILSR ILSR write Only P10 is selectable. ILSR3 read ILSR3 ILSR3 write CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 387 CHAPTER 21 UART/SIO 21.5 Registers of UART/SIO 21.5 MB95100B/AM Series Registers of UART/SIO The registers related to UART/SIO are UART/SIO serial mode control register 1 (SMC10), UART/SIO serial mode control register 2 (SMC20), UART/SIO serial status and data register (SSR0), UART/SIO serial output data register (TDR0), and UART/SIO serial input data register (RDR0). ■ Registers Related to UART/SIO Figure 21.5-1 Registers Related to UART/SIO UART/SIO serial mode control register 1 (SMC10) Address 0056H bit7 BDS R/W bit6 PEN R/W bit5 TDP R/W bit4 SBL R/W bit3 CBL1 R/W bit2 CBL0 R/W bit1 CKS R/W bit0 MD R/W Initial value 00000000B bit3 TXE R/W bit2 RIE R/W bit1 TCIE R/W bit0 TEIE R/W Initial value 00100000B bit4 OVE R/WX bit3 FER R/WX bit2 RDRF R/WX bit1 TCPL Initial value 00000001B R(RM1),W bit0 TDRE R/WX bit4 TD4 R/W bit3 TD3 R/W bit2 TD2 R/W bit1 TD1 R/W bit0 TD0 R/W Initial value 00000000B bit4 RD4 R/WX bit3 RD3 R/WX bit2 RD2 R/WX bit1 RD1 R/WX bit0 RD0 R/WX Initial value 00000000B UART/SIO serial mode control register 2 (SMC20) Address bit7 bit6 bit5 0057H SCKE TXOE RERC R/W R/W R1/W bit4 RXE R/W UART/SIO serial status and data register (SSR0) Address 0058H bit7 − bit6 − R0/WX R0/WX bit5 PER R/WX UART/SIO serial output data register (TDR0) Address 0059H bit7 TD7 R/W bit6 TD6 R/W bit5 TD5 R/W UART/SIO serial input data register (RDR0) Address 005AH bit7 RD7 R/WX bit6 RD6 R/WX bit5 RD5 R/WX R/W : Readable/writable (Read value is the same as write value) R(RM1),W : Readable/writable (Read value is different from write value, "1" is read by read-modify-write (RMW) instruction) R/WX : Read only (Readable, writing has no effect on operation) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) R1/W : Readable/writable (Read value is always "1") 388 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 21 UART/SIO 21.5 Registers of UART/SIO MB95100B/AM Series 21.5.1 UART/SIO Serial Mode Control Register 1 (SMC10) UART/SIO serial mode control register 1(SMC10) controls the UART/SIO operation mode. The register is used to set the serial data direction (endian), parity and its polarity, stop bit length, operation mode (synchronous/ asynchronous), data length, and serial clock. ■ UART/SIO Serial Mode Control Register 1 (SMC10) Figure 21.5-2 UART/SIO Serial Mode Control Register 1 (SMC10) Address 0056H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 BDS PEN TDP SBL CBL1 CBL0 CKS MD Initial value 00000000B R/W R/W R/W R/W R/W R/W R/W R/W Operation mode selection bit MD 0 Clock asynchronous mode (UART) 1 Clock synchronous mode (SIO) Clock selection bit CKS 0 Dedicated baud rate generator 1 External clock (cannot be used in clock asynchronous mode) CBL1 CBL0 Character bit length control bits 0 0 5 bits 0 1 6 bits 1 1 0 1 7 bits 8 bits Stop bit length control bit SBL 0 1-bit length 1 2-bit length TDP 0 Even parity 1 Odd parity Parity polarity bit PEN 0 No parity 1 With parity Parity control bit Serial data direction control bit BDS 0 Transmit/receive data from LSB side sequentially 1 Transmit/receive data from MSB side sequentially R/W : Readable/writable (Read value is the same as write value) : Initial value CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 389 CHAPTER 21 UART/SIO 21.5 Registers of UART/SIO MB95100B/AM Series Table 21.5-1 Functional Description of Each Bit of UART/SIO Serial Mode Control Register 1 (SMC10) Bit name Function bit7 BDS: Serial data direction control bit This bit sets the serial data direction (endian). Setting the bit to "0": the bit specifies transmission or reception to be performed sequentially starting from the LSB side in the serial data register. Setting the bit to "1": the bit specifies transmission or reception to be performed sequentially starting from the MSB side in the serial data register. bit6 PEN: Parity control bit This bit enables or disables parity in clock asynchronous mode. Setting the bit to "0": no parity Setting the bit to "1": with parity bit5 TDP: Parity polarity bit This bit controls even/odd parity. Setting the bit to"0": specifies even parity Setting the bit to"1": specifies odd parity SBL: Stop bit length control bit This bit controls the length of the stop bit in clock asynchronous mode. Setting the bit to "0": sets the stop bit length to "1". Setting the bit to "1": sets the stop bit length to "2". Note: The setting of this bit is only valid for transmission operation in asynchronous mode.For receiving operation, reception data register full flag is set to "1" after detecting stop bit (1-bit) and completing the reception regardless of this bit. bit4 These bits select the character bit length as shown in the following table: bit3, bit2 CBL1, CBL0: Character bit length control bit CBL1 CBL0 Character bit length 0 0 5 0 1 6 1 0 7 1 1 8 The above setting is valid in both asynchronous and synchronous modes. bit1 CKS: Clock selection bit This bit selects the external clock or dedicated baud rate generator. Setting the bit to "0": selects the dedicated baud rate generator. Setting the bit to "1": selects the external clock. Note: Setting this bit to "1" forcibly disables the output of the UCK0 pin. The external clock cannot be used in clock asynchronous mode (UART). bit0 MD: Operation mode selection bit This bit selects clock asynchronous mode (UART) or clock synchronous mode (SIO). Setting the bit to "0": selects clock asynchronous mode (UART). Setting the bit to "1": selects clock synchronous mode (SIO). Note: When modifying the UART/SIO serial mode control register 1 (SMC10), do not perform the modification during data transmission or reception. 390 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 21 UART/SIO 21.5 Registers of UART/SIO MB95100B/AM Series 21.5.2 UART/SIO Serial Mode Control Register 2 (SMC20) UART/SIO serial mode control register 2 (SMC20) controls the UART/SIO operation mode. The register is used to enable/disable serial clock output, serial data output, transmission/reception, and interrupts and to clear the reception error flag. ■ UART/SIO Serial Mode Control Register 2 (SMC20) Figure 21.5-3 UART/SIO Serial Mode Control Register 2 (SMC20) Address bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 0057H SCKE TXOE RERC RXE TXE RIE TCIE TEIE Initial value 00100000B R/W R/W R1/W R/W R/W R/W R/W R/W TEIE Transmission data register empty interrupt enable bit 0 Disables transmission data register empty interrupt 1 Enables transmission data register empty interrupt TCIE Transmission completion interrupt enable bit 0 Disables transmission completion interrupt 1 Enables transmission completion interrupt RIE 0 Disables reception interrupt 1 Enables reception interrupt Reception interrupt enable bit 0 Transmission operation enable bit Disables transmission operation 1 Enables transmission operation TXE RXE Reception operation enable bit 0 Disables reception operation 1 Enables reception operation RERC Reception error flag clear bit 0 Clears each error flag 1 No effect on the operation TXOE Serial data output enable bit 0 Disables serial data output (usable as port) 1 Enables serial data output SCKE Serial clock output enable bit 0 Disables serial clock output (usable as port) 1 Enables serial clock output R/W : Readable/writable (Read value is the same as write value) R1/W : Readable/writable (Read value is always "1") : Initial value CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 391 CHAPTER 21 UART/SIO 21.5 Registers of UART/SIO MB95100B/AM Series Table 21.5-2 Functional Description of Each Bit of UART/SIO Serial Mode Control Register 2 (SMC20) Bit name Function bit7 SCKE: Serial clock output enable bit This bit controls the input/output of the serial clock (UCK0) pin in clock synchronous mode. Setting the bit to "0": allows the pin to be used as a general-purpose port. Setting the bit to "1": enables clock output. Note: When CKS is 1, the internal clock signal is not outputted even with this bit set to "1". If this bit is set to "1" with SMC10:MD set to "0" (asynchronous mode), the output from the port will always be "H". bit6 TXOE: Serial data output enable bit This bit controls the output of the serial data (UO0 pin). Setting the bit to "0": allows the pin to be used as a general-purpose port. Setting the bit to "1": enables serial data output. bit5 RERC: Receive error flag clear bit Setting the bit to "0": clears the error flags (PER, OVE, FER) of the SSR0 register. Setting the bit to "1": has no effect on operation. Reading this bit always returns "1". RXE: Reception operation enable bit Setting the bit to "0": disables the reception of serial data. Setting the bit to "1": enables the reception of serial data. If this bit is set to "0" during reception, the reception operation will be immediately disabled and initialization will be performed. The data received up to that point will not be transferred to the serial input data register. Note: Setting this bit to "0" initializes reception operation.It has no effect on the receive data register full (RDRF) bit or an error flag (PER, OVE, FER). bit3 TXE: Transmission operation enable bit Setting the bit to "0": disables the transmission of serial data. Setting the bit to "1": enables the transmission of serial data. If this bit is set to "0" during transmission, the transmission operation will be immediately disabled and initialization will be performed.The transmission completion flag (TCPL) will be set to "1" and the transmission data register empty (TDRE) bit will also be set to "1". bit2 RIE: Reception interrupt enable bit Setting the bit to "0": disables reception interrupt. Setting the bit to "1": enables reception interrupt. A reception interrupt occurs immediately after either the receive data register full (RDRF) bit or an error flag (PER, OVE, FER) is set to "1" with this bit set to "1" (enabled). bit1 TCIE: Transmission completion interrupt enable bit Setting the bit to "0": disables interrupts by the transmission completion flag. Setting the bit to "1": enables interrupts by the transmission completion flag. A transmission interrupt occurs immediately after the transmission completion flag (TCPL) bit is set to "1" with this bit set to "1" (enabled). bit0 TEIE: Transmission data register empty interrupt enable bit Setting the bit to "0": disables interrupts by the transmission data register empty. Setting the bit to "1": enables interrupts by the transmission data register empty. A transmission interrupt occurs immediately after the transmission data register empty (TDRE) bit is set to "1" with this bit set to "1" (enabled). bit4 392 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 21 UART/SIO 21.5 Registers of UART/SIO MB95100B/AM Series 21.5.3 UART/SIO Serial Status and Data Register (SSR0) The UART/SIO serial status and data register (SSR0) indicates the transmission/reception status and error status of the UART/SIO. ■ UART/SIO Serial Status and Data Register (SSR0) Figure 21.5-4 UART/SIO Serial Status and Data Register (SSR0) Address SSR0 0058H bit7 bit6 - - bit5 bit4 bit3 bit2 bit1 Initial value bit0 PER OVE FER RDRF TCPL TDRE 00000001B R0/WX R0/WX R/WX R/WX R/WX R/WXR(RM1),WR/WX TDRE Transmission data register empty flag 0 Transmit data present 1 Transmit data absent TCPL Transmission completion flag 0 Cleared by writing "0" 1 Serial transmission complete RDRF Reception data register full flag 0 Receive data absent 1 Receive data present FER Framing error flag 0 Framing error absent 1 Framing error present Overrun error flag OVE 0 Overrun error absent 1 Overrun error present Parity error flag PER 0 Parity error absent 1 Parity error present R(RM1), W : Readable/writable (Read value is different from write value, "1" is read by read-modify-write (RMW) instruction) R/WX : Read only (Readable, writing has no ef fect on operation) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) : Initial value CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 393 CHAPTER 21 UART/SIO 21.5 Registers of UART/SIO MB95100B/AM Series Table 21.5-3 Functional Description of Each Bit of UART/SIO Serial Status and Data Register (SSR0) Bit name bit7, bit6 Undefined bits Function These bits are undefined. • Reading always returns "0". • Writing to the bits has no effect on operation. PER: Parity error flag Detect a parity error in received data. • The flag is set when a parity error occurs during reception. Writing "0" to the RERC bit clears this flag. • If error detection and clearing by RERC occur at the same time, the error flag is set preferentially. OVE: Overrun error flag Detect an overrun error in received data. • The flag is set when an overrun error occurs during reception. Writing "0" to the RERC bit clears this flag. • If error detection and clearing by RERC occur at the same time, the error flag is set preferentially. bit3 FER: Framing error flag Detect a framing error in received data. • The bit is set when a framing error occurs during reception. Writing "0" to the RERC bit clears this flag. • If error detection and clearing by RERC occur at the same time, the error flag is set preferentially. bit2 RDRF: Receive data register full flag This flag indicates the status of the UART/SIO serial input data register. • The bit is set to "1" when receive data is loaded to the serial input data register. • The bit is cleared to "0" when data is read from the serial input data register. bit1 TCPL: Transmission completion flag This flag indicates the data transmission status. • The bit is set to "1" upon completion of serial transmission. Note, however, that the bit is not set to "1" even upon completion of transmission when the serial output data register contains data to be transmitted in succession. • Writing "0" to this bit clears its flag. • If events to set and clear the flag occur at the same time, it is set preferentially. • Writing "1" to this bit has no effect on operation. bit0 TDRE: Transmission data register empty flag This flag indicates the status of the UART/SIO serial output data register. • The bit is set to "0" when transmit data is written to the serial output register. • The bit is set to "1" when data is loaded to the transmission shift register and transmission starts. bit5 bit4 394 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 21 UART/SIO 21.5 Registers of UART/SIO MB95100B/AM Series 21.5.4 UART/SIO Serial Input Data Register (RDR0) The UART/SIO serial input data register (RDR0) is used to input (receive) serial data. ■ UART/SIO Serial Input Data Register (RDR0) Figure 21.5-5 shows the bit configuration of the UART/SIO serial input data register (RDR0). Figure 21.5-5 UART/SIO Serial Input Data Register (RDR0) Address RDR0 005AH bit7 RD7 R/WX bit6 RD6 R/WX bit5 RD5 R/WX bit4 RD4 R/WX bit3 RD3 R/WX bit2 RD2 R/WX bit1 RD1 R/WX bit0 RD0 R/WX Initial value 00000000B R/WX: Read only (Readable, writing has no effect on operation) This register stores received data.The serial data signals sent to the serial data input pin (UI0 pin) is converted by the shift register and stored in this register. When received data is set correctly in this register, the receive data register full (RDRF) bit is set to "1". At this time, an interrupt occurs if reception interrupt requests have been enabled. If an RDRF bit check by the program or using an interruption shows that received data is stored in this register, the reading of the content for this register clears the RDRF flag to "0". When the character bit length (CBL1, CBL0) is set to shorter than 8 bits, the excess upper bits (beyond the set bit length) are set to "0". CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 395 CHAPTER 21 UART/SIO 21.5 Registers of UART/SIO 21.5.5 MB95100B/AM Series UART/SIO Serial Output Data Register (TDR0) The UART/SIO serial output data register (TDR0) is used to output (transmit) serial data. ■ UART/SIO Serial Output Data Register (TDR0) Figure 21.5-6 shows the bit configuration of the UART/SIO serial output data register (TDR0). Figure 21.5-6 UART/SIO Serial Output Data Register (TDR0) Address TDR0 0059H bit7 bit6 bit5 bit4 bit3 bit2 TD7 TD6 TD5 TD4 TD3 TD2 R/W R/W R/W R/W R/W R/W R/W: Readable/writable (Read value is the same as write value) bit1 TD1 R/W bit0 TD0 R/W Initial value 00000000B This register holds data to be transmitted. The register accepts a write when the transmission data register empty (TDRE) bit contains "1". An attempt to write to the bit is ignored when the bit contains "0". When this register is updated at writing complete the transmission data and TDRE=0 (without depending on TXE of serial mode control register 2 is "1" or "0"), the transmission operation is initialized by writing "0" to TXE, TDRE becomes "1", and the update of this register becomes possible. Moreover, when "0" is written in TXE without the starting transmission (when the transmission data is written in TDR0, and it has not transmitted TXE to "1" yet), TCPL is not set in "1". The transmission data is transferred to the shift register for the transmission, it is converted into the serial data, and it is transmitted from the serial data output pin. When transmit data is written to the UART/SIO serial output data register (TDR0), the transmission data register empty bit (TDRE) is set to "0". Upon completion of transfer of transmit data to the transmission shift register, the transmission data register empty bit (TDRE) is set to "1", allowing the next piece of transmit data to be written. At this time, an interrupt occurs if transmission data register empty interrupts have been enabled. Write the next piece of transmit data when transmit data register empty occurs or the transmit data register empty (TDRE) bit is set to "1". When the character bit length (CBL1, CBL0) is set to shorter than 8 bits, the excess upper bits (beyond the set bit length) are ignored. Note: The data in this register cannot be updated when TDRE in UART/SIO serial status and data register is "0". When this register is updated at writing complete the transmission data and TDRE=0 (without depending on TXE of serial mode control register 2 is "1" or "0"), the transmission operation is initialized by writing "0" to TXE, TDRE becomes "1", and the update of this register becomes possible. Moreover, when "0" is written in TXE without the starting transmission (when the transmission data is written in TDR0, and it has not transmitted TXE to "1" yet), TCPL is not set in "1". And, to change data, please write it after making TDRE "1" once by writing TXE =0. 396 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 21 UART/SIO 21.6 Interrupts of UART/SIO MB95100B/AM Series 21.6 Interrupts of UART/SIO The UART/SIO has six interrupt-related bits: error flag bits (PER, OVE, FER), receive data register full bit (RDRF), transmission data register empty bit (TDRE), and transmission completion flag (TCPL). ■ Interrupts of UART/SIO Table 21.6-1 lists the UART/SIO interrupt control bits and interrupt sources. Table 21.6-1 UART/SIO Interrupt Control Bits and Interrupt Sources Description Item Interrupt request flag bit SSR0: TDRE SSR0: TCPL SSR0: RDRE SSR0: PER SSR0: OVE SSR0: FER Interrupt request enable bit SMC20: TEIE SMC20: TCIE SMC20: RIE SMC20: RIE SMC20: RIE SMC20: RIE Interrupt source Transmission data register empty Transmission completion Reception data register full Parity error Overrun error Framing error ■ Transmit Interrupts When transmit data is written to the serial output data register (TDR0), the data is transferred to the transmission shift register. When the next piece of data can be written, the TDRE bit is set to "1".At this time, an interrupt request to the interrupt controller occurs when transmit data register empty interrupt enable bit has been enabled (SMC20:TEIE = 1). The TCPL bit is set to "1" upon completion of transmission of all pieces of transmit data.At this time, an interrupt request to the interrupt controller occurs when transmission completion interrupt enable bit has been enabled (SMC20:TCIE = 1). ■ Reception Interrupt If the data is inputted successfully up to the stop bit, the RDRF bit is set to 1. If an overrun, parity, or framing error occurs, the corresponding error flag bit (PER, OVE, or FER) is set to "1". These bits are set when a stop bit is detected. If reception interrupt enable bit has been enabled (SMC20:RIE = 1), an interrupt request to the interrupt controller will be generated. Refer to "CHAPTER 8 INTERRUPTS" for the interrupt request numbers and vector tables of all peripheral functions. ■ Registers and Vector Table Related to UART/SIO Interrupts Table 21.6-2 Registers and Vector Table Related to UART/SIO Interrupts Interrupt source ch.0 CM26-10112-4E Interrupt level setting register Interrupt request number Registers Setting bit Upper Lower IRQ4 ILR1 L04 FFF2H FFF3H FUJITSU MICROELECTRONICS LIMITED Vector table address 397 CHAPTER 21 UART/SIO 21.7 Explanation of UART/SIO Operations and Setup Procedure Example 21.7 MB95100B/AM Series Explanation of UART/SIO Operations and Setup Procedure Example The UART/SIO has a serial communication function (operation modes 0, 1). ■ Operation of UART/SIO ● Operation mode Two operation modes are available in the UART/SIO.Clock synchronous mode (SIO) or clock asynchronous mode (UART) can be selected (see Table 21.7-1). Table 21.7-1 Operation Modes of UART/SIO Operation mode Data length No parity With parity 5 6 6 7 7 8 8 9 5 − 6 − 7 − 8 − 0 1 Synchronous Mode Stop bit length Asynchronous 1 bit or 2 bits Synchronous − ■ Setup Procedure Example The UART/SIO is set up in the following procedure. ● Initial setting 1) Set the port for input. (DDR1) 2) Set the interrupt level. (ILR1) 3) Set the prescaler. (PSSR0) 4) Set the baud rate. (BRSR0) 5) Select the clock. (SMC10:CKS) 6) Set the operation mode. (SMC10:MD) 7) Enable/disable the serial clock output. (SMC20:SCKE) 8) Enable reception. (SMC20:RXE = 1) 9) Enable interrupts. (SMC20:RIE = 1) ● Interrupt processing Read receive data. (RDR0) 398 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 21.7.1 CHAPTER 21 UART/SIO 21.7 Explanation of UART/SIO Operations and Setup Procedure Example Operating Description of Operation Mode 0 Operation mode 0 operates as clock asynchronous mode (UART). ■ Operating Description of UART/SIO Operation Mode 0 Clock asynchronous mode (UART) is selected when the MD bit in the UART/SIO serial mode control register 1 (SMC10) is set to "0". ● Baud rate The serial clock is selected by the CKS bit in the SMC10 register. Be sure to select the dedicated baud rate generator at this time. The baud rate is equivalent to the output clock frequency of the dedicated baud rate generator, divided by four. The UART can perform communication within the range from -2% to +2% of the selected baud rate. The baud rate generated by the dedicated baud rate generator is obtained from the equation illustrated below. (For information about the dedicated baud rate generator, refer to "CHAPTER 22 UART/SIO DEDICATED BAUD RATE GENERATOR". Figure 21.7-1 Baud Rate Calculation when Using Dedicated Baud Rate Generator Machine clock (MCLK) Baud rate = [bps] 1 2 4 8 4✕ ✕ UART prescaler selection register (PSSR0) Prescaler selection (PSS1, PSS0) 2 : 255 UART baud rate setting register (BRSR0) Baud rate setting (BRS7 to BRS0) Table 21.7-2 Sample Asynchronous Transfer Rates Based on Dedicated Baud Rate Generator (Machine Clock = 10MHz, 16MHz, 16.25MHz) Dedicated baud rate generator setting UART Internal division Total division ratio (PSS × BRS × 4) Baud rate (10MHz/ Total division ratio) Baud rate (16MHz/ Total division ratio) Baud rate (16.25MHz/ Total division ratio) Prescaler selection PSS[1:0] Baud rate counter setting BRS[7:0] 1 (Setting value:0, 0) 20 4 80 125000 200000 203125 1 (Setting value:0, 0) 22 4 88 113636 181818 184659 1 (Setting value:0, 0) 44 4 176 56818 90909 92330 1 (Setting value:0, 0) 87 4 348 28736 45977 46695 1 (Setting value:0, 0) 130 4 520 19231 30769 31250 2 (Setting value:0, 1) 130 4 1040 9615 15385 15625 4 (Setting value:1, 0) 130 4 2080 4808 7692 7813 8 (Setting value:1, 1) 130 4 4160 2404 3846 3906 CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 399 CHAPTER 21 UART/SIO 21.7 Explanation of UART/SIO Operations and Setup Procedure Example The baud rate in clock asynchronous mode can be set in the following range. MB95100B/AM Series Table 21.7-3 Baud Rate Setting Range in Clock Asynchronous Mode PSS[1:0] BRS[7:0] 00B to 11B 02H (2) to FFH (255) ● Transfer data format UART can treat data only in NRZ (Non-Return-to-Zero) format. Figure 21.7-2 shows the transfer data format. The character bit length can be selected from among 5 to 8 bits depending on the CBL1 and CBL0 settings. The stop bit length can be set to 1 or 2 bits depending on the SBL setting. PEN and TDP can be used to enable/disable parity and to select parity polarity. As is shown in Figure 21.7-2, the transfer data always starts from the start bit ("L" level) and ends with the stop bit ("H" level) by performing the specified data bit length transfer with MSB first or LSB first ("LSB first" or "MSB first" can be selected by the BDS bit).It becomes "H" level at the idle state. Figure 21.7-2 Transfer Data Format ST D0 D1 D2 D3 D4 SP ST D0 D1 D2 D3 D4 SP SP ST D0 D1 D2 D3 D4 P SP D4 P SP SP Without P 5-bit data With P ST D0 D1 D2 D3 6-bit and 8-bit data are also the same. ST D0 D1 D2 D3 D4 D5 D6 D7 SP ST D0 D1 D2 D3 D4 D5 D6 D7 SP Without P SP 8-bit data ST D0 D1 D2 D3 D4 D5 D6 D7 P SP With P ST D0 ST SP P D0 to D7 400 D1 : : : : D2 D3 D4 D5 D6 D7 P SP SP Start bit Stop bit Parity bit Data. The sequence can be selected from "LSB first" or "MSB first" by the direction control register (BDS bit) FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 21 UART/SIO 21.7 Explanation of UART/SIO Operations and Setup Procedure Example Receiving operation in asynchronous clock mode (UART) MB95100B/AM Series ● Use UART/SIO serial mode control register 1 (SMC10) to select the serial data direction (endian), parity/non-parity, parity polarity, stop bit length, character bit length, and clock. Reception remains performed as long as the reception operation enable bit (RXE) contains "1". Upon detection of a start bit in receive data with the reception operation enable bit (RXE) set to "1", one frame of data is received according to the data format set in UART/SIO serial control register 1 (SMC10). When the reception of one frame of data has been completed, the received data is transferred to the UART/SIO serial input data register (RDR0) and the next frame of serial data can be received. When the UART/SIO serial input data register (RDR0) stores data, the receive data register full (RDRF) bit is set to "1". A reception interrupt occurs the moment the receive data register full (RDRF) bit is set to "1" when the reception interrupt enable bit (RIE) contains "1". Received data is read from the UART/SIO serial input data register (RDR0) after each error flag (PER, OVE, FER) in the UART/SIO serial status and data register is checked. When received data is read from the UART/SIO serial input data register (RDR0), the receive data register full (RDRF) bit is cleared to "0". Note that modifying UART/SIO serial mode control register 1 (SMC10) during reception may result in unpredictable operation. If the RXE bit is set to "0" during reception, the reception is immediately disabled and initialization will be performed. The data received up to that point will not be transferred to the serial input data register. Figure 21.7-3 Receiving Operation in Asynchronous Clock Mode RXE UI0 St D0 D1 D2 D3 D4 D5 D6 D7 Sp Sp St D0 D1 D2 RDR0 read RDRF CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 401 CHAPTER 21 UART/SIO 21.7 Explanation of UART/SIO Operations and Setup Procedure Example ● Reception error in asynchronous clock mode (UART) MB95100B/AM Series If any of the following three error flags (PER, FER, OVE) has been set, receive data is not transferred to the UART/SIO serial input data register (RDR0) and the receive data register full (RDRF) bit is not set to "1" either. • Parity error (PER) The parity error (PER) bit is set to "1" if the parity bit in received serial data does not match the parity polarity bit (TDP) when the parity control bit (PEN) contains "1". • Framing error (FER) The framing error (FER) bit is set to "1" if "1" is not detected at the position of the first stop bit in serial data received in the set character bit length (CBL) under parity control (PEN). Note that the stop bit is not checked if it appears at the second bit or later. • Overrun error (OVE) Upon completion of reception of serial data, the overrun error (OVE) bit is set to "1" if the reception of the next data is performed before the previous receive data is read. Each flag is set at the position of the first stop bit. Figure 21.7-4 Setting Timing for Receiving Errors UI0 D5 D6 D7 P SP SP PER OVE FER Reception interrupt 402 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 21 UART/SIO 21.7 Explanation of UART/SIO Operations and Setup Procedure Example Start bit detection and confirmation of receive data during reception MB95100B/AM Series ● The start bit is detected by a falling of the serial input followed by a succession of three "L" levels after the serial data input is sampled according to the clock (BRCLK) signal provided by the dedicated baud rate generator with the reception operation enable bit (RXE) set to "1". When the first "H", "L", "L", "L" train is detected in a BRCLK sample, therefore, the current bit is regarded as the start bit. The frequency-quartered circuit is activated upon detection of the start bit and serial data is inputted to the reception shift register at intervals of four periods of BRCLK. When data is received, sampling is performed at three points of the baud rate clock (BRCLK) and data sampling clock (DSCLK) and received data is confirmed on a majority basis when two bits out of three match. Figure 21.7-5 Start Bit Detection and Serial Data Input RXE Start bit Serial data input (UI0) D1 D0 Baud rate clock (BRCLK) "H" "L" "L" "L" "L" Start bit detection Counter divided by 4 X 0 1 2 3 0 1 2 3 Data sampling clock (DSCLK) Sampling at three points to determine "0" or "1" on a majority basis when two bits out of three match Reception shift register CM26-10112-4E X D0 FUJITSU MICROELECTRONICS LIMITED D1 403 CHAPTER 21 UART/SIO 21.7 Explanation of UART/SIO Operations and Setup Procedure Example ● Transmission in asynchronous clock mode MB95100B/AM Series Use UART/SIO serial mode control register 1 (SMC10) to select the serial data direction (endian), parity/non-parity, parity polarity, stop bit length, character bit length, and clock. The following two procedures can be used to initiate the transmission process: • Set the transmission operation enable bit (TXE) to "1", and then write transmit data to the serial output data register to start transmission. • Write transmit data to the serial output data register, and then set the transmission operation enable bit (TXE) to "1" to start transmission. Transmit data is written to the UART/SIO serial output data register (TDR0) after it is checked that the transmit data register empty (TDRE) bit is set to "1". When the transmit data is written to the UART/SIO serial output data register (TDR0), the transmit data register empty (TDRE) bit is cleared to "0". The transmit data is transferred from the UART/SIO serial output data register (TDR0) to the transmission shift register, and the transmit data register empty (TDRE) is set to "1". When the transmission interrupt enable bit (TIE) contains "1", a transmission interrupt occurs if the transmit data register empty (TDRE) bit is set to "1". This allows the next piece of transmit data to be written to the UART/SIO serial output data register (TDR0) by interrupt handling. To detect the completion of serial transmission by transmission interrupt, set the transmission completion interrupt enable bits as follows: TEIE = 0, TCIE = 1. Upon completion of transmission, the transmission completion flag (TCPL) is set to "1" and a transmission interrupt occurs. Both the transmission completion flag (TCPL) and the transmission data register empty flag (TDRE), when transmitting data consecutively, are set at the position which the transmission of the last bit was completed (it varies depending on the data length, parity enable, or stop bit length setting), as shown in Figure 21.7-6 below. Note that modifying UART/SIO serial mode control register 1 (SMC10) during transmission may result in unpredictable operation. Figure 21.7-6 Transmission in Asynchronous Clock Mode (UART) UO0 D5 D6 D7 P SP SP TCPL TDRE Transmission interrupt When the STOP bit length is set to 1 bit 404 FUJITSU MICROELECTRONICS LIMITED When the STOP bit length is set to 2 bits CM26-10112-4E CHAPTER 21 UART/SIO 21.7 Explanation of UART/SIO Operations and Setup Procedure Example The TDRE flag is set at the point indicated in the following figure if the preceding piece of transmit data does not exist in the transmission shift register. MB95100B/AM Series Figure 21.7-7 Setting Timing 1 for Transmit Data Register Empty Flag (TDRE) (When TXE is "1") "1" TXE Writing of transmit data UO0 D0 D1 D2 D3 TDRE Transmission interrupt Data transfer from UART/SIO serial output data register (TDR) to transmission shift register is performed in one machine clock (MCLK) cycle. Figure 21.7-8 Setting Timing 2 for Transmit Data Register Empty Flag (TDRE) (When TXE Is Switched from "0" to "1") TXE Writing of transmit data UO0 D0 D1 D2 D3 TDRE Transmission interrupt ● Concurrent transmission and reception In asynchronous clock mode (UART), transmission and reception can be performed independently. Therefore, transmission and reception can be performed at the same time or even with transmitting and receiving frames overlapping each other in shifted phases. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 405 CHAPTER 21 UART/SIO 21.7 Explanation of UART/SIO Operations and Setup Procedure Example 21.7.2 MB95100B/AM Series Operating Description of Operation Mode 1 Operation mode 1 operates in synchronous clock mode. ■ Operating Description of UART/SIO Operation Mode 1 Setting the MD bit in UART/SIO serial mode control register 1 (SMC10) to "1" selects synchronous clock mode (SIO). The character bit length in synchronous clock mode (SIO) is variable between 5 bits and 8 bits. Note, however, that parity is disabled and no stop bit is used. The serial clock is selected by the CKS bit in the SMC10 register. Select the dedicated baud rate generator or external clock. The SIO performs shift operation using the selected serial clock as a shift clock. To input the external clock signal, set the SCKE bit to "0". To output the dedicated baud rate generator output as a shift clock signal, set the SCKE bit to "1". The serial clock signal is obtained by dividing clock by two, which is supplied by the dedicated baud rate generator. The baud rate in the SIO mode can be set in the following range. (For more information about the dedicated baud rate generator, also refer to "CHAPTER 22 UART/SIO DEDICATED BAUD RATE GENERATOR"). Table 21.7-4 Baud Rate Setting Range in SIO Mode PSS[1:0] BRS[7:0] 00B to 11B 01H(1) to FFH(255), 00H(256) (The highest and lowest baud rate settings are 01H and 00H, respectively.) The baud rate applied when the external clock or dedicated baud rate generator is used is obtained from the corresponding equation illustrated below. (Figure 21.7-9, Figure 21.7-10) Figure 21.7-9 Calculating Baud Rate Based on External Clock 1 Baud rate = [bps] External Clock* More than 4 machine clock *:External Clock More than 4 machine clock 406 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 21 UART/SIO 21.7 Explanation of UART/SIO Operations and Setup Procedure Example Figure 21.7-10 Baud Rate Calculation Formula for Using Dedicated Baud Rate Generator MB95100B/AM Series Machine clock (MCLK) Baud rate = [bps] 1 2 4 8 2✕ 1 : 256 ✕ UART baud rate setting register (BRSR0) Baud Rate Setting (BRS7 to BRS0) UART prescaler selection register (PSSR0) Prescaler selection (PSS1, PSS0) ● Serial clock The serial clock signal is outputted under control of the output for transmit data. When only reception is performed, therefore, set transmission control (TXE = 1) to write dummy transmit data to the UART/SIO serial output register.Refer to the data sheet for the UCK0 clock value. ● Reception in UART/SIO operation mode 1 For reception in operation mode 1, each register is used as follows. Figure 21.7-11 Registers Used for Reception in Operation Mode 1 SMC10 (UART/SIO Serial Mode Control Register 1) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 BDS PEN TDP SBL CBL1 CBL0 CKS MD ✕ ✕ ✕ 1 SMC20 (UART/SIO Serial Mode Control Register 2) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 SCKE TXOE RERC RXE TXE RIE TCIE TEIE ✕ ✕ 0 SSR0 (UART/SIO serial status and data register) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 − − PER OVE FER RDRF TCPL TDRE ✕ ✕ ✕ ✕ ✕ ✕ TDR0 (UART/SIO serial output data register) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 TD7 TD6 TD5 TD4 TD3 TD2 TD1 TD0 ✕ ✕ ✕ ✕ ✕ ✕ ✕ ✕ RDR0 (UART/SIO serial input data register) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0 : Used bit ✕: Unused bit 0: Set "0" 1:Set "1" CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 407 CHAPTER 21 UART/SIO 21.7 Explanation of UART/SIO Operations and Setup Procedure Example The reception depends on whether the serial clock has been set to external or internal clock. MB95100B/AM Series <When external clock is enabled> When the reception operation enable bit (RXE) contains "1", serial data is received always at the rising edge of the external clock signal. <When internal clock is enabled> The serial clock signal is outputted in accordance with transmission. Therefore, transmission must be performed even when only performing reception. The following two procedures can be used. • Set the transmission operation enable bit (TXE) to "1", then write transmit data to the UART/SIO serial output data register to generate the serial clock signal and start reception. • Write transmit data to the UART/SIO serial output data register, then set the transmission operation enable bit (TXE) to "1" to generate the serial clock signal and start reception. When 5-bit to 8-bit serial data is received by the reception shift register, the received data is transferred to the UART/SIO serial input data register (RDR0) and the next piece of serial data can be received. When the UART/SIO serial input data register stores data, the receive data register full (RDRF) bit is set to "1". A reception interrupt occurs the moment the receive data register full (RDRF) bit is set to "1" when the reception interrupt enable bit (RIE) contains "1". To read received data, read it from the UART/SIO serial input data register after checking the error flag (OVE) in the UART/SIO serial status and data register. When received data is read from the UART/SIO serial input data register (RDR0), the receive data register full (RDRF) bit is cleared to "0". Figure 21.7-12 8-bit Reception of Synchronous Clock Mode UCK0 UI0 D0 D1 D2 D3 D4 D5 D6 D7 Read to RDR0 RDRF Interrupt to interrupt controller Operation when reception error occurs When an overrun error (OVE) exists, received data is not transferred to the UART/SIO serial input data register (RDR0). Overrun error (OVE) Upon completion of reception for serial data, the overrun error (OVE) bit is set to "1" if the receive data register full (RDRF) bit has been set to "1" by the reception for the preceding piece of data. 408 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 21 UART/SIO 21.7 Explanation of UART/SIO Operations and Setup Procedure Example Figure 21.7-13 Overrun error MB95100B/AM Series … UCK0 … D0 D1 … D6 D7… UI0 … D0 D1 … D6 D7… D0 D1 … D6 D7… Read to RDR0 RDRF OVE ● Transmission in UART/SIO operation mode 1 For transmission in operation mode 1, each register is used as follows. Figure 21.7-14 Registers Used for Transmission in Operation Mode 1 SMC10 (UART/SIO Serial Mode Control Register 1) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 BDS PEN TDP SBL CBL1 CBL0 CKS MD ✕ ✕ ✕ 1 SMC20 (UART/SIO Serial Mode Control Register 2) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 SCKE TXOE RERC RXE TXE RIE TCIE TEIE ✕ ✕ 0 SSR0 (UART/SIO Serial Status and Data Register) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 − − PER OVE FER RDRF TCPL TDRE ✕ ✕ ✕ ✕ ✕ ✕ TDR0 (UART/SIO Serial Output Data Register) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 TD7 TD6 TD5 TD4 TD3 TD2 TD1 TD0 ✕ ✕ ✕ ✕ ✕ ✕ ✕ ✕ RDR0 (UART/SIO Serial Input Data Register) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0 : Used bit ✕: Unused bit 0 : Set "0" 1 :Set "1" The following two procedures can be used to initiate the transmission process: • Set the transmission operation enable bit (TXE) to "1", and then write transmit data to the UART/ SIO serial output data register to start transmission. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 409 CHAPTER 21 UART/SIO 21.7 Explanation of UART/SIO Operations and Setup Procedure Example • Write transmit data to the UART/SIO serial output data register, then set the transmission operation enable bit (TXE) to "1" to start transmission. MB95100B/AM Series Transmit data is written to the UART/SIO serial output data register (TDR0) after it is checked that the transmit data register empty (TDRE) bit is set to "1". When the transmit data is written to the UART/SIO serial output data register (TDR0), the transmit data register empty (TDRE) bit is cleared to "0". When serial transmission is started after transmit data is transferred from the UART/SIO serial output data register (TDR0) to the transmission shift register, and the transmit data register empty (TDRE) is set to "1". When the use of the external clock signal has been set, serial data transmission starts at the fall of the first serial clock signal after the transmission process is started. A transmission completion interrupt occurs the moment the transmit data register empty (TDRE) bit is set to "1" when the transmission interrupt enable bit (TIE) contains "1". At this time, the next piece of transmit data can be written to the UART/SIO serial output data register (TDR0). Serial transmission can be continued with the transmission operation enable bit (TXE) set to "1". To use a transmission completion interrupt to detect the completion of serial transmission, enable transmission completion interrupt output this way: TEIE = 0, TCIE = 1. Upon completion of transmission, the transmission completion flag (TCPL) is set to "1" and a transmission completion interrupt occurs. Figure 21.7-15 8-bit Transmission in Synchronous CLK Mode Writing to TDR0 UCK0 UI0 D0 D1 D2 D3 D4 D5 D6 D7 TDRE TCPL Interrupt to interrupt controller 410 After falling of UCK0 when external clock is enabled. Interrupt to interrupt controller FUJITSU MICROELECTRONICS LIMITED After last 1-bit cycle when internal clock is enabled. CM26-10112-4E CHAPTER 21 UART/SIO 21.7 Explanation of UART/SIO Operations and Setup Procedure Example Concurrent transmission and reception MB95100B/AM Series ● <When external clock is enabled> Transmission and reception can be performed independently of each other. Transmission and reception can therefore be performed at the same time or even when their phases are shifted from each other and overlapping. <When internal clock is enabled> As the transmitting side generates a serial clock, reception is influenced. If transmission stops during reception, the receiving side is suspended. It resumes reception when the transmitting side is restarted. • Refer to "21.4 Pins of UART/SIO" for operation with serial clock output and operation with serial clock input. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 411 CHAPTER 21 UART/SIO 21.8 Sample Programs for UART/SIO 21.8 MB95100B/AM Series Sample Programs for UART/SIO We provide sample programs that can be used to operate UART/SIO. ■ Sample Programs for UART/SIO For information about the sample programs for UART/SIO, refer to "■ Sample Programs" in Preface. ■ Setting Methods not Covered by Sample Programs ● How to select the operation mode The operation mode select bit (SMC10.MD) is used. Operation mode Operation mode selection (MD) Mode 0 Asynchronous clock mode (UART) Set the bit to "0" Mode 1 Synchronous clock mode (SIO) Set the bit to "1" ● Operation clock types and how to select it The clock select bit (SMC10.CKS) is used. Clock input Clock selection (CKS) To select a dedicated baud rate generator Set the bit to "0" To select an external clock Set the bit to "1" ● How to use UCK0, UI0, and UO0 pin Uses the following setting. UART 412 To set the UCK0 pin as input DDR1.P12 = 0 SMC20:SCKE = 0 To set the UCK0 pin as output SMC20:SCKE = 1 When using UI0 pin DDR1.P10 = 0 When using UO0 pin SMC20:TXOE = 1 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 21 UART/SIO 21.8 Sample Programs for UART/SIO MB95100B/AM Series ● How to enable/stop UART operation The reception operation enable bit (SMC20.RXE) is used. Control item Reception interrupt enable bit (RXE) Disabling (stopping) reception Set the bit to "0". Enabling reception Set the bit to "1". The transmission operation control bit (SMC20.TXE) is used. Control item Transmission operation enable bit (TXE) Disabling (stopping) transmission Set the bit to "0". Enabling transmission Set the bit to "1". ● How to set the parity The parity control (SMC10.PEN) and parity polarity (SMC10.TDP) bits are used. Operation Parity control (PEN) Parity polarity (TDP) To set to no parity Set the bit to "0". − To set to even parity Set the bit to "1". Set the bit to "0". To set to odd parity Set the bit to "1". Set the bit to "1". ● How to set the data length The data length select bit (SMC10.CBL[1:0]) is used. Operation Data length select bit (CBL[1:0]) To set the bit length to 5 Set the bits to "00B". To set the bit length to 6 Set the bits to "01B". To set the bit length to 7 Set the bits to "10B". To set the bit length to 8 Set the bits to "11B". ● How to select the STOP bit length The STOP bit length control bit (SMC10.SBL) is used. CM26-10112-4E Operation STOP bit length control (SBL) To set STOP bit length to 1 Set the bit to "0". To set STOP bit length to 2 Set the bit to "1". FUJITSU MICROELECTRONICS LIMITED 413 CHAPTER 21 UART/SIO 21.8 Sample Programs for UART/SIO MB95100B/AM Series ● How to clear the error flag The reception error flag clear bit (SMC20.RERC) is used. Control item Reception error flag clear bit (RERC) When clearing error flags (PER, OVE, FER) Set the bit to "0". ● How to set the transfer direction The serial data direction control bit (SMC10.BDS) is used. LSB first/MSB first can be selected for transfer direction in any operation mode. Control item Serial data direction control (BDS) When selecting LSB first transfer (from least significant bit) Set the bit to "0". When selecting MSB first transfer (from most significant bit) Set the bit to "1". ● How to clear the reception completion flag Uses the following setting. Control item Method To clear the reception completion flag Read the RDR0 register The first RDR0 register read is the reception initiation. ● How to clear the transmit buffer empty flag Uses the following setting. Control item Method To clear the transmit buffer empty flag Write to TDR0 register The first TDR0 register write is the transmit initiation. ● How to set the baud rate See Section "21.7.1 Operating Description of Operation Mode 0". 414 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 21 UART/SIO 21.8 Sample Programs for UART/SIO MB95100B/AM Series ● Interrupt-related register Use the following interrupt level setting register to set the interrupt level. Channel Interrupt level setting register Interrupt vector ch.0 Interrupt level register (ILR1) Address: 0007AH #4 Address: 0FFF2H ● Enabling, disabling, and clearing interrupts The interrupt request enable bits (SMC20:RIE), (SMC20:TCIE), (SMC20:TEIE) are used to enable interrupts. UART reception Reception interrupt enable bit (RIE) UART transmission Transmission completion interrupt enable bit (TCIE) To disable interrupt requests Set to "0" To enable interrupt requests Set to "1" Transmission data register empty interrupt enable bit (TEIE) The following setting is used to clear interrupt requests. UART reception To clear interrupt requests CM26-10112-4E UART transmission Read from serial input register (RDR 0) to The transmit data register clear reception data register full bit (RDRF). empty (TDRE) is set to "0" by writing data to the serial Write "0" to error flag clear bit (RERC) to output data register (TDR0). clear error flags (PER, OVE, FER) to "0". FUJITSU MICROELECTRONICS LIMITED 415 CHAPTER 21 UART/SIO 21.8 Sample Programs for UART/SIO 416 MB95100B/AM Series FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 22 UART/SIO DEDICATED BAUD RATE GENERATOR This chapter describes the functions and operations of the dedicated baud rate generator of UART/SIO. 22.1 Overview of UART/SIO Dedicated Baud Rate Generator 22.2 Channels of UART/SIO Dedicated Baud Rate Generator 22.3 Registers of UART/SIO Dedicated Baud Rate Generator 22.4 Operating Description of UART/SIO Dedicated Baud Rate Generator Code: CM26-00121-1E CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 417 CHAPTER 22 UART/SIO DEDICATED BAUD RATE GENERATOR 22.1 Overview of UART/SIO Dedicated Baud Rate Generator MB95100B/AM Series 22.1 Overview of UART/SIO Dedicated Baud Rate Generator The UART/SIO dedicated baud rate generator generates the baud rate for the UART/SIO. The generator consists of the UART/SIO dedicated baud rate generator prescaler selection register (PSSR0) and UART/SIO dedicated baud rate generator baud rate setting register (BRSR0). ■ Block Diagram of UART/SIO Dedicated Baud Rate Generator Figure 22.1-1 Block Diagram of UART/SIO Dedicated Baud Rate Generator UART/SIO Baud rate generator PSS1,PSS0 MCLK (Machine clock) CLK PCK[0] PCK[1] Prescaler BRS7 to BRS0 8-bit down-counter BRCLK 1/4 PCK[2] ■ Input Clock The UART/SIO dedicated baud rate generator uses the output clock from the prescaler or the machine clock as its input clock. ■ Output Clock The UART/SIO dedicated baud rate generator supplies its clock to the UART/SIO. 418 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 22 UART/SIO DEDICATED BAUD RATE GENERATOR 22.2 Channels of UART/SIO Dedicated Baud Rate Generator MB95100B/AM Series 22.2 Channels of UART/SIO Dedicated Baud Rate Generator This section describes the channels of the UART/SIO dedicated baud rate generator. ■ Channels of UART/SIO Dedicated Baud Rate Generator This series contains one channel of the UART/SIO dedicated baud rate generator. Table 22.2-1 shows the registers of the UART/SIO dedicated baud rate generator. Table 22.2-1 Registers of UART/SIO Dedicated Baud Rate Generator Channel Register name Corresponding register (Representation in this manual) PSSR0 UART/SIO dedicated baud rate generator prescaler selection register BRSR0 UART/SIO dedicated baud rate generator baud rate setting register 0 CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 419 CHAPTER 22 UART/SIO DEDICATED BAUD RATE GENERATOR 22.3 Registers of UART/SIO Dedicated Baud Rate Generator MB95100B/AM Series 22.3 Registers of UART/SIO Dedicated Baud Rate Generator The registers related to the UART/SIO dedicated baud rate generator are namely the UART/SIO dedicated baud rate generator prescaler selection register (PSSR0) and UART/SIO dedicated baud rate generator baud rate setting register (BRSR0). ■ Registers Related to UART/SIO Dedicated Baud Rate Generator Figure 22.3-1 Registers Related to UART/SIO Dedicated Baud Rate Generator UART/SIO dedicated baud rate generator prescaler selection register (PSSR0) PSSR0 Address 0FBEH bit7 − bit6 − bit5 − bit4 − bit3 − bit2 BRGE R0/WX R0/WX R0/WX R0/WX R0/WX R/W bit1 PSS1 R/W bit0 PSS0 R/W Initial value 00000000B bit0 BRS0 R/W Initial value 00000000B UART/SIO dedicated baud rate generator baud rate setting register (BRSR0) Address bit7 BRSR0 0FBFH BRS7 R/W bit6 BRS6 R/W bit5 BRS5 R/W bit4 BRS4 R/W bit3 BRS3 R/W bit2 BRS2 R/W bit1 BRS1 R/W R/W : Readable/writable (Read value is the same as write value) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) 420 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 22 UART/SIO DEDICATED BAUD RATE GENERATOR 22.3 Registers of UART/SIO Dedicated Baud Rate Generator MB95100B/AM Series 22.3.1 UART/SIO Dedicated Baud Rate Generator Prescaler Selection Register (PSSR0) The UART/SIO dedicated baud rate generator prescaler register (PSSR0) controls the output of the baud rate clock and the prescaler. ■ UART/SIO Dedicated Baud Rate Generator Prescaler Selection Register (PSSR0) Figure 22.3-2 UART/SIO Dedicated Baud Rate Generator Prescaler Selection Register (PSSR0) Address PSSR0 0FBEH PSSR1 0FC0H bit7 bit6 bit5 bit4 bit3 - - - - - bit2 bit0 BRGE PSS1 PSS0 R0/WX R0/WX R0/WX R0/WX R0/WX PSS1 PSS0 bit1 Initial value 00000000 B R/W R/W R/W Prescaler selection bits 0 0 1/1 0 1 1/2 1 0 1/4 1 1 1/8 Baud rate clock output enable bit BRGE 0 Disables baud rate output 1 Enable baud rate output R/W : Readable/writable (Read value is the same as write value) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) : Initial value Table 22.3-1 UART/SIO Dedicated Baud Rate Generator Prescaler Selection Register (PSSR0) Bit name bit7 to bit3 Undefined bits bit2 bit1, bit0 Function These bits are undefined.Reading the bits always returns "0". This bit enables the output of the baud rate clock "BRCLK". BRGE: When set to "1": loads BRS[7:0] to the 8-bit down-counter and outputs "BRCLK", Baud rate clock output which is supplied to the UART/SIO. enable bit When set to "0": stops the output of "BRCLK". PSS1, PSS0: Prescaler selection bits CM26-10112-4E PSS1 PSS0 Prescaler selection 0 0 1/1 0 1 1/2 1 0 1/4 1 1 1/8 FUJITSU MICROELECTRONICS LIMITED 421 CHAPTER 22 UART/SIO DEDICATED BAUD RATE GENERATOR 22.3 Registers of UART/SIO Dedicated Baud Rate Generator MB95100B/AM Series 22.3.2 UART/SIO Dedicated Baud Rate Generator Baud Rate Setting Register (BRSR0) The UART/SIO dedicated baud rate generator baud rate setting register (BRSR0) controls the baud rate settings. ■ UART/SIO Dedicated Baud Rate Generator Baud Rate Setting Register (BRSR0) Figure 22.3-3 UART/SIO Dedicated Baud Rate Generator Baud Rate Setting Register (BRSR0) Address bit7 BRSR0 0FBFH BRS7 R/W bit6 BRS6 R/W bit5 BRS5 R/W bit4 BRS4 R/W bit3 BRS3 R/W bit2 BRS2 R/W bit1 BRS1 R/W bit0 BRS0 R/W Initial value 00000000B R/W: Readable/writable (Read value is the same as write value) This register sets the cycle of the 8-bit down-counter. This register can be used to set any baud rate clock. Write to the register when the UART is stopped. Do not set BRS[7:0] to "00H" or "01H" in clock asynchronous mode. 422 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 22 UART/SIO DEDICATED BAUD RATE GENERATOR 22.4 Operating Description of UART/SIO Dedicated Baud Rate Generator MB95100B/AM Series 22.4 Operating Description of UART/SIO Dedicated Baud Rate Generator The UART/SIO dedicated baud rate generator serves as the baud rate generator for asynchronous clock mode. ■ Baud Rate Setting The SMC10 register (CKS bit) of the UART/SIO is used to select the serial clock. This selects the UART/SIO dedicated baud rate generator. In asynchronous CLK mode, the shift clock that is selected by the CKS bit and divided by four is used and transfers can be performed within the range from -2% to +2%. The baud rate calculation formula for the UART/SIO dedicated baud rate generator is shown below. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 423 CHAPTER 22 UART/SIO DEDICATED BAUD RATE GENERATOR 22.4 Operating Description of UART/SIO Dedicated Baud Rate Generator Figure 22.4-1 Baud Rate Calculation Formula when UART/SIO Dedicated Baud Rate Generator Is Used MB95100B/AM Series Machine clock (MCLK) Baud rate = [bps] 1 2 4 8 4✕ ✕ UART prescaler selection register (PSSR0) Prescaler selection (PSS1, PSS0) 2 : 255 UART baud rate setting register (BRSR0) Baud Rate Setting (BRS7 to BRS0) Table 22.4-1 Sample Asynchronous Transfer Rates by Baud Rate Generator (Machine Clock = 10MHz, 16MHz, 16.25MHz) Settings of UART/SIO dedicated baud rate generator Prescaler selection PSS[1:0] Baud rate counter setting BRS[7:0] UART Internal division Total division ratio (PSS × BRS × 4) Baud rate (10MHz/ Total division ratio) Baud rate (16MHz/ Total division ratio) Baud rate (16.25MHz/ Total division ratio) 1 (Setting value:0, 0) 20 4 80 125000 200000 203125 1 (Setting value:0, 0) 22 4 88 113636 181818 184659 1 (Setting value:0, 0) 44 4 176 56818 90909 92330 1 (Setting value:0, 0) 87 4 348 28736 45977 46695 1 (Setting value:0, 0) 130 4 520 19231 30769 31250 2 (Setting value:0, 1) 130 4 1040 9615 15385 15625 4 (Setting value:1, 0) 130 4 2080 4808 7692 7813 8 (Setting value:1, 1) 130 4 4160 2404 3846 3906 The baud rate can be set in UART mode within the following range. Table 22.4-2 Permissible Baud Rate Range in UART Mode 424 PSS[1:0] BRS[7:0] 00B to 11B 02H(2) to FFH(255) FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 23 LIN-UART This chapter describes the function and operation of the LIN-UART 23.1 Overview of LIN-UART 23.2 Configuration of LIN-UART 23.3 Pins of LIN-UART 23.4 Registers of LIN-UART 23.5 Interrupt of LIN-UART 23.6 LIN-UART Baud Rate 23.7 Operations and Setup Procedure Example of LIN-UART 23.8 Notes on Using LIN-UART 23.9 Sample Programs of LIN-UART Code: CM26-00127-2E Page: 433, 465, 491 CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 425 CHAPTER 23 LIN-UART 23.1 Overview of LIN-UART 23.1 MB95100B/AM Series Overview of LIN-UART The LIN (Local Interconnect Network)-UART is a general-purpose serial data communication interface for synchronous or asynchronous (start-stop synchronization) communication with external devices. In addition to a bidirectional communication function (normal mode) and master/slave communication function (multiprocessor mode: supports both master and slave operation), the LIN-UART also supports the special functions used by the LIN bus. ■ Functions of LIN-UART The LIN-UART is a general-purpose serial data communication interface for transmitting serial data to and receiving data from other CPUs and peripheral devices. Table 23.1-1 lists the functions of the LIN-UART. Table 23.1-1 Functions of LIN-UART Function Data buffer Serial input Transfer mode Baud rate Data length Signaling Start bit timing Reception error detection Interrupt request Master/slave mode communication function (Multiprocessor mode) Synchronous Mode Pin access LIN bus option Synchronous serial clock Clock delay option 426 Full-duplex double buffer The LIN-UART oversamples received data for five times to determine the received value by majority (only asynchronous mode). • Clock synchronization (Select start/stop synchronization, or start/stop bit) • Clock asynchronous (Start/stop bits available) • Dedicated baud rate generator provided (made of a 15-bit reload counter) • The external clock can be inputted.The reload counter can also be used to adjust the external clock. • 7 bits (not in synchronous or LIN mode) • 8 bits NRZ (Non Return to Zero) Synchronization with the start bit falling edge in asynchronous mode. • Framing error • Overrun error • Parity error (Not supported in operation mode 1) • Reception interrupts (reception completed, reception error detected, LIN synch break detected) • Transmit interrupts (send data empty) • Interrupt requests to TII0 (LIN synch field detected: LSYN) Capable of 1 (master) to n (slaves) communication (support both the master and slave system) Send side/receive side of serial clock Serial I/O pin states can be read directly. • Master device operation • Slave device operation • LIN synch break detection • LIN Synch break generation • Detection of LIN synch field start/stop edges connected to the 8/16-bit compound timer Continuous output to the SCK pin is possible for synchronous communication using the start/stop bits Special synchronous clock mode for delaying the clock (used for serial peripheral interface (SPI)) FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 23 LIN-UART 23.1 Overview of LIN-UART MB95100B/AM Series The LIN-UART has four operation modes. The operation mode is selected by the MD0 and MD1 bits in the LIN-UART serial mode register (SMR). Mode 0 and mode 2 are used for bidirectional serial communication; mode 1 for master/slave communication; and mode 3 for LIN master/slave communication. Table 23.1-2 LIN-UART Operation Modes Data length Operation mode No parity 0 Normal mode With parity 7 bits or 8 bits 7 bits or 8 bits +1* 1 Multi processor mode 2 Normal mode 3 LIN mode Stop bit length Data bit format Asynchronous − 8 bits − 8 bits Synchronous method Asynchronous 1 bit or 2 bits Synchronous None, 1 bit, 2 bits Asynchronous 1 bit LSB first MSB first LSB first -: Unavailable *: "+1" is the address/data selection bit (AD) used for communication control in multiprocessor mode. The MD0 and MD1 bits in the LIN-UART serial mode register (SMR) are used to select the following LIN-UART operation modes. Table 23.1-3 LIN-UART Operation Modes MD1 MD0 Mode Type 0 0 0 Asynchronous (Normal mode) 0 1 1 Asynchronous (Multiprocessor mode) 1 0 2 Synchronous (Normal mode) 1 1 3 Asynchronous (LIN mode) • Mode 1 supports both master and slave operation for the multiprocessor mode. • Mode 3 is fixed to communication format 8-bit data, no parity, 1 stop bit, LSB-first. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 427 CHAPTER 23 LIN-UART 23.2 Configuration of LIN-UART 23.2 MB95100B/AM Series Configuration of LIN-UART LIN-UART is made up of the following blocks. • Reload Counter • Reception control circuit • Reception shift register • LIN-UART reception data register (RDR) • Transmit control circuit • Transmit shift register • LIN-UART transmit data register (TDR) • Error detection circuit • Oversampling circuit • Interrupt generation circuit • LIN synch break/Synch Field detection circuit • Bus idle detection circuit • LIN-UART serial control register (SCR) • LIN-UART serial mode register (SMR) • LIN-UART serial status register (SSR) • LIN-UART extended status control register (ESCR) • LIN-UART extended communication control register (ECCR) 428 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 23 LIN-UART 23.2 Configuration of LIN-UART MB95100B/AM Series ■ LIN-UART Block Diagram Figure 23.2-1 LIN-UART Block Diagram OTO, EXT, REST Machine clock PE ORE FRE Transmit clock Reload counter SCK Reception clock Reception control circuit Pin Interrupt generation circuit Transmit control circuit RBI TBI Start bit detection circuit Transmit start circuit Reception IRQ SIN Pin Restart reception reload counter TIE RIE LBIE LBD Reception bit counter Transmit bit counter Reception parity counter Transmit parity counter Transmission IRQ TDRE SOT Oversampling circuit Pin RDRF SOT SIN Internal signal to 8/16-bit composite timer LIN break/ Synch Field detection circuit SIN Transmit shift register Reception shift register Error detection PE ORE FRE RDR LIN break generation circuit Start transmission Bus idle detection circuit LBR LBL1 LBL0 TDR RBI LBD TBI Internal data bus PE ORE FRE RDRF TDRE BDS RIE TIE SSR register MD1 MD0 OTO EXT REST UPCL SCKE SOE SMR register PEN P SBL CL AD CRE RXE TXE SCR register LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES LBR MS ESCR SCDE register SSM ECCR register RBI TBI ● Reload counter This block is a 15-bit reload counter serving as a dedicated baud rate generator. The block consists of a 15-bit register for reload values; it generates the transmit/reception clock from the external or internal clock. The count value in the transmit reload counter is read from the baud rate generator 1, 0 (BGR1, BGR0). CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 429 CHAPTER 23 LIN-UART 23.2 Configuration of LIN-UART MB95100B/AM Series ● Reception control circuit This block consists of a reception bit counter, a start bit detection circuit, and a reception parity counter. The reception bit counter counts the reception data bits and sets a flag in the LINUART reception data register when one data reception is completed according to the specified data length. If the reception interrupt is enabled at this time, a reception interrupt request is generated. The start bit detection circuit detects a start bit in a serial input signal. When a start bit is detected, the circuit sends a signal to the reload counter in synchronization with the start bit falling edge. The reception parity counter calculates the parity of the received data. ● Reception shift register The circuit inputs received data from the SIN pin while bit-shifting and transfers it to the RDR register upon completion of reception. ● LIN-UART Reception Data Register (RDR) This register retains the received data. Serial input data is converted and stored in the LINUART reception data register. ● Transmit control circuit This block consists of a transmit bit counter, a transmission start circuit, and a transmit parity counter. The transmit bit counter counts the transmit data bits and sets a flag in the transmit data register when one data transmission is completed according to the specified data length. If the transmit interrupt is enabled at this time, a transmit interrupt request is generated. The transmit start circuit starts transmission when data is written to the TDR. The transmit parity counter generates a parity bit for data to be transmitted if the data is parity-checked. ● Transmit shift register The data written to the LIN-UART transmit data register (TDR) is transferred to the transmit shift register, and output to the SOT pin during bit-shifting. ● LIN-UART transmit data register (TDR) This register sets the transmit data. The written data is converted to serial data and output. ● Error detection circuit This circuit detects an error upon completion of reception, if any. If an error occurs, the corresponding error flag is set. ● Oversampling circuit In asynchronous mode, the LIN-UART oversamples received data for five times to determine the received value by majority. The LIN-UART stops during operation in synchronous mode. ● Interrupt generation circuit This circuit controls all interrupt factors. An interrupt is generated immediately if the corresponding interrupt enable bit has been set. ● LIN synch break/Synch Field detection circuit This circuit detects a LIN synch break when the LIN master node transmits a message header. The LBD flag is set when the LIN synch break is detected. An internal signal is output to 8/16bit compound timer in order to detect the first and fifth falling edges of the LIN synch Field and to measure the actual serial clock synchronization transmitted by the master node. 430 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 23 LIN-UART 23.2 Configuration of LIN-UART ● LIN synch break generation circuit This circuit generates a LIN synch break with the specified length. ● Bus idle detection circuit This circuit detects that no transmission or reception is in progress, and generates the TBI and RBI flag bits. ● LIN-UART serial control register (SCR) Operating functions are as follows: • Sets parity bit existence • Parity bit selection • Sets stop bit length • Sets data length • Selects the frame data format in mode 1 • Clears error flag • Enables/disables transmission • Enables/disables reception ● LIN-UART serial mode register (SMR) Operating functions are as follows: • Selects the LIN-UART operation mode • Selects a clock input source • Selects between one-to-one connection or reload counter connection for the external clock • Resets a dedicated reload timer • LIN-UART software reset (maintains register settings) • Enables/disables output to the serial data pin • Enables/disables output to the clock pin ● LIN-UART serial status register (SSR) Operating functions are as follows: • Check transmission/reception or error status • Selects the transfer direction (LSB-first or MSB-first) • Enables/disables reception interrupts • Enables/disables transmit interrupts ● Extended status control register (ESCR) • Enables/disables LIN synch break interrupts • LIN synch break detection • Selects LIN synch break length • Direct access to SIN pin and SOT pin • Sets continuous clock output in LIN-UART synchronous clock mode • Sampling clock edge selection CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 431 CHAPTER 23 LIN-UART 23.2 Configuration of LIN-UART MB95100B/AM Series ● LIN-UART extended communication control register (ECCR) • Bus idle detection • Synchronous clock setting • LIN synch break generation ■ Input Clock LIN-UART uses a machine clock or an input signal from the SCK pin as an input clock. Input clock is used as clock source of transmission/reception of LIN-UART. 432 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 23 LIN-UART 23.3 Pins of LIN-UART MB95100B/AM Series 23.3 Pins of LIN-UART This section describes LIN-UART pins. ■ Pins related to LIN-UART The LIN-UART pins also serve as general-purpose ports.Table 23.3-1 lists the LIN-UART pin. Table 23.3-1 LIN-UART Pins Pin name Pin function Required settings for using the pin SIN Serial data input Set to the input port (DDR: corresponding bit = 0) SOT Serial data output Set to output enable (SMR:SOE = 1) SCK Serial clock input/output Set to the input port when used as clock input (DDR: corresponding bit = 0) Set to output enable when used as clock output (SMR:SCKE = 1) ■ Block Diagram of LIN-UART Pins Figure 23.3-1 Block Diagram of LIN-UART Pins (SCK, SOT, SIN) Hysteresis Peripheral function input Peripheral function input enable Peripheral function output enable Peripheral function output Only P67 is selectable. 0 0 1 Automotive 1 CMOS 1 PDR read 0 1 Pin PDR 0 PDR write In bit operation instruction Internal bus DDR read DDR DDR write Stop, Watch (SPL=1) ILSR read ILSR ILSR write Only P67 is selectable. ILSR3 read ILSR3 ILSR3 write CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 433 CHAPTER 23 LIN-UART 23.4 Registers of LIN-UART 23.4 MB95100B/AM Series Registers of LIN-UART This section lists the registers of LIN-UART. ■ Register List of LIN-UART Figure 23.4-1 Register List of LIN-UART LIN-UART serial control register (SCR) Address 0050H bit7 PEN R/W bit6 P R/W bit5 SBL R/W bit4 CL R/W bit3 AD R/W bit2 CRE R0,W bit1 RXE R/W bit0 TXE R/W Initial value 00000000B bit4 EXT R/W bit3 REST R0,W bit2 UPCL R0,W bit1 SCKE R/W bit0 SOE R/W Initial value 00000000B bit2 BDS R/W bit1 RIE R/W bit0 TIE R/W Initial value 00001000B LIN-UART serial mode register (SMR) Address 0051H bit7 MD1 R/W bit6 MD0 R/W bit5 OTO R/W LIN-UART serial status register (SSR) Address 0052H bit7 PE R/WX bit6 ORE R/WX bit5 FRE R/WX bit4 bit3 RDRF TDRE R/WX R/WX LIN-UART reception data register/LIN-UART transmit data register (RDR/TDR) Address 0053H bit7 D7 R/W bit6 D6 R/W bit5 D5 R/W bit4 D4 R/W bit3 D3 R/W bit2 D2 R/W bit1 D1 R/W bit0 D0 R/W Initial value 00000000B bit3 SOPE R/W bit2 SIOP bit1 CCO R/W bit0 SCES R/W Initial value 00000100B bit1 bit0 Initial value RBI TBI 000000XXB R/WX R/WX bit7 bit6 bit5 bit4 bit3 bit2 bit1 − BGR14 BGR13 BGR12 BGR11 BGR10 BGR9 R0/WX R/W R/W R/W R/W R/W R/W bit0 BGR8 R/W Initial value 00000000B bit0 BGR0 R/W Initial value 00000000B LIN-UART extended status control register (ESCR) Address 0054H bit7 LBIE R/W bit6 LBD R(RM1),W bit5 LBL1 R/W bit4 LBL0 R/W R(RM1),W LIN-UART extended communication control register (ECCR) Address 0055H bit7 Reserv ed RX,W0 bit6 bit5 bit4 bit3 LBR MS SCDE SSM R0,W R/W R/W R/W bit2 Reser ved RX/W0 LIN-UART baud rate generator register 1 (BGR1) Address 0FBCH LIN-UART baud rate generator register 0 (BGR0) Address 0FBDH bit7 BGR7 R/W bit6 bit5 BGR6 BGR5 R/W R/W bit4 BGR4 R/W bit3 bit2 bit1 BGR3 BGR2 BGR1 R/W R/W R/W R/W : Readable/writable (Read value is the same as write value) R(RM1), W : Readable/writable (Read value is different from write value, "1" is read by read-modify-write (RMW) instruction) R/WX : Read only (Readable, writing has no effect on operation) R0, W : Write only (Writable, "0" is read) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) RX,W0 : Reserved bit (Write value is indeterminate, write value is "0") 434 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 23 LIN-UART 23.4 Registers of LIN-UART MB95100B/AM Series 23.4.1 LIN-UART Serial Control Register (SCR) The LIN-UART serial control register (SCR) is used to set parity, select the stop bit length and data length, select the frame data format in mode 1, clear the reception error flag, and enable/disable transmission/reception. ■ LIN-UART Serial Control Register (SCR) Figure 23.4-2 LIN-UART Serial Control Register (SCR) Address 0050H bit1 bit0 bit7 bit6 bit5 bit4 bit3 PEN P SBL CL AD CRE RXE TXE bit2 Initial value 00000000 B R/W R/W R/W R/W R/W R0,W R/W R/W Transmit operation enable bit TXE 0 Disable transmission 1 Enable transmission Reception operation enable bit RXE 0 Disable reception 1 Enable reception Reception error flag clear bit Write CRE R/W : Readable/writable (Read value is the same as write value) RX,WO : Write only (Writable, "0" is read) : Initial value CM26-10112-4E 0 No effect 1 Clear reception error flag (PE, FRE, ORE) Data frame 1 Address data frame Data length selection bit CL 0 7-bit 1 8-bit SBL 0 1-bit 1 2-bit P 0 Even parity 1 Odd parity 1 "0" is always read Address/data format selection bit AD 0 PEN 0 Read Stop bit length selection bit Parity selection bit Parity enable bit No parity With parity FUJITSU MICROELECTRONICS LIMITED 435 CHAPTER 23 LIN-UART 23.4 Registers of LIN-UART MB95100B/AM Series Table 23.4-1 Functions of Each Bit in LIN-UART Serial Control Register (SCR) Bit name Function bit7 PEN: Parity enable bit Specify whether or not to add (at transmission) and detect (at reception) a parity bit. Note: The parity bit is added only in operation mode 0, or in operation mode 2 with the settings that start/stop is set (ECCR:SSM=1). This bit is fixed to "0" in mode 3 (LIN). bit6 P: Parity selection bit Set either odd parity (1) or even parity (0) if the parity bit has been selected (SCR:PEN = 1). bit5 SBL: Stop bit length selection bit Set the bit length of the stop bit (frame end mark in transmit data) in operation mode 0, 1 (asynchronous) or in operation mode 2 (synchronous) with the settings that start/stop bit is set (ECCR:SSM=1). This bit is fixed to "0" in mode 3 (LIN). bit4 CL: Data length selection bit Specify the data length to be transmitted and received. This bit is fixed to "1" in mode 2 and mode 3. AD: Address/Data format selection bit Specify the data format for the frame to be transmitted and received in multiprocessor mode (mode 1). Write to this bit in master mode; read this bit in slave. The operation in master mode is as follows. "0": Set to data frame. "1": Set to address data frame. The value of last received data format is read. Note: See Section "23.8 Notes on Using LIN-UART" for using this bit. CRE: Reception error flag clear bit This bit is to clear FRE, ORE, and PE flags in serial status register (SSR). "0":No effect. "1": Clear the error flag. Reading this bit always returns "0". Note: Disable the reception operation (RXE=0) first, and then clear the reception error flags. If an error flag is cleared before the reception operation is disabled, the reception will be aborted at that time, and resume later. This may result in a data reception error. bit1 RXE: Reception operation enable bit Enable or disable the reception of LIN-UART. "0": Disable data frame reception. "1": Enable data frame reception. The LIN synch break detection in mode 3 is not affected. Note: When the reception is disabled (RXE = 0) during reception, the reception halts immediately. In that case, the data is not guaranteed. bit0 TXE: Transmit operation enable bit Enable or disable the transmission of LIN-UART. "0": Disable data frame transmission. "1": Enable data frame transmission. Note: When the transmission is disabled (TXE = 0) during transmission, the transmission halts immediately. In that case, the data is not guaranteed. bit3 bit2 436 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 23 LIN-UART 23.4 Registers of LIN-UART MB95100B/AM Series 23.4.2 LIN-UART Serial Mode Register (SMR) The LIN-UART serial mode register (SMR) is used to select the operation mode, specify the baud rate clock, and enable/disable output to the serial data and clock pins. ■ LIN-UART Serial Mode Register (SMR) Figure 23.4-3 LIN-UART Serial Mode Register (SMR) Address bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 0051H MD1 MD0 OTO EXT REST UPCL SCKE SOE R/W R/W R/W R/W R0,W R0,W R/W R/W Initial value 00000000 B LIN-UART serial data output enable bit SOE 0 General-purpose I/O port 1 LIN-UART serial data output pin SCKE 0 1 LIN-UART serial clock output enable bit General-purpose I/O port or LIN-UART clock input pin LIN-UART serial clock output pin LIN-UART programmable clear bit UPCL No effect 1 LIN-UART reset REST 1 Restart the reload counter Read "0" is always read External serial clock source selection bit Use the baud rate generator (reload counter) 1 CM26-10112-4E "0" is always read Write No effect 0 : Initial value Read Reload counter restart bit 0 EXT R/W : Readable/writable (Read value is the same as write value) R0,W : Write only (Writable, "0" is read) Write 0 Use the external serial clock source OTO One-to-one external clock input enable bit 0 Use the baud rate generator (reload counter) 1 Use the external clock directly Operation mode selection bits MD1 MD0 0 0 Mode 0: asynchronous normal 0 1 Mode 1: asynchronous multiprocessor 1 0 Mode 2: synchronous 1 1 Mode 3: asynchronous LIN FUJITSU MICROELECTRONICS LIMITED 437 CHAPTER 23 LIN-UART 23.4 Registers of LIN-UART MB95100B/AM Series Table 23.4-2 Functions of Each Bit in LIN-UART Serial Mode Register (SMR) Bit name Function Set the operation mode. Note: If the mode is changed during communication, the transmission/ reception of LIN-UART halts and waits for starting the next communication. MD1, MD0: bit7, Operation mode bit6 select bits OTO: One-to-one external bit5 clock input enable bit EXT: External serial bit4 clock source select bit REST: bit3 Reload counter restart bit MD1 MD0 Mode Type 0 0 0 Asynchronous (Normal mode) 0 1 1 Asynchronous (Multiprocessor mode) 1 0 2 Synchronous (Normal mode) 1 1 3 Asynchronous (LIN mode) "1": Enable the external clock to be used directly as the LIN-UART serial clock. Used for reception side of serial clock (ECCR:MS = 1) in operation mode 2 (synchronous). When EXT = 0, the OTO bit is fixed to "0". Select a clock input. "0": Select the clock of the internal baud rate generator (reload counter). "1": Select the external serial clock source. Restart the reload counter. "0": No effect. "1": Restart the reload counter. Reading this bit always returns "0". UPCL: Reset the LIN-UART. LIN-UART "0": No effect. programmable clear "1": Reset the LIN-UART immediately (LIN-UART software reset). However, the register bit settings are maintained. At that time, transmission and reception are halted. bit2 (Reset the LINAll of the transmit/reception interrupt factors (TDRE, RDRF, LBD, PE, ORE, FRE) are UART software reset. Reset the LIN-UART after the interrupt and transmission are disabled. Also, the reset) reception data register is cleared (RDR = 00H), and the reload counter is restarted. Reading this bit always returns "0". SCKE: LIN-UART bit1 serial clock output enable bit SOE: LIN-UART bit0 serial data output enable bit 438 Control the serial clock I/O port. "0": The SCK pin works as a general-purpose I/O port or a serial clock input pin. "1": This pin works as the serial clock output pin and outputs the clock in operation mode 2 (synchronous). Note: When the SCK pin is used as a serial clock input (SCKE = 0), set the corresponding DDR bits in the general-purpose I/O port as an input port. Also, select the external clock (EXT = 1) by using the clock select bit. When the SCK pin is set as a serial clock output (SCKE = 1), this pin works as a serial clock output pin regardless of the state of the general-purpose I/O port. Enable or disable output of serial data. "0": The SOT pin works as a general-purpose I/O port. "1": The SOT pin works as a serial data output pin (SOT). When set as a serial data output (SOE = 1), the SOT pin works as a SOT pin regardless of a general-purpose I/O port. FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 23 LIN-UART 23.4 Registers of LIN-UART MB95100B/AM Series 23.4.3 LIN-UART Serial Status Register (SSR) The LIN-UART serial status register (SSR) is used to check the status of transmission/reception or error, and to enable/disable interrupts. ■ LIN-UART Serial Status Register (SSR) Figure 23.4-4 LIN-UART serial status register (SSR) Address 0052H bit7 bit6 bit5 bit4 bit3 bit2 PE ORE FRE RDRF TDRE BDS RIE TIE R/WX R/WX R/WX R/WX Initial value bit1 bit0 00001000B R/WX R/W R/W R/W TIE 0 1 Transmit interrupt request enable bit Disable transmit interrupts. Enable transmit interrupts. Reception interrupt request enable bit RIE 0 Disable reception interrupts. 1 Enable reception interrupts. BDS 0 LSB-first (transfer from the least significant bit) 1 MSB-first (transfer from the most significant bit) TDRE Transfer direction selection bit Transmit data empty flag bit 0 Transmit data register (TDR) has data. 1 Transmit data register (TDR) is empty. Reception data full flag bit RDRF 0 Reception data register (RDR) is empty. 1 Reception data register (RDR) has data. FRE 0 1 ORE 0 Framing error flag bit No framing error Framing error exists Overrun error flag bit No overrun error 1 Overrun error exists PE 0 Not parity error 1 Parity error exists Parity error flag bit R/W : Readable/writable (Read value is the same as write value) R/WX : Read only (Readable, writing has no effect on operation) : Initial value CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 439 CHAPTER 23 LIN-UART 23.4 Registers of LIN-UART MB95100B/AM Series Table 23.4-3 Functions of Each Bit in serial status register (SSR) Bit name Function PE: Parity error flag bit Detect a parity error in received data. • This bit is set to "1" when a parity error occurs during reception with PEN = 1, and cleared by writing "1" to the CRE bit in the LIN-UART serial control register (SCR). • Output a reception interrupt request when both PE bit and RIE bit are "1". • When this flag is set, the data in the reception data register (RDR) is invalid. ORE: Overrun error flag bit Detect an overrun error in received data. • This bit is set to "1" when an overrun occurs during reception, and cleared by writing "1" to the CRE bit in the LIN-UART serial control register (SCR). • Output a reception interrupt request when both ORE bit and RIE bit are "1". • When this flag is set, the data in the reception data register (RDR) is invalid. bit5 FRE: Framing error flag bit Detect a framing error in received data. • This bit is set to "1" when a framing error occurs during reception, and cleared by writing "1" to the CRE bit in the LIN-UART serial control register (SCR). • Output a reception interrupt request when both FRE bit and RIE bit are "1". • When this flag is set, the data in the reception data register (RDR) is invalid. bit4 RDRF: Reception data full flag bit This flag shows the status of the reception data register (RDR). • This bit is set to "1" when received data is loaded into the reception data register (RDR), and cleared to "0" by reading RDR. • Output a reception interrupt request when both RDRF bit and RIE bit are "1". TDRE: Transmit data empty flag bit This flag shows the status of the transmit data register (TDR). • This bit is set to "0" by writing the transmit data to TDR, and indicates that the TDR has valid data.This bit is set to "1" when data is loaded into the transmit shift register and the transmission starts, and indicates that the TDR does not have effective data. • Output a transmit interrupt request when both TDRE bit and TIE bit are "1". • When the TDRE bit is "1", setting the LBR bit in the extended communication control register (ECCR) to "1" changes the TDRE bit to "0". Then, the TDRE bit goes back to "1" after LIN sync break is generated. Note: The initial state is TDRE = 1. bit2 BDS: Transfer direction selection bit Specify whether the transfer serial data is transfer from the least significant bit (LSBfirst, BDS = 0) or from the most significant bit (MSB-first, BDS = 1). Note: Since data values are exchanged between the upper and lower when the data is read/written to the serial data register, changing BDS bit after writing data to the RDR register invalidates the written data. The BDS bit is fixed to "0" in mode 3 (LIN). bit1 RIE: Reception interrupt request enable bit Enable or disable the reception interrupt request output to the interrupt controller. Output a reception interrupt request when both the RIE bit and the reception data flag bit (RDRF) are "1", or when one or more error flag bits (PE, ORE, FRE) is "1". bit0 TIE: Transmit interrupt request enable bit Enable or disable the transmit interrupt request output to the interrupt controller. Output a transmit interrupt request when both TIE bit and TDRE bit are "1". bit7 bit6 bit3 440 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 23 LIN-UART 23.4 Registers of LIN-UART MB95100B/AM Series 23.4.4 LIN-UART Reception Data Register/LIN-UART Transmit Data Register (RDR/TDR) The LIN-UART reception and LIN-UART transmit data registers are located at the same address. If read, they work as the reception data register; if written, they work as the transmit data register. ■ LIN-UART Reception Data Register (RDR/TDR) Figure 23.4-5 shows the LIN-UART reception data register/LIN-UART transmit data register. Figure 23.4-5 LIN-UART Reception Data Register/LIN-UART Transmit Data Register (RDR/TDR) Address 0053H bi t 7 6 5 4 3 2 1 0 Initial value 00000000 B R/W R/W R/W R/W R/W R/W R/W R/W Data register R/W Read Write Read from the LIN-UART reception data register Write to the LIN-UART transmit data register R/W : Readable/writable (Read value is the same as write value) ■ LIN-UART Reception Data Register (RDR) The LIN-UART reception data register (RDR) is the data buffer register for the serial data reception. Serial data signal transmitted to the serial input pin (SIN pin) is converted via a shift register and stored in the LIN-UART reception data register (RDR). If the data length is 7 bits, the upper 1 bit (RDR:D7) is "0". The reception data full flag bit (SSR:RDRF) is set to "1" when received data is stored into the LIN-UART reception data register (RDR). If the reception interrupt is enabled (SSR:RIE = 1), a reception interrupt request is generated. The LIN-UART reception data register (RDR) should be read when the reception data full flag bit (SSR:RDRF) is "1".The reception data full flag bit (SSR:RDRF) is automatically cleared to "0" by reading the LIN-UART reception data register (RDR). Also, the reception interrupt is cleared when the reception interrupt is enabled and no error occurs. When the reception error occurs (any of SSR:PE, ORE, or FRE is "1"), the data in the LINUART reception data register (RDR) is invalid. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 441 CHAPTER 23 LIN-UART 23.4 Registers of LIN-UART MB95100B/AM Series ■ LIN-UART Transmit Data Register (TDR) The LIN-UART transmit data register (TDR) is the data buffer register for the serial data transmission. If the data to be transmitted is written to the LIN-UART transmit data register (TDR) when transmission is enabled (SCR:TXE = 1), the transmit data is transferred to the transmission shift register, converted to serial data, and output from the serial data output pin (SOT pin). If the data length is 7 bits, the data in the upper 1 bit (TDR:D7) is invalid. The transmit data empty flag (SSR:TDRE) is cleared to "0" when a transmit data is written to the LIN-UART transmit data register (TDR). The transmit data empty flag (SSR:TDRE) is set to "1" after the data is transferred to the transmission shift register and the transmission starts. If the transmit data empty flag (SSR:TDRE) is "1", the next transmit data can be written. If the transmit interrupt is enabled, a transmit interrupt is generated. The next transmit data should be written by generating the transmit interrupt, or when the transmit data empty flag (SSR:TDRE) is "1". Note: The LIN-UART transmit data register is a write-only register; the reception data register is a read-only register. Since both registers are located at the same address, the write value and read value are different. Thus, the instructions to operate the read-modify-write (RMW) instruction, such as the INC/DEC instruction, cannot be used. 442 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 23 LIN-UART 23.4 Registers of LIN-UART MB95100B/AM Series 23.4.5 LIN-UART Extended Status Control Register (ESCR) The LIN-UART extended status control register (ESCR) has the settings for enabling/disabling LIN synch break interrupt, LIN synch break length selection, LIN synch break detection, direct access to the SIN and SOT pins, continuos clock output in LIN-UART synchronous clock mode and sampling clock edge. ■ Bit Configuration of LIN-UART Extended Status Control Register (ESCR) Figure 23.4-6 shows the bit configuration of the LIN-UART extended status control register (ESCR). Table 23.4-4 lists the function of each bit in LIN-UART extended status control register (ESCR). Figure 23.4-6 Bit Configuration of LIN-UART Extended Status Control Register (ESCR) Address 0054H bit7 bit6 LBIE LBD R/W R(RM1),W bit5 bit4 bit3 bit2 bit1 Initial value bit0 00000100B LBL1 LBL0 SOPE SIOP CCO SCES R/W R/W R/W R(RM1),W R/W R/W Sampling clock edge selection bit (mode 2) SCES 0 Sampling with rising clock edge (normal) 1 Sampling with falling clock edge (inverted clock) CCO 0 1 SIOP 0 1 Continuous clock output enable bit (mode 2) Disable continuous clock output Enable continuous clock output Serial I/O pin direct access bit Write (SOPE = 1) Read Fix SOT pin to "0" Read the value of SIN pin Fix SOT pin to "1" SOPE Serial output pin direct access enable bit 0 Disable serial output pin direct access 1 Enable serial output pin direct access LBL0 0 1 0 1 LBD 0 1 R/W LBL1 0 0 1 1 LIN synch break length selection bits 13 bits 14 bits 15 bits 16 bits LIN synch break detection flag bit Write Read LIN synch break detection No LIN synch break flag clear detection With LIN synch break detection No effect : Readable/writable (Read value is the same as write value) R(RM1),W : Readable/writable (Read value is different from write value, "1" is read by read-modify-write (RMW) instruction) LBIE 0 1 LIN synch break detection interrupt enable bit Disable LIN synch break detection interrupt Enable LIN synch break detection interrupt : Initial value CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 443 CHAPTER 23 LIN-UART 23.4 Registers of LIN-UART MB95100B/AM Series Table 23.4-4 Functions of Each Bit in LIN-UART Extended Status Control Register (ESCR) Bit name Function LBIE: LIN synch break detection interrupt enable bit This bit enables or disables LIN synch break detection interrupts. An interrupt is generated when the LIN synch break detection flag (LBD) is "1" and the interrupt is enabled (LBIE = 1). This bit is fixed to "0" in mode 1 and mode 2. bit6 LBD: LIN synch break detection flag bit Detect LIN synch break. This bit is set to "1" when the LIN synch break is detected in operation mode 3 (the serial input is "0" when bit width is 11 bits or more). Also, writing "0" clears the LBD bit and the interrupt.Although the bit is always read as "1" when the read-modify-write (RMW) instruction is executed, this does not indicate that a LIN synch break detected. Note: To detect a LIN synch break, enable the LIN synch break detection interrupt (LBIE = 1), and then disable the reception (SCR:RXE = 0). bit5, bit4 LBL1/LBL0: These bits specify the bit length for the LIN synch break generation time. LIN synch break length selection bits The LIN synch break length for reception is always 11 bits. bit3 SOPE: Serial output pin direct access enable bit* Enable or disable direct writing to the SOT pin. Setting this bit to "1" when serial data output is enabled (SMR:SOE = 1) enables direct writing to the SOT pin.* SIOP: Serial I/O pin direct access bit* Control direct access to the serial I/O pin. Normal read instruction always returns the value of the SIN pin. When direct access to the serial output pin data is enabled (SOPE = 1), the value written to this bit reflects the SOT pin.* Note: The bit operation instruction returns the bit value of the SOT pin in the read cycle. CCO: Continuous clock output enable bit Enable or disable continuous serial clock output from the SCK pin. Setting this bit to "1" with sending side of serial clock in operation mode 2 (synchronous) enables the continuous serial clock output from the SCK pin if the pin is set as a clock output. Note: When the CCO bit is "1", the SSM bit in the ECCR should be "1". SCES: Sampling clock edge select bit Select a sampling edge. Setting the SCES to "1" in reception side of serial clock in operation mode 2 (synchronous) switches the sampling edge from the rising edge to the falling edge. When the SCK pin is set as the clock output with sending side of serial clock (ECCR:MS = 0) in operation mode 2, the internal serial clock and the output clock signal are inverted. This bit should be "0" in operation modes 0, 1, and 3. bit7 bit2 bit1 bit0 *: Interaction between SOPE and SIOP SOPE SIOP Write to SIOP Read from SIOP 0 R/W No effect (however, the write value is retained) Return the SIN value 1 R/W Write "0" or "1" to SOT Return the SIN value 1 RMW 444 Read the SOT value, write "0" or "1" FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 23 LIN-UART 23.4 Registers of LIN-UART MB95100B/AM Series 23.4.6 LIN-UART Extended Communication Control Register (ECCR) The LIN-UART extended communication control register (ECCR) is used for the bus idle detection, the synchronous clock setting, and the LIN Synch break generation. ■ Bit Configuration of LIN-UART Extended Communication Control Register (ECCR) Figure 23.4-7 shows the bit configuration of the LIN-UART extended communication control register (ECCR). Table 23.4-5 lists the function of each bit in the LIN-UART extended communication control register (ECCR). Figure 23.4-7 Bit Configuration of LIN-UART Extended Communication Control Register (ECCR) Address bit7 0055H Reserved bit6 bit5 bit4 bit3 bit2 LBR MS SCDE SSM Reserved bit1 bit0 Initial value RBI TBI 000000XXB RX,W0R0,W R/W R/W R/W RX,W0 R/WX R/WX TBI* 0 1 Transmit bus idle detection flag bit In transmission No transmission RBI* 0 1 In reception No reception Reception bus idle detection flag bit Reserved bit The read value is indeterminate. "0" is always set. SSM 0 1 Start/stop enable bit (mode 2) No start/stop bit With start/stop bit SCDE 0 1 Serial clock delay enable bit (mode 2) Disable clock delay Enable clock delay MS 0 1 LBR 0 1 R/W R/WX R0,W RX,W0 X : Readable/writable (Read value is the same as write value) : Read only (Readable, writing has no effect on operation) : Write only (Writable, "0" is read) : Reserved bit (Write value is always "0", read value is undefined) : Indeterminate : Initial value *: Unused when SSM = 0 in operation mode 2 CM26-10112-4E Sending side/receiving side of serial clock selection bit (mode 2) Sending side of serial clock (serial clock generation) Receiving side of serial clock(external serial clock reception) LIN synch break generation bit (mode 3) Write Read No effect LIN synch break generation "0" is always read Reserved bit The read value is indeterminate. "0" is always set. FUJITSU MICROELECTRONICS LIMITED 445 CHAPTER 23 LIN-UART 23.4 Registers of LIN-UART MB95100B/AM Series Table 23.4-5 Functions of Each Bit in LIN-UART Extended Communication Control Register (ECCR) Bit name 446 Function The read value is indeterminate. "0" is always set. bit7 Reserved bit bit6 Setting this bit to "1" in mode 3 generates a LIN synch break which has the LBR: length specified by LBL0/1 in the ESCR. LIN Synch break generation bit This bit should be "0" in mode 0, 1, and 2. bit5 MS: Sending side/receiving side of serial clock select bit Select sending side/receiving side of serial clock in mode 2. When sending side "0" is selected, generate a synchronous clock. When receiving side "1" is selected, receive an external serial clock. This bit is fixed to "0" in modes 0, 1, and 3. Modify this bit only when the SCR:TXE bit is "0". Note: When receiving side of serial clock is selected, the clock source must be set as an external clock and the external clock input must be enabled (SMR:SCKE = 0, EXT = 1, OTO = 1). bit4 SCDE: Serial clock delay enable bit Setting the SCDE bit to "1" at sending side of serial clock in mode 2 outputs a delayed serial clock as shown in Figure 23.7-5. This bit is effective in serial peripheral interface. This bit is fixed to "0" in modes 0, 1, and 3. bit3 SSM: Start/stop bit mode enable bit Add the start/stop bit to the synchronous data format when this bit is set to "1" in mode 2. This bit is fixed to "0" in modes 0, 1, and 3. bit2 Reserved bit The read value is indeterminate. "0" is always set. bit1 RBI: Reception bus idle detection flag bit When the SIN pin is "H" level and reception is not performed, this bit is "1". Do not use this bit when SSM = 0 in operation mode 2. bit0 TBI: Transmit bus idle detection flag bit This bit is "1" when there is no transmission on the SOT pin.Do not use this bit when SSM = 0 in operation mode 2. FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 23 LIN-UART 23.4 Registers of LIN-UART MB95100B/AM Series 23.4.7 LIN-UART Baud Rate Generator Register 1, 0 1, 0 (BGR1, BGR0) The LIN-UART baud rate generator register 1, 0 (BGR1, BGR0) sets the division ratio of the serial clock. Also, the count value in the transmit reload counter is read from this generator. ■ Bit Configuration of LIN-UART Baud Rate Generator Register 1, 0 (BGR1, BGR0) Figure 23.4-8 shows the bit configuration of LIN-UART baud rate generator register 1, 0 (BGR1, BGR0). Figure 23.4-8 Bit Configuration of LIN-UART Baud Rate Generator Register 1, 0 (BGR1, BGR0) Address 0FBCH BGR1 bit7 bit0 Initial value BGR14 BGR13 BGR12 BGR11 BGR10 BGR9 BGR8 00000000 B bit6 bit5 bit4 bit3 bit2 bit1 R0/WX R/W R/W R/W R/W R/W R/W R/W Write to reload counter bit 8 to bit 14. Read transmit reload counter bit 8 to bit 14. Read Undefined bit "0" is read. bit0 Initial value 0FBDH BGR7 BGR6 BGR5 BGR4 BGR3 BGR2 BGR1 BGR0 00000000 B Address BGR0 R/W Write Read bit7 bit6 bit5 bit4 bit3 bit2 bit1 LIN-UART baud rate generator register 1 R/W R/W R/W R/W R/W R/W R/W R/W R/W Write Read LIN-UART baud rate generator register 0 Write to reload counter bit 0 to bit 7. Read transmit reload counter bit 0 to bit 7. R/W : Readable/writable (Read value is the same as write value) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) The LIN-UART baud rate generator register sets the division ratio of the serial clock. BGR1 is associated with the upper bits; BGR0 is associated with the lower bits. The reload value of the counter can be written and the transmit reload counter value can be read from them. Byte/word access is also possible. Writing a reload value to the LIN-UART baud rate generator registers causes the reload counter to start counting. Note: Write to this register when LIN-UART stops. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 447 CHAPTER 23 LIN-UART 23.5 Interrupt of LIN-UART 23.5 MB95100B/AM Series Interrupt of LIN-UART The LIN-UART has reception interrupts and transmit interrupts, which are generated by following factor and have the assigned interrupt number and interrupt vector. Also, it has the LIN synch field edge detection interrupt function using the 8/16-bit compound timer interrupt. • Reception interrupt When the received data is set in the reception data register (RDR), or when a reception error occurs. Also, when a LIN synch break is detected. • Transmit interrupt When the transmit data is transferred from the transmit data register (TDR) to the transmission shift register, and the transmission starts. ■ Reception Interrupt Table 23.5-1 shows the interrupt control bits and interrupt factors of reception interrupts. Table 23.5-1 Interrupt Control Bits and Interrupt Factors of Reception Interrupts Interrupt request flag bit Flag register 0 1 2 3 RDRF SSR ❍ ❍ ❍ ❍ Write received data to RDR ORE SSR ❍ ❍ ❍ ❍ Overrun error FRE SSR ❍ ❍ Δ ❍ Framing error PE SSR ❍ ✕ Δ ✕ Parity error LBD ESCR ✕ ✕ ✕ ❍ LIN synch break detection Operation mode Interrupt source Interrupt factor enable bit Clearing of interrupt request flag Read received data SSR:RIE Write "1" to reception error flag clear bit (SCR:CRE) ESCR:LBIE Write "0" to ESCR:LBD ❍: Used bit ✕: Unused bit Δ: Only ECCR:SSM = 1 available ● Reception interrupt Each flag bit in the LIN-UART serial status register (SSR) is set to "1" when any of following operation occurs in reception mode: Data reception completed When the reception data is transferred from the serial input shift register to the LIN-UART reception data register (RDR) (RDRF = 1) Overrun error When the following serial data is received when RDRF = 1 and the RDR is not read by the CPU (ORE = 1) Framing error When the stop bit reception error occurs (FRE = 1) Parity error When the parity detection error occurs (PE = 1) 448 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 23 LIN-UART 23.5 Interrupt of LIN-UART MB95100B/AM Series A reception interrupt request is generated if the reception interrupt is enabled (SSR:RIE = 1) when any of the above flag bits is "1". RDRF flag is automatically cleared to "0" by reading the LIN-UART reception data register (RDR). All of error flags are cleared to "0" by writing "1" to the reception error flag clear bit (CRE) in the LIN-UART serial control register (SCR). Note: For the CRE bit, disable the reception operation (RXE=0) first, and then clear the reception error flags.If an error flag is cleared before the reception operation is disabled, the reception will be aborted at that time, and resume later. This may result in a data reception error. ● LIN synch break interrupts Works for LIN slave operation in operation mode 3. The LIN synch break detection flag bit (LBD) in the LIN-UART extended status control register (ESCR) is set to "1" when the internal data bus (serial input) is "0" for 11 bits or longer. The LIN synch break interrupt and the LBD flag are cleared by writing "0" to the LBD flag. The LBD flag must be cleared before the 8/16-bit compound timer interrupt is generated in the LIN synch field. To detect a LIN synch break, the reception must be disabled (SCR:RXE = 0). ■ Transmit Interrupts Table 23.5-2 shows the interrupt control bits and interrupt factors of transmit interrupts. Table 23.5-2 Interrupt Control Bits and Interrupt Factors of Transmit Interrupts Interrupt request flag bit Flag register 0 1 2 3 TDRE SSR ❍ ❍ ❍ ❍ Operation mode Interrupt factor Transmit register is empty Interrupt request enable bit SSR:TIE Clearing of interrupt request flag Write transmit data ❍: Used bit ● Transmit interrupt The transmit data register empty flag bit (TDRE) in the LIN-UART serial status register (SSR) is set to "1" when the transmit data is transferred from the LIN-UART transmit data register (TDR) to the transmission shift register, and the transmission starts. If the transmit interrupt is enabled (SSR:TIE = 1) in this case, a transmit interrupt request is generated. Note: Since the initial value of TDRE is "1", an interrupt is generated immediately after the TIE bit is set to "1" after hardware/software reset.Also, the TDRE is cleared only by writing data to the LIN-UART transmit data register (TDR). CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 449 CHAPTER 23 LIN-UART 23.5 Interrupt of LIN-UART MB95100B/AM Series ■ LIN Synch Field Edge Detection Interrupt (8/16-bit Compound Timer Interrupt) Table 23.5-3 shows the interrupt control bits and interrupt factors of the LIN synch field edge detection interrupt. Table 23.5-3 Interrupt Control Bits and Interrupt Factors of LIN Synch Field Edge Detection Interrupt Interrupt request flag bit Flag register 0 1 2 3 IR T00CR1 ✕ ✕ ✕ ❍ First falling edge of the LIN synch field ❍ Fifth falling edge of the LIN synch field IR T00CR1 Operation mode Interrupt source enable bit Interrupt source ✕ ✕ ✕ T00CR1:IE Clearing of interrupt request flag Write "0" to T00CR1:IR ❍: Used bit X: Unused bit ● LIN synch field edge detection interrupt (8/16-bit compound timer interrupt) Works for LIN slave operation in operation mode 3. After a LIN synch break is detected, the internal signal (LSYN) is set to "1" at the first falling edge of the LIN synch field, and set to "0" after the fifth falling edge. When the 8/16-bit compound timer is configured to be input the internal signal and to detect both edges, a 8/16bit compound timer interrupt is generated if enabled. The difference in the count values detected by the 8/16-bit compound timer (see Figure 23.5-1) corresponds to the 8 bits in the master serial clock. The new baud rate can be calculated from this value. When a new baud rate is set, the rate become effective from the falling edge detection of the specified next start bit. Figure 23.5-1 Baud Rate Calculation by 8/16-bit Compound Timer L IN synch field Reception data Start 0 1 2 3 4 5 6 7 Stop Data =55H Internal signal (LSYN) 8/16-bit composite timer Capture value 1 Capture value 2 Difference in count values = Capture value 2 - Capture Value 1 450 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 23 LIN-UART 23.5 Interrupt of LIN-UART MB95100B/AM Series ■ Register and Vector Table Related to LIN-UART Interrupt Table 23.5-4 Register and Vector Table Related to LIN-UART Interrupt CM26-10112-4E Interrupt level setting register Interrupt request number Registers Setting bit Upper Lower Reception IRQ7 ILR1 L07 FFECH FFEDH Transmission IRQ8 ILR2 L08 FFEAH FFEBH Interrupt sources FUJITSU MICROELECTRONICS LIMITED Vector table address 451 CHAPTER 23 LIN-UART 23.5 Interrupt of LIN-UART 23.5.1 MB95100B/AM Series Reception Interrupt Generation and Flag Set Timing Reception interrupts are a reception completion and an occurrence of a reception error. ■ Reception Interrupt Generation and Flag Set Timing Received data is stored in the LIN-UART reception data register (RDR) when the first stop bit is detected in mode 0, 1, 2 (SSM =1), 3, or when the last data bit is detected in mode 2 (SSM = 0). Each error flag is set when a reception is completed (SSR:RDRF = 1), or when a reception error occurs (SSR:PE, ORE, FRE = 1). If the reception interrupt is enabled (SSR:RIE = 1) at this time, a reception interrupt is generated. Note: When a reception error occurs in each mode, the data in the LIN-UART reception data register (RDR) is invalid. Figure 23.5-2 shows the timing of reception and flag set. Figure 23.5-2 Timing of Reception and Flag Set Reception data (Mode 0/3) ST D0 D1 D2 ... D5 D6 D7/P SP ST Reception data (Mode 1) ST D0 D1 D2 ... D6 D7 AD SP ST D0 D1 D2 ... D4 D5 D6 D7 D0 Reception data (Mode 2) PE*1 , FRE RDRF ORE*2 (RDRF = 1) Reception *1 : PE flag is always "0" in modes 1 and 3. *2 : An overrun error is generated if the next data is transferred before a received data is read (RDRF = 1). ST : Start bit, SP: Stop bit, AD: Mode 1 (multiprocessor) address data select bit Note: Figure 23.5-2 does not show all receptions in mode 0. It only shows examples for 7-bit data, parity (even parity or odd parity), 1 stop bit and 8-bit data, no parity, 1 stop bit. 452 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 23 LIN-UART 23.5 Interrupt of LIN-UART MB95100B/AM Series Figure 23.5-3 ORE Flag Set Timing Reception data ST 0 1 2 3 4 5 6 7 SP ST 0 1 2 3 4 5 6 7 SP RDRF ORE CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 453 CHAPTER 23 LIN-UART 23.5 Interrupt of LIN-UART 23.5.2 MB95100B/AM Series Transmit Interrupt Generation and Flag Set Timing Transmit interrupts are generated when the transmit data is transferred from the LIN-UART transmit data register (TDR) to the transmission shift register and then the transmission starts. ■ Transmit Interrupt Generation and Flag Set Timing When the data written to the LIN-UART transmit data register (TDR) is transferred to the transmission shift register and then the transmission starts, the next data becomes to be writable (SSR:TDRE = 1). If the transmit interrupt is enabled (SSR:TIE = 1) at this time, a transmit interrupt is generated. TDRE bit is a read-only bit and cleared to "0" only by writing data to the LIN-UART transmit data register (TDR). Figure 23.5-4 shows the timing of the transmission and flag set. Figure 23.5-4 Timing of Transmission and Flag Set Transmit interrupts generated Transmit interrupts generated Modes 0, 1, and 3: Write to TDR TDRE Serial output ST D0 D1 D2 D3 D4 D5 D6 D7 P SP ST D0 D1 D2 D3 D4 D5 D6 D7 P SP AD AD Transmit interrupts generated Transmit interrupts generated Mode 2 (SSM = 0): Write to TDR TDRE Serial output D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 ST: Start bit, D0 to D7: Data bits, P: Parity, SP: Stop bit AD: Address data select bit (mode 1) Note: Figure 23.5-4 does not show all transmissions in mode 0. It only shows "8P1" (P= "even parity" or "odd parity"). No parity bit is transmitted in mode 3, or in mode 2 with SSM = 0. 454 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 23 LIN-UART 23.5 Interrupt of LIN-UART ■ Transmit Interrupt Request Generation Timing When TDRE flag is set to "1" if the transmit interrupt is enabled (SSR:TIE = 1), a transmit interrupt is generated. Note: Since the TDRE bit is initially set to "1", a transmit interrupt is generated immediately after the transmit interrupt is enabled (SSR:TIE = 1).Be careful with the timing for enabling the transmit interrupt since the TDRE bit can be cleared only by writing new data to the LINUART transmit data register (TDR). Refer to "APPENDIX B Table of Interrupt Causes" for the interrupt request numbers and vector tables of all peripheral functions. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 455 CHAPTER 23 LIN-UART 23.6 LIN-UART Baud Rate 23.6 MB95100B/AM Series LIN-UART Baud Rate One of the following can be selected for the LIN-UART input clock (send/receive clock source): • Input a machine clock into a baud rate generator (reload counter) • Input an external clock into a baud rate generator (reload counter) • Use the external clock (SCK pin input clock) directly ■ LIN-UART Baud Rate Selection You can select one of the following three different baud rates. Figure 23.6-1 shows the LINUART baud rate selection circuit. ● Baud rate derived from the internal clock divided by the dedicated baud rate generator (reload counter) Two internal reload counters are provided and assigned the transmit and reception serial clock respectively. The baud rate is selected by setting a 15-bit reload value in the LIN-UART baud rate generator register 1, 0 (BGR1, BGR0). The reload counter divides the internal clock by the specified value. It is used in asynchronous mode and in synchronous mode (sending side of serial clock). To set the clock source, select the use of the internal clock and baud rate generator (SMR:EXT = 0, OTO = 0). ● Baud rate derived from the external clock divided by the dedicated baud rate generator (reload counter) The external clock is used as the clock source for the reload counter. The baud rate is selected by setting a 15-bit reload value in the LIN-UART baud rate generator register 1, 0 (BGR1, BGR0). The reload counter divides the external clock by the specified value. It is used in asynchronous mode. To set the clock source, select the use of the external clock and baud rate generator (SMR:EXT = 1, OTO = 0). ● Baud rate by the external clock (one-to-one mode) The clock input from the clock input pin (SCK) of the LIN-UART is used as the baud rate (slave 2 operation (ECCR:MS =1) in synchronous mode). It is used in synchronous mode (receiving side of serial clock). To set the clock source, select the external clock and its direct use (SMR:EXT = 1, OTO = 1). 456 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 23 LIN-UART 23.6 LIN-UART Baud Rate MB95100B/AM Series Figure 23.6-1 LIN-UART Baud Rate Selection Circuit REST falling edge detection of a start bit Reload value : V Set Reception 15-bit reload counter Rxc = 0? Reception clock Reload 0 Rxc = v/2? F/F Reset 1 Reload value : V EXT MCLK 0 Transmission 15-bit reload counter Set Txc = 0? OTO (Machine clock) F/F SCK 1 (External clock input) Counter value : Txc Txc = v/2? 0 Reset 1 Transmission clock Internal data bus EXT REST OTO CM26-10112-4E SMR Register BGR14 BGR13 BGR12 BGR11 BGR10 BGR9 BGR8 BGR1 Register BGR7 BGR6 BGR5 BGR4 BGR3 BGR2 BGR1 BGR0 FUJITSU MICROELECTRONICS LIMITED BGR0 Register 457 CHAPTER 23 LIN-UART 23.6 LIN-UART Baud Rate 23.6.1 MB95100B/AM Series Baud Rate Setting This section shows baud rate settings and the calculation result of serial clock frequencies. ■ Baud Rate Calculation The two 15-bit reload counters are set by the baud rate generator register 1, 0 (BGR1, BGR0). The expressions for the baud rate are as follows. Reload value: v= ( MCLK ) −1 b v: Reload value, b: Baud rate, MCLK: Machine clock, or external clock frequency Calculation example Assuming that the machine clock is 10MHz, the internal clock is used, and the baud rate is set to 19200 bps: Reload value: v= ( 10 ✕ 106 19200 ) −1 = 519.83... ≅ 520 Thus, the actual baud rate can be calculated as follows. b= MCLK (v + 1) = 10 ✕ 106 521 = 19193.8579 Note: The reload counter halts if the reload value is set to "0".Therefore, the least reload value should be "1". For transmission/reception in asynchronous mode, the reload value must be at least "4" in order to determine the reception value by oversampling on five times. 458 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 23 LIN-UART 23.6 LIN-UART Baud Rate MB95100B/AM Series ■ Reload Value and Baud Rate of Each Clock Speed Table 23.6-1 shows the reload value and baud rate. Table 23.6-1 Reload Value and Baud Rate 8MHz (MCLK) Baud rate (bps) 10MHz (MCLK) Reload Frequency value deviation 16MHz (MCLK) 16.25MHz(MCLK) Reload value Frequency deviation Reload value Frequency deviation Reload value Frequency deviation 2M − − 4 0 7 0 − − 1M 7 0 9 0 15 0 − − 500000 15 0 19 0 31 0 − − 400800 − − − − − − − − 250000 31 0 39 0 63 0 64 0 230400 − − − − 68 - 0.64 − − 153600 51 - 0.16 64 - 0.16 103 - 0.16 105 0.19 125000 63 0 79 0 127 0 129 0 115200 68 - 0.64 86 0.22 138 0.08 140 - 0.04 76800 103 0.16 129 0.16 207 - 0.16 211 0.19 57600 138 0.08 173 0.22 277 0.08 281 - 0.04 38400 207 0.16 259 0.16 416 0.08 422 - 0.04 28800 277 0.08 346 - 0.06 555 0.08 563 - 0.04 19200 416 0.08 520 0.03 832 - 0.04 845 - 0.04 10417 767 < 0.01 959 < 0.01 1535 < 0.01 1559 < 0.01 9600 832 - 0.04 1041 0.03 1666 0.02 1692 0.02 7200 1110 < 0.01 1388 < 0.01 2221 < 0.01 2256 < 0.01 4800 1666 0.02 2082 - 0.02 3332 < 0.01 3384 < 0.01 2400 3332 < 0.01 4166 < 0.01 6666 < 0.01 6770 < 0.01 1200 6666 < 0.01 8334 < 0.01 13332 < 0.01 13541 < 0.01 600 13332 < 0.01 16666 < 0.01 26666 < 0.01 27082 < 0.01 300 26666 < 0.01 − − 53332 < 0.01 54166 < 0.01 The unit of frequency deviation (dev.) is %.MCLK indicates the machine clock. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 459 CHAPTER 23 LIN-UART 23.6 LIN-UART Baud Rate MB95100B/AM Series ■ External Clock The external clock is selected by writing "1" to the EXT bit in the LIN-UART serial mode register (SMR). In the baud rate generator, the external clock can be used in the same way as the internal clock. When slave operation is used in synchronous mode 2, select the one-to-one external clock input mode (SMR:OTO = 1). In this mode, the external clock input to SCK is input directly to the LIN-UART serial clock. Note: The external clock signal is synchronized with the internal clock (MCLK: machine clock) in the LIN-UART. Therefore, the signal is unstable because the external clock cannot be divided if its cycle is faster than half cycle of the internal clock. Be sure not to set the cycle of the external clock is faster than half cycle of the internal clock. For the value of the SCK clock, see "Data Sheet". 460 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 23 LIN-UART 23.6 LIN-UART Baud Rate MB95100B/AM Series ■ Operation of Dedicated Baud Rate Generator (Reload Counter) Figure 23.6-2 shows the operation of dedicated baud rate generator (reload counter). Figure 23.6-2 Operation of Dedicated Baud Rate Generator (Reload Counter) Transmit/reception clock Reload counter Falling at (V+1)/2 002 001 832 831 830 829 828 417 416 415 414 413 412 411 Reload counter value Note: The falling edge of the serial clock signal is generated after the reload value divided by 2 ( (v+1)/2 ) is counted. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 461 CHAPTER 23 LIN-UART 23.6 LIN-UART Baud Rate 23.6.2 MB95100B/AM Series Reload Counter This block is a 15-bit reload counter serving as a dedicated baud rate generator. It generates the transmit/reception clock from the external or internal clock. The count value in the transmit reload counter is read from the LIN-UART baud rate generator registers 1, 0 (BGR1, BGR0). ■ Function of Reload Counter There are two kinds of reload counters; transmit and reception. They work as the dedicated baud rate generator. The block consists of a 15-bit register for reload values; it generates the transmit/reception clock from the external or internal clock. The count value in the transmit reload counter is read from the LIN-UART baud rate generator registers 1, 0 (BGR1, BGR0). ● Start counting Writing a reload value to the LIN-UART baud rate generator registers 1, 0 (BGR1, BGR0) causes the reload counter to start counting. ● Restart The reload counter restarts in the following conditions. For both transmit/reception reload counter • LIN-UART programmable reset (SMR:UPCL bit) • Programmable restart (SMR:REST bit) For reception reload counter Start bit falling edge detection in asynchronous mode ● Simple timer function Two reload counters restart at the next clock cycle when the REST bit in the LIN-UART serial mode register (SMR) is set to "1". This function enables the transmit reload counter to be used as a simple timer. Figure 23.6-3 shows an example of using a simple timer by restarting the reload timer (when reload value is 100). 462 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 23 LIN-UART 23.6 LIN-UART Baud Rate MB95100B/AM Series Figure 23.6-3 Example of Using a Simple Timer by Restarting the Reload Timer MCLK (Machine clock) Write SMR register REST bit write signal Reload Reload counter 37 36 35 100 99 98 97 96 95 94 93 92 91 90 89 88 87 BGR0/BGR1 register read signal 90 Register read value : No effect on operation The number of machine cycles "cyc" after restart in this example is obtained by the following expression. cyc = v - c + 1 = 100 - 90 + 1 = 11 v: Reload value, c: Reload counter value Note: The reload counters also restart when the LIN-UART is reset by writing "1" to the SMR:UPCL bit. Automatic restart (reception reload counter only) The reception reload counter is restarted when the start bit falling edge is detected in asynchronous mode. This is the function to synchronize the reception shift register with the reception data. ● Clear counter When a reset occurs, the reload values in the LIN-UART baud rate generator registers 1, 0 (BGR1, BGR0) and the reload counter are cleared to "00H", and the reload counter halts. Although the counter value is temporarily cleared to "00H" by the LIN-UART reset (writing "1" to SMR:UPCL), the reload counter restarts since the reload value is retained. The counter value is not cleared to "00H" by the restart setting (writing "1" to SMR:REST), and the reload counter restarts. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 463 CHAPTER 23 LIN-UART 23.7 Operations and Setup Procedure Example of LIN-UART 23.7 MB95100B/AM Series Operations and Setup Procedure Example of LINUART LIN-UART operates in mode 0, 2 for bi-directional serial communication, in mode 1 for master/slave communication, and in mode 3 for LIN master/slave communication. ■ Operation of LIN-UART ● Operation mode The LIN-UART has four operation modes (0 to 3), allowing the connections between CPUs and the data transfer methods to be selected as listed in Table 23.7-1. Table 23.7-1 LIN-UART Operation Modes Data length Operation mode No parity 0 Normal mode 1 Multiprocessor mode 2 Normal mode 3 LIN mode With parity 7 bits or 8 bits 7 bits or 8 bits + 1* Stop bit length Data bit format LSB first MSB first Asynchronous − Asynchronous 1 bit or 2 bits Synchronous None, 1 bit, 2 bits − Asynchronous 1 bit 8 bits 8 bits Synchronous method LSB first −: Setting disabled *: "+1" is the address/data selection bit (AD) used for communication control in multiprocessor mode. The MD0 and MD1 bits in the LIN-UART serial mode register (SMR) are used to select the following LIN-UART operation modes. Table 23.7-2 LIN-UART Operation Modes MD1 MD0 Mode Type 0 0 0 Asynchronous (Normal mode) 0 1 1 Asynchronous (Multiprocessor mode) 1 0 2 Synchronous (Normal mode) 1 1 3 Asynchronous (LIN mode) Notes: • Both master and slave operation are supported in a system with master/slave connection in mode 1. • In mode 3, the communication format is fixed to 8-bit data, no parity, 1 stop bit, LSBfirst. • If the mode is changed, all transmissions and receptions are canceled, and the LINUART waits for the next operation. 464 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 23 LIN-UART 23.7 Operations and Setup Procedure Example of LIN-UART ■ Inter-CPU Connection Method You can select either external clock one-to-one connection (normal mode) or master/slave connection (multiprocessor mode). In either methods, data length, parity setting, synchronization type must be the same between all CPUs and thus the operation mode must be selected as follows. • One-to-one connection: Two CPUs must use the same method in either operation mode 0 or 2. Choose operation mode 0 in an asynchronous system and operation mode 2 in a synchronous system. Also, for the operation mode 2, set one CPU as sending side of serial clock and the other as the receiving side of serial clock. • Master/slave connection: Select operation mode 1. Use the system as a master/slave system. ■ Synchronous Method In asynchronous method, the reception clock is synchronized with the reception start bit falling edge. In synchronous method, the reception clock can be synchronized by the sending side of serial clock signal or the clock signal at operating as sending side of serial clock. ■ Signaling NRZ (Non Return to Zero). ■ Enable Transmission/Reception The LIN-UART uses the SCR:TXE bit and the SCR:RXE bit to control transmission and reception, respectively. To disable transmission or reception, set as follows. • If the reception is in progress, wait until the reception completed, read the reception data register (RDR), and then disable the reception. • If the transmission is in progress, wait until the transmission completed, and then disable the transmission. ■ Setup Procedure Example LIN-UART is set in the following procedure: ● Initial setting 1) Set the port input (DDR6). 2) Set the interrupt level (ILR1, ILR2). 3) Set the data format, enable transmission/reception (SCR). 4) The operation mode, baud rate selection, pin output enabled (SMR) 5) The baud rate generator 1, 0 (BGR1, BGR0) CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 465 CHAPTER 23 LIN-UART 23.7 Operations and Setup Procedure Example of LIN-UART 23.7.1 MB95100B/AM Series Operation of Asynchronous Mode (Operation Mode 0, 1) When LIN-UART is used in operation mode 0 (normal mode) or operation mode 1 (multiprocessor mode), the transfer method is asynchronous. ■ Asynchronous Mode Operation ● Transmit/reception data format Transmit/reception data always begins with a start bit ("L" level) followed by a specified data bits length and ends up with at least one stop bit ("H" level). The bit transfer direction (LSB-first or MSB-first) is determined by the BDS bit in the LINUART serial status register (SSR). When a parity is used, the parity bit is always placed between the last data bit and the first stop bit. In operation mode 0, select 7-bit or 8-bit for the data length. You can select whether or not to use a parity. Also, the stop bit length (1 or 2) can be selected. In operation mode 1, a data length is 7-bit or 8-bit, the parity is not added, and the address/data bit is added. The stop bit length (1 or 2) can be selected. The bit length of transmit/reception frame is calculated as follows: Length = 1 + d + p + s (d = Number of data bits [7 or 8], p = parity [0 or 1], s = Number of stop bits [1 or 2]) Figure 23.7-1 shows the transmit/reception data format (Operation Mode 0, 1). 466 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 23 LIN-UART 23.7 Operations and Setup Procedure Example of LIN-UART Figure 23.7-1 Transmit/Reception Data Format (Operation Mode 0, 1) [Operation mode 0] ST D0 D1 D2 D3 D4 D5 D6 D7 SP SP ST D0 D1 D2 D3 D4 D5 D6 D7 SP P: None Data 8-bit ST D0 D1 D2 D3 D4 D5 D6 D7 P SP SP ST D0 D1 D2 D3 D4 D5 D6 D7 P SP ST D0 D1 D2 D3 D4 D5 D6 SP SP ST D0 D1 D2 D3 D4 D5 D6 SP P: Present P: None Data 7-bit ST D0 D1 D2 D3 D4 D5 D6 P SP SP ST D0 D1 D2 D3 D4 D5 D6 P SP ST D0 D1 D2 D3 D4 D5 D6 D7 AD SP SP ST D0 D1 D2 D3 D4 D5 D6 D7 AD SP ST D0 D1 D2 D3 D4 D5 D6 AD SP SP ST D0 D1 D2 D3 D4 D5 D6 AD SP P: Present [Operation mode 1] Data 8-bit Data 7-bit ST SP P AD : Start bit : Stop mode : Parity bit : Address data bit Note: When the BDS bit in the LIN-UART serial status register (SSR) is set to "1" (MSB-first), the bits are processed in the order of D7, D6, ... D1, D0 (P). CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 467 CHAPTER 23 LIN-UART 23.7 Operations and Setup Procedure Example of LIN-UART MB95100B/AM Series ● Transmission If the transmit data register empty flag bit (TDRE) in the LIN-UART serial status register (SSR) is "1", transmit data can be written into the LIN-UART transmit data register (TDR). Writing data sets the TDRE flag to "0". If transmission is enabled (SCR:TXE=1) at this time, the data is written to the transmit shift register and the transmission is started sequentially from the start bit in the next serial clock cycle. If the transmit interrupt is enabled (TIE=1), the transmit data is transferred from the LINUART transmit data register (TDR) to transmit shift register, the TDRE flag is set to "1", and an interrupt occurs. When the data length is set to 7-bit (CL=0), the bit7 in the TDR register is an unused bit regardless of the transfer direction select bit (BDS) setting (LSB-first or MSB-first). Note: Since the initial value of transmit data empty flag bit (SSR:TDRE) is "1", an interrupt is generated immediately when transmit interrupts are enabled (SSR:TIE =1). ● Reception The reception is performed when reception is enabled (SCR:RXE =1). When the start bit is detected, one frame data is received according to the data format defined in the LIN-UART serial control register (SCR). If an error occurs, the error flag (SSR:PE, ORE, FRE) is set. After the reception of the one frame data is completed, the received data is transferred from the reception shift register to the LIN-UART reception data register (RDR), and the reception data register full flag bit (SSR:RDRF) is set to "1". If the reception interrupt request is enabled (SSR:RIE = 1) at this time, a reception interrupt request is output. To read the received data, check the error flag status and read the received data from the LINUART reception data register (RDR) if the reception is normal. If a reception error occurs, perform error handlings. When the received data is read, the reception data register full flag bit (SSR:RDRF) is cleared to "0". When the data length is set to 7-bit (CL=0), the bit7 in the RDR register is an unused bit regardless of the transfer direction select bit (BDS) setting (LSB-first or MSB-first). Note: Data in the LIN-UART reception data register (RDR) becomes valid when the reception data register full flag bit (SSR:RDRF) is set to "1" and no error occurs (SSR:PE, ORE, FRE=0). 468 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 23 LIN-UART 23.7 Operations and Setup Procedure Example of LIN-UART ● Input clock Internal or external clock is used.For the baud rate, select the baud rate generator (SMR:EXT = 0 or 1, OTO = 0). ● Stop bit and reception bus idle flag You can select one or two stop bits at transmission. When 2-bit of the stop bit are selected, both of the stop bits are detected during reception. When the first stop bit is detected, the reception data register full flag (SSR:RDRF) is set to "1". When no start bit is detected after that, the reception bus idle flag (ECCR:RBI) is set to "1", indicating that the reception is not performed. ● Error detection In mode 0, parity, overrun, and framing errors can be detected. In mode 1, overrun and framing errors can be detected. But, parity errors cannot be detected. ● Parity You can specify whether or not to add (at transmission) and detect (at reception) a parity bit. The parity enable bit (SCR:PEN) can be used whether or not to use a parity; the parity selection bit (SCR:P) can be used to select the odd or even parity. In operation mode 1, the parity cannot be used. Figure 23.7-2 Transmission Data when Parity is Enabled SIN ST SP Parity error is generated in even parity during reception (SCR:P = 0) 1 0 1 1 0 0 0 0 0 SOT ST SP Transmission of even parity (SCR:P = 0) 1 0 1 1 0 0 0 0 1 SOT SP ST Transmission of odd parity (SCR:P = 1) 1 0 1 1 0 0 0 0 0 Data Parity ST: Start bit, SP: Stop bit, Parity used (PEN = 1) Note: In operation mode 1, the parity cannot be used. ● Data signaling NRZ data format. ● Data transfer method The data bit transfer method can be the LSB-first or MSB-first. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 469 CHAPTER 23 LIN-UART 23.7 Operations and Setup Procedure Example of LIN-UART 23.7.2 MB95100B/AM Series Operation of Synchronous Mode (Operation Mode 2) When LIN-UART is used in operation mode 2 (normal mode), the transfer method is clock synchronous. ■ Operation of Synchronous Mode (Operation Mode 2) ● Transmit/reception data format In synchronous mode, you can transmit and receive 8-bit data and select whether or not to include the start bit and stop bit (ECCR:SSM). When the start/stop bit is included (ECCR:SSM = 1), you can select whether or not to include the parity bit (SCR:PEN). Figure 23.7-3 shows the transmit/reception data format (operation mode 2). Figure 23.7-3 Transmit/Reception Data Format (Operation Mode 2) Transmit/reception data (ECCR:SSM=0,SCR:PEN=0) D0 D1 D2 D3 D4 D5 D6 D7 * Transmit/reception data (ECCR:SSM=1,SCR:PEN=0) ST D0 D1 D2 D3 D4 D5 D6 D7 SP ST D0 P SP * Transmit/reception data (ECCR:SSM=1,SCR:PEN=1) D1 D2 D3 D4 D5 D6 D7 SP SP *: When two stop bits are set (SCR:SBL = 1) ST: Start bit, SP: Stop bit, P: Parity bit, LSB-first ● Clock inversion function When the SCES bit in the LIN-UART extended status control register (ESCR) is "1", the serial clock is inverted.In receiving side of serial clock, the LIN-UART samples data at the falling edge of the received serial clock.Note that, in sending side of serial clock, the mark level is set to "0" when the SCES bit is "1". Figure 23.7-4 Transmission Data Format During Clock Inverted Mark level Transmit/reception clock (SCES = 0, CCO = 0) : Transmit/reception clock (SCES = 1, CCO = 0) : Data stream (SSM = 1) (No parity, 1 stop bit) Mark level ST SP Data frame 470 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 23 LIN-UART 23.7 Operations and Setup Procedure Example of LIN-UART MB95100B/AM Series ● Start/stop bit When the SSM bit in the LIN-UART extended communication control register (ECCR) is "1", the start and stop bits are added to the data format as in asynchronous mode. ● Clock supply In clock synchronous mode (normal), the number of the transmit/reception bits must be equal to the number of the clock cycles. When the start/stop bit is enabled, the number of the added start/stop bits must be equal, as well. When the serial clock output is enabled (SMR: SCKE = 1) in sending side of serial clock (ECCR:MS = 0), a synchronous clock is output automatically at transmission/reception. When the serial clock output is disabled (SMR: SCKE = 0) in receiving side of serial clock (ECCR:MS = 1), the clock for each bit of transmit/reception data must be supplied from the outside. The clock signal must remain at the mark level ("H") as long as it is irrelevant to transmission/ reception. ● Clock delay Setting the SCDE bit in the ECCR to "1", a delayed transmit clock is output as shown in Figure 23.7-5. This function is required when the receiving device samples data at the rising or falling edge of the clock. Figure 23.7-5 Transmission Clock Delay (SCDE = 1) Write transmit data Reception data sample edge (SCES = 0) Mark level Transmit/reception clock (normal) Mark level Transmit clock (SCDE = 1) Mark level Transmit/reception data 0 LSB 1 1 0 1 Data 0 0 1 MSB ● Clock inversion When the SCES bit in the LIN-UART extended status register (ESCR) is "1", the LIN-UART clock is inverted, and received data is sampled at the falling edge of the clock. At this time, the value of the serial data must be enabled at the timing of the clock falling edge. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 471 CHAPTER 23 LIN-UART 23.7 Operations and Setup Procedure Example of LIN-UART MB95100B/AM Series ● Continuous clock supply When the CCO bit in the ESCR is "1", the serial clock output from the SCK pin is supplied in the sending side of serial clock continuously. In this mode, add the start/stop bit to the data format (SSM = 1) in order to identify the beginning and end of the data frame. Figure 23.7-6 shows the continuous clock supply (mode 2). Figure 23.7-6 Continuous Clock Supply (Mode 2) Transmit/reception clock (SCES = 0, CCO = 1): Transmit/reception clock (SCES = 1, CCO = 1): Data stream (SSM = 1) (No parity, 1 stop bit) ST SP Data frame ● Error detection When the start/stop bits are disabled (ECCR:SSM=0), only overrun errors are detected. ● Communication settings for synchronous mode To communicate in synchronous mode, the following settings are required. • LIN-UART baud rate generator register 1, 0 (BGR0, BGR1) Set the dedicated baud rate reload counter to a required value. • LIN-UART serial mode register (SMR) MD1, MD0: "10B" (Mode 2) SCKE: "1": Use the dedicated baud rate reload counter "0": Input external clock SOE: "1": Enable transmission/reception : "0": Enable reception only • LIN-UART serial control register (SCR) RXE, TXE: Set either bit to "1". AD be used. : The value of this bit is disabled so that the address/data selection function cannot CL : This bit is set to 8 bits length automatically, and its value is disabled. CRE : "1": Since the error flag is cleared, transmission/reception is stopped. - For SSM = 0: PEN, P, SBL: Since not used, parity bit and stop bit are disabled. - For SSM = 1: PEN : "1": Add/detect parity bit, "0": Not use parity bit P "0": Even parity : "1": Odd parity, SBL : "1": Stop bit length 2, 472 "0": Stop bit length 1 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 23 LIN-UART 23.7 Operations and Setup Procedure Example of LIN-UART • LIN-UART serial status register (SSR) BDS: "0": LSB first, "1": MSB-first RIE: "1": Enable reception interrupt, "0": Disable reception interrupt TIE: "1": Enable transmit interrupt, "0": Disable transmit interrupt • LIN-UART extended communication control register (ECCR) SSM: "0": Not use start/stop bit (normal), "1": Use start/stop bit (extended function), MS: "0": Sending side of serial clock (serial clock output), "1": Receiving side of serial clock (input serial clock from sending side of serial clock) Note: To start communication, write data into the LIN-UART transmit data register (TDR). To receive data, disable the serial output (SMR:SOE = 0), and then write dummy data into the TDR. Enabling continuous clock and start/stop bit allows bi-directional communication as in asynchronous mode. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 473 CHAPTER 23 LIN-UART 23.7 Operations and Setup Procedure Example of LIN-UART 23.7.3 MB95100B/AM Series Operation of LIN function (Operation Mode 3) In operation mode 3, the LIN-UART works as the LIN master and the LIN slave. In operation mode 3, the communication format is set to 8-bit data, no parity, stop bit1, LSB first. ■ Asynchronous LIN Mode Operation ● Operation as LIN master In LIN mode, the master determines the baud rate for the entire bus, and the slave synchronizes to the master. Writing "1" to the LBR bit in the LIN-UART extended communication control register (ECCR) outputs 13 to 16 bits at the "L" level from the SOT pin.This bit is the LIN synch break signifying the beginning of a LIN message. The TDRE flag bit in the LIN-UART serial status register (SSR) is set to "0". After the break, it is set to "1" (initial value). If the TIE bit in SSR is "1" at this time, a transmit interrupt is output. The length of the LIN Synch break transmitted is set by the LBL0/LBL1 bits in ESCR as in the following table. Table 23.7-3 LIN Break Length LBL0 LBL1 Break length 0 0 13 bits 1 0 14 bits 0 1 15 bits 1 1 16 bits Synch field is transmitted as byte data 55H following the LIN break. To prevent generation of a transmit interrupt, 55H can be written to the TDR after the LBR bit in ECCR is set to "1" even if the TDRE flag is "0". ● Operation as LIN slave In LIN slave mode, the LIN-UART must synchronize to the baud rate for the master. The LINUART generates a reception interrupt when LIN break interrupt is enabled (LBIE = 1) even though reception is disabled (RXE = 0). The LBD bit in the ESCR is set to "1" at this time. Writing "0" to the LBD bit clears the reception interrupt request flag. For calculation of the baud rate, the following example shows the operation of the LIN-UART. When the LIN-UART detects the first falling edge of Synch field, set an internal signal, which is input to the 8/16-bit compound timer, to "H", and then start the timer. The internal signal should be "L" at the fifth falling edge. The 8/16-bit compound timer must be set to the input capture mode. Also, the 8/16-bit compound timer interrupts must be enabled and set for the detection at both edges.The time for which the input signal to the 8/16-bit compound timer is "1" becomes the value obtained by multiplying the baud rate by 8. The baud rate setting value is calculated by the following expressions. When the counter of the 8/16-bit compound timer is not overflowing : BGR value = (b - a)/8 - 1 474 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 23 LIN-UART 23.7 Operations and Setup Procedure Example of LIN-UART When the counter of the 8/16-bit compound timer is overflowing : BGR value = (max + b - a)/8 - 1 max: Maximum value of free-run timer a: TII0 data register value after the first interrupt b: TII0 data register value after the second interrupt Note: Do not set the baud rate if the new BGR value calculated based on Synch field as above in LIN slave mode involves an error over ±15%. For the operations of the input capture function on the 8/16-bit compound timer, see Section "15.13 Operating Description of Input Capture Function". ● LIN synch break detection interrupt and flag The LIN break detection (LBD) flag in ESCR is set to "1" when the LIN synch break is detected in slave mode.When the LIN break interrupt is enabled (LBIE = 1), an interrupt is generated. Figure 23.7-7 Timing of LIN Synch Break Detection and Flag Set Serial clock Serial input (LIN bus) LBR clear by CPU LBD TII0 input (LSYN) Synch break (for 14 bits setting) Synch field The above diagram shows the timing of the LIN synch break detection and flag. Since the data framing error (FRE) flag bit in SSR generates a reception interrupt two bits earlier than a LIN break interrupt (for communication format is 8-bit data, no parity, "1" stop bit.), set the RXE to "0" when a LIN break is used. The LIN synch break detection works only in operation mode 3. Figure 23.7-8 shows the LIN-UART operation in LIN slave modes. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 475 CHAPTER 23 LIN-UART 23.7 Operations and Setup Procedure Example of LIN-UART MB95100B/AM Series Figure 23.7-8 LIN-UART Operation in LIN Slave Modes Serial clock cycle# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Serial clock Serial input (LIN bus) FRE (RXE=1) LBD (RXE=0) Reception interrupt generated when RXW=1 Reception interrupt generated when RXW=0 ● LIN bus timing Figure 23.7-9 LIN Bus Timing and LIN-UART Signals No clock (Calculation frame) Previous serial clock Newly calculated serial clock 8/16-bit compound timer count LIN bus (SIN) RXE LBD (IRQ0) LBIE TII0 input (LSYN) IRQ(TII0) RDRF (IRQ0) RIE RDR read by CPU Reception interrupt enable LIN break starts LIN breakdetected, interrupt generated IRQ clear by CPU (LBD ->0) IRQ (8/16-bit compound timer) IRQ clear: input capture of 8/16-bit compound timer count starts IRQ (8/16-bit compound timer) IRQ clear: Baud rate calculated and set LBIE disabled Enable reception Falling edge of start bit 1 byte of reception data saved to RDR RDR read by CPU 476 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 23.7.4 CHAPTER 23 LIN-UART 23.7 Operations and Setup Procedure Example of LIN-UART Serial Pin Direct Access Transmission pin (SOT) or reception pin (SIN) can be accessed directly. ■ LIN-UART Pin Direct Access The LIN-UART allows the programmer to directly access the serial I/O pins. The status of the serial input pin (SIN) can be read by using the serial I/O pin direct access bit (ESCR:SIOP). You can set the value of the serial output pin (SOT) arbitrarily when the serial output is enabled (SMR:SOE=1) after direct write to the serial output pin (SOT) is enabled (ESCR:SOPE = 1), and then "0" or "1" is written to the serial I/O pin direct access bit (ESCR:SIOP). In LIN mode, this feature is used for reading transmitted data or for error handling when a LIN bus line signal is physically incorrect. Note: Direct access is allowed only when transmission is not in progress (the transmission shift register is empty). Before enabling transmission (SMR:SOE = 1), write a value to the serial output pin direct access bit (ESCR:SIOP). This prevents a signal of an unexpected level from being output since the SIOP bit holds a previous value. While the value of the SIN pin is read by normal read, the value of the SOT pin is read for the SIOP bit by the read-modify-write (RMW) instructions. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 477 CHAPTER 23 LIN-UART 23.7 Operations and Setup Procedure Example of LIN-UART 23.7.5 MB95100B/AM Series Bi-directional Communication Function (Normal Mode) Normal serial bi-directional communication can be performed in operation mode 0 or 2. Asynchronous mode and synchronous mode can be selected in operation modes 0 and 2, respectively. ■ Bi-directional Communication Function To operate the LIN-UART in normal mode (operation mode 0 or 2), the settings shown in Figure 23.7-10 are required. Figure 23.7-10 Settings of LIN-UART Operation Modes 0 and 2 bit15 bit14 bit13 bit12 bit11 bit10 bit9 SCR, SMR PEN P SBL CL (Mode 0)→ (Mode 2)→ bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 AD CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SOE + ✕ ✕ 0 0 SSR, PE ORE FRE RDRF TDRE BDS RIE RDR/TDR (Mode 0)→ (Mode 2)→ 0 1 0 0 0 0 0 0 0 Set comparison data (during writing) Retain reception data (during reading) TIE Reser ESCR, ECCR LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES Reser ved LBR MS SCDE SSM ved RBI ✕ 1 0 + bit0 ✕ ✕ ✕ 0 0 (Mode 0)→ ✕ ✕ ✕ ✕ (Mode 2)→ ✕ : Used bit : Unused bit : Set to "1" : Set to "0" : Used when SSM = 1 (Synchronous star/stop bit mode) : Bit correctly set automatically 0 0 0 ✕ ✕ ✕ ✕ TBI 0 0 ● Inter-CPU connection For bi-directional communication, interconnect two CPUs as shown in Figure 23.7-11. Figure 23.7-11 Connection Example of Bi-directional Communication in LIN-UART Mode 2 SOT SOT SIN Output SIN Input SCK SCK CPU-1 (Sending side of serial clock) 478 CPU-2 (Receiving side of serial clock) FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 23 LIN-UART 23.7 Operations and Setup Procedure Example of LIN-UART ● Communication procedure example The communication is started from transmitting end at arbitrary timing when data is ready to be transmitted. When transmission data is received in the receiving side, ANS (1 byte in the example) is returned on a regular basis. Figure 23.7-12 shows an example of bi-directional communication flowchart. Figure 23.7-12 Example of Bi-directional Communication Flowchart (Master) (Slave) Start Start Set operation mode (0 or 2) (match with the transmitting end) Communicate with one byte data set in TDR Set operation mode side Data transmission Has received data NO YES Has received data Read and process received data NO YES Data transmission Read and process received data CM26-10112-4E Transmit one byte data (ANS) FUJITSU MICROELECTRONICS LIMITED 479 CHAPTER 23 LIN-UART 23.7 Operations and Setup Procedure Example of LIN-UART 23.7.6 MB95100B/AM Series Master/slave Mode Communication Function (Multi-processor Mode) Operation mode 1 allows communication between multiple CPUs connected in master/slave mode. It can be used as a master or slave. ■ Master/Slave Mode Communication Function To operate the LIN-UART in multiprocessor mode (operation mode 1), the settings shown in Figure 23.7-13 are required. Figure 23.7-13 Settings of LIN-UART Operation Mode 1 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 SCR, SMR PEN P SBL CL AD CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SOE ✕ 0 0 1 0 0 0 (Mode 1)→ + SSR, PE ORE FRE RDRF TDRE BDS RIE RDR/TDR (Mode 1)→ ✕ TIE Set conversion data (during writing) Retain reception data (during reading) Reser ESCR, ECCR LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES Reser ved LBR MS SCDE SSM ved RBI ✕ ✕ ✕ 0 0 0 ✕ ✕ ✕ ✕ 0 (Mode 1)→ ✕ ✕ 1 0 + TBI : Used bit : Unused bit : Set to "1" : Set to "0" : Bit correctly set automatically ● Inter-CPU Connection For master/slave mode communication, a communication system is configured by connecting between one master CPU and multiple slave CPUs with two common communication lines, as shown in Figure 23.7-14. The LIN-UART can be used as the master or slave. Figure 23.7-14 Connection Example of LIN-UART Master/Slave Mode Communication SOT SIN Master CPU SOT SIN Slave CPU #0 480 SOT SIN Slave CPU #1 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 23 LIN-UART 23.7 Operations and Setup Procedure Example of LIN-UART ● Function Selection For master/slave mode communication, select the operation mode and the data transfer method, as shown in Table 23.7-4. Table 23.7-4 Select of Master/Slave Mode Communication Function Operation mode Data Master CPU Address transmissi on/ reception Mode 1 (AD bit transmission Data and transmissi reception) on/ reception Parity Synchro nous method Stop bit Bit direction None Asynchro nous 1 bit or 2 bits LSB first or MSB first Slave CPU Mode 1 (AD bit transmission and reception) AD = 1 + 7-bit or 8-bit address AD = 0 + 7-bit or 8-bit data ● Communication procedure Communication is started by transmitting address data from the master CPU. The address data, whose AD bit is set as "1", determines the slave CPU to be the destination. Each slave CPU checks address data by using a program, and communicates with the master CPU when the data matches an assigned address. Figure 23.7-15 shows a flowchart for master/slave mode communication. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 481 CHAPTER 23 LIN-UART 23.7 Operations and Setup Procedure Example of LIN-UART MB95100B/AM Series Figure 23.7-15 Master/Slave Mode Communication Flowchart (Master CPU) (Slave CPU) Start Start Set to operation mode 1 Set to operation mode 1 Set SIN pin for serial data input. Set SOT pin for serial data output. Set SIN pin for serial data input. Set SOT pin for serial data output. Set 7 or 8 data bits. Set 1 or 2 stop bits. Set 7 or 8 data bits. Set 1 or 2 stop bits. Set "1" to AD bit Enable transmission/ reception Enable transmission/ reception Receive bytes Transmit address to slave AD bit = 1 NO YES NO Slave address matched Set "0" to AD bit YES Communicate with master Communicate with slave CPU Terminate communication? Terminate communication? NO NO YES YES Communicate with another slave CPU NO YES Disable transmission/ reception End 482 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 23.7.7 CHAPTER 23 LIN-UART 23.7 Operations and Setup Procedure Example of LIN-UART LIN Communication Function For LIN-UART communication, a LIN device can be used in the LIN master system or the LIN slave system. ■ LIN Master/Slave Mode Communication Function Figure 23.7-16 shows the required settings for the LIN communication mode of LIN-UART (operation mode 3). Figure 23.7-16 Settings of LIN-UART Operation Mode 3 (LIN) bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 SCR, SMR PEN P SBL CL AD CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SOE ✕ + + ✕ 0 1 1 0 0 0 (Mode 3)→ + SSR, PE ORE FRE RDRF TDRE BDS RIE RDR/TDR + (Mode 3)→ ✕ TIE Set conversion data (during writing) Retain reception data (during reading) Reser ESCR, ECCR LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES Reser ved LBR MS SCDE SSM ved RBI 0 0 0 ✕ ✕ ✕ 0 (Mode 3)→ : Used bit ✕ : Unused bit 1 : Set to "1" 0 : Set to "0" + : Bit correctly set automatically TBI ● LIN device connection Figure 23.7-17 shows an example of the LIN bus system communication. The LIN-UART can serve as the LIN master or LIN slave. Figure 23.7-17 Example of LIN Bus System Communication SOT SOT LIN bus SIN LIN master CM26-10112-4E SIN Transceiver Transceiver LIN slave FUJITSU MICROELECTRONICS LIMITED 483 CHAPTER 23 LIN-UART 23.7 Operations and Setup Procedure Example of LIN-UART 23.7.8 MB95100B/AM Series Example of LIN-UART LIN Communication Flowchart(Operation Mode 3) This section shows examples of LIN-UART LIN communication flowchart. ■ LIN Master Device Figure 23.7-18 LIN Master Flowchart Start Initial setting: Set to operation mode 3 Enable serial data output, Set baud rate Set Synch break length TXE = 1, TIE = 0, RXE = 1, RIE = 1 N0 Message? (Reception)YES YES Wake up? (80H reception) N0 Data Field Reception? RDRF = 1 Reception interrupt RXE = 0 Enable Synch break interrupts Synch Break transmission: ECCR: LBR = 1 Transmit Synch field: TDR = 55H (Transmission) RDRF = 1 Reception interrupt Receive Data 1 *1 YES N0 Set transmit data 1 TDR = Data 1 Enable transmit interrupts TDRE = 1 Transmit interrupt Receive Data N *1 Set transmit data N TDR = Data N Disable transmit interrupts LBD = 1 Synch break interrupts RDRF = 1 Reception interrupt Enable reception LBD = 0 Disable Synch break interrupts Receive Data 1 *1 Read data 1 RDRF = 1 Reception interrupt RDRF = 1 Reception interrupt Receive Synch field *1 Set Identify field: TDR = lD Receive Data N *1 Read data N RDRF = 1 Reception interrupt Receive ID field *1 No error? N0 Handle an error*2 YES *1: Handle an error if it occurs. *2: • If the FRE or ORE flag is set to "1", write "1" to the SCR:CRE bit to clear the error flag. • If the ESCR: LBD bit is set to "1", execute the LIN-UART reset. Note: Detect an error in each process and handle it appropriately. 484 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 23 LIN-UART 23.7 Operations and Setup Procedure Example of LIN-UART ■ LIN Slave Device Figure 23.7-19 LIN Slave Flowchart Start Initial setting: Set to operation mode 3 Enable serial data output TXE = 1, TIE = 0, RXE = 0, RIE = 1 Connect LIN-UART with 8/16-bit compound timer Disable reception Enable 8/16-bit compound timer interrupts Enable Synch break interrupts LBD = 1 Synch break interrupts Clear Synch break detection ESCR: LBD = 0 Disable Synch break interrupts (Reception) YES Data Field Reception? (Transmission) RDRF = 1 Reception interrupt Receive Data 1 *1 RDRF = 1 Reception interrupt TII0 interrupt NO Set transmit data 1 TDR = Data 1 Enable transmit interrupts TDRE = 1 Transmit interrupt Receive Data N *1 Read 8/16-bit compound timer data Clear 8/16-bit compound timer interrupt flag TII0 interrupt Set transmit data N TDR = Data N Disable transmit interrupts Disable reception RDRF = 1 Reception interrupt Read 8/16-bit compound timer data Adjust baud rate Enable reception Clear 8/16-bit compound timer interrupt flag Disable 8/16-bit compound timer interrupts Receive Data 1 *1 Read data 1 RDRF = 1 Reception interrupt RDRF = 1 Reception interrupt Receive Data N *1 Read data N Disable reception Receive Identify field *1 Sleep mode? NO YES No error? Wake-up received? NO Handle an error*2 YES NO YES Wake-up transmitted? NO YES Transmit wake-up code *1: Handle an error if it occurs. *2: • If the FRE or ORE flag is set to "1", write "1" to the SCR:CRE bit to clear the error flag. • If the ESCR:LBD bit is set to "1", execute the LIN-UART reset. Note: Detect an error in each process and handle it appropriately. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 485 CHAPTER 23 LIN-UART 23.8 Notes on Using LIN-UART 23.8 MB95100B/AM Series Notes on Using LIN-UART This section shows notes on using the LIN-UART. ■ Notes on Using LIN-UART ● Enabling operation The LIN-UART has the TXE (transmission) and RXE (reception) enable bit in the LIN-UART serial control register (SCR) for transmission and reception, respectively. Since both transmission and reception are disabled by default (internal value), these operations must be enabled before transfer. Also, you can disable these operations to stop transfer as required. ● Setting communication mode The communication mode must be set while the LIN-UART is stopped. If the mode is set during transmission/reception, the transmitted/received data is not guaranteed. ● Timing of enabling transmit interrupts Since the default (initial) value of the transmit data empty flag bit (SSR:TDRE) is "1" (no transmit data, transmit data write enabled), a transmit interrupt request is generated immediately when transmit interrupt request is enabled (SSR:TIE =1). To prevent this, be sure to set the transmit data before setting the TIE flag to "1". ● Changing operation setting Reset the LIN-UART after changing its settings, such as adding the start/stop bit or changing the data format. The correct operation settings are not guaranteed even if you reset the LIN-UART (SMR:UPCL = 1) concurrently with setting the LIN-UART serial mode register (SMR). Therefore, after setting the bit in LIN-UART serial mode register (SMR), reset the LIN-UART (SMR:UPCL = 1) again. ● Using LIN function Although the LIN functions are available in the mode 3, the LIN format is automatically set in the mode 3 (8-bit data, no parity, 1 stop bit, LSB-first). While the length of LIN break transmit bit is variable, the detection bit length is fixed to 11 bits. ● Setting LIN slave When starting LIN slave mode, be sure to set the baud rate before receiving the LIN synch break in order to make sure that the minimum 13 bits length of the LIN synch break is detected. ● Bus idle function The bus idle is not available in synchronous mode 2. 486 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 23 LIN-UART 23.8 Notes on Using LIN-UART ● AD bit (LIN-UART serial control register (SCR): Address/data format selection bit) Be sure to note the followings when using the AD bit. The AD bit is used to select the address/data for transmission when it is written, and to read the AD bit received last when it reads. Internally, the AD bit values for transmission and reception are stored in separate registers. The transmit AD bit value is read when read-modify-write (RMW) instructions are used. Therefore, an incorrect value may be written to the AD bit when another bit in the SCR is bitaccessed. For the above reason, the AD bit must be set at the last access to the SCR before transmission. Or, the above problem can be prevented by byte-accessing whenever the SCR is written. ● LIN-UART software reset Execute the LIN-UART software reset (SMR:UPCL = 1) when the TXE bit in the LIN-UART serial control register (SCR) is "0". ● Synch break detection In mode 3 (LIN mode), when serial input has 11 bits width or more and becomes "L", the LBD bit in the extended status control register (ESCR) is set to "1" (Synch break detection) and the LIN-UART waits for the Synch field. As a result, when serial input has more than 11 bits of "0" except Synch break, the LIN-UART recognizes that the Synch break is input (LBD = 1), and then waits for the Synch field. In this case, execute the LIN-UART reset (SMR:UPCL = 1). ● Handling framing errors 1) (CRE resets reception state machine and next falling edge at SINn starts reception of new byte (Figure 23.8-1). In order to avoid desynchronization of the data stream, it is necessary to set the CRE bit within a half-bit time immediately after an error is received (as shown in Figure 23.8-2), or to wait for the application-dependent time while SINn is idling after an error is received. 2) If a framing error occurs (stop bit: SINn= "0") and the next start bit (SINn= "0") immediately follows it, this start bit is recognized regardless of a falling edge for the start bit and reception is started. This sequence is used for detecting the continuous "L" state of the serial data input (SINn) when the next framing error is detected while the data stream is synchronized (See "When reception is always enabled (RXE=1)" in Figure 23.8-3). If this operation is not necessary, disable data reception temporarily after receiving a framing error (RXE = 1 → 0 → 1). Therefore, the falling edge of the serial data input (SINn) is detected, the start bit is recognized when "L" is detected at the reception sampling point, and the reception is started (See "When reception is temporarily disabled (RXE=1→0→1)" in Figure 23.8-3). CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 487 CHAPTER 23 LIN-UART 23.8 Notes on Using LIN-UART MB95100B/AM Series Figure 23.8-1 CRE bit timing CRE bit timing within 1/2 bit time of stop bit Last data bit Stop bit Start bit SIN 1/2 bit time Sample point Error flag CRE Reception state machine is reset Falling edge detection : Receive new frame CRE bit timing out of 1/2 bit time of stop bit Last data bit Stop bit Start bit SIN Sample point 1/2 bit time Error flag CRE Falling edge detection : Receive new frame Reception state machine is reset, start bit condition is reset, reception is desynchronized 488 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 23 LIN-UART 23.8 Notes on Using LIN-UART MB95100B/AM Series Figure 23.8-2 Example of desynchronization SIN CRE in start bit CRE Reception is reset RX read Next falling edge is used as start bit 1st Frame 2nd Frame First asynchronous frame Lost bit CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED Start of second asynchronous frame Lost bit 489 CHAPTER 23 LIN-UART 23.8 Notes on Using LIN-UART MB95100B/AM Series Figure 23.8-3 UART dominant bus operation When reception is always enabled (RXE=1) SIN FRE CRE Framing error occurs Error is cleared Reception is ongoing regardress of no falling edge Next framing error occurs Falling edge is next start bit edge When reception is temporarily disabled (RXE=1 → 0 → 1) SIN FRE CRE RXE Error is cleared Framing error occurs Reception is ongoing regardress of no falling edge 490 Reception is reset: Waitng for falling edge Falling edge is next start bit edge No further errors FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 23 LIN-UART 23.9 Sample Programs of LIN-UART MB95100B/AM Series 23.9 Sample Programs of LIN-UART This section provides sample programs for operating the LIN-UART. ■ Sample Programs of LIN-UART For sample programs of LIN-UART, see "■Sample Programs" in Preface. ■ Setting Methods not Covered by Sample Programs ● How to select the operation mode Use the operation mode selection (SMR.MD[1:0]). Operation mode Operation mode selection (MD[1:0]). Mode 0 Normal (Asynchronous) Set to "00B" Mode 1 Multiprocessor Set to "01B" Mode 2 Normal (Synchronous) Set to "10B" Mode 3 LIN Set to "11B" ● Operation clock types and how to select it Use the external clock select bit (SMR.EXT). Clock input External clock select bit (EXT) To select a dedicated baud rate generator Set to "0" To select an external clock Set to "1" ● How to control the SCK, SIN, and SOT pins Use the following setting. LIN-UART CM26-10112-4E To set the SCK pin as input DDR6:P65 =0 SMR:SCKE =0 To set the SCK pin as output SMR:SCKE =1 To use the SIN pin DDR6:P67 =0 To use the SOT pin SMR:SOE =1 FUJITSU MICROELECTRONICS LIMITED 491 CHAPTER 23 LIN-UART 23.9 Sample Programs of LIN-UART MB95100B/AM Series ● How to enable/disable the LIN-UART operation Use the reception enable bit (SCR.RXE). Control item Reception enable bit (RXE) Disable reception Set to "0" Enable reception Set to "1" Use the transmit control bit (SCR.TXE). Control item Transmit control bit (TXE) Disable transmission Set to "0" Enable transmission Set to "1" ● How to use an external clock as the LIN-UART serial clock Use the one-to-one external clock enable bit (SMR.OTO). Control item Reception enable bit (OTO) Enable external clock Set to "1" ● How to restart the reload counter Use the reload counter restart bit (SMR.REST). Control item Reload counter restart bit (REST) Restart the reload counter Set to "1" ● How to reset the LIN-UART Use the LIN-UART programmable clear bit (SMR:UPCL). Control item LIN-UART programmable clear bit (UPCL) Reset the LIN-UART software Set to "1" ● How to set the parity Use the parity enable bit (SCR.PEN) and the parity select bit (SCR.P). 492 Operation Parity control (PEN) Parity polarity (P) To set to no parity Set to "0" − To set to even parity Set to "1" Set to "0" To set to odd parity Set to "1" Set to "1" FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 23 LIN-UART 23.9 Sample Programs of LIN-UART MB95100B/AM Series ● How to set the data length Use the data length select bit (SCR.CL). Operation Data length select bit (CL) To set the bit length to 7 Set to "0" To set the bit length to 8 Set to "1" ● How to select the STOP bit length Use the STOP bit length control (SCR.SBL). Operation STOP bit length control (SBL) To set STOP bit length to 1 Set to "0" To set STOP bit length to 2 Set to "1" ● How to clear the error flag Use the reception error flag clear bit (SCR.CRE). Control item Reception error flag clear bit (CRE) To clear the error flag (PE, ORE, FRE) Set to "0" ● How to set the transfer direction Use the transfer direction selection bit (SSR.BDS). LSB/MSB can be selected for transfer direction in any operation mode. Control item Serial data direction control (BDS) To select the LSB first transfer (from the least significant bit) Set to "0" To select the MSB first transfer (from the most significant bit) Set to "1" ● How to clear the reception completion flag Uses the following setting. Control item Method To clear the reception completion flag Read the RDR register The first RDR register read is the reception initiation. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 493 CHAPTER 23 LIN-UART 23.9 Sample Programs of LIN-UART MB95100B/AM Series ● How to clear the transmit buffer empty flag Uses the following setting. Control item Method To clear the transmit buffer empty flag Write to TDR register The first TDR register write is the transmit initiation. ● How to select the data format (Address/Data) (Only in mode 1) Use the address/data selection bit (SCR:AD). Operation Address/Data select bit (AD) To select the data frame Set to "0" To select the address frame Set to "1" This is effective only at transmission. The AD bit is ignored at reception. ● How to set the baud rate See Section "23.6 LIN-UART Baud Rate". ● Interrupt-related register Use the following interrupt level setting register to set the interrupt level. 494 Interrupt level setting register Interrupt vector Reception Interrupt level register (ILR1) Address: 0007AH #7 Address: 0FFFCH Transmission Interrupt level register (ILR2) Address: 0007BH #8 Address: 0FFEAH FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 23 LIN-UART 23.9 Sample Programs of LIN-UART MB95100B/AM Series ● How to enable/disable/clear interrupts Interrupt request enable bit (SSR.RIE), (SSR.TIE) is used to enable interrupts. Operation UART reception UART transmission Reception interrupt enable bit (RIE) Reception interrupt enable bit (TIE) To disable interrupt requests Set to "0" To enable interrupt requests Set to "1" The following setting is used to clear interrupt requests. Operation UART reception To clear interrupt requests UART transmission The reception data register full (RDRF) is cleared by reading the LIN-UART serial The transmit data register input register (RDR). empty (TDRE) is set to "0" The error flags (PE, ORE, FRE) are set to by writing data to the serial "0" by writing "1" to the error flag clear output data register (TDR). bit (CRE). CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 495 CHAPTER 23 LIN-UART 23.9 Sample Programs of LIN-UART 496 MB95100B/AM Series FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 24 I 2C This chapter describes functions and operations of the I2C. 24.1 Overview of I2C 24.2 I2C Configuration 24.3 I2C Channels 24.4 I2C Bus Interface Pins 24.5 I2C Registers 24.6 I2C Interrupts 24.7 I2C Operations and Setup Procedure Examples 24.8 Notes on Use of I2C 24.9 Sample Programs for I2C CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 497 CHAPTER 24 I2C 24.1 Overview of I2C 24.1 MB95100B/AM Series Overview of I2C The I2C interface supports the I2C bus specification published by Philips. The interface provides the functions of transmission and reception in master and slave modes, detection of arbitration lost, detection of slave address and general call address, generation and detection of start and stop conditions, bus error detection, and MCU standby wakeup. ■ I2C Functions The I2C interface is a two-wire, bi-directional bus consisting of a serial data line (SDA0) and serial clock line (SCL0). The devices connected to the bus via these two wires can exchange data, and each device can operate as a sender or receiver in accordance with their respective functions based on the unique address assigned to each device. Furthermore, the interface establishes a master/slave relationship between devices. Also, the I2C interface can connect multiple devices provided the bus capacitance does not exceed an upper limit of 400 pF. The I2C interface is a true multi-master bus with collision detection and a communication control protocol that prevent loss of data even if more than one master attempts to start a data transfer at the same time. The communication control protocol ensures that only one master is able to take control of the bus at a time, even if multiple masters attempt to take control of the bus simultaneously, without messages being lost or data being altered. Multi-master means that more than one master can attempt to take control of the bus at the same time without causing messages to be lost. Also, the I2C interface includes a function to wake up the MCU from standby mode. Figure 24.1-1 I2C Interface Configuration Microcontroller A Static RAM/ E2 PROM LCD driver SDA0 SCL0 Gate array 498 A/D converter FUJITSU MICROELECTRONICS LIMITED Microcontroller B CM26-10112-4E MB95100B/AM Series 24.2 CHAPTER 24 I2C 24.2 I2C Configuration I2C Configuration I2C consists of the following blocks: • Clock selector • Clock divider • Shift clock generator • Start/stop condition generation circuit • Start/stop condition detection circuit • Arbitration lost detection circuit • Slave address comparison circuit • IBSR0 register • IBCR registers (IBCR00, IBCR10) • ICCR0 register • IAAR0 register • IDDR0 register CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 499 CHAPTER 24 I2C 24.2 I2C Configuration MB95100B/AM Series ■ Block Diagram of I2C Figure 24.2-1 Block Diagram of I2C I2C enable ICCR0 Machine clock Clock divider 1 DMBP 5 EN 6 7 8 CS4 CS3 Clock selector 1 CS2 CS1 CS0 Clock divider 2 4 8 38 22 98 128 256 Clock selector 2 IBSR0 BB RSC LRB Sync 512 Shift clock generator Shift clock edge Bus busy Repeat start Start/stop condition detection circuit Last bit Transmit/receive Error TRX First byte FBT BER BEIE Transfer interrupt INTE INT 2 F MC-8FX internal bus Arbitration lost detection circuit IBCR10 SCC MSS DACKE End Start Master ACK enable Start/stop condition generation circuit GC-ACK enable Address ACK enable GACKE INT timing select IDDR0 register IBSR0 AAS Slave GCA General call Slave address comparison circuit IAAR0 register IBCR00 AACKX INTS SCL line ALF SDA line ALE SPF Stop interrupt SPE WUF WUE 500 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 24 I2C 24.2 I2C Configuration ● Clock selector, clock divider, and shift clock generator This circuit uses the machine clock to generate the shift clock for the I2C bus. ● Start/stop condition generation circuit When a start condition is transmitted with the bus idle (SCL0 and SDA0 at the "H" level), a master starts communications. When SCL0 = "H", a start condition is generated by changing the SDA0 line from "H" to "L". The master can terminate its communication by generating a stop condition. When SCL0 = "H", a stop condition is generated by changing the SDA0 line from "L" to "H". ● Start/stop condition detection circuit This circuit detects a start/stop condition for data transfer. ● Arbitration lost detection circuit This interface circuit supports multi-master systems. If two or more masters attempt to transmit at the same time, the arbitration lost condition (if logic level "1" is sent when the SDA0 line goes to the "L" level) occurs. When the arbitration lost is detected, IBCR00:ALF is set to "1" and the master changes to a slave automatically. ● Slave address comparison circuit The slave address comparison circuit receives the slave address after the start condition to compare it with its own slave address. The address is seven-bit data followed by a data direction (R/W) bit in the eighth bit position. If the received address matches the own slave address, the comparison circuit transmits an acknowledgment. ● IBSR0 register The IBSR0 register shows the status of the I2C interface. ● IBCR registers (IBCR00, IBCR10) The IBCR registers are used to select the operating mode and to enable or disable interrupts, acknowledgment, general call acknowledgment, and the function to wake up the MCU from standby mode. ● ICCR0 register The ICCR0 register is used to enable I2C interface operations and select the shift clock frequency. ● IAAR0 register The IAAR0 register is used to set the slave address. ● IDDR0 register The IDDR0 register holds the transmit or receive shift data or address. When transmitted, the data or address written to this register is transferred from the MSB first to the bus. ■ Input Clock I2C uses the machine clock as the input clock (shift clock). CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 501 CHAPTER 24 I2C 24.3 I2C Channels 24.3 MB95100B/AM Series I2C Channels This section describes the I2C channels. ■ I2C Channels MB95100B/AM series contains 1 channel of I2C. Table 24.3-1 and Table 24.3-2 show the correspondence among the channels, pins, and registers respectively. Table 24.3-1 Pins of I2C Channel Pin name Pin function 0 SCL0 SDA0 I2C bus I/O Table 24.3-2 I2C Registers Channel Register name IBCR00 I2C bus control register 0 IBCR10 I2C bus control register 1 IBSR0 I2C bus status register IDDR0 I2C data register IAAR0 I2C address register ICCR0 I2C clock control register 0 502 Register designation (Representation in this manual) FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 24.4 CHAPTER 24 I2C 24.4 I C Bus Interface Pins 2 I2C Bus Interface Pins This section describes the pins of the I2C bus interface and gives their block diagram. ■ Pins Related to I2C Bus Interface The pins related to the I2C bus interface are the SDA0 and SCL0 pins. ● SDA0 pin The SDA0 pin can serve as a general-purpose I/O port, external interrupt input (hysteresis input), serial data output pin (N-ch open-drain) for 8-bit serial I/O, and I2C data I/O pin (SDA0). SDA0:When I2C is enabled (ICCR0:EN = 1), the SDA0 pin is automatically set as a data I/O pin to function as the SDA0 pin. To use it as an input pin, enable the I2C operation (ICCR0: EN = 1) and write "0" to the corresponding of bit4 port direction register (DDR). ● SCL0 pin The SCL0 pin can serve as a N-ch open-drain I/O port, external interrupt input (hysteresis input), serial data input (hysteresis input) for eight-bit serial I/O, or I2C serial clock I/O pin (SCL0). SCL0:When I2C is enabled (ICCR0:EN = 1), the SCL0 pin is automatically set as the shift clock I/O pin to function as the SCL0 pin. To use it as an input pin, enable the I2C operation (ICCR0: EN = 1) and write "0" to the corresponding of bit4 port direction register (DDR). CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 503 CHAPTER 24 I2C 24.4 I2C Bus Interface Pins MB95100B/AM Series ■ I2C-related Pin Block Diagram Figure 24.4-1 Block Diagram of I2C-related Pins (SCL0, SDA0) Hysteresis Peripheral function input Peripheral function input enable Peripheral function output enable Peripheral function output 0 1 0 Automotive 0 1 1 PDR read 1 CMOS 0 PDR PDR write N-ch Pin OD Only P50 and P51 are selectable. In bit operation instruction Internal bus DDR read DDR DDR write Stop, Watch (SPL=1) ILSR read ILSR ILSR write ILSR3 read ILSR3 ILSR3 write 504 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 24 I2C 24.5 I2C Registers MB95100B/AM Series 24.5 I2C Registers This section describes the I2C registers. ■ I2C Registers Figure 24.5-1 I2C Registers I2C bus control register 0 (IBCR00) Address 0060H bit7 AACKX R/W bit6 INTS R/W bit5 ALF R(RM1),W bit4 ALE R/W bit3 SPF R(RM1),W bit2 SPE R/W bit3 bit2 bit1 WUF R(RM1),W bit0 WUE R/W Initial value 00000000B I2C bus control register 1 (IBCR10) Address 0061H bit7 bit6 bit5 bit4 BER BEIE R/W SCC R0,W MSS R/W bit5 bit4 R(RM1),W DACKE GACKE R/W R/W bit1 bit0 Initial value INTE R/W INT 00000000B R(RM1),W I2C bus status register (IBSR0) Address 0062H bit7 BB R/WX bit6 RSC LRB R/WX R0/WX R/WX bit3 bit2 bit1 bit0 Initial value TRX R/WX AAS R/WX GCA R/WX FBT R/WX 00000000B I2C data register (IDDR0) Address 0063H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value D7 R/W D6 R/W D5 R/W D4 R/W D3 R/W D2 R/W D1 R/W D0 R/W 00000000B I2C address register (IAAR0) Address 0064H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value - A6 R/W A5 R/W A4 R/W A3 R/W A2 R/W A1 R/W A0 R/W 00000000B bit5 bit4 bit3 bit2 bit1 bit0 Initial value EN R/W CS4 R/W CS3 R/W CS2 R/W CS1 R/W CS0 R/W 00000000B R0/WX I2C clock control register (ICCR0) Address 0065H bit7 bit6 DMBP R/W R0/WX R/W : Readable/Writable (Read value is the same as write value) R(RM1),W : Readable/Writable (Read value is different from write value, "1" is read by readmodify-write (RMW) instruction) R0,W : Write only (Writable, "0" is read) R/WX : Read only (Readable, writing has no effect on operation) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) : Undefined CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 505 CHAPTER 24 I2C 24.5 I2C Registers MB95100B/AM Series I2C Bus Control Registers (IBCR00, IBCR10) 24.5.1 The I2C bus control registers are used to select the operating mode and to enable or disable interrupts, acknowledgment, general call acknowledgment, and MCU standby wakeup function. ■ I2C Bus Control Register 0 (IBCR00) Figure 24.5-2 I2C Bus Control Register 0 (IBCR00) bit7 Address 0060H bit6 AACKX INTS R/W R/W bit5 bit4 bit3 bit2 ALF ALE SPF SPE R(RM1),W R/W R(RM1),W R/W bit1 bit0 Initial value WUF WUE 00000000B R(RM1),W R/W WUE MCU standby-mode wakeup function enable bit 0 Disables the MCU standby-mode wakeup function in stop/watch mode 1 Enables the MCU standby-mode wakeup function in stop/watch mode MCU standby-mode wakeup interrupt request flag bit WUF Read Write 0 Start condition undetected Clear 1 Start condition detected Unchanged SPE Stop detection interrupt enable bit 0 Disables stop detection interrupts. 1 Enables stop detection interrupts. Stop detection interrupt request flag bit SPF Read Write 0 Stop condition undetected Clear 1 Stop condition detected Unchanged ALE Arbitration lost interrupt enable bit 0 Disables arbitration lost interrupts. 1 Enables arbitration lost interrupts. Arbitration lost interrupt request flag bit ALF Read Arbitration lost undetected Clear 1 Arbitration lost detected Unchanged INTS : Readable/Writable (Read value is the same as write value) R(RM1),W : Readable/Writable (Read value is different from write value, "1" is read by read-modify-write (RMW) instruction) : Initial value Timing select bit for data reception transfer completion flag (INT) 0 Sets INT in 9th SCL cycle. 1 Sets INT in 8th SCL cycle. AACKX Address acknowledge disable bit R/W 506 Write 0 0 Enables address ACK. 1 Disables address ACK. FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 24 I2C 24.5 I2C Registers MB95100B/AM Series Table 24.5-1 I2C Bus Control Register 0 (IBCR00) (1 / 2) Bit name Function AACKX: bit7 Address acknowledge disable bit This bit controls the address ACK when the first byte is transmitted. Setting the bit to "0": Causes the address ACK to be output automatically (The address ACK is returned automatically if the slave address matches). Setting the bit to "1": Prevents the address ACK from being output. Update this bit in either of the following ways: - Write "1" to the bit in master mode. - Clear the bit to "0" after making sure that the bus busy bit is "0" (IBSR0:BB = 0). Notes: • If AACKX =1 and IBSR0:FBT =0 when an IBCR10:INT bit interrupt occurs, no address ACK is output even though the I2C address matches the slave address. Clear the IBCR10:INT bit to "0" as an interrupt is generated upon completion of transfer of each byte of address/data in the same way as during addressing. • If AACKX =1 and IBSR0:FBT =1 when an IBCR10:INT bit interrupt occurs, "1" might be written to AACKX after addressing as in slave mode. Either continue normal communication after setting AACKX to "0" again or restart communication after disabling I2C operation (ICCR0:EN = 0). INTS: Timing select bit for bit6 data reception transfer completion flag (INT) This bit selects the timing of the transfer completion interrupt (IBCR10:INT) when data is received. Change the bit only when IBSR0:TRX = 0 and IBSR0:FBT = 0. Setting the bit to "0": Sets the transfer completion interrupt (IBCR10:INT) in the ninth SCL cycle. Setting the bit to "1": Sets the transfer completion interrupt (IBCR10:INT) in the eighth SCL cycle. Notes: • The transfer completion interrupt (IBCR10:INT) is set always in the ninth SCL0 cycle except during data reception (IBSR0:TRX = 1 or IBSR0:FBT = 1). • If the data ACK depends on the content of the received data (such as packet error checking used by the SM bus), control the data ACK by setting the data ACK enable bit (IBCR10:DACKE) after writing "1" to this bit (for example, using a previous transfer completion interrupt) to read latest received data. • The latest data ACK (IBSR0:LRB) can be read after the ACK has been received (IBSR0:LRB must be read during the transfer completion interrupt in the ninth SCL0 cycle.) If ACK is read when this bit is "1", therefore, you must write "0" to this bit in the transfer completion interrupt in the eighth SCL0 cycle so that another transfer completion interrupt will occur in the ninth SCL0 cycle. ALF: Arbitration lost bit5 interrupt request flag bit This bit is used to detect when arbitration is lost. • An arbitration lost interrupt request is generated if this bit and the IBCR00:ALE bit are both "1". • This bit is set to "1" in the following cases: - When arbitration lost is detected during data/address transmission as a master - When "1" is written to the IBCR10:MSS bit with the bus being used by another system. However, the bit is not set when "1" is written to the MSS bit after the system returns AACK or GACK as a slave. • This bit is set to "0" in the following cases: - When "0" is written to the IBCR00:ALF bit with IBSR0:BB = 0. - When "0" is written to the IBCR10:INT bit to clear the transmission completion flag. • Writing "1" to this bit leaves its value unchanged and has no effect on the operation. • The bit returns "1" when read by a read-modify-write (RMW) instruction. ALE: bit4 Arbitration lost interrupt enable bit This bit enables or disables arbitration lost interrupts. An arbitration lost interrupt request is generated if this bit and the IBCR00:ALF bit are both "1". Setting the bit to "0": Disables arbitration lost interrupts. Setting the bit to "1": Enables arbitration lost interrupts. This bit is used to detect a stop condition. • A stop detection interrupt request is generated if this bit and the IBCR00:SPE bit are both "1". SPF: • This bit is set to "1" if a valid stop condition is detected when the bus is busy. bit3 Stop detection interrupt Setting the bit to "0": Clears itself (changes the value to "0"). request flag bit Setting the bit to "1": Leaves its value unchanged without affecting the operation. • The bit returns "1" when read by a read-modify-write (RMW) instruction. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 507 CHAPTER 24 I2C 24.5 I2C Registers MB95100B/AM Series Table 24.5-1 I2C Bus Control Register 0 (IBCR00) (2 / 2) Bit name Function This bit enables or disables stop detection interrupts. SPE: A stop detection interrupt request is generated if this bit and the IBCR00:SPF bit are both "1". bit2 Stop detection interrupt Setting the bit to "0": Disables stop detection interrupts. enable bit Setting the bit to "1": Enables stop detection interrupts. WUF: MCU standby-mode bit1 wakeup interrupt request flag bit This bit is used to detect MCU wakeup from a standby mode (stop or watch mode). • A wakeup interrupt request is generated if this bit and the IBCR00:WUE bit are both "1". • This bit is set to "1" if a start condition is detected with the wakeup function enabled (IBCR00:WUE = 1). Setting the bit to "0": Clears itself (changes the value to "0"). Setting the bit to "1": Leaves its value unchanged without affecting the operation. • The bit returns "1" when read by a read-modify-write (RMW) instruction. This bit enables or disables the function to wake up the MCU from standby mode (stop or watch mode). Setting the bit to "0": Disables the wakeup function. Setting the bit to "1": Enables the wakeup function. If a start condition is detected in stop or watch mode when this bit is "1", a wakeup interrupt request is generated to start I2C operation. Notes: • Write "1" to this bit immediately before the MCU enters the stop or watch mode. To ensure that I2C operation can restart immediately after the MCU wakes up from stop or watch mode, clear (write "0" to) this bit as soon as possible. WUE: MCU standby-mode bit0 wakeup function enable bit Note: 508 • When a wakeup interrupt request occurs, the MCU wakes up after the oscillation stabilization wait time elapses. To prevent the data loss immediately after wakeup, therefore, the SCL0 must rise as the first cycle and the first bit must be received as data after 100 μs (assuming that the minimum oscillation stabilization wait time is 100 μs) from the wakeup due to the start of I2C transmission (upon detection of the falling edge of SDA0). • During a MCU standby mode, the status flags, state machine, and I2C bus outputs for the I2C function retain the states they had prior to entering the standby mode. To prevent a hang-up of the entire I2C bus system, make sure that IBSR0:BB = 0 before entering standby mode. • The wakeup function does not support the transition of the MCU to stop or watch mode with IBSR0:BB = 1. If the MCU enters stop or watch mode with IBSR0:BB = 1, a bus error will occur upon detection of a start condition. • The wakeup function is useful only when the MCU remains in stop/watch mode. (In PLL stop mode, for example, the time from wakeup to the start of communication becomes longer than in stop/watch mode as the PLL oscillation stabilization wait time is required in addition to the oscillation stabilization wait time.) The AACKX, INTS, and WUE bits in the IBCR00 register are set to "0" and cannot be written to either when I2C operation is disabled (ICCR:EN = 0) or when a bus error occurs (IBCR10:BER = 1). FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 24 I2C 24.5 I2C Registers MB95100B/AM Series ■ I2C Bus Control Register 1 (IBCR10) Figure 24.5-3 I2C Bus Control Register 1 (IBCR10) Address 0061H bit7 bit6 bit5 bit4 BER BEIE SCC MSS R(RM1),W R/W R0,W R/W bit3 bit2 bit1 DACKE GACKE R/W R/W bit0 Initial value INTE INT 00000000B R/W R(RM1),W Transfer completion interrupt request flag bit INT 0 Read Write Data transfer not completed Clear 1 1-byte data (including acknowledgment) transfer completed Unchanged INTE Transfer completion interrupt enable bit 0 Disables data transfer completion interrupt requests. 1 Enables data transfer completion interrupt requests. GACKE General call address acknowledge enable bit 0 Disables general call address ACK. 1 Enables general call address ACK. DACKE Data acknowledge enable bit 0 Disables data ACK. 1 Enables data ACK. MSS Master/slave select bit 0 Selects slave mode. 1 Selects master mode. Start condition generation bit SCC Read Write 0 Unchanged Always "0" 1 Generates master-mode repeated start condition. BEIE Bus error interrupt request enable bit 0 Disables bus error interrupt requests. 1 Enables bus error interrupt requests. Bus error interrupt request flag bit BER R/W : Readable/Writable (Read value is the same as write value) R(RM1),W : Readable/Writable (Read value is different from write value, "1" is read by read-modify-write (RMW) instruction) R0,W : Write only (Writable, "0" is read) Read Write 0 No bus error Clear 1 Invalid start/stop condition detected Unchanged : Initial value CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 509 CHAPTER 24 I2C 24.5 I2C Registers MB95100B/AM Series Table 24.5-2 I2C Bus Control Register 1 (IBCR10) (1 / 2) Bit name Function bit7 BER: Bus error interrupt request flag bit This bit is used to detect bus errors. • A bus error interrupt request is generated if this bit and the IBCR10:BEIE bit are both "1". • This bit is set to "1" when an invalid start or stop condition is detected. Setting the bit to "0": Clears itself (changes the value to "0"). Setting the bit to "1": Leaves its value unchanged without affecting the operation. • The bit returns "1" when read by a read-modify-write (RMW) instruction. • When this bit is set to "1", ICCR0:EN is set to "0", and the I2C interface enters halt mode to terminate data transfer. bit6 BEIE: Bus error interrupt request enable bit This bit enables or disables bus error interrupts. A bus error interrupt request is generated if this bit and the IBCR10:BER bit are both "1". Setting the bit to "0": Disables bus error interrupts. Setting the bit to "1": Enables bus error interrupts. SCC: Start condition generation bit This bit can be used to generate a start condition repeatedly to restart communications in master mode. • Writing "1" to the bit in master mode generates a start condition repeatedly. • Writing "0" to the bit is meaningless. • When read, the bit returns "0". Notes: • Do not set IBCR10:SCC = 1 and IBCR10:MSS = 0 at the same time. • An attempt to write "1" to this bit is ignored when IBCR10:INT = 0 (no start condition is generated). If you write "1" to this bit and "0" to the IBCR10:INT bit at the same time when the IBCR10:INT = 1, this bit takes priority and generates a start condition. MSS: Master/slave select bit This bit selects master mode or slave mode. • Writing "1" to this bit while the I2C bus is in the idle state (IBSR0:BB = 0) selects master mode, generates a start condition, and then starts address transfer. • Writing "0" to the bit while the I2C bus is in the busy state (IBSR0:BB = 1) selects slave mode, generates a stop condition, and then ends data transfer. • If arbitration lost occurs during data or address transfer in master mode, this bit is cleared to "0" and the mode changes to slave mode. Notes: • Do not set IBCR10:SCC = 1 and IBCR10:MSS = 0 at the same time. • An attempt to write "0" to this bit is ignored when IBCR10:INT = 0. If you write "0" to this bit and "0" to the IBCR10:INT bit at the same time when the IBCR10:INT = 1, this bit takes priority and generates a stop condition. • The IBCR00:ALF bit is not set even though you write "1" to the MSS bit during transmission or reception in slave mode. Do not write "1" to the MSS bit during transmission or reception in slave mode. bit3 DACKE: Data acknowledge enable bit This bit controls data acknowledgment during data reception. Setting the bit to "0": Disables data acknowledge output. Setting the bit to "1": Enables data acknowledge output. In this case, data acknowledgment is output in the ninth SCL0 cycle during data reception in master mode. In slave mode, data acknowledgment is output in the ninth SCL0 cycle only if address acknowledgment has already been output. bit2 This bit controls general call address acknowledgment. GACKE: Setting the bit to "0": Disables output of general call address acknowledge. General call address Setting the bit to "1": Causes a general call address acknowledgment to be output if a general call acknowledge enable bit address (00H) is received in master or slave mode. bit1 INTE: Transfer completion interrupt enable bit bit5 bit4 510 This bit enables or disables transfer completion interrupts. Setting the bit to "0": Disables transfer completion interrupts. Setting the bit to "1": Enables transfer completion interrupts. A transfer completion interrupt request is generated if this bit and the IBCR10:INT bit are both "1". FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 24 I2C 24.5 I2C Registers MB95100B/AM Series Table 24.5-2 I2C Bus Control Register 1 (IBCR10) (2 / 2) Bit name bit0 INT: Transfer completion interrupt request flag bit Function This bit is used to detect transfer completion. • A transfer completion interrupt request is generated if this bit and the IBCR10:INTE bit are both "1". • This bit is set to "1" upon completion of transfer of 1-byte address or data (whether or not this includes an acknowledgment depends on the IBCR00:INTS setting) if any of the following four conditions is satisfied. - In bus master mode - Addressed as slave - General call address received - Arbitration lost detected • This bit is set to "0" in the following cases: - "0" written to the bit - Repeated start condition (IBCR10:SCC = 1) or stop condition (IBCR10:MSS = 0) occurred in master mode. • An attempt to write "1" to this bit leaves its value unchanged and has no effect on the operation. • The bit returns "1" when read by a read-modify-write (RMW) instruction. • The SCL0 line remains at "L" while this bit is "1". • Writing "0" to clear the bit (change the value to "0") releases the SCL0 line to enable transmission for the next byte of data. Notes: • If "1" is written to IBCR10:SCC when this bit is "0", the IBCR10:SCC bit has priority and the start condition is generated. • If "0" is written to IBCR10:MSS when this bit is "0", the IBCR10:MSS bit has priority and the stop condition is generated. • If IBCR00:INTS = 1 when data is received, this bit is set to "1" upon completion of transfer of one-byte data (including no acknowledgment). In other cases, this bit is set to "1" upon completion of transmission or reception of one-byte data/address including an acknowledgment. Notes: • When clearing the interrupt request flag (IBCR10:BER) by writing "0", do not update the interrupt request enable bit (IBCR10:BEIE) at the same time. • All the bits in IBCR10 except the BER and BEIE bits are cleared to "0" either when operation is disabled (ICCR:EN = 0) or when a bus error occurs (IBCR10:BER = 1). CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 511 CHAPTER 24 I2C 24.5 I2C Registers 24.5.2 MB95100B/AM Series I2C Bus Status Register (IBSR0) The IBSR0 register contains the status of the I2C interface. ■ I2C Bus Status Register (IBSR0) Figure 24.5-4 I2C Bus Status Register (IBSR0) bit7 bit6 bit5 bit4 bit3 bit2 BB RSC - LRB TRX AAS GCA R/WX R/WX R0/WX R/WX R/WX Address 0062H bit1 R/WX R/WX : Read only (Readable, writing has no effect on operation) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) : Undefined R/WX bit0 Initial value FBT 00000000B R/WX FBT First byte detection bit 0 Data received is not the first byte. 1 Data received is the first byte (address data) GCA General call address detection bit 0 General call address (00H) not received in slave mode. 1 General call address (00H) received in slave mode. AAS Addressing detection bit 0 Not addressed in slave mode. 1 Addressed in slave mode. TRX Data transfer status bit 0 Receive mode 1 Transmit mode LRB Acknowledge storage bit 0 Acknowledgment detected in ninth shift clock cycle. 1 Acknowledgment not detected in ninth shift clock cycle. RSC Repeated start condition detection bit 0 Repeated start condition not detected 1 Repeated start condition detected with bus in use BB Bus busy bit 0 Bus idle 1 Bus busy : Initial value 512 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 24 I2C 24.5 I2C Registers MB95100B/AM Series Table 24.5-3 I2C Bus Status Register (IBSR0) Bit name Function BB: Bus busy bit This bit indicates the bus status. • This bit is set to "1" when a start condition is detected. • This bit is set to "0" when a stop condition is detected. bit6 RSC: Repeated start condition detection bit This bit is used to detect repeated start conditions. • This bit is set to "1" when a repeated start condition is detected. • This bit is set to "0" in the following cases: - When "0" is written to IBCR10:INT. - When the slave address does not match the address set in IAAR0 in slave mode. - When the slave address matches the address set in IAAR0 but IBCR00:AACKX = 1 in slave mode. - When the general call address is received but IBCR10:GACKE = 0 in slave mode. - When a stop condition is detected. bit5 Undefined bit The value read is always "0". An attempt to write to the bit is meaningless. bit7 LRB: bit4 Acknowledge storage bit This bit saves the value of the SDA0 line in the ninth shift clock cycle during data byte transfer. • This bit is set to "1" when no acknowledgment is detected (SDA0 = "H"). • This bit is set to "0" in the following cases: - When acknowledgment is detected (SDA0 = "L") - When a start or stop condition is detected. Note: It follows from the above that this bit must be read after ACK (Read the value in response to the transfer completion interrupt in the ninth SCL0 cycle). Accordingly, if ACK is read when the IBCR00:INTS bit is "1", you must write "0" to the IBCR00:INTS bit in the transfer completion interrupt triggered by the eighth SCL0 cycle so that another transfer completion interrupt will be triggered by the ninth SCL0 cycle. bit3 TRX: Data transfer status bit This bit indicates the data transfer mode. • This bit is set to "1" when data transfer is performed in transfer mode. • This bit is set to "0" in the following cases: - Data is transferred in receive mode. - NACK is received in slave transmit mode. bit2 AAS: Addressing detection bit This bit indicates that the MCU has been addressed in slave mode. • This bit is set to "1" if the MCU is addressed in slave mode. • This bit is set to "0" when a start or stop condition is detected. GCA: General call address detection bit This bit is used to detect a general call address. • This bit is set to "1" in the following cases: - When the general call address (00H) is received in slave mode. - When the general call address (00H) is received in master mode with IBCR10:GACKE = 1. - When arbitration lost is detected during transmission of the second byte of the general call address in master mode. • This bit is set to "0" in the following cases: - When a start or stop condition is detected. - When arbitration lost is not detected during transmission of the second byte of the general call address in master mode. FBT: First byte detection bit This bit is used to detect first byte. • This bit is set to "1" when a start condition is detected. • This bit is set to "0" in the following cases: - When "0" is written to the IBCR10:INT bit. - When the slave address does not match the address set in IAAR0 in slave mode. - When the slave address matches the address set in IAAR0 but IBCR00:AACKX = 1 in slave mode. - When the general call address is received with IBCR10:GACKE = 0 in slave mode. bit1 bit0 CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 513 CHAPTER 24 I2C 24.5 I2C Registers 24.5.3 MB95100B/AM Series I2C Data Register (IDDR0) The IDDR0 register is used to set the data or address to send and to hold the data or address received. ■ I2C Data Register (IDDR0) Figure 24.5-5 I2C Data Register (IDDR0) I2C data register (IDDR0) Address 0063H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value D7 D6 D5 D4 D3 D2 R/W R/W R/W R/W R/W R/W R/W: Readable/Writable (Read value is the same as write value) D1 R/W D0 R/W 00000000B In transmit mode, each bit of the data or address value written to the register is shifted to the SDA0 line, starting with the MSB. The write side of this register is double-buffered, where if the bus is in use (IBSR0:BB=1), the write data is loaded to the 8-bit shift register either when the current data transfer completion interrupt is cleared (writing "0" to the IBCR10:INT bit) or when a repeated start condition is generated (writing "1" to the IBCR10:SCC bit). Each bit of the shift register data is output (shifted) to the SDA0 line. Note that writing to this register has no effect on the current data transfer. In slave mode, however, data is transferred to the shift register after the address is determined. The received data or address can be read from this register during the transfer completion interrupt (IBCR10:INT = 1). When it is read, however, the serial transfer register is directly read from, the receive data is valid only while IBCR10:INT = 1. 514 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 24 I2C 24.5 I2C Registers MB95100B/AM Series 24.5.4 I2C Address Register (IAAR0) The IAAR0 register is used to set the slave address. ■ I2C Address Register (IAAR0) Figure 24.5-6 I2C Address Register (IAAR0) I2C address register (IAAR0) Address 0064H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value A6 A5 A4 A3 A2 A1 R/W R/W R/W R/W R/W R/W R/W : Readable/Writable (Read value is the same as write value) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) : Undefined A0 R/W 00000000B - R0/WX The I2C address register (IAAR0) is used to set the slave address. In slave mode, address data from the master is received and then compared with the value of the IAAR0 register. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 515 CHAPTER 24 I2C 24.5 I2C Registers 24.5.5 MB95100B/AM Series I2C Clock Control Register (ICCR0) The ICCR0 register is used to enable I2C operation and select the shift clock frequency. ■ I2C Clock Control Register (ICCR0) Figure 24.5-7 I2C Clock Control Register (ICCR0) Address 0065H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value DMBP - EN CS4 CS3 CS2 CS1 CS0 00000000B R/W R0/WX R/W R/W R/W R/W R/W R/W CS2 CS1 CS0 Clock-2 select bits (Divider n) 0 0 0 4 0 0 1 8 0 1 0 22 0 1 1 38 1 0 0 98 1 0 1 128 1 1 0 256 1 1 1 512 CS4 CS3 Clock-1 select bits (Divider m) 0 0 5 0 1 6 1 0 7 1 1 8 EN R/W : Readable/Writable (Read value is the same as write value) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) - I2C operation enable bit 0 Disables I2C operation 1 Enables I2C operation DMBP Divider-m bypass bit 0 Disables bypassing 1 Bypasses divider m : Undefined : Initial value 516 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 24 I2C 24.5 I2C Registers MB95100B/AM Series Table 24.5-4 I2C Clock Control Register (ICCR0) Bit name Function bit7 DMBP: Divider-m bypass bit This bit is used to bypass the divider m to generate the shift clock frequency. Setting the bit to "0": Sets the value set in CS3 and CS4 as the divider m value (m = ICCR0:CS4, CS3). Setting the bit to "1": Bypasses the divider m. Note: Do not set this bit to "1" when divider n = 4 (ICCR0:CS2 to CS0 = 000B). bit6 Undefined bit The value read is always "0". An attempt to write to the bit is meaningless. bit5 EN: I2C operation enable bit • This bit enables I2C interface operation. Setting the bit to "0": Disables operation of the I2C interface and clears the following bits to "0". - AACKX, INTS, and WUE bits in the IBCR00 register - All the bits in the IBCR10 register except the BER and BEIE bits - All bits in the IBSR0 register Setting the bit to "1": Enables operation of the I2C interface. • This bit is set to "0" in the following cases: - When "0" is written to this bit. - When IBCR10:BER is "1". bit4, bit3 CS4, CS3: Clock-1 select bits (Divider m) bit2 to bit0 CS2, CS1, CS0: Clock-2 select bits (Divider n) These bits set the shift clock frequency. Shift clock frequency (Fsck) is set as shown by the following equation: φ Fsck = (m × n + 2) φ represents the machine clock frequency (MCLK). Note: If the standby mode wakeup function is not used, disable I2C operation before switching the MCU to stop or watch mode. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 517 CHAPTER 24 I2C 24.6 I2C Interrupts 24.6 MB95100B/AM Series I2C Interrupts The I2C interface has a transfer interrupt and a stop interrupt which are triggered by the following events. • Transfer interrupt A transfer interrupt occurs either upon completion of data transfer or when a bus error occurs. • Stop interrupt A stop interrupt occurs upon detection of a stop condition or arbitration lost or upon access to the I2C interface in stop/watch mode. ■ Transfer Interrupt Table 24.6-1 shows the transfer interrupt control bits and I2C interrupt sources. Table 24.6-1 Transfer Interrupt Control Bits and I2C Interrupt Sources Item End of transfer Bus error Interrupt request flag bit IBCR10:INT =1 IBCR10:BER =1 Interrupt request enable bit IBCR10:INTE =1 IBCR10:BEIE =1 Interrupt source Data transfer complete Bus error occurred • Interrupt upon completion of transfer An interrupt request is output to the CPU upon completion of data transfer if the transfer completion interrupt request enable bit has been set to enable (IBCR10:INTE = 1). In the interrupt service routine, write "0" to the transfer completion interrupt request flag bit (IBCR10:INT) to clear the interrupt request. When data transfer is completed, the IBCR10:INT bit is set to "1" regardless of the value of the IBCR10:INTE bit. • Interrupt in response to a bus error When the following conditions are met, a bus error is deemed to have occurred, and the I2C interface will be stopped. - When a stop condition is detected in master mode. - When a start or stop condition is detected during transmission or reception of the first byte. - When a start or stop condition is detected during transmission or reception of data (excluding the start, first data, and stop bits). In these cases, an interrupt request is output to the CPU if the bus error interrupt request enable bit has been set to enable (IBCR10:BEIE = 1). In the interrupt service routine, write "0" to the bus error interrupt request flag bit (IBCR10:BER) to clear the interrupt request. When a bus error occurs, the IBCR10:BER bit is set to "1" regardless of the value of the IBCR10:BEIE bit. 518 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 24 I2C 24.6 I2C Interrupts MB95100B/AM Series ■ Stop Interrupt Table 24.6-2 shows the stop interrupt control bits and I2C interrupt sources (trigger events). Table 24.6-2 Stop Interrupt Control Bits and I2C Interrupt Sources Item Detection of stop condition Detection of arbitration lost MCU wakeup from stop/watch mode Interrupt request flag bit IBCR00:SPF =1 IBCR00:ALF =1 IBCR00:WUF =1 Interrupt request enable bit IBCR00:SPE =1 IBCR00:ALE =1 IBCR00:WUE =1 Interrupt source Stop condition detected Arbitration lost detected Start condition detected • Interrupt upon detection of a stop condition A stop condition is considered to be valid if all of the following conditions are satisfied when the stop condition is detected. - The bus is busy (state which the start condition is detected). - IBCR10:MSS = 0 - After transfer of one byte of data completes, including the acknowledgment. In this case, an interrupt request is output to the CPU if the stop condition detection interrupt request enable bit has been set to enable (IBCR00:SPE =1). In the interrupt service routine, write "0" to the IBCR00:SPF bit to clear the interrupt request. The IBCR00:SPF bit is set to "1" when a valid stop condition occurs regardless of the value of the IBCR00:SPE bit. • Interrupt upon detection of arbitration lost When arbitration lost is detected, an interrupt request is output to the CPU if the arbitration lost detection interrupt request enable bit has been set to enable (IBCR00:ALE = 1). Either write "0" to the arbitration lost interrupt request flag bit (IBCR00:ALF) while the bus is idle or write "0" to the IBCR10:INT bit from the interrupt service routine while the bus is busy to clear the interrupt request. When arbitration lost occurs, the IBCR00:ALF bit is set to "1" regardless of the value for the IBCR00:ALE bit. • Interrupt for MCU wakeup from stop/watch mode When a start condition is detected, an interrupt request is output to the CPU if the function to wake up the MCU from stop or watch mode has been enabled (IBCR00:WUE = 1). In the interrupt service routine, write "0" to the MCU standby mode wakeup interrupt request flag bit (IBCR00:WUF) to clear the interrupt request. Refer to "APPENDIX B Table of Interrupt Causes" for the interrupt source numbers and vector tables of all peripheral functions. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 519 CHAPTER 24 I2C 24.6 I2C Interrupts MB95100B/AM Series ■ Registers and Vector Table Related to I2C Interrupts Table 24.6-3 Registers and Vector Table Related to I2C Interrupts Interrupt source Interrupt request No. ch.0 IRQ16 Interrupt Level Setting register Vector table address Register Setting bit Upper Lower ILR4 L16 FFDAH FFDBH ch.: channel 520 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 24.7 CHAPTER 24 I2C 24.7 I C Operations and Setup Procedure Examples 2 I2C Operations and Setup Procedure Examples This section describes the operation of I2C. ■ Operation of I2C ● I2C interface The I2C interface is an eight-bit serial interface synchronized with a shift clock. It conforms to the I2C bus specification defined by Philips. ● MCU standby mode wakeup function The wakeup function wakes up the MCU upon detection of a start condition, from low power consumption mode such as stop or watch mode. ■ Setup Procedure Example Use the following procedure to set up I2C: ● Initial setting 1) Set the port for input (DDR0). 2) Set the interrupt level (ILR2, ILR4). 3) Set the slave address (IAAR0). 4) Select the clock and enable I2C operation (ICCR0). 5) Enable bus error interrupt requests (IBCR00:BEIE = 1). ● Interrupt processing 1) Arbitrary processing 2) Clear the bus error interrupt request flag (IBCR00:BER = 0). CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 521 CHAPTER 24 I2C 24.7 I2C Operations and Setup Procedure Examples 24.7.1 MB95100B/AM Series l2C Interface The I2C interface is an eight-bit serial interface synchronized with the shift clock. It conforms to the I2C bus specification defined by Philips. ■ I2C System The I2C bus system uses the serial data line (SDA0) and serial clock line (SCL0) for data transfers. All the devices connected to the bus require open drain or open collector outputs which must be connected with a pull-up resistor. Each of the devices connected to the bus has a unique address which can be set up using software. The devices always operate in a simple master/slave relationship, where the master functions as the master transmitter or master receiver. The I2C interface is a true multi-master bus with a collision detection function and arbitration function to prevent data from being lost if more than one master attempts to start data transfer at the same time. ■ I2C Protocol Figure 24.7-1 shows the format required for data transfer. Figure 24.7-1 Data Transfer Example MSB LSB MSB LSB SDA0 SCL0 Start condition (S) 7-bit address R/W Acknowledge bit 8-bit data Stop condition (P) No acknowledge The slave address is transmitted after a start condition (S) is generated. This address is seven bits followed by the data direction bit (R/W) in the eighth bit position. Data is transmitted after the address. The data is eight bits followed by an acknowledgment. Data can be transmitted continuously to the same slave address in consecutive units of eight bits plus acknowledgment. Data transfer is always ended in the master stop condition (P). However, the repeated start condition (S) can be used to transmit the address which indicates a different slave without generating a stop condition. 522 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 24 I2C 24.7 I C Operations and Setup Procedure Examples 2 ■ Start Conditions While the bus is idle (SCL0 and SDA0 are both at the logical "H" level), the master generates a start condition to start transmission. As shown in Figure 24.7-1, a start condition is triggered when the SDA0 line is changed from "H" to "L" while SCL0 = "H". This starts a new data transfer and commences master/ slave operation. A start condition can be generated in either of the following two ways. • By writing "1" to the IBCR10:MSS bit while the I2C bus is not in use (IBCR10:MSS = 0, IBSR0:BB = 0, IBCR10:INT = 0, and IBCR00:ALF = 0). (Next, IBSR0:BB is set to "1" to indicate that the bus is busy.) • By writing "1" to the IBCR10:SCC bit during an interrupt while in bus master mode (IBCR10:MSS = 1, IBSR0:BB = 1, IBCR10:INT = 1, and IBCR00:ALF = 0). (This generates a repeated start condition.) Writing "1" to the IBCR10:MSS or IBCR10:SCC bit is ignored in other than the above cases. If another system is using the bus when "1" is written to the IBCR10:MSS bit, the IBCR00:ALF bit is set to "1". ■ Addressing ● Slave addressing in master mode In master mode, IBSR0:BB and IBSR0:TRX are set to "1" after the start condition is generated, and the slave address in the IDDR0 register is output to the bus starting with the MSB. The address data consists of eight bits: the 7-bit slave address and the data transfer direction R/W bit (bit0 of IDDR0). The acknowledgment from the slave is received after the address data is sent. SDA0 goes to "L" in the ninth clock cycle and the acknowledge bit from the receiving device is received (see Figure 24.7-1). In this case, the R/W bit (IDDR0:bit0) is inverted logically and stored in the IBSR0:TRX bit as "1" if the SDA level is "L". ● Addressing in slave mode In slave mode, after the start condition is detected, IBSR0:BB is set to "1" and IBSR0:TRX is set to "0", and the data received from the master is stored in the IDDR0 register. After the address data is received, the IDDR0 and IAAR0 registers are compared. If the addresses match, IBSR0:AAS is set to "1" and an acknowledgment is sent to the master. Next, bit0 of the receive data (bit0 of the IDDR0 register) is saved in the IBSR0:TRX bit. ■ Data Transfer If the MCU is addressed as a slave, data can be sent or received byte by byte with the direction determined by the R/W bit sent by the master. Each byte to be output on the SDA0 line is fixed at eight bits. As shown in Figure 24.7-1, the receiver sends an acknowledgment to the sender by forcing the SDA0 line to the stable "L" level while the acknowledge clock pulse is "H". Data is transferred at one clock pulse per bit with MSB at the head. Sending and receiving an acknowledgment is required after each byte is transferred. Accordingly, nine clock pulses are required to transfer one complete data byte. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 523 CHAPTER 24 I2C 24.7 I2C Operations and Setup Procedure Examples MB95100B/AM Series ■ Acknowledgment An acknowledgment is sent by the receiver in the ninth clock cycle for data byte transfer by the sender based on the following conditions. An address acknowledgment is generated in the following cases. • The received address matches the address set in IAAR0, and the address acknowledgment is output automatically (IBCR00:AACKX = 0). • A general call address (00H) is received and the general call address acknowledgment output is enabled (IBCR10:GACKE = 1). A data acknowledge bit used when data is received can be enabled or disabled by the IBCR10:DACKE bit. In master mode, a data acknowledgment is generated if IBCR10:DACKE = 1. In slave mode, a data acknowledgment is generated if an address acknowledgment has already been generated and IBCR10:DACKE = 1. The received acknowledgment is saved in IBSR0:LRB in the ninth SCL0 cycle. • If the data ACK depends on the content of received data (such as packet error checking used by the SM bus), control the data ACK by setting the data ACK enable bit (IBCR10:DACKE) after writing "1" to the IBCR00:INTS bit (for example, by a previous transfer completion interrupt) so that the latest received data can be read. • The latest data ACK (IBSR0:LRB) can be read after the ACK has been received (IBSR0:LRB must be read during the transfer completion interrupt triggered by the ninth SCL0 cycle). Accordingly, if ACK is read when the IBCR00:INTS bit is "1", you must write "0" to this bit in the transfer completion interrupt triggered by the eighth SCL0 cycle so that another transfer completion interrupt will be triggered by the ninth SCL0 cycle. 524 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 24 I2C 24.7 I C Operations and Setup Procedure Examples 2 MB95100B/AM Series ■ General Call Address A general call address consists of the start address byte (00H) and the second address byte that follows. To use a general call address, you must set IBCR10:GACKE=1 before the acknowledge of the first byte general call address. Also, the acknowledgment for the second address byte can be controlled as shown below. Figure 24.7-2 General Call Operation Slave mode First-byte general call address Second-byte general call address ACK ACK/NACK IBCR10:INT is set at 9th SCL↓. Read IBSR0: LRB. IBCR10:INT is set at 9th SCL↓. Set IBCR00:INTS = 1. When IBCR10:GACKE = 1, ACK is given and IBSR0:GCA is set. IBCR10:INT is set at 8th SCL↓. Read IDDR0 and control ACK/NACK by IBCR10.DACKE. To read IBSR10:LRB, set INTS = 0. (a) General call operation in slave mode Master mode GACKE=1 First-byte general call address ACK Second-byte general call address ACK/NACK IBCR10:INT is set at 9th SCL↓. Read IBSR0:LRB. IBCR10:INT is set at 9th SCL↓. Set IBCR00:INTS = 1 and GACKE = 0. GCA is cleared. IBCR10:INT is set at 8th SCL↓. To read IBSR10:LRB, set INTS = 0. ACK is given and IBSR0:GCA is set. (b) General call operation in master mode (Start from GACKE = 1 with no AL.) Master mode GACKE=1 First-byte general call address ACK Second-byte general call address ACK/NACK IBCR10:INT is set at 9th SCL↓. Read IBSR0:LRB. IBCR10:INT is set at 9th SCL↓. Set IBCR00:INTS = 1 and GACKE = 0. IBCR10:INT is set at 8th SCL↓. Read IDDR0 and control ACK/NACK by IBCR10:DACKE. To read IBSR10:LRB, set INTS = 0. ACK is given and IBSR0:GCA is set. AL is generated by second address and switches to slave mode. (c) General call operation in master mode (Start from GACKE = 1 with AL generated by second address.) Master mode GACKE=0 First-byte general call address ACK Second-byte general call address ACK/NACK IBCR10:INT is set at 9th SCL↓. Read IBSR0:LRB. IBCR10:INT is set at 9th SCL↓. Set IBCR00:INTS = 1. IBCR10:INT is set at 8th SCL↓. Set INTS = 0 to read IBSR10:LRB. ACK is not given and IBSR0:GCA is not set. (d) General call operation in master mode (Start from GACKE = 0 with no AL.) Master mode GACKE=0 First-byte general call address ACK Second-byte general call address IBCR10:INT is set at 9th SCL↓. Set IBCR00:INTS = 1. ACK is not given and IBSR0:GCA is not set. ACK/NACK IBCR10:INT is set at 9th SCL↓. Read IBSR0:LRB. IBCR10:INT is set at 8th SCL↓. Read IDDR0 and control ACK/NACK by IBCR10:DACKE. To read IBSRl:LRB, set INT S = 0. AL is generated by second address, IBSR0:GCA is set, and switches to slave mode. (e) General call operation in master mode (Start from GACKE = 0 with AL generated by second address.) ACK NACK GCA AL : Acknowledgment : No acknowledgment : General call address : Arbitration lost If this module sends a general call address at the same time as another device, you can determine whether the module successfully seized control of the bus by checking whether arbitration lost was detected when the second address byte was transferred. If arbitration lost was detected, the module goes to slave mode and continues to receive data from the master. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 525 CHAPTER 24 I2C 24.7 I2C Operations and Setup Procedure Examples MB95100B/AM Series ■ Stop Condition The master can release the bus and end communications by generating a stop condition. Changing the SDA0 line from "L" to "H" while SCL0 is "H" generates a stop condition. This signals to the other devices on the bus that the master has finished communications (referred to below as "bus free"). However, the master can continue to generate start conditions without generating a stop condition. This is called a repeated start condition. Writing "0" to the IBCR10:MSS bit during an interrupt while in bus master mode (IBCR10:MSS = 1, IBSR0:BB = 1, IBCR10:INT = 1, and IBCR00:ALF = 0) generates a stop condition and changes to slave mode. In other cases, writing "0" to the IBCR10:MSS bit is ignored. ■ Arbitration The interface circuit is a true multi-master bus able to connect multiple master devices. Arbitration occurs when another master within the system simultaneously transfers data during a master transfer. Arbitration occurs on the SDA0 line while the SCL0 line is at the "H" level. When the send data is "1" and the data on the SDA0 line is "L" at the master, this is treated as arbitration lost. In this case, data output is halted and IBCR00:ALF is set to "1". If this occurs, an interrupt is generated if arbitration lost interrupts have been enabled (IBCR00:ALE = 1). If IBCR00:ALF is set to "1", the module sets IBCR10:MSS = 0 and IBSR0:TRX = 0, clears TRX, and goes to slave receive mode. If IBCR00:ALF is set to "1" when IBSR0:BB = 0, IBCR00:ALF is cleared only by writing "0". If IBCR00:ALF is set to "1" when IBSR0:BB = 1, IBCR00:ALF is cleared only by clearing IBCR10:INT to "0". ● Conditions for generating an arbitration lost interrupt when IBSR0:BB = 0 When a start condition is generated by the program (by setting the IBCR10:MSS bit to "1") at the timing shown in Figure 24.7-3 or Figure 24.7-4, interrupt generation (IBCR10:INT bit = 1) is prohibited by arbitration lost detection (IBCR00:ALF = 1). • Conditions (1) in which no interrupt is generated due to arbitration lost If the program triggers a start condition (by setting the IBCR10:MSS bit to "1") when no start condition has been detected (IBSR0:BB bit = 0) and the SDA0 and SCL0 line pins are at the "L" level. Figure 24.7-3 Timing Diagram with No Interrupt Generated with IBCR00:ALF = 1 SCL0 or SDA0 pin at "L" level "L" SCL0 pin "L" SDA0 pin 1 I2C operation enabled (ICCR0:EN bit = 1) Master mode set (IBCR10:MSS bit = 1) Arbitration lost detection bit (IBCR00:ALF bit = 1) 526 Bus busy (IBSR0:BB bit) 0 Interrupt (IBCR10:INT bit) 0 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 24 I2C 24.7 I C Operations and Setup Procedure Examples 2 MB95100B/AM Series • Conditions (2) in which no interrupt is generated due to arbitration lost If the program enables I2C operation (by setting the ICCR0:EN bit to "1") and triggers a start condition (by setting the IBCR10:MSS bit to "1") when the I2C bus is in use by another master. This is because, as shown in Figure 24.7-4, this I2C module cannot detect the start condition (IBSR0:BB bit= 0) if another master starts communications on the I2C bus when the operation of this I2C module has been disabled (ICCR0:EN bit = 0). Figure 24.7-4 Timing Diagram with No Interrupt Generated with IBCR00:ALF = 1 Start condition IBCR10:INT bit interrupt does not occur in 9th clock cycle. Stop condition SCL0 pin SDA0 pin Slave address ACK Data ACK ICCR0:EN bit IBCR10:MSS bit IBCR00:ALF bit IBSR0:BB bit 0 IBCR10:INT bit 0 If this situation can occur, use the following procedure to set up the module from the software. 1) Trigger a start condition from the program (by setting the IBCR10:MSS bit to "1"). 2) Check the IBCR00:ALF and IBSR0:BB bits in the arbitration lost interrupt. If IBCR00:ALF = 1 and IBSR0:BB = 0, clear the IBCR00:ALF bit to "0". If IBCR00:ALF = 1 and IBSR0:BB = 1, clear the IBCR00:ALE bit to "0" and perform control as normal. (Normal control means writing "0" to the IBCR00:INT bit in the INT interrupt to clear IBCR00:ALF.) In other cases, perform control as normal (Normal control means writing "0" to the IBCR00:INT bit in the INT interrupt to clear IBCR00:ALF.) CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 527 CHAPTER 24 I2C 24.7 I2C Operations and Setup Procedure Examples MB95100B/AM Series The following sample flowchart illustrates the procedure: Figure 24.7-5 Sample Flowchart Enable AL interrupts (IBCR00:ALE =1). Set master mode. Set the MSS bit in I2C bus control register 1 (IBCR10) to "1". IBCR00:ALF = 1 NO YES IBSR0:BB = 0 NO YES Write "0" to IBCR00:ALF to clear AL flag and interrupt. Write "0" to IBCR00:ALE to clear AL interrupt. Normal control ● Example of generating an interrupt (IBCR10:INT bit = 1) with "IBCR00:ALF bit = 1" detected If a start condition is generated by the program (by setting the IBCR10:MSS bit to "1") with the bus busy (IBSR0:BB bit = 1) and arbitration lost detected, a IBCR10:INT bit interrupt occurs upon detection of "IBCR00:ALF bit = 1". Figure 24.7-6 Timing Diagram with Interrupt Generated with "IBCR00:ALF Bit = 1" Detected Start condition Interrupt in 9th clock cycle SCL0 pin SDA0 pin Slave address ACK Data ICCR0:EN bit IBCR10:MSS bit IBCR00:ALF bit Clear IBCR00:ALF bit by software. IBSR0:BB bit IBCR10:INT bit 528 Clear IBCR10:INT bit by software and release SCL line. FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 24 I2C 24.7 I C Operations and Setup Procedure Examples 2 MB95100B/AM Series 24.7.2 Function to Wake up the MCU from Standby Mode The wakeup function enables the I2C macro to be accessed while the MCU is in stop or watch mode. ■ Function to Wake Up the MCU from Standby Mode The I2C macro includes a function to wake up the MCU from standby mode. The function is enabled by writing "1" to the IBCR00:WUE bit. When the MCU is in stop/watch mode with the IBCR00:WUE bit containing "1", if a start condition is detected on the I2C bus, the wakeup interrupt request flag bit (IBCR00:WUF) is set to "1" and the wakeup interrupt request is generated to wake up the MCU from stop/watch mode. • Set IBCR00:WUE to "1" immediately prior to setting the MCU to stop or watch mode. Similarly, clear IBCR00:WUE (by writing "0") after the MCU wakes up from stop or watch mode so that I2C operation can restart as soon as possible. • The wakeup function only applies to the MCU stop and watch modes. Note: In PLL stop mode, a PLL oscillation stabilization wait time is required in addition to the oscillation stabilization wait time. This causes a very long delay between the MCU waking up and communications restarting. Figure 24.7-7 Comparison of Normal I2C Operation and Wakeup Operation SDA0 SCL0 5 IRQ by IBCR00:WUF Machine Clock 1 2 3 4 ➀ Set the IBCR00:WUE bit to "1" immediately before entering stop/watch mode and make sure that IBSR0:BB = 0. ➁ Set the MCU to stop/watch mode and the machine clock stops. ➂ Detect a start condition in stop/watch mode. IBCR00:WUF is set to 1 and a wakeup IRQ is generated. After the oscillation stabilization wait time, the MCU wakes up and enters main clock mode. ➃ Clear the IBCR00:WUE bit to "0" so that I2C can restart the normal operation, and clear the IBCR00:WUF bit to "0" to clear the wakeup interrupt. ➄ To receive the data byte correctly, the SCL0 must be released in the first cycle after 100 μs (assuming a minimum oscillation stabilization wait time of 100 μs) from the start of I2C transmission (falling edge detection of SDA0). CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 529 CHAPTER 24 I2C 24.7 I2C Operations and Setup Procedure Examples MB95100B/AM Series The following sample flowchart illustrates the wakeup function. Figure 24.7-8 Sample Flow Procedure for transition to stop/watch mode IBSR0:BB = 0 NO YES Enable wakeup function by setting IBCR00:WUE =1. IBSR0:BB = 0 NO IBCR00:WUE = 0 YES Go to stop/watch mode. 530 Write "0" to IBCR00:ALE and clear AL interrupt FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 24.8 CHAPTER 24 I2C 24.8 Notes on Use of I2C Notes on Use of I2C This section summarizes notes on using the I2C interface. ■ Notes on Use of I2C ● Notes on setting I2C interface registers • Operation of the I2C interface must be enabled (ICCR0:EN) before setting the I2C bus control registers (IBCR00 and IBCR10). • Setting the master/slave select bit (IBCR10:MSS) (by writing "1") starts data transfer. ● Notes on setting the shift clock frequency • The shift clock frequency can be calculated by determining the m, n, and DMBP values using the Fsck equation in Table 24.5-4. • "DMBP=1" may not be selected if the value of n is 4 (ICCR0:CS2 = CS1 = CS = 0). ● Notes on priority for simultaneous writes • Contention between next byte transfer and stop condition When "0" is written to IBCR10:MSS with IBCR10:INT cleared, the MSS bit takes priority and a stop condition develops. • Contention between next byte transfer and start condition When "1" is written to IBCR10:SCC with IBCR10:INT cleared, the SCC bit takes priority and a start condition develops. ● Notes on setup using software • Do not select a repeated start condition (IBCR10:SCC=1) and slave mode (IBCR10:MSS=0) simultaneously. • Execution cannot return from interrupt processing if the interrupt request enable bit is enabled (IBCR10:BEIE=1/IBCR10:INTE=1) with the interrupt request flag bit (IBCR10:BER/IBCR10:INT) containing "1". Be sure to clear the IBCR10:BER/IBCR10:INT bit. • The following bits are cleared to "0" when I2C operation is disabled (ICCR0:EN=0): - AACKX, INTS, and WUE bits in the IBCR00 register - All the bits in the IBCR10 register except the BER and BEIE bits - All bits in the IBSR0 register ● Notes on data acknowledgment In slave mode, a data acknowledgment is generated in either of the following cases: - When the received address matches the value in the address register (IAAR0) and IBCR00:AACKX = 0. - When a general call address (00H) is received and IBCR10:GACKE = 1. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 531 CHAPTER 24 I2C 24.8 Notes on Use of I2C MB95100B/AM Series ● Notes on selecting the transfer complete timing • The transfer complete timing select bit (IBCR00:INTS) is valid only during data reception (IBSR0:TRX = 0 and IBSR0:FBT = 0). • In cases other than data reception (IBSR0:TRX = 1 or IBSR0:FBT = 1), the transfer completion interrupt (IBCR10:INT) is always generated in the ninth SCL0 cycle. • If the data ACK depends on the content of the received data (such as packet error checking used by the SM bus), control the data ACK by setting the data ACK enable bit (IBCR10:DACKE) after writing "1" to the IBCR00:INTS bit (for example, using a previous transfer completion interrupt) to read latest received data. • The latest data ACK (IBSR0:LRB) can be read after the ACK has been received (IBSR0:LRB must be read during the transfer completion interrupt in the ninth SCL0 cycle.) If ACK is read when the IBCR0:INTS bit is "1", therefore, you must write "0" to the IBCR00:INTS bit in the transfer completion interrupt in the eighth SCL0 cycle so that another transfer completion interrupt will occur in the ninth SCL0 cycle. ● Notes on using the MCU standby mode wakeup function • Set IBCR00:WUE to "1" immediately prior to setting the MCU to stop or watch mode. Similarly, clear IBCR00:WUE (by writing "0") after the MCU wakes up from stop or watch mode so that I2C operation can restart as soon as possible. • When a wakeup interrupt request occurs, the MCU wakes up after the oscillation stabilization wait time elapses. To prevent the data loss immediately after wakeup, design the system so that the SCL0 rises as the first cycle and the first bit must be transmitted as data after 100 μs (assuming a minimum oscillation stabilization wait time of 100 μs) from the wakeup due to start of I2C transmission (upon detection of the falling edge of SDA0). • During a MCU standby mode, the status flags, state machine, and I2C bus outputs for the I2C function retain the states they had prior to entering the standby mode. To prevent a hang-up of the entire I2C bus system, make sure that IBSR0:BB = 0 before entering standby mode. • The wakeup function does not support the transition of the MCU to stop or watch mode with IBSR0:BB = 1. If the MCU enters stop or watch mode with IBSR0:BB = 1, a bus error will occur upon detection of a start condition. • In PLL stop mode, for example, the time from wakeup to the start of communication becomes longer than in stop/watch mode by the PLL oscillation stabilization wait time as the PLL oscillation stabilization wait time is required in addition to the oscillation stabilization wait time. • To ensure correct operation of the I2C interface, always clear IBCR00:WUE to "0" after the MCU wakes up from stop or watch mode, regardless of whether this occurs due to the I2C wakeup function or the wakeup function for some other resource (such as an external interrupt). 532 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 24 I2C 24.9 Sample Programs for I2C MB95100B/AM Series 24.9 Sample Programs for I2C Fujitsu provides sample programs for operating the I2C interface. ■ I2C Sample Programs For I2C sample programs, see "■ Sample Programs" in Preface. ■ Setting Methods Other than Those in Sample Programs ● Enabling/disabling I2C operation Use the I2C operation enable bit (ICCR0:EN). Control I2C operation enable bit (EN) To disable I2C operation Set the bit to "0". To enable I2C operation Set the bit to "1" ● Selecting the I2C master or slave mode Use the master/slave select bit (IBCR10:MSS). Control Master/slave select bit (MSS) To select master mode Set the bit to "1" To select slave mode Set the bit to "0". ● Selecting the shift clock Use the clock select bits (ICCR0:CS4/CS3/CS2/CS1/CS0). ● Bypassing the divider-m when the shift clock frequency is generated Use the divider-m bypass bit (ICCR0:DMBP). CM26-10112-4E Control Divider-m bypass bit (DMBP) To bypass divider m Set the bit to "1" FUJITSU MICROELECTRONICS LIMITED 533 CHAPTER 24 I2C 24.9 Sample Programs for I2C MB95100B/AM Series ● Controlling I2C address acknowledgment Use the address acknowledge disable bit (IBCR00:AACKX). Control Address acknowledge disable bit (AACKX) To enable address acknowledge output Set the bit to "0". To disable address acknowledge output Set the bit to "1" ● Controlling I2C data acknowledgment Use the data acknowledge enable bit (IBCR10:DACKE). Control Data acknowledge enable bit (DACKE) To enable data acknowledge output Set the bit to "1" To disable data acknowledge output Set the bit to "0". ● Controlling I2C general call address acknowledgment Use the general call address acknowledge enable bit (IBCR10:GACKE). Control General call address acknowledge enable bit (GACKE) To enable general call address acknowledge output Set the bit to "1" To disable general call address acknowledge output Set the bit to "0". ● Restarting I2C communication Use the start condition generation bit (IBCR10:SCC). Control Start condition generation bit (SCC) To restart communication Set the bit to "1" ● Selecting the I2C data reception transfer completion flag (INT) Use the timing select bit (IBCR00:INTS) for the data reception transfer completion flag (INT). 534 Control Timing select bit (INTS) for data reception transfer completion flag (INT) To cause a transfer interrupt in the 9th SCL cycle Set the bit to "0". To cause a transfer interrupt in the 8th SCL cycle Set the bit to "1" FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 24 I2C 24.9 Sample Programs for I2C MB95100B/AM Series ● Interrupt related register To set the interrupt level, use the following interrupt level setting register. Channel Interrupt level setting register Interrupt vector ch.0 Interrupt level register (ILR2) Address: 0007BH #10 Address: 0FFE6H ● Enabling, disabling, and clearing interrupts • Transfer interrupt (Data transfer completion interrupt) To enable interrupts, use the interrupt request enable bit (IBCR10:INTE). Control Interrupt request enable bit (INTE) To disable interrupt requests Set the bit to "0". To enable interrupt requests Set the bit to "1" To clear interrupt requests, use the interrupt request flag (IBCR10:INT). Control Interrupt request flag (INT) To clear interrupt requests Set the bit to "0". (Bus error generation interrupt) To enable interrupts, use the interrupt request enable bit (IBCR10:BEIE). Control Interrupt request enable bit (BEIE) To disable interrupt requests Set the bit to "0". To enable interrupt requests Set the bit to "1" To clear interrupt requests, use the interrupt request flag (IBCR10:BER). CM26-10112-4E Control Interrupt request flag (BER) To clear interrupt requests Set the bit to "0". FUJITSU MICROELECTRONICS LIMITED 535 CHAPTER 24 I2C 24.9 Sample Programs for I2C MB95100B/AM Series • Stop interrupt (Stop condition detection interrupt) To enable interrupts, use the interrupt request enable bit (IBCR00:SPE). Control Interrupt request enable bit (SPE) To disable interrupt requests Set the bit to "0". To enable interrupt requests Set the bit to "1". To clear interrupt requests, use the interrupt request flag (IBCR00:SPF). Control Interrupt request flag (SPF) To clear interrupt requests Set the bit to "0". (Arbitration lost detection interrupt) To enable interrupts, use the interrupt request enable bit (IBCR00:ALE). Control Interrupt request enable bit (ALE) To disable interrupt requests Set the bit to "0". To enable interrupt requests Set the bit to "1". To clear interrupt requests, use the interrupt request flag (IBCR00:ALF). Control Interrupt request flag (ALF) To clear interrupt requests Set the bit to "0". (Start condition detection interrupt) To enable interrupts, use the interrupt request enable bit (IBCR00:WUE). Control Interrupt request enable bit (WUE) To disable interrupt requests Set the bit to "0". To enable interrupt requests Set the bit to "1" To clear interrupt requests, use the interrupt request flag (IBCR00:WUF). 536 Control Interrupt request flag (WUF) To clear interrupt requests Set the bit to "0". FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 25 8/10-BIT A/D CONVERTER This chapter describes the functions and operations of the 8/10-bit A/D converter. 25.1 Overview of 8/10-bit A/D Converter 25.2 Configuration of 8/10-bit A/D Converter 25.3 Pins of 8/10-bit A/D Converter 25.4 Registers of 8/10-bit A/D Converter 25.5 Interrupts of 8/10-bit A/D Converter 25.6 Operations of 8/10-bit A/D Converter and Its Setup Procedure Examples 25.7 Notes on Use of 8/10-bit A/D Converter 25.8 Sample Programs for 8/10-bit A/D Converter Code: CM26-00125-2E Page: 539, 541, 542, 545, 546, 553, 554, 556 CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 537 CHAPTER 25 8/10-BIT A/D CONVERTER 25.1 Overview of 8/10-bit A/D Converter 25.1 MB95100B/AM Series Overview of 8/10-bit A/D Converter The 8/10-bit A/D converter is a 10-bit successive approximation type of 8/10-bit A/D converter. It can be started via software, external trigger, and internal clock, with one input signal selected from among multiple analog input pins. ■ A/D Conversion Functions The A/D converter converts analog voltages (input voltages) input to an analog input pin to 10bit digital values. • One of multiple analog input pins can be selected. • The conversion speed is programmable to be configured (selected according to the operating voltage and frequency). • An interrupt is generated when A/D conversion completes. • The completion of conversion can also be checked with the ADI bit in the ADC1 register. To activate A/D conversion functions, follow one of the methods given below. • Activation using the AD bit in the ADC1 register • Continuous activation using the external pin (ADTG) • Continuous activation using the 8/16-bit compound timer output TO00 538 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 25 8/10-BIT A/D CONVERTER 25.2 Configuration of 8/10-bit A/D Converter MB95100B/AM Series 25.2 Configuration of 8/10-bit A/D Converter The 8/10-bit A/D converter consists of the following blocks: • Clock selector (input clock selector for starting A/D conversion) • Analog channel selector • Sample-and-hold circuit • Control circuit • A/D converter data registers (ADDH, ADDL) • A/D converter control register 1 (ADC1) • A/D converter control register 2 (ADC2) ■ Block Diagram of 8/10-bit A/D Converter Figure 25.2-1 shows a block diagram of the 8/10-bit A/D converter. Figure 25.2-1 Block Diagram of 8/10-bit A/D Converter A/D converter control register 2 (ADC2) AD8 8/16bit composite timer (TO00) output AN00 to AN11 TIM0 ADCK ADIE EXT CKDIV1 CKDIV0 Startup signal selector Sampleand-hold circuit Analog channel selector Internal data bus ADTG pin TIM1 Control circuit A/D converter data registers (ADDH, ADDL) AVcc AVss ANS3 ANS2 ANS1 ANS0 ADI ADMV ADMVX AD A/D converter control register 1 (ADC1) IRQ CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 539 CHAPTER 25 8/10-BIT A/D CONVERTER 25.2 Configuration of 8/10-bit A/D Converter MB95100B/AM Series ● Clock selector This block selects the A/D conversion clock with continuous activation enabled (ADC2:EXT = 1). ● Analog channel selector This circuit selects one of multiple analog input pins. ● Sample-and-hold circuit This circuit holds the input voltage selected by the analog channel selector. This enables A/D conversion to be performed without being affected by variation in input voltage during conversion (comparison) by sampling and holding the input voltage immediately after starting A/D conversion. ● Control circuit The A/D conversion function determines the values in the 10-bit A/D converter data register sequentially from MSB to LSB based on the signals from the comparator. When conversion is completed, the A/D conversion function sets the interrupt request flag bit (ADC1: ADI). ● A/D converter data registers (ADDH/ADDL) The high-order two bits of 10-bit A/D data are stored in the ADDH register; the low-order eight bits are stored in the ADDL register. Setting the A/D conversion precision bit (ADC2:AD8) to "1" provides 8-bit precision, storing the upper eight bits of the 10-bit A/D data in the ADDL register. ● A/D converter control register 1 (ADC1) This register is used to enable and disable functions, select an analog input pin, check statuses, and control interrupts. ● A/D converter control register 2 (ADC2) This register is used to select an input clock, enable and disable interrupts, and select functions. ■ Input Clock The 8/10-bit A/D converter uses the output clock from the prescaler as the input clock (operation clock). 540 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 25.3 CHAPTER 25 8/10-BIT A/D CONVERTER 25.3 Pins of 8/10-bit A/D Converter Pins of 8/10-bit A/D Converter This section describes the pins of the 8/10-bit A/D converter. ■ Pins of 8/10-bit A/D Converter This series has 12 channels of analog input pin. Analog input pins also serve as general-purpose I/O ports. ● AN11 to AN00 Pins AN11 to AN00 : When using the A/D conversion function, input the analog voltage you wish to convert to one of these pins. Each of the pins serves as an analog input pin by selecting it using the analog input channel select bits (ADC1: ANS0 to ANS3) with the corresponding bit in the port direction register (DDR) set to "0". Even when the 8/10-bit A/D converter is used, the pins not used for analog input can be used as general-purpose I/O ports. Note that the number of analog input pins differs depending on the series. ● ADTG Pin ADTG : This is a pin used to activate A/D conversion function by external trigger. ● AVCC pin AVCC : This is a 8/10-bit A/D converter power supply pin. Use this at the same potential as VCC. If A/D conversion precision is demanded, you should take measures to ensure that VCC noise does not enter AVCC, or use a separate power source. You should connect this pin to a power source even when the 8/10-bit A/D converter is not being used ● AVSS pin AVSS : This is a ground pin of the 8/10-bit A/D converter. Use this at the same potential as VSS. When A/D conversion precision is required, take measures to ensure that the VSS noise does not interfere with AVSS. You should connect this pin to a ground (GND) even when the 8/10-bit A/D converter is not being used ● AVR Pin AVR : This pin inputs the reference voltage of the 8/10-bit A/D converter. 10-bit A/D conversion is performed between the AVR and AVSS. Some series do not have AVR pins, and are internally connected to AVCC. You should connect this pin to AVSS when the 8/10-bit A/D converter is not being used. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 541 CHAPTER 25 8/10-BIT A/D CONVERTER 25.3 Pins of 8/10-bit A/D Converter MB95100B/AM Series ■ Block Diagram of Pins Related to 8/10-bit A/D Converter Figure 25.3-1 Block Diagram of Pins (AN00 to AN07) Related to 8/10-bit A/D Converter A/D analog input Hysteresis 0 0 Pull-up 1 1 PDR read Automotive P-ch Pin PDR PDR write In bit operation instruction DDR read Internal bus DDR DDR write Stop, Watch (SPL=1) PUL read PUL PUL write AIDR read AIDR AIDR write ILSR3 read ILSR3 ILSR3 write 542 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 25 8/10-BIT A/D CONVERTER 25.3 Pins of 8/10-bit A/D Converter Figure 25.3-2 Block Diagram of Pins (AN08 to AN11) Related to 8/10-bit A/D Converter A/D analog input Hysteresis 0 0 Pull-up 1 1 PDR read Automotive P-ch Pin PDR PDR write In bit operation instruction DDR read Internal bus DDR DDR write Stop, Watch (SPL=1) PUL read PUL PUL write AIDR read AIDR AIDR write ILSR3 read ILSR3 ILSR3 write CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 543 CHAPTER 25 8/10-BIT A/D CONVERTER 25.4 Registers of 8/10-bit A/D Converter 25.4 MB95100B/AM Series Registers of 8/10-bit A/D Converter The 8/10-bit A/D converter has four registers: A/D converter control register 1 (ADC1), A/D converter control register 2 (ADC2), A/D converter data register upper (ADDH), and A/D converter data register lower (ADDL). ■ List of 8/10-bit A/D Converter Registers Figure 25.4-1 lists the registers of the 8/10-bit A/D converter. Figure 25.4-1 Registers of 8/10-bit A/D Converter 8/10-bit A/D converter control register 1 (ADC1) Address bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value 006CH ANS3 ANS2 ANS1 ANS0 ADI ADMV ADMVX AD 00000000B R/W R/W R/W R/W R(RM1),W R/WX R/W R0,W bit1 bit0 8/10-bit A/D converter control register 2 (ADC2) Address bit7 bit6 bit5 bit4 bit3 bit2 Initial value 006DH AD8 TIM1 TIM0 ADCK ADIE EXT R/W R/W R/W R/W R/W R/W R/W R/W bit1 bit0 Initial value 00000000B CKDIV1 CKDIV0 00000000B 8/10-bit A/D converter data register upper (ADDH) Address bit7 bit6 bit5 bit4 bit3 bit2 006EH − − − − − − SAR9 SAR8 R0/WX R0/WX R0/WX R0/WX R0/WX R0/WX R/WX R/WX 8/10-bit A/D converter data register lower (ADDL) Address bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value 006FH SAR7 SAR6 SAR5 SAR4 SAR3 SAR2 SAR1 SAR0 00000000B R/WX R/WX R/WX R/WX R/WX R/WX R/WX R/WX R/W : Readable/writable (Read value is the same as write value) R(RM1), W : Readable/writable (Read value is different from write value, "1" is read by read-modify-write (RMW) instruction) R/WX : Read only (Readable, writing has no effect on operation) R0, W : Write only (Writable, "0" is read) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) 544 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 25 8/10-BIT A/D CONVERTER 25.4 Registers of 8/10-bit A/D Converter MB95100B/AM Series 25.4.1 8/10-bit A/D Converter Control Register 1 (ADC1) 8/10-bit A/D converter control register 1 (ADC1) is used to enable and disable individual functions of the 8/10-bit A/D converter, select an analog input pin, and to check the states. ■ 8/10-bit A/D Converter Control Register 1 (ADC1) Figure 25.4-2 8/10-bit A/D Converter Control Register 1 (ADC1) Address 006CH bit7 bit6 ANS3 ANS2 R/W R/W bit5 bit4 ANS1 ANS0 R/W bit3 ADI bit2 bit1 ADMV ADMVX R/W R(RM1),W R/WX R/W bit0 Initial value AD 00000000B R0,W AD 0 1 A/D conversion start bit Do not start A/D conversion. Start A/D conversion. ADMVX Current cut-off analog switch control bit Turn on analog switch only during conversion. Maintain analog switch on. 0 1 ADMV 0 1 ADI 0 1 Conversion flag bit Not converting Currently converting Interrupt request flag bit Read Write Conversion not completed Conversion completed Clear this bit. Make no changes to the bit with no effect on others. ANS3 ANS2 ANS1 ANS0 Analog input channel select bits 0 0 0 0 AN00 pin 0 1 0 0 AN01 pin 1 0 0 0 AN02 pin 1 1 0 0 AN03 pin 0 1 0 0 AN04 pin 0 1 0 1 AN05 pin 0 1 1 0 AN06 pin 0 1 1 1 AN07 pin AN08 pin 1 0 0 0 AN09 pin 1 0 0 1 AN10 pin 1 0 1 0 AN11 pin 1 0 1 1 R/W R/WX R0,W R(RM1),W CM26-10112-4E : Readable/Writable (Read value is the same as write value) : Read only (Readable, writing has no effect on operation) : Write only (Writable, "0" is read) : Readable/Writable (Read value is different from write value, "1" is read by read-modify-write instruction) : Initial value FUJITSU MICROELECTRONICS LIMITED 545 CHAPTER 25 8/10-BIT A/D CONVERTER 25.4 Registers of 8/10-bit A/D Converter MB95100B/AM Series Do not select the unusable channel for this series by analog input channel select bits (ANS3 to ANS0). Table 25.4.-1 Functions of Bits in 8/10-bit A/D Converter Control Register 1 (ADC1) Bit name bit7 to bit4 ANS3, ANS2, ANS1, ANS0: Analog input channel select bits Function Select the analog input pin to be used from among AN00 to AN11. Note that the number of analog input pins differs depending on the series. • When A/D conversion is activated (AD = 1) via software (ADC2: EXT = 0), these bits can be updated at the same time. Note: When the ADMV bit is "1", do not update these bits. The pins not used as analog input pins can be used as general-purpose ports. Detects the termination of A/D conversion. • When the A/D conversion function is used, the bit is set "1" upon termination of A/D conversion. • Interrupt requests are output when this bit and the interrupt request enable bit (ADC2: ADIE) are both "1". • When written to this bit, "0" clears it; "1" leaves it unchanged with no affect on others. • When read by a read-modify-write instruction, the bit returns "1". bit3 ADI: Interrupt request flag bit bit2 ADMV: Conversion flag bit Indicates that conversion is ongoing during execution of the A/D conversion function. • The bit contains "1" during conversion. This bit is read-only. Any value attempted to be written is meaningless and has no effect on operation. ADMVX: Analog switch control bit Controls the analog switch for shutting down the internal reference power supply. • When the external impedance of the AVR pin is high, rush current flows immediately after A/ D startup and may affect A/D conversion precision. In this kind of situation, this can be avoided by setting this bit to "1" before A/D startup. Set the bit to "0" before switching to standby mode, in order to reduce current consumption. • Note that some series do not have AVR pins, and are internally connected to AVCC. AD: A/D conversion startup bit Starts the A/D conversion function via software. • Writing "1" to the bit starts the A/D conversion function. Note: Writing "0" to this bit will not stop operation of the A/D conversion function. The value read is always "0". A/D conversion startup by this bit is disabled with EXT=1. A/D converter re-starts by writing "1" to this bit during A/D conversion with EXT = 0. bit1 bit0 546 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 25 8/10-BIT A/D CONVERTER 25.4 Registers of 8/10-bit A/D Converter MB95100B/AM Series 25.4.2 8/10-bit A/D Converter Control Register 2 (ADC2) 8/10-bit A/D converter control register 2 (ADC2) selects the 8/10-bit A/D converter function, selects the input clock, and performs interrupt and status checking. ■ 8/10-bit A/D Converter Control Register 2 (ADC2) Figure 25.4-3 8/10-bit A/D Converter Control Register 2 (ADC2) Address bit7 bit6 bit5 006DH AD8 TIM1 TIM0 R/W R/W R/W bit4 bit3 ADCK ADIE R/W R/W CKDIV1 CKDIV0 0 0 1 1 EXT 0 1 0 1 0 1 bit2 EXT R/W bit1 bit0 CKDIV1 CKDIV0 R/W Initial value 00000000B R/W Clock (CKIN) select bits 1 MCLK 2 MCLK 4 MCLK 8 MCLK Continuous activation enable bit Start using the AD bit in the ADC1 register Continuous activation with the clock selected by the ADCK bit in the ADC2 register Interrupt request enable bit Disables interrupt request output. Enable interrupt request output. ADIE 0 1 ADCK External start signal select bit 0 Start via ADTG input pin 1 Start via 8/16-bit composite timer (TO00) output TIM1 0 0 1 1 AD8 0 1 TIM0 0 1 0 1 Sampling time select bits CKIN 4 CKIN 7 CKIN 10 CKIN 16 Precision select bit 10-bit precision 8-bit precision R/W :Readable/writable (Read value is the same as write value) MCLK :Machine clock :Initial value CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 547 CHAPTER 25 8/10-BIT A/D CONVERTER 25.4 Registers of 8/10-bit A/D Converter MB95100B/AM Series Table 25.4.-2 Functions of Bits in 8/10-bit A/D Converter Control Register 2 (ADC2) Bit name Function bit7 This bit selects the resolution of A/D conversion. When set to "0": The bit selects 10-bit precision. AD8: When set to "1": The bit selects 8-bit precision, in which case eight bits of data can be read Precision select bit from the ADDL register. Note: The data bits used are different depending on the resolution. Update this bit only with A/D operation stopped before starting conversion. bit6, bit5 TIM1, TIM0: Sampling time select bits Set the sampling time. • Change this sampling time setting depending on the operating conditions (voltage and frequency). • The CKIN value is determined by the clock select bits (ADC2:CKDIV1, DKDIV0). Note:Update this bit only with A/D operation stopped. bit4 ADCK: External start signal select bit Selects the start signal for external start (ADC2:EXT = 1). bit3 ADIE: Interrupt request enable bit Enables or disables output of interrupts to the interrupt controller. Interrupt requests are output with both of this bit and the interrupt request flag bit (ADC1: ADI) set to "1". bit2 EXT: Continuous activation enable bit Selects whether to activate the A/D conversion function via software, or continuously upon detection of the rise of the input clock signal. bit1, bit0 CKDIV1, CKDIV0: Clock select bits Select the clock to use for A/D conversion. The input clock is generated by the prescaler. See "CHAPTER 6 CLOCK CONTROLLER". • The sampling time can also be changed via this clock selection. • Change this setting depending on the operating conditions (voltage and frequency). Note:Update this bit only with A/D operation stopped. 548 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 25 8/10-BIT A/D CONVERTER 25.4 Registers of 8/10-bit A/D Converter MB95100B/AM Series 25.4.3 8/10-bit A/D Converter Data Registers Upper/ Lower (ADDH, ADDL) The 8/10-bit A/D converter data registers upper/lower (ADDH, ADDL) contain the results of 10-bit A/D conversion. The high-order two bits of 10-bit data correspond to the ADDH register; the low-order eight bits correspond to the ADDL register. ■ 8/10-bit A/D Converter Data Registers Upper/Lower (ADDH, ADDL) Figure 25.4-4 8/10-bit A/D Converter Data Registers Upper/Lower (ADDH, ADDL) Address 006EH ADDH bit7 − bit6 − bit5 − bit4 − bit3 − bit2 − bit0 SAR8 R/WX Initial value 00000000B R0/WX bit1 SAR9 R/WX R0/WX R0/WX R0/WX R0/WX R0/WX ADDL bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 SAR3 R/WX SAR2 R/WX SAR1 R/WX SAR0 R/WX Initial value 00000000B Address 006FH SAR7 R/WX SAR6 R/WX SAR5 R/WX SAR4 R/WX R/WX : Read only (Readable, writing has no effect on operation) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) The upper two bits of 10-bit A/D data correspond to bits1 and 0 in the ADDH register; the lower eight bits correspond to bit15 to bit8 in the ADDL register. Set the AD8 bit in the ADC2 register to "1" to select 8-bit precision mode, so that 8-bit data can be read from the ADDL register. These registers are read-only. Writing has no effect on the operation. During 8-bit conversion, SAR8 and SAR9 hold "0". ● A/D Conversion Functions When A/D conversion is started, the results of conversion are finalized and stored in these registers after the conversion time according to the register settings has passed. After A/D conversion finishes, therefore, read the A/D data registers (conversion results), write "0" to the ADI bit (bit3) in the ADC1 register before the next A/D conversion terminates, then after A/D conversion finishes, clear the flag. During A/D conversion, the registers contain the values resulting from the last conversion performed. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 549 CHAPTER 25 8/10-BIT A/D CONVERTER 25.5 Interrupts of 8/10-bit A/D Converter 25.5 MB95100B/AM Series Interrupts of 8/10-bit A/D Converter An interrupt source of the 8/10-bit A/D converter is Completion of conversion when A/D conversion functions are operating. ■ Interrupts During 8/10-bit A/D Converter Operation When A/D conversion is completed, the interrupt request flag bit (ADC1: ADI) is set to "1". Then if the interrupt request enable bit is enabled (ADC2: ADIE = 1), an interrupt request is issued to the interrupt controller. Write "0" to the ADI bit using the interrupt service routine to clear the interrupt request. The ADI bit is set when A/D conversion is completed, irrespective of the value of the ADIE bit. The CPU cannot return from interrupt processing if the interrupt request flag bit (ADC1: ADI) is 1 with interrupt requests enabled (ADC2: ADIE = 1). Be sure to clear the ADI bit within the interrupt service routine. ■ Register and Vector Table Related to 8/10-bit A/D Converter Interrupts Table 25.5-1 Register and Vector Table Related to 8/10-bit A/D Converter Interrupts Interrupt source 8/10-bit A/D Interrupt request number IRQ18 Interrupt level setting register Vector table address Registers Setting bit Upper Lower ILR4 L18 FFD6H FFD7H Refer to "APPENDIX B Table of Interrupt Causes" for the interrupt request numbers and vector tables of all peripheral functions. 550 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 25 8/10-BIT A/D CONVERTER 25.6 Operations of 8/10-bit A/D Converter and Its Setup Procedure Examples MB95100B/AM Series 25.6 Operations of 8/10-bit A/D Converter and Its Setup Procedure Examples The EXT bit in the ADC1 register can be used to select the software activation or continuous activation of the 8/10-bit A/D converter. ■ Operations of 8/10-bit A/D Converter's Conversion Function ● Software activation The settings shown in Figure 25.6-1 are required for software activation of the A/D conversion function. Figure 25.6-1 Settings for A/D Conversion Function (Software Activation) ADC1 bit7 ANS3 bit6 ANS2 bit5 ANS1 bit4 ANS0 bit3 ADI bit2 ADMV ADC2 AD8 TIM1 TIM0 ADCK ✕ ADIE EXT 0 CKDIV1 CKDIV0 ADDH − − − − − − A/D converted value retained ADDL bit1 ADMVX bit0 AD 1 A/D converted value is retained. : Used bit x: Unused bit 0 : Set to "0" 1 : Set to "1" When A/D conversion is activated, the A/D conversion function starts working. In addition, even during conversion, the A/D conversion function can be reactivated. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 551 CHAPTER 25 8/10-BIT A/D CONVERTER 25.6 Operations of 8/10-bit A/D Converter and Its Setup Procedure Examples ● Continuous activation MB95100B/AM Series The settings shown in Figure 25.6-2 are required for continuous activation of the A/D conversion function. Figure 25.6-2 Settings for A/D Conversion Function (Continuous Activation) ADC1 bit7 ANS3 bit6 ANS2 bit5 ANS1 bit4 ANS0 bit3 ADI bit2 ADMV bit1 ADMVX bit0 AD ✕ ADC2 AD8 TIM1 TIM0 ADCK ADIE EXT 1 CKDIV1 CKDIV0 ADDH − − − − − − A/D converted value retained : Used bit x: Unused bit 1 : Set to "1" When continuous activation is enabled, A/D conversion is activated at the rising edge of the selected input clock to start the A/D conversion function. Continuous activation is stopped by disabling it (ADC2:EXT = 0). ■ Operations of A/D Conversion Function This section details the operations of the 8/10-bit A/D converter. 1) When A/D conversion is started, the conversion flag bit is set (ADC1:ADMV = 1) and the selected analog input pin is connected to the sample-and-hold circuit. 2) The voltage at the analog input pin is loaded into the sample-and-hold capacitor in the sample-and-hold circuit during the sampling cycle. This voltage is held until A/D conversion has been completed. 3) The comparator in the control circuit compares the voltage loaded into the sample-and-hold capacitor with the A/D conversion reference voltage, from the most significant bit (MSB) to the least significant bit (LSB), and then sends the results to the ADDH and ADDL registers. After the results have been completely transferred, the conversion flag bit is cleared (ADC1:ADMV = 0) and the interrupt request flag bit is set (ADC1:ADI = 1). Notes: • When the A/D conversion function is used, the contents of the ADDH and ADDL registers are retained upon completion of A/D conversion. During A/D conversion, the values resulting from the last conversion are loaded. • Do not re-select the analog input channel (ADC1: ANS3 to ANS0) while the A/D conversion function is running, in particular, during continuous activation. Disable continuous activation (ADC2: EXT = 0) before re-selecting the analog input channel. • Starting the reset, stop, or watch mode stops the 8/10-bit A/D converter and initializes each register. 552 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series CHAPTER 25 8/10-BIT A/D CONVERTER 25.6 Operations of 8/10-bit A/D Converter and Its Setup Procedure Examples ■ Setup Procedure Example Follow the procedure below to set up the 8/10-bit A/D converter: ● Initial setting 1) Set the port for input (DDR3, DDR4). 2) Set the interrupt level (ILR4). 3) Enable A/D input (ADC1:ANS0 to ANS3). 4) Set the sampling time (ADC2:TIM1, TIM0). 5) Select the clock (ADC2:CKDIV1, CKDIV0). 6) Set A/D conversion properties (ADC2:AD8). 7) Select the operation mode (ADC2:EXT). 8) Select the startup trigger (ADC2:ADCK). 9) Enable interrupts (ADC2:ADIE=1). 10)Activate A/D (ADC1:AD=1). ● Interrupt processing 1) Clear the interrupt request flag (ADC1:ADI=0). 2) Read converted values (ADDH, ADDL) 3) Activate A/D (ADC1:AD=1). CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 553 CHAPTER 25 8/10-BIT A/D CONVERTER 25.7 Notes on Use of 8/10-bit A/D Converter 25.7 MB95100B/AM Series Notes on Use of 8/10-bit A/D Converter This section summarizes notes on using the 8/10-bit A/D converter. ■ Notes on Use of 8/10-bit A/D Converter ● Notes on programmed setup • When the A/D conversion function is used, the contents of the ADDH and ADDL registers are retained upon completion of A/D conversion. During A/D conversion, the values resulting from the last conversion are loaded. • Do not re-select the analog input channel (ADC1: ANS3 to ANS0) while the A/D conversion function is running, in particular, during continuous activation. Disable continuous activation (ADC2: EXT = 0) before re-selecting the analog input channel. • Starting the reset, stop, or watch mode stops the 8/10-bit A/D converter and initializes each register. • The CPU cannot return from interrupt processing if the interrupt request flag bit (ADC1: ADI) is 1 with interrupt requests enabled (ADC2: ADIE = 1). Be sure to clear the ADI bit within the interrupt processing routine. ● Note on interrupt requests If A/D conversion is reactivated (ADC1: AD = 1) and terminated at the same time, the interrupt request flag bit (ADC1: ADI) is set. ● Error As |AVR-AVSS| decreases, an error increases relatively. ● 8/10-bit A/D converter and analog input power-on/shut-down sequences Turn on the 8/10-bit A/D converter power supply (AVCC, AVSS) and analog input (AN00 to AN11) at the same as or after turning on the digital power supply (VCC,). In addition, turn off the digital power supply (VCC) either at the same time as or after turning off the 8/10-bit A/D converter power supply (AVCC, AVSS) and analog input (AN00 to AN11). Be careful not to let the AVCC, AVSS, and analog input exceed the voltage of the digital power supply when turning the 8/10-bit A/D converter on and off. ● Conversion time The conversion speed of the A/D conversion function is affected by the clock mode, main clock oscillation frequency, and main clock speed switching (gear function). Example:Sampling time Compare time = CKIN × (ADC2: TIM1/TIM0 setting) = CKIN × 10 (fixed value) + MCLK AD start processing time:Min. = MCLK + MCLK Max. = MCLK + CKIN Conversion time = A/D start processing time + sampling time + compare time • The error max. 1 CKIN-1MCLK may occur depending on the timing of AD startup. • Program the software satisfied with "sampling time" and "compare time" in A/D converter of data sheet. 554 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 25.8 CHAPTER 25 8/10-BIT A/D CONVERTER 25.8 Sample Programs for 8/10-bit A/D Converter Sample Programs for 8/10-bit A/D Converter Fujitsu provides sample programs to operate the 8/10-bit A/D converter. ■ Sample Programs for 8/10-bit A/D Converter For sample programs for the 8/10-bit A/D converter, see "■ Sample Programs" in "Preface". ■ Setting Methods not Covered by Sample Programs ● Selecting the operating clock for the 8/10-bit A/D converter Use the clock select bits (ADC2.CKDIV1/CKDIV0) to select the operating clock. ● Selecting the sampling time of the 8/10-bit A/D converter Use the sampling time select bits (ADC2.TIM1/TIM0) to select the sampling time. ● Controlling the analog switch for internal reference power shutdown of the 8/10-bit A/D converter Use the analog switch control bit (ADC1.ADMVX) to control the internal reference power shutdown analog switch. Control item Analog switch control bit (ADMVX) To turn off internal reference power supply Set the bit to "0". To turn on internal reference power supply Set the bit to "1". ● Selecting the 8/10-bit A/D converter activation method Use the continuous activation enable bit (ADC2.EXT) to select the startup trigger. A/D startup factor Continuous activation enable bit (EXT) To select the software trigger Set the bit to "0". To select the input clock rising signal Set the bit to "1". • Generating a software trigger Use the A/D conversion start bit (ADC1.AD) to generate a software trigger. CM26-10112-4E Operation A/D conversion start bit (AD) To generate a software trigger Set the bit to "1". FUJITSU MICROELECTRONICS LIMITED 555 CHAPTER 25 8/10-BIT A/D CONVERTER 25.8 Sample Programs for 8/10-bit A/D Converter MB95100B/AM Series • Activation using the input clock A startup trigger is generated at the rise of the input clock signal. To select the input clock, use the external start signal select bit (ADC2.ADCK). Input clock External start signal select bit (ADCK) To select the ADTG input pin Set the bit to "0". To select the 8/16-bit compound timer (TO00) Set the bit to "1". ● Selecting the A/D conversion precision To select the precision of conversion results, use the precision select bit (ADC2.AD8). Operation mode Precision select bit (AD8) To select 10-bit precision Set the bit to "0". To select 8-bit precision Set the bit to "1". ● Using analog input pins To select an analog input pin, use the analog input channel select bits (ADC1.ANS[3:0]). 556 Operation Analog input channel select bits (ANS[3:0]) To use the AN00 pin Set the pins to "0000B". To use the AN01 pin Set the pins to "0001B". To use the AN02 pin Set the pins to "0010B". To use the AN03 pin Set the pins to "0011B". To use the AN04 pin Set the pins to "0100B". To use the AN05 pin Set the pins to "0101B". To use the AN06 pin Set the pins to "0110B". To use the AN07 pin Set the pins to "0111B". To use the AN08 pin Set the pins to "1000B". To use the AN09 pin Set the pins to "1001B". To use the AN10 pin Set the pins to "1010B". To use the AN11 pin Set the pins to "1011B". FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 25 8/10-BIT A/D CONVERTER 25.8 Sample Programs for 8/10-bit A/D Converter MB95100B/AM Series ● Checking the completion of conversion The following two methods can be used to check whether conversion has been completed. • Checking with the interrupt request flag bit (ADC1.ADI) Interrupt request flag bit (ADI) Meaning The value read is "0". A/D conversion completed with no interrupt request The value read is "1". A/D conversion completed with interrupt request generated • Checking with the conversion flag bit (ADC1.ADMV) Conversion flag bit (ADMV) Setting The value read is "0". A/D conversion completed (suspended) The value read is "1". A/D conversion in progress ● Interrupt-related register Use the following interrupt level setting register to set the interrupt level. Interrupt source Interrupt level setting register Interrupt vector 8/10-bit A/D converter Interrupt level register (ILR4) Address: 0007DH #18 Address: 0FFD6H ● Enabling, disabling, and clearing interrupts To enable interrupts, use the interrupt request enable bit (ADC2.ADIE). Control item Interrupt request enable bit (ADIE) To disable interrupt requests Set the bit to "0". To enable interrupt requests Set the bit to "1". To clear interrupt requests, use the interrupt request bit (ADC1.ADI). CM26-10112-4E Control item Interrupt request bit (ADI) To clear an interrupt request Set the bit to "0". Or activate A/D. FUJITSU MICROELECTRONICS LIMITED 557 CHAPTER 25 8/10-BIT A/D CONVERTER 25.8 Sample Programs for 8/10-bit A/D Converter 558 MB95100B/AM Series FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 26 LOW-VOLTAGE DETECTION RESET CIRCUIT This chapter describes the functions and operations of the low-voltage detection reset circuit. 26.1 Overview of Low-voltage Detection Reset Circuit 26.2 Configuration of Low-voltage Detection Reset Circuit 26.3 Pins of Low-voltage Detection Reset Circuit 26.4 Operations of Low-voltage Detection Reset Circuit Code: CM26-00111-2E Page: 562 CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 559 CHAPTER 26 LOW-VOLTAGE DETECTION RESET CIRCUIT 26.1 Overview of Low-voltage Detection Reset Circuit 26.1 MB95100B/AM Series Overview of Low-voltage Detection Reset Circuit The low-voltage detection reset circuit monitors the power supply voltage and generates a reset signal if the voltage drops below the detection voltage level (available as an option to 5-V products only). ■ Low-voltage Detection Reset Circuit This circuit monitors the power supply voltage and generates a reset signal if the voltage drops below the detection voltage level. The circuit can be selected as an option to 5-V products only. Refer to the data sheet for details of the electrical characteristics. 560 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 26.2 CHAPTER 26 LOW-VOLTAGE DETECTION RESET CIRCUIT 26.2 Configuration of Low-voltage Detection Reset Circuit Configuration of Low-voltage Detection Reset Circuit Figure 26.2-1 is a block diagram of the low-voltage detection reset circuit. ■ Block Diagram of Low-voltage Detection Reset Circuit Figure 26.2-1 Block Diagram of Low-voltage Detection Reset Circuit Vcc Reset signal N-ch Vref CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 561 CHAPTER 26 LOW-VOLTAGE DETECTION RESET CIRCUIT 26.3 Pins of Low-voltage Detection Reset Circuit 26.3 MB95100B/AM Series Pins of Low-voltage Detection Reset Circuit This section explains the pins of the low-voltage detection reset circuit. ■ Pins Related to Low-voltage Detection Reset Circuit ● Vcc pin The low-voltage detection reset circuit monitors the voltage at this pin. ● Vss pin This pin is a GND pin serving as the reference for voltage detection. ● RST pin The low-voltage detection reset signal is output inside the microcontroller and to this pin. However, for the model equipped with the clock supervisor function (see "1.2 Product Lineup of MB95100B/AM Series" for details), the low-voltage detection reset signal is generated only in the microcontroller and not output to this pin. 562 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 26.4 CHAPTER 26 LOW-VOLTAGE DETECTION RESET CIRCUIT 26.4 Operations of Low-voltage Detection Reset Circuit Operations of Low-voltage Detection Reset Circuit The low-voltage detection reset circuit generates a reset signal if the power supply voltage falls below the detection voltage. ■ Operations of Low-voltage Detection Reset Circuit The low-voltage detection reset circuit generates a reset signal if the power supply voltage falls below the detection voltage. If the voltage is subsequently detected to have recovered, the circuit outputs a reset signal for the duration of the oscillation stabilization wait time to cancel the reset. For details on the electrical characteristics, see the data sheet. Figure 26.4-1 Operations of Low-voltage Detection Reset Circuit Vcc Detection/cancellation voltage Lower operating voltage limit Reset signal B A B A B A A: Delay B: Oscillation stabilization wait time ■ Operations in Standby Mode The low-voltage detection reset circuit remains operating even in standby modes (stop, sleep, sub clock, and watch modes). CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 563 CHAPTER 26 LOW-VOLTAGE DETECTION RESET CIRCUIT 26.4 Operations of Low-voltage Detection Reset Circuit 564 MB95100B/AM Series FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 27 CLOCK SUPERVISOR This chapter describes the functions and operations of the clock supervisor. 27.1 Overview of Clock Supervisor 27.2 Configuration of Clock Supervisor 27.3 Register of Clock Supervisor 27.4 Operations of Clock Supervisor 27.5 Notes on Using Clock Supervisor Code: CM26-00112-1E CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 565 CHAPTER 27 CLOCK SUPERVISOR 27.1 Overview of Clock Supervisor 27.1 MB95100B/AM Series Overview of Clock Supervisor The clock supervisor prevents the situation which is out of control, when main clock and sub clock (only on dual clock products) oscillations have halted. This function switches to an CR clock generated in internal CR oscillator circuit, if main clock and sub clock oscillations have halted (this feature is optional to 5V products). ■ Overview of Clock Supervisor • The clock supervisor monitors the main clock and sub clock oscillations and generates an internal reset if it detects that the oscillation has halted. In this case, the clock supervisor switches to the internal CR clock (the clock frequency of the sub clock is equal to the CR clock frequency divided by 2). The reset source register (RSRR) can be used to determine whether a reset was triggered by the clock supervisor. • A main clock oscillation halt is detected if the rising edge of the main clock is not detected for 4 CR clock cycles. The clock supervisor may detect incorrectly, if main clock is longer than 4 CR clock cycles. • A sub clock oscillation halt is detected if the rising edge of the sub clock is not detected for 32 CR clock cycles. The clock supervisor may detect incorrectly, if sub clock is longer than 32 CR clock cycles. • The clock supervisor can prohibit to monitor the main clock and sub clock respectively. • If the sub clock is halted in the main clock mode, a reset does not occur immediately, but does occur after switching to the sub clock mode. Setting registers enable to prohibit the reset output. • While the clock stops in main clock and sub clock stop modes, clock monitoring is disabled. • This function can be selected as an option on 5-V products only. Note: Refer to the data sheet for the period and other details about the CR clock. 566 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 27 CLOCK SUPERVISOR 27.2 Configuration of Clock Supervisor MB95100B/AM Series 27.2 Configuration of Clock Supervisor The clock supervisor consists of the following blocks: • Control circuit • CR oscillator circuit • Main clock monitor • Sub clock monitor • Main clock selector • Sub clock selector • CSV control register (CSVCR) ■ Block Diagram of Clock Supervisor Figure 27.2-1 shows a block diagram of the clock supervisor. Figure 27.2-1 Block Diagram of Clock Supervisor Internal bus CSV control register (CSVCR) Control circuit Enable Enable CR oscillator circuit Detect Main clock monitor Enable Detect Select main clock Main clock selector CR clock Internal main clock PLL circuit Selector 1/2 CM26-10112-4E Select sub clock Sub clock monitor Main clock (From X0/X1) Sub clock (From X0A/X1A) Internal reset Sub clock selector FUJITSU MICROELECTRONICS LIMITED Internal sub clock 567 CHAPTER 27 CLOCK SUPERVISOR 27.2 Configuration of Clock Supervisor MB95100B/AM Series ● Control circuit This block controls the clocks, resets, and other settings based on the information in the CSV control register (CSVCR). ● CR oscillator circuit This block is a internal CR oscillator circuit. The oscillation can be turned on or off via a control signal from the control circuit. This also serves as an internal clock after a clock halt is detected. ● Main clock monitor This block monitors whether the main clock halts. ● Sub clock monitor This block monitors whether the sub clock halts. ● Main clock selector This block outputs the CR clock as the internal main clock upon detection of a main clock halt. ● Sub clock selector This block outputs the clock obtained by dividing the CR clock as the internal sub clock upon detection of a sub clock halt. ● CSV control register (CSVCR) This block is used to control clock monitoring and CR clock and to check information on halt detection. 568 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 27 CLOCK SUPERVISOR 27.3 Register of Clock Supervisor MB95100B/AM Series 27.3 Register of Clock Supervisor This section describes the clock supervisor registers. ■ Register of Clock Supervisor Figure 27.3-1 shows the register of the clock supervisor. Figure 27.3-1 Clock Supervisor Register Clock supervisor control register (CSVCR) bit Address 000FEAH 7 6 5 4 3 2 1 0 Reserv ed MM SM RCE MSVE SSVE SRST Reserv ed R/W R R R/W R/W R/W R/W R/W Initial value 00011100B R/W : Readable/writable R : Read only CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 569 CHAPTER 27 CLOCK SUPERVISOR 27.3 Register of Clock Supervisor 27.3.1 MB95100B/AM Series Clock Supervisor Control Register (CSVCR) The clock supervisor control register (CSVCR) is used to enable the various functions and to check the status. ■ Clock Supervisor Control Register (CSVCR) Figure 27.3-2 Clock Supervisor Control Register (CSVCR) bit Address 000FEAH 7 6 5 4 3 2 Reserved MM SM RCE MSVE SSVE SRST Reserved R/W R R R/W R/W R/W R/W Reserved 0 SRST 0 1 1 0 Initial value 00011100B R/W Reserved bit Be sure to set this bit to "0". Reset generation enable bit * Disables reset generation. Enables reset generation. *: Assuming that a sub clock halt has been already detected at transition from main clock mode to sub clock mode. SSVE 0 1 Sub clock monitoring enable bit Disables sub clock monitoring. Enables sub clock monitoring. MSVE 0 1 Main clock monitoring enable bit Disables main clock monitoring. Enables main clock monitoring. RCE 0 1 CR clock oscillation enable bit Disables CR clock oscillation. Enables CR clock oscillation. SM 0 1 Sub clock halt detection bit Sub clock halt not detected. Sub clock halt detected. MM 0 1 Main clock halt detection bit Main clock halt not detected. Main clock halt detected. Reserved 0 Reserved bit Be sure to set this bit to "0". R/W : Readable/writable R : Read only Reserved : Reserved bit : Initial value 570 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 27 CLOCK SUPERVISOR 27.3 Register of Clock Supervisor MB95100B/AM Series Table 27.3-1 Functions of Bits in Clock Supervisor Control Register (CSVCR) Bit name Function bit7 Reserved bit This bit is reserved. Write "0" to this bit. The read value is always "0". bit6 MM: Main clock halt detection bit This bit is read-only, and this bit indicates that a main clock oscillation halt has been detected. When set to "0": The bit indicates that no main clock oscillation halt has been detected. When set to "1": The bit indicates that main clock oscillation halt has been detected. Writing "1" to this bit does not affect the operation. bit5 SM: Sub clock halt detection bit This bit is read-only, and this bit indicates that a sub clock oscillation halt has been detected. When set to "0": The bit indicates that no sub clock oscillation halt has been detected. When set to "1": The bit indicates that sub clock oscillation halt has been detected. Writing "1" to this bit does not affect the operation. bit4 This bit enables CR oscillation. RCE: When set to "0":The bit disables oscillation. CR clock When set to "1": The bit enables oscillation (initial value). oscillation enable Before writing "0" to this bit, make sure that the clock monitor function has been disabled with bit the MM and SM bits set to "0". bit3 MSVE: Main clock monitoring enable bit This bit enables the monitoring of main clock oscillation. When set to"0": The bit disables main clock monitoring. When set to"1": The bit enables main clock monitoring. This bit is set to "1" only when a power-on reset occurs. bit2 SSVE: Sub clock monitoring enable bit This bit enables the monitoring of sub clock oscillation. When set to"0": The bit disables sub clock monitoring. When set to"1": The bit enables sub clock monitoring. This bit is set to "1" only when a power-on reset occurs. bit1 SRST: Reset generation enable bit This bit enables reset output upon transition to sub mode. When set to "0": The bit prevents a reset upon transition to sub clock mode with the sub clock halted in main clock mode. When set to "1": The bit causes a reset upon transition to sub clock mode with the sub clock halted in main clock mode. bit0 Reserved bit This bit is reserved. Write "0" to this bit.The read value is always "0". Note: When the power is turned on, the clock supervisor starts monitoring after the oscillation stabilization wait time for the main clock elapses. The oscillation stabilization wait time of the main clock must therefore be longer than the time required for the clock supervisor to start operating. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 571 CHAPTER 27 CLOCK SUPERVISOR 27.4 Operations of Clock Supervisor 27.4 MB95100B/AM Series Operations of Clock Supervisor This section describes the operations of the clock supervisor. ■ Operations of Clock Supervisor The clock supervisor monitors the main clock and sub clock oscillations. If main clock and sub clock oscillations have halted, the device switches to an CR clock and generates a reset. The following describes the operation in each clock mode. ● Main clock oscillation halt in main clock mode The clock supervisor detect that main clock oscillation has halted, if no rising edge is detected on the main clock for 4 CR clock cycles in main clock mode. If a main clock halt is detected, a reset is generated and the main clock switches to the CR clock. The clock supervisor may detect incorrectly, if main clock is a low speed (longer than 4 CR clock cycles). It results from using the CR clock for detecting that main clock oscillation have halted. The clock supervisor does not detect the main clock during stop mode. ● Sub clock oscillation halt in main clock mode (only on dual clock products) In main clock mode, the condition used to detect the sub clock oscillation as having halted is that no rising edge is detected on the sub clock for 32 CR clock cycles. Although no reset is generated immediately if a sub clock halt is detected in main clock mode, the sub clock switches to CR clock divided by two. A reset can be generated when the device switches from main clock mode to sub clock mode with a sub clock oscillation halt detected, by setting the SRST bit in the clock supervisor control register (CSVCR). As the CR clock is used to detect whether the sub clock has halted, a sub clock halt may be detected if the sub clock is set to a low speed (period longer than 32 CR clock cycles). The clock supervisor does not detect the sub clock during the stop mode. ● Sub clock oscillation halt in sub clock mode (only on dual clock products) In sub clock mode, the condition used to detect the sub clock oscillation as having halted is that no rising edge is detected on the sub clock for 34 CR clock cycles. If a sub clock halt is detected, a reset is generated and the device enters main clock mode. In this case, the sub clock switches to CR clock divided by two. As the CR clock is used to detect whether the sub clock has halted, a sub clock halt may be detected if the sub clock is set to a low speed (period longer than 32 CR clock cycles). The clock supervisor does not detect the sub clock during the stop mode. ● Main clock oscillation halt in sub clock mode (only on dual clock products) In sub clock mode, the main clock oscillation remains halted and is therefore not detected by the clock supervisor. 572 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 27 CLOCK SUPERVISOR 27.4 Operations of Clock Supervisor MB95100B/AM Series ■ Example Operation Flowchart for the Clock Supervisor Figure 27.4-1 Example Operation Flowchart for the Clock Supervisor Power on Has the main clock oscillation started? NO (2) (1) Reset state (oscillation stabilization wait) YES Oscillation restarts Main clock operation (4) NO YES CR clock operation (3) Oscillation halted? CSV reset generated Reset is cleared (CR clock operation) External reset generated (5) CSV : Clock supervisor (1) After the power is turned on, the main clock operation starts after the oscillation stabilization wait time generated by the main clock oscillation has elapsed. (2) If the main clock halts at power on, the device remains in the reset state (oscillation stabilization wait state). The operation changes to the main clock, after the oscillation restarts and the oscillation stabilization wait time elapsed. (3) If an oscillation halt is detected during main clock operation, the operating clock is switched to the CR clock and a reset is generated. (4) If the main oscillation continues (oscillation does not halt), the device continues to run using the main clock. (5) If an external reset occurs during the CR clock operation, operation changes to the main clock. However, if the oscillation is halted at this time, another CSV reset is generated and the device returns to CR clock operation. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 573 CHAPTER 27 CLOCK SUPERVISOR 27.4 Operations of Clock Supervisor MB95100B/AM Series ■ Example Startup Flowchart when using the Clock Supervisor Inserting checking process of the main clock stop detection bit (CSVCR:MM) enables user programs to control the Fail Safe routine. Figure 27.4-2 shows the example startup flowchart when using the clock supervisor. Figure 27.4-2 Example Startup Flowchart when using the Clock Supervisor Reset generated CSVCR:MM=1 ? NO YES YES Fail Safe routine (PLL use prohibited) Use PLL? NO Main routine (PLL clock) 574 Main routine (main clock) FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E MB95100B/AM Series 27.5 CHAPTER 27 CLOCK SUPERVISOR 27.5 Notes on Using Clock Supervisor Notes on Using Clock Supervisor Take note of the following points when using the clock supervisor. ■ Notes on Using Clock Supervisor Points to Note when using the Clock Supervisor • Operation of the clock supervisor at power on When the power is turned on, the clock supervisor starts monitoring after the oscillation stabilization wait time for the main clock has elapsed. Therefore, unless the operation continues for longer than the oscillation stabilization wait time for the main clock, the clock supervisor will not operate. • Transition to CR clock mode Do not turn on the PLL after changing to CR clock mode. As the frequency is below the lower limit for the input frequency of the PLL circuit, the PLL operation will not be guaranteed. • Disabling the CR oscillation Do not use the CR oscillation enable bit (CSVCR:RCE) to disable the CR oscillation during CR clock mode. As this halts the internal clock, it may result in deadlock. • Initializing the main clock halt detection bit The main clock halt detection bit (CSVCR:MM) is initialized by a power-on reset or external reset only. The bit is not initialized by the watchdog timer reset/software reset/ CSV reset. Accordingly, the device remains in CR clock mode if one of these resets occurs during CR clock mode. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 575 CHAPTER 27 CLOCK SUPERVISOR 27.5 Notes on Using Clock Supervisor 576 MB95100B/AM Series FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 28 DUAL-OPERATION FLASH MEMORY This chapter describes the functions and operations of 480-Kbit dual-operation flash memory. 28.1 Overview of Dual-Operation Flash Memory 28.2 Sector/Bank Configuration of Flash Memory 28.3 Register of Flash Memory 28.4 Starting the Flash Memory Automatic Algorithm 28.5 Checking the Automatic Algorithm Execution Status 28.6 Flash Memory Program/Erase 28.7 Operation of Dual-Operation Flash Memory 28.8 Flash Security 28.9 Notes on Using Dual-Operation Flash Memory Code: CM26-00113-3E Page: 577 CM26-10101-3E FUJITSU MICROELECTRONICS LIMITED 577 CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.1 Overview of Dual-Operation Flash Memory 28.1 8FX Family Overview of Dual-Operation Flash Memory Dual-operation flash memory is located from 1000H to FFFFH on the CPU memory map. The function of the flash memory interface circuit provides read access and program access from the CPU to flash memory. Dual-operation flash memory consists of upper bank (16K bytes ✕ 2 + 4K bytes ✕ 4) and lower bank (4K bytes ✕ 3) and erasing/programming and a read can be executed concurrently each bank. ■ Overview of Dual-Operation Flash Memory The following methods can be used to program (write) and erase data into/from flash memory: • Programming/erasing using a parallel writer • Programming/erasing using a dedicated serial writer • Programming/erasing by program execution As flash memory by program execution can be programmed and erased by the instructions from the CPU via the flash memory interface circuit, you can efficiently reprogram (update) program code and data in flash memory with the device mounted on a circuit board. Sector is composed of minimum 4K byte and small sector so that it is easy to be handled as the program/data area. Data can be updated by executing a program not only in RAM but also in flash memory in dual-operation mode. An erase/program and a read can be executed concurrently in the different banks (the upper and lower banks). The following combination of dual-operation flash memory are available. Upper bank Lower bank Read Read Programming/Sector Erasing Programming/Sector Erasing Read Chip erase Bank programming/sector erasing cannot be executed during programming/erasing for another bank. 578 FUJITSU MICROELECTRONICS LIMITED CM26-10101-3E CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.1 Overview of Dual-Operation Flash Memory 8FX Family ■ Features of Dual-Operation Flash Memory • Sector configuration: 60K bytes × 8 bits (4K bytes × 4 + 16K bytes × 2 + 4K bytes × 3) • Two-bank configuration, enabling simultaneous execution of an erase/program and a read • Automatic program algorithm (Embedded Algorithm) • Erase suspend/resume function integrated • Detection of completion of programming/erasing using the data polling or toggle bit function • Detection of completion of programming/erasing by CPU interrupts • Compatible with JEDEC standard commands • Capable of erasing data from specific sectors (any combination of sectors) • Programming/erase count (minimum): 10,000 times • Flash read cycle time (minimum): 1 machine cycle ■ Flash memory program/erase • It is not possible to write to and read from the same bank of flash memory at the same time. • To program/erase data into/from a bank in flash memory, execute either a relevant program in a different bank in the flash memory or the one copied from the flash memory to RAM, so that writing to the flash memory can be performed. • By using dual-operation flash memory, programs can be executed on the flash memory and programming control using interrupt is enabled. In adddition, programs do not need to be downloaded onto the RAM for execution when programming, and it is not necessary to take measures reducing the downloading time or turning OFF the power of the RAM data. CM26-10101-3E FUJITSU MICROELECTRONICS LIMITED 579 CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.2 Sector/Bank Configuration of Flash Memory 28.2 8FX Family Sector/Bank Configuration of Flash Memory This section explains the registers and the sector/bank configuration of flash memory. ■ Sector/Bank Configuration of Dual-Operation Flash Memory Figure 28.2-1 shows the sector configuration of the dual-operation flash memory. The upper and lower addresses of each sector are given in the figure. ● Sector Configuration When the CPU accesses flash memory, SA1 to SA9 are located at 1000H to FFFFH. ● Bank configuration The flash memory consists of the lower bank from SA1 to SA3 and the upper bank from SA4 to SA9. Figure 28.2-1 Sector Configuration of Dual-Operation Flash Memory Flash memory SA1 (4K bytes) SA2 (4K bytes) SA3 (4K bytes) SA4 (16K bytes) SA5 (16K bytes) SA6 (4K bytes) SA7 (4K bytes) SA8 (4K bytes) SA9 (4K bytes) CPU address Programmer address* 1000H 71000H 1FFFH 71FFFH 2000H 72000H 2FFFH 72FFFH 3000H 73000H 3FFFH 73FFFH 4000H 74000H 7FFFH 77FFFH 8000H 78000H BFFFH 7BFFFH C000H 7C000H CFFFH 7CFFFH D000H 7D000H DFFFH 7DFFFH E000H 7E000H EFFFH 7EFFFH F000H 7F000H FFFFH 7FFFFH Lower bank Upper bank *: The programmer address is equivalent to the CPU address, which is used when data is written to the flash memory using parallel programmer. When a parallel programmer is used for programming/erasing, this address is used for programming/erasing. 580 FUJITSU MICROELECTRONICS LIMITED CM26-10101-3E CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.3 Register of Flash Memory 8FX Family 28.3 Register of Flash Memory This section shows the register of the flash memory ■ Register of Flash Memory Figure 28.3-1 Register of Flash Memory Flash Memory Status Register (FSR) Address bit7 bit6 bit5 bit4 0072H − − RDYIRQ RDY R0/WX R0/WX R(RM1),W R/WX bit3 bit2 Reserved IRQEN bit1 bit0 Initial value WRE SSEN 000X0000B R/W0 R/W R/W R/W Flash memory sector write control register (SWRE0) Address bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Initial value 0073H − − − − − − SA9E SA8E 00000000B R0/WX R0/WX R0/WX R0/WX R0/WX R0/WX R/W R/W bit8 Flash memory sector write control register (SWRE1) Address bit15 bit14 bit13 bit12 bit11 bit10 bit9 0074H SA7E SA6E SA5E SA4E SA3E SA2E SA1E R/W R/W R/W R/W R/W R/W R/W Initial value Reserved 00000000B R/W0 R/W : Readable/writable (Read value is the same as write value) R(RM1), W : Readable/writable (Read value is different from write value, "1" is read by read-modify-write (RMW) instruction) R/WX : Read only (Readable, writing has no effect on operation) R/W0 : Reserved bit (Write value is "0", read value is the same as write value) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) X : Indeterminate CM26-10101-3E FUJITSU MICROELECTRONICS LIMITED 581 CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.3 Register of Flash Memory 28.3.1 8FX Family Flash Memory Status Register (FSR) Figure 28.3-2 lists the functions of the flash memory status register (FSR). ■ Flash Memory Status Register (FSR) Figure 28.3-2 Flash Memory Status Register (FSR) Address bit7 0072H - bit 6 bit 5 bit 4 - RDYIRQ RDY bit 3 bit 2 bit 1 bit 0 Reserved IRQEN WRE SSEN R0/WX R0/WXR(RM1),W R/WX R/W0 R/W R/W Initial value 000X0000B R/W0 Sector swap enable bit SSEN 0 1 WRE 0 1 IRQEN 0 1 Maps SA3 to addresses "3000H" to "3FFFH" and SA9 to addresses "F000H" to "FFFFH". Maps SA9 to addresses "3000H" to "3FFFH" and SA3 to addresses "F000H" to "FFFFH". Flash memory program/erase enable bit Disables flash memory area programming/erasing. Enables flash memory area programming/erasing. Flash memory program/erase interrupt enable bit Disables interrupts upon completion of programming/erasing. Enables interrupts upon completion of programming/erasing. Reserved bit Reserved 0 RDY 0 1 RDYIRQ 0 1 Be sure to set the bit to "0". Flash memory program/erase status bit Data is being programmed/erased (not ready to program/erase next data). Data has been programmed/erased (ready to program/erase next data). Flash memory operation flag bit Read Write Programming/erasing is being performed. Clears this bit. Programming/erasing has been completed. No effect. Undefined bit The value read is always "0". Writing has no effect on the operation. Undefined bit The value read is always "0". Writing has no effect on the operation. R/W R(RM1),W R/WX R/W0 R0/WX X 582 : Readable/writable (Read value is the same as write value) : Readable/writable (Read value is different from write value, "1" is read by read-modify-write (RMW) instruction) : Read only (Readable, writing has no effect on operation) : Reserved bit (Write value is "0", read value is the same as write value) : Undefined bit (Read value is "0", writing has no effect on operation) : Indeterminate : Initial value FUJITSU MICROELECTRONICS LIMITED CM26-10101-3E CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.3 Register of Flash Memory 8FX Family Table 28.3-1 Functions of Flash Memory Status Register (FSR) Bit name bit7, -: Undefined bits bit6 Function The value read is always "0". Writing has no effect on the operation. RDYIRQ: Flash memory operation flag bit This bit shows the operating state of flash memory. The RDYIRQ bit is set to "1" upon completion of the flash memory automatic algorithm when flash memory programming/erasing is completed. • An interrupt request occurs when the RDYIRQ bit is set to "1" if interrupts triggered by the completion of flash memory programming/erasing have been enabled (FSR: IRQEN=1). • If the RDYIRQ bit is set to "0" when flash memory programming/erasing is completed, further flash memory programming/erasing is disabled. Setting the bit to "0": Clears the bit. Setting the bit to "1": Has no effect on the operation. "1" is read from the bit whenever a read-modify-write (RMW) instruction is used. bit4 RDY: Flash memory program/erase status bit This bit shows the programming/erasing status of flash memory. • Flash memory programming/erasing cannot be performed with the RDY bit set to "0". • A read/reset command or sector-erase suspend command can be accepted even when the RDY bit contains "0". The RDY bit is set to "1" upon completion of programming/erasing. • It takes a delay of two machine clock (MCLK) cycles after the issuance of a program/erase command for the RDY bit to be set to "0". Read this bit after, for example, inserting NOP twice after issuing the program/erase command. bit3 Reserved: Reserved bit Be sure to set this bit to "0". bit2 IRQEN: Flash memory program/erase interrupt enable bit This bit enables or disables the generation of interrupt requests in response to the completion of flash memory programming/erasing. Setting the bit to "0": Prevents an interrupt request from occurring even when the flash memory operation flag bit is set to "1" (FSR: RDYIRQ=1). Setting the bit to "1": Causes an interrupt request from occurring even when the flash memory operation flag bit is set to "1" (FSR: RDYIRQ=1). WRE: Flash memory program/erase enable bit This bit enables or disables the programming/erasing of data into/from the flash memory area. Set the WRE bit before invoking a flash memory program/erase command. Setting the bit to "0": Prevents a program/erase signal from being generated even when a program/erase command is input. Setting the bit to "1": Allows flash memory programming/erasing to be performed after a program/erase command is input. • When flash memory is not to be programmed or erased, set the WRE bit to "0" to prevent it from being accidentally programmed or erased. • To program into flash memory, set FSR:WRE to "1" to write-enable it and set the flash memory sector write control register (SWRE0/SWRE1). When FSR:WRE disables programming (contains "0"), write access to flash memory does not take place even though it is enabled by the flash memory write control register (SWRE0/SWRE1). SSEN: Sector Conversion Enable Bit The sector of an area where the interrupt vector exists is switched between the upper bank SA9 and lower bank SA3. Setting the bit to "0":SA3 is mapped to Address 3000H to 3FFFH, and SA9 is mapped to Address F000H to FFFFH. An interrupt vector exists in SA9. Setting the bit to "1":SA9 is mapped to Address 3000H to 3FFFH, and SA3 is mapped to Address F000H to FFFFH. An interrupt vector exists in SA3. Figure 28.3-3 shows the access sector map for the set value FSR:SSEN. bit5 bit1 bit0 CM26-10101-3E FUJITSU MICROELECTRONICS LIMITED 583 CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.3 Register of Flash Memory 8FX Family Figure 28.3-3 Access Sector Map for the Set Value FSR:SSEN Upper bank Lower bank CPU address 1000 H 1FFF H 2000 H 2FFF H 3000 H 3FFF H 4000 H SA1:4K bytes SA1:4K bytes SA2:4K bytes SA2:4K bytes SA3:4K bytes SA9:4K bytes SA4:16K bytes SA4:16K bytes SA5:16K bytes SA5:16K bytes SA6:4K bytes SA6:4K bytes SA7:4K bytes SA7:4K bytes SA8:4K bytes SA8:4K bytes SA9:4K bytes SA3:4K bytes FSR:SSEN=0 FSR:SSEN=1 7FFF H 8000 H BFFFH C000 H CFFFH D000 H DFFFH E000 H EFFFH F000 H Interrupt vector FFFFH 584 FUJITSU MICROELECTRONICS LIMITED CM26-10101-3E CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.3 Register of Flash Memory 8FX Family 28.3.2 Flash Memory Sector Write Control Registers (SWRE0/SWRE1) The flash memory sector write control registers (SWRE0/SWRE1) exist in the flash memory interface to be used to set the flash memory accidental write protect feature. ■ Flash Memory Sector Write Control Registers (SWRE0/SWRE1) The flash memory sector write control registers (SWRE0/SWRE1) contain the bits to enable/ disable programming data into individual sectors (SA1 to SA9). The initial value of each bit is "0" to disable programming. Writing 1 to one of the bits enables programming data into the corresponding sector. Writing 0 to it prevents an accidental write from being executed to the sector. Once you have written 0 to the bit, therefore, you cannot write to the sector even though you write 1 to the bit. You have to reset the bit before you can write to the sector again. Figure 28.3-4 Flash Memory Sector Write Control Registers (SWRE0/SWRE1) SWRE0 Address 0073H bit7 − bit6 − bit5 − bit4 − bit3 − bit2 − R0/WX R0/WX R0/WX R0/WX R0/WX R0/WX bit1 SA9E R/W bit0 SA8E R/W SWRE1 Address 0074H bit15 SA7E R/W bit14 SA6E R/W bit13 SA5E R/W bit12 SA4E R/W bit11 SA3E R/W bit10 SA2E R/W bit9 bit8 SA1E Reserved R/W R/W1 Initial value 00000000B Initial value 00000000B R/W : Readable/writable (Read value is the same as write value) R/W1 : Reserved bit (Write value is "1", read value is the same as write value) R0/WX : Undefined bit (Read value is "0", writing has no effect on operation) To these registers, be sure to write data in words. No bit manipulation instruction can be used for setting their bits. CM26-10101-3E FUJITSU MICROELECTRONICS LIMITED 585 CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.3 Register of Flash Memory 8FX Family Table 28.3-2 Functions of Flash Memory Sector Write Control Registers (SWRE0/SWRE1) Register name SWRE0 Bit name bit7 to bit2 -: Undefined bits bit1, bit0 Function The value read is always "0". Writing has no effect on the operation. These bits are used to set the accidental write function for the individual sectors of the flash memory. Writing "1" to one of these bits enables programming into the corresponding sector. Writing "0" to the bit write defect protects that sector (prevents an accidental write to the sector). Resetting the bit initializes it to 0 (programming disabled). Programming function setup bits and corresponding flash sectors SWRE1 bit15 to bit9 SA9E to SA1E: Programming function setup bits Bit name Corresponding sector in flash memory SA9E SA9 SA8E SA8 SA7E SA7 SA6E SA6 SA5E SA5 SA4E SA4 SA3E SA3 SA2E SA2 SA1E SA1 Programming disabled: State of "0". The register corresponding to each sector can be set (to "1") to enable programming into that sector, with no "0" written in the flash memory sector write control registers (SWRE0/SWRE1). (State existing immediately after a reset.) Programming enabled: State of "1". Data can be programmed into the corresponding sector. Accidental write protected: State of "0".The register corresponding to each sector cannot be set (to "1") to enable programming into that sector even by writing "1" to it with "0" written in the flash memory sector write control registers (SWRE0/SWRE1). bit8 586 Reserved: Reserved bit Be sure to set this bit to "1". FUJITSU MICROELECTRONICS LIMITED CM26-10101-3E CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.3 Register of Flash Memory 8FX Family Figure 28.3-5 Examples of Flash Memory Programming-Disabled, ProgrammingEnabled, and Accidental Write Protected States Depending on Flash Memory Sector Write Control Registers (SWRE0/SWRE1) Initialize Write to register Write to register Initialize RST Programming disabled Programming enabled Accidental write protected Programming disabled SA1E Programming disabled Accidental write protected Programming disabled Programming disabled Accidental write protected Programming disabled Programming disabled Programming enabled Programming disabled SA2E SA3E SA4E Programming disabled: State of "0". The register corresponding to each sector can be set (to "1") to enable programming into that sector, with no "0" written in the flash memory sector write control registers (SWRE0/SWRE1). (State existing immediately after a reset.) Programming enabled: State of "1". Data can be programmed into the corresponding sector. Accidental write protected: State of "0". The register corresponding to each sector cannot be set (to "1") to enable programming into that sector even by writing "1" to it with "0" written in the flash memory sector write control registers (SWRE0/SWRE1). CM26-10101-3E FUJITSU MICROELECTRONICS LIMITED 587 CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.3 Register of Flash Memory 8FX Family ■ Flash Memory Sector Write Control Registers (SWRE0/SWRE1) Setup Flowchart Set the FSR:WRE bit and program-enable or accidental write protect each sector by setting the corresponding bit in the flash memory sector write control register (SWRE0/SWRE1) to "1" or "0", respectively. Figure 28.3-6 Sample Procedure for Accidental-writing protect/Program-enabling of Flash Memory Start of writing FSR: WRE (bit1) Write-enable flash memory. SWRE0/SWRE1 Accidental-write-protect flash memory setting. (Write "0" to protect sectors from accidental-writing or "1" to program sectors) Programming command sequence (1) UAAA ← AA (2) U554 ← 55 (3) UAAA ← A0 (4) Write address ← Write data Next address Read internal address. Data polling (DQ7) Data Data 0 Timing limit (DQ5) 1 Read internal address. Data Data polling (DQ7) Data Write error Last address? NO YES FSR: WRE (bit1) Write-disable flash memory. End of writing 588 FUJITSU MICROELECTRONICS LIMITED CM26-10101-3E CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.3 Register of Flash Memory 8FX Family ■ Note on Setting the FSR:WRE To program into flash memory, set FSR:WRE to "1" to write-enable it and set the flash memory sector write control registers (SWRE0/SWRE1). When FSR:WRE disables programming (contains "0"), write access to flash memory does not take place even though it is enabled by the flash memory sector write control registers (SWRE0/SWRE1). CM26-10101-3E FUJITSU MICROELECTRONICS LIMITED 589 CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.4 Starting the Flash Memory Automatic Algorithm 28.4 8FX Family Starting the Flash Memory Automatic Algorithm There are four types of commands that invoke the flash memory automatic algorithm: read/reset, write (program), chip-erase, and sector-erase. The sector erase command is capable of suspending and resuming. ■ Command Sequence Table Table 28.4-1 lists the command sequence table. Table 28.4-1 Command Sequence Table Command sequence * Bus write cycle 1st bus write cycle Address Data 2nd bus write cycle Address Data 3rd bus write cycle Address 4th bus write cycle 5th bus write cycle 6th bus write cycle Data Address Data Address Data Address Data 1 FXXXH F0H - - - - - - - - - - Read/reset* 4 UAAAH AAH U554H 55H UAAAH F0H RA RD - - - - Programming 4 UAAAH AAH U554H 55H UAAAH A0H PA PD - - - - Chiperasing 6 XAAAH AAH X554H 55H XAAAH 80H XAAAH AAH X554H 55H XAAAH 10H Sectorerasing 6 UAAAH AAH X554H 55H UAAAH 80H UAAAH AAH U554H 55H SA 30H Read/reset Sector erasing suspended Entering address "UXXXH" and data "B0H" suspends erasing during sector erasing. Sector erase resume Entering address "UXXXH" and data "30H" resumes erasing after erasing is suspended during sector erasing. • RA : Read address • PA : Write (program) address • SA : Sector address (specify arbitrary one address in sector) • RD : Read data • PD : Write (program) data • U : Upper 4 bits same as RA, PA, and SA • FX : FF/FE • X : Arbitrary address *: Both of the two types of read/reset command can reset the flash memory to read mode. Notes: • Addresses in the table are the values in the CPU memory map. All addresses and data are hexadecimal values. However, "X" is an arbitrary value. • Address "U" in the table is not arbitrary, whose four bits (bit15 to bit12) must have the same value as RA, PA, and SA. Example: If RA = C48EH, U = C; If PA = 1024H, U=1 If SA = 3000H, U = 3 • The chip erase command is accepted only when all sectors have been programenabled. The chip erase command is ignored if the bit for any sector in the flash memory sector write control registers (SWRE0/SWRE1) has been set to "0" (to program-disable or accidental-write protect the sector). 590 FUJITSU MICROELECTRONICS LIMITED CM26-10101-3E CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.4 Starting the Flash Memory Automatic Algorithm 8FX Family ■ Notes on Issuing Commands Pay attention to the following points when issuing commands in the command sequence table: Program-enable each required sector before issuing the first command. The upper address U bits (bit15 to bit12) used when commands are issued must have the same value as RA, PA, and SA, from the first command on. If the above measures are not followed, commands are not recognized normally. Execute a reset to initialize the command sequencer in the flash memory. CM26-10101-3E FUJITSU MICROELECTRONICS LIMITED 591 CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.5 Checking the Automatic Algorithm Execution Status 28.5 8FX Family Checking the Automatic Algorithm Execution Status As the flash memory uses the automatic algorithm for a process flow for programming/erasing, you can check its internal operating status with hardware sequence flags. ■ Hardware Sequence Flag ● Overview of hardware sequence flag The hardware sequence flag consists of the following 4-bit outputs: • Data Polling Flag (DQ7) • Toggle Bit Flag (DQ6) • Execution Time-out Flag (DQ5) • Sector Erase Timer Flag (DQ3) The hardware sequence flags tell whether the write (program), chip-erase, or sector-erase command has been terminated and whether an erase code write can be performed. You can reference hardware sequence flags by read access to the address of each relevant sector in flash memory after setting a command sequence. Note, however, that hardware sequence flags are output only for the bank on a command-issued side. Table 28.5-1 shows the bit allocation of the hardware sequence flags. Table 28.5-1 Bit Allocation of Hardware Sequence Flags Bit No. 7 6 5 4 3 2 1 0 Hardware sequence flag DQ7 DQ6 DQ5 − DQ3 − − − • To know whether the automatic write, chip-erase, or sector-erase command is being executed or has been terminated, check the hardware sequence flags or the flash memory program/erase status bit in the flash memory status register (FSR:RDY). After programming/erasing is terminated, flash memory returns to the read/reset state. • When creating a write/erase program, read data after checking the termination of automatic writing/erasing with the DQ7, DQ6, DQ5, and DQ3 flags. • The hardware sequence flags can also be used to check whether the second sector erase code write and later are in effect. 592 FUJITSU MICROELECTRONICS LIMITED CM26-10101-3E CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.5 Checking the Automatic Algorithm Execution Status 8FX Family ● Explanation of hardware sequence flag Table 28.5-2 lists the functions of the hardware sequence flag. Table 28.5-2 List of Hardware Sequence Flag Functions State State transition during normal operation DQ7 DQ6 DQ5 DQ3 Programming → Programming completed (when write address has been specified) DQ7→ DATA: 7 Toggle→ DATA: 6 0→ DATA: 5 0→ DATA: 3 Chip/sector erasing → Erasing completed 0→1 Toggle → Stop 0→ 1 1 Sector erasing wait → Erasing started 0 Toggle 0 0→1 Erasing → Sector erasing suspended (Sector being erased) 0→1 Toggle → 1 0 1→ 0 Sector erasing suspended → Erasing resumed (Sector being erased) 1→0 1 → Toggle 0 0→ 1 DATA: 7 DATA: 6 DATA: 5 DATA: 3 DQ7 Toggle 1 0 0 Toggle 1 1 Sector erasing being suspended (Sector not being erased) Abnormal operation Write Chip/sector erasing CM26-10101-3E FUJITSU MICROELECTRONICS LIMITED 593 CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.5 Checking the Automatic Algorithm Execution Status 28.5.1 8FX Family Data Polling Flag (DQ7) The data polling flag (DQ7) is a hardware sequence flag used to indicate that the automatic algorithm is being executing or has been completed using the data polling function. ■ Data Polling Flag (DQ7) Table 28.5-3 and Table 28.5-4 show the state transition of the data polling flag (during normal operation) and the state transition of the data polling flag (during abnormal operation) respectively. Table 28.5-3 State Transition of Data Polling Flag (During Normal Operation) Operating state DQ7 Chip/ Sector erasing Programming → sector erasing wait → → Programming Erasing Erasing completed started completed DQ7 → DATA: 7 0→ 1 0 Sector erasing Sector erasing suspended (Sector being erased) Sector erasing suspended → Erasing resumed (Sector being erased) Sector erasing being suspended (Sector not being erased) 0→1 1→ 0 DATA: 7 → Table 28.5-4 State Transition of Data Polling Flag (During Abnormal Operation) Operating state Write Chip/sector erasing DQ7 DQ7 0 ● At programming When read access takes place during execution of the automatic write algorithm, the flash memory outputs the inverted value of bit7 in the last data written to DQ7. If read access takes place on completion of the automatic write algorithm, the flash memory outputs bit7 of the value read from the read-accessed address to DQ7. ● At chip/sector erasing When read access is made to the sector currently being erased during execution of the chip/ sector erase automatic algorithm, bit7 of flash memory outputs "0". Bit7 of flash memory outputs "1" upon completion of chip/sector erasing. 594 FUJITSU MICROELECTRONICS LIMITED CM26-10101-3E CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.5 Checking the Automatic Algorithm Execution Status 8FX Family ● At sector erasing suspension • When read access takes place with a sector-erase operation suspended, the flash memory outputs "1" to DQ7 if the read address is the sector being erased. If not, the flash memory outputs bit7 (DATA:7) of the value read from the read address to DQ7. • Referring the data polling flag (DQ7) together with the toggle bit flag (DQ6) permits a decision on whether flash memory is in the sector erase suspended state or which sector is being erased. Note: Once the automatic algorithm has been started, read access to the specified address is ignored. Data reading is allowed after the data polling flag (DQ7) is set to "1". Data reading after the end of the automatic algorithm should be performed following read access made to confirm the completion of data polling. CM26-10101-3E FUJITSU MICROELECTRONICS LIMITED 595 CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.5 Checking the Automatic Algorithm Execution Status 28.5.2 8FX Family Toggle Bit Flag (DQ6) The toggle bit flag (DQ6) is a hardware sequence flag used to indicate that the automatic algorithm is being executed or has been completed using the toggle bit function. ■ Toggle Bit Flag (DQ6) Table 28.5-5 and Table 28.5-6 show the state transition of the toggle bit flag (during normal operation) and the state transition of the toggle bit flag(during abnormal operation) respectively. Table 28.5-5 State Transition of Toggle Bit Flag (During Normal Operation) Programming Operating state → Programming completed Toggle → DATA: 6 DQ6 Chip/ sector erasing → Erasing completed Toggle→Stop Sector erasing → Sector erasing Sector erasing wait → suspended Erasing started (Sector being erased) Toggle Sector erasing suspended → Erasing resumed (Sector being erased) Sector erasing being suspended (Sector not being erased) 1→Toggle DATA: 6 Toggle→1 Table 28.5-6 State Transition of Toggle Bit Flag (During Abnormal Operation) Operating state Write Chip/sector erasing DQ6 Toggle Toggle ● At programming and chip/sector erasing When read access is made continuously during execution of the automatic write algorithm or chip-erase/sector-erase automatic algorithm, the flash memory toggles the output between "1" and "0" at each read access. When read access is made continuously after the automatic write algorithm or chip-erase/ sector-erase automatic algorithm is terminated, the flash memory outputs bit6 (DATA:6) of the value read from the read address at each read access. ● At sector erasing suspension When read access is made with a sector erase operation suspended, the flash memory outputs "1" if the read address is the sector being erased. If not, the flash memory outputs bit6 (DATA:6) of the value read from the read address. 596 FUJITSU MICROELECTRONICS LIMITED CM26-10101-3E 8FX Family CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.5 Checking the Automatic Algorithm Execution Status Note: When using dual-operation flash memory (flash memory write control program is executed from flash memory), the toggle bit flag (DQ6) cannot be used to check the status during writing or erasing. Please refer to the notes in "28.9 Notes on Using DualOperation Flash Memory" when writing your program. This precaution does not apply if running the flash memory write control program from RAM. CM26-10101-3E FUJITSU MICROELECTRONICS LIMITED 597 CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.5 Checking the Automatic Algorithm Execution Status 28.5.3 8FX Family Execution Time-out Flag (DQ5) The Execution Time-out Flag (DQ5) is a hardware sequence flag indicating that the automatic algorithm has been executed beyond the specified time (required for programming/erasing) internal to the flash memory. ■ Execution Time-out Flag (DQ5) Table 28.5-7 and Table 28.5-8 show the state transition of the execution time-out flag (during normal operation) and the state transition of the execution time-out flag (during abnormal operation) respectively. Table 28.5-7 State Transition of Execution Time-out Flag (During Normal Operation) Programming Operating state DQ5 → Programming completed 0 → DATA: 5 Chip/ sector erasing → Erasing completed Sector erasing → Sector erasing Sector erasing wait → suspended Erasing started (Sector being erased) 0→1 0 Sector erasing suspended → Erasing resumed (Sector being erased) Sector erasing being suspended (Sector not being erased) 0 DATA: 5 0 Table 28.5-8 State Transition of Execution Time-out Flag (During Abnormal Operation) Operating state Write Chip/sector erasing DQ5 1 1 ● At programming and chip/sector erasing When read access is made with the write or chip-erase/sector-erase automatic algorithm invoked, the flag outputs "0" when the algorithm execution time is within the specified time (required for programming/erasing) or "1" when it exceeds that time. The execution time-out flag (DQ5) can be used to check whether programming/erasing has succeeded or failed regardless of whether the automatic algorithm has been running or terminated. When the execution time-out flag (DQ5) outputs "1", it indicates that programming has failed if the automatic algorithm is still running for the data polling or toggle bit function. If an attempt is made to write "1" to a flash memory address holding "0", for example, the flash memory is locked, preventing the automatic algorithm from being terminated and valid data from being output from the data polling flag (DQ7). As the toggle bit flag (DQ6) does not stop toggling, the time limit is exceeded and the execution time-out flag (DQ5) outputs "1". The state in which the execution time-out flag (DQ5) outputs "1" means that the flash memory has not been used correctly; it does not mean that the flash memory is defective. When this state occurs, execute the reset command. 598 FUJITSU MICROELECTRONICS LIMITED CM26-10101-3E CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.5 Checking the Automatic Algorithm Execution Status 8FX Family 28.5.4 Sector Erase Timer Flag (DQ3) The sector erase timer flag (DQ3) is a hardware sequence flag used to indicate whether the flash memory is waiting for sector erasing after the sector erase command has started. ■ Sector Erase Timer Flag (DQ3) Table 28.5-9 and Table 28.5-10 show the state transition of the sector erase timer flag (during normal operation) and the state transition of the sector erase timer flag (during abnormal operation) respectively. Table 28.5-9 State Transition of Sector Erase Timer Flag (During Normal Operation) Programming Operating state DQ3 → Chip/ sector erasing Programming completed 0 → DATA: 3 → Erasing completed Sector erasing → Sector erasing Sector erasing wait → suspended Erasing started (Sector being erased 0→1 1 Sector erasing suspended → Erasing resumed (Sector being erased) Sector erasing being suspended (Sector not being erased) 0→1 DATA: 3 1→0 Table 28.5-10 State Transition of Sector Erase Timer Flag (During Abnormal Operation) Operating state Write Chip/sector erasing DQ3 0 1 ● At sector erasing • When read access is made after the sector erase command has been started, the sector erase timer flag (DQ3) outputs "0" within the sector erasing wait period. The flag outputs "1" if the sector erase wait period has been exceeded. • When the sector erase timer flag (DQ3) is "1", sector erasing is being performed if the erase algorithm shows running for the data polling or toggle bit function (with DQ7 holding 0 and DQ6 toggling the output). If any command other than the sector erase suspend command is set subsequently, it is ignored until sector erasing is terminated. • If the sector erase timer flag (DQ3) is "0", flash memory can accept the sector erase command. Before programming the sector erase command into flash memory, make sure that the sector erase timer flag (DQ3) is "0". If the flag is "1", flash memory may not accept the sector erase suspended command. ● At sector erasing suspension When read access is made with a sector erase operation suspended, the flash memory outputs "1" if the read address is the sector being erased. If not, the flash memory outputs bit3 (DATA:3) of the value read from the read address. CM26-10101-3E FUJITSU MICROELECTRONICS LIMITED 599 CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.6 Flash Memory Program/Erase 28.6 8FX Family Flash Memory Program/Erase This section describes the individual procedures for flash memory reading/ resetting, programming, chip-erasing, sector-erasing, sector-erase suspending, and sector-erase resuming by entering their respective commands to invoke the automatic algorithm. ■ Details of Programming/Erasing Flash Memory The automatic algorithm can be invoked by writing the read/reset, program, chip-erase, sectorerase, sector-erase suspend, and sector-erase resume command sequence to flash memory from the CPU. Writing command sequence to flash memory from the CPU must always be performed continuously. The termination of the automatic algorithm can be checked by the data polling function. After the automatic algorithm terminates normally, the flash memory returns to the read/reset state. The individual operations are explained in the following order: • Enter read/reset state. • Program data. • Erase all data (chip-erase). • Erase arbitrary data (sector erase). • Suspend sector erasing. • Resume sector erasing. 600 FUJITSU MICROELECTRONICS LIMITED CM26-10101-3E 8FX Family 28.6.1 CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.6 Flash Memory Program/Erase Placing Flash Memory in the Read/Reset State This section explains the procedure for entering the read/reset command to place flash memory in the read/reset state. ■ Placing Flash Memory in the Read/Reset State • To place flash memory in the read/reset state, send the read/reset command in the command sequence table continuously from the CPU to flash memory. • The read/reset command is available in two different command sequences: one involves a single bus operation and the other involves four bus operations, which are essentially the same. • Since the read/reset state is the initial state of flash memory, the flash memory always enters this state after the power is turned on and at the normal termination of a command. The read/reset state is also described as the wait state for command input. • In the read/reset state, read access to flash memory enables data to be read. As is the case with masked ROM, program access from the CPU can be made. • Read access to flash memory does not require the read/reset command. If a command is not terminated normally, use the read/reset command to initialize the automatic algorithm. CM26-10101-3E FUJITSU MICROELECTRONICS LIMITED 601 CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.6 Flash Memory Program/Erase 28.6.2 8FX Family Programming Data into Flash Memory This section explains the procedure for entering the write (program) command to program data into flash memory. ■ Programming Data into Flash Memory • To start the automatic algorithm for programming data into flash memory, send the program command in the command sequence table continuously from the CPU to flash memory. • Upon completion of data programming to a target address in the fourth cycle, the automatic algorithm is activated to start automatic programming. ● How to specify addresses Programming (writing) can be performed even in any order of addresses or across a sector boundary. Data written by a single program command is only one byte. ● Notes on programming data • Bit data cannot be returned from "0" to "1" by programming. When bit data "1" is programmed to bit data "0", the data polling function (DQ7) or toggle operation (DQ6) is not terminated, the flash memory element is determined to be defective, and the execution time-out flag (DQ5) detects an error to indicate that the specified programming time has been exceeded. When data is read in the read/reset state, the bit data remains "0". To return the bit data from "0" to "1", erase flash memory. • All commands are ignored during automatic programming. • If a hardware reset occurs during programming, the data being programmed to the current address is not guaranteed. Retry from the chip-erase or sector-erase command. ■ Flash Memory Programming Procedure • Figure 28.6-1 shows the sample procedure for programming into flash memory. The hardware sequence flags can be used to check the operating state of the automatic algorithm in flash memory. The data polling flag (DQ7) is used for checking the completion of programming into flash memory in this example. • Flag check data should be read from the address where data was last written. • Because the data polling flag (DQ7) and execution time-out flag (DQ5) are updated at the same time, the data polling flag (DQ7) must be checked even when the execution time-out flag (DQ5) is "1". • Similarly, the toggle bit flag (DQ6) must be checked as it stops toggling at the same time as when the execution time-out flag (DQ5) changes to "1". 602 FUJITSU MICROELECTRONICS LIMITED CM26-10101-3E CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.6 Flash Memory Program/Erase 8FX Family Figure 28.6-1 Sample Procedure for Programming into Flash Memory Start of writing FSR: WRE (bit1) Write-enable flash memory. SWRE0/SWRE1 Write-protect flash memory. (Write "0" to write-protect or "1" to program-enable sectors.) Programming command sequence (1) UAAAH ← AAH (2) U554H ← 55H (3) UAAAH ← A0H (4) Write address ← Write data Read internal address. Data polling (DQ7) Next address Data Data 0 Timing limit (DQ5) 1 Read internal address. Data Data polling (DQ7) Data Write error Last address? NO YES FSR: WRE (bit1) Write-disable flash memory. End of writing CM26-10101-3E FUJITSU MICROELECTRONICS LIMITED 603 CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.6 Flash Memory Program/Erase 28.6.3 8FX Family Erasing All Data from Flash Memory (Chip Erase) This section describes the procedure for issuing the chip erase command to erase all data from flash memory. ■ Erasing Data from Flash Memory (Chip Erase) • To erase all data from flash memory, send the chip erase command in the command sequence table continuously from the CPU to flash memory. • The chip erase command is executed in six bus operations. Chip erasing is started upon completion of the sixth programming cycle. • Before chip erasing, the user need not perform programming into flash memory. During execution of the automatic erase algorithm, flash memory automatically programs "0" before erasing all cells automatically. ■ Notes on Chip Erase • The chip erase command is accepted only when all sectors have been program-enabled. The chip erase command is ignored if the bit for any sector in the flash memory sector write control registers (SWRE0/SWRE1) has been set to "0" (to program-disable or accidental write protect the sector). • If a hardware reset occurs during erasure, the data being erased from flash memory is not guaranteed. 604 FUJITSU MICROELECTRONICS LIMITED CM26-10101-3E 8FX Family 28.6.4 CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.6 Flash Memory Program/Erase Erasing Arbitrary Data from Flash Memory (Sector Erasing) This section explains the procedure for entering the sector erase command to erase any sector in flash memory. Sector-by-sector erasing is enabled and multiple sectors can be specified at a time. ■ Erasing Arbitrary Data from Flash Memory (Sector Erase) To erase data from an arbitrary sector in flash memory, send the sector erase command in the command sequence table continuously from the CPU to flash memory. ● Specifying a sector • The sector erase command is executed in six bus operations. A minimum of 50 μs sector erase wait is started by specifying the address for the sixth cycle as the address in the target sector and writing the sector erase code (30H) as data. • To erase data from more than one sector, program the erase code (30H) to the sector address to be erased, following the above. ● Notes on specifying two or more sectors • Sector erasing is started upon completion for a minimum of 50 μs sector erase wait period after the last sector erase code has been programmed. • To erase data from two or more sectors simultaneously, input the erase sector addresses and the erase code (the sixth cycle of the command sequence) within 50 μs. If the erase code is input after 50 μs or over, it cannot be accepted upon completion of the sector erase wait period. • The sector erase timer flag (DQ3) can be used to check whether it is valid to write consecutive sector erase codes. • When reading the sector erase timer flag (DQ3), specify the address of the sector to be erased. ■ Flash Memory Sector Erasing Procedure • The hardware sequence flags can be used to check the operating state of the automatic algorithm in flash memory. Figure 28.6-2 shows a sample of flash memory sector erasing procedure. In this example, the toggle bit flag (DQ6) is used to check that sector erasing is completed. • The toggle bit flag (DQ6) stops toggling the output concurrently with the change of the execution time-out flag (DQ5) to "1". So the toggle bit flag (DQ6) must be checked even when the execution time-out flag (DQ5) is "1". • Similarly, the data polling flag (DQ7) changes concurrently with the transition of the execution time-out flag (DQ5), so the data polling flag (DQ7) must be checked. ■ Notes on Erasing Data from Sectors If a hardware reset occurs during erasing data from a sector, the data being erased is not guaranteed. Retry erasing the same sector. CM26-10101-3E FUJITSU MICROELECTRONICS LIMITED 605 CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.6 Flash Memory Program/Erase 8FX Family Figure 28.6-2 Sample Procedure for Erasing Data from Sectors in Flash Memory Start of erasing FSR : WRE (bit1) Erase-enable flash memory . SWRE0/SWRE1 Write-protected flash memory (Write "0" to write-protect or "1" to write-enable sectors.) Erase command sequence (1) UAAAH←AAH (2) U554H ←55H (3) UAAAH←80H (4) UAAAH←AAH (5) U554H ←55H (6)Input code (30H) to erase sector. YES Any other sector to be erased? NO Read internal address. Read internal address 1 0 DQ3 Read internal address 2 1 Some sectors have not been specified for sector erasing within 50 μs. Set the remainder re-execution flag. Toggle Bit (DQ6) Data 1=Data 2 YES NO 0 Timing limit (DQ5) 1 Read internal address 1 Read internal address 2 NO Toggle Bit (DQ6) Data 1=Data 2 YES Erase error Retry remaining flag? YES NO FSR : WRE (bit1) Erase-disable flash memory. End of erasing 606 FUJITSU MICROELECTRONICS LIMITED CM26-10101-3E 8FX Family 28.6.5 CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.6 Flash Memory Program/Erase Suspending Sector Erasing from Flash Memory This section explains the procedure for entering the sector erase suspend command to suspend sector erasing from flash memory. Data can be read from sectors not being erased. ■ Suspending Sector Erasing from Flash Memory • To suspend flash memory sector erasing, send the sector erase suspend command in the command sequence table from the CPU to flash memory. • The sector erase suspend command suspends the sector erase currently being performed, allowing data to be read from sectors that are currently not being erased. • The sector erase suspend command is only enabled during the sector erase period including the erase wait time; it is ignored during the chip erase period or during programming. • The sector erase suspend command is executed when the erase suspend code (B0H) is programmed. At this time, specify an arbitrary address in the sector specified for erasure. If an attempt is made to execute the sector erase suspend command again when sector erasing has been suspended, the command input again is ignored. • When the sector erase suspend command is input during the sector erase wait period, the sector erase wait state ends immediately, the erasing is interrupted, and the erase stop state occurs. • When the erase suspend command is input during sector erasing after the sector erase wait period, the erase suspend state occurs after a maximum of 20μs. ■ Note Before issuing a suspend command, wait for 20 ms after issuing the sector erase command or sector erase resume command. CM26-10101-3E FUJITSU MICROELECTRONICS LIMITED 607 CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.6 Flash Memory Program/Erase 28.6.6 8FX Family Resuming Sector Erasing from Flash Memory This section explains the procedure for entering the sector erase resume command to resume suspended erasing of a sector in flash memory. ■ Resuming Sector Erasing from Flash Memory • To resume suspended sector erasing, send the sector erase resume command in the command sequence table from the CPU to flash memory. • The sector erase resume command resumes sector erasing suspended by the sector erase suspend command. The sector erase resume command is executed by writing erase resume code (30H). At this time, specify an arbitrary address in the sector specified for erasure. • The sector erase resume command input during sector erasing is ignored. 608 FUJITSU MICROELECTRONICS LIMITED CM26-10101-3E CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.7 Operation of Dual-Operation Flash Memory 8FX Family 28.7 Operation of Dual-Operation Flash Memory The following are special notes for when using dual-operation flash memory. • Interrupt occurrence when rewriting upper bank • Setup Procedure of Sector Conversion Enable Bit in Flash Memory Status Register (FSR:SSEN) ■ An interrupt occurs when rewriting the upper bank. Dual-operation flash memory is configured with two banks, but it is not possible to execute the erase/programming and read for the same bank like old flash memory. SA9 includes an interrupt vector, so the interrupt vector cannot be read correctly from the CPU when an interrupt occurs during upper bank programming. When programming the upper bank, the sector conversion enable bit needs to be set to "1" (FSR:SSEN=1). Therefore, the same data needs to be copied to SA3 and SA9 before setting the sector conversion enable bit (FSR:SSEN) in order to read the interrupt vector data from SA3 for when an interrupt occurs. ■ Setup Procedure of Sector Conversion Enable Bit (FSR:SSEN) Figure 28.7-1 shows the setup procedure for the sector conversion enable bit (FSR:SSEN). When programming data of the upper bank, the FSR:SSEN bit needs to be set to "1". Also, during programming to the flash memory, the sector conversion enable bit (FSR:SSEN) setting cannot be changed. The sector conversion enable bit (FSR:SSEN) must be set either before or after programming to the flash memory. Interrupt enable is prohibited when the FSR:SSEN bit is set. Interrupt needs to be enabled after the sector conversion enable bit (FSR:SSEN) is set. Figure 28.7-1 Setup Procedure Example of Sector Conversion Enable Bit (FSR:SSEN) Start updating Flash data Update data in lower bank Start write operation Update data in upper bank Copy data from SA9 to SA3 SET FSR: SSEN ("1") Copy data from SA9 to SA3 Complete flash data updata Complete flash data updata SET FSR: SSEN ("0") CM26-10101-3E FUJITSU MICROELECTRONICS LIMITED 609 CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.7 Operation of Dual-Operation Flash Memory 8FX Family ■ Programming/Erasing Operation When an interrupt occurs during programming/erasing to the flash memory, programming to the flash memory is prohibited within the interrupt routine. When multiple programming/erasing routines exist, execute a programming/erasing routine after the current programming/erasing routine is finished. State transition from programming/erasing mode (clock mode and standby mode) during programming/erasing to the flash memory is prohibited. Execute state transition after programming/erasing is finished. 610 FUJITSU MICROELECTRONICS LIMITED CM26-10101-3E CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.8 Flash Security 8FX Family 28.8 Flash Security The flash security controller function prevents the contents of flash memory from being read through external pins. ■ Flash Security Writing protection code "01H" to a flash memory address (4000H) restricts access to flash memory, barring read/write access to flash memory from any external pin. Once flash memory has been protected, the function cannot be unlocked until the chip erase command is executed. Note that only addresses 5554H and AAAAH can be read as exceptions. It is advisable to code the protection code at the end of flash programming. This is to avoid unnecessary protection during programming. Once flash memory has been protected, the chip erase operation is required before it can be reprogrammed. CM26-10101-3E FUJITSU MICROELECTRONICS LIMITED 611 CHAPTER 28 DUAL-OPERATION FLASH MEMORY 28.9 Notes on Using Dual-Operation Flash Memory 28.9 8FX Family Notes on Using Dual-Operation Flash Memory This section describes points to note when using dual-operation flash memory. ■ Restrictions on Toggle Bit Flag (DQ6) When using dual-operation flash memory (flash memory write control program is executed from flash memory), the toggle bit flag (DQ6) cannot be used to check the status during writing or erasing. Accordingly, please use the data polling flag (DQ7) to check the internal status of flash memory after writing to the flash memory or erasing a sector as shown in the examples in Figure 28.6-1 and Figure 28.6-2. Note that this precaution does not apply if running the flash write control program from RAM. ■ Notes on F2MC-8FX Software Development Support Environment (MB95FV100D and MB2146-09) • Writing or erasing the lower bank (1000H to 3FFFH) is not possible. • Do not execute chip erasing. 612 FUJITSU MICROELECTRONICS LIMITED CM26-10101-3E CHAPTER 29 EXAMPLE OF SERIAL PROGRAMMING CONNECTION This chapter describes the example of a serial programming connection. 29.1 Basic Configuration of Serial Programming Connection for Flash Memory Products 29.2 Example of Serial Programming Connection 29.3 Example of Minimum Connection to Flash Microcontroller Programmer Code: CM26-00124-1E Page: 614, 615 CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 613 CHAPTER 29 EXAMPLE OF SERIAL PROGRAMMING CONNECTION 29.1 Basic Configuration of Serial Programming Connection for Flash Memory Products MB95100B/AM Series 29.1 Basic Configuration of Serial Programming Connection for Flash Memory Products The flash memory products in the MB95100B/AM series supports flash ROM serial onboard programming (Fujitsu standard). This section describes the specifications. ■ Basic Configuration of Serial Programming Connection for Flash Memory Products The AF220/AF210/AF120/AF110 flash microcontroller programmer manufactured by YokogawaDigital Computer Co., Ltd. is used for Fujitsu standard serial onboard programming. Figure 29.1-1 shows the basic configuration of serial programming connection for flash memory products. Figure 29.1-1 Basic Configuration of Serial Programming Connection for Flash Memory Products Host interface cable (AZ221) RS232C Flash microcontroller programmer + memory card General-purpose common cable (AZ210) CLK-synchronous Flash memory serial products user system Operable in stand alone mode Note: For the function and operation method of the AF220/AF210/AF120/AF110 flash microcontroller programmer and the general-purpose common cable (AZ210) and connector, contact Yokogawa Digital Computer Co., Ltd. 614 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 29 EXAMPLE OF SERIAL PROGRAMMING CONNECTION 29.1 Basic Configuration of Serial Programming Connection for Flash Memory Products MB95100B/AM Series Table 29.1-1 Pins Used for Fujitsu Standard Serial Onboard Programming Pin Function MOD, P13 Mode pin Description Setting MOD="H" and P13="L" sets serial write mode. X0, X1 Oscillation pins The CPU's internal operating clock during serial write mode is the oscillator frequency divided by two. Note that a 1MHz or higher oscillator frequency must be input when performing serial writing. RST Reset pin - P10/UI0 Serial data input pin Setting P10/UI0="L" specifies that serial write mode uses clock synchronous communications. As this low input is handled by the TTXD pin of the flash microcontroller programmer, you do not need to provide a pulldown for the P10/UI0 pin. P11/UO0 Serial data output pin - Serial clock input pin Setting P12/UCK0="H" sets serial write mode. As this "H" input is handled by the TCK pin of the flash microcontroller programmer, you do not need to provide a pull-up for the P12/ UCK0 pin. P12/UCK0 VCC On the 3V products, the write voltage (Vcc = 2.7V to 3.6V) is supplied from the user system. Power supply voltage supply pin On the 5V products, the write voltage (Vcc = 4.5V to 5.5V) is supplied from the user system. VSS GND pin Common to the GND of the flash microcontroller programmer. As the UI0, UO0, and UCK0 pins are also used by the user system, you need to provide a control circuit as shown in Figure 29.1-2 if you want to disconnect from the user circuit during serial programming. (The /TICS signal of the flash microcontroller programmer can be used to disconnect from the user circuit during serial writing. See the connection example in Figure 29.1-2 for details.) Figure 29.1-2 Control Circuit AF220/AF210/AF120/AF110 programming control pin AF220/AF210/AF120/AF110 /TICS pin Flash memory products programming control pin ≥ 4.7kΩ User circuit CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 615 CHAPTER 29 EXAMPLE OF SERIAL PROGRAMMING CONNECTION 29.1 Basic Configuration of Serial Programming Connection for Flash Memory Products ● Oscillation Clock Frequency and Serial Clock Input Frequency MB95100B/AM Series The permitted frequency for the input serial clock on the flash memory products is calculated from the following formula. Accordingly, modify the serial clock input frequency by setting the flash microcontroller programmer, according to the oscillation clock frequency used. Permitted frequency for the input serial clock = 0.125 ✕ Oscillation clock frequency Example: Oscillation clock frequency Maximum serial clock frequency that can be input to the microcontroller Maximum serial clock frequency that can be set on the AF220, AF210, AF120, and AF110 Maximum serial clock frequency that can be set on the AF200 at 4MHz 500kHz 500kHz 500kHz at 8MHz 1MHz 850kHz 500kHz at 10MHz 1.25MHz 1.25MHz 500kHz Table 29.1-2 System Configuration of the Flash Microcontroller Program (Yokogawa Digital Computer Co., Ltd.) Product type Function AF220/AC4P Model with built-in Ethernet interface /100V to 220V power adapter AF210/AC4P Standard model /100V to 220V power adapter Main unit AF120/AC4P Single-key model with built-in Ethernet interface /100V to 220V power adapter AF110/AC4P Single-key model /100V to 220V power adapter AZ221 Writer-dedicated RS232C cable for PC/AT AZ210 Standard target probe (a) Length: 1 m FF201 Fujitsu control module for F2MC-16LX flash microcontroller AZ290 Remote controller /P2 2Mbytes PC Card (Option) Flash memory capacity: up to 128 Kbytes /P4 4Mbytes PC Card (Option) Flash memory capacity: up to 512 Kbytes Contact: Yokogawa Digital Computer Co., Ltd. Tell: +81-042-333-6222 Note: Although the AF200 flash microcontroller programmer is an old model, this can be handled using the FF201 control module. The connection examples shown in the next chapter can also be used as example connections for serial writing. 616 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 29 EXAMPLE OF SERIAL PROGRAMMING CONNECTION 29.2 Example of Serial Programming Connection MB95100B/AM Series 29.2 Example of Serial Programming Connection Inputting MOD="H" from TAUX3 on the AF220, AF210, AF120, or AF110 to the mode pin, which is set to MOD="L" by the user system, sets the mode to serial write mode (serial write mode: MOD="H", P12="H", P13="L"). ■ Example of Serial Programming Connection Figure 29.2-1 shows an example connection for serial writing. The TTXD pin on the flash microcontroller programmer is connected to P10/UI0 and outputs low until data transfer starts. Setting P10/UI0=Low in this way specifies that serial write mode uses clock synchronous communications. Note that a user power supply is required for serial programming. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 617 CHAPTER 29 EXAMPLE OF SERIAL PROGRAMMING CONNECTION 29.2 Example of Serial Programming Connection MB95100B/AM Series Figure 29.2-1 Example of Serial Programming Connection for Flash Memory Products AF220/AF210/AF120/AF110 flash microcontroller programmer User system Connector DX10-28S Flash memory products P13 TAUX3 M OD (19) 4.7kΩ ≥ 4.7kΩ X0 X1 TTXD (13) P10/UI0 TRXD (27) P11/UO0 TCK (6) [1] P12/UCK 0 ≥ 4.7kΩ (10) /TICS User circuit /TRES ≥ 4.7kΩ RST (5) User circuit ≥ 4.7kΩ TVcc (2) Vcc User power supply GND (7,8, 14,15, 21,22, 1,28) Pins 3,4,9,11,12,16,17,18, 20,23,24,25,26 are Open. DX10-28S: Right angle type Vss Pin 14 Pin 1 DX10 -28S Pin 28 Pin 15 Connector (manufactured by Hirose Electric Co., Ltd.) pin alignment The circuit [1] shown in Figure 29.2-1 is required if you want to disconnect the UCK0 and RST pins from the user circuit during serial programming (The /TICS signal of the flash microcontroller programmer outputs low during serial writing and this disconnects the user circuit). If it is not necessary to disconnect from the user circuit, the connection to /TICS and circuit [1] are not required. See the connection example in Figure 29.3-1. The UI0 and UO0 pins are also used by the user system and the control circuit shown below like that used for the UCK0 pin is required if you want to disconnect from the user circuit during serial programming (The /TICS signal of the flash microcontroller programmer can be used to disconnect from the user circuit during serial writing. See the connection example in Figure 29.2-1 for details). 618 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 29 EXAMPLE OF SERIAL PROGRAMMING CONNECTION 29.2 Example of Serial Programming Connection MB95100B/AM Series Figure 29.2-2 Control Circuit AF220/AF210/AF120/AF110 programming control pin AF220/AF210/AF120/AF110 /TICS pin Flash memory products programming control pin ≥ 4.7kΩ User circuit Only connect to the AF220, AF210, AF120, or AF110 while the user power supply is turned off. Note: The pull-up and pull-down resistances in the above example connection are examples only and may be adjusted to suit your system.If variation in the input level to the MOD pin is possible due to noise or other factors, it is also recommended that you use a capacitor or other method to minimize noise. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 619 CHAPTER 29 EXAMPLE OF SERIAL PROGRAMMING CONNECTION 29.3 Example of Minimum Connection to Flash Microcontroller Programmer MB95100B/AM Series 29.3 Example of Minimum Connection to Flash Microcontroller Programmer The connection between MOD and the flash microcontroller programmer is not required if the pins are set as shown in Figure 29.3-1 during serial writing (serial write mode: MOD="H", P12="H", P13="L"). ■ Example of Minimum Connection to Flash Microcontroller Programmer Figure 29.3-1 shows an example of the minimum connection between the flash memory products and flash microcontroller programmer. The TTXD pin on the flash microcontroller programmer is connected to P10/UI0 and outputs low until data transfer starts. Setting P10/UI0=Low in this way specifies that serial write mode uses clock synchronous communications. Note that a user power supply is required for serial writing. 620 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 29 EXAMPLE OF SERIAL PROGRAMMING CONNECTION 29.3 Example of Minimum Connection to Flash Microcontroller Programmer Figure 29.3-1 Example of Minimum Connection between Flash Memory Products and Flash Microcontroller Programmer MB95100B/AM Series AF220/AF210/AF120/AF110 flash microcontroller User system programmer Flash memory products P13 4.7kΩ 4.7kΩ At serial reprogramming "H" M OD X0 X1 Connector DX10-28S 4.7kΩ RST /TRES (5) TTXD (13) P10/UI0 TRXD (27) P11/UO0 TCK (6) P12/UCK0 TVcc (2) (7,8, 14,15, 21,22, 1,28) GND Vcc User power supply Pin 14 Pins 3,4,9,10,11,12,16,17,18, 19, 20,23,24,25,26 are Open. Vss Pin 1 DX10-28S Pin 28 DX10-28S: Right angle type Pin 15 Connector (manufactured by Hirose Electric Co., Ltd.) pin alignment As the UI0, UO0, and UCK0 pins are also used by the user system, you need to provide a control circuit as shown below if you want to disconnect from the user circuit during serial writing (The /TICS signal of the flash microcontroller programmer can be used to disconnect from the user circuit during serial writing. See the connection example in Figure 29.2-1 for details). Figure 29.3-2 Control Circuit AF220/AF210/AF120/AF110 programming control pin AF220/AF210/AF120/AF110 /TICS pin Flash memory products programming control pin ≥ 4.7kΩ User circuit Only connect to the AF220, AF210, AF120, or AF110 while the user power supply is turned off. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 621 CHAPTER 29 EXAMPLE OF SERIAL PROGRAMMING CONNECTION 29.3 Example of Minimum Connection to Flash Microcontroller Programmer MB95100B/AM Series Note: The pull-up and pull-down resistances in the above example connection are examples only and may be adjusted to suit your system. If variation in the input level to the MOD pin is possible due to noise or other factors, it is also recommended that you use a capacitor or other method to minimize noise. 622 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 30 FRAM This chapter explains the overview of the FRAM. 30.1 Overview of the FRAM 30.2 How to Access to the FRAM Code: CM26-00117-1E CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 623 CHAPTER 30 FRAM 30.1 Overview of the FRAM 30.1 MB95100B/AM Series Overview of the FRAM This series has 2K bytes FRAM (Ferroelectric Random Access Memory). This section explains the overview of the FRAM. ■ Overview of the FRAM • FRAM is nonvolatile memory and it can maintain the data after turning off the power. • The data in FRAM can be overwritten. In addition, the data deletion operation is not required unlike FLASH memory or E2PROM. It enables to rewrite the data at higher-speed than FLASH memory or E2PROM. ■ Configuration of the Internal Connection FRAM is internally connected with F2MC-8FX CPU by I2C. Use the I2C for writing data to / reading data from FRAM. Figure 30.1-1 shows the connecting configuration. The I2C used for connecting FRAM is the same as external pin's one. Figure 30.1-1 Connecting Configuration of FRAM I2C Counter FRAM Address Latch 8 SDA Serial/Parallel Conversion SCL Control Logic Data Latch FRAM Pin SDA Pin SCL Notes: • SCL and SDA pins are not pulled-up internally. Be sure to prepare external pull-up resistor for accessing to internal FRAM by I2C. • When using FRAM, the function of general-purpose input/output P50 and P51 are unavailable. 624 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 30 FRAM 30.2 How to Access to the FRAM MB95100B/AM Series 30.2 How to Access to the FRAM Use the I2C bus to access to FRAM (writing/reading the data). This section explains the procedure for writing/reading the data to/from FRAM by using I2C bus. For detailed information about I2C bus, refer to "CHAPTER 24 I2C". ■ Memory Configuration of the FRAM The capacity of the FRAM is 2K bytes. The memory of the FRAM consists of 8 pages as shown in Table 30.2-1. The page capacity is 256 bytes. Table 30.2-1 Memory Configuration of the FRAM CM26-10112-4E Page number Address Capacity 0 00H to FFH 256 bytes 1 00H to FFH 256 bytes 2 00H to FFH 256 bytes 3 00H to FFH 256 bytes 4 00H to FFH 256 bytes 5 00H to FFH 256 bytes 6 00H to FFH 256 bytes 7 00H to FFH 256 bytes FUJITSU MICROELECTRONICS LIMITED 625 CHAPTER 30 FRAM 30.2 How to Access to the FRAM MB95100B/AM Series ■ Slave Address of the FRAM FRAM operates as one of the slave device that is connected with I2C. The I2C is used for writing the data to/reading data from FRAM. Table 30.2-2 shows the slave address of the FRAM used for data transfer by I2C. The value corresponding to the page to be accessed is set to page selection bit. Table 30.2-2 Slave Address Slave address (7bit) Slave ID 1 0 1 Page selection bit (3bit) 0 000B : page 0 001B : page 1 010B : page 2 011B : page 3 100B : page 4 101B : page 5 110B : page 6 111B : page 7 R/W bit (1bit) 0 : When writing (W) 1 : When reading (R) Note: When using the device connected I2C external pins (SCL and SDA), the device having the same slave address (1010000B to 1010111B) as the FRAM cannot be used. 626 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 30 FRAM 30.2 How to Access to the FRAM MB95100B/AM Series ■ Procedure for Data Writing to FRAM This section describes how to write the data to FRAM. Data writing to the FRAM is performed by data transfer using I2C. ● When writing single byte Figure 30.2-1 shows the data frame of the I2C when performing data transfer. Figure 30.2-2 shows the example of the data writing procedure by I2C. By using the procedure of Figure 30.2-2, data is written to the address specified by "Written Address". Figure 30.2-1 Data Frame of the I2C (When writing single byte) S Slave Address W A Written Address (8bit) A Written Data (8bit) A P S: Start condition, W: R/Wbit=0, P: Stop condition, A: ACK :Transfer from master to FRAM, :Transfer from FRAM to master Figure 30.2-2 Example of Data Writing by I2C (When writing single byte) Initial setting of I2C (Master mode, enable data ACK) Set written data Set slave address, R/Wbit(0) 2 Clear I C interrupt flag Generate start condition Transfer complete? NO Transfer complete? NO YES YES Generate stop condition Set written address 2 Clear I C interrupt flag Note Transfer complete? YES CM26-10112-4E NO :The processing in the figure is the transfer processing by I2C. For detailed information such as register setting, refer to "CHAPTER 24 I2C". FUJITSU MICROELECTRONICS LIMITED 627 CHAPTER 30 FRAM 30.2 How to Access to the FRAM MB95100B/AM Series ● When writing multiple bytes Writes the multiple bytes data in transfer order from the address specified by "Written address". When written address reaches to the last address (FFH) in a page, continuous data is written from the address 00H in the next page in transfer order. In addition, when the written address reaches to the last address (FFH) in the last page (page 7), continuous data is written from the address 00H in page 0 in transfer order. Figure 30.2-3 shows the data frame of the I2C when writing the multiple bytes. Figure 30.2-4 shows the example of data writing operation and Figure 30.2-5 shows the example of writing procedure by using I2C. Figure 30.2-3 Data Flame of the I2C (When writing multiple bytes) S Slave Address W A Written Address (8bit) Written Data (8bit) A A ... Written Data (8bit) A P S: Start condition, W: R/Wbit=0, P: Stop condition, A: ACK :Transfer from master to FRAM, :Transfer from FRAM to master Figure 30.2-4 is an operating example when page select bit of the slave address is set to page 7, write address is set to FEH, and write data is set to 4 bytes of "00H", "01H", "02H", and "03H". In this case, "00H" is written to the address FEH in page 7, then, "01H" is written to the address FFH. In here, address FFH in the page 7 becomes the last address in the last page. Therefore, the next data "02H" is written to address 00H in the page 0. And then, the last data "03H" is written to address 01H in the page 0. Figure 30.2-4 Example of Writing Operation (When writing multiple bytes) Written page : Page 7 Written address : FEH Written data : 00H, 01H, 02H, 03H [After writing] [Before writing] Page 7 . . 0 628 Address Data FFH FFH FEH . . FFH . . 00H . . FFH . . FFH . . FFH . . 02H FFH 01H 00H Page Address Data FFH 01H FEH . . 00H . . 00H . . FFH . . FFH . . FFH . . 02H FFH FFH 01H 03H FFH 00H 02H 7 . . 0 FUJITSU MICROELECTRONICS LIMITED To address 00H in page 0 CM26-10112-4E CHAPTER 30 FRAM 30.2 How to Access to the FRAM MB95100B/AM Series Figure 30.2-5 Example of Data Writing Procedure by I2C (When writing multiple bytes) 2 Initial setting of I C (Master mode, enable data ACK) Set written data Set slave address, R/Wbit(0) 2 Clear I C interrupt flag Generate start condition Transfer complete? NO Transfer complete? NO YES YES YES Set written address Remaining data? NO 2 Clear I C interrupt flag Generate stop condition Note NO Transfer complete? YES CM26-10112-4E :The processing in the figure is the transfer processing by I2C. For detailed information such as register setting, refer to "CHAPTER 24 I2C". FUJITSU MICROELECTRONICS LIMITED 629 CHAPTER 30 FRAM 30.2 How to Access to the FRAM MB95100B/AM Series ■ Procedure for Data Reading of FRAM This section explains how to read the data in FRAM. Data reading from the FRAM is performed by data transfer using I2C. ● When reading the current address and sequential address Reading the current address and sequential address means the method that data is read from current address of the FRAM without specifying the address where data is read. When reading the current address, 1-byte data in the current address is read. When reading the sequential address, multiple bytes data are read continuously from the current address. Current address shows the address following to the previously accessed address. For example, If previously accessed address is the address 00H in page 0, current address is the 01H in page 0. If previously accessed address is the last address FFH in a page, current address is the 00H in the next page. Lastly, if the previous accessed address is the last address FFH in the last page (page 7), current address is the 00H in page 0. The current address just after turning on the power is undefined. Figure 30.2-6 shows the data frame of the I2C when reading the current address. Figure 30.2-7 shows the data frame of the I2C when reading the sequential address. Figure 30.2-8 shows the example of the data reading procedure by I2C. In Figure 30.2-8, data is read from the current address in FRAM. If the address where data is read reaches to the last address FFH in a page, continuous data is read from the address 00H in next page in order. If the address where data is read reaches to the last address FFH in the last page (page 7), continuous data is read from the address 00H in page 0 in order. Figure 30.2-6 Data Flame of the I2C (When reading the current address) S Slave Address R A Read Data (8bit) N P S: Start condition, W: R/Wbit=1, P: Stop condition, A: ACK, N: NACK : Transfer from master to FRAM, : Transfer from FRAM to master Figure 30.2-7 Data Flame of the I2C (When reading the sequential address) S Slave Address R A Read Data (8bit) A ... Read Data (8bit) N P S: Start condition, W: R/Wbit=1, P: Stop condition, A: ACK, N: NACK : Transfer from master to FRAM, 630 : Transfer from FRAM to master FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 30 FRAM 30.2 How to Access to the FRAM MB95100B/AM Series Figure 30.2-8 Example of Data Reading Procedure from FRAM (When reading the current address or sequential address) 2 Initial setting of I C Read received data (Master mode, enable data ACK) 1-byte or more Set slave address, R/Wbit(1) Remaining data? 1-byte Generate start condition Set write data 2 Clear I C interrupt flag NO Transfer complete? YES Transfer complete? NO YES YES Remaining data? NO Note: The processing in the figure is the transfer processing by I2C. For detailed information such as register setting, refer to "CHAPTER 24 I2C". Generate stop condition ● When performing random access Random reading means that data is read by specifying the address. Figure 30.2-9 shows the data flame of the I2C when performing random reading. Figure 30.2-10 shows the example of reading operation by this procedure, Figure 30.2-11 shows the example of data reading procedure by I2C. In Figure 30.2-11, data is read from the specified address in order. If the address where data is read reaches to the last address FFH in a page, continuous data is read from the address 00H in next page in order. If the address where data is read reaches to the last address FFH in the last page (page 7), continuous data is read from the address 00H in page 0 in order. Figure 30.2-9 Data Flame of the I2C (When performing random reading) S Slave W A Address Read Address (8bit) A S Slave R A Address Read Data (8bit) A ... Read Data (8bit) N P S: Start condition, W: R/Wbit=0, R: R/Wbit=1, P: Stop condition, A: ACK, N: NACK :Transfer from master to FRAM, CM26-10112-4E :Transfer from FRAM to master FUJITSU MICROELECTRONICS LIMITED 631 CHAPTER 30 FRAM 30.2 How to Access to the FRAM MB95100B/AM Series Figure 30.2-10 is an operating example when page selection bit of the slave address is set to page 7, read address is set to FEH, read data is 4 bytes. First, data FEH is read from address "FEH". And then, the data FFH is read from address "FFH". In here, address FFH in the page 7 becomes the last address in the last page. Therefore, as the next data, the data "00H" is read from address "00H" in the page 0. And then, as the last 4th-byte data, "01H" is read from address 01H in the page 0. Figure 30.2-10 Operating Example of Data Reading (When performing random reading) Read address:FEH in page 7, The number of read data:4-byte [FRAM] Page 7 . . 0 632 Address Data Read Data The address of original data FFH FFH (1) FEH FEH in page 7 FEH . . FEH . . (2) FFH FFH in page 7 (3) 00H 00H in page 0 00H . . 00H . . (4) 01H 01H in page 0 FFH . . FFH . . 02H 02H 01H 01H 00H 00H FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E CHAPTER 30 FRAM 30.2 How to Access to the FRAM MB95100B/AM Series Figure 30.2-11 Example of Data Reading Procedure by I2C (When performing random reading) Set slave address, R/Wbit(1) Generate start condition repeatedly 2 Initial setting of I C (Master mode, enable data ACK) Transfer complete? Set slave address, R/Wbit(1) NO YES Read received data Generate start condition Remaining data? NO Transfer complete? 1-byte or more 1-byte YES Disable data ACK Set read address 2 2 Clear I C interrupt flag Clear I C interrupt flag Transfer complete? NO Transfer complete? YES YES YES Note :The processing in the figure is the transfer processing by I2C. For detailed information such as register setting, refer to "CHAPTER 24 I2C". CM26-10112-4E NO Remaining data? NO Generate stop condition FUJITSU MICROELECTRONICS LIMITED 633 CHAPTER 30 FRAM 30.2 How to Access to the FRAM MB95100B/AM Series Notes: • When using the device connected I2C external pins (SCL0 and SDA0), the device that has the same slave address (1010000B to 1010111B) as the FRAM cannot be used. • To access to FRAM by I2C, be sure to prepare external pull-up resistor (over 1.1 kΩ) to SCL and SDA pins. • When using FRAM, P50 and P51 are unavailable. • Even if the MCU is reset, FRAM is not reset. If MCU is reset while FRAM is being accessed and FRAM is outputting SDA="L", FRAM stays in the data transfer status (SDA="L") even after the reset. Therefore, due to the status of SDL="L", I2C bus cannot be used from the master (a state that start condition cannot be issued). In this case, use SCL0 pin as a general-purpose output port and perform SCL0 output several times (once to 8th) to complete the data transmission from FRAM. After completing data transfer, SDA changes to be "H" and I2C bus becomes usable (the state that start condition can be issued). The following shows an example of the detailed processing procedure. Reset MCU NO SDA="L" ? YES Set SCL pin as a general-purpose output port Output "L" from SCL pin for a certain period?*1 Output "H" from SCL pin for a certain period?*2 SDA="H"? NO YES I2C bus is usable *1: Set the output time to become more than "L" width of SCL clock mentioned in a data sheet. *2: Set the output time to become more than "H" width of SCL clock mentioned in a data sheet. 634 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E APPENDIX This appendix explains I/O map, interrupt list, memory map, pin status, instruction overview, mask option and writing to flash microcontroller using parallel writer. APPENDIX A I/O Map APPENDIX B Table of Interrupt Causes APPENDIX C Memory Map APPENDIX D Pin Status of MB95100B/AM series APPENDIX E Instruction Overview APPENDIX F Mask Option APPENDIX G Writing to Flash Microcontroller Using Parallel Writer CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 635 APPENDIX APPENDIX A I/O Map MB95100B/AM Series APPENDIX A I/O Map This section explains I/O map that is used on MB95100B/AM series. ■ I/O Map Table A-1 MB95100B/AM Series (1 / 6) Address Register abbreviation Register name R/W Initial value 0000H PDR0 Port 0 data register R/W 00000000B 0001H DDR0 Port 0 direction register R/W 00000000B 0002H PDR1 Port 1 data register R/W 00000000B 0003H DDR1 Port 1 direction register R/W 00000000B 0004H (Not available) 0005H WATR Oscillation stabilization wait time setting register R/W 11111111B 0006H PLLC PLL control register R/W 00000000B 0007H SYCC System clock control register R/W 1010x011B 0008H STBC Standby control register R/W 00000000B 0009H RSRR Reset cause register R xxxxxxxxB 000AH TBTC Time-base timer control register R/W 00000000B 000BH WPCR Watch prescaler control register R/W 00000000B 000CH WDTC Watchdog timer control register R/W 00000000B 000DH (Not available) 000EH PDR2 Port 2 data register R/W 00000000B 000FH DDR2 Port 2 direction register R/W 00000000B 0010H PDR3 Port 3 data register R/W 00000000B 0011H DDR3 Port 3 direction register R/W 00000000B 0012H PDR4 Port 4 data register R/W 00000000B 0013H DDR4 Port 4 direction register R/W 00000000B 0014H PDR5 Port 5 data register R/W 00000000B 0015H DDR5 Port 5 direction register R/W 00000000B 0016H PDR6 Port 6 data register R/W 00000000B 0017H DDR6 Port 6 direction register R/W 00000000B 0018H PDR7 Port 7 data register R/W 00000000B 0019H DDR7 Port 7 direction register R/W 00000000B 001AH PDR8 Port 8 data register R/W 00000000B 001BH DDR8 Port 8 direction register R/W 00000000B R/W 00000000B 001CH to 0025H 0026H 636 (Not available) PDRE Port E data register FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E APPENDIX APPENDIX A I/O Map MB95100B/AM Series Table A-1 MB95100B/AM Series (2 / 6) Address Register abbreviation Register name R/W Initial value 0027H DDRE Port E direction register R/W 00000000B 0028H (Not available) 0029H 002AH PDRG Port G data register R/W 00000000B 002BH DDRG Port G direction register R/W 00000000B 002CH (Not available) 002DH PUL1 Port 1 pull-up control register R/W 00000000B 002EH PUL2 Port 2 pull-up control register R/W 00000000B 002FH PUL3 Port 3 pull-up control register R/W 00000000B 0030H PUL4 Port 4 pull-up control register R/W 00000000B 0031H PUL5 Port 5 pull-up control register R/W 00000000B 0032H PUL7 Port 7 pull-up control register R/W 00000000B 0033H (Not available) 0034H PULE Port E pull-up control register R/W 00000000B 0035H PULG Port G pull-up control register R/W 00000000B 0036H T01CR1 8/16bit composite timer 01 control status register 1 ch.0 R/W 00000000B 0037H T00CR1 8/16bit composite timer 00 control status register 1 ch.0 R/W 00000000B 0038H T11CR1 8/16bit composite timer 11 control status register 1 ch.1 R/W 00000000B 0039H T10CR1 8/16bit composite timer 10 control status register 1 ch.1 R/W 00000000B 003AH PC01 8/16-bit PPG1 control register ch.0 R/W 00000000B 003BH PC00 8/16-bit PPG0 control register ch.0 R/W 00000000B 003CH PC11 8/16-bit PPG1 control register ch.1 R/W 00000000B 003DH PC10 8/16-bit PPG0 control register ch.1 R/W 00000000B 003EH TMCSRH0 16-bit reload timer control status register upper ch.0 R/W 00000000B 003FH TMCSRL0 16-bit reload timer control status register lower ch.0 R/W 00000000B 0040H (Not available) 0041H 0042H PCNTH0 16-bit PPG status control register upper ch.0 R/W 00000000B 0043H PCNTL0 16-bit PPG status control register lower ch.0 R/W 00000000B 0044H PCNTH1 16-bit PPG status control register upper ch.1 R/W 00000000B 0045H PCNTL1 16-bit PPG status control register lower ch.1 R/W 00000000B 0046H (Not available) 0047H 0048H EIC00 External interrupt circuit control register ch.0, ch.1 R/W 00000000B 0049H EIC10 External interrupt circuit control register ch.2, ch.3 R/W 00000000B 004AH EIC20 External interrupt circuit control register ch.4, ch.5 R/W 00000000B 004BH EIC30 External interrupt circuit control register ch.6, ch.7 R/W 00000000B 004CH EIC01 External interrupt circuit control register ch.8, ch.9 R/W 00000000B 004DH EIC11 External interrupt circuit control register ch.10, ch.11 R/W 00000000B CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 637 APPENDIX APPENDIX A I/O Map MB95100B/AM Series Table A-1 MB95100B/AM Series (3 / 6) Address Register abbreviation Register name 004EH R/W Initial value (Not available) 004FH 0050H SCR LIN-UART serial control register R/W 00000000B 0051H SMR LIN-UART serial mode register R/W 00000000B 0052H SSR LIN-UART serial status register R/W 00001000 0053H RDR/TDR LIN-UART reception/transmission data register R/W 00000000B 0054H ESCR LIN-UART extended status control register R/W 00000100B 0055H ECCR LIN-UART extended communication control register R/W 000000XXB 0056H SMC10 UART/SIO serial mode control register 1 ch.0 R/W 00000000B 0057H SMC20 UART/SIO serial mode control register 2 ch.0 R/W 00100000B 0058H SSR0 UART/SIO serial status and data register ch.0 R/W 00000001B 0059H TDR0 UART/SIO serial output data register ch.0 R/W 00000000B 005AH RDR0 UART/SIO serial input data register ch.0 R 00000000B 005BH to 005FH (Not available) 0060H IBCR00 I2C bus control register 0 ch.0 R/W 00000000B 0061H IBCR10 I2C bus control register 1 ch.0 R/W 00000000B 0062H IBSR0 I2C bus status register ch.0 R 00000000B 0063H IDDR0 I2C data register ch.0 R/W 00000000B 0064H IAAR0 I2C address register ch.0 R/W 00000000B I C clock control register ch.0 R/W 00000000B 0065H ICCR0 0066H to 006BH 2 (Not available) 006CH ADC1 A/D converter control register 1 R/W 00000000B 006DH ADC2 A/D converter control register 2 R/W 00000000B 006EH ADDH A/D converter data register upper R/W 00000000B 006FH ADDL A/D converter data register lower R/W 00000000B 0070H WCSR Watch counter control register R/W 00000000B 0071H (Not available) 0072H FSR Flash memory status register R/W 000x0000B 0073H SWRE0 Flash memory sector write control register 0 R/W 00000000B 0074H SWRE1 Flash memory sector write control register 1 R/W 00000000B 0075H (Not available) 0076H WREN Wild register address compare enable register R/W 00000000B 0077H WROR Wild register data test setting register R/W 00000000B 0078H -- Register bank pointer (RP), Mirror of direct bank pointer (DP) -- 0079H ILR0 Interrupt level setting register 0 R/W -11111111B 638 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E APPENDIX APPENDIX A I/O Map MB95100B/AM Series Table A-1 MB95100B/AM Series (4 / 6) Address Register abbreviation Register name R/W Initial value 007AH ILR1 Interrupt level setting register 1 R/W 11111111B 007BH ILR2 Interrupt level setting register 2 R/W 11111111B 007CH ILR3 Interrupt level setting register 3 R/W 11111111B 007DH ILR4 Interrupt level setting register 4 R/W 11111111B 007EH ILR5 Interrupt level setting register 5 R/W 11111111B 007FH (Not available) 0F80H WRARH0 Wild register address setup register upper ch.0 R/W 00000000B 0F81H WRARL0 Wild register address setup register lower ch.0 R/W 00000000B 0F82H WRDR0 Wild register data setup register ch.0 R/W 00000000B 0F83H WRARH1 Wild register address setup register upper ch.1 R/W 00000000B 0F84H WRARL1 Wild register address setup register lower ch.1 R/W 00000000B 0F85H WRDR1 Wild register data setup register ch.1 R/W 00000000B 0F86H WRARH2 Wild register address setup register upper ch.2 R/W 00000000B 0F87H WRARL2 Wild register address setup register lower ch.2 R/W 00000000B 0F88H WRDR2 Wild register data setup register ch.2 R/W 00000000B 0F89H to 0F91H (Not available) 0F92H T01CR0 8/16bit composite timer 01 control status register 0 ch.0 R/W 00000000B 0F93H T00CR0 8/16bit composite timer 00 control status register 0 ch.0 R/W 00000000B 0F94H T01DR 8/16bit composite timer 01 data register ch.0 R/W 00000000B 0F95H T00DR 8/16bit composite timer 00 data register ch.0 R/W 00000000B 0F96H TMCR0 8/16bit composite timer 00/01 timer mode control register ch.0 R/W 00000000B 0F97H T11CR0 8/16bit composite timer 11 control status register 0 ch.1 R/W 00000000B 0F98H T10CR0 8/16bit composite timer 10 control status register 0 ch.1 R/W 00000000B 0F99H T11DR 8/16bit composite timer 11 data register ch.1 R/W 00000000B 0F9AH T10DR 8/16bit composite timer 10 data register ch.1 R/W 00000000B 0F9BH TMCR1 8/16bit composite timer 10/11 timer mode control register ch.1 R/W 00000000B 0F9CH PPS01 8/16-bit PPG01 cycle setting buffer register ch.0 R/W 11111111B 0F9DH PPS00 8/16-bit PPG00 cycle setting buffer register ch.0 R/W 11111111B 0F9EH PDS01 8/16-bit PPG01 duty setting buffer register ch.0 R/W 11111111B 0F9FH PDS00 8/16-bit PPG00 duty setting buffer register ch.0 R/W 11111111B 0FA0H PPS11 8/16-bit PPG01 cycle setting buffer register ch.1 R/W 11111111B 0FA1H PPS10 8/16-bit PPG00 cycle setting buffer register ch.1 R/W 11111111B 0FA2H PDS11 8/16-bit PPG01 duty setting buffer register ch.1 R/W 11111111B 0FA3H PDS10 8/16-bit PPG00 duty setting buffer register ch.1 R/W 11111111B 0FA4H PPGS 8/16-bit PPG startup register R/W 00000000B 0FA5H REVC 8/16-bit PPG output reverse register R/W 00000000B CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 639 APPENDIX APPENDIX A I/O Map MB95100B/AM Series Table A-1 MB95100B/AM Series (5 / 6) Address 0FA6H 0FA7H Register abbreviation TMRH0/ TMRLRH0 TMRL0/ TMRLRL0 0FA8H Register name R/W Initial value 16-bit reload timer timer reload register upper ch.0 R/W 00000000B 16-bit reload timer timer reload register lower ch.0 R/W 00000000B (Not available) 0FA9H 0FAAH PDCRH0 16-bit PPG down counter register upper ch.0 R 00000000B 0FABH PDCRL0 16-bit PPG down counter register lower ch.0 R 00000000B 0FACH PCSRH0 16-bit PPG cycle setting buffer register upper ch.0 R/W 11111111B 0FADH PCSRL0 16-bit PPG cycle setting buffer register lower ch.0 R/W 11111111B 0FAEH PDUTH0 16-bit PPG duty setting buffer register upper ch.0 R/W 11111111B 0FAFH PDUTL0 16-bit PPG duty setting buffer register lower ch.0 R/W 11111111B 0FB0H PDCRH1 16-bit PPG down counter register upper ch.1 R 00000000B 0FB1H PDCRL1 16-bit PPG down counter register lower ch.1 R 00000000B 0FB2H PCSRH1 16-bit PPG cycle setting buffer register upper ch.1 R/W 11111111B 0FB3H PCSRL1 16-bit PPG cycle setting buffer register lower ch.1 R/W 11111111B 0FB4H PDUTH1 16-bit PPG duty setting buffer register upper ch.1 R/W 11111111B R/W 11111111B 0FB5H PDUTL1 0FB6H to 0FBBH 16-bit PPG duty setting buffer register lower ch.1 (Not available) 0FBCH BGR1 LIN-UART baud rate generator register 1 R/W 00000000B 0FBDH BGR0 LIN-UART baud rate generator register 0 R/W 00000000B 0FBEH PSSR0 UART/SIO prescaler select register ch.0 R/W 00000000B 0FBFH BRSR0 UART/SIO baud rate setting register ch.0 R/W 00000000B 0FC0H (Not available) 0FC1H 0FC2H AIDRH A/D input disable register upper R/W 00000000B 0FC3H AIDRL A/D input disable register lower R/W 00000000B R/W 00111111B 0FC4H to 0FE2H 0FE3H (Not available) WCDR 0FE4H, 0FE5H Watch counter data register (Not available) 0FE6H ILSR3 Input level selection register 3 R/W 00000000B 0FE7H ILSR2 Input level selection register 2 R/W 00000000B R/W 00011100B 0FE8H, 0FE9H 0FEAH 640 (Not available) CSVCR Clock supervisor control register FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E APPENDIX APPENDIX A I/O Map MB95100B/AM Series Table A-1 MB95100B/AM Series (6 / 6) Address Register abbreviation 0FEDH Register name R/W Initial value (Not available) 0FEEH ILSR Input level selection register R/W 00000000B 0FEFH WICR Interrupt pin control register R/W 01000000 0FF0H to 0FFFH CM26-10112-4E (Not available) FUJITSU MICROELECTRONICS LIMITED 641 APPENDIX APPENDIX B Table of Interrupt Causes MB95100B/AM Series APPENDIX B Table of Interrupt Causes This section describes the table of interrupt causes used in MB95100B/AM series. ■ Table of Interrupt Causes Refer to "CHAPTER 5 CPU" for interrupt operation. Table B-1 MB95100B/AM Series Address of vector table Interrupt request number Lower Bit name of interrupt level setting register The same level priority (Concurrence) Upper (Reset vector) - FFFEH FFFFH - High (Mode data) External interrupt ch.0 External interrupt ch.4 External interrupt ch.1 External interrupt ch.5 External interrupt ch.2 External interrupt ch.6 External interrupt ch.3 External interrupt ch.7 UART/SIO ch.0 8/16bit composite timer ch.0 (lower) 8/16bit composite timer ch.0 (upper) LIN-UART (reception) LIN-UART (transmission) 8/16-bit PPG ch.1 (lower) 8/16-bit PPG ch.1 (upper) 16-bit reload timer ch.0 8/16-bit PPG ch.0 (lower) 8/16-bit PPG ch.0 (upper) 8/16bit composite timer ch.1 (upper) 16-bit PPG ch.0 - - FFFDH - IRQ0 FFFAH FFFBH L00 [1:0] IRQ1 FFF8H FFF9H L01 [1:0] IRQ2 FFF6H FFF7H L02 [1:0] IRQ3 FFF4H FFF5H L03 [1:0] IRQ4 IRQ5 IRQ6 IRQ7 IRQ8 IRQ9 IRQ10 IRQ11 IRQ12 IRQ13 IRQ14 IRQ15 FFF2H FFF0H FFEEH FFECH FFEAH FFE8H FFE6H FFE4H FFE2H FFE0H FFDEH FFDCH FFF3H FFF1H FFEFH FFEDH FFEBH FFE9H FFE7H FFE5H FFE3H FFE1H FFDFH FFDDH L04 [1:0] L05 [1:0] L06 [1:0] L07 [1:0] L08 [1:0] L09 [1:0] L10 [1:0] L11 [1:0] L12 [1:0] L13 [1:0] L14 [1:0] L15 [1:0] IRQ16 FFDAH FFDBH L16 [1:0] IRQ17 IRQ18 IRQ19 IRQ20 FFD8H FFD6H FFD4H FFD2H FFD9H FFD7H FFD5H FFD3H L17 [1:0] L18 [1:0] L19 [1:0] L20 [1:0] IRQ21 FFD0H FFD1H L21 [1:0] 8/16bit composite timer ch.1 (lower) IRQ22 FFCEH FFCFH L22 [1:0] Flash memory IRQ23 FFCCH FFCDH L23 [1:0] Interrupt causes I2C ch.0 16-bit PPG ch.1 10-bit A/D Time-base timer Watch prescaler/counter External interrupt ch.8 External interrupt ch.9 External interrupt ch.10 External interrupt ch.11 642 FUJITSU MICROELECTRONICS LIMITED Low CM26-10112-4E APPENDIX APPENDIX C Memory Map MB95100B/AM Series APPENDIX C Memory Map This section shows the memory map of MB95100B/AM series. ■ Memory Map Figure C-1 Memory Map MB95FV100D-101 MB95FV100D-103 MB95F104AMS/F104ANS/F104AJS MB95F104AMW/F104ANW/F104AJW MB95F106AMS/F106ANS/F106AJS MB95F106AMW/F106ANW/F106AJW MB95F108BS/F108BW MB95D108BS/D108BW MB95F108AMS/F108ANS/F108AJS MB95F108AMW/F108ANW/F108AJW 0000H 0000H 0000H I/O 0080H I/O 0080H Registers 0200H 0100H 0200H 0100H 0F80H Registers RAM 2K bytes 0100H Registers 0200H 0880H Access barred 0F80H Extended I/O Address #2 1000H 0080H 0880H Access barred Extended I/O I/O RAM 2K bytes 0200H Address #1 0F80H 0000H 0080H Registers MB95107B I/O RAM RAM 3.75K bytes 0100H MB95108AM Access barred 0F80H Extended I/O 1000H Extended I/O 1000H Access barred Flash 60K bytes Flash 60K bytes* ROM 60K bytes 4000H ROM 48K bytes* FFFFH Flash ROM FFFFH FFFFH FFFFH : Flash memory : Mask ROM CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 643 APPENDIX APPENDIX C Memory Map MB95100B/AM Series Flash memory* RAM Address #1 Address #2 16K bytes 512 bytes 0280H C000H 32K bytes 1K byte 0480H 8000H 60K bytes 2K bytes 0880H 1000H MB95F104AMS/F104ANS/F104AJS MB95F104AMW/F104ANW/F104AJW MB95F106AMS/F106ANS/F106AJS MB95F106AMW/F106ANW/F106AJW MB95F108BS/F108BW MB95D108BS/D108BW/F108AJS MB95F108AMS/F108ANS/F108AJW MB95F108AMW/F108ANW *: MB95D108BS and MB95D108BW have the built-in FRAM. 644 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E APPENDIX APPENDIX D Pin Status of MB95100B/AM series MB95100B/AM Series APPENDIX D Pin Status of MB95100B/AM series he state of the pin of the MB95100B/AM series in each mode is shown in Table D-1. ■ Pin Status in Each Mode Table D-1 Pin Status in Each Mode (1 / 3) Pin name Normal operation X0 Oscillation circuit input X1 Stop mode Watch mode Sleep mode SPL=0 Oscillation circuit input SPL=1 SPL=0 SPL=1 While resetting Hi-Z Hi-Z Hi-Z Hi-Z Oscillation circuit input Oscillation Oscillation circuit output circuit input "H" "H" "H" "H" Oscillation circuit output MOD Mode input Mode input Mode input Mode input Mode input Mode input Mode input RST Reset input Reset input Reset input Reset input Reset input Reset input Reset input I/O port/ peripheral function I/O Hi-Z input interception (However, an external I/O port/ interrupt can peripheral be input when function I/O the external interrupt is enable. ) Hi-Z input interception (However, an external interrupt can be input when the external interrupt is enable. ) Hi-Z Input enable*1 (However, it doesn't function. ) I/O port/ peripheral function I/O Hi-Z (However, the setting of the I/O port/ pull-up is peripheral effective.) function I/O Input interception Hi-Z (However, the setting of the pull-up is effective.) Input interception Hi-Z Input enable*1 (However, it doesn't function. ) I/O port/ peripheral function I/O Hi-Z (However, the setting of the I/O port/ pull-up is peripheral effective.) function I/O Input interception Hi-Z (However, the setting of the pull-up is effective.) Input interception Hi-Z Input enable*1 (However, it doesn't function. ) P00/INT00 P01/INT01 P02/INT02 P03/INT03 P04/INT04 I/O port/ peripheral function I/O I/O port/ peripheral function I/O P05/INT05 P06/INT06 P07/INT07 P10/UI0 P11/UO0 I/O port/ P12/UCK0 peripheral P13/TRG0/ function I/O ADTG I/O port/ peripheral function I/O P14/PPG0 P20/PPG00 P21/PPG01 P22/TO00 P23/TO01 I/O port/ peripheral function I/O P24/EC0 CM26-10112-4E I/O port/ peripheral function I/O FUJITSU MICROELECTRONICS LIMITED 645 APPENDIX APPENDIX D Pin Status of MB95100B/AM series MB95100B/AM Series Table D-1 Pin Status in Each Mode (2 / 3) Pin name Normal operation Stop mode Watch mode While resetting Sleep mode SPL=0 SPL=1 SPL=0 SPL=1 P30/AN00 P31/AN01 I/O port/ Analog input Hi-Z (However, the setting of the I/O port/ pull-up is Analog input effective.) Input interception Hi-Z (However, the setting of the Hi-Z pull-up is Input disable*2 effective.) Input interception I/O port/ Analog input Hi-Z (However, the setting of the I/O port/ pull-up is Analog input effective.) Input interception Hi-Z (However, the setting of the Hi-Z pull-up is Input disable*2 effective.) Input interception Hi-Z (However, the setting of the pull-up is effective.) Input interception Hi-Z Input enable*1 (However, it doesn't function. ) Hi-Z Input interception Hi-Z Input disable*2 Hi-Z (However, the setting of the pull-up is effective.) Input interception Hi-Z Input enable*1 (However, it doesn't function. ) P32/AN02 P33/AN03 P34/AN04 I/O port/ I/O port/ Analog input Analog input P35/AN05 P36/AN06 P37/AN07 P40/AN08 P41/AN09 P42/AN10 I/O port/ I/O port/ Analog input Analog input P43/AN11 I/O port/ peripheral function I/O I/O port/ peripheral function I/O I/O port/ peripheral function I/O Hi-Z (However, the setting of the I/O port/ pull-up is peripheral effective.) function I/O Input interception I/O port/ peripheral function I/O I/O port/ peripheral function I/O I/O port/ peripheral function I/O Hi-Z Input interception I/O port/ peripheral function I/O Hi-Z (However, the setting of the I/O port/ pull-up is peripheral effective.) function I/O Input interception P50/SCL0 P51/SDA0 P52/PPG1 P53/TRG1 P60/PPG10 P61/PPG11 P62/TO10 P63/TO11 P64/EC1 I/O port/ peripheral function I/O P65/SCK P66/SOT P67/SIN P70/TO0 I/O port/ peripheral function I/O P71/TI0 646 I/O port/ peripheral function I/O FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E APPENDIX APPENDIX D Pin Status of MB95100B/AM series MB95100B/AM Series Table D-1 Pin Status in Each Mode (3 / 3) Pin name Normal operation Stop mode Watch mode Sleep mode SPL=0 SPL=1 SPL=0 SPL=1 P80 P81 P82 I/O port I/O port Hi-Z Input interception I/O port/ peripheral function I/O Hi-Z input interception (However, the setting of the pull-up is effective.) Input I/O port/ interception peripheral (However, an function I/O external interrupt can be input when the external interrupt is enable. ) Hi-Z input interception (However, the setting of the pull-up is effective.) Input Hi-Z interception *2 (However, an Input disable external interrupt can be input when the external interrupt is enable. ) I/O port Hi-Z Input interception Hi-Z Input interception P83 PE0/INT10 PE1/INT11 I/O port/ peripheral function I/O I/O port/ peripheral function I/O PE2/INT12 PE3/INT13 PG0/C*4 PG1/X0A*3 I/O port I/O port Hi-Z Input disable*2 (However, it doesn't function. ) I/O port I/O port Hi-Z Input interception While resetting I/O port PG2/X1A*3 Hi-Z Input enable*1 (However, it doesn't function. ) SPL: Pin status specification bit of standby control register (STBC: SPL) Hi-Z: High impedance *1: "Input enabled" means that the input function is in the enabled state. After reset, setting for internal pullup or output pin is recommended. *2:"Input disable" means direct input gate operation from the pin is disable status. *3:The status of these pins becomes the sub clock input and the sub clock output in dual clock products. *4:For the 5 V product, the C pin is used. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 647 APPENDIX APPENDIX E Instruction Overview APPENDIX E MB95100B/AM Series Instruction Overview This section explains the instructions used in F2MC-8FX. ■ Instruction Overview of F2MC-8FX In F2MC-8FX, there are 140 kinds of one byte machine instructions (as the map, 256 bytes), and the instruction code is composed of the instruction and the operand following it. Figure E-1 shows the correspondence of the instruction code and the instruction map. Figure E-1 Instruction Code and Instruction Map Instruction Code and Instruction Map 0 to 2 bytes are given depending on instructions. 1 byte Instruction code Machine instruction Operand [Instruction map] Lower 4 bits Higher 4 bits Operand • The instruction is classified into following four types; forwarding system, operation system, branch system and others. • There are various methods of addressing, and ten kinds of addressing can be selected by the selection and the operand specification of the instruction. • This provides with the bit operation instruction, and can operate the read modification write. • There is an instruction that directs special operation. 648 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E APPENDIX APPENDIX E Instruction Overview MB95100B/AM Series ■ Explanation of Display Sign of Instruction Table E-1 shows the explanation of the sign used by explaining the instruction code of this APPENDIX E. Table E-1 Explanation of Sign in Instruction Table Sign Signification dir Direct address (8-bit length) off Offset (8-bit length) ext Extended address (16-bit length) #vct Vector table number (3-bit length) #d8 Immediate data (8-bit length) #d16 Immediate data (16-bit length) dir:b Bit direct address (8-bit length: 3-bit length) rel Branch relative address (8-bit length) @ Register indirect (Example: @A, @IX, @EP) A Accumulator (Whether 8- bit length or 16- bit length is decided by the instruction used.) AH Upper 8-bit of accumulator (8-bit length) AL Lower 8-bit of accumulator (8-bit length) T Temporary accumulator (Whether 8- bit length or 16- bit length is decided by the instruction used.) TH Upper 8-bit of temporary accumulator (8-bit length) TL Lower 8-bit of temporary accumulator (8-bit length) IX Index register (16-bit length) EP Extra pointer (16-bit length) PC Program counter (16-bit length) SP Stack pointer (16-bit length) PS Program status (16-bit length) dr Either of accumulator or index register (16-bit length) CCR Condition code register (8-bit length) RP Register bank pointer (5-bit length) DP Direct bank pointer (3-bit length) Ri General-purpose register (8-bit length, i = 0 to 7) x This shows that x is immediate data. (Whether 8- bit length or 16- bit length is decided by the instruction used.) (x) This shows that contents of x are objects of the access. (Whether 8- bit length or 16- bit length is decided by the instruction used.) ((x)) This shows that the address that contents of x show is an object of the access. (Whether 8- bit length or 16- bit length is decided by the instruction used.) CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 649 APPENDIX APPENDIX E Instruction Overview MB95100B/AM Series ■ Explanation of Item in Instruction Table Table E-2 Explanation of Item in Instruction Table Item 650 Description MNEMONIC It shows the assembly description of the instruction. ~ It shows the number of cycles of the instruction. One instruction cycle is a machine cycle. Note: The number of cycles of the instruction can be delayed by 1 cycle by the immediately preceding instruction. Moreover, the number of cycles of the instruction might be extended in the access to the I/O area. # It shows the number of bytes for the instruction. Operation It shows the operations for the instruction. TL, TH, AH They show the change (auto forwarding from A to T) in the content when each TL, TH, and AH instruction is executed. The sign in the column indicates the followings respectively. • -: No change • dH: upper 8 bits of the data described in operation. • AL and AH: the contents become those of the immediately preceding instruction's AL and AH. • 00: Become 00 N, Z, V, C They show the instruction into which the corresponding flag is changed respectively. The sign in the column shows the followings respectively. • -: No change • +: Change • R: Become "0" • S: Become "1" OP CODE It shows the code of the instruction. When a pertinent instruction occupies two or more codes, it follows the following description rules. [Example] 48 to 4F: This shows 48, 49....4F. FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E APPENDIX APPENDIX E Instruction Overview MB95100B/AM Series E.1 Addressing F2MC-8FX has the following ten types of addressings: • Direct addressing • Extended addressing • Bit direct addressing • Index addressing • Pointer addressing • General-purpose register addressing • Immediate addressing • Vector addressing • Relative addressing • Inherent addressing ■ Explanation of Addressing ● Direct addressing This is used when accessing the direct area of "0000H" to "047FH" with addressing indicated "dir" in instruction table. In this addressing, when the operand address is "00H" to "7FH", it is accessed into "0000H" to "007FH". Moreover, when the operand address is "80H" to "FFH", the access can be mapped in "0080H" to "047FH" by setting of direct bank pointer DP. Figure E.1-1 shows an example. Figure E.1-1 Example of Direct Addressing MOV 92H, A DP 001B 0 1 1 2H A 4 5H 4 5H ● Extended addressing This is used when the area of the entire 64 K bytes is accessed by addressing shown "ext" in the instruction table. In this addressing, the first operand specifies one high rank byte of the address and the second operand specifies one subordinate position byte of the address. Figure E.1-2 shows an example. Figure E.1-2 Example of Extended Addressing MOVW A, 1 2 3 4H CM26-10112-4E 1 2 3 4H 5 6H 1 2 3 5H 7 8H A 5 6 7 8H FUJITSU MICROELECTRONICS LIMITED 651 APPENDIX APPENDIX E Instruction Overview MB95100B/AM Series ● Bit direct addressing This is used when accessing the direct area of "0000H" to "047FH" in bit unit with addressing indicated "dir:b" in instruction table. In this addressing, when the operand address is "00H" to "7FH", it is accessed into "0000H" to "007FH". Moreover, when the operand address is "80H" to "FFH", the access can be mapped in "0080H" to "047FH" by setting of direct bank pointer DP. The position of the bit in the specified address is specified by the values of the instruction code of three subordinate position bits. Figure E.1-3 shows an example. Figure E.1-3 Example of Bit Direct Addressing SETB 34H : 2 7 6 5 4 3 2 1 0 DP xxxB 0 0 3 4H XXXXX1XXB ● Index addressing This is used when the area of the entire 64 K bytes is accessed by addressing shown "@IX+off" in the instruction table. In this addressing, the content of the first operand is sign extended and added to IX (index register) to the resulting address. Figure E.1-4 shows an example. Figure E.1-4 Example of Index Addressing MOVW A, @IX+ 5AH IX 2 7 A 5H 2 7 F FH 1 2H 2 8 0 0H 3 4H A 1 2 3 4H ● Pointer addressing This is used when the area of the entire 64 K bytes is accessed by addressing shown "@EP" in the instruction table. In this addressing, the content of EP (extra pointer) is assumed to be an address. Figure E.1-5 shows an example. Figure E.1-5 Example of Pointer Addressing MOVW A, @EP EP 2 7 A 5H 2 7 A 5H 1 2H 2 7 A 6H 3 4H A 1 2 3 4H ● General-purpose register addressing This is used when accessing the register bank in general-purpose register area with the addressing shown "Ri" in instruction table. In this addressing, fix one high rank byte of the address to "01" and create one subordinate position byte from the contents of RP (register bank pointer) and three subordinate bits of the operation code to access to this address. Figure E.1-6 shows an example. 652 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E APPENDIX APPENDIX E Instruction Overview MB95100B/AM Series Figure E.1-6 Example of General-purpose Register Addressing MOV A, R 6 RP 0 1 0 1 0B 0 1 5 6H A A BH A BH ● Immediate addressing This is used when immediate data is needed in addressing shown "#d8" in the instruction table. In this addressing, the operand becomes immediate data as it is. The specification of byte/word depends on the operation code. Figure E.1-7 shows an example. Figure E.1-7 Example of Immediate Addressing MOV A, #56H A 5 6H ● Vector addressing This is used when branching to the subroutine address registered in the table with the addressing shown "#vct" in the instruction table. In this addressing, information on "#vct" is contained in the operation code, and the address of the table is created using the combinations shown in Table E.1-1. Table E.1-1 Vector Table Address Corresponding to "#vct" #vct Vector table address (jump destination high-ranking address: subordinate address) 0 FFC0H : FFC1H 1 FFC2H : FFC3H 2 FFC4H : FFC5H 3 FFC6H : FFC7H 4 FFC8H : FFC9H 5 FFCAH : FFCBH 6 FFCCH : FFCDH 7 FFCEH : FFCFH Figure E.1-8 shows an example. Figure E.1-8 Example of Vector Addressing CALLV #5 (Conversion) CM26-10112-4E F F C AH F EH F F C BH D CH PC F E D CH FUJITSU MICROELECTRONICS LIMITED 653 APPENDIX APPENDIX E Instruction Overview MB95100B/AM Series ● Relative addressing This is used when branching to the area in 128 bytes before and behind PC (program counter) with the addressing shown "rel" in the instruction table. In this addressing, add the content of the operand to PC with the sign and store the result in PC. Figure E.1-9 shows an example. Figure E.1-9 Example of Relative Addressing BNE FEH Old PC 9 A B CH 9ABCH + FFFEH New PC 9 A B AH In this example, by jumping to the address where the operation code of BNE is stored, it results in an infinite loop. ● Inherent addressing This is used when doing the operation decided by the operation code with the addressing that does not have the operand in the instruction table. In this addressing, the operation depends on each instruction. Figure E.1-10 shows an example. Figure E.1-10 Example of Inherent Addressing NOP Old PC 654 9 A B CH New PC 9 A B DH FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E APPENDIX APPENDIX E Instruction Overview MB95100B/AM Series E.2 Special Instruction This section explains special instructions other than the addressings. ■ Special Instruction ● JMP @A This instruction is to branch the content of A (accumulator) to PC (program counter) as an address. N pieces of the jump destination is arranged on the table, and one of the contents is selected and transferred to A. N branch processing can be done by executing this instruction. Figure E.2-1 shows a summary of the instruction. Figure E.2-1 JMP @A (Before executing) (After executing) A A 1 2 3 4H Old PC 1 2 3 4H X X X XH New PC 1 2 3 4H ● MOVW A, PC This instruction works as the opposite of "JMP @A". That is, it stores the content of PC to A. When you have executed this instruction in the main routine and set it to call a specific subroutine, you can make sure that the content of A is the specified value in the subroutine. Also, you can identify that the branch is not from the part that cannot be expected, and use it for the reckless driving judgment. Figure E.2-2 shows a summary of the instruction. Figure E.2-2 MOVW A, PC (Before executing) A Old PC X X X XH 1 2 3 3H (After executing) A 1 2 3 4H New PC 1 2 3 4H When this instruction is executed, the content of A reaches the same value as the address where the following instruction is stored, rather than the address where operation code of this instruction is stored. Therefore, in Figure E.2-2, the value "1234H" stored in A corresponds to the address where the following operation code of "MOVW A, PC" is stored. ● MULU A This instruction performs an unsigned multiplication of AL (lower 8-bit of the accumulator) and TL (lower 8-bit of the temporary accumulator), and stores the 16-bit result in A. The contents of T (temporary accumulator) do not change. The contents of AH (higher 8-bit of the accumulator) and TH (higher 8-bit of the temporary accumulator) before execution of the instruction are not used for the operation. The instruction does not change the flags, and therefore care must be taken when a branch may occur depending on the result of a multiplication. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 655 APPENDIX APPENDIX E Instruction Overview MB95100B/AM Series Figure E.2-3 shows a summary of the instruction. Figure E.2-3 MULU A (Before executing) (After executing) A 5 6 7 8H A 1 8 6 0H T 1 2 3 4H T 1 2 3 4H ● DIVU A This instruction divides the 16-bit value in T by the unsigned 16-bit value in A, and stores the 16-bit result and the 16-bit remainder in A and T, respectively. When the value in A before execution of instruction is "0", the Z flag becomes "1" to indicate zero-division is executed. The instruction does not change other flags, and therefore care must be taken when a branch may occur depending on the result of a division. Figure E.2-4 shows a summary of the instruction. Figure E.2-4 DIVU A (Before executing) (After executing) A 1 2 3 4H A 0 0 0 4H T 5 6 7 8H T 0 D A 8H ● XCHW A, PC This instruction swaps the contents of A and PC, resulting in a branch to the address contained in A before execution of the instruction. After the instruction is executed, A becomes the address that follows the address where the operation code of "XCHW A, PC" is stored. This instruction is effective especially when it is used in the main routine to specify a table for use in a subroutine. Figure E.2-5 shows a summary of the instruction. Figure E.2-5 XCHW A, PC (Before executing) (After executing) A 5 6 7 8H A 1 2 3 5H PC 1 2 3 4H PC 5 6 7 8H When this instruction is executed, the content of A reaches the same value as the address where the following instruction is stored, rather than the address where operation code of this instruction is stored. Therefore, in Figure E.2-5, the value "1235H" stored in A corresponds to the address where the following operation code of "XCHW A, PC" is stored. This is why "1235H" is stored instead of "1234H". Figure E.2-6 shows an assembler language example. 656 FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E APPENDIX APPENDIX E Instruction Overview MB95100B/AM Series Figure E.2-6 Example of Using "XCHW A, PC" (Subroutine) (Main routine) MOVW XCHW DB MOVW A, #PUTSUB A, PC PUTSUB 'PUT OUT DATA', EOL A, 1234H PTS1 XCHW A, EP PUSHW A MOV A, @EP INCW EP MOV IO, A CMP A, #EOL BNE PTS1 POPW A XCHW A, EP JMP @A Output table data here ● CALLV #vct This instruction is used to branch to a subroutine address stored in the vector table. The instruction saves the return address (contents of PC) in the location at the address contained in SP (stack pointer), and uses vector addressing to cause a branch to the address stored in the vector table. Because CALLV #vct is a 1byte instruction, the use of this instruction for frequently used subroutines can reduce the entire program size. Figure E.2-7 shows a summary of the instruction. Figure E.2-7 Example of Executing CALLV #3 (Before executing) (After executing) PC 5 6 7 8H PC F E D CH SP 1 2 3 4H (-2) SP 1 2 3 2H 1 2 3 2H X XH 1 2 3 2H 5 6H 1 2 3 3H X XH 1 2 3 3H 7 9H F F C 6H F EH F F C 6H F EH F F C 7H D CH F F C 7H D CH After the CALLV #vct instruction is executed, the contents of PC saved on the stack area are the address of the operation code of the next instruction, rather than the address of the operation code of CALLV #vct. Accordingly, Figure E.2-7 shows that the value saved in the stack (1232H and 1233H) is 5679H, which is the address of the operation code of the instruction that follows "CALLV #vct" (return address). CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 657 APPENDIX APPENDIX E Instruction Overview MB95100B/AM Series Table E.2-1 Vector Table 658 Vector table address Vector use (call instruction) Upper Lower CALLV #7 FFCEH FFCFH CALLV #6 FFCCH FFCDH CALLV #5 FFCAH FFCBH CALLV #4 FFC8H FFC9H CALLV #3 FFC6H FFC7H CALLV #2 FFC4H FFC5H CALLV #1 FFC2H FFC3H CALLV #0 FFC0H FFC1H FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E APPENDIX APPENDIX E Instruction Overview MB95100B/AM Series E.3 Bit Manipulation Instructions (SETB, CLRB) Some peripheral function registers include bits that are read differently than usual by a bit manipulation instruction. ■ Read-modify-write Operation By using these bit manipulation instructions, you can set only the specified bit in a register or RAM location to "1" (SETB) or clear to "0" (CLRB). However, as the CPU operates data in 8-bit units, the actual operation (read-modify-write operation) involves a sequence of steps: 8-bit data is read, the specified bit is changed, and the data is written back to the location at the original address. Table E.3-1 shows bus operation for bit manipulation instructions. Table E.3-1 Bus Operation for Bit Manipulation Instructions CODE MNEMONIC ~ Cycle Address bus Data bus RD WR RMW A0 to A7 CLRB dir:b 4 A8 to AF SETB dir:b 1 2 3 4 N+2 dir address dir address N+3 Next instruction Data Data Instruction after next 1 1 0 1 0 0 1 0 1 1 0 0 ■ Read Destination on the Execution of Bit Manipulation Instructions For some I/O ports and the interrupt request flag bits, the read destination differs between a normal read operation and a read-modify-write operation. ● I/O ports (during a bit manipulation) From some I/O ports, an I/O pin value is read during a normal read operation, while a port data register value is read during a bit manipulation. This prevents the other port data register bits from being changed accidentally, regardless of the I/O directions and states of the pins. ● Interrupt request flag bits (during a bit manipulation) An interrupt request flag bit functions as a flag bit indicating whether an interrupt request exists during a normal read operation, however, "1" is always read from this bit during a bit manipulation. This prevents the flag from being cleared accidentally by writing the value "0" to the interrupt request flag bit when manipulating another bit. CM26-10112-4E FUJITSU MICROELECTRONICS LIMITED 659 APPENDIX APPENDIX E Instruction Overview E.4 MB95100B/AM Series F2MC-8FX Instructions Table E.4-1 to Table E.4-4 show the instructions used by the F2MC-8FX. ■ Transfer Instructions Table E.4-1 Transfer Instructions No. ~ # N Z V C 1 2 3 4 5 MOV MOV MOV MOV MOV MNEMONIC dir, A @IX + off, A ext, A @EP, A Ri, A 3 3 4 2 2 2 2 3 1 1 (dir) ← (A) ( (IX) + off) ← (A) (ext) ← (A) ( (EP) ) ← (A) (Ri) ← (A) - - - - - - - 45 46 61 47 48 to 4F 6 7 8 9 10 MOV MOV MOV MOV MOV A, #d8 A, dir A, @IX + off A, ext A, @A 2 3 3 4 2 2 2 2 3 1 (A) ←d8 (A) ← (dir) (A) ← ( (IX) - off) (A) ← (ext) (A) ← ( (A) ) AL AL AL AL AL - - + + + + + + + + + + - - 04 05 06 60 92 11 12 13 14 15 MOV MOV MOV MOV MOV A, @EP A, Ri dir, #d8 @IX + off, #d8 @EP, #d8 2 2 4 4 3 1 1 3 3 2 (A) ← ( (EP) ) (A) ← (Ri) (dir) ←d8 ( (IX) + off) ←d8 ( (EP) ) ←d8 AL AL - - - + - + + - - - 07 08 to 0F 85 86 87 16 17 18 19 20 MOV MOVW MOVW MOVW MOVW Ri, #d8 dir, A @IX + off, A ext, A @EP, A 3 4 4 5 3 2 2 2 3 1 (Ri) ←d8 (dir) ← (AH) , (dir + 1) ← (AL) ( (IX) + off) ← (AH) , ( (IX) + off + 1) ← (AL) (ext) ← (AH) , (ext + 1) ← (AL) ( (EP) ) ← (AH) , ( (EP) + 1) ← (AL) - - - - - - - 88 to 8F D5 D6 D4 D7 21 22 23 24 25 MOVW MOVW MOVW MOVW MOVW EP, A A, #d16 A, dir A, @IX + off A, ext 1 3 4 4 5 1 3 2 2 3 (EP) ← (A) (A) ←d16 (AH) ← (dir) , (AL) ← (dir + 1) (AH) ← ( (IX) + off) , (AL) ← ( (IX) + off+1) (AH) ← (ext) , (AL) ← (ext + 1) AL AL AL AL AH AH AH AH dH dH dH dH + + + + + + + - - E3 E4 C5 C6 C4 26 27 28 29 30 MOVW MOVW MOVW MOVW MOVW A, @A A, @EP A, EP EP, #d16 IX, A 3 3 1 3 1 1 1 1 3 1 (AH) ← ( (A) ) , (AL) ← ( (A) + 1) (AH) ← ( (EP) ) , (AL) ← ( (EP) + 1) (A) ← (EP) (EP) ←d16 (IX) ← (A) AL AH dH AL AH dH - dH - + - + + - - - 93 C7 F3 E7 E2 31 32 33 34 35 MOVW MOVW MOVW MOV MOVW A, IX SP, A A, SP @A, T @A, T 1 1 1 2 3 1 1 1 1 1 (A) ← (IX) (SP) ← (A) (A) ← (SP) ( (A) ) ← (T) ( (A) ) ← (TH) , ( (A) + 1) ← (TL) - - dH dH - - - - - F2 E1 F1 82 83 36 37 38 39 40 MOVW MOVW MOVW MOVW SWAP IX, #d16 A, PS PS, A SP, #d16 3 1 1 3 1 3 1 1 3 1 (IX) ←d16 (A) ← (PS) (PS) ← (A) (SP) ←d16 (AH) ←→ (AL) - - dH AL + - + - - + - E6 70 71 E5 10 41 42 43 44 45 SETB CLRB XCH XCHW XCHW dir:b dir:b A, T A, T A, EP 4 4 1 1 1 2 2 1 1 1 (dir) : b←1 (dir) : b←0 (AL) ←→ (TL) (A) ←→ (T) (A) ←→ (EP) AL AL AH dH - dH - - - - A8 to AF A0 to A7 42 43 F7 46 XCHW 47 XCHW 48 MOVW A, IX A, SP A, PC 1 1 2 1 (A) ←→ (IX) 1 (A) ←→ (SP) 1 (A) ← (PC) - - - - F6 F5 F0 660 Operation TL TH AH - - FUJITSU MICROELECTRONICS LIMITED dH dH dH OPCODE CM26-10112-4E APPENDIX APPENDIX E Instruction Overview MB95100B/AM Series Note: In automatic transfer to T during byte transfer to A, AL is transferred to TL. If an instruction has plural operands, they are saved in the order indicated by MNEMONIC. ■ Arithmetic Operation Instructions Table E.4-2 Arithmetic Operation Instruction (1 / 2) No. ~ # N Z V C 1 2 3 4 5 ADDC ADDC ADDC ADDC ADDC MNEMONIC A, Ri A, #d8 A, dir A, @IX + off A, @EP 2 2 3 3 2 1 2 2 2 1 (A) ← (A) + (Ri) + C (A) ← (A) + d8 + C (A) ← (A) + (dir) + C (A) ← (A) + ( (IX) + off) + C (A) ← (A) + ( (EP) ) + C - - - + + + + + + + + + + + + + + + + + + + + 28 to 2F 24 25 26 27 6 7 8 9 10 ADDCW ADDC SUBC SUBC SUBC A A A, Ri A, #d8 A, dir 1 1 2 2 3 1 1 1 2 2 (A) ← (A) + (T) + C (AL) ← (AL) + (TL) + C (A) ← (A) - (Ri) - C (A) ← (A) - d8 - C (A) ← (A) - (dir) - C - - dH - + + + + + + + + + + + + + + + + + + + + 23 22 38 to 3F 34 35 11 12 13 14 15 SUBC SUBC SUBCW SUBC INC A, @IX + off A, @EP A A Ri 3 2 1 1 3 2 1 1 1 1 (A) ← (A) - ( (IX) + off) - C (A) ← (A) - ( (EP) ) - C (A) ← (T) - (A) - C (AL) ← (TL) - (AL) - C (Ri) ← (Ri) + 1 - - dH - + + + + + + + + + + + + + + + + + + + - 36 37 33 32 C8 to CF 16 17 18 19 20 INCW INCW INCW DEC DECW EP IX A Ri EP 1 1 1 3 1 1 1 1 1 1 (EP) ← (EP) + 1 (IX) ← (IX) + 1 (A) ← (A) + 1 (Ri) ← (Ri) - 1 (EP) ← (EP) - 1 - - dH - + + - + + - + - - C3 C2 C0 D8 to DF D3 21 22 23 24 25 DECW DECW MULU DIVU ANDW IX A A A A 1 1 8 17 1 1 1 1 1 1 (IX) ← (IX) - 1 (A) ← (A) - 1 (A) ← (AL) × (TL) (A) ← (T) / (A) , MOD→ (T) (A) ← (A) (T) - dH - dH dL dH dH - dH + + + + + R - D2 D0 01 11 63 26 27 28 29 30 ORW XORW CMP CMPW RORC A A A A A 1 1 1 1 1 1 (A) ← (A) (T) 1 (A) ← (A) (T) 1 (TL) - (AL) 1 (T) - (A) C→ A 1 + + + + + + + + + + R R + + - + + + 73 53 12 13 0302 31 ROLCA 1 1 32 33 34 35 CMP CMP CMP CMP A, #d8 A, dir A, @EP A, @IX + off 2 3 2 3 2 2 1 2 36 37 38 39 40 CMP DAA DAS XOR XOR A, Ri A A, #d8 2 1 1 1 2 1 1 1 1 2 41 42 43 44 45 XOR XOR XOR XOR AND A, dir A, @EP A, @IX + off A, Ri A 3 2 3 2 1 2 1 2 1 1 CM26-10112-4E Operation C← A TL TH AH - - dH dH - OPCODE - - - + + - + - - - + + + + + + + + + + + + + + + + 14 15 17 16 (A) - (Ri) decimal adjust for addition decimal adjust for subtraction (A) ← (AL) (TL) (A) ← (AL) d8 - - - + + + + + + + + + + + + + R R + + + - 18 to 1F 84 94 52 54 (A) ← (AL) (A) ← (AL) (A) ← (AL) (A) ← (AL) (A) ← (AL) - - - + + + + + + + + + + R R R R R - 55 57 56 58 to 5F 62 (A) - d8 (A) - (dir) (A) - ( (EP) ) (A) - ( (IX) + off) (dir) ( (EP) ) ( (IX) + off) (Ri) (TL) FUJITSU MICROELECTRONICS LIMITED 661 APPENDIX APPENDIX E Instruction Overview MB95100B/AM Series Table E.4-2 Arithmetic Operation Instruction (2 / 2) No. ~ # N Z V C 46 47 48 49 50 AND AND AND AND AND MNEMONIC A, #d8 A, dir A, @EP A, @IX + off A, Ri 2 3 2 3 2 2 2 1 2 1 (A) ← (AL) (A) ← (AL) (A) ← (AL) (A) ← (AL) (A) ← (AL) d8 (dir) ( (EP) ) ( (IX) + off) (Ri) - - - + + + + + + + + + + R R R R R - 64 65 67 66 68 to 6F 51 52 53 54 55 OR OR OR OR OR A A, #d8 A, dir A, @EP A, @IX + off 1 2 3 2 3 1 2 2 1 2 (A) ← (AL) (A) ← (AL) (A) ← (AL) (A) ← (AL) (A) ← (AL) (TL) d8 (dir) ( (EP) ) ( (IX) + off) - - - + + + + + + + + + + R R R R R - 72 74 75 77 76 56 57 58 59 60 OR CMP CMP CMP CMP A, Ri dir, #d8 @EP, #d8 @IX + off, #d8 Ri, #d8 2 4 3 4 3 1 (A) ← (AL) (Ri) 3 (dir) - d8 2 ( (EP) ) - d8 3 ( (IX) + off) - d8 2 (Ri) - d8 - - - + + + + + + + + + + R + + + + + + + + 78 to 7F 95 97 96 98 to 9F SP SP 1 1 1 (SP) ← (SP) + 1 1 (SP) ← (SP) - 1 - - - - - - - C1 D1 61 INCW 62 DECW Operation TL TH AH OPCODE ■ Branch Instructions Table E.4-3 Branch Instructions No. ~ # N Z V C 1 BZ/BEQ BZ/BEQ 2 BNZ/BNE BNZ/BNE 3 BC/BLO BC/BLO 4 BNC/BHS BNC/BHS 5 BN BN 6 BP BP 7 BLT BLT 8 BGE BGE 9 BBC 10 BBS MNEMONIC rel(at branch) rel(at no branch) rel(at branch) rel(at no branch) rel(at branch) rel(at no branch) rel(at branch) rel(at no branch) rel(at branch) rel(at no branch) rel(at branch) rel(at no branch) rel(at branch) rel(at no branch) rel(at branch) rel(at no branch) dir : b, rel dir : b, rel 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 5 5 2 ifZ = 1thenPC←PC + rel - - - - - - - FD 2 ifZ = 0thenPC←PC + rel - - - - - - - FC 2 ifC = 1thenPC←PC + rel - - - - - - - F9 2 ifC = 0thenPC←PC + rel - - - - - - - F8 2 ifN = 1thenPC←PC + rel - - - - - - - FB 2 ifN = 0thenPC←PC + rel - - - - - - - FA 2 ifV N = 1thenPC←PC + rel - - - - - - - FF 2 ifV N = 0thenPC←PC + rel - - - - - - - FE 3 3 if (dir : b) = 0thenPC←PC + rel if (dir : b) = 1thenPC←PC + rel - - - - + + - - B0 to B7 B8 to BF 11 12 13 14 15 @A ext #vct ext A, PC 3 4 7 6 3 1 3 1 3 1 (PC) ← (A) (PC) ← ext vector call subroutine call (PC) ← (A) , (A) ← (PC) + 1 - - dH - - - - E0 21 E8 to EF 31 F4 6 8 1 1 return from subroutine return from interrupt - - - - restore - 20 30 JMP JMP CALLV CALL XCHW 16 RET 17 RETI Operation TL TH AH OPCODE ■ Other Instructions Table E.4-4 Other Instructions No. MNEMONIC 1 2 3 4 5 PUSHW POPW PUSHW POPW NOP 6 7 8 9 CLRC SETC CLRI SETI 662 A A IX IX ~ # N Z V C 4 3 4 3 1 1 1 1 1 1 ((SP))←(A), (SP)←(SP) - 2 (A)←((SP)), (SP)←(SP) + 2 ((SP))←(IX), (SP)←(SP) - 2 (IX)←((SP)), (SP)←(SP) + 2 No operation Operation TL - TH AH - dH - - - - - 40 50 41 51 00 1 1 1 1 1 1 1 1 (C)←0 (C)←1 (I)←0 (I)←1 - - - - - - R S - 81 91 80 90 FUJITSU MICROELECTRONICS LIMITED OPCODE CM26-10112-4E CM26-10112-4E A A A A addr16 A, dir A A CMP CMP A, dir A, #d8 CMP CMPW A A ADDC A, dir ADDC A, #d8 ADDC ADDCW ADDC A SUBC A, dir SUBC A, #d8 SUBC SUBCW A addr16 SUBC MOV MOV IX A, T dir, A A, T XCHW XCH A A A IX A XOR XOR A, dir A, #d8 XOR XORW XOR POPW POPW A AND AND A, dir A, #d8 AND A ext, A ANDW AND MOV A, ext MOV OR OR OR A, dir A, #d8 A A PS, A ORW OR MOVW A, PS MOVW MOV dir, #d8 MOV DAA @A, T MOVW @A, T MOV CLRC CLRI CMP dir, #d8 CMP DAS A, @A MOVW A, @A MOV SETC SETI CLRB dir : 5 CLRB dir : 4 CLRB dir : 3 CLRB dir : 2 CLRB dir : 1 CLRB dir : 0 CLRB BBC dir : 5, rel BBC dir : 4, rel BBC dir : 3, rel BBC dir : 2, rel BBC dir : 1, rel BBC dir : 0, rel BBC EP IX SP A MOVW A, dir MOVW A, ext MOVW INCW INCW INCW INCW EP IX SP A MOVW dir, A MOVW ext, A MOVW DECW DECW DECW DECW @A MOVW SP, #d16 MOVW A, #d16 MOVW EP, A MOVW IX, A MOVW SP, A MOVW JMP XCHW A, SP XCHW A, PC XCHW A, EP MOVW A, IX MOVW A, SP MOVW A, PC MOVW FUJITSU MICROELECTRONICS LIMITED MOV MOV MOV MOV MOV A, R7 A, R6 A, R5 A, R4 A, R3 A, R2 CMP CMP CMP CMP CMP A, R7 A, R6 A, R5 A, R4 A, R3 A, R2 A, R7 ADDC A, R6 ADDC A, R5 ADDC A, R4 ADDC A, R3 ADDC A, R2 A, R7 SUBC A, R6 SUBC A, R5 SUBC A, R4 SUBC A, R3 SUBC A, R2 MOV MOV MOV MOV MOV R7, A R6, A R5, A R4, A R3, A R2, A XOR XOR XOR XOR XOR A, R7 A, R6 A, R5 A, R4 A, R3 A, R2 AND AND AND AND AND A, R7 A, R6 A, R5 A, R4 A, R3 A, R2 A, @IX+d AND A, @IX+d XOR @IX+d, A MOV A, @IX+d SUBC A, @IX+d ADDC A, @IX+d CMP A, @IX+d MOV OR OR OR OR OR OR A, R7 A, R6 A, R5 A, R4 A, R3 A, R2 R7, #d8 MOV R6, #d8 MOV R5, #d8 MOV R4, #d8 MOV R3, #d8 MOV R2, #d8 R7, #d8 CMP R6, #d8 CMP R5, #d8 CMP R4, #d8 CMP R3, #d8 CMP R2, #d8 SETB SETB SETB SETB SETB dir : 7 dir : 6 dir : 5 dir : 4 dir : 3 dir : 2 dir : 7, rel BBS dir : 6, rel BBS dir : 5, rel BBS dir : 4, rel BBS dir : 3, rel BBS dir : 2, rel INC INC INC INC INC R7 R6 R5 R4 R3 R2 DEC DEC DEC DEC DEC R7 R6 R5 R4 R3 R2 CALLV CALLV CALLV CALLV CALLV #7 #6 #5 #4 #3 #2 BLT BGE BZ BNZ BN rel rel rel rel rel rel A, IX IX, #d16 dir : 6 dir : 6, rel A, @IX+d @IX+d, A A, @IX+d @IX+d,#d8 @IX+d,#d8 XCHW MOVW MOVW MOVW BBC CLRB CMP MOV A, EP EP, #d16 @EP, A A, @EP dir : 7 dir : 7, rel A, @EP @EP, #d8 @EP, #d8 A, @EP A, @EP @EP, A A, @EP A, @EP A, @EP A, @EP BNC CALLV DEC INC BBS SETB CMP MOV OR AND XOR MOV SUBC ADDC CMP MOV rel #0 R0 R0 dir : 0 dir : 0, rel R0, #d8 R0, #d8 A, R0 A, R0 A, R0 R0, A A, R0 A, R0 A, R0 A, R0 BC CALLV DEC INC BBS SETB CMP MOV OR AND XOR MOV SUBC ADDC CMP MOV rel #1 R1 R1 dir : 1 dir : 1, rel R1, #d8 R1, #d8 A, R1 A, R1 A, R1 R1, A A, R1 A, R1 A, R1 A, R1 BP CALLV DEC INC BBS SETB CMP MOV OR AND XOR MOV SUBC ADDC CMP MOV MOV MOV A, #d8 MOV RORC CMP PUSHW CALL JMP DIVU MULU ROLC PUSHW RETI RET SWAP E.5 NOP MB95100B/AM Series APPENDIX APPENDIX E Instruction Overview Instruction Map Table E.5-1 shows the instruction map of F2MC-8FX. ■ Instruction Map Table E.5-1 Instruction Map of F2MC-8FX 663 APPENDIX APPENDIX F Mask Option APPENDIX F MB95100B/AM Series Mask Option The mask option list of the MB95100B/AM series is shown in Table F-1, Table F-2. ■ Mask Option List Table F-1 Mask Option List of MB95100B series Part number MB95107B MB95F108BS MB95D108BS MB95F108BW MB95D108BW MB95FV100D-101 Specifying procedure Specify when ordering MASK Setting disabled Setting disabled Setting disabled No. Clock mode select *1 1 • Single-system clock mode • Dual-system clock mode Selectable FRAM*1 2 • With FRAM • Without FRAM Specified by part Specified by part number number Single-system clock Dual-system clock mode mode Changing by the switch on MCU board Specified by part number None Low voltage detection reset*2 3 • With low voltage detection reset • Without low voltage detection reset None None None None Clock supervisor *2 4 • With clock supervisor • Without clock supervisor None None None None Selectable Selection of oscillation 1 : ( 22 - 2) /FCH Fixed to oscillation Fixed to oscillation Fixed to oscillation stabilization wait time 12 stabilization wait stabilization wait 5 • Selectable the initial value of main 2 : ( 2 - 2) /FCH stabilization wait clock oscillation stabilization wait 3 : ( 213 - 2) /F time of (214-2) /FCH time of (214- 2) /FCH time of (214- 2) /FCH CH time 14 4 : ( 2 - 2) /FCH FCH: Main clock *1 : Refer to table below about clock mode select and load of FRAM. *2 : Low voltage detection reset and clock supervisor are options of 5V products. Part number MB95107B MB95F108BS MB95D108BS MB95F108BW MB95D108BW MB95FV100D-101 664 Clock mode select Load of FRAM Single-system Dual-system None None None Yes None Yes None None Single-system Dual-system Single-system Dual-system FUJITSU MICROELECTRONICS LIMITED CM26-10112-4E APPENDIX APPENDIX F Mask Option MB95100B/AM Series Table F-2 Mask Option List of MB95100AM series Part number MB95108AM MB95F104AMS MB95F104ANS MB95F104AJS MB95F106AMS MB95F106ANS MB95F106AJS MB95F108AMS MB95F108ANS MB95F108AJS Specifying procedure Specify when ordering MASK Setting disabled Clock mode select Si