32-Bit TX System RISC TX39 Family TMPR3911/3912 MIPS16, application Specific Extensions and R3000A are a trademark of MIPS Technologies, Inc. The information contained herein is subject to change without notice. The information contained herein is presented only as a guide for the applications of our products. No responsibility is assumed by TOSHIBA for any infringements of patents or other rights of the third parties which may result from its use. No license is granted by implication or otherwise under any patent or patent rights of TOSHIBA or others. The products described in this document contain components made in the United States and subject to export control of the U.S. authorities. Diversion contrary to the U.S. law is prohibited. TOSHIBA is continually working to improve the quality and reliability of its products. Nevertheless, semiconductor devices in general can malfunction or fail due to their inherent electrical sensitivity and vulnerability to physical stress. It is the responsibility of the buyer, when utilizing TOSHIBA products, to comply with the standards of safety in making a safe design for the entire system, and to avoid situations in which a malfunction or failure of such TOSHIBA products could cause loss of human life, bodily injury or damage to property. In developing your designs, please ensure that TOSHIBA products are used within specified operating ranges as set forth in the most recent TOSHIBA products specifications. Also, please keep in mind the precautions and conditions set forth in the “Handling Guide for Semiconductor Devices,” or “TOSHIBA Semiconductor Reliability Handbook” etc.. The Toshiba products listed in this document are intended for usage in general electronics applications ( computer, personal equipment, office equipment, measuring equipment, industrial robotics, domestic appliances, etc.). These Toshiba products are neither intended nor warranted for usage in equipment that requires extraordinarily high quality and/or reliability or a malfunction or failure of which may cause loss of human life or bodily injury (“Unintended Usage”). Unintended Usage include atomic energy control instruments, airplane or spaceship instruments, transportation instruments, traffic signal instruments, combustion control instruments, medical instruments, all types of safety devices, etc.. Unintended Usage of Toshiba products listed in this document shall be made at the customer’s own risk. The products described in this document may include products subject to the foreign exchange and foreign trade laws. © 2003 TOSHIBA CORPORATION All Rights Reserved Preface Thank you for choosing Toshiba semiconductor products. This is the 2000 edition of the databook for the TMPR3911/12 32-bit TX System RISC microprocessor. This databook is designed to be easily understood by engineers who are designing the Toshiba TMPR3911/12 RISC microprocessor into their products for the first time. No special knowledge of this device is assumed – the contents includes basic information about the microprocessor and the application fields in which it is used. In addition, complete technical specifications are given, facilitating incorporation of the device into any given user application. Toshiba are continually updating technical publications. Any comments and suggestions regarding any Toshiba document are most welcome and will be taken into account when subsequent editions are prepared. To receive updates to the information in this databook, or for additional information about the products described in it, please contact your nearest Toshiba office or authorized Toshiba dealer. August 2003 Table of Contents Table of Contents Handling Precautions TMPR3911/12 1. TMPR3911/12 Overview ........................................................................................................................................1-1 1.1 Overview ........................................................................................................................................................1-1 1.2 References ....................................................................................................................................................1-11 2. Pin Descriptions ......................................................................................................................................................2-1 2.1 Overview ........................................................................................................................................................2-1 2.2 Pins .................................................................................................................................................................2-2 2.2.1 Memory Pins ...........................................................................................................................................2-2 2.2.2 Bus Arbitration Pins ................................................................................................................................2-6 2.2.3 Clock Pins ...............................................................................................................................................2-6 2.2.4 CHI Pins ..................................................................................................................................................2-7 2.2.5 IO Pins.....................................................................................................................................................2-7 2.2.6 Magicbus Pins .........................................................................................................................................2-8 2.2.7 Reset Pins ................................................................................................................................................2-8 2.2.8 Power Module Pins .................................................................................................................................2-9 2.2.9 SIB Pins.................................................................................................................................................2-10 2.2.10 SPI Pins .................................................................................................................................................2-11 2.2.11 UART and IR Pins.................................................................................................................................2-11 2.2.12 Video Pins .............................................................................................................................................2-12 2.2.13 Endian Pin .............................................................................................................................................2-13 2.2.14 Test Pins ................................................................................................................................................2-13 2.2.15 Spare Pins..............................................................................................................................................2-13 2.2.16 Power Supply Pins ................................................................................................................................2-13 2.3 Pin Mode ......................................................................................................................................................2-14 2.4 Pin Assignment.............................................................................................................................................2-20 2.4.1 Pin assignment (in case of TMPR3912AU-92 and TMPR3912XB-92)................................................2-20 2.4.2 Pin Assignment (in case of TMPR3911BU) .........................................................................................2-23 2.4.3 Pin Assignment (in case of TMPR3911BXB).......................................................................................2-25 2.4.4 TMPR3911BU Pin Assignment ............................................................................................................2-27 2.4.5 TMPR3912AU-92.................................................................................................................................2-28 2.4.6 TMPR3911BXB Ball Assignment ........................................................................................................2-29 2.4.7 TMPR3912XB-92 .................................................................................................................................2-30 3. CPU Module............................................................................................................................................................3-1 3.1 Overview ........................................................................................................................................................3-1 3.2 CPU Core........................................................................................................................................................3-2 3.2.1 3.3 Description ..............................................................................................................................................3-2 CPU Interface .................................................................................................................................................3-3 3.3.1 Block Diagram ........................................................................................................................................3-3 3.3.2 Write Buffer ............................................................................................................................................3-4 3.3.3 Interface Controller .................................................................................................................................3-4 3.3.4 DMA Arbitration.....................................................................................................................................3-6 3.3.5 CPU Stop Mode ......................................................................................................................................3-6 3.3.6 TLB .........................................................................................................................................................3-7 4. BIU Module.............................................................................................................................................................4-1 i Table of Contents 4.1 4.1.1 4.2 Overview ........................................................................................................................................................4-1 Block Diagram ........................................................................................................................................4-2 Address Decoder.............................................................................................................................................4-3 4.2.1 System Address Map...............................................................................................................................4-3 4.2.2 Address Generation .................................................................................................................................4-5 4.2.3 Address Re-Mapper Logic ......................................................................................................................4-6 4.3 Chip Select Controller ....................................................................................................................................4-7 4.3.1 Description ..............................................................................................................................................4-7 4.3.2 Access Mapping ......................................................................................................................................4-8 4.3.3 CS3-CS0 and MCS3-MCS0 Timing .....................................................................................................4-17 4.4.4 Card 2 and Card 1 .................................................................................................................................4-20 4.4.5 4.4 CS0 Size Configuration.........................................................................................................................4-23 DRAM and SDRAM Controller ...................................................................................................................4-24 4.4.1 Memory Chips Supported .....................................................................................................................4-24 4.4.2 DRAM and SDRAM Configurations ....................................................................................................4-25 4.4.3 DRAM...................................................................................................................................................4-26 4.4.4 SDRAM.................................................................................................................................................4-29 4.5 Arbitration ....................................................................................................................................................4-32 4.5.1 Refresh Controller .................................................................................................................................4-32 4.5.2 External Bus Master ..............................................................................................................................4-32 4.5.3 Watch Dog Timer ..................................................................................................................................4-33 4.5.4 Memory Power Down ...........................................................................................................................4-33 4.6 Memory Connections ...................................................................................................................................4-35 4.7 BIU Registers ...............................................................................................................................................4-44 4.7.1 Memory Configuration 0 Register ........................................................................................................4-44 4.7.2 Memory Configuration 1 Register ........................................................................................................4-47 4.7.3 Memory Configuration 2 Register ........................................................................................................4-48 4.7.4 Memory Configuration 3 Register ........................................................................................................4-49 4.7.5 Memory Configuration 4 Register ........................................................................................................4-51 4.7.6 Memory Configuration 5 Register ........................................................................................................4-53 4.7.7 Memory Configuration 6 Register ........................................................................................................4-54 4.7.8 Memory Configuration 7 Register ........................................................................................................4-54 4.7.9 Memory Configuration 8 Register ........................................................................................................4-54 5. SIU Module .............................................................................................................................................................5-1 5.1 Overview ........................................................................................................................................................5-1 5.2 Implementation...............................................................................................................................................5-2 5.2.1 Block Diagram ........................................................................................................................................5-2 5.2.2 DMA Controller Description...................................................................................................................5-3 5.2.3 Address Decoder Description..................................................................................................................5-4 5.2.4 Internal Function Registers .....................................................................................................................5-5 5.3 SIU Registers..................................................................................................................................................5-7 5.3.1 SIU Test Register ....................................................................................................................................5-7 5.3.2 TMPR3911/12 Revision Register............................................................................................................5-7 6. Clock Module ..........................................................................................................................................................6-1 6.1 6.1.1 6.2 6.2.1 Overview ........................................................................................................................................................6-1 Related Pins.............................................................................................................................................6-2 Implementation...............................................................................................................................................6-3 Block Diagram ........................................................................................................................................6-3 ii Table of Contents 6.2.2 6.3 Clock Module Description ......................................................................................................................6-5 Clock Registers...............................................................................................................................................6-6 6.3.1 Clock Control Register............................................................................................................................6-6 7. CHI Module.............................................................................................................................................................7-1 7.1 Overview ........................................................................................................................................................7-1 7.1.1 7.2 Related Pins.............................................................................................................................................7-1 Interface Requirements...................................................................................................................................7-2 7.2.1 Frame Structure and Serial Timing .........................................................................................................7-2 7.2.2 7.3 Configurations.........................................................................................................................................7-7 Implementation...............................................................................................................................................7-8 7.3.1 Block Diagram ........................................................................................................................................7-8 7.3.2 Transmitter ..............................................................................................................................................7-9 7.3.3 Receiver...................................................................................................................................................7-9 7.3.4 Clock and Control Generation...............................................................................................................7-10 7.3.5 DMA Address Generation.....................................................................................................................7-12 7.3.6 Related Interrupts ..................................................................................................................................7-14 7.4 CHI Registers ...............................................................................................................................................7-15 7.4.1 CHI Control Register ............................................................................................................................7-15 7.4.2 CHI Pointer Enable Register .................................................................................................................7-18 7.4.3 CHI Receive Pointer A Register ...........................................................................................................7-20 7.4.4 CHI Receive Pointer B Register............................................................................................................7-21 7.4.5 CHI Transmit Pointer A Register ..........................................................................................................7-22 7.4.6 CHI Transmit Pointer B Register ..........................................................................................................7-23 7.4.7 CHI Size Register..................................................................................................................................7-24 7.4.8 CHI RX Start Register...........................................................................................................................7-25 7.4.9 CHI TX Start Register...........................................................................................................................7-25 7.4.10 CHI TX Holding Register .....................................................................................................................7-26 7.4.11 CHI RX Holding Register .....................................................................................................................7-26 8. Interrupt Module......................................................................................................................................................8-1 8.1 Overview ........................................................................................................................................................8-1 8.2 Implementation...............................................................................................................................................8-2 8.2.1 Block Diagram ........................................................................................................................................8-2 8.2.2 Interrupt Logic Description .....................................................................................................................8-3 8.3 Interrupt Registers ..........................................................................................................................................8-5 8.3.1 Interrupt Status 1 Register.......................................................................................................................8-5 8.3.2 Interrupt Status 2 Register.......................................................................................................................8-8 8.3.3 Interrupt Status 3 Register.....................................................................................................................8-11 8.3.4 Interrupt Status 4 Register.....................................................................................................................8-11 8.3.5 Interrupt Status 5 Register.....................................................................................................................8-12 8.3.6 Interrupt Status 6 Register.....................................................................................................................8-15 8.3.7 Clear Interrupt 1 Register ......................................................................................................................8-16 8.3.8 Clear Interrupt 2 Register ......................................................................................................................8-16 8.3.9 Clear Interrupt 3 Register ......................................................................................................................8-16 8.3.10 Clear Interrupt 4 Register ......................................................................................................................8-16 8.3.11 Clear Interrupt 5 Register ......................................................................................................................8-16 8.3.12 Enable Interrupt 1 Register....................................................................................................................8-16 8.3.13 Enable Interrupt 2 Register....................................................................................................................8-17 8.3.14 Enable Interrupt 3 Register....................................................................................................................8-17 iii Table of Contents 8.3.15 Enable Interrupt 4 Register....................................................................................................................8-17 8.3.16 Enable Interrupt 5 Register....................................................................................................................8-17 8.3.17 Enable Interrupt 6 Register....................................................................................................................8-18 9. I/O Module ..............................................................................................................................................................9-1 9.1 Overview ........................................................................................................................................................9-1 9.1.1 9.2 Related Pins.............................................................................................................................................9-1 Implementation...............................................................................................................................................9-2 9.2.1 Block Diagram ........................................................................................................................................9-2 9.2.2 General Purpose I/O Ports.......................................................................................................................9-4 9.2.3 Multi-function I/O Ports..........................................................................................................................9-5 9.2.4 Related Interrupts ....................................................................................................................................9-8 9.3 I/O Registers ...................................................................................................................................................9-9 9.3.1 I/O Control Register ................................................................................................................................9-9 9.3.2 MFIO Data Output Register ..................................................................................................................9-10 9.3.3 MFIO Direction Register ......................................................................................................................9-10 9.3.4 MFIO Data Input Register.....................................................................................................................9-10 9.3.5 MFIO Select Register............................................................................................................................9-11 9.3.6 I/O Power-Down Register .....................................................................................................................9-11 9.3.7 MFIO Power-Down Register ................................................................................................................9-11 10. IR Module .............................................................................................................................................................10-1 10.1 Overview ......................................................................................................................................................10-1 10.1.1 10.2 Related Pins...........................................................................................................................................10-1 Consumer IR.................................................................................................................................................10-2 10.2.1 Requirements.........................................................................................................................................10-2 10.2.2 Implementation .....................................................................................................................................10-2 10.2.3 Block Diagram ......................................................................................................................................10-2 10.2.4 Functional Description ..........................................................................................................................10-3 10.2.5 Related Interrupts ..................................................................................................................................10-3 10.3 Two-Way Communication Via IR ................................................................................................................10-4 10.3.1 Requirements.........................................................................................................................................10-4 10.3.2 Block Diagram ......................................................................................................................................10-5 10.4 Carrier Detect State Machine........................................................................................................................10-6 10.4.1 Requirements.........................................................................................................................................10-6 10.4.2 Block Diagram ......................................................................................................................................10-6 10.4.3 Functional Description ..........................................................................................................................10-7 10.4.4 Related Interrupts ..................................................................................................................................10-7 10.5 IR Registers ..................................................................................................................................................10-8 10.5.1 IR Control 1 Register ............................................................................................................................10-8 10.5.2 IR Control 2 Register ............................................................................................................................10-9 10.5.3 IR Holding Register ............................................................................................................................10-10 11. Magicbus Module..................................................................................................................................................11-1 11.1 Overview ......................................................................................................................................................11-1 11.1.1 11.2 Related Pins...........................................................................................................................................11-1 Interface Requirements.................................................................................................................................11-2 11.2.1 Timing Requirements ............................................................................................................................11-2 11.2.2 Data Formats .........................................................................................................................................11-2 11.2.3 Command Words...................................................................................................................................11-3 11.3 Implementation.............................................................................................................................................11-4 iv Table of Contents 11.3.1 Block Diagram ......................................................................................................................................11-4 11.3.2 Transmitter ............................................................................................................................................11-5 11.3.3 Receiver.................................................................................................................................................11-6 11.3.4 Control Logic ........................................................................................................................................11-7 11.3.5 DMA Address Generation.....................................................................................................................11-9 11.3.6 Related Interrupts ................................................................................................................................11-10 11.4 Magicbus Registers.....................................................................................................................................11-11 11.4.1 Magicbus Control 1 Register...............................................................................................................11-11 11.4.2 Magicbus Control 2 Register...............................................................................................................11-13 11.4.3 Magicbus DMA Control 1 Register ....................................................................................................11-14 11.4.4 Magicbus DMA Control 2 Register ....................................................................................................11-14 11.4.5 Magicbus DMA Count ........................................................................................................................11-14 11.4.6 Magicbus Transmit Holding Register..................................................................................................11-15 11.4.7 Magicbus Receive Holding Register ...................................................................................................11-15 12. Power Module .......................................................................................................................................................12-1 12.1 Overview ......................................................................................................................................................12-1 12.1.1 System Power Control Overview ..........................................................................................................12-1 12.1.2 Power State Transition Diagram............................................................................................................12-2 12.1.3 Power Supply Lines in the System........................................................................................................12-3 12.1.4 Related Pins...........................................................................................................................................12-4 12.2 Description ...................................................................................................................................................12-5 12.2.1 Power On Reset.....................................................................................................................................12-5 12.2.2 The 1st Power Up...................................................................................................................................12-6 12.2.3 Power Down..........................................................................................................................................12-7 12.2.4 Power Up...............................................................................................................................................12-8 12.2.5 Stop CPU...............................................................................................................................................12-9 12.2.6 Forced Shutdown.................................................................................................................................12-10 12.2.7 Memory Power Down .........................................................................................................................12-10 12.2.8 Stop Timer...........................................................................................................................................12-10 12.2.9 Power Module Interrupts.....................................................................................................................12-11 12.3 Power Registers ..........................................................................................................................................12-12 12.3.1 Power Control Register .......................................................................................................................12-12 13. SIB Module ...........................................................................................................................................................13-1 13.1 Overview ......................................................................................................................................................13-1 13.1.1 13.2 Related Pins...........................................................................................................................................13-2 Block Diagram..............................................................................................................................................13-3 13.2.1 Holding and Shift Registers ..................................................................................................................13-4 13.2.2 Clock and Sync Generation...................................................................................................................13-4 13.3 Interface Requirements.................................................................................................................................13-6 13.3.1 Frame Structure .....................................................................................................................................13-6 13.3.2 Timing Requirements ............................................................................................................................13-6 13.3.3 Configurations.......................................................................................................................................13-7 13.3.4 Sample Rates.........................................................................................................................................13-8 13.3.5 Enable/Disable Sequencing.................................................................................................................13-10 13.3.6 Data Formats .......................................................................................................................................13-11 13.3.7 Subframe Formats ...............................................................................................................................13-12 13.4 DMA Address Generation ..........................................................................................................................13-15 13.5 Related Interrupts .......................................................................................................................................13-17 v Table of Contents 13.6 SIB Registers ..............................................................................................................................................13-19 13.6.1 SIB Size Register ................................................................................................................................13-19 13.6.2 SIB Sound RX Start Register ..............................................................................................................13-19 13.6.3 SIB Sound TX Start Register ..............................................................................................................13-20 13.6.4 SIB Telecom RX Start Register...........................................................................................................13-20 13.6.5 SIB Telecom TX Start Register...........................................................................................................13-20 13.6.6 SIB Control Register ...........................................................................................................................13-21 13.6.7 SIB Sound TX Holding Register.........................................................................................................13-25 13.6.8 SIB Sound RX Holding Register.........................................................................................................13-25 13.6.9 SIB Telecom TX Holding Register .....................................................................................................13-25 13.6.10 SIB Telecom RX Holding Register .....................................................................................................13-26 13.6.11 SIB Subframe 0 Control Register........................................................................................................13-26 13.6.12 SIB Subframe 1 Control Register........................................................................................................13-26 13.6.13 SIB Subframe 0 Status Register ..........................................................................................................13-27 13.6.14 SIB Subframe 1 Status Register ..........................................................................................................13-27 13.6.15 SIB DMA Control Register.................................................................................................................13-27 14. SPI Module............................................................................................................................................................14-1 14.1 Overview ......................................................................................................................................................14-1 14.1.1 14.2 Related Pins...........................................................................................................................................14-1 Description ...................................................................................................................................................14-2 14.2.1 Block Diagram ......................................................................................................................................14-2 14.2.2 Baud Rate Generator .............................................................................................................................14-2 14.2.3 Transmitter/Receiver .............................................................................................................................14-3 14.2.4 CLKPOL/PHAPOL...............................................................................................................................14-4 14.2.5 Inter Character Delay Counter ..............................................................................................................14-5 14.2.6 SPI Interrupts ........................................................................................................................................14-5 14.3 SPI Registers.................................................................................................................................................14-6 14.3.1 SPI Control Register..............................................................................................................................14-6 14.3.2 SPI Transmitter Holding Register .........................................................................................................14-7 14.3.3 SPI Receiver Holding Register..............................................................................................................14-8 15. Timer Module........................................................................................................................................................15-1 15.1 Overview ......................................................................................................................................................15-1 15.1.1 15.2 Related Pins...........................................................................................................................................15-1 RTC ..............................................................................................................................................................15-2 15.2.1 RTC Block Diagram..............................................................................................................................15-2 15.2.2 RTC Description....................................................................................................................................15-3 15.2.3 RTC Interrupts.......................................................................................................................................15-3 15.3 Periodic Timer ..............................................................................................................................................15-4 15.3.1 Periodic Timer Block Diagram..............................................................................................................15-4 15.3.2 Periodic Timer Description ...................................................................................................................15-4 15.3.3 Periodic Timer Interrupts ......................................................................................................................15-4 15.4 Timer Registers.............................................................................................................................................15-5 15.4.1 RTC Register .........................................................................................................................................15-5 15.4.2 Alarm Register ......................................................................................................................................15-5 15.4.3 Timer Control Register..........................................................................................................................15-6 15.4.4 Periodic Timer Register.........................................................................................................................15-7 16. UART Module.......................................................................................................................................................16-1 16.1 Overview ......................................................................................................................................................16-1 vi Table of Contents 16.1.1 16.2 Related Pins...........................................................................................................................................16-1 Overall Operation .........................................................................................................................................16-2 16.2.1 Power On/Off ........................................................................................................................................16-2 16.2.2 Baud Rate and Communication Parameters ..........................................................................................16-2 16.2.3 Interrupt Operation................................................................................................................................16-3 16.2.4 DMA Operation ....................................................................................................................................16-5 16.2.5 Internal Loopback .................................................................................................................................16-6 16.3 Transmitter Operation...................................................................................................................................16-7 16.3.1 Transmitter Pulse Output Operation......................................................................................................16-8 16.3.2 Transmitter Disable Operation ..............................................................................................................16-8 16.3.3 Transmitter BREAK Operation .............................................................................................................16-8 16.3.4 Transmitter Overrun ..............................................................................................................................16-8 16.4 Receiver Operation .......................................................................................................................................16-9 16.4.1 Receiver BREAK Operation ...............................................................................................................16-10 16.4.2 Receiver Frame Error Condition .........................................................................................................16-10 16.4.3 Receiver Overrun Condition ...............................................................................................................16-10 16.4.4 Receiver Parity Error Condition..........................................................................................................16-10 16.4.5 Receiver Pulse Operation ....................................................................................................................16-10 16.5 UART Registers..........................................................................................................................................16-11 16.5.1 UART Control 1 Register....................................................................................................................16-11 16.5.2 UART Control 2 Register....................................................................................................................16-14 16.5.3 UART DMA Control 1 Register .........................................................................................................16-14 16.5.4 UART DMA Control 2 Register .........................................................................................................16-14 16.5.5 UART DMA Count .............................................................................................................................16-15 16.5.6 UART Transmit Holding Register.......................................................................................................16-15 16.5.7 UART Receiver Holding Register.......................................................................................................16-15 17. Video Module........................................................................................................................................................17-1 17.1 Overview ......................................................................................................................................................17-1 17.1.1 17.2 Related Pins...........................................................................................................................................17-1 Interface Requirements.................................................................................................................................17-2 17.2.1 Display Types........................................................................................................................................17-2 17.2.2 Timing Requirements ............................................................................................................................17-5 17.3 Implementation.............................................................................................................................................17-8 17.3.1 Block Diagram ......................................................................................................................................17-8 17.3.2 Video State Machine .............................................................................................................................17-9 17.3.3 Horizontal Counter..............................................................................................................................17-10 17.3.4 Line Counter........................................................................................................................................17-11 17.3.5 DMA Address Generation...................................................................................................................17-11 17.3.6 Video FIFO..........................................................................................................................................17-13 17.3.7 Gray Scale LUT ..................................................................................................................................17-14 17.3.8 Color LUT...........................................................................................................................................17-15 17.3.9 Dithering .............................................................................................................................................17-17 17.3.10 Related Interrupts ................................................................................................................................17-18 17.4 Video Registers...........................................................................................................................................17-19 17.4.1 Video Control 1 Register.....................................................................................................................17-19 17.4.2 Video Control 2 Register.....................................................................................................................17-21 17.4.3 Video Control 3 Register.....................................................................................................................17-21 17.4.4 Video Control 4 Register.....................................................................................................................17-22 vii Table of Contents 17.4.5 Video Control 5 Register.....................................................................................................................17-23 17.4.6 Video Control 6 Register.....................................................................................................................17-23 17.4.7 Video Control 7 Register.....................................................................................................................17-24 17.4.8 Video Control 8 Register.....................................................................................................................17-24 17.4.9 Video Control 9 Register.....................................................................................................................17-25 17.4.10 Video Control 10 Register...................................................................................................................17-26 17.4.11 Video Control 11 Register ...................................................................................................................17-26 17.4.12 Video Control 12 Register...................................................................................................................17-27 17.4.13 Video Control 13 Register...................................................................................................................17-27 17.4.14 Video Control 14 Register...................................................................................................................17-28 18. Electrical Characteristics .......................................................................................................................................18-1 18.1 Electrical Characteristics of TMPR3911BU/BXB .......................................................................................18-1 18.1.1 Absolute maximum ratings (TMPR3911BU/BXB) ..............................................................................18-1 18.1.2 Recommended operating conditions (TMPR3911BU/BXB) ................................................................18-1 18.1.3 DC characteristics (TMPR3911BU/BXB) ............................................................................................18-2 18.1.4 Crystal oscillator characteristics (TMPR3911BU/BXB).......................................................................18-3 18.1.5 TMPR3911BU/BXB Timing.................................................................................................................18-4 18.1.6 AC characteristics (TMPR3911BU/BXB) ............................................................................................18-5 18.2 Electrical Characteristics of TMPR3912AU-92/XB-92 .............................................................................18-27 18.2.1 Absolute maximum ratings (TMPR3912AU-92/XB-92) ....................................................................18-27 18.2.2 Recommended operating conditions (TMPR3912AU-92/XB-92) ......................................................18-27 18.2.3 DC characteristics (TMPR3912AU-92/XB-92) ..................................................................................18-28 18.2.4 Crystal oscillator characteristics (TMPR3912AU-92/XB-92) ............................................................18-29 18.2.5 Definition of AC specification (TMPR3912AU-92/XB-92) ...............................................................18-30 18.2.6 AC characteristics (TMPR3912AU-92/XB-92) ..................................................................................18-31 19. Package Dimension ...............................................................................................................................................19-1 19.1 TMPR3911BU..............................................................................................................................................19-1 19.2 TMPR3912AU-92 ........................................................................................................................................19-2 19.3 TMPR3912XB-92 ........................................................................................................................................19-3 19.4 TMPR3911BXB ...........................................................................................................................................19-4 Appendix A Differences among TMPR3911/12..........................................................................................................A-1 Appendix B Access Timing Chart ............................................................................................................................... B-1 viii Handling Precautions 1 Using Toshiba Semiconductors Safely 1. Using Toshiba Semiconductors Safely TOSHIBA are continually working to improve the quality and the reliability of their products. Nevertheless, semiconductor devices in general can malfunction or fail due to their inherent electrical sensitivity and vulnerability to physical stress. It is the responsibility of the buyer, when utilizing TOSHIBA products, to observe standards of safety, and to avoid situations in which a malfunction or failure of a TOSHIBA product could cause loss of human life, bodily injury or damage to property. In developing your designs, please ensure that TOSHIBA products are used within specified operating ranges as set forth in the most recent products specifications. Also, please keep in mind the precautions and conditions set forth in the TOSHIBA Semiconductor Reliability Handbook. The TOSHIBA products listed in this document are intended for usage in general electronics applications (computer, personal equipment, office equipment, measuring equipment, industrial robotics, domestic appliances, etc.). These TOSHIBA products are neither intended nor warranted for usage in equipment that requires extraordinarily high quality and/or reliability or a malfunction or failure of which may cause loss of human life or bodily injury (“Unintended Usage”). Unintended Usage include atomic energy control instruments, airplane or spaceship instruments, transportation instruments, traffic signal instruments, combustion control instruments, medical instruments, all types of safety devices, etc.. Unintended Usage of TOSHIBA products listed in this document shall be made at the customer’s own risk. 1-1 1 Using Toshiba Semiconductors Safely 1-2 2 Safety Precautions 2. Safety Precautions This section lists important precautions which users of semiconductor devices (and anyone else) should observe in order to avoid injury and damage to property, and to ensure safe and correct use of devices. Please be sure that you understand the meanings of the labels and the graphic symbol described below before you move on to the detailed descriptions of the precautions. [Explanation of labels] Indicates an imminently hazardous situation which will result in death or serious injury if you do not follow instructions. Indicates a potentially hazardous situation which could result in death or serious injury if you do not follow instructions. Indicates a potentially hazardous situation which if not avoided, may result in minor injury or moderate injury. [Explanation of graphic symbol] Graphic symbol Meaning Indicates that caution is required (laser beam is dangerous to eyes). 2-1 2 Safety Precautions 2.1 General Precautions regarding Semiconductor Devices Do not use devices under conditions exceeding their absolute maximum ratings (e.g. current, voltage, power dissipation or temperature). This may cause the device to break down, degrade its performance, or cause it to catch fire or explode resulting in injury. Do not insert devices in the wrong orientation. Make sure that the positive and negative terminals of power supplies are connected correctly. Otherwise the rated maximum current or power dissipation may be exceeded and the device may break down or undergo performance degradation, causing it to catch fire or explode and resulting in injury. When power to a device is on, do not touch the device’s heat sink. Heat sinks become hot, so you may burn your hand. Do not touch the tips of device leads. Because some types of device have leads with pointed tips, you may prick your finger. When conducting any kind of evaluation, inspection or testing, be sure to connect the testing equipment’s electrodes or probes to the pins of the device under test before powering it on. Otherwise, you may receive an electric shock causing injury. Before grounding an item of measuring equipment or a soldering iron, check that there is no electrical leakage from it. Electrical leakage may cause the device which you are testing or soldering to break down, or could give you an electric shock. Always wear protective glasses when cutting the leads of a device with clippers or a similar tool. If you do not, small bits of metal flying off the cut ends may damage your eyes. 2-2 2 Safety Precautions 2.2 2.2.1 Precautions Specific to Each Product Group Optical semiconductor devices When a visible semiconductor laser is operating, do not look directly into the laser beam or look through the optical system. This is highly likely to impair vision, and in the worst case may cause blindness. If it is necessary to examine the laser apparatus, for example to inspect its optical characteristics, always wear the appropriate type of laser protective glasses as stipulated by IEC standard IEC825-1. Ensure that the current flowing in an LED device does not exceed the device’s maximum rated current. This is particularly important for resin-packaged LED devices, as excessive current may cause the package resin to blow up, scattering resin fragments and causing injury. When testing the dielectric strength of a photocoupler, use testing equipment which can shut off the supply voltage to the photocoupler. If you detect a leakage current of more than 100 µA, use the testing equipment to shut off the photocoupler’s supply voltage; otherwise a large short-circuit current will flow continuously, and the device may break down or burst into flames, resulting in fire or injury. When incorporating a visible semiconductor laser into a design, use the device’s internal photodetector or a separate photodetector to stabilize the laser’s radiant power so as to ensure that laser beams exceeding the laser’s rated radiant power cannot be emitted. If this stabilizing mechanism does not work and the rated radiant power is exceeded, the device may break down or the excessively powerful laser beams may cause injury. 2.2.2 Power devices Never touch a power device while it is powered on. Also, after turning off a power device, do not touch it until it has thoroughly discharged all remaining electrical charge. Touching a power device while it is powered on or still charged could cause a severe electric shock, resulting in death or serious injury. When conducting any kind of evaluation, inspection or testing, be sure to connect the testing equipment’s electrodes or probes to the device under test before powering it on. When you have finished, discharge any electrical charge remaining in the device. Connecting the electrodes or probes of testing equipment to a device while it is powered on may result in electric shock, causing injury. 2-3 2 Safety Precautions Do not use devices under conditions which exceed their absolute maximum ratings (current, voltage, power dissipation, temperature etc.). This may cause the device to break down, causing a large short-circuit current to flow, which may in turn cause it to catch fire or explode, resulting in fire or injury. Use a unit which can detect short-circuit currents and which will shut off the power supply if a short-circuit occurs. If the power supply is not shut off, a large short-circuit current will flow continuously, which may in turn cause the device to catch fire or explode, resulting in fire or injury. When designing a case for enclosing your system, consider how best to protect the user from shrapnel in the event of the device catching fire or exploding. Flying shrapnel can cause injury. When conducting any kind of evaluation, inspection or testing, always use protective safety tools such as a cover for the device. Otherwise you may sustain injury caused by the device catching fire or exploding. Make sure that all metal casings in your design are grounded to earth. Even in modules where a device’s electrodes and metal casing are insulated, capacitance in the module may cause the electrostatic potential in the casing to rise. Dielectric breakdown may cause a high voltage to be applied to the casing, causing electric shock and injury to anyone touching it. When designing the heat radiation and safety features of a system incorporating high-speed rectifiers, remember to take the device’s forward and reverse losses into account. The leakage current in these devices is greater than that in ordinary rectifiers; as a result, if a high-speed rectifier is used in an extreme environment (e.g. at high temperature or high voltage), its reverse loss may increase, causing thermal runaway to occur. This may in turn cause the device to explode and scatter shrapnel, resulting in injury to the user. A design should ensure that, except when the main circuit of the device is active, reverse bias is applied to the device gate while electricity is conducted to control circuits, so that the main circuit will become inactive. Malfunction of the device may cause serious accidents or injuries. When conducting any kind of evaluation, inspection or testing, either wear protective gloves or wait until the device has cooled properly before handling it. Devices become hot when they are operated. Even after the power has been turned off, the device will retain residual heat which may cause a burn to anyone touching it. 2.2.3 Bipolar ICs (for use in automobiles) If your design includes an inductive load such as a motor coil, incorporate diodes or similar devices into the design to prevent negative current from flowing in. The load current generated by powering the device on and off may cause it to function erratically or to break down, which could in turn cause injury. Ensure that the power supply to any device which incorporates protective functions is stable. If the power supply is unstable, the device may operate erratically, preventing the protective functions from working correctly. If protective functions fail, the device may break down causing injury to the user. 2-4 3 General Safety Precautions and Usage Considerations 3. General Safety Precautions and Usage Considerations This section is designed to help you gain a better understanding of semiconductor devices, so as to ensure the safety, quality and reliability of the devices which you incorporate into your designs. 3.1 3.1.1 From Incoming to Shipping Electrostatic discharge (ESD) When handling individual devices (which are not yet mounted on a printed circuit board), be sure that the environment is protected against electrostatic electricity. Operators should wear anti-static clothing, and containers and other objects which come into direct contact with devices should be made of anti-static materials and should be grounded to earth via an 0.5- to 1.0-MΩ protective resistor. Please follow the precautions described below; this is particularly important for devices which are marked “Be careful of static.”. (1) Work environment • When humidity in the working environment decreases, the human body and other insulators can easily become charged with static electricity due to friction. Maintain the recommended humidity of 40% to 60% in the work environment, while also taking into account the fact that moisture-proof-packed products may absorb moisture after unpacking. • Be sure that all equipment, jigs and tools in the working area are grounded to earth. • Place a conductive mat over the floor of the work area, or take other appropriate measures, so that the floor surface is protected against static electricity and is grounded to earth. The surface resistivity should be 104 to 108 Ω/sq and the resistance between surface and ground, 7.5 × 105 to 108 Ω • Cover the workbench surface also with a conductive mat (with a surface resistivity of 104 to 108 Ω/sq, for a resistance between surface and ground of 7.5 × 105 to 108 Ω) . The purpose of this is to disperse static electricity on the surface (through resistive components) and ground it to earth. Workbench surfaces must not be constructed of low-resistance metallic materials that allow rapid static discharge when a charged device touches them directly. • Pay attention to the following points when using automatic equipment in your workplace: (a) When picking up ICs with a vacuum unit, use a conductive rubber fitting on the end of the pick-up wand to protect against electrostatic charge. (b) Minimize friction on IC package surfaces. If some rubbing is unavoidable due to the device’s mechanical structure, minimize the friction plane or use material with a small friction coefficient and low electrical resistance. Also, consider the use of an ionizer. (c) In sections which come into contact with device lead terminals, use a material which dissipates static electricity. (d) Ensure that no statically charged bodies (such as work clothes or the human body) touch the devices. 3-1 3 General Safety Precautions and Usage Considerations (e) Make sure that sections of the tape carrier which come into contact with installation devices or other electrical machinery are made of a low-resistance material. (f) Make sure that jigs and tools used in the assembly process do not touch devices. (g) In processes in which packages may retain an electrostatic charge, use an ionizer to neutralize the ions. • Make sure that CRT displays in the working area are protected against static charge, for example by a VDT filter. As much as possible, avoid turning displays on and off. Doing so can cause electrostatic induction in devices. • Keep track of charged potential in the working area by taking periodic measurements. • Ensure that work chairs are protected by an anti-static textile cover and are grounded to the floor surface by a grounding chain. (Suggested resistance between the seat surface and grounding chain is 7.5 × 105 to 1012Ω.) • Install anti-static mats on storage shelf surfaces. (Suggested surface resistivity is 104 to 108 Ω/sq; suggested resistance between surface and ground is 7.5 × 105 to 108 Ω.) • For transport and temporary storage of devices, use containers (boxes, jigs or bags) that are made of anti-static materials or materials which dissipate electrostatic charge. • Make sure that cart surfaces which come into contact with device packaging are made of materials which will conduct static electricity, and verify that they are grounded to the floor surface via a grounding chain. • In any location where the level of static electricity is to be closely controlled, the ground resistance level should be Class 3 or above. Use different ground wires for all items of equipment which may come into physical contact with devices. (2) Operating environment • Operators must wear anti-static clothing and conductive shoes (or a leg or heel strap). • Operators must wear a wrist strap grounded to earth via a resistor of about 1 MΩ. • Soldering irons must be grounded from iron tip to earth, and must be used only at low voltages (6 V to 24 V). • If the tweezers you use are likely to touch the device terminals, use anti-static tweezers and in particular avoid metallic tweezers. If a charged device touches a low-resistance tool, rapid discharge can occur. When using vacuum tweezers, attach a conductive chucking pat to the tip, and connect it to a dedicated ground used especially for anti-static purposes (suggested resistance value: 104 to 108 Ω). • Do not place devices or their containers near sources of strong electrical fields (such as above a CRT). 3-2 3 General Safety Precautions and Usage Considerations • When storing printed circuit boards which have devices mounted on them, use a board container or bag that is protected against static charge. To avoid the occurrence of static charge or discharge due to friction, keep the boards separate from one other and do not stack them directly on top of one another. • Ensure, if possible, that any articles (such as clipboards) which are brought to any location where the level of static electricity must be closely controlled are constructed of anti-static materials. • In cases where the human body comes into direct contact with a device, be sure to wear antistatic finger covers or gloves (suggested resistance value: 108 Ω or less). • Equipment safety covers installed near devices should have resistance ratings of 109 Ω or less. • If a wrist strap cannot be used for some reason, and there is a possibility of imparting friction to devices, use an ionizer. • The transport film used in TCP products is manufactured from materials in which static charges tend to build up. When using these products, install an ionizer to prevent the film from being charged with static electricity. Also, ensure that no static electricity will be applied to the product’s copper foils by taking measures to prevent static occuring in the peripheral equipment. 3.1.2 Vibration, impact and stress Handle devices and packaging materials with care. To avoid damage to devices, do not toss or drop packages. Ensure that devices are not subjected to mechanical vibration or shock during transportation. Ceramic package devices and devices in canister-type packages which have empty space inside them are subject to damage from vibration and shock because the bonding wires are secured only at their ends. Vibration Plastic molded devices, on the other hand, have a relatively high level of resistance to vibration and mechanical shock because their bonding wires are enveloped and fixed in resin. However, when any device or package type is installed in target equipment, it is to some extent susceptible to wiring disconnections and other damage from vibration, shock and stressed solder junctions. Therefore when devices are incorporated into the design of equipment which will be subject to vibration, the structural design of the equipment must be thought out carefully. If a device is subjected to especially strong vibration, mechanical shock or stress, the package or the chip itself may crack. In products such as CCDs which incorporate window glass, this could cause surface flaws in the glass or cause the connection between the glass and the ceramic to separate. Furthermore, it is known that stress applied to a semiconductor device through the package changes the resistance characteristics of the chip because of piezoelectric effects. In analog circuit design attention must be paid to the problem of package stress as well as to the dangers of vibration and shock as described above. 3-3 3 General Safety Precautions and Usage Considerations 3.2 3.2.1 Storage General storage • Avoid storage locations where devices will be exposed to moisture or direct sunlight. • Follow the instructions printed on the device cartons regarding transportation and storage. • The storage area temperature should be kept within a Humidity: Temperature: temperature range of 5°C to 35°C, and relative humidity should be maintained at between 45% and 75%. • Do not store devices in the presence of harmful (especially corrosive) gases, or in dusty conditions. • Use storage areas where there is minimal temperature fluctuation. Rapid temperature changes can cause moisture to form on stored devices, resulting in lead oxidation or corrosion. As a result, the solderability of the leads will be degraded. • When repacking devices, use anti-static containers. • Do not allow external forces or loads to be applied to devices while they are in storage. • If devices have been stored for more than two years, their electrical characteristics should be tested and their leads should be tested for ease of soldering before they are used. 3.2.2 Moisture-proof packing Moisture-proof packing should be handled with care. The handling procedure specified for each packing type should be followed scrupulously. If the proper procedures are not followed, the quality and reliability of devices may be degraded. This section describes general precautions for handling moisture-proof packing. Since the details may differ from device to device, refer also to the relevant individual datasheets or databook. (1) General precautions Follow the instructions printed on the device cartons regarding transportation and storage. • Do not drop or toss device packing. The laminated aluminum material in it can be rendered ineffective by rough handling. • The storage area temperature should be kept within a temperature range of 5°C to 30°C, and relative humidity should be maintained at 90% (max). Use devices within 12 months of the date marked on the package seal. 3-4 3 General Safety Precautions and Usage Considerations • If the 12-month storage period has expired, or if the 30% humidity indicator shown in Figure 1 is pink when the packing is opened, it may be advisable, depending on the device and packing type, to back the devices at high temperature to remove any moisture. Please refer to the table below. After the pack has been opened, use the devices in a 5°C to 30°C. 60% RH environment and within the effective usage period listed on the moisture-proof package. If the effective usage period has expired, or if the packing has been stored in a high-humidity environment, bake the devices at high temperature. Packing Moisture removal Tray If the packing bears the “Heatproof” marking or indicates the maximum temperature which it can withstand, bake at 125°C for 20 hours. (Some devices require a different procedure.) Tube Transfer devices to trays bearing the “Heatproof” marking or indicating the temperature which they can withstand, or to aluminum tubes before baking at 125°C for 20 hours. Tape Deviced packed on tape cannot be baked and must be used within the effective usage period after unpacking, as specified on the packing. • When baking devices, protect the devices from static electricity. • Moisture indicators can detect the approximate humidity level at a standard temperature of 25°C. 6-point indicators and 3-point indicators are currently in use, but eventually all indicators will be 3-point indicators. HUMIDITY INDICATOR 60% 50% 30% 20% 10% HUMIDITY INDICATOR 40 30 DANGER IF PINK DANGER IF PINK CHANGE DESICCANT 40% 20 READ AT LAVENDER BETWEEN PINK & BLUE READ AT LAVENDER BETWEEN PINK & BLUE (a) 6-point indicator (b) 3-point indicator Figure 1 Humidity indicator 3-5 3 General Safety Precautions and Usage Considerations 3.3 Design Care must be exercised in the design of electronic equipment to achieve the desired reliability. It is important not only to adhere to specifications concerning absolute maximum ratings and recommended operating conditions, it is also important to consider the overall environment in which equipment will be used, including factors such as the ambient temperature, transient noise and voltage and current surges, as well as mounting conditions which affect device reliability. This section describes some general precautions which you should observe when designing circuits and when mounting devices on printed circuit boards. For more detailed information about each product family, refer to the relevant individual technical datasheets available from Toshiba. 3.3.1 Absolute maximum ratings Do not use devices under conditions in which their absolute maximum ratings (e.g. current, voltage, power dissipation or temperature) will be exceeded. A device may break down or its performance may be degraded, causing it to catch fire or explode resulting in injury to the user. The absolute maximum ratings are rated values which must not be exceeded during operation, even for an instant. Although absolute maximum ratings differ from product to product, they essentially concern the voltage and current at each pin, the allowable power dissipation, and the junction and storage temperatures. If the voltage or current on any pin exceeds the absolute maximum rating, the device’s internal circuitry can become degraded. In the worst case, heat generated in internal circuitry can fuse wiring or cause the semiconductor chip to break down. If storage or operating temperatures exceed rated values, the package seal can deteriorate or the wires can become disconnected due to the differences between the thermal expansion coefficients of the materials from which the device is constructed. 3.3.2 Recommended operating conditions The recommended operating conditions for each device are those necessary to guarantee that the device will operate as specified in the datasheet. If greater reliability is required, derate the device’s absolute maximum ratings for voltage, current, power and temperature before using it. 3.3.3 Derating When incorporating a device into your design, reduce its rated absolute maximum voltage, current, power dissipation and operating temperature in order to ensure high reliability. Since derating differs from application to application, refer to the technical datasheets available for the various devices used in your design. 3.3.4 Unused pins If unused pins are left open, some devices can exhibit input instability problems, resulting in malfunctions such as abrupt increase in current flow. Similarly, if the unused output pins on a device are connected to the power supply pin, the ground pin or to other output pins, the IC may malfunction or break down. Since the details regarding the handling of unused pins differ from device to device and from pin 3-6 3 General Safety Precautions and Usage Considerations to pin, please follow the instructions given in the relevant individual datasheets or databook. CMOS logic IC inputs, for example, have extremely high impedance. If an input pin is left open, it can easily pick up extraneous noise and become unstable. In this case, if the input voltage level reaches an intermediate level, it is possible that both the P-channel and N-channel transistors will be turned on, allowing unwanted supply current to flow. Therefore, ensure that the unused input pins of a device are connected to the power supply (Vcc) pin or ground (GND) pin of the same device. For details of what to do with the pins of heat sinks, refer to the relevant technical datasheet and databook. 3.3.5 Latch-up Latch-up is an abnormal condition inherent in CMOS devices, in which Vcc gets shorted to ground. This happens when a parasitic PN-PN junction (thyristor structure) internal to the CMOS chip is turned on, causing a large current of the order of several hundred mA or more to flow between Vcc and GND, eventually causing the device to break down. Latch-up occurs when the input or output voltage exceeds the rated value, causing a large current to flow in the internal chip, or when the voltage on the Vcc (Vdd) pin exceeds its rated value, forcing the internal chip into a breakdown condition. Once the chip falls into the latch-up state, even though the excess voltage may have been applied only for an instant, the large current continues to flow between Vcc (Vdd) and GND (Vss). This causes the device to heat up and, in extreme cases, to emit gas fumes as well. To avoid this problem, observe the following precautions: (1) Do not allow voltage levels on the input and output pins either to rise above Vcc (Vdd) or to fall below GND (Vss). Also, follow any prescribed power-on sequence, so that power is applied gradually or in steps rather than abruptly. (2) Do not allow any abnormal noise signals to be applied to the device. (3) Set the voltage levels of unused input pins to Vcc (Vdd) or GND (Vss). (4) Do not connect output pins to one another. 3.3.6 Input/Output protection Wired-AND configurations, in which outputs are connected together, cannot be used, since this short-circuits the outputs. Outputs should, of course, never be connected to Vcc (Vdd) or GND (Vss). Furthermore, ICs with tri-state outputs can undergo performance degradation if a shorted output current is allowed to flow for an extended period of time. Therefore, when designing circuits, make sure that tri-state outputs will not be enabled simultaneously. 3.3.7 Load capacitance Some devices display increased delay times if the load capacitance is large. Also, large charging and discharging currents will flow in the device, causing noise. Furthermore, since outputs are shorted for a relatively long time, wiring can become fused. Consult the technical information for the device being used to determine the recommended load capacitance. 3-7 3 General Safety Precautions and Usage Considerations 3.3.8 Thermal design The failure rate of semiconductor devices is greatly increased as operating temperatures increase. As shown in Figure 2, the internal thermal stress on a device is the sum of the ambient temperature and the temperature rise due to power dissipation in the device. Therefore, to achieve optimum reliability, observe the following precautions concerning thermal design: (1) Keep the ambient temperature (Ta) as low as possible. (2) If the device’s dynamic power dissipation is relatively large, select the most appropriate circuit board material, and consider the use of heat sinks or of forced air cooling. Such measures will help lower the thermal resistance of the package. (3) Derate the device’s absolute maximum ratings to minimize thermal stress from power dissipation. θja = θjc + θca θja = (Tj–Ta) / P θjc = (Tj–Tc) / P θca = (Tc–Ta) / P in which θja = thermal resistance between junction and surrounding air (°C/W) θjc = thermal resistance between junction and package surface, or internal thermal resistance (°C/W) θca = thermal resistance between package surface and surrounding air, or external thermal resistance (°C/W) Tj = junction temperature or chip temperature (°C) Tc = package surface temperature or case temperature (°C) Ta = ambient temperature (°C) P = power dissipation (W) Ta θca Tc θjc Tj Figure 2 Thermal resistance of package 3.3.9 Interfacing When connecting inputs and outputs between devices, make sure input voltage (VIL/VIH) and output voltage (VOL/VOH) levels are matched. Otherwise, the devices may malfunction. When connecting devices operating at different supply voltages, such as in a dual-power-supply system, be aware that erroneous power-on and power-off sequences can result in device breakdown. For details of how to interface particular devices, consult the relevant technical datasheets and databooks. If you have any questions or doubts about interfacing, contact your nearest Toshiba office or distributor. 3-8 3 General Safety Precautions and Usage Considerations 3.3.10 Decoupling Spike currents generated during switching can cause Vcc (Vdd) and GND (Vss) voltage levels to fluctuate, causing ringing in the output waveform or a delay in response speed. (The power supply and GND wiring impedance is normally 50 Ω to 100 Ω.) For this reason, the impedance of power supply lines with respect to high frequencies must be kept low. This can be accomplished by using thick and short wiring for the Vcc (Vdd) and GND (Vss) lines and by installing decoupling capacitors (of approximately 0.01 µF to 1 µF capacitance) as high-frequency filters between Vcc (Vdd) and GND (Vss) at strategic locations on the printed circuit board. For low-frequency filtering, it is a good idea to install a 10- to 100-µF capacitor on the printed circuit board (one capacitor will suffice). If the capacitance is excessively large, however, (e.g. several thousand µF) latch-up can be a problem. Be sure to choose an appropriate capacitance value. An important point about wiring is that, in the case of high-speed logic ICs, noise is caused mainly by reflection and crosstalk, or by the power supply impedance. Reflections cause increased signal delay, ringing, overshoot and undershoot, thereby reducing the device’s safety margins with respect to noise. To prevent reflections, reduce the wiring length by increasing the device mounting density so as to lower the inductance (L) and capacitance (C) in the wiring. Extreme care must be taken, however, when taking this corrective measure, since it tends to cause crosstalk between the wires. In practice, there must be a trade-off between these two factors. 3.3.11 External noise Printed circuit boards with long I/O or signal pattern lines are vulnerable to induced noise or surges from outside sources. Consequently, malfunctions or breakdowns can result from overcurrent or overvoltage, depending on the types of device used. To protect against noise, lower the impedance of the pattern line or insert a noise-canceling circuit. Protective measures must also be taken against surges. Input/Output Signals For details of the appropriate protective measures for a particular device, consult the relevant databook. 3.3.12 Electromagnetic interference Widespread use of electrical and electronic equipment in recent years has brought with it radio and TV reception problems due to electromagnetic interference. To use the radio spectrum effectively and to maintain radio communications quality, each country has formulated regulations limiting the amount of electromagnetic interference which can be generated by individual products. Electromagnetic interference includes conduction noise propagated through power supply and telephone lines, and noise from direct electromagnetic waves radiated by equipment. Different measurement methods and corrective measures are used to assess and counteract each specific type of noise. Difficulties in controlling electromagnetic interference derive from the fact that there is no method available which allows designers to calculate, at the design stage, the strength of the electromagnetic waves which will emanate from each component in a piece of equipment. For this reason, it is only after the prototype equipment has been completed that the designer can take measurements using a dedicated instrument to determine the strength of electromagnetic interference waves. Yet it is possible during system design to incorporate some measures for the 3-9 3 General Safety Precautions and Usage Considerations prevention of electromagnetic interference, which can facilitate taking corrective measures once the design has been completed. These include installing shields and noise filters, and increasing the thickness of the power supply wiring patterns on the printed circuit board. One effective method, for example, is to devise several shielding options during design, and then select the most suitable shielding method based on the results of measurements taken after the prototype has been completed. 3.3.13 Peripheral circuits In most cases semiconductor devices are used with peripheral circuits and components. The input and output signal voltages and currents in these circuits must be chosen to match the semiconductor device’s specifications. The following factors must be taken into account. (1) Inappropriate voltages or currents applied to a device’s input pins may cause it to operate erratically. Some devices contain pull-up or pull-down resistors. When designing your system, remember to take the effect of this on the voltage and current levels into account. (2) The output pins on a device have a predetermined external circuit drive capability. If this drive capability is greater than that required, either incorporate a compensating circuit into your design or carefully select suitable components for use in external circuits. 3.3.14 Safety standards Each country has safety standards which must be observed. These safety standards include requirements for quality assurance systems and design of device insulation. Such requirements must be fully taken into account to ensure that your design conforms to the applicable safety standards. 3.3.15 Other precautions (1) When designing a system, be sure to incorporate fail-safe and other appropriate measures according to the intended purpose of your system. Also, be sure to debug your system under actual board-mounted conditions. (2) If a plastic-package device is placed in a strong electric field, surface leakage may occur due to the charge-up phenomenon, resulting in device malfunction. In such cases take appropriate measures to prevent this problem, for example by protecting the package surface with a conductive shield. (3) With some microcomputers and MOS memory devices, caution is required when powering on or resetting the device. To ensure that your design does not violate device specifications, consult the relevant databook for each constituent device. (4) Ensure that no conductive material or object (such as a metal pin) can drop onto and short the leads of a device mounted on a printed circuit board. 3.4 3.4.1 Inspection, Testing and Evaluation Grounding Ground all measuring instruments, jigs, tools and soldering irons to earth. Electrical leakage may cause a device to break down or may result in electric shock. 3-10 3 General Safety Precautions and Usage Considerations 3.4.2 Inspection Sequence c Do not insert devices in the wrong orientation. Make sure that the positive and negative electrodes of the power supply are correctly connected. Otherwise, the rated maximum current or maximum power dissipation may be exceeded and the device may break down or undergo performance degradation, causing it to catch fire or explode, resulting in injury to the user. d When conducting any kind of evaluation, inspection or testing using AC power with a peak voltage of 42.4 V or DC power exceeding 60 V, be sure to connect the electrodes or probes of the testing equipment to the device under test before powering it on. Connecting the electrodes or probes of testing equipment to a device while it is powered on may result in electric shock, causing injury. (1) Apply voltage to the test jig only after inserting the device securely into it. When applying or removing power, observe the relevant precautions, if any. (2) Make sure that the voltage applied to the device is off before removing the device from the test jig. Otherwise, the device may undergo performance degradation or be destroyed. (3) Make sure that no surge voltages from the measuring equipment are applied to the device. (4) The chips housed in tape carrier packages (TCPs) are bare chips and are therefore exposed. During inspection take care not to crack the chip or cause any flaws in it. Electrical contact may also cause a chip to become faulty. Therefore make sure that nothing comes into electrical contact with the chip. 3.5 Mounting There are essentially two main types of semiconductor device package: lead insertion and surface mount. During mounting on printed circuit boards, devices can become contaminated by flux or damaged by thermal stress from the soldering process. With surface-mount devices in particular, the most significant problem is thermal stress from solder reflow, when the entire package is subjected to heat. This section describes a recommended temperature profile for each mounting method, as well as general precautions which you should take when mounting devices on printed circuit boards. Note, however, that even for devices with the same package type, the appropriate mounting method varies according to the size of the chip and the size and shape of the lead frame. Therefore, please consult the relevant technical datasheet and databook. 3.5.1 Lead forming c Always wear protective glasses when cutting the leads of a device with clippers or a similar tool. If you do not, small bits of metal flying off the cut ends may damage your eyes. d Do not touch the tips of device leads. Because some types of device have leads with pointed tips, you may prick your finger. Semiconductor devices must undergo a process in which the leads are cut and formed before the devices can be mounted on a printed circuit board. If undue stress is applied to the interior of a device during this process, mechanical breakdown or performance degradation can result. This is attributable primarily to differences between the stress on the device’s external leads and the stress on the internal leads. If the relative difference is great enough, the device’s internal leads, adhesive properties or sealant can be damaged. Observe these precautions during the leadforming process (this does not apply to surface-mount devices): 3-11 3 General Safety Precautions and Usage Considerations (1) Lead insertion hole intervals on the printed circuit board should match the lead pitch of the device precisely. (2) If lead insertion hole intervals on the printed circuit board do not precisely match the lead pitch of the device, do not attempt to forcibly insert devices by pressing on them or by pulling on their leads. (3) For the minimum clearance specification between a device and a printed circuit board, refer to the relevant device’s datasheet and databook. If necessary, achieve the required clearance by forming the device’s leads appropriately. Do not use the spacers which are used to raise devices above the surface of the printed circuit board during soldering to achieve clearance. These spacers normally continue to expand due to heat, even after the solder has begun to solidify; this applies severe stress to the device. (4) Observe the following precautions when forming the leads of a device prior to mounting. • Use a tool or jig to secure the lead at its base (where the lead meets the device package) while bending so as to avoid mechanical stress to the device. Also avoid bending or stretching device leads repeatedly. • Be careful not to damage the lead during lead forming. • Follow any other precautions described in the individual datasheets and databooks for each device and package type. 3.5.2 Socket mounting (1) When socket mounting devices on a printed circuit board, use sockets which match the inserted device’s package. (2) Use sockets whose contacts have the appropriate contact pressure. If the contact pressure is insufficient, the socket may not make a perfect contact when the device is repeatedly inserted and removed; if the pressure is excessively high, the device leads may be bent or damaged when they are inserted into or removed from the socket. (3) When soldering sockets to the printed circuit board, use sockets whose construction prevents flux from penetrating into the contacts or which allows flux to be completely cleaned off. (4) Make sure the coating agent applied to the printed circuit board for moisture-proofing purposes does not stick to the socket contacts. (5) If the device leads are severely bent by a socket as it is inserted or removed and you wish to repair the leads so as to continue using the device, make sure that this lead correction is only performed once. Do not use devices whose leads have been corrected more than once. (6) If the printed circuit board with the devices mounted on it will be subjected to vibration from external sources, use sockets which have a strong contact pressure so as to prevent the sockets and devices from vibrating relative to one another. 3.5.3 Soldering temperature profile The soldering temperature and heating time vary from device to device. Therefore, when specifying the mounting conditions, refer to the individual datasheets and databooks for the devices used. 3-12 3 General Safety Precautions and Usage Considerations (1) Using a soldering iron Complete soldering within ten seconds for lead temperatures of up to 260°C, or within three seconds for lead temperatures of up to 350°C. (2) Using medium infrared ray reflow • Heating top and bottom with long or medium infrared rays is recommended (see Figure 3). Medium infrared ray heater (reflow) Product flow Long infrared ray heater (preheating) Figure 3 Heating top and bottom with long or medium infrared rays • Complete the infrared ray reflow process within 30 seconds at a package surface temperature of between 210°C and 240°C. • Refer to Figure 4 for an example of a good temperature profile for infrared or hot air reflow. Package surface temperature (°C) 240 210 160 140 60-120 s 30 s or less Time (s) Figure 4 Sample temperature profile for infrared or hot air reflow (3) Using hot air reflow • Complete hot air reflow within 30 seconds at a package surface temperature of between 210°C and 240°C. • For an example of a recommended temperature profile, refer to Figure 4 above. (4) Using solder flow • Apply preheating for 60 to 120 seconds at a temperature of 150°C. • For lead insertion-type packages, complete solder flow within 10 seconds with the temperature at the stopper (or, if there is no stopper, at a location more than 1.5 mm from the body) which does not exceed 260°C. • For surface-mount packages, complete soldering within 5 seconds at a temperature of 250°C or 3-13 3 General Safety Precautions and Usage Considerations less in order to prevent thermal stress in the device. • Figure 5 shows an example of a recommended temperature profile for surface-mount packages using solder flow. Package surface temperature (°C) 250 160 140 60-120 s 5s or less Time (s) Figure 5 Sample temperature profile for solder flow 3.5.4 Flux cleaning and ultrasonic cleaning (1) When cleaning circuit boards to remove flux, make sure that no residual reactive ions such as Na or Cl remain. Note that organic solvents react with water to generate hydrogen chloride and other corrosive gases which can degrade device performance. (2) Washing devices with water will not cause any problems. However, make sure that no reactive ions such as sodium and chlorine are left as a residue. Also, be sure to dry devices sufficiently after washing. (3) Do not rub device markings with a brush or with your hand during cleaning or while the devices are still wet from the cleaning agent. Doing so can rub off the markings. (4) The dip cleaning, shower cleaning and steam cleaning processes all involve the chemical action of a solvent. Use only recommended solvents for these cleaning methods. When immersing devices in a solvent or steam bath, make sure that the temperature of the liquid is 50°C or below, and that the circuit board is removed from the bath within one minute. (5) Ultrasonic cleaning should not be used with hermetically-sealed ceramic packages such as a leadless chip carrier (LCC), pin grid array (PGA) or charge-coupled device (CCD), because the bonding wires can become disconnected due to resonance during the cleaning process. Even if a device package allows ultrasonic cleaning, limit the duration of ultrasonic cleaning to as short a time as possible, since long hours of ultrasonic cleaning degrade the adhesion between the mold resin and the frame material. The following ultrasonic cleaning conditions are recommended: Frequency: 27 kHz ∼ 29 kHz Ultrasonic output power: 300 W or less (0.25 W/cm2 or less) Cleaning time: 30 seconds or less Suspend the circuit board in the solvent bath during ultrasonic cleaning in such a way that the ultrasonic vibrator does not come into direct contact with the circuit board or the device. 3-14 3 General Safety Precautions and Usage Considerations 3.5.5 No cleaning If analog devices or high-speed devices are used without being cleaned, flux residues may cause minute amounts of leakage between pins. Similarly, dew condensation, which occurs in environments containing residual chlorine when power to the device is on, may cause betweenlead leakage or migration. Therefore, Toshiba recommends that these devices be cleaned. However, if the flux used contains only a small amount of halogen (0.05W% or less), the devices may be used without cleaning without any problems. 3.5.6 Mounting tape carrier packages (TCPs) (1) When tape carrier packages (TCPs) are mounted, measures must be taken to prevent electrostatic breakdown of the devices. (2) If devices are being picked up from tape, or outer lead bonding (OLB) mounting is being carried out, consult the manufacturer of the insertion machine which is being used, in order to establish the optimum mounting conditions in advance and to avoid any possible hazards. (3) The base film, which is made of polyimide, is hard and thin. Be careful not to cut or scratch your hands or any objects while handling the tape. (4) When punching tape, try not to scatter broken pieces of tape too much. (5) Treat the extra film, reels and spacers left after punching as industrial waste, taking care not to destroy or pollute the environment. (6) Chips housed in tape carrier packages (TCPs) are bare chips and therefore have their reverse side exposed. To ensure that the chip will not be cracked during mounting, ensure that no mechanical shock is applied to the reverse side of the chip. Electrical contact may also cause a chip to fail. Therefore, when mounting devices, make sure that nothing comes into electrical contact with the reverse side of the chip. If your design requires connecting the reverse side of the chip to the circuit board, please consult Toshiba or a Toshiba distributor beforehand. 3.5.7 Mounting chips Devices delivered in chip form tend to degrade or break under external forces much more easily than plastic-packaged devices. Therefore, caution is required when handling this type of device. (1) Mount devices in a properly prepared environment so that chip surfaces will not be exposed to polluted ambient air or other polluted substances. (2) When handling chips, be careful not to expose them to static electricity. In particular, measures must be taken to prevent static damage during the mounting of chips. With this in mind, Toshiba recommend mounting all peripheral parts first and then mounting chips last (after all other components have been mounted). (3) Make sure that PCBs (or any other kind of circuit board) on which chips are being mounted do not have any chemical residues on them (such as the chemicals which were used for etching the PCBs). (4) When mounting chips on a board, use the method of assembly that is most suitable for maintaining the appropriate electrical, thermal and mechanical properties of the semiconductor devices used. * For details of devices in chip form, refer to the relevant device’s individual datasheets. 3-15 3 General Safety Precautions and Usage Considerations 3.5.8 Circuit board coating When devices are to be used in equipment requiring a high degree of reliability or in extreme environments (where moisture, corrosive gas or dust is present), circuit boards may be coated for protection. However, before doing so, you must carefully consider the possible stress and contamination effects that may result and then choose the coating resin which results in the minimum level of stress to the device. 3.5.9 Heat sinks (1) When attaching a heat sink to a device, be careful not to apply excessive force to the device in the process. (2) When attaching a device to a heat sink by fixing it at two or more locations, evenly tighten all the screws in stages (i.e. do not fully tighten one screw while the rest are still only loosely tightened). Finally, fully tighten all the screws up to the specified torque. (3) Drill holes for screws in the heat sink exactly as specified. Smooth the surface by removing burrs and protrusions or indentations which might interfere with the installation of any part of the device. (4) A coating of silicone compound can be applied between the heat sink and the device to improve heat conductivity. Be sure to apply the coating thinly and evenly; do not use too much. Also, be sure to use a non-volatile compound, as volatile compounds can crack after a time, causing the heat radiation properties of the heat sink to deteriorate. (5) If the device is housed in a plastic package, use caution when selecting the type of silicone compound to be applied between the heat sink and the device. With some types, the base oil separates and penetrates the plastic package, significantly reducing the useful life of the device. Two recommended silicone compounds in which base oil separation is not a problem are YG6260 from Toshiba Silicone. (6) Heat-sink-equipped devices can become very hot during operation. Do not touch them, or you may sustain a burn. 3.5.10 Tightening torque (1) Make sure the screws are tightened with fastening torques not exceeding the torque values stipulated in individual datasheets and databooks for the devices used. (2) Do not allow a power screwdriver (electrical or air-driven) to touch devices. 3.5.11 Repeated device mounting and usage Do not remount or re-use devices which fall into the categories listed below; these devices may cause significant problems relating to performance and reliability. (1) Devices which have been removed from the board after soldering (2) Devices which have been inserted in the wrong orientation or which have had reverse current applied (3) Devices which have undergone lead forming more than once 3-16 3 General Safety Precautions and Usage Considerations 3.6 3.6.1 Protecting Devices in the Field Temperature Semiconductor devices are generally more sensitive to temperature than are other electronic components. The various electrical characteristics of a semiconductor device are dependent on the ambient temperature at which the device is used. It is therefore necessary to understand the temperature characteristics of a device and to incorporate device derating into circuit design. Note also that if a device is used above its maximum temperature rating, device deterioration is more rapid and it will reach the end of its usable life sooner than expected. 3.6.2 Humidity Resin-molded devices are sometimes improperly sealed. When these devices are used for an extended period of time in a high-humidity environment, moisture can penetrate into the device and cause chip degradation or malfunction. Furthermore, when devices are mounted on a regular printed circuit board, the impedance between wiring components can decrease under highhumidity conditions. In systems which require a high signal-source impedance, circuit board leakage or leakage between device lead pins can cause malfunctions. The application of a moisture-proof treatment to the device surface should be considered in this case. On the other hand, operation under low-humidity conditions can damage a device due to the occurrence of electrostatic discharge. Unless damp-proofing measures have been specifically taken, use devices only in environments with appropriate ambient moisture levels (i.e. within a relative humidity range of 40% to 60%). 3.6.3 Corrosive gases Corrosive gases can cause chemical reactions in devices, degrading device characteristics. For example, sulphur-bearing corrosive gases emanating from rubber placed near a device (accompanied by condensation under high-humidity conditions) can corrode a device’s leads. The resulting chemical reaction between leads forms foreign particles which can cause electrical leakage. 3.6.4 Radioactive and cosmic rays Most industrial and consumer semiconductor devices are not designed with protection against radioactive and cosmic rays. Devices used in aerospace equipment or in radioactive environments must therefore be shielded. 3.6.5 Strong electrical and magnetic fields Devices exposed to strong magnetic fields can undergo a polarization phenomenon in their plastic material, or within the chip, which gives rise to abnormal symptoms such as impedance changes or increased leakage current. Failures have been reported in LSIs mounted near malfunctioning deflection yokes in TV sets. In such cases the device’s installation location must be changed or the device must be shielded against the electrical or magnetic field. Shielding against magnetism is especially necessary for devices used in an alternating magnetic field because of the electromotive forces generated in this type of environment. 3-17 3 General Safety Precautions and Usage Considerations 3.6.6 Interference from light (ultraviolet rays, sunlight, fluorescent lamps and incandescent lamps) Light striking a semiconductor device generates electromotive force due to photoelectric effects. In some cases the device can malfunction. This is especially true for devices in which the internal chip is exposed. When designing circuits, make sure that devices are protected against incident light from external sources. This problem is not limited to optical semiconductors and EPROMs. All types of device can be affected by light. 3.6.7 Dust and oil Just like corrosive gases, dust and oil can cause chemical reactions in devices, which will adversely affect a device’s electrical characteristics. To avoid this problem, do not use devices in dusty or oily environments. This is especially important for optical devices because dust and oil can affect a device’s optical characteristics as well as its physical integrity and the electrical performance factors mentioned above. 3.6.8 Fire Semiconductor devices are combustible; they can emit smoke and catch fire if heated sufficiently. When this happens, some devices may generate poisonous gases. Devices should therefore never be used in close proximity to an open flame or a heat-generating body, or near flammable or combustible materials. 3.7 Disposal of Devices and Packing Materials When discarding unused devices and packing materials, follow all procedures specified by local regulations in order to protect the environment against contamination. 3-18 4 Precautions and Usage Considerations 4. Precautions and Usage Considerations This section describes matters specific to each product group which need to be taken into consideration when using devices. If the same item is described in Sections 3 and 4, the description in Section 4 takes precedence. 4.1 4.1.1 Microcontrollers Design (1) Using resonators which are not specifically recommended for use Resonators recommended for use with Toshiba products in microcontroller oscillator applications are listed in Toshiba databooks along with information about oscillation conditions. If you use a resonator not included in this list, please consult Toshiba or the resonator manufacturer concerning the suitability of the device for your application. (2) Undefined functions In some microcontrollers certain instruction code values do not constitute valid processor instructions. Also, it is possible that the values of bits in registers will become undefined. Take care in your applications not to use invalid instructions or to let register bit values become undefined. 4-1 4 Precautions and Usage Considerations 4-2 TMPR3911/3912 Chapter 1 TMPR3911/12 Overview 1. 1.1 TMPR3911/12 Overview Overview The TMPR3911/12 is the single-chip, integrated digital ASSP for the Personal Digital Assistants (PDA). Figure 1.1.1 shows a block diagram of the overall PDA system. The TMPR3911/12 consists of the PDA system support logic, integrated with an embedded TX39/H Processor core designed by TOSHIBA. The TMPR3911/12 consists of a TX39/H Processor core with 4 Kbytes of instruction cache memory and 1 Kbyte of data cache memory, plus integrated functions for interfacing to numerous system components and external I/O modules. The TX39/H Processor core is also augmented with a single-cycle multiply/accumulate module to allow integrated DSP functions, such as a software modem for highperformance standard data and fax protocols. The TMPR3911/12 also contains multiple DMA channels and a high-performance and flexible Bus Interface Unit (BIU) for providing an efficient means for transferring data between external system memory, cache memory, the Processor core, and external I/O modules. The types of external memory devices supported include dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), static random access memory (SRAM), Flash memory, readonly memory (ROM), and expansion cards (PCMCIA and/or MagicCard). The TMPR3911/12 also contains a System Interface Module (SIM) containing integrated functions for interfacing to numerous external I/O modules such as liquid crystal displays (LCD’s), the TC35143 (which handles most of the analog functions of the system, including sound and telecom codecs and touchscreen ADC), ISDN/high-speed serial, infrared, wireless peripherals, Magicbus, etc. Lastly, The TMPR3911/12 contains support for implementation of power management for PDA system, whereby various TMPR3911/12 internal modules and external subsystems can be individually (under software control) powered up and down. The TMPR3911/12 contains the following overall features: • • high level of integration on a single chip, small board space, low pin count, low power, and high performance • Plastic LQFP208-pin package (TMPR3912AU-92) FBGA 217-pin package (TMPR3912XB-92) Plastic LQFP176-pin package (TMPR3911BU) FBGA177-pin package (TMPR3911BXB) • 32-bit TX39/H Processor core, cache memory, multiply-accumulate module, multi-channel DMA controller, bus interface unit and memory controller, power management, and other peripheral subsystems all on a single integrated chip • minimal number of inter-chip connections • Maximum operation frequency: 58 MHz (TMPR3911BU and TMPR3911BXB) 92 MHz (TMPR3912AU-92 and XB-92) low power consumption • entire TMPR3911/12 operation is 3.3 V (in case of TMPR3911BU/BXB, I/O: 3.3 V, internal: 2.6 V) • real-time clock based on 32.768 kHz reference • Processor core clock stop state for low standby current • power-down modes for individual internal peripheral modules 1-1 Chapter 1 TMPR3911/12 Overview 1-2 PCMCIA Slots 32 kHz (future option) Serial I/F and Magicbus DRAM/SDRAM Interface PCMCIA/ ROM I/F Timers Real-time Clock Memory Protection MagicCard(s) 32-bit bus D-Cache/ RAM TX39/H Processor core LCD Interface SYSCLK I-Cache/RAM TMPR3911/12 1 to 64 Mbytes ROM 1 to 16 (32) Mbytes (S)DRAM ID ROM LCD Power Supply Main Backup (Lithium) Thermistor T MagicBus Jack IR ISDN or other peripherals High speed serial port TC35143F (Analog Front End) 64-pin QFP Touchscreen (Resistive) 3.3 V Phone Jack DAA or RF Xceiver Figure 1.1.1 PDA Block Diagram 1-2 AC Adapter Chapter 1 TMPR3911/12 Overview Figure 1.1.2 shows a block diagram of the TMPR3911/12. The key functions and features for each TMPR3911/12 module are itemized below. Processor core Module • • TX39/H Processor core • full 32-bit operation (registers, instructions, addresses, etc.) • 32 general purpose 32-bit registers; 32-bit program counter • MIPS RISC Instruction Set Architecture (ISA) supported • Translation Look-aside Buffer (TLB) (4K Page size, 32 entries) on-chip cache • • • • 4 Kbyte instruction cache (I-cache) • physical address tag and valid bit per cache line • programmable burst size • instruction streaming mode supported • direct-mapped 1 Kbyte data cache (D-cache) • physical address tag and valid bit per cache line • programmable burst size • write-through • two-way set associative • cache address snoop mode supported for DMA • 4-level deep write buffer high-speed multiplier/accumulator • on-chip hardware multiplier • supports 32 × 32 multiplier operations, with 64-bit accumulator • existing multiply instructions are enhanced and new multiply and add instructions are added to the R3000A instruction set to improve the performance of DSP applications Processor core interface • handles data bus, address bus, and control interface between Processor core and rest of the TMPR3911/12 logic 1-3 Data Data Addr TX39/H Processor Core with TLB Tag I Cache 4 Kbyte Addr MAC TX39/H Processor core Bus Interface (BIU) Module (S) DRAM/PCMCIA/ROM Chapter 1 TMPR3911/12 Overview Data to Memory Addr Control D Cache 1 Kbyte Data to TC35143F Addr System Interface Unit (SIU) Module Arbitration/DMA/Addr Decode SIB Module CHI Module to LCD Video Module IR Module to Magicbus Magicbus Module UART Module to high speed serial to IR to UART (dual UART) to general purpose I/O IO Module SPI Module 32 kHz Timer Module (+RTC) SYSCLK Clock Module Power Module Interrupt Module System Interface Module (SIM) Figure 1.1.2 TMPR3911/12 Block Diagram 1-4 to power supply Chapter 1 TMPR3911/12 Overview BIU Module • • system memory and the TMPR3911/12 Bus Interface Unit (BIU) • supports up to 2 banks of physical memory • supports self-refreshing DRAM and SDRAM • programmable parameters for each bank of DRAM or SDRAM (row/column address configuration, refresh, burst modes, etc.) programmable chip select memory access • • • 4 programmable (size, wait states, burst mode control) memory device and general purpose chip selects • available for system ROM, SRAM, Flash • available for external port expansion registers 4 programmable (wait states, burst mode control) MagicCard or general purpose chip selects • the TMPR3911/12 provides the chip select and card detect signals • supports card insertion/removal timeouts supports up to 2 identical PCMCIA ports • the TMPR3911/12 and the TC35143 provide the control signals and accepts the status signals • appropriate connector keying and level-shifting buffers required for 3.3 V versus 5 V PCMCIA interface implementations SIU Module • multi-channel 32-bit DMA controller and System Interface Unit (SIU) • independent DMA channels for video, Magicbus, SIB to/from TC35143 audio/telecom codecs, highspeed serial port, IR UART, and general purpose UART • address decoding for submodules within System Interface Module (SIM) 1-5 Chapter 1 TMPR3911/12 Overview Clock Module • the TMPR3911/12 supports system-wide single crystal configuration, besides the 32 kHz RTC XTAL (reduces cost, power, and board space) • common crystal rate divided to generate clock for CPU, video, sound, telecom, UARTs, etc. • independent enabling or disabling of individual clocks under software control, for power management CHI Module • high-speed serial Concentration Highway Interface (CHI) contains logic for interfacing to external fullduplex serial time-division-multiplexed (TDM) communication peripherals • supports ISDN line interface chips and other PCM/TDM serial devices • CHI interface is programmable (number of channels, frame rate, bit rate, etc.) to provide support for a variety of formats • supports data rates up to 4.096 Mbps • independent DMA support for CHI receive and transmit Interrupt Module • contains logic for individually enabling, reading, and clearing all TMPR3911/12 interrupt sources • interrupts generated from internal TMPR3911/12 modules or from edge transitions on external signal pins 1-6 Chapter 1 TMPR3911/12 Overview I/O Module • contains support for reading and writing the 7 bi-directional general purpose I/O pins and the 32 bidirectional multi-function I/O pins • each I/O port can generate a separate positive and negative edge interrupt • independently configurable I/O ports allow the TMPR3911/12 to support a flexible and wide range of system applications and configurations IR Module • • • • IR consumer mode • allows control of consumer electronic devices such as stereos, TVs, VCRs, etc. • programmable pulse parameters • external analog LED circuitry IRDA communication mode • allows communication with other IRDA devices such as FAX machines, copiers, printers, etc. • supported by the UART module within the TMPR3911/12 • external analog receiver preamplifier and LED circuitry • data rate = up to 115 kbps at 1 meter IR FSK communication mode • supported by the UART module within the TMPR3911/12 • external analog IR chip(s) perform frequency modulation to generate the desired IR communication mode protocol • data rate = up to 36000 bps at 3 meters carrier detect state machine • periodically enables IR receiver to check if a valid carrier is present 1-7 Chapter 1 TMPR3911/12 Overview Magicbus Module • synchronous, serial 2-wire (clock and data), half-duplex communications protocol • supports low-cost, low-power peripherals • supports maximum data rate of 14.75 Mbps • DMA support for Magicbus receive and transmit Power Module • power-down modes for individual internal peripheral modules • serial (SPI port) power supply control interface supported • power management state machine has 3 states: RUNNING, DOZING and SLEEP SIB Module • the TMPR3911/12 contains holding and shift registers to support the serial interface to the TC35143 ASIC and/or other optional codec devices • interface compatible with slave mode 3 of the Crystal CS4216 codec • synchronous, frame-based protocol • the TMPR3911/12 always master source of clock and frame frequency and phase ; programmable clock frequency • each SIB frame consists of 128 clock cycles, further divided into 2 subframes or words of 64 bits each (supports up to 2 devices simultaneously) • independent DMA support for audio receive and transmit, telecom receive and transmit • supports 8-bit or 16-bit mono telecom formats • supports 8-bit or 16-bit mono or stereo audio formats • independently programmable audio and telecom sample rates • CPU read/write registers for subframe control and status 1-8 Chapter 1 TMPR3911/12 Overview SPI Module • provides interface to SPI peripherals and devices • full-duplex, synchronous serial data transfers (data in, data out, and clock signals) • the TMPR3911/12 supplies dedicated chip select and interrupt for an SPI interface serial power supply • 8-bit or 16-bit data word lengths for the SPI interface • programmable SPI baud rate Timer Module • Real Time Clock (RTC) and Timer • 40-bit counter (30.517 µs granularity); maximum uninterrupted time = 388.36 days • 40-bit alarm register (30.517 µs granularity) • 16-bit periodic timer (0.868 µs granularity at SYSCLK = 75 MHz); maximum timeout = 56.8 ms • interrupts on alarm, timer, and prior to RTC roll-over 1-9 Chapter 1 TMPR3911/12 Overview UART Module • 2 independent full-duplex UARTs • programmable baud rate generator • UARTB port used for serial control interface to external IR module • UARTA port used for general purpose serial control interface • UARTA and UARTB DMA support for receive and transmit Video Module • bit-mapped graphics • supports monochrome, gray scale, or color modes • time-based dithering algorithm for gray scale and color modes • supports multiple screen sizes • supports split and non-split displays • variable size and relocatable video buffer • DMA support for fetching image data from video buffer 1-10 Chapter 1 TMPR3911/12 Overview 1.2 References (1) MIPS RISC Architecture, Gerry Kane and Joe Heinrich, Prentice Hall, 1992 This book is a comprehensive reference for the MIPS RISC Instruction Set Architecture (ISA). This book also describes implementation-specific architectural features for each of the MIPS RISC processor families. This book includes descriptions of CPU architecture, memory management, cache architecture, instruction set summary, exception processing, floating-point unit, and assembly language programming. (2) PC Card Standard, Release 2.01, Personal Computer Memory Card International Association, November 1992 This document provides a description of the standard for PC Card interchangeability. This includes card and socket physical and mechanical specifications, connector pin description and electrical interface specifications, card data formats and header organization, and execute in place specifications. This is not a General Magic document, and availability of this document is controlled by the Personal Computer Memory Card International Association. (3) TX39 Family Users Manual, TOSHIBA (4) Computer Architecture: A Quantitative Approach Second Edition John L Hennessy & David A Patterson Morgan Kaufmann Publishers, Inc. ISBN 1-55860-329-8 (5) See MIPS Run Dominic Sweetman Morgan Kaufmann Publishers, Inc. ISBN 1-55860-410-3 (6) MIPS Technologies Inc. Publications http://www.mips.com/publications/ (7) SGI Document Archive ftp://sgigate.sgi.com/pub/doc/ 1-11 Chapter 1 TMPR3911/12 Overview 1-12 Chapter 2 Pin Descriptions 2. 2.1 Pin Descriptions Overview The TMPR3912 contains 208 pins (LQFP) or 217 pins (FBGA) consisting of input, output, bi-directional, and power and ground pins. The TMPR3911 contains 176 pins (LQFP) or 177 pins (FBGA) consisting of input, output, bi-directional, and power and ground pins. The only difference between TMPR3911 and TMPR3912 is pin counts of power and ground pins. These pins are used to support various functions. The following sections describe the function of each pin including any special power-down considerations for each pin. 2-1 Chapter 2 Pin Descriptions 2.2 Pins The TMPR3912 contains 137 signal pins, 3 spare pins, 34 power pins, and 34 ground pins. The TMPR3911 contains 137 signal pins, 3 spare pins, 19 power pins and 17 ground pins. Of the 137 signal pins, 32 of them are multi-function and can be independently programmed either as IO ports or for an alternate standard/normal function. As an IO port, any of these pins can be programmed as an input or output port, with the capability of generating a separate positive and negative edge interrupt. See Section 2.3 for a summary of the multi-function IO ports versus their standard functions. 2.2.1 Memory Pins D[31:0]: INPUT/OUTPUT These pins are the data bus signals for the system. These pins are normally outputs and only become inputs during reads, thus no resistors are required since the bus will only float for a short period of time during bus turn-around. For more information, See Section 4.3.2. A[12:0]: OUTPUT These pins are the address bus signals for the system. The address lines are multiplexed and can be connected directly to SDRAM and DRAM devices. To generate the full 26-bit address for static devices, an external latch must be used to latch the signals using the ALE signal. For static devices, address bits 25:13 are provided by the external latch and address bits 12:0 (directly connected from the TMPR3911/12’s address bus) are held afterward by the TMPR3911/12 for the remainder of the address bus cycle. ALE: OUTPUT This pin is used as the address latch enable signal to latch A[12:0] using an external latch, for generating the upper address bits 25:13. RD*: OUTPUT This pin is used as the read signal for static devices. This signal is asserted for reads from MCS3-0*, CS3-0*, CARD2CS* and CARD1CS* for memory and attribute space. 2-2 Chapter 2 Pin Descriptions WE*: OUTPUT This pin is used as the write signal for the system. This signal is asserted for writes to MCS3-0*, CS3-0*, CARD2CS* and CARD1CS* for memory and attribute space, and for writes to DRAM and SDRAM. CAS0* (WE0*): OUTPUT This pin is used as the CAS signal for SDRAMs, the CAS signal for D[7:0] for DRAMs, and the write enable signal for D[7:0] for static devices. CAS1* (WE1*): OUTPUT This pin is used as the CAS signal for D[15:8] for DRAMs and the write enable signal for D[15:8] for static devices. CAS2* (WE2*): OUTPUT This pin is used as the CAS signal for D[23:16] for DRAMs and the write enable signal for D[23:16] for static devices. Also used as the bank select signal for SDRAM (applies only to TMPR3912XB-92/AU-92) CAS3* (WE3*): OUTPUT This pin is used as the CAS signal for D[31:24] for DRAMs and the write enable signal for D[31:24] for static devices. RAS0*: OUTPUT This pin is used as the RAS signal for SDRAMs and the RAS signal for Bank0 DRAMs. RAS1* (DCS1*): OUTPUT This pin is used as the chip select signal for Bank1 SDRAMs and the RAS signal for Bank1 DRAMs. DCS0*: OUTPUT This pin is used as the chip select signal for Bank0 SDRAMs. DCKE: OUTPUT This pin is used as the clock enable for SDRAMs. 2-3 Chapter 2 Pin Descriptions DCLKIN: INPUT This pin must be tied externally to the DCLKOUT signal and is used to match skew for the data input when reading from SDRAM and DRAM devices. DCLKOUT: OUTPUT This pin is the clock for the SDRAMs. DQMH: OUTPUT This pin is the upper data mask for a 16-bit SDRAM configuration. DQML: OUTPUT This pin is the lower data mask for a 16-bit SDRAM or 8-bit SDRAM configuration. CS3-0*: OUTPUT These pins are the Chip Select 3 through 0 signals. They can be configured to support either 32bit or 16-bit ports. MCS3-0*: OUTPUT These pins are the MagicCard Chip Select 3 through 0 signals. They only support 16-bit ports. CARD2CSH*, L*: OUTPUT These pins are the Chip Select signals for PCMCIA card slot 2. CARD1CSH*, L*: OUTPUT These pins are the Chip Select signals for PCMCIA card slot 1. CARDREG*: OUTPUT This pin is the REG* signal for the PCMCIA cards. CARDIORD*: OUTPUT This pin is the IORD* signal for the PCMCIA IO cards. 2-4 Chapter 2 Pin Descriptions CARDIOWR*: OUTPUT This pin is the IOWR* signal for the PCMCIA IO cards. CARDDIR*: OUTPUT This pin is used to provide the direction control for bi-directional data buffers used for the PCMCIA slot(s). This signal will assert whenever CARD2CSH* or CARD2CSL* or CARD1CSH* or CARD1CSL* is asserted and a read transaction takes place. CARD2WAIT*: INPUT This pin is the card wait signal from PCMCIA card slot 2. CARD1WAIT*: INPUT This pin is the card wait signal from PCMCIA card slot 1. 2-5 Chapter 2 Pin Descriptions 2.2.2 Bus Arbitration Pins DREQ*: INPUT This pin is used to request external arbitration. The TMPR3911/12 memory transactions are halted and certain memory signals will be tri-stated when DGRNT* is asserted in order to allow an external master to access memory. DGRNT*: OUTPUT This pin is asserted in response to DREQ* to inform the external test logic or bus master that it can now begin to drive signals. 2.2.3 Clock Pins SYSCLKIN: INPUT This pin should be connected along with SYSCLKOUT to an external crystal which is the main TMPR3911/12 clock source. SYSCLKOUT: OUTPUT This pin should be connected along with SYSCLKIN to an external crystal which is the main TMPR3911/12 clock source. C32KIN: INPUT This pin along with C32KOUT should be connected to a 32.768 kHz crystal. C32KOUT: OUTPUT This pin along with C32KIN should be connected to a 32.768 kHz crystal. BC32K: OUTPUT This pin is a buffered output of the 32.768 kHz clock. 2-6 Chapter 2 Pin Descriptions 2.2.4 CHI Pins CHIFS: INPUT/OUTPUT This pin is the CHI frame synchronization signal. This pin is available for use in one of two modes. As an output, this pin allows the TMPR3911/12 to be the master CHI sync source. As an input, this pin allows an external peripheral to be the master CHI sync source and the TMPR3911/12 CHI module will slave to this external sync. CHICLK: INPUT/OUTPUT This pin is the CHI clock signal. This pin is available for use in one of two modes. As an output, this pin allows the TMPR3911/12 to be the master CHI clock source. As an input, this pin allows an external peripheral to be the master CHI clock source and the TMPR3911/12 CHI module will slave to this external clock. CHIDOUT: OUTPUT This pin is the CHI serial data output signal. CHIDIN: INPUT This pin is the CHI serial data input signal. 2.2.5 IO Pins IO[6:0]: INPUT/OUTPUT These pins are general purpose input/output ports. Each port can be independently programmed as an input or output port. Each port can generate a separate positive and negative edge interrupt. Each port can also be independently programmed to use a 16 to 24 ms debouncer. MFIO[1:0]: INPUT/OUTPUT These pins are multi-function input/output ports. Each port can be independently programmed as an input or output port, or can be programmed for multi-function use to support test signals (for debugging purposes only). Each port can generate a separate positive and negative edge interrupt. Note that 30 other multi-function pins are available for usage as multi-function input/output ports. These pins are named after their respective standard/normal function and are not listed here. 2-7 Chapter 2 Pin Descriptions 2.2.6 Magicbus Pins MBUSCLK: INPUT/OUTPUT This pin is the bi-directional Magicbus clock signal. MBUSCLK is an input signal whenever the TMPR3911/12 is in the slave mode and is an output signal whenever the TMPR3911/12 is in the master mode. MBUSDATA: INPUT/OUTPUT This pin is the bi-directional Magicbus data signal. MBUSDATA is an input signal whenever the TMPR3911/12 is in the slave mode and is an output signal whenever the TMPR3911/12 is in the master mode. MBUSINT: INPUT This pin is the Magicbus interrupt signal. This signal is used to interrupt the TMPR3911/12 whenever a peripheral has been attached to or detached from the bus, or whenever a peripheral has initiated an interrupt event. 2.2.7 Reset Pins CPURES*: INPUT This pin is used to reset the Processor core. This pin should be connected to a switch for initiating a reset in the event that a software problem might hang the Processor core. The pin should also be pulled up to VSTANDBY (external signal) through an external pull-up resistor. PON*: INPUT This pin serves as the Power On Reset signal for the TMPR3911/12. This signal must remain low when VSTANDBY (external signal) is asserted until VSTANDBY is stable. Once VSTANDBY is asserted, this signal should never go low unless all power is lost in the system. 2-8 Chapter 2 Pin Descriptions 2.2.8 Power Module Pins ONBUTN: INPUT Asserting this signal will cause PWRCS to be asserted if the PWROK signal is high. PWRCS: OUTPUT This signal is asserted automatically if the ONBUTN signal is asserted when the PWROK signal is high. Clearing the PWRCS bit in the Power Control Register by software deasserts this signal. PWROK: INPUT This pin should be asserted when the source of power is stable. When the PWROKNMI bit in the Interrupt Status 6 Register is set, the deassertion of the PWROK signal causes the NMI (Non Maskable Interrupt). PWRINT: INPUT The rising edge and falling edge of signal to this pin causes PWRINT interrupt request. VCC3: INPUT This pin should be asserted when the source of power for external circuit is stable. Asserting this pin starts oscillating the internal clock. For more details of these pins, see chapter 12. 2-9 Chapter 2 Pin Descriptions 2.2.9 SIB Pins SIBDIN: INPUT This pin is used for serial input to the SIB module. SIBDOUT: OUTPUT This pin is used for serial output from the SIB module. SIBSCLK: OUTPUT This pin is the clock for SIB interface. SIBSYNC: OUTPUT This pin is the frame synchronization signal for SIB interface. This frame sync is asserted for one clock cycle immediately before each frame starts and all devices connected to the SIB monitor SIBSYNC to determine when they should transmit or receive data. SIBIRQ: INPUT The rising edge and falling edge of signal to this pin causes SIBIRQ interrupt request. SIBMCLK: INPUT/OUTPUT This pin is the master clock source for the SIB module. 2-10 Chapter 2 Pin Descriptions 2.2.10 SPI Pins SPICLK: OUTPUT This pin is used to clock data in and out of the SPI slave device. SPIOUT: OUTPUT This pin contains the data that is shifted into the SPI slave device. SPIIN: INPUT This pin contains the data that is shifted out of the SPI slave device. 2.2.11 UART and IR Pins TXD: OUTPUT This pin is the UART transmit signal from the UARTA module. RXD: INPUT This pin is the UART receive signal to the UARTA module. IROUT: OUTPUT This pin is the UART transmit signal from the UARTB module or the Consumer IR output signal if Consumer IR mode is enabled. IRIN: INPUT This pin is the UART receive signal to the UARTB module. RXPWR: OUTPUT This pin is the receiver power output control signal to the external communication IR analog circuitry. CARDET: INPUT This pin is the carrier detect input signal from the external communication IR analog circuitry. 2-11 Chapter 2 Pin Descriptions 2.2.12 Video Pins FRAME: OUTPUT This pin is the frame synchronization pulse signal between the Video Module and the LCD, and is used by the LCD to return its pointers to the top of the display. The Video Module asserts FRAME after all the lines of the LCD have been shifted and transferred, producing a full frame of display. DF: OUTPUT This pin is the AC signal for the LCD. Since LCD plasma tends to deteriorate whenever subjected to a DC voltage, the DF signal is used by the LCD to alternate the polarity of the row and column voltages used to turn the pixels on and off. The DF signal can be configured to toggle on every frame or can be configured to toggle every programmable number of LOAD signals. LOAD: OUTPUT This pin is the line synchronization pulse signal between the Video Module and the LCD, and is used by the LCD to transfer the contents of its horizontal line shift register to the LCD panel for display. The Video Module asserts LOAD after an entire horizontal line of data has been shifted into the LCD. CP: OUTPUT This pin is the clock signal for the LCD. Data is pushed by the Video Module on the rising edge of CP and sampled by the LCD on the falling edge of CP. VDAT[3:0]: OUTPUT These pins are the data for the LCD. These signals are directly connected to the LCD for 4-bit non-split displays. For 4-bit split and 8-bit non-split displays, an external register is required to demultiplex the 4-bit data into the desired 8 parallel data lines needed for the LCD. DISPON: OUTPUT This pin is the display-on enable signal for the LCD. VIDDONE: OUTPUT This pin is used to externally synchronize events to periods when the video is not shifting. 2-12 Chapter 2 Pin Descriptions 2.2.13 Endian Pin ENDIAN: INPUT This pin is used to select the endianness. The high level input sets the endianness to the big endian. The low level input sets the endianness to the little endian. 2.2.14 Test Pins TESTAIU: INPUT If this pin is set to low during reset, ROM data bus width will be 16 bits wide. If this pin is set to high during reset, ROM data bus width will be 32 bits wide. When the DREQ* signal is asserted to request external arbitration, this pin must be set to low. TESTCPU: INPUT Connect to GND. TESTIN: INPUT Connect to GND. 2.2.15 Spare Pins NC3-1: NO CONNECT These pins are reserved for future use and should be left unconnected. 2.2.16 Power Supply Pins VDD: +3.3 V These pins are the power pins. (In case of TMRP3912AU-92 and TMRP3912XB-92) VSS: GND These pins are the ground pins for the TMPR3911/12. VDDH: +3.3 V These pins are the power pins for I/O. (In case of TMPR3911BU and TMPR3911BXB) VDDL: +2.6 V These pins are the power pins for internal logic. (In case of TMPR3911BU and TMPR3911BXB) VDD (PLL): +2.6 V These pins are the power pins for PLL. (In case of TMPR3911BU and TMPR3911BXB) VSS (PLL): GND These pins are the ground pins for PLL. (In case of TMPR3911BU and TMPR3911BXB) 2-13 Chapter 2 Pin Descriptions 2.3 Pin Mode This section contains tables summarizing various aspects of the pin usage for the TMPR3911/12. Table 2.3.1 lists the standard versus multi-function usage for each TMPR3911/12 pin, if applicable. The column showing the multi-function select indicates the corresponding bit in the MIOSEL register, as well as the default configuration of each multi-function pin during reset. The “Bus Arb State” column shows which pins are tri-stated whenever the DGRNT* signal is asserted in response to a DREQ* (external bus arbitration request). Table 2.3.1 TMPR3911/12 Standard and Multi-Function Pin Mode (1/3) TMPR3911/12 pin standard function (I = input, O = output) multi-function multi-function select 1 = multi-function mode 0 = standard function mode MIOSEL reset state Bus Arb State D[31:0] D[31:0] (I/O) – – – A[12:0] A[12:0] (I/O) – – – Hi-Z Hi-Z ALE ALE (O) – – – Hi-Z RD* RD* (O) – – – Hi-Z WE* WE* (O) – – – Hi-Z CAS0* (WE0*) CAS0* (O) – – – Hi-Z CAS1* (WE1*) CAS1* (O) – – – Hi-Z CAS2* (WE2*) CAS2* (O) – – – Hi-Z CAS3* (WE3*) CAS3* (O) – – – Hi-Z RAS0* RAS0* (O) – – – Hi-Z RAS1* (DCS1)* RAS1* (O) – – – Hi-Z DCS0* DCS0* (O) – – – Hi-Z DCKE DCKE (O) – – – Hi-Z DCLKIN DCLKIN (I) – – – – DCLKOUT DCLKOUT (O) – – – Hi-Z DQMH DQMH (O) – – – Hi-Z DQML DQML (O) – – – Hi-Z DREQ* DREQ* (I) MIO[27] MIOSEL[27] 0 – DGRNT* DGRNT* (O) MIO[26] MIOSEL[26] 0 – SYSCLKIN SYSCLKIN (I) – – – – SYSCLKOUT SYSCLKOUT (O) – – – – C32KIN C32KIN (I) – – – – C32KOUT C32KOUT (O) – – – – BC32K BC32K (O) MIO[25] MIOSEL[25] 1 – VDAT[3] VDAT[3] (O) – – – – VDAT[2] VDAT[2] (O) – – – – VDAT[1] VDAT[1] (O) – – – – VDAT[0] VDAT[0] (O) – – – – CP CP (O) – – – – LOAD LOAD (O) – – – – DF DF (O) – – – – FRAME FRAME (O) – – – – DISPON DISPON (O) – – – – PWRCS PWRCS (O) – – – – PWRINT PWRINT (I) – – – – 2-14 Chapter 2 Pin Descriptions Table 2.3.2 TMPR3911/12 Standard and Multi-Function Pin Mode (2/3) TMPR3911/12 pin standard function (I = input, O = output) multi-function multi-function select 1 = multi-function mode 0 = standard function mode MIOSEL reset state Bus Arb State PWROK PWROK (I) – – – ONBUTN ONBUTN (I) – – – – – CPURES* CPURES* (I) – – – – PON* PON* (I) – – – – MBUSCLK MBUSCLK (I/O) – – – – MBUSDATA MBUSDATA (I/O) – – – – – MBUSINT MBUSINT (I) – – – TXD TXD (O) MIO[24] MIOSEL[24] 0 – RXD RXD (I) MIO[23] MIOSEL[23] 0 – CS0* CS0* (O) – – CS1* CS1* (O) MIO[22] MIOSEL[22] 0 – CS2* CS2* (O) MIO[21] MIOSEL[21] 0 – CS3* CS3* (O) MIO[20] MIOSEL[20] 0 MCS0* MCS0* (O) MIO[19] MIOSEL[19] 1 – MCS1* MCS1* (O) MIO[18] MIOSEL[18] 1 – MCS2* MCS2* (O) MIO[17] MIOSEL[17] 1 – MCS3* MCS3* (O) MIO[16] MIOSEL[16] 1 – CHIFS CHIFS (I/O) MIO[31] MIOSEL[31] 1 – CHICLK CHICLK (I/O) MIO[30] MIOSEL[30] 1 – CHIDOUT CHIDOUT (O) MIO[29] MIOSEL[29] 1 – CHIDIN CHIDIN (I) MIO[28] MIOSEL[28] 1 – VCC3 VCC3 (I) – – – – IO6 IO6 (I/O) – – – – IO5 IO5 (I/O) – – – – IO4 IO4 (I/O) – – – – IO3 IO3 (I/O) – – – – IO2 IO2 (I/O) – – – – IO1 IO1 (I/O) – – – – IO0 IO0 (I/O) – – – – SPICLK SPICLK (O) MIO[15] MIOSEL[15] 0 – Hi-Z SPIOUT SPIOUT (O) MIO[14] MIOSEL[14] 0 – SPIIN SPIIN (I) MIO[13] MIOSEL[13] 0 – SIBSYNC SIBSYNC (O) – – – – SIBDOUT SIBDOUT (O) – – – – SIBDIN SIBDIN (I) – SIBMCLK SIBMCLK (I/O) SIBSCLK – – – MIO[12] MIOSEL[12] 0 – SIBSCLK (O) – – – – SIBIRQ SIBIRQ (I) – – – – RXPWR RXPWR (O) – – – – CARDET CARDET (I) – – – – IROUT IROUT (O) – – – – IRIN IRIN (I) – – – – TESTAIU TESTAIU (I) – – – – TESTCPU TESTCPU (I) – – – – TESTIN TESTIN (I) – – – – VIDDONE VIDDONE (O) – – – – 2-15 Chapter 2 Pin Descriptions Table 2.3.3 TMPR3911/12 Standard and Multi-Function Pin Mode (3/3) TMPR3911/12 pin standard function (I = input, O = output) multi-function multi-function select 1 = multi-function mode 0 = standard function mode MIOSEL reset state Bus Arb State CARDREG* CARDREG* (O) (SHOWDINO CS*) MIO[11] MIOSEL[11] 1 – CARDIOWR* CARDIOWR* (O) MIO[10] MIOSEL[10] 1 – CARDIORD* CARDIORD* (O) MIO[9] MIOSEL[9] 1 – CARD1CSL* CARD1CSL* (O) MIO[8] MIOSEL[8] 1 – CARD1CSH CARD1CSH* (O) MIO[7] MIOSEL[7] 1 – CARD2CSL* CARD2CSL* (O) MIO[6] MIOSEL[6] 1 – CARD2CSH* CARD2CSH* (O) MIO[5] MIOSEL[5] 1 – CARD1WAIT* CARD1WAIT* (I) MIO[4] MIOSEL[4] 1 – CARD2WAIT* CARD2WAIT* (I) MIO[3] MIOSEL[3] 1 – CARDDIR* CARDDIR* (O) MIO[2] MIOSEL[2] 1 – MFIO[1] reserved MIO[1] MIOSEL[1] 1 – MFIO[0] reserved MIO[0] MIOSEL[0] 1 – ENDIAN ENDIAN (I) – – – – NC[3:1] SPARE – – – – VDD +3.3 V (*1) – – – – VSS GND – – – – VDDH +3.3 V (*2) – – – – VDDL +2.6 V (*2) – – – – *1) In case of TMPR3912AU-92 and TMPR3912XB-92 *2) In case of TMPR3911BU and MTPR3911BXB 2-16 Chapter 2 Pin Descriptions Table 2.3.4 lists various power-down states and conditions for each TMPR3911/12 pin. The “Power-Down Control” column shows the conditions which trigger a power-down for each respective pin. This column also shows the reset state for each of these conditions. The “PON* state” column defines the state of each pin at power-on reset (PON*). This condition is defined as initial power up of the TMPR3911/12. This state is entered after power is applied for the very first time (VSTANDBY is turned on but VCC3 is still turned off). See figure 12.2.2. The “1st-time power-up state” column defines the state of each pin after power-up. This mode is defined as VCC3 applied to the entire system and is initiated by the user pressing the ONBUTN while in the poweron reset (PON*) state. See figure 12.2.2. The “power-down state” column defines the state of each pin during power-down mode. Table 2.3.4 TMPR3911/12 Power-Down Pin Mode (1/3) PON* state 1st time power-up state power-down state Power-Down Control D[31:0] LOW LOW LOW MEMPOWERDOWN A[12:0] LOW LOW LOW MEMPOWERDOWN ALE LOW LOW LOW X RD* LOW HI LOW POWERDOWN WE* LOW LOW LOW MEMPOWERDOWN CAS0* (WE0*) LOW LOW LOW MEMPOWERDOWN CAS1* (WE1*) LOW LOW LOW MEMPOWERDOWN CAS2* (WE2*) LOW LOW LOW MEMPOWERDOWN CAS3* (WE3*) LOW LOW LOW MEMPOWERDOWN RAS0* LOW LOW LOW MEMPOWERDOWN RAS1* (DCS1*) LOW LOW LOW MEMPOWERDOWN DCS0* LOW LOW LOW MEMPOWERDOWN DCKE LOW LOW LOW MEMPOWERDOWN IN IN IN X DCLKOUT LOW LOW LOW MEMPOWERDOWN DQMH LOW LOW LOW MEMPOWERDOWN DQML LOW LOW LOW MEMPOWERDOWN DREQ PULL-DOWN IN SELECTABLE POWERDOWN & MIOPD[27] TMPR3911/12 pin DCLKIN* DGRNT* LOW HI SELECTABLE POWERDOWN & MIOPD[26] SYSCLKIN OSC OFF OSC ON OSC OFF POWERDOWN SYSCLKOUT OSC OFF OSC ON OSC OFF POWERDOWN C32KIN OSC ON OSC ON OSC ON X C32KOUT OSC ON OSC ON OSC ON X PULL-DOWN IN SELECTABLE POWERDOWN & MIOPD[25] VDAT[3] LOW LOW LOW video module disabled VDAT[2] LOW LOW LOW video module disabled VDAT[1] LOW LOW LOW video module disabled VDAT[0] LOW LOW LOW video module disabled BC32K POWERDOWN = (VCCON & VCC3)* VCCON: a bit in the Power Control Register. VCC3: an input signal. MEMPOWERDOWN: a bit in the Memory Configration 4 Register. SELECTABLE: See Table 9.2.2 and 9.2.3. 2-17 Chapter 2 Pin Descriptions Table 2.3.5 TMPR3911/12 Power-Down Pin Mode (2/3) TMPR3911/12 pin PON* state 1st time power-up state power-down state Power-Down Control CP LOW LOW LOW video module disabled LOAD LOW LOW LOW video module disabled DF LOW LOW LOW video module disabled FRAME LOW LOW LOW video module disabled DISPON LOW LOW LOW video module disabled PWRCS LOW HI LOW X PWRINT IN IN IN X PWROK IN IN IN X ONBUTN IN IN IN X CPURES* IN IN IN X PON* IN IN IN X MBUSCLK LOW LOW LOW magicbus module disabled MBUSDATA LOW LOW LOW magicbus module disabled IN IN IN X TXD LOW LOW SELECTABLE POWERDOWN & MIOPD[24] RXD PULL-DOWN IN SELECTABLE POWERDOWN & MIOPD[23] CS0* PULL-DOWN HI PULL-DOWN POWERDOWN CS1* PULL-DOWN HI SELECTABLE POWERDOWN & MIOPD[22] CS2* PULL-DOWN HI SELECTABLE POWERDOWN & MIOPD[21] CS3* PULL-DOWN HI SELECTABLE POWERDOWN & MIOPD[20] MCS0* PULL-DOWN IN SELECTABLE POWERDOWN & MIOPD[19] MCS1* PULL-DOWN IN SELECTABLE POWERDOWN & MIOPD[18] MCS2* PULL-DOWN IN SELECTABLE POWERDOWN & MIOPD[17] MCS3* PULL-DOWN IN SELECTABLE POWERDOWN & MIOPD[16] CHIFS PULL-DOWN IN SELECTABLE POWERDOWN & MIOPD[31] CHICLK PULL-DOWN IN SELECTABLE POWERDOWN & MIOPD[30] CHIDOUT PULL-DOWN IN SELECTABLE POWERDOWN & MIOPD[29] CHIDIN PULL-DOWN IN SELECTABLE POWERDOWN & MIOPD[28] VCC3 PULL-DOWN IN PULL-DOWN POWERDOWN IO6 PULL-DOWN IN SELECTABLE POWERDOWN & IOPD[6] IO5 PULL-DOWN IN SELECTABLE POWERDOWN & IOPD[5] IO4 PULL-DOWN IN SELECTABLE POWERDOWN & IOPD[4] IO3 PULL-DOWN IN SELECTABLE POWERDOWN & IOPD[3] IO2 PULL-DOWN IN SELECTABLE POWERDOWN & IOPD[2] IO1 PULL-DOWN IN SELECTABLE POWERDOWN & IOPD[1] IO0 PULL-DOWN IN SELECTABLE POWERDOWN & IOPD[0] LOW LOW SELECTABLE POWERDOWN & MIOPD[15] MBUSINT SPICLK SPIOUT LOW LOW SELECTABLE POWERDOWN & MIOPD[14] PULL-DOWN IN SELECTABLE POWERDOWN & MIOPD[13] SIBYNC LOW LOW LOW POWERDOWN SIBDOUT LOW LOW LOW POWERDOWN SIBDIN PULL-DOWN IN PULL-DOWN POWERDOWN SIBMCLK PULL-DOWN IN SELECTABLE POWERDOWN & MIOPD[12] SIBSCLK LOW LOW LOW POWERDOWN PULL-DOWN IN PULL-DOWN POWERDOWN SPIIN SIBIRQ POWERDOWN = (VCCON & VCC3)* VCCON: a bit in the Power Control Register. VCC3: an input signal. MEMPOWERDOWN: a bit in the Memory Configration 4 Register. SELECTABLE: See Table 9.2.2 and 9.2.3. 2-18 Chapter 2 Pin Descriptions Table 2.3.6 TMPR3911/12 Power-Down Pin Mode (3/3) PON* state 1st time power-up state RXPWR LOW LOW LOW POWERDOWN CARDET PULL-DOWN IN PULL-DOWN POWERDOWN TMPR3911/12 pin IROUT power-down state Power-Down Control LOW LOW LOW POWERDOWN PULL-DOWN IN PULL-DOWN POWERDOWN TESTAIU IN IN IN X TESTCPU IN IN IN X TESTIN IN IN IN X LOW LOW LOW X CARDREG* PULL-DOWN IN SELECTABLE POWERDOWN & MIOPD[11] CARDIOWR* PULL-DOWN IN SELECTABLE POWERDOWN & MIOPD[10] CARDIORD* PULL-DOWN IN SELECTABLE POWERDOWN & MIOPD[9] CARD1CSL* PULL-DOWN IN SELECTABLE POWERDOWN & MIOPD[8] CARD1CSH* PULL-DOWN IN SELECTABLE POWERDOWN & MIOPD[7] CARD2CSL* PULL-DOWN IN SELECTABLE POWERDOWN & MIOPD[6] CARD2CSH* PULL-DOWN IN SELECTABLE POWERDOWN & MIOPD[5] CARD1WAIT* PULL-DOWN IN SELECTABLE POWERDOWN & MIOPD[4] CARD2WAIT* PULL-DOWN IN SELECTABLE POWERDOWN & MIOPD[3] CARDDIR* PULL-DOWN IN SELECTABLE POWERDOWN & MIOPD[2] MFIO[1] IN IN SELECTABLE POWERDOWN & MIOPD[1] MFIO[0] IN IN SELECTABLE POWERDOWN & MIOPD[0] ENDIAN IN IN IN X NC[3:1] X X X X VDD 19EACH/34EACH X X X X VSS 17EACH/34EACH X X X X IRIN VIDDONE POWERDOWN = (VCCON & VCC3)* VCCON: a bit in the Power Control Register. VCC3: an input signal. MEMPOWERDOWN: a bit in the Memory Configration 4 Register. SELECTABLE: See Table 9.2.2 and 9.2.3. 2-19 Chapter 2 Pin Descriptions 2.4 Pin Assignment 2.4.1 Pin assignment (in case of TMPR3912AU-92 and TMPR3912XB-92) Table 2.4.1 Pin Assignment (1/3) LQFP NO. FBGA (TMPR3912) NO. I/O Signal Name LQFP NO. FBGA (TMPR3912) NO. I/O Signal Name 1 A1 VDD 45 M2 I/O MIOX[0] 2 C3 I/O D[0] (D[24]) 46 M3 I/O IO[6] 3 E5 VSS 47 L4 I/O IO[5] 4 B1 I/O D[1] (D[25]) 48 N1 VSS 5 C2 I/O D[2] (D[26]) 49 N2 I/O CHICLK 6 E4 VDD 50 M4 I/O CHIFS 7 C1 I/O D[3] (D[27]) 51 P2 I CHIDIN 8 D3 VSS 52 P1 O CHIDOUT 9 D2 I/O D[4] (D[28]) 53 R1 VDD 10 F5 VDD 54 N3 I RXD 11 D1 I/O D[5] (D[29]) 55 L5 O TXD 12 E3 I/O D[6] (D[30]) 56 R2 I/O IO[4] 13 E2 VSS 57 NC 14 F4 I/O D[7] (D[31]) 58 M5 I IRIN 15 E1 VSS 59 R3 O IROUT 16 F3 I/O D[8] (D[16]) 60 N4 VSS 17 F2 VDD 61 P4 VDD 18 G5 I/O D[9] (D[17]) 62 L6 I 19 F1 I/O D[10] (D[18]) 63 R4 O RXPWR 20 G4 VSS 64 N5 I/O IO[3] 21 G3 I/O D[11] (D[19]) 65 P5 I/O IO[2] 22 G2 VDD 66 M6 VSS 23 G1 I/O D[12] (D[20]) 67 R5 O SPICLK 24 G6 I/O D[13] (D[21]) 68 N6 I SPIIN 25 H6 VSS 69 P6 O SPIOUT 26 H3 I/O D[14] (D[22]) 70 L7 VDD 27 H1 I/O D[15] (D[23]) 71 R6 I TESTCPU 28 H2 VDD 72 M7 I TESTIN 29 H4 I ENDIAN 73 N7 O VIDDONE 30 J6 I/O MIOX[1] 74 P7 I 31 J1 I MBUSINT 75 R7 32 J2 I/O MBUSDATA 76 K7 I VCC3 BC32K CARDET TESTAIU VSS 33 J3 VSS 77 L8 O 34 J4 I/O MBUSCLK 78 N8 35 J5 VDD 79 R8 I C32KlN 36 K1 VDD 80 P8 O C32KOUT 37 K2 O SIBMCLK 81 M8 VSS 38 K3 VSS 82 K9 O PWRCS 39 K4 O SIBSCLK 83 R9 I PWRlNT 40 L1 O SIBSYNC 84 P9 41 L2 I SIBDIN 85 I VDD PWROK NC 42 L3 O SIBDOUT 86 M9 I ONBUTN 43 K5 VDD 87 L9 I PON* 44 M1 I SIBIRQ 88 R10 I CPURES* <NOTE> (1) * Active-low signal (2) (3) ( ) indicates the signal name in the little endian mode The signal name change regarding DQMH/L is applied only to TMPR3912AU-92. 2-20 Chapter 2 Pin Descriptions Table 2.4.2 Pin Assignment (2/3) LQFP NO. FBGA (TMPR3912) NO. I/O Signal Name LQFP NO. FBGA (TMPR3912) NO. I/O Signal Name 89 P10 VDD 137 G13 VDD 90 N10 O DISPON 138 (G12) I/O D[28] (D[4]) 91 M10 O FRAME 139 (G11) I/O D[27] (D[3]) 92 R11 VSS 140 F15 VSS 93 P11 O DF 141 F14 I/O D[26] (D[2]) 94 N11 O LOAD 142 F13 VSS 95 L10 O CP 143 F12 I/O D[25] (D[1]) 96 R12 VSS 144 E15 VDD 97 P12 VDD 145 E14 I/O D[24] (D[0]) 98 N12 O VDAT[0] 146 E13 I/O D[23] (D[15]) 99 M11 O VDAT[1] 147 F11 VDD 100 R13 O VDAT[2] 148 D15 I/O D[22] (D[14]) 101 P13 O VDAT[3] 149 D14 VSS 102 M12 VSS 150 D13 I/O D[21] (D[13]) 103 P14 I/O IO[1] 151 E12 VDD 104 R14 VDD 152 C15 I/O D[20] (D[12]) 105 R15 I CARD2WAIT* 153 C14 I/O D[19] (D[11]) 106 N13 O CARD2CSH* 154 D12 VSS 107 L11 O CARD2CSL* 155 B14 I/O D[18] (D[10]) 108 P15 I/O IO[0] 156 B15 VDD 109 N14 VSS (PLL) 157 A15 I/O D[17] (D[9]) 110 L12 O CARDIORD* 158 C13 VSS 111 N15 O CARDIOWR* 159 E11 I/O D[16] (D[8]) 112 M13 O CARDREG* 160 A14 113 M14 I CARD1WAIT* 161 114 K11 VDD (PLL) 162 115 M15 O CARDDIR* 163 116 L13 VDD 117 L14 O 118 K12 119 VDD NC D11 O CS0* A13 O RD* 164 C12 VSS CARD1CSL* 165 B12 VDD O CARD1CSH* 166 E10 O DGRNT* L15 VSS 167 A12 I DREQ* 120 K13 O MCS3* 168 C11 O ALE 121 K14 O MCS2* 169 B11 O WE* 122 J11 O MCS1* 170 D10 VDD 123 K15 O MCS0* 171 A11 I/O A[12] 124 J12 O CS3* 172 C10 I/O A[11] 125 J13 O CS2* 173 B10 VSS 126 J14 O CS1* 174 E9 I/O A[10] 127 J15 VDD 175 A10 I/O A[9] 128 J10 I SYSCLKIN 176 D9 VDD 129 H11 O SYSCLKOUT 177 C9 I/O A[8] 130 H13 VSS 178 B9 I/O A[7] 131 H15 VSS 179 A9 VSS 132 H14 VDD 180 F9 I/O A[6] 133 H12 I/O D[31] (D[7]) 181 E8 I/O A[5] 134 G10 I/O D[30] (D[6]) 182 C8 VDD 135 G15 VSS 183 A8 I/O A[4] 136 G14 I/O D[29] (D[5]) 184 B8 VSS <NOTE> (1) * Active-low signal (2) (3) ( ) indicates the signal name in the little endian mode The signal name change regarding DQMH/L is applied only to TMPR3912AU-92. 2-21 Chapter 2 Pin Descriptions Table 2.4.3 Pin Assignment (3/3) LQFP NO. FBGA (TMPR3912) NO. I/O Signal Name LQFP NO. FBGA (TMPR3912) NO. I/O Signal Name 185 D8 I/O A[3] 203 D5 186 F7 I/O A[2] 204 A3 I DCLKIN VSS 187 A7 VDD 205 B3 O DCLKOUT 188 B7 I/O A[1] 206 D4 VDD 189 C7 I/O A[0] 207 B2 O DQMH (DQML) 190 D7 VSS 208 A2 O DQML (DQMH) 191 E7 VSS B13 NC 192 A6 O DCS0* F6 NC 193 B6 O RAS1* F8 NC 194 C6 O RAS0* F10 NC 195 D6 O CAS3* (CAS0*) G7 NC 196 A5 VDD H5 NC 197 B5 O CAS2* (CAS1*) H10 NC 198 C5 O CAS1* (CAS2*) K6 NC 199 E6 O CAS0* (CAS3*) K8 NC 200 A4 VSS K10 NC 201 B4 VDD N9 NC 202 C4 O DCKE P3 NC <NOTE> (1) * Active-low signal (2) (3) ( ) indicates the signal name in the little endian mode The signal name change regarding DQMH/L is applied only to TMPR3912AU-92. 2-22 Chapter 2 Pin Descriptions 2.4.2 Pin Assignment (in case of TMPR3911BU) Table 2.4.4 Pin Assignment (1/2) NO. I/O Signal Name NO. I/O Signal Name NO. I/O Signal Name 1 VDDH 41 I/O CHICLK 81 2 I/O D[0] (D [24]) 42 I/O CHIFS 82 O VDAT[0] 3 I/O D[1] (D [25]) 43 I CHIDIN 83 O VDAT[1] 4 I/O D[2] (D [26]) 44 O CHIDOUT 84 O VDAT[2] 5 I/O D[3] (D [27]) 45 I RXD 85 O VDAT[3] 6 VSS 46 O TXD 86 VSS 7 I/O D[4] (D [28]) 47 I/O IO[4] 87 I/O IO[1] 8 VDDL 48 I IRIN 88 VDDH 9 I/O D[5] (D [29]) 49 O IROUT 89 I 10 I/O D[6] (D [30]) 50 VSS 90 O CARD2CSH* 11 I/O D[7] (D [31]) 51 VDDL 91 O CARD2CSL* VSS CARD2WAIT* 12 I/O D[8] (D [16]) 52 I CARDET 92 I/O IO[0] 13 I/O D[9] (D [17]) 53 O RXPWR 93 VSS (PLL) 14 I/O D[10] (D [18]) 54 I/O IO[3] 94 O CARDIORD* 15 VSS 55 I/O IO[2] 95 O CARDIOWR* 16 I/O D[11] (D [19]) 56 O SPICLK 96 O CARDREG* 17 I/O D[12] (D [20]) 57 I SPIIN 97 I CARD1WAIT* 18 I/O D[13] (D [21]) 58 O SPIOUT 98 VDD (PLL) 19 I/O D[14] (D [22]) 59 I TESTCPU 99 O CARDDIR* 20 I/O D[15] (D [23]) 60 I TESTIN 100 O CARD1CSL* CARD1CSH* 21 VDDH 61 O VIDDONE 101 O 22 I ENDIAN 62 I TESTAIU 102 O MCS3* 23 I/O MIOX[1] 63 I VCC3 103 O MCS2* 24 I 25 I/O MBUSINT 64 O BC32K 104 O MCS1* MBUSDATA 65 VDDH 105 O MCS0* 26 VSS 66 I C32KlN 106 O CS3* 27 I/O MBUSCLK 67 O C32KOUT 107 O CS2* 28 VDDH 68 VSS 108 O CS1* 29 VDDL 69 O PWRCS 109 30 O SIBMCLK 70 I PWRlNT 110 I SYSCLKIN 31 VSS 71 I PWROK 111 O SYSCLKOUT 32 O SIBSCLK 72 I ONBUTN 112 VSS 33 O SIBSYNC 73 I PON* 113 VDDL 34 I SIBDIN 74 I CPURES* 114 I/O D[31] (D [7]) 35 O SIBDOUT 75 VDDL 115 I/O D[30] (D [6]) 36 NC 76 O DISPON 116 I/O D[29] (D [5]) VDDH 37 I SIBIRQ 77 O FRAME 117 I/O D[28] (D [4]) 38 I/O MIOX[0] 78 O DF 118 I/O D[27] (D [3]) 39 I/O IO[6] 79 O LOAD 119 VSS 40 I/O IO[5] 80 O CP 120 I/O D[26] (D [2]) <NOTE> (1) * Active-low signal (2) ( ) indicates the signal name in the little endian mode 2-23 Chapter 2 Pin Descriptions Table 2.4.5 Pin Assignment (2/2) NO. I/O 121 I/O 122 123 124 125 Signal Name NO. I/O Signal Name D[25] (D [1]) 161 I/O A[0] VDDH 162 VSS I/O D[24] (D [0]) 163 O DCS0* I/O D[23] (D [15]) 164 O RAS1* I/O D[22] (D [14]) 165 O RAS0* 126 VSS 166 O CAS3* (CAS0*) 127 I/O D[21] (D [13]) 167 O CAS2* (CAS1*) 128 I/O D[20] (D [12]) 168 O CAS1* (CAS2*) 129 I/O D[19] (D [11]) 169 O CAS0* (CAS3*) 130 VSS 170 VDDH 131 I/O D[18] (D [10]) 171 O DCKE 132 VDDL 172 I DCLKIN 133 I/O D[17] (D [9]) 173 O DCLKOUT 134 VSS 174 NC 135 NC 175 O DQMH(DQML) 136 I/O D[16] (D [8]) 176 O DQML(DQMH) 137 VDDH 138 O CS0* 139 O RD* 140 VSS 141 VDDL 142 O DGRNT* 143 I DREQ* 144 O ALE 145 O WE* 146 I/O A[12] 147 I/O A[11] 148 I/O A[10] 149 I/O A[9] 150 VDDH 151 I/O A[8] 152 I/O A[7] 153 VSS 154 I/O A[6] 155 I/O A[5] 156 I/O A[4] 157 I/O A[3] 158 I/O A[2] 159 VDDL 160 I/O A[1] <NOTE> (1) * Active-low signal (2) ( ) indicates the signal name in the little endian mode 2-24 NO. I/O Signal Name Chapter 2 Pin Descriptions 2.4.3 Pin Assignment (in case of TMPR3911BXB) Table 2.4.6 Pin Assignment (1/2) NO. I/O Signal Name NO. I/O A1 I/O D[1] (D[25]) L3 I B1 VDDH M3 C1 I/O D[0] (D[24]) N3 I/O D1 I/O D[3] (D[27]) P3 I E1 I/O D[5] (D[29]) R3 F1 I/O D[9] (D[17]) A4 G1 I/O D[12] (D[20]) B4 H1 VDDH C4 O J1 VDDH D4 K1 O SIBSYNC E4 L1 I SIBIRQ F4 M1 I/O IO[5] G4 I/O N1 I CHIDIN H4 I/O P1 O CHIDOUT J4 R1 I/O IO[4] K4 A2 O DQML (DQMH) B2 NC C2 I/O D[2] (D[26]) N4 I D2 I/O D[6] (D[30]) P4 I/O E2 I/O D[8] (D[16]) R4 O Signal Name NO. I/O Signal Name SIBDIN D7 I/O NC M7 I VCC3 IO[6] N7 O BC32K IRIN P7 I C32KIN O TXD R7 O VIDDONE O DCLKOUT A8 VSS VDDH B8 I/O A[4] CAS1* (CAS2*) C8 I/O A[6] VSS D8 I/O A[5] VDDL M8 O C32KOUT I/O D[10] (D[18]) N8 I TESTAIU D[14] (D[22]) P8 MIOX[1] R8 VDDH I/O MBUSDATA A9 I/O A[9] VDDL B9 I/O A[7] L4 O SIBSCLK C9 I/O A[8] M4 VSS D9 VDDH CARDET M9 O PWRCS IO[3] N9 I PWROK IROUT P9 I PWRINT A[3] VSS F2 I/O D[11] (D[19]) A5 O CAS0* (CAS3*) R9 I ONBUTN G2 I ENDIAN B5 O CAS2* (CAS1*) A10 O WE* H2 I MBUSINT C5 O CAS3* (CAS0*) B10 I/O A[10] J2 VSS D5 O RAS1* C10 I/O A[11] K2 VSS E5 NC D10 I/O A[12] VDDL L2 O SIBDOUT M5 VDDL M10 M2 I/O MIOX[0] N5 I/O IO[2] N10 I PON* N2 I/O CHICLK P5 O SPICLK P10 I CPURES* P2 I/O CHIFS R5 O RXPWR R10 O DISPON R2 I RXD A6 O RAS0* A11 VDDL A3 O DQMH (DQML) B6 O DCS0* B11 O ALE DREQ* B3 I DCLKIN C6 VSS C11 I C3 O DCKE D6 I/O A[0] D11 O DGRNT* D3 I/O D[4] (D[28]) M6 O SPIOUT M11 O FRAME E3 I/O D[7] (D[31]) N6 I TESTCPU N11 O LOAD F3 VSS P6 I TESTIN P11 O DF VSS G3 I/O D[15] (D[23]) R6 I SPIIN R11 H3 I/O D[13] (D[21]) A7 I/O A[1] A12 VDDH J3 I/O MBUSCLK B7 I/O A[2] B12 VSS K3 O SIBMCLK C7 VDDL C12 O RD* <NOTE> (1) * Active-low signal (2) ( ) indicates the signal name in the little endian mode 2-25 Chapter 2 Pin Descriptions Table 2.4.7 Pin Assignment (2/2) NO. I/O Signal Name NO. I/O Signal Name D12 O CS0* P14 VSS E12 I/O D[26] (D[2]) R14 VDDH F12 I/O D[29] (D[5]) A15 NC G12 VDDL B15 VDDL H12 O SYSCLKOUT C15 I/O D[18] (D[10]) D[19] (D[11]) J12 O CS2* D15 I/O K12 O MCS3* E15 I/O D[22] (D[14]) L12 VDD (PLL) F15 I/O D[25] (D[1]) M12 O CARDIORD* G15 I/O D[28] (D[4]) N12 O CP H15 VDDH P12 O VDAT[0] J15 O MCS0* R12 O VDAT[3] K15 O CARD1CSH* A13 VSS L15 I B13 I/O D[16] (D[8]) M15 VSS (PLL) C13 I/O D[21] (D[13]) N15 O CARD2CSH* D13 I/O D[23] (D[15]) P15 I CARD2WAIT* E13 VDDH R15 O CARD2CSL* F13 I/O D[27] (D[3]) G13 I/O D[30] (D[6]) H13 O CS3* J13 O CS1* K13 O MCS2* L13 O CARDDIR* M13 O CARDIOWR* N13 O VDAT[1] P13 O VDAT[2] R13 I/O IO[1] A14 I/O D[17] (D[9]) B14 VSS C14 I/O D[20] (D[12]) D14 VSS E14 I/O D[24] (D[0]) F14 VSS G14 I/O D[31] (D[7]) H14 VSS J14 I SYSCLKIN K14 O MCS1* L14 O CARD1CSL* M14 O CARDREG* N14 I/O IO[0] CARD1WAIT* <NOTE> (1) * Active-low signal (2) ( ) indicates the signal name in the little endian mode 2-26 NO. I/O Signal Name 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 D[17] (D[9]) VSS N.C. D[16] (D[8]) VDDH CS0* RD* VSS VDDL DGRNT* DREQ* ALE WE* A[12] A[11] A[10] A[9] VDDH A[8] A[7] VSS A[6] A[5] A[4] A[3] A[2] VDDL A[1] A[0] VSS DCS0* RAS1* RAS0* CAS3* (CAS0*) CAS2* (CAS1*) CAS1* (CAS2*) CAS0* (CAS3*) VDDH DCKE DCLKIN DCLKOUT N.C. DQMH (DQML) DQML (DQMH) 1 131 130 129 128 127 126 125 124 123 122 121 120 119 118 117 116 115 114 113 112 111 110 109 108 107 106 105 104 103 102 101 100 99 98 97 96 95 94 93 92 91 90 89 D[18] (D[10]) VSS D[19] (D[11]) D[20] (D[12]) D[21] (D[13]) VSS D[22] (D[14]) D[23] (D[15]) D[24] (D[0]) VDDH D[25] (D[1]) D[26] (D[2]) VSS D[27] (D[3]) D[28] (D[4]) D[29] (D[5]) D[30] (D[6]) D[31] (D[7]) VDDL VSS SYSCLKOUT SYSCLKIN VDDH CS1* CS2* CS3* MCS0* MCS1* MCS2* MCS3* CARD1CSH* CARD1CSL* CARDDIR* VDD (PLL) CARD1WAIT* CARDREG* CARDIOWR* CARDIORD* VSS (PLL) IO[0] CARD2CSL* CARD2CSH* CARD2WAIT* 132 VDDL 2.4.4 VDDH D[0] (D[24]) D[1] (D[25]) D[2] (D[26]) D[3] (D[27]) VSS D[4] (D[28]) VDDL D[5] (D[29]) D[6] (D[30]) D[7] (D[31]) D[8] (D[16]) D[9] (D[17]) D[10] (D[18]) VSS D[11] (D[19]) D[12] (D[20]) D[13] (D[21]) D[14] (D[22]) D[15] (D[23]) VDDH ENDIAN MIOX[1] MBUSINT MBUSDATA VSS MBUSCLK VDDH VDDL SIBMCLK VSS SIBSCLK SIBSYNC SIBDIN SIBDOUT N.C. SIBIRQ MIOX[0] IO[6] IO[5] CHICLK CHIFS CHIDIN CHIDOUT Chapter 2 Pin Descriptions TMPR3911BU Pin Assignment P-LQFP176-2424-0.50A 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 2-27 VDDH IO[1] VSS VDAT[3] VDAT[2] VDAT[1] VDAT[0] VSS CP LOAD DF FRAME DISPON VDDL CPURES* PON* ONBUTN PWROK PWRlNT PWRCS VSS C32KOUT C32KlN VDDH BC32K VCC3 TESTAIU VIDDONE TESTIN TESTCPU SPIOUT SPIIN SPICLK IO[2] IO[3] RXPWR CARDET VDDL VSS IROUT IRIN IO[4] TXD RXD D[17] (D[9]) VSS D[16] (D[8]) VDD NC CS0* RD* VSS VDD DGRNT* DREQ* ALE WE* VDD A[12] A[11] VSS A[10] A[9] VDD A[8] A[7] VSS A[6] A[5] VDD A[4] VSS A[3] A[2] VDD A[1] A[0] VSS VSS DCS0* RAS1* RAS0* CAS3* (CAS0*) VDD CAS2* (CAS1*) CAS1* (CAS2*) CAS0* (CAS3*) VSS VDD DCKE VSS DCLKIN DCLKOUT VDD DQMH (DQML) DQML (DQMH) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 156 155 154 153 152 151 150 149 148 147 146 145 144 143 142 141 140 139 138 137 136 135 134 133 132 131 130 129 128 127 126 125 124 123 122 121 120 119 118 117 116 115 114 113 112 111 110 109 108 107 106 105 VDD D[18] (D[10]) VSS D[19] (D[11]) D[20] (D[12]) VDD D[21] (D[13]) VSS D[22] (D[14]) VDDss D[23] (D[15]) D[24] (D[0]) VDD D[25] (D[1]) VSS D[26] (D[2]) VSS D[27] (D[3]) D[28] (D[4]) VDD D[29] (D[5]) VSS D[30] (D[6]) D[31] (D[7]) VDD VSS VSS SYSCLKOUT SYSCLKIN VDD CS1* CS2* CS3* MCS0* MCS1* MCS2* MCS3* VSS CARD1CSH* CARD1CSL* VDD CARDDIR* VDD (PLL) CARD1WAIT* CARDREG* CARDIOWR* CARDIORD* VSS (PLL) IO[0] CARD2CSL* CARD2CSH* CARD2WAIT* 2.4.5 VDD D[0] (D[24]) VSS D[1] (D[25]) D[2] (D[26]) VDD D[3] (D[27]) VSS D[4] (D[28]) VDD D[5] (D[29]) D[6] (D[30]) VSS D[7] (D[31]) VSS D[8] (D[16]) VDD D[9] (D[17]) D[10] (D[18]) VSS D[11] (D[19]) VDD D[12] (D[20]) D[13] (D[21]) VSS D[14] (D[22]) D[15] (D[23]) VDD ENDIAN MIOX[1] MBUSINT MBUSDATA VSS MBUSCLK VDD VDD SIBMCLK VSS SIBSCLK SIBSYNC SIBDIN SIBDOUT VDD SIBIRQ MIOX[0] IO[6] IO[5] VSS CHICLK CHIFS CHIDIN CHIDOUT Chapter 2 Pin Descriptions TMPR3912AU-92 P-LQFP208-2828-0.50A 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 104 103 102 101 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 2-28 VDD IO[1] VSS VDAT[3] VDAT[2] VDAT[1] VDAT[0] VDD VSS CP LOAD DF VSS FRAME DISPON VDD CPURES* PON* ONBUTN NC PWROK PWRlNT PWRCS VSS C32KOUT C32KlN VDD BC32K VCC3 VSS TESTAIU VIDDONE TESTIN TESTCPU VDD SPIOUT SPIIN SPICLK VSS IO[2] IO[3] RXPWR CARDET VDD VSS IROUT IRIN NC IO[4] TXD RXD VDD Chapter 2 Pin Descriptions 2.4.6 TMPR3911BXB Ball Assignment P-FBGA177-1313-0.80C4 A 1 2 3 4 5 6 B 3 1 D[1] VDDH (D[25]) 176 174 DQML N.C. (DQMH) 175 172 DQMH DCLKIN (DQML) 173 170 DCLKOUT VDDH C D E F 2 D[0] (D[24]) 4 D[2] (D[26]) 171 DCKE 5 D[3] (D[27]) 10 D[6] (D[30]) 7 D[4] (D[28]) 6 VSS 9 D[5] (D[29]) 12 D[8] (D[16]) 11 D[7] (D[31]) 8 VDDL 13 D[9] (D[17]) 16 D[11] (D[19]) 15 VSS 164 RAS1* N.C. 168 CAS1* (CAS2*) 169 167 166 CAS0* CAS2* CAS3* (CAS3*) (CAS1*) (CAS0*) 165 163 162 VSS RAS0* DCS0* J K L M N P R 28 VDDH 33 SIBSYNC 37 SIBIRQ* 40 IO[5] 43 CHIDIN 44 CHIDOUT 47 IO[4] 26 VSS 31 VSS 35 SIBDOUT 38 MIOX[0] 41 CHICLK 42 CHIFS 45 RXD 34 SIBDIN 36 N.C. 39 IO[6] 48 IRIN 46 TXD 32 SIBSCLK 50 VSS 52 CARDET 54 IO[3] 49 IROUT 51 VDDL 55 IO[2] 56 SPICLK 53 RXPWR 161 A[0] 58 SPIOUT 59 TESTCPU 60 TESTIN 57 SPIIN 63 VCC3 64 BC32K 66 C32KIN 61 VIDDONE 67 C32KOUT 62 TESTAIU 68 VSS 65 VDDH 14 D[10] (D[18]) G H 17 21 D[12] VDDH (D[20]) 22 24 ENDIAN MBUSINT 20 D[15] (D[23]) 19 D[14] (D[22]) 18 D[13] (D[21]) 23 MIOX[1] 27 30 MBUSCLK SIBMCLK 25 MBUSDATA 29 VDDL 7 160 A[1] 158 A[2] 159 VDDL 157 A[3] 8 153 VSS 156 A[4] 154 A[6] 155 A[5] 9 149 A[9] 152 A[7] 151 A[8] 150 VDDH 69 PWRCS 71 PWROK 70 PWRINT 72 ONBUTN 10 145 WE* 148 A[10] 147 A[11] 146 A[12] 75 VDDL 73 PON* 74 CPURES* 76 DISPON 11 141 VDDL 144 ALE 77 FRAME 79 LOAD 78 DF 81 VSS 12 137 VDDH 140 VSS 139 RD* 138 CS0* 94 80 CP 82 VDAT[0] 85 VDAT[3] 13 134 VSS 14 133 D[17] (D[9]) 135 N.C. 136 D[16] (D[8]) 130 VSS 127 D[21] (D[13]) 128 D[20] (D[12]) 131 D[18] (D[10]) 124 D[23] (D[15]) 126 VSS 15 132 VDDL Bottom View 143 142 DREQ* DGRNT* 129 D[19] (D[11]) 120 D[26] (D[2]) 122 VDDH 123 D[24] (D[0]) 125 D[22] (D[14]) 116 D[25] (D[5]) 118 D[27] (D[3]) 119 VSS 121 D[25] (D[1]) 113 VDDL 115 D[30] (D[6]) 114 D[31] (D[7]) 117 D[28] (D[4]) SYSCLKOUT 111 107 CS2* 102 MCS3* 106 CS3* 108 CS1* 103 MCS2* 99 95 CARDDIR* CARDIOWR* 83 VDAT[1] 84 VDAT[2] 87 IO[1] 112 VSS 110 SYSCLKIN 104 MCS1* 100 96 CARD1CSL* CARDREG* 92 IO[0] 86 VSS 88 VDDH 109 VDDH 105 MCS0* 90 89 91 101 98 VDD-PLL 97 CARD1CSH* CARD1WAIT* CARDIORD* 93 VSS-PLL CARD2CSH* CARD2WAIT* CARD2CSL* YY <- Pin No. of QFP AAAA <- Singal Name on Big Endien Mode (BBBB) <- Signal Name on Little Endien Mode ( ) should be used in Little-Endien mode. VDDH: 3.3 V/VDDL: 2.6 V 2-29 ( ) should be used in Little-Endien mode. 2-30 15 14 13 12 11 10 9 8 7 6 5 4 (D[9]) D[17] VDD RD* DREQ* A[12] A[9] VSS A[4] VDD DCS0* VDD VSS DCLKIN D[2] VDD D[22] (D[14]) D[20] VSS VDD (D[0]) D[24] D[23] (D[15]) D[21] VDD (D[8]) D[16] DGRNT* A[10] A[5] VSS (D[13]) VSS CS0* VDD VDD A[3] VSS CAS0* (CAS3*) CAS3* VSS VDD (D[30]) D[6] VSS VSS E (CAS0*) VSS VDD VSS (D[28]) D[4] (D[29]) D[5] D (D[12]) D[19] (D[11]) D[18] VSS VSS ALE A[11] A[8] VDD A[0] RAS0* (D[10]) NC VDD WE* VSS A[7] VSS A[1] RAS1* CAS1* (CAS2*) CAS2* DCKE (D[24]) D[0] (D[25]) (CAS1*) VDD DCLKOUT DQMH (DQML) DQML D[3] (D[27]) D[1] C (D[25]) B (DQMH) VDD A VSS (D[2]) D[26] VSS VSS (D[5]) D[29] VDD D[28] (D[4]) D[25] (D[3]) D[27] (D[6]) D[30] NC (D[21]) D[13] (D[17]) D[9] VSS (D[19]) D[11] VDD (D[20]) D[12] G (D[1]) VDD NC A[6] NC A[2] NC VDD (D[31]) D[7] (D[16]) D[8] VDD (D[18]) D[10] F VSS VDD VSS (D[7]) D[31] SYSCLKOUT NC BOTTOM VIEW VSS NC ENDIAN (D[22]) D[14] VDD (D[23]) D[15] H VDD CS1* CS2* CS3* MCS1* SYSCLKIN MIOX[1] VDD MBUSCLK VSS MBUSDATA MBUSINT J CARD2CSL* CP PON* BC32K VDD CARDET TXD IO[5] SIBDOUT SIBDIN SIBSYNC L MCS0* MCS2* MCS3* VSS VDAT[0] LOAD DISPON NC VDD VIDDONE SPIIN IO[3] VSS RXD CHICLK VSS N CARDDIR* CARDIOWR* (PLL) VSS CARDREG* CARD2CSH* VSS VDAT[1] FRAME ONBUTN VSS TESTIN VSS IRIN CHICFS IO[6] MIOX[0] SIBIRQ M CARD1CSL* CARD1WAIT* VDD CARD1CSH* CARDIORD* (PLL) VDD NC PWRCS NC VCC3 NC VDD SIBSCLK VSS SIBMCLK VDD K IO[0] IO[1] VDAT[3] VDD DF VDD PWROK C32KOUT TESTAIU SPIOUT IO[2] VDD NC CHIDIN CHIOUT P CARD2WAIT* VDD VDAT[2] VSS VSS CPURES* PWRINT C32KIN VSS TESTCPU SPICLK RXPWR IROUT IO[4] VDD R 2.4.7 3 2 1 Chapter 2 Pin Descriptions TMPR3912XB-92 P-FBGA217-1313-0.80B6 Chapter 3 CPU Module 3. 3.1 CPU Module Overview The TMPR3911/12 consists of an embedded TX39/H Processor core along with the System Interface Logic required to support the PDA System. These include a 4 Kbyte instruction cache and a 1 Kbyte data cache used to improve performance, a 32 × 32 multiplier with accumulator used to perform DSP functions to support features such as software modems. Directly interfacing to the CPU core is the CPU Interface logic. The CPU Interface logic consists of a 4deep Write Buffer used to speed up write transactions, DMA Arbitration logic used to arbitrate with the CPU core for SIU DMA requests and also used to provide cache coherency snooping during DMA operations, and Interface Controller logic used to provide the necessary control to the CPU core and to provide a simple interface for initiating memory transactions to the BIU. 3-1 Chapter 3 CPU Module 3.2 CPU Core 3.2.1 Description There are several enhancements for the PDA system. These additional key features of the CPU core are: • Translation Look-aside Buffer (TLB) (4 Kbyte Page size, 32 Entries) • 4 Kbyte instruction cache (I-cache) • • 16 bytes (4 words) per line (256 lines total) • physical address tag per cache line • single valid bit per cache line • programmable burst size (16 bytes to 128 bytes) • instruction streaming mode supported • direct-mapped 1 Kbyte data cache (D-cache) • 4 bytes (1 word) per line (128 lines total) • physical address tag per cache line • single valid bit per cache line • programmable burst size (16 bytes to 128 bytes); burst refill can be disabled • write-through • two-way set associative • cache address snoop mode supported for DMA • 32 × 32 on-chip hardware multiplier • supports 32 × 32 (single-cycle) multiplier operations, with 64-bit accumulator • signed or unsigned data formats • accumulator supports sign-extension and overflow status • existing multiply instructions are enhanced and new multiply and add instructions are added to the MIPS I instruction set to improve the performance of DSP applications 3-2 Chapter 3 CPU Module 3.3 CPU Interface 3.3.1 Block Diagram CPU Read CPU Burst CPU Burst Size CPU Instruction CPU Read Ack CPU Bus Error Interface Controller TX39/H Processor Core CPU Address CPU Data CPU Byte Enable CPU Write Write Buffer Full DMA Request DMA Grant Snoop From SIU From Test From SIU To SIU From Test To Test Start Read Write Burst BurstLen WrInPage Halted HaltCycle Ack BusError Halt To BIU From BIU Datain From BIU Addr Data ByteEn To BIU Write Buffer SAddr SData SByteEn TAddr SStart SRead SWrite SBurst SAck TReq TRd TAck DMA Arbiter Figure 3.3.1 CPU Interface Block Diagram The CPU Interface logic consists of the Interface Controller, the Write Buffer and the DMA Arbiter. These blocks provide the CPU core with the interface to the BIU to launch memory transactions as well as provide the SIU with the interface to launch DMA transactions to and from the BIU. Also provided is a Test Interface that allows reads and writes from and to internal function registers to bypass the CPU core. 3-3 Chapter 3 CPU Module 3.3.2 Write Buffer The CPU core writes into the Write Buffer. The Write Buffer can store up to four write transactions and contains registers to buffer the Address, Data and Byte Enables. As long as there is space in the Write Buffer, the processor will not stall. Once the Write Buffer is full, the CPU is stalled for subsequent writes until there is space in the Write Buffer. When the Write Buffer is not empty, the Write Buffer informs the Interface Controller to start a write transaction to the BIU. Once an acknowledge (Ack) is received from the BIU, the Write Buffer will proceed to the next Address, Data and Byte Enable in the buffer. A Bus Error from the BIU will also cause the Write Buffer to proceed to the next Address, Data and Byte Enable. If the addresses of two consecutive writes are within a 512-byte page, the Interface Controller will assert the WrInPage signal. This signal allows the BIU to keep the SDRAM and/or DRAM in page mode while writing within a 512-byte page. 3.3.3 Interface Controller The Interface Controller logic contains a state machine to control the interface between the CPU core and the BIU. Read transactions are initiated when the CPU core asserts the CPU Read signal. Write transactions are initiated whenever the Write Buffer is not empty. If the CPU attempts to start a read cycle while the Write Buffer is not empty, the write transaction will complete first and the remaining writes in the write buffer are flushed before allowing the read cycle to occur. The one exception is if the read is an instruction fetch from a cacheable location. In this case, the read will take place before the write buffer is flushed. If the Interface Controller is in the middle of an In Page Write (WrInPage asserted), then one more write transaction must occur to take the BIU out of page mode before the read cycle can occur. The Interface Controller initiates a read or write to the BIU by asserting the Start signal. The Read and Write signals will indicate whether the BIU should complete a read or write transaction. The CPU core will perform burst reads to fill the instruction and data caches. The CPU core can burst either 4, 8, 16 or 32 words depending on how the CPU core is configured. The state machine inside the Interface Controller will assert the Burst signal to the BIU and provide the burst size to the BIU using the BurstLen control signals. Bursting can greatly enhance the memory bandwidth because the BIU can keep the SDRAM and/or DRAM devices in page mode during a burst read. The BIU will acknowledge that it is finished with a read or write by asserting the Ack signal. The Ack signal will also indicate that the data input DataIn is valid during a read. During a burst, there will be one Ack for each word of data. If the address that is provided to the BIU via the Addr signals is not mapped into any physical space that is supported by the Address Decoder logic in the BIU, the BusError signal will be asserted by the Watch Dog Timer in the BIU to terminate the bus cycle. The Interface Controller logic will use the BusError signal in place of the Ack signal to end the bus cycle and proceed to the next transaction. If the BusError occurs on a processor read, the CPU Bus Error signal will be asserted to indicate to the CPU that a Bus Error has occurred. For writes the CPU Bus Error will not be asserted since the write would have long ago been completed into the write buffer and the Bus Error will not provide meaningful information. 3-4 Chapter 3 CPU Module The BIU must halt the Interface Controller to prevent a bus cycle from starting in order to insert refresh, or when an external device requests the memory bus by asserting the DMAREQ* pin, or when the memory interface is powered down by asserting the MEMPOWERDOWN control bit in the Memory Configuration 4 register. The BIU will halt the Interface Controller by asserting the Halt signal. The Interface Controller must then assert the Halted signal once the state machine has completed the current memory transaction. Once the BIU sees the Halted signal asserted, it can proceed to insert refresh or provide a DMAGRNT* if an external device has requested the memory bus. Once refresh is finished or the external device de-asserts the DMAREQ* signal, the BIU will release the Halt signal. If the Halt signal is asserted due to the MEMPOWERDOWN signal being set then the BIU will not release the Halt signal until the HaltCycle signal is asserted by the Interface Controller. The HaltCycle signal will be set whenever the Interface Controller starts a read or write cycle, but the Halt signal is asserted. When the BIU sees the HaltCycle signal asserted, the BIU will take one of two possible actions. On the one hand, if the address indicated by the Addr signals corresponds to an internal function register, the BIU will immediately de-assert the Halt signal to allow the transaction to begin. Once the Start signal is asserted, the BIU will immediately re-assert the Halt signal to prevent subsequent memory transactions from beginning. On the other hand, if the address does not correspond to an internal function register, the BIU must bring the memory interface out of power-down mode. This will take several cycles because the SDRAM and/or DRAM devices must be brought out of self refresh mode. Once the memory interface is brought out of power-down mode, the BIU will de-assert the Halt signal. The action taken if the address is a function register allows the CPU core to access internal function registers without having to take the memory interface out of memory power-down mode. This is useful when the processor is running a program out of cache that only requires access to internal function registers. 3-5 Chapter 3 CPU Module 3.3.4 DMA Arbitration The DMA arbiter allows the SIU to launch DMA transactions to the BIU. The SIU will initiate a DMA transaction by pulsing the SStart signal. Once this occurs, the DMA arbiter will assert the DMA Request signal to the CPU core. The CPU core will then assert the DMA Grant signal to indicate that the CPU is now idling. If the SIU is performing a DMA write (as indicated by the SWrite signal), the SAddr, SData and SByteEn signals will then be loaded into the Write Buffer once there is space available in the Write Buffer. As soon as the Write Buffer loads the signals, the DMA Arbitration logic will assert the SAck signal to indicate to the SIU that the DMA write is complete. At the same time that the data is loaded into the Write Buffer, the Snoop signal is asserted to the CPU core. The snoop logic in the CPU core will invalidate the cache locations defined by the SAddr bits when the Snoop signal is asserted. This provides cache coherency during DMA to simplify managing the cache. For a DMA read transaction, the SRead signal will be asserted by the SIU. The Write Buffer will always be flushed before allowing the DMA read to begin. Once the Write Buffer is empty, the DMA read will begin and the SAck signal will be asserted to end the DMA read once the BIU asserts the Ack signal. The SIU will receive data input via the DataIn bus. The SBurst signal from the SIU is used to initiate burst reads. The SIU will only request 4-word bursts, thus the BurstLen signals will be set to a burst length of 4 whenever the SBurst signal is asserted during DMA reads. 3.3.5 CPU Stop Mode In order to reduce the power dissipation in the CPU core, the clock to the CPU core can be disabled. This is possible since the CPU core designs are implemented as fully static. The CPU core will normally be in Stop Mode and will only be active to process interrupts. The CPU enters to the CPU Stop Mode by setting the STOPCPU control bit in the Power Control Register. The STOPCPU control bit will go to the DMA Arbitration logic, which will assert DMA Request to the CPU core upon the STOPCPU signal being asserted. Once the CPU core responds with a DMA Grant, the DMA arbiter will assert a signal FSTOPCPU that is given to the Clock Generator to disable the clock to the CPU core. 3-6 Chapter 3 CPU Module 3.3.6 TLB The TLB in the TX39/H core is based on R3000. The differences between the TLB in the TX39/H core and the TLB in the R3000 are as follows. (1) Kseg2 TLB Mapping Area The address from 0xFF00_0000 to 0xFFFE_FFFF in Kseg2 is a reserved area. The following table shows the address mapping of the TX39/H core. Segment Virtual Address Physical Address Cacheable Kseg2 0xFFFF_FFFF 0xFFFF_0000 TLB Mapped Yes Reserved 0xFFFE_FFFF 0xFF00_0000 0xFFFE_FFFF 0xFF00_0000 No Kseg2 0xFEFF_FFFF 0xC000_0000 TLB Mapped Yes Kseg1 0xBFFF_FFFF 0xA000_0000 0x1FFF_FFFF 0x0000_0000 No Kseg0 0x9FFF_FFFF 0x8000_0000 0x1FFF_FFFF 0x0000_0000 Yes Kuseg 0x7FFF_FFFF 0xC000_0000 TLB Mapped Yes (2) Multi-hit Detection Even though some of virtual address in the TLB entries are same, the TX39/H core does not detect multi-hit while the R3000 detects it. (3) The Number of TLB Entries The TX39/H core has 32 TLB entries while the R3000 has 64 TLB entries. 3.3.6.1 Memory Management System The TX39/H provides a full-featured memory management unit (MMU) utilizing an on-chip Translation Lookaside Buffer (TLB) to provide very fast virtual memory accesses. This chapter describes the operation of the TLB and the CP0 registers that provide the software interface to the TLB. The memory mapping scheme supported by the TX39/H to translate virtual addresses to physical addresses is also described in detail. 3-7 Chapter 3 CPU Module 3.3.6.2 Memory System Architecture The TX39/H’s virtual memory system logically expands the CPU’s physical memory space by translating addresses composed in a large virtual address space into the physical memory space of the TX39/H. Figure 3.3.2 shows the form of an TX39/H virtual address. The most significant 20 bits of a 32bit virtual address are called the virtual page number, or VPN. The VPN allows mapping of 4 Kbyte pages, while the least significant 12 bits (the offset within a page) are passed along unchanged to form the physical address. The three most significant bits of VPN (bits 31..29) further define how addressed are mapped according to whether the TX39/H is in user mode or kernel mode (these modes are described in the paragraphs that follow). 31 12 11 31 30 29 0 1 1 1 x 0 0 1 x 0 1 x 0 VPN Offset 20 12 Kuseg Kseg0 Kseg1 Kseg2 Figure 3.3.2 Virtual Address Format A 6-bit process identifier field is appended to each virtual address to form unique virtual addresses for up to 64 processes. The mapping of these extended, process-unique virtual addresses to physical addresses need not be one-to-one; virtual addresses of two or more different processes may map to the same physical address. 3-8 Chapter 3 CPU Module 3.3.6.3 Privilege States The TX39/H provides two privilege states: the Kernel mode, which is analogous to the “supervisory” mode provided by many machines, and the User mode, where non-supervisory programs are executed. The TX39/H enters the Kernel mode whenever an exception is detected and remains in the Kernel mode until a Restore From Exception (rfe) instruction is executed. Address mapping is different for Kernel and User modes. To simplify the management of user state from within the Kernel, the user-mode address space is a subset of the Kernel-mode address space. Figure 3.3.3 shows the virtual-to-physical memory map for both the User mode and Kernel mode segments. Virtual Physical FFFF ffff FFFF FFFF FFFF 0000 Reserved 1024 Mbytes (TLB) Kseg2 FEFF FFFF Kernel Mapped Cacheable C000 0000 FFFF 0000 Reserved FEFF FFFF Any BFFF ffff 512 Mbytes 512 Mbytes Kseg1 Kernel Unmapped Uncached A000 0000 9FFF ffff Kseg0 Kernel Unmapped Cached 8000 0000 7FFF ffff 2048 Mbytes (TLB) 3684 Mbytes Kuseg User Mapped Cacheable Any 2000 0000 1FFF FFFF 512 Mbytes 000 0000 0000 0000 Figure 3.3.3 The TX39/H Virtual Memory Map 3-9 Chapter 3 CPU Module 3.3.6.4 User-Mode Virtual Addressing When the processor is operating in User mode, a single, uniform virtual address space (kuseg) of 2 Gbytes is available for users. All valid User-mode virtual addresses have the most-significant bit cleared to 0. An attempt to reference an address with the most-significant bit set while in the User mode causes an Address Error exception. The 2 Gbyte User segment begins at address zero. The TLB maps all references to kuseg identically from Kernel and User modes and controls access cacheability. (The N bit in a TLB entry determines whether the reference will be cached.) Kuseg is typically used to hold user code and data, and the current user process typically resides in kuseg. 3.3.6.5 Kernel-Mode Virtual Addressing When the processor is operating in Kernel mode, three distinct virtual address spaces (in addition to kuseg) are simultaneously available. The three segments dedicated to the kernel are: • kseg0. This cached, unmapped segment begins at virtual address 0x8000_0000 and is 512 Mbytes long. • kseg1. This uncached, unmapped segment begins at virtual address 0xA000_0000 and is 512 Mbytes long. • kseg2. This kernel-mapped, cacheable segment 0xC000_0000 and is 1 Gbytes long. begins at virtual address Kseg0. When the most-significant three bits of the virtual address are “100”, the virtual address space selected is a 512-Mbyte kernel physical space (kseg0). The TX39/H direct-maps references within kseg0 onto the first 512 Mbytes of physical address space. These references use cache memory, but they do not use TLB entries. Thus, kseg0 is typically used for kernel executable code and some kernel data. Kseg1. When the most-significant three bits of the virtual address are “101”, the virtual address space selected is a 512-Mbyte kernel physical space (kseg1). The processor directly maps kseg1 onto the first 512 Mbytes of physical address space and uses no TLB entries. Unlike kseg0, kseg1 uses uncashed references. An operating system typically uses kseg1 for I/O register, ROM code, and disk buffers. Kseg2. When the most-significant two bits of the virtual address are “11”, the virtual address space selected is a 1024 Mbyte kernel virtual space (kseg2). Like kuseg, kseg2 uses TLB entries to map virtual addresses to arbitrary physical ones, with or without caching. (The N bit in a TLB entry determines whether the reference will be cached.) An operating system typically uses kseg2 for stacks and per-process data that it must remap on context switches, for user page tables (memory map), and for some dynamically allocated data areas. Kseg2 allows selective caching and mapping on a per-page basis, rather than requiring an all or nothing approach. 3-10 Chapter 3 CPU Module 3.3.6.6 Virtual Memory and the TLB Mapped virtual addresses are translated into physical addresses using a Translation Lookaside Buffer (TLB). The TLB is a fully associative memory device that holds 32 entries to provide mapping of 32 4 Kbyte pages. When address mapping is indicated (that is, when the access is in kuseg or kseg2), each TLB entry is simultaneously checked for a match with the extended virtual address. The CPU supports up to four coprocessors. Coprocessor 0 (CP0), which is called the System Control Coprocessor, is implemented as an integral part of the TX39/H. CP0 supports address translation, exception handling, and other “privileged” operations. It consists of the 32-entry TLB plus the ten registers shown in Figure 3.3.4. The sections that follow describe how each of the four TLB-related registers is used. (Note: CP0 functions and registers associated with exception handling are described in Chapter 6 of the 32-Bit TX System RISC TX39 Family Architecture manual.) CP0 & the TLB EntryHi Register EntryLo Register Status Register Cause Register Index Register Context Register EPC Register Random Register BadVA 31 TLB 8 7 Config Register PRld (“Safe” entries) (See Random Register) 0 Figure 3.3.4 The CP0 Registers & the TLB 3.3.6.7 TLB Entries Each TLB entry is 32 bits wide and its format is shown in Figure 3.3.5 Each of the fields of a TLB entry has a corresponding field in the EntryHi/EntryLo register pair described next. Refer to Figure 3.3.6 for a description of each of the TLB entry fields. 63 0 VPN PID 0 PFN 20 6 6 20 Figure 3.3.5 Format of a TLB Entry 3-11 N D V G 0 1 8 1 1 1 Chapter 3 CPU Module 3.3.6.8 EntryHi & EntryLo Registers (CP0 register No.10, No.2) These two registers provide the data pathway through which the TLB is read, written, or probed. When address translation exceptions occur, these registers are loaded with relevant information about the address that caused the exception. The format of the EntryHi and EntryLo register pair a is the same as the format of TLB entry and is illustrated in Figure 3.3.6. EntryLo is the natural form of a Page Table Entry (PTE); however, since PTEs are always loaded by system software, not by the TX39/H hardware, an operating system can use another format for memory-resident PTEs. TLB EntryHi Register (CP0 register No.10) 63 44 43 VPN PID 0 38 37 32 VPN PID 0 20 6 6 Virtual Page Number. Bits 31..12 of virtual address. Process ID Process ID field. A 6-bit field which lets multiple processes share the TLB while each process has a distinct mapping of otherwise identical virtual page numbers. Reserved. Currently ignores writes, returns zero when read. TLB EntryLo Register (CP0 register No.2) 31 12 PFN N D V G 0 11 10 9 8 7 0 PFN N D V G 0 20 1 1 1 1 8 Page Frame Number. Bits 31..12 of the physical address. The TX39/H maps a virtual page to PFN. Non-cacheable. If this bit is set, the page is marked as non-cacheable and the TX39/H directly accesses main memory instead of first accessing the cache. Dirty. If this bit is set, the page is marked as “dirty” and therefore writable. This bit is actually a “writeprotect” bit that software can use to prevent alteration of data. If an entry is accessed for a write operation when the D bit is cleared, the TX39/H causes a TLB Mod trap. The TLB entry is not modified on such a trap. Valid. If this bit it set, it indicates that the TLB entry is valid; otherwise, a TLBL or TLBS Miss occurs. Global. If this bit it set, the TX39/H ignores the PID match requirement for valid translation. In kseg2, the Global bit lets the kernel access all mapped data without requiring it to save or restore PID (Process ID) values. Reserved. Currently ignores writes, returns zero when read. Figure 3.3.6 The TLB EntryHi & EntryLo Registers 3-12 Chapter 3 CPU Module 3.3.6.9 Virtual Address Translation During virtual-to-physical address translation, the TX39/H compares PID and the highest 20 bits (the VPN) of the virtual address to the contents of the TLB. Figure 3.3.7 illustrates the TLB address translation process. A virtual address matches a TLB entry when the virtual page number (VPN) field of the virtual address equals the VPN field of the entry, and either the Global (G) bit of the TLB entry is set, or the process identifier (PID) field of the virtual address (as held in the EntryHi register) matches the PID field of the TLB entry. While the Valid (V) bit of the entry must be set for a valid translation to take place, it is not involved in the determination of a matching TLB entry. If a TLB entry matches, the physical address and access control bits (N, D, and V) are retrieved from the matching TLB entry. Otherwise, a TLB miss (or UTLB miss) exception occurs. If the access control bits (D and V) indicate that the access is not valid, a TLB modification or TLB miss exception occurs. If the N bit is set, the physical address that is retrieved is used to access main memory, bypassing the cache. 3-13 Chapter 3 CPU Module Address Translation Input Virtual Address VPN & PID MSB = 1 Yes User Mode Yes Address Error No Exception No VPN Match No Yes Global No G=1 PID Match No Yes Yes Valid V=1 No Yes Dirty Yes Write No Yes D=1 MSB = 1 No Yes No TLB Mod Noncacheable Yes TLB Miss N=1 Exception UTLB Miss Exception Access Main Memory Access Cache Output Physical Address Figure 3.3.7 TLB Address Translation 3-14 Chapter 3 CPU Module 3.3.6.10 The Index Register (CP0 register No.0) The Index Register is a 32-bit, read/write register, which has 5 bits that index an entry in the TLB. The most significant bit of the register shows the success or failure of a TLB Probe (tlbp) instruction (described later in this chapter). The Index register also specifies the TLB entry that will be affected by the TLB Read (tlbr) and TLB Write Index (tlbwi) instructions. Figure 3.3.8 shows the format of the Index register. Index Register 31 30 13 12 P 1 P Index 0 8 7 0 0 Index 0 17 5 8 Probe failure. Set to 1 when the last TLBProbe (tlbp) instruction was unsuccessful. Index to the TLB entry that will be affected by the TLBRead and TLBWrite instruction. Reserved. Currently ignores writes, returns zero when read. Figure 3.3.8 The Index Register 3.3.6.11 The Random Register (CP0 register No.1) The Random Register is a 32-bit register. The format of the Random Register is shown in Figure 3.3.9. The five-bit Random filed indexes a random entry in the TLB. The TX39/H decrements the Random field during every machine cycle but constrains the value of this field to the TLB indexes from 31 to 8 (the counter wraps around from 8 to 31 skipping values 7 through 0). The TLB Write Random (tlbwr) instruction is used to write the TLB entry that this register indexes. The first eight entries (0 to 7) are the “safe” entries because a tlbwr instruction can never replace the contents of these entries. Typically, these eight entries are reserved for use by the operating system. Although normal operations never require it, the contents of this register can be read to verify proper operation of the process. To further simplify testing, the Random field is set to a value of 31 when the TX39/H is reset. Random Register 31 13 12 Random 0 8 7 0 0 Random 0 18 5 8 A random index with a value ranging from 8 to 31 to a TLB entry. Reserved. Currently ignores writes, returns zero when read. Figure 3.3.9 The Random Register 3-15 Chapter 3 CPU Module 3.3.6.12 TLB Instructions The instructions that the TX39/H provides for working with the TLB are listed in Table 3.3.1 and described briefly below. Table 3.3.1 TLB Instructions Op Code tlbp tlbr tlbwi tlbwr Description Translation Lookaside Buffer Probe Translation Lookaside Buffer Read Translation Lookaside Buffer Write Index Translation Lookaside Buffer Write Random Translation Lookaside Buffer Probe (tlbp). This instruction probes the TLB to see if an entry matches the EntryHi register contents. If a match exists, the TX39/H loads the Index register with the index of the entry that matches the EntryHi register. When on match exists, the TX39/H sets the high order bit (the P bit) of the Index register. Translation Lookaside Buffer Read (tlbr). This instruction loads EntryHi and EntryLo registers with the contents of the TLB entry specified by the contents of the Index register. Translation Lookaside Buffer Write Index (tlbwi). This instruction loads specified TLB entry with the contents of the EntryHi and EntryLo registers. The contents of the Index register specify the TLB entry. Translation Lookaside Buffer Write Random (tlbwr). This instruction loads a pseudo-randomly specified TLB entry with the contents of the EntryHi and EntryLo registers. The contents of the Random register specify the TLB entry. 3-16 Chapter 4 BIU Module 4. 4.1 BIU Module Overview The BIU provides an interface to the memory devices in the system, including static devices, as well as DRAM, HDRAM and SDRAM devices. An overall block diagram of the BIU is shown in Figure 4.1.1. The BIU provides control to support the following memory devices: • • • • SDRAM chip select (DCS0*, DCS1*) and/or DRAM (RAS0*, RAS1*) • 8-bit or 16-bit data bus width SDRAM configuration • 16-bit or 32-bit data bus width DRAM configuration • 16-bit or 32-bit data bus width HDRAM configuration • 4 Mbit, 16 Mbit, 64 Mbit and 128 Mbit (*) parts supported (*) 128 Mbit is supported only by TMPR3912AU-92/XB-92. • page mode reads and writes supported • independent refresh counters for each bank • self refreshing parts supported to retain memory when system is powered down 4 general purpose chip selects (CS3*-CS0*) • 16-bit or 32-bit ports • programmable wait states • read page mode 4 general purpose chip selects (MCS3*- MCS0*) • 16-bit ports • programmable wait states • read page mode 2 full PCMCIA slots • 8 bit or 16 bit ports • IORD and IOWR provided to support I/O cards • WAIT signal supported Most of the BIU logic uses the CLK signal (×4 frequency of SYSCLK) as the clock, but in order to increase the memory bandwidth, SDRAM devices are accessed using the signal DCLKOUT (×8 frequency of SYSCLK). The DCLKOUT signal is also used to provide more precise timing for generating the control signals for the chip selects, as well as the SDRAM and DRAM control signals. Input data is sampled using the DCLKIN signal which is connected externally to the DCLKOUT signal. The external connection ensures that the input data and DCLKIN will not be skewed, which is necessary to meet the hold time specification on the SDRAM devices. Also, the external looping of DCLKOUT to DCLKIN helps to improve the access time of normal DRAMs, since the input data will be sampled closer to the end of the access. 4-1 Chapter 4 BIU Module 4.1.1 Block Diagram Input Data Input Data Path Halted HaltCycle Halt BusError Addr[31:0] ByteEn Arbitrator A[12:0] Address Decoder DRAM & SDRAM Controller Start Read Write Burst BurstLen WrInPage Memory State Machine Chip Select Controller Ack Output Data D[31:0] Output Data Path Figure 4.1.1 BIU Block Diagram 4-2 SDRAM Control DRAM Control CS3-CS0 MCS3-MCS0 Card Control Chapter 4 BIU Module 4.2 Address Decoder The Address Decoder provides the decoding for the address space in the system. The Address Decoder also contains the logic to generate the address signals A[12:0] for the memory devices, along with Address Re-Mapper logic used to re-direct memory addresses. 4.2.1 System Address Map The System Address Map is shown in Table 4.2.1. The address space is partitioned to support two banks (Bank 1 and Bank 0) of DRAM and/or SDRAM, four general purpose 16/32-bit chip selects (CS3-CS0), four general purpose 16-bit-only chip selects (MCS3-MCS0), two PCMCIA slots (Card 2 and Card 1), and internal function register access. The address space contains two primary regions: kseg0/kseg1 are only accessible in kernel mode, while kuseg is accessible in either user or kernel mode. MCS3-MCS0 are available in kuseg space and are thus always available to either user or kernel mode accesses. CS3-CS1 are located in both kseg and kuseg space, but accesses in kuseg space can be independently disabled for each chip select using the ENCS3USER, ENCS2USER, and ENCS1USER control bits in the Memory Configuration 0 Register. CS0 is used as the chip select for the boot ROM in the system. It is mapped starting at address $11000000 in kernel space, which will map into the TX39/H boot vector location at address $1FC00000. CS0 is also mapped in kuseg space to allow access to the ROM by programs operating in user mode. Card 1 and Card 2 are mapped into kuseg space for memory accesses and kernel-only space for IO and Attribute accesses. To access the attribute space in a card, the CARD1IOEN or CARD2IOEN bits in the Memory Configuration 3 register must be cleared prior to accessing the Card space. For I/O accesses the CARD1IOEN or CARD2IOEN bits must be set prior to accessing the Card space. The processor can write to the Mode Registers in the SDRAMs in kernel mode at address $10E00000 and $10F00000 for Bank 0 and Bank 1 SDRAM banks, respectively. Bank 0 and Bank 1 are each mapped into four different locations. Each location is just an image of the other locations. Each Bank can contain either DRAM or SDRAM devices, with the only restriction being that Bank 1 cannot contain SDRAM if Bank 0 contains DRAM. A system can be built without DRAM or SDRAM and instead can contain SRAM as the main memory. In this case at least one bank of SRAM should be connected to CS1 and the ENCS1DRAM control bit in the Memory Configuration 0 Register should be set. Setting this bit will cause CS1 to map in place of Bank 0 and Bank 1, as shown in Table 4.2.1. This is required because exception vectors are mapped into physical address 0x0000_0080 (in case of BEU = 0 in TX39/H core STATUS register), thus it is required that some memory exist in this region to support exception handling. Accesses to reserved or non-enabled locations will respond with a Bus Error if the Watch Dog Timer is enabled. 4-3 Chapter 4 BIU Module Table 4.2.1 System Address Map (Physical Address) Size Address Segment Devices 16 Mbyte FF00_0000 reserved reserved 1 Gbyte C000_0000 kseg2 reserved 1 Gbyte 7C00_0000 kuseg reserved 64 Mbyte 7800_0000 kuseg MCS3 64 Mbyte 7400_0000 kuseg MCS2 64 Mbyte 7000_0000 kuseg MCS1 64 Mbyte 6C00_0000 kuseg MCS0 64 Mbyte 6800_0000 kuseg Card 2 (Memory) 64 Mbyte 6400_0000 kuseg Card 1 (Memory) 64 Mbyte 6000_0000 kuseg CS3 (if enabled) 64 Mbyte 5C00_0000 kuseg CS2 (if enabled) 64 Mbyte 5800_0000 kuseg CS1 (if enabled) 128 Mbyte (*) 5000_0000 kuseg CS0 (ROM) 128 Mbyte 4800_0000 kuseg reserved 32 Mbyte 4600_0000 kuseg DRAM BANK1 32 Mbyte 4400_0000 kuseg DRAM BANK0 32 Mbyte 4200_0000 kuseg CS1 (if enabled, else DRAM BANK 1) 32 Mbyte 4000_0000 kuseg 512 Mbyte 2000_0000 reserved CS1 (if enabled, else DRAM BANK 0) reserved 240 Mbyte (*) 1100_0000 kseg0, kseg1 CS0 (ROM) 1 Mbyte 10F0_0000 kseg0, kseg1 SDRAM BANK 1 Mode Register 1 Mbyte 10E0_0000 kseg0, kseg1 SDRAM BANK 0 Mode Register 2 Mbyte 10C0_0000 kseg0, kseg1 Internal Function Registers 4 Mbyte 1080_0000 kseg0, kseg1 CS3 4 Mbyte 1040_0000 kseg0, kseg1 CS2 4 Mbyte 1000_0000 kseg0, kseg1 CS1 64 Mbyte 0C00_0000 kseg0, kseg1 Card 2 (I/O or Attribute) 64 Mbyte 0800_0000 kseg0, kseg1 Card 1 (I/O or Attribute) 32 Mbyte 0600_0000 kseg0, kseg1 DRAM BANK1 32 Mbyte 0400_0000 kseg0, kseg1 DRAM BANK 0 32 Mbyte 0200_0000 kseg0, kseg1 CS1 (if enabled, else DRAM BANK 1) 32 Mbyte 0000_0000 kseg0, kseg1 CS1 (if enabled, else DRAM BANK 0) (*) Note: Since external addresses (HA[25:0] are only 26 bit width, memory space which can be used physically is only 64 Mbyte of these CS0 area. Upper 5 bits of internal addresses (Addr[31:27]) are discarded, so the access to the remaining area overlaps to the physical 64 Mbyte area. 4-4 Chapter 4 BIU Module 4.2.2 Address Generation The Address Decoder logic generates the A[12:0] address bus for the memory devices. Addresses are multiplexed on the A[12:0] address bus. For static devices such as CS3-CS0, MCS3-MCS0, Card 2 and Card 1, the addresses are multiplexed such that Addr[25:13] is provided first-in-time followed by Addr[12:0], as shown in Figure 4.2.1. Addr[25:13] must be latched with an external latch using the ALE signal. The latched addresses concatenated with A[12:0] will provide a 26-bit address bus for the system, HA[25:0]. TX3911/12 ALE A[12:0] Addr[25:13] D Addr[12:0] ALE HA[25:0] Q LE HA[25:0] A[12:0] Figure 4.2.1 ALE Timing DRAM and SDRAM devices contain multiplexed address buses. Thus, A[12:0] will be directly connected to the DRAM and SDRAM devices. In order to support a wide range of DRAM and SDRAM types and configurations, there are control bits in the Memory Configuration 0 Register that provide software configuration for the Row and Column address bit positions. These control bits are ROWSEL0[1:0] and COLSEL0[2:0] for Bank 0, and ROWSEL1[1:0] and COLSEL1[2:0] for Bank 1. Table 4.2.2 shows the position that specific address bits are placed, depending on the configuration of the control bits. This flexibility in address bit positioning makes it possible to support 4-Mbit, 16-Mbit, and 64-Mbit DRAM and SDRAM devices with different bus width configurations. The two sets of control bits make it possible to support different devices in Bank 0 and Bank 1. The “φ” character in the table means that this bit position will be a zero and the “X” implies a “don’t care” bit position. Table 4.2.2 TMPR3912 DRAM and SDRAM Address Mapping ROW A[12:0] ROWSEL COL A[12:0] COLSEL 18, 17:9 00 22, 20, 18, 8:1 0000 22, 18, 20, 19, 17:9 01 19, 18, 8:2 0001 20, 22, 21, 19, 17:9 10 21, 20, 18, 8:2 0010 22, 23, 21, 19, 17:9 11 23, 22, 20, 18, 8:2 0011 24, 22, 20, 18, 8:2 0100 18, φ, X, 8:0 0101 22, X, φ, 21, 8:0 0110 18, φ, X, 21, 8:1 0111 22, X, φ, 23, 21, 8:1 1000 24, 23, 21, 8:2 1001 Example: When ROWSEL[1:0] = 01, the address bits Addr[22], Addr[18], Addr[20], Addr[19] and Addr[17:9] are outputed to A[12], A[11], A[10], A[9] and A[8:0] pins respectively as row address for DRAM and/or SDRAM. When COLSEL[3:0] = 1000, the address bits Addr[22], undefined value, zero data, Addr[23], Addr[21], and Addr[8:1] are outputed to A[12], A[11], A[10], A[9], A[8], A[7:0] respectively as column address for DRAM and/or SDRAM. 4-5 Chapter 4 BIU Module 4.2.3 Address Re-Mapper Logic The Address Decoder logic provides an Address Re-Mapper that allows addresses to be re-directed. There are two separate sets of Re-Mapper registers provided. The Memory Configuration 5-8 Registers contain the STARTVAL2[31:9], MASK2[3:0] and RMAPADD2[31:9] control bits for one Re-Mapper, and the STARTVAL1[31:9], MASK1[3:0] and RMAPADD1[31:9] control bits for the other Re-Mapper. Each Re-Mapper contains its own enable bit defined by the ENRMAP2 and ENRMAP1 control bits in the Memory Configuration 0 Register. If the enable bits are not set, then no address Re-Mapping will occur. The Re-Mapper works as described in the following paragraph. The Addr[31:2] address output of the CPU Interface is compared with the STARTVAL[31:9] bits. If the addresses compare, the upper address bits are replaced with the RMAPADD[31:9] bits. The lower bits[8:2] are always passed through. This provides a 512-byte block that can be re-mapped to any other 512-byte block. The MASK[3:0] bits are used to select either a 512, 1K, 2K, 4K or 8 Kbyte block. A bitwise “AND” of the MASK[3:0] bits with Addr[12:9] is performed before the address comparison. If the address compares to the STARTVAL bits then the address is replaced with the RMAPADD bits. The resulting address is then provided to the Address Decoder logic. Table 4.2.3 shows the resulting address when the comparison is true for the different possible MASK settings. The STARTVAL[12:9] bits are valid as shown by the “V” in the table. Otherwise the bits must be set to zero as shown. Table 4.2.3 Address Re-Mapper MASK[3:0] STARTVAL[12:9] Address Result F V, V, V, V RMAPADD[31:9], Addr[8:2] E V, V, V, 0 RMAPADD[31:10], Addr[9:2] C V, V, 0, 0 RMAPADD[31:11], Addr[10:2] 8 V, 0, 0, 0 RMAPADD[31:12], Addr[11:2] 0 0, 0, 0, 0 RMAPADD[31:13], Addr[12:2] The primary function of the Re-Mapper logic is to support Flash devices, which have slow write access times, are block-oriented, and require a lot of overhead. The re-mapping of Flash writes into normal memory space allows the Flash to be written much less frequently. Anytime a write occurs within the re-mapped range, the write will instead take place into the desired re-mapped memory location. The software can then setup memory protection to protect writes to the rest of the Flash, outside of the previously selected range or block. Once a memory protection exception occurs, the software can disable the Re-Mapper, move the data from normal memory to the Flash, then move the STARTVAL bits to point to a new address, corresponding to a new address block. 4-6 Chapter 4 BIU Module 4.3 Chip Select Controller 4.3.1 Description The Chip Select Controller provides the logic required to generate CS3-CS0, MCS3-MCS0, Card 2, and Card 1 control signals. CS3-CS0 can each independently be set as either 32-bit or 16-bit ports. MCS3-MCS0, are always 16-bit ports. Card 2 and Card 1 can be set as either 16-bit or 8-bit ports. The access time for each chip select is individually programmed using the control bits in the Memory Configuration 1-3 Registers. Also provided for CS3-CS0 and MCS3-MCS0 is separate access time control for Read Page Mode that can be enabled or disabled independently for each chip select using the ENCSχPAGE (χ = 0, 1, 2, 3), ENMCSχPAGE (χ = 0, 1, 2, 3) control bits in the Memory Configuration 3 Register. The Read Page Mode provides burst read capability to support memory devices such as page mode ROMs. There is separate access time control provided for memory accesses to Card 2 or Card 1, or IO/Attribute accesses to Card 2 or Card 1. The address inputs for all 32-bit memory devices should be connected starting with HA[2] and all 16-bit memory devices should be connected starting with HA[1]. The PCMCIA cards will use all the address bits HA[25:0]. 4-7 Chapter 4 BIU Module 4.3.2 Access Mapping This section describes the mapping between the byte lanes of the CPU registers (R[ ]) and the byte lanes of external signals (D[ ]). Depending upon CPU endianness, the signal names of some pins are reorganized (see Table 4.3.1). In this section Xl[ ] means X[ ] in little-endian mode, Xb[ ] means X[ ] in big-endian mode. For example CASl[ ] means CAS[ ] in little-endian mode, and CASb[ ] means CAS[ ] in big-endian mode. example: In case of little-endian, the physical pins [133:145] are named Dl[7:0], whereas in big-endian case, the same physical pins are named Db[31:24]. Table 4.3.1 Signal Name in each Endian Mode Pin No. 3911BXB Little-endian Big-endian 3912AU-92 3912XB-92 P7, N7, M6, R7, N6, M5, R6, P5 133-145 H12-E14 Dl[7:0] Db[31:24] N4, R5, N3, P3, R4, R3, P1, N2 146-159 E13-E11 Dl[15:8] Db[23:16] C7, D7, C8, A7, B6, D6, A6, B5 27-16 H1-F3 Dl[23:16] Db[15:8] C5, B4, A5, C4, A4, B3, A1, A3 14-2 F4-C3 Dl[31:24] Db[7:0] E3 195 D6 CASl[0]* CASb[3]* E2 197 B5 CASl[1]* CASb[2]* D3 198 C5 CASl[2]* CASb[1]* E1 199 E6 CASl[3]* CASb[0]* C1 207 B2 DQMLl DQMHb B1 208 A2 DQMHl DQMLb P11 117 L14 CARD1CSL* CARD1CSL* (*1) R10 118 K12 CARD1CSH* CARD1CSH* (*1) R15 107 L11 CARD2CSL* CARD2CSL* (*1) R13 106 N13 CARD2CSH* CARD2CSH* (*1) *1) not affected by endianness Table 4.3.2, 4.3.3, 4.3.4, and 4.3.5 show the access mapping in little-endian mode, and Table 4.3.6, 4.3.7, 4.3.8, and 4.3.9 shows the access mapping in big-endian mode. Note that in both little-endian configuration and big-endian configuration, each device is connected to the same physical pins. 4-8 Chapter 4 BIU Module Table 4.3.2 Access Mapping (SDRAM in Little-Endian mode) (X: undefined) Access HA[1:0] Data Bus Width (*1) DQMHl, DQMLl Dl[31:24] Dl[23:16] Dl[15:8] Dl[7:0] Word(1/2) 00 16-bit LL R[15:8] R[7:0] X X Word(2/2) 10 16-bit LL R[31:24] R[23:16] X X Triple Byte(1/2) 01 16-bit LH R[15:8] X X X Triple Byte(2/2) 10 16-bit LL R[31:24] R[23:16] X X Triple Byte(1/2) 00 16-bit LL R[15:8] R[7:0] X X Triple Byte(2/2) 10 16-bit HL X R[23:16] X X Half-Word 00 16-bit LL R[15:8] R[7:0] X X Half-Word 10 16-bit LL R[15:8] R[7:0] X X Byte 00 16-bit HL X R[7:0] X X Byte 01 16-bit LH R[7:0] X X X Byte 10 16-bit HL X R[7:0] X X Byte 11 16-bit LH R[7:0] X X X Word(1/4) 00 8-bit LH R[7:0] X X X Word(2/4) 01 8-bit LH R[15:8] X X X Word(3/4) 10 8-bit LH R[23:16] X X X Word(4/4) 00 8-bit LH R[31:24] X X X Triple Byte(1/3) 01 8-bit LH R[15:7] X X X Triple Byte(2/3) 10 8-bit LH R[23:16] X X X Triple Byte(3/3) 11 8-bit LH R[31:24] X X X Triple Byte(1/3) 00 8-bit LH R[7:0] X X X Triple Byte(2/3) 01 8-bit LH R[15:8] X X X Triple Byte(3/3) 10 8-bit LH R[23:16] X X X Half-Word(1/2) 00 8-bit LH R[7:0] X X X Half-Word(2/2) 01 8-bit LH R[15:8] X X X Half-Word(1/2) 10 8-bit LH R[7:0] X X X Half-Word(2/2) 11 8-bit LH R[15:8] X X X Byte 00 8-bit LH R[7:0] X X X Byte 01 8-bit LH R[7:0] X X X Byte 10 8-bit LH R[7:0] X X X Byte 11 8-bit LH R[7:0] X X X *1) selected by Memory Configuration 0 Register BANKχCONF[1:0] (χ = 0, 1). 4-9 Chapter 4 BIU Module Table 4.3.3 Access Mapping (DRAM/HDRAM in Little-Endian Mode) Access HA[1:0] Data Bus Width (*1) CASl[3:0]* (*2) Dl[31:24] Dl[23:16] Dl[15:8] Dl[7:0] Word 00 32-bit LLLL R[31:24] R[23:16] R[15:8] R[7:0] Triple Byte 00 32-bit HLLL X R[23:16] R[15:8] R[7:0] Triple Byte 01 32-bit LLLH R[31:24] R[23:16] R[15:8] X Half-Word 00 32-bit HHLL X X R[15:8] R[7:0] Half-Word 10 32-bit LLHH R[15:8] R[7:0] X X Byte 00 32-bit HHHL X X X R[7:0] Byte 01 32-bit HHLH X X R[7:0] X Byte 10 32-bit HLHH X R[7:0] X X Byte 11 32-bit LHHH R[7:0] X X X Word(1/2) 00 16-bit LLHH R[15:8] R[7:0] X X Word(2/2) 10 16-bit LLHH R[31:24] R[23:16] X X Triple Byte(1/2) 01 16-bit LHHH R[15:8] X X X Triple Byte(2/2) 10 16-bit LLHH R[31:24] R[23:16] X X Triple Byte(1/2) 00 16-bit LLHH R[15:8] R[7:0] X X Triple Byte(2/2) 10 16-bit HLHH X R[23:16] X X Half-Word 00 16-bit LLHH R[15:8] R[7:0] X X Half-Word 10 16-bit LLHH R[15:8] R[7:0] X X Byte 00 16-bit HLHH X R[7:0] X X Byte 01 16-bit LHHH R[7:0] X X X Byte 10 16-bit HLHH X R[7:0] X X Byte 11 16-bit LHHH R[7:0] X X X *1) selected by Memory Configuration 0 Register BANKχCONF[1:0] (χ = 0, 1). *2) asserted for both read access and write access. 4-10 Chapter 4 BIU Module Table 4.3.4 Access Mapping (CSχand MCSχin Little-Endian Mode) (X: undefined) Access HA[1:0] Port Size (*1) CASl[3:0]* (*2) Dl[31:24] Dl[23:16] Dl[15:8] Dl[7:0] Word 00 32-bit LLLL R[31:24] R[23:16] R[15:8] R[7:0] Triple Byte 00 32-bit HLLL X R[23:16] R[15:8] R[7:0] Triple Byte 01 32-bit LLLH R[31:24] R[23:16] R[15:8] X Half-Word 00 32-bit HHLL X X R[15:8] R[7:0] Half-Word 10 32-bit LLHH R[15:8] R[7:0] X X Byte 00 32-bit HHHL X X X R[7:0] Byte 01 32-bit HHLH X X R[7:0] X Byte 10 32-bit HLHH X R[7:0] X X Byte 11 32-bit LHHH R[7:0] X X X Word(1/2) 00 16-bit HHLL X X R[15:8] R[7:0] Word(2/2) 10 16-bit HHLL X X R[31:24] R[23:16] Triple Byte(1/2) 01 16-bit HHLH X X R[15:8] X Triple Byte(2/2) 10 16-bit HHLL X X R[31:24] R[23:16] Triple Byte(1/2) 00 16-bit HHLL X X R[15:8] R[7:0] Triple Byte(2/2) 10 16-bit HHHL X X X R[23:16] Half-Word 00 16-bit HHLL X X R[15:8] R[7:0] Half-Word 10 16-bit HHLL X X R[15:8] R[7:0] Byte 00 16-bit HHHL X X X R[7:0] Byte 01 16-bit HHLH X X R[7:0] X Byte 10 16-bit HHHL X X X R[7:0] Byte 11 16-bit HHLH X X R[7:0] X *1) selected by Memory Configuration 0 Register CSχSIZE (CSχ*) (χ = 0, 1, 2, 3). Port size for MCSχ* (χ = 0, 1, 2, 3) are fixed to 16 bit width. *2) asserted for write access only. 4-11 Chapter 4 BIU Module Table 4.3.5 Access Mapping (PCMCIA in Little-Endian Mode) (X: undefined) Access HA[1:0] Port Size (*1) CARDCSnH*, CARDCSnL* Dl[31:24] Dl[23:16] Dl[15:8] Dl[7:0] Word(1/2) 00 16-bit LL X X R[15:8] R[7:0] Word(2/2) 10 16-bit LL X X R[31:24] R[23:16] Triple Byte(1/2) 01 16-bit LH X X R[15:8] X Triple Byte(2/2) 10 16-bit LL X X R[31:24] R[23:16] Triple Byte(1/2) 00 16-bit LL X X R[15:8] R[7:0] Triple Byte(2/2) 10 16-bit HL X X X R[23:16] Half-Word 00 16-bit LL X X R[15:8] R[7:0] Half-Word 10 16-bit LL X X R[15:8] R[7:0] Byte 00 16-bit HL X X X R[7:0] Byte 01 16-bit LH X X R[7:0] X Byte 10 16-bit HL X X X R[7:0] Byte 11 16-bit LH X X R[7:0] X Word(1/2) 00 8-bit LL X X R[15:8] R[7:0] Word(2/2) 10 8-bit LL X X R[31:24] R[23:16] Triple Byte(1/2) 01 8-bit HL X X X R[15:8] Triple Byte(2/2) 10 8-bit LL X X R[31:24] R[23:16] Triple Byte(1/2) 00 8-bit LL X X R[15:8] R[7:0] Triple Byte(2/2) 10 8-bit HL X X X R[23:16] Half-Word 00 8-bit LL X X R[15:8] R[7:0] Half-Word 10 8-bit LL X X R[15:8] R[7:0] Byte 00 8-bit HL X X X R[7:0] Byte 01 8-bit HL X X X R[7:0] Byte 10 8-bit HL X X X R[7:0] Byte 11 8-bit HL X X X R[7:0] *1) selected by Memory Configuration 3 Register PORT8SEL 4-12 Chapter 4 BIU Module Table 4.3.6 Access Mapping (SDRAM in Big-Endian Mode) Access HA[1:0] Data Bus DQMHb, DQMLb Db[31:24] Width (*1) Db[23:16] Db[15:8] Db[7:0] Word(1/2) 00 16-bit LL X X R[31:24] Word(2/2) 10 16-bit LL X X R[15:8] R[23:16] R[7:0] Triple Byte(1/2) 00 16-bit LL X X R[31:24] R[23:16] Triple Byte(2/2) 10 16-bit LH X X R[15:8] X Triple Byte(1/2) 01 16-bit HL X X X R[23:16] Triple Byte(2/2) 10 16-bit LL X X R[15:8] R[7:0] Half-Word 00 16-bit LL X X R[15:8] R[7:0] Half-Word 10 16-bit LL X X R[15:8] R[7:0] Byte 00 16-bit LH X X R[7:0] X Byte 01 16-bit HL X X X R[7:0] Byte 10 16-bit LH X X R[7:0] X Byte 11 16-bit HL X X X R[7:0] Word(1/4) 00 8-bit HL X X X R[31:24] Word(2/4) 01 8-bit HL X X X R[23:16] Word(3/4) 10 8-bit HL X X X R[15:8] Word(4/4) 11 8-bit HL X X X R[7:0] Triple Byte(1/3) 00 8-bit HL X X X R[31:24] Triple Byte(2/3) 01 8-bit HL X X X R[23:16] Triple Byte(3/3) 10 8-bit HL X X X R[15:7] Triple Byte(1/3) 01 8-bit HL X X X R[23:16] Triple Byte(2/3) 10 8-bit HL X X X R[15:8] Triple Byte(3/3) 11 8-bit HL X X X R[7:0] Half-Word(1/2) 00 8-bit HL X X X R[15:8] Half-Word(2/2) 01 8-bit HL X X X R[7:0] Half-Word(1/2) 10 8-bit HL X X X R[15:8] Half-Word(2/2) 11 8-bit HL X X X R[7:0] Byte 00 8-bit HL X X X R[7:0] Byte 01 8-bit HL X X X R[7:0] Byte 10 8-bit HL X X X R[7:0] Byte 11 8-bit HL X X X R[7:0] *1) selected by Memory Configuration 0 Register BANKxCONF[1:0]. 4-13 Chapter 4 BIU Module Table 4.3.7 Access Mapping (DRAM/HDRAM in Big-Endian Mode) Access HA[1:0] Data Bus Width (*1) CASb[3:0]* (*2) Db[31:24] Db[23:16] Db[15:8] Db[7:0] Word 00 32-bit LLLL R[31:24] R[23:16] R[15:8] R[7:0] Triple Byte 00 32-bit LLLH R[31:24] R[23:16] R[15:8] X Triple Byte 01 32-bit HLLL X R[23:16] R[15:8] R[7:0] Half-Word 00 32-bit LLHH R[15:8] R[7:0] X X Half-Word 10 32-bit HHLL X X R[15:8] R[7:0] Byte 00 32-bit LHHH R[7:0] X X X Byte 01 32-bit HLHH X R[7:0] X X Byte 10 32-bit HHLH X X R[7:0] X Byte 11 32-bit HHHL X X X R[7:0] Word(1/2) 00 16-bit HHLL X X R[31:24] R[23:16] Word(2/2) 10 16-bit HHLL X X R[15:8] R[7:0] Triple Byte(1/2) 00 16-bit HHLL X X R[31:24] R[23:16] Triple Byte(2/2) 10 16-bit HHLH X X R[15:8] X Triple Byte(1/2) 01 16-bit HHHL X X X R[23:16] Triple Byte(2/2) 10 16-bit HHLL X X R[15:8] R[7:0] Half-Word 00 16-bit HHLL X X R[15:8] R[7:0] Half-Word 10 16-bit HHLL X X R[15:8] R[7:0] Byte 00 16-bit HHLH X X R[7:0] X Byte 01 16-bit HHHL X X X R[7:0] Byte 10 16-bit HHLH X X R[7:0] X Byte 11 16-bit HHHL X X X R[7:0] *1) selected by Memory Configuration 0 Register BANKxCONF[1:0]. *2) asserted for both read access and write access. 4-14 Chapter 4 BIU Module Table 4.3.8 Access Mapping (CSn and MCSn in Big-Endian Mode) Access HA[1:0] Port Size (*1) CASb[3:0]* (*2) Db[31:24] Db[23:16] Db[15:8] Db[7:0] Word 00 32-bit LLLL R[31:24] R[23:16] R[15:8] R[7:0] Triple Byte 00 32-bit LLLH R[31:24] R[23:16] R[15:8] X Triple Byte 01 32-bit HLLL X R[23:16] R[15:8] R[7:0] Half-Word 00 32-bit LLHH R[15:8] R[7:0] X X Half-Word 10 32-bit HHLL X X R[15:8] R[7:0] Byte 00 32-bit LHHH R[7:0] X X X Byte 01 32-bit HLHH X R[7:0] X X Byte 10 32-bit HHLH X X R[7:0] X Byte 11 32-bit HHHL X X X R[7:0] Word(1/2) 00 16-bit LLHH R[31:24] R[23:16] X X Word(2/2) 10 16-bit LLHH R[15:8] R[7:0] X X Triple Byte(1/2) 00 16-bit LLHH R[31:24] R[23:16] X X Triple Byte(2/2) 10 16-bit LHHH R[15:8] X X X Triple Byte(1/2) 01 16-bit HLHH X R[23:16] X X Triple Byte(2/2) 10 16-bit LLHH R[15:8] R[7:0] X X Half-Word 00 16-bit LLHH R[15:8] R[7:0] X X X Half-Word 10 16-bit LLHH R[15:8] R[7:0] X Byte 00 16-bit LHHH R[7:0] X X X Byte 01 16-bit HLHH X R[7:0] X X Byte 10 16-bit LHHH R[7:0] X X X Byte 11 16-bit HLHH X R[7:0] X X *1) selected by Memory Configuration 0 Register CSχSIZE (CSn*). Port size for MCSχ* are fixed to 16 bit width. *2) asserted for write access only. 4-15 Chapter 4 BIU Module Table 4.3.9 Access Mapping (PCMCIA in Big-Endian Mode) Access HA[1:0] Port Size (*1) CARDCSnL*, CARDCSnH* Db[31:24] Db[23:16] Db[15:8] Db[7:0] Word(1/2) 00 16-bit LL R[31:24] R[23:16] X Word(2/2) 10 16-bit LL R[15:8] R[7:0] X X X Triple Byte(1/2) 00 16-bit LL R[31:24] R[23:16] X X Triple Byte(2/2) 10 16-bit LH R[15:8] X X X Triple Byte(1/2) 01 16-bit HL X R[23:16] X X Triple Byte(2/2) 10 16-bit LL R[15:8] R[7:0] X X Half-Word 00 16-bit LL R[15:8] R[7:0] X X Half-Word 10 16-bit LL R[15:8] R[7:0] X X Byte 00 16-bit LH R[7:0] X X X Byte 01 16-bit HL X R[7:0] X X Byte 10 16-bit LH R[7:0] X X X Byte 11 16-bit HL X R[7:0] X X Word(1/2) 00 8-bit LL R[31:24] R[23:16] X X Word(2/2) 10 8-bit LL R[15:8] R[7:0] X X Triple Byte(1/2) 00 8-bit LL R[31:24] R[23:16] X X Triple Byte(2/2) 10 8-bit LH R[15:8] X X X Triple Byte(1/2) 01 8-bit LH R[23:16] X X X Triple Byte(2/2) 10 8-bit LL R[15:8] R[7:0] X X Half-Word 00 8-bit LL R[15:8] R[7:0] X X Half-Word 10 8-bit LL R[15:8] R[7:0] X X Byte 00 8-bit LH R[7:0] X X X Byte 01 8-bit LH R[7:0] X X X Byte 10 8-bit LH R[7:0] X X X Byte 11 8-bit LH R[7:0] X X X *1) selected by Memory Configuration 3 Register PORT8SEL 4-16 Chapter 4 BIU Module 4.3.3 CS3-CS0 and MCS3-MCS0 Timing Figure 4.3.1 through Figure 4.3.4 show the timing for CS3-CS0 and MCS3-MCS0. The timing is the same for all these signals, with the only exception being that 32-bit port timing only applies to CS3-CS0 while 16-bit port timing applies to CS3-CS0 and MCS3-MCS0. Timing is also shown for Read Page Mode accesses. If Read Page Mode is enabled, the chip select will be asserted for the entire read cycle. If the processor is performing a burst read to re-fill either a data or instruction cache line, the chip select will remain asserted for the entire burst read. The first access of a Read Page Mode access uses the ACCVAL1 control bits to define the access time, while the next three accesses will use the ACCVAL2 control bits to define the access time. The pattern will repeat until the read is complete. Figure 4.3.1 shows the timing for a single Word read and write for a 32-bit memory device. The access time is defined using the ACCVAL1 control bits. There are separate ACCVAL1 control bits for each of the chip selects, such that each chip select has an independently configurable access time. The ACCVAL1 bits should be set to the desired number of CLK times for the chip select. The ACCVAL1 bits must not be set to $0. Figure 4.3.2 shows the timing for a Word read from a 16-bit port. The access is split into two parts to read the full 32 bits. During the first read HA (1) will be low and during the second read HA (1) will be high. The input data path will latch both accesses and concatenate them together as 32 bits for the processor before asserting the Ack signal to the CPU Interface logic. Figure 4.3.3 shows a 4-Word burst read from a 32-bit port. The ALE signal is only asserted at the beginning of the cycle since the upper address bits will not be changed during the burst. The burst will always start on a 16-byte boundary. The address bits will increment as follows: HA[3:2] = 00, HA[3:2] = 01, HA[3:2] = 10, then HA[3:2] = 11. Figure 4.3.4 shows the same 4-Word burst read from a 32-bit port, except this time Read Page Mode is enabled. In this case the chip select will remain asserted for the entire access and the addresses will change to access the new address location. The first access uses the ACCVAL1 control bits, while the next three accesses use the ACCVAL2 control bits. If the burst had been longer then 4 Words, the ACCVAL1 control bits would have been used for every fourth access. This type of bursting is compatible with ROM devices that support page mode access. If the 4-Word burst would have been from a 16-bit port, eight accesses would have been required, but the ACCVAL1 bits would still be used for the first and fifth access, while the ACCVAL2 bits would have been used for the rest. If Read Page Mode is enabled for a particular chip select, then the ACCVAL1 and ACCVAL2 control bits must not be set to $0. The “up arrow” markings on DCLKOUT in Figure 4.3.1 through Figure 4.3.4 show the points where input data is sampled. 4-17 Chapter 4 BIU Module DCLKOUT ALE A[12:0] D[31:0] 2×ACCVAL1 2×ACCVAL1 CSx/MCSx* RD* WE* WE3-0* Figure 4.3.1 Word Read/Write 32-Bit Port DCLKOUT ALE A[12:0] D[31:16] 2×ACCVAL1 2×ACCVAL1 CSx/MCSx* RD* Figure 4.3.2 Word Read 16-Bit Port 4-18 Chapter 4 BIU Module DCLKOUT ALE A[12:0] D[31:0] 2×ACCVAL1 2×ACCVAL1 2×ACCVAL1 2×ACCVAL1 CSx/MCSx* RD* Figure 4.3.3 4-Word Burst Read 32-Bit Port DCLKOUT ALE A[12:0] D[31:0] 2×ACCVAL1 2×ACCVAL2+1 2×ACCVAL2+1 2×ACCVAL2+1 CSx/MCSx* RD* Figure 4.3.4 4-Word Burst Read 32-Bit Port Read with Page Mode Enabled 4-19 Chapter 4 BIU Module 4.3.4 Card 2 and Card 1 There are three different types of accesses to the Card: Memory, Attribute and I/O. Memory space is accessed by reading or writing from or to the Card Memory locations. Attribute or IO space is accessed by reading or writing from or to the Card IO Attribute* locations. If an Attribute access is desired, the CARDxIOEN (χ = 1, 2) bit should be cleared. If an IO access is desired, the CARDxIOEN bit should be set. To support bi-directional buffering of the data bus to the Cards, the CARDDIR* signal provides direction control for the bi-directional buffer. The CARDDIR* signal will be asserted during a read to either Card 2 or Card 1. There is separate access time control provided for Memory access versus IO Attribute* access. CARDxACCVAL is used to control the access time for memory accesses and CARDxIOACCVAL is used to control the access time for IO or Attribute access. Adding one to either access value control setting will increase the access time by two CLK periods. A value of $1 will result in an access time of 1 CLK period. Figure 4.3.5 through Figure 4.3.7 show the different timing for Memory, Attribute and IO accesses. If a Word access is made to the Card, the access will be split into two accesses in the same manner as is done for CS3-CS0 and MCS3-MCS0. Read Page Mode is not supported for the Cards since it is not supported by the PCMCIA specification. 4-20 Chapter 4 BIU Module DCLKOUT ALE A[12:0] D[31:16] 4×CARDxACCVAL–2 4×CARDxACCVAL–2 CARDxCSH*/L* RD* WE* CARDDIR* CARDDREG IORD* IOWR* Figure 4.3.5 Memory Access to Card DCLKOUT ALE A[12:0] D[31:16] 4×CARDxIOACCVAL–2 4×CARDxIOACCVAL–2 CARDxCSH*/L* RD* WE* CARDDIR* CARDDREG IORD* IOWR* Figure 4.3.6 Attribute Access to Card 4-21 Chapter 4 BIU Module DCLKOUT ALE A[12:0] D[31:16] 4×CARDxIOACCVAL–4 4×CARDxIOACCVAL–4 CARDxCSH*/L* RD* WE* CARDDIR* CARDDREG IORD* IOWR* Figure 4.3.7 I/O Access to Card The PCMCIA specification provides for a WAIT* signal that allows the Card to halt the bus cycle until the WAIT* signal is de-asserted. This allows the Card to control the access time. The WAIT* signal will assert at the beginning of the cycle and the cycle should not terminate until the WAIT* signal becomes de-asserted. There are separate WAIT* signals provided for each Card: WAIT2* and WAIT1*. The WAIT* signals are sampled on two consecutive rising edges of CLK. If the WAIT* signal is low, the access time counter will freeze until the WAIT* signal goes high. This function will only occur if the WAIT function is enabled using the CARDxWAITEN control bit. If the WAIT function is not enabled, the WAIT* signal is ignored. Figure 4.3.6 shows the timing for Card WAIT accesses. DCLKOUT ALE A[12:0] D[31:16] CARDxCS* RD* WAITx* Figure 4.3.8 Card Wait Timing 4-22 Chapter 4 BIU Module 4.3.5 CS0 Size Configuration In order for the system to boot properly when powered up for the first time, it is necessary that CS0 and it's associated control be initialized properly since this chip select is used for the Boot ROM. When RESET is asserted, the ACCVAL1 and ACCVAL2 control bits for CS0 will be set to their maximum value and Read Page Mode will be disabled. The port size, 16-bit or 32-bit, is configured using the TESTAIU input pin. If the TESTAIU pin is high during RESET, CS0 is configured as a 32-bit port, and if TESTAIU is low during RESET, CS0 is configured as a 16-bit port. The CPU Module Section discusses the TESTAIU pin in more detail. 4-23 Chapter 4 BIU Module 4.4 DRAM and SDRAM Controller The DRAM and SDRAM Controller generates the required control signals to interface to DRAM and SDRAM devices. Two separate banks are supported and each bank can contain either DRAM or SDRAM, with the only restriction being that Bank 1 cannot contain SDRAM if Bank 0 contains DRAM. The DRAM and SDRAM Controller supports 4-Mbit, 16-Mbit and 64-Mbit devices in various bus configurations. In order to maximize the memory bandwidth, both the DRAM and SDRAM devices can be kept in page mode to complete burst read cycles and in-page write cycles. 4.4.1 Memory Chips Supported Table 4.4.1 shows the different DRAM and SDRAM chips that are supported by the DRAM and SDRAM Controller. Also shown is the Row and Column configuration for the supported chips. SDRAM chips also contain two banks that are selectable through the address space. Table 4.4.1 Supported DRAM and SDRAM Chips Number of Bank *1 Row Address Column Address Memory Size Memory Type – 9 9 256 K × 16 4-Mbit DRAM – 10 8 256 K × 16 4-Mbit DRAM – 10 9 512 K × 8 4-Mbit DRAM – 10 10 1 M × 16 16-Mbit DRAM – 11 9 1 M × 16 16-Mbit DRAM – 12 8 1 M × 16 16-Mbit DRAM – 11 10 2M×8 16-Mbit DRAM – 12 9 2M×8 16-Mbit DRAM 2 11 9 2M×8 16-Mbit SDRAM 2 11 8 1 M × 16 16-Mbit SDRAM – 11 11 4 M × 16 64-Mbit DRAM – 12 10 4 M × 16 64-Mbit DRAM – 12 11 8M×8 64-Mbit DRAM 2 12 10 8M×8 64-Mbit SDRAM 2 12 9 4 M × 16 64-Mbit SDRAM 2 13 9 8M×8 64-Mbit SDRAM 4 12 8 4 M × 16 64-Mbit SDRAM *1 4 12 9 8 M × 16 128-Mbit SDRAM *1 Four-bank SDRAM 4-24 Chapter 4 BIU Module 4.4.2 DRAM and SDRAM Configurations Table 4.4.2 shows the various combinations of DRAM and SDRAM chips that are supported. Bank 1 and Bank 0 are independently programmable so each can contain any of the combinations. The only restriction is that Bank 1 cannot contain SDRAM if Bank 0 contains DRAM. Table 4.4.2 Supported DRAM and SDRAM Configurations ROW COL Memory Size Memory Type # of Chips 18, 17:9 18, 8:1 256 K × 16 4-Mbit DRAM 20, 19, 17:9 20, 18, 8:1 1 M × 16 16-Mbit DRAM 1 × 256 K × 16 1 × 1 M × 16 18, 20, 19, 17:9 8:1 1 M × 16 16-Mbit DRAM 1 × 1 M × 16 22, 21, 19, 17:9 22, 20, 18, 8:1 4 M × 16 64-Mbit DRAM 1 × 4 M × 16 19, 17:9 19, 18, 8:2 256 K × 32 4-Mbit DRAM 2 × 256 K × 16 4 × 512 K × 8 19, 17:9 20, 18, 8:2 512 K × 32 4-Mbit DRAM 21, 19, 17:9 21, 20, 18, 8:2 1 M × 32 16-Mbit DRAM 2 × 1 M × 16 18, 20, 19, 17:9 21, 8:2 1 M × 32 16-Mbit DRAM 2 × 1 M × 16 22, 21, 19, 17:9 22, 20, 18, 8:2 2 M × 32 16-Mbit DRAM 4×2M×8 23, 21, 19, 17:9 23, 22, 20, 18, 8:2 4 M × 32 64-Mbit DRAM 2 × 4 M × 16 23, 21, 19, 17:9 24, 22, 20, 18, 8:2 8 M × 32 64-Mbit DRAM 4×8M×8 18, 20, 19, 17:9 18, φ, X, 8:0 2M×8 16-Mbit SDRAM 1×2M×8 22, 18, 20, 19, 17:9 22, X, φ, 21, 8:0 8M×8 64-Mbit SDRAM 1×8M×8 1 × 1 M × 16 18, 20, 19, 17:9 18, φ, X, X, 8:1 1 M × 16 16-Mbit SDRAM 18, 20, 19, 17:9 18, φ, X, 21, 8:1 2 M × 16 16-Mbit SDRAM 2×2M×8 22, 18, 20, 19, 17:9 22, X, φ, X, 21, 8:1 4 M × 16 64-Mbit SDRAM 1 × 4 M × 16 22, 18, 20, 19, 17:9 22, X, φ, 23, 21, 8:1 8 M × 16 64-Mbit SDRAM 2×8M×8 22, 18, 20, 19, 17:9 X, φ, X, 8:0 8M×8 64-Mbit SDRAM 1×8M×8 22, 18, 20, 19, 17:9 22, X, φ, X, X, 8:1 4 M × 16 64-Mbit SDRAM 1 × 4 M × 16 *1 22, 18, 20, 19, 17:9 22, X, φ, 23, X, 8:1 8 M × 16 64-Mbit SDRAM 2×8M×8 *1, *2 *1 *2 Four-bank SDRAM When TMPR3911/12 and SDRAM are connected, A[8] and A[9] must be swapped. 4-25 Chapter 4 BIU Module 4.4.3 DRAM (1) DRAM DRAM in Bank 1 is controlled using RAS1* and CAS3*-CAS0*, while DRAM in Bank 0 is controlled using RAS0* and CAS3*-CAS0*. The Memory Configuration 0 Register provides control bits that allow Bank 1 or Bank 0 to be independently set as either 32-bit or 16-bit DRAM configurations. The 32-bit DRAM configurations are connected to all 32 data bus bits D[31:0], while 16-bit DRAM configurations are connected to D[15:0] when the TMPR3912 is mapped as Big Endian. The 16-bit DRAM configurations will only use CAS1* and CAS0* for control, while 32-bit configurations will use all four CAS* lines. Word and Tri accesses to 16-bit configured DRAMs will be split into two accesses in the same manner as was done for the chip selects, except that the data is connected to D[15:0] instead of D[31:16]. Connecting DRAM devices to the lower data bus and chip select memory devices to the upper data bus helps to balance the capacitive loading on the data bus. The DRAM timing is fixed to support 80 ns devices or faster. The only programmability is the ENBANK1OPT and ENBANK0OPT control bits in the Memory Configuration 4 Register that allow an extra clock of time for the first access to the DRAM. This option is implemented to support 80 ns DRAM devices with a clock greater than 70 MHz for the CPU and BIU. DRAMs faster than 80 ns will not need the ENBANKxOPT bit to be set. (DRAMs faster than 160 ns will not need the ENBANKxOPT bit to be set in case of TMPR3911.) During a burst read cycle the RASx* line will be asserted to latch the ROW address into the DRAM, and the CAS* signals are then asserted for the required number of accesses. Page mode writes are supported when the ENWRINPAGE control bit is set in the Memory Configuration 0 Register. An inpage write will occur when the CPU Interface asserts the WrInPage signal during a write. If this signal is asserted, the DRAM will be kept in page mode until the WrInPage signal is no longer asserted. Refresh is inserted using CAS* before RAS* refresh. The Refresh Control is generated by the Arbitration Logic. Figure 4.4.1 through Figure 4.4.4 show various timing examples, with refresh timing shown in Figure 4.4.1. The timing is the same for 32-bit and 16-bit ports, except there are twice as many accesses to the 16-bit port. For example, a Word read from a 16-bit port will result in a burst of two 16-bit reads to fetch the 32-bits of data. 4-26 Chapter 4 BIU Module DCLKOUT A[12:0] ROW COL COL COL COL ROW COL D[31:0] RAS* CAS* WE* ENBANKxOPT = 0 ENBANKxHDRAM = 0 Figure 4.4.1 Burst Read followed by Word Write (DRAM) DCLKOUT A[12:0] ROW COL COL COL COL ROW COL D[31:0] RAS* CAS* WE* ENBANKxOPT = 0 ENBANKxHDRAM = 1 Figure 4.4.2 Burst Read followed by Word Write (HDRAM) DCLKOUT A[12:0] ROW COL COL COL COL COL D[31:0] RAS* CAS* WE* ENBANKxOPT = 0 ENBANKxHDRAM = 0 Figure 4.4.3 In-Page Write (DRAM) 4-27 Chapter 4 BIU Module DCLKOUT A[12:0] ROW COL D[31:0] RAS* CAS* WE* ENBANKxOPT = 1 ENBANKxHDRAM = 0 Figure 4.4.4 Write with ENBANKOPT Set followed by Refresh Cycle (DRAM) (2) DRAM Initialization When the DRAM is first powered up there are several things that must be done before accessing the DRAM. First the Memory Configuration Registers must be properly configured for the chosen DRAM and bus configuration. Next, after a delay of at least 100 µs after the power is asserted to the DRAM, the refresh should be enabled. The DRAM should not be accessed until at least eight CAS* before RAS* refresh cycles occur. After this procedure is completed the DRAM can be accessed. 4-28 Chapter 4 BIU Module 4.4.4 SDRAM (1) SDRAM SDRAM devices are supported in Bank 1 and Bank 0. Each Bank can independently be configured to support either 16-bit or 8-bit SDRAMs. Bank 1 uses RAS1* as the chip select for the SDRAM and Bank 0 uses DCS0*. All other control signals are shared between the two banks. The clock for the SDRAM devices is the DCLKOUT signal which nominally runs at the clock twice the rate of the CLK signal. Reads from the SDRAMs occur on every DCLKOUT cycle, such that the reading of all 32 bits for 16-bit SDRAMs can happen within a single CLK cycle. A 16-bit SDRAM configuration provides the maximum memory bandwidth and once a read cycle begins, the CPU will not stall since 32 bits are read on each cycle. All 8-bit SDRAMs require 2 CLK cycles to read 32 bits of data. During a burst read the SDRAM devices are kept in page mode for the entire read cycle. The SDRAM devices are also kept in page mode during in-page write cycles. All 16-bit SDRAMs can keep up at 32 bits per CLK cycle, which can provide a long write block without stalling the CPU. All 8-bit SDRAMs require twice the number of cycles. Tri, Half-Word and Byte writes are supported to the SDRAM devices using the DQMH and DQML signals. These signals provide a data mask so that only the desired bytes will be written. DQMH is used for the upper 8 bits in a 16-bit SDRAM configuration and DQML is used for the lower 8 bits. For 8-bit SDRAMs only DQML is used. The data mask signals DQMH and DQML are required because the SDRAM is setup to always read or write 32 bits of data at a time. The data mask signals will “mask out” the bytes that should not be written during partial Word stores. (2) SDRAM Initialization Prior to accessing an SDRAM device, an initialization procedure must be followed. First, all Memory Configuration Registers must be properly initialized for the chosen SDRAM and bus configuration. Next, after a pause of at least 200 µs after power is applied to the SDRAM, a command must be sent to precharge the SDRAM banks. The command is sent by writing to the SDRAM Bank 1 and/or Bank 0 Mode Register address with Data[31] set high when the TMPR3911/12 is mapped as big endian, or with Data[7] set high when the TMPR3911/12 is mapped as little endian. Setting this bit will cause a Precharge All command to be sent to the SDRAM instead of writing to the Mode Register. Next, the Mode Register must be properly initialized. Finally, refresh should be enabled and at least 8 refresh cycles must occur prior to reading or writing from or to the SDRAM. (3) SDRAM Mode Register An SDRAM contains a write-only Mode Register that defines the parameters for accessing the device. The mode register must be initialized prior to reading or writing from the SDRAM. They can be written via the SDRAM Bank 1 and SDRAM Bank 0 addresses as shown in the System Address Map. When writing to the mode register, the data from the CPU Interface on Data[12:0] (Data[20:16, 31:24]) is placed on A[12:0], and Data[31] (Data[7]) must be a zero when the TMPR3911/12 is mapped as big endian (little endian). This is done because the Mode Register receives its data on the address bus instead of the data bus. The SDRAM should be configured for the following settings: Burst Length = 4 (for 8-bit SDRAM) or Burst Length = 2 (for 16-bit SDRAM), CAS Latency = 3, Burst Type = Sequential, Write Mode = Burst Write. 4-29 Chapter 4 BIU Module (4) SDRAM Power Down Mode The DCKE signal is provided for putting the SDRAM into Power Down Mode. The Power Down Mode feature can be enabled or disabled using the ENSDRAMPD control bit in the Memory Configuration 0 Register. When this bit is set, the DCKE signal will be held low whenever there are no accesses to the SDRAM device for 7 CLK periods. Once a read, write or refresh is initiated to the SDRAM, the DCKE signal is asserted to bring the device out of Power Down Mode. Power Down Mode helps to reduce power dissipation in the SDRAM device when there are no accesses. During Memory Power Down the SDRAM device is placed into self refresh mode for maximum power savings and the DCLKOUT signal. (5) SDRAM Timing Figure 4.4.5 through Figure 4.4.7 show a few examples of the SDRAM timing. The first chip select (assertion of CS*) is used to latch the ROW address. Subsequent chip selects will either read or write data, and the final chip select is used to precharge the bank. Note from Table 4.4.2 that address bit 10 for 16-Mbit parts and address bit 11 for 64-Mbit parts is always a zero during the column address. This is done to ensure that auto precharge is never latched during a read or write command and also will cause only the bank that is being accessed to be precharged during the precharge command. Since the burst size of the SDRAMs is always setup to 32 bits, reads will always be 32 bits without regard to the actual number of bytes requested by the CPU. Writes are also 32 bits, but the data mask signals DQMH and DQML will mask out the bytes that should not be written, thus allowing for Triple Byte, Half-Word and Byte writes. DCLKOUT A[12:0] ROW COLUMN ROW COLUMN D[7:0] DCS0/1* RAS* 32-bit READ 32-bit WRITE CAS* WE* DQMH DQML DCKE Figure 4.4.5 Word Read and Write to 8-bit SDRAM 4-30 Chapter 4 BIU Module DCLKOUT A[12:0] ROW COLUMN ROW COLUMN D[7:0] DCS0/1* RAS* 32-bit 32-bit WRITE CAS* WE* DQMH DQML DCKE Figure 4.4.6 Word Read and Write to 16-Bit SDRAM DCLKOUT A[12:0] ROW COL COL COL COLUMN ROW COLUMN D[7:0] DCS0/1* RAS* 4 WORD BURST READ BYTE WRITE CAS* WE* DQMH DQML DCKE Figure 4.4.7 4-Word Burst Read and Byte Write to 16-Bit SDRAM (6) Support of Four-Bank SDRAM (only by TMPR3911BU/BXB and TMPR3912XB-92/AU-92) The TMPR3912XB-92/AU-92 supports four-bank SDRAM. When DRAM banks 0 and 1 are 16-bit SDRAM, Addr[21] is output from the CAS2* pin. Also, by setting ROW and COL as follows, Addr[22] can be output from the A[12] pin. ROW: 22, 18, 20, 19, 17:9 (ROWSEL = 01) COL: 22, X, φ, X, X, 8:1 (COLSEL = 1000) The CAS2* pin (Addr[21]) and A[12] pin (Addr[22]) can be connected to the four-bank SDRAM bank select pin so that the CAS2* and A[12] pins are used for the bank select signal. 4-31 Chapter 4 BIU Module 4.5 Arbitration The Arbitration logic contains the Refresh Controller for Bank 1 and Bank 0, support for External Bus Master, the Watch Dog Timer for terminating hung memory accesses, and Memory Power Down logic for placing the SDRAM and/or DRAM into self refresh mode. 4.5.1 Refresh Controller The Refresh Controller logic contains separate refresh counters for Bank 1 and Bank 0. Each counter is a 6-bit counter that uses the 32 kHz clock for the counter. The refresh rate is set using the RFSHVAL1[5:0] and RFSHVAL0[5:0] control bits in the Memory Configuration 4 Register. These values are loaded into the respective refresh counter. The refresh counter will down count and when it reaches a count of zero, refresh will be inserted. If the RFSHVALx control bits are set to $00, the counter is not used and instead refresh is generated based on both the rising and falling edge of the 32 kHz clock. This is required to generate a 15.26 µs refresh rate required by some DRAMs or SDRAMs. RFSHVALx control bits set to $01 will cause a refresh rate of 61.04 µs and additional values will increase the refresh rate by increments of 30.52 µs. When it is time for the Refresh Controller to insert refresh, the Halt signal will be asserted to the CPU Interface. Once the CPU Interface asserts the Halted signal, the Refresh Controller will generate the appropriate control signals that will cause the DRAM & SDRAM control logic to provide refresh for the memory devices. Once the Refresh Controller has completed inserting refresh, the Halt signal will be de-asserted so that the CPU Interface can continue running. 4.5.2 External Bus Master The External Bus Master logic allows an external device to take control of the memory signals so that memory can be shared with an external device. The external device will request the bus by asserting the DREQ* signal. Once the DREQ* signal is asserted, the Halt signal will be asserted to the CPU Interface logic. Once the CPU Interface logic asserts the Halted signal, the External Bus Master logic will then assert the DGRNT* signal to inform the external device that it now controls the memory bus. At the same time that DGRNT* is asserted, the following signals are tri-stated: D[31:0], A[12:0], ALE, RD*, WE*, CAS3*-CAS0*, RAS1*, RAS0*, DCS0*, DCKE, DQMH, DQML and CS0*. DCLKOUT will be tri-stated if the ENDCLKOUTTRI control bit is set in the Memory Configuration 0 Register. Otherwise, DCLKOUT will continue to run. Once the external device de-asserts DREQ*, DGRNT* will be deasserted, the memory signals will be driven by the TMPR3911/12, and the Halt signal will be deasserted so the CPU Interface can begin launching memory transactions. The external device should not attempt to take over the memory signals for a long period of time, otherwise TMPR3911/12 DMA events and refresh will be interrupted. The External Bus Master logic will not respond with a DGRNT* if the memory interface is powered down. 4-32 Chapter 4 BIU Module 4.5.3 Watch Dog Timer The Watch Dog Timer prevents accesses to reserved memory locations from hanging the BIU. The Watch Dog Timer consists of a 10-bit down-counter whose initial value is determined by the WATCHTIMEVAL[3:0] control bits in the Memory Configuration 4 Register. The WATCHTIMEVAL[3:0] control bits are loaded into the upper 4 bits of the 10-bit counter and the lower 6 bits are loaded with $3F. The counter uses the CLK signal to count. The Watch Dog Timer rate is determined by the following equation: Watch Dog Timer Rate = *1 (WATCHTIME VAL[3 :0]+ 1)* 64 fCLK (*1) fCLK is the frequency of the CLK signal and is ×4 the frequency of SYSCLK (that is, when SYSCLK is 9.216 MHz, fCLK is 36.864 MHz (*2); when SYSCLK is 11.520 MHz, fCLK is 46.08 MHz. *2 Note that these valve is the case that the RF function is not used. Therefore, In case of TMPR3911, fCLK is a half of this valve, which means 18.432 MHz The Watch Dog Timer is enabled using the ENWATCH control bit in the Memory Configuration 4 Register. When enabled, the counter will load whenever the CPU Interface asserts the Start signal to begin a memory transaction. If the Watch Dog Timer reaches a count of zero before the Memory State Machine asserts the Ack signal, the BusError signal is asserted to end the memory transaction. There are two possible ways that this can occur. First, if the address provided by the CPU interface to the Address Decoder is pointing to any of the reserved locations or to any of the chip selects that are not enabled, then the Memory State Machine will not respond with an Ack. Secondly, if the WAIT function is enabled to Card 2 or Card 1, then the WAIT2* or WAIT1* signals must de-assert before the Watch Dog Timer reaches a count of zero, otherwise the BusError signal will be asserted and the Card access will be aborted. 4.5.4 Memory Power Down The memory interface is powered down whenever the MEMPOWERDOWN control bit is set in the Memory Configuration 4 Register. When this bit is set, the Halt signal will be asserted to the CPU Interface, the DRAM and/or SDRAM will be placed into self refresh mode, and all memory interface signals will be driven low. The memory interface will wake up whenever the CPU Interface asserts the HaltCycle signal and the address defined by the Addr[31:2] bits correspond to an address other than internal function registers. When the memory interface wakes up, the DRAM and/or SDRAM are taken out of self refresh mode and the Halt signal is de-asserted to allow the CPU Interface to launch memory transactions. Figure 4.5.1 and Figure 4.5.2 show timing for the wake-up and power-down of the memory interface. 4-33 Chapter 4 BIU Module DCLKOUT A[12:0] D[31:0] DCS0* RAS1* RAS0* CAS3-0* WE* DQMH/L DCKE Figure 4.5.1 Memory Interface Wake-Up DCLKOUT A[12:0] D[31:0] DCS0* RAS1* RAS0* CAS3-0* WE* DQMH/L DCKE Figure 4.5.2 Memory Interface Power Down When the memory interface is powered down all memory signals are driven low. The order in which they are driven low is important because DRAM devices enter self refresh mode by asserting CAS* before RAS*, and SDRAM devices enter self refresh mode by de-asserting DCKE while DCS0* and/or RAS1*, RAS0* and CAS0* are asserted with WE* not asserted. Once the SDRAM enters self refresh mode, DCLKOUT can be turned off. The ordering makes it possible to put both DRAM and SDRAM devices into self refresh mode with only one time setting required. When the memory interface comes out of self refresh mode, all signals are de-asserted. DCKE must de-assert one clock later in order to properly bring the SDRAM out of self refresh mode. After exiting self refresh mode, the Halt signal will not be released for several clocks to allow the DRAM and SDRAM to finish exiting self refresh mode. 4-34 Chapter 4 BIU Module 4.6 Memory Connections Data Bus pins (D[31:0]), CAS signal pins, and data mask pins (DQMH, DQML) change their functions in Big Endian and Little Endian. The following table shows the change of the name of each pin in Big Endian and Little Endian. (The endian can be selected using the ENDIAN pin, “1” level to the Big Endian, “0” level to the Little Endian.) Pin No. TMPR3911BU TMPR3911BXB TMPR3912AU TMPR3912XB Big Endian Little Endian H12 G10 G14 G12 G11 F14 F12 E14 D[31] D[30] D[29] D[28] D[27] D[26] D[25] D[24] D[7] D[6] D[5] D[4] D[3] D[2] D[1] D[0] 114 115 116 117 118 120 121 123 P7 N7 M6 R7 N6 M5 R6 P5 133 134 136 138 139 141 143 145 124 N4 146 E13 D[23] D[15] 125 127 128 129 131 133 136 R5 N3 P3 R4 R3 P1 N2 148 150 152 153 155 157 159 D15 D13 C15 C14 B14 A15 E11 D[22] D[21] D[20] D[19] D[18] D[17] D[16] D[14] D[13] D[12] D[11] D[10] D[9] D[8] 20 19 18 17 16 14 13 12 C7 D7 C8 A7 B6 D6 A6 B5 27 26 24 23 21 19 18 16 H1 H3 G6 G1 G3 F1 G5 F3 D[15] D[14] D[13] D[12] D[11] D[10] D[9] D[8] D[23] D[22] D[21] D[20] D[19] D[18] D[17] D[16] 11 10 9 7 5 4 3 2 C5 B4 A5 C4 A4 B3 A1 A3 14 12 11 9 7 5 4 2 F4 E3 D1 D2 C1 C2 B1 C3 D[7] D[6] D[5] D[4] D[3] D[2] D[1] D[0] D[31] D[30] D[29] D[28] D[27] D[26] D[25] D[24] 166 167 168 169 175 176 E3 E2 D3 E1 C1 B1 195 197 198 199 207 208 D6 B5 C5 E6 B2 A2 CAS3* CAS2* CAS1* CAS0* DQMH DQML CAS0* CAS1* CAS2* CAS3* DQML DQMH 4-35 Chapter 4 BIU Module Figure 4.6.1 through Figure 4.6.8 illustrate the various signal connections between the TMPR3911/12 and external SDRAM, DRAM, and static memory devices. These figures show the connections for various bus width configurations (e.g., 8-bit, 16-bit, 32-bit). Bank0: 8-bit SDRAM A[12:0] A12-0 CAS0* CAS* RAS0* RAS* DCS0* CS* WE* WE* DCKE CKE DQML DQM DCLKOUT D[7:0] TMPR3911/12 A[12:0] CAS0* RAS0* DCS0* RAS1* WE* DCKE DQMH DQML DCLKOUT DCLKIN D[15:8] D[7:0] CAS0* 194 RAS0* 192 DCS0* 193 DCS1* 169 WE* 202 DCKE 207 DQMH 208 DQML 205 DCLKOUT D7-0 Bank1: 16-bit SDRAM *1 Pin No. 171,...189 A[12:0] 199 CLK A12-0 CAS* RAS* CS* WE* CKE DQMH DQML CLK 204 27,...16 D[15:8] 14,...2 D[7:0] D15-8 D7-0 Figure 4.6.1 SDRAM Memory Connection (Big Endian)* *1 Note that Pin No. in the figure above are those of TMPR3912AU-92 (LQFP208). In case of TMPR3911BU (LQFP176), TMPR3911BXB (FBGA177) and TMPR3912XB-92 (FBGA217), refer to the table in the Section 2. 4-36 Chapter 4 BIU Module Bank0: 8-bit SDRAM A[12:0] A12-0 CAS3* CAS* RAS0* RAS* DCS0* CS* WE* WE* DCKE CKE DQMH DQM DCLKOUT D[31:24] TMPR3911/12 A[12:0] CAS3* RAS0* DCS0* RAS1* WE* DCKE DQML DQMH DCLKOUT DCLKIN D[23:16] D[31:24] CAS3* 194 RAS0* 192 DCS0* 193 DCS1* 169 WE* 202 DCKE 207 DQML 208 DQMH 205 DCLKOUT D7-0 Bank1: 16-bit SDRAM *1 Pin No. 171,...189 A[12:0] 199 CLK A12-0 CAS* RAS* CS* WE* CKE DQML DQMH CLK 204 27,...16 D[23:16] 14,...2 D[31:24] D7-0 D15-8 Figure 4.6.2 SDRAM Memory Connection (Little Endian)* *1 Note that Pin No. in the figure above are those of TMPR3912AU-92 (LQFP208). In case of TMPR3911BU (LQFP176), TMPR3911BXB (FBGA177) and TMPR3912XB-92 (FBGA217), refer to the table in the Section 2. 4-37 Chapter 4 BIU Module Bank0: 16 -bit SDRAM A[11:0] *2 A11-0 BS1 (Addr22) BS0 (Addr21) CAS0* RAS* DCS0* CS* WE* WE* DCKE CKE DQMH DQMH DQML DQML DCLKOUT D[15:8] A[12] CAS2* CAS0* RAS0* DCS0* RAS1* WE* DCKE DQMH DQML DCLKOUT DCLKIN D[15:8] D[7:0] BS1 (Addr22) 197 BS0 (Addr21) 199 CAS0* 194 RAS0* 192 DCS0* 193 DCS1* 169 WE* 202 DCKE 207 DQMH 208 DQML 205 DCLKOUT D7-0 Bank1: 16-bit SDRAM *1 Pin No. 172,...189 A[11:0] 171 CLK D15-8 D[7:0] A[11:0] BS0 CAS* RAS0* TMPR3912 BS1 *2 A11-0 BS1 BS0 CAS* RAS* CS* WE* CKE DQMH DQML CLK 204 27,...16 D[15:8] 14,...2 D[7:0] D15-8 D7-0 Figure 4.6.3 4-bank SDRAM Memory Connection (Big Endian)* (supported only by TMPR3912XB-92/AU-92) *1 Note that Pin No. in the figure above are those of TMPR3912AU-92 (LQFP208). In case of TMPR3912XB-92 (FBGA217), refer to the table in the Section 2. *2 A[8] and A[9] must be swapped when 128 Mbit SDRAM is used. 4-38 Chapter 4 BIU Module Bank0: 16-bit SDRAM A[11:0] *2 A11-0 BS1 (Addr22) BS0 (Addr21) CAS0* RAS* DCS0* CS* WE* WE* DCKE CKE DQML DQML DQMH DQMH DCLKOUT D[31:24] TMPR3912 A[11:0] A[12] CAS1* CAS3* RAS0* DCS0* RAS1* WE* DCKE DQML DQMH DCLKOUT DCLKIN D[23:16] D[31:24] BS1 (Addr22) 197 BS0 (Addr21) 199 CAS3* 194 RAS0* 192 DCS0* 193 DCS1* 169 WE* 202 DCKE 207 DQML 208 DQMH 205 DCLKOUT CLK D7-0 D15-8 Bank1: 16-bit SDRAM *1 Pin No. 172,...189 A[11:0] 171 BS0 CAS* RAS0* D[23:16] BS1 *2 A11-0 BS1 BS0 CAS* RAS* CS* WE* CKE DQML DQMH CLK 204 27,...16 D[23:16] 14,...2 D[31:24] D7-0 D15-8 Figure 4.6.4 4-bank SDRAM Memory Connection (Little Endian)* (supported only by TMPR3912XB-92/AU-92) *1 Note that Pin No. in the figure above are those of TMPR3912AU-92 (LQFP208). In case of TMPR3912XB-92 (FBGA217), refer to the table in the Section 2. *2 A[8] and A[9] must be swapped when 128 Mbit SDRAM is used. 4-39 Chapter 4 BIU Module Bank0: 16-bit DRAM A[12:0] CAS1* CAS0* RAS0* WE* D[15:8] D[7:0] TMPR3911/12 A[12:0] CAS3* CAS2* CAS1* CAS0* RAS0* RAS1* WE* D[31:24] D[23:16] D[15:8] D[7:0] *1 Pin No. 171,...189 A12-0 CAS*HI RAS*LO RAS* WE* D15-8 D7-0 Bank1: 32-bit DRAM A[12:0] 195 CAS3* 197 CAS2* 198 CAS1* 199 CAS0* 194 RAS0* 193 RAS1* 169 WE* 133,...145 D[31:24] 146,...159 D[23:16] 27,...16 D[15:8] 14,...2 D[7:0] A12-0 CAS*HI CAS*MH CAS*ML CAS*LO RAS* WE D31-24 D23-16 D15-8 D7-0 Figure 4.6.5 DRAM Memory Connection (Big Endian)* *1 Note that Pin No. in the figure above are those of TMPR3912AU-92 (LQFP208). In case of TMPR3911BU (LQFP176), TMPR3911BXB (FBGA177) and TMPR3912XB-92 (FBGA217), refer to the table in the Section 2. 4-40 Chapter 4 BIU Module Bank0: 16-bit DRAM A[12:0] CAS2* CAS3* RAS0* WE* D[23:16] D[31:24] TMPR3911/12 A[12:0] CAS0* CAS1* CAS2* CAS3* RAS0* RAS1* WE* D[7:0] D[15:8] D[23:16] D[31:24] *1 Pin No. 171,...189 A12-0 CAS*LO RAS*HI RAS* WE* D7-0 D15-8 Bank1: 32-bit DRAM A[12:0] 195 CAS0* 197 CAS1* 198 CAS2* 199 CAS3* 194 RAS0* 193 RAS1* 169 WE* 133,...145 D[7:0] 146,...159 D[15:8] 27,...16 D[23:16] 14,...2 D[31:24] A12-0 CAS*LO CAS*ML CAS*MH CAS*HI RAS* WE D7-0 D15-8 D23-16 D31-24 Figure 4.6.6 DRAM Memory Connection (Little Endian)* *1 Note that Pin No. in the figure above are those of TMPR3912AU-92 (LQFP208). In case of TMPR3911BU (LQFP176), TMPR3911BXB (FBGA177) and TMPR3912XB-92 (FBGA217), refer to the table in the Section 2. 4-41 Chapter 4 BIU Module CS1: 16 bit 13 HA[25:0] Latch ADDR CS1* WE3* 13 LE WE2* RD* D[31:24] D[23:16] TMPR3911/12 ALE A[12:0] CS1* CS2* CAS3* CAS2* CAS1* CAS0* RD* D[31:24] D[23:16] D[15:8] D[7:0] *1 Pin No. 168 171,...189 CS* WE*HI WE*LO OE* D15-8 D7-0 CS2: 32 bit ALE A[12:0] 126 CS1* 125 CS2* 195 WE3* 197 WE2* 198 WE1* 199 WE0* 163 RD* 133,...145 D[31:24] 146,...159 D[23:16] 27,...16 D[15:8] 14,...2 D[7:0] ADDR CS* WE*HI WE*MH WE*ML WE*LO OE* D31-24 D23-16 D15-8 D7-0 Figure 4.6.7 Chip Select Memory Connection (Big Endian)* *1 Note that Pin No. in the figure above are those of TMPR3912AU-92 (LQFP208). In case of TMPR3911BU (LQFP176), TMPR3911BXB (FBGA177) and TMPR3912XB-92 (FBGA217), refer to the table in the Section 2. 4-42 Chapter 4 BIU Module CS1: 16 bit 13 HA[25:0] Latch ADDR CS1* WE0* 13 LE WE1* RD* D[7:0] D[15:8] TMPR3911/12 ALE A[12:0] CS1* CS2* CAS0* CAS1* CAS2* CAS3* RD* D[7:0] D[15:8] D[23:16] D[31:24] *1 Pin No. 168 171,...189 126 CS* WE*LO WE*HI OE* D7-0 D15-8 CS2: 32 bit ALE A[12:0] ADDR CS1* 125 CS2* 195 WE0* 197 WE1* 198 WE2* 199 WE3* 163 RD* 133,...145 D[7:0] 146,...159 D[15:8] 27,...16 D[23:16] 14,...2 D[31:24] CS* WE*LO WE*ML WE*MH WE*HI OE* D7-0 D15-8 D23-16 D31-24 Figure 4.6.8 Chip Select Memory Connection (Little Endian)* *1 Note that Pin No. in the figure above are those of TMPR3912AU-92 (LQFP208). In case of TMPR3911BU (LQFP176), TMPR3911BXB (FBGA177) and TMPR3912XB-92 (FBGA217), refer to the table in the Section 2. 4-43 Chapter 4 BIU Module 4.7 BIU Registers 4.7.1 Memory Configuration 0 Register OFFSET = $000: Bit 31 30 29 28 27 26 25 24 23 22 21 20 19-18 17-16 15-14 13-12 11-8 7-4 3 2 1 0 Label Reserved ENDCLKOUTTRI DISDQMINIT ENSDRAMPD SHOWDINO ENRMAP2 ENRMAP1 ENWRINPAGE ENCS3USER ENCS2USER ENCS1USER ENCS1DRAM BANK1CONF[1:0] BANK0CONF[1:0] ROWSEL1[1:0] ROWSEL0[1:0] COLSEL1[3:0] COLSEL0[3:0] CS3SIZE CS2SIZE CS1SIZE CS0SIZE RESET Read/Write 0 0 0 0 0 0 0 X X X X X X X X X X X X X See Description R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W ENDCLKOUTTRI: Setting this bit will cause the DCLKOUT pin to tri-state when DGRNT* is asserted during external bus arbitration. Otherwise, DCLKOUT will continue to operate. DISDQMINIT: If this bit is a cleared, the DQMH and DQML signals will go high when coming out of powerdown and remain high until the first access to SDRAM. If this bit is set, this function is disabled and the DQMH and DQML signals will remain low. ENSDRAMPD: Setting this bit will cause the BIU to put the SDRAMs into Power Down mode by lowering DCKE whenever there are no accesses to the SDRAMs for 7 CLK periods. SHOWDINO: Setting this bit will cause internal reads and writes by the processor to function registers to show externally for debug. The RD* signal provides the read or write status, D[31:0] provide the data, A[12:0] provide the address, and the CARDREG* signal provides a chip select on the rising edge for sampling the signals. ENRMAP2: Setting this bit will enable Address Re-Mapper 2. 4-44 Chapter 4 BIU Module ENRMAP1: Setting this bit will enable Address Re-Mapper 1. ENWRINPAGE: Setting this bit will cause the DRAMs and/or SDRAMs to remain in page mode when the WrInPage signal is asserted by the CPU Interface. If this bit is cleared, the WrInPage signal is ignored. ENCS3USER: Setting this bit will enable CS3 in the kuseg Space. ENCS2USER: Setting this bit will enable CS2 in the kuseg Space. ENCS1USER: Setting this bit will enable CS1 in the kuseg Space. ENCS1DRAM: Setting this bit will enable CS1 in Bank 1 and Bank 0 Space. BANK1CONF[1:0]: These bits provide the configuration for Bank 1 according to the following: 11 16-bit SDRAM 10 8-bit SDRAM 01 32-bit DRAM/HDRAM 00 16-bit DRAM/HDRAM BANK0CONF[1:0]: These bits provide the configuration for Bank 0 according to the following: 11 16-bit SDRAM 10 8-bit SDRAM 01 32-bit DRAM/HDRAM 00 16-bit DRAM/HDRAM 4-45 Chapter 4 BIU Module ROWSEL1[1:0]: ROWSEL0[1:0]: COLSEL1[3:0]: COLSEL0[3:0]: These bits determine the Row and Column configuration for addressing according to the following: ROW ROWSEL COL COLSEL 18, 17:9 00 22, 20, 18, 8:1 0000 22, 18, 20, 19, 17:9 01 19, 18, 8:2 0001 20, 22, 21, 19, 17:9 10 21, 20, 18, 8:2 0010 22, 23, 21, 19, 17:9 11 23, 22, 20, 18, 8:2 0011 24, 22, 20, 18, 8:2 0100 18, φ, X, 8:0 0101 22, X, φ, 21, 8:0 0110 18, φ, X, 21, 8:1 0111 22, X, φ, 23, 21, 8:1 1000 24, 23, 21, 8:2 1001 Reserved Others CS3SIZE: Setting this bit defines CS3 to be a 32-bit port. Otherwise, a 16-bit port is assumed. CS2SIZE: Setting this bit defines CS2 to be a 32-bit port. Otherwise, a 16-bit port is assumed. CS1SIZE: Setting this bit defines CS1 to be a 32-bit port. Otherwise, a 16-bit port is assumed. CS0SIZE: Setting this bit defines CS0 to be a 32-bit port. Otherwise, a 16-bit port is assumed. On RESET, this signal is set high if the TESTAIU pin is tied high and low if the TESTAIU pin is tied low. 4-46 Chapter 4 BIU Module 4.7.2 Memory Configuration 1 Register OFFSET = $004 Bit 31-28 27-24 23-20 19-16 15-12 11-8 7-4 3-0 Label MCS3ACCVAL1[3:0] MCS3ACCVAL2[3:0] MCS2ACCVAL1[3:0] MCS2ACCVAL2[3:0] MCS1ACCVAL1[3:0] MCS1ACCVAL2[3:0] MCS0ACCVAL1[3:0] MCS0ACCVAL2[3:0] RESET Read/Write X X X X X X X X R/W R/W R/W R/W R/W R/W R/W R/W MCS3ACCVAL1[3:0]: These bits define the access time for MCS3. If ENMCS3PAGE is set, these bits will be used for the first access and MCS3ACCVAL2[3:0] will be used for the next three accesses for reads only. For writes, only these bits are used. If ENMCS3PAGE is not set, these bits and MCS3ACCVAL2[3:0] should be set with the same value. If ENMCS3PAGE is set, these bits must be set to at least $1. MCS3ACCVAL2[3:0]: These bits define the access time for the next three reads in a burst sequence if ENMCS3PAGE is set. If ENMCS3PAGE is not set, these bits and MCS3ACCVAL1[3:0] should be set with the same value. If ENMCS3PAGE is set, these bits must be set to at least $2. MCS2ACCVAL1[3:0]: These bits define the access time for MCS2. If ENMCS2PAGE is set, these bits will be used for the first access and MCS2ACCVAL2[3:0] will be used for the next three accesses for reads only. For writes, only these bits are used. If ENMCS2PAGE is not set, these bits and MCS2ACCVAL2[3:0] should be set with the same value. If ENMCS2PAGE is set, these bits must be set to at least $1. MCS2ACCVAL2[3:0]: These bits define the access time for the next three reads in a burst sequence if ENMCS2PAGE is set. If ENMCS2PAGE is not set, these bits and MCS2ACCVAL1[3:0] should be set with the same value. If ENMCS2PAGE is set, these bits must be set to at least $2. MCS1ACCVAL1[3:0]: These bits define the access time for MCS1. If ENMCS1PAGE is set, these bits will be used for the first access and MCS1ACCVAL2[3:0] will be used for the next three accesses for reads only. For writes, only these bits are used. If ENMCS1PAGE is not set, these bits and MCS1ACCVAL2[3:0] should be set with the same value. If ENMCS1PAGE is set, these bits must be set to at least $1. MCS1ACCVAL2[3:0]: These bits define the access time for the next three reads in a burst sequence if ENMCS1PAGE is set. If ENMCS1PAGE is not set, these bits and MCS1ACCVAL1[3:0] should be set with the same value. If ENMCS1PAGE is set, these bits must be set to at least $2. 4-47 Chapter 4 BIU Module MCS0ACCVAL1[3:0]: These bits define the access time for MCS0. If ENMCS0PAGE is set, these bits will be used for the first access and MCS0ACCVAL2[3:0] will be used for the next three accesses for reads only. For writes, only these bits are used. If ENMCS0PAGE is not set, these bits and MCS0ACCVAL2[3:0] should be set with the same value. If ENMCS0PAGE is set, these bits must be set to at least $1. MCS0ACCVAL2[3:0]: These bits define the access time for the next three reads in a burst sequence if ENMCS0PAGE is set. If ENMCS0PAGE is not set, these bits and MCS0ACCVAL1[3:0] should be set with the same value. If ENMCS0PAGE is set, these bits must be set to at least $2. 4.7.3 Memory Configuration 2 Register OFFSET = $008 Bit 31-28 27-24 23-20 19-16 15-12 11-8 7-4 3-0 Label CS3ACCVAL1[3:0] CS3ACCVAL2[3:0] CS2ACCVAL1[3:0] CS2ACCVAL2[3:0] CS1ACCVAL1[3:0] CS1ACCVAL2[3:0] CS0ACCVAL1[3:0] CS0ACCVAL2[3:0] RESET Read/Write X X X X X X $F $F R/W R/W R/W R/W R/W R/W R/W R/W CS3ACCVAL1[3:0]: These bits define the access time for CS3. If ENCS3PAGE is set, these bits will be used for the first access and CS3ACCVAL2[3:0] will be used for the next three accesses for reads only. For writes, only these bits are used. If ENCS3PAGE is not set, these bits and CS3ACCVAL2[3:0] should be set with the same value. If ENCS3PAGE is set, these bits must be set to at least $1. CS3ACCVAL2[3:0]: These bits define the access time for the next three reads in a burst sequence if ENCS3PAGE is set. If ENCS3PAGE is not set, these bits and CS3ACCVAL1[3:0] should be set with the same value. If ENCS3PAGE is set, these bits must be set to at least $2. CS2ACCVAL1[3:0]: These bits define the access time for CS2. If ENCS2PAGE is set, these bits will be used for the first access and CS2ACCVAL2[3:0] will be used for the next three accesses for reads only. For writes, only these bits are used. If ENCS2PAGE is not set, these bits and CS2ACCVAL2[3:0] should be set with the same value. If ENCS2PAGE is set, these bits must be set to at least $1. CS2ACCVAL2[3:0]: These bits define the access time for the next three reads in a burst sequence if ENCS2PAGE is set. If ENCS2PAGE is not set, these bits and CS2ACCVAL1[3:0] should be set with the same value. If ENCS2PAGE is set, these bits must be set to at least $2. 4-48 Chapter 4 BIU Module CS1ACCVAL1[3:0]: These bits define the access time for CS1. If ENCS1PAGE is set, these bits will be used for the first access and CS1ACCVAL2[3:0] will be used for the next three accesses for reads only. For writes, only these bits are used. If ENCS1PAGE is not set, these bits and CS1ACCVAL2[3:0] should be set with the same value. If ENCS1PAGE is set, these bits must be set to at least $1. CS1ACCVAL2[3:0]: These bits define the access time for the next three reads in a burst sequence if ENCS1PAGE is set. If ENCS1PAGE is not set, these bits and CS1ACCVAL1[3:0] should be set with the same value. If ENCS1PAGE is set, these bits must be set to at least $2. CS0ACCVAL1[3:0]: These bits define the access time for CS0. If ENCS0PAGE is set, these bits will be used for the first access and CS0ACCVAL2[3:0] will be used for the next three accesses for reads only. For writes, only these bits are used. If ENCS0PAGE is not set, these bits and CS0ACCVAL2[3:0] should be set with the same value. If ENCS0PAGE is set, these bits must be set to at least $1. CS0ACCVAL2[3:0]: These bits define the access time for the next three reads in a burst sequence if ENCS0PAGE is set. If ENCS0PAGE is not set, these bits and CS0ACCVAL1[3:0] should be set with the same value. If ENCS0PAGE is set, these bits must be set to at least $2. 4.7.4 Memory Configuration 3 Register OFFSET = $00C Bit 31-28 27-24 23-20 19-16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Label CARD2ACCVAL[3:0] CARD1ACCVAL[3:0] CARD2IOACCVAL[3:0] CARD1IOACCVAL[3:0] ENMCS3PAGE ENMCS2PAGE ENMCS1PAGE ENMCS0PAGE ENCS3PAGE ENCS2PAGE ENCS1PAGE ENCS0PAGE CARD2WAITEN CARD1WAITEN CARD2IOEN CARD1IOEN PORT8SEL PORT2_8SEL PORT1_8SEL DCLKDISABLE 4-49 RESET Read/Write X X X X X X X X X X X 0 X X X X 0 0 0 0 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W Chapter 4 BIU Module CARD2ACCVAL[3:0]: These bits define the access time for Card 2 Memory Space. CARD1ACCVAL[3:0]: These bits define the access time for Card 1 Memory Space. CARD2IOACCVAL[3:0]: These bits define the access time for Card 2 IO and Attribute Space. CARD1IOACCVAL[3:0]: These bits define the access time for Card 1 IO and Attribute Space. ENMCS3PAGE: Setting this bit will enable Read Page Mode for MCS3. ENMCS2PAGE: Setting this bit will enable Read Page Mode for MCS2. ENMCS1PAGE: Setting this bit will enable Read Page Mode for MCS1. ENMCS0PAGE: Setting this bit will enable Read Page Mode for MCS0. ENCS3PAGE: Setting this bit will enable Read Page Mode for CS3. ENCS2PAGE: Setting this bit will enable Read Page Mode for CS2. ENCS1PAGE: Setting this bit will enable Read Page Mode for CS1. ENCS0PAGE: Setting this bit will enable Read Page Mode for CS0. CARD2WAITEN: Setting this bit will enable the CARD2WAIT* signal. CARD1WAITEN: Setting this bit will enable the CARD1WAIT* signal. CARD2IOEN: Setting this bit will cause accesses to Card 2 I/O space to assert the IORD* or IOWR* signals. This is used for accessing I/O cards. If this bit is not set, RD* or WE* is asserted, which provides Attribute space access. 4-50 Chapter 4 BIU Module CARD1IOEN: Setting this bit will cause accesses to Card 1 I/O space to assert the IORD* or IOWR* signals. This is used for accessing I/O cards. If this bit is not set, RD* or WE* is asserted, which provides Attribute space access. PORT8SEL, PORT2_8SEL, PORT1_8SEL: These bits define the PCMCIA port size. PORT8SEL PORT2_8SEL PORT1_8SEL Port1 Port2 1 * * 8 bit port access 8 bit port access 0 0 1 8 bit port access 16 bit port access 0 1 0 16 bit port access 8 bit port access 0 1 1 8 bit port access 8 bit port access 0 0 0 16 bit port access 16 bit port access DCLKDISABLE: Setting this bit to 1 disables output of DCLKOUT. Clearing the bit to 0 enables output of DCLKOUT except during memory power down (when MEMPORWERDOWN bit is set to 1). 4.7.5 Memory Configuration 4 Register OFFSET = $010 Bit 31 30 29 28 27 26 25 24 23-20 19-17 16 15 14 13-8 7-6 5-0 Label ENBANK1HDRAM ENBANK0HDRAM ENARB DISSNOOP CLRWRBUSERRINT ENBANK1OPT ENBANK0OPT ENWATCH WATCHTIMEVAL[3:0] Reserved MEMPOWERDOWN ENRFSH1 ENRFSH0 RFSHVAL1[5:0] Reserved RFSHVAL0[5:0] RESET Read/Write 0 0 0 0 0 0 0 0 X R/W R/W R/W R/W R/W R/W R/W R/W R/W 1 0 0 X R/W R/W R/W R/W X R/W ENBANK1HDRAM: Setting this bit will enable the TMPR3911/12 to support HDRAM devices in Memory Bank 1. The BANK1CONF bits in the Memory Configuration 0 Register will configure the TMPR3912 to support either a 16-bit HDRAM configuration or a 32-bit HDRAM configuration, in the same manner that standard DRAM is setup. 4-51 Chapter 4 BIU Module ENBANK0HDRAM: Setting this bit will enable the TMPR3911/12 to support HDRAM devices in Memory Bank 0. The BANK0CONF bits in the Memory Configuration 0 Register will configure the TMPR3911/12 to support either a 16-bit HDRAM configuration or a 32-bit HDRAM configuration, in the same manner that standard DRAM is setup. ENARB: Setting this bit will always cause the CPU Interface logic to externally arbitrate with the CPU during DMA reads and writes when the DISSNOOP control bit is set. DISSNOOP: Setting this bit will prevent the CPU Interface logic from causing the SNOOP signal to assert to the CPU Core during DMA writes. CLRWRBUSERRINT: WRBUSERRINT will occur whenever a write is timed out by the Watch Dog Timer. This interrupt is connected directly to INT[0] on the CPU and is completely independent of the rest of the TMPR3911/12 interrupt logic. When this interrupt is set, it will remain set until the CLRWRBUSERRINT bit is asserted. The bit must be set and subsequently cleared to clear the interrupt. ENBANK1OPT: Setting this bit will cause the BIU to insert an extra clock of delay between the assertion of RAS1* and the assertion of the CAS* signals for DRAM accesses. This is needed for interfacing to 80 ns DRAMs when running with a clock greater than 70 MHz. ENBANK0OPT: Setting this bit will cause the BIU to insert an extra clock of delay between the assertion of RAS0* and the assertion of the CAS* signals for DRAM accesses. This is needed for interfacing to 80 ns DRAMs when running with a clock greater than 70 MHz. ENWATCH: Setting this bit will enable the Watch Dog Timer. WATCHTIMEVAL[3:0]: These bits define the length of the Watch Dog Timer. The Watch Dog Timer rate is determined by the following equation: Watch Dog Timer Rate = (WATCHTIME [3:0]+ 1)* 64 fCLK MEMPOWERDOWN: Setting this bit will cause the memory interface to be put into Memory Power Down mode which will cause the DRAMs and SDRAMs to be put into self-refresh and all memory signals will be driven low. The memory interface will remain powered down until the processor attempts to access a location in memory other than function registers. 4-52 Chapter 4 BIU Module ENRFSH1: Setting this bit will cause the BIU to begin refreshing Bank 1 DRAMs or SDRAMs. This bit should not be set until meeting the start up specification requirements for the memory devices. ENRFSH0: Setting this bit will cause the BIU to begin refreshing Bank 0 DRAMs or SDRAMs. This bit should not be set until meeting the start up specification requirements for the memory devices. RFSHVAL1[5:0]: These bits define the refresh period for Bank 1 refresh according to the following: $0 15.26 µs $1 61.04 µs $2 91.55 µs $3 122.07 µs RFSHVAL0[5:0]: These bits define the refresh period for Bank 0 refresh according to the following: $0 15.26 µs $1 61.04 µs $2 91.55 µs $3 122.07 µs : 4.7.6 Memory Configuration 5 Register OFFSET = $014: Bit 31-9 8-4 3-0 STARTVAL2[31:9]: write-only Label STARTVAL2[31:9] Reserved MASK2[3:0] write-only These bits define the start address for re-map region 2. MASK2[3:0]: write-only These bits define the mask for re-map region 2. 4-53 RESET Read/Write X W X W Chapter 4 BIU Module 4.7.7 Memory Configuration 6 Register OFFSET = $018: Bit 31-9 8-4 3-0 write-only Label STARTVAL1[31:9] Reserved MASK1[3:0] STARTVAL1[31:9]: RESET Read/Write X W X W RESET Read/Write X W write-only These bits define the start address for re-map region 1. MASK1[3:0]: write-only These bits define the mask for re-map region 1. 4.7.8 Memory Configuration 7 Register OFFSET = $01C: Bit 31-9 8-0 write-only Label RMAPADD2[31:9] Reserved RMAPADD2[31:9]: write-only These bits define the destination address for re-map region 2. 4.7.9 Memory Configuration 8 Register OFFSET = $020: Bit 31-9 8-0 RMAPADD1[31:9]: write-only Label RMAPADD1[31:9] Reserved RESET Read/Write X W write-only These bits define the destination address for re-map region 1. 4-54 Chapter 5 SIU Module 5. 5.1 SIU Module Overview The SIU Module within the TMPR3911/12 provides the multi-channel 32-bit DMA controller used to select and arbitrate the DMA channels from each SIM DMA source. Independent DMA channels are provided for Magicbus, video, sound, telecom, CHI, UARTA, and UARTB sources. The SIU Module also contains the address decoder for all of the submodules contained within the SIM. This decoder generates the read and write enable pulses for each of the internal function registers. 5-1 Chapter 5 SIU Module 5.2 Implementation 5.2.1 Block Diagram PRIORITY ENCODER STATE MACHINE AND ARBITER HI PRI MAGICBUS DMA REQ & RD/WR VIDEO DMA REQ & RD/WR SOUND DMA REQ & RD/WR TELECOM DMA REQ & RD/WR CHI DMA REQ & RD/WR UARTA DMA REQ & RD/WR UARTB DMA REQ & RD/WR RD/WR TO MEMORY START TRANSACTION SIGNAL MAGICBUS DMA ACK VIDEO DMA ACK’S (burst of 4) SOUND DMA ACK TELECOM DMA ACK CHI DMA ACK UARTA DMA ACK UARTB DMA ACK 4 LO PRI SELECTED DMA SOURCE MAGICBUS DMA ADDR VIDEO DMA ADDR SOUND DMA ADDR TELECOM DMA ADDR CHI DMA ADDR UARTA DMA ADDR UARTB DMA ADDR MAGICBUS DMA DATA SOUND DMA DATA TELECOM DMA DATA CHI DMA DATA UARTA DMA DATA UARTB DMA DATA 30 ADDR MUX 30 ADDR TO MEMORY 32 DATA TO MEMORY 30 32 DATA MUX 32 Figure 5.2.1 SIU DMA Controller Block Diagram 5-2 Chapter 5 SIU Module 5.2.2 DMA Controller Description Figure 5.2.1 shows a block diagram of the SIU DMA Controller. The DMA Controller receives the DMA requests and read/write status from all of the 7 possible DMA sources (Magicbus, video, sound, telecom, CHI, UARTA, and UARTB) and uses a Priority Encoder to arbitrate and select the highest priority request. If a new request is received and the DMA controller is currently busy, that request will remain pending and will be processed as soon as all other higher priority pending requests have been processed. The priority of the DMA sources and the DMA direction (read or write) supported are shown in Table 5.2.1. Table 5.2.1 DMA Sources DMA Source Magicbus priority DMA read (from memory) DMA write (to memory) highest yes yes video (burst of 4 longs) yes no sound yes yes telecom yes yes CHI yes yes UART-A (1 byte) yes yes yes yes UART-B (1 byte) lowest The state machine for the Priority Encoder also generates the START transaction pulse and read versus write status signal to the CPU Interface for each DMA transaction. After the arbiter decodes all received DMA requests and selects the highest priority request as the DMA channel to be processed, the DMA address and data busses for the selected DMA channel are routed to the memory subsystem. All DMA sources transfer 1 word per transaction, except for the video which always transfers 4 consecutive words at a time (and thus returns 4 separate ACKs to the Video Module), and the UARTs which transfer only 1 byte at a time. The UARTs are thus tagged with the appropriate Byte Enable (corresponding to 1 of 4 byte positions) depending on the byte count in the DMA address counter within the respective UART Module. The state machine also generates the required acknowledge (ACK) signal at the end of each DMA transaction. This ACK signal is used by the circuit corresponding to the respective DMA source to either latch the data from memory (for a read transaction) or to enable the data to memory (for a write transaction). The SIU also contains several test bits (see Section 5.3) which allow detailed testing of the DMA Controller for various combinations of simultaneous DMA requests. These bits are used for IC testing and should never be set. 5-3 Chapter 5 SIU Module 5.2.3 Address Decoder Description Figure 5.2.2 shows a block diagram of the SIM Address Decoder. The Address Decoder generates the read and write enable pulses for each of the internal TMPR3911/12 control and status registers. The lower 8 bits of the internal address bus are decoded, along with the SIM chip select and read/write status signal, to generate any 1 of 256 possible write enable pulses or any 1 of 256 possible read enable pulses. These enable pulses are used by the circuit/module targeted by the respective read or write pulse to either latch the data from the CPU (for a write transaction) or to enable the data to the CPU (for a read transaction). See the next section for a full listing of all the internal function Registers, including their address offset and read versus write support. The address offset for function Registers is the offset from the base address ($10C00000) of the function Registers in the System Address Map. SIM ADDRESS DECODER CHIP SELECT RD/WR ADDR BUS(9:2) WR MEM CONFIG 0 REG RD MEM CONFIG 0 REG WR MEM CONFIG 1 REG RD MEM CONFIG 1 REG WR MEM CONFIG 2 REG RD MEM CONFIG 2 REG 8 WR CHI HOLDING REG RD CHI HOLDING REG Figure 5.2.2 SIM Address Decoder Block Diagram 5-4 Chapter 5 SIU Module 5.2.4 Internal Function Registers Offset Read/Write 000 004 008 00C 010 014 018 01C 020 028 02C 030 034 038 03C 040 044 048 04C 050 054 058 05C 060 064 068 06C 070 074 078 07C 080 084 088 08C 090 0A0 0A4 0A8 0B0 0B4 0B8 0BC 0C0 0C4 0C8 0CC 0D0 0D4 0D8 0DC R/W R/W R/W R/W R/W W W W W R/W W W W W W W W W W W W W W W W W W W R/W R/W R/W R/W R/W R R R/W R/W W W R/W W W W R R/W R/W W W W R R/W Register Memory Configuration 0 Memory Configuration 1 Memory Configuration 2 Memory Configuration 3 Memory Configuration 4 Memory Configuration 5 Memory Configuration 6 Memory Configuration 7 Memory Configuration 8 Video Control 1 Video Control 2 Video Control 3 Video Control 4 Video Control 5 Video Control 6 Video Control 7 Video Control 8 Video Control 9 Video Control 10 Video Control 11 Video Control 12 Video Control 13 Video Control 14 SIB Size SIB Sound Receive Start SIB Sound Transmit Start SIB Tel Receive Start SIB Tel Transmit Start SIB Control SIB Sound Holding Register SIB Tel Holding Register SIB SF0 Control SIB SF1 Control SIB SF0 Status SIB SF1 Status SIB DMA Control IR Control 1 IR Control 2 IR Holding Register UARTA Control 1 UARTA Control 2 UARTA DMA Control 1 UARTA DMA Control 2 UARTA DMA Count UARTA Holding Register UARTB Control 1 UARTB Control 2 UARTB DMA Control 1 UARTB DMA Control 2 UARTB DMA Count UARTB Holding Register 5-5 Chapter 5 SIU Module Offset Read/Write 0E0 0E4 0E8 0EC 0F0 0F4 0F8 100 100 104 104 108 108 10C 10C 110 110 114 118 11C 120 124 128 12C 140 144 148 14C 150 154 160 164 180 184 188 18C 190 194 198 1C0 1C4 1C8 1D8 1DC 1E0 1E4 1E8 1EC 1F0 1F4 1F8 1FC 208 R/W W W W R W R/W W R W R W R W R W R R R/W R/W R/W R/W R/W R/W R R R/W R/W R/W R/W R/W R/W R/W R/W R/W R R/W R/W R/W R/W R/W R/W R/W R/W W W W W R/W W W R/W R Register Magicbus Control 1 Magicbus Control 2 Magicbus DMA Control 1 Magicbus DMA Control 2 Magicbus DMA Control Magicbus Swap Magicbus Holding Register Clear Interrupt 1 Interrupt Status 1 Clear Interrupt 2 Interrupt Status 2 Clear Interrupt 3 Interrupt Status 3 Clear Interrupt 4 Interrupt Status 4 Clear Interrupt 5 Interrupt Status 5 Interrupt Status 6 Enable Interrupt 1 Enable Interrupt 2 Enable Interrupt 3 Enable Interrupt 4 Enable Interrupt 5 Enable Interrupt 6 RTC High RTC Low Alarm High Alarm Low Timer Control Periodic Timer SPI Control SPI Holding Register IO Control Multi-function IO Data Out Multi-function IO Direction Multi-function IO Data In Multi-function IO Select I/O Power Down Multi-function I/O Power Down Clock Control Power Control SIU Test CHI Control CHI Pointer Enable CHI Receive Pointer A CHI Receive Pointer B CHI Transmit Pointer A CHI Transmit Pointer B CHI Size CHI Receive Start CHI Transmit Start CHI Holding Register TX3911/12 Revision Register 5-6 Chapter 5 SIU Module 5.3 SIU Registers 5.3.1 SIU Test Register OFFSET = $1C8: Bit 31-8 7 6 5-0 Label RESET Read/Write 0 0 0 R/W R/W R/W RESET Read/Write – R Reserved ENDMATEST ENNOTIMETEST DMATESTWR[5:0] ENDMATEST: This bit is used for IC testing and should never be set. ENNOTIMETEST: This bit is used for IC testing and should never be set. DMATESTWR[5:0]: These bits are used for IC testing and should never be set. 5.3.2 TMPR3911/12 Revision Register OFFSET = $208: Bit 31-8 7 Label Reserved READREVISION READREVISION: These bits indicate revisions of the TMPR3911/12. The following values are read out: TMPR3912AU-92 : $01 TMPR3912XB-92 : $01 TMPR3911BU : $02 TMPR3911BXB : $02 5-7 Chapter 5 SIU Module 5-8 Chapter 6 Clock Module 6. 6.1 Clock Module Overview The Clock Module within the TMPR3911/12 contains logic for generating the clocks for all other internal TMPR3911/12 modules, as well as for generating certain externally driven TMPR3911/12 output clocks. The Clock Module contains dividers for generating the correct rates for each clock and also contains logic for independently enabling or disabling individual clocks under software control. DIVMOD in power control register in Power Module can be used to keep compatibility between TMPR3911 and TMPR3912 peripheral module, such as UART, timer and so on. Because once DIVMOD is set to high, peripheral master clock is generated by free clock, which means frequency of peripheral master clock is free of RF function. 6-1 Chapter 6 Clock Module 6.1.1 Related Pins SYSCLKIN: INPUT This pin should be connected along with SYSCLKOUT to an external crystal which is the main TMPR3911/12 clock source. SYSCLKOUT: OUTPUT This pin should be connected along with SYSCLKIN to an external crystal which is the main TMPR3911/12 clock source. 6-2 Chapter 6 Clock Module 6.2 Implementation 6.2.1 Block Diagram SLOWBUS(*2) RF[1:0](*1) VCC3 STOPCPU DCLKDISABLE (*5) SYSCLK OSC PLL (×8) DCLKOUT High Rate Clock Enable Logic ENABLE CLK MEMPOWERDOWN 1/2 CORECLK CLK2X CLK 1/2 FREECLK XHFREE ENVIDCLK RESET MUX Prgm.Divider VIDCLK VIDEO Module DIVMOD(*4) VIDRF[1:0](*3) MUX ENSIBMCLK SIBMCLKDIR Prgm.Divider SIBMCLK SIBMCLKDIV[2:0] SIB Master Clock SIB Interface SIBSCLK SIBSYNC ENCHIMCLK CHICLKDIR MUX Prgm.Divider CHICLK CHI Master Clock CHIMCLKSEL CHICLKDIV[7:0] CHI module ENCSERCLK CSERCLK MUX 1/2 or 1/4 (*6) Prgm.Divider IRCLK IR module ENIRCLK CSERSEL CSERCLKDIV[2:0] UARTACLK UARTA module ENUARTACLK UARTBCLK UARTB module ENUARTBCLK Magicbus Master Clock ENTIMERCLK MAGIC BUS module ENMBUSCLK 1/32 Timer Master Clock 1/5 SPI Master Clock ENSPICLK Figure 6.2.1 Clock Module Block Diagram 6-3 TIMER module SPI module CHIFS Chapter 6 Clock Module 1 RF[1:0]* 2 SLOWBUS* CORECLK DCLKOUT CLK2X FREECLK CLK XHFREE 00 0 F F F F F/2 F/2 01 0 F/2 F/2 F/2 F F/4 F/2 10 0 F/4 F/4 F/4 F F/8 F/2 11 0 F/8 F/8 F/8 F F/16 F/2 00 1 F/2 F/2 F/2 F F/4 F/2 01 1 F/4 F/4 F/4 F F/8 F/2 10 1 F/8 F/8 F/8 F F/16 F/2 11 1 F/16 F/16 F/16 F F/32 F/2 3 VIDRF[1:0]* VIDCLK 00 F/2 01 F/4 10 F/8 11 F/16 Note: *1 *2 *3 *4 *5 *6 RF[1:0] is defined by the Config Register in TX39/H Core. SLOWBUS is defined by the Power Control Register in Power Module. VIDRF[1:0] is defined by the Power Control Register in Power Module. DIVMOD is defined by the Power Control Register in Power Module. DCLKDISABLE is defined by the Memory Configuration 3 Register. 1/2: TMPR3912XB-92/AU-92 1/4: TMP3911BU/BXB 6-4 Chapter 6 Clock Module 6.2.2 Clock Module Description Figure 6.2.1 shows a block diagram of the Clock Module. The main TMPR3911/12 clock source is from an external crystal, connected to the TMPR3911/12 via the SYSCLKIN/SYSCLKOUT pins. The TMPR3911/12 contains an oscillator which is internally connected to these pins. The output of the oscillator feeds a phase-locked-loop (or multiplier) circuit which takes the lower rate oscillator output and generates the higher-rate clocks required by the TMPR3911/12. For example, if the external SYSCLK crystal rate is 9.216 MHz, the PLL multiplier circuit performs an ×8 rate multiplication to generate a high-speed clock rate of 73.728 MHz. Each of the individual clocks can also be enabled or disabled under software control, in order to reduce power consumption. All of these clocks default to a disabled state during reset. The main high rate clocks generated by the Clock Module are the following: • CLK2X – variable rate clock and same rate as the CORECLK; used for generating other lower rate clocks and for certain memory interface circuits in the BIU • CLK – half rate of CLK2X used as the master clock for many of the TMPR3911/12 modules and for generating other lower rate clocks • CORECLK – same rate as CLK2X and twice the rate of CLK (TMPR3911/12); used as master clock for CPU core. • DCLKOUT – same rate as CLK2X; used as high-speed externally driven clock for SDRAMs • FREECLK – fixed rate clock generated by PLL • XHFREE – half rate of FREECLK • The SIBMCLK pin can be configured as an output, for which the programmable rate is generated by dividing down from CLK2X. The SIBMCLK pin can also be configured as an input. In this mode, all SIB clocks are derived from an external SIBMCLK oscillator source, which is asynchronous with respect to CLK2X. This mode allows optional decoupling of the SIB (as well as the CHI and UART) rates from the CPU core clock rate. The selected SIBMCLK source is then used as the SIB Master Clock for the SIB Module circuits, and is also used to generate the SIBSCLK and SIBSYNC externally driven TMPR3911/12 output signals. • The CHICLK pin can be configured as an output, for which the programmable rate is generated by dividing down from either CLK or the SIB Master Clock. The CHICLK pin can also be configured as an input. In this mode, all CHI clocks are derived from an external peripheral source and the CHI Module will slave to this external clock. The selected CHICLK source is used as the CHI Master Clock for the CHI Module circuits, and is also used to generate the CHIFS externally driven TMPR3911/12 output signal. • The programmable UART Master Clock is generated by dividing down from either CLK or the SIB Master Clock, and is used as the master clock for the baud generator circuit within each UART Module. • The Clock Module also contains several fixed dividers for generating the master clocks for the Video, Magicbus, RTC timer, and SPI circuits. These clocks are divided down from either CLK2X or CLK. 6-5 Chapter 6 Clock Module 6.3 Clock Registers 6.3.1 Clock Control Register OFFSET = $1C0: Bit 31-24 23 22 21 20 19 18 17 16 15 14 13 12 11 10-8 7 6-4 3 2 1 0 Label RESET Read/Write 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 R/W − − R/W R/W R/W R/W R/W R/W R/W − R/W − R/W R/W R/W R/W R/W R/W R/W R/W CHICLKDIV[7:0] Reserved * Reserved * CHIMCLKSEL CHICLKDIR ENCHIMCLK ENVIDCLK ENMBUSCLK ENSPICLK ENTIMERCLK Reserved * SIBMCLKDIR Reserved ENSIBMCLK SIBMCLKDIV[2:0] CSERSEL CSERDIV[2:0] ENCSERCLK ENIRCLK ENUARTACLK ENUARTBCLK *) These bits must be zero. CHICLKDIV[7:0]: These bits define the divide-modulus for the programmable divider used to generate CHICLK. The divide-modulus is equal to (CHICLKDIV+2). (See the following table.) CHICLKDIV[7:0] divide-modulus 0 1 2 2 3 4 n n+2 253 254 255 256 6-6 Chapter 6 Clock Module CHIMCLKSEL: Setting this bit to a logic “1” selects the external SIBMCLK source to be the CHI master clock. Clearing this bit to a logic “0” selects an internal clock source to be the CHI master clock. CHICLKDIR: This bit controls the direction of the CHICLK pin. Setting this bit to a logic “1” configures CHICLK to be an output (CHI master mode). Clearing this bit to a logic “0” configures CHICLK to be an input (CHI slave mode). ENCHIMCLK: This bit is used to enable or disable the CHICLK counter and CHICLK clock generation. Setting this bit to a logic “1” enables the CHICLK counter and CHICLK generation. Clearing this bit to a logic “0” disables the CHICLK counter and CHICLK generation, halting the clock to the CHI Module in order to reduce power consumption. ENVIDCLK: This bit is used to enable or disable the video master clock. Setting this bit to a logic “1” enables the VIDCLK. Clearing this bit to a logic “0” disables the VIDCLK, halting the clock to the Video Module in order to reduce power consumption. ENMBUSCLK: This bit is used to enable or disable the Magicbus master clock. Setting this bit to a logic “1” enables the Magicbus master clock. Clearing this bit to a logic “0” disables the Magicbus master clock, halting the clock to the Magicbus Module in order to reduce power consumption. ENSPICLK: This bit is used to enable or disable the SPICLK counter and SPI master clock generation. Setting this bit to a logic “1” enables the SPICLK counter and SPI master clock generation. Clearing this bit to a logic “0” disables the SPICLK counter and SPI master clock generation, halting the clock to the SPI Module in order to reduce power consumption. ENTIMERCLK: This bit is used to enable or disable the RTC periodic timer clock counter. Setting this bit to a logic “1” enables the timer clock counter. Clearing this bit to a logic “0” disables the timer clock counter. SIBMCLKDIR: This bit controls the direction of the SIBMCLK pin. Setting this bit to a logic “1” configures SIBMCLK to be an output. Clearing this bit to a logic “0” configures SIBMCLK to be an input. ENSIBMCLK: This bit is used to enable or disable the SIBMCLK counter and SIBMCLK clock generation. Setting this bit to a logic “1” enables the SIBMCLK counter and SIBMCLK generation. Clearing this bit to a logic “0” disables the SIBMCLK counter and SIBMCLK generation, halting the clock to the SIB Module in order to reduce power consumption. 6-7 Chapter 6 Clock Module SIBMCLKDIV[2:0]: These bits define the divide-modulus for the programmable divider used to generate SIBMCLK. The divide-modulus is equal to (SIBMCLK+2). (See the following table.) SIBMCLKDIV divide-modulus 0 1 2 3 4 5 6 2 3 4 5 6 7 8 CSERSEL: Clearing this bit to a logic “0” selects the external SIBMCLK source to be the CSERCLK master clock. Setting this bit to a logic “1” selects an internal clock source to be the CSERCLK master clock. CSERDIV[2:0]: These bits define the divide-modulus for the programmable divider used to generate CSERCLK. The divide-modulus is equal to (CSERDIV+2). (See the following table.) CSERDIV divide-modulus 0 1 2 3 4 5 6 2 3 4 5 6 7 8 ENCSERCLK: This bit is used to enable or disable the CSERCLK counter. Setting this bit to a logic “1” enables the CSERCLK counter. Clearing this bit to a logic “0” disables the CSERCLK counter. ENIRCLK: This bit is used to enable or disable the IRCLK clock generation. Setting this bit to a logic “1” enables the IRCLK generation. Clearing this bit to a logic “0” disables the IRCLK generation, halting the clock to the IR Module in order to reduce power consumption. ENUARTACLK: This bit is used to enable or disable the UARTACLK clock generation. Setting this bit to a logic “1” enables the UARTACLK generation. Clearing this bit to a logic “0” disables the UARTACLK generation, halting the clock to the UARTA Module in order to reduce power consumption. ENUARTBCLK: This bit is used to enable or disable the UARTBCLK clock generation. Setting this bit to a logic “1” enables the UARTBCLK generation. Clearing this bit to a logic “0” disables the UARTBCLK generation, halting the clock to the UARTB Module in order to reduce power consumption. 6-8 Chapter 6 Clock Module Table 6.3.1 through Table 6.3.3 show examples of the frequencies for each clock. Table 6.3.1 Clock Frequencies (1) DIVMOD = 0, CHIMCLKSEL = 0, CSERSEL = 1, RF[1:0] = 00, SLOWBUS = 0 Frequency Clock Symbol Calculation Register setting value Frequency (MHz) SYSCLK (External Crystal) fIN – 7.3728 9.216 11.520 DCLKOUT (SDRAM Clock) fDCLKOUT fIN × 8 58.9824 73.728 92.160 CLK fCLK fIN × 4 29.4912 36.864 46.080 CLK2X fCLK2X fIN × 8 58.9824 73.728 92.160 XHFREE fXHFREE fIN × 4 29.4912 36.864 46.080 FREECLK fFREECLK fIN × 8 58.9824 73.728 92.160 VIDCLK (VIDEO Master Clock) fVIDCLK fXHFREE ÷ (2^VIDRF[1:0]) VIDRF = 00 01 10 11 29.4912 14.7456 7.3728 3.6864 36.864 18.432 9.216 4.608 46.080 23.040 11.520 5.760 SIBMCLK (SIB Master Clock) fSIBMCLK fCLK2X ÷ (SIBMCLKDIV[2:0] + 2) SIBMCLKDIV = 000 001 010 011 100 101 110 111 29.4912 19.6608 14.7456 11.7965 9.8304 8.4261 7.3728 – 36.864 24.576 18.432 14.746 12.288 10.532 9.216 – 46.080 30.720 23.040 18.432 15.360 13.166 11.520 – CHICLKDIV = $00 ∼ $FE 14.7456 ∼ 0.1152 18.432 ∼ 0.144 23.040 ∼ 0.180 fCLK2X ÷ 4 (3911BU/BXB) 14.7456 18.432 – fCLK2X ÷ 2 (AU-92/XB-92) – – 46.08 7.3728 4.9152 3.6864 2.94912 2.4576 2.1065 1.8432 – 9.216 6.144 4.608 3.6864 3.072 2.633 2.304 – 23.04 15.36 11.52 9.216 7.680 6.5829 5.760 – CHICLK (CHI Clock) CSERCLK fCHICLK fCSERCLK fCLK ÷ (CHICLKDIV[7:0] + 2) CSERDIV = 000 001 010 011 100 101 110 111 IRCLK (IR Master Clock) fIRCLK fCSERCLK ÷ (CSERDIV[2:0] + 2) UARTACLK (UART-A Master Clock) fUARTACLK fCSERCLK ÷ (CSERDIV[2:0] + 2) UARTBCLK (UART-B Master Clock) fUARTBCLK fCSERCLK ÷ (CSERDIV[2:0] + 2) MBUSMCLK (Magic Bus Master Clock) fMBUSMCLK fCLK 29.4912 36.864 46.089 TIMERCLK (Timer Master Clock) fTIMERCLK fCLK ÷ 32 0.9216 1.152 1.440 SPIMCLK (SPI Master Clock) fSPIMCLK fCLK ÷ 5 5.8982 7.3728 9.216 SYSCLK (External Crystal) fIN – 7.3728 9.216 11.520 DCLKOUT (SDRAM Clock) fDCLKOUT fIN × 4 29.4912 36.864 46.080 CLK fCLK fIN × 2 14.7456 18.432 23.040 CLK2X fCLK2X fIN × 4 29.4912 36.864 46.080 6-9 Chapter 6 Clock Module Table 6.3.2 Clock Frequencies (2) DIVMOD = 0, CHIMCLKSEL = 0, CSERSEL = 1, RF[1:0] = 01, SLOWBUS = 0 or RF[1:0] = 00, SLOWBUS = 1 Frequency Clock Symbol Calculation Register setting value Frequency (MHz) XHFREE fXHFREE fIN × 4 29.4912 36.864 46.080 FREECLK fFREECLK fIN × 8 58.9824 73.728 92.160 VIDCLK (VIDEO Master Clock) fVIDCLK fXHFREE ÷ (2^VIDRF[1:0]) VIDRF = 00 01 10 11 29.4912 14.7456 7.3728 3.6864 36.864 18.432 9.216 4.608 46.080 23.040 11.520 5.760 SIBMCLK (SIB Master Clock) fSIBMCLK fCLK2X ÷ (SIBMCLKDIV[2:0] + 2) SIBMCLKDIV = 000 001 010 011 100 101 110 111 14.7456 9.8304 7.3728 5.8982 4.9152 4.2130 3.6864 – 18.432 12.288 9.216 7.373 6.144 5.266 4.608 – 23.040 15.360 11.520 9.216 7.680 6.583 5.760 – 7.3728 ∼ 0.0576 9.216 ∼ 0.072 11.520 ∼ 0.090 fCLK2X ÷ 4 (3911BU/BXB) 7.3728 9.216 – fCLK2X ÷ 2 (AU-92/XB-92) – – 23.040 3.6864 2.4576 1.8432 1.4746 1.2288 1.0533 0.9216 – 4.608 3.072 2.304 1.8432 1.536 1.3165 1.152 – 11.52 7.68 5.76 4.608 3.840 3.291 2.880 – CHICLK (CHI Clock) CSERCLK fCHICLK fCSERCLK fCLK ÷ (CHICLKDIV[7:0] + 2) CHICLKDIV = $00 ∼ $FE IRCLK (IR Master Clock) fIRCLK fCSERCLK ÷ (CSERDIV[2:0] + 2) CSERDIV = 000 001 010 011 100 101 110 111 UARTACLK (UART-A Master Clock) UARTBCLK (UART-B Master Clock) MBUSMCLK (Magic Bus Master Clock) fUARTACLK fUARTBCLK fMBUSMCLK fCSERCLK ÷ (CSERDIV[2:0] + 2) fCLK 14.7456 18.432 23.040 TIMERCLK (Timer Master Clock) fTIMERCLK fCLK ÷ 32 0.4608 2.9491 0.576 3.6864 0.720 4.608 SPIMCLK (SPI Master Clock) fSPIMCLK fCLK ÷ 5 SYSCLK (External Crystal) fIN – DCLKOUT (SDRAM Clock) fDCLKOUT fIN × 4 29.4912 36.864 46.080 CLK fCLK fIN × 2 14.7456 18.432 23.040 CLK2X fCLK2X fIN × 4 29.4912 36.864 46.080 XHFREE fXHFREE fIN × 4 29.4912 36.864 46.080 FREECLK fFREECLK fIN × 8 58.9824 73.728 92.160 fCSERCLK ÷ (CSERDIV[2:0] + 2) 6-10 Chapter 6 Clock Module Table 6.3.3 Clock Frequencies (3) DIVMOD = 1, CHIMCLKSEL = 0, CSERSEL = 1, RF[1:0] = 01, SLOWBUS = 0 or RF[1:0] = 00, SLOWBUS = 1 Frequency Clock Symbol Calculation VIDCLK (VIDEO Master Clock) fVIDCLK fXHFREE ÷ (2^VIDRF[1:0]) SIBMCLK (SIB Master Clock) fSIBMCLK fFREECLK ÷ (SIBMCLKDIV[2:0] + 2) CHICLK (CHI Clock) fCHICLK fXHFREE ÷ (CHICLKDIV[7:0] + 2) Register setting value Frequency (MHz) VIDRF = 00 01 10 11 29.4912 14.7456 7.3728 3.6864 36.864 18.432 9.216 4.608 46.080 23.040 11.520 5.760 SIBMCLKDIV = 000 001 010 011 100 101 110 111 29.4912 19.6608 14.7456 11.7965 9.8304 8.4261 7.3728 – 36.864 24.576 18.432 14.746 12.288 10.532 9.216 – 46.080 30.720 23.040 18.432 15.360 13.166 11.520 – CHICLKDIV = $00 ∼ $FE 14.7456 ∼ 0.1152 18.432 ∼ 0.144 23.040 ∼ 0.180 14.7456 18.432 – – – 46.08 7.3728 4.9152 3.6864 2.94912 2.4576 2.1065 1.8432 – 9.216 6.144 4.608 3.6864 3.072 2.633 2.304 – 23.04 15.36 11.52 9.216 7.680 6.5829 5.760 – fFREECLK ÷ 4 (3911BU/BXB) CSERCLK fCSERCLK IRCLK (IR Master Clock) fIRCLK fCSERCLK ÷ (CSERDIV[2:0] + 2) UARTACLK (UART-A Master Clock) fUARTACLK fCSERCLK ÷ (CSERDIV[2:0] + 2) UARTBCLK (UART-B Master Clock) fUARTBCLK fCSERCLK ÷ (CSERDIV[2:0] + 2) MBUSMCLK (Magic Bus Master Clock) fMBUSMCLK fXHFREE 29.4912 36.864 46.089 TIMERCLK (Timer Master Clock) fTIMERCLK fXHFREE ÷ 32 0.9216 1.152 1.440 SPIMCLK (SPI Master Clock) fSPIMCLK fXHFREE ÷ 5 5.8982 7.3728 9.216 fFREECLK ÷ 2 (AU-92/XB-92) 6-11 CSERDIV = 000 001 010 011 100 101 110 111 Chapter 6 Clock Module 6-12 Chapter 7 CHI Module 7. CHI Module 7.1 Overview The CHI Module within the TMPR3911/12 contains holding registers, shift registers, DMA support, and other logic to support interfacing to external full-duplex serial TDM communication peripherals, including ISDN communication devices and PCM/TDM serial highways. The TMPR3911/12 implementation of the CHI Module is based on the Concentration Highway Interface standard specified by Intel and AT&T, which is intended to allow glueless interface to various TDM highways used by numerous commercial products. The TMPR3911/12 CHI Module can also be used to support an intra-system high-speed serial DMA channel within a PIC system. The TMPR3911/12 CHI Module utilizes a 4-signal interface consisting of clock, sync, transmit serial data, and receive serial data. The data is organized as a TDM format, with up to 64 timeslots (nominally 8 bits each) per frame, with a nominal frame rate of 8 kHz (8 bits × 8 kHz = 64 kbps nominal data rate per channel). Up to four input timeslots and up to four output timeslots can be independently selected in each half-frame. The CHI Module does not handle the timeslots which are not selected for input or output. The number of timeslots and the data rate (up to 4.096 Mbps) and frame rate (up to 64 kHz, depending on the system configuration) are programmable, providing flexibility for supporting various TDM communication peripherals. These timeslots are commonly used to carry voice, data, or control and status information. The CHI Module provides full-duplex DMA support for receive and transmit (two DMA channels). The DMA buffers can be configured in a continuous (circular) buffer mode or a one-time (empty or fill, then stop) buffer mode. Half-buffer and end-of-buffer DMA address counter interrupts are available, allowing the CPU to minimize overhead and efficiently empty or fill half of the DMA buffer in a ping-pong fashion. The DMA buffer size is programmable (up to a maximum of 16 Kbytes) and the receive and transmit buffers can be configured to either reside in different memory spaces or share the same memory space (overlapping buffers for loopback purposes or for optimum memory allocation). Also available is a direct CPU read/write mode for bypassing the DMA, allowing the CPU to read or write the CHI data on a sample by sample basis, if so desired. 7.1.1 Related Pins CHIFS: INPUT/OUTPUT This pin is the CHI frame synchronization signal. This pin is available for use in one of two modes. As an output, this pin allows the TMPR3911/12 to be the master CHI sync source. As an input, this pin allows an external peripheral to be the master CHI sync source and the TMPR3911/12 CHI Module will slave to this external sync. CHICLK: INPUT/OUTPUT This pin is the CHI clock signal. This pin is available for use in one of two modes. As an output, this pin allows the TMPR3911/12 to be the master CHI clock source. As an input, this pin allows an external peripheral to be the master CHI clock source and the TMPR3911/12 CHI Module will slave to this external clock. CHIDOUT: OUTPUT This pin is the CHI serial data output signal. CHIDIN: INPUT This pin is the CHI serial data input signal. 7-1 Chapter 7 CHI Module 7.2 Interface Requirements 7.2.1 Frame Structure and Serial Timing Each CHI frame (nominally 8 kHz rate) is time-division-multiplexed into several timeslots or channels. The total number of timeslots per frame is programmable, with a maximum of 64 timeslots allowed, and the number of timeslots is also restricted to an even number. Each timeslot is 8 bits, although 16-bit or 32-bit channels can be supported by accessing adjacent timeslots. The TMPR3911/12 CHI Module supports a master or slave mode for both the clock (CHICLK) and sync (CHIFS). For the master mode, the TMPR3911/12 contains programmable dividers for generating the clock and/or sync signal, synchronously dividing down from the main core clock (CLK). For the slave mode, TMPR3911/12 accepts external clock and/or sync signals and utilizes “digital-PLL” type circuitry to stayed “locked” to the external source. The CHI Module supports the following programmable features which allow support for various clock and sync timing formats: • 1x versus 2x clock modes for CHICLK (2x clock mode uses two CHICLK periods per data bit) • MSB-first versus LSB-first serial formats for transmit and receive • rising versus falling edge (polarity) used for frame sync triggering • CHIFS signal can be sampled on either rising or falling edge of CHICLK • CHIDIN receive data can be sampled on either rising or falling edge of CHICLK • CHIDOUT transmit data can be pushed on either rising or falling edge of CHICLK • CHIDIN receive data can have programmable bit offset (timeslot 0 offset from CHIFS) • CHIDOUT transmit data can have programmable bit offset (timeslot 0 offset from CHIFS) • CHIDOUT transmit data (tri-state) output buffer enable is dynamically asserted for only active timeslots; for sleep mode CHIDOUT is always tri-stated • for CHIFS master mode, the CHIFS pulse width and polarity is programmable The TMPR3911/12 CHI Module allows for a programmable bit offset for both CHIDIN and CHIDOUT, which is related to the number of clock cycles between the start of timeslot 0 and CHIFS. This flexibility allows the TMPR3911/12 CHI Module to support a wide variety of interface clock and sync timing formats. The control bits for controlling the CHIDIN bit offset are CHIRXBOFF[3:0], while the control bits for controlling the CHIDOUT bit offset are CHITXBOFF[3:0]. 7-2 Chapter 7 CHI Module Table 7.2.1 and Table 7.2.2 shows a summary matrix for the values of CERX and CETX for all possible settings of CHIRXBOFF and CHITXBOFF, respectively. These values are shown for various configurations of CHICLK mode (1x versus 2x), CHIFSEDGE, CHIRXEDGE, and CHITXEDGE. The CHIFSEDGE settings determine whether to use the rising edge (CHIFSEDGE = 1) or falling edge (CHIFSEDGE = 0) of CHICLK to sample CHIFS. The CHIRXEDGE settings determine whether to use the rising edge (CHIRXEDGE = 1) or falling edge (CHIRXEDGE = 0) of CHICLK to sample the CHIDIN input. The CHITXEDGE settings determine whether to use the rising edge (CHITXEDGE = 1) or falling edge (CHITXEDGE = 0) of CHICLK to push the CHIDOUT output. CERX is defined as the number of CHICLK clock edges (rising and falling) between the edge where CHIFS is sampled and the edge where CHIDIN is sampled. CETX is defined as the number of CHICLK clock edges (rising and falling) between the edge where CHIFS is sampled and the edge where CHIDOUT is pushed. The CHI frame structure and bit offsets are shown in Figure 7.2.1~7.2.7 for various clock and sync configurations. Table 7.2.1 CERX Values for CHIRXBOFF Versus Clock and Edge Configurations chiclk chifs- chirxmode edge edge CHIRXBOFF 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1x 0 0 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 1x 1 1 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 1x 0 1 -1 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 1x 1 0 -1 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 2x 0 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 2x 1 1 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 2x 0 1 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 2x 1 0 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 Table 7.2.2 CETX Values for CHITXBOFF Versus Clock and Edge Configurations chiclk chifsmode edge chitxedge CHITXBOFF 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1x 0 0 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 1x 1 1 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 1x 0 1 -1 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 1x 1 0 -1 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 2x 0 0 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 2x 1 1 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 2x 0 1 -1 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 2x 1 0 -1 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 When the CHI frame consists of only two time slots, not all the BOFF values are supported. The offsets must be within the half-frame. 7-3 Chapter 7 CHI Module channel 1 Start Frame start channel 63 channel 0 channel 1 CHICLK CHIFS CHIDIN 0 1 2 6 7 CHIDOUT 0 1 2 6 7 Figure 7.2.1 CHI Frame Structure Example CHICLK 1X mode CHIFS sampled on falling edge CHIDIN sampled on falling edge; RXBOFF = 0; CERX = 0 CHIDOUT pushed on rising edge; TXBOFF = 0; CETX = −1 channel 1 Start Frame start channel 0 channel 63 channel 1 CHICLK CHIFS 0 CHIDIN CHIDOUT 1 0 2 1 6 2 7 6 7 Figure 7.2.2 CHI Frame Structure Example CHICLK 1X mode CHIFS sampled on rising edge CHIDIN sampled on falling edge; RXBOFF = 1; CERX = 1 CHIDOUT pushed on falling edge; TXBOFF = 1; CETX = 1 channel 1 Start Frame start channel 0 channel 63 channel 1 CHICLK CHIFS CHIDIN 0 CHIDOUT 0 1 1 2 2 6 6 7 7 Figure 7.2.3 CHI Frame Structure Example CHICLK 1X mode CHIFS sampled on falling edge CHIDIN sampled on rising edge; RXBOFF = 2; CERX = 3 CHIDOUT pushed on falling edge; TXBOFF = 0; CETX = 0 7-4 Chapter 7 CHI Module channel 1 Start Frame start channel 0 channel 63 channel 1 CHICLK CHIFS CHIDIN 0 1 2 6 7 CHIDOUT 0 1 2 6 7 Figure 7.2.4 CHI Frame Structure Example CHICLK 2X mode CHIFS sampled on falling edge CHIDIN sampled on rising edge; RXBOFF = 0; CERX = 1 CHIDOUT pushed on rising edge; TXBOFF = 0; CETX = −1 channel 1 Start Frame start channel 0 channel 63 channel 1 CHICLK CHIFS CHIDIN 0 1 2 6 7 CHIDOUT 0 1 2 6 7 Figure 7.2.5 CHI Frame Structure Example CHICLK 2X mode CHIFS sampled on falling edge CHIDIN sampled on rising edge; RXBOFF = 2; CERX = 5 CHIDOUT pushed on rising edge; TXBOFF = 2; CETX = 3 channel 1 Start Frame start channel 0 channel 63 channel 1 CHICLK CHIFS CHIDIN 0 1 2 6 7 CHIDOUT 0 1 2 6 7 Figure 7.2.6 CHI Frame Structure Example CHICLK 2X mode CHIFS sampled on rising edge CHIDIN sampled on rising edge; RXBOFF = 0; CERX = 2 CHIDOUT pushed on rising edge; TXBOFF = 0; CETX = 0 7-5 Chapter 7 CHI Module channel 1 Start Frame start channel 0 channel 63 channel 1 CHICLK CHIFS CHIDIN 0 1 2 6 7 CHIDOUT 0 1 2 6 7 Figure 7.2.7 CHI Frame Structure Example CHICLK 2X mode CHIFS sampled on falling edge CHIRXFSPOL = 1 (negative polarity) CHIDIN sampled on rising edge; RXBOFF = 1; CERX = 3 CHIDOUT pushed on rising edge; TXBOFF = 1; CETX = 1 7-6 Chapter 7 CHI Module 7.2.2 Configurations The programmability of the clock, sync, bit offsets, and number of timeslots allows the CHI Module to support a wide range of configurations. Several of these configurations are commonly utilized as communication interfaces by numerous commercial products, some of which are briefly discussed below. Other configurations are available for application-specific usage. The K2 Interface is an AT&T standard used as a serial inter-chip digital interface between U-interface transmission circuits and various system-wide interface circuits. The K2 Interface utilizes four pins (clock, sync, data in, and data out) and consists of eight 8-bit timeslots, with a frame rate of 8 kHz and a clock rate of 512 kHz. The SLD Interface utilizes 3 pins (clock, sync, data), with the transmit and receive pins tied together, such that the data is sent bi-directionally in a ping-pong fashion. The SLD Interface consists of eight 8bit timeslots, with 4 timeslots reserved for transmit and 4 timeslots reserved for receive. The frame rate is 8 kHz and the clock rate is 512 kHz. The GCI Interface is a 4-pin variable-speed TDM highway utilizing anywhere from 4 to 48 timeslots. The frame rate is 8 kHz and the clock rate is 2x the data rate and varies from 512-kHz to 6.144 MHz. The IOM-2 Interface is commonly used to interface to 4-pin ISDN line interface drivers. Each frame consists of twelve 8-bit timeslots, with a frame rate of 8 kHz and a (2x) clock rate of 1.536-MHz. The CEPT Level-1 PCM Format is a common communications standard used for digital transmission of voice and data. Each frame consists of 32 8-bit timeslots, with a frame rate of 8-kHz and a (1x) clock rate of 2.048 MHz. Table 7.2.3 shows a summary matrix of several example CHI configurations and their associated parameters. Table 7.2.3 Example CHI Configurations (table values based on CLK = 36.864 MHz) chiclk divide time slots chiclk mode 4.5 64 2x 8 kHz 8.192 MHz 4.096 Mbps 6 48 2x 8 kHz 6.144 MHz 3.072 Mbps GCI format 9 64 1x 8 kHz 4.096 MHz 4.096 Mbps CHI format hi-speed mode fs chiclk rate data rate comments slave mode only 9 8 1x 64 kHz 4.096 MHz 4.096 Mbps 10 64 1x 7.2 kHz 3.6864 MHz 3.6864 Mbps 12 24 2x 8 kHz 3.072 MHz 1.536 Mbps 12 48 1x 8 kHz 3.072 MHz 3.072 Mbps 18 32 1x 8 kHz 2.048 MHz 2.048 Mbps 24 12 2x 8 kHz 1.536 MHz 768 kbps IOM-2 format 72 8 1x 8 kHz 512 MHz 512 kbps K2, SLD formats CEPT PCM format Note that the maximum achievable frame rate depends on the system configuration. If devices with long access time and/or 16 bit-wide data bus are used, the frame rate of 64 kHz may be unachievable because of the reduced bus band width. Using other interfaces in parallel with CHI and/or reducing the CPU clock frequencies will also reduce the band width available for CHI. 7-7 Chapter 7 CHI Module 7.3 Implementation 7.3.1 Block Diagram DATA FROM DMA OR CPU 32 CONTROL FROM CPU 32B TX HOLD REG-A 32B TX HOLD REG-B 8 TX TDM SWITCH CTRL REG MSB VS LSB FIRST TX SHIFT LOAD 8 CMP TXOE OUT REG 8B TX SHIFT REG CHIDOUT CLK PRGM DIVIDER TX CH CNT CHI CTRL AND STAT REG CHICLK CLOCK AND CONTROL LOGIC SYNCH PRGM DIVIDER CHIFS SYNCH RX CH CNT RX TDM SWITCH CTRL REG CMP 8B RX SHIFT REG SYNCH CHIDIN 8 RX HOLD LOAD MSB VS LSB FIRST 8 32B RX HOLD REG-A 32B RX HOLD REG-B 32 DATA TO DMA OR CPU Figure 7.3.1 CHI Module Block Diagram The CHI Module consists of holding registers (both transmit and receive), shift registers (both transmit and receive), DMA support, and other logic to support interfacing to various types of TDM highways. See Figure 7.3.1 for a block diagram of the CHI Module. 7-8 Chapter 7 CHI Module 7.3.2 Transmitter For the CHI transmit direction, Buffer-A and Buffer-B transmit holding registers are written either from the DMA circuit or directly from the CPU. Each of these 2 holding registers are 32-bits wide, and CHI control logic determines which byte from which holding register gets loaded at a given time into the 8-bit transmit shift register. In addition, the byte data loaded from the holding register to the shift register can be MSB-first or LSB-first. The reason for having Buffer-A and Buffer-B holding registers is that the CHI Module operates in a ping-pong fashion. Each frame of data is partitioned into 2 buffers (A and B); for example, with 64 timeslots total, the data is partitioned into 32 timeslots per buffer. The ping-pong operation allows one buffer to be updated (via the DMA or CPU) while the other buffer is being loaded into the shift register a byte at a time, depending on which timeslots are active. The pingpong operation is transparent to the CPU or DMA interface, since the CHI Module automatically points to the correct A or B buffer at a given time and the CPU or DMA always accesses the same 32-bit holding register for all transactions. The transmit TDM switch control register is used to select ANY 4 channels per buffer to be loaded from the holding register to the shift register. For example, if the CHI Module is configured for 32 timeslots per buffer (64 total timeslots), any 4 channels per buffer (8 total) can be selected out of the 32 available channels. The CHIDOUT signal is tri-stated during any of the non-selected channels. Each of the 8 selected channels also has an individual control bit for enabling/disabling the timeslot. Figure 7.3.2 shows how the transmit TDM switch works, for example, with 16 total timeslots. TX HOLDING REGISTER A TX HOLDING REGISTER B byte3 byte3 byte2 byte1 byte0 BIT31…………………….BIT0 ch0 ch1 ch2 ch3 BIT 16…13 Hi-Z Hi-Z byte1 byte0 BIT31…………………….BIT0 BIT0……………….BIT31 CHIDOUT byte2 Hi-Z Hi-Z Hi-Z ch9 8…15 Hi-Z 24…31 0…7 ch11 Hi-Z ch13 ch14 Hi-Z CHIFS CHINCHAN[4:0] TXMSBFIRST CHI Pointer Enable CHI Transmit Pointer A CHI Transmit Pointer B 0x07 0 0xFFxx0000 0x03020100 0x05010306 Figure 7.3.2 Transmit TDM Switch Example 7.3.3 Receiver For the CHI receive direction, Buffer-A and Buffer-B receive holding registers are read either by the DMA circuit or directly by the CPU. Each of these 2 holding registers are 32 bits wide, and CHI control logic determines which byte to which holding register gets loaded at a given time from the 8-bit receive shift register. In addition, the byte data loaded from the shift register to the holding register can be MSB-first or LSB-first. Similar to the transmit direction, the receive section also operates in a pingpong fashion, allowing one buffer to be read (via the DMA or CPU) while the other buffer is being loaded from the shift register a byte at a time, depending on which timeslots are active. The receive TDM switch control register (independent from the transmit TDM switch control register) is used to select ANY 4 channels per buffer to be loaded from the shift register to the holding register. Each of the 8 selected channels also has an individual control bit for enabling/disabling the timeslot. 7-9 Chapter 7 CHI Module An interrupt is available whenever a valid 32 bit word is available from the receive data holding register A. This also means a valid CHI output sample can be written to the transmit data holding register A. Similarly, an interrupt is also available whenever a valid 32 bit word is available from the receive data holding register B. This also means a valid CHI output sample can be written to the transmit data holding register B. 7.3.4 Clock and Control Generation The CHI Module contains several programmable counters which are used to generate the various CHI internal and external control signals and clocks. See Figure 7.3.3 for a block diagram of the CHI clock and control generation circuit. As mentioned previously, CHICLK can be configured as either an output (master mode) or input (slave mode). As an output, CHICLK is derived by dividing down from CLK. In this mode, all CHI clocks are then synchronously locked to the main TMPR3911/12 system clock. As an input, CHICLK is generated from an external clock source, which is asynchronous with respect to CLK. The TMPR3911/12 CHI Module utilizes a digital-PLL circuit to stay “locked” to the external source, while still operating internally using CLK. CHIDIN and CHIDOUT are also synchronized between CLK and the externally-supplied CHICLK. CHIFS can also be configured as either an output (master mode) or input (slave mode). As an output, CHIFS is derived by dividing down from CHICLK. For this mode, the CHIFS pulse width and polarity is also programmable. As an input, CHIFS is generated from an external sync source. The TMPR3911/12 CHI Module utilizes a digital-PLL circuit to stay “locked” to the external sync source, while still operating internally using CLK. The programmable receive and transmit sync delay counters shown in Figure 7.3.3 are used to implement the bit offset feature described earlier. The bit offset control bits determine the number of clock cycles between the start of timeslot 0 and CHIFS. The receive and transmit sync delay counters are independent from each other, such that the receive and transmit serial data streams can have different bit offsets. The programmable receive channel counter output is constantly compared with the receive TDM switch control register values, and whenever a match occurs, the byte of data is loaded from the receive shift register into the correct field within the receive holding register. Similarly, the programmable transmit channel counter output is constantly compared with the transmit TDM switch control register values, and whenever a match occurs, the byte of data is loaded from the correct field within the transmit holding register into the receive shift register. All control registers, including the TDM switch control registers, must be unchanged while the CHI Module is enabled. If any register is changed during the CHI operation, the result is undefined. 7-10 Chapter 7 CHI Module CLK PRGM CHICLK DIVIDER PRGM CHIFS DIVIDER CHICLK SYNCH DIGITAL PLL CHIFS SYNCH DIGITAL PLL PRGM RX FS DELAY CNT ÷ 8/16 RX BIT CNT PRGM RX CHAN CNT DECODE RX START/STOP CONTROL RX SHIFT REG CONTROL RX HOLDING REG CONTROL RX DMA REQ CONTROL SAMPLE INTERRUPT CMP RX TDM SWITCH CNTL PRGM TX FS DELAY CNT ÷ 8/16 TX BIT CNT PRGM TX CHAN CNT DECODE TX START/STOP CONTROL TX SHIFT REG CONTROL TX HOLDING REG CONTROL TX DMA REQ CONTROL SAMPLE INTERRUPT TX CHIDOUT ENABLE CMP TX TDM SWITCH CNTL CONTROL FROM CPU Figure 7.3.3 CHI Clock and Control Generation 7-11 Chapter 7 CHI Module 7.3.5 DMA Address Generation The CHI Module provides support for 2 full-duplex DMA channels: receive and transmit. The circuit used to generate the DMA address, as well as half-buffer and end-of-buffer interrupts is shown in Figure 7.3.4. DMA RD/WR mode RX START ADDR 2:1 30 TX START ADDR DMA CNTL REG ONE-TIME VS. CIRCULAR MODE CLK CNT LOAD LOGIC 12 DMA ADDR CNT 12 BUFFER 12 SIZE ÷2 30 DMA ADDR CMP END-OF-BUFFER INTERRUPT CMP HALF-BUFFER INTERRUPT CONTROL FROM CPU Figure 7.3.4 CHI DMA Address Generation 7-12 Chapter 7 CHI Module The DMA buffer size is programmable (up to a maximum of 16 Kbytes) and the receive and transmit buffer start addresses are also programmable (anywhere over the full 32-bit address space). Because there are separate start addresses, the receive and transmit buffers can be configured to either reside in different memory spaces or share the same memory space. The latter setup allows for overlapping buffers for loopback purposes or for optimum memory allocation, for which the DMA logic supports two full-duplex loopback modes. For one mode, receive DMA requests are issued first, followed by transmit DMA requests. This ordering allows a receive-to-transmit immediate loopback via the DMA buffer. For the second mode, transmit DMA requests are issued first, followed by receive DMA requests. Thus, received samples are written to the DMA buffer location immediately after transmit samples were read from that same location (which then became immediately available). This ordering allows a single circular DMA buffer to be used for both transmit and receive samples. The DMA buffers can be configured in a circular buffer mode or a one-time buffer mode. For the circular mode, the DMA address is continuously incremented (each time a DMA acknowledge is received from the TMPR3911/12’s central DMA controller) and rolls over back to the start address after the end-of-buffer is reached and will continue operating in a continuous and circular manner. For the one-time mode, the DMA logic will stop executing whenever the end-of-buffer is reached. Because the CHI Module reads and writes a byte at a time between the shift registers and the 32 bit holding registers, the software must pack and unpack these bytes to and from the 32 bit words in memory in order to multiplex and demultiplex each channel for processing. Table 7.3.1 shows the format and organization of the CHI channels within memory for DMA mode. Consecutive byte samples for a given channel reside in memory every 8th byte. Note that the byte lanes are swapped between the little- and big-endian modes. In the little-endian mode, bits 31:24 of a word on the DMA buffer correspond to the byte lane with the address offset ‘+3’ and therefore to the ‘byte0’ in the CHI TX/RX holding register. On the contrary, in the big-endian mode, bits 31:24 of a word on the DMA buffer correspond to the byte lane with the address offset ‘+0’ and therefore to the ‘byte3’ in the CHI TX/RX holding register. Table 7.3.1 CHI DMA Memory Organization (relative) memory address +0x0 +0x4 +0x8 +0xC +0x10 +0 +1 +2 +3 buffA, byte3 sample 0 buffB, byte3 sample 0 buffA, byte3 sample 1 buffB, byte3 sample 1 buffA, byte3 sample 2 buffA, byte2 sample 0 buffB, byte2 sample 0 buffA, byte2 sample 1 buffB, byte2 sample 1 buffA, byte2 sample 2 buffA, byte1 sample 0 buffB, byte1 sample 0 buffA, byte1 sample 1 buffB, byte1 sample 1 buffA, byte1 sample 2 buffA, byte0 sample 0 buffB, byte0 sample 0 buffA, byte0 sample 1 buffB, byte0 sample 1 buffA, byte0 sample 2 etc. For a given channel, the minimum input-to-output latency for the CHI data path is (4 cycles) × (62.5 µs) = 250 µs, assuming an 8 kHz frame rate. These required 4 cycles are as follows: • 1 cycle to load receive shift register into receive holding register • 1 cycle for DMA of receive holding register data into receive memory space • (insert here any application-specific time required for processing of received data and moving result to transmit memory space) • 1 cycle for DMA of data in transmit memory space to transmit holding register • 1 cycle to load transmit holding register data into transmit shift register 7-13 Chapter 7 CHI Module Half-buffer and end-of-buffer DMA address counter interrupts are available, allowing the CPU to minimize overhead and utilize the DMA buffer in a ping-pong fashion. For transmit mode, the CPU can use these interrupts to fill or write one half of the buffer while the other half is being emptied by the DMA controller for transmitting out the CHI. Similarly, for receive mode, the CPU can use these interrupts to empty or read one half of the buffer while the other half is being filled by the DMA controller from received CHI input samples. Also available is a direct CPU read/write mode for bypassing the DMA, allowing the CPU to read or write the CHI data on a sample by sample basis, if so desired. Separate DMA enables for receive and transmit allow DMA to be setup for receive only (transmit via CPU), transmit only (receive via CPU), receive and transmit, or none (receive and transmit via CPU). The DMA circuit also provides an interrupt each time the DMA buffer pointer is incremented, which occurs whenever a new sample is read from and/or written to the DMA buffer. This interrupt may be useful for triggering a read of the DMA pointer status value, which is the actual 12-bit DMA address counter output. This value indicates exactly where the current address is pointing to in the overall DMA buffer. 7.3.6 Related Interrupts CHI0_5INT: Issues an interrupt whenever the CHI DMA buffer pointer has reached the halfway point. CHI1_0INT: Issues an interrupt whenever the CHI DMA buffer pointer has reached the end-of-buffer point. CHIDMACNTINT: Issues an interrupt each time the CHI DMA buffer pointer is incremented, which occurs whenever a new CHI sample is read from and/or written to the CHI DMA buffer. CHIININTA: Issues an interrupt whenever a valid CHI input sample is available from CHI RX Holding Register A; this also means a valid CHI output sample can be written to CHI TX Holding Register A. CHIININTB: Issues an interrupt whenever a valid CHI input sample is available from CHI RX Holding Register B; this also means a valid CHI output sample can be written to CHI TX Holding Register B. CHIACTINT: Issues an interrupt whenever CHICLK is active. This is used for CHI wakeup purposes. CHIERRINT: Issues an interrupt whenever a CHI error is received. This interrupt is triggered if CPU or DMA reading of the CHI RX Holding Registers does not keep up with the hardware filling of the CHI RX Holding Registers or if CPU or DMA writing of the CHI TX Holding Registers does not keep up with the hardware emptying of the CHI TX Holding Registers. 7-14 Chapter 7 CHI Module 7.4 CHI Registers 7.4.1 CHI Control Register OFFSET = $1D8: Bit 31-30 29 28 27 26-25 24-20 19-16 15-12 11 10 9 8 7 6 5 4 3 2 1 0 Label Reserved CHILOOP CHIENTEST CHIFSDIR CHIFSWIDTH[1:0] CHINCHAN[4:0] CHITXBOFF[3:0] CHIRXBOFF[3:0] TXMSBFIRST RXMSBFIRST CHIRXFSPOL CHITXFSPOL CHIRXEDGE CHITXEDGE CHIFSEDGE CHITXFSEDGE CHICLK2XMODE CHIRXEN CHITXEN ENCHI RESET Read/Write 0 0 0 X X X X X X X X X X X X 0 0 0 0 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W CHILOOP: This bit is used for IC testing and should not be set. Setting this bit to a logic “1” will cause the CHI serial transmitted data to be internally looped back to the CHI serial receive data path. The data is inverted when this mode is selected. Clearing this bit to a logic “0” selects the normal CHIDIN pin as the CHI serial receive data source. CHIENTEST: This bit is used for IC testing and should not be set. CHIFSDIR: This bit controls the direction of the CHIFS pin. Setting this bit to a logic “1” configures CHIFS to be an output (CHI sync master mode). Clearing this bit to a logic “0” configures CHIFS to be an input (CHI sync slave mode). Note that CHIRXFSPOL and CHIFSEDGE bits must be set to proper values even when CHIFSDIR is set to a logic “1” (CHI sync master mode). 7-15 Chapter 7 CHI Module CHIFSWIDTH[1:0]: These bits are used to select pulse width for the CHIFS signal, relevant whenever the CHI Module is configured as master mode. The pulse width is counted by data bit width. (In clk2x mode, two CHICLKs correspond to one data bit.) The available CHIFS pulse widths are as follows: CHIFSWIDTH 0 1 2 3 CHIFS pulse width 1 bit wide 2 bits wide 1 byte wide half-frame wide CHINCHAN[4:0]: These bits are used to program the number of 8-bit channel timeslots per half-frame, up to 32 total per half-frame. The value loaded for CHINCHAN is the desired number of channels-1. CHITXBOFF[3:0]: These bits select the transmit data programmable bit offset, which is related to the number of clocks from the start of timeslot 0 (1st timeslot) transmit data to the CHIFS edge used to trigger the start of each CHI frame. The value loaded for CHITXBOFF must be chosen from Table 7.2.2 according to the configuration. CHIRXBOFF[3:0]: These bits select the receive data programmable bit offset, which is related to the number of clocks from the start of timeslot 0 (1st timeslot) receive data to the CHIFS edge used to trigger the start of each CHI frame. The value loaded for CHIRXBOFF must be chosen from Table 7.2.1 according to the configuration. TXMSBFIRST: This bit selects between MSB-first and LSB-first serial data formats for each byte of the CHI transmit data. Setting this bit to a logic “1” selects MSB-first. Clearing this bit to a logic “0” selects LSB-first. RXMSBFIRST: This bit selects between MSB-first and LSB-first serial data formats for each byte of the CHI receive data. Setting this bit to a logic “1” selects MSB-first. Clearing this bit to a logic “0” selects LSB-first. CHIRXFSPOL: This bit selects between positive (active high) or negative (active low) polarity for the received CHIFS signal pulse. This bit must be properly set in CHI sync master mode, as well as in CHI sync slave mode; In CHI sync master mode, CHIRXFSPOL must be equal to CHITXFSPOL. Setting this bit to a logic “1” selects negative polarity for the CHIFS pulse. In this case, the falling edge of the CHIFS pulse is used to trigger the start of the CHI frame period. Clearing this bit to a logic “0” selects positive polarity for the CHIFS pulse. In this case, the rising edge of the CHIFS pulse is used to trigger the start of the CHI frame period. 7-16 Chapter 7 CHI Module CHITXFSPOL: This bit selects between positive (active high) or negative (active low) polarity for the transmitted CHIFS signal pulse, relevant whenever the CHI Module is configured as master mode. Setting this bit to a logic “1” selects negative polarity for the CHIFS pulse. Clearing this bit to a logic “0” selects positive polarity for the CHIFS pulse. CHIRXEDGE: This bit selects whether to use either the rising edge or falling edge of CHICLK to sample the receive data CHIDIN. Setting this bit to a logic “1” selects rising edge. Clearing this bit to a logic “0” selects falling edge. CHIDIN must be stable before and after the specified CHICLK edge. CHITXEDGE: This bit selects whether to use either the rising edge or falling edge of CHICLK to clock out the transmit data CHIDOUT. Setting this bit to a logic “1” selects rising edge. Clearing this bit to a logic “0” selects falling edge. CHIFSEDGE: This bit selects whether to use either the rising edge or falling edge of CHICLK to sample the receive frame sync CHIFS. This bit must be properly set in CHI sync master mode, as well as in CHI sync slave mode. Setting this bit to a logic “1” selects rising edge. Clearing this bit to a logic “0” selects falling edge. CHIFS must be stable before and after the specified CHICLK edge; In CHI sync master mode, CHIFSEDGE must be equal to inverted CHITXFSEDGE. CHITXFSEDGE: This bit selects whether to use either the rising edge or falling edge of CHICLK to clock out the transmit frame sync CHIFS, relevant whenever the CHI Module is configured as master mode. Setting this bit to a logic “1” selects rising edge. Clearing this bit to a logic “0” selects falling edge. CHICLK2XMODE: This bit selects between 1x and 2x clock modes. Setting this bit to a logic “1” selects 2x clock mode, which means that the CHICLK frequency equals twice the serial data bit rate. Clearing this bit to a logic “0” selects 1x clock mode, which means that the CHICLK frequency equals the serial data bit rate. CHIRXEN: This bit is used to enable/disable CHI receive processing in the direct CPU read/write mode, where the CPU reads the received data through the CHI RX holding register. Setting this bit to a logic “1” enables CHI receive processing. Clearing this bit to a logic “0” disables CHI receive processing, causing all received data to not be processed by the CHI module. This bit has no effect when RX DMA is enabled. CHITXEN: This bit is used to enable/disable CHI transmit processing in the direct CPU read/write mode, where the CPU writes the data to be transmitted through the CHI TX holding register. Setting this bit to a logic “1” enables CHI transmit processing. Clearing this bit to a logic “0” disables CHI transmit processing, causing the CHI serial transmitted data to be tri-stated. This bit has no effect when TX DMA is enabled. 7-17 Chapter 7 CHI Module ENCHI: This bit is used to enable/disable the CHI module. Setting this bit to a logic “1” enables the CHI module. Clearing this bit to a logic “0” disables the CHI Module and keeps the module in a reset state but gives no effect on the CHI Control Register. To begin the CHI operation, follow the procedure below. 1) Set up all the configuration registers except CHIRXEN, CHITXEN, ENDMARXCHI, ENDMATXCHI, and ENCHI bits. 2) Set either CHIRXEN or ENDMARXCHI, and/or, either CHITXEN or ENDMATXCHI, to a logic “1”. 3) Set ENCHI to a logic “1”. To finish the CHI operation. 1) Clear ENCHI to a logic “0”. 2) Clear ENDMARXCHI and/or ENDMATXCHI to a logic “0”, if they were previously set. 7.4.2 CHI Pointer Enable Register OFFSET = $1DC: Bit 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15-0 Label CHITXPTRB3EN CHITXPTRB2EN CHITXPTRB1EN CHITXPTRB0EN CHITXPTRA3EN CHITXPTRA2EN CHITXPTRA1EN CHITXPTRA0EN CHIRXPTRB3EN CHIRXPTRB2EN CHIRXPTRB1EN CHIRXPTRB0EN CHIRXPTRA3EN CHIRXPTRA2EN CHIRXPTRA1EN CHIRXPTRA0EN Reserved RESET Read/Write X X X X X X X X X X X X X X X X X R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W CHITXPTRB3EN: This bit is used to enable/disable the timeslot for the transmit channel pointed to by the TDM switch pointer CHITXPTRB3. Setting this bit to a logic “1” enables the timeslot. Clearing this bit to a logic “0” disables the timeslot. CHITXPTRB2EN: This bit is used to enable/disable the timeslot for the transmit channel pointed to by the TDM switch pointer CHITXPTRB2. Setting this bit to a logic “1” enables the timeslot. Clearing this bit to a logic “0” disables the timeslot. CHITXPTRB1EN: This bit is used to enable/disable the timeslot for the transmit channel pointed to by the TDM switch pointer CHITXPTRB1. Setting this bit to a logic “1” enables the timeslot. Clearing this bit to a logic “0” disables the timeslot. 7-18 Chapter 7 CHI Module CHITXPTRB0EN: This bit is used to enable/disable the timeslot for the transmit channel pointed to by the TDM switch pointer CHITXPTRB0. Setting this bit to a logic “1” enables the timeslot. Clearing this bit to a logic “0” disables the timeslot. CHITXPTRA3EN: This bit is used to enable/disable the timeslot for the transmit channel pointed to by the TDM switch pointer CHITXPTRA3. Setting this bit to a logic “1” enables the timeslot. Clearing this bit to a logic “0” disables the timeslot. CHITXPTRA2EN: This bit is used to enable/disable the timeslot for the transmit channel pointed to by the TDM switch pointer CHITXPTRA2. Setting this bit to a logic “1” enables the timeslot. Clearing this bit to a logic “0” disables the timeslot. CHITXPTRA1EN: This bit is used to enable/disable the timeslot for the transmit channel pointed to by the TDM switch pointer CHITXPTRA1. Setting this bit to a logic “1” enables the timeslot. Clearing this bit to a logic “0” disables the timeslot. CHITXPTRA0EN: This bit is used to enable/disable the timeslot for the transmit channel pointed to by the TDM switch pointer CHITXPTRA0. Setting this bit to a logic “1” enables the timeslot. Clearing this bit to a logic “0” disables the timeslot. CHIRXPTRB3EN: This bit is used to enable/disable the timeslot for the receive channel pointed to by the TDM switch pointer CHIRXPTRB3. Setting this bit to a logic “1” enables the timeslot. Clearing this bit to a logic “0” disables the timeslot. CHIRXPTRB2EN: This bit is used to enable/disable the timeslot for the receive channel pointed to by the TDM switch pointer CHIRXPTRB2. Setting this bit to a logic “1” enables the timeslot. Clearing this bit to a logic “0” disables the timeslot. CHIRXPTRB1EN: This bit is used to enable/disable the timeslot for the receive channel pointed to by the TDM switch pointer CHIRXPTRB1. Setting this bit to a logic “1” enables the timeslot. Clearing this bit to a logic “0” disables the timeslot. CHIRXPTRB0EN: This bit is used to enable/disable the timeslot for the receive channel pointed to by the TDM switch pointer CHIRXPTRB0. Setting this bit to a logic “1” enables the timeslot. Clearing this bit to a logic “0” disables the timeslot. CHIRXPTRA3EN: This bit is used to enable/disable the timeslot for the receive channel pointed to by the TDM switch pointer CHIRXPTRA3. Setting this bit to a logic “1” enables the timeslot. Clearing this bit to a logic “0” disables the timeslot. 7-19 Chapter 7 CHI Module CHIRXPTRA2EN: This bit is used to enable/disable the timeslot for the receive channel pointed to by the TDM switch pointer CHIRXPTRA2. Setting this bit to a logic “1” enables the timeslot. Clearing this bit to a logic “0” disables the timeslot. CHIRXPTRA1EN: This bit is used to enable/disable the timeslot for the receive channel pointed to by the TDM switch pointer CHIRXPTRA1. Setting this bit to a logic “1” enables the timeslot. Clearing this bit to a logic “0” disables the timeslot. CHIRXPTRA0EN: This bit is used to enable/disable the timeslot for the receive channel pointed to by the TDM switch pointer CHIRXPTRA0. Setting this bit to a logic “1” enables the timeslot. Clearing this bit to a logic “0” disables the timeslot. 7.4.3 CHI Receive Pointer A Register OFFSET = $1E0: Bit 31-29 28-24 23-21 20-16 15-13 12-8 7-5 4-0 CHIRXPTRA3[4:0]: write-only Label Reserved CHIRXPTRA3[4:0] Reserved CHIRXPTRA2[4:0] Reserved CHIRXPTRA1[4:0] Reserved CHIRXPTRA0[4:0] RESET Read/Write X W X W X W X W write-only These bits represent the TDM switch pointer which defines the receive channel timeslot for byte 3 of the CHI receive holding register A; register A handles all timeslots from channel 0 to channel CHINCHAN. CHIRXPTRA2[4:0]: write-only These bits represent the TDM switch pointer which defines the receive channel timeslot for byte 2 of the CHI receive holding register A; register A handles all timeslots from channel 0 to channel CHINCHAN. CHIRXPTRA1[4:0]: write-only These bits represent the TDM switch pointer which defines the receive channel timeslot for byte 1 of the CHI receive holding register A; register A handles all timeslots from channel 0 to channel CHINCHAN. CHIRXPTRA0[4:0]: write-only These bits represent the TDM switch pointer which defines the receive channel timeslot for byte 0 of the CHI receive holding register A; register A handles all timeslots from channel 0 to channel CHINCHAN. 7-20 Chapter 7 CHI Module 7.4.4 CHI Receive Pointer B Register OFFSET = $1E4: Bit 31-29 28-24 23-21 20-16 15-13 12-8 7-5 4-0 CHIRXPTRB3[4:0]: write-only Label Reserved CHIRXPTRB3[4:0] Reserved CHIRXPTRB2[4:0] Reserved CHIRXPTRB1[4:0] Reserved CHIRXPTRB0[4:0] RESET Read/Write X W X W X W X W write-only These bits represent the TDM switch pointer which defines the receive channel timeslot for byte 3 of the CHI receive holding register B; register B handles all timeslots from channel (CHINCHAN + 1) to channel (CHINCHAN × 2 + 1). The value loaded for this TDM switch pointer is the desired timeslot number minus (CHINCHAN + 1). CHIRXPTRB2[4:0]: write-only These bits represent the TDM switch pointer which defines the receive channel timeslot for byte 2 of the CHI receive holding register B; register B handles all timeslots from channel (CHINCHAN + 1) to channel (CHINCHAN × 2 + 1). The value loaded for this TDM switch pointer is the desired timeslot number minus (CHINCHAN + 1). CHIRXPTRB1[4:0]: write-only These bits represent the TDM switch pointer which defines the receive channel timeslot for byte 1 of the CHI receive holding register B; register B handles all timeslots from channel (CHINCHAN + 1) to channel (CHINCHAN × 2 + 1). The value loaded for this TDM switch pointer is the desired timeslot number minus (CHINCHAN + 1). CHIRXPTRB0[4:0]: write-only These bits represent the TDM switch pointer which defines the receive channel timeslot for byte 0 of the CHI receive holding register B; register B handles all timeslots from channel (CHINCHAN + 1) to channel (CHINCHAN × 2 + 1). The value loaded for this TDM switch pointer is the desired timeslot number minus (CHINCHAN + 1). 7-21 Chapter 7 CHI Module 7.4.5 CHI Transmit Pointer A Register OFFSET = $1E8: Bit 31-29 28-24 23-21 20-16 15-13 12-8 7-5 4-0 CHITXPTRA3[4:0]: write-only Label Reserved CHITXPTRA3[4:0] Reserved CHITXPTRA2[4:0] Reserved CHITXPTRA1[4:0] Reserved CHITXPTRA0[4:0] RESET Read/Write X W X W X W X W write-only These bits represent the TDM switch pointer which defines the transmit channel timeslot for byte 3 of the CHI transmit holding register A; register A handles all timeslots from channel 0 to channel CHINCHAN. CHITXPTRA2[4:0]: write-only These bits represent the TDM switch pointer which defines the transmit channel timeslot for byte 2 of the CHI transmit holding register A; register A handles all timeslots from channel 0 to channel CHINCHAN. CHITXPTRA1[4:0]: write-only These bits represent the TDM switch pointer which defines the transmit channel timeslot for byte 1 of the CHI transmit holding register A; register A handles all timeslots from channel 0 to channel CHINCHAN. CHITXPTRA0[4:0]: write-only These bits represent the TDM switch pointer which defines the transmit channel timeslot for byte 0 of the CHI transmit holding register A; register A handles all timeslots from channel 0 to channel CHINCHAN. 7-22 Chapter 7 CHI Module 7.4.6 CHI Transmit Pointer B Register OFFSET = $1EC: Bit 31-29 28-24 23-21 20-16 15-13 12-8 7-5 4-0 CHITXPTRB3[4:0]: write-only Label Reserved CHITXPTRB3[4:0] Reserved CHITXPTRB2[4:0] Reserved CHITXPTRB1[4:0] Reserved CHITXPTRB0[4:0] RESET Read/Write X W X W X W X W write-only These bits represent the TDM switch pointer which defines the transmit channel timeslot for byte 3 of the CHI transmit holding register B; register B handles all timeslots from channel (CHINCHAN + 1) to channel (CHINCHAN × 2−1). The value loaded for this TDM switch pointer is the desired timeslot number minus (CHINCHAN + 1). CHITXPTRB2[4:0]: write-only These bits represent the TDM switch pointer which defines the transmit channel timeslot for byte 2 of the CHI transmit holding register B; register B handles all timeslots from channel (CHINCHAN + 1) to channel (CHINCHAN × 2−1). The value loaded for this TDM switch pointer is the desired timeslot number minus (CHINCHAN + 1). CHITXPTRB1[4:0]: write-only These bits represent the TDM switch pointer which defines the transmit channel timeslot for byte 1 of the CHI transmit holding register B; register B handles all timeslots from channel (CHINCHAN + 1) to channel (CHINCHAN × 2−1). The value loaded for this TDM switch pointer is the desired timeslot number minus (CHINCHAN + 1). CHITXPTRB0[4:0]: write-only These bits represent the TDM switch pointer which defines the transmit channel timeslot for byte 0 of the CHI transmit holding register B; register B handles all timeslots from channel (CHINCHAN + 1) to channel (CHINCHAN × 2−1). The value loaded for this TDM switch pointer is the desired timeslot number minus (CHINCHAN + 1). 7-23 Chapter 7 CHI Module 7.4.7 CHI Size Register OFFSET = $1F0: Bit 31-30 29-18 17-16 15 14 13-2 1 0 CHIDMAPTR[13:2]: Label Reserved CHIDMAPTR[13:2] Reserved CHIBUFF1TIME CHIDMALOOP CHISIZE[13:2] ENDMARXCHI ENDMATXCHI RESET Read/Write – R 0 0 X 0 0 R/W R/W W R/W R/W read-only These bits provide the status of the CHI DMA counter. CHIBUFF1TIME: The CHI DMA controller supports two buffer addressing modes depending on the state of this bit. When CHIBUFF1TIME is set to a logic “1”, the CHI DMA controller will stop executing when it reaches the end of the DMA buffer. When CHIBUFF1TIME is cleared to a logic “0”, the CHI DMA controller will loop back to the start of the DMA buffer when the end of the DMA buffer is reached and will continue operating in a continuous and circular manner. CHIDMALOOP: The CHI DMA controller supports two full-duplex loopback modes depending on the state of this bit. When CHIDMALOOP is set to a logic “1”, the CHI DMA controller issues RX DMA requests first, followed by TX DMA requests. This ordering allows an RX-to-TX immediate loopback via the DMA buffer. When CHIDMALOOP is cleared to a logic “0”, the CHI DMA controller issues TX DMA requests first, followed by RX DMA requests. This ordering allows a single circular DMA buffer to be used for both TX and RX, if so desired. CHISIZE (13:2): write-only These bits define the size of the CHI DMA buffers (16 Kbytes maximum). Both the CHI RX buffer and the CHI TX buffer are the same size. The last address in the CHI RX DMA buffer is given by CHIRXSTART[31:2] + CHISIZE[13:2]. The last address in the CHI TX DMA buffer is given by CHITXSTART[31:2] + CHISIZE[13:2]. The value loaded into CHISIZE should be equal to the desired buffer length −1. ENDMARXCHI: This bit enables the CHI DMA receive function. Setting this bit to a logic “1” enables the DMA mode. Clearing this bit to a logic “0” disables the DMA mode. This bit should not be set until the CHIRXSTART, CHITXSTART, and CHISIZE registers are setup. To enable CHI DMA receive function, this bit must be set before the CHI Module is enabled (ENCHI asserted). Either ENDMARXCHI or ENDMATXCHI or both can be set at a time since the CHI DMA controller can support full duplex operation. 7-24 Chapter 7 CHI Module ENDMATXCHI: This bit enables the CHI DMA transmit function. Setting this bit to a logic “1” enables the DMA mode. Clearing this bit to a logic “0” disables the DMA mode. This bit should not be set until the CHIRXSTART, CHITXSTART, and CHISIZE registers are setup. To enable CHI DMA transmit function, this bit must be set before the CHI Module is enabled (ENCHI asserted). Either ENDMARXCHI or ENDMATXCHI or both can be set at a time since the CHI DMA controller can support full duplex operation. 7.4.8 CHI RX Start Register OFFSET = $1F4: Bit write-only Label 31-2 1-0 CHIRXSTART[31:2] Reserved CHIRXSTART[31:2]: RESET Read/Write X W write-only These bits define the start address for the CHI RX DMA buffer. The CHI RX buffer and CHI TX buffer can be configured to either reside in different memory spaces or share the same memory space (overlapping buffers for loopback purposes or for optimum memory allocation). 7.4.9 CHI TX Start Register OFFSET = $1F8: Bit 31-2 1-0 CHITXSTART[31:2]: write-only Label CHITXSTART[31:2] Reserved RESET Read/Write X W write-only These bits define the start address for the CHI TX DMA buffer. The CHI RX buffer and CHI TX buffer can be configured to either reside in different memory spaces or share the same memory space (overlapping buffers for loopback purposes or for optimum memory allocation). 7-25 Chapter 7 CHI Module 7.4.10 CHI TX Holding Register OFFSET = $1FC: Bit 31-0 write-only Label CHITXHOLD[31:0] CHITXHOLD[31:0]: RESET Read/Write X W write-only These bits represent the CHI data to be transmitted. CHI data can be either written directly to this register by the CPU or transparently read from the CHI TX DMA buffer to this register. This register should only be loaded by the CPU after the CHIININTA or CHIININTB interrupt is asserted. The write immediately after CHIININTA updates the internal TX holding register A and the write immediately after CHIININTB updates the internal TX holding register B. Transmit data for bytes 3, 2, 1, and 0 are loaded into the 32-bit CHITXHOLD at locations [31:24], [23:16], [15:8], and [7:0], respectively. These data bytes correspond to the CHI timeslots as defined by the values in the CHITXPTRA and CHITXPTRB TDM switch registers. 7.4.11 CHI RX Holding Register OFFSET = $1FC: Bit 31-0 CHIRXHOLD[31:0]: read-only Label CHIRXHOLD[31:0] RESET Read/Write X R read-only These bits represent the CHI data to be received. CHI data can be either read directly from this register by the CPU or transparently written to the CHI RX DMA buffer from this register. This register should only be read by the CPU after the CHIININTA or CHIININTB interrupt is asserted. The read immediately after CHIININTA sees the internal RX holding register A and the read immediately after CHIININTB sees the internal RX holding register B. Receive data for bytes 3, 2, 1, and 0 are stored into the 32-bit CHIRXHOLD at locations [31:24], [23:16], [15:8], and [7:0], respectively. These data bytes correspond to the CHI timeslots as defined by the values in the CHIRXPTRA and CHIRXPTRB TDM switch registers. 7-26 Chapter 8 Interrupt Module 8. 8.1 Interrupt Module Overview The Interrupt Module within the TMPR3911/12 contains logic for reading, enabling, and clearing all of the interrupt sources. These interrupts are either generated from internal TMPR3911/12 modules or from edge transitions on external signal pins. All of these latter interrupt types generate a separate positive and negative edge interrupt. The status (logic state) of each interrupt is readable, allowing any interrupt event to be polled, if desired. Each interrupt status signal is also gated with the corresponding interrupt enable bit in order to generate the overall IRQ output to the CPU. The interrupt status register is reset using the corresponding clear bit from the corresponding clear interrupt register. 8-1 Chapter 8 Interrupt Module Implementation Block Diagram rdintXen Individual int enable NOTE: “X” CORRESPONDS TO APPROPRIATE INTERRUPT REGISTER NUMBER OUT IN data bus in ENABLE INT REG wrintXen OR INT2 of TX39/H core tree irqlow 8.2.1 irq reset wrclrintX rdintX 1 global int enable priority mask data bus out irqhigh 8.2 16 16 INT4 of TX39/H core 1 CPCOND3 of TX39/H core priority int’s 4 15 PRI ENCODER individual clr int RST SET OUT individual set int LOCATED WITHIN INDIVIDUAL MODULE individual int status INT STATUS REG IRQ BLOCK DIAGRAM Figure 8.2.1 Interrupt Circuit Block Diagram 8-2 Int vector Chapter 8 Interrupt Module 8.2.2 Interrupt Logic Description Figure 8.2.1 shows a block diagram of the interrupt circuit for a single interrupt source. Every other interrupt source contains an identical circuit. The overall Interrupt Module contains 5 main sets of registers (numbered 1 through 5), with a 6th register allocated for setting the global interrupt enable and the 16-bit Priority Mask, and for reading the Priority Interrupt Vector and IRQHIGH and IRQLOW status bits. Each bit within each of the 5 main sets then consists of 3 registers: Status, Enable, and Clear. • • • Interrupt Status Register read-only • allows CPU to read logic state of interrupt status • informs the CPU which interrupts are pending Enable Interrupt Register read/write • allows CPU to enable a given interrupt • each individual interrupt has a corresponding enable bit Clear Interrupt Register write-only • allows CPU to clear a given pending interrupt • each individual interrupt has a corresponding clear bit • each individual interrupt clear address and bit position maps one-to-one with the interrupt status address and bit position (status transactions are CPU reads, clear transactions are CPU writes) A given Interrupt Status Register is set by the corresponding individual interrupt event. For example, this event could be a positive (or negative) edge transition on an external TMPR3911/12 pin. Another example might be an event triggered by an internal TMPR3911/12 module, such as a particular DMA buffer reaching the end-of-buffer point. The output of a given Interrupt Status Register is readable by the CPU, by reading the address which points to the corresponding Interrupt Status Register. A given interrupt is enabled by writing a “1” to the corresponding bit position in the corresponding Enable Interrupt Register. The Interrupt Status Register output bit is then gated with the enable bit from the corresponding Enable Interrupt Register. The output of this gate is then combined with all the other gated Interrupt Status bits using a wide bitwise “OR” tree in order to generate the IRQLOW status signal. In other words, if ANY of the gated Interrupt Status signals is asserted and the global interrupt enable GLOBALEN is asserted, then IRQLOW will be asserted. 8-3 Chapter 8 Interrupt Module A given pending interrupt is cleared by writing a “1” to the corresponding bit position in the corresponding Clear Interrupt Register. The output of this Clear Interrupt Register is used to reset the corresponding Interrupt Status Register. On power on reset, the Global Enable is cleared to prevent any interrupts from occurring until the Enable Interrupt Registers are initialized. Also, all Clear Interrupts will be set for the duration of reset (thus interrupts cleared). The Interrupt Module also contains 15 High Priority Interrupt sources. A 16-bit Priority Mask (located within the Enable Interrupt 6 Register) is used to enable any of these high priority interrupts, by writing a “1” to the corresponding bit position in the Enable Interrupt 6 Register, where bit 15 is the highest priority. Each bit of the 16-bit Priority Mask is gated with the corresponding 15 High Priority Interrupt signals and these gated signals are then combined using a bitwise 16-input “OR” tree in order to generate the IRQHIGH status signal. If IRQHIGH or IRQLOW is asserted, then the overall IRQ will be asserted. A Priority Encoder circuit also compares the 16-bit Priority Mask with the 15 High Priority Interrupt signals and generates a 4-bit interrupt status vector which points to the highest priority pending interrupt from the set of 16 possible events. Level 15 is the highest priority and Level 1 is the lowest priority, with Level 0 corresponding to the standard interrupt handler. The IRQHIGH signal is connected to interrupt bit 4 on the TX39/H Processor Core and the IRQLOW signal is connected to interrupt bit 2. The IRQHIGH signal is also connected to CPU Co-Processor Condition bit 3. 8-4 Chapter 8 Interrupt Module 8.3 Interrupt Registers 8.3.1 Interrupt Status 1 Register OFFSET = $100: read-only Bit Label 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4-0 LCDINT DFINT CHI0_5INT CHI1_0INT CHIDMACNTINT CHININTA CHININTB CHIACTINT CHIERRINT SND0_5INT SND1_0INT TEL0_5INT TEL1_0INT SNDDMACNTINT TELDMACNTINT LSNDCLIPINT RSNDCLIPINT VALSNDPOSINT VALSNDNEGINT VALTELPOSINT VALTELNEGINT SNDININT TELININT SIBSF0INT SIBSF1INT SIBIRQNEGINT SIBIRQNEGINT Reserved RESET Read/Write – – – – – – – – – – – – – – – – – – – – – – – – – – – – R R R R R R R R R R R R R R R R R R R R R R R R R R R R LCDINT: Issues an interrupt at the end of each video frame. DFINT: Issues an interrupt each time the video DF signal toggles. CHI0_5INT: Issues an interrupt whenever the CHI DMA buffer pointer has reached the halfway point. CHI1_0INT: Issues an interrupt whenever the CHI DMA buffer pointer has reached the end-of-buffer point. CHIDMACNTINT: Issues an interrupt each time the CHI DMA buffer pointer is incremented, which occurs whenever a new CHI sample is read from and/or written to the CHI DMA buffer. 8-5 Chapter 8 Interrupt Module CHIININTA: Issues an interrupt whenever a valid CHI input sample is available from CHI RX Holding Register A; this also means a valid CHI output sample can be written to CHI TX Holding Register B. CHIININTB: Issues an interrupt whenever a valid CHI input sample is available from CHI RX Holding Register B; this also means a valid CHI output sample can be written to CHI TX Holding Register A. CHIACTINT: Issues an interrupt whenever CHICLK is active. This is used for CHI wakeup purposes. CHIERRINT: Issues an interrupt whenever a CHI error is received. This interrupt is triggered if CPU or DMA reading of the CHI RX Holding Registers does not keep up with the hardware filling of the CHI RX Holding Registers or if CPU or DMA writing of the CHI TX Holding Registers does not keep up with the hardware emptying of the CHI TX Holding Registers. SND0_5INT: Issues an interrupt whenever the sound DMA buffer pointer has reached the halfway point. SND1_0INT: Issues an interrupt whenever the sound DMA buffer pointer has reached the end-of-buffer point. TEL0_5INT: Issues an interrupt whenever the telecom DMA buffer pointer has reached the halfway point. TEL1_0INT: Issues an interrupt whenever the telecom DMA buffer pointer has reached the end-of-buffer point. SNDDMACNTINT: Issues an interrupt each time the sound DMA buffer pointer is incremented, which occurs whenever a new sound sample is read from and/or written to the sound DMA buffer. TELDMACNTINT: Issues an interrupt each time the telecom DMA buffer pointer is incremented, which occurs whenever a new telecom sample is read from and/or written to the telecom DMA buffer. LSNDCLIPINT: Issues an interrupt whenever the amplitude of the left channel sound data is clipping the codec A/D converter for SIB subframe 1. RSNDCLIPINT: Issues an interrupt whenever the amplitude of the right channel sound data is clipping the codec A/D converter for SIB subframe 1. 8-6 Chapter 8 Interrupt Module VALSNDPOSINT: Issues an interrupt whenever the valid sound status flag transitions from a logic “0” to a logic “1”. This valid flag is triggered from SIB subframe 0 (if SELSNDSF1 = “0”) or from SIB subframe 1 (if SELSNDSF1 = “1”). VALSNDNEGINT: Issues an interrupt whenever the valid sound status flag transitions from a logic “1” to a logic “0”. This valid flag is triggered from SIB subframe 0 (if SELSNDSF1 = “0”) or from SIB subframe 1 (if SELSNDSF1 = “1”). VALTELPOSINT: Issues an interrupt whenever the valid telecom status flag transitions from a logic “0” to a logic “1”. This valid flag is triggered from SIB subframe 0 (if SELTELSF1 = “0”) or from SIB subframe 1 (if SELTELSF1 = “1”). VALTELNEGINT: Issues an interrupt whenever the valid telecom status flag transitions from a logic “1” to a logic “0”. This valid flag is triggered from SIB subframe 0 (if SELTELSF1 = “0”) or from SIB subframe 1 (if SELTELSF1 = “1”). SNDININT: Issues an interrupt whenever a valid sound input longword (32 bits) is available from the Sound RX Holding Register; this also means a valid sound output longword can be written to the Sound TX Holding Register. TELININT: Issues an interrupt whenever a valid telecom input longword (32 bits) is available from the Telecom RX Holding Register; this also means a valid telecom output longword can be written to the Telecom TX Holding Register. SIBSF0INT: Issues an interrupt at the start of every SIB subframe 0. This is used to initiate CPU reading of the SIB Subframe 1 Status Register (SF1STAT Register) and/or CPU writing of the SIB Subframe 0 Control Register (SF0AUX Register). SIBSF1INT: Issues an interrupt at the start of every SIB subframe 1. This is used to initiate CPU reading of the SIB Subframe 0 Status Register (SF0STAT Register) and/or CPU writing of the SIB Subframe 1 Control Register (SF1AUX Register). SIBIRQPOSINT: Issues an interrupt whenever the SIBIRQ pin transitions from a logic “0” to a logic “1”. SIBIRQNEGINT: Issues an interrupt whenever the SIBIRQ pin transitions from a logic “1” to a logic “0”. 8-7 Chapter 8 Interrupt Module 8.3.2 Interrupt Status 2 Register OFFSET = $104: read-only Bit Label 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1-0 UARTARXINT UARTARXOVERRUNINT UARTAFRAMEERRINT UARTABREAKINT UARTAPARITYERRINT UARTATXINT UARTATXOVERRUNINT UARTAEMPTYINT UARTADMAFULLINT UARTADMAHALFINT UARTBRXINT UARTBRXOVERRUNINT UARTBFRAMEERRINT UARTBBREAKINT UARTBPARITYERRINT UARTBTXINT UARTBTXOVERRUNINT UARTBEMPTYINT UARTBDMAFULLINT UARTBDMAHALFINT MBUSTXBUFAVALLINT MBUSTXERRINT MBUSEMPTYINT MBUSRXBUFAVALLINT MBUSRXERRINT MBUSDETINT MBUSDMAFULLINT MBUSDMAHALFINT MBUSPOSINT MBUSNEGINT Reserved RESET Read/Write – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R UARTARXINT: Issues an interrupt if the UARTA Receive Holding Register is loaded with data. UARTARXOVERRUNINT: Issues an interrupt if the UARTA Receive Holding Register is loaded twice before the interrupt is service. UARTAFRAMEERRINT: Issues an interrupt if the current data in the UARTA Receive Holding Register contains a frame error. UARTABREAKINT: Issues an interrupt if the current data in the UARTA Receive Holding Register is a break. 8-8 Chapter 8 Interrupt Module UARTAPARITYERRINT: Issues an interrupt if the current data in the UARTA Receive Holding Register contains a parity error. UARTATXINT: Issues an interrupt if the UARTA Transmit Holding Register is available. UARTATXOVERRUNINT: Issues an interrupt if the UARTA Transmit Holding Register is written to when the Transmit Holding Register is not available. UARTAEMPTYINT: Issues an interrupt if the UARTA Transmit Holding Register and Transmit Shift Register are both empty. UARTADMAFULLINT: Issues an interrupt if the UARTA DMA counter reaches the end of the buffer. UARTADMAHALFINT: Issues an interrupt if the UARTA DMA counter reaches the mid point of the buffer. UARTBRXINT: Issues an interrupt if the UARTB Receive Holding Register is loaded with data. UARTBRXOVERRUNINT: Issues an interrupt if the UARTB Receive Holding Register is loaded twice before the interrupt is service. UARTBFRAMEERRINT: Issues an interrupt if the current data in the UARTB Receive Holding Register contains a frame error. UARTBBREAKINT: Issues an interrupt if the current data in the UARTB Receive Holding Register is a break. UARTBPARITYERRINT: Issues an interrupt if the current data in the UARTB Receive Holding Register contains a parity error. UARTBTXINT: Issues an interrupt if the UARTB Transmit Holding Register is available. UARTBTXOVERRUNINT: Issues an interrupt if the UARTB Transmit Holding Register is written to when the Transmit Holding Register is not available. 8-9 Chapter 8 Interrupt Module UARTBEMPTYINT: Issues an interrupt if the UARTB Transmit Holding Register and Transmit Shift Register are both empty. UARTBDMAFULLINT: Issues an interrupt if the UARTB DMA counter reaches the end of the buffer. UARTBDMAHALFINT: Issues an interrupt if the UARTB DMA counter reaches the mid point of the buffer. MBUSTXBUFAVAILINT: This interrupt is set when the ENMBUS bit is first asserted and subsequently when the contents of the MBUS Transmitter Holding Register are transferred to the MBUS Shift Register. This interrupt is used to indicate that the MBUS Transmitter Holding Register is available to be written by the software. MBUSTXERRINT: Issues an interrupt if the Magicbus Transmit Holding Register is written to when the Transmit Holding Register is not available. MBUSEMPTYINT: Issues an interrupt if the Magicbus Transmit Holding Register and Transmit Shift Register are both empty. MBUSRXBUFAVAILINT: Issues an interrupt if the Magicbus Receive Holding Register is loaded with data. MBUSRXERRINT: Issues an interrupt if the Magicbus Receive Holding Register is loaded twice before the interrupt is serviced. MBUSDETINT: Issues an interrupt if the Magicbus Command Word detector triggers. MBUSDMAFULLINT: Issues an interrupt if the Magicbus DMA Counter reaches the end of the buffer. MBUSDMAHALFINT: Issues an interrupt if the Magicbus DMA Counter reaches the mid point of the buffer. MBUSPOSINT: Issues an interrupt if the MBUSINT signal goes from a logic “0” to a logic “1”. MBUSNEGINT: Issues an interrupt if the MBUSINT signal goes from a logic “1” to a logic “0”. 8-10 Chapter 8 Interrupt Module 8.3.3 Interrupt Status 3 Register OFFSET = $108: Bit 31-0 read-only Label MFIOPOSINT[31:0] RESET Read/Write – R MFIOPOSINT[31:0]: Issues an interrupt whenever any of the multi-function I/O pin(s) transition from a logic “0” to a logic “1”. There are a total of 32 multi-function I/O pins (31 thru 0), each of which corresponds to the respective bit within this Status Register. Each multi-function I/O pin can independently trigger an interrupt. 8.3.4 Interrupt Status 4 Register OFFSET = $10C: Bit 31-0 read-only Label MFIONEGINT[31:0] RESET Read/Write – R MFIONEGINT[31:0]: Issues an interrupt whenever any of the multi-function I/O pin(s) transition from a logic “1” to a logic “0”. There are a total of 32 multi-function I/O pins (31 thru 0), each of which corresponds to the respective bit within this Status Register. Each multi-function I/O pin can independently trigger an interrupt. 8-11 Chapter 8 Interrupt Module 8.3.5 Interrupt Status 5 Register OFFSET = $110: Bit 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13-7 6-0 read-only Label RTCINT ALARMINT PERINT STPTIMERINT POSPWRINT NEGPWRINT POSPWROKINT NEGPWROKINT POSONBUTNINT NEGONBUTNINT SPIBUFAVAILINT SPIERRINT SPIRCVINT SPIEMPTYINT IRCONSMINT CARSTINT POSCARINT NEGCARINT IOPOSINT[6:0] IONEGINT[6:0] RESET Read/Write – – – – – – – – – – – – – – – – – – – – R R R R R R R R R R R R R R R R R R R R RTCINT: This interrupt is set whenever all 40 bits of the RTC counter reaches a value of “$FFFFFFFFFF” to alert the software that the counter is “rolling over”. ALARMINT: This interrupt is set whenever the RTC counter reaches a count that is equal to the value of the ALARM[39:0] bits set in the Alarm Register. PERINT: This interrupt is set whenever the Periodic Timer is enabled and the Periodic Timer counter reaches a count of zero. STPTIMERINT: This interrupt is set whenever the Stop Timer Counter counts up to the value set by the STPTIMERVAL[3:0] control bits. 8-12 Chapter 8 Interrupt Module STPTIMERINT: This interrupt is set whenever the Stop Timer Counter counts up to the value set by the STPTIMERVAL[3:0] control bits. POSPWRINT: This interrupt is set whenever the PWRINT pin transitions from a logic “0” to a logic “1”. NEGPWRINT: This interrupt is set whenever the PWRINT pin transitions from a logic “1” to a logic “0”. POSPWROKINT: Issues an interrupt whenever the PWROK signal transitions from a logic “0” to a logic “1”. NEGPWROKINT: Issues an interrupt whenever the PWROK signal transitions from a logic “1” to a logic “0”. POSONBUTNINT: Issues an interrupt whenever the ONBUTN signal transitions from a logic “0” to a logic “1”. If the DBNCONBUTN control bit is set, then the interrupt will not set until the signal is debounced for 16-24 ms. NEGONBUTNINT: Issues an interrupt whenever the ONBUTN signal transitions from a logic “1” to a logic “0”. If the DBNCONBUTN control bit is set, then the interrupt will not set until the signal is debounced for 16-24 ms. SPIBUFAVAILINT: This interrupt is set whenever the ENSPI bit is first asserted and subsequently when the contents of the SPI Transmitter Holding Register are transferred to the SPI Shift Register. This interrupt is used to indicate that the SPI Transmitter Holding Register is available to be written by the software. SPIERRINT: This interrupt is set whenever the SPI Transmitter Holding Register is written, but the SPIBUFAVAILINT has not set to indicate that the register is available. This interrupt serves as an overrun indication for the software. 8-13 Chapter 8 Interrupt Module SPIRCVINT: This interrupt is set whenever the contents of the SPI Shift Register are transferred to the SPI Receiver Holding Register. This interrupt is used to indicate that there is valid data in the SPI Receiver Holding Register to be read by the software. SPIEMPTYINT: This interrupt is set whenever the both the SPI Shift Register and the SPI Transmitter Holding Register are empty. This interrupt can be used by the software to determine when the SPI is idle. IRCONSMINT: Whenever the upper byte of data is loaded into the 7-bit Period Number Counter, the lower byte of data is loaded into an intermediate holding register. At this time the 16-bit IR Holding Register is empty. The IRCONSMINT interrupt is then set to inform the CPU that the IR Holding Register is available. The CPU must fill the next word of data into the IR Holding Register before the 7-bit Period Number Counter is finished counting the periods for both the upper and lower bytes of data. CARSTINT: This interrupt is set whenever the Carrier Detect State Machine detects the CARDET pin is high just before turning off the RXPWR pin. POSCARINT: This interrupt is set whenever CARDET pin transitions from a logic “0” to a logic “1”. NEGCARINT: This interrupt is set whenever CARDET pin transitions from a logic “1” to a logic “0”. IOPOSINT (6:0): Issues an interrupt whenever any of the general purpose I/O pin(s) transitions from a logic “0” to a logic “1”. There are a total of 7 general purpose I/O pins (6 thru 0), each of which corresponds to the respective bit within this Status Register. Each general purpose I/O pin can independently trigger an interrupt. IONEGINT (6:0): Issues an interrupt whenever any of the general purpose I/O pin(s) transitions from a logic “1” to a logic “0”. There are a total of 7 general purpose I/O pins (6 thru 0), each of which corresponds to the respective bit within this Status Register. Each general purpose I/O pin can independently trigger an interrupt. 8-14 Chapter 8 Interrupt Module 8.3.6 Interrupt Status 6 Register OFFSET = $114: Bit 31 30 29 28-6 5-2 1-0 read-only Label IRQHIGH IRQLOW PWROKNMI Reserved INTVECT[3:0] Reserved RESET Read/Write – – 0 R R R/W – R IRQHIGH: This status bit is the bitwise “OR” of all the 16 possible high priority interrupts. IRQLOW: This status bit is the bitwise “OR” of all the interrupts contained in the Interrupt Status 1, 2, 3, 4, and 5 Registers. PWROKNMI: When this bit is set, input to the PWROK pin can be used as the NMI source for the TX39/H core. When the bit is cleared, NMI for the TX39/H core is disabled. INTVECT[3:0]: These 4 status bits indicate a vector pointing to the highest priority pending interrupt from the set of 16 possible high priority interrupt events. The set of high priority interrupts is listed below, where level 15 is the highest priority and level 1 is the lowest priority. Level 0 corresponds to the standard interrupt handler. priority level 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 high priority interrupt source POSPWROKINT or NEGPWROKINT ALARMINT PERINT MBUSPOSINT or MBUSNEGINT UARTARXINT UARTBRXINT MFIOPOSINT (19) or MFIOPOSINT (18) or MFIOPOSINT (17) or MFIOPOSINT (16) MFIOPOSINT (1) or MFIOPOSINT (0) or IOPOSINT (6) or IOPOSINT (5) MFIONEGINT (19) or MFIONEGINT (18) or MFIONEGINT (17) or MFIONEGINT (16) MFIONEGINT (1) or MFIONEGINT (0) or IONEGINT (6) or IONEGINT (5) MBUSDMAFULLINT SNDDMACNTINT TELDMACNTINT CHIDMACNTINT IOPOSINT (0) or IONEGINT (0) 8-15 Chapter 8 Interrupt Module 8.3.7 Clear Interrupt 1 Register OFFSET = $100: write-only The Clear Interrupt 1 Register bit locations are mapped on a one to one basis with the Interrupt Status 1 Register. A logic “1” written to a specific bit location will clear the corresponding bit in the Status Register. 8.3.8 Clear Interrupt 2 Register OFFSET = $104: write-only The Clear Interrupt 2 Register bit locations are mapped on a one to one basis with the Interrupt Status 2 Register. A logic “1” written to a specific bit location will clear the corresponding bit in the Status Register. 8.3.9 Clear Interrupt 3 Register OFFSET = $108: write-only The Clear Interrupt 3 Register bit locations are mapped on a one to one basis with the Interrupt Status 3 Register. A logic “1” written to a specific bit location will clear the corresponding bit in the Status Register. 8.3.10 Clear Interrupt 4 Register OFFSET = $10C: write-only The Clear Interrupt 4 Register bit locations are mapped on a one to one basis with the Interrupt Status 4 Register. A logic “1” written to a specific bit location will clear the corresponding bit in the Status Register. 8.3.11 Clear Interrupt 5 Register OFFSET = $110: write-only The Clear Interrupt 5 Register bit locations are mapped on a one to one basis with the Interrupt Status 5 Register. A logic “1” written to a specific bit location will clear the corresponding bit in the Status Register. 8.3.12 Enable Interrupt 1 Register OFFSET = $118: read/write The Enable Interrupt 1 Register bit locations are mapped on a one to one basis with the Interrupt Status 1 Register. A logic “1” written to a specific bit location will enable the corresponding interrupt in the Status Register. This register is not cleared upon reset; however, the GLOBALEN global interrupt enable bit is cleared upon reset, therefore disabling all interrupts. 8-16 Chapter 8 Interrupt Module 8.3.13 Enable Interrupt 2 Register OFFSET = $11C: read/write The Enable Interrupt 2 Register bit locations are mapped on a one to one basis with the Interrupt Status 2 Register. A logic “1” written to a specific bit location will enable the corresponding interrupt in the Status Register. This register is not cleared upon reset; however, the GLOBALEN global interrupt enable bit is cleared upon reset, therefore disabling all interrupts. 8.3.14 Enable Interrupt 3 Register OFFSET = $120: read/write The Enable Interrupt 3 Register bit locations are mapped on a one to one basis with the Interrupt Status 3 Register. A logic “1” written to a specific bit location will enable the corresponding interrupt in the Status Register. This register is not cleared upon reset; however, the GLOBALEN global interrupt enable bit is cleared upon reset, therefore disabling all interrupts. 8.3.15 Enable Interrupt 4 Register OFFSET = $124: read/write The Enable Interrupt 4 Register bit locations are mapped on a one to one basis with the Interrupt Status 4 Register. A logic “1” written to a specific bit location will enable the corresponding interrupt in the Status Register. This register is not cleared upon reset; however, the GLOBALEN global interrupt enable bit is cleared upon reset, therefore disabling all interrupts. 8.3.16 Enable Interrupt 5 Register OFFSET = $128: read/write The Enable Interrupt 5 Register bit locations are mapped on a one to one basis with the Interrupt Status 5 Register. A logic “1” written to a specific bit location will enable the corresponding interrupt in the Status Register. This register is not cleared upon reset; however, the GLOBALEN global interrupt enable bit is cleared upon reset, therefore disabling all interrupts. 8-17 Chapter 8 Interrupt Module 8.3.17 Enable Interrupt 6 Register OFFSET = $12C: read/write The Enable Interrupt 6 Register bit locations are mapped on a one to one basis with the Interrupt Status 6 Register. A logic “1” written to a specific bit location will enable the corresponding interrupt in the Status Register. Bit 31-19 18 17 16 15-0 Label Reserved GLOBALEN IRQPRITEST IRQTEST PRIORITYMASK[15:0] RESET Read/Write 0 0 0 X R/W R/W R/W R/W GLOBALEN: This is used as a global interrupt enable for all interrupts, and is cleared upon reset, therefore disabling all interrupts. IRQPRITEST: This bit is used for IC testing and should not be set. IRQTEST: This bit is used for IC testing and should not be set. PRIORITYMASK[15:0]: These bits are an enable mask for the 16 possible high priority interrupts, where bit 15 is the highest priority. A logic “1” written to a specific bit location will enable the corresponding high priority interrupt. 8-18 Chapter 9 I/O Module 9. I/O Module 9.1 Overview The I/O Module within the TMPR3911/12 contains support for reading and writing the 7 bi-directional general purpose I/O pins and the 32 bi-directional multi-function I/O pins. Each of the general purpose I/O pins can be independently configured as an input or output port. Each port can generate a separate positive and negative edge interrupt and each port can also be independently configured to use a debouncer. Of the 137 signal pins found on the TMPR3911/12, 32 of them are multi-function and can be independently programmed either as I/O ports or for an alternate standard/normal function. This allows the TMPR3911/12 to support a flexible and wide range of system applications and configurations. As an I/O port, any of these pins can be programmed as an input or output port, with the capability of generating a separate positive and negative edge interrupt. 9.1.1 Related Pins I/O[6:0]: INPUT/OUTPUT These pins are general purpose input/output ports. Each port can be independently programmed as an input or output port. Each port can generate a separate positive and negative edge interrupt. Each port can also be independently programmed to use a 16 ms to 24 ms debouncer. MFIO[1:0]: INPUT/OUTPUT These pins are multi-function input/output ports. Each port can be independently programmed as an input or output port, or can be programmed for multi-function use to support test signals (for debugging purposes only). Each port can generate a separate positive and negative edge interrupt. Note that 30 other multi-function pins are available for usage as multi-function input/output ports. These pins are named according to their respective standard/normal function and are not listed here. 9-1 Chapter 9 I/O Module 9.2 Implementation 9.2.1 Block Diagram CONTROL FROM CPU I/O DIREC REG I/O DATA OUT REG EN I/O PWR DOWN REG OUT I/O PIN POWERDOWN IN I/O DATA IN REG PWR DOWN 2:1 MUX DEBOUNCE TO INTERRUPT MODULE Interrupt Flip-Flop 8 ms CLOCK I/O DEBOUNCE REG Figure 9.2.1 General Purpose I/O Port Block Diagram 9-2 Chapter 9 I/O Module CONTROL FROM CPU MFIO SELECT REG MFIO DIREC REG 2:1 MUX STD FUNC DIREC MFIO DATA OUT REG EN MFIO PWR DOWN REG 2:1 MUX OUT * MFIO PIN POWERDOWN IN STD FUNCTION DATA OUT PWR DOWN MFIO DATA IN REG TO INTERRUPT MODULE Interrupt Flip-Flop STD FUNCTION DATA IN Figure 9.2.2 Multi-Function I/O Port Block Diagram * CHIFS, CHICLK, CHIDOUT, BC32K, TXD, SPICLK, SPIOUT, SIBMCLK: each of above signals is directly connected with MUX without powerdown combination logic. 9-3 Chapter 9 I/O Module 9.2.2 General Purpose I/O Ports Each of the 7 general purpose I/O ports can be independently programmed as an input or output port. Each port can generate a separate positive and negative edge interrupt. Figure 9.2.1 shows a block diagram of a general purpose I/O port. Each port consists of a bi-directional buffer connected to the appropriate TMPR3911/12 pin. For the input direction, the output signal from the input buffer is routed directly to a debounce circuit. This circuit performs a 16 ms to 24 ms debounce of the input signal. The debounce select control signal from the I/O Debounce Select Register is used to select between the debouncer output and the direct signal from the port input buffer, which bypasses the debouncer. This selected signal is then routed to the I/O Data Input Register and to the Interrupt Flip-Flop. Reading a specific bit location within the I/O Data Input Register returns the logic state of the respective general purpose I/O pin (either direct or debounced), regardless of whether that pin is configured as an output or input. If the pin is configured as an input, the value read is the logic state of the pin as driven by an external source. If the pin is configured as an output, the value read is the logic state of the pin as driven by the TMPR3911/12. For the output direction, the input signal to the output buffer is routed from the appropriate bit within the I/O Data Output Register. The output enable control signal for the tri-state output buffer is routed from the I/O Direction Register. The I/O Power-Down Register provides independent control bits for controlling the power-down state for each of the 7 general purpose I/O ports. If a particular I/O port is configured to power down, then the output will be gated low and a Pull-Down resistor will be enabled whenever the device powers down. Device power down occurs when either VCC3 or VCCON (internal signal) become de-asserted. The Pull-Down will prevent the input from floating if the general purpose I/O port is configured as an input. 9-4 Chapter 9 I/O Module 9.2.3 Multi-function I/O Ports Each of the 32 multi-function I/O ports can be independently programmed as an input or output port or can be programmed for an alternate standard/normal function. This allows the TMPR3911/12 to support a flexible and wide range of system applications and configurations. As an I/O port, any of these pins can generate a separate positive and negative edge interrupt. Figure 9.2.2 shows a block diagram of a multi-function I/O port. Each port consists of a bi-directional buffer connected to the appropriate TMPR3911/12 pin. For the input direction, the output signal from the input buffer is routed directly to the MFI/O Data Input Register, to the Interrupt Flip-Flop, and to the appropriate module corresponding to the standard/normal function of the particular port, if this standard use is as an input signal. Reading a specific bit location within the MFIO Data Input Register returns the logic state of the respective multi-function I/O pin, regardless of whether that pin is configured as an output or input. If the pin is configured as an input, the value read is the logic state of the pin as driven by an external source. If the pin is configured as an output, the value read is the logic state of the pin as driven by the TMPR3911/12. For the output direction, the input signal to the output buffer is routed from a multiplexer which selects between the appropriate bit within the MFIO Data Output Register and the signal driven by the appropriate module corresponding to the standard/normal function of the particular port, if this standard use is as an output signal. The output enable control signal for the tri-state output buffer is also routed from a multiplexer which selects between the appropriate bit within the MFIO Direction Register and the direction signal driven by the appropriate module corresponding to the standard use of the particular port, if this standard use is as an output signal. The MFIO Power-Down Register provides independent control bits for controlling the power-down state for each of the 32 multi-function I/O ports. If a particular multi-function I/O port is configured to power down, then the output will be gated low and a Pull-Down resistor will be enabled whenever the device powers down. Device power down occurs when either VCC3 or VCCON (internal signal) become de-asserted. The Pull-Down will prevent the input from floating if the multi-function I/O port is configured as an input. 9-5 Chapter 9 I/O Module As mentioned previously, each of the multi-function I/O ports can be independently programmed for routing of signals for a standard/normal function to or from any given multi-function I/O port. Table 9.2.1 lists each of these standard functions for each multi-function I/O port. Note that depending on the reset state for the respective MFIO Select Register bits, the pin function is configured either as a multifunction port or as a standard function port. Table 9.2.1 Multi-Function I/O Ports Versus Standard Functions TMPR3911/12 pin standard function (I = input, O = output) multi-function I/O port multi-function select (reset state) MIOSEL[31] (1) CHIFS CHIFS (I/O) MIO[31] CHICLK CHICLK (I/O) MIO[30] MIOSEL[30] (1) CHIDOUT CHIDOUT (O) MIO[29] MIOSEL[29] (1) CHIDIN CHIDIN (I) MIO[28] MIOSEL[28] (1) DREQ* DREQ* (I) MIO[27] MIOSEL[27] (0) DGRNT* DGRNT* (O) MIO[26] MIOSEL[26] (0) BC32K BC32K (O) MIO[25] MIOSEL[25] (1) TXD TXD (O) MIO[24] MIOSEL[24] (0) RXD RXD (I) MIO[23] MIOSEL[23] (0) CS1* CS1* (O) MIO[22] MIOSEL[22] (0) CS2* CS2* (O) MIO[21] MIOSEL[21] (0) CS3* CS3* (O) MIO[20] MIOSEL[20] (0) MCS0* MCS0* (O) MIO[19] MIOSEL[19] (1) MCS1* MCS1* (O) MIO[18] MIOSEL[18] (1) MCS2* MCS2* (O) MIO[17] MIOSEL[17] (1) MCS3* MCS3* (O) MIO[16] MIOSEL[16] (1) SPICLK SPICLK (O) MIO[15] MIOSEL[15] (0) SPIOUT SPIOUT (O) MIO[14] MIOSEL[14] (0) SPIIN SPIIN (I) MIO[13] MIOSEL[13] (0) SIBMCLK SIBMCLK (I/O) MIO[12] MIOSEL[12] (0) CARDREG* CARDREG* (O) MIO[11] MIOSEL[11] (1) CARDIOWR* CARDIOWR* (O) MIO[10] MIOSEL[10] (1) CARDIORD* CARDIORD* (O) MIO[9] MIOSEL[9] (1) CARD1CSL* CARD1CSL* (O) MIO[8] MIOSEL[8] (1) CARD1CSH* CARD1CSH* (O) MIO[7] MIOSEL[7] (1) CARD2CSL* CARD2CSL* (O) MIO[6] MIOSEL[6] (1) CARD2CSH* CARD2CSH* (O) MIO[5] MIOSEL[5] (1) CARD1WAIT* CARD1WAIT* (I) MIO[4] MIOSEL[4] (1) CARD2WAIT* CARD2WAIT* (I) MIO[3] MIOSEL[3] (1) CARDDIR* CARDDIR* (O) MIO[2] MIOSEL[2] (1) MFIO[1] (reserved) MIO[1] MIOSEL[1] (1) MFIO[0] (reserved) MIO[0] MIOSEL[0] (1) 9-6 Chapter 9 I/O Module Table 9.2.2 and Table 9.2.3 show the state of Power Down Mode for Multi-Function I/O Ports and I/O Ports, respectively. Table 9.2.2 Multi-Function I/O Ports Versus Standard Functions (Power Down State) TMPR3911/12 pin standard function (I = input, O = output) standard function direction (1 = output, 0 = input) CHIFSDIR Power Down State MIOPD=0 MIOPD=0 MIOPD=0 MIOPD=1 MIOSEL=0 MIOSEL=1 MIOSEL=1 MIOSEL=X MIODIREC=X MIODIREC=0 MIODIREC=1 MIODIREC=X CHIFS CHIFS (I/O) CHIFS (I/O) Hi-Z MIODOUT[31] PULL-DOWN CHICLK CHICLK (I/O) CHICLKDIR CHICLK (I/O) Hi-Z MIODOUT[30] PULL-DOWN CHIDOUT CHIDOUT (O) CHIENOUT CHIDOUT (O) Hi-Z MIODOUT[29] PULL-DOWN CHIDIN CHIDIN (I) 0 Hi-Z Hi-Z MIODOUT[28] PULL-DOWN DREQ* DREQ* (I) 0 Hi-Z Hi-Z MIODOUT[27] PULL-DOWN DGRNT* DGRNT* (O) 1 0 Hi-Z MIODOUT[26] PULL-DOWN BC32K BC32K (O) 1 BC32K (O) Hi-Z MIODOUT[25] PULL-DOWN TXD TXD (O) 1 TXD (O) Hi-Z MIODOUT[24] PULL-DOWN RXD RXD (I) 0 Hi-Z Hi-Z MIODOUT[23] PULL-DOWN CS1* CS1* (O) /POWERDOWN Hi-Z Hi-Z MIODOUT[22] PULL-DOWN CS2* CS2* (O) /POWERDOWN Hi-Z Hi-Z MIODOUT[21] PULL-DOWN CS3* CS3* (O) /POWERDOWN Hi-Z Hi-Z MIODOUT[20] PULL-DOWN MCS0* MCS0* (O) /POWERDOWN Hi-Z Hi-Z MIODOUT[19] PULL-DOWN MCS1* MCS1* (O) /POWERDOWN Hi-Z Hi-Z MIODOUT[18] PULL-DOWN MCS2* MCS2* (O) /POWERDOWN Hi-Z Hi-Z MIODOUT[17] PULL-DOWN MCS3* MCS3* (O) /POWERDOWN Hi-Z Hi-Z MIODOUT[16] PULL-DOWN SPICLK SPICLK (O) 1 SPICLK (O) Hi-Z MIODOUT[15] PULL-DOWN SPIOUT SPIOUT (O) 1 SPIOUT (O) Hi-Z MIODOUT[14] PULL-DOWN SPIIN SPIIN (I) 0 Hi-Z Hi-Z MIODOUT[13] PULL-DOWN SIBMCLK SIBMCLK (I/O) SIBMCLKDIR SIBMCLK (I/O) Hi-Z MIODOUT[12] PULL-DOWN CARDREG* CARDREG* (O) 1 0 Hi-Z MIODOUT[11] PULL-DOWN CARDIOWR* CARDIOWR* (O) 1 0 Hi-Z MIODOUT[10] PULL-DOWN CARDIORD* CARDIORD* (O) 1 0 Hi-Z MIODOUT[9] PULL-DOWN CARD1CSL* CARD1CSL* (O) /POWERDOWN Hi-Z Hi-Z MIODOUT[8] PULL-DOWN CARD1CSH* CARD1CSH* (O) /POWERDOWN Hi-Z Hi-Z MIODOUT[7] PULL-DOWN CARD2CSL* CARD2CSL* (O) /POWERDOWN Hi-Z Hi-Z MIODOUT[6] PULL-DOWN CARD2CSH* CARD2CSH* (O) /POWERDOWN Hi-Z Hi-Z MIODOUT[5] PULL-DOWN CARD1WAIT* CARD1WAIT* (I) 0 Hi-Z Hi-Z MIODOUT[4] PULL-DOWN CARD2WAIT* CARD2WAIT* (I) 0 Hi-Z Hi-Z MIODOUT[3] PULL-DOWN CARDDIR* CARDDIR* (O) 1 0 Hi-Z MIODOUT[2] PULL-DOWN MFIO[1] (reserved) Hi-Z MIODOUT[1] PULL-DOWN MFIO[0] (reserved) Hi-Z MIODOUT[0] PULL-DOWN NOTE: CHIFSDIR, CHICLKDIR, SIBMCLKDIR, POWERDOWN: Internal Signal Table 9.2.3 General Purpose IO (Power Down State) TMPR3911/12 pin IOPD = 0 IODIREC = 0 IOPD = 0 IODIREC = 1 IOPD = 1 IODIREC = X IO[6] Hi-Z IODOUT[6] PULL-DOWN IO[5] Hi-Z IODOUT[5] PULL-DOWN IO[4] Hi-Z IODOUT[4] PULL-DOWN IO[3] Hi-Z IODOUT[3] PULL-DOWN IO[2] Hi-Z IODOUT[2] PULL-DOWN IO[1] Hi-Z IODOUT[1] PULL-DOWN IO[0] Hi-Z IODOUT[0] PULL-DOWN 9-7 Chapter 9 I/O Module 9.2.4 Related Interrupts MFIOPOSINT[31:0]: Issues an interrupt whenever any of the multi-function I/O pin(s) transition from a logic “0” to a logic “1”. There are a total of 32 multi-function I/O pins (31 thru 0), each of which corresponds to the respective bit within the Interrupt Status 3 Register. Each multi-function I/O pin can independently trigger an interrupt. MFIONEGINT[31:0]: Issues an interrupt whenever any of the multi-function I/O pin(s) transition from a logic “1” to a logic “0”. There are a total of 32 multi-function I/O pins (31 thru 0), each of which corresponds to the respective bit within the Interrupt Status 4 Register. Each multi-function I/O pin can independently trigger an interrupt. IOPOSINT[6:0]: Issues an interrupt whenever any of the general purpose I/O pin(s) transition from a logic “0” to a logic “1”. There are a total of 7 general purpose I/O pins (6 thru 0), each of which corresponds to the respective bit within the Interrupt Status 5 Register. Each general purpose I/O pin can independently trigger an interrupt. IONEGINT[6:0]: Issues an interrupt whenever any of the general purpose I/O pin(s) transition from a logic “1” to a logic “0”. There are a total of 7 general purpose I/O pins (6 thru 0), each of which corresponds to the respective bit within the Interrupt Status 5 Register. Each general purpose I/O pin can independently trigger an interrupt. 9-8 Chapter 9 I/O Module 9.3 I/O Registers 9.3.1 I/O Control Register OFFSET = $180: Bit 31 31-24 23 22-16 15 14-8 7 6-0 Label Reserved IODEBSEL[6:0] Reserved IODIREC[6:0] Reserved IODOUT[6:0] Reserved IODIN[6:0] RESET Read/Write X R/W 0 R/W X R/W – R IODEBSEL[6:0]: These bits select the debounce mode for the 7 general purpose I/O pins. Setting a specific bit location to a logic “1” causes the respective general purpose I/O port signal to be filtered by a debounce circuit for the input signal direction. Clearing a specific bit location to a logic “0” causes the respective general purpose I/O port signal to bypass the input debounce circuit. IODIREC[6:0]: These bits control the direction of the 7 general purpose I/O pins. Setting a specific bit location to a logic “1” configures the respective general purpose I/O pin to be an output. Clearing a specific bit location to a logic “0” configures the respective general purpose I/O pin to be an input. IODOUT[6:0]: These bits correspond to the data output values for the 7 general purpose I/O pins. Setting or clearing a specific bit location controls the logic state of the respective general purpose I/O pin, if that pin is configured as an output. IODIN[6:0]: read-only These bits correspond to the data input values for the 7 general purpose I/O pins. Reading a specific bit location returns the logic state of the respective general purpose I/O pin, regardless of whether that pin is configured as an output or input. 9-9 Chapter 9 I/O Module 9.3.2 MFIO Data Output Register OFFSET = $184: Bit 31-0 Label MFIODOUT[31:0] RESET Read/Write X R/W MFIODOUT[31:0]: These bits correspond to the data output values for the 32 multi-function I/O ports. Setting or clearing a specific bit location controls the logic state of the respective multi-function I/O port, if that pin is configured as an output. 9.3.3 MFIO Direction Register OFFSET = $188: Bit 31-0 Label MFIODIREC[31:0] RESET Read/Write 0 R/W MFIODIREC[31:0]: These bits control the direction of the 32 multi-function I/O ports. Setting a specific bit location to a logic “1” configures the respective multi-function I/O port to be an output. Clearing a specific bit location to a logic “0” configures the respective multi-function I/O port to be an input. 9.3.4 MFIO Data Input Register OFFSET = $18C: Bit 31-0 MFIODIN[31:0]: read-only Label MFIODIN[31:0] RESET Read/Write – R read-only These bits correspond to the data input values for the 32 multi-function I/O pins. Reading a specific bit location returns the logic state of the respective multi-function I/O pin, regardless of whether that pin is configured as an output or input. 9-10 Chapter 9 I/O Module 9.3.5 MFIO Select Register OFFSET = $190: Bit 31-0 Label MFIOSEL[31:0] RESET Read/Write $F20F0FFF R/W MFIOSEL[31:0]: These bits correspond to the select mode for the 32 multi-function I/O pins. Setting a specific bit location to a logic “1” configures the respective multi-function I/O pin to be selected as a bidirectional I/O port. Clearing a specific bit location to a logic “0” configures the respective multifunction I/O pin to be selected as a standard/normal pin function. 9.3.6 I/O Power-Down Register OFFSET = $194: Bit 31-7 6-0 Label Reserved IOPD[6:0] RESET Read/Write $7F R/W IOPD[6:0]: These bits control the power-down state for the 7 general purpose I/O pins. Setting a specific bit location to a logic “1” configures the respective general purpose I/O pin to power down when the TMPR3911/12 powers down. Clearing a specific bit location to a logic “0” configures the respective general purpose I/O pin to be in an active state at all times. 9.3.7 MFIO Power-Down Register OFFSET = $198: Bit 31-0 Label MFIOPD[31:0] RESET Read/Write $FAF03FFC R/W MFIOPD[31:0]: These bits control the power-down state for the 32 multi-function I/O ports. Setting a specific bit location to a logic “1” configures the respective multi-function I/O port to power down when the TMPR3911/12 powers down. Clearing a specific bit location to a logic “0” configures the respective multi-function I/O port to be in an active state at all times. 9-11 Chapter 9 I/O Module 9-12 Chapter 10 IR Module 10. IR Module 10.1 Overview The IR Module consists of three parts. The first is the Consumer Interface, which provides an easy mechanism for generating pulses to either turn on or turn off a light emitting diode (LED). The pattern in which the diode is turned on and off is used to encode commands which emulate remote control key presses that the consumer device recognizes. The software is responsible for programming the IR Module parameters to emulate desired consumer remote control protocols and key presses. The Consumer Interface provides universal control of common consumer devices such as televisions, VCR’s, hi-fi equipment, appliances, etc. The second part of the IR Module is the Communication Interface. The IR Module can be used in one of two data communication modes: using a frequency shift keyed (FSK) modulation scheme or using a scheme based on the protocol standardized by the InfraRed Data Association (IrDA). The Communication Interface is implemented using a standard UART protocol with an adjustable baud rate. This interface operates half-duplex in one direction at a time. The UARTB Module is used for both the FSK and IrDA data communication modes (see Section 16 for a detailed description of the UART Module). For the FSK mode transmit direction, external communication IR analog circuitry encodes the UART output data using an FSK modulation scheme. For the receive direction, external communication IR analog circuitry amplifies the received photo-diode signal and demodulates the FSK signal before feeding the UART input. For the IrDA mode transmit direction, the UART output data directly drives the external analog LED circuit. For the receive direction, the received photo-diode signal is externally amplified before feeding the UART input. Additional control bits in the UART Module also allow for various narrow pulse options to support the IrDA 1.0 standard. The final part of the IR Module is the Carrier Detect State Machine Interface. This interface is used to periodically enable the receiver in the external communication IR analog circuitry to detect whether there is a valid carrier present. If a valid carrier is present then an interrupt will be issued so the system can begin receiving data. 10.1.1 Related Pins IROUT: OUTPUT This pin is the UART transmit signal from the UARTB Module or the Consumer IR output signal if Consumer IR mode is enabled. IRIN: INPUT This pin is the UART receive signal to the UARTB Module. RXPWR: OUTPUT This pin is the receiver power output control signal to the external communication IR analog circuitry. CARDET: INPUT This pin is the carrier detect input signal from the external communication IR analog circuitry. 10-1 Chapter 10 IR Module 10.2 Consumer IR 10.2.1 Requirements Consumer IR remote controllers send a burst of pulses whenever a button is pressed. The number of bursts along with the length of each burst defines the key that has been pressed. Burst of pulses No pulses Number of Bursts Figure 10.2.1 Consumer IR Pulses The frequency of the pulses and the pulse width is fixed for a given remote control but can vary between different remote controls from different manufacturers. The number of pulses in a burst, the amount of time when there are no pulses, and the number of times that the burst is repeated are used to distinguish which key has been pressed for a given remote control. 10.2.2 Implementation The Consumer IR Interface is designed to assist the CPU in shaping the pulses that are required to emulate a key press on a remote control. The logic has been implemented such that the frequency (typical consumer remote controllers use a carrier frequency in the 30 to 50 kHz range) and width of a pulse can be programmed by the CPU for a given remote control. The processor can then vary the number of bursts in a pulse and the amount of time when there are no pulses on a byte by byte basis in order to emulate the various key presses. 10.2.3 Block Diagram 1-BIT ON/OFF REG TXHOLD [15:0] 16-BIT IR HOLDING REG 8-BIT HOLDING REG 2:1 MUX 7-BIT PERIOD NUMBER COUNTER IROUT ONTIME [7:0] PER [7:0] BAUDVAL [7:0] IR MASTER CLOCK (IRCLK) 8-BIT PRE SCALE COUNTER 8-BIT PERIOD WIDTH COUNTER 8-BIT ON-TIME WIDTH COUNTER Figure 10.2.2 Consumer IR Block Diagram 10-2 Chapter 10 IR Module 10.2.4 Functional Description The Consumer IR logic remains idle until the CPU activates the IR logic by writing to the IR Control 1 Register to enable the Consumer mode (ENCONSM = “1”). Prior to enabling the Consumer mode, the CPU must configure the Baud Value (BAUDVAL), Period Value (PER), and OnTime Value (ONTIME) fields located in the IR Control 2 Register. BAUDVAL[7:0] is used to pre-scale IR master clock (IRCLK) (since typical consumer IR data rates are in the kHz range instead of the MHz range). PER[7:0] is used to define the period of the pulses for a burst, representing the number of pre-scaled counts per period. ONTIME[7:0] defines the amount of time that the pulse is on for the given period, representing the number of pre-scaled counts for which the pulse is on. ONTIME should always be less than PER or the IROUT signal will never transition low. Transmit data = number of pulse and no-pulse width are written by the CPU into a 16-bit holding register, IR Holding Register, TXHOLD field. When the 7-bit Period Number Counter (down-counter) reaches zero, it will load the lower 7 bits of the holding register’s upper byte into the Period Number Counter and the upper bit into the 1-bit ON/OFF Register. If the upper bit is set to a “1” then the IROUT signal will be a “1” until the OnTime Width Counter reaches it’s terminal count. The OnTime Width Counter freezes once it reaches it’s terminal count in order to prevent the signal from transitioning until the counter is loaded again. The IROUT signal will continue to transition according to the Period Value and OnTime Value until the 7-bit Period Number Counter reaches zero. At this time the lower 7 bits of the holding register’s lower byte is loaded into the Period Number Counter and the upper bit of the lower byte is loaded into the 1-bit ON/OFF Register. If the upper bit is set to a “0” this time, then the IROUT signal will remain low for as many period counts as are defined by the value loaded into the 7-bit Period Number Counter. Thus the CPU controls the pulse generation by defining a number of pulses to burst (upper bit set to “1”, lower 7-bit data defines the number of pulses) or an amount of time when there are no pulses (upper bit set to “0”, lower 7-bit data defines the number of pulse times when IROUT is “0”) on a byte by byte basis. The OnTime Value and Period Value timing relationships are shown in Figure 10.2.3. TXHOLD Upper Bit = “0” TXHOLD Upper Bit = “1” On Time 1 fIRCLK 1 On Time = ONTIME × (BAUDVAL+1) × fIRCLK Period = (PER+1) × (BAUDVAL+1) × Period Figure 10.2.3 Consumer IR Signal Generation 10.2.5 Related Interrupts IRCONSMINT: Whenever the upper byte of data is loaded into the 7-bit Period Number Counter, the lower byte of data is loaded into an intermediate holding register. At this time the 16-bit IR Holding Register is empty. The IRCONSMINT interrupt is then set to inform the CPU that the IR Holding Register is available. The CPU must fill the next word of data into the IR Holding Register before the 7-bit Period Number Counter is finished counting the periods for both the upper and lower bytes of data. 10-3 Chapter 10 IR Module 10.3 Two-Way Communication Via IR 10.3.1 Requirements The Communication Interface is implemented using a standard UART protocol, consisting of a start bit, 8 bits of data (LSB first), then a stop bit. The data rate is adjustable using a programmable baud rate counter. The Communication Interface consists of both a transmitter and a receiver and the UART is operated half-duplex in one direction at a time. The UARTB Module is used for both the FSK and IrDA data communication modes and contains DMA support for transmit and receive data (see Section 16 for a detailed description of the UART Module). For the FSK mode transmit direction, external communication IR analog circuitry encodes the UARTB output data using an FSK modulation scheme, which modulates at two different frequencies depending on whether the data is a “1” or a “0”. The carrier frequency is 1375 kHz and the mark and space frequencies are 1325 kHz and 1425 kHz, respectively. For the receive direction, external communication IR analog circuitry amplifies the received photo-diode signal and demodulates and decodes the FSK signal before feeding the UARTB input. The transmitter and receiver portions of the external communication IR analog circuitry contain individual power-down control for power management purposes. The FSK communication mode operates at a data rate of 2400 to 38400 bps at 3 meters. For the IrDA mode transmit direction, the UARTB output data directly drives the external analog LED circuit. For the receive direction, the received photo-diode signal is externally amplified before feeding the UARTB input. Additional control bits in the UART Module also allow for various narrow pulse options to support the IrDA 1.0 standard. When configured for these options, the UART transmit output pulses are narrower than normal and the UART receiver circuit also expects the same narrow pulse format for the input data. The IrDA communication mode operates at a data rate up to 115.2 kbps at 1 meter. 10-4 Chapter 10 IR Module 10.3.2 Block Diagram ENMOD* TXPWR LED IROUT UARTB MODULE IRIN FSK MOD FSK DEMOD PHOTODIODE RXPWR TMPR3911/12 CARDET EXTERNAL ANALOG CIRCUIT Figure 10.3.1 FSK Communication Circuit LED IROUT UARTB MODULE IRIN PHOTODIODE TMPR3911/12 EXTERNAL ANALOG CIRCUIT Figure 10.3.2 IrDA Communication Circuit 10-5 Chapter 10 IR Module 10.4 Carrier Detect State Machine 10.4.1 Requirements The external communication IR analog circuitry contains a circuit which detects if there is a valid carrier present. It is not desirable to leave this circuit enabled all the time because it dissipates too much power. Thus the circuit is powered on and off with the RXPWR pin. It is possible for the CPU to periodically enable the RXPWR pin, then wait to see if a carrier is present (CARDET pin = “1”), but this requires a lot of processor overhead. In order to alleviate the overhead, the IR Module contains a circuit that periodically enables the RXPWR pin, waits a specified period of time, samples the CARDET pin, then disables the RXPWR pin. If the CARDET pin is a “1” when sampled then an interrupt is issued to the CPU indicating that there is a valid carrier present. After enabling the RXPWR pin the CARDET pin cannot be sampled for a specified amount of time because the Carrier Detect Logic in the external communication IR analog circuitry takes time to settle. The time between successive enabling of the RXPWR pin is programmable depending on the desired sample rate. Delay Value Wait Value No Valid Carrier Valid Carrier RXPWR CARDET Settle Time Settle Time Figure 10.4.1 Carrier Detect State Timing 10.4.2 Block Diagram WAITVAL (7:0) DELAYVAL (7:0) 7.8 ms CLOCK 8-Bit WAIT DOWN COUNTER 8-Bit DELAY DOWN COUNTER Figure 10.4.2 Carrier Detect Block Diagram 10-6 RXPWR Chapter 10 IR Module 10.4.3 Functional Description DELAYVAL[7:0] is loaded into the 8-bit Delay Down Counter whenever the counter reaches a count of zero. The terminal count of the Delay Down Counter enables the 8-bit Wait Down Counter which loads WAITVAL[7:0] whenever the Wait Down Counter reaches a count of zero. The RXPWR pin is asserted whenever the Wait Down Counter reaches a count of zero. Thus the period at which RXPWR is periodically asserted is derived by: (DELAYVAL + 1) * (WAITVAL + 1) *7.8 ms The RXPWR pin will remain asserted until the Wait Down Counter counts again which will occur at: (DELAYVAL + 1) *7.8 ms At the same time the RXPWR pin is deasserted the CARDET pin is sampled and an interrupt is set if a valid carrier is present. 10.4.4 Related Interrupts CARSTINT: This interrupt is set whenever the Carrier Detect State Machine samples the CARDET pin- = “1” just before turning off the RXPWR pin. POSCARINT: This interrupt is set whenever CARDET pin transitions from a logic “0” to a logic “1”. NEGCARINT: This interrupt is set whenever CARDET pin transitions from a logic “1” to a logic “0”. 10-7 Chapter 10 IR Module 10.5 IR Registers 10.5.1 IR Control 1 Register OFFSET = $0A0: Bit 31-25 24 23-16 15-5 4 3 2 1 0 CARDET: Label Reserved CARDET BAUDVAL[7:0] Reserved TESTIR DTINVERT RXPWR ENSTATE ENCONSM RESET Read/Write – X R R/W 0 0 0 0 0 R/W R/W R/W R/W R/W read-only This bit provides the status of the CARDET (carrier detect) input pin. BAUDVAL[7:0]: These bits are used to pre-scale the IR master clock (IRCLK). The bits are loaded into an 8-bit down-counter that counts at the IRCLK rate. The resulting baud clock is used to clock the Period Width Counter and OnTime Width Counter. TESTIR: This bit is used to speed up the counters for IC testing and should not be set. DTINVERT: Setting this bit to a logic “1” will cause the IROUT signal to be active low instead of active high. RXPWR: This bit is connected to the RXPWR pin. ENSTATE: Setting this bit to a logic “1” enables the Communication IR carrier detect state machine. ENCONSM: Setting this bit to a logic “1” enables the Consumer IR function. 10-8 Chapter 10 IR Module 10.5.2 IR Control 2 Register OFFSET = $0A4: Bit 31-24 23-16 15-8 7-0 PER[7:0]: write-only Label RESET Read/Write X X X X W W W W PER[7:0] ONTIME[7:0] DELAYVAL[7:0] WAITVAL[7:0] write-only These bits are used to define the period of the Consumer IR pulses. The bits are loaded into an 8bit down-counter that counts at the rate defined by the Baud Value. The resulting period is given by the following equation. (fIRCLK is the frequency of the IR master clock (IRCLK).) Period = (PER + 1) * (BAUDVAL + 1) * (1/fIRCLK) ONTIME[7:0]: write-only These bits are used to define the On Time of the Consumer IR pulses. These bits are loaded into an 8-bit down-counter that counts at the rate defined by the Baud Value. The resulting On Time is given by the following equation. On Time = ONTIME * (BAUDVAL + 1) * (1/fIRCLK) DELAYVAL[7:0]: write-only These bits are used to define the amount of time that the RXPWR pin will be a logic “1” when the Carrier State Machine logic is enabled. The bits are loaded into an 8-bit down-counter that counts at a 7.8 ms rate. Thus the time is programmable from 7.8 ms to 2.0 seconds. Delay Time = (DELAYVAL + 1) *7.8 ms WAITVAL[7:0]: write-only These bits are used to define the amount of time to wait before asserting the RXPWR pin to a logic “1” when the Carrier State Machine logic is enabled. The bits are loaded into an 8-bit downcounter that counts whenever the DELAYVAL counter reaches a count of zero. Thus the time is programmable from 7.8 ms to 511 seconds. Wait Time = (DELAYVAL + 1) * (WAITVAL + 1) *7.8 ms 10-9 Chapter 10 IR Module 10.5.3 IR Holding Register OFFSET = $0A8: Bit 31-16 15-0 TXHOLD[15:0]: write-only Label Reserved TXHOLD[15:0] RESET Read/Write X W write-only These bits are used to define the number of pulses in a burst or the amount of time to keep the IROUT pin low. The lower seven bits of the upper byte and the lower seven bits of the lower byte are used as values to load into a 7-bit counter that counts the number of periods as defined by the Period Value. The upper bit in each byte if set to a logic “1” causes pulses on the IROUT pin and if set to a logic “0” causes the IROUT pin to remain low for a given count. Before setting the ENCONSM bit the TXHOLD register must be pre-loaded with the first valid word of data. 10-10 Chapter 11 Magicbus Module 11. Magicbus Module 11.1 Overview Magic Port is a multifunction expansion port for a wide range of serial peripheral connections. Magicbus is a serial interface standard which includes an advanced communications protocol for interfacing to lowcost and low-power daisy-chainable peripherals and docks. The Magicbus implementation is intended to support peripherals such as scanners, modems, battery chargers, base stations (including intelligent answering machines, telephones, fast chargers, etc.), storage devices, etc. Magicbus features high-speed data transfer rates (up to 14.75 Mbps), daisy-chainable peripherals (up to 6 maximum), and hot plugging. A lowcost Magicbus Interface Circuit (MBIC) is also available for use in peripherals. This interface can be implemented as a discrete circuit, as a standalone ASIC, or integrated with a microcontroller core (e.g., 68HC05 type). Magicbus consists of a synchronous, serial two-wire (clock and data), half-duplex communications protocol. The clock and data signals are bi-directional, such that the TMPR3911/12 Magicbus Module can be dynamically configured as the bus master or slave at a given time. The protocol also includes an interrupt source for initiating all peripheral servicing, as well as when peripherals have been attached to or detached from the bus. TMPR3911/12’s Magicbus Module contains independent transmitter and receiver logic to implement the half-duplex serial data transfer, with DMA support provided for both the transmit and receive directions. The independent transmitter and receiver allow a peripheral to control the data rate of the receiving shift register, since the receiver uses the peripheral’s transmit clock as it’s clock source. 11.1.1 Related Pins MBUSCLK: INPUT/OUTPUT This pin is the bi-directional Magicbus clock signal. MBUSCLK is an input signal whenever the TMPR3911/12 is in the slave mode and is an output signal whenever the TMPR3911/12 is in the master mode. MBUSDATA: INPUT/OUTPUT This pin is the bi-directional Magicbus data signal. MBUSDATA is an input signal whenever the TMPR3911/12 is in the slave mode and is an output signal whenever the TMPR3911/12 is in the master mode. MBUSINT: INPUT This pin is the Magicbus interrupt signal. This signal is used to interrupt the TMPR3911/12 whenever a peripheral has been attached to or detached from the bus, or whenever a peripheral has initiated an interrupt event. 11-1 Chapter 11 Magicbus Module 11.2 Interface Requirements 11.2.1 Timing Requirements Magicbus consists of a synchronous, serial two-wire (clock and data), half-duplex communications protocol. The clock and data signals are bi-directional, such that the bus supports a single Master at a given time, with all other bus members configured as Slaves. The dynamic configuration of Master versus Slave assignments is controlled by the Magicbus protocol. Data is pushed onto the bus using the positive edge of MBUSCLK and the Slaves sample the data using the negative edge of MBUSCLK, as shown in Figure 11.2.1. MBUSDATA MBUSCLK Figure 11.2.1 MBUSDATA and MBUSCLK Timing 11.2.2 Data Formats Magicbus commands and data sequences are comprised of groups of either 16-bit or 32-bit data, which are shifted serially with the most significant bit (MSB) transmitted first in time. Figure 11.2.2 shows the timing diagram for a 16-bit group of data. Each of these 16-bit or 32-bit groups is shifted serially in either a seamless, non-interrupted fashion, or with delay inserted between every 8 bits, 16 bits, or 32 bits of the data stream. Magicbus Command Words consist of 16-bit packets containing fields which specify information such as peripheral address, command code, and parity. All peripherals monitor and read these Command Words to determine whether they are the addressed peripheral and, if so, what is the exact command to be executed. MBUSDATA B15 B14 B13 MBUSCLK Figure 11.2.2 16-bit Data Group 11-2 B2 B1 B0 Chapter 11 Magicbus Module 11.2.3 Command Words The Magicbus protocol dictates that when a Command Word is to be transmitted, the clock and data signal functions are swapped, whereby MBUSDATA contains the clock signal and MBUSCLK contains the data signal. This Swap Mode is used to differentiate Command Words from “raw data”. Each peripheral MBIC contains circuitry which detects whenever the clock and data signal functions have been swapped. The first 2 bits of each Command Word are Command Detection Bits which resynchronize the bus to reset the mode of any swapped clock/data lines and also prevent any past bus errors from corrupting current and future data transmissions. Figure 11.2.3 shows a timing diagram of the Command Word and the swapping of the clock and data signal functions. COMMAND DETECTION BITS B15 MBUSCLK MBUSDATA B2 B1 B1 B0 PREVIOUS PACKET COMMAND WORD (SWAPPED MODE) Figure 11.2.3 Magicbus Command Word 11-3 B0 Chapter 11 Magicbus Module 11.3 Implementation 11.3.1 Block Diagram CONTROL/STATUS FROM/TO CPU DATA FROM DMA OR CPU 32 TO INTERRUPT MODULE 16B/32B TX HOLDING REG TX SHIFT LOAD MBUSINT 32 16B/32B TX SHIFT REG MBUSDATA SWAP LOGIC TX CLOCK MBUSCLK MBUS SWAP CONTROL CONTROLL RX CLOCK OGIC BUFFER STATUS INTERRUPTS 16B/32B RX SHIFT REG RX HOLD LOAD 32 DMA ADDR GEN 16B/32B RX HOLDING REG 32 DATA TO DMA OR CPU DMA ADDR END-OF-BUFFER INTERRUPT HALF-BUFFER INTERRUPT CONTROL FROM CPU Figure 11.3.1 Magicbus Module Block Diagram 11-4 Chapter 11 Magicbus Module 11.3.2 Transmitter The Magicbus Transmitter consists of a Holding Register and Shift Register which support the serial data transmission from the Magicbus Module to attached Magicbus peripheral devices. The 32-bit Transmit Holding Register is loaded with parallel data from either the DMA circuit or directly from the CPU. The Magicbus Module provides an interrupt (MBUSTXBUFAVAILINT) whenever the ENMBUS control bit is enabled or when the Transmit Holding Register is available (i.e., empty). When the Magicbus Module is configured for long mode (LONG = “1”), all 32 bits of the Transmit Holding Register are valid. When the Magicbus Module is configured for word mode (LONG = “0”), only the lower 16 bits of the Transmit Holding Register are valid. The Magicbus Transmit Holding Register can be accessed at one of 2 address locations. One location corresponds to Normal Mode and the other location corresponds to Swap Mode. As mentioned previously, the Swap Mode is used for transferring Command Words, for which the clock and data signals are swapped. The contents of the Transmit Holding Register then feed the 32-bit Transmit Shift Register. This data is transferred in parallel whenever the Transmit Shift Register is empty and available. The Magicbus Module provides an interrupt (MBUSEMPTYINT) whenever the Transmit Holding Register and Transmit Shift Register are both available (i.e., empty). The Magicbus Module also issues an interrupt (MBUSTXERRINT) if the Transmit Holding Register is written to when the Holding Register is not available (i.e., not empty). In this case, not enough time was provided for the contents of the Transmit Holding Register to be transferred to the Transmit Shift Register. The contents of the Transmit Shift Register are then shifted out serially to the MBUSDATA output port (except for Command Words which use Swap Mode). When the Magicbus Module is configured for long mode (LONG = “1”), all 32 bits of the Transmit Shift Register are valid. When the Magicbus Module is configured for word mode (LONG = “0”), only the first 16 bits of the Transmit Shift Register are valid. The Magicbus Module supports 4 different combinations of clock polarity and phase, as determined by the CLKPOL and PHAPOL control bits. Figure 11.3.2 shows a timing diagram of the clock and data relationships for these 4 combinations. This flexibility allows data to be pushed and sampled on either the rising or falling edges of the clock. However, the actual Magicbus protocol and specification specifies the use of only one of these combinations: CLKPOL = “0” and PHAPOL = “1”, which means that MBUSDATA is always pushed on the rising edge of MBUSCLK and always sampled on the falling edge of MBUSCLK. MBUSDATA B7 B6 B5 B4 B3 B2 B1 CLKPOL = 0 PHAPOL = 0 MBUSCLK CLKPOL = 0 PHAPOL = 1 MBUSCLK CLKPOL = 1 PHAPOL = 0 MBUSCLK CLKPOL = 1 PHAPOL = 1 MBUSCLK Figure 11.3.2 Magicbus Clock and Data Relationships 11-5 B0 Chapter 11 Magicbus Module The transmit clock rate is also programmable, using the Magicbus Baud Rate Generator. The Magicbus specification supports data rates from 250 kbps to 14.75 Mbps. See Section 11.3.4 for a detailed description of the Magicbus Baud Rate Generator. As mentioned previously, the transmit data consists of 16-bit or 32-bit groups. Seamless operation is possible, whereby each data bit for each group is transmitted in a continuous and non-interrupted fashion. This seamless operation results in the fastest possible data rate for Magicbus. In order to maintain seamless operation, the Transmit Holding Register must be reloaded before the contents of the Transmit Shift Register have been completely shifted out. In order to accommodate slower peripherals which cannot keep up with fast Magicbus data rates, the Magicbus Module contains a programmable Inter-Packet Delay Counter. This counter allows the insertion of a programmable number of baud clocks of delay between bytes, words, or longs of the data stream, as shown in Figure 11.3.3. See Section 11.3.4 for a detailed description of the Inter-Packet Delay Counter. INTER-PACKET DELAY Figure 11.3.3 Magicbus Inter-Packet Delay 11.3.3 Receiver The Magicbus Receiver consists of a Shift Register and Holding Register which support the receiving of serial data from attached Magicbus peripheral devices to the Magicbus Module. Data from the MBUSDATA input port is shifted in serially to the 32-bit Receive Shift Register. The receive clock from the MBUSCLK port is used to clock the serial data through the Receive Shift Register. This allows a peripheral to control the data rate of the Magicbus Receiver (allowing support for slower peripherals), since the receiver uses the peripheral’s transmit clock as it’s clock source. When the Magicbus Module is configured for long mode (LONG = “1”), all 32 bits of the Receive Shift Register are valid. When the Magicbus Module is configured for word mode (LONG = “0”), only the first 16 bits of the Receive Shift Register are valid. The contents of the Receive Shift Register are then fed in parallel to the 32-bit Receive Holding Register. The data is transferred whenever the Receive Shift Register has finished shifting in either 16 or 32 bits of data depending on the selected mode. The Receive Holding Register is read by either the DMA circuit or directly by the CPU. The Magicbus Module provides an interrupt (MBUSRXBUFAVAILINT) whenever the Receive Holding Register is loaded with data (i.e., full). When the Magicbus Module is configured for long mode (LONG = “1”), all 32 bits of the Receive Holding Register are valid. When the Magicbus Module is configured for word mode (LONG = “0”), only the lower 16 bits of the Receive Holding Register are valid. The Magicbus Module issues an interrupt (MBUSRXERRINT) if the Receive Holding Register is loaded twice from the Receive Shift Register before the MBUSRXBUFAVAILINT interrupt is serviced and the data in the Receive Holding Register was never read. This situation might occur if the DMA circuit or the CPU cannot keep up with the incoming data rate of the Magicbus port. 11-6 Chapter 11 Magicbus Module 11.3.4 Control Logic The Magicbus Module contains several sets of counters which are used to generate the various internal control signals and clocks needed for the transmitter and receiver sections. A block diagram of the control logic is shown in Figure 11.3.4. The ENMBUS control bit is used to enable the Magicbus Module by triggering the On/Off Logic circuit. When the ENMBUS control bit is deasserted to disable the Magicbus Module, the module will not shutdown until the Transmit Holding Register and Transmit Shift Register are empty plus a couple of Magicbus baud clocks of delay. This allows the Magicbus Module to cleanly complete any pending transactions before shutdown of the module. The MBUSON status bit indicates whether the Magicbus Module is still enabled or not. The programmable Magicbus Baud Rate Generator provides variable control of the transmit clock rate, as determined by the BAUDRATE[7:0] control register value preloaded into the Baud Rate Generator. The output of the Baud Rate Generator is the Magicbus baud clock, which is used to operate the Transmit Shift Register and provides the MBUSCLK whenever TMPR3911/12 is configured as the Magicbus bus master. The Magicbus specification supports data rates from 250 kbps to 14.75 Mbps. As mentioned previously, the Magicbus Module supports 4 different combinations of clock polarity and phase, as determined by the CLKPOL and PHAPOL control bits. The Magicbus specification specifies the use of only one of these combinations: CLKPOL = “0” and PHAPOL = “1”, which means that MBUSDATA is always pushed on the rising edge of MBUSCLK and always sampled on the falling edge of MBUSCLK. The Magicbus Transmitter control logic consists of a Transmit Bit Counter and a programmable Transmit Inter-Packet Delay Counter. The Transmit Bit Counter is used to count the number of bits to be shifted out the Transmit Shift Register. This counter operates as a divide-by-16 (for word mode) or a divide-by-32 (for long mode), and is also used to generate the load pulse for transferring the contents of the Transmit Holding Register to the Transmit Shift Register. Depending on the configuration of the ENBYTEWAIT and ENWORDWAIT control bits, the Transmit Bit Counter will also trigger the counting of the Transmit Inter-Packet Delay Counter, which is used in order to accommodate slower peripherals which cannot keep up with fast Magicbus data rates. This counter allows the insertion of a programmable number of baud clocks of delay (based on the DELAYVAL[7:0] control register value) between either bytes, words, or longs. Delay is always inserted after each long (32-bit) group of bits, but is only inserted between bytes or words if the respective wait enable control bits (ENBYTEWAIT and ENWORDWAIT) are asserted. In addition, if no delay is desired, then the DELAYVAL[7:0] register value should be set to “0”. 11-7 Chapter 11 Magicbus Module ENMBUS BAUDRATE[7:0] ON/OFF LOGIC MBUSON BAUD CLOCK DMA LOGIC PRGM BAUD RATE GEN ENBYTEWAIT ENWORDWAIT WORD VS. LONG DELAYVAL[7:0] WORD VS. LONG RX CLOCK ÷16/÷32 TX BIT COUNTER PRGM TX INTERPACKET DELAY COUNTER DELAY LOAD LOGIC 6 8 DECODE TX BUFFER STATUS LOGIC RX CNT LOAD LOGIC ÷16/÷32 RX BIT COUNTER MBUS DMA REQ CMD WORD DET LOGIC 5 TX CLOCK SWAP CONTROL SHUTDOWN TX SHIFT LOAD TX BUFF AVAILABLE INT TX ERROR INT TX BUFF EMPTY INT CMD WORD DETECT INT DECODE RX HOLD LOAD RX BUFFER STATUS LOGIC RX BUFF AVAILABLE INT RX ERROR INT Figure 11.3.4 Magicbus Control Logic The Magicbus Receiver control logic consists of a Receive Bit Counter and a circuit for detecting the receipt of a Command Word, whereby the clock and data signal functions are swapped. The Magicbus Receiver circuitry (including the Receive Bit Counter and the Receive Shift Register) uses the receive clock from the MBUSCLK port. This allows a peripheral to control the data rate of the Magicbus Receiver (allowing support for slower peripherals), since the receiver uses the peripheral’s transmit clock as it’s clock source. The Receive Bit Counter is used to count the number of bits to be shifted into the Receive Shift Register. This counter operates as a divide-by-16 (for word mode) or a divide-by-32 (for long mode), and is also used to generate the load pulse for transferring the contents of the Receive Shift Register to the Receive Holding Register. The Command Word detect logic monitors the MBUSCLK and MBUSDATA input lines and generates an interrupt (MBUSDETINT) whenever a Command Word is detected. 11-8 Chapter 11 Magicbus Module 11.3.5 DMA Address Generation The Magicbus Module provides support for both transmit and receive DMA. Since the Magicbus Module operates half-duplex, a single DMA channel is shared between transmit or receive, with only one direction using the buffer at a given time. The circuit used to generate the DMA address, as well as half-buffer and end-of-buffer interrupts is shown in Figure 11.3.5. The DMA buffer size is programmable (up to a maximum of 1 MByte) and the buffer start address is also programmable (anywhere over the full 32-bit address space). The DMA buffer can be configured in a circular buffer mode or a one-time buffer mode, depending on the configuration of the ENDMALOOP control bit. For the circular mode, the DMA address is continuously incremented (each time a DMA acknowledge is received from the TMPR3911/12’s central DMA controller) and rolls over back to the start address after the end-of-buffer is reached and will continue operating in a continuous and circular manner. For the one-time mode, the DMA logic will stop executing whenever the end-of-buffer is reached. Half-buffer and end-of-buffer DMA address counter interrupts are available, allowing the CPU to minimize overhead and utilize the DMA buffer in a ping-pong fashion. For transmit mode, the CPU can use these interrupts to fill or write one half of the buffer while the other half is being emptied by the DMA controller for transmitting Magicbus data. Similarly, for receive mode, the CPU can use these interrupts to empty or read one half of the buffer while the other half is being filled by the DMA controller from received Magicbus data. Also available is a direct CPU read/write mode for bypassing the DMA, allowing the CPU to read or write the Magicbus data on a word by word (or long by long) basis, if so desired. Separate DMA enables are provided for receive and transmit. The DMA circuit also provides the DMA pointer status value, which is the actual 18-bit DMA address counter output. This value indicates exactly where the current address is pointing to in the overall DMA buffer, and is available via reading of the DMACNT[19:2] status register bits. DMA STARTVAL CNTL PEG MBUS CNTL 1 PEG 30 ONE-TIME VS. CIRCULAR MODE CNT LOAD LOGIC 18 DMA COUNT ADDR CNT 30 18 DMA LENGTH CNTL PEG 18 ÷2 DMA ADDR CMP END-OF-BUFFER INTERRUPT CMP HALF-BUFFER INTERRUPT CONTROL FROM CPU Figure 11.3.5 Magicbus DMA Address Generation 11-9 Chapter 11 Magicbus Module 11.3.6 Related Interrupts MBUSTXBUFAVAILINT: This interrupt is set when the ENMBUS bit is first asserted and subsequently when the contents of the MBUS Transmitter Holding Register are transferred to the MBUS Shift Register. This interrupt is used to indicate that the MBUS Transmitter Holding Register is available to be written by the software. MBUSTXERRINT: Issues an interrupt if the Magicbus Transmit Holding Register is written to when the Transmit Holding Register is not available. MBUSEMPTYINT: Issues an interrupt if the Magicbus Transmit Holding Register and Transmit Shift Register are both empty. MBUSRXBUFAVAILINT: Issues an interrupt whenever the Magicbus Receive Holding Register is loaded with data. MBUSRXERRINT: Issues an interrupt if the Magicbus Receive Holding Register is loaded twice before the interrupt is serviced. MBUSDETINT: Issues an interrupt whenever the Magicbus Command Word detector triggers. MBUSDMAFULLINT: Issues an interrupt if the Magicbus DMA Counter reaches the end of the buffer. MBUSDMAHALFINT: Issues an interrupt if the Magicbus DMA Counter reaches the mid point of the buffer. MBUSPOSINT: Issues an interrupt if whenever the MBUSINT signal goes from a logic “0” to a logic “1”. MBUSNEGINT: Issues an interrupt if whenever the MBUSINT signal goes from a logic “1” to a logic “0”. 11-10 Chapter 11 Magicbus Module 11.4 Magicbus Registers 11.4.1 Magicbus Control 1 Register OFFSET = $0E0: Bit 31 30 29 28-17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 MBUSON: Label MBUSON EMPTY MBUSINT Reserved ENDMARX ENDMATX ENDMATEST ENDMALOOP LOOPBACK RCVPHAPOL DTIDLE ENBYTEWAIT ENWORDWAIT DETPHAPOL DETCLKPOL PHAPOL CLKPOL SLAVE FSLAVE LONG ENMBUS RESET Read/Write 0 1 – R R R 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W read-only When the ENMBUS bit is disabled, the module will not shutdown until the Magicbus Transmit Holding Register and Transmit Shift Register are empty plus a couple of Magicbus baud clocks of delay. This bit provides the status as to whether the module is still enabled or not. EMPTY: read-only This bit is asserted if the Magicbus Transmit Holding Register and Transmit Shift Register are both empty and the delay counter is finished inserting delay. MBUSINT: read-only This bit provides the status of the MBUSINT input pin. 11-11 Chapter 11 Magicbus Module ENDMARX: This bit enables the DMA receive function. This bit should not be set until the Magicbus DMA Control 1 Register and Magicbus DMA Control 2 Register are setup and the module is enabled. Only one of ENDMARX or ENDMATX can be set at a time since there is only one DMA channel. ENDMATX: This bit enables the DMA transmit function. This bit should not be set until the Magicbus DMA Control 1 Register and Magicbus DMA Control 2 Register are setup, the module is enabled and the empty flag is set. Only one of ENDMARX or ENDMATX can be set at a time since there is only one DMA channel. ENDMATEST: This bit is used for IC testing and should not be set. ENDMALOOP: The DMA controller supports two modes, depending on the state of this bit. When ENDMALOOP is a logic “0”, the DMA controller will stop executing when it reaches the end of the DMA buffer. When ENDMALOOP is a logic “1”, the DMA controller will loop back to the start of the DMA buffer when the end of the DMA buffer is reached and will continue operating. LOOPBACK: Setting this bit will cause the Magicbus Transmitter clock and data to be looped back into the receive clock and data. The data is inverted when this mode is selected. RCVPHAPOL: Setting this bit will cause the Magicbus Receiver clock to be inverted. DTIDLE: This bit defines the value that the MBUSDATA pin will idle to in between transmitted characters. ENBYTEWAIT: Setting this bit will cause a delay to be inserted between each byte in transmitted data. The length of the delay is defined by the value in the DELAYVAL bits. ENWORDWAIT: Setting this bit will cause a delay to be inserted between each word in transmitted data. The length of the delay is defined by the value in the DELAYVAL bits. DETPHAPOL: Setting this bit will cause the receive data pin to the Command Word clock to be inverted. DETCLKPOL: Setting this bit will cause the receive clock pin to the Command Word clear to be inverted. 11-12 Chapter 11 Magicbus Module PHAPOL: Setting this bit will cause the Magicbus Transmitter to clock data out on the rising edge of MBUSCLK to be sampled by the peripherals on the falling edge of MBUSCLK. CLKPOL: Setting this bit will invert the MBUSCLK pin. SLAVE: Setting this bit will cause the MBUSCLK and MBUSDATA pins to be inputs and will enable the Magicbus Receiver circuit. The transition from master to slave will not take place until the Magicbus Transmit Holding Register and Transmit Shift Register are empty. FSLAVE: Setting this bit forces Slave Mode without regard to the status of the Magicbus Transmit Holding Register and Transmit Shift Register. LONG: Setting this bit will cause the Magicbus Transmitter and Magicbus Receiver to handle 32 bits per buffer. Otherwise 16 bits is assumed. This bit must be set for DMA transactions. ENMBUS: Setting this bit will enable the Magicbus Module. When this bit is cleared the Magicbus Module is kept in a reset state. But clearing this bit gives no effect on the Magicbus Control Register. This bit should not be set until all other control bits are setup. 11.4.2 Magicbus Control 2 Register OFFSET = $0E4: Bit 31-24 23-16 15-0 DELAYVAL[7:0]: write-only Label RESET Read/Write X X W W DELAYVAL[7:0] BAUDRATE[7:0] Reserved write-only These bits define the number of Magicbus baud clocks of delay to insert between either bytes, words, or longs. Delay is always inserted after a long, but is only inserted between bytes or words if the respective enables (ENBYTEWAIT or ENWORDWAIT) are set. If no delay is desired then the register should be set to zero. BAUDRATE[7:0]: write-only These bits define the baudrate of the Magicbus Transmitter. The following equation determines the baudrate (fMBUSMCLK is the frequency of the Magicbus master clock.): baudrate = fMBUSMCLK ÷ (BAUDRATE[7:0] ∗2 + 2) 11-13 Chapter 11 Magicbus Module 11.4.3 Magicbus DMA Control 1 Register OFFSET = $0E8: Bit write-only Label 31-2 1-0 DMASTARTVAL[31:2] Reserved DMASTARTVAL[31:2]: RESET Read/Write X W RESET Read/Write X W write-only These bits define the start address for the DMA buffer. 11.4.4 Magicbus DMA Control 2 Register OFFSET = $0EC: Bit write-only Label 31-20 19-2 1-0 Reserved DMALENGTH[19:2] Reserved DMALENGTH[19:2]: write-only These bits define the length of the DMA buffer. The last address in the DMA buffer is given by DMASTARTVAL[31:2] + DMALENGTH[19:2]. The value loaded into DMALENGTH should be equal to the desired buffer length −1. 11.4.5 Magicbus DMA Count OFFSET = $0F0: Bit 31-20 19-2 1-0 DMACNT[19:2]: read-only Label Reserved DMACNT[19:2] Reserved read-only These bits provide the status of the DMA counter. 11-14 RESET Read/Write X R Chapter 11 Magicbus Module 11.4.6 Magicbus Transmit Holding Register OFFSET = $0F8: Normal write-only OFFSET = $0F4: Swap write-only Bit 31-0 Label TXDATA[31:0] TXDATA[31:0]: RESET Read/Write X W write-only These bits are the data to be transmitted. This register should only be loaded after the MBUSTXBUFAVAILINT interrupt is set. Writing to the Swap location will cause the clock and data lines to be swapped for this character of data. For word mode, only bits 15:0 are valid. 11.4.7 Magicbus Receive Holding Register OFFSET = $0F8: Bit 31-0 RXDATA[31:0]: read-only Label RXDATA[31:0] RESET Read/Write X R read-only These bits are the receive data. The bits are valid after the MBUSRXBUFAVAILINT interrupt is set. For word mode, only bits 15:0 are valid. 11-15 Chapter 11 Magicbus Module 11-16 Chapter 12 Power Module 12. Power Module 12.1 Overview 12.1.1 System Power Control Overview The System Power Supply must provide several power supplies to various parts of the system. The system may use the SPI serial control interface, along with the PWRCS signal, to control turning on or off the various power supplies. The software will only turn on the power supplies that are required to perform a particular task. The TMPR3911/12 must always be provided power as long as there is a good main or backup battery in the system, or if a battery charger is plugged in. Similarly, there may be other components in the system that must always be powered. These components, along with the TMPR3911/12, should be powered by the VSTANDBY line. DRAM or SDRAM should be powered by the VCCDRAM line. The VCCDRAM power line should remain dead when the VSTANDBY power line is first activated, until PWRCS is asserted to turn on the system for the first time. After the system boots for the first time, the software can decide not to turn off VCCDRAM when the system is subsequently turned off, in order to preserve the contents of memory. Most of the other components in the system, including ROM, and system buffers are powered by the VCC3 line. The VCC3 power line is powered only when the system is on. Other switchable power lines are provided for components such as the LCD, PC Card, etc. Each of these lines will normally be turned off by the software when powering down the system. When the system is on, these lines will only be turned on if the particular module is being used. In addition to the System Power Supply control, the Power Module also contains logic to support the TMPR3911/12 initialization, clock enable function, CPU Stop Mode, stop timer, and power failure logic. These features are described in detail in the following sub-sections. 12-1 Chapter 12 Power Module 12.1.2 Power State Transition Diagram Figure 12.1.1 shows the power state transition diagram of the TMPR3911/12 system. The details of transitions are described in he following subsections. PON* deassertion See 12.2.1 Power On Reset Power On Reset State ONBUTN & PWROK = High See 12.2.2 The 1st Power Up (by software) See 12.2.5 Stop CPU Normal State Standby State Interrupt ONBUTN or Interrupt (by software) See 12.2.3 Power Down See 12.2.4 Power Up (by software) See 12.2.3 Power Down PWROK = Low Suspend State Battery Backup State PWROK = High Figure 12.1.1 Power State Transition Diagram 12-2 Chapter 12 Power Module 12.1.3 Power Supply Lines in the System The description in this section assumes that the system has the following power supply lines. Table 12.1.1 shows the status of each power supply line on each power state described in 12.1.2 In addition to these power supply lines a System Power Supply may provide other power supply lines according to particular system requirements. For example a system may have a dedicated power supply line for a PC Card slot to supply power during the Suspend State. VSTANDBY: (VDD) This line provides power for the TMPR3911/12 and other components in the system that must never be powered off. This line should always be alive if there is either a good main battery or a good backup battery, or if a battery charger is plugged in. VCCDRAM: This line provides power for the DRAM and/or SDRAM. This line must be off when VSTANDBY is first powered, and remain off until the system is powered up by the assertion of PWRCS. When the software subsequently powers down the system it may choose to keep this line powered to preserve the contents of memory. VCC3: This line provides power for the ROM, system buffers, and other components in the system. This line will be powered by the System Power Supply when PWRCS is asserted and will always be powered off when the system is powered down. Table 12.1.1 Power Supply Status Power On Reset State Normal State Standby State Suspend State VSTANDBY On On On On On VCCDRAM Off On On On On VCC3 Off On On Off Off Power State 12-3 Battery Backup State Chapter 12 Power Module 12.1.4 Related Pins PON*: INPUT This pin serves as the Power On Reset signal for the TMPR3911/12. This signal must remain low when VSTANDBY is asserted until VSTANDBY is stable. Once VSTANDBY is powered, this signal should never go low unless all power is lost in the system. ONBUTN: INPUT This pin is used as the On Button for the system. Asserting this signal will cause PWRCS to be asserted to request the System Power Supply to turn on the system power. PWRCS can not be asserted if the PWROK signal is low. PWROK: INPUT This pin provides a status from the System Power Supply that there is a valid source of power in the system. This signal typically will be asserted if there is a battery charger supplying power or if the main battery is good and the battery door is closed. If the PWROK signal is low when the system is powered off, the PWRCS signal is not asserted by either the assertion of the ONBUTN signal or the interrupt detection. If the PWROK signal goes low while the device is on, the software should immediately shut down the system since power is about to be lost. When PWROK goes low, there must be serious warning so that the software can shut down the system before power is actually lost. When the PWROKNMI bit in the Interrupt Status 6 Register is set, the deassertion of the PWROK signal causes the NMI (Non Maskable Interrupt). PWRCS: OUTPUT This signal is asserted automatically if the ONBUTN signal is asserted when the PWROK signal is high. Clearing the PWRCS bit in the Power Control Register by software deasserts this signal. The usage of this signal depends on the implementation of the System Power Supply. For example, the assertion of this signal may usually cause the System Power Supply to turn VCCDRAM and VCC3 on to power up the system. PWRINT: INPUT This pin is used by the System Power Supply to alert the software that some status has changed in the System Power Supply and the software should read the status from the System Power Supply to find out what has changed. These will be low priority events, unlike the PWROK status, which is a high priority emergency case. VCC3: INPUT This pin provides the status of the power supply for the ROM, system buffers, and other components in the system. This signal will be asserted by the System Power Supply when PWRCS is asserted, and will always be turned off when the system is powered down. 12-4 Chapter 12 Power Module 12.2 Description 12.2.1 Power On Reset When VSTANDBY is powered on, the PON* signal must be kept low until VSTANDBY is stable, in order to provide a good Power On Reset to the TMPR3911/12. The assertion of PON* will set a RESET flip-flop, as shown in Figure 12.2.1. The RESET flip-flop will remain set until the ONBUTN is pressed for the first time. This functionality provides a long reset time to the TMPR3911/12 when VSTANDBY is first asserted. The long reset time is needed to allow the 32 kHz oscillator to stabilize. The RESET signal is used to initialize all registers and logic in the TMPR3911/12. PON* RESET ONBUTN Figure 12.2.1 Reset Flip-Flop 12-5 Chapter 12 Power Module 12.2.2 The 1st Power Up The 1st Power Up sequence is shown in Figure 12.2.2 When the ONBUTN is pressed, the PWRCS signal will be asserted if the PWROK signal is high. Once the PWRCS signal is asserted, the System Power Supply powers VCCDRAM and VCC3 in order to power up the system. Once VCC3 is powered, the high frequency oscillator and PLL that generate the clock signals for the CPU and BIU start clocking. When the oscillator and PLL are first enabled, the oscillation can vary widely until the oscillator and PLL become stable. The stabilization time can vary between 1 ms and 10 ms, depending on the oscillator and PLL of a particular TMPR3911/12 implementation. In order to prevent the TMPR3911/12 from using the clock before the clock becomes stable, a circuit in the Power Module will provide an internal signal ENSYSCLK that will disable the clock until the oscillator and PLL become stable. The circuit uses the 32 kHz signal as its reference, since this is known to be good because of the long Power On Reset time. The ENSYSCLK is asserted 16-24 ms after VCC3 is asserted at the 1st power up. Once the ENSYSCLK signal is asserted, the CPU will start instruction execution. If the PWROK signal is low when the ONBUTN is pressed, the PWRCS signal will not be asserted. The “PON* state” and the “1st-time power-up state” in the Figure 12.2.2 are defined on page 2-17. Voltage Stabilization Time C32K Oscillator Stabilization Time min.1-2 s VSTANDBY (system) PON* (in) RESET (internal) PWROK (in) ONBUTN (in) PWRCS (out) VCC3 (in) 16-24 ms ENSYSCLK (internal) DCLKOUT (out) Instruction Execution pin state PON* state st 1 Time Power-up State st Figure 12.2.2 The 1 Power Up Sequence 12-6 Chapter 12 Power Module 12.2.3 Power Down A state transition into the Suspend State is called ‘Power Down’. Typically this is triggered by assertion of the ONBUTN signal to power off the system. In the Suspend State VSTANDBY and VCCDRAM are powered but VCC3 is not powered. Some system may have some other power supply lines which are powered during the Suspend State. For example a system may supply power to a PC Card during the Suspend State. If the system is powered up and the PWROK signal is deasserted, the system must be powered down as quickly as possible to preserve the contents of DRAM and/or SDRAM. All power supply lines, which are not required to preserve valuable data, must be powered off. This state is called the Battery Backup State. The system is powered down by software in the following sequence. 1. All modules in the TMPR3911/12 are disabled and all clocks in the Clock Module are turned off. 2. The interrupts for the wake-up events such as power switch, alarm (RTC), and serial DCD are enabled, and the other interrupts are disabled. When the PWROK signal is deasserted, some system may disable all interrupts to prevent unexpected power up after power will be supplied again. 3. The MEMPOWERDOWN bit in the Memory Configuration 4 Register is set in order to set the DRAM and/or SDRAM into self-refresh mode. The following instructions must be executed from cache memory. See Section 0 for more details. 4. By clearing the PWRCS and VCCON bits in the Power Control Register simultaneously the PWRCS signal is deasserted. After the PWRCS is deasserted, the System Power Supply shuts down VCC3 power line. Clearing VCCON bit results in negating ENSYSCLK and stopping all internal clocks except 32kHz clock. A wait loop for a few milliseconds follows. A few instructions may be executed before power off. The rest of the wait loop is executed after the next power up to guarantee that some devices in the system are stable after power up. 12-7 Chapter 12 Power Module 12.2.4 Power Up When the system is off if rising edge of the ONBUTN signal or an enabled interrupt occurs, and the PWROK signal is asserted, then the system will power up. If assertion of the ONBUTN signal or an enabled interrupt occurs, but the PWROK signal is deasserted, then the system will not power up at that time. But since the interrupt is latched, the system will power up once the PWROK signal is asserted. On the other hand, the assertion of the ONBUTN signal is not a latched event unless the POSONBUTNINT or NEGONBUTNINT interrupts are enabled. Therefore, the assertion of the ONBUTN signal will not wake up the system once PWROK signal is asserted. Once the ENSYSCLK (internal signal) goes low, the clock to the CPU is stopped and the CPU will remain suspended at its last state. When the device powers back up, the ENSYSCLK will be asserted 16-24 ms after VCC3 is asserted or 4-6 ms after VCC3 is asserted, depending on the state of the SELC2MS control bit in the Power Control Register. Then the CPU will resume the instruction execution from where it stopped. It is probably desirable to loop for some time to make sure that the battery voltage has stabilized and the PWROK signal will not suddenly go low as a result of a substantial load added to the battery. Once the loop has completed, the software must clear the FORCESHUTDWN bit prior to accessing any address that is not in the cache or the internal function registers (See Section 12.2.6). Power Down Power Up by delayed interrupt PWROK (in) ONBUTN (in) PWRCS (out) 16-24 ms or 4-6ms VCC3 (in) ENSYSCLK (internal) DCLKOUT (out) (MEMPOWERDOWN: by software) Delayed Interrupt (PWRCS/VCCON: by software) Interrupt Figure 12.2.3 Power Down and Power Up Sequence 12-8 Chapter 12 Power Module 12.2.5 Stop CPU In order to reduce the power consumption in the TMPR3911/12, it is desirable to stop the clock to the CPU when the CPU does not have to execute instructions. This is possible since the CPU core is fully static and will simply resume the instruction execution from where it stopped when the clock is re-enabled. The states in which just the CPU clock stops are called the Standby State or the Idle State. The system goes into the Standby State by software in the following sequence. The IEc bit in the Status Register of the CPU core is cleared to disable interrupt. 1. The software may change RF bits in the Config Register of the CPU core and SLOWBUS bit in the Power Control Register to reduce clock frequencies of DCLKOUT, CORECLK, CLK2X, and CLK (See Section 6.2.1) for power saving. The reduced frequency must be determined to maintain the system activity (DMA, peripheral device operation, etc.) in the Standby State. 2. The software can stop the clock to the CPU by setting the STOPCPU bit in the Power Control Register. Once this bit is set, the clock to the CPU will be stopped and remains stopped until an enabled interrupt clears the STOPCPU bit. This bit should not be set when powering down the system because the ENSYSCLK signal is a more dominant clock shutdown signal for the entire TMPR3911/12 chip. 3. A program loop waiting for the STOPCPU bit to be set follows. Some instructions are executed, then the CPU core stops. When any enabled interrupt events occur the system goes back to the Normal State promptly. The following software sequence should be done. 1. The CPU core restarts the execution of the program loop waiting for the STOPCPU bit to be cleared and exits from the loop promptly since the STOPCPU bit is cleared. 2. Resume the value of the RF bits and SLOWBUS bit. 3. The IEc bit in the Status Register of the CPU core is set to enable interrupt. 4. The CPU core jumps to the interrupt handler for the interrupt that waked up the system. The IEc bit is used to resume the RF bits and SLOWBUS bit before jumping to the interrupt handler. 12-9 Chapter 12 Power Module 12.2.6 Forced Shutdown The Power Module provides a feature called Forced Shutdown that will force the system to power down automatically if the PWROK signal goes low before the software clears the FORCESHUTDWN bit. The main purpose of this feature is to protect the contents of DRAM or SDRAM. The timing sequence for Forced Shutdown is shown in Figure 12.2.4. This feature can be enabled or disabled by setting the ENFORCESHUTDWN bit in the Power Control Register. This feature is useful if a particular battery provides a PWROK indication when there is no load on the battery, but quickly deasserts the PWROK signal once the battery has some load by asserting VCC3. When this feature is disabled, the system will continue the instruction execution and enable the persistent memory even if the PWROK signal is deasserted, and will eventually stop by the power failure and lose the data in the memory. The FORCESHUTDWN bit is set whenever PWRCS is asserted as a result of the ONBUTN being pressed or an enabled interrupt being set when the device is off. If the PWROK signal goes low prior to the software clearing the FORCESHUTDWN bit, the Power Module will simply deassert the PWRCS signal and the System Power Supply will turn off the VCC3 power supply. The instruction to clear the FORCESHUTDWN bit must be executed prior to bringing the memory interface out of self-refresh mode. This implies that the instruction has to be pre-loaded into the cache before the previous system shutdown, since the memory interface will exit self refresh mode once an address location is accessed in the system that is not in the cache or not to a function register. The very first time that the system is turned on after the assertion of VSTANDBY, it is not possible to support this function since the cache is not initialized. This is not a problem because the main purpose of this feature is to protect the contents of DRAM or SDRAM, which does not exist when the device is turned on for the first time. PWROK (in) ONBUTN (in) FORCESHUTDWN bit PWRCS (out) VCC3 (in) Figure 12.2.4 Forced Shutdown Sequence 12.2.7 Memory Power Down By setting the MEMPOWERDOWN bit in the Memory Configuration 4 Register, the memory controller goes into Memory Power Down Mode. All memory signals will be driven low and DRAMs and/or SDRAMs will go into self-refresh mode. The software can only access to the cache memory and the internal function registers. The first access outside them clears the MEMPOWERDOWN bit and DRAMs and/or SDRAMs will go out of the self-refresh mode. Thus it is necessary that all instructions following the assertion of the MEMPOWERDOWN bit need to be executed on the cache memories. 12.2.8 Stop Timer The Stop Timer is used as a coarse timer to bring the CPU out of Stop Mode. The Stop Timer consists of a 4-bit up counter and a comparator to generate the STPTIMERINT interrupt. The Stop Timer is enabled using the ENSTPTIMER control bit in the Power Control Register. When the ENSTPTIMER control bit is not set the counter will be reset to zero. Once the ENSTPTIMER bit is set the counter will count up using an 8 ms clock as the input. Once the counter reaches a value that is equal to the STPTIMERVAL[3:0] control bits, the STPTIMERINT interrupt is set. The Stop Timer will provide a maximum duration of 120 ms, in steps of 8 ms. 12-10 Chapter 12 Power Module 12.2.9 Power Module Interrupts STPTIMERINT: This interrupt is set whenever the Stop Timer Counter counts up to the value set by the STPTIMERVAL[3:0] control bits. POSPWRINT: This interrupt is set when the PWRINT pin changes from a logic “0” to a logic “1”. NEGPWRINT: This interrupt is set when the PWRINT pin changes from a logic “1” to a logic “0”. POSPWROKINT: Issues an interrupt whenever the PWROK signal changes from a logic “0” to a logic “1”. NEGPWROKINT: Issues an interrupt whenever the PWROK signal changes from a logic “1” to a logic “0”. POSONBUTNINT: Issues an interrupt whenever the ONBUTN signal changes from a logic “0” to a logic “1”. If the DBNCONBUTN control bit is set then the interrupt will not be set until the signal is debounced for 16-24 ms. NEGONBUTNINT: Issues an interrupt whenever the ONBUTN signal changes from a logic “1” to a logic “0”. If the DBNCONBUTN control bit is set then the interrupt will not be set until the signal is debounced for 16-24 ms. 12-11 Chapter 12 Power Module 12.3 Power Registers 12.3.1 Power Control Register OFFSET = $ 1C4: Bit 31 30 29 28-27 26 25 24-16 15-12 11 10 9 8 7 6 5 4 3 2 1 0 Label ONBUTN PWRINT PWROK VIDRF[1:0] SLOWBUS DIVMOD Reserved STPTIMERVAL[3:0] ENSTPTIMER ENFORCESHUTDWN FORCESHUTDWN FORCESHUTDWNOCC SELC2MS Reserved BPDBVCC3 STOPCPU DBNCONBUTN COLDSTART PWRCS VCCON ONBUTN: RESET Read/Write – – – 0 0 0 R R R R/W R/W R/W X 0 0 0 0 0 R/W R/W R/W R/W R/W R/W 0 0 0 1 0 0 R/W R/W R/W R/W R/W R/W read-only This bit provides the status of the ONBUTN signal. PWRINT: read-only This bit provides the status of the PWRINT signal. PWROK: read-only This bit provides the status of the PWROK signal. STPTIMERVAL[3:0]: When the Stop Timer is enabled the STPTIMERINT interrupt will be set when the counter is equal to the value set by these bits. ENSTPTIMER: This bit is used to enable the Stop Timer. VIDRF[1:0]: These bits select the divide-ratio of VIDCLK, which is the master clock used for the video module. VIDRF divide-ratio 0 1 2 3 1 2 4 8 12-12 Chapter 12 Power Module SLOWBUS: Setting this bit will cause the internal clocks except FREECLK and XHFEE to be divided by 2. DIVMOD: Setting this bit will cause the clocks in each function module such as an UART to be independent of RF (1:0). (See Section 6, Figure 6.2.1 and 6.2.2) ENFORCESHUTDWN: The FORCESHUTDWN bit is set whenever the VCCON bit and the PWRCS bit are set by either the ONBUTN signal assertion or an enabled interrupt occurrence. If the PWROK signal goes low before the processor clears the FORCESHUTDWN bit, then the VCCON bit and the PWRCS bit are cleared and the PWRCS signal will go low if the ENFORCESHUTDWN bit is set. If the ENFORCESHUTDWN bit is not set, then the FORCESHUTDWN bit will have no effect. FORCESHUTDWN: If the ENFORCESHUTDWN bit is set, then this bit must be cleared after the initial boot, but prior to memory interface waking up procedure. See Section 12.2.6 for details. FORCESHUTDWNOCC: This bit is set if a Forced Shutdown occurs due to the PWROK signal going low prior to the processor clearing the FORCESHUTDWN bit. This bit provides status to the processor to indicate that the event occurred. The bit should be cleared once the status has been checked, so that it can be used again for the next power up. SELC2MS: The assertion of PWRCS signal will cause the System Power Supply to assert the VCC3 power line. Once VCC3 is powered, the oscillator and PLL inside of the TMPR3911/12 will wake up and generate the main system clock, but for a certain period of time the clock will be unstable until the oscillator and PLL lock on the correct frequency. The Power Module will prevent the clock from driving any logic until the clock becomes stable. The reference clock for the debouncing delay time is provided by the C2MS (2 ms clock) and the C8MS (8 ms clock) internal signals generated by the RTC from the 32 kHz oscillator. If SELC2MS is set to a logic “1”, the clock will be disabled for a minimum of 4 ms and a maximum of 6 ms after VCC3 is powered. If SELC2MS is set to a logic “0”, the clock will be deasserted for a minimum of 16 ms and a maximum of 24 ms after VCC3 is powered. BPDBVCC3: If this bit is set, the clock will be enabled immediately following the assertion of VCC3, instead of waiting for the delay mentioned in the SELC2MS bit description. STOPCPU: Setting this bit will cause the clock to the CPU core to be disabled to allow low power operation. The bit is cleared whenever an enabled interrupt is set. This bit should not be set when powering down the system. It is only used when the system is powered up, but the CPU does not have to execute instructions. 12-13 Chapter 12 Power Module DBNCONBUTN: If this bit is set, then the POSONBUTNINT and NEGONBUTNINT interrupts and the ONBUTN wake up function will only occur after a minimum of 16 ms and a maximum of 24 ms of debouncing of the ONBUTN signal has taken place to allow direct “undebounced” button connection. If this bit is cleared, then the interrupts and power up occur immediately upon transition of the ONBUTN signal. COLDSTART: This bit is set by RESET and provides status to the processor that a Power On Reset has occurred. PWRCS: This bit is set whenever the ONBUTN signal is asserted or an enabled interrupt occurs while the PWROK signal is high. When powering down the system, this bit must be cleared simultaneously with the VCCON bit. All enabled interrupts must be cleared prior to powering down the system, or the PWRCS and VCCON signals will not go low. VCCON: This bit is set whenever the ONBUTN is pressed or an enabled interrupt occurs if the PWROK signal is high. When powering down the system, this bit must be cleared simultaneously with the PWRCS bit. All enabled interrupts must be cleared prior to powering down the system, or the PWRCS and VCCON signals will not go low. 12-14 Chapter 13 SIB Module 13. SIB Module 13.1 Overview The SIB Module within the TMPR3911/12 contains holding registers, shift registers, and other logic to support interfacing to the analog-front-end device: TC35143 and/or other optional external codec devices. The overall sound subsystem for a PIC (Personal Information Communicator) allows playing and recording of sounds, and consists of a single-channel 12-bit codec within TC35143, TC35143 interface circuits for direct connection to an external microphone (MIC) and speaker, and DMA support within the TMPR3911/12. Similarly, the overall telecom subsystem for a PIC allows support of high-performance software modems, and consists of a single-channel 16-bit codec within TC35143, which also includes optional echo cancellation and interface circuits for connection to an external Data Access Arrangement (DAA), as well as an auxiliary input/output port for supporting future wireless interfaces. The DAA provides the front-end interface circuitry needed between the analog telephone network and the telecom codec for wireline configurations. The front-end circuit can also include ring detect, off-hook detect, and connect detect functions. Audio and telecom data and control/status information (such as sampling rate, gain control, muting, clip detect, etc.) is passed between the TMPR3911/12 and TC35143 (and/or other external codec devices) via the SIB. Within the TMPR3911/12, the SIB Module logic provides DMA support and control/status registers for data transfers between external system memory, the CPU core, and the SIB. SIB data transfer is always synchronous and is frame-based, with the TMPR3911/12 side always the master source of the clock and frame frequency and phase. For the sound subsystem, TC35143 allows the system to digitize (using the sound codec’s ADC) the MIC input, as well as to convert (using the sound codec’s DAC) sampled sounds (either pre-stored, synthesized, or previously recorded) stored in system memory to an analog audio output, for routing to either a speaker and/or headphone output. For the telecom subsystem, TC35143 allows the system to digitize (using the telecom codec’s ADC) the telecom analog baseband receive input, and the subsequent modem baseband signal processing can be implemented using entirely a software-based approach. TC35143 then allows the system to convert (using the telecom codec’s DAC) the processed baseband transmit output to an analog telecom output for routing back out the wireline or wireless port. The SIB Module provides full-duplex DMA support for sound receive and transmit, as well as independent DMA support for telecom receive and transmit (four total independent DMA channels). The DMA buffers can be configured in a continuous (circular) buffer mode or a one-time (empty or fill, then stop) buffer mode. Half-buffer and end-of-buffer DMA address counter interrupts are available, allowing the CPU to minimize overhead and efficiently empty or fill half of the DMA buffer in a ping-pong fashion. The DMA buffer size is programmable (up to a maximum of 16 KBytes) and the receive and transmit buffers can be configured to either reside in different memory spaces or share the same memory space (overlapping buffers for loopback purposes or for optimum memory allocation). Also available is a direct CPU read/write mode for bypassing the DMA, allowing the CPU to read or write the sound or telecom data on a sample by sample basis, if so desired. 13-1 Chapter 13 SIB Module 13.1.1 Related Pins SIBDIN: INPUT This pin contains the input data shifted from TC35143 and/or external codec device. SIBDOUT: OUTPUT This pin contains the output data shifted to TC35143 and/or external codec device. SIBSCLK: OUTPUT This pin is the serial clock sent to TC35143 and/or external codec device to synchronize the data transfer. SIBSYNC: OUTPUT This pin is the frame synchronization signal sent to TC35143 and/or external codec device. This frame sync is asserted for one clock cycle immediately before each frame starts and all devices connected to the SIB monitor SIBSYNC to determine when they should transmit or receive data. SIBIRQ: INPUT This pin is a general purpose input port used for the SIB interrupt source from TC35143. This interrupt source can be configured to generate an interrupt on either a positive and/or negative edge. SIBMCLK: INPUT/OUTPUT This pin is the master clock source for the SIB logic. This pin can be used as output mode or input mode. In output mode, SIBMCLK can be configured as a high-rate output master clock source required by certain external codec devices. In this mode all SIB clocks are synchronously slaved to the main TMPR3911/12 system clock CLK2X. In input mode, SIBMCLK can be configured as an input slave clock source. In this mode, all SIB clocks are derived from an external SIBMCLK oscillator source, which is asynchronous with respect to CLK2X. Also, for this mode, SIBMCLK can still be optionally used as a high-rate master clock source required by certain external codec devices. 13-2 Chapter 13 SIB Module 13.2 Block Diagram DATA FROM DMA OR CPU DATA FROM CPU 32 SOUND TX HOLD REG 32 TELECOM TX HOLD REG CONTROL TX HOLD REG MODE CONTROL FROM CPU MUX SIBOUT 64-BIT SHIFT REG MUX SOUND RX HOLD REG TELECOM RX HOLD REG STATUS RX HOLD REG 32 32 DATA FROM DMA OR CPU DATA TO CPU SIBDIN CLK DMA ADDR GEN DMA ADDR CLK2X SIBMCLK CLK CLOCK AND SYNC GEN END-OF-BUFFER INTERRUPT X2 (SOUND AND TELECOM) CONTROL FROM CPU SIBSCLK HALF-BUFFER INTERRUPT SIBSYNC CONTROL FROM CPU Figure 13.2.1 SIB Module Block Diagram 13-3 Chapter 13 SIB Module 13.2.1 Holding and Shift Registers The SIB Module logic consists of holding registers (both transmit and receive) and a serial shift register to support the transfer of sound and telecom data and control/status information between the TMPR3911/12 and TC35143 (and/or other external codec devices) via the SIB (see Figure 13.2.1 for a block diagram of the SIB Module). For the SIB transmit direction, the sound and telecom transmit holding registers are written either from the DMA circuit or directly from the CPU, while the subframe 0 and subframe 1 control holding registers are always written directly from the CPU. These holding registers are processed by an array of multiplexers which select which fields of the various 32-bit transmit holding registers are loaded into the 64-bit shift register, such that an entire subframe is loaded in parallel and then shifted out the serial output SIBDOUT. The sequence of loading the shift register from the various holding register fields is determined by the programmed sound and telecom sample rates, mono versus stereo mode, and 8-bit versus 16-bit modes. Conversely, for the SIB receive direction, the sound and telecom receive holding registers are read either by the DMA circuit or directly by the CPU, while the subframe 0 and subframe 1 status holding registers are always read directly by the CPU. The 64-bit shift register containing an entire subframe of received data from the serial input SIBDIN is processed by an array of multiplexers which select which fields of the various 32-bit receive holding registers are loaded from the shift register. The sequence of loading the various fields of the receive holding registers from the shift register is determined by the programmed sound and telecom sample rates, mono versus stereo mode, left versus right mono source, and 8-bit versus 16-bit modes. 13.2.2 Clock and Sync Generation The SIB Module logic contains several programmable counters which are used to generate the various SIB internal and external control signals and clocks. See Figure 13.2.2 for a block diagram of the SIB clock and sync generation circuit. As mentioned previously, SIBMCLK can be configured as either an input or output. As an output, SIBMCLK is derived by dividing down from CLK2X. In this mode, all SIB clocks are then synchronously slaved to the main TMPR3911/12 system clock and only one main XTAL source is required for the entire system (besides the 32 kHz RTC XTAL), resulting in the lowest cost system configuration with regards to clock sources. As an input, SIBMCLK is generated from an external oscillator source, which is asynchronous with respect to CLK2X. This more expensive configuration allows the SIB (and also potentially the CHI and dual-UART circuits) to operate independent of the frequency used for the CPU core. This allows flexible system design options with respect to the CPU operating frequency, along with the ability to generate the required or desired UART baud rates and audio/telecom sampling frequencies. The programmable SIBSCLK rate is derived by dividing down from SIBMCLK. Nominal rates for a TC35143-only configuration are CLK2X ÷ 5 (TMPR3912AU-92/XB-92) and SIBSCLK = 9.216 MHz (equals SIBMCLK ÷ 2). The SIBSCLK rate is then used to enable a set of counters (word counter and subframe/frame counter) to generate the SIBSYNC frame rate of 72 kHz (equals SIBSCLK ÷ 128), as well as various internal SIB clocks and control signals. The subframe rate is used to enable independent sets of programmable sound and telecom sample rate counters which generate various control signals based on the desired sample rates. For instance, this logic correctly generates the sound and telecom valid flag bits which are asserted within the SIBDOUT serial output stream every time a valid sample is being transmitted. 13-4 Chapter 13 SIB Module CLK2X CLK PRGM DIVIDER SIBMCLK PRGM DIVIDER SIBSCLK ÷32 WORD CNT SIBSYNC DECODE ÷6 SF/FRAME CNT SND START/STOP CONTROL TEL START/STOP CONTROL SIB SHIFT REG CONTROL SIB HOLDING REG CONTROL SIB DMA REG CONTROL PRGM SND FS CNT DECODE SND VFLAG SND FRAME CNT SND SAMPLE INTERRUPT PRGM TEL FS CNT DECODE TEL VFLAG TEL FRAME CNT TEL SAMPLE INTERRUPT CONTROL FROM CPU Figure 13.2.2 SIB Clock and Sync Generation 13-5 Chapter 13 SIB Module 13.3 Interface Requirements 13.3.1 Frame Structure Each SIB frame consists of 128 SIBSCLK, further divided into 2 subframes: Subframe 0 and 1. The SIB frame structure is shown in Figure 13.3.1. 1 Frame SIBSYNC SIBSCLK Subframe 0 Subframe 1 SIBDIN SIBDOUT Figure 13.3.1 SIB Framing Structure 13.3.2 Timing Requirements The TMPR3911/12 always samples receive data (SIBDIN) on the falling edge of SIBSCLK, whereas the transmit data from TC35143 is always output on the rising edge of SIBSCLK. Similarly, the TMPR3911/12 always output transmit data (SIBDOUT) on the rising edge of SIBSCLK, whereas the transmit data to TC35143 is always sampled on the falling edge of SIBSCLK in TC35143. The SIBSYNC signal is asserted for one SIBCLK cycle immediately before each frame starts and all devices connected to the SIB monitor SIBSYNC to determine when they should transmit or receive data. SIBSYNC is always sampled by TC35143 on the falling edge of SIBSCLK. The timing relationship for the SIBSCLK, SIBSYNC, and data signals (SIBDIN, SIBDOUT) is shown in Figure 13.3.2. Subframe 1 start Frame start Subframe 1 Subframe 0 63 0 1 2 62 63 0 SIBSCLK SIBSYNC SIBDIN SIBDOUT Figure 13.3.2 SIB Timing Relationships 13-6 Chapter 13 SIB Module 13.3.3 Configurations Many configuration options exist for the SIB. The SIB Module control bits SELSNDSF1 and SELTELSF1 are used to determine the desired SIB configuration. See Table 13.3.1 for a summary matrix of these possible configurations. The lowest cost configuration utilizes TC35143 only, assigned to subframe 0 of the SIB, while subframe 1 is not used. For this configuration, the system utilizes the audio and telecom codecs within TC35143. The SIBSCLK rate is fixed and the independent sound and telecom sample rates are controlled via TMPR3911/12 and TC35143 programmable counters. Table 13.3.1 SIB Configuration Matrix (1) TMPR3912AU-92/XB-92; 11.520 MHz crystal to be used. RF[1:0] = 00, SLOWBUS = 0. sound codec telecom codec TC35143; Fs = 8K, 11.05K, 16K, or 22.15K TC35143; Fs = 7.2K, 8K, or 9.6K TMPR3912 sibsclk clk2x [1] 92.16M 9.216M (÷10) sibmclk out or sound OSC in [2] SIB frame rate [3] 18.432M out (÷5) 72K comments TC35143 only; lowest cost; sibsclk = fixed; sound & telecom Fs control; via TC35143 prgm [4]; SIB subframe0 = TC35143; SIB subframe1 = not used; SELSNDSF1 = 0; SELTELSF1 = 0; Table 13.3.2 SIB Configuration Matrix (2) The TMPR3911BU/BXB SIB does not provide support for a 7.3728-MHz crystal. To use the SIB, use a 6.912-MHz crystal. RF[1:0]=00, SLOWBUS=0. sound codec telecom codec TC35143; Fs = 8 k 11.05 k, 16 k, or 22.15 k TC35143; Fs = 7.2 k, 8 k, or 9.6 k TMPR3912 sibsclk clk2x [1] 55.296 M 9.216 M (÷6) sibmclk out or sound OSC in [2] SIB frame rate[3] 18.432 M out (÷3) 72 k comments TC35143 only; lowest cost; sibsclk = fixed; sound & telecom Fs control; via TC35143 prgm [4]; SIB subframe1 = not used; SELSNDSF1 = 0; SELTELSF1 = 0; NOTES : [1] TMPR3911/12 clk2x is internal high-rate system-wide clock [2] optional external sound OSC can be connected to TMPR3911/12 sibmclk (to allow decoupling of SIB clocks from clk2x; else this pin can be configured as buffered sibmclk output which is synchronously divided down from clk2x (sibmclk allows potential support of codecs requiring a high-rate fixed master clock + a sample-rate-dependent serial clock); sibsclk serial clock is always synchronously divided down from sibmclk [3] SIB frame rate = sibsclk ÷ 128; ratio for average number of SIB-frames per valid-data-frame is dependent upon sound & telecom Fs [4] TC35143 audio/telecom Fs divider programmability: SIB-frame/valid-data-frame RATIO (sibsclk × 2) ÷ (40 × 64) = 7.2K 5 (sibsclk × 2) ÷ (36 × 64) = 8K 4.5 (sibsclk × 2) ÷ (30 × 64) = 9.6K 3.75 (sibsclk × 2) ÷ (15 × 64) = 19.2K (1.6% error vs. 18.9K for CD-XA) 1.875 (sibsclk × 2) ÷ (13 × 64) = 22.154K (0.47% error vs. 22.050K for CD-Audio) 1.625 (sibsclk × 2) ÷ (12 × 64) = 24K 1.5 13-7 Chapter 13 SIB Module 13.3.4 Sample Rates The SNDFSDIV and TELFSDIV control bits are used to independently configure the sampling rate for the audio and telecom codecs, respectively. These control bits set the modulus of the audio and telecom sample rate counters within the SIB Module. TC35143 also contains its own set of audio and telecom sample rate counters for its internal use and these counters must be both frequency and phase synchronized to the sample rate counters within the TMPR3911/12 in order to guarantee correct operation. The synchronization of these counters is triggered from the codec enable command transmitted by the TMPR3911/12 and received by TC35143, as shown in Figure 13.3.3. The sample rate is calculated using the following (note that the FSDIV value loaded into the counter is the desired count modulus −1): Fs = (SIBSCLK × 2) ÷ ((FSDIV + 1) × 64) For example, if SIBSCLK = 9.216 MHz and FSDIV = 39 (modulo 40), then: Fs = (9.216 MHz × 2) ÷ ((39 + 1) × 64) = 7.2 kHz 13-8 sf0 sf1 (Note 1) 0 1 2 3 4 5 6 0 1 2 3 4 5 6 0 1 2 3 4 5 6 0 1 2 3 4 5 6 0 1 2 3 4 5 6 0 1 2 3 4 5 6 (Note 3) Note 1: during this frame, audio (and/or telecom) codec input or output enable command is transmitted by TMPR3911/12 and received by TC35143F Note 2: at start of first frame after codec is enabled, audio (and/or telecom) counters are reset; this ensures that TMPR3911/12 and TC35143F fs counters are immediately phase-synchronized Note 3: during this frame, first valid DAC sample is transmitted by TMPR3911/12 (received by TC35143F) or first valid ADC sample is transmitted by TC35143F (received by TMPR3911/12); valid DAC and ADC samples are always transmitted during the same subframe (full duplex) Note 4: audio (and/or telecom) vflag bits are asserted to TC35143F for one subframe each time a new DAC sample is being transmitted (TMPR3911/12 will also latch a new ADC sample from TC35143F during the same subframe); since the audio (and/or telecom) programmable sample rate is derived from sibsclk/32 (= 4x frame rate), valid samples are synchronized from the periodic fs count rollover to the next available SIB subframe Above timing diagram shows fs count and valid sample flag generation for example configuration where frequency divisor = 6 (modulo-7 divide). Valid sample trigger (Note 4) Valid sample flag (Note 2) fs count (modulo-7 example) codec enable sibsclk/32 sibssync SIB frame Chapter 13 SIB Module Figure 13.3.3 SIB Sample Rate Setup Timing 13-9 Chapter 13 SIB Module 13.3.5 Enable/Disable Sequencing As mentioned in the previous section, the synchronization of the sample rate counters within TMPR3911/12 and TC35143 is triggered from the codec enable command transmitted by TMPR3911/12 and received by TC35143. The following steps illustrate the full sequence of events needed to enable and disable the audio and/or telecom processing paths, while ensuring synchronization of these sample rate counters (the example below shows a configuration with TC35143 for sound and telecom, using subframe 0 only): INITIAL ENABLE SEQUENCE: (1) SIB is initially disabled (ENSIB = 0) (2) setup SIB control registers to desired settings (SIB clock rates, sample rate dividers, data formats (8-bit vs. 16-bit, etc.), DMA settings, subframe 0 enable = ENSF0 (3) write initial data and control values to transmit holding registers (SNDTXHOLD, TELTXHOLD, SF0AUX); SF0AUX control register sets up TC35143 audio and telecom codecs, including sample rate dividers (to match TMPR3911/12 sample rates), gains, etc. codecs are not enabled at this point (4) enable SIB (assert ENSIB = 1) (5) SIB then begins transmitting and receiving data; TC35143 control registers get configured with desired settings; codecs still not enabled at this point SND (or TEL) ENABLE SEQUENCE: (6) setup software to trigger from SIBSF0INT (7) immediately after SIBSF0INT trigger, software must write to SF0AUX to assert Audio (or Telecom) Codec Enable, and during same subframe (i.e., before SIBSF1INT event occurs), software must assert ENSND (or ENTEL) (8) after next SIBSF0INT and during the subframe 0 period, the Codec Enable Command is transmitted from TMPR3911/12 and received by TC35143 (9) the Audio (or Telecom) Codec within TC35143 is then enabled at the start of the next frame after the Enable Command is sent, at which time the sample rate counters within both TMPR3911/12 and TC35143 begin counting in a synchronized fashion (10) during this first frame after codec is enabled, the first DAC sample is transmitted by TMPR3911/12 (received by TC35143) and/or the first ADC sample is transmitted by TC35143 (received by TMPR3911/12); DAC and ADC samples are always transmitted during the same subframe in a full-duplex manner (as mentioned in the previous section, DAC and ADC samples are synchronized from the periodic sample rate counter rollover to the next available SIB subframe) (11) check valid status from TC35143 (indicates whether ADC’s are settled, all turn-on delays have been met, etc.) which indicates valid samples SND (or TEL) DISABLE SEQUENCE: (12) software writes to SF0AUX to de-assert Audio (or Telecom) Codec Enable, in order to disable codec (13) software then de-asserts ENSND (or ENTEL) to disable sound (or telecom) processing on TMPR3911/12 side 13-10 Chapter 13 SIB Module 13.3.6 Data Formats The TMPR3911/12’s SIB Module logic contains transmit and receive holding registers which are used by the DMA circuit or CPU to write and read sound and telecom data and SIB control and status register data. The SNDTXHOLD and SNDRXHOLD registers are used for transmit and receive sound data corresponding to the appropriate subframe (0 or 1), according to the configuration as determined by the SELSNDSF1 control bit. Similarly, the TELTXHOLD and TELRXHOLD registers are used for transmit and receive telecom data corresponding to the appropriate subframe (0 or 1), according to the configuration as determined by the SELTELSF1 control bit. All of these holding registers are 32 bits wide, and the appropriate shift register fields for each subframe are written to or read from based on the programmed sound and telecom samples rates, mono versus stereo mode, and 8-bit versus 16-bit modes. The SF0AUX and SF1AUX control holding registers and SF0STAT and SF1STAT status holding registers are also 32 bits wide. Each of these control holding registers updates the control fields for the respective subframe once per frame. These transmit holding registers load the same control data into the shift register until the CPU updates the contents of the holding register. Similarly, the status holding registers are updated from the received status data in the shift register once per frame. The contents of the receive holding registers are available to be read by the CPU at any time. The SIB data format for transfers to and from TC35143 is shown in Figure 13.3.4. Each word consists of fields containing audio data, telecom data, and control register address and data. During each frame, data is transferred bi-directionally (using SIBDIN and SIBDOUT) for all of these fields. For instance, the audio data field is written once every frame (from the TMPR3911/12 to TC35143) via SIBDOUT and also returns audio data (from TC35143 to the TMPR3911/12) at the same time via SIBDIN. audio data[11:0] 0 write 16 register addr[3:0] telecom vflag Telecom data[15:0] 32 Audio vflag 48 64 Register data[15:0] Figure 13.3.4 Data Format for TC35143 Word Interface 13-11 Chapter 13 SIB Module The SF0AUX control holding register and SF0STAT status holding register map directly to bits 16-31 and 48-63 of the subframe 0 word format. See Table 13.3.3 which shows the mapping of SF0AUX and SF0STAT bit positions to the respective TC35143 fields. For TC35143, the audio and telecom “vflag” bits (valid flags) in the transmit direction are dynamically asserted to TC35143 for one subframe each time a new sample is being transmitted. The audio and telecom “vflag” bits in the receive direction are statically asserted from TC35143 to the TMPR3911/12 only after the ADC’s are settled, all turn-on delays have been met, etc. The TMPR3911/12 then uses these valid flags to determine when the receive data from TC35143 is truly valid. Table 13.3.3 SIB Subframe 0 Control/Status Bits and Fields SF0AUX/SF0STAT bits TC35143 word bits field definition --- 0-15 audio data 31 16 reserved for register extension; must write to 0 if not used 30-27 17-20 register address[3:0] 26 21 write bit 25-18 22-29 reserved, must write to 0 17 30 audio valid flag 16 31 telecom valid flag --- 32-47 telecom data 15-0 48-63 register data[15:0] The last 16 bits of the TC35143 word is made up of control register data. The exact contents and definition of this field is defined by the register address field and the “write” bit. For a read cycle (“write” bit = 0), the address bits determine which TC35143 register to read and this read data is sent by TC35143 within the control register data field of SIBDIN during the same frame as the read request occurred. The separation between the address and data fields should make this possible. In addition, during a read cycle, the control register data field of SIBDOUT is ignored by TC35143. For a write cycle (“write” bit = 1), the control register data contents of SIBDOUT are written to the TC35143 register pointed to by the register address field. 13.3.7 Subframe Formats SIB subframe 0 is nominally reserved for interfacing to TC35143. Four possible sample-size modes are supported for sound and telecom data (these are all mono sound and telecom formats): sound telecom 16-bit 16-bit 16-bit 8-bit 8-bit 16-bit 8-bit 8-bit SIB subframe 1 is nominally reserved for interfacing to an external codec device. For the external codec device, four possible sample-size modes are supported: sound telecom 16-bit stereo 16-bit 16-bit mono 8-bit 8-bit stereo 8-bit mono 13-12 Chapter 13 SIB Module Table 13.3.4 SIB Holding and Shift Register Formats (Subframe 0) Subframe 0 Sound 16 Bit, Telecom 16 Bit: Frame SR[64:49] SR[48:33] SR[32:17] SR[16:1] 0 sndtxhold[31:16] sf0aux[31:18], VS, VT teltxhold[31:16] sf0aux[15:0] 1 sndtxhold[15:0] sf0aux[31:18], VS, VT teltxhold[15:0] sf0aux[15:0] 2 sndtxhold[31:16] sf0aux[31:18], VS, VT teltxhold[31:16] sf0aux[15:0] 3 sndtxhold[15:0] sf0aux[31:18], VS, VT teltxhold[15:0] sf0aux[15:0] Subframe 0 Sound 16 Bit, Telecom 8 Bit: Frame SR[64:49] SR[48:33] SR[32:17] SR[16:1] 0 sndtxhold[31:16] sf0aux[31:18], VS, VT teltxhold[31:24], 8b0sf0aux[15:0] 1 sndtxhold[15:0] sf0aux[31:18], VS, VT teltxhold[23:16], 8b0 sf0aux[15:0] 2 sndtxhold[31:16] sf0aux[31:18], VS, VT teltxhold[15:8], 8b0 sf0aux[15:0] 3 sndtxhold[15:0] sf0aux[31:18], VS, VT teltxhold[7:0], 8b0 sf0aux[15:0] Subframe 0 Sound 8 Bit, Telecom 16 Bit: Frame SR[64:49] SR[48:33] SR[32:17] SR[16:1] 0 sndtxhold[31:24], 8b0 sf0aux[31:18], VS, VT teltxhold[31:16] sf0aux[15:0] 1 sndtxhold[23:16], 8b0 sf0aux[31:18], VS, VT teltxhold[15:0] sf0aux[15:0] 2 sndtxhold[15:8], 8b0 sf0aux[31:18], VS, VT teltxhold[31:16] sf0aux[15:0] 3 sndtxhold[7:0], 8b0 sf0aux[31:18], VS, VT teltxhold[15:0] sf0aux[15:0] Subframe 0 Sound 8 Bit, Telecom 8 Bit: Frame SR[64:49] SR[48:33] SR[32:17] SR[16:1] 0 sndtxhold[31:24], 8b0 sf0aux[31:18], VS, VT teltxhold[31:24], 8b0 sf0aux[15:0] 1 sndtxhold[23:16], 8b0 sf0aux[31:18], VS, VT teltxhold[23:16], 8b0 sf0aux[15:0] 2 sndtxhold[15:8], 8b0 sf0aux[31:18], VS, VT teltxhold[15:8], 8b0 sf0aux[15:0] 3 sndtxhold[7:0], 8b0 sf0aux[31:18], VS, VT teltxhold[7:0], 8b0 sf0aux[15:0] NOTE: “VS” = valid sound flag bit; “VT” = valid telecom flag bit “8b0” = 8-bit field of zero values “SR” = Shift Register 13-13 Chapter 13 SIB Module Table 13.3.5 SIB Holding and Shift Register Formats (Subframe 1 Sound) Subframe 1 Sound 16 Bit Stereo: Frame SR[64:49] SR[48:33] SR[32:17] SR[16:1] 0 sndtxhold[31:16] sf1aux[31:16] sndtxhold[15:0] sf1aux[15:0] 1 sndtxhold[31:16] sf1aux[31:16] sndtxhold[15:0] sf1aux[15:0] 2 sndtxhold[31:16] sf1aux[31:16] sndtxhold[15:0] sf1aux[15:0] 3 sndtxhold[31:16] sf1aux[31:16] sndtxhold[15:0] sf1aux[15:0] Subframe 1 Sound 16 Bit Mono: Frame SR[64:49] SR[48:33] SR[32:17] SR[16:1] 0 sndtxhold[31:16] sf1aux[31:16] sndtxhold[31:16] sf1aux[15:0] 1 sndtxhold[15:0] sf1aux[31:16] sndtxhold[15:0] sf1aux[15:0] 2 sndtxhold[31:16] sf1aux[31:16] sndtxhold[31:16] sf1aux[15:0] 3 sndtxhold[15:0] sf1aux[31:16] sndtxhold[15:0] sf1aux[15:0] Subframe 1 Sound 8 Bit Stereo: Frame SR[64:49] SR[48:33] SR[32:17] SR[16:1] 0 sndtxhold[31:24], 8b0 sf1aux[31:16] sndtxhold[23:16], 8b0 sf1aux[15:0] 1 sndtxhold[15:8], 8b0 sf1aux[31:16] sndtxhold[7:0], 8b0 sf1aux[15:0] 2 sndtxhold[31:24], 8b0 sf1aux[31:16] sndtxhold[23:16], 8b0 sf1aux[15:0] 3 sndtxhold[15:8], 8b0 sf1aux[31:16] sndtxhold[7:0], 8b0 sf1aux[15:0] Subframe 1 Sound 8 Bit Mono: Frame SR[64:49] SR[48:33] SR[32:17] SR[16:1] 0 sndtxhold[31:24], 8b0 sf1aux[31:16] sndtxhold[31:24], 8b0 sf1aux[15:0] 1 sndtxhold[23:16], 8b0 sf1aux[31:16] sndtxhold[23:16], 8b0 sf1aux[15:0] 2 sndtxhold[15:8], 8b0 sf1aux[31:16] sndtxhold[15:8], 8b0 sf1aux[15:0] 3 sndtxhold[7:0], 8b0 sf1aux[31:16] sndtxhold[7:0], 8b0 sf1aux[15:0] NOTE: “8b0” = 8-bit field of zero values “SR” = Shift Register Table 13.3.6 SIB Holding and Shift Register Formats (Subframe 1 Telecom) Subframe 1 Telecom 16 Bit: Frame SR[64:49] SR[48:33] SR[32:17] SR[16:1] 0 16b0 sf1aux[31:17], VT teltxhold[31:16] sf1aux[15:0] 1 16b0 sf1aux[31:17], VT teltxhold[15:8] sf1aux[15:0] 2 16b0 sf1aux[31:17], VT teltxhold[31:16] sf1aux[15:0] 3 16b0 sf1aux[31:17], VT teltxhold[15:8] sf1aux[15:0] Subframe 1 Telecom 8 Bit: Frame SR[64:49] SR[48:33] SR[32:17] SR[16:1] 0 16b0 sf1aux[31:17], VT teltxhold[31:24], 8b0 sf1aux[15:0] 1 16b0 sf1aux[31:17], VT teltxhold[23:16], 8b0 sf1aux[15:0] 2 16b0 sf1aux[31:17], VT teltxhold[15:8], 8b0 sf1aux[15:0] 3 16b0 sf1aux[31:17], VT teltxhold[7:0], 8b0 sf1aux[15:0] NOTE: “VS” = valid sound flag bit; “VT” = valid telecom flag bit “8b0” = 8-bit field of zero values; “16b0” = 16-bit field of zero values “SR” = Shift Register 13-14 Chapter 13 SIB Module 13.4 DMA Address Generation The SIB Module provides support for four independent DMA channels: sound receive and transmit and telecom receive and transmit. Two identical circuits (one for sound DMA and one for telecom DMA) are used to generate the DMA address, as well as half-buffer and end-of-buffer interrupts (see Figure 13.4.1). The DMA buffer size is programmable (up to a maximum of 16 Kbytes) and the receive and transmit buffer start addresses are also programmable (anywhere over the full 32-bit address space). Because there are separate start addresses, the receive and transmit buffers can be configured to either reside in different memory spaces or share the same memory space. The latter setup allows for overlapping buffers for loopback purposes or for optimum memory allocation, for which the DMA logic supports two full-duplex loopback modes. For one mode, receive DMA requests are issued first, followed by transmit DMA requests. This ordering allows a receive-to-transmit immediate loopback via the DMA buffer. For the second mode, transmit DMA requests are issued first, followed by receive DMA requests. Thus, received samples are written to the DMA buffer location immediately after transmit samples were read from that same location (which then became immediately available). This ordering allows a single circular DMA buffer to be used for both transmit and receive samples. The DMA buffers can be configured in a circular buffer mode or a one-time buffer mode. For the circular mode, the DMA address is continuously incremented (each time a DMA acknowledge is received from the TMPR3911/12’s central DMA controller) and rolls over back to the start address after the end-of-buffer is reached and will continue operating in a continuous and circular manner. For the one-time mode, the DMA logic will stop executing whenever the end-of-buffer is reached. Half-buffer and end-of-buffer DMA address counter interrupts are available, allowing the CPU to minimize overhead and utilize the DMA buffer in a ping-pong fashion. For transmit mode, the CPU can use these interrupts to fill or write one half of the buffer while the other half is being emptied by the DMA controller for transmitting out the SIB. Similarly, for receive mode, the CPU can use these interrupts to empty or read one half of the buffer while the other half is being filled by the DMA controller from received SIB input samples. Also available is a direct CPU read/write mode for bypassing the DMA, allowing the CPU to read or write the sound or telecom data on a sample by sample basis, if so desired. Separate DMA enables for receive and transmit allow DMA to be setup for receive only (transmit via CPU), transmit only (receive via CPU), receive and transmit, or none (receive and transmit via CPU). The sound and telecom DMA circuits also provide an interrupt each time the respective DMA buffer pointer is incremented, which occurs whenever a new sample is read from and/or written to the DMA buffer. This interrupt may be useful for triggering a read of the DMA pointer status value, which is the actual 12-bit DMA address counter output. This value indicates exactly where the current address is pointing to in the overall DMA buffer. 13-15 Chapter 13 SIB Module DMA RD/WR MODE RX START ADDR 30 2:1 TX START ADDR DMA CNTL REG ONE-TIME VS. CIRCULAR MODE CNT LOAD LOGIC 12 DMA POINTER ADDR CNT CLK 12 30 DMA ADDR BUFFER 12 SIZE ÷2 CMP END-OF-BUFFER INTERRUPT CMP HALF-BUFFER INTERRUPT CONTROL FROM CPU Figure 13.4.1 SIB DMA Address Generation 13-16 Chapter 13 SIB Module 13.5 Related Interrupts SND0_5INT: Issues an interrupt whenever the sound DMA buffer pointer has reached the halfway point. SND1_0INT: Issues an interrupt whenever the sound DMA buffer pointer has reached the end-of-buffer point. TEL0_5INT: Issues an interrupt whenever the telecom DMA buffer pointer has reached the halfway point. TEL1_0INT: Issues an interrupt whenever the telecom DMA buffer pointer has reached the end-of-buffer point. SNDDMACNTINT: Issues an interrupt each time the sound DMA buffer pointer is incremented, which occurs whenever a new sound sample is read from and/or written to the sound DMA buffer. TELDMACNTINT: Issues an interrupt each time the telecom DMA buffer pointer is incremented, which occurs whenever a new telecom sample is read from and/or written to the telecom DMA buffer. LSNDCLIPINT: Issues an interrupt whenever the amplitude of the left channel sound data is clipping the codec A/D converter for SIB subframe 1. RSNDCLIPINT: Issues an interrupt whenever the amplitude of the right channel sound data is clipping the codec A/D converter for SIB subframe 1. VALSNDPOSINT: Issues an interrupt whenever the valid sound status flag transitions from a logic “0” to a logic “1”. This valid flag is triggered from SIB subframe 0 (if SELSNDSF1 = “0”) or from SIB subframe 1 (if SELSNDSF1 = “1”). VALSNDNEGINT: Issues an interrupt whenever the valid sound status flag transitions from a logic “1” to a logic “0”. This valid flag is triggered from SIB subframe 0 (if SELSNDSF1 = “0”) or from SIB subframe 1 (if SELSNDSF1 = “1”). VALTELPOSINT: Issues an interrupt whenever the valid telecom status flag transitions from a logic “0” to a logic “1”. This valid flag is triggered from SIB subframe 0 (if SELTELSF1 = “0”) or from SIB subframe 1 (if SELTELSF1 = “1”). 13-17 Chapter 13 SIB Module VALTELNEGINT: Issues an interrupt whenever the valid telecom status flag transitions from a logic “1” to a logic “0”. This valid flag is triggered from SIB subframe 0 (if SELTELSF1 = “0”) or from SIB subframe 1 (if SELTELSF1 = “1”). SNDININT: Issues an interrupt whenever a valid sound input longword (32 bits) is available from the Sound RX Holding Register; this also means a valid sound output longword can be written to the Sound TX Holding Register. TELININT: Issues an interrupt whenever a valid telecom input longword (32 bits) is available from the Telecom RX Holding Register; this also means a valid telecom output longword can be written to the Telecom TX Holding Register. SIBSF0INT: Issues an interrupt at the start of every SIB subframe 0. This is used to initiate CPU reading of the SIB Subframe 1 Status Register (SF1STAT Register) and/or CPU writing of the SIB Subframe 0 Control Register (SF0AUX Register). SIBSF1INT: Issues an interrupt at the start of every SIB subframe 1. This is used to initiate CPU reading of the SIB Subframe 0 Status Register (SF0STAT Register) and/or CPU writing of the SIB Subframe 1 Control Register (SF1AUX Register). SIBIRQPOSINT: Issues an interrupt whenever the SIBIRQ pin transitions from a logic “0” to a logic “1”. SIBIRQNEGINT: Issues an interrupt whenever the SIBIRQ pin transitions from a logic “1” to a logic “0”. 13-18 Chapter 13 SIB Module 13.6 SIB Registers 13.6.1 SIB Size Register OFFSET = $060: Bit 31-30 29-18 17-14 13-2 1-0 write-only Label Reserved SNDSIZE[13:2] Reserved TELSIZE[13:2] Reserved SNDSIZE[13:2]: RESET Read/Write X W X W write-only These bits define the size of the sound DMA buffers (16 Kbytes maximum). Both the sound RX buffer and the sound TX buffer are the same size. The last address in the sound RX DMA buffer is given by SNDRXSTART[31:2] + SNDSIZE[13:2]. The last address in the sound TX DMA buffer is given by SNDTXSTART[31:2] + SNDSIZE[13:2]. The value loaded into SNDSIZE should be equal to the desired buffer length −1. Note that this register is write only. TELSIZE[13:2]: write-only These bits define the size of the telecom DMA buffers (16 Kbytes maximum). Both the telecom RX buffer and the telecom TX buffer are the same size. The last address in the telecom RX DMA buffer is given by TELRXSTART[31:2] + TELSIZE[13:2]. The last address in the telecom TX DMA buffer is given by TELTXSTART[31:2] + TELSIZE[13:2]. The value loaded into TELSIZE should be equal to the desired buffer length −1. Note that this register is write only. 13.6.2 SIB Sound RX Start Register OFFSET = $064: Bit 31-2 1-0 SNDRXSTART[31:2]: write-only Label SNDRXSTART[31:2] Reserved RESET Read/Write X W write-only These bits define the start address for the sound RX DMA buffer. The sound RX buffer and sound TX buffer can be configured to either reside in different memory spaces or share the same memory space (overlapping buffers for loopback purposes or for optimum memory allocation). 13-19 Chapter 13 SIB Module 13.6.3 SIB Sound TX Start Register OFFSET = $068: Bit 31-2 1-0 write-only Label SNDTXSTART[31:2] Reserved SNDTXSTART[31:2]: RESET Read/Write X W write-only These bits define the start address for the sound TX DMA buffer. The sound RX buffer and sound TX buffer can be configured to either reside in different memory spaces or share the same memory space (overlapping buffers for loopback purposes or for optimum memory allocation). 13.6.4 SIB Telecom RX Start Register OFFSET = $06C: Bit 31-2 1-0 write-only Label TELRXSTART[31:2] Reserved TELRXSTART[31:2]: RESET Read/Write X W write-only These bits define the start address for the telecom RX DMA buffer. The telecom RX buffer and telecom TX buffer can be configured to either reside in different memory spaces or share the same memory space (overlapping buffers for loopback purposes or for optimum memory allocation). 13.6.5 SIB Telecom TX Start Register OFFSET = $070: Bit write-only Label 31-2 1-0 TELTXSTART[31:2]: TELTXSTART[31:2] Reserved RESET Read/Write X W write-only These bits define the start address for the telecom TX DMA buffer. The telecom RX buffer and telecom TX buffer can be configured to either reside in different memory spaces or share the same memory space (overlapping buffers for loopback purposes or for optimum memory allocation). 13-20 Chapter 13 SIB Module 13.6.6 SIB Control Register OFFSET = $074: Bit 31 30 29 28 27 26-24 23 22-16 15 14-8 7 6 5 4 3 2 1 0 SIBIRQ: Label SIBIRQ ENCNTTEST ENDMATEST SNDMONO RMONOSNDIN SIBSCLKDIV[2:0] TEL16 TELFSDIV[6:0] SND16 SNDFSDIV[6:0] SELTELSF1 SELSNDSF1 ENTEL ENSND SIBLOOP ENSF1 ENSF0 ENSIB RESET Read/Write – 0 0 X X X X X X X X X 0 0 0 0 0 0 R R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W read-only This bit provides the logic state of the SIBIRQ input pin. The SIBIRQ pin is active-high from TC35143. ENCNTTEST: This bit is used for IC testing and should not be set. ENDMATEST: This bit is used for IC testing and should not be set. SNDMONO: This bit is used to configure the sound input and output format for SIB subframe 1 as mono versus stereo. Setting this bit to a logic “1” selects mono mode. Clearing this bit to a logic “0” selects stereo mode. RMONOSNDIN: This bit is used to select left versus right channel as the mono sound source for SIB subframe 1, whenever the sound is configured as mono mode. Setting this bit to a logic “1” selects the right channel as the mono sound source. Clearing this bit to a logic “0” selects the left channel as the mono sound source. 13-21 Chapter 13 SIB Module SIBSCLKDIV[2:0]: These bits select the start count value and the stop count value for the 4-bit programmable counter used to generate SIBSCLK, which is derived by dividing down SIBMCLK; SIBSCLK is the serial bit clock used for the SIB. Since the MSB of the counter output is used for SIBSCLK, the start count and stop count values are chosen to provide (as close as possible) a 50% duty cycle SIBSCLK. The table used to compute these counter start and stop values are as follows: SIBSCLKDIV start value stop value divide-modulus 0 1 2 3 4 5 6 7 7 6 6 5 5 4 3 2 8 8 9 9 10 11 12 13 2 3 4 5 6 8 10 12 TEL16: This bit is used to configure the SIB telecom input and output format as 8-bit versus 16-bit mode. Setting this bit to a logic “1” selects 16-bit mode. Clearing this bit to a logic “0” selects 8-bit mode. TELFSDIV[6:0]: These bits select the divider modulus for the 7-bit programmable counter used to generate the telecom sample rate clock, which is derived by dividing down an internal SIB clock of rate equal to the 4 times the SIB frame rate or 2 times the SIB subframe rate (where each frame consists of 128 serial data bits). This programmable divider consists of a down-counter which counts down from TELFSDIV to zero, so the value loaded for TELFSDIV should be the desired divider modulus −1. For example, if SIBMCLK = 18.432 MHz and SIBSCLK = 9.216 MHz ( = SIBMCLK ÷ 2), in order to generate a telecom sample rate of 7.2 kHz, the value loaded for TELFSDIV should = 39, since 9.216 MHz ÷ (40 × 32) = 7.2 kHz. 13-22 Chapter 13 SIB Module SND16: This bit is used to configure the SIB sound input and output format as 8-bit versus 16-bit mode. Setting this bit to a logic “1” selects 16-bit mode. Clearing this bit to a logic “0” selects 8-bit mode. SNDFSDIV[6:0]: These bits select the divider modulus for the 7-bit programmable counter used to generate the sound sample rate clock, which is derived by dividing down an internal SIB clock of rate equal to the 4 times the SIB frame rate or 2 times the SIB subframe rate (where each frame consists of 128 serial data bits). This programmable divider consists of a down-counter which counts down from SNDFSDIV to zero, so the value loaded for SNDFSDIV should be the desired divider modulus −1. For example, if SIBMCLK = 18.432 MHz and SIBSCLK = 9.216 MHz (= SIBMCLK ÷ 2), in order to generate a sound sample rate of 24 kHz, the value loaded for SNDFSDIV should = 11, since 9.216 MHz ÷ (12 × 32) = 24 kHz. SELTELSF1: This bit is used to select between SIB subframe 0 and subframe 1 for the telecom data source and destination. Setting this bit to a logic “1” selects SIB subframe 1 as the telecom source. Clearing this bit to a logic “0” selects SIB subframe 0 as the telecom source. SELSNDSF1: This bit is used to select between SIB subframe 0 and subframe 1 for the sound data source and destination. Setting this bit to a logic “1” selects SIB subframe 1 as the sound source. Clearing this bit to a logic “0” selects SIB subframe 0 as the sound source. ENTEL: This bit is used to enable/disable telecom processing for the SIB module. Setting this bit to a logic “1” enables telecom processing. Clearing this bit to a logic “0” disables telecom processing. This bit should not be set until after the SIB module is setup, then ENSIB asserted. Special timing restrictions are required whenever an enable/disable command is sent to TC35143 and/or other external codec device (see Figure 13.3.3). First, after SIBSF0INT (if SELTELSF1 = “0”) or SIBSF1INT (if SELTELSF1 = “1”) is asserted, the CPU then writes a telecom codec enable command to TC35143 via the SF0AUX (if SELTELSF1 = “0”) or SF1AUX (if SELTELSF1 = “1”) register. The CPU then asserts ENTEL. Both of these CPU transactions must occur within the same SIB frame period, which is before the next SIBSF0INT (if SELTELSF1 = “0”) or SIBSF1INT (if SELTELSF1 = “0”). This ensures that the sample rate counters within the TMPR3911/12 and TC35143 are fully phase-synchronized. 13-23 Chapter 13 SIB Module ENSND: This bit is used to enable/disable sound processing for this SIB module. Setting this bit to a logic “1” enables sound processing. Clearing this bit to a logic “0” disables sound processing. This bit should not be set until after the SIB module is setup, then ENSIB asserted. Special timing restrictions are required whenever an enable/disable command is sent to TC35143 and/or other external codec device (see Figure 13.3.3). First, after SIBSF0INT (if SELSNDSF1 = “0”) or SIBSF1INT (if SELSNDSF1 = “1”) is asserted, the CPU then writes a sound codec enable command to TC35143 via the SF0AUX (if SELSNDSF1 = “0”) or SF1AUX (if SELSNDSF1 = “1”) register. The CPU then asserts ENSND. Both of these CPU transactions must occur within the same SIB frame period, which is before the next SIBSF0INT (if SELSNDSF1 = “0”) or SIBSF1INT (if SELSNDSF1 = “0”). This ensures that the sample rate counters within the TMPR3911/12 and TC35143 are fully phase-synchronized. SIBLOOP: This bit is used for IC testing and should not be set. Setting this bit to a logic “1” will cause the SIB serial transmitted data to be internally looped back to the SIB serial receive data path. The data is inverted when this mode is selected. Setting this bit to a logic “0” selects the normal SIBDIN pin as the SIB serial receive data source. ENSF1: This bit is used to enable/disable SIB subframe 1 processing. Setting this bit to a logic “1” enables SIB subframe 1. Clearing this bit to a logic “0” disables SIB subframe 1, causing the SIB serial transmitted data during this subframe to be zeroed and all received data during this subframe to not be processed by the SIB module. This bit should be set before ENSIB is asserted. ENSF0: This bit is used to enable/disable SIB subframe 0 processing. Setting this bit to a logic “1” enables SIB subframe 0. Clearing this bit to a logic “0” disables SIB subframe 0, causing the SIB serial transmitted data during this subframe to be zeroed and all received data during this subframe to not be processed by the SIB module. This bit should be set before ENSIB is asserted. ENSIB: This bit is used to enable/disable the SIB module. Setting this bit to a logic “1” enables the SIB module. Clearing this bit to a logic “0” disables the SIB module and keeps the module in a reset state but gives no effect on the SIB Control Register. 13-24 Chapter 13 SIB Module 13.6.7 SIB Sound TX Holding Register OFFSET = $078: Bit 31-0 write-only Label SNDTXHOLD[31:0] SNDTXHOLD[31:0]: RESET Read/Write X W write-only These bits represent the sound data to be transmitted. Sound data can be either written directly to this register by the CPU or transparently read from the sound TX DMA buffer to this register. This register should only be loaded by the CPU after the SNDININT interrupt is asserted. The sound and telecom data processing can be configured from among several possible formats (mono versus stereo and 8-bit versus 16-bit data formats); see Table 13.3.4 ∼ 13.3.3 for a summary of these formats. 13.6.8 SIB Sound RX Holding Register OFFSET = $078: Bit 31-0 read-only Label SNDRXHOLD[31:0] SNDRXHOLD[31:0]: RESET Read/Write – R read-only These bits represent the sound data to be received. Sound data can be either read directly from this register by the CPU or transparently written to the sound RX DMA buffer from this register. This register should only be read by the CPU after the SNDININT interrupt is set. The sound and telecom data processing can be configured from among several possible formats (mono versus stereo and 8-bit versus 16-bit data formats); see Table 13.3.4 ∼ 13.3.3 for a summary of these formats. 13.6.9 SIB Telecom TX Holding Register OFFSET = $07C: Bit 31-0 TELTXHOLD[31:0]: write-only Label TELTXHOLD[31:0] RESET Read/Write X W write-only These bits represent the telecom data to be transmitted. Telecom data can be either written directly to this register by the CPU or transparently read from the telecom TX DMA buffer to this register. This register should only be loaded by the CPU after the TELININT interrupt is asserted. The sound and telecom data processing can be configured from among several possible formats (mono versus stereo and 8-bit versus 16-bit data formats); see Table 13.3.4∼13.3.7 for a summary of these formats. 13-25 Chapter 13 SIB Module 13.6.10 SIB Telecom RX Holding Register OFFSET = $07C: Bit 31-0 read-only Label TELRXHOLD[31:0] TELRXHOLD[31:0]: RESET Read/Write – R read-only These bits represent the telecom data to be received. Telecom data can be either read directly from this register by the CPU or transparently written to the telecom RX DMA buffer from this register. This register should only be read by the CPU after the TELININT interrupt is set. The sound and telecom data processing can be configured from among several possible formats (mono versus stereo and 8-bit versus 16-bit data formats); see Table 13.3.4∼13.3.7 for a summary of these formats. 13.6.11 SIB Subframe 0 Control Register OFFSET = $080: Bit 31-0 Label SF0AUX[31:0] RESET Read/Write X R/W SF0AUX[31:0]: These bits represent the control data to be transmitted during SIB subframe 0. This register can be loaded by the CPU asynchronously with respect to the SIB frame timing (although special timing restrictions are required whenever an enable/disable command is sent to TC35143 and/or other external codec device). Whenever this register is not updated, the previous contents are transmitted during consecutive SIB frames. 13.6.12 SIB Subframe 1 Control Register OFFSET = $084: Bit 31-0 Label SF1AUX[31:0] RESET Read/Write X R/W SF1AUX[31:0]: These bits represent the control data to be transmitted during SIB subframe 1. This register can be loaded by the CPU asynchronously with respect to the SIB frame timing (although special timing restrictions are required whenever an enable/disable command is sent to TC35143 and/or other external codec device). Whenever this register is not updated, the previous contents are transmitted during consecutive SIB frames. 13-26 Chapter 13 SIB Module 13.6.13 SIB Subframe 0 Status Register OFFSET = $088: Bit 31-0 read-only Label SF0STAT[31:0] SF0STAT[31:0]: RESET Read/Write – R read-only These bits represent the status data to be read during SIB subframe 0. This register can be read by the CPU asynchronously with respect to the SIB frame timing. Whenever this register is not updated from TC35143 and/or other external codec device, the previous contents are transmitted during consecutive SIB frames. 13.6.14 SIB Subframe 1 Status Register OFFSET = $08C: Bit 31-0 read-only Label SF1STAT[31:0] SF1STAT[31:0]: RESET Read/Write – R read-only These bits represent the status data to be read during SIB subframe 1. This register can be read by the CPU asynchronously with respect to the SIB frame timing. Whenever this register is not updated from TC35143 and/or other external codec device, the previous contents are transmitted during consecutive SIB frames. 13.6.15 SIB DMA Control Register OFFSET = $090: Bit 31 30 29-18 17 16 15 14 13-2 1 0 Label SNDBUFF1TIME SNDDMALOOP SNDDMAPTR[13:2] ENDMARXSND ENDMATXSND TELBUFF1TIME TELDMALOOP TELDMALOOP[13:2] ENDMARXTEL ENDMATXTEL 13-27 RESET Read/Write 0 0 – 0 0 0 0 – 0 0 R/W R/W R R/W R/W R/W R/W R R/W R/W Chapter 13 SIB Module SNDBUFF1TIME: The sound DMA controller supports two buffer addressing modes depending on the state of this bit. When SNDBUFF1TIME is set to a logic “1”, the sound DMA controller will stop executing when it reaches the end of the DMA buffer. When SNDBUFF1TIME is cleared to a logic “0”, the sound DMA controller will loop back to the start of the DMA buffer when the end of the DMA buffer is reached and will continue operating in a continuous and circular manner. SNDDMALOOP: The sound DMA controller supports two full-duplex loopback modes depending on the state of this bit. When SNDDMALOOP is set to a logic “1”, the sound DMA controller issues RX DMA requests first, followed by TX DMA requests. This ordering allows an RX-to-TX immediate loopback via the DMA buffer. When SNDDMALOOP is cleared to a logic “0”, the sound DMA controller issues TX DMA requests first, followed by RX DMA requests. This ordering allows a single circular DMA buffer to be used for both TX and RX, if so desired. SNDDMAPTR[13:2]: read-only These bits provide the status of the sound DMA counter. ENDMARXSND: This bit enables the sound DMA receive function. Setting this bit to a logic “1” enables the DMA mode. Clearing this bit to a logic “0” disables the DMA mode. This bit should not be set until the SNDRXSTART, SNDTXSTART, and SIBSIZE registers are setup and the SIB module is enabled (ENSIB asserted) and ENSND is set. Either ENDMARXSND or ENDMATXSND or both can be set at a time since the sound DMA controller can support full duplex operation. ENDMATXSND: This bit enables the sound DMA transmit function. Setting this bit to a logic “1” enables the DMA mode. Clearing this bit to a logic “0” disables the DMA mode. This bit should not be set until the SNDRXSTART, SNDTXSTART, and SIBSIZE registers are setup and the SIB module is enabled (ENSIB asserted) and ENSND is set. Either ENDMARXSND or ENDMATXSND or both can be set at a time since the sound DMA controller can support full duplex operation. TELBUFF1TIME: The telecom DMA controller supports two buffer addressing modes depending on the state of this bit. When TELBUFF1TIME is set to a logic “1”, the telecom DMA controller will stop executing when it reaches the end of the DMA buffer. When TELBUFF1TIME is cleared to a logic “0”, the telecom DMA controller will loop back to the start of the DMA buffer when the end of the DMA buffer is reached and will continue operating in a continuous and circular manner. TELDMALOOP: The telecom DMA controller supports two full-duplex loopback modes depending on the state of this bit. When TELDMALOOP is set to a logic “1”, the telecom DMA controller issues RX DMA requests first, followed by TX DMA requests. This ordering allows an RX-to-TX immediate loopback via the DMA buffer. When TELDMALOOP is cleared to a logic “0”, the telecom DMA controller issues TX DMA requests first, followed by RX DMA requests. This ordering allows a single circular DMA buffer to be used for both TX and RX, if so desired. 13-28 Chapter 13 SIB Module TELDMAPTR[13:2]: read-only These bits provide the status of the telecom DMA counter. ENDMARXTEL: This bit enables the telecom DMA receive function. Setting this bit to a logic “1” enables the DMA mode. Clearing this bit to a logic “0” disables the DMA mode. This bit should not be set until the TELRXSTART, TELTXSTART, and SIBSIZE registers are setup and the SIB module is enabled (ENSIB asserted) and ENTEL is set. Either ENDMARXTEL or ENDMATXTEL or both can be set at a time since the telecom DMA controller can support full duplex operation. ENDMATXTEL: This bit enables the telecom DMA transmit function. Setting this bit to a logic “1” enables the DMA mode. Clearing this bit to a logic “0” disables the DMA mode. This bit should not be set until the TELRXSTART, TELTXSTART, and SIBSIZE registers are setup and the SIB module is enabled (ENSIB asserted) and ENTEL is set. Either ENDMARXTEL or ENDMATXTEL or both can be set at a time since the telecom DMA controller can support full duplex operation. 13-29 Chapter 13 SIB Module 13-30 Chapter 14 SPI Module 14. SPI Module 14.1 Overview The SPI is a serial interface consisting of clock, data out, and data in. The SPI is used to interface to devices such as serial power supplies, serial A/D converters, and other devices that contain simple serial clock and data interfaces. The TMPR3911/12 only supports master mode and generates the SPI clock to the slaves. Multiple slave devices can share the SPI by using a unique chip select for each slave device. The chip select can be generated using one of the general purpose I/O ports on the TMPR3911/12 or TC35143, or using some other output port available in the system. When a device is selected by asserting it’s chip select, the device will shift data in using the SPICLK and SPIOUT signals and the device will shift data out using the SPIIN signal. When a device is not selected then the data output connected to SPIIN must be tri-stated so other devices can share the SPIIN signal. The SPI Module contains registers which provide programmability for SPICLK rate, MSB first versus LSB first, clock polarity, data phase polarity, and byte mode versus word mode operation. 14.1.1 Related Pins SPICLK: OUTPUT This pin is used to clock data in and out of the slave device. SPIOUT: OUTPUT This pin contains the data that is shifted into the slave device. SPIIN: INPUT This pin contains the data that is shifted out of the slave device. 14-1 Chapter 14 SPI Module 14.2 Description 14.2.1 Block Diagram SPIOUT Data From CPU 16 Bit Transmitter Holding Register 16 Bit Shift Register 16 Bit Receiver Holding Register SPIIN Data To CPU Baud Rate Generator Inter Character Delay Counter Interrupt Logic Figure 14.2.1 SPI Block Diagram The SPI Module primarily consists of a 16-bit Shift Register, a 16-bit Transmitter Holding Register, a 16-bit Receiver Holding Register, a Baud Rate Generator, an Inter Character Delay Counter, and Interrupt Logic. A block diagram of the SPI Module is shown in Figure 14.2.1. 14.2.2 Baud Rate Generator The rate of the SPICLK signal is determined by the value of the BAUDRATE[3:0] bits in the SPI Control Register. The BAUDRATE[3:0] bits are used by the Baud Rate Generator to divide the SPI master clock generated by the Clock Module logic. The typical frequency of the SPI master clock is shown in the table below. Table 14.2.1 SPI Master clock frequency (fSPIMCLK) Main System clock frequency TMPR3912AU-92/XB-92 9.216 MHz 46.080 MHz fSYSCLK = 11.520 MHz, RF[1:0] = 00, SLOWBUS = 0 TMPR3911BU/BXB 5.8982 MHz 29.4912 MHz fSYSCLK = 7.3728 MHz, RF[1:0] = 00, SLOWBUS = 0 14-2 Comment Chapter 14 SPI Module 14.2.3 Transmitter/Receiver The SPI Module is kept in a reset state until the ENSPI bit is set in the SPI Control Register. Before setting the ENSPI bit, all other control bits in the SPI Control Register should be set to the desired values. Once the ENSPI bit is set, the SPIBUFAVAILINT interrupt will be asserted to indicate that the SPI Transmitter Holding Register is available. The SPI logic will then wait until the software writes to the SPI Transmitter Holding Register. Once the software writes to the Transmitter Holding Register then the contents will be transferred to the Shift Register and shifted out to the slave device. While data is shifting out to the slave device using the SPIOUT signal, data will shift in using the SPIIN signal. Once the data has finished shifting, the contents of the Shift Register will be loaded into the Receiver Holding Register and the SPIRCVINT Interrupt will be asserted to indicate that there is valid receive data in the Receiver Holding Register. Once the contents of the Transmitter Holding Register are transferred to the Shift Register, the SPIBUFAVAILINT interrupt is again asserted to indicate that the Transmitter Holding register is once again available. Therefore the software is supposed to do the following procedure every time it attempts to write data into the Transmitter Holding Register. 1) Check if SPIBUFAVAILINT is a logic “1”. If not, wait for its assertion. 2) Clear the SPIBUFAVAILINT status bit. 3) Write data into the Transmitter Holding Register. Thus, as long as the software can keep the Transmitter Holding Register serviced before the data shifts out of the Shift Register, the SPI can maintain seamless data transfer. If the software fails to keep up with the transfer rate, then the SPI will simply wait until the next data is written to the Transmitter Holding Register. At the end of every series of transmission the software is supposed to negate the chip select signal for the target device by the following procedure. 1) Check if SPIBUFAVAILINT is a logic “1”. If not, wait for its assertion. 2) Leave the SPIBUFAVAILINT status bit set (do not clear the bit). 3) Clear the SPIEMPTYINT status bit. 4) Wait for SPIEMPTYINT assertion. 5) Negate the chip select signal. 14-3 Chapter 14 SPI Module The SPI supports either 8-bit per character or 16-bit per character operation, as defined by the WORD bit in the SPI Control Register. The software can also select whether the MSB or LSB should shift first using the LSB control bit in the SPI Control Register. Another set of control bits (CLKPOL and PHAPOL) select the polarity of the SPICLK and determine whether data should be sampled on the rising or falling edge of the SPICLK. SPI timing is shown in Figure 14.2.2. SPICLK SPIOUT B7 B6 B5 B4 B3 B2 B1 B0 B7 B6 B5 B4 B3 B2 B1 B0 SPIIN B7 B6 B5 B4 B3 B2 B1 B0 B7 B6 B5 B4 B3 B2 B1 B0 8 Bit Data transfer non-seamless operation CLKPOL = 0, PHAPOL = 0, MSB first SPICLK SPIOUT B7 B6 B5 B4 B3 B2 B1 B0 B7 B6 B5 B4 B3 B2 B1 B0 SPIIN B7 B6 B5 B4 B3 B2 B1 B0 B7 B6 B5 B4 B3 B2 B1 B0 8 Bit Data transfer seamless operation CLKPOL = 0, PHAPOL = 0, MSB first SPICLK SPIOUT B15 B14 B13 B12 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 B15 B14 B13 SPIIN B15 B14 B13 B12 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 B15 B14 B13 16 Bit Data transfer seamless operation CLKPOL = 0, PHAPOL = 0, MSB first Figure 14.2.2 SPI Timing 14.2.4 CLKPOL/PHAPOL The CLKPOL and PHAPOL bits in the SPI Control Register determine the idle phase of SPICLK and the valid clock edge for sampling data. Figure 14.2.3 shows the four possible combinations. SPIOUT B7 B6 B5 B4 B3 B2 B1 B0 SPIIN B7 B6 B5 B4 B3 B2 B1 B0 SPICLK CLKPOL = 0 PHAPOL = 0 SPICLK CLKPOL = 0 PHAPOL = 1 SPICLK CLKPOL = 1 PHAPOL = 0 CLKPOL = 1 PHAPOL = 1 SPICLK Figure 14.2.3 CLKPOL/PHAPOL Timing 14-4 Chapter 14 SPI Module 14.2.5 Inter Character Delay Counter Sometimes it is desirable to guarantee a minimum time between groups of data. The Inter Character Delay Counter is used to provide delay between groups of data. If WORD mode is selected in the SPI Control Register, delay will be inserted after 16 bits of data are shifted. If WORD mode is not selected, delay will be inserted after 8 bits of data are shifted, as shown in Figure 14.2.4. Inter character delay is added by setting the DELAYVAL[3:0] bits to a value other than $0. The number stored in these bits will directly correspond to the number of SPICLK periods of delay that will be inserted between characters. A zero value for these bits will imply seamless operation and the SPI will shift data and provide clocks continuously as long as the software keeps up with the transmitter rate. SPICLK SPIOUT B7 B6 B5 B4 B3 B2 B1 B0 B7 B6 B5 B4 B3 B2 B1 B0 SPIIN B7 B6 B5 B4 B3 B2 B1 B0 B7 B6 B5 B4 B3 B2 B1 B0 8 Bit Data transfer seamless operation CLKPOL = 0, PHAPOL = 0, MSB first DELAYVAL[3:0] = 2 Figure 14.2.4 Inter Character Delay Timing 14.2.6 SPI Interrupts SPIBUFAVAILINT: This interrupt is set when the ENSPI bit is first asserted and subsequently when the contents of the SPI Transmitter Holding Register are transferred to the SPI Shift Register. This interrupt is used to indicate that the SPI Transmitter Holding Register is available to be written by the software. See Section 8 for information on how to read and clear interrupts. SPIERRINT: This interrupt is set whenever the SPI Transmitter Holding Register is written, but the SPIBUFAVAILINT has not set to indicate that the register is available. This interrupt serves as a overrun indication for the software. See Section 8 for information on how to read and clear interrupts. SPIRCVINT: This interrupt is whenever the contents of the SPI Shift Register are transferred to the SPI Receiver Holding Register. This interrupt is used to indicate that there is valid data in the SPI Receiver Holding Register to be read by the software. See Section 8 for information on how to read and clear interrupts. SPIEMPTYINT: This interrupt is set whenever the both the SPI Shift Register and the SPI Transmitter Holding Register are empty. This interrupt can be used by the software to determine when the SPI is idle. See Section 8 for information on how to read and clear interrupts. 14-5 Chapter 14 SPI Module 14.3 SPI Registers 14.3.1 SPI Control Register OFFSET = $160: Bit 31-18 17 16 15-12 11-8 7-6 5 4 3 2 1 0 SPION: Label Reserved SPION EMPTY DELAYVAL[3:0] BAUDRATE[3:0] Reserved PHAPOL CLKPOL Reserved WORD LSB ENSPI RESET Read/Write 0 1 X X R R R/W R/W 0 0 R/W R/W 0 0 0 R/W R/W R/W read-only When the ENSPI bit is disabled, the SPI will not shut down until the Transmitter Holding Register and Shift Register are both empty, in order to make sure that any data still in the SPI is shifted out. This status bit allows the software to know when the module has shut down as a result of clearing the ENSPI control bit. EMPTY: read-only This bit is asserted if both the Transmitter Holding Register and Shift Register are empty and the Inter Character Delay Counter is finished inserting delay. This status bit allows the software to know when the SPI is idle. DELAYVAL[3:0]: These bits define the number SPICLK periods of delay to insert between 16-bit or 8-bit characters, depending on whether WORD mode is selected or not. The value of these bits directly corresponds to the number of SPICLK periods of delay. Thus, a value of $0 will provide seamless operation with no inter character delay. 14-6 Chapter 14 SPI Module BAUDRATE[3:0]: These bits define the rate of the SPICLK. These bits divide the SPI master clock to generate the desired SPICLK rate, as given by the following equation (fSPIMCLK is the frequency of the SPI master clock.): SPICLK Rate = fSPIMCLK BAUDRATE[3 :0]* 2 + 2 PHAPOL: Setting this bit will cause the transmitter to clock data out on the rising edge of SPICLK, to be sampled by the peripherals on the falling edge of SPICLK. CLKPOL: Setting this bit will cause the SPICLK signal to idle high instead of low. WORD: Setting this bit will cause the SPI to shift 16 bits of data in and out. If this bit is cleared, 8 bits of data are shifted. LSB: Setting this bit will cause the data to be shifted out to the slave devices and in from the slave devices LSB-first instead of MSB-first. ENSPI: Setting this bit will enable the SPI Module. This bit should only be set after all other control bits have been set to the desired values. When this bit is cleared, the SPI will remain active until the Shift Register and Transmitter Holding Register are both empty. Once both registers are empty, the SPI will shut down and all the logic will be held in a reset state but gives no effect on the SPI Control Register. 14.3.2 SPI Transmitter Holding Register OFFSET = $164: Bit 31-16 15-0 TXDATA[15:0]: write-only Label Reserved TXDATA[15:0] RESET Read/Write X W write-only These bits are the data that is loaded into the Transmitter Holding Register. This register should only be loaded after the SPIBUFAVAILINT interrupt is asserted. If WORD mode is not set, only bits 7:0 are valid. 14-7 Chapter 14 SPI Module 14.3.3 SPI Receiver Holding Register OFFSET = $164: Bit 31-16 15-0 RXDATA[15:0]: read-only Label Reserved RXDATA[15:0] RESET Read/Write X R read-only These bits are the receive data in the Receiver Holding Register. The bits are only valid after the SPIRCVINT interrupt is asserted. If WORD mode is not set, only bits 7:0 are valid. 14-8 Chapter 15 Timer Module 15. Timer Module 15.1 Overview The Timer Module consists of two portions. The first is a 40-bit Real Time Clock (RTC) counter that uses a 32.768 kHz clock. The counter will provide a maximum count of 388 days. Also included is a 40-bit alarm register for the RTC that allows the software to set an alarm at any desired count of the RTC counter. The RTC will generate two interrupts for the CPU. The first is the ALARMINT that will generate an interrupt whenever the RTC reaches the value set by the alarm. The second is the RTCINT that will generate an interrupt whenever the RTC counter “rolls over” after reaching a count of 388 days. The second portion of the Timer Module is the Periodic Timer used by the software to generate periodic interrupts for monitoring system events. The Periodic Timer uses the TIMERCLK generated by the Clock Module, which is generated by dividing the CLK by 32. The Periodic Timer contains a programmable 16-bit counter. When enabled, the counter will count down and generate an interrupt (PERINT) whenever reaching a count of zero. 15.1.1 Related Pins C32KIN: INPUT This pin along with C32KOUT should be connected to a 32.768 kHz crystal. C32KOUT: OUTPUT This pin along with C32KIN should be connected to a 32.768 kHz crystal. BC32K: OUTPUT This pin is a buffered output of the 32.768 kHz clock. 15-1 Chapter 15 Timer Module 15.2 RTC 15.2.1 RTC Block Diagram The RTC consists of five 8-bit ripple counters, a 40-bit equality comparator, roll over detect logic and two interrupt flip-flops, as shown in Figure 15.2.1. ALARM(39:0) TC4 TC 8 Bit Ripple Counter TC3 TC 8 Bit Ripple Counter TC2 ALARMINT TC 8 Bit Ripple Counter = TC1 TC 8 Bit Ripple Counter TC0 TC C32K 8 Bit Ripple Counter TC4 TC3 TC2 RTCINT TC1 TC0 Figure 15.2.1 RTC Block Diagram 15-2 Chapter 15 Timer Module 15.2.2 RTC Description The RTC contains five 8-bit ripple counters connected in series. The first counter counts on each C32K clock, while each successive counter only counts when the previous count stage has reached a count of “$FF”. Once all the counters reach a count of “$FFFFFFFFFF”, the RTCINT interrupt will assert to indicate that the counter is “rolling over”. Given a 40-bit counter for the RTC and an input clock C32K of 32.768 kHz, the time until the RTCINT interrupt will assert is 388 days. The software can generate an alarm interrupt (ALARMINT) by setting the ALARM[39:0] bits in the Alarm Register. Whenever the RTC becomes equal to the value set in the Alarm Register, the ALARMINT will be triggered. The value of the RTC counter can be read via the RTC Register. The RTC counter is split into groups of five 8-bit counters to simplify IC testing. 15.2.3 RTC Interrupts RTCINT: This interrupt is set whenever all 40 bits of the RTC counter reach a value of “$FFFFFFFFFF” to alert the software that the counter is “rolling over”. See Section 8 for information on how to read and clear interrupts. ALARMINT: This interrupt is set whenever the RTC counter reaches a count that is equal to the value of the ALARM[39:0] bits set in the Alarm Register. See Section 8 for information on how to read and clear interrupts. 15-3 Chapter 15 Timer Module 15.3 Periodic Timer 15.3.1 Periodic Timer Block Diagram The Periodic Timer consists of a 16-bit down counter, along with a zero detect and an interrupt flipflop, as shown in Figure 15.3.1. 16-BIT DOWN COUNTER PERINT PERVAL[15:0] =0 TIMERCLK LD Figure 15.3.1 Periodic Timer Block Diagram 15.3.2 Periodic Timer Description The Periodic Timer is used by the software to generate periodic interrupts needed to monitor system events. The Periodic Timer contains a 16-bit down counter whose initial value is programmed by the software via the PERVAL[15:0] control bits in the Periodic Timer Register. The counter uses the TIMERCLK signal generated by the Clock Module as the clock for the counter. With a system clock of 36.864 MHz, the TIMERCLK will normally be set to 1.152 MHz. This implies a maximum Periodic Timer count duration of 56.89 ms with a granularity of 0.87 µs. The Periodic Timer is enabled by asserting the ENPERTIMER control bit in the Timer Control Register. Once enabled, the counter will load the PERVAL[15:0] control bits and down count to zero. Once the count of zero is reached, the PERINT interrupt is asserted and the counter re-loads the PERVAL[15:0] control bits. The value of the Periodic Timer counter can be read by the software via the PERCNT[15:0] status bits in the Periodic Timer Register. 15.3.3 Periodic Timer Interrupts PERINT: This interrupt is set whenever the Periodic Timer is enabled and the Periodic Timer counter reaches a count of zero. See Section 8 for information on how to read and clear interrupts. 15-4 Chapter 15 Timer Module 15.4 Timer Registers 15.4.1 RTC Register OFFSET = $140: Bit 31-8 7-0 read-only Label Reserved RTC[39:32] OFFSET = $144: Bit 31-0 RESET Read/Write X R RESET Read/Write X R read-only Label RTC[31:0] RTC[39:0]: read-only These bits provide the status of the 40-bit RTC counter. The software must read these bits twice and compare the values to ensure that the counter is not read while the counter is counting since the CPU clock is not synchronous with the RTC counter clock. If the result of the comparison is not equal, the software must read the register again to read the correct count value. 15.4.2 Alarm Register OFFSET = $148: Bit 31-8 7-0 Label Reserved ARARM[39:32] RESET Read/Write X R/W RESET Read/Write X R/W OFFSET = $14C: Bit 31-0 Label ARARM[31:0] ALARM[39:0]: Whenever the RTC counter reaches a count that is equal to these bits, the ALARMINT interrupt will be set. 15-5 Chapter 15 Timer Module 15.4.3 Timer Control Register OFFSET = $150: Bit 31-8 7 6 5 4 3 2 1 0 Label Reserved FREEZEPRE FREEZERTC FREEZETIMER ENPERTIMER RTCCLR TESTC8MS ENTESTCLK ENRTCTST RESET Read/Write 0 0 0 0 0 0 0 0 R/W R/W R/W R/W R/W R/W R/W R/W FREEZEPRE: Setting this bit will cause the lower 8 bits of the RTC counter to freeze. The lower 8 bits of the RTC counter are also used to generate an 8 ms reference signal for the IR Carrier Detect State Machine and the debouncers in the Power Module and I/O Module. Thus, setting this bit will also cause these modules to lose their 8 ms reference signal. This bit can be used by the software to freeze the RTC counter during software debugging. FREEZERTC: Setting this bit will cause the upper 32 bits of the RTC counter to freeze. This bit can be used by the software to freeze the RTC counter during software debugging. FREEZETIMER: Setting this bit will cause the Periodic Timer counter to freeze. This bit can be used by the software to freeze the Periodic Timer counter during software debugging. ENPERTIMER: Setting this bit will cause the Periodic Timer to load the PERVAL[15:0] control bits and begin down counting. The PERINT interrupt will only be asserted if this bit is enabled. RTCCLR: Setting this bit to a logic “1” will cause all 40 bits of the RTC counter to initialize to “$0000000000”. The RTC counter will stay cleared and the counter will not start counting until this bit is cleared back to a logic “0”. 15-6 Chapter 15 Timer Module TESTC8MS: Setting this bit will cause the 8 ms reference pulse used by the IR logic and the debouncer circuits to run at 61 µs instead of 8 ms. This bit is used for IC testing to speed up the counters and should normally never be set by the software. ENTESTCLK: Setting this bit will cause the 32 kHz input clock for the RTC counter to be driven by the TIMERCLK instead of the 32 kHz input pin. This bit is used for IC testing to speed up the amount of time needed to test the RTC counter and should normally never be set by the software. ENRTCTST: Setting this bit will cause all five of the 8-bit counters that comprise the RTC counter to count together. This provides a mechanism for fully exercising all the counters in a timely fashion for IC testing. The software may wish to set this bit in order to test the RTCINT interrupt since normally it would take 388 days to generate this interrupt. 15.4.4 Periodic Timer Register OFFSET = $154: Bit 31-16 15-0 Label PERCNT[15:0] PERVAL[15:0] PERCNT[15:0]: RESET Read/Write X X R R/W read-only These bits provide the status of the Periodic Counter. The software should continually read this register until two consecutive reads provide the same value, in order to ensure that the register is not read while the counter is counting, since the TIMERCLK is not synchronous with the CPU clock. PERVAL[15:0]: These bits are loaded into the Periodic Timer counter when the counter is enabled or when the counter reaches a count of zero. The PERINT time is expressed by the following formula (fTIMERCLK is the frequency of the TIMERCLK). Interrupt Rate = PERVAL[15 :0]+ 1 fTIMERCLK 15-7 Chapter 15 Timer Module 15-8 Chapter 16 UART Module 16. UART Module 16.1 Overview The UART Module contains two identical, fully independent, full duplex UARTs: UARTA and UARTB. Each UART contains the following features: 16.1.1 • adjustable baud rate counter from 230 kHz down to 225 Hz • single buffered transmit register • double buffered receive register • DMA for either transmit or receive • full duplex • even, odd or no parity • 7 or 8 bits per character • one or two stop bits per character • pulse option mode to support IRDA Infrared protocol Related Pins TXD: OUTPUT This pin is the UART transmit signal from the UARTA module. RXD: INPUT This pin is the UART receive signal to the UARTA module. IROUT: OUTPUT This pin is the UART transmit signal from the UARTB module or the Consumer IR output signal if Consumer IR mode is enabled. IRIN: INPUT This pin is the UART receive signal to the UARTB module. 16-1 Chapter 16 UART Module 16.2 Overall Operation The operation of each UART is controlled through six registers: Control 1 Register, Control 2 Register, DMA Control 1 Register, DMA Control 2 Register, DMA Count Register, and Transmit/Receive Holding Register. 16.2.1 Power On/Off Each UART is powered on and off with the ENUART bit of the Control 1 Register. When the ENUART bit is cleared, the UART will power off only after all data in its transmit shift and holding registers has been clocked out. The on/off status of the UART can be monitored via the UARTON bit of the Control 1 Register. While powered off, the UART is completely disabled. In addition to being powered on, each UART must also have its clock enabled to operate. The UART clock enables, as well as the UART clock frequency, is controlled by the Clock Module (see Section 6). 16.2.2 Baud Rate and Communication Parameters The baud rate, bits per symbol (7 or 8), parity type (none, even, or odd), and line polarity (normal or inverted) apply to both the transmitter and receiver and may not be independently selected for each direction. All of these except the baud rate are selected with individual bits of the Control 1 Register (see Register Descriptions in Section 16.5). The baud rate for each UART is determined by the BAUDRATE value in the Control 2 Register and the UART clock frequency (fUARTCLK). The following equation determines the baud rate: Baud Rate = fUARTCLK ÷ ((BAUDRATE + 1) * 16) The UART clock frequency is determined by the Clock Module configuration (see Section 6). Table 16.2.1 shows the value that should be written to the BAUDRATE control bits to generate the standard baud rates. Table 16.2.1 Standard UART Baud Rates Baud rate BAUDRATE BAUDRATE BAUDRATE (when fUARTCLK = 1.8432 MHz) (when fUARTCLK = 3.6864 MHz) (when fUARTCLK = 9.216 MHz) 115200 0 1 57600 1 2 9 38400 2 5 14 19200 5 11 29 9600 11 23 59 4800 23 47 119 2400 47 95 239 1200 95 191 479 600 191 383 959 300 383 767 1919 16-2 4 Chapter 16 UART Module 16.2.3 Interrupt Operation Each UART may be configured to generate CPU interrupts for a number of events. When any of these events occur, a corresponding status bit will be set in the Interrupt Status 2 Register (see Section 8 for details on the Interrupt Module). Table 16.2.2 lists the UART events that can generate interrupts. The entries are in terms of the mnemonic used in this document and the actual event. In the mnemonic the lower-case ‘n’ is replaced with ‘A’ for UARTA or ‘B’ for UARTB. Table 16.2.2 UART Interrupt Events mnemonic UARTnRXINT UARTnRXOVERRUNINT UARTnFRAMEERRINT UARTnBREAKINT UARTnPARITYERRINT UARTnTXINT UARTnTXOVERRUNINT UARTnEMPTYINT UARTnDMAFULLINT UARTnDMAHALFINT interrupting event receiver holding register becomes full receiver shift register becomes full when both holding register and PRXHOLD are full receiver does not detect stop bit-character not 0x0 receiver detects BREAK condition-character is 0x0 and no stop bit receiver detects parity bit error transmit holding register becomes empty transmit holding register written to when full transmit shift register becomes empty when holding register is also empty DMA controller reaches end of specified buffer DMA controller reaches half-way point in specified buffer While these events cause a bit to be set in Interrupt Status 2 Register, they will not cause an interrupt unless they are configured to do so. Interrupts are enabled through the Enable Interrupt 2 Register. Interrupt status bits are cleared through the Clear Interrupt 2 Register. Note that interrupt status bits are set and need to be cleared regardless of whether or not the interrupt is enabled. See Section 8 for more general information about the TMPR3911/12 interrupts. 16.2.3.1 Responding to Interrupt Status Bits When responding to an event (whether via interrupt or polling), it is important to clear the interrupt status bit before taking the action that will re-enable the event. This will ensure that an event will not be missed. For example, when the Receive Holding Register becomes full, the UARTnRXINT bit will get set. If the Receive Holding Register is read before the UARTnRXINT bit is cleared, it is possible that sometime after the Receive Holding Register becomes empty and before the UARTnRXINT bit is cleared, a second character will be transferred to the Receive Holding Register. This transfer will also cause the UARTnRXINT bit to be set. Obviously, if the CPU (still reacting to the first event) then clears the UARTnRXINT bit, the second event will be missed. As a result, the CPU will not be “aware” that the Receive Holding Register is full and an overrun interrupt will eventually occur. 16-3 Chapter 16 UART Module 16.2.3.2 Related Interrupts UARTARXINT: Issues an interrupt whenever the UARTA Receive Holding Register is loaded with data. UARTARXOVERRUNINT: Issues an interrupt if the UARTA Receive Holding Register is loaded twice before the interrupt is service. UARTAFRAMEERRINT: Issues an interrupt if the current data in the UARTA Receive Holding Register contains a frame error. UARTABREAKINT: Issues an interrupt if the current data in the UARTA Receive Holding Register is a break. UARTAPARITYERRINT: Issues an interrupt if the current data in the UARTA Receive Holding Register contains a parity error. UARTATXINT: Issues an interrupt if the UARTA Transmit Holding Register is available. UARTATXOVERRUNINT: Issues an interrupt if the UARTA Transmit Holding Register is written to when the Transmit Holding Register is not available. UARTAEMPTYINT: Issues an interrupt if the UARTA Transmit Holding Register and Transmit Shift Register are both empty. UARTADMAFULLINT: Issues an interrupt if the UARTA DMA counter reaches the end of the buffer. UARTADMAHALFINT: Issues an interrupt if the UARTA DMA counter reaches the mid point of the buffer. UARTBRXINT: Issues an interrupt whenever the UARTB Receive Holding Register is loaded with data. UARTBRXOVERRUNINT: Issues an interrupt if the UARTB Receive Holding Register is loaded twice before the interrupt is service. 16-4 Chapter 16 UART Module UARTBFRAMEERRINT: Issues an interrupt if the current data in the UARTB Receive Holding Register contains a frame error. UARTBBREAKINT: Issues an interrupt if the current data in the UARTB Receive Holding Register is a break. UARTBPARITYERRINT: Issues an interrupt if the current data in the UARTB Receive Holding Register contains a parity error. UARTBTXINT: Issues an interrupt if the UARTB Transmit Holding Register is available. UARTBTXOVERRUNINT: Issues an interrupt if the UARTB Transmit Holding Register is written to when the Transmit Holding Register is not available. UARTBEMPTYINT: Issues an interrupt if the UARTB Transmit Holding Register and Transmit Shift Register are both empty. UARTBDMAFULLINT: Issues an interrupt if the UARTB DMA counter reaches the end of the buffer. UARTBDMAHALFINT: Issues an interrupt if the UARTB DMA counter reaches the mid point of the buffer. 16.2.4 DMA Operation Each UART has one DMA channel which may be used with either the transmitter or the receiver. DMA operation involves specifying a memory buffer and enabling DMA. Once enabled, characters will flow either from the memory buffer to the transmitter, or from the receiver to the memory buffer. The memory buffer is specified in terms of its start address in physical address space, and its length in bytes. Note that the CPU must know the mapping between virtual and physical addresses. The start address must be written to the DMA Control 1 Register. The two LSBs are ignored, thereby forcing the buffer to begin on a long word boundary. The buffer length minus one must be written to the DMA Control 2 Register. Once the buffer has been specified, DMA may be enabled. This is done with either ENDMARX or ENDMATX in the Control 1 Register. Only one of these two bits should be set at any one time. Operation is undefined if both are set. Once enabled, UART DMA will begin. For the transmitter, this means that when the Transmit Holding Register becomes empty, the DMA controller will transfer a byte from the specified buffer to the Transmit Holding Register, and update its internal buffer pointer. For the receiver, this means that when the Receive Holding Register becomes full, the DMA controller will transfer a byte from the Receive Holding Register to the specified buffer, and update its internal buffer pointer. 16-5 Chapter 16 UART Module The ENDMALOOP control bit in the Control 1 Register determines when DMA will stop. If this bit is cleared, DMA will stop when the end of the buffer is reached. If this bit is set, the DMA controller will run continuously, looping back to the start of the buffer when the buffer end is reached. In either case, DMA can be explicitly halted by clearing the ENDMARX or ENDMATX bit. The DMA Count Register is a read-only register which contains the UART DMA controller’s buffer counter status. The counter counts up so that the value in this status register indicates how much of the buffer remains to be accessed (on this pass) by the DMA controller. There are two interrupt status bits associated with the DMA controller: UARTnDMAFULLINT and UARTnDMAHALFINT. These are set as the DMA controller buffer pointer reaches the end and the half-way point of the buffer. DMA STARTVAL CNTL REG UART CNTL 1 REG 30 ONE-TIME VS. CIRCULAR MODE CNT LOAD LOGIC Byte Enable Gen 2 16 4 Byte Enable DMA COUNT ADDR CNT 16 DMA LENGTH CNTL REG 16 ÷2 30 DMA ADDR CMP END-OF-BUFFER INTERRUPT CMP HALF-BUFFER INTERRUPT CONTROL FROM CPU Figure 16.2.1 UART DMA 16.2.5 Internal Loopback The LOOPBACK bit of the Control 1 Register, when set, places the UART in an internal loopback mode. When in this mode, the transmit and receive lines of the UART are internally tied together, the external transmit line is driven high, and the external receive line is ignored. This loopback mode is for testing purposes only. 16-6 Chapter 16 UART Module 16.3 Transmitter Operation Figure 16.3.1 shows a block diagram of the transmitter portion of each UART. Characters to be transmitted are written by the CPU to the Transmit Holding Register. This should only be done when the Transmit Holding Register is empty which is indicated by either the EMPTY bit of the Control 1 Register, or the UARTnTXINT interrupt. Writing a character to the Transmit Holding Register when it is not empty results in a transmitter overrun. The character in the Transmit Holding Register is transferred into the Transmit Shift Register when the Transmit Shift Register becomes empty. Transferred with the character is 1 start bit, 1 or 2 stop bits (depending on the setting of TWOSTOP in the Control 1 Register), and 0 or 1 parity bits (depending on the setting of ENPARITY and EVENPARITY in the Control 1 Register). Beginning at the next baud period following the transfer, the character is shifted out to the transmit line. The start bit is shifted first, followed by the LSB through MSB of the (7-bit or 8-bit) character, followed by the parity bit (if any), and ending with the stop bit(s). As the last stop bit is shifted out, the transmitter will load the next character from the Transmit Holding Register if one has been written. If the Transmit Holding Register is empty, the Transmit Shift Register will continue to shift out stop bits (logic level “1”) until a character is written by the CPU into the Transmit Holding Register. Depending on the configuration, as few as nine bits (7-bit characters, no parity, 1 stop bit), and as many as twelve bits (8-bit characters, parity enabled, 2 stop bits) are transmitted for every character. UART master clock 10-bit counter BAUDRATE[9:0] TXDATA[7:0] BREAK TWOSTOP BIT_7 ENPARITY ÷16 PULSEOPT1 PULSEOPT2 Transmit holding register pulse option generator (internal to receiver) Transmit shift register 2:1 mux parity generator LOOPBACK DTINVERT DISTXD EVENPARITY Figure 16.3.1 UART Transmitter 16-7 UARTTXD Chapter 16 UART Module 16.3.1 Transmitter Pulse Output Operation In normal operation (neither pulse option selected), the transmit line is tied directly to the Transmit Shift Register output. Each transmitted bit causes the transmit line to go high or low for a full baud period. To support the IRDA Infrared protocol, there are two pulse options which result in a modified signal on the output line. When either of these options are selected, transmitted zeros will cause the transmit line to go low for only a fraction of the baud period. Ones are transmitted normally. The difference between the two pulse option modes is the duration that the line will stay low for each transmitted zero. Pulse Option 1 (selected with PULSEOPT1 of the Control 1 Register) results in a duration of six UART clock cycles. The UART clock frequency is controlled by the Clock Module (see Section 6), When the UART clock frequency is 3.6864 MHz, the low pulse is 1.63 µs (= 6 ÷ 3.6864). Note that this duration is irrespective of the baud rate. Pulse Option 2 (selected with PULSEOPT2 of the Control 1 Register) results in a duration of 3/16 of the selected baud period. The mode of operation with both pulse options selected (both PULSEOPT1 and PULSEOPT2 asserted) is reserved for a future implementation. 16.3.2 Transmitter Disable Operation The transmit line may be disabled with the DISTXD bit of the Control 1 Register. In this mode the transmit line is held at logic level “0”. Otherwise, the transmitter operates normally as described above. 16.3.3 Transmitter BREAK Operation A BREAK may be transmitted by writing the value 0x100 to the Transmit Holding Register. The BREAK is transmitted after the character (if any) in the Transmit Shift Register is sent. The BREAK condition continues until explicitly terminated by the CPU. The CPU may continue to write the value 0x100 to the Transmit Holding Register in order to control the duration of the BREAK precisely. The BREAK condition is terminated when the CPU writes the value 0x00 to the Transmit Holding Register. 16.3.4 Transmitter Overrun The transmit overrun condition occurs if the CPU writes a character to the Transmit Holding Register when it is not empty. This condition is indicated by the UARTnTXOVERRUNINT interrupt status bit. The character in the Transmit Holding Register resulting from an overrun is undefined. 16-8 Chapter 16 UART Module 16.4 Receiver Operation Figure 16.4.1 shows a block diagram of the receiver portion of each UART. In normal operation, the receiver waits for a start bit on the receive line. One baud cycle after receiving the start bit, the next 7 or 8 bits (depending on BIT_7 in the Control 1 Register) are clocked into the Receive Shift Register. If parity is enabled (depending on ENPARITY and EVENPARITY in the Control 1 Register), the next bit is compared with the expected parity. As the stop bit is clocked in and checked, the assembled character is transferred from the Receive Shift Register to the PRXHOLD Register. The PRXHOLD Register is a buffer between the Receive Shift Register and the Receive Holding Register. The PRXHOLDFULL bit of the Control 1 Register, when asserted, indicates that the PRXHOLD Register is full. On the first UART clock period that the Receive Holding Register is empty and the PRXHOLD Register is full, the character is transferred to the Receive Holding Register. This transfer results in the RXHOLDFULL bit of the Control 1 Register and the UARTnRXINT interrupt status bit both asserting. BAUDRATE[9:0] UART master clock 10-bit counter PULSEOPT1 pulse PULSEOPT2 option (internal from transmitter) decoder UARTRXD DTINVERT LOOPBACK 2:1 mux BIT_7 ENPARITY EVENPARITY ENBREAKHALT receive logic: sync, parity & BREAK control receive shift register Figure 16.4.1 UART Receiver 16-9 receive buffer register PRXHO LD receive holding register RXDATA[7:0] Chapter 16 UART Module 16.4.1 Receiver BREAK Operation The receiver detects a BREAK condition when the received character is 0x00 and there is no stop bit. When this occurs the receiver generates a UARTnBREAKINT interrupt. The interrupt does not assert until the BREAK character is transferred to the Receive Holding Register. In other words, the interrupt is held off until all characters preceding the BREAK are read by the CPU. Additionally, the operation of the receiver in response to a BREAK is affected by the ENBREAKHALT bit of the Control 1 Register. Normally (with the ENBREAKHALT bit cleared), the receiver will start receiving characters again as soon as a stop bit is detected on the line. However, if the ENBREAKHALT bit is set, the receiver shuts down until the BREAK character is read by the CPU from the Receive Holding Register. While shut down, the receiver ignores all data on the receive line. 16.4.2 Receiver Frame Error Condition A receiver frame error occurs when the receiver does not detect a stop bit following the character. This condition results in a UARTnFRAMEERRINT interrupt being generated. Like the UARTnBREAKINT interrupt, the interrupt is not asserted until the character associated with the frame error is transferred to the Receive Holding Register. 16.4.3 Receiver Overrun Condition A receiver overrun occurs when a character is received and both the PRXHOLD Register and Receive Holding Register are full. This condition occurs at the point that the stop bit of the new character is clocked in and results in a UARTnRXOVERRUNINT interrupt. The new character will overwrite the character in the PRXHOLD Register. Like the UARTnBREAKINT interrupt, the interrupt is not asserted until the character associated with the overrun error is transferred to the Receive Holding Register. 16.4.4 Receiver Parity Error Condition A receiver parity error occurs when parity is enabled and the receiver detects the wrong polarity of the bit following the character and preceding the stop bit. This condition results in a UARTnPARITYERRINT interrupt being generated. Like the UARTnBREAKINT interrupt, the interrupt is not asserted until the character associated with the parity error is transferred to the Receive Holding Register. 16.4.5 Receiver Pulse Operation In normal operation the received signal corresponds to the polarity of the data for the entire baud period. When the received signal is from a pulsed transmitter, zeros are low for only a fraction of the baud period. If either pulse option is selected (with PULSEOPT1 or PULSEOPT2 of the Control 1 Register) the receiver reconstructs the data stream by extending low pulses to the full baud period. 16-10 Chapter 16 UART Module 16.5 UART Registers 16.5.1 UART Control 1 Register OFFSET = $0B0: UARTA OFFSET = $0C8: UARTB Bit 31 30 29 28 27-16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 UARTON: Label UARTON EMPTY PRXHOLDFULL RXHOLDFULL Reserved ENDMARX ENDMATX TESTMODE ENBREAKHALT ENDMATEST ENDMALOOP PULSEOPT2 PULSEOPT1 DTINVERT DISTXD TWOSTOP LOOPBACK BIT_7 EVENPARITY ENPARITY ENUART RESET Read/Write 0 1 0 0 R R R R 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W read-only When the ENUART bit is disabled, the module will not shut down until the Transmit Holding Register and Transmit Shift Register are empty plus a couple of clocks. This bit provides the status as to whether the module is still enabled or not. 16-11 Chapter 16 UART Module EMPTY: read-only This bit is high if the Transmit Holding Register and Transmit Shift Register are both empty. PRXHOLDFULL: read-only The receive data path consists of an 8-bit shift register plus two 8-bit holding registers. Whenever the receiver finishes receiving a character, it will transfer the contents into the PRXHOLD Register. The contents of this register will then be loaded into the RXHOLD Register whenever this RXHOLD Register is empty. The RXHOLD Register is emptied by reading a byte from the Receive Holding Register. This PRXHOLDFULL bit provides status as to whether there is a valid byte of data in the PRXHOLD Register. RXHOLDFULL: read-only This bit provides the status of the RXHOLD Register. ENDMARX: This bit enables the DMA receive function. This bit should not be set until the UARTDMACNTL1 and UARTDMACNTL2 Registers are setup and the module is enabled. Only one of ENDMARX or ENDMATX can be set at a time since there is only one DMA channel. ENDMATX: This bit enables the DMA transmit function. This bit should not be set until the UARTDMACNTL1 and UARTDMACNTL2 registers are setup, the module is enabled and the empty flag is set. Only one of ENDMARX or ENDMATX can be set at a time since there is only one DMA channel. TESTMODE: This bit is used for IC testing and should never be set. ENBREAKHALT: Setting this bit will cause the receiver to halt after receiving a break, until the Receive Holding Register is emptied and the UARTRXD signal goes to the marking state. Otherwise, the receiver will halt until the UARTRXD signal goes to the marking state without regard to the status of the Receive Holding Register. ENDMATEST: This bit is used for IC testing and should not be set. ENDMALOOP: The DMA controller supports two modes depending on the state of this bit. When ENDMALOOP is low, the DMA controller will stop executing when it reaches the end of the DMA buffer. When ENDMALOOP is high, the DMA controller will loop back to the start of the DMA buffer when the end of the DMA buffer is reached and will continue operating. PULSEOPT2: Setting this bit will cause the transmitted data to pulse low for three baud clocks instead of the normal 16 baud clocks. Setting either this bit or PULSEOPT1 will cause the receiver to expect the data to be a pulsed input. 16-12 Chapter 16 UART Module PULSEOPT1: Setting this bit will cause the transmitted data to pulse low for a fixed six UART clocks instead of the normal 16 baud clocks. DTINVERT: Setting this bit will cause the UARTTXD and UARTRXD signals to be inverted. DISTXD: Setting this bit will cause the UARTTXD signal to go low. TWOSTOP: Setting this bit will cause the transmitter to transmit two stop bits instead of the normal one stop bit. LOOPBACK: Setting this bit will cause the transmitted data to internally loop back to the receive data. The UARTTXD pin is held high when this bit is set. BIT_7: Setting this bit selects 7-bit per character mode instead of 8-bit per character mode. EVENPARITY: Setting this bit selects even parity instead of odd parity, if the ENPARITY bit is set. ENPARITY: Setting this bit will cause parity to be generated and received. ENUART: Setting this bit will enable the UART Module. When this bit is cleared the module is kept in a reset state but clearing this bit gives no effect on the UART Control 1 Register. This bit should not be set until all other control bits are setup. 16-13 Chapter 16 UART Module 16.5.2 UART Control 2 Register OFFSET = $0B4: UARTA write-only OFFSET = $0CC: UARTB write-only <TMPR3911BU, TMPR3911BXB> Bit 31-10 9-0 Label RESET Read/Write X W RESET Read/Write X W Reserved BAUDRATE[9:0] <TMPR3912AU-92, TMPR3912XB-92> Bit 31-11 10-0 Label Reserved BAUDRATE[10:0] BAUDRATE[9:0] BAUDRATE[10:0]: write-only These bits define the baud rate of the transmitter and receiver. The following equation determines the baud rate: Baud Rate = fUARTCLK ÷ ((BAUDRATE + 1) * 16) 16.5.3 UART DMA Control 1 Register OFFSET = $0B8: UARTA write-only OFFSET = $0D0: UARTB write-only Bit 31-2 1-0 Label DMASTARTVAL[31:2] Reserved DMASTARTVAL[31:2]: RESET Read/Write X W write-only These bits define the start address (physical address) for the DMA buffer. 16.5.4 UART DMA Control 2 Register OFFSET = $0BC: UARTA write-only OFFSET = $0D4: UARTB write-only Bit 31-16 15-0 DMALENGTH[15:0]: Label Reserved DMALENGTH[15:0] RESET Read/Write X W write-only These bits define the length of the DMA buffer. The DMALENGTHH field should be loaded with a value equal to “desired buffer length – 1”. The last address in the DMA buffer is given by DMASTARTVAL[31:2] + DMALENGTH[15:0]. 16-14 Chapter 16 UART Module 16.5.5 UART DMA Count OFFSET = $0C0: UARTA read-only OFFSET = $0D8: UARTB read-only Bit 31-16 15-0 Label Reserved DMACNT[15:0] DMACNT[15:0]: RESET Read/Write X R RESET Read/Write X X W W read-only These bits provide the status of the DMA counter. 16.5.6 UART Transmit Holding Register OFFSET = $0C4: UARTA write-only OFFSET = $0DC: UARTB write-only Bit 31-9 8 7-0 Label Reserved BREAK TXDATA[7:0] BREAK: write-only Setting this bit, along with writing $00 to TXDATA[7:0], will cause a break to be generated. The break will continue until this bit is cleared, along with TXDATA[7:0] maintained at $00. This register should only be loaded after the UARTTXINT interrupt is set. The break will flow through the Transmit Holding Register, thus it will not start the break until the current character that is being transmitted from the Transmit Shift Register is finished. TXDATA[7:0]: write-only These bits are the data to be transmitted. This register should only be loaded after the UARTTXINT interrupt is set. For 7-bit mode, only bits 6:0 are valid. 16.5.7 UART Receiver Holding Register OFFSET = $0C4: UARTA read-only OFFSET = $0DC: UARTB read-only Bit 31-8 7-0 RXDATA[7:0]: Label Reserved RXDATA[7:0] RESET Read/Write X R read-only These bits are the receive data. The bits are valid after the UARTRXINT interrupt is set or when the RXHOLD flag is asserted. For 7-bit mode, only bits 6:0 are valid. 16-15 Chapter 16 UART Module 16-16 Chapter 17 Video Module 17. Video Module 17.1 Overview The Video Module within the TMPR3911/12 contains logic for transferring bit-mapped graphics data between a video buffer located in system memory to an external LCD. The LCD must be refreshed at a rate of 50 to 100 frames per second to maintain a steady picture on the display. Data is clocked into the LCD’s shift register using parallel data lines (4 or 8 bits wide). Once a horizontal line of data has been shifted into the shift register, this line of pixels is transferred to successive lines of the LCD panel. This sequence is repeated until all the lines of the display have been shifted and transferred, producing a full frame of display. At the end of the frame the pointers in the LCD return to the top of the display. Different LCD’s have different requirements on the number of horizontal and vertical pixels, the number of parallel lines required for the data interface, interface timing, and refresh rate. The Video Module inside the TMPR3911/12 is programmable in order to support many different types of LCD’s. The Video Module also contains logic that produces 4-level or 16-level gray scale on a monochrome LCD using a time-based dithering algorithm. Also supported is an 8-bit per pixel color mode for interfacing to color LCD’s. 17.1.1 Related Pins FRAME: OUTPUT This pin is the frame synchronization pulse signal between the Video Module and the LCD, and is used by the LCD to return its pointers to the top of the display. The Video Module asserts FRAME after all the lines of the LCD have been shifted and transferred, producing a full frame of display. DF: OUTPUT This pin is the AC signal for the LCD. Since LCD plasma tends to deteriorate whenever subjected to a DC voltage, the DF signal is used by the LCD to alternate the polarity of the row and column voltages used to turn the pixels on and off. The DF signal can be configured to toggle on every frame or can be configured to toggle every programmable number of LOAD signals. LOAD: OUTPUT This pin is the line synchronization pulse signal between the Video Module and the LCD, and is used by the LCD to transfer the contents of it’s horizontal line shift register to the LCD panel for display. The Video Module asserts LOAD after an entire horizontal line of data has been shifted into the LCD. CP: OUTPUT This pin is the clock signal for the LCD. Data is pushed by the Video Module on the rising edge of CP and sampled by the LCD on the falling edge of CP. VDAT[3:0]: OUTPUT These pins are the data for the LCD. These signals are directly connected to the LCD for 4-bit non-split displays. For 4-bit split and 8-bit non-split displays, an external register is required to demultiplex the 4-bit data into the desired 8 parallel data lines needed for the LCD. 17-1 Chapter 17 Video Module DISPON: OUTPUT This pin is the display-on enable signal for the LCD. VIDDONE: OUTPUT This pin is used to externally synchronize events to periods when the video is not shifting. 17.2 Interface Requirements 17.2.1 Display Types The Video Module interface supports 3 types of LCD’s: 4-bit split, 4-bit non-split, and 8-bit non split. Figure 17.2.1 shows these 3 different display types for monochrome displays and Figure 17.2.2 shows these 3 different display types for color displays. A 4-bit split display uses 8 parallel data lines to shift data to both the upper and lower halves of the display simultaneously, with four bits of data shifted to the upper half and four bits of data shifted to the lower half. The end of frame is reached when each half of the display has been shifted and transferred. The Video Module within the TMPR3911/12 contains control logic which generates the appropriate video buffer addressing required for split displays (see Section 17.3.5). Since the TMPR3911/12 only provides 4 pins for video output data (VDAT[3:0]), an external 4-bit register is required to demultiplex the 4-bit data into the desired 8 parallel data lines (4 upper, 4 lower) needed for the LCD, as shown in Figure 17.2.4. A 4-bit non-split display uses 4 parallel data lines to shift data to successive single horizontal lines of the display at a time, until the entire frame has been shifted and transferred. No external register is required for this configuration; the 4 pins for video output data from the TMPR3911/12 can be directly connected to the LCD. An 8-bit non-split display uses 8 parallel data lines to shift data to successive single horizontal lines of the display at a time, until the entire frame has been shifted and transferred. This operates the same as the 4-bit non-split display, except that 8 parallel lines are shifted at a time instead of 4 parallel lines. As also required for the 4-bit split displays, an external 4-bit register is required to demultiplex the 4-bit video output data from the TMPR3911/12 into the desired 8 parallel data lines needed for the 8-bit nonsplit LCD, as shown in Figure 17.2.4. Monochrome displays require 1 bit of video data per pixel. Figure 17.2.1 shows the pixel ordering of the parallel data lines for the 3 types of monochrome displays. Color displays require 3 bits (red, green, and blue) of video data per pixel, resulting in a horizontal shift register of length 3 times the number of pixels per horizontal line. This RGB-tri is shifted to the LCD as consecutive bits via the parallel data lines. Figure 17.2.2 shows the RGB-tri and pixel ordering of the parallel data lines for the 3 types of color displays. 17-2 Chapter 17 Video Module 4-BIT SPLIT DISPLAY UD3 UD2 UD1 UD0 LD3 LD2 LD1 LD0 4-BIT NON-SPLIT DISPLAY UD3 UD2 UD1 UD0 8-BIT NON-SPLIT DISPLAY UD3 UD2 UD1 UD0 LD3 LD2 LD1 LD0 Figure 17.2.1 Monochrome Display Types 17-3 Chapter 17 Video Module 4-BIT SPLIT DISPLAY UD3 UD2 UD1 UD0 UD3 UD2 UD1 UD0 UD3 R1 G1 B1 R2 G2 B2 R3 G3 B3 ONE PIXEL UD3 UD2 UD1 UD0 UD3 UD2 UD1 UD0 UD3 R1 G1 B1 R2 G2 B2 R3 G3 B3 4-BIT NON-SPLIT DISPLAY UD3 UD2 UD1 UD0 UD3 UD2 UD1 UD0 UD3 R1 G1 B1 R2 G2 B2 R3 G3 B3 ONE PIXEL 8-BIT NON-SPLIT DISPLAY UD3 UD2 UD1 UD0 UD3 UD2 UD1 UD0 UD3 R1 G1 B1 R2 G2 B2 R3 G3 B3 ONE PIXEL Figure 17.2.2 Color Display Types 17-4 Chapter 17 Video Module 17.2.2 Timing Requirements Data is shifted from the TMPR3911/12 to the LCD using the VDAT[3:0] signals. The CP signal is used to clock the data into the LCD’s shift register. After each horizontal line of data has been shifted into the LCD’s shift register, the LOAD signal is asserted to cause the line to be displayed on the LCD panel. Then after all of the lines have been displayed, the FRAME signal is asserted to cause the LCD’s line pointer to start over at the top of the display. Figure 17.2.3 shows the various timing requirements for the LCD interface (the example shown is for 4-bit non-split displays). The DF signal provides an AC reference for the display. Since LCD plasma tends to deteriorate whenever subjected to a DC voltage, the DF signal is used by the LCD to alternate the polarity of the row and column voltages used to turn the pixels on and off. The DF signal can be configured to toggle on every frame (DFMODE = 0) or can be configured to toggle every programmable number of LOAD signals (DFMODE = 1), with this toggle period determined by the DFVAL[7:0] control register setting. Figure 17.2.3 shows an example for DFMODE = 0 and for DFMODE = 1 with DFVAL[7:0] = $1. The rate of the CP clock signal is controlled by the BAUDVAL[4:0] control register setting. The number of CP clock pulses per line busted between successive LOAD pulses is determined by the number of pixels per line programmed into the HORZVAL[8:0] control register. The VIDRATE[9:0] control register setting determines the frequency of the LOAD pulses, which corresponds to the video line rate. This line rate, along with the number of LCD lines programmed into the LINEVAL[9:0] control register, then determines the video frame rate. 17-5 Chapter 17 Video Module Full Frame Timing, DFMODE = 0 FRAME DF LOAD Line 1 Line 2 Line 3 Line 4 Line n-1 Line n Line 1 Full Frame Timing, DFMODE = 1, DFVAL[7:0] = $1 FRAME DF LOAD Line n-1 Line n Line 1 Line 1 Line 2 Line 3 Line 4 EXPANDED VIEW 1st Line Timing FRAME DF LOAD Line 1 Shifted During This Time CP EXPANDED VIEW Clock and Data Timing FRAME DF LOAD CP VDAT[3:0] Figure 17.2.3 LCD Timing 17-6 Chapter 17 Video Module As mentioned previously, since the TMPR3911/12 only provides 4 pins for video output data (VDAT[3:0]), an external 4-bit register is required to demultiplex the 4-bit data into the desired 8 parallel data lines needed for both 4-bit split and 8-bit non-split LCD’s, as shown in Figure 17.2.4. To support these configurations, the Video Module drives the VDAT output data in a time-multiplexed format, alternating 4 bits of upper data (UD) with 4 bits of lower data (LD) on successive data cycles. The UD data is latched using the external register with CP used as the register’s clock. Then, the LCD can clock in all 8 bits in parallel (UD plus LD, which are the VDAT signals directly connected to the LCD) using the falling edge of CP, as shown in Figure 17.2.5. 4 VDAT[3:0] 4B REG 4 4 LD(3:0) UD(3:0) CP CP LCD TMPR3911/12 Figure 17.2.4 External Register Configuration for 4-Bit Split and 8-Bit Non-Split Displays Clock and Data Timing, 4-bit Split or 8-bit Non-Split Displays FRAME DF LOAD CP UD LD UD LD UD LD UD LD UD LD UD LD VDAT[3:0] UD[3:0] latched with external register UD UD UD UD UD Figure 17.2.5 LCD Timing for 4-Bit Split and 8-Bit Non-Split Displays 17-7 UD Chapter 17 Video Module 17.3 Implementation 17.3.1 Block Diagram HORZVAL[8:0] HORIZONTAL COUNTER LINEVAL[8:0] LINE COUNTER VIDRATE[9:0] BAUDVAL[4:0] DFVAL[7:0] SPLT VS. NON-SPLIT MODE VIDEO STATE MACHINE DITHERING LINE COUNTERS DITHERING FRAME COUNTERS 4-BIT VS. 8-BIT MODE VIDBANK[31:20] VIDBASELO[19:4] VIDBASEHI[19:4] FIFOA DATA FROM DMA VIDEO DMA REQUEST CONTROL VIDEO HALT/FREEZE CONTROL CP, LOAD, DF, FRAME DMA ADDR GEN FIFOB VIDEO DMA ADDR 28 FIFOHI 32 FIFOLO 4 ✕ 32 1-BIT MONO DATA MUX ARRAY 2-BIT 2-BIT GRAY SCALE GRAY DATA LUT 4-BIT GRAY DATA 8-BIT COLOR LUT BLUESEL[15:0] GREENSEL[31:0] REDSEL[31:0] 3:1 MUX DITHER SELECTOR 8-BIT COLOR DATA MODE SELECT: 2-BIT GRAY VS. 4-BIT GRAY VS. 8-BIT COLOR 4 MODE SELECT: MONO VS. GRAY/COLOR DITHER PATTERNS Figure 17.3.1 Video Module Block Diagram 17-8 2:1 MUX VDAT Chapter 17 Video Module 17.3.2 Video State Machine The Video State Machine contains programmable logic which allows the TMPR3911/12 to support the different interface timing and rates commonly found in different LCD’s. This is implemented using several sets of programmable counters. The CP clock rate is controlled by the Baud Rate Counter, which is preloaded with the BAUDVAL[4:0] control register setting. This counter generates the baud clock by dividing down from the main video clock (which is the same rate as CLK). The Baud Rate Counter is free-running, except whenever the HALT or FREEZEFRAME conditions are asserted. The HALT condition occurs if the video DMA requests cannot be serviced fast enough by the memory subsystem. In this case, HALT is asserted and the video baud clock is stopped, such that video data will momentarily be stopped from being sent to the LCD. The FREEZEFRAME condition is asserted in response to the assertion of the ENFREEZEFRAME control bit. This causes the video baud clock to stop and the video to stop shifting cleanly at the end of the current frame. The actual CP clock signal is generated by gating the video baud clock with the valid shift period, as determined by the count output of the Horizontal Counter. The clock used to shift the video output data also depends on the display type (4-bit split, 4-bit non-split, or 8-bit non split), since the 4-bit split and 8-bit non split types require data to be shifted as twice the CP rate such that an external register can be used to demultiplex the 4-bit data into the desired 8 parallel data lines. The video line rate and LOAD pulse frequency is controlled by the Video Rate Counter, which is preloaded with the VIDRATE[9:0] control register setting. This counter generates the LOAD pulse by counting the programmed number of video baud clocks. In addition, setting the LOADDLY control bit will result in an additional baud clock delay to be inserted for the FRAME and CP signals with respect to the LOAD signal, as shown in Figure 17.3.2. Some LCD’s may require this timing restriction. The toggle rate of the DF signal is controlled by the DF Counter, which is preloaded with the DFVAL[7:0] control register setting. The DF Counter will count each time a LOAD pulse is generated. If the DFMODE control bit is set to logic “0”, the DF signal is configured to toggle on every frame. If the DFMODE control bit is set to logic “1”, the DF signal is configured to toggle every time the DF Counter rolls over. The FRAME pulse generation is controlled by both the Horizontal Counter and Line Counter (see Sections 17.3.3 and 17.3.4). Together, these counters determine the video frame rate. The FRAME pulse is asserted for a duration of the entire first line at a frequency of once per frame. 17-9 Chapter 17 Video Module Load Timing with LOADDLY = 0 (no delay) FRAME DF LOAD CP VDAT[3:0] Load Timing with LOADDLY = 1 (one baud clock delay) FRAME DF LOAD CP VDAT[3:0] Figure 17.3.2 LOADDLY Timing The Video State Machine also generates the video DMA request signals used to fetch the video image data from memory. Each data fetch sequence consists of one DMA request followed by 4 successive video DMA transactions, since video DMA data transfers are busted as 4 longwords (32 bits each) at a time from system memory to the FIFO buffers within the Video Module. The video DMA requests are initiated whenever the FIFO buffers are available to accept more data (see Section 17.3.6). 17.3.3 Horizontal Counter The Horizontal Counter is used to count the number of bits that are shifted (in a burst fashion) into the LCD’s line shift register. For each new line, the Horizontal Counter is preloaded with the HORZVAL[8:0] control register setting and counts each time the 4 bits (or 8 bits for 8-bit non-split LCD’s) of video output data are shifted out. The HORZVAL value should equal the horizontal size of the LCD divided by 4 (or 8 for 8-bit non-split LCD’s) −1. Thus, the 9-bit Horizontal Counter supports a maximum horizontal size of 2048 pixels. Each time the Video Rate Counter reaches it’s terminal count, the Video State Machine asserts the LOAD pulse in order to transfer the entire line shift register contents to the LCD panel. Thus, the Video Rate Counter preload value VIDRATE[9:0] should be configured with a value greater than the Horizontal Counter preload value HORZVAL[8:0] in order to load the entire line shift register contents to the LCD after all the bits have been shifted into the line shift register. Figure 17.2.3 shows an example of the relative timing for the LOAD pulse versus the burst of CP clocks used to shift a horizontal line of data. 17-10 Chapter 17 Video Module 17.3.4 Line Counter The Line Counter is used to count the number of lines that are displayed by the LCD. Each time the Line Counter reaches it’s terminal count, the Video State Machine asserts the FRAME pulse in order to begin a new frame and cause the pointers in the LCD to return to the top of the display. For each new frame, the Line Counter is preloaded with the LINEVAL(9:0) control register setting and counts each time a LOAD pulse is generated. The LINEVAL value should equal the number of lines for the LCD −1. The 10-bit Line Counter supports a maximum vertical size of 1024 lines. 17.3.5 DMA Address Generation The DMA Address Generation circuit consists of logic which generates the address for fetching video data from the video buffer located in system memory. The video buffer can be relocated anywhere in memory (over the full 32-bit address space) by configuring the VIDBANK[31:20], VIDBASEHI[19:4], and VIDBASELO[19:4] control register settings. See Figure 17.3.3 for a block diagram of the video DMA address generation circuit. For a split LCD, the VIDBANK and VIDBASEHI bits are concatenated to provide the start address for the upper (HI) portion of the video buffer, while the VIDBANK and VIDBASELO bits are concatenated to provide the start address for the lower (LO) portion of the video buffer. For a non-split LCD, the VIDBANK and VIDBASEHI bits are concatenated to provide the start address for the video buffer. VIDBANK CNTL REG 12 CNT LOAD LOGIC VIDBASEHI CNTL REG 16 HI ADDR CNT 16 VIDADDHI[19:4] 12 VIDEO CMP VIDBASELO CNTL REG 2:1 MUX 16 16 CONTROL FROM CPU LO ADDR CNT 16 VIDADDLO[19:4] HI/LO SELECT (SPLIT MODE) Figure 17.3.3 Video DMA Address Generation 17-11 DMA ADDR Chapter 17 Video Module The DMA Address Generation circuit consists of 2 sets of counters, the HI Address Counter and the LO Address Counter, which generate the address for the HI and LO portions of the video buffer, respectively. Both of these counters are incremented whenever the video FIFO buffer is filled from a burst of DMA-initiated data transfers. For a split LCD, the VIDBANK and VIDADDHI bits are concatenated to provide the address for the upper (HI) portion of the video buffer, while the VIDBANK and VIDADDLO bits are concatenated to provide the address for the lower (LO) portion of the video buffer. A 2:1 multiplexer is used to select between these two combined addresses, depending on whether the current video data fetch is for a HI or LO portion of the buffer. For a non-split LCD, the VIDBANK and VIDADDHI bits are concatenated to provide the address for the video buffer. Figure 17.3.4 shows the DMA address fields for split and non-split display formats. Video data is fetch as a burst of 4 longwords at a time and takes advantage of the fast-page mode available for DRAM or SDRAM. SPLIT DISPLAY 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 VIDBANK[31:20] 8 7 6 5 4 VIDADDHI[19:4] 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 VIDBANK[31:20] 8 7 6 5 4 VIDADDLO[19:4] 3 2 1 0 0 0 0 0 3 2 1 0 0 0 0 0 3 2 1 0 0 0 0 0 NON-SPLIT DISPLAY 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 VIDBANK[31:20] VIDADDHI[19:4] 8 7 6 5 4 Figure 17.3.4 Video DMA Address Fields The VIDBANK control bits provide a bank location for the video buffer. The video bank can be located anywhere in memory over the full 32-bit address space, in increments of 1 MByte. These bits are latched at the beginning of each frame, making it possible to change these bits while the Video Module is active and have the video address switch to the new bank at the start of the next frame. In addition, the video buffer start address can be located anywhere within the 1 MByte bank, in increments of 16 bytes. The HI and LO Address Counters are both up-counters. Thus, VIDBASEHI must be configured to a lower value than VIDBASELO. The HI and LO Address Counters are reloaded with the VIDBASEHI and VIDBASELO values, respectively, whenever the HI Address Counter output VIDADDHI equals the VIDBASELO value. Therefore, VIDBASELO value must always be set to one address greater than the end address of the upper (HI) portion of the display. For non-split displays, the VIDBASELO value must always be set to one address greater than the end address of the display. 17-12 Chapter 17 Video Module 17.3.6 Video FIFO The Video Module contains several sets of First-In First-Out (FIFO) buffers to support video DMA burst data transfers. As shown in Figure 17.3.1, these FIFOs are organized as 4 sets of FIFOs. Each set of FIFOs is further subdivided into 4 latches (4 × 32-bits or a total of 128 bits wide). The first set of FIFOs is referred to as FIFOA. Video data is loaded one longword (32 bits) at a time from the memory subsystem consecutively into each of the 4 latches of FIFOA. FIFOA then feeds both FIFOB and FIFOLO, while FIFOB feeds FIFOHI, with all of these data transfers performed 128 bits in parallel at a time. For example, the 1st latch of FIFOA directly loads into the 1st latch of FIFOB, at the same time the 2nd latch of FIFOA directly loads into the 2nd latch of FIFOB, etc. FIFOHI and FIFOLO are used to separately buffer the video data for the upper (HI) and lower (LO) portions of a split display, if this mode is enabled. For a non-split display, FIFOLO is not used. In this mode, FIFOA accepts and buffers the 4-longword burst of data from the memory subsystem. Whenever FIFOA is full, and FIFOB is empty, the 4 longwords from FIFOA will then be transferred to FIFOB. Similarly, whenever FIFOA is full again and FIFOB is full, and FIFOHI is empty, the 4 longwords from FIFOB will then be transferred to FIFOHI. Then, the data is emptied from FIFOHI one longword at a time as the data is fetched for eventual shifting out to the LCD. For a split display, both FIFOHI and FIFOLO are used. In this mode, FIFOA accepts and buffers the 4-longword burst of data from the memory subsystem. Whenever FIFOA is full, and FIFOB is empty, the 4 longwords from FIFOA will then be transferred to FIFOB. Then whenever FIFOA and FIFOB are both full, and FIFOHI and FIFOLO are both empty, the 4 longwords from FIFOB will then be transferred to FIFOHI at the same time the 4 longwords from FIFOA are transferred to FIFOLO. This is the mechanism used for separately buffering the video data for the upper (HI) and lower (LO) portions of the split display. As explained in the previous section, the video DMA Address Generation logic ensures that the correct HI or LO buffer address is generated at the correct time. Finally, the data is emptied from FIFOHI or FIFOLO one longword at a time via a multiplexer array, based on whether the current output cycle corresponds to an upper or lower portion of the split display. 17-13 Chapter 17 Video Module 17.3.7 Gray Scale LUT The Video Module supports monochrome, 4-level or 16-level gray scale, and 8-bit per pixel color modes. The gray scale and color modes are implemented using a programmable lookup table (LUT) for selecting the shades of gray or color, followed by a programmable time-based dithering algorithm in the Dither Selector circuit. The monochrome mode bypasses these circuits and basically serializes the FIFOHI (and FIFOLO if a split display is used) output data into 4-bit streams for shifting to the LCD. The gray scale modes of the Video Module are implemented by varying the duty cycle (i.e., number of frames) for which a given pixel is turned on, giving the monochrome display an appearance of gray scale. In order to reduce the noticeable flicker caused by turning on and off adjacent pixels at the same time, a time-based dithering algorithm is used. Two gray scale modes are supported by the Video Module: 2-bit gray (4-level) or 4-bit gray (16level). Since the LUT used in the Video Module consists of 16 total entries or gray scales, the 4-bit gray scale processing path does not require a LUT (all 16 gray scales are available and used in this mode). The 4-bit gray scale mode requires that the number of bits stored in the video buffer is equal to 4 times the number of pixels, with each pixel corresponding to 4 consecutive data bits stored in the video buffer. Each set of these 4 gray scale bits maps to one pixel of dithered data generated by the Dither Selector. The 2-bit gray mode does use a LUT, which allows any 4 gray levels to be selected out of the 16 total possible gray levels. The 2-bit gray scale mode requires that the number of bits stored in the video buffer is equal to 2 times the number of pixels, with each pixel corresponding to 2 consecutive data bits stored in the video buffer. The 2-bit gray scale LUT uses the BLUESEL[15:0] control bits as the programmable LUT entries. The 16-bit BLUESEL field is divided into 4 nibbles: BLUESEL[15:12], BLUESEL[11:8], BLUESEL[7:4], and BLUESEL[3:0]. Each nibble then corresponds to one of the 4 gray scales selected out of 16 possible, with each 2 pre-gray-scale bits from memory used to lookup one of these 4 gray scales at a time (2 to 4 mapping). Figure 17.3.5 shows a block diagram of the 2-bit gray scale LUT logic. Each set of the 4 gray scale bits from the LUT output maps to one pixel of dithered data generated by the Dither Selector. LUT [15:12] [11:8] [7:4] [3:0] 3 2 1 0 2-BIT PRE-GREY SCALE RAW DATA (FROM MEMORY) (4) 4:1 MUX 4 SEL 2 16 BLUESEL[15:0] Figure 17.3.5 2-BIT Gray Scale LUT 17-14 2-BIT POST-GREY SCALE DATA Chapter 17 Video Module 17.3.8 Color LUT The Video Module supports an 8-bit per pixel color mode for interfacing to color LCD’s. The color mode generates 16 different shades using the time-based dithering algorithm. The 8-bits used per pixel are encoded into 3 bits of red (R), 3 bits of green (G), and 2 bits of blue (B). The color mode requires that 8 bits (3:3:2 for R:G:B) are stored in the video buffer for every RGB-tri (one pixel) of dithered data shifted to the color LCD. The color mode uses separate LUTs for red, green, and blue. The red LUT uses the REDSEL[31:0] control bits as the programmable LUT entries. The 32-bit REDSEL field is divided into 8 nibbles: REDSEL[31:28], REDSEL[27:24], … , REDSEL[7:4], and REDSEL[3:0]. Each nibble then corresponds to one of the 8 shades selected out of 16 possible, with each 3 pre-red bits from memory used to lookup one of these 4 shades at a time (3 to 4 mapping). The green LUT is identical to the red LUT, except the LUT uses the GREENSEL[31:0] control bits as the programmable LUT entries. The blue LUT uses the BLUESEL[15:0] control bits as the programmable LUT entries, and each LUT output nibble corresponds to one of the 4 shades selected out of 16 possible, with each 2 pre-blue bits from memory used to lookup one of these 4 shades at a time (2 to 4 mapping). Figure 17.3.6 shows a block diagram of the 8-bit per pixel color LUT logic. 17-15 Chapter 17 Video Module COLOR LUT [31:28] [27:24] [23:20] [19:16] [15:12] [11:8] [7:4] [3:0] 7 6 5 (4) 8:1 MUX 4 POST-RED DATA 4 3 2 1 0 SEL 3-BIT PRE-RED RAW DATA (FROM MEMORY) 3 [31:28] [27:24] [23:20] [19:16] [15:12] [11:8] [7:4] [3:0] 3-BIT PRE-GREEN RAW DATA (FROM MEMORY) [15:12] [7:4] [3:0] REDSEL[31:0] GREENSEL[31:0] BLUESEL[15:0] 6 5 (4) 8:1 MUX 4 POST-GREEN DATA 4 3 2 1 0 SEL 3 [11:8] 2-BIT PRE-BLUE RAW DATA (FROM MEMORY) 7 3 2 (4) 1 4:1 MUX 0 SEL 2 32 32 16 Figure 17.3.6 8-Bit Per Pixel Color LUT 17-16 4 POST-BLUE DATA Chapter 17 Video Module 17.3.9 Dithering The Dither Selector is based on a scheme which varies the duty cycle (i.e., number of frames) for which a given pixel is turned on, giving the display an appearance of multiple shades. In order to reduce the noticeable flicker caused by turning on and off adjacent pixels at the same time, a time-based dithering algorithm is used to vary the pattern of adjacent pixels every frame. A block diagram of the Dither Selector is shown in Figure 17.3.7. The Dither Selector contains a set of Dithering Line Counters and a set of Dithering Frame Counters. The set of Dithering Line Counters contains 4 counters which count modulo-3, modulo-4, modulo-5, and modulo-7 every horizontal line. The set of Dithering Frame Counters contains 4 counters which count modulo-3, modulo-4, modulo-5, and modulo-7 each video frame. The output of the Dithering Line Counters are used to lookup the programmable dither patterns configured in Video Control Registers 8 through 14, generating a 16-bit Enable Pattern. Each new line count looks up a different field of the appropriate Video Control Register, resulting in a time-varying and dithered pattern of on and off pixel control with the desired duty cycle. Section 17.4 lists recommended values for each of these dither patterns. The pre-dithered video data is processed by sending 16 adjacent bits at a time through 4 identical Enable Select circuits, each of which processes 4 bits of pre-dithered data. Each 4 bits of pre-dithered data is used to lookup one of the 16 possible enable patterns, which thus determine whether or not a given pixel is turned on or off for the given frame and line. Thus every 4 bits of pre-dithered data produces 1 bit of dithered data. Table 17.3.1 shows the duty cycle ratios used by the Enable Select circuits, which correspond to the 16 possible shades (of gray or color) available. Table 17.3.1 Dither Duty Cycles pre-dithered data nibble duty cycle 15 1 14 6/7 13 4/5 12 3/4 11 5/7 10 2/3 9 3/5 8 4/7 7 2/4 6 3/7 5 2/5 4 1/3 3 2/7 2 1/5 1 1/7 0 0 17-17 Chapter 17 Video Module 16-BIT PRE-DITHER DATA 4 ENABLE SELECT 1 4 ENABLE SELECT 1 4 ENABLE SELECT 1 4 ENABLE SELECT 1 16 1 16×4 bit DITHERING FRAME COUNTERS MOD-3 2 MOD-4 DITHERING LINE MOD-5 COUNTERS 2 MOD-7 3 3 ENABLE PATTERNS ENABLE LUT PRGM DITHER PATTERNS (FROM VIDEO CONTROL 8~14 REGISTERS) Figure 17.3.7 Dither Selector Block Diagram 17.3.10 Related Interrupts LCDINT: Issues an interrupt at the end of each video frame. DFINT: Issues an interrupt each time the video DF signal toggles. 17-18 4-BIT POST-DITHER DATA (1 NIBBLE OF VIDEO PIXELS) Chapter 17 Video Module 17.4 Video Registers 17.4.1 Video Control 1 Register OFFSET = $028: Bit 31-22 21 20-16 15-9 8 7-6 5 4 3 2 1 0 LINECNT[9:0]: Label LINECNT[9:0] LOADDLY BAUDVAL[4:0] VIDDONEVAL[16:0] ENFREEZEFRAME BITSEL[1:0] DISPSPLIT DISP8 DFMODE INVVID DISPON ENVID RESET Read/Write 0 0 X X 0 0 0 0 0 0 0 0 R R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W read-only These bits provide the status of the line counter. LOADDLY: Setting this bit will cause the FRAME and CP signals to be delayed by an additional baud clock relative to the LOAD signal. This is only required by some kinds of LCDs that have a long specification time between LOAD and CP. BAUDVAL[4:0]: These bits determine the rate of the CP clock. These bits must be set to a minimum of $1 and should be set to as high a value as possible to interface to the selected LCD. The following equation provides clock rate: CP Rate = fVIDCLK BAUDVAL[4 :0]* 2 + 2 VIDDONEVAL[6:0] These bits determine the time between the end of video shifting and the assertion of VIDDONE signal. These bits must be set to at least a valve of $1. Setting those bits to a valve of $1 will cause a delay from the video finishing shifting to the assertion of VIDDONE of six CLK periods (normally 162 ns). Each increment to these bits will provide an additional 16 CLK periods (normally 434 ns). ENFREEZEFRAME: Setting this bit will cause the Video logic to freeze at the end of the current frame. This feature is used to blip a single frame. The video logic will not start transferring data again until this bit is cleared and the ENVID bit is toggled. 17-19 Chapter 17 Video Module BITSEL[1:0]: These bits define the bit depth for the Video Module to generate according to the following: $3 8-bit per pixel Color Mode $2 4-bit per pixel Gray Scale Mode $1 2-bit per pixel Gray Scale Mode $0 Monochrome Mode DISPSPLIT: This bit should be set if interfacing to a split LCD. DISP8: This bit should be set if interfacing to an 8-bit non-split LCD. DFMODE: If this bit is a logic “0” then the DF signal will be toggled on each frame. If this bit is a logic “1” then the DF signal will toggle at the rate defined by the DFVAL (7:0) bits. INVVID: Setting this bit will cause the VDAT[3:0] signals to be inverted. DISPON: This bit is directly connected to the DISPON signal pin. ENVID: Setting this bit will enable the video logic. This bit should not be set until all other control bits are setup. 17-20 Chapter 17 Video Module 17.4.2 Video Control 2 Register OFFSET = $02C: write-only Bit Label 31-22 21 20-12 11-10 9-0 VIDRATE[9:0] Reserved HORZVAL[8:0] Reserved LINEVAL[9:0] VIDRATE[9:0]: RESET Read/Write X W X W X W write-only These bits determine the frequency at which the LOAD pulse is generated, which in turn sets the Frame Rate. The Line Rate and Frame Rate are given by the following equations: Line Rate = CP Rate VIDRATE[9 :0]+ 1 Frame Rate = LineRate LINEVAL[9 :0]+ 1 HORZVAL[8:0]: write-only These bits define the horizontal size of the LCD according to the following equation: HORZVAL = (HorzSize ÷ 4 − 1) for 4-bit split or non-split LCD HORZVAL = (HorzSize ÷ 8 − 1) for 8-bit non-split LCD LINEVAL[9:0]: write-only These bits define the number of lines for the LCD. LINEVAL = (#of Lines − 1) for a non-split LCD LINEVAL = (#of Lines ÷ 2 − 1) for a split LCD 17.4.3 Video Control 3 Register OFFSET = $030: Bit 31-20 19-4 3-0 VIDBANK[31:20]: write-only Label VIDBANK[31:20] VIDBASEHI[19:4] Reserved RESET Read/Write X X W W write-only These bits provide the upper bits of the address from which video data is fetched from memory. These bits are concatenated with the upper and lower address counters to provide the actual address. These bits are latched at the beginning of each frame, thus it is possible to change these bits “on the fly” and the address will not change until the beginning of the next frame. VIDBASEHI[19:4]: write-only These bits provide the start address for the upper address counter. 17-21 Chapter 17 Video Module 17.4.4 Video Control 4 Register OFFSET = $034: Bit 31-24 23-20 19-4 3-0 write-only Label DFVAL[7:0] FRAMEMASKVAL[3:0] VIDBASELO[19:0] Reserved DFVAL[7:0]: RESET Read/Write X X X W W W write-only These bits define the rate at which the DF signal will toggle if the DFMODE bit is set. The DF counter counts on each LOAD pulse, thus the DF Rate is given by the following equation: DF Rate = LineRate DFVAL[7 :0]+ 1 VIDBASELO[19:4]: write-only These bits provide the start address for the lower address counter. If a non-split LCD is used, these bits must be set to “1” plus the last address of the video buffer. FRAMEMASKVAL[3:0]: These bits determine the number of lines for which the VIDDONE signal will not assert following the assertion of the FRAME signal. If these bits are set to $0 then the VIDDONE signal will assert after every line completes shifting. Setting these bits to $1 will cause the VIDDONE signal to not assert after the line that immediately follows the assertion of the FRAME signal. Increases in these bits will cause subsequent lines to not assert the VIDDONE signal. Use of these bits allows the VIDDONE synchronization pulses to be generated away torn the periods after the video FRAM and DF transitions occur. 17-22 Chapter 17 Video Module 17.4.5 Video Control 5 Register OFFSET = $038: write-only Bit Label 31-0 REDSEL[31:0] REDSEL[31:0]: RESET Read/Write X W write-only The Video Module logic generates 16 different shades using a time-based dithering algorithm. The 8-bit per pixel color mode encodes 3 bits of Red, 3 bits of Green, and 2 bits of Blue. These bits define which of the sixteen shades each of the 8 possible red combinations will choose. In other words, 3 bits are expanded into 4 bits using these values as the lookup table. 17.4.6 3-BIT PRE-RED DATA 4-BIT POST-RED DATA 111 110 101 100 011 010 001 000 REDSEL[31:28] REDSEL[27:24] REDSEL[23:20] REDSEL[19:16] REDSEL[15:12] REDSEL[11:8] REDSEL[7:4] REDSEL[3:0] Video Control 6 Register OFFSET = $03C: write-only Bit Label 31-0 GREENSEL[31:0] GREENSEL[31:0]: RESET Read/Write X W write-only The Video Module logic generates 16 different shades using a time-based dithering algorithm. The 8-bit per pixel color mode encodes 3 bits of Red, 3 bits of Green, and 2 bits of Blue. These bits define which of the sixteen shades each of the 8 possible green combinations will choose. In other words, 3 bits are expanded into 4 bits using these values as the lookup table. 3-BIT PRE-GREEN DATA 4-BIT POST-GREEN DATA 111 110 101 100 011 010 001 000 GREENSEL[31:28] GREENSEL[27:24] GREENSEL[23:20] GREENSEL[19:16] GREENSEL[15:12] GREENSEL[11:8] GREENSEL[7:4] GREENSEL[3:0] 17-23 Chapter 17 Video Module 17.4.7 Video Control 7 Register OFFSET = $040: rite-only Bit Label 31-16 15-0 Reserved BLUESEL[15:0] BLUESEL[15:0]: RESET Read/Write X W write-only The Video Module logic generates 16 different shades using a time-based dithering algorithm. The 8-bit per pixel color mode encodes 3 bits of Red, 3 bits of Green, and 2 bits of Blue. These bits define which of the sixteen shades each of the 4 possible blue combinations will choose. In other words, 2 bits are expanded into 4 bits using these values as the lookup table. The BLUESEL values are also used as the LUT for the 2-bit gray scale mode. 17.4.8 2-BIT PRE-BLUE DATA 4-BIT POST-BLUE DATA 11 10 01 00 BLUESEL[15:12] BLUESEL[11:8] BLUESEL[7:4] BLUESEL[3:0] Video Control 8 Register OFFSET = $044: Bit 31-12 11-0 PAT2_3 [11:0]: write-only Label Reserved PAT2_3L[11:0] RESET X Read/Write W write-only These bits define the (2 out of 3) patterning for the dithering algorithm. The (1 out of 3) patterning for the dithering algorithm is the inverse of the (2 out of 3) patterning. LINE PATTERN FIELD RECOMMENDED PATTERN 0 1 2 PAT2_3[11:8] PAT2_3[7:4] PAT2_3[3:0] 0111 1101 1010 17-24 Chapter 17 Video Module 17.4.9 Video Control 9 Register OFFSET = $048: Bit 31-16 15-0 PAT3_4[15:0]: write-only Label PAT3_4[15:0] PAT2_4[15:0] RESET Read/Write X X W W write-only These bits define the (3 out of 4) patterning for the dithering algorithm. LINE PATTERN FIELD RECOMMENDED PATTERN 0 1 2 3 PAT3_4[15:12] PAT3_4[11:8] PAT3_4[7:4] PAT3_4[3:0] 0111 1101 1011 1110 PAT2_4[15:0]: write-only These bits define the (2 out of 4) patterning for the dithering algorithm. LINE PATTERN FIELD RECOMMENDED PATTERN 0 1 2 3 PAT2_4[15:12] PAT2_4[11:8] PAT2_4[7:4] PAT2_4[3:0] 1010 0101 1010 0101 17-25 Chapter 17 Video Module 17.4.10 Video Control 10 Register OFFSET = $04C: Bit 31-20 19-0 write-only Label Reserved PAT4_5[19:0] PAT4_5[19:0]: RESET Read/Write X W write-only These bits define the (4 out of 5) patterning for the dithering algorithm. The (1 out of 5) patterning for the dithering algorithm is the inverse of the (4 out of 5) patterning. LINE PATTERN FIELD RECOMMENDED PATTERN 0 1 2 3 4 PAT4_5[19:16] PAT4_5[15:12] PAT4_5[11:8] PAT4_5[7:4] PAT4_5[3:0] 0111 1101 1111 1011 1110 17.4.11 Video Control 11 Register OFFSET = $050: Bit 31-20 19-0 PAT3_5[19:0]: write-only Label Reserved PAT3_5[19:0] RESET Read/Write X W write-only These bits define the (3 out of 5) patterning for the dithering algorithm. The (2 out of 5) patterning for the dithering algorithm is the inverse of the (3 out of 5) patterning. LINE PATTERN FIELD RECOMMENDED PATTERN 0 1 2 3 4 PAT3_5[19:16] PAT3_5[15:12] PAT3_5[11:8] PAT3_5[7:4] PAT3_5[3:0] 0111 1010 0101 1010 1101 17-26 Chapter 17 Video Module 17.4.12 Video Control 12 Register OFFSET = $054: Bit 31-28 27-0 write-only Label Reserved PAT6_7[27:0] PAT6_7(27:0): RESET Read/Write X W write-only These bits define the (6 out of 7) patterning for the dithering algorithm. The (1 out of 7) patterning for the dithering algorithm is the inverse of the (6 out of 7) patterning. LINE PATTERN FIELD RECOMMENDED PATTERN 0 1 2 3 4 5 6 PAT6_7[27:24] PAT6_7[23:20] PAT6_7[19:16] PAT6_7[15:12] PAT6_7[11:8] PAT6_7[7:4] PAT6_7[3:0] 1111 1011 1111 1101 1111 1110 0111 17.4.13 Video Control 13 Register OFFSET = $058: Bit 31-28 27-0 PAT5_7[27:0]: write-only Label Reserved PAT5_7[27:0] RESET Read/Write X W write-only These bits define the (5 out of 7) patterning for the dithering algorithm. The (2 out of 7) patterning for the dithering algorithm is the inverse of the (5 out of 7) patterning. LINE PATTERN FIELD RECOMMENDED PATTERN 0 1 2 3 4 5 6 PAT5_7[27:24] PAT5_7[23:20] PAT5_7[19:16] PAT5_7[15:12] PAT5_7[11:8] PAT5_7[7:4] PAT5_7[3:0] 0111 1011 0101 1010 1101 1110 1111 17-27 Chapter 17 Video Module 17.4.14 Video Control 14 Register OFFSET = $05C: Bit 31-28 27-0 PAT4_7[27:0]: write-only Label Reserved PAT4_7[27:0] RESET Read/Write X W write-only These bits define the (4 out of 7) patterning for the dithering algorithm. The (3 out of 7) patterning for the dithering algorithm is the inverse of the (4 out of 7) patterning. LINE PATTERN FIELD RECOMMENDED PATTERN 0 1 2 3 4 5 6 PAT4_7[27:24] PAT4_7[23:20] PAT4_7[19:16] PAT4_7[15:12] PAT4_7[11:8] PAT4_7[7:4] PAT4_7[3:0] 1011 1001 1101 1100 0110 0110 0011 17-28 Chapter 18 Electrical Characteristics 18. Electrical Characteristics 18.1 Electrical Characteristics of TMPR3911BU/BXB 18.1.1 Absolute maximum ratings (TMPR3911BU/BXB) VSS = 0 V (GND) Parameter Symbol Rating Unit Supply voltage (I/O) VDD VSS − 0.5 to 4.5 V Supply voltage (Internal Logic) VDDL VSS − 0.5∼VDDH V VIN VSS − 0.5 to VDDH + 0.5 V TSTG −55 to 125 °C PD 1 W Input voltage Storage temperature Maximum dissipation (Ta = 70°C) Note: Using an LSI at specifications higher than the maximum ratings can cause permanent damage to the LSI. For normal operation, use under the recommended operating conditions. Exceeding the recommended operating conditions may affect the reliability of the LSI. 18.1.2 Recommended operating conditions (TMPR3911BU/BXB) VSS = 0 V (GND) Parameter Symbol Condition Min Typ. Max Unit Power Supply voltage VDDH 3.0 3.3 3.6 V Power Supply voltage VDDL 2.4 2.6 2.8 3.3 Input voltage (*1) VIH1 VDDH = 3.6 V VDDH × 0.8 VDDH + 0.3 V VIL1 VDDH = 3.0 V −0.3 VDDH × 0.1 V VIH2 VDDH = 3.6 V 2.4 VDDH + 0.3 V VIL2 VDDH = 3.0 V −0.3 0.6 V Input voltage (*2) fSYSCLK 4.5 7.3728 MHz C32K Input Frequency f32K 32.768 KHz Operating temperature TOPR −20 70 °C SYSCLK Input Frequency (*1) SYSCLKIN, DCLKIN, MBUSINT (*2) Other inputs 18-1 Chapter 18 Electrical Characteristics 18.1.3 DC characteristics (TMPR3911BU/BXB) (Ta = −20°C to 70°C, VDDH = 3.3 V ± 0.3 V, VDDL = 2.6 V ± 0.2 V) Parameter Operating current (1) Symbol Min Typ. Max Unit VIN = VDDH or VSS IOH = IOL=0 mA fSYSCLK = 7.3728 MHz 45 50 mA 88 95 IDDDVDDH VIN = VDDH or VSS IOH = IOL = 0 mA IDDDVDDL fSYSCLK = 7.3728 MHz 15 20 30 35 IDDVDDH IDDVDDL Doze Mode current Sleep Mode current Static current (2) (3) (4) Input Leakage current Output voltage Output voltage Output voltage Output voltage (5) (6) (7) (8) Input current (Pull-down resistor) Condition IDDS1VDDH VIN = VDDH or VSS IDDS1VDDL IOH = IOL = 0 mA 1 10 19 110 IDDS2VDDH VIN = VDDH or VSS IDDS2VDDL IOH = IOL = 0 mA 1 10 9 90 IIN mA µA µA −10 10 VDD − 0.6 V +0.4 V VDD − 0.6 V +0.4 V VDD − 0.6 V – +0.3 V VDD − 0.6 V VDDH = 3.0 V, IOL = 24 mA +0.4 V VDD = Max VIN = VDD 20 120 µA VIN = VDDH or VSS VOH1 VDDH = 3.0 V, IOH = −4 mA VOL1 VDDH = 3.0 V, IOL = 4 mA VOH2 VDDH = 3.0 V, IOH = −8 mA VOL2 VDDH = 3.0 V, IOL = 8 mA VOH3 VDDH = 3.0 V, IOH = −16 mA VOL3 VDDH = 3.0 V, IOL = 16 mA VOH4 VDDH = 3.0 V, IOH = −24 mA VOL4 IIHP µA (1) Based on TOSHIBA original benchmark program measurement. (2) CPU is stopped (STOPSPU = 1). Internal peripherals are running. (3) RTC is running. Internal peripherals are stopped. (4) RTC is stopped. Internal peripherals are stopped. (5) D[31;0], RAS0*, RAS1*, DCS0*, DCKE, DQMH, DQML, DREQ*, DGRNT*, BC32K, VDAT[3:0], CP, LOAD, DF, FRAME, DISPON, VIDDONE, PWRCS, TXD, RXD, CS3*-CS0*, CHIFS, CHICLK, CHIDOUT, CHIDIN, IO[6;0], SPICLK, SPIOUT, SPIIN, SIBSYNC, SIBDOUT, SIBMCLK, SIBCLK, RXPWR, IROUT, CARD1WAIT*, CARD2WAIT*, MIOX[2:0] (6) A[12:0], ALE, RD*, WE*, CAS3*-CAS0*, CARDREG*, CARDIOWR*, CARDIORD*, CARD1CSL*, CARD1CSH*, CARD2CSL*, CARD2CSH* (7) DCLKOUT (8) MBUSCLK, MBUSDATA 18-2 Chapter 18 Electrical Characteristics 18.1.4 Crystal oscillator characteristics (TMPR3911BU/BXB) 18.1.4.1 Crystal oscillator conditions (1) 7.3728 MHz crystal TMPR3911BU/BXB SYSCLKIN SYSCLKOUT X’tal COUT CIN Parameter Recommended value Symbol Min Max Unit Crystal Oscillator frequency fIN 4.5 7.3728 MHz External capacitors CIN, COUT 10 33 pF (2) 32.768 kHz crystal TMPR3911BU/BXB C32KIN C32KOUT Recommended 32.768 kHz Crystal KYOCERA CORPORATION: KF-38G X’tal COUT CIN Parameter External capacitors Recommended value Symbol CIN, COUT Min Max 10 33 Unit pF 18.1.4.2 Electrical specifications (VSS = 0 V, VDD = 3.3 V) Parameter Symbol Crystal stabilization time 7.3728 MHz TSTA-59M Crystal stabilization time 32 kHz TSTA-32k 18-3 Condition Min Typ. Max Unit T.B.D. T.B.D. ms T.B.D. T.B.D. s Chapter 18 Electrical Characteristics 18.1.5 TMPR3911BU/BXB Timing VDDH × 0.5 VDDH×0.5 Delay VDDH × 0.5 + 0.1 V VDDH × 0.5 – 0.1 V Outputs Setup Inputs 0.8VCC VDDH × 0.5 0.2VCC 18-4 Hold VDDH × 0.5 Chapter 18 Electrical Characteristics 18.1.6 AC characteristics (TMPR3911BU/BXB) The following operating conditions apply to all values specified in this section. Ta = −20 ºC to 70 ºC, VDDH = 3.3 ± 0.3 V, VDDL = 2.6 ± 0.2 V, External Capacitance = 40 pF <Memory Interface> Symbol Parameter Rising/Falling Min Max Unit t1 DCLKOUT high time 7.4 ns t2 DCLKOUT low time 7.4 ns t3 DCLKOUT period 16.9 ns t4 Delay DCLKOUT to ALE Rising 5 ns t5 Delay DCLKOUT to ALE Falling 3 ns t6 Delay DCLKOUT to A[12:0] 0 8 ns t7 Delay DCLKOUT to D[31:16] 8 ns t8 Delay DCLKOUT to D[15:0] 1 8 ns t9 Delay DCLKOUT to CS3-0* Rising 10 ns t10 Delay DCLKOUT to CS3-0* Falling 10 ns t11 Delay DCLKOUT to RD* Rising 8 ns t12 Delay DCLKOUT to RD* Falling 7 ns t13 Delay DCLKOUT to WE* Rising 0 5 ns t14 Delay DCLKOUT to WE* Falling 4 ns t15 Delay DCLKOUT to CAS3-0* Rising 0 2.5 ns t16 Delay DCLKOUT to CAS3-0* Falling 2.5 ns t17 Delay DCLKOUT to CARDxCSx* Rising 9 ns t18 Delay DCLKOUT to CARDxCSx* Falling 8 ns t19 Delay DCLKOUT to CARDDIR* Rising 12 ns t20 Delay DCLKOUT to CARDDIR* Falling 11 ns t21 Delay DCLKOUT to CARDREG* Rising 9 ns t22 Delay DCLKOUT to CARDREG* Falling 10 ns t23 Delay DCLKOUT to CARDIORD* Rising 10 ns t24 Delay DCLKOUT to CARDIORD* Falling 9 ns t25 Delay DCLKOUT to CARDIOWR* Rising 9 ns t26 Delay DCLKOUT to CARDIOWR* Falling 9 ns t27 Delay DCLKOUT to RAS0* Rising 0 6 ns t28 Delay DCLKOUT to RAS0* Falling 6 ns t29 Delay DCLKOUT to RAS1* Rising 1 8 ns t30 Delay DCLKOUT to RAS1* Falling 1 9 ns t31 Delay DCLKOUT to DQMH/L Rising 0 8 ns t32 Delay DCLKOUT to DQMH/L Falling 0 9 ns t33 Delay DCLKOUT to DCS0* Rising 1 7 ns t34 Delay DCLKOUT to DCS0* Falling 1 6 ns t35 Delay DCLKOUT to DCKE Rising 0 8 ns t36 Delay DCLKOUT to DCKE Falling 0 8 ns t37 Delay DCLKOUT to MCS3-0* Rising 10 ns t38 Delay DCLKOUT to MCS3-0* Falling 10 ns t39 D[31:16] to DCLKIN Setup time 1 ns t40 DCLKIN to D[31:16] Hold time 3.5 ns t41 D[15:0] to DCLKIN Setup time 1 ns t42 DCLKIN to D[15:0] Hold time 3.5 ns t43 DCLKOUT to DCLKIN Board Delay time 0 3 ns 18-5 Chapter 18 Electrical Characteristics Symbol Parameter Calculation t44 Address valid to ALE falling edge t 3 + t5 − t6 t45 ALE falling edge to Address hold t 3 + t6 − t5 t46 Access time for read 2*ACCVAL1* t3 − (t10 or t38) − (t39 or t41) t47 Write pulse width 2*ACCVAL1* t3 + t13 or t14 t48 Address valid to CSX/MCSX* falling edge At least t3 − t6 + (t10 or t38) t49 Address valid to WE* falling edge t3 − t6 + t14 t50 DATA valid to WE* rising edge 2*ACCVAL1* t3 + t3 − (t7 or t8) + t13 t51 WE* rising edge to DATA hold At least t3 t52 Access time for 2nd/3rd/4th read 2*ACCVAL2* t3 + t3 − t6 − (t39 or t41) t53 Access time for read (Card) 2*((2*CARDxACCVAL) − 1)* t3 − t18 − t39 t54 Address valid to CARDCS* falling edge 3* t3 − t6 + t18 t55 Write pulse width (Card) 2*((2*CARDxACCVAL) − 1)* t3 + t13 − t14 t56 DATA valid to WE* rising edge (Card) 2*((2*CARDxACCVAL) − 1)* t3 + 3* t3 − t7 + t13 t57 WE* rinsing edge to DATA hold(Card) At least t3 t58 DATA valid to IOWR* rising edge 2*((2*CARDIOxACCVAL) − 1)* t3 + 3* t3 − t7 + t25 t59 IOWR* rinsing edge to DATA hold At least t3 t60 IOWR* pulse width 2*((2*CARDxIOACCVAL) − 1)* t3 − 2* t3 − t25 − t26 t61 RAS* falling edge to CAS* falling edge (4 or 6)* t3 + t16 − (t28 or t30) t62 Address valid to RAS* falling edge t3 + (t28 or t30) − t6 t63 Address valid to CAS* falling edge t3 + t16− t6 t64 CAS* pulse width (1 or 2)* t3 + t15 − t16 t65 DATA valid to CAS* rising edge (4 or 5)* t3 + t15 − (t7 or t8) t66 CAS* rising edge to DATA hold At least t3 t67 Control signal active to DCKE t3 + t35 − (Delay for each signal) t68 DATA valid to CAS* rising edge (In-Page) 3* t3 + t15 − (t7 or t8) t69 Access time for read (IO Card) 2*((2*CARDxIOACCVAL) − 1)* t3 − 2* t3 − t39 − t24 18-6 Chapter 18 Electrical Characteristics t1 t3 DCLKOUT t2 DCLKOUT Timing DCLKOUT t43 DCLKIN DCLKOUT to DCLKIN Timing 18-7 18-8 WEx* WE* CSx*/MCSx* D[31:0] A[12:0] ALE DCLKOUT t6 t4 t44 t5 t7, t8 t6 t16 t50 CS/MCS Device Access Timing(1) - Write Operation t14 t49 t10, t38 t15 t13 t9, t37 Chapter 18 Electrical Characteristics 18-9 RD* CSx*/MCSx* D[31:0] A[12:0] ALE DCLKOUT t6 t4 t44 t5 t12 t6 t10,t38 t46 CS/MCS Device Access Timing(2) - Read Operation t48 t39.t41 t9,t37 t40,t42 t11 Chapter 18 Electrical Characteristics 18-10 RD* CSx*/MCSx* D[31:0] A[12:0] ALE DCLKOUT t6 t4 t44 t5 t48 t10,t38 t39.t41 t46 t40,t42 t6 t52 CS/MCS Device Access Timing(3) - Burst Read Operation with Page Mode Enabled t12 t6 t39.t41 t40,t42 t6 Chapter 18 Electrical Characteristics 18-11 WE* CARDxCS* D[31:16] A[12:0] ALE DCLKOUT t6 t4 t44 t5 t7 t6 t14 CARD Device Memory Access Timing(1) - Write Operation t56 t18 t13 t17 Chapter 18 Electrical Characteristics 18-12 CARDDIR* RD* CARDxCS* D[31:16] A[12:0] ALE DCLKOUT t6 t4 t44 t5 t6 t12 t20 t18 CARD Device Memory Access Timing(2) - Read Operation t54 t53 t39 t19 t17 t40 t11 Chapter 18 Electrical Characteristics 18-13 IOWR* CARDREG* CARDxCS* D[31:16] A[12:0] ALE DCLKOUT t6 t4 t5 t22 t7 t6 t26 CARD Device I/O Access Timing(1) - Write Operation t58 t18 t25 t17 t21 Chapter 18 Electrical Characteristics 18-14 IORD* CARDREG* CARDDIR* CARDxCS* D[31:16] A[12:0] ALE DCLKOUT t6 t4 t5 t22 t6 CARD Device I/O Access Timing(2) - Read Operation t20 t18 t24 t69 t39 t23 t40 t19 t17 t21 Chapter 18 Electrical Characteristics 18-15 WE* CASx* RASx* D[31:0] A[12:0] DCLKOUT t6 t62 t14 t28, t30 t7, t8 t61 t6 t16 t65 t15 DRAM Access Timing(1) - Write Operation t63 t16 t68 t13 t15 t27, t29 Chapter 18 Electrical Characteristics 18-16 WE* CASx* RASx* D[31:0] A[12:0] DCLKOUT t6 t62 t28,t30 t6 t16 t15 t40,t42 DRAM Access Timing(2) - Read Operation t63 t39,t41 t16 t39,t41 t15 t27,t29 t40,t42 Chapter 18 Electrical Characteristics 18-17 DQML/DQMH WE* CAS0* RAS0* DCSx* D[15:0] A[12:0] DCLKOUT t6 t28 t34, t30 t33, t29 t8 t14 t16 t27 t34, t30 t6 t31 t8 t8 SDRAM Access Timing(1) - Write Operation t33, t29 t8 t32 t15 t28 t34, t30 t33, t29 t13 t27 Chapter 18 Electrical Characteristics 18-18 DQML/DQMH WE* CAS0* RAS0* DCSx* D[15:0] A[12:0] DCLKOUT t6 t28 t34,t30 t33,t29 t16 t27 t34,t30 t6 SDRAM Access Timing(2) - Read Operation t33,t29 t41 t42 t14 t15 t28 t34,t30 t33,t29 t13 t27 Chapter 18 Electrical Characteristics Chapter 18 Electrical Characteristics <CHI> Symbol Parameter Rising/Falling Min Max Unit t1 CHICLK high time 100 ns t2 CHICLK low time 100 ns t3 CHICLK period 225 ns t4 Delay CHICLK Rising/Falling to CHIDOUT (Master) 5 ns t5 Delay CHICLK Rising/Falling to CHIFS (Master) Rising 5 ns t6 Delay CHICLK Rising/Falling to CHIFS (Master) Falling 5 ns t7 Delay CHICLK Rising/Falling to CHIDOUT (Slave) 15 ns t8 Delay CHICLK Rising/Falling to CHIFS (Slave) Rising 15 ns t9 Delay CHICLK Rising/Falling to CHIFS (Slave) Falling 15 ns t10 CHIDIN to CHICLK Rising/Falling Setup time 20 ns t11 CHIDIN to CHICLK Rising/Falling Hold time 20 ns t12 CHIFS to CHICLK Rising/Falling Setup time (Slave) 20 ns t13 CHIFS to CHICLK Rising/Falling Hold time (Slave) 20 ns 18-19 18-20 CHIDIN (CHITXEDGE=0) CHIDOUT (CHITXEDGE=0) CHIFS (input) (CHIFSEDGE=0) CHICLK (input) CHIDIN (CHITXEDGE=1) CHIDOUT (CHITXEDGE=1) CHIFS (output) (CHITXFSEDGE=1) CHICLK (output) t5 t12 t13 t6 t7 t10 t11 t10 CHI Timing t4 t7 t11 t4 t1 t1 t3 t3 t2 Chapter 18 Electrical Characteristics Chapter 18 Electrical Characteristics <Magic Bus> Symbol Parameter Rising/Falling Min Max Unit 30 ns MBUSCLK low time 30 ns t3 MBUSCLK period 67 ns t4 Delay MBUSCLK Rising/Falling to MBUSDATA (Master) 2 ns t5 MBUSDATA to MBUSCLK Rising/Falling Setup time (Slave) 4 ns t6 MBUSDATA to MBUSCLK Rising/Falling Hold time (Slave) 5 ns t3 18-21 MBUSDATA (input) (SLAVE=1,PHAPOL=1) MBUSDATA (output) (SLAVE=0,PHAPOL=1) MBUSCLK MBUSDATA (input) (SLAVE=1,PHAPOL=0) MBUSDATA (output) (SLAVE=0,PHAPOL=0) MBUSCLK t4 t5 t4 t5 t6 t4 t6 Magic Bus Timing t4 t1 t1 t3 t2 MBUSCLK high time t2 t2 t1 Chapter 18 Electrical Characteristics <SIB> Symbol Parameter Rising/Falling Min Max Unit t1 SIBMCLK high time 20 ns t2 SIBMCLK low time 20 ns t3 SIBMCLK period 50 ns t4 Delay SIBMCLK (Master) to SIBSCLK Rising 5 ns t5 Delay SIBMCLK (Master) to SIBSCLK Falling 5 ns t6 Delay SIBSCLK Rising to SIBSYNC Rising 2 ns t7 Delay SIBSCLK Rising to SIBSYNC Falling 2 ns t8 Delay SIBSCLK Rising to SIBDOUT 2 ns t9 SIBDIN to SIBSCLK Falling Setup time 20 ns t10 SIBDIN to SIBSCLK Falling Hold time 0 ns 18-22 18-23 SIBDIN SIBDOUT SIBSYNC SIBSCLK SIBMCLK t4 t6 t5 t8 t7 t9 SIB Timing t1 t10 t8 t3 t2 Chapter 18 Electrical Characteristics Chapter 18 Electrical Characteristics <SPI> Symbol Parameter Rising/Falling Min Max Unit t1 SPICLK high time 160 ns t2 SPICLK low time 160 ns t3 SPICLK period 340 ns t4 Delay SPICLK Rising/Falling to SPIOUT 5 ns t5 SPIIN to SPICLK Rising/Falling Setup time 15 ns t6 SPIIN to SPICLK Rising/Falling Hold time 15 ns t1 t3 SPICLK t4 t4 t2 SPIOUT (PHAPOL = 1) t5 t6 SPIIN (PHAPOL = 1) t1 t3 SPICLK t4 t4 SPIOUT (PHAPOL = 0) t5 t6 SPIIN (PHAPOL = 0) SPI Timing 18-24 t2 Chapter 18 Electrical Characteristics <VIDEO> Symbol Parameter Rising/Falling Min Max Unit t1 LOAD Pulse width 125 ns t2 Delay LOAD Falling to FRAME 125 ns t3 Delay LOAD Falling to DF 125 ns t4 Delay LOAD Falling to CP 125 ns t5 Delay CP Rising to VDAT [3:0] 5 ns Note: Values shown assume a 58 MHz clock for the CPU. Min and Max values are programmable using Video Control Registers. t2 FRAME t3 DF t1 LOAD t4 CP t5 VDAT VIDEO Timing 18-25 t5 Chapter 18 Electrical Characteristics <POWER> Symbol Parameter Rising/Falling Min Max Unit t1 VSTANDBY to PON* Rising 50 ms t2 VSTANDBY to ONBUTN delay time 2 s t3 PWROK Rising to ONBUTN Rising 2 s t4 PON* Rising to ONBUTN Rising 1 us t5 PWRCS Rising to VCC3 Rising 0 s t6 ONBUTN pulse width 1 us t1 VSTANDBY (VDD) *1 t4 PON* RESET (internal signal) t3 PWROK t6 t2 ONBUTN PWRCS t5 VCC3 tSELC2MS ENSYSCLK (internal signal) CPU clock is disabled CPU clock is enabled Power Timing *1 This signal is power for the TMPR3911BU/BXB and other components in the system that must never lose power. That means VDD itself for TMPR3911BU/BXB. <CPU RESET> Item t1 Parameter Rising/Falling Min Max Unit 10 ns CPURES* low time t1 CPURES CPU Reset Timing 18-26 Chapter 18 Electrical Characteristics 18. Electrical Characteristics 18.2 Electrical Characteristics of TMPR3912AU-92/XB-92 18.2.1 Absolute maximum ratings (TMPR3912AU-92/XB-92) VSS = 0 V (GND) Parameter Symbol Rating Unit Supply voltage VDD VSS − 0.5 to 4.5 V Input voltage VIN VSS − 0.5 to VDD + 0.5 V TSTG −55 to 125 °C PD 1 W Storage temperature Maximum dissipation (Ta = 70°C) Note: Using an LSI at specifications higher than the maximum ratings can cause permanent damage to the LSI. For normal operation, use under the recommended operating conditions. Exceeding the recommended operating conditions may affect the reliability of the LSI. 18.2.2 Recommended operating conditions (TMPR3912AU-92/XB-92) VSS = 0 V (GND) Min Typ. Max Unit Power Supply voltage Parameter Symbol VDD Condition 3.0 3.3 3.6 V Operating temperature TOPR 0 70 °C 18-27 Chapter 18 Electrical Characteristics 18.2.3 DC characteristics (TMPR3912AU-92/XB-92) (Ta = 0°C∼70°C, VDD = 3.3 V ± 0.3 V) Parameter Operating current (8) Static current Input Leakage current Input voltage Input voltage Input voltage (1) (2) (3) Output voltage Output voltage Output voltage (4) (5) (6) Input current (Pull-down resistor) Symbol Condition Min Typ. Max Unit IDD VIN = VDD or VSS VDD = Max IOH = IOL=0 mA (7) fIN = 10 MHz 110 130 mA IDDS1 VIN = VDD or VSS VDD = Max IOH = IOL = 0 mA SLEEP mode & RTC stop mode 10 100 µA IDDS2 VIN = VDD or VSS VDD = Max IOH = IOL = 0 mA SLEEP mode & RTC Running mode 20 120 µA IIN VIN = VDD or VSS −10 10 µA VIH1 VDD = 3.6 V VDD × 0.8 VDD + 0.3 V VIL1 VDD = 3.0 V −0.3 VDD ×0.2 V VIH2 VDD = 3.6 V 2.4 VDD + 0.3 V VIL2 VDD = 3.0 V −0.3 0.6 V VOH1 VDD = 3.0 V, IOH = −4 mA VDD − 0.6 V VOL1 VDD = 3.0 V, IOL = 4 mA 0.4 V VOH2 VDD = 3.0 V, IOH = −8 mA VDD − 0.6 V VOL2 VDD = 3.0 V, IOL = 8 mA VOH3 VDD = 3.0 V, IOH = −16 mA VOL3 VDD = 3.0 V, IOL = 16 mA VOH4 VDD = 3.0 V, IOH = −24 mA VOL4 IIHP – 0.4 V VDD − 0.6 V 0.4 V VDD − 0.6 – V VDD = 3.0 V, IOL = 24 mA 0.4 V VDD = Max VIN = VDD 20 120 µA (1) SYSCLKIN , TESTCPU,TESTAIU,TESTIN (2) Other inputs (3) D[31:0], RAS0*, RAS1*, DCS0*, DCKE*, DQMH, DQML, DREQ*, DGRNT*, BC32K, VDAT[3:0], CP, LOAD, DF, FRAME, DISPON, VIDDONE, PWRCS, TXD, RXD, CS3-0*, CHIFS, CHICLK, CHIDOUT, CHIDIN, IO[6:0], SPICLK, SPIOUT, SPIIN, SIBSYNC, SIBDOUT, SIBMCLK, SIBCLK, RXPWR, IROUT, CARD1WAIT*, CARD2WAIT*, MIOX[2:0] (4) A[12:0], ALE, RD*, WE*, CAS3-0*, CARDREG*, CARDIOWR*, CARD1CSL*, CARD1CSH*, CARD2CSL*, CARD2CSH* (5) DCLKOUT (6) MBUSCLK, MBUSDATA (7) fIN is the frequency of the clock input from pins SYSCLKIN and SYSCLKOUT (8) The operating current is the average current value when the TX3911/12 is operated in conjunction with the Toshiba TX System RISC Reference System with which the TX3911/12 is operated in CPU Continuous Operation Mode 40% of the time and in Low Power Consumption Mode (in which the CPU is stopped) 60% of the time. 18-28 Chapter 18 Electrical Characteristics 18.2.4 Crystal oscillator characteristics (TMPR3912AU-92/XB-92) 18.2.4.1 Recommended oscillator conditions (1) 10 MHz crystal TMPR3912AU-92/XB-92 SYSCLKIN SYSCLKOUT Recommended 10 MHz Crystal NIHON DEMPA KOGYO CO.,LTD: AT-51 X’tal CIN COUT Parameter Recommended value Symbol Crystal Oscillator frequency fIN External capacitors CIN, COUT Unit Min Max 8.25 11.52 MHz 10 33 pF Please note that there are some considerations on the location of the external crystal as follows. 1. Please place the crystal as close to the TMPR3912AU-92/XB-92 as possible. 2. Please place the crystal as far from data bus lines as possible. 3. Please surround the crystal area with GND. (2) 32 kHz crystal TMPR3912AU-92/XB-92 C32KIN C32KOUT Recommended 32 kHz Crystal KYOCERA CORPORATION: KF-38G X’tal COUT CIN Parameter External capacitors Recommended value Symbol CIN, COUT Min Max 10 33 Unit pF Please note that there are some considerations on the location of the external crystal as follows. 1. Please place the crystal as close to the TMPR3912AU-92/XB-92 as possible. 2. Please place the crystal as far from data bus lines as possible. 3. Please surround the crystal area with GND. 18-29 Chapter 18 Electrical Characteristics 18.2.4.2 Electrical specifications (VSS = 0 V, VDD = 3.3 V) Parameter Symbol Condition Min Typ. Max Unit Crystal stabilization time 10 MHz TSTA-10M f = 8.25 MHz∼9.216 MHz X’tal: AT-51 Cin = Cout = 10 pF∼33 pF 10 ms Crystal stabilization time 32 kHz TSTA-32k f = 32 kHz X’tal: KF-38G Cin = Cout = 10 pF∼33 pF 2 s 18.2.5 Definition of AC specification (TMPR3912AU-92/XB-92) VCC↕0.5 VCC↕0.5 Delay VCC↕0.5 + 0.1 V VCC↕0.5 – 0.1 V Outputs Setup Inputs Hold VCC VCC↕0.5 VCC↕0.5 0 18-30 Chapter 18 Electrical Characteristics 18.2.6 AC characteristics (TMPR3912AU-92/XB-92) The following operating conditions apply to all values specified in this section. Ta = 0∼70 ºC, VDD = 3.3 ± 0.3 V, External Capacitance = 40 pF <Memory Interface> Symbol Parameter Rising/Falling Min Max Unit t1 DCLKOUT high time 4.3 ns t2 DCLKOUT low time 4.3 ns t3 DCLKOUT period 10.8 ns t4 Delay DCLKOUT to ALE Rising 5 ns t5 Delay DCLKOUT to ALE Falling 3 ns t6 Delay DCLKOUT to A[12:0] −4 7 ns t7 Delay DCLKOUT to D[31:16] 8 ns t8 Delay DCLKOUT to D[15:0] 1 6.5 ns t9 Delay DCLKOUT to CS3-0* Rising 10 ns t10 Delay DCLKOUT to CS3-0* Falling 10 ns t11 Delay DCLKOUT to RD* Rising 8 ns t12 Delay DCLKOUT to RD* Falling 7 ns t13 Delay DCLKOUT to WE* Rising −4 5 ns t14 Delay DCLKOUT to WE* Falling 4 ns t15 Delay DCLKOUT to CAS3-0* (WE3-0*) Rising −4 2.5 ns t16 Delay DCLKOUT to CAS3-0* (WE3-0*) Falling 2.5 ns t17 Delay DCLKOUT to CARDxCSx* Rising 9 ns t18 Delay DCLKOUT to CARDxCSx* Falling 8 ns t19 Delay DCLKOUT to CARDDIR* Rising 12 ns t20 Delay DCLKOUT to CARDDIR* Falling 11 ns t21 Delay DCLKOUT to CARDREG* Rising 9 ns t22 Delay DCLKOUT to CARDREG* Falling 10 ns t23 Delay DCLKOUT to CARDIORD* Rising 10 ns t24 Delay DCLKOUT to CARDIORD* Falling 9 ns t25 Delay DCLKOUT to CARDIOWR* Rising 9 ns t26 Delay DCLKOUT to CARDIOWR* Falling 9 ns t27 Delay DCLKOUT to RAS0* Rising −4 6 ns t28 Delay DCLKOUT to RAS0* Falling 6 ns t29 Delay DCLKOUT to RAS1* (DCS1*) Rising 1.0 6 ns t30 Delay DCLKOUT to RAS1* (DCS1*) Falling 1.0 6 ns t31 Delay DCLKOUT to DQMH/L Rising 1.0 6.5 ns t32 Delay DCLKOUT to DQMH/L Falling 1.0 6.5 ns t33 Delay DCLKOUT to DCS0* Rising 1.0 7 ns t34 Delay DCLKOUT to DCS0* Falling 1.0 6 ns t35 Delay DCLKOUT to DCKE Rising 1.0 8 ns t36 Delay DCLKOUT to DCKE Falling 1.0 8 ns t37 Delay DCLKOUT to MCS3-0* Rising 10 ns t38 Delay DCLKOUT to MCS3-0* Falling 10 ns t39 D[31:16] to DCLKIN Setup time 1 ns t40 D[31:16] to DCLKIN Hold time 2.5 ns t41 D[15:0] to DCLKIN Setup time 1 ns t42 D[15:0] to DCLKIN Hold time 2.5 ns t43 DCLKOUT to DCLKIN Board Delay time 0 3 ns 18-31 Chapter 18 Electrical Characteristics Symbol Parameter Calculation t 3 + t5 − t6 t44 Address valid to ALE falling edge t46 Access time for read 2*ACCVAL1* t3 − (t10 or t38) − (t39 or t41) t48 Address valid to CSX/MCSX* falling edge At least t3 − t6 + (t10 or t38) t49 Address valid to WE* falling edge t3 − t6 + t14 t50 DATA valid to WE* rising edge 2*ACCVAL1* t3 + t3 − (t7 or t8) + t13 t52 Access time for 2nd/3rd/4th read 2*ACCVAL2* t3 + t3 − t6 − (t39 or t41) t53 Access time for read (Card) t54 Address valid to CARDCS* falling edge 2*((2*CARDxACCVAL) − 1)* t3 − t18 − t39 3* t3 − t6 + t18 t55 Write pulse width (Card) 2*((2*CARDxACCVAL) − 1)* t3 + t13 − t14 t56 DATA valid to WE* rising edge (Card) 2*((2*CARDxACCVAL) − 1)* t3 + 3* t3 − t7 + t13 t58 DATA valid to IOWR* rising edge 2*((2*CARDIOxACCVAL) − 1)* t3 + 3* t3 − t7 + t25 t61 RAS* falling edge to CAS* falling edge (4 or 6)* t3 + t16 − (t28 or t30) t62 Address valid to RAS* falling edge t3 + (t28 or t30) − t6 t63 Address valid to CAS* falling edge t3 + t16− t6 t65 DATA valid to CAS* rising edge (4 or 5)* t3 + t15 − (t7 or t8) t67 Control signal active to DCKE t3 + t35 − (Delay for each signal) t68 DATA valid to CAS* rising edge (In-Page) 3* t3 + t15 − (t7 or t8) t69 Access time for read (IO Card) 2*((2*CARDxIOACCVAL) − 1)* t3 − 2* t3 − t39 − t24 18-32 Chapter 18 Electrical Characteristics t1 t3 DCLKOUT t2 DCLKOUT Timing DCLKOUT t43 DCLKIN DCLKOUT to DCLKIN Timing 18-33 18-34 WEx* WE* CSx*/MCSx* D[31:0] A[12:0] ALE DCLKOUT t6 t4 t44 t5 t7, t8 t6 t16 t50 CS/MCS Device Access Timing(1) - Write Operation t14 t49 t10, t38 t15 t13 t9, t37 Chapter 18 Electrical Characteristics 18-35 RD* CSx*/MCSx* D[31:0] A[12:0] ALE DCLKOUT DCLKIN t6 t4 t44 t5 t12 t6 t48 CS/MCS Device Access Timing(2) - Read Operation t10, t38 t46 t39, t41 t9, t37 t40, t42 t11 Chapter 18 Electrical Characteristics 18-36 RD* CSx*/MCSx* D[31:0] A[12:0] ALE DCLKOUT DCLKIN t6 t4 t44 t5 t48 t10, t38 t46 t39, t41 t40, t42 t6 t52 CS/MCS Device Access Timing(3) - Burst Read Operation with Page Mode Enabled t12 t6 t39, t41 t40, t42 t6 Chapter 18 Electrical Characteristics 18-37 WE* CARDxCS* D[31:16] A[12:0] ALE DCLKOUT t6 t4 t44 t5 t7 t6 t14 CARD Device Memory Access Timing(1) - Write Operation t56 t18 t13 t17 Chapter 18 Electrical Characteristics 18-38 CARDDIR* RD* CARDxCS* D[31:16] A[12:0] ALE DCLKOUT DCLKIN t6 t4 t44 t5 t6 t54 t20 CARD Device Memory Access Timing(2) - Read Operation t12 t18 t53 t39 t19 t17 t40 t11 Chapter 18 Electrical Characteristics 18-39 IOWR* CARDREG* CARDxCS* D[31:16] A[12:0] ALE DCLKOUT t6 t4 t5 t22 t7 t6 t26 CARD Device I/O Access Timing(1) - Write Operation t58 t18 t25 t17 t21 Chapter 18 Electrical Characteristics 18-40 IORD* CARDREG* CARDDIR* CARDxCS* D[31:16] A[12:0] ALE DCLKOUT DCLKIN t6 t4 t5 t22 t6 CARD Device I/O Access Timing(2) - Read Operation t20 t18 t24 t69 t39 t23 t40 t19 t17 t21 1 Chapter 18 Electrical Characteristics 18-41 WE* CASx* RASx* D[31:0] A[12:0] DCLKOUT t6 t62 t14 t28, t30 t7, t8 t61 t6 t16 t65 t15 DRAM Access Timing(1) - Write Operation t63 t16 t68 t13 t15 t27, t29 Chapter 18 Electrical Characteristics 18-42 WE* CASx* RASx* D[31:0] A[12:0] DCLKOUT DCLKIN t6 t62 t28, t30 t6 t16 t15 t40, t42 DRAM Access Timing(2) - Read Operation t63 t39, t41 t16 t39, t41 t15 t27, t29 t40, t42 Chapter 18 Electrical Characteristics 18-43 DQML/DQMH WE* CAS0* RAS0* DCSx* D[15:0] A[12:0] DCLKOUT t6 t28 t34, t30 t33, t29 t8 t14 t16 t27 t34, t30 t6 t31 t8 t8 SDRAM Access Timing(1) - Write Operation t33, t29 t8 t32 t15 t28 t34, t30 t33, t29 t13 t27 Chapter 18 Electrical Characteristics 18-44 DQML/DQMH WE* CAS0* RAS0* DCSx* D[15:0] A[12:0] DCLKOUT DCLKIN t6 t28 t34, t30 t33, t29 t16 t27 t34, t30 t6 SDRAM Access Timing(2) - Read Operation t33, t29 t41 t42 t14 t15 t28 t34, t30 t33, t29 t13 t27 Chapter 18 Electrical Characteristics Chapter 18 Electrical Characteristics <CHI> Symbol Parameter Rising/Falling Min Max Unit t1 CHICLK high time 100 ns t2 CHICLK low time 100 ns t3 CHICLK period 225 ns t4 Delay CHICLK Rising/Falling to CHIDOUT (Master) 5 ns t5 Delay CHICLK Rising/Falling to CHIFS (Master) Rising 5 ns t6 Delay CHICLK Rising/Falling to CHIFS (Master) Falling 5 ns t7 Delay CHICLK Rising/Falling to CHIDOUT (Slave) 15 ns t8 Delay CHICLK Rising/Falling to CHIFS (Slave) Rising 1.5 15 ns t9 Delay CHICLK Rising/Falling to CHIFS (Slave) Falling 20 15 ns t10 CHIDIN to CHICLK Rising/Falling Setup time 20 ns t11 CHIDIN to CHICLK Rising/Falling Hold time 20 ns t12 CHIFS to CHICLK Rising/Falling Setup time (Slave) 20 ns t13 CHIFS to CHICLK Rising/Falling Hold time (Slave) 20 ns 18-45 18-46 CHIDIN (CHITXEDGE = 0) CHIDOUT (CHITXEDGE = 0) CHIFS (input) (CHIFSEDGE = 0) CHICLK (input) CHIDIN (CHITXEDGE = 1) CHIDOUT (CHITXEDGE = 1) CHIFS (output) (CHITXFSEDGE = 1) CHICLK (output) t5 t12 t13 t6 t10 t7 CHI Timing t11 t10 t4 t7 t11 t4 t1 t1 t3 t3 t2 Chapter 18 Electrical Characteristics Chapter 18 Electrical Characteristics <Magic Bus> Symbol Parameter Rising/Falling Min Max Unit MBUSCLK high time 10 ns t2 MBUSCLK low time 10 ns t3 MBUSCLK period 25 ns t4 Delay MBUSCLK Rising/Falling to MBUSDATA (Master) 2 ns t5 MBUSDATA to MBUSCLK Rising/Falling Setup time (Slave) 4 ns t6 MBUSDATA to MBUSCLK Rising/Falling Hold time (Slave) 5 ns 18-47 MBUSDATA (input) (SLAVE = 1, PHAPOL = 1) MBUSDATA (output) (SLAVE = 0, PHAPOL = 1) MBUSCLK MBUSDATA (input) (SLAVE = 1, PHAPOL = 0) MBUSDATA (output) (SLAVE = 0, PHAPOL = 0) MBUSCLK t4 t5 t4 t6 t5 t4 t6 Magic Bus Timing t4 t1 t1 t3 t3 t2 t2 t1 Chapter 18 Electrical Characteristics <SIB> Symbol Parameter Rising/Falling Min Max Unit t1 SIBMCLK high time 20 ns t2 SIBMCLK low time 20 ns t3 SIBMCLK period 50 ns t4 Delay SIBMCLK (Master) to SIBSCLK Rising 5 ns t5 Delay SIBMCLK (Master) to SIBSCLK Falling 5 ns t6 Delay SIBSCLK Rising to SIBSYNC Rising 2 ns t7 Delay SIBSCLK Rising to SIBSYNC Falling 2 ns t8 Delay SIBSCLK Rising to SIBDOUT 2 ns t9 SIBDIN to SIBSCLK Falling Setup time 20 ns t10 SIBDIN to SIBSCLK Falling Hold time 0 ns 18-48 18-49 SIBDIN SIBDOUT SIBSYNC SIBSCLK SIBMCLK t4 t6 t5 t8 t7 SIB Timing t9 t1 t10 t8 t3 t2 Chapter 18 Electrical Characteristics Chapter 18 Electrical Characteristics <SPI> Symbol Parameter Rising/Falling Min Max Unit t1 SPICLK high time 120 ns t2 SPICLK low time 120 ns t3 SPICLK period 250 ns t4 Delay SPICLK Rising/Falling to SPIOUT 5 ns t5 SPIIN to SPICLK Rising/Falling Setup time 15 ns t6 SPIIN to SPICLK Rising/Falling Hold time 15 ns t1 t3 SPICLK t4 t4 t2 SPIOUT (PHAPOL = 1) t5 t6 SPIIN (PHAPOL = 1) t1 t3 SPICLK t4 t4 SPIOUT (PHAPOL = 0) t5 t6 SPIIN (PHAPOL = 0) SPI Timing 18-50 t2 Chapter 18 Electrical Characteristics <VIDEO> Symbol Parameter Rising/Falling Min Max Unit t1 LOAD Pulse width 80 ns t2 Delay LOAD Falling to FRAME 80 ns t3 Delay LOAD Falling to DF 80 ns t4 Delay LOAD Falling to CP 80 ns t5 Delay CP Rising to VDAT [3:0] 5 ns Note: Values shown assume a 92 MHz Video master clock. Min and Max values are programmable using BAUDVAL [4:0] at Video Control Registers 1. t2 FRAME t3 DF t1 LOAD t4 CP t5 VDAT VIDEO Timing 18-51 t5 Chapter 18 Electrical Characteristics <POWER> Symbol Parameter Rising/Falling Min Max Unit t1 VSTANDBY to PON* Rising 50 ms t2 VSTANDBY to ONBUTN delay time 2 s t3 PWROK Rising to ONBUTN Rising 2 s t4 PON* Rising to ONBUTN Rising 1 us t5 PWRCS Rising to VCC3 Rising 0 s t6 ONBUTN pulse width 1 us t1 VSTANDBY (VDD) *1 t4 PON* RESET (internal signal) t3 PWROK t6 t2 ONBUTN PWRCS t5 VCC3 tSELC2MS ENSYSCLK (internal signal) CPU clock is disabled CPU clock is enabled Power Timing *1 This signal is power for the TMPR3912 and other components in the system that must never lose power. That means VDD iteself for TMPR3912. <CPU RESET> Item t1 Parameter Rising/Falling Min Max Unit 10 ns CPURES* low time t1 CPURES CPU Reset Timing 18-52 Chapter 19 Package Dimension 19. Package Dimension 19.1 TMPR3911BU P-LQFP176-2424-0.50A Unit: mm 24± ±0.2 24± ±0.2 0.6± ±0.15 0∼ ∼7°° 0.09∼ ∼0.20 0.05∼ ∼0.15 1.6MAX 0.22± ±0.05 19-1 Chapter 19 Package Dimension 19.2 TMPR3912AU-92 P-LQFP208-2828-0.50A Unit: mm 19-2 Chapter 19 Package Dimension 19.3 TMPR3912XB-92 P-FBGA217-1313-0.80B6 Unit: mm 19-3 Chapter 19 Package Dimension 19.4 TMPR3911BXB P-FBGA177-1313-0.80C4 Unit: mm 19-4 Appendix A Differences among TMPR3911/3912 Appendix A. Differences among TMPR3911/3912 Table A-1 The Differences among TMPR3911BU/BXB and TMPR3912AU-92/XB-92 TMPR3912AU-92 TMRP3911BU TMPR3912XB-92 TMPR3911BXB CPU clock 92.160 MHz 58.9824 MHz SYSCLKIN clock 11.520 MHz 7.3728 MHz Independent set up for the port size of the PCMCIA card slots 1 and 2 Available Available DCLKOUT Output Control Available Available $01 $02 NMI by PWROK input Available Available Clock Rate of CSERCLK Master Clock CLK2X / 2 CLK2X / 4 11 bits (BAUDRATE[10:0]) 10 bits (BAUDRATE[9:0]) TX3911/12 Revision Register Read Data Baud Rate Register of UART 4 bank SDRAM support Package Supported Supported LQFP208 (AU-92) FBGA217 (XB-92) LQFP176 (BU) FBGA177 (BXB) A-1 Appendix A Differences among TMPR3911/3912 A-2 Appendix B Access Timing Chart Appendix B. Access Timing Chart Index Figure B.1 16-bit Chip Select Device: Write Operation (1) (Byte) Figure B.2 16-bit Chip Select Device: Write Operation (2) (Halfword) Figure B.3 16-bit Chip Select Device: Write Operation (3) (Triplebyte) Figure B.4 16-bit Chip Select Device: Write Operation (4) (Word) Figure B.5 16-bit Chip Select Device: Read Operation (1) (Byte) Figure B.6 16-bit Chip Select Device: Read Operation (2) (Halfword) Figure B.7 16-bit Chip Select Device: Read Operation (3) (Triplebyte) Figure B.8 16-bit Chip Select Device: Read Operation (4) (Word) Figure B.9 16-bit Chip Select Device: Read Operation (5) (4 Word Burst) Figure B.10 32-bit Chip Select Device: Write Operation (1) (Byte) Figure B.11 32-bit Chip Select Device: Write Operation (2) (Halfword) Figure B.12 32-bit Chip Select Device: Write Operation (3) (Triplebyte) Figure B.13 32-bit Chip Select Device: Write Operation (4) (Word) Figure B.14 32-bit Chip Select Device: Read Operation (1) (Byte/Halfword/Triplebyte/Word) Figure B.15 32-bit Chip Select Device: Read Operation (2) (4 Word Burst) Figure B.16 16-bit CARD Device: Memory Access; Write Operation (1) (Byte) Figure B.17 16-bit CARD Device: Memory Access; Write Operation (2) (Halfword) Figure B.18 16-bit CARD Device: Memory Access; Write Operation (3) (Triplebyte) Figure B.19 16-bit CARD Device: Memory Access; Write Operation (4) (Word) Figure B.20 16-bit CARD Device: Memory Access; Read Operation (1) (Byte) Figure B.21 16-bit CARD Device: Memory Access; Read Operation (2) (Half Word) Figure B.22 16-bit CARD Device: Memory Access; Read Operation (3) (Triplebyte) Figure B.23 16-bit CARD Device: Memory Access; Read Operation (4) (Word) Figure B.24 8-bit CARD Device: Memory Access; Write Operation (1) (Byte) Figure B.25 8-bit CARD Device: Memory Access; Write Operation (2) (Halfword) Figure B.26 8-bit CARD Device: Memory Access; Write Operation (3) (Triplebyte) Figure B.27 8-bit CARD Device: Memory Access; Write Operation (4) (Word) Figure B.28 8-bit CARD Device: Memory Access; Read Operation (1) (Byte) Figure B.29 8-bit CARD Device: Memory Access; Read Operation (2) (Half Word) Figure B.30 8-bit CARD Device: Memory Access; Read Operation (3) (Triplebyte) Figure B.31 8-bit CARD Device: Memory Access; Read Operation (4) (Word) Figure B.32 16-bit CARD Device: Attribute Access; Write Operation (Halfword) Figure B.33 16-bit CARD Device: Attribute Access; Read Operation (Halfword) Figure B.34 16-bit CARD Device: I/O Access; Write Operation (Half word) Figure B.35 16-bit CARD Device: I/O Access; Read Operation (Halfword) Figure B.36 16-bit CARD Device: Memory Access; Read Operation with CARDxWAIT Figure B.37 16-bit DRAM: Write Operation (1) (Byte) Figure B.38 16-bit DRAM: Write Operation (2) (Halfword) Figure B.39 16-bit DRAM: Write Operation (3) (Triplebyte) B-1 Appendix B Access Timing Chart Figure B.40 16-bit DRAM: Write Operation (4) (Word) Figure B.41 16-bit DRAM: Write Operation (5) (4 Word Burst,Write In-Page) Figure B.42 16-bit DRAM: Read Operation (1) (Byte) Figure B.43 16-bit DRAM: Read Operation (2) (Halfword) Figure B.44 16-bit DRAM: Read Operation (3) (Triplebyte) Figure B.45 16-bit DRAM: Read Operation (4) (Word) Figure B.46 16-bit DRAM: Read Operation (5) (4 Word Burst) Figure B.47 16-bit DRAM: Write Operation (Word, ENBANKxHDRAM = 1) Figure B.48 16-bit DRAM: Read Operation (Word, ENBANKxHDRAM = 1) Figure B.49 16-bit DRAM: Write Operation (Word, ENBANKxOPT = 1) Figure B.50 16-bit DRAM: Read Operation (Word, ENBANKxOPT = 1) Figure B.51 32-bit DRAM: Write Operation (1) (Byte) Figure B.52 32-bit DRAM: Write Operation (2) (Halfword) Figure B.53 32-bit DRAM: Write Operation (3) (Triplebyte) Figure B.54 32-bit DRAM: Write Operation (4) (Word) Figure B.55 32-bit DRAM: Write Operation (5) (4 Word Burst, Write In-Page) Figure B.56 32-bit DRAM: Read Operation (1) (Byte) Figure B.57 32-bit DRAM: Read Operation (2) (Halfword) Figure B.58 32-bit DRAM: Read Operation (3) (Triplebyte) Figure B.59 32-bit DRAM: Read Operation (4) (Word) Figure B.60 32-bit DRAM: Read Operation (5) (4 Word Burst) Figure B.61 8-bit SDRAM: Write Operation (1) (Byte) Figure B.62 8-bit SDRAM: Write Operation (2) (Halfword) Figure B.63 8-bit SDRAM: Write Operation (3) (Triplebyte) Figure B.64 8-bit SDRAM: Write Operation (4) (Word) Figure B.65 8-bit SDRAM: Write Operation (5) (4 Word Burst,Write In-Page) Figure B.66 8-bit SDRAM: Read Operation (1) (Byte/Halfword/Tripleword/Word) Figure B.67 8-bit SDRAM: Read Operation (2) (4 Word Burst) Figure B.68 16-bit SDRAM: Write Operation (1) (Byte) Figure B.69 16-bit SDRAM: Write Operation (2) (Halfword) Figure B.70 16-bit SDRAM: Write Operation (3) (Triplebyte) Figure B.71 16-bit SDRAM: Write Operation (4) (Word) Figure B.72 16-bit SDRAM: Write Operation (5) (4 Word Burst,Write In-Page) Figure B.73 16-bit SDRAM: Read Operation (1) (Byte/Halfword/Tripleword/Word) Figure B.74 16-bit SDRAM: Read Operation (2) (4 Word Burst) Figure B.75 SDRAM Precharge All & SDRAM Mode Register Set Figure B.76 DRAM Refresh Cycle Figure B.77 SDRAM Refresh Cycle Note: Depending on CPU endianness, the signal names of some pins are reorganized (see Table 4.3.1). In the charts in this appendix, Xb[ ] means X[ ] pin in big endian mode, XI[ ] means X[ ] pin in little endian mode. For example, Db[7:0]/DI[31:24] means D[7:0] in big endian mode and D[31:24] in little endian mode. Note that these signals (Db[7:0] and DI[31:24]) are assigned to same pins. B-2 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 8 DCLKOUT ALE A[12:0] Db[31:16]/Dl[15:0] CSxACCVAL × 2 CSx*/MCSx* Addr[1:0] = x0 CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* RD* WE* or Addr[1:0] = x1 Figure B.1 16-bit Chip Select Device: Write Operation (1) (Byte) 0 1 2 3 4 5 6 7 DCLKOUT ALE A[12:0] Db[31:16]/Dl[15:0] CSxACCVAL1 × 2 CSx*/MCSx* CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* RD* WE* Figure B.2 16-bit Chip Select Device: Write Operation (2) (Halfword) B-3 8 9 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 DCLKOUT ALE A[12:0] Db[31:16]/Dl[15:0] CSxACCVAL1 × 2 CSx*/MCSx* Addr[1:0] = 00 CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* RD* WE* or Addr[1:0] = 01 Figure B.3 16-bit Chip Select Device: Write Operation (3) (Triplebyte) 0 1 2 3 4 5 6 7 8 9 10 11 12 DCLKOUT ALE A[12:0] Db[31:16]/Dl[15:0] CSxACCVAL1 × 2 CSx*/MCSx* CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* RD* WE* Figure B.4 16-bit Chip Select Device: Write Operation (4) (Word) B-4 13 14 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 8 9 DCLKOUT ALE A[12:0] Db[31:16]/Dl[15:0] CSxACCVAL1 × 2 CSx*/MCSx* RD* WE* Figure B.5 16-bit Chip Select Device: Read Operation (1) (Byte) 0 1 2 3 4 5 6 7 8 DCLKOUT ALE A[12:0] Db[31:16]/Dl[15:0] CSxACCVAL1×2 CSx*/MCSx* RD* WE* Figure B.6 16-bit Chip Select Device: Read Operation(2) (Halfword) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 DCLKOUT ALE A[12:0] Db[31:16]/Dl[15:0] CSxACCVAL1 × 2 CSx*/MCSx* RD* WE* Figure B.7 16-bit Chip Select Device: Read Operation (3) (Triplebyte) B-5 14 15 16 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 DCLKOUT ALE A[12:0] Db[31:16]/Dl[15:0] CSxACCVAL1 × 2 CSx*/MCSx* RD* WE* Figure B.8 16-bit Chip Select Device: Read Operation (4) (Word) 0 5 10 15 20 25 30 35 40 45 DCLKOUT A[12:0] Db[31:16]/D1[15:0] ALE CSxACCVAL1 × 2 CSxACCVAL2 × 2 + 1 CSx*/MCSx* RD* WE* Figure B.9 16-bit Chip Select Device: Read Operation (5) (4 Word Burst) B-6 50 55 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 DCLKOUT A[12:0] D[31:0] ALE CSxACCVAL1 × 2 CSx*/MCSx* Addr[1:0] = 00 CAS3b*/CAS0l* CAS2b* /CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* RD* or WE* Addr[1:0] = 01 Addr[1:0] = 10 Figure B.10 32-bit Chip Select Device: Write Operation (1) (Byte) B-7 Addr[1:0] = 11 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 DCLKOUT A[12:0] D[31:0] ALE CSxACCVAL1 × 2 CSx*/MCSx* Addr[1:0] = 00 CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* RD* or WE* Addr[1:0] = 10 Figure B.11 32-bit Chip Select Device: Write Operation (2) (Halfword) B-8 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 DCLKOUT A[12:0] D[31:0] ALE CSxACCVAL1 × 2 CSx*/MCSx* Addr[1:0] = 00 CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* RD* WE* or Addr[1:0] = 01 Figure B.12 32-bit Chip Select Device: Write Operation (3) (Triplebyte) B-9 8 Appendix B Access Timing Chart 0 1 2 3 4 5 6 DCLKOUT A[12:0] D[31:0] ALE CSxACCVAL1 × 2 CSx*/MCSx* CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* RD* WE* Figure B.13 32-bit Chip Select Device: Write Operation (4) (Word) B-10 7 Appendix B Acces Timing Chart Appendix B. Acces Timing Chart 0 1 2 3 4 5 6 7 8 DCLKOUT ALE A[12:0] D[31:0] CSxACCVAL1 × 2 CSx*/MCSx* RD* WE* Figure B.14 32-bit Chip Select Device: Read Operation (1) (Byte/Halfword/Triplebyte/Word) 0 5 10 15 20 25 DCLKOUT A[12:0] D[31:0] ALE CSxACCVAL1 × 2 CSxACCVAL2 × 2 + 1 CSx*/MCSx* RD* WE* Figure B.15 32-bit Chip Select Device: Read Operation (2) (4 Word Burst) B-11 30 Appendix B Acces Timing Chart 0 1 2 3 4 5 6 7 8 9 10 11 DCLKOUT ALE A[12:0] Db[31:16]/Dl[15:0] CARDxACCVAL1 × 4 − 2 Addr[1:0] = x0 CARDxCSL* CARDxCSH* RD* or WE* CARDDIR* CARDREG* Addr[1:0] = x1 Figure B.16 16-bit CARD Device: Memory Access; Write Operation (1) (Byte) 0 1 2 3 4 5 6 7 8 9 10 DCLKOUT ALE A[12:0] Db[31:16]/Dl[15:0] CARDxACCVAL1 × 4 − 2 CARDxCSL* CARDxCSH* RD* WE* CARDDIR* CARDREG* IORD* IOWR* Figure B.17 16-bit CARD Device: Memory Access; Write Operation (2) (Halfword) B-12 11 Appendix B Acces Timing Chart 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 DCLKOUT ALE A[12:0] Db[31:16]/D[15:0] Addr[1:0] = 00 CARDxACCVAL1 × 4 − 2 CARDxCSL* CARDxCSH* RD* or WE* CARDDIR* CARDREG* Addr[1:0] = 01 Figure B.18 16-bit CARD Device: Memory Access; Write Operation (3) (Triplebyte) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 DCLKOUT ALE A[12:0] Db[31:16]/Dl[15:0] CARDxACCVAL1 × 4 − 2 CARDxCSL* CARDxCSH* RD* WE* CARDDIR* CARDREG* IORD* IOWR* Figure B.19 16-bit CARD Device: Memory Access; Write Operation (4) (Word) B-13 20 21 Appendix B Acces Timing Chart 0 1 2 3 4 5 6 7 8 9 10 11 DCLKOUT ALE A[12:0] Db[31:16]/Dl[15:0] Addr[1:0] = x0 CARDxACCVAL1 × 4 − 2 CARDxCSL* CARDxCSH* or RD* WE* CARDDIR* CARDREG* Addr[1:0] = x1 Figure B.20 16-bit CARD Device: Memory Access; Read Operation (1) (Byte) 0 1 2 3 4 5 6 7 8 9 10 DCLKOUT ALE A[12:0] Db[31:16]/Dl[15:0] CARDxACCVAL1 × 4 − 2 CARDxCSL* CARDxCSH* RD* WE* CARDDIR* CARDREG* IORD* IOWR* Figure B.21 16-bit CARD Device: Memory Access; Read Operation (2) (Half Word) B-14 11 Appendix B Acces Timing Chart 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 DCLKOUT ALE A[12:0] Db[31:16]/Dl[15:0] Addr[1:0] = 00 CARDxACCVAL1 × 4 − 2 CARDxCSL* CARDxCSH* or RD* WE* CARDDIR* CARDREG* Addr[1:0] = 01 Figure B.22 16-bit CARD Device: Memory Access; Read Operation (3) (Triplebyte) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 DCLKOUT ALE A[12:0] Db[31:16]/Dl[15:0] CARDxACCVAL1 × 4 − 2 CARDxCSL* CARDxCSH* RD* WE* CARDDIR* CARDREG* IORD* IOWR* Figure B.23 16-bit CARD Device: Memory Access; Read Operation (4) (Word) B-15 21 22 Appendix B Access Timing Chart Appendix B. Access Timing Chart 0 1 2 3 4 5 6 7 8 9 10 11 DCLKOUT ALE A[12:0] Db[31:24]/Dl[7:0] CARDxACCVAL1 × 4 − 2 CARDxCSL* CARDxCSH* RD* WE* CARDDIR* CARDREG* Figure B.24 8-bit CARD Device: Memory Access; Write Operation (1) (Byte) 0 1 2 3 4 5 6 7 8 9 10 DCLKOUT ALE A[12:0] Db[31:16]/Dl[15:0] CARDxACCVAL1 × 4 − 2 CARDxCSL* CARDxCSH* RD* WE* CARDDIR* CARDREG* IORD* IOWR* Figure B.25 8-bit CARD Device: Memory Access; Write Operation (2) (Halfword) B-16 11 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 DCLKOUT ALE A[12:0] Db[31:16]/D[15:0] Addr[1:0] = 00 CARDxACCVAL1 × 4 − 2 CARDxCSL* CARDxCSH* RD* or WE* CARDDIR* CARDREG* Addr[1:0] = 01 Figure B.26 8-bit CARD Device: Memory Access; Write Operation (3) (Triplebyte) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 DCLKOUT ALE A[12:0] Db[31:16]/Dl[15:0] CARDxACCVAL1 × 4 − 2 CARDxCSL* CARDxCSH* RD* WE* CARDDIR* CARDREG* IORD* IOWR* Figure B.27 8-bit CARD Device: Memory Access; Write Operation (4) (Word) B-17 20 21 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 8 9 10 11 DCLKOUT ALE A[12:0] Db[31:24]/Dl[7:0] CARDxACCVAL1 × 4 − 2 CARDxCSL* CARDxCSH* RD* WE* CARDDIR* CARDREG* Figure B.28 8-bit CARD Device: Memory Access; Read Operation (1) (Byte) 0 1 2 3 4 5 6 7 8 9 10 DCLKOUT ALE A[12:0] Db[31:16]/Dl[15:0] CARDxACCVAL1 × 4 − 2 CARDxCSL* CARDxCSH* RD* WE* CARDDIR* CARDREG* IORD* IOWR* Figure B.29 8-bit CARD Device: Memory Access; Read Operation (2) (Half Word) B-18 11 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 DCLKOUT ALE A[12:0] Db[31:16]/Dl[15:0] Addr[1:0] = 00 CARDxACCVAL1 × 4 − 2 CARDxCSL* CARDxCSH* or RD* WE* CARDDIR* CARDREG* Addr[1:0] = 01 Figure B.30 8-bit CARD Device: Memory Access; Read Operation (3) (Triplebyte) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 DCLKOUT ALE A[12:0] Db[31:16]/Dl[15:0] CARDxACCVAL1 × 4 − 2 CARDxCSL* CARDxCSH* RD* WE* CARDDIR* CARDREG* IORD* IOWR* Figure B.31 8-bit CARD Device: Memory Access; Read Operation (4) (Word) B-19 21 22 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 19 20 DCLKOUT ALE A[12:0] Db[15:0]/Dl[31:16] CARDxIOACCVAL1 × 4 − 2 CARDxCSL* CARDxCSH* RD* WE* CARDDIR* CARDREG* IORD* IOWR* Figure B.32 16-bit CARD Device: Attribute Access; Write Operation (Halfword) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 DCLKOUT ALE A[12:0] Db[15:0]/Dl[31:16] CARDxIOACCVAL1×4-2 CARDxCSL* CARDxCSH* RD* WE* CARDDIR* CARDREG* IORD* IOWR* Figure B.33 16-bit CARD Device: Attribute Access; Read Operation (Halfword) B-20 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 20 21 22 DCLKOUT ALE A[12:0] Db[15:0]/Dl[31:16] CARDxCSL* CARDxCSH* RD* WE* CARDDIR* CARDREG* CARDxIOACCVAL1 × 4 − 4 IOWR* Figure B.34 16-bit CARD Device: I/O Access; Write Operation (Half word) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 DCLKOUT ALE A[12:0] Db[15:0]/Dl[31:16] CARDxCSL* CARDxCSH* RD* WE* CARDDIR* CARDREG* CARDxIOACCVAL1 × 4 − 4 IORD* IOWR* Figure B.35 16-bit CARD Device: I/O Access; Read Operation (Halfword) B-21 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 DCLKOUT ALE A[12:0] High Low Db[15:0]/Dl[31:16] Read data CARDxCSH* CARDxCSL* RD* WE* CARDxWAIT* d1cardxwait (internal signal) cardwait (internal signal) clk (internal signal) acccnt (internal signal) (*1) 0 4 3 2 1 Note:(*1) Value of CARDxACCVAL*2 is loaded into ineternal counter (“acccnt”). This chart is a case CARDxACCVAL = 2. Figure B.36 16-bit CARD Device: Memory Access; Read Operation with CARDxWAIT B-22 0 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 DCLKOUT A[12:0] ROW COL Db[15:0]/Dl[31:16] DOut CAS3b*/CAS0l* CAS2b*/CAS1l* Addr[1:0] = x0 CAS1b*/CAS2l* CAS0b*/CAS3l* or RASx* RD* WE* Addr[1:0] = x1 Figure B.37 16-bit DRAM: Write Operation (1) (Byte) 0 1 2 3 4 5 6 DCLKOUT A[12:0] ROW COL Db[15:0]/Dl[31:16] DOut CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* RASx* RD* WE* Figure B.38 16-bit DRAM: Write Operation (2) (Halfword) B-23 7 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 8 9 10 11 DCLKOUT A[12:0] ROW Db[15:0]/Dl[31:16] COL0 COL1 DOut0 DOut1 CAS3b*/CAS0l* CAS2b*/CAS1l* Addr[1:0] = 00 CAS1b*/CAS2l* CAS0b*/CAS3l* or RASx* RD* WE* Addr[1:0] = 01 Figure B.39 16-bit DRAM: Write Operation (3) (Triplebyte) 0 1 2 3 4 5 6 7 8 9 10 DCLKOUT A[12:0] Db[15:0]/Dl[31:16] ROW COL0 COL1 DOut0 DOut1 CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* RASx* RD* WE* Figure B.40 16-bit DRAM: Write Operation (4) (Word) B-24 11 Appendix B Access Timing Chart 0 5 10 15 20 25 30 DCLKOUT A[12:0] ROW Db[15:0]/Dl[31:16] COL0 COL1 COL2 COL3 COL4 COL5 COL6 COL7 DOut0 DOut1 DOut2 DOut3 DOut4 DOut5 DOut6 DOut7 CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* RASx* RD* WE* Figure B.41 16-bit DRAM: Write Operation (5) (4 Word Burst, Write In-Page) 0 1 2 3 4 5 6 7 DCLKOUT A[12:0] ROW COL Db[15:0]/Dl[31:16] Din CAS3b*/CAS0l* CAS2b*/CAS1l* Addr[1:0] = x0 CAS1b*/CAS2l* CAS0b*/CAS3l* or RASx* RD* WE* Addr[1:0] = x1 Figure B.42 16-bit DRAM: Read Operation (1) (Byte) B-25 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 DCLKOUT A[12:0] ROW COL Db[15:0]/Dl[31:16] Din CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* RASx* RD* WE* Figure B.43 16-bit DRAM: Read Operation (2) (Halfword) 0 1 2 3 4 5 6 7 8 9 10 11 DCLKOUT A[12:0] ROW COL0 Db[15:0]/Dl[31:16] COL1 Din0 Din1 CAS3b*/CAS0l* CAS2b*/CAS1l* Addr[1:0]=00 CAS1b*/CAS2l* CAS0b*/CAS3l* or RASx* RD* WE* Addr[1:0]=01 Figure B.44 16-bit DRAM: Read Operation (3) (Triplebyte) B-26 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 8 9 10 11 DCLKOUT A[12:0] ROW COL0 Db[15:0]/Dl[31:16] COL1 Din0 Din1 CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* RASx* RD* WE* Figure B.45 16-bit DRAM: Read Operation (4) (Word) 0 5 10 15 20 25 30 DCLKOUT A[12:0] Db[15:0]/ Dl[31:16] ROW COL0 Din0 COL1 Din1 COL2 Din2 COL3 Din3 COL4 Din4 COL5 Din5 CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* RASx* RD* WR* Figure B.46 16-bit DRAM: Read Operation (5) (4 Word Burst) B-27 COL6 Din6 COL7 Din7 Appendix B Access Timing Chart Appendix B. Access Timing Chart 0 1 2 3 4 5 6 7 8 9 10 11 DCLKOUT A[12:0] ROW Db[15:0]/Dl[31:16] COL0 COL1 DOut0 DOut1 CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* RASx* RD* WE* Figure B.47 16-bit DRAM: Write Operation (Word, ENBANKxHDRAM = 1) 0 1 2 3 4 5 6 7 8 9 10 DCLKOUT A[12:0] ROW COL0 Db[15:0]/Dl[31:16] COL1 Din0 Din1 CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* RASx* RD* WE* Figure B.48 16-bit DRAM: Read Operation (Word, ENBANKxHDRAM = 1) B-28 11 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 8 9 10 11 12 13 DCLKOUT A[12:0] ROW Db[15:0]/Dl[31:16] COL0 COL1 DOut0 DOut1 CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* RASx* RD* WE* Figure B.49 16-bit DRAM: Write Operation (Word, ENBANKxOPT = 1) 0 1 2 3 4 5 6 7 8 9 10 11 12 DCLKOUT A[12:0] ROW Db[15:0]/Dl[31:16] COL0 COL1 Din0 Din1 CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* RASx* RD* WE* Figure B.50 16-bit DRAM: Read Operation (Word, ENBANKxOPT = 1) B-29 13 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 8 DCLKOUT A[12:0] ROW COL D[31:0] DOut Addr[1:0] = 00 CAS3b*/CASl0* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* or RASx* RD* WE* Addr[1:0] = 01 Addr[1:0] = 10 Figure B.51 32-bit DRAM: Write Operation (1) (Byte) B-30 Addr[1:0] = 11 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 8 DCLKOUT A[12:0] ROW COL D[31:0] DOut Addr[1:0] = 00 CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* or RASx* RD* WE* Addr[1:0] = 10 Figure B.52 32-bit DRAM: Write Operation (2) (Halfword) B-31 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 8 DCLKOUT A[12:0] ROW COL D[31:0] DOut Addr[1:0] = 00 CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* or RASx* RD* WE* Addr[1:0] = 01 Figure B.53 32-bit DRAM: Write Operation (3) (Triplebyte) 0 1 2 3 4 5 6 7 DCLKOUT A[12:0] ROW COL D[31:0] DOut CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* RASx* RD* WE* Figure B.54 32-bit DRAM: Write Operation (4) (Word) B-32 8 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 DCLKOUT A[12:0] ROW COL0 D[31:0] COL1 DOut0 COL2 DOut1 COL3 DOut2 DOut3 CAS0b*/CAS3l* CAS1b*/CAS2l* CAS2b*/CAS1l* CAS3b*/CAS0l* RASx* RD* WE* Figure B.55 32-bit DRAM: Write Operation (5) (4 Word Burst, Write In-Page) 0 1 2 3 4 5 6 7 DCLKOUT A[12:0] ROW COL D[31:0] Din Addr[1:0] = 00 CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* or RASx* RD* WE* Addr[1:0] = 01 Addr[1:0] = 10 Figure B.56 32-bit DRAM: Read Operation (1) (Byte) B-33 Addr[1:0] = 11 19 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 DCLKOUT A[12:0] ROW COL D[31:0] Din Addr[1:0] = 00 CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* or RASx* RD* WE* Addr[1:0] = 10 Figure B.57 32-bit DRAM: Read Operation (2) (Halfword) B-34 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 DCLKOUT A[12:0] ROW COL D[31:0] Din Addr[1:0] = 00 CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* or RASx* RD* WE* Addr[1:0] = 01 Figure B.58 32-bit DRAM: Read Operation (3) (Triplebyte) 0 1 2 3 4 5 6 DCLKOUT A[12:0] ROW COL D[31:0] Din CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* RASx* RD* WE* Figure B.59 32-bit DRAM: Read Operation (4) (Word) B-35 7 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 DCLKOUT A[12:0] ROW COL0 D[31:0] COL1 Din0 COL2 Din1 COL3 Din2 Din3 CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* RASx* RD* WE* Figure B.60 32-bit DRAM: Read Operation (5) (4 Word Burst) 0 1 2 3 4 5 6 7 8 DCLKOUT A[12:0] Db[7:0]/Dl[31:24] ROW COL DOut DCSx* RASx* CAS0b*/CAS3l* RD* WE* DQMLb/DQMHl DQMHb/DQMLl Figure B.61 8-bit SDRAM: Write Operation (1) (Byte) B-36 9 10 11 20 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 8 9 10 11 DCLKOUT A[12:0] ROW COL Db[7:0]/Dl[31:24] DOut DOut DCSx* RASx* CAS0b*/CAS3l* RD* WE* DQMLb/DQMHl DQMHb/DQMLl Figure B.62 8-bit SDRAM: Write Operation (2) (Halfword) 0 1 2 3 4 5 6 7 8 9 DCLKOUT A[12:0] Db[7:0]/Dl[31:24] ROW COL DOut DOut DOut DCSx* RASx* CAS0b*/CAS3l* RD* WE* DQMLb/DQMHl DQMHb/DQMLl Figure B.63 8-bit SDRAM: Write Operation (3) (Triplebyte) B-37 10 11 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 8 9 10 11 DCLKOUT A[12:0] ROW COL DOut Db[7:0]/Dl[31:24] DOut DOut DOut DCSx* RASx* CAS0b*/CAS3l* RD* WE* DQMLb/DQMHl DQMHb/DQMLl Figure B.64 8-bit SDRAM: Write Operation (4) (Word) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 DCLKOUT A[12:0] Db[7:0]/Dl[31:24] COL0 ROW d0 d0 COL1 d0 d0 d1 d1 COL2 d1 d1 d2 d2 COL3 d2 d2 d3 d3 d3 d3 DCSx* RASx* CAS0b*/CAS3l* RD* WE* DQMLb/DQMHl DQMHb/DQMLl Figure B.65 8-bit SDRAM: Write Operation (5) (4 Word Burst, Write In-Page) B-38 22 23 Appendix B Access Timing Chart (*1) 0 1 2 3 4 5 6 7 8 9 10 11 12 DCLKOUT A[12:0] ROW COL Db[7:0]/Dl[31:24] Din Din Din Din DCSx* RASx* CAS0b*/CAS3l* RD* WE* DQMLb/DQMHl DQMHb/DQMLl Note (*1): Reading is always be 32bits, without regard to the actual bytes requested by CPU. Figure B.66 8-bit SDRAM: Read Operation (1) (Byte/Halfword/Tripleword/Word) 0 1 2 3 4 5 6 7 8 9 10 12 11 13 14 15 16 17 18 20 19 22 21 23 24 DCLKOUT A[12:0] Db[7:0]/Dl[31:24] ROW COL0 COL1 d0 d0 d0 COL2 d0 d1 d1 d1 COL3 d1 d2 d2 d2 d2 DCSx* RASx* CAS0b*/CAS3l* RD* WE* DQMLb/DQMHl DQMHb/DQMLl Figure B.67 8-bit SDRAM: Read Operation (2) (4 Word Burst) B-39 d3 d3 d3 d3 25 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 8 DCLKOUT A[12:0] ROW COL Db[15:0]/Dl[31:16] DOut DCSx* RASx* CAS0b*/CAS3l* RD* WE* Addr[1:0] = X0 DQMLb/DQMHl DQMHb/DQMLl or Addr[1:0] = X1 Figure B.68 16-bit SDRAM: Write Operation (1) (Byte) 0 1 2 3 4 5 6 7 DCLKOUT A[12:0] Db[15:0]/Dl[31:16] ROW COL DOut DCSx* RASx* CAS0b*/CAS3l* RD* WE* DQMLb/DQMHl DQMHb/DQMLl Figure B.69 16-bit SDRAM: Write Operation (2) (Halfword) B-40 8 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 8 DCLKOUT A[12:0] ROW COL Db[15:0]/Dl[31:16] DOut Dout DCSx* RASx* CAS0b*/CAS3l* RD* WE* Addr[1:0] = 00 DQMLb/DQMHl DQMHb/DQMLl or Addr[1:0] = 01 Figure B.70 16-bit SDRAM: Write Operation (3) (Triplebyte) 0 1 2 3 4 5 6 7 DCLKOUT A[12:0] Db[15:0]/Dl[31:16] ROW COL DOut Dout DCSx* RASx* CAS0b*/CAS3l* RD* WE* DQMLb/DQMHl DQMHb/DQMLl Figure B.71 16-bit SDRAM: Write Operation (4) (Word) B-41 8 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 DCLKOUT A[12:0] COL0 ROW Db[15:0]/Dl[31:16] d0 COL1 d0 d1 COL2 d1 d2 COL3 d2 d3 d3 DCSx* RASx* CAS0b*/CAS3l* RD* WE* DQMLb/DQMHl DQMHb/DQMLl Figure B.72 16-bit SDRAM: Write Operation (5) (4 Word Burst,Write In-Page) (*1) 0 1 2 3 4 5 6 7 8 9 DCLKOUT A[12:0] ROW COL Db[15:0]/Dl[31:16] Din Din DCSx* RASx* CAS0b*/CAS3l* RD* WE* DQMLb/DQMHl DQMHb/DQMLl Note (*1): Reading is always be 32bits, without regard to the actual bytes requested by CPU. Figure B.73 16-bit SDRAM: Read Operation (1) (Byte/Halfword/Tripleword/Word) B-42 10 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 DCLKOUT A[12:0] ROW COL0 COL1 Db[7:0]/Dl[31:24] COL2 d0 d0 COL3 d1 d1 d2 d2 d3 d3 DCSx* RASx* CAS0b*/CAS3l* RD* WE* DQMLb/DQMHl DQMHb/DQMLl Figure B.74 16-bit SDRAM: Read Operation (2) (4 Word Burst) 0 1 2 3 4 5 6 7 8 DCLKOUT A[12:0] Precharge All Command Data (*2) Mode Regsiter Set Command Data (*4) D[31:0] Precharge All Command Data (*1) Mode Regsiter Set Command Data (*3) DCSx* RASx* CAS0b*/CAS3l* RD* WE* DQMLb/DQMHl DQMHb/DQMLl Note: (*1) Note: (*2) Note: (*3) Note: (*4) Data[31] (when Big Endian) or Data[7] (when Little Endian) must be “1”. Values of Data[12:0] (when Big Endian) or Data[20:16],Data[31:24] (when Little Endian) are outputed to A[12:0]. Data[31] (when Big Endian) or Data[7] (when Little Endian) must be “0”. Values of Data[12:0] (when Big Endian) or Data[20:16],Data[31:24] (when Little Endian) are outputed to A[12:0]. Figure B.75 SDRAM Precharge All & SDRAM Mode Register Set B-43 9 Appendix B Access Timing Chart 0 1 2 3 4 5 6 7 8 9 7 8 9 DCLKOUT A[12:0] D[31:0] CAS3b*/CAS0l* CAS2b*/CAS1l* CAS1b*/CAS2l* CAS0b*/CAS3l* RASx* RD* WE* Figure B.76 DRAM Refresh Cycle 0 1 2 3 4 5 6 DCLKOUT A[12:0] D[31:0] CAS0b*/CAS3l* RASx* DCSx* RD* WE* Figure B.77 SDRAM Refresh Cycle B-44