2 www.ubicom.com IP2022 Data Sheet TABLE OF CONTENTS 1.0 Product Overview1 1.1 Key Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.1 CPU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.2 Serializer/Deserializers . . . . . . . . . . . . . . . . . . . . . . 4 1.2.3 Low-Power Support. . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2.4 Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2.5 Instruction Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2.6 The ipModule Concept  . . . . . . . . . . . . . . . . . . . . . . 5 1.2.7 Programming and Debugging Support . . . . . . . . . . 6 1.2.8 Applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.0 Pin Assignments 7 2.1 Signal Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.0 System Architecture 10 3.1 CPU Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2 Data Memory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3 Program Memory. . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.3.1 Loading the Program RAM . . . . . . . . . . . . . . . . . . 14 3.3.2 Program Counter. . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.4 Low Power Support. . . . . . . . . . . . . . . . . . . . . . . . 15 3.4.1 Speed Change Delay  . . . . . . . . . . . . . . . . . . . . . . 15 3.4.2 Instruction Timing . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.5 Interrupt Support . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.5.1 Interrupt Processing  . . . . . . . . . . . . . . . . . . . . . . . 17 3.5.2 Global Interrupt Enable Bit  . . . . . . . . . . . . . . . . . . 19 3.5.3 Interrupt Latency During Speed Change. . . . . . . . 20 3.5.4 Return From Interrupt . . . . . . . . . . . . . . . . . . . . . . 20 3.5.5 Disabled Resources  . . . . . . . . . . . . . . . . . . . . . . . 21 3.5.6 Clock Stop Mode . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.6 Reset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.6.1 Brown-Out Detector. . . . . . . . . . . . . . . . . . . . . . . . 23 3.6.2 Reset and Interrupt Vectors  . . . . . . . . . . . . . . . . . 23 3.6.3 Register States Following Reset . . . . . . . . . . . . . . 23 3.7 Clock Oscillator . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.7.1 External Connections  . . . . . . . . . . . . . . . . . . . . . . 25 3.8 Configuration Block . . . . . . . . . . . . . . . . . . . . . . . . 26 3.8.1 FUSE0 Register  . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.8.2 FUSE1 Register  . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.8.3 TRIM0 Register . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.9 Special-Purpose Register Map . . . . . . . . . . . . . . . 30 4.0 Instruction Set Architecture 34 4.1 Addressing Modes. . . . . . . . . . . . . . . . . . . . . . . . . 35 4.1.1 Pointer Registers. . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.1.2 Direct Addressing Mode . . . . . . . . . . . . . . . . . . . . 36 4.1.3 Indirect Addressing Mode . . . . . . . . . . . . . . . . . . . 36 4.1.4 Indirect-with-Offset Modes  . . . . . . . . . . . . . . . . . . 37 4.2 Instruction Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.2.1 Instruction Formats . . . . . . . . . . . . . . . . . . . . . . . . 38 4.2.2 Instruction Types . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.3 Instruction Pipeline . . . . . . . . . . . . . . . . . . . . . . . . 40 4.4 Subroutine Call/Return Stack  . . . . . . . . . . . . . . . . 41 4.5 Key to Abbreviations and Symbols . . . . . . . . . . . . 43 4.6 Instruction Set Summary Tables . . . . . . . . . . . . . . 43 4.7 Self-Programming Instructions  . . . . . . . . . . . . . . . 47 4.7.1 Flash Timing Control . . . . . . . . . . . . . . . . . . . . . . . 48 4.7.2 Interrupts During Flash Operations . . . . . . . . . . . . 49 5.0 Peripherals 50 5.1 I/O Ports  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.1.1 Port B Interrupts  . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.1.2 Reading and Writing the Ports  . . . . . . . . . . . . . . . 52 5.1.3 RxIN Registers  . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.1.4 RxOUT Registers  . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.1.5 RxDIR Registers . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.1.6 INTED Register . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.1.7 INTF Register  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.1.8 INTE Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.1.9 Port Configuration Upon Power-Up. . . . . . . . . . . . 53 5.2 Timer 0  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.3 Real-Time Timer . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.4 Multi-Function Timers (T1 and T2)  . . . . . . . . . . . . 56 5.4.1 Timers T1, T2 Operating Modes . . . . . . . . . . . . . . 57 5.4.2 T1 and T2 Timer Pin Assignments  . . . . . . . . . . . .58 5.4.3 T1 and T2 Timer Registers  . . . . . . . . . . . . . . . . . .58 5.5 Watchdog Timer  . . . . . . . . . . . . . . . . . . . . . . . . . .61 5.6 Serializer/Deserializer (SERDES) . . . . . . . . . . . . .61 5.6.1 Protocol Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . .64 5.6.2 SxMODE Register . . . . . . . . . . . . . . . . . . . . . . . . .65 5.6.3 SxRSYNC Register . . . . . . . . . . . . . . . . . . . . . . . .66 5.6.4 SxSYNCMASK Register  . . . . . . . . . . . . . . . . . . . .66 5.6.5 SxRBUFH/SxRBUFL Register. . . . . . . . . . . . . . . .66 5.6.6 SxRCFG Register  . . . . . . . . . . . . . . . . . . . . . . . . .67 5.6.7 SxRCNT Register  . . . . . . . . . . . . . . . . . . . . . . . . .67 5.6.8 SxTBUFH/SxTBUFL Register . . . . . . . . . . . . . . . .67 5.6.9 SxTCFG Register  . . . . . . . . . . . . . . . . . . . . . . . . .68 5.6.10 SxINTF Register  . . . . . . . . . . . . . . . . . . . . . . . . . .68 5.6.11 SxINTE Register  . . . . . . . . . . . . . . . . . . . . . . . . . .69 5.6.12 SERDES Protocol-Specific Considerations . . . . . .70 5.7 Analog to Digital Converter (ADC). . . . . . . . . . . . .72 5.7.1 ADC Reference Voltage  . . . . . . . . . . . . . . . . . . . .72 5.7.2 ADC Result Justification  . . . . . . . . . . . . . . . . . . . .72 5.7.3 Using the A/D Converter . . . . . . . . . . . . . . . . . . . .73 5.7.4 A/D Converter Registers . . . . . . . . . . . . . . . . . . . .73 5.8 Comparator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74 5.8.1 CMPCFG Register. . . . . . . . . . . . . . . . . . . . . . . . .74 5.9 Linear Feedback Shift Register . . . . . . . . . . . . . . .74 5.9.1 LFSRCFG1 Register . . . . . . . . . . . . . . . . . . . . . . .77 5.9.2 LFSRCFG2 Register . . . . . . . . . . . . . . . . . . . . . . .78 5.9.3 LFSRCFG3 Register . . . . . . . . . . . . . . . . . . . . . . .78 5.9.4 DATAIN Register . . . . . . . . . . . . . . . . . . . . . . . . . .78 5.9.5 DATAOUT Register . . . . . . . . . . . . . . . . . . . . . . . .78 5.9.6 DOUT Register  . . . . . . . . . . . . . . . . . . . . . . . . . . .78 5.9.7 FBx Registers  . . . . . . . . . . . . . . . . . . . . . . . . . . . .78 5.9.8 POLYx Registers . . . . . . . . . . . . . . . . . . . . . . . . . .78 5.9.9 RESx Registers . . . . . . . . . . . . . . . . . . . . . . . . . . .79 5.9.10 RESCMPx Registers . . . . . . . . . . . . . . . . . . . . . . .79 5.10 Parallel Slave Peripheral . . . . . . . . . . . . . . . . . . . .79 5.10.1 PSPCFG Register . . . . . . . . . . . . . . . . . . . . . . . . .79 5.11 External Memory Interface. . . . . . . . . . . . . . . . . . .80 5.11.1 EMCFG Register . . . . . . . . . . . . . . . . . . . . . . . . . .81 6.0 In-System Programming 82 7.0 Register Quick Reference 83 7.1 Registers (sorted by address) . . . . . . . . . . . . . . . .83 7.2 Registers (sorted alphabetically) . . . . . . . . . . . . . .88 7.3 Register Bit Definitions  . . . . . . . . . . . . . . . . . . . . .92 7.3.1 ADCCFG Register . . . . . . . . . . . . . . . . . . . . . . . . .92 7.3.2 CMPCFG Register. . . . . . . . . . . . . . . . . . . . . . . . .92 7.3.3 EMCFG Register . . . . . . . . . . . . . . . . . . . . . . . . . .93 7.3.4 FCFG Register. . . . . . . . . . . . . . . . . . . . . . . . . . . .93 7.3.5 INTSPD Register . . . . . . . . . . . . . . . . . . . . . . . . . .94 7.3.6 LFSRA Register. . . . . . . . . . . . . . . . . . . . . . . . . . .95 7.3.7 PSPCFG Register . . . . . . . . . . . . . . . . . . . . . . . . .95 7.3.8 RTCFG Register  . . . . . . . . . . . . . . . . . . . . . . . . . .95 7.3.9 SxINTF Register  . . . . . . . . . . . . . . . . . . . . . . . . . .96 7.3.10 SxMODE Register . . . . . . . . . . . . . . . . . . . . . . . . .97 7.3.11 SxRCFG Register  . . . . . . . . . . . . . . . . . . . . . . . . .97 7.3.12 SxRCNT Register  . . . . . . . . . . . . . . . . . . . . . . . . .97 7.3.13 SxTCFG Register  . . . . . . . . . . . . . . . . . . . . . . . . .98 7.3.14 SPDREG Register . . . . . . . . . . . . . . . . . . . . . . . . .98 7.3.15 STATUS Register  . . . . . . . . . . . . . . . . . . . . . . . . .98 7.3.16 T0CFG Register. . . . . . . . . . . . . . . . . . . . . . . . . . .99 7.3.17 TxCFG1H/TxCFG1L Register . . . . . . . . . . . . . . .100 7.3.18 TxCFG2H/TxCFG2L Register . . . . . . . . . . . . . . .101 7.3.19 TCTRL Register. . . . . . . . . . . . . . . . . . . . . . . . . .102 7.3.20 XCFG Register  . . . . . . . . . . . . . . . . . . . . . . . . . .103 8.0 Electrical Characteristics 104 8.1 Absolute Maximum Ratings . . . . . . . . . . . . . . . . .104 8.2 DC Characteristics. . . . . . . . . . . . . . . . . . . . . . . .105 8.3 AC Characteristics . . . . . . . . . . . . . . . . . . . . . . . .107 8.4 Analog Comparator DC and AC Specifications . .107 8.5 A/D Converter DC and AC Specifications . . . . . .108 9.0 Package Dimensions 109 10.0 Part Numbering 110 11.0 Data Sheet Revision History 110