User ManualTable of ContentsIntel® PXA26x Processor Family1Introduction 1251.1 Intel® XScale™ Core Features251.2 System Integration Features261.2.1 Memory Controller261.2.2 Clocks and Power Controllers261.2.3 Universal Serial Bus (USB) Client271.2.4 Direct Memory Access Controller (DMAC)271.2.5 Liquid Crystal Display (LCD) Controller271.2.6 AC97 Controller271.2.7 Inter-Integrated Circuit Sound (I2S) Controller271.2.8 Multimedia Card (MMC) Controller281.2.9 Fast Infrared (FIR) Communication Port281.2.10 Synchronous Serial Protocol Controller (SSPC)281.2.11 Inter-Integrated Circuit (I2C) Bus Interface Unit281.2.12 General Purpose Input/Output (GPIO)281.2.13 Universal Asynchronous Receiver/Transmitters (UARTs)281.2.14 Real-Time Clock (RTC)291.2.15 Operating System (OS) Timers291.2.16 Pulse-Width Modulator (PWM)291.2.17 Interrupt Controller291.2.18 Integrated Synchronous Flash291.2.19 Single-ended Universal Serial Bus Client interface291.2.20 Network Synchronous Serial Protocol Port301.2.21 Audio Synchronous Serial Protocol Port301.2.22 Hardware UART (HWUART)30System Architecture 2312.1 Overview31Figure 2-1. Block Diagram322.2 Package Types322.3 Intel® XScale™ Microarchitecture Implementation Options332.3.1 CPU Core Fault Register - PSFS Bit33Table 2-1. CPU Core Fault Register Bitmap332.3.2 Coprocessor 14 Registers 0-3 - Performance Monitoring332.3.3 Coprocessor 14 Register 6 and 7- Clock and Power Management342.3.4 Coprocessor 15 Register 0 - ID Register Definition34Table 2-2. ID Register Bitmap and Bit Definitions (Read-only) (Sheet 1 of 2)34Table 2-3. PXA26x processor family ID Values352.3.5 Coprocessor 15 Register 1 - P-Bit352.4 Input/Output Ordering352.5 Semaphores36Note: Semaphore coherency may be interrupted because an external companion chip that uses the MBREQ/MBGNT handshake can take own...362.6 Interrupts36Note: Clearing interrupts may take a delay. To allow the status bit to clear before returning from an interrupt service routine (ISR), clear the interrupt early in the routine.372.7 Reset37Table 2-4. Effect of Each Type of Reset on Internal Register State372.8 Internal Registers372.9 Selecting Peripherals vs. General Purpose Input/ Output382.10 Power on Reset and Boot Operation382.11 Power Management38Note: In low power modes, ensure that input pins are not floating and output pins are not driven by an external device in confli...392.12 Pin List39Table 2-5. Processor Pin Types39Table 2-6. Pin & Signal Descriptions for the PXA26x Processor Family (Sheet 1 of 12)39Table 2-7. Pin Description Notes512.13 Register Address Summary51Table 2-8. Register Address Summary (Sheet 1 of 13)512.14 Memory Map63Note: Accessing reserved portions of the memory map gives unpredictable results.63Figure 2-2. Memory Map (Part One) - From 0x8000 0000 to 0xFFFF FFFF64Figure 2-3. Memory Map (Part Two) - From 0x0000 0000 to 0x7FFF FFFF65Clocks and Power Manager 3673.1 Clock Manager Introduction673.2 Power Manager Introduction683.3 Clock Manager683.3.1 32.768-KHz Oscillator703.3.2 3.6864-MHz Oscillator703.3.3 Core Phase Locked Loop703.3.4 95.85-MHz Peripheral Phase Locked Loop713.3.5 147.46-MHz Peripheral Phase Locked Loop723.3.6 Clock Gating723.4 Resets and Power Modes723.4.1 Hardware Reset733.4.1.1 Invoking Hardware Reset733.4.1.2 Behavior During Hardware Reset733.4.1.3 Completing Hardware Reset733.4.2 Watchdog Reset733.4.2.1 Invoking Watchdog Reset733.4.2.2 Behavior During Watchdog Reset743.4.2.3 Completing Watchdog Reset743.4.3 GPIO Reset743.4.3.1 Invoking GPIO Reset743.4.3.2 Behavior During GPIO Reset753.4.3.3 Completing GPIO Reset753.4.4 Run Mode753.4.5 Turbo Mode753.4.5.1 Entering Turbo Mode763.4.5.2 Behavior in Turbo Mode763.4.5.3 Exiting Turbo Mode763.4.6 Idle Mode763.4.6.1 Entering Idle Mode773.4.6.2 Behavior in Idle Mode773.4.6.3 Exiting Idle Mode773.4.7 33-MHz Idle Mode783.4.7.1 Entering 33-MHz Idle Mode783.4.7.2 Behavior in 33-MHz Idle Mode793.4.7.3 Exiting 33-MHz Idle Mode793.4.8 Frequency Change Sequence793.4.8.1 Preparing for the Frequency Change Sequence793.4.8.2 Starting the Frequency Change Sequence803.4.8.3 Behavior During the Frequency Change Sequence803.4.8.4 Completing the Frequency Change Sequence803.4.9 Sleep Mode813.4.9.1 Sleep Mode External Voltage Regulator Requirements813.4.9.2 Preparing for Sleep Mode823.4.9.3 Entering Sleep Mode833.4.9.4 Behavior in Sleep Mode843.4.9.5 Exiting Sleep Mode853.4.10 Power Mode Summary863.5 Power Manager Registers883.5.1 Power Manager Control Register (PMCR)893.5.2 Power Manager General Configuration Register (PCFR)903.5.3 Power Manager Wake-Up Enable Register (PWER)913.5.4 Power Manager Rising-Edge Detect Enable Register (PRER)923.5.5 Power Manager Falling-Edge Detect Enable Register (PFER)933.5.6 Power Manager GPIO Edge Detect Status Register (PEDR)943.5.7 Power Manager Sleep Status Register (PSSR)953.5.8 Power Manager Scratch Pad Register (PSPR)963.5.9 Power Manager Fast Sleep Wake Up Configuration Register (PMFWR)973.5.10 Power Manager GPIO Sleep State Registers (PGSR0, PGSR1, PGSR2)973.5.11 Reset Controller Status Register (RCSR)993.5.12 Power Manager Register Locations1003.6 Clocks Manager Registers1013.6.1 Core Clock Configuration Register (CCCR)1013.6.2 Clock Enable Register (CKEN)1033.6.3 Oscillator Configuration Register (OSCC)1053.6.4 Clocks Manager Register Locations1053.7 Coprocessor 14: Clock and Power Management1063.7.1 Core Clock Configuration Register (CCLKCFG)1063.7.2 Power Mode Register (PWRMODE)1073.8 External Hardware Considerations1073.8.1 Power-On-Reset Considerations1073.8.2 Driving the Crystal Pins from an External Clock Source1073.8.3 Noise Coupling Between Driven Crystal Pins and a Crystal Oscillator108System Integration Unit 41094.1 General-Purpose Input/Output1094.1.1 GPIO Operation109Warning: GPIOs [89:86], behave differently. They have different default values on reset. On reset, these four GPIOs are outputs....109Figure 4-1. General-Purpose I/O Block Diagram1104.1.2 GPIO Alternate Functions111Table 4-1. GPIO Alternate Functions (Sheet 1 of 5)1114.1.3 GPIO Register Definitions115Table 4-2. GPIO Register Definitions (Sheet 1 of 2)115Note: GPLR2[31:26], GPSR2[31:26], GPCR2[31:26], GPDR2[31:26], GRER2[31:26], GFER2[31:26], GEDR2[31:26] and GAFR2_U[31:21] are reserved bits. Write zeros to these bits and ignore all reads from these bits.1164.1.3.1 GPIO Pin-Level Registers (GPLR0, GPLR1, GPLR2)116Table 4-3. GPLR0 Bit Definitions116Table 4-4. GPLR1 Bit Definitions117Table 4-5. GPLR2 Register Bitmap1174.1.3.2 GPIO Pin Direction Registers (GPDR0, GPDR1, GPDR2)117Note: A reset clears all bits in the GPDR0-2 registers and configures GPIO[85:0] as inputs and GPIO[89:86] as outputs.117Table 4-6. GPDR0 Bit Definitions118Table 4-7. GPDR1 Bit Definitions118Table 4-8. GPDR2 Register Bitmap1184.1.3.3 GPIO Pin Output Set Registers (GPSR0, GPSR1, and GPSR2) and Pin Output Clear Registers (GPCR0, GPCR1, GPCR2)119Table 4-9. GPSR0 Bit Definitions119Table 4-10. GPSR1 Bit Definitions119Table 4-11. GPSR2 Register Bitmap120Table 4-12. GPCR0 Bit Definitions120Table 4-13. GPCR1 Bit Definitions120Table 4-14. GPCR2 Register Bitmap1214.1.3.4 GPIO Rising Edge Detect Enable Registers (GRER0, GRER1, GRER2) and Falling Edge Detect Enable Registers (GFER0, GFER1, GFER2)121Note: The minimum pulse width duration to guarantee edge detection is 1mS.121Note: For reserved bits in GRER2 and GFER2, writes must be zeros and reads must be ignored.122Table 4-15. GRER0 Bit Definitions122Table 4-16. GRER1 Bit Definitions122Table 4-17. GRER2 Register Bitmap122Table 4-18. GFER0 Bit Definitions123Table 4-19. GFER1 Bit Definitions123Table 4-20. GFER2 Register Bitmap1234.1.3.5 GPIO Edge Detect Status Register (GEDR)124Table 4-21. GEDR0 Bit Definitions124Table 4-22. GEDR1 Bit Definitions125Table 4-23. GEDR2 Register Bitmap1254.1.3.6 GPIO Alternate Function Register (GAFR)125Warning: Configuring a GPIO to map to an alternate function that is not available causes indeterminate results.126Table 4-24. GAFR0_L Bit Definitions126Table 4-25. GAFR0_U Bit Definitions126Table 4-26. GAFR1_L Bit Definitions127Table 4-27. GAFR1_U Bit Definitions127Table 4-28. GAFR2_L Bit Definitions128Table 4-29. GAFR2_U Register Bitmap1284.1.3.7 Example Procedure for Configuring the Alternate Function Registers129Note: For more information on alternate functions, refer to the Source Unit column in Table 4-1 for the appropriate section of this document.1294.1.4 GPIO Register Locations129Table 4-30. GPIO Register Addresses (Sheet 1 of 2)1294.2 Interrupt Controller1304.2.1 Interrupt Controller Operation131Figure 4-2. Interrupt Controller Block Diagram1324.2.2 Interrupt Controller Register Definitions1324.2.2.1 Interrupt Controller Mask Register (ICMR)132Table 4-31. ICMR Register Bitmap1334.2.2.2 Interrupt Controller Level Register (ICLR)133Table 4-32. ICLR Register Bitmap1334.2.2.3 Interrupt Controller Control Register (ICCR)134Note: This register is cleared during all resets.134Table 4-33. ICCR Bit Definitions1344.2.2.4 Interrupt Controller IRQ Pending Register (ICIP) and FIQ Pending Register (ICFP)134Table 4-34. ICIP Register Bitmap135Table 4-35. ICFP Register Bitmap1354.2.2.5 Interrupt Controller Pending Register (ICPR)135Table 4-36. ICPR Register Bitmap (Sheet 1 of 3)136Table 4-37. List of First-Level Interrupts (Sheet 1 of 2)1384.2.3 Interrupt Controller Register Locations139Table 4-38. Interrupt Controller Register Addresses1394.3 Real-Time Clock (RTC)1404.3.1 Real-Time Clock Operation140Note: Without trimming, a typical 50ppm oscillator only provides an accuracy of +/- 5 seconds per day.1404.3.2 Real-Time Clock Register Definitions1404.3.2.1 Real-Time Clock Trim Register (RTTR)141Table 4-39. RTTR Bit Definitions1414.3.2.2 Real-Time Clock Alarm Register (RTAR)141Table 4-40. RTAR Bit Definitions1424.3.2.3 Real-Time Clock Counter Register (RCNR)142Table 4-41. RCNR Bit Definitions1424.3.2.4 Real-Time Clock Status Register (RTSR)142Table 4-42. RTSR Bit Definitions1434.3.3 Trim Procedure1434.3.3.1 Oscillator Frequency Calibration1444.3.3.2 RTTR Value Calculations1444.3.4 Real-Time Clock Register Locations146Table 4-43. RTC Register Addresses1464.4 Operating System Timer1464.4.1 Watchdog Timer Operation1461. The current value of the counter is read.1462. An offset is then added to the read value. This offset corresponds to the amount of time before the next time-out (care must be taken to account for counter wraparound).1463. The updated value is written back to OSMR3.1464.4.2 Operating System Timer Register Definitions1474.4.2.1 Operating System Timer Match Register 0-3 (OSMR0, OSMR1, OSMR2, OSMR3)147Table 4-44. OSMR[x] Bit Definitions1474.4.2.2 Operating System Timer Interrupt Enable Register (OIER)147Table 4-45. OIER Bit Definitions1484.4.2.3 Operating System Timer Watchdog Match Enable Register (OWER)148Table 4-46. OWER Bit Definitions1484.4.2.4 Operating System Timer Count Register (OSCR)149Table 4-47. OSCR Bit Definitions1494.4.2.5 Operating System Timer Status Register (OSSR)149Table 4-48. OSSR Bit Definitions1504.4.3 Operating System Timer Register Locations150Table 4-49. OS Timer Register Locations1504.5 Pulse Width Modulator1514.5.1 Pulse Width Modulator Operation151Figure 4-3. PWMn Block Diagram1514.5.1.1 Interdependencies152Note: Take care to ensure that the value of the PWM_PERVALn register remains larger than PWM_DUTYn register. In the case where PWM_PERVALn is less than PWM_DUTYn the output maintains a high state.1524.5.1.2 Reset Sequence1524.5.1.3 Power Management Requirements1524.5.2 Register Descriptions1524.5.2.1 PWM Control Registers (PWM_CTRLn)153Note: The value of the divisor is one greater than the value programmed into the PRESCALE field.153Note: During abrupt shut down the PWM_OUTn signal may be delayed by up to one PSCLK_PWMn clock period.153Table 4-50. PWM_CTRLn Bit Definitions1534.5.2.2 PWM Duty Cycle Registers (PWM_DUTYn)153Note: If FDCYCLE is 0b1, PWM_OUTn is high for the entire period and is not influenced by the value programmed in the DCYCLE bits.154Table 4-51. PWM_DUTYn Bit Definitions1544.5.2.3 PWM Period Control Register (PWM_PERVALn)154Note: Due to internal timing requirements, all changes to any of the PWM registers must be complete a minimum of 4 core clock cy...155Table 4-52. PWM_PERVALn Bit Definitions1554.5.3 Pulse Width Modulator Output Wave Example155Figure 4-4. Basic Pulse Width Waveform1554.5.4 Register Summary156Table 4-53. PWM Register Locations156Direct Memory Access Controller 51595.1 Direct Memory Access Description159Figure 5-1. DMAC Block Diagram1605.1.1 Direct Memory Access Controller Channels1605.1.2 Signal Descriptions161Table 5-1. DMAC Signal List1615.1.2.1 DREQ[1:0] and PREQ[37:0] Signals161Figure 5-2. DREQ timing requirements1615.1.2.2 DMA_IRQ Signal1625.1.3 Direct Memory Access Channel Priority Scheme162Table 5-2. Channel Priority (if all channels are running concurrently)163Table 5-3. Channel Priority163Table 5-4. Priority Schemes Examples1635.1.4 Direct Memory Access Descriptors1645.1.4.1 No-Descriptor Fetch Mode1641. The channel is in an uninitialized state after reset.1642. The DCSR[RUN] bit is set to a 0 and the DCSR[NODESCFETCH] bit is set to a 1.1643. The software writes a source address to the DSADR register, a target address to the DTADR register, and a command to the DCMD register. The DDADR register is reserved in this No- Descriptor Fetch Mode and must not be written.1644. The software writes a 1 to the DCSR[RUN] bit and the No-Descriptor fetches are performed.1645. The channel waits for the request or starts the data transfer, as determined by the DCMD[FLOW] source and target bits.1646. The channel transmits a number of bytes equal to the smaller of DCMD[SIZE] and DCMD[LENGTH].1647. The channel waits for the next request or continues with the data transfer until the DCMD[LENGTH] reaches zero.1648. The DDADR[STOP] is set to a 1 and the channel stops.164Figure 5-3. No-Descriptor Fetch Mode Channel State1655.1.4.2 Descriptor Fetch Mode1651. The channel is in an uninitialized state after reset.1652. The software writes a descriptor address (aligned to a 16-byte boundary) to the DDADR register.1653. The software writes a 1 to the DCSR[RUN] bit.1654. The DMAC fetches the four-word descriptor (assuming that the memory is already set up with the descriptor chain) from the memory indicated by DDADR.1655. The four-word DMA descriptor, aligned on a 16-byte boundary in main memory, loads the these registers:1656. The channel waits for the request or starts the data transfer, as determined by the DCMD[FLOW] source and target bits.1667. The channel transmits a number of bytes equal to the smaller of DCMD[SIZE] and DCMD[LENGTH].1668. The channel waits for the next request or continues with the data transfer until the DCMD[LENGTH] reaches zero.1669. The channel stops or continues with a new descriptor fetch from the memory, as determined by the DDADR[STOP] bit.166Figure 5-4. Descriptor Fetch Mode Channel State1665.1.4.3 Servicing an Interrupt1675.1.5 Channel States1675.1.6 Read and Write Order1675.1.7 Byte Transfer Order1681. Byte[0]1682. Byte[1]1683. Byte[2]1684. Byte[3]168Figure 5-5. Little Endian Transfers1685.1.8 Trailing Bytes1691. Writing a 0 to the DCSR[RUN] bit to stop the DMA channel.1692. Wait until the channel to stops.1693. Make reads to the channel’s registers to check the channel’s status.1694. Perform the programmed I/O transfers to the peripheral.1695. Set the DCSR[RUN] bit to a 1 and reset the DMA channel for future data transfers.1695.2 Transferring Data1695.2.1 Servicing Internal Peripherals1705.2.1.1 Using Flow-Through DMA Read Cycles to Service Internal Peripherals1701. The DMAC sends the memory controller a request to read the number of bytes addressed by DSADRx[31:0] into a 32-byte staging buffer in the DMAC.1702. The DMAC transfers the data to the I/O device addressed in DTADRx[31:0]. DCMD[WIDTH] specifies the width of the internal peripheral to which the data is transferred.1703. At the end of the transfer, DSADRx is increased by the smaller value of DCMDx[LENGTH] and DCMD[SIZE]. DCMDx[LENGTH] is decreased by the same value.1705.2.1.2 Using Flow-Through DMA Write Cycles to Service Internal Peripherals1701. The DMAC transfers the required number of bytes from the I/O device addressed by DSADRx[31:0] to the DMAC write buffer.1712. The DMAC transfers the data to the memory controller via the internal bus. DCMD[WIDTH] specifies the width of the internal peripheral to which the transfer is being made.1713. At the end of the transfer, DTADRx is increased by the smaller value of DCMDx[LENGTH] and DCMD[SIZE]. DCMDx[LENGTH] is decreased by the same number.1715.2.2 Quick Reference for Direct Memory Access Programming171Table 5-5. DMA Quick Reference for Internal Peripherals (Sheet 1 of 2)1715.2.3 Servicing Companion Chips and External Peripherals1725.2.3.1 Using Flow-Through DMA Read Cycles to Service External Peripherals1731. The DMAC sends a request to the memory controller to read the number of bytes addressed by DSADRx[31:0] into a 32-byte staging buffer in the DMAC.1732. The DMAC transfers the data in the buffer to the external device addressed in DTADRx[31:0].1733. At the end of the transfer, DSADRx is increased by the smaller value of DCMDx[LENGTH] and DCMD[SIZE]. DCMDx[LENGTH] is decreased by the same value.173Note: The process shown for a flow-through DMA read to an external peripheral indicates that the external address increases. Some external peripherals, such as FIFOs, do not require an increment in the external address.1735.2.3.2 Using Flow-Through DMA Write Cycles to Service External Peripherals1731. The DMAC transfers the required number of bytes from the I/O device addressed by DSADRx[31:0] to the DMAC write buffer.1732. The DMAC transfers the data to the memory controller via the internal bus.1733. At the end of the transfer, DTADRx is increased by the smaller value of DCMDx[LENGTH] and DCMD[SIZE]. DCMDx[LENGTH] is decreased by the same number.174Note: The process shown for a flow-through DMA write to an external peripheral indicates that the external address increases. Some external peripherals, such as FIFOs, do not require an increment in the external address.1745.2.4 Memory-to-Memory Moves1741. The processor writes to the DCSR[RUN] register bit and starts the memory-to-memory moves.1742. If the processor is in the Descriptor Fetch Mode, the channel configured for the move fetches the four-word descriptor. The c...1743. The DMAC sends a request to the memory controller to read the number of bytes addressed by DSADRx[31:0] into a 32-byte staging buffer in the DMAC.1744. The DMAC generates a write cycle to the location addressed in DTADRx[31:0].1745. At the end of the transfer, DSADRx and DTADRx are increased by the smaller value of DCMD[SIZE] and DCMDx[LENGTH]. If DCMD[SIZ...174Note: The process shown for a memory-to-memory transfer indicates that the external address increases. Some external peripherals, such as FIFOs, do not require an increment in the external address.1745.3 Direct Memory Access Controller Registers1755.3.1 DMA Interrupt Register175Table 5-6. DINT Register Bitmap and Bit Definitions1755.3.2 DMA Channel Control/Status Register175Table 5-7. DMA Channel Control/Status Register Bitmap and Bit Definitions (Sheet 1 of 2)1765.3.3 DMA Request to Channel Map Registers177Table 5-8. DRCMRx Registers Bitmap Bit Definitions1785.3.4 DMA Descriptor Address Registers178Table 5-9. DMA Descriptor Address Register Bit Definitions1795.3.5 DMA Source Address Registers179Table 5-10. DSADRx Register Bitmap Bit Definitions1805.3.6 DMA Target Address Registers180Table 5-11. DTADRx Register Bitmap Bit Definitions1815.3.7 DMA Command Registers181Table 5-12. DCMDx Register Bitmap and Bit Definitions (Sheet 1 of 2)1825.4 Examples183Example 5-1. How to set up and start a channel:184Example 5-2. How to initialize a descriptor list for a channel that is running:184Example 5-3. How to add a descriptor to the end of a descriptor list for a channel that is running:1841. Write a 0 to DCSR[RUN].1842. Wait until the channel stops. The channel stop state is reflected in the DCSR:STOPSTATE bit.1843. In memory, create the descriptor to be added and set its stop bit to a 1.1844. In the memory, manipulate the DDADR of the current chain’s last descriptor such that its DDADR points to the descriptor created in Step 3.1845. In the memory, create a new descriptor that has the same DDADR, DSADR, DTADR, and CMD as those of the stopped DMA channel. The new descriptor is the next descriptor for the list.1846. Examine the DMA channel registers and determine if the channel stopped in the chain’s last descriptor of the chain. If it did...1847. Program the channel’s DDADR with the descriptor created in Step 5.1858. Set the DCSR[RUN] to a 1.185Example 5-4. How to initialize a channel that is going to be used by a direct DMA master:1851. When the companion chip asserts DREQ from 0 to 1, the DMA must fetch four words of the descriptor from one of the chip’s ports.1852. Based on the information contained in the four descriptor words, the DMA must transfer data from the source address to the destination address without waiting for another request from the companion chip.1853. After it transfers the number of bytes in DCMD:LENGTH, the DMA returns to Step 1.1855.5 Direct Memory Access Controller Registers Locations186Table 5-13. DMA Controller Registers (Sheet 1 of 4)186Memory Controller 61916.1 Overview191Figure 6-1. General Memory Interface Configuration1926.2 Functional Description1926.2.1 SDRAM Interface Overview1926.2.2 Static Memory Interface / Variable Latency I/O Interface1936.2.3 16-Bit PC Card / Compact Flash Interface1946.3 Memory System Examples194Figure 6-2. SDRAM Memory System Example195Figure 6-3. Asynchronous Static Memory System Example1966.4 Memory Accesses196Table 6-1. Device Transactions1976.4.1 Reads and Writes1976.4.2 Aborts and Nonexistent Memory1976.5 Memory Configuration Registers198Table 6-2. Memory Interface Control Registers1986.6 Synchronous DRAM Memory Interface1996.6.1 SDRAM MDCNFG Register199Table 6-3. MDCNFG Register Bitmap and Bit Definitions (Sheet 1 of 3)1996.6.2 SDRAM Mode Register Set Configuration Register202Table 6-4. MDMRS Register Bitmap (Sheet 1 of 2)2026.6.2.1 Low-Power SDRAM Mode Register Set Configuration Register203Table 6-5. MDMRSLP Register Bit Definitions2046.6.3 SDRAM MDREFR Register204Table 6-6. MDREFR Register Bitmap (Sheet 1 of 3)2056.6.4 SDRAM Memory Options207Table 6-7. Sample SDRAM Memory Size Options2086.6.4.1 SDRAM Addressing Modes208Figure 6-4. External to Internal Address Mapping Options209Table 6-8. External to Internal Address Mapping for Normal Bank Addressing (Sheet 1 of 2)209Table 6-9. External to Internal Address Mapping for SA-1111 Addressing (Sheet 1 of 2)211Table 6-10. Pin Mapping to SDRAM Devices with Normal Bank Addressing (Sheet 1 of 3)212Table 6-11. Pin Mapping to SDRAM Devices with SA-1111 Addressing (Sheet 1 of 2)2146.6.5 SDRAM Command Overview215Table 6-12. SDRAM Command Encoding216Table 6-13. SDRAM Mode Register Opcode Table2166.6.6 SDRAM Waveforms217Figure 6-5. SDRAM Read217Figure 6-6. SDRAM Read With a Second Read to Same Bank, Same Row217Figure 6-7. SDRAM Read With a Second Read to Same Bank, Different Row218Figure 6-8. SDRAM Read With a Second Read to a Different Bank218Figure 6-9. SDRAM Write219Figure 6-10. SDRAM Write With a Second Write to Same Bank, Same Row2196.7 Synchronous Static Memory Interface2206.7.1 Synchronous Static Memory Configuration Register220Table 6-14. SXCNFG Register Bitmap (Sheet 1 of 6)2206.7.1.1 SMROM Memory Options225Table 6-16. Synchronous Static Memory External to Internal Address Mapping Options (Sheet 1 of 2)2256.7.2 Synchronous Static Memory Mode Register Set Configuration Register226Table 6-17. SXMRS Register Bitmap2266.7.3 Synchronous Static Memory Timing Diagrams227Figure 6-11. SMROM Read Timing Diagram Half-Memory Clock Frequency,2286.7.4 Non-SDRAM Timing SXMEM Operation228Table 6-18. Read Configuration Register Programming Values229Table 6-19. Frequency Code Configuration Values Based on Clock Speed (Sheet 1 of 2)2296.7.4.1 Non-SDRAM Timing Flash Read Timing Diagram230Figure 6-12. Burst-of-Eight Synchronous Flash Timing Diagram (non-divide-by-2 mode)2306.8 Asynchronous Static Memory2316.8.1 Static Memory Interface231Table 6-20. 32-Bit Bus Write Access (Sheet 1 of 2)231Table 6-21. 16-Bit Bus Write Access2326.8.1.1 Static Memory SA-1111 Compatibility Configuration Register (SA1111CR)232Table 6-22. 32-Bit Byte Address Bits MA[1:0] for Reads Based on DQM[3:0]233Table 6-23. 16-Bit Byte Address Bit MA[0] for Reads Based on DQM[1:0]233Table 6-24. SA-1111 Register Bit Definitions2336.8.2 Asynchronous Static Memory Control Registers (MSC0 - 2)234Table 6-25. MSC0/1/2 Register Bit Definitions (Sheet 1 of 3)235Table 6-26. Asynchronous Static Memory and Variable Latency I/O Capabilities (Sheet 1 of 2)2376.8.3 ROM Interface2386.8.3.1 ROM Timing Diagrams and Parameters238Figure 6-14. 32-Bit Burst-of-Eight ROM or Flash Read Timing Diagram (MSC0:RDF = 4, MSC0:RDN = 1, MSC0:RRR = 1)239Figure 6-15. Eight-Beat Burst Read from 16-Bit Burst-of-Four ROM or Flash (MSC0:RDF = 4, MSC0:RDN = 1, MSC0:RRR = 0)240Figure 6-16. 32-Bit Non-burst ROM, SRAM, or Flash Read Timing Diagram - Four Data Beats (MSC0:RDF = 4, MSC0:RRR = 1)2416.8.4 SRAM Interface Overview2416.8.4.1 SRAM Timing Diagrams and Parameters241Figure 6-17. 32-Bit SRAM Write Timing Diagram (4-beat Burst) (MSC0:RDN = 2, MSC0:RRR = 1)2426.8.5 Variable Latency I/O (VLIO) Interface Overview2436.8.5.1 Variable Latency I/O Timing Diagrams and Parameters243Figure 6-18. 32-Bit Variable Latency I/O Read Timing (Burst-of-Four, One Wait Cycle Per Beat) (MSC0:RDF = 2, MSC0:RDN = 2, MSC0:RRR = 1)244Figure 6-19. 32-Bit Variable Latency I/O Write Timing (Burst-of-Four, Variable Wait Cycles Per Beat)2456.8.6 FLASH Memory Interface2466.8.6.1 Flash Memory Timing Diagrams and Parameters246Figure 6-20. Asynchronous 32-Bit Flash Write Timing Diagram (2 Writes)2476.9 16-Bit PC Card/Compact Flash Interface2476.9.1 Expansion Memory Timing Configuration Register248Table 6-27. MCMEMx Register Bitmap248Table 6-28. MCATTx Register Bitmap248Table 6-29. MCIOx Register Bitmap249Table 6-30. Card Interface Command Assertion Code Table2496.9.2 Expansion Memory Configuration Register (MECR)251Table 6-31. MECR Configuration Register Bitmap2516.9.3 16-Bit PC Card Overview251Figure 6-24. 16-Bit PC Card Memory Map252Table 6-32. Common Memory Space Write Commands253Table 6-33. Common Memory Space Read Commands253Table 6-34. Attribute Memory Space Write Commands253Table 6-35. Attribute Memory Space Read Commands253Table 6-36. 16-Bit I/O Space Write Commands (nIOIS16 = 0)253Table 6-37. 16-Bit I/O Space Read Commands (nIOIS16 = 0)253Table 6-38. 8-Bit I/O Space Write Commands (nIOIS16 = 1)254Table 6-39. 8-Bit I/O Space Read Commands (nIOIS16 = 1)2546.9.4 External Logic for 16-Bit PC Card Implementation254Figure 6-25. Expansion Card External Logic for a One-Socket Configuration255Figure 6-26. Expansion Card External Logic for a Two-Socket Configuration2566.9.5 Expansion Card Interface Timing Diagrams and Parameters257Figure 6-27. 16-Bit PC Card Memory or I/O 16-Bit (Half-word) Access257Figure 6-28. 16-Bit PC Card I/O 16-Bit Access to 8-Bit Device2586.10 Companion Chip Interface258Figure 6-29. Alternate Bus Master Mode259Figure 6-30. Variable Latency IO2596.10.1 Alternate Bus Master Mode2601. The alternate master asserts MBREQ.2602. The memory controller performs an SDRAM refresh if SDRAM clocks and clock enable are turned on.2603. If the MDCNFG:SA1111x bit is enabled, the memory controller sends the SDRAMs an MRS command to change the SDRAM burst length to one. The burst length is changed to one for SA-1111 compatibility.2604. The processor deasserts SDCKE<1> at time (t).2605. The processor three-states SDRAM outputs at time (t + 1 MEMCLK).2606. The processor asserts MBGNT at time (t + 2 MEMCLKS).2607. The Alternate master drives SDRAM outputs before time (t + 3 MEMCLKS).2608. The processor asserts SDCKE<1> at time (t + 4 MEMCLKS).2601. The alternate master deasserts MBREQ.2602. The processor deasserts SDCKE<1> at time (t).2603. The processor deasserts MBGNT at time (t + 1 MEMCLK).2604. The alternate master three-states SDRAM outputs prior to time (t + 2 MEMCLKS).2605. The processor drives SDRAM outputs at time (t + 3 MEMCLKS).2606. The processor asserts SDCKE<1> at time (t + 4 MEMCLKS).2607. The memory controller performs an SDRAM refresh if SDRAM clocks and clock enable are turned on.2618. The memory controller sends an MRS command to the SDRAMs if the MDCNFG:SA1111x bit is enabled. This changes the SDRAM burst length back to four.2616.10.1.1 GPIO Reset2616.10.1.2 nVDD_FAULT/nBATT_FAULT with PMCR[IDAE] Disabled261Note: The alternate bus master must de-assert MBREQ when nVDD_FAULT or nBATT_FAULT is asserted.2616.10.1.3 nVDD_FAULT/nBATT_FAULT with PMCR[IDAE] Enabled261Note: The alternate bus master must de-assert MBREQ when nVDD_FAULT or nBATT_FAULT is asserted.2626.11 Options and Settings for Boot Memory2626.11.1 Alternate Booting2626.11.2 Boot Time Defaults2626.11.2.1 BOOT_DEF Read-Only Register (BOOT_DEF)262Table 6-40. BOOT_DEF Register Bitmap2626.11.2.2 Boot-Time Configurations263Figure 6-31. Asynchronous Boot Time Configurations and Register Defaults263Figure 6-32. SMROM Boot Time Configurations and Register Defaults264Figure 6-33. SMROM Boot Time Configurations and Register Defaults (Continued)2656.11.3 Memory Interface Reset and Initialization265Table 6-41. Memory Controller Pin Reset Values2666.12 Hardware, Watchdog, or Sleep Reset Operation2661. After hardware reset, complete a power-on wait period of 200 ms, which allows the internal clocks that generate SDCLK to stab...266a. Write MSC0, MSC1, MSC2266b. Write MECR, MCMEM0, MCMEM1, MCATT0, MCATT1, MCIO0, MCIO1266c. Write MDREFR:K0RUN and MDREFR:E0PIN. Configure MDREFR:K0DB2. Retain the current values of MDREFR:APD and MDREFR:SLFRSH. MDREFR:DRI must contain a valid value. Deassert MDREFR:KxFREE.2662. In systems that contain synchronous static memory, write to the SXCNFG to configure all appropriate bits, including the enabl...266a. Write SXCNFG (with enable bits asserted).267b. Write to SXMRS to trigger an MRS command to all enabled banks of synchronous static memory.267c. SXLCR must only be written when it is required by the SDRAM-like synchronous flash device for command encoding.2673. In systems that contain SDRAM, transition the SDRAM controller through this state sequence:267a. self-refresh and clock-stop267b. self-refresh267c. power-down267d. PWRDNX267e. NOP2674. The SDRAM clock run and enable bits (MDREFR:K1RUN, K2RUN, and E1PIN), described in Section 6.6.3. MDREFR:SLFRSH must not be asserted.267a. Write MDREFR:K1RUN , K2RUN (self-refresh and clock-stop -> self-refresh). Configure MDREFR:K1DB2,K2DB2.267b. Write MDREFR:SLFRSH (self-refresh -> power-down).267c. Write MDREFR:E1PIN (power-down -> PWRDNX).267d. a write is not required for this state transition (PWRDNX -> NOP).267e. Configure, but do not enable, each SDRAM partition pair.267f. Write MDCNFG (with enable bits deasserted), MDCNFG:DE3:2,1:0 set to ‘0’.2675. For systems that contain SDRAM, wait a specified NOP power-up waiting period required by the SDRAMs to ensure the SDRAMs receive a stable clock with a NOP condition2676. Ensure the Data Cache bit (DCACHE) is disabled. If this bit is enabled, the refreshes triggered by the next step may not pass through to the Memory Controller properly.2677. On a hardware reset in systems that contain SDRAM, trigger the specified number (typically eight) of refresh cycles by attemp...2678. Re-enable the DCACHE bit if it is disabled.2679. In systems that contain SDRAM, enable SDRAM partitions by setting MDCNFG:DE3:2,DE1:0.26710. In systems that contain SDRAM, write the MDMRS register to trigger an MRS command to all enabled banks of SDRAM. For each SD...26711. Optionally, in systems that contain SDRAM or synchronous static memory, enable auto- power-down by setting MDREFR:APD.2686.13 General Purpose Input/Output Reset Procedure2681. The SDRAM refresh time is chosen by taking the specified refresh time, typically 64 ms, and subtracting the GPIO reset time (...2682. In the boot code, determine the type of reset. If the reset was a GPIO reset, then refresh all the SDRAM rows. Refreshing all the SDRAM rows preserves their value in case GPIO reset occurs again.2683. After all the SDRAM rows have been refreshed, enable GPIO reset.268Liquid Crystal Display Controller 72697.1 Overview2697.1.1 Features270Figure 7-1. LCD Controller Block Diagram2717.1.2 Pin Descriptions272Table 7-1. Pin Descriptions2727.2 Liquid Crystal Display Controller Operation2727.2.1 Enabling the Controller2727.2.2 Disabling the Controller2737.2.3 Resetting the Controller2737.3 Detailed Module Descriptions2737.3.1 Input FIFOs2747.3.2 Lookup Palette2747.3.3 Temporal Modulated Energy Distribution (TMED) Dithering274Figure 7-2. Temporal Dithering Concept - Single Color275Figure 7-3. Compare Range for TMED2751. The new CV is sent through the color offset adjuster, where it is used as a lookup into the matrix selected by TCR[COAM].2762. Either the 8-bit output of the chosen matrix or 00h, as selected by TCR[COAE], is added to the appropriate color’s seed register value in register TRGBR to form an offset.2763. This offset is added to the result of the multiplication of the frame number and the CV to form the algorithm’s lower boundary (only the lower 8 bits are used).2764. The CV is added to the lower boundary to obtain the upper boundary.2765. Row (line) and column (pixel) counters are combined with beat suppression (offset) values in the pixel number adjuster and address generator to form yet another address for a matrix lookup.2766. The output of the chosen matrix is compared to the lower and upper boundaries in the data generator.2767. If the matrix output is between these boundaries or the original pixel value is 254 or 255, then the data output to the panel is one. In all other cases, it is zero.276Figure 7-4. TMED Block Diagram2767.3.4 Output FIFOs2777.3.5 Liquid Crystal Display Controller Pin Usage2777.3.5.1 Passive-Display Timing2777.3.5.2 Active-Display Timing2787.3.5.3 Pixel Data Pins (L_DDx)2787.3.6 Direct Memory Access2787.4 Liquid Crystal Display External Palette and Frame Buffers2797.4.1 External-Palette Buffer279Figure 7-5. Palette-Buffer Format2807.4.2 External-Frame Buffer280Figure 7-6. 1-Bit Per Pixel Data Memory Organization280Figure 7-7. 2-Bits Per Pixel Data Memory Organization281Figure 7-8. 4-Bits Per Pixel Data Memory Organization281Figure 7-9. 8-Bits Per Pixel Data Memory Organization281Figure 7-10. 16-Bits Per Pixel Data Memory Organization - Passive Mode281Note: For passive 16 bits per pixel operation, the Raw Pixel Data must be organized as shown above.282Figure 7-11. 16-Bits Per Pixel Data Memory Organization - Active Mode282Note: For active 16-bits per pixel operation, the raw pixel data is sent directly to the LCD panel pins and must be in the format required by the LCD panel.282Note: There are two special conditions: 8 bits per pixel monochrome screens with double-pixel-data mode and 8- or 16-bits per pixel passive color screens require a multiple of 8 pixels for each line.2827.5 Functional Timing283Figure 7-12. Passive Mode Start-of-Frame Timing284Figure 7-13. Passive Mode End-of-Frame Timing285Figure 7-14. Passive Mode Pixel Clock and Data Pin Timing285Figure 7-15. Active Mode Timing286Figure 7-16. Active Mode Pixel Clock and Data Pin Timing2877.6 Liquid Crystal Display Register Descriptions2877.6.1 LCD Controller Control Register 0 (LCCR0)288Table 7-2. LCD Controller Control Register 0 (Sheet 1 of 3)2887.6.1.1 LCD Output Fifo Underrun Mask (OUM)2907.6.1.2 Branch Mask (BM)2907.6.1.3 Palette DMA Request Delay (PDD)2907.6.1.4 LCD Quick Disable Interrupt Mask (QDM)2917.6.1.5 LCD Disable (DIS)2917.6.1.6 Double-Pixel Data (DPD) Pin Mode291Note: DPD does not affect dual-panel monochrome mode, any of the color modes, or active mode. Clear DPD in these modes.2917.6.1.7 Passive/Active Display Select (PAS)291Figure 7-17. Frame Buffer/Palette Output to LCD Data Pins in Active Mode2937.6.1.8 End of Frame Mask (EFM)2937.6.1.9 Input Fifo Underrun Mask (IUM)2937.6.1.10 Start Of Frame Mask (SFM)2937.6.1.11 LCD Disable Done Interrupt Mask (LDM)2937.6.1.12 Single-/Dual-Panel Select (SDS)294Note: SDS must be set to 0 in active mode (PAS=1).294Note: In passive color mode, the data pin ordering switches. Figure 7-18 on page 7-27 shows the LCD data pin pixel ordering.294Table 7-3. LCD Controller Data Pin Utilization294Figure 7-18. LCD Data-Pin Pixel Ordering2957.6.1.13 Color/Monochrome Select (CMS)2957.6.1.14 LCD Enable (ENB)2967.6.2 LCD Controller Control Register 1 (LCCR1)296Table 7-4. LCD Controller Control Register 1 (Sheet 1 of 2)2967.6.2.1 Beginning-of-Line Pixel Clock Wait Count (BLW)2977.6.2.2 End-of-Line Pixel Clock Wait Count (ELW)2977.6.2.3 Horizontal Sync Pulse Width (HSW)297Note: For this section, the term “pulse width” refers to the time which L_LCLK is asserted, rather than the time for a cycle of the line clock to occur.2977.6.2.4 Pixels Per Line (PPL)2987.6.3 LCD Controller Control Register 2 (LCCR2)298Table 7-5. LCD Controller Control Register 22997.6.3.1 Beginning-of-Frame Line Clock Wait Count (BFW)2997.6.3.2 End-of-Frame Line Clock Wait Count (EFW)2997.6.3.3 Vertical Sync Pulse Width (VSW)3007.6.3.4 Lines Per Panel (LPP)3017.6.4 LCD Controller Control Register 3 (LCCR3)301Table 7-6. LCD Controller Control Register 3 (Sheet 1 of 2)3017.6.4.1 Double Pixel Clock (DPC)3027.6.4.2 Bits Per Pixel (BPP)3027.6.4.3 Output Enable Polarity (OEP)3037.6.4.4 Pixel Clock Polarity (PCP)3037.6.4.5 Horizontal Sync Polarity (HSP)3037.6.4.6 Vertical Sync Polarity (VSP)3037.6.4.7 AC Bias Pin Transitions Per Interrupt (API)3047.6.4.8 AC Bias Pin Frequency (ACB)3047.6.4.9 Pixel Clock Divider (PCD)3047.6.5 LCD Controller DMA3057.6.5.1 Frame Descriptors306Note: If only one frame buffer is used in external memory, the FDADRx field (word[0] of the frame descriptor) must point back to itself.3067.6.5.2 LCD DMA Frame Descriptor Address Registers (FDADRx)306Table 7-7. LCD DMA Frame Descriptor Address Registers3067.6.5.3 LCD DMA Frame Source Address Registers (FSADRx)306Table 7-8. LCD DMA Frame Source Address Registers3077.6.5.4 LCD DMA Frame ID Registers (FIDRx)307Table 7-9. LCD Frame ID Registers3077.6.5.5 LCD DMA Command Registers (LDCMDx)308Table 7-10. LCD DMA Command Registers308Note: Never set the PAL bit in LDCMD1, since the palette is always loaded with Channel 0.309Note: Use a separate descriptor to fetch the frame data.3097.6.6 LCD DMA Frame Branch Registers (FBRx)309Note: In dual-panel mode, write to both FBR0 and FBR1 in order to branch properly.310Table 7-11. LCD DMA Frame Branch Registers (FBRx)3107.6.7 LCD Controller Status Register (LCSR)310Table 7-12. LCD Controller Status Register (Sheet 1 of 2)3117.6.7.1 Subsequent Interrupt Status (SINT)312Note: If a branched-to descriptor has SOF set, both the SOF and branch interrupts are signalled at the same time, and SINT is not set.3127.6.7.2 Branch Status (BS)3127.6.7.3 End Of Frame Status (EOF)3127.6.7.4 LCD Quick Disable Status (QD)3137.6.7.5 Output FIFO Underrun Status (OU)3137.6.7.6 Input FIFO Underrun Upper Panel Status (IUU)3137.6.7.7 Input FIFO Underrun Lower Panel Status (IUL)3137.6.7.8 AC Bias Count Status (ABC)3137.6.7.9 Bus Error Status (BER)3137.6.7.10 Start Of Frame Status (SOF)3147.6.7.11 LCD Disable Done Status (LDD)3147.6.8 LCD Controller Interrupt ID Register (LIIDR)314Table 7-13. LCD Controller Interrupt ID Register3147.6.9 TMED RGB Seed Register314Table 7-14. TMED RGB Seed Register3157.6.10 TMED Control Register (TCR)315Table 7-15. TMED Control Register (Sheet 1 of 2)3157.6.10.1 TMED Energy Distribution Select (TED)3167.6.10.2 TMED Horizontal Beat Suppression (THBS)3167.6.10.3 TMED Vertical Beat Suppression (TVBS)3167.6.10.4 TMED Frame Number Adjuster Enable (FNAME)3177.6.10.5 TMED Color Offset Adjuster Enable (COAE)3177.6.10.6 TMED Frame Number Adjuster Matrix (FNAM)3177.6.10.7 TMED Color Offset Adjuster Matrix (COAM)3177.6.11 LCD Controller Register Summary317Table 7-16. LCD Controller Register Locations (Sheet 1 of 2)317Synchronous Serial Port Controller 83198.1 Overview3198.2 Signal Description3198.2.1 External Interface to Synchronous Serial Peripherals319Table 8-1. External Interface to Codec3198.3 Functional Description3208.3.1 Data Transfer3208.4 Data Formats3208.4.1 Serial Data Formats for Transfer to/from Peripherals3208.4.1.1 SSP Format Details321Figure 8-1. Texas Instruments’ Synchronous Serial Frame* Format3228.4.1.2 SPI Format Details322Figure 8-2. Motorola SPI* Frame Format3238.4.1.3 Microwire Format Details323Figure 8-3. National Microwire* Frame Format3248.4.2 Parallel Data Formats for FIFO Storage3248.5 FIFO Operation and Data Transfers3248.5.1 Using Programmed I/O Data Transfers3258.5.2 Using DMA Data Transfers3251. Program the transmit/receive byte count (buffer length) and burst size.3252. Program the DMA request to channel map register for SSP.3253. Set the run bit in the DMA control register.3254. Set the desired values in the SSP control registers.3255. Enable the SSP by setting the SSE bit in the SSP Control Register 0 (see Section 8.7.1).3256. Wait for both the DMA transmit and receive interrupt requests.325Note: If the transmit/receive byte count is not a multiple of the transfer burst size, the user must check the SSP Status Register (see Section 8.7.4) to determine if any data remains in the receive FIFO.3258.6 Baud Rate Generation3258.7 SSP Serial Port Registers3258.7.1 SSP Control Register 0 (SSCR0)326Table 8-2. SSP Control Register 0 (SSCR0) Bitmap and Bit Definitions3278.7.1.1 Data Size Select (DSS)3278.7.1.2 Frame Format (FRF)3288.7.1.3 External Clock Select (ECS)328Note: Disable the SSPC by setting the SSPC Enable (SSE) to a 0 before setting the ECS bit to a 1. Set the ECS bit to 1 either before the SSE is set to 1 or at the same time.3288.7.1.4 Synchronous Serial Port Enable (SSE)328Note: After reset or after the SSCR0[SSE] is cleared, ensure that the SSCR1 and SSSR registers are properly reconfigured or rese...3288.7.1.5 Serial Clock Rate (SCR)3298.7.2 SSP Control Register 1 (SSCR1)329Table 8-3. SSP Control Register 1 (SSCR1) Bitmap and Definitions (Sheet 1 of 2)3298.7.2.1 Receive FIFO Interrupt Enable (RIE)3308.7.2.2 Transmit FIFO Interrupt Enable (TIE)3308.7.2.3 Loop Back Mode (LBM)330Note: Loop back mode cannot be used with Microwire frame format.3318.7.2.4 Serial Clock Polarity (SPO)331Note: The SPO bit is ignored for all data frame formats except for the Motorola SPI format (FRF=00).3318.7.2.5 Serial Clock Phase (SPH)331Figure 8-4. Motorola SPI* Frame Formats for SPO and SPH Programming3328.7.2.6 Microwire Transmit Data Size (MWDS)3328.7.2.7 Transmit FIFO Interrupt/DMA Threshold (TFT)3328.7.2.8 Receive FIFO Interrupt/DMA Threshold (RFT)333Table 8-4. TFT and RFT Values for DMA Servicing3338.7.3 SSP Data Register (SSDR)333Note: Both FIFOs are cleared when the SSPC is reset or a zero is written to the SSCR0[SSE] bit.334Table 8-5. SSP Data Register (SSDR) Bitmap and Definitions3348.7.4 SSP Status Register (SSSR)334Table 8-6. SSP Status Register (SSSR) Bitmap and Bit Definitions3358.7.4.1 Transmit FIFO Not Full Flag (TNF) (read-only, non-interruptible)3358.7.4.2 Receive FIFO Not Empty Flag (RNE) (read-only, non-interruptible)3368.7.4.3 SSP Busy Flag (BSY) (read-only, non-interruptible)3368.7.4.4 Transmit FIFO Service Request Flag (TFS) (read-only, maskable interrupt)3368.7.4.5 Receive FIFO Service Request Flag (RFS) (read-only, maskable interrupt)3368.7.4.6 Receiver Overrun Status (ROR) (read/write, non-maskable interrupt)3368.7.4.7 Transmit FIFO Level3378.7.4.8 Receive FIFO Level3378.7.5 SSP Register Address Map337Table 8-7. SSP Register Address Map337Inter-Integrated Circuit Bus Interface Unit 9339This chapter describes the Inter-Integrated Circuit (I2C) bus interface unit, including the operation modes and setup for the Intel® PXA26x Processor Family.3399.1 Overview339The I2C bus was created by the Phillips Corporation and is a serial bus with a two-pin interface. The SDA data pin is used for i...339The I2C unit enables the processor to communicate with I2C peripherals and microcontrollers for system management functions. The...339The I2C unit is a peripheral device that resides on the processor internal bus. Data is transmitted to and received from the I2C...339Note: The I2C unit does not support the hardware general call, 10-bit addressing, or CBUS compatibility.3399.2 Signal Description339The I2C unit signals are SDA and SCL. Table 9-1 describes each signal’s function.339Table 9-1. MMC Signal Description3399.3 Functional Description339The I2C bus defines a serial protocol for passing information between agents on the I2C bus using a two pin interface that consi...339Table 9-2. I2C Bus Definitions340For example, when the processor I2C unit acts as a master on the bus, it addresses an EEPROM as a slave to receive data (see Fig...340Figure 9-1. I2C Bus Configuration Example340The I2C bus allows for a multi-master system, which means more than one device can initiate data transfers at the same time. To ...340The I2C bus serial operation uses an open-drain wired-AND bus structure, which allows multiple devices to drive the bus lines an...340I2C transactions are either initiated by the processor as a master or received by the processor as a slave. Both conditions may result in reads, writes, or both to the I2C bus.3409.3.1 Operational Blocks341The I2C unit is connected to the peripheral bus. The processor interrupt mechanism can be used to notify the CPU that there is a...341The I2C unit initiates an interrupt to the processor when a buffer is full, a buffer is empty, the I2C unit slave address is det...341The 8-bit I2C Data Buffer Register (IDBR) is loaded with a byte of data from the shift register interface to the I2C bus when receiving data and from the processor internal bus when writing data. The serial shift register is not user accessible.341The I2C Control Register (ICR) and the I2C Status Register (ISR) are located in the I2C memory- mapped address space. The registers and their functions are defined in Section 9.9, “Register Definitions”.341The I2C unit supports a fast mode operation of 400 Kbits/sec and a standard mode of 100 Kbits/sec. Refer to the I2C-Bus Specification for details.3419.3.2 Inter-Integrated Circuit Bus Interface Modes341The I2C unit can accomplish a transfer in different operation modes. Table 9-3 summarizes the different modes.341Table 9-3. Modes of Operation341While the I2C unit is idle, it defaults to slave-receive mode. This allows the interface to monitor the bus and receive any slave addresses intended for the processor.342When the I2C unit receives an address that matches the 7-bit address found in the I2C Slave Address Register (ISAR) or the gener...342When the I2C unit initiates a read or write on the I2C bus, it transitions from the default slave- receive mode to the master-tr...3429.3.3 Start and Stop Bus States342The I2C bus specification defines a transaction START, used at the beginning of a transfer, and a transaction STOP bus state, us...342The I2C unit uses the ICR[START] and ICR[STOP] bits to:342Table 9-4 defines the START and STOP bits in the ICR.342Table 9-4. START and STOP Bit Definitions343Figure 9-2 shows the relationship between the SDA and SCL lines for START and STOP conditions.343Figure 9-2. Start and Stop Conditions3439.3.3.1 START Condition343The START condition (ICR[START]=1, ICR[STOP]=0) initiates a master transaction or repeated START. Before it sets the START ICR b...343The START condition is not cleared by the I2C unit. If the I2C loses arbitration while initiating a START, it may re-attempt the...3439.3.3.2 No START or STOP Condition344Use the no START or STOP condition (ICR[START]=0, ICR[STOP]=0) in master-transmit mode while the I2C unit is transmitting multip...344After each byte transfer, including the ICR[ACKNAK] bit, the I2C unit holds the SCL line low to insert wait states until the ICR[TB] bit is set. This action notifies the I2C unit to release the SCL line and allow the next information transfer to proceed.3449.3.3.3 STOP Condition344The STOP condition (ICR[START]=X, ICR[STOP]=1) terminates a data transfer. In master- transmit mode, the ICR[STOP] bit and the I...344Figure 9-3. START and STOP Conditions3449.4 Inter-Integrated Circuit Bus Operation344The I2C unit transfers data in 1-byte increments and always follows this sequence:3441. START3442. 7-bit slave address3443. R/nW Bit3444. Acknowledge pulse3445. 8 Bits of data3446. ACK/NAK pulse3447. Repeat of Steps 5 and 6 for required number of bytes3448. Repeated START (Repeat Step 1) or STOP3459.4.1 Serial Clock Line (SCL) Generation345When the I2C unit is in master-transmit or master-receive mode, it generates the I2C clock output. The SCL clock is generated by setting the ICR[FM] bit for either 100 KBit/sec or 400 Kbit/sec operation.3459.4.2 Data and Addressing Management345The I2C Data Buffer Register (IDBR) and the I2C Slave Address Register (ISAR) manage data and slave addressing. The IDBR (see Se...345When the I2C unit is in master- or slave-transmit mode:345When the I2C unit is in master- or slave-receive mode:3459.4.2.1 Addressing a Slave Device345As a master device, the I2C unit must compose and send the first byte of a transaction. This byte consists of the slave address ...345Figure 9-4. Data Format of First Byte in Master Transaction346The first byte transmission must be followed by an ACK pulse from the addressed slave. When the transaction is a write, the I2C ...346When the I2C unit is enabled and idle, it remains in slave-receive mode and monitors the I2C bus for a START signal. When it det...3469.4.3 Inter-Integrated Circuit Acknowledge346Every I2C byte transfer must be accompanied by an acknowledge pulse that the master- or slave- receiver must generate. The transmitter must release the SDA line for the receiver to transmit the acknowledge pulse (see Figure 9-5).346Figure 9-5. Acknowledge on the I2C Bus346In master-transmit mode, if the target slave-receiver device cannot generate the acknowledge pulse, the SDA line remains high. T...347In master-receive mode, the I2C unit sends a negative acknowledge (NAK) to signal the slave- transmitter to stop sending data. T...347In slave mode, the I2C unit automatically acknowledges its own slave address, independent of the value in the ICR[ACKNAK] bit. I...347In slave-transmit mode, the I2C unit receives a NAK from the master to indicate the last byte has been transferred. The master then sends a STOP or repeated START. The ISR[UB] bit remains set until a STOP or repeated START is received.3479.4.4 Arbitration347The I2C bus’ multi-master capabilities require I2C bus arbitration. Arbitration takes place when two or more masters generate a START condition in the minimum hold time.347Arbitration can take a long time. If the address bit and the R/nW are the same, the arbitration scheme considers the data. Becau...3479.4.4.1 SCL Arbitration347Each master on the I2C bus generates its own clock on the SCL line for data transfers. As a result, clocks with different freque...347Clock synchronization is through the wired-AND connection of the I2C interfaces to the SCL line. When a master’s clock changes f...347Figure 9-6. Clock Synchronization During the Arbitration Procedure348The first master to complete its high period pulls the SCL line low.3489.4.4.2 SDA Arbitration348Arbitration on the SDA line can continue for a long time because it starts with the address and R/ nW bits and continues through...348Figure 9-7. Arbitration Procedure of Two Masters348If the I2C unit loses arbitration as the address bits are transferred and it is not addressed by the address bits, the I2C unit ...349If the I2C unit loses arbitration because another bus master addresses the processor as a slave device, the I2C unit switches to...349Note: Software must prevent the I2C unit from starting a transaction to its own slave address because such a transaction puts the I2C unit in an indeterminate state.349Arbitration has boundary conditions in case an arbitration process is interrupted by a repeated START or STOP condition transmit...349These situations occur if different masters write identical data to the same target slave simultaneously and arbitration cannot be resolved after the first data byte transfer.349Note: Software ensures that arbitration is resolved quickly. For example, software can ensure that masters send unique data by r...3499.4.5 Master Operations349When software initiates a read or write on the I2C bus, the I2C unit transitions from the default slave-receive mode to master-t...349The CPU writes to the ICR register to initiate a master transaction. Data is read and written from the I2C unit through the memory-mapped registers. Table 9-5 describes the I2C unit’s responsibilities as a master device.349Table 9-5. Master Transactions (Sheet 1 of 2)350When the CPU needs to read data, the I2C unit transitions from slave-receive mode to master- transmit mode to transmit the start...351Figure 9-8. Master-Receiver Read from Slave-Transmitter352Figure 9-9. Master-Receiver Read from Slave-Transmitter / Repeated Start / Master- Transmitter Write to Slave-Receiver352Figure 9-10. A Complete Data Transfer3529.4.6 Slave Operations353Table 9-6 describes how the I2C unit operates as a slave device.353Table 9-6. Slave Transactions353Figure 9-11 through Figure 9-13 are examples of I2C transactions and show the relationships between master and slave devices.354Figure 9-11. Master-Transmitter Write to Slave-Receiver354Figure 9-12. Master-Receiver Read to Slave-Transmitter354Figure 9-13. Master-Receiver Read to Slave-Transmitter, Repeated START, Master-Transmitter Write to Slave-Receiver3549.4.7 General Call Address354A general call address is a transaction with a slave address of 0x00. When a device requires the data from a general call addres...354The I2C unit supports sending and receiving general call address transfers on the I2C bus. When software sends a general call me...355If the I2C unit acts as a slave and receives a general call address while the ICR[GCD] bit is clear, it:355If the I2C unit receives a general call address and the ICR[GCD] bit is set, it ignores the general call address.355Figure 9-14. General Call Address355Table 9-7. General Call Address Second Byte Definitions355Software must ensure that the I2C unit is not busy before it asserts a reset. Software must also ensure that the I2C bus is idle...355When B=1, the sequence is a hardware general call and is not supported by the I2C unit. Refer to the I2C-Bus Specification for information on hardware general calls.355I2C 10-bit addresses and CBUS compatibility are not supported.3559.5 Slave Mode Programming Examples356The following sub-sections describe slave mode programming.3569.5.1 Initialize Unit356To initialize the unit:3561. Set the slave address in the ISAR.3562. Enable desired interrupts in the ICR.3563. Set the ICR[IUE] bit to enable the I2C unit.3569.5.2 Write n Bytes as a Slave356To write n bytes as a slave:3561. When a Slave Address Detected interrupt occurs. Read ISR: slave address detected (1), unit busy (1), R/nW bit (1), ACK/NAK (0)3562. Write a 1 to the ISR[SAD] bit to clear the interrupt.3563. Return from interrupt.3564. Load data byte to transfer in the IDBR.3565. Set ICR[TB] bit.3566. When a IDBR transmit empty interrupt occurs. Read ISR: IDBR transmit empty (1), ACK/NAK (0), R/nW bit (0)3567. Load data byte to transfer in the IDBR.3568. Set the ICR[TB] bit.3569. Write a 1 to the ISR[ITE] bit to clear interrupt.35610. Return from interrupt.35611. Repeat steps 6 to 10 for n-1 times. If, at any time, the slave does not have data, the I2C unit keeps SCL low until data is available.35612. When a IDBR transmit empty interrupt occurs. Read ISR: IDBR transmit empty (1), ACK/NAK (1), R/nW bit (0)35613. Write a 1 to the ISR[ITE] bit to clear interrupt.35614. Return from interrupt35615. When slave stop detected interrupt occurs. Read ISR: unit busy (0), slave STOP detected (1)35616. Write a 1 to the ISR[SSD] bit to clear interrupt.3569.5.3 Read n Bytes as a Slave357To read n bytes as a slave:3571. When a slave address detected interrupt occurs. Read ISR: slave address detected (1), unit busy (1), R/nW bit (0)3572. Write a 1 to the ISR[SAD] bit to clear the interrupt.3573. Return from interrupt.3574. Set ICR[TB] bit to initiate the transfer.3575. When an IDBR receive full interrupt occurs. Read ISR: IDBR receive full (1), ACK/NAK (0), R/nW bit (0)3576. Read IDBR to get the received byte.3577. Write a 1 to the ISR[IRF] bit to clear interrupt.3578. Return from interrupt.3579. Repeat steps 4 to 8 for n-1 times. Once the IDBR is full, the I2C unit will keep SCL low until the data is read.35710. Set ICR[TB] bit to release I2C bus and allow next transfer.35711. When a slave stop detected interrupt occurs. Read ISR: unit busy (0), slave STOP detected (1)35712. Write a 1 to the ISR[SSD] bit to clear interrupt.3579.6 Master Programming Examples357The following sub-sections describe master programming.3579.6.1 Initialize Unit357To initialize the unit:3571. Set the slave address in the ISAR.3572. Enable desired interrupts in the ICR. Do not enable arbitration loss detected interrupt3573. Set the ICR[IUE] and ICR[SCLE] bits to enable the I2C unit and SCL.3579.6.2 Write 1 Byte as a Master357To write 1 byte as a master:3571. Load target slave address and R/nW bit in the IDBR. R/nW must be 0 for a write.3572. Initiate the write. Set ICR[START], clear ICR[STOP], clear ICR[ALDIE], set ICR[TB]3573. When an IDBR transmit empty interrupt occurs. Read ISR: IDBR transmit empty (1), unit busy (1), R/nW bit (0)3574. Write a 1 to the ISR[ITE] bit to clear interrupt.3575. Write a 1 to the ISR[ALD] bit if set. If the master loses arbitration, it performs an address retry when the bus becomes free. The arbitration loss detected interrupt is disabled to allow the address retry.3586. Load data byte to be transferred in the IDBR.3587. Initiate the write. Clear ICR[START], set ICR[STOP], set ICR[ALDIE], set ICR[TB]3588. When an IDBR transmit empty interrupt occurs (unit is sending STOP). Read ISR: IDBR transmit empty (1), unit busy (x), R/nW bit (0)3589. Write a 1 to the ISR[ITE] bit to clear the interrupt.35810. Clear ICR[STOP] bit.3589.6.3 Read 1 Byte as a Master358To read 1 byte as a master:3581. Load target slave address and R/nW bit in the IDBR. R/nW must be 1 for a read.3582. Initiate the write. Set ICR[START], clear ICR[STOP], clear ICR[ALDIE], set ICR[TB]3583. When an IDBR transmit empty interrupt occurs. Read ISR: IDBR transmit empty (1), unit busy (1), R/nW bit (1)3584. Write a 1 to the ISR[ITE] bit to clear the interrupt.3585. Initiate the read. Clear ICR[START], set ICR[STOP], set ICR[ALDIE], set ICR[ACKNAK], set ICR[TB]3586. When an IDBR receive full interrupt occurs (unit is sending STOP). Read ISR: IDBR receive full (1), unit busy (x), R/nW bit (1), ACK/NAK bit (1)3587. Write a 1 to the ISR[IRF] bit to clear the interrupt.3588. Read IDBR data.3589. Clear ICR[STOP] and ICR[ACKNAK] bits3589.6.4 Write 2 Bytes and Repeated Start Read 1 Byte as a Master358To write 2 bytes and execute a repeated start to read 1 byte as a master:3581. Load target slave address and R/nW bit in the IDBR. R/nW must be 0 for a write.3582. Initiate the write. Set ICR[START], clear ICR[STOP], clear ICR[ALDIE], set ICR[TB]3583. When an IDBR transmit empty interrupt occurs. Read ISR: IDBR transmit empty (1), unit busy (1), R/nW bit (0)3584. Write a 1 to the ISR[ITE] bit to clear interrupt.3585. Load data byte to be transferred in the IDBR.3586. Initiate the write. Clear ICR[START], clear ICR[STOP], set ICR[ALDIE], set ICR[TB]3587. When an IDBR transmit empty interrupt occurs. Read ISR: IDBR transmit empty (1), unit busy (1), R/nW bit (0)3598. Write a 1 to the ISR[ITE] bit to clear interrupt.3599. Repeat steps 5-8 one time.35910. Load target slave address and R/nW bit in the IDBR. R/nW must be 1 for a read.35911. Send repeated start as a master. Set ICR[START], clear ICR[STOP], clear ICR[ALDIE], set ICR[TB]35912. When an IDBR transmit empty interrupt occurs. Read ISR: IDBR transmit empty (1), unit busy (1), R/nW bit (1)35913. Write a 1 to the ISR[ITE] bit to clear interrupt.35914. Initiate the read. Clear ICR[START], set ICR[STOP], set ICR[ALDIE], set ICR[ACKNAK], set ICR[TB]35915. When an IDBR receive full interrupt occurs (unit is sending stop). Read ISR: IDBR receive full (1), unit busy (x), R/nW bit (1), ACK/NAK bit (1)35916. Write a 1 to the ISR[IRF] bit to clear the interrupt.35917. Read IDBR data.35918. Clear ICR[STOP] and ICR[ACKNAK] bits3599.6.5 Read 2 Bytes as a Master - Send STOP Using the Abort359To read 2 bytes as a master and send a STOP using the abort:3591. Load target slave address and R/nW bit in the IDBR. R/nW must be 1 for a read.3592. Initiate the write. Set ICR[START], clear ICR[STOP], clear ICR[ALDIE], set ICR[TB]3593. When an IDBR transmit empty interrupt occurs. Read ISR: IDBR transmit empty (1), unit busy (1), R/nW bit (1)3594. Write a 1 to the ISR[ITE] bit to clear interrupt.3595. Initiate the read Clear ICR[START], clear ICR[STOP], set ICR[ALDIE], clear ICR[ACKNAK], set ICR[TB]3596. When an IDBR receive full interrupt occurs. Read ISR: IDBR receive full (1), unit busy (1), R/nW bit (1), ACK/NAK bit (0)3597. Write a 1 to the ISR[IRF] bit to clear the interrupt.3598. Read IDBR data.3599. Clear ICR[STOP] and ICR[ACKNAK] bits35910. Initiate the read. Clear ICR[START], clear ICR[STOP], set ICR[ALDIE], set ICR[ACKNAK], set ICR[TB] ICR[STOP] is not set because STOP or repeated start will be decided on the byte read.35911. When an IDBR receive full interrupt occurs. Read ISR: IDBR receive full (1), unit busy (1), R/nW bit (1), ACK/NAK bit (1)35912. Write a 1 to the ISR[IRF] bit to clear the interrupt.35913. Read IDBR data.36014. Initiate STOP abort condition (STOP with no data transfer). Set ICR[MA]360Note: If a NAK is not sent in step 11, the next transaction must involve another data byte read.3609.7 Glitch Suppression Logic360The I2C unit has built-in glitch suppression logic that suppresses glitches of 60ns or less. This is within the 50ns glitch suppression specification.3609.8 Reset Conditions360Software must ensure that the I2C unit is not busy before it asserts a reset. Software must also ensure that the I2C bus is idle...360When the ICR[UR] bit is set, the I2C unit resets but the associated I2C MMRs remain intact. When resetting the I2C unit with the ICR’s unit reset, use the following guidelines:3601. Set the reset bit in the ICR register and clear the remainder of the register.3602. Clear the ISR register.3603. Clear reset in the ICR.3609.9 Register Definitions360The registers in Table 9-8 are associated with the I2C unit and are located in the processor peripheral memory-mapped address space.360Table 9-8. I2C Register Definitions3609.9.1 I2C Bus Monitor Register- IBMR360The I2C Bus Monitor Register (IBMR) tracks the status of the SCL and SDA pins. The values of these pins are recorded in this read-only IBMR so software can determine when the I2C bus is hung and the I2C unit must be reset.360Table 9-9. I2C Bus Monitor Register - IBMR3619.9.2 I2C Data Buffer Register- IDBR361The processor uses the I2C Data Buffer Register to transmit and receive data from the I2C bus. The IDBR is accessed by the progr...361When the I2C unit is in transmit mode (master or slave), the processor writes data to the IDBR over the internal bus. The proces...361When the I2C unit is in receive mode (master or slave), the processor reads IDBR data over the internal bus. The processor reads...361Table 9-10. I2C Data Buffer Register - IDBR (Sheet 1 of 2)3619.9.3 I2C Control Register- ICR362The processor uses the bits in the I2C Control Register (ICR) to control the I2C unit.362Table 9-11. I2C Control Register - ICR (Sheet 1 of 3)3629.9.4 I2C Status Register364The ISR signals I2C interrupts to the processor interrupt controller. Software can use the ISR bits to check the status of the I2C unit and bus. ISR bits (bits 9-5) are updated after the ACK/NAK bit is completed on the I2C bus.364The ISR also clears the following interrupts signalled from the I2C unit:364Table 9-12. I2C Status Register - ISR (Sheet 1 of 2)3659.9.5 I2C Slave Address Register- ISAR366The ISAR (see Table 9-13) defines the I2C unit’s 7-bit slave address. In slave-receive mode, the processor responds when the 7-b...366Table 9-13. I2C Slave Address Register - ISAR366Universal Asynchronous Receiver/ Transmitter 1036710.1 Feature List36710.2 Overview36810.2.1 Full Function UART36810.2.2 Bluetooth UART36810.2.3 Standard UART36810.2.4 Compatibility with 1655036810.3 Signal Descriptions369Table 10-1. UART Signal Descriptions (Sheet 1 of 2)36910.4 UART Operational Description370Figure 10-1. Example UART Data Frame370Figure 10-2. Example NRZ Bit Encoding (0b0100 1011)37110.4.1 Reset37110.4.2 Internal Register Descriptions371Table 10-2. UART Register Addresses as Offsets of a Base37210.4.2.1 Receive Buffer Register (RBR)372Table 10-3. Receive Buffer Register - RBR37210.4.2.2 Transmit Holding Register (THR)373Table 10-4. Transmit Holding Register - THR37310.4.2.3 Divisor Latch Registers (DLL and DLH)373Table 10-5. Divisor Latch Low Register - DLL374Table 10-6. Divisor Latch High Register - DLH37410.4.2.4 Interrupt Enable Register (IER)374Note: When DMA requests are enabled and an interrupt occurs, software must first read the LSR to see if an error interrupt exist...375Table 10-7. Interrupt Enable Register - IER (Sheet 1 of 2)375Note: To ensure that the DMA controller and programmed I/O do not access the same FIFO, software must not set the DMAE while the TIE or RAVIE bits are set to a 1.37610.4.2.5 Interrupt Identification Register (IIR)376Table 10-8. Interrupt Conditions377Table 10-9. Interrupt Identification Register - IIR377Table 10-10. Interrupt Identification Register Decode37810.4.2.6 FIFO Control Register (FCR)378Table 10-11. FIFO Control Register - FCR37910.4.2.7 Line Control Register (LCR)380Table 10-12. Line Control Register - LCR (Sheet 1 of 2)38010.4.2.8 Line Status Register (LSR)381Table 10-13. Line Status Register - LSR (Sheet 1 of 2)38210.4.2.9 Modem Control Register (MCR)383Table 10-14. Modem Control Register - MCR (Sheet 1 of 2)38410.4.2.10 Modem Status Register (MSR)385Note: When bit 0, 1, 2, or 3 is set, a modem status interrupt is generated if IER[MIE] is set.386Table 10-15. Modem Status Register - MSR38610.4.2.11 Scratchpad Register (SPR)387Table 10-16. Scratch Pad Register - SPR38710.4.3 FIFO Interrupt Mode Operation38710.4.3.1 Receive Interrupt38710.4.3.2 Character Timeout Indication Interrupt38710.4.3.3 Transmit Interrupt38810.4.4 FIFO Polled Mode Operation38810.4.5 DMA Requests388Note: Do not program the channel to read more data than the FIFO trigger level.388Note: Ensure that the DMAC has finished previous receive DMA requests before the error interrupt handler begins to clear the errors from the FIFO.38910.4.5.1 Trailing Bytes in the Receive FIFO3891. Wait for a character timeout indication interrupt. The character timeout indication interrupt must be enabled.3892. Disable the receive DMA channel and wait for it to stop.3893. Read one byte at a time. The FIFO is empty when LSR[DR] is cleared.3894. Re-enable the receive DMA channel.38910.4.6 Slow Infrared Asynchronous Interface38910.4.6.1 Infrared Selection Register (ISR)389Table 10-17. Infrared Selection Register - ISR39010.4.6.2 Operation390Figure 10-3. IR Transmit and Receive Example391Figure 10-4. XMODE Example391Note: The SIR TXD output pin is automatically held deasserted when the RCVEIR bit is set. Before setting the RCVEIR bit, check t...39210.5 Register Summary392Table 10-18. FFUART Register Addresses392Table 10-19. BTUART Register Locations392Table 10-20. STUART Register Locations39310.5.1 UART Register Differences393Table 10-21. Flow Control Registers in BTUART and STUART393Fast Infrared Communication Port 1139511.1 Signal Description395Table 11-1. FICP Signal Description39511.2 Fast Infrared Communications Port Operation39511.2.1 Four-Position Pulse Modulation396Figure 11-1. 4PPM Modulation Encodings396Figure 11-2. 4PPM Modulation Example39711.2.2 Frame Format397Figure 11-3. Frame Format for IrDA Transmission (4.0 Mbps)39711.2.3 Address Field39811.2.4 Control Field39811.2.5 Data Field39811.2.6 CRC Field398Note: Unlike the address, control, and data fields, the 32-bit inverted CRC value is transmitted and received most significant nibble first.39811.2.7 Baud Rate Generation39911.2.8 Receive Operation39911.2.9 Transmit Operation40011.2.10 Transmit and Receive FIFOs40111.2.11 Trailing or Error Bytes in the Receive FIFO40111.3 Fast Infrared Communications Port Register Descriptions40211.3.1 FICP Control Register 0402Table 11-2. Fast Infrared Communication Port Control Register 0 (Sheet 1 of 2)40311.3.2 FICP Control Register 1404Table 11-3. Fast Infrared Communication Port Control Register 140511.3.3 FICP Control Register 2405Table 11-4. Fast Infrared Communication Port Control Register 2 (Sheet 1 of 2)40511.3.4 FICP Data Register406Table 11-5. Fast Infrared Communication Port Data Register40711.3.5 FICP Status Register 0407Table 11-6. Fast Infrared Communication Port Status Register 040811.3.6 FICP Status Register 1408Table 11-7. Fast Infrared Communication Port Status Register 140911.4 Fast Infrared Communications Port Register Locations410Table 11-8. FICP Control, Data, and Status Register Locations410Universal Serial Bus Device Controller 1241112.1 Universal Serial Bus Overview41112.2 Device Configuration412Table 12-1. Endpoint Configuration41212.3 Universal Serial Bus Protocol41312.3.1 Signalling Levels413Table 12-2. USB States41312.3.2 Bit Encoding414Figure 12-1. NRZI Bit Encoding Example41412.3.3 Field Formats41412.3.4 Packet Formats41512.3.4.1 Token Packet Type415Table 12-3. IN, OUT, and SETUP Token Packet Format41612.3.4.2 Start of Frame Packet Type416Table 12-4. SOF Token Packet Format41612.3.4.3 Data Packet Type416Table 12-5. Data Packet Format41612.3.4.4 Handshake Packet Type416Table 12-6. Handshake Packet Format41612.3.5 Transaction Formats41712.3.5.1 Bulk Transaction Type417Table 12-7. Bulk Transaction Formats41712.3.5.2 Isochronous Transaction Type417Table 12-8. Isochronous Transaction Formats41712.3.5.3 Control Transaction Type418Table 12-9. Control Transaction Formats41812.3.5.4 Interrupt Transaction Type418Table 12-10. Interrupt Transaction Formats41812.3.6 UDC Device Requests418Table 12-11. Host Device Request Summary41912.3.7 Configuration42012.4 UDC Hardware Connection42012.4.1 Self-Powered Device420Figure 12-2. Self-Powered Device42112.4.1.1 When GPIOn and GPIOx are Different Pins42112.4.1.2 When GPIOn and GPIOx are the Same Pin42112.4.2 Bus-Powered Devices42212.5 UDC Operation42212.5.1 Case 1: EP0 Control Read4221. When software starts, it initializes a software state machine to EP0_IDLE. The software state machine is used to track endpoints stages when software communicates with the host PC.4222. The host PC sends a SETUP command.4223. UDC generates an EP0 Interrupt.4224. Software determines that the UDCCS0[SA] and UDCCS0[OPR] bits are set. This indicates that a new OUT packet is in the EP0 Buffer and identifies a SETUP transaction.4225. Software reads the data into a buffer while UDCCS0[RNE] bit (receiver not empty) is set.4226. Software parses the command in the buffer and determines that it is a Control Read.4227. Software starts to load the UDDR0 register FIFO with the first data packet and sets the internal state machine to EP0_IN_DATA_PHASE.4228. After it reads and parses the data, software clears the UDCCS0[SA] and the UDCCS0[OPR] bits and sets the UDCCS0[IPR] bit, if ...4229. Software clears the UDC interrupt bit and returns from the interrupt service routine.42210. The host PC issues an IN packet, which the UDC sends data back to the host. After the host PC sends an ACK to the UDC, the UDC clears the UDDCS0[IPR] bit and generates an interrupt.42211. Software enters the ISR routine and examines its internal state machine. It determines that it is in the EP0_IN_DATA_PHASE s...42212. Repeat Steps 10 and 11 until all the data is transmitted or the last data packet is a short packet.42213. If the last packet software sends is a short packet, it sets its internal state machine to EP0_END_XFER. If the last data pa...42214. When the host executes the STATUS OUT stage (zero-length OUT), the UDC sets the UDDCS0[OPR] bit, which causes an interrupt.42315. Software enters the ISR routine and determines that the UDCCS0[OPR] bit is set, the UDCCS0[SA] bit is clear, and its internal state machine is EP0_END_XFER. Software clears the UDCCS0[OPR] bit and transfers its internal state machine to EP0_IDLE.42316. Software clears the UDC interrupt bit and returns from the interrupt service routine.42312.5.2 Case 2: EP0 Control Read with a Premature Status Stage4231. When software starts, it initializes a software state machine to EP0_IDLE. The software state machine is used to track endpoints stages when software communicates with the host PC.4232. The host PC sends a SETUP command.4233. UDC generates an EP0 Interrupt.4234. Software determines that the UDCCS0[SA] and UDCCS0[OPR] bits are set. This indicates that a new OUT packet is in the EP0 Buffer and identifies a SETUP transaction.4235. Software reads the data into a buffer while UDCCS0[RNE] bit (receiver not empty) is set.4236. Software parses the command in the buffer and determines that it is a Control Read.4237. Software starts to load the UDDR0 register FIFO with the first data packet and sets the internal state machine to EP0_IN_DATA_PHASE.4238. After it reads and parses the data, software clears the UDCCS0[SA] and the UDCCS0[OPR] bits and sets the UDCCS0[IPR] bit, if ...4239. Software clears the UDC interrupt bit and returns from the interrupt service routine.42310. The host PC issues an IN packet, which the UDC sends back to the host. After the host PC sends an ACK to the UDC, the UDC clears the UDDCS0[IPR] bit and generates an interrupt.42311. Software enters the ISR routine and examines its internal state machine. It determines that it is in the EP0_IN_DATA_PHASE s...42312. Repeat Steps 10 and 11 until all the data is transmitted or the last data packet is a short packet.42313. As Steps 10 and 11 are repeated, the host sends a premature STATUS OUT stage, which indicates that the host PC can not accept more data, instead of an IN packet.42314. When the EP0 interrupt occurs, software determines that the UDCCS0[OPR] bit is set, the UDCCS0[SA] bit is cleared, and its machine state is EP0_IN_DATA_PHASE. This indicates that a premature STATUS OUT occurred.42315. Software clears the UDCCS0[OPR] bit and changes the pin’s state to EP0_IDLE. The software writes to the UDCCS0[FTF] bit to clean up any buffer pointers and empty the transmit FIFO.42316. Software clears the UDC interrupt bit and returns from the interrupt service routine.42412.5.3 Case 3: EP0 Control Write With or Without a Premature Status Stage4241. When software starts, it initializes a software state machine to EP0_IDLE. The software state machine is used to track stages when software communicates with the host PC.4242. The host PC sends a SETUP command.4243. UDC generates an EP0 Interrupt.4244. Software determines that the UDCCS0[SA] and UDCCS0[OPR] bits are set. This indicates that a new OUT packet is in the EP0 Buffer and identifies a SETUP transaction.4245. Software reads the data into a buffer while UDCCS0[RNE] bit (receiver not empty) is set.4246. Software parses the command in the buffer and determines that it is a Control Write (such as Set Descriptor).4247. Software sets the internal to EP0_OUT_DATA_PHASE and clears the UDCCS0[OPR] and UDCCS0[SA] bits.4248. To allow a premature STATUS IN stage, software sets the UDCCS0[IPR] bit and loads a zero- length packet in the transmit FIFO.4249. Software clears the UDC interrupt bit and returns from the interrupt service routine.42410. The host PC issues an OUT packet and the UDC issues an EP0 interrupt.42411. Software enters the ISR routine and determines that it is in the EP0_OUT_DATA_PHASE state, the UDCCS0[OPR] bit is set, and the UDCCS0[SA] bit is clear. This indicates that there is more data to receive.42412. Software reads the data into a buffer while UDCCS0[RNE] bit is set and clears the UDDCCS0[OPR] bit.42413. Software sets the UDCCS0[IPR] bit to allow a premature STATUS IN stage.42414. Software clears the UDC interrupt bit and returns from the interrupt service routine.42415. Steps 11 through 14 are repeated until all of the data is received.42416. As Steps 11 through 14 are repeated, the host sends a STATUS IN stage, which indicates that the host PC can not send more data, instead of an OUT packet. The STATUS IN stage may be premature or not.42417. Because software loaded a zero-length packet (see Step 8), the UDC responds to the STATUS IN by sending a a zero-length packet back to the host PC. This causes an interrupt.42418. Software enters the ISR routine and determines that it is in the EP0_OUT_DATA_PHASE state and the UDCCS0[OPR] and UDCCS0[IPR] bits are clear. This indicates that a STATUS IN stage occurred.42419. Software determines how many bytes were received before the interrupt and compares the number of received bytes to the wLeng...42420. Software changes its internal state machine to EP0_IDLE.42521. Software clears the UDC interrupt bit and returns from the interrupt service routine.42512.5.4 Case 4: EP0 No Data Command4251. When software starts, it initializes a software state machine to EP0_IDLE. The software state machine is used to track stages when software communicates with the host PC.4252. The host PC sends a SETUP command.4253. UDC generates an EP0 Interrupt.4254. Software determines that the UDCCS0[SA] and UDCCS0[OPR] bits are set. This indicates that a new OUT packet is in the EP0 Buffer and identifies a SETUP transaction.4255. Software reads the data into a buffer while UDCCS0[RNE] bit (receiver not empty) is set.4256. Software parses the data in the buffer and determines that it is a No Data command.4257. Software executes the command and sets its internal state machine to EP0_IDLE. Software clears the UDCCS0[IPR] and UDCCS0[SA]...4258. When the host PC executes the STATUS IN stage, the UDC sends back a zero-length packet, which indicates a successful handshake. This does not cause an interrupt.42512.5.5 Case 5: EP1 Data Transmit (BULK-IN)42512.5.5.1 Software Enables the DMA4251. During the SETUP VENDOR command, software enables the DMA engine and masks the EP1 interrupt. The DMA start address must be aligned on a 16-byte boundary.426a. If the packet size is 64 bytes, software transfers the all the data in one DMA descriptor and sets the UDCCS1[TSP] bit in the second DMA descriptor.426b. If the packet size is less than 64 bytes, software sets up a string of descriptors in which the odd numbered descriptors point to the data and the even numbered descriptors are writes to the UDCCS1[TSP] bit.4262. The host PC sends a BULK-IN and the UDC sends a data packet back to the host PC.4263. The UDC generates an interrupt that is masked from the core.4264. The DMA engine fills the EP1 data FIFO (UDDR1) with data and sets the UDCCS1[TSP] bit if the data packet is a short packet.4265. Steps 2 through 4 repeat until all the bulk data is sent to the host PC.42612.5.5.2 Software Enables the EP1 Interrupt4261. During the SETUP VENDOR command, software fills the EP1 data FIFO (UDDR1) with data and clears the UDCCS1[TPC] bit. If the data packet is a short packet, software also sets the UDCCS1[TSP] bit.4262. The host PC sends a BULK-IN and the UDC sends a data packet back to the host PC and generates an EP1 Interrupt.4263. Software fills the EP1 data FIFO (UDDR1) with data and clears the UDCCS1[TPC] bit. If the data packet is a short packet, software also sets the UDCCS1[TSP] bit.4264. Return from interrupt.4265. Steps 2 through 4 repeat until all of the data is sent to the host PC.42612.5.6 Case 6: EP2 Data Receive (BULK-OUT)42612.5.6.1 Software Enables the DMA:4261. During the SETUP VENDOR command, software sets up the DMA engine and sets the UDCCS2[DME] bit.426a. If the packet size is 32 or 64 bytes, software sets up a string of descriptors, each with a length of modulo 32 or 64. Software sets the interrupt bit for the appropriate descriptor.426b. If the packet size is less than 32 bytes, software uses interrupt mode.4262. The host PC sends a BULK-OUT.4273. The DMA engine reads data from the EP2 data FIFO (UDDR2).4274. Steps 2 and 3 repeat until all the data has been read from the host.4275. If the software receives an EP2 interrupt it completes this process:427a. If UDCCS2[RNE] is clear and UDCCS2[RSP] is set, the data packet was a zero-length packet.427b. If UDCCS2[RNE] is set, the data packet was a short packet and software must use the UDCWC2 count register to read the proper amount of data from the EP2 data FIFO (UDDR2).427c. Software clears the UDCCS2[RPC] bit.4276. Return from interrupt.42712.5.6.2 Software Allows the Core to Handle the Transaction4271. During the SETUP VENDOR command, software clears the UDCCS2[DME] bit.4272. The host PC sends a BULK-OUT and the UDC generates an EP2 Interrupt.4273. If UDCCS2[RNE] is clear and UDCCS2[RSP] is set, the data packet was a zero-length packet.4274. If UDCCS2[RNE] is set, software uses the UDCWC2 count register to read the proper amount of data from the EP2 data FIFO (UDDR2).4275. Software clears the UDCCS2[RPC] bit.4276. Return from interrupt.4277. Steps 2 through 6 repeat until all the data has been read from the host.42712.5.7 Case 7: EP3 Data Transmit (ISOCHRONOUS-IN)42712.5.7.1 Software Enables DMA4271. During the SETUP VENDOR command, software enables the DMA engine and masks the EP3 interrupt. The DMA start address must be aligned on a 16-byte boundary.428a. If the packet size is 256 bytes, software transfers the all the data in one DMA descriptor.428b. If the packet size is less than 256 bytes, software sets up a string of descriptors in which the odd numbered descriptors point to the data and the even numbered descriptors are writes to the UDCCS1[TSP] bit.4282. The host PC sends an ISOC-IN and the UDC sends a data packet back to the host PC.4283. The UDC generates an interrupt that is masked from the core.4284. The DMA engine fills the EP3 data FIFO (UDDR3) with data and sets the UDCCS3[TSP] bit if the data packet is a short packet.4285. Steps 2 through 4 repeat until all the data has been sent to the host.42812.5.7.2 Software Enables the EP3 Interrupt4281. During the SETUP VENDOR command, software fills the EP3 data FIFO (UDDR3) with data and clears the UDCCS3[TPC] bit. If the data packet is a short packet, software also sets the UDCCS3[TSP] bit.4282. The host PC sends a ISOC-IN command and the UDC sends a data packet back to the host PC and generates an EP3 Interrupt.4283. Software fills the EP3 data FIFO (UDDR3) with data and clears the UDCCS3[TPC] bit. If the data packet is a short packet, software also sets the UDCCS3[TSP] bit.4284. Return from interrupt.4285. Steps 2 through 4 repeat until all of the data is sent to the host PC.42812.5.7.3 Software Enables the SOF Interrupt4281. Software disables the UDCCS3 Interrupt by setting UICR0[IM3] to a 1 and enables the SOF interrupt in the UFNHR register by setting UFNHR[SIM] to a 0.4282. When the host PC sends an SOF, the UDC sets the UFNHR[SIR] bit, which causes an SOF interrupt.4283. Software checks the UDCCS3[TFS] bit to determine if there is room for a data packet. If there is room, software fills the EP3...4284. Software clears the UFNHR[SIR] bit.4285. Return from interrupt.4286. Steps 2 through 5 repeat until all the data is sent to the host PC.42812.5.8 Case 8: EP4 Data Receive (ISOCHRONOUS-OUT)42812.5.8.1 Software Enables the DMA4291. During the SETUP VENDOR command, software enables the DMA engine and sets the UDCCS4[DME] bit. ISO packet sizes are not restricted, but a packet size of modulo 32 is highly recommended efficiency.429a. If the packet size is between 32 and 256 bytes and is divisible by 32, software determines the number of descriptors needed and sets up a string of descriptors. Software sets the interrupt bit for the appropriate descriptor.429b. If the packet size is between 32 and 256 bytes and is not divisible by 32, software sets up a descriptor to receive each data packet, then reads the remaining data on each UDCCS2[RSP] bit interrupt and sets up another descriptor.429c. If the packet size is less than 32 bytes, software must use interrupt mode.4292. The host PC sends a ISOC-OUT.4293. The DMA engine reads the data from the EP4 data FIFO (UDDR4).4294. Steps 2 and 3 repeat until all the data has been read from the host.4295. If the software receives an EP4 interrupt it completes the following process:429a. If UDCCS4[RNE] is clear and UDCCS4[RSP] is set, the data packet was a zero-length packet.429b. If UDCCS4[RNE] is set, the data packet was a short packet and software uses the UDCWC4 count register to read the proper amount of data from the EP4 data FIFO (UDDR4).429c. Software clears the UDCCS4[RPC] bit.4296. Return from interrupt.42912.5.8.2 Software Allows the Core to Handle the Transaction4291. During the SETUP VENDOR command, software clears the UDCCS4[DME] bit.4292. The host PC sends a ISOC-OUT and the UDC generates an EP4 Interrupt.4293. If UDCCS4[RNE] is clear and UDCCS4[RSP] is set, the data packet was a zero-length packet.4294. If UDCCS4[RNE] is set, software uses the UDCWC4 count register to read the proper amount of data from the EP4 data FIFO (UDDR4).4295. Software clears the UDCCS4[RPC] bit.4296. Return from interrupt.4307. Steps 2 through 6 repeat until all the data has been read from the host.43012.5.8.3 Software Enables the SOF Interrupt4301. Software disables the UDCCS4 Interrupt by setting UICR0[IM4] to a 1 and enables the SOF interrupt in the UFNHR register by setting UFNHR[SIM] to a 0.4302. When the host PC sends an SOF, the UDC sets the UFNHR[SIR] bit, which causes an SOF interrupt.4303. If UDCCS4[RNE] is clear and UDCCS4[RSP] is clear, no data packet was received.4304. If UDCCS4[RNE] is clear and UDCCS4[RSP] is set, the data packet was a zero-length packet.4305. If UDCCS4[RNE] is set, the data packet was a short packet and software uses the UDCWC4 count register to read the proper amount of data from the EP4 data FIFO (UDDR4).4306. Software clears the UDCCS4[RPC] and UFNHR[SIR] bits.4307. Return from interrupt.4308. Steps 2 through 7 repeat until all the data is sent to the host PC.43012.5.9 Case 9: EP5 Data Transmit (INTERRUPT-IN)4301. During the SETUP VENDOR command, software fills the EP5 data FIFO (UDDR5) with data and clears the UDCCS5[TPC] bit.4302. The host PC sends an INTERRUPT-IN and the UDC generates an EP5 Interrupt.4303. Software fills the EP5 data FIFO (UDDR5) with data and clears the UDCCS5[TPC] bit. If the data packet is a short packet, software also sets the UDCCS5[TSP] bit.4304. Return from interrupt.4305. Steps 2 through 4 repeat until all the data is sent to the host PC.43012.5.10 Case 10: RESET Interrupt4301. After a system reset, software loads the registers with the required values.4302. Software enables the UDC by setting the UDCCR[UDE] bit and immediately reads the UDCCR[UDA] bit to determine if a USB reset is currently on the USB bus.430a. If UDCCR[UDA] is a 0, there is currently a USB reset on the bus and software clears the interrupt by writing a 1 to the UDCCR[RSTIR] bit. Software enables future reset interrupts by clearing the UDCCR[REM] bit.430b. If UDCCR[UDA] is a 1, there is currently no USB reset on the bus and software enables future reset interrupts by clearing the UDCCR[REM] bit.4313. Return from interrupt.4314. The host either asserts a USB reset or negates a USB reset.4315. The UDC generates a reset interrupt.4316. Software determines that the UDCCR[RSTIR] bit is set and clears the interrupt by writing a 1 to the UDCCR[RSTIR] bit. Software then examines the UDCCR[UDA] bit to determine the type of reset that took place:431a. If UDCCR[UDA] is a 0, a reset assertion took place. Software returns from the interrupt and waits for the reset negation interrupt.431b. If UDDCR[UDA] is a 1, a reset negation took place. Software sets any initialization that is necessary.4317. Return from interrupt.43112.5.11 Case 11: SUSPEND Interrupt4311. As software starts, it clears the UDCCR[SRM] bit to allow a USB suspend interrupt.4312. The host PC asserts a USB suspend by stopping activity on the UDC+ and UDC- signals.4313. The UDC generates a suspend interrupt.4314. Software determines that the UDCCR[SUSIR] bit is set.This indicates that a USB suspend has occurred and software takes any ne...43112.5.12 Case 12: RESUME Interrupt4311. As software starts, it clears the UDCCR[SRM] bit to allow a USB resume.4312. The host PC asserts a USB resume by resuming activity after a suspend state on the UDC+ and UDC- signals.4313. The UDC generates a resume interrupt.4314. Software determines that the UDCCR[RESIR] bit is set. This indicates that a USB resume has occurred and the OS may take any n...43112.6 UDC Register Descriptions43112.6.1 UDC Control Register43212.6.1.1 UDC Enable43212.6.1.2 UDC Active43212.6.1.3 UDC Resume (RSM)43212.6.1.4 Resume Interrupt Request (RESIR)43212.6.1.5 Suspend Interrupt Request (SUSIR)43212.6.1.6 Suspend/Resume Interrupt Mask (SRM)43212.6.1.7 Reset Interrupt Request (RSTIR)43312.6.1.8 Reset Interrupt Mask (REM)433Table 12-12. UDC Control Register (Sheet 1 of 2)43312.6.2 UDC Endpoint 0 Control/Status Register (UDCCS0)43412.6.2.1 OUT Packet Ready (OPR)43412.6.2.2 IN Packet Ready (IPR)43412.6.2.3 Flush Tx FIFO (FTF)43512.6.2.4 Device Remote Wake Up Feature (DRWF)43512.6.2.5 Sent Stall (SST)43512.6.2.6 Force Stall (FST)43512.6.2.7 Receive FIFO Not Empty (RNE)43512.6.2.8 Setup Active (SA)435Table 12-13. UDC Endpoint 0 Control Status Register43612.6.3 UDC Endpoint x Control/Status Register (UDCCSx), Where x is 1, 6, or 1143612.6.3.1 Transmit FIFO Service (TFS)43612.6.3.2 Transmit Packet Complete (TPC)43712.6.3.3 Flush Tx FIFO (FTF)43712.6.3.4 Transmit Underrun (TUR)43712.6.3.5 Sent STALL (SST)43712.6.3.6 Force STALL (FST)43712.6.3.7 Bit 6 Reserved43712.6.3.8 Transmit Short Packet (TSP)438Table 12-14. UDC Endpoint x Control Status Register, Where x is 1, 6 or 1143812.6.4 UDC Endpoint x Control/Status Register (UDCCSx), Where x is 2, 7, or 1243812.6.4.1 Receive FIFO Service (RFS)43912.6.4.2 Receive Packet Complete (RPC)43912.6.4.3 Bit 2 Reserved43912.6.4.4 DMA Enable (DME)43912.6.4.5 Sent Stall (SST)43912.6.4.6 Force Stall (FST)43912.6.4.7 Receive FIFO Not Empty (RNE)44012.6.4.8 Receive Short Packet (RSP)440Table 12-15. UDC Endpoint x Control Status Register, Where x is 2, 7, or 12 (Sheet 1 of 2)44012.6.5 UDC Endpoint x Control/Status Register (UDCCSx), Where x is 3, 8, or 1344112.6.5.1 Transmit FIFO Service (TFS)44112.6.5.2 Transmit Packet Complete (TPC)44112.6.5.3 Flush Tx FIFO (FTF)44212.6.5.4 Transmit Underrun (TUR)44212.6.5.5 Bit 4 Reserved44212.6.5.6 Bit 5 Reserved44212.6.5.7 Bit 6 Reserved44212.6.5.8 Transmit Short Packet (TSP)442Table 12-16. UDC Endpoint x Control Status Register, Where x is 3, 8, or 1344312.6.6 UDC Endpoint x Control/Status Register (UDCCSx), Where x is 4, 9, or 1444312.6.6.1 Receive FIFO Service (RFS)44312.6.6.2 Receive Packet Complete (RPC)44412.6.6.3 Receive Overflow (ROF)44412.6.6.4 DMA Enable (DME)44412.6.6.5 Bit 4 Reserved44412.6.6.6 Bit 5 Reserved44412.6.6.7 Receive FIFO Not Empty (RNE)44412.6.6.8 Receive Short Packet (RSP)444Table 12-17. UDC Endpoint x Control Status Register, Where x is 4, 9, or 1444512.6.7 UDC Endpoint x Control/Status Register (UDCCSx), Where x is 5, 10, or 15.44512.6.7.1 Transmit FIFO Service (TFS)44512.6.7.2 Transmit Packet Complete (TPC)44612.6.7.3 Flush Tx FIFO (FTF)44612.6.7.4 Transmit Underrun (TUR)44612.6.7.5 Sent STALL (SST)44612.6.7.6 Force STALL (FST)44612.6.7.7 Bit 6 Reserved44612.6.7.8 Transmit Short Packet (TSP)447Table 12-18. UDC Endpoint x Control Status Register, Where x is 5, 10, or 1544712.6.8 UDC Interrupt Control Register 0 (UICR0)44712.6.8.1 Interrupt Mask Endpoint x (IMx), Where x is 0 through 7448Table 12-19. UDC Interrupt Control Register 044812.6.9 UDC Interrupt Control Register 1 (UICR1)44812.6.9.1 Interrupt Mask Endpoint x (IMx), where x is 8 through 15.449Table 12-20. UDC Interrupt Control Register 144912.6.10 UDC Status/Interrupt Register 0 (USIR0)45012.6.10.1 Endpoint 0 Interrupt Request (IR0)45012.6.10.2 Endpoint 1 Interrupt Request (IR1)45012.6.10.3 Endpoint 2 Interrupt Request (IR2)45012.6.10.4 Endpoint 3 Interrupt Request (IR3)45012.6.10.5 Endpoint 4 Interrupt Request (IR4)45012.6.10.6 Endpoint 5 Interrupt Request (IR5)45012.6.10.7 Endpoint 6 Interrupt Request (IR6)45112.6.10.8 Endpoint 7 Interrupt Request (IR7)451Table 12-21. UDC Status / Interrupt Register 045112.6.11 UDC Status/Interrupt Register 1 (USIR1)45112.6.11.1 Endpoint 8 Interrupt Request (IR8)45112.6.11.2 Endpoint 9 Interrupt Request (IR9)45212.6.11.3 Endpoint 10 Interrupt Request (IR10)45212.6.11.4 Endpoint 11 Interrupt Request (IR11)45212.6.11.5 Endpoint 12 Interrupt Request (IR12)45212.6.11.6 Endpoint 13 Interrupt Request (IR13)45212.6.11.7 Endpoint 14 Interrupt Request (IR14)45212.6.11.8 Endpoint 15 Interrupt Request (IR15)452Table 12-22. UDC Status / Interrupt Register 145312.6.12 UDC Frame Number High Register (UFNHR)45312.6.12.1 UDC Frame Number MSB (FNMSB)45312.6.12.2 Isochronous Packet Error Endpoint 4 (IPE4)45312.6.12.3 Isochronous Packet Error Endpoint 9 (IPE9)45412.6.12.4 Isochronous Packet Error Endpoint 14 (IPE14)45412.6.12.5 Start of Frame Interrupt Mask (SIM)45412.6.12.6 Start of Frame Interrupt Request (SIR)454Table 12-23. UDC Frame Number High Register (Sheet 1 of 2)45412.6.13 UDC Frame Number Low Register (UFNLR)455Table 12-24. UDC Frame Number Low Register45512.6.14 UDC Byte Count Register x (UBCRx), Where x is 2, 4, 7, 9, 12, or 14.45512.6.14.1 Endpoint x Byte Count (BC[7:0])455Table 12-25. UDC Byte Count Register x, Where x is 2, 4, 7, 9, 12, or 1445612.6.15 UDC Endpoint 0 Data Register (UDDR0)456Table 12-26. UDC Endpoint 0 Data Register45712.6.16 UDC Data Register x (UDDRx), Where x is 1, 6, or 11457Table 12-27. UDC Endpoint x Data Register, Where x is 1, 6, or 1145712.6.17 UDC Data Register x (UDDRx), Where x is 2, 7, or 12458Table 12-28. UDC Endpoint x Data Register, Where x is 2, 7, or 1245812.6.18 UDC Data Register x (UDDRx), Where x is 3, 8, or 13458Table 12-29. UDC Endpoint x Data Register, where x is 3, 8, or 1345812.6.19 UDC Data Register x (UDDRx), Where x is 4, 9, or 14459Table 12-30. UDC Endpoint x Data Register, Where x is 4, 9, or 1445912.6.20 UDC Data Register x (UDDRx), Where x is 5, 10, or 15459Table 12-31. UDC Endpoint x Data Register, Where x is 5, 10, or 1545912.6.21 UDC Register Locations460Table 12-32. UDC Control, Data, and Status Register Locations (Sheet 1 of 2)460AC97 Controller Unit 1346313.1 Overview463Note: The ACUNIT, I2S Controller, and the ASSP may not be used at the same time.46313.2 Feature List46313.3 Signal Description464Table 13-1. External Interface to Codecs46413.3.1 Signal Configuration Steps4641. Configure SYNC and SDATA_OUT as outputs.4642. Configure BITCLK, SDATA_IN_0, and SDATA_IN_1 as inputs.4643. nACRESET is a GPIO that is out of reset a dedicated output. It remains asserted on power-up. Complete these steps to de-assert nACRESET:464a. Configure the other AC97 signals as previously described.464b. In the Global Control Register (GCR), Set the GCR[COLD_RST] bit. Refer to Table 13-8, “Global Control Register” on page 13-20 for more details.464Note: Refer to Section 4.1.3, “GPIO Register Definitions” on page 4-7 for details on programing the GPDR and GAFR for use with the ACUNIT.46413.3.2 Example AC-link464Figure 13-1. Data Transfer Through the AC-link46513.4 AC-link Digital Serial Interface Protocol465Table 13-2. Supported Data Stream Formats (Sheet 1 of 2)465Figure 13-2. AC97 Standard Bidirectional Audio Frame46613.4.1 AC-link Audio Output Frame (SDATA_OUT)466Figure 13-3. AC-link Audio Output Frame467Figure 13-4. Start of Audio Output Frame467Note: When the ACUNIT transmits mono audio sample streams, software must ensure that the left and right sample stream time slots are filled with identical data.46813.4.1.1 Slot 0: Tag Phase46813.4.1.2 Slot 1: Command Address Port4681. Set the Valid Frame bit (slot 0, bit 15)4682. Set the valid bits for slots 1 and 2 (slot 0, bits 14 and 13)4683. Write 0b00 to the codec ID field (slot 0, bits 1 and 0)4684. Specify the read/write direction of the access (slot 1, bit 19).4685. Specify the index to the codec register (slot 1, bits 18-12)4686. If the access is a write, write the data to the command data port (slot 2, bits 19-4)4681. Set the Valid Frame bit (slot 0, bit 15)4682. Clear the valid bits for slots 1 and 2 (slot 0, bits 14 and 13)4683. Write a non-zero value (0b01, 0b10, 0b11) to the codec ID field (slot 0, bits 1 and 0)4694. Specify the read/write direction of the access (slot 1, bit 19).4695. Specify the index to the codec register (slot 1, bits 18-12)4696. If the access is a write, write the data to the command data port (slot 2, bits 19-4).469Table 13-3. Slot 1 Bit Definitions46913.4.1.3 Slot 2: Command Data Port469Table 13-4. Slot 2 Bit Definitions46913.4.1.4 Slot 3: PCM Playback Left Channel46913.4.1.5 Slot 4: PCM Playback Right Channel46913.4.1.6 Slot 5: Modem Line Codec47013.4.1.7 Slots 6-11: Reserved47013.4.1.8 Slot 12: I/O Control4701. Slot 12 is initially marked invalid by default.4702. A write to address 0x54 in codec I/O space transfers the data out of slot 12 in the next frame and slot 12 is marked valid. The data is also sent out on slots 1 and 2.4703. After the first write to address 0x54, slot 12 remains valid for all subsequent frames. The data transmitted on slot 12 is the data last written to address 0x54. Any subsequent write to the register sends the new data out on the next frame.4704. Following a system reset or AC97 cold reset, slot 12 is invalidated. Slot 12 remains invalid until the next write to the address 0x54.47013.4.2 AC-link Audio Input Frame (SDATA_IN)470Figure 13-5. AC97 Input Frame471Figure 13-6. Start of an Audio Input Frame47113.4.2.1 Slot 0: Tag Phase47113.4.2.2 Slot 1: Status Address Port/SLOTREQ bits472Table 13-5. Input Slot 1 Bit Definitions472Note: Slot requests for slots 3 and 4 are always set or cleared in tandem (both set or both cleared).47313.4.2.3 Slot 2: Status Data Port473Table 13-6. Input Slot 2 Bit Definitions473Note: If slot 2 is tagged invalid, the ACUNIT fills the entire slot with zeroes.47313.4.2.4 Slot 3: PCM Record Left Channel47313.4.2.5 Slot 4: PCM Record Right Channel47313.4.2.6 Slot 5: Optional Modem Line Codec47313.4.2.7 Slot 6: Optional Dedicated Microphone Record Data47313.4.2.8 Slots 7-11: Reserved47313.4.2.9 Slot 12: I/O Status47413.5 AC-link Low Power Mode47413.5.1 Powering Down the AC-link474Figure 13-7. AC-link Powerdown Timing47413.5.2 Waking up the AC-link47513.5.2.1 Wake up triggered by the Codec475Figure 13-8. SDATA_IN Wake Up Signaling4751. After SDATA_IN goes high, SYNC must be held for a minimum of 1 mSec.4752. The minimum SDATA_IN wake up pulse width is 1 mSec.4753. BITCLK not to scale47513.5.2.2 Wake Up Triggered by the ACUNIT47513.6 ACUNIT Operation476Note: After it is enabled, the ACUNIT requests the DMA immediately to fill the transmit FIFO.477Note: The ACUNIT registers do not store the status of the DMA requests or information regarding the number of data samples in each FIFO. As a result, programmed I/O must not be used in place of DMA requests for data transfers.47713.6.1 Initialization4771. Program the GPIO Direction register and GPIO Alternate Function Select register to assign proper pin directions for the ACUNIT ports. Refer to Section 13.3, “Signal Description” for details.4772. Set the GCR[COLD_RST] bit to deassert nACRESET. Until this is done, all other registers remain in a reset state. Deasserting nACRESET has the following effects:477a. Frames filled with zeroes are transmitted because the transmit FIFO is still empty. This situation does not cause an error condition.477b. The ACUNIT records zeroes until the codec sends in valid data.477c. DMA requests are enabled.4773. Enable the primary ready interrupt enable or the secondary ready interrupt enable by setting the GCR[PRIRDY_IEN] or the GCR[SECRDY_IEN] bits, respectively.4774. Software enables DMA operation in response to primary and secondary ready interrupts.4775. The ACUNIT triggers transmit DMA requests. The DMA fills the transmit FIFO in response.4776. The ACUNIT continues to transmit zeroes until the transmit FIFO is half full. When it is half full, valid FIFO data is sent across the AC-link.477Note: When nACRESET is deasserted, a read to the codec mixer register returns the type of hardware that resides in the codec. If...47713.6.2 Trailing bytes47813.6.3 Operational Flow for Accessing Codec Registers4781. Software issues a dummy read to the codec register. The ACUNIT responds to this read operation with invalid data. The ACUNIT then initiates the read access across the AC-link.4782. When the codec read operation completes, the ACUNIT sets GSR[SDONE] to a 1. For details, refer to Table 13-9, “Global Status Register”. Software clears this bit by writing a 1 it.4783. Software repeats the read operation as detailed in Step 1. The ACUNIT now returns the data sent by the codec. The second read operation also initiates a read access across the AC-link.4784. The ACUNIT times-out the read operation if the codec fails to respond in four SYNC frames. In this case, the second read operation returns a timed-out data value of 0x0000_FFFF.47813.7 Clocks and Sampling Frequencies47813.8 Functional Description47913.8.1 FIFOs47913.8.1.1 Transmit FIFO Errors47913.8.1.2 Receive FIFO Errors48013.8.2 Interrupts48013.8.3 Registers480Note: Register tables show organization and individual bit definitions. All reserved bits are read as unknown values and must be written with a 0. A question mark indicates the value is unknown at reset.481Note: Some register bits receive status from codecs. The codec status sets the bit and software clears the bit (write a 1 to cle...48113.8.3.1 Register Mapping Summary481Table 13-7. Register Mapping Summary (Sheet 1 of 2)48113.8.3.2 Global Control Register482Table 13-8. Global Control Register (Sheet 1 of 2)48213.8.3.3 Global Status Register (GSR)484Table 13-9. Global Status Register (Sheet 1 of 2)48413.8.3.4 PCM-Out Control Register (POCR)486Table 13-10. PCM-Out Control Register48613.8.3.5 PCM-In Control Register (PICR)486Table 13-11. PCM-In Control Register (PICR)48613.8.3.6 PCM-Out Status Register (POSR)487Table 13-12. PCM-Out Status Register4871. No more valid buffer data available for transmits.4872. Buffer data available but DMA controller has excessive bandwidth requirements.48713.8.3.7 PCM_In Status Register (PISR)487Table 13-13. PCM_In Status Register48713.8.3.8 Codec Access Register (CAR)488Table 13-14. Codec Access Register48813.8.3.9 PCM Data Register (PCDR)488Table 13-15. PCM Data Register488Figure 13-9. PCM Transmit and Receive Operation48913.8.3.10 Mic-In Control Register (MCCR)489Table 13-16. Mic-In Control Register48913.8.3.11 Mic-In Status Register (MCSR)490Table 13-17. Mic-In Status Register49013.8.3.12 Mic-In Data Register (MCDR)490Table 13-18. Mic-In Data Register490Figure 13-10. Mic-in Receive-Only Operation49113.8.3.13 Modem-Out Control Register (MOCR)491Table 13-19. Modem-Out Control Register49113.8.3.14 Modem-In Control Register (MICR)492Table 13-20. Modem-In Control Register49213.8.3.15 Modem-Out Status Register (MOSR)492Table 13-21. Modem-Out Status Register4921. No more valid buffer data available for transmits.4922. Buffer data available but DMA controller has excessive bandwidth requirements.49213.8.3.16 Modem-In Status Register (MISR)493Table 13-22. Modem-In Status Register49313.8.3.17 Modem Data Register (MODR)493Table 13-23. Modem Data Register493Figure 13-11. Modem Transmit and Receive Operation49413.8.3.18 Accessing Codec Registers494Table 13-24. Address Mapping for Codec Registers (Sheet 1 of 2)495Inter-Integrated Circuit Sound Controller 1449714.1 Overview49714.2 Signal Descriptions498Table 14-1. External Interface to CODEC4981. Program SYSUNIT’s GPIO Direction Register (GPDR). See Section 4.1.3.2, “GPIO Pin Direction Registers (GPDR0, GPDR1, GPDR2)” on page 4-9 for details regarding the GPDR.4982. Program SYSUNIT’s GPIO Alternate Function Select Register (GAFR). See Section 4.1.3.6, “GPIO Alternate Function Register (GAFR)” on page 4-17 for details regarding the GAFR.4983. Program the BCKD bit in the I2SC’s Serial Audio Control Register. See Section 14.6.1, “Serial Audio Controller Global Control Register (SACR0)” for more details.498Note: Modifying the status of the SACR0[BCKD] bit during normal operation can cause jitter on the BITCLK and can affect serial activity.4981. Program SYSUNIT’s GPIO Direction Register (GPDR). See Section 4.1.3.2, “GPIO Pin Direction Registers (GPDR0, GPDR1, GPDR2)” on page 4-9 for details regarding the GPDR.4982. Program SYSUNIT’s GPIO Alternate Function Select Register (GAFR). See Section 4.1.3.6, “GPIO Alternate Function Register (GAFR)” on page 4-17 for details regarding the GAFR.4981. Program SYSUNIT’s GPIO Direction Register (GPDR). See Section 4.1.3.2, “GPIO Pin Direction Registers (GPDR0, GPDR1, GPDR2)” on page 4-9 for details regarding the GPDR.4992. Program SYSUNIT’s GPIO Alternate Function Select Register (GAFR). See Section 4.1.3.6, “GPIO Alternate Function Register (GAFR)” on page 4-17 for details regarding the GAFR.4991. Program SYSUNIT’s GPIO Direction Register (GPDR). See Section 4.1.3.2, “GPIO Pin Direction Registers (GPDR0, GPDR1, GPDR2)” on page 4-9 for details regarding the GPDR.4992. Program SYSUNIT’s GPIO Alternate Function Select Register (GAFR). See Section 4.1.3.6, “GPIO Alternate Function Register (GAFR)” on page 4-17 for details regarding the GAFR.49914.3 Controller Operation49914.3.1 Initialization4991. Set the BITCLK direction by programming the SYSUNIT’s GPIO Direction register, the SYSUNIT’s GPIO Alternate Function Select register, and the I2SC’s Serial Audio Controller Global Control register (bit 2).4992. Choose between Normal I2S or MSB-Justified modes of operation. This can be done by programming bit 0 of Serial Audio Controll...4993. Optional: Programmed I/O may be used for priming the transmit FIFO with a few samples (ranging from 1 to 16). If the I2SLINK ...5004. The following control bits can be simultaneously programmed in the I2SC’s Serial Audio Controller Global Control register (SACR0):500a. Enable I2SLINK by setting the ENB bit (bit-0) of SACR0.500b. Since the SACR0 register will be over-written in Step2, maintain BITCLK direction as programmed in Step1. Modifying BITCLK direction will glitch the clock and affect I2SLINK activity.500c. Program transmit and receive threshold levels by programming the TFTH and RFTH bits of SACR0[11:8] and SACR0(15:12), respectively. See Section 14.6.1.2, “Suggested TFTH and RFTH for DMA servicing”, regarding permitted threshold levels.50014.3.2 Disabling and Enabling Audio Replay5001. All I2SLINK replay activity is disabled. The frame or data sample, in the midst of which the replay is disabled, will have in...5002. Transmit FIFO pointers are reset to zero.5003. Transmit FIFO fill-level is reset to zero.5004. Zeros are transmitted across the I2SLINK.5005. Transmit DMA requests are disabled.50014.3.3 Disabling and Enabling Audio Record5001. I2SLINK recording activity is disabled. The frame or data sample, in the midst of which the recording is disabled, could have...5012. Receive FIFO pointers are reset to zero.5013. Receive FIFO fill-level is reset to zero.5014. Any read operations by the DMA/CPU are returned with zeros.5015. Receive DMA requests are disabled.50114.3.4 Transmit FIFO Errors5011. Valid transmit data is still available in memory, but the DMA controller starves the transmit FIFO, as it is busy servicing other higher-priority peripherals.5012. The DMA controller has transferred all valid data from memory to the transmit FIFO.50114.3.5 Receive FIFO Errors50114.3.6 Trailing Bytes50114.4 Serial Audio Clocks and Sampling Frequencies501Table 14-2. Supported Sampling Frequencies50214.5 Data Formats50214.5.1 FIFO and Memory Format50214.5.2 I2S and MSB-Justified Serial Audio Formats502Figure 14-1. I2S Data Formats (16 bits)503Figure 14-2. MSB-Justified Data Formats (16 bits)50314.6 I2S Controller Register Descriptions50314.6.1 Serial Audio Controller Global Control Register (SACR0)504Table 14-3. SACR0 Bit Descriptions (Sheet 1 of 2)50414.6.1.1 Special purpose FIFO Read/Write function505Table 14-4. FIFO Write/Read table50614.6.1.2 Suggested TFTH and RFTH for DMA servicing506Table 14-5. TFTH and RFTH Values for DMA Servicing50614.6.2 Serial Audio Controller I2S/MSB-Justified Control Register (SACR1)506Table 14-6. SACR1 Bit Descriptions50714.6.3 Serial Audio Controller I2S/MSB-Justified Status Register (SASR0)507Table 14-7. SASR0 Bit Descriptions50814.6.4 Serial Audio Clock Divider Register (SADIV)509Note: Setting this register to values other than those shown in Table 14-2, “Supported Sampling Frequencies” on page 14-6 is not allowed and will cause unpredictable activity.509Table 14-8. SADIV Bit Descriptions50914.6.5 Serial Audio Interrupt Clear Register (SAICR)509Table 14-9. SAICR Bit Descriptions51014.6.6 Serial Audio Interrupt Mask Register (SAIMR)510Table 14-10. SAIMR Bit Descriptions51014.6.7 Serial Audio Data Register (SADR)510Table 14-11. SADR Bit Descriptions511Figure 14-3. Transmit and Receive FIFO Accesses Through the SADR51114.6.8 Controller: Register Memory Map511Table 14-12. Register Memory Map51214.7 Interrupts512Note: For further details, see Section 14.6.3, “Serial Audio Controller I2S/MSB-Justified Status Register (SASR0)”.512MultiMediaCard Controller 1551315.1 Overview513Figure 15-1. MMC System Interaction513Table 15-1. Command Token Format514Table 15-2. MMC Data Token Format514Table 15-3. SPI Data Token Format514Figure 15-2. MMC Mode Operation Without Data Token515Figure 15-3. MMC Mode Operation With Data Token515Figure 15-4. SPI Mode Operation Without Data Token515Figure 15-5. SPI Mode Read Operation516Figure 15-6. SPI Mode Write Operation516Note: One- and three-byte data transfers are not supported with this controller. Data transfers of 10 or more bytes are supported for stream writes only.51615.2 MultiMediaCard Controller Functional Description51615.2.1 Signal Description516Table 15-4. MMC Signal Description51715.2.2 MultiMediaCard Controller Reset51715.2.3 Card Initialization Sequence51715.2.4 MMC and SPI Modes51715.2.4.1 MMC Mode51715.2.4.2 SPI Mode518Note: When the card is in SPI mode, the only way to return to MMC mode is by toggling the power to the card.51815.2.5 Error Detection51915.2.6 Interrupts51915.2.7 Clock Control5191. Stop the clock.5192. Write the registers.5193. Restart the clock.520Warning: Stopping the clock while data is in the transmit or receive FIFOs will cause unpredictable results.52015.2.8 Data FIFOs52015.2.8.1 Response Data FIFO (MMC_RES)52015.2.8.2 Receive Data FIFO, MMC_RXFIFO52115.2.8.3 Transmit Data FIFO, MMC_TXFIFO52215.2.8.4 DMA and Program I/O52315.3 Card Communication Protocol52315.3.1 Basic, No Data, Command and Response Sequence5231. Stop the clock5232. Write 0x6f to the MMC_I_MASK register and wait for and verify the MMC_I_REG[CLK_IS_OFF] interrupt5233. Write to the following registers, as necessary:5234. Start the clock5245. Write 0x7b to the MMC_I_MASK register and wait for and verify the MMC_I_REG[END_CMD_RES] interrupt5246. Read the MMC_RES FIFO and MMC_STAT registers52415.3.2 Data Transfer52415.3.2.1 Block Data Write52515.3.2.2 Block Data Read52515.3.2.3 Stream Data Write52615.3.2.4 Stream Data READ52615.3.3 Busy Sequence52715.3.4 SPI Functionality527Note: The clock must be stopped before writing to any registers as described in Section 15.3.1, “Basic, No Data, Command and Response Sequence”.52715.4 MultiMediaCard Controller Operation52715.4.1 Start and Stop Clock5281. Write 0x01 in MMC_STRPCL to stop the MMC clock.5282. Write 0x0f in MMC_I_MASK to mask all interrupts except the MMC_I_REG[CLK_IS_OFF] interrupt.5283. Wait for the MMC_I_REG[CLK_IS_OFF] interrupt.52815.4.2 Initialize52815.4.3 Enabling SPI Mode5281. MMC_SPI[SPI_EN] must be set to 1.5282. MMC_SPI[SPI_CS_EN] must be set to 1.5283. MMC_SPI[SPI_CS_ADDRESS] must be set to specify the card that the software wants to address. A 1 enables CS0 and a 0 enables CS1.528Note: When the card is in SPI mode, the only way to return to MMC mode is by toggling power to the card.52815.4.4 No Data Command and Response Sequence5281. Turn the clock off, as described in chapter in Section 15.4.1, “Start and Stop Clock”.5282. Write the command index in the MMC_CMD[CMD_INDEX] bits.5283. Write the command argument in the MMC_ARGH and MMC_ARGL registers.5284. Write the MMC_CMDAT register set as follows:528a. Write 0b00 to MMC_CMDAT[RESPONSE_FORMAT].528b. Clear the MMC_CMDAT[DATA_EN] bit.528c. Clear the MMC_CMDAT[BUSY] bit, unless the card may respond busy.528d. Clear the MMC_CMDAT[INIT] bit.5285. Write MMC_RESTO register with the appropriate value.5286. Write 0x1b in MMC_I_MASK to unmask the MMC_I_REG[END_CMD_RES] interrupt.5287. Start the clock, as described in Section 15.4.1, “Start and Stop Clock”52815.4.5 Erase52915.4.6 Single Data Block Write5291. Wait for the response as described in section Section 15.4.4, “No Data Command and Response Sequence”.5292. Write data to the MMC_TXFIFO FIFO and continue until all of the data has been written to the FIFO.529Note: If a piece of data smaller than 32 bytes is written to the FIFO, the MMC_PRTBUF register must be set.5293. Set MMC_I_MASK register to 0x1e and wait for MMC_I_REG[DATA_TRAN_DONE] interrupt.5294. Set MMC_I_MASK to 0x1d.5295. Wait for MMC_I_REG[PRG_DONE] interrupt. This interrupt indicates that the card has finished programming. Software may wait for MMC_I_REG[PRG_DONE] or start another command sequence on a different card.5306. Read the MMC_STAT register to verify the status of the transaction (i.e. CRC error status).53015.4.7 Single Block Read5301. Wait for the response as described in section Section 15.4.4, “No Data Command and Response Sequence”.5302. Read data from the MMC_RXFIFO FIFO, as data becomes available in the FIFO, and continue reading until all data is read from the FIFO.5303. Set MMC_I_MASK to 0x1e.5304. Wait for the MMC_I_REG[DATA_TRAN_DONE] interrupt.5305. Read the MMC_STAT register to verify the status of the transaction (i.e. CRC error status).53015.4.8 Multiple Block Write53015.4.9 Multiple Block Read53115.4.10 Stream Write5311. Wait for the response as described in section Section 15.4.4, “No Data Command and Response Sequence”.5312. Write data to the MMC_TXFIFO FIFO and continue until all of the data is written to the FIFO.531Note: When data less than 32 bytes is written to the FIFO, the MMC_PRTBUF[BUF_PART_FULL] bit must be set.5313. Set MMC_I_MASK to 0x77 and wait for MMC_I_REG[STOP_CMD] interrupt.5314. Set the command registers for a stop transaction command (CMD12).5315. Wait for a response to the stop transaction command as described in section Section 15.4.4, “No Data Command and Response Sequence”.5316. Set MMC_I_MASK to 0x1e.5317. Wait for MMC_I_REG[DATA_TRAN_DONE] interrupt.5318. Set MMC_I_MASK to 0x1d.5329. Wait for MMC_I_REG[PRG_DONE] interrupt. This interrupt indicates that the card has finished programming. Software may wait for MMC_I_REG[PRG_DONE] interrupt or start another command sequence on a different card.53210. Read the MMC_STAT register to verify the status of the transaction (i.e. CRC error status).53215.4.11 Stream Read5321. Wait for the response as described in section Section 15.4.4, “No Data Command and Response Sequence”.5322. Read data from the MMC_RXFIFO FIFO and continue until all of the data has been read from the FIFO.5323. Set the command registers for a stop transaction command (CMD12). If the DMA is being used, the last descriptor must set the DMA to send an interrupt to signal that all the data has been read.5324. Wait for a response to the stop transaction command as described in section Section 15.4.4, “No Data Command and Response Sequence”5325. Set MMC_I_MASK to 0x1e.5326. Wait for MMC_I_REG[DATA_TRAN_DONE] interrupt.5327. Read the MMC_STAT register to verify the status of the transaction (i.e. CRC error status).53215.5 MultiMediaCard Controller Register Descriptions533Table 15-5. MMC Controller Registers53315.5.1 MMC_STRPCL Register533Table 15-6. MMC_STRPCL Register53415.5.2 MMC_STAT Register534Table 15-7. MMC_STAT Register (Sheet 1 of 2)53415.5.3 MMC_CLKRT Register535Table 15-8. MMC_CLK Register53615.5.4 MMC_SPI Register536Table 15-9. MMC_SPI Register (Sheet 1 of 2)53615.5.5 MMC_CMDAT Register537Table 15-10. MMC_CMDAT Register (Sheet 1 of 2)53715.5.6 MMC_RESTO Register538Table 15-11. MMC_RESTO Register53915.5.7 MMC_RDTO Register539Table 15-12. MMC_RDTO Register53915.5.8 MMC_BLKLEN Register540Table 15-13. MMC_BLKLEN Register54015.5.9 MMC_NOB Register540Table 15-14. MMC_NOB Register54015.5.10 MMC_PRTBUF Register540Table 15-15. MMC_PRTBUF Register54115.5.11 MMC_I_MASK Register541Table 15-16. MMC_I_MASK Register54115.5.12 MMC_I_REG Register542Table 15-17. MMC_I_REG Register54315.5.13 MMC_CMD Register543Table 15-18. MMC_CMD Register544Table 15-19. Command Index Values (Sheet 1 of 3)54415.5.14 MMC_ARGH Register546Table 15-20. MMC_ARGH Register54615.5.15 MMC_ARGL Register546Table 15-21. MMC_ARGL Register54615.5.16 MMC_RES FIFO (read only)547Table 15-22. MMC_RES, FIFO Entry54715.5.17 MMC_RXFIFO FIFO (read only)547Table 15-23. MMC_RXFIFO, FIFO Entry54715.5.18 MMC_TXFIFO FIFO547Table 15-24. MMC_TXFIFO, FIFO Entry548Network/Audio Synchronous Serial Protocol Serial Ports 1654916.1 Overview54916.2 Features54916.3 Signal Description550Table 16-1. SSP Serial Port I/O Signals55016.4 Operation55016.4.1 Processor and DMA FIFO Access55116.4.2 Trailing Bytes in the Receive FIFO55116.4.2.1 Time-out55116.4.2.2 Removing Trailing Bytes552Note: The time-out interrupt must be enabled by setting SSCR1[TINTE].55216.4.3 Data Formats552Note: The serial clock (SSPSCLK), if driven by the SSP port, toggles only while an active data transfer is underway, unless rece...55316.4.3.1 TI Synchronous Serial Protocol* Details553Figure 16-1. Texas Instruments Synchronous Serial Frame* Protocol (multiple transfers)554Figure 16-2. Texas Instruments Synchronous Serial Frame* Protocol (single transfers)55416.4.3.2 SPI Protocol Details554Figure 16-3. Motorola SPI* Frame Protocol (multiple transfers)555Note: When configured as either master or slave (to clock or frame) the SSP port continues to drive SSPTXD with the last bit of ...555Note: The phase and polarity of SSPSCLK can be configured for four different modes. This example shows just one of those modes (SSCR1[SPO] = 0, SSCR1[SPH] = 0).555Figure 16-4. Motorola SPI* Frame Protocol (single transfers)555Note: When configured as either master or slave (to clock or frame) the SSP port continues to drive SSPTXD with the last bit of ...555Note: SSCR1[SPH] is ignored for all data frame formats except for the Motorola SPI* protocol.556Figure 16-5. Motorola SPI* Frame Protocols for SPO and SPH Programming (multiple transfers)556Note: When configured as either master or slave (to clock or frame) the SSP port continues to drive SSPTXD with the last bit of ...557Figure 16-6. Motorola SPI* Frame Protocols for SPO and SPH Programming (single transfers)557Note: When configured as either master or slave (to clock or frame) the SSP port continues to drive SSPTXD with the last bit of ...55716.4.3.3 Microwire* Protocol Details557Figure 16-7. National Semiconductor Microwire* Frame Protocol (multiple transfers)558Note: When configured master the SSP port continues to drive SSPTXD with the last bit of data sent (the LSB) or it drives zero, ...558Figure 16-8. National Semiconductor Microwire* Frame Protocol (single transfers)558Note: When configured master the SSP port continues to drive SSPTXD with the last bit of data sent (the LSB) or it drives zero, ...55816.4.3.4 PSP Details558Figure 16-9. Programmable Serial Protocol (multiple transfers)559Figure 16-10. Programmable Serial Protocol (single transfers)560Table 16-2. Programmable Serial Protocol (PSP) Parameters560Note: The SSPSFRM delay must not extend beyond the end of T4. SSPSFRM Width must be asserted for at least 1 SSPSCLK, and must be...56016.4.4 Hi-Z on SSPTXD56116.4.4.1 TI Synchronous Serial Port561Figure 16-11. TI SSP with SSCR[TTE]=1 and SSCR[TTELP]=0561Figure 16-12. TI SSP with SSCR[TTE]=1 and SSCR[TTELP]=1562Note: If SSPSCLK is an input, the device driving SSPSCLK must provide another clock edge to cause the TXD line to go to Hi-Z.56216.4.4.2 Motorola SPI562Figure 16-13. Motorola SPI with SSCR[TTE]=1562Note: SSCR1[TTELP] must be 0 for Motorola SPI.56216.4.4.3 National Semiconductor Microwire562Figure 16-14. National Semiconductor Microwire with SSCR1[TTE]=1563Note: SSCR1[TTELP] must be 0 for National Semiconductor Microwire.56316.4.4.4 Programmable Serial Protocol563Figure 16-15. PSP mode with SSCR1[TTE]=1 and SSCR1[TTELP]=0 (slave to frame)563Figure 16-16. PSP mode with SSCR1[TTE]=1 and SSCR1[TTELP]=0 (master to frame)564Figure 16-17. PSP mode with SSCR1[TTE]=1 and SSCR1[TTELP]=1 (must be slave to frame)56416.4.5 FIFO Operation56516.4.5.1 Using Programmed I/O Data Transfers56516.4.5.2 Using DMA Data Transfers56516.4.6 Baud-Rate Generation56516.5 SSP Port Register Descriptions566Note: Write the SSP port registers after a reset but before the SSP port is enabled.56616.5.1 SSP Control Register 0 (SSCR0)566Table 16-3. SSCR0 Bit Definitions (Sheet 1 of 2)56716.5.2 SSP Control Register 1 (SSCR1)569Table 16-4. SSCR1 Bit Definitions (Sheet 1 of 6)56916.5.3 SSP Programmable Serial Protocol Register (SSPSP)575Table 16-5. SSPSP Bit Definitions (Sheet 1 of 2)57516.5.4 SSP Time Out Register (SSTO)576Table 16-6. SSTO Bit Definitions57716.5.5 SSP Interrupt Test Register (SSITR)577Table 16-7. SSITR Bit Definitions (Sheet 1 of 2)57716.5.6 SSP Status Register (SSSR)578Table 16-8. SSSR Bit Definitions (Sheet 1 of 3)57916.5.7 SSP Data Register (SSDR)582Table 16-9. SSDR Bit Definitions58216.6 Register Summary582Table 16-10. NSSP Register Address Map583Table 16-11. ASSP Register Address Map583Hardware UART 17585This chapter describes the signal definitions and operation of the Intel® PXA26x Processor Family Hardware UART (HWUART) port.585The HWUART interface pins are available via either the PCMCIA general purpose I/O (GPIO) pins or the BTUART pins. When using the...585The HWUART is configured differently than the other UARTs. The HWUART adds support for full hardware flow control.58517.1 Overview585The HWUART contains a UART and a slow infrared transmit encoder and receive decoder that conforms to the IrDA Serial Infrared (SIR) Physical Layer Link Specification.585The UART performs serial-to-parallel conversion on data characters received from a peripheral device or a modem and parallel-to-...585The HWUART operates in FIFO or non-FIFO mode. In FIFO mode, a 64-byte transmit FIFO holds data from the processor until it is tr...585The HWUART also supports using DMA to transfer data to and from the HWUART.585The UART includes a programmable baud rate generator that can divide the input clock by 1 to 216-1. This produces a 16X clock th...58517.2 Features586The HWUART has the following features:58617.3 Signal Descriptions587Table 17-1 lists and describes each external signal that is connected to the UART module. The pins are connected to the PXA26x processor family through GPIOs. Refer to Section 4.1, “General- Purpose Input/Output” for details on the GPIOs.587Table 17-1. UART Signal Descriptions58717.4 Operation587The format of a UART data frame is shown in Figure 17-1.587Figure 17-1. Example UART Data Frame588Receive data sample counter frequency is 16 times the value of the bit frequency. The 16X clock is created by the baud rate gene...588Each data frame is between seven and 12 bits long, depending on the size of the data programmed, whether parity is enabled, and ...588The UART has two FIFOs: one transmit and one receive. The transmit FIFO is 64 bytes deep and eight bits wide. The receive FIFO is 64 bytes deep and 11 bits wide. Three bits are used for tracking errors.588The UART can use NRZ coding to represent individual bit values. NRZ coding is enabled when the Interrupt Enable Register’s (IER)...588Figure 17-2. Example NRZ Bit Encoding (0b0100 1011)58817.4.1 Reset589The UART is disabled on reset. To enable the UART, software must program the GPIO registers (see Section 4.1, “General-Purpose I...589When the UART unit is disabled, the transmitter or receiver finishes the current byte and stops transmitting or receiving more data. Data in the FIFO is not cleared and transmission resumes when the UART is enabled.58917.4.2 FIFO Operation589The UART has a transmit FIFO and a receive FIFO each holding 64 characters of data. There are three separate methods for moving data into/out of the FIFOs: interrupts, polling, and DMA.58917.4.2.1 FIFO Interrupt Mode Operation589For a receive interrupt to occur, the receive FIFO and receive interrupts must be enabled. The Interrupt Identification Register...589The receiver line status interrupt (IIR = 0xC6) has the highest priority and the received data available interrupt (IIR = 0xC4) is lower. The line status interrupt occurs only when the character at the front of the FIFO has errors.589The data ready bit (DR in the Line Status Register) is set when a character is transferred from the shift register to the receive FIFO. The DR bit is cleared when the FIFO is empty.589A character timeout interrupt occurs when the receive FIFO and receive timeout interrupt are enabled and all of the following conditions exist:589After the processor reads one character from the receive FIFO or a new start bit is received, the timeout interrupt is cleared a...589Transmit interrupts can only occur when the transmit FIFO and transmit interrupt are enabled. The transmit data request interrupt occurs when the transmit FIFO is at least half empty. The interrupt is cleared when the THR is written or the IIR is read.59017.4.2.2 FIFO Polled Mode Operation590When the FIFOs are enabled, clearing both IER[DMAE] and IER[4:0] places the serial port in FIFO polled operating mode. The recei...590The processor can also check the LSR[TEMT] (transmitter empty) bit, which is set when the transmit FIFO and Holding register are empty.59017.4.2.3 FIFO DMA Mode Operation590The UART has two DMA requests: One for transmit data service, and one for receive data service. DMA requests are generated in FIFO mode only. The requests are activated by setting IER[DMAE].59017.4.2.4 DMA Receive Programming Errors590If the DMA channel stops prematurely due to the end of a descriptor chain or other error, the processor must be notified, since ...59017.4.2.5 DMA Error Handling590An error interrupt is used when DMA requests are enabled. The interrupt is generated when LSR bit 7 is set to 1. This happens wh...590Note: When DMA requests are enabled and an interrupt occurs, software must first read the LSR to see if an error interrupt exist...591If an error occurs while in DMA mode:591The processor must now read out the error bytes through programmed I/O (PIO). When all errors have been removed from the FIFO, the receive DMA requests are once again enabled automatically by the UART.591If an error occurs when the receive FIFO trigger threshold has been reached such that a receive DMA request is set, users need to wait for the DMA to finish the transfer before reading out the error bytes through PIO. If not, FIFO underflow could occur.591Note: Ensure that the DMA controller has completed the previous receive DMA requests before the error interrupt handler begins to clear the errors from the FIFO. If not, FIFO underflow could occur.59117.4.2.6 Removing Trailing Bytes In DMA Mode591When the number of entries in the receive FIFO is less than its trigger threshold, and no additional data is received, the remai...59117.4.3 Autoflow Control591Autoflow Control uses the Clear-to-Send (nCTS) and Request-to-Send (nRTS) signals to automatically control the flow of data betw...591Autoflow mode can be used in two ways: full autoflow, automating both nCTS and nRTS; and half autoflow, automating only nCTS. Fu...591When in full autoflow mode, nRTS is asserted when the UART FIFO is ready to receive data from the remote transmitter. This occur...591When in Full or Half-Autoflow mode, nCTS is asserted by the remote receiver when the receiver is ready to receive data from the ...592Note: Autoflow mode can be used only in conjunction with FIFO mode.59217.4.4 Auto-Baud-Rate Detection592The HWUART supports auto-baud-rate detection. When enabled, the UART counts the number of 14.7456-MHz-clock cycles within the st...592If the UART is to program the Divisor Latch registers, users can choose between two methods for auto-baud calculation: table-bas...592When the baud rate is detected, the auto-baud circuitry will disable itself by clearing the ABR[ABE]. If users want to re-enable auto-baud detection, ABR[ABE] must be set.592Note: Auto-baud rate detection is not supported with IrDA (Slow Infrared) Mode.592See Section 17.5.8, “Auto-Baud Control Register (ABR)” for more information on auto-baud.59217.4.5 Slow Infrared Asynchronous Interface592The Slow Infrared (SIR) interface is used to support two-way wireless communication that uses infrared transmission. The SIR pro...592The SIR interface does not contain the actual IR LED driver or the receiver amplifier. The I/O pins attached to the SIR only hav...59317.4.5.1 Operation593The SIR modulation technique works with 5-, 6-, 7-, or 8-bit characters with an optional parity bit. The data is preceded by a z...593Figure 17-3. IR Transmit and Receive Example593The top line in Figure 17-3 shows an asynchronous transmission as it is sent from the UART. The second line shows the pulses gen...593When XMODE is cleared, each zero bit has a pulse width of 3/16 of a bit time. When XMODE is set, a pulse of 1.6 ms is generated ...593Figure 17-4. XMODE Example.594Note: The SIR TXD output pin is automatically held deasserted when the RCVEIR bit is set. Before setting the RCVEIR bit, check t...594To disable SIR, disable the IrDA LED first, if possible. Second, set the TXD GPIO pin to the infrared LED's default state using ...59417.5 Hardware UART Register Descriptions59417.5.1 Receive Buffer Register (RBR)594In non-FIFO mode, the Receive Buffer Register (RBR) holds the character(s) received by the UART’s Receive Shift Register. If the...594In FIFO mode, the RBR latches the value of the data byte at the front of the FIFO (see Table 17-2).594Table 17-2. RBR Bit Definitions59517.5.2 Transmit Holding Register (THR)595In non-FIFO mode, the Transmit Holding Register (THR) holds the data byte(s) to be transmitted next. When the Transmit Shift Reg...595In FIFO mode, a write to the THR puts data into the end of the FIFO. The data at the front of the FIFO is loaded to the TSR when that register is empty. The Transmit Holding Register bit definitions are shown in Table 17-3.595Table 17-3. THR Bit Definitions59517.5.3 Divisor Latch Registers (DLL and DLH)595The HWUART contains a programmable baud rate generator that can take the 14.7456 MHz-fixed- input clock and divide it by a numbe...595The baud rate of the data shifted in to or out of a UART is given by the formula:596For example, if the divisor is 24, the baud rate is 38400 bps.596The divisor’s reset value is 0x0002.596Table 17-4 and Table 17-5 describe the DLL and DLH registers.596Table 17-4. Divisor Latch Register Low (DLL) Bit Definitions596Table 17-5. Divisor Latch Register High (DLH) Bit Definitions59617.5.4 Interrupt Enable Register (IER)597The IER enables the five types of interrupts that set a value in the Interrupt Identification Register (IIR). To disable an interrupt, software must clear the appropriate bit in the IER. Software can enable some interrupts by setting the appropriate bit.597The Character Timeout Indication interrupt is separated from the received data available interrupt to ensure that the processor ...597Enabling DMA requests also enables a separate error interrupt. For additional information see Section 17.4.2.5.597Bit 7 of the IER is used to enable DMA requests. The IER also contains the unit enable and NRZ coding enable control bits. Bits ...597Note: MCR[OUT2] is a global interrupt enable, and must be set to enable UART interrupts.597Table 17-6. IER Bit Definitions (Sheet 1 of 2)597Note: To ensure that the DMA controller and programmed I/O do not access the same FIFO, software must not set the DMAE while the TIE or RAVIE bits are set to a 1.59817.5.5 Interrupt Identification Register (IIR)598The UART prioritizes interrupts in four levels (see Table 17-7, “Interrupt Conditions”) and records them in the IIR. The IIR sto...598If additional data is received before a receiver time out interrupt is serviced, the interrupt is deasserted.598Read IIR to determine the type and source of UART interrupts. To be 16550 compatible, the lower 4 bits of the IIR are priority e...598IIR[nIP] indicates the existence of an interrupt in the lower four bits of the IIR. A low signal on this bit indicates an encode...598Table 17-7. Interrupt Conditions599Table 17-8. IIR Bit Definitions (Sheet 1 of 2)599Table 17-9 shows the priority, type, and source of the Interrupt Identification Register Interrupts. It also gives the reset condition used to deassert the Interrupts. Bits (0-3) of the IIR represent priority encoded interrupts. Bits (4-7) do not.600Table 17-9. Interrupt Identification Register Decode (Sheet 1 of 2)60017.5.6 FIFO Control Register (FCR)601The FIFO Control Register (FCR) is a write-only register that is located at the same address as the IIR, which is a read-only re...601Table 17-10. FCR Bit Definitions (Sheet 1 of 2)60117.5.7 Receive FIFO Occupancy Register (FOR)602The Receive FIFO Occupancy Register shows the number of bytes currently remaining in the receive FIFO. It can be used by the pro...602All reserved bits are read as unknown and must be written with a 0. The register organization and the individual bit definitions are shown in Table 17-11 on page 17-19.603Table 17-11. FOR Bit Definitions60317.5.8 Auto-Baud Control Register (ABR)603The ABR controls the functionality and options for auto-baud-rate detection within the UART. Through this register, users can en...603The auto-baud circuitry counts the number of clocks in the start bit and writes this count into the Auto-Baud Count Register (AC...603Note: Auto-baud rate detection is not supported with slow infrared Mode.604Table 17-12. ABR Bit Definitions604See Section 17.4.4, “Auto-Baud-Rate Detection” for more information on auto-baud rate.60417.5.9 Auto-Baud Count Register (ACR)604The ACR stores the number of 14.7456-MHz-clock cycles within a start bit pulse. This value is then used by the processor or the ...604Table 17-13. ACR Bit Definitions60517.5.10 Line Control Register (LCR)605The Line Control Register (LCR) specifies the format for the asynchronous data communications exchange. The serial data format c...605Table 17-14. LCR Bit Definitions (Sheet 1 of 2)60617.5.11 Line Status Register (LSR)607The LSR provides data transfer status information to the processor.607In non-FIFO mode, LSR[4:2]: parity error, framing error, and break interrupt, show the error status of the character that has just been received.607In FIFO mode, LSR[4:2] show the status bits of the character that is currently at the front of the FIFO.607LSR[4:1] produce a receiver line status interrupt when the corresponding conditions are detected and the interrupt is enabled. I...607The LSR must be read before the erroneous character is read. LSR[4:1] bits are set until software reads the LSR.607See Section 17.4.2.3, “FIFO DMA Mode Operation” for details on using the DMA to receive data.608Table 17-15. LSR Bit Definitions (Sheet 1 of 3)60817.5.12 Modem Control Register (MCR)610The Modem Control Register (MCR) uses the modem control pin nRTS to control the interface with a modem or data set. The MCR also...610Table 17-16. MCR Bit Definitions (Sheet 1 of 2)61117.5.13 Modem Status Register (MSR)612The Modem Status Register (MSR) provides the current state of the control lines from the modem or data set (or a peripheral devi...612The status of the modem control lines do not affect the FIFOs. To use these lines for flow control, IER[MIE] must be set. When a...612Note: When bit 0, 1, 2, or 3 is set, a Modem Status interrupt is generated if IER[MIE] is set.613Table 17-17. MSR Bit Definitions61317.5.14 Scratchpad Register (SPR)613The read/write Scratchpad Register has no effect on the UART. It is intended as a scratchpad register for use by the programmer. It is included for 16550A compatibility. The SPR bit definitions are shown in Table 17-18.613Table 17-18. SPR Bit Definitions61317.5.15 Infrared Selection Register (ISR)614Each UART can manage an IrDA module associated with it. The Infrared Selection Register controls IrDA functions (see Section 17.4.5, “Slow Infrared Asynchronous Interface” on page 17-8). The ISR bit definitions are shown in Table 17-19.614Table 17-19. ISR Bit Definitions (Sheet 1 of 2)61417.6 Hardware UART Register Summary615Table 17-20 contains the register addresses for the HWUART.615Table 17-20. HWUART Register Locations (Sheet 1 of 2)615Internal Flash 18617Note: This section describes the synchronous Intel StrataFlash® memory. All references to Intel StrataFlash® memory is to the synchronous (K3) version.61718.1 Initialization61718.1.1 Intel StrataFlash® Memory Reset Configuration617Figure 18-1. Flash Memory Reset Using State Machine617Figure 18-2. Flash Memory Reset Logic if Watchdog Reset is Not Necessary61818.1.2 BOOT_SEL[2:0] Configuration61818.1.3 Determining the Size and Configuration of Flash Using Software61818.1.4 SXCNFG Configuration618Table 18-1. SXCNFG Configuration for Internal Flash619Warning: Using a memory-clock frequency above 133 MHz is not allowed in synchronous mode with Intel StrataFlash® memory.61918.1.5 Configuring the Intel StrataFlash® Memory619Table 18-2. RCR Values for Each PXA26x processor family Applications Processor Version619Warning: The CAS latency setting within SXCNFG[SXCLx] is one less than the actual setting. For example, setting SXCNFG[SXCLx]=0b100 gives a CAS latency of 5 clocks. The CAS latency value programmed into the flash is also one less than the actual setting.619Note: The instructions to do the RCR configuration sequence and the SXCNFG above must either be in RAM or guaranteed not to fetc...61918.2 Additional Intel StrataFlash® Memory Information622Size: 4.33 MBPages: 624Language: EnglishOpen manual