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

产品描述

搜索
 

SX28AC/DP-G

器件型号:SX28AC/DP-G
器件类别:半导体    其他集成电路(IC)   
文件大小:28032.67KB,共52页
厂商名称:Parallax Inc.
厂商官网:https://www.parallax.com/
标准:  
下载文档

器件描述

8-bit microcontrollers - mcu risc 75mhz intern. oscl. 136kb ram

参数
Manufacturer: Parallax
Product Category: 8-bit Microcontrollers - MCU
RoHS: Yes
Brand: Parallax
Core: RISC
Data Bus Width: 8 bit
Maximum Clock Frequency: 75 MHz
Program Memory Size: 3 kB
Data RAM Size: 136 B
On-Chip ADC: No
Operating Supply Voltage: 4.5 V to 5.5 V
Maximum Operating Temperature: + 70 C
Package / Case: DIP-28
Mounting Style: Through Hole
Data ROM Type: Flash
Minimum Operating Temperature: 0 C
Number of Programmable I/Os: 20
Number of Timers: 1
Packaging: Tube
Processor Series: Ubicom SXx
Program Memory Type: Flash
Series: SX
Factory Pack Quantity: 13
Supply Voltage - Max: 5.5 V
Supply Voltage - Min: 3 V
Unit Weight: 453.592 mg

SX28AC/DP-G器件文档内容

SX20AC/SX28AC

Configurable Communications Controllers with EE/Flash Program Memory,
In-System Programming Capability and On-Chip Debug

1.0 PRODUCT OVERVIEW                                             the SX architecture is flash-based and therefore
                                                                 reprogrammable. On-chip functions include a general-
1.1. Introduction                                                purpose 8-bit timer with prescaler, an analog comparator,
                                                                 a brown-out detector, a watchdog timer, a power-save
The Parallax SX family of configurable communications            mode with multi-source wakeup capability, an internal
controllers is fabricated in an advanced CMOS process            R/C oscillator, user-selectable clock modes, and high-
technology. The advanced process, combined with a                current outputs. These features enable the SX to be used
RISC-like architecture, allows high-speed computation,           as a general-purpose, high-speed microcontroller in a
flexible I/O control, and efficient data manipulation.           variety of applications.
Throughput is enhanced by operating the device at
frequencies up to 75 MHz and by optimizing the
instruction set to include mostly single-cycle instructions.
The deterministic architecture of the SX provides reliable
performance for time-critical applications. In addition,

                 Figure 1-1: Block Diagram

Parallax and the Parallax logo are trademarks of Parallax, Inc.  I2C is a trademark of Philips Corporation. All other trademarks
SX is a trademark of Ubicom Inc, used with permission.           are the property of their respective holders.

Parallax Inc.  Page 1 of 51                                    Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                                                       www.parallax.com

                        Table of Contents

1.0        Product Overview......................................................... 1                                10.2.  Watchdog Timer ...................................................................... 26
1.1.       Introduction ................................................................................1             10.3.  The Prescaler .......................................................................... 26
1.2.       Key Features..............................................................................3
1.3.       Architecture ................................................................................ 4            11.0 Comparator .................................................................27
1.4.       Programming Benefits in Assembly and High-Level Languages 4
                                                                                                                      12.0 Reset ............................................................................28
   1.4.1.       Parallax SX/B Basic Compiler ...............................................................4
                                                                                                                      13.0 Brown-Out Detector ...................................................29
1.5.       Programming and Debugging Support .......................................4
1.6.       Applications................................................................................ 4             14.0 Register States upon Different Reset Operations ...30
1.7.       Support ......................................................................................4
1.8.       Part Numbering..........................................................................5                  15.0 Instruction Set ............................................................31
                                                                                                                      15.1. Instruction Set Features........................................................... 31
2.0        Connection Diagrams .................................................. 6                                   15.2. Instruction Execution ............................................................... 31
2.1.       Pin Assignments ........................................................................6                  15.3. Addressing Modes ................................................................... 31
2.2.       Pin Descriptions .........................................................................6                15.4. RAM Addressing...................................................................... 32
2.3.       Typical Connection Diagrams ....................................................7                          15.5. The Bank Instruction................................................................ 32
                                                                                                                      15.6. Bit Manipulation ....................................................................... 32
3.0        Port Descriptions ......................................................... 9                              15.7. Input/Output Operation ............................................................ 32
3.1.       Reading and Writing the Ports ...................................................9                         15.8. Increment/Decrement .............................................................. 32
                                                                                                                      15.9. Loop Counting and Data Pointing Testing................................ 32
   3.1.1.       Read-Modify-Write Considerations......................................................11              15.10. Branch and Loop Call Instructions ........................................... 32

3.2.       Port Configuration ....................................................................11                     15.10.1. Jump Operation .................................................................................. 33
                                                                                                                         15.10.2. Page Jump Operation......................................................................... 33
   3.2.1.       MODE Register ...................................................................................11      15.10.3. Call Operation..................................................................................... 33
   3.2.2.       Port Configuration Registers ...............................................................11           15.10.4. Page Call Operation ........................................................................... 33
   3.2.3.       Port Configuration Upon Reset............................................................12
                                                                                                                      15.11. Return Instructions................................................................... 33
4.0        Special-Function Registers ....................................... 13                                      15.12. Subroutine Operation............................................................... 33
4.1.       PC Register (02h) ....................................................................13
4.2.       STATUS Register (03h) ...........................................................13                           15.12.1. Push Operation................................................................................... 33
4.3.       OPTION Register.....................................................................14                        15.12.2. Pop Operation .................................................................................... 34

5.0        Device Configuration Registers................................ 15                                          15.13. Comparison and Conditional Branch Instructions .................... 34
5.1.       FUSE Word (Read/Program at FFFh in Main Memory Map) ....15                                                 15.14. Logical Instruction.................................................................... 34
5.2.       FUSEX Word (Read/Program via Programming Command) ....16                                                   15.15. Shift and Rotate Instructions.................................................... 34
5.3.       DEVICE Word (Hard-Wired Read-Only)...................................16                                    15.16. Complement and SWAP.......................................................... 34

6.0        Memory Organization ................................................ 17                                    16.0   Native SX Instruction Set Summary Tables .............35
6.1.       Program Memory .....................................................................17                     16.1.  Equivalent Assembler Mnemonics ........................................... 39

   6.1.1.       Program Counter.................................................................................17    17.0   Electrical Characteristics...........................................40
   6.1.2.       Subroutine Stack .................................................................................17  17.1.  Absolute Maximum Ratings ..................................................... 40
                                                                                                                      17.2.  DC Characteristics................................................................... 41
6.2.       Data Memory ...........................................................................17                  17.3.  AC Characteristics ................................................................... 42
                                                                                                                      17.4.  Comparator DC and AC Specifications.................................... 42
   6.2.1.       File Select Register (04h)....................................................................17      17.5.  Typical Performance Characteristics (25C) ............................ 43

7.0        Power Down Mode ..................................................... 19                                   18.0   Package Dimensions..................................................46
7.1.       Multi-Input Wakeup ..................................................................19                    18.1.  SX20AC/SS ............................................................................. 46
7.2.       Port B MIWU/Interrupt Configuration........................................20                              18.2.  SX28AC/SS ............................................................................. 47
                                                                                                                      18.3.  SX28AC/DP............................................................................. 48
8.0        Interrupt Support........................................................ 21
                                                                                                                      19.0   Manufacturing Information ........................................49
9.0        Oscillator Circuits ...................................................... 23                              19.1.  Reflow Peak Temperature ....................................................... 49
9.1.       XT, LP or HS modes ................................................................23                      19.2.  MSL3 Compliance ................................................................... 49
9.2.       75 MHz Operation....................................................................25                     19.3.  Green/RoHS Compliance ........................................................ 49
9.3.       External RC Mode....................................................................25                     19.4.  Stress Testing Data Summary ................................................. 49
9.4.       Internal RC Mode.....................................................................25

10.0       Real Time Clock (RTCC)/Watchdog Timer............... 26
10.1.      RTCC ....................................................................................... 26

Parallax Inc.         Page 2 of 51                                                                                         Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                                                   www.parallax.com

1.2. Key Features                                         Hardware Peripheral Features

75 MIPS Performance                                          One 8-bit Real Time Clock/Counter (RTCC) with
                                                                programmable 8-bit prescaler
   SX20AC/SX28AC: DC - 75 MHz
   SX20AC/SX28AC: as low as 13.3 ns instruction             Watchdog Timer (shares the RTCC prescaler)
                                                             Analog comparator
      cycle, 39.9 ns internal interrupt response             Brown-out detector
   1 instruction per clock for most instructions (skips    Multi-Input Wakeup logic on 8 pins
                                                             Internal RC oscillator with configurable rate from
      require 2 clocks, branches require 3 clocks, IREAD
      requires 4)                                               31.25 kHz to 4 MHz
                                                             Power-On-Reset
EE/FLASH Program Memory and SRAM Data Memory
                                                          Packages
   Access time of < 13.3 ns provides single cycle
      access                                                 20-pin SSOP, 28-pin DIP/SSOP

   EE/Flash rated for > 10,000 rewrite cycles            Programming and Debugging Support
   2048 Words EE/Flash program memory
   136x8 bits SRAM data memory                              On-chip in-system serial programming support via
                                                                the oscillator pins
CPU Features
                                                             On-chip in-system debugging support logic
   Compact, RISC-like instruction set                      Real-time emulation, full program debug, and
   All non-branch instructions are single cycle
   Eight-level push/pop hardware stack for subroutine          integrated development environment offered by the
                                                                Parallax SX-Key programming device
      operation                                              The language options available: Parallax Assembly;
   Fast table lookup capability through run-time               Parallax SX/B (BASIC); and CCS SX/C (C)

      readable code (IREAD instruction)                   Software Support
   Totally predictable program execution rate for
                                                             Native assembly instruction set
      precise real-time applications                         Expanded assembly instruction set available in the

Fast and Deterministic Interrupt                                SASM assembler of the Parallax SX-Key IDE
                                                             Parallax SX/B compiler (BASIC)
   Jitter-free 3-cycle internal interrupt response          Several "C" compliers available from third-party
   Hardware context save/restore of key resources such
                                                                vendors
      as PC, W, STATUS, and FSR within the 3-cycle
      interrupt response time
   External wakeup/interrupt capability on Port B
      (8 pins)

Flexible I/O

   All port pins individually programmable as I/O
   Inputs are TTL or CMOS level selectable
   All pins have selectable internal pull-ups
   Selectable Schmitt Trigger inputs on Ports B and C
   All output pins capable of sourcing/sinking 30 mA
   Port A outputs have symmetrical drive
   Analog comparator support on Port B (RB0 OUT,

      RB1 IN-, RB2 IN+)
   Selectable I/O operation synchronous to the

      oscillator clock

Parallax Inc.  Page 3 of 51                             Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                                                        www.parallax.com

1.3. Architecture                                                 Synchronous serial communication for I2C, 1-Wire,
                                                                     SPI
The SX devices use a modified Harvard architecture. This
architecture uses two separate memories with separate             Asynchronous serial communication with SERIN
address buses, one for the program and one for data, while           and SEROUT
allowing transfer of data from program memory to
SRAM. This ability allows accessing data tables from             Table data storage and retrieval with LOOKUP,
program memory. The advantage of this architecture is                LOOKDOWN
that instruction fetch and memory transfers can be
overlapped with a multi-stage pipeline, which means the          I/O pin control with HIGH, LOW, TOGGLE,
next instruction can be fetched from program memory                  REVERSE
while the current instruction is being executed using data
from the data memory.                                             Timing and delay with PAUSE, SLEEP
                                                                  PULSIN and PULSOUT
This RISC-like architecture and memory design is based            Resistor/capacitor A/D with RCTIME
on technology that makes it very fast, deterministic, jitter      RANDOM for pseudo-random number generation
free, and totally reprogrammable.                                 Non-volatile EEPROM memory access with DATA,

The SX family implements a four-stage pipeline (fetch,               READ
decode, execute, and write back), which results in                Low-current SLEEP command
execution of one instruction per clock cycle. For example,     The complete SX/B command reference and examples are
at the maximum operating frequency of 75 MHz,                  installed with the SX-Key IDE.
instructions are executed at the rate of one per 13.3 ns
clock cycle.                                                   1.5. Programming and Debugging
                                                               Support
1.4. Programming Benefits in Assembly
and High-Level Languages                                       The SX devices are supported by Parallax's programming
                                                               and debugging tools. The Parallax SX-Blitz is a
The SX's high speed enables a "software system on a            programming tool. The SX-Key supports programming
chip" approach. Programming in assembly language               and source-level debugging. On-chip in-system debug
provides a particularly high-level of access to the interrupt  capabilities allow the Parallax tool to be an all-in-one
service routine, the stack and registers to take the highest   integrated development environment with editor, macro
advantage of the SX's deterministic timing. The primary        assembler, debugger, and programmer. Unobtrusive in-
technical resources for programming the SX in assembly         system programming is provided through the OSC pins.
language include the following:                                Visit www.parallax.com for the SX-Key development
                                                               tools, the IDE and support forum information.
   The SX20AC/SX28AC datasheet
   SX-Key Development System User's Manual by                 The in-system programming specification is available to
                                                               other 3rd party tool vendors upon request.
      Parallax, Inc.
   Programming the SX Microcontroller A Complete            1.6. Applications

      Guide by Guenther Daubach                                The SX may be used as a solution for process controllers,
Customers with a high-level programming language               electronic appliances/tools, security/monitoring systems,
background may prefer the use of a C or BASIC                  sound and signal generation, GPS interface, robotic
compiler.                                                      control, motor control, sensor interfacing and personal
                                                               communication devices. Applications such as interactive
1.4.1. Parallax SX/B Basic Compiler                            toys, magnetic-stripe readers, infrared decoders, and other
                                                               timing-sensitive projects are also common with the SX.
Parallax's SX/B is a free BASIC language compiler for          Examples of customer applications may be seen on the
the SX microcontroller (SX20, SX28, and SX48). The             Parallax web site.
compiler speeds the programming of the SX
microcontrollers by providing a simple, yet robust high-       1.7. Support
level language familiar to Parallax customers. SX/B
includes the following features and commands:                  Parallax and our distributors provide all support for the
                                                               SX microcontroller. Support is available free of charge
   ASM directive to support in-line assembly language         via phone (888) 512-1024 in the U.S. Also be sure to
   Program structure commands including BRANCH,               participate in the SX discussion forum at
                                                               http://forums.parallax.com/forums/. The on-line SX
      DO..LOOP, GOTO, GOSUB, IF..THEN..ELSE                    support community is actively involved in customer
   Numeric formatters                                         support 24 hours a day.
   WORD variable support
   Frequency generation with FREQOUT

Parallax Inc.  Page 4 of 51                                  Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                              www.parallax.com

1.8. Part Numbering

                                   Table 1-1: Part Numbering

Device Part# Pins I/O          EE/Flash RAM      Voltage      Operating Temp @      Operating Temp @
                               (Words) (Bytes)  Range (V)     3.0 5.5 V, 50 MHz*  4.5 5.5 V, 75 MHz*

SX20AC/SS        20        12  2K  137          3.0 5.5     -40 C to +85 C           0 C to +70 C

SX20AC/SS-G                                                                              0 C to +70 C

SX28AC/DP        28        20  2K  136          3.0 5.5     -40 C to +85 C           0 C to +70 C

SX28AC/DP-G

SX28AC/SS        28        20  2K  136          3.0 5.5     -40 C to +85 C

SX28AC/SS-G

* Ratings are preliminary

                                                              Figure 1-2
                                                              Part Number Reference Guide

Parallax Inc.                                 Page 5 of 51                        Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                                   www.parallax.com

2.0 CONNECTION DIAGRAMS

2.1. Pin Assignments

                                         Figure 2-1: Pin Assignments

2.2. Pin Descriptions

                                         Table 2-1: Pin Descriptions

     Name        Pin Type  Input Levels                               Description

RA0              I/O       TTL/CMOS      Bidirectional I/O Pin; symmetrical source / sink capability

RA1              I/O       TTL/CMOS      Bidirectional I/O Pin; symmetrical source / sink capability

RA2              I/O       TTL/CMOS      Bidirectional I/O Pin; symmetrical source / sink capability

RA3              I/O       TTL/CMOS      Bidirectional I/O Pin; symmetrical source / sink capability

RB0              I/O       TTL/CMOS/ST   Bidirectional I/O Pin; comparator output; MIWU/Interrupt input

RB1              I/O       TTL/CMOS/ST   Bidirectional I/O Pin; comparator negative input; MIWU/Interrupt input

RB2              I/O       TTL/CMOS/ST   Bidirectional I/O Pin; comparator positive input; MIWU/Interrupt input

RB3              I/O       TTL/CMOS/ST   Bidirectional I/O Pin; MIWU/Interrupt input

RB4              I/O       TTL/CMOS/ST   Bidirectional I/O Pin; MIWU/Interrupt input

RB5              I/O       TTL/CMOS/ST   Bidirectional I/O Pin; MIWU/Interrupt input

RB6              I/O       TTL/CMOS/ST   Bidirectional I/O Pin; MIWU/Interrupt input

RB7              I/O       TTL/CMOS/ST   Bidirectional I/O Pin; MIWU/Interrupt input

RC0              I/O       TTL/CMOS/ST   Bidirectional I/O Pin

RC1              I/O       TTL/CMOS/ST   Bidirectional I/O Pin

RC2              I/O       TTL/CMOS/ST   Bidirectional I/O Pin

RC3              I/O       TTL/CMOS/ST   Bidirectional I/O Pin

RC4              I/O       TTL/CMOS/ST   Bidirectional I/O Pin

RC5              I/O       TTL/CMOS/ST   Bidirectional I/O Pin

RC6              I/O       TTL/CMOS/ST   Bidirectional I/O Pin

RC7              I/O       TTL/CMOS/ST   Bidirectional I/O Pin

RTCC             I         ST            Input to Real-time Clock/counter
                                         Master Clear reset input active low. When not controlled externally, this pin must
MCLR             I         ST            be pulled high with a 10 k resistor.

OSC1/In/Vpp I              ST            Crystal oscillator input; external clock source input

OSC2/Out         O         CMOS          Crystal oscillator output; in R/C mode, internally pulled to Vdd through weak pull-up

Vdd              P         -             Positive supply pin

Vss              P         -             Ground pin

Note: I = input, O = output, I/O = Input/Output, P = Power, TTL = TTL input, CMOS = CMOS input, ST = Schmitt Trigger input, MIWU =

Multi-Input Wakeup input.

Parallax Inc.                          Page 6 of 51                                                    Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                       www.parallax.com

2.3. Typical Connection Diagrams
Note: The 10 k resistor connected to the MCLR pin is not needed when controlled externally.

Note: The 10 k resistor connected to the MCLR pin is not needed when controlled externally.

Parallax Inc.  Page 7 of 51                                                                Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                       www.parallax.com

Typical Connection Diagrams (continued)
Note: The 10 k resistor connected to the MCLR pin is not needed when controlled externally.

Parallax Inc.  Page 8 of 51                                                                Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                        www.parallax.com

3.0 PORT DESCRIPTIONS                                        registers associated with Port A are not used. The least
                                                             significant bit of the registers corresponds to the least
All models contain a 4-bit I/O port (Port A), an 8-bit I/O   significant port pin. To access these registers, an
port (Port B). The SX28 also contains a second 8-bit I/O     appropriate value must be written into the MODE
port (Port C). Port A provides symmetrical drive             register. Upon power-up, all bits in these registers are
capability. Each port has three associated 8-bit registers   initialized to "1". The associated registers allow for each
(Direction, Data, TTL/CMOS Select, and Pull-Up Enable)       port bit to be individually configured under software
to configure each port pin as Hi-Z input or output, to       controls as shown below.
select TTL or CMOS voltage levels, and to enable/disable
the weak pull-up resistor. The upper four bits of the

                                         Table 3-1: Port Configuration

Data Direction Registers:                TTL/CMOS Selected Registers:   Pullup Enable Registers:

                 RA, RB, RC              LVL_A, LVL_B, LVL_C            PLP_A, PLP_B, PLP_C

0                            1           0                   1          0                     1

Output                       Hi-Z Input  CMOS                TTL        Enable                Disable

                                                                        Figure 3-1
                                                                        Port A Configuration

3.1. Reading and Writing the Ports                           corresponding port pins that have been configured to
                                                             operate as outputs to a corresponding level, 1 = 5 V,
The three ports are memory-mapped into the data memory       0 = 0 V. Reading from a register reads the voltage levels
address space. To the CPU, the three ports are available as  of all port pins.
the RA, RB, and RC file registers at data memory
addresses 05h, 06h, and 07h, respectively. Writing to a
port data register sets the voltage levels of the

Parallax Inc.                                Page 9 of 51                                   Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                        www.parallax.com

                                                              Figure 3-2

                                                              Port B, Port C
                                                              Configuration

For example, suppose all four Port A pins are configured      When a write is performed to a bit position for a port that
as outputs and you wish to set RA0 and RA1 high, and          has been configured as an input, a write to the port data
RA2 and RA3 low:                                              register is still performed, but it has no immediate effect
                                                              on the pin. If later that pin is configured to operate as an
mov W,#$03       ;load W with the value 03h                   output, it will reflect the value that has been written to the
mov $05,W        ;(bits 0 and 1 high)                         data register.
                 ;write 03h to Port A data
                 ;register                                    When a read is performed from a bit position for a port,
                                                              the operation is actually reading the voltage level on the
The second "mov" instruction in this example writes the       pin itself, not necessarily the bit value stored in the port
Port A data register (RA), which controls the output levels   data register. This is true whether the pin is configured to
of the four Port A pins, RA0 through RA3. Because Port        operate as an input or an output. Therefore, with the pin
A has only four I/O pins, only the four least significant     configured to operate as an input, the data register
bits of this register are used. The four high-order register  contents have no effect on the value that you read. With
bits are "don't care" bits. Port B and Port C are both eight  the pin configured to operate as an output, what is read
bits wide, so the full widths of the RB and RC registers      generally matches what has been written to the register.
are used.

Parallax Inc.                              Page 10 of 51    Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                         www.parallax.com

3.1.1. Read-Modify-Write Considerations                         "mov !rx,W" instruction as indicated in Table 2-1. MODE
Caution must be exercised when performing two                   register values not listed in the table are reserved for
successive read-modify-write instructions (SETB or              future expansion and should not be used. Therefore, the
CLRB operations) on an I/O port pin. Input data used for        MODE register should always contain a value from 08h
an instruction must be valid during the time the                to 0Fh. Upon reset, the MODE register is initialized to
instruction is executed, and the output result from an          0Fh, which enables access to the port direction registers.
instruction is valid only after that instruction completes its
operation. Unexpected results from successive read-             After a value is written to the MODE register, that setting
modify-write operations on I/O pins can occur when the          remains in effect until it is changed by writing to the
device is running at high speeds. Although the device has       MODE register again. For example, you can write the
an internal write-back section to prevent such conditions,      value 0Eh to the MODE register just once, and then write
it is still recommended that the user program include a         to each of the three pullup configuration registers using
NOP instruction as a buffer between successive read-            the three "mov !rx,W" instructions.
modify-write instructions performed on I/O pins of the
same port.                                                                  Table 3-2: MODE Register and

Also note that reading an I/O port is actually reading the                   Port Control Register Access
pins, not the output data latches. That is, if the pin output
driver is enabled and driven high while the pin is held low     MODE Reg. Mov !RA,W Mov !RB, W Mov !Rc, W
externally, the port pin will read low.
                                                                08h         not used  CMP_B                not used
3.2. Port Configuration
                                                                09h         not used  WKPND_B              not used
Each port pin offers the following configuration options:
   data direction                                              0Ah         not used  WKED_b               not used
   input voltage levels (TTL or CMOS)
   pullup type (pullup resistor enable or disable)             0Bh         not used  WKEN_B               not used
   Schmitt trigger input (for Port B and Port C only)
                                                                0Ch         not used  ST_B                 ST_C
Port B offers the additional option to use the port pins for
the Multi-Input Wakeup/Interrupt function and/or the            0Dh         LVL_A     LVL_B                LVL_C
analog comparator function.
                                                                0Eh         PLP_A     PLP_B                PLP_C
Port configuration is performed by writing to a set of
control registers associated with the port. A special-          0Fh         RA Direction RB Direction RC Direction
purpose instruction is used to write these control registers:
                                                                The following code example shows how to program the
   mov !RA,W (move W to Port A control register)               pullup control registers.
   mov !RB,W (move W to Port B control register)
   mov !RC,W (move W to Port C control register)               mov M,#$0E  ;MODE=0Eh to access port pullup
                                                                            ;registers
Each one of these instructions writes a port control            mov W,#$03
register for Port A, Port B, or Port C. There are multiple      mov !RA,W   ;W = 0000 0011
control registers for each port. To specify which one you                   ;disable pullups for RA0 and RA1
want to access, you use another register called the MODE        mov W,#$FF
register.                                                       mov !RB,W   ;W = 1111 1111
                                                                            ;disable all pullups for RB0-RB7
3.2.1. MODE Register                                            mov W,#$00
                                                                mov !RC,W   ;W = 0000 0000
The MODE register controls access to the port                               ;enable all pullups for RC0-RC7
configuration registers. Because the MODE register is not
memory-mapped, it is accessed by the following special          First the MODE register is loaded with 0Eh to select
purpose instructions:                                           access to the pullup control registers (PLP_A, PLP_B,
                                                                and PLP_C). Then the "mov !rx,W" instructions are used
   mov M, #lit (move literal to MODE register)                 to specify which port pins are to be connected to the
   mov M,W (move W to MODE register)                           internal pullup resistors. Setting a bit to 1 disconnects the
   mov W,M (move MODE register to W)                           corresponding pullup resistor, and clearing a bit to 0
                                                                connects the corresponding pullup resistor.
The value contained in the MODE register determines
which port control register is accessed by the                  3.2.2. Port Configuration Registers

                                                                The port configuration registers that you control with the
                                                                "mov !rx,W" instruction operate as described below.

                                                                RA, RB, and RC Data Direction Registers (MODE=0Fh)

                                                                Each register bit sets the data direction for one port pin.
                                                                Set the bit to 1 to make the pin operate as a high-
                                                                impedance input. Clear the bit to 0 to make the pin
                                                                operate as an output.

Parallax Inc.         Page 11 of 51                                                        Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                                                         www.parallax.com

PLP_A, PLP_B, and PLP_C: Pullup Enable Registers                WKPND_B: Wakeup Pending Bit Register
(MODE=0Eh)                                                      (MODE=09h)

Each register bit determines whether an internal pullup         When you access the WKPND_B register using
resistor is connected to the pin. Set the bit to 1 to           "mov !rx,W", the CPU does an exchange between the
disconnect the pullup resistor or clear the bit to 0 to         contents of W and WKPND_B. This feature lets you read
connect the pullup resistor.                                    the WKPND_B register contents while clearing the
                                                                Wakeup Pending bits simultaneously. Each bit indicates
LVL_A, LVL_B, and LVL_C: Input Level Registers                  the status of the corresponding MIWU pin. A bit set to 1
(MODE=0Dh)                                                      indicates that a valid edge has occurred on the
                                                                corresponding MIWU pin, triggering a wakeup or
Each register bit determines the voltage levels sensed on       interrupt. A bit set to 0 indicates that no valid edge has
the input port, either TTL or CMOS, when the Schmitt            occurred on the MIWU pin.
trigger option is disabled. Program each bit according to
the type of device that is driving the port input pin. Set the  CMP_B: Comparator Register (MODE=08h)
bit to 1 for TTL or clear the bit to 0 for CMOS.
                                                                When you access the CMP_B register using MOV
ST_B and ST_C: Schmitt Trigger Enable Registers                 !RB,W, the CPU does an exchange between the contents
(MODE=0Ch)                                                      of W and CMP_B. This feature lets you read the CMP_B
                                                                register contents. Clear bit 7 to enable operation of the
Each register bit determines whether the port input pin         comparator. Clear bit 6 to place the comparator result on
operates with a Schmitt trigger. Set the bit to 1 to disable    the RB0 pin. Bit 0 is a result bit that is set to 1 when the
Schmitt trigger operation and sense either TTL or CMOS          voltage on RB2 is greater than RB1, or cleared to 0
voltage levels; or clear the bit to 0 to enable Schmitt         otherwise. (For more information using the comparator,
trigger operation.                                              see Section 11.0.)

WKEN_B: Wakeup Enable Register (MODE=0Bh)                       3.2.3. Port Configuration Upon Reset

Each register bit enables or disables the Multi-Input           Upon reset, all the port control registers are initialized to
Wakeup/Interrupt (MIWU) function for the corresponding          FFh. Thus, each pin is configured to operate as a high
Port B input pin. Clear the bit to 0 to enable MIWU             impedance input that senses TTL voltage levels, with no
operation or set the bit to 1 to disable MIWU operation.        internal pullup resistor connected. The MODE register is
For more information on using the Multi-Input                   initialized to 0Fh, which allows immediate access to the
Wakeup/Interrupt function, see Section 7.1.                     data direction registers using the "mov !rx,W" instruction.

WKED_B: Wakeup Edge Register (MODE=0Ah)

Each register bit selects the edge sensitivity of the Port B
input pin for MIWU operation. Clear the bit to 0 to sense
rising (low-to-high) edges. Set the bit to 1 to sense falling
(high-to-low) edges.

Parallax Inc.  Page 12 of 51                                  Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                              www.parallax.com

4.0 SPECIAL-FUNCTION REGISTERS                                register. Care should be exercised when writing to the
                                                              STATUS register as the ALU status bits are updated upon
The CPU uses a set of special-function registers to control   completion of the write operation, possibly leaving the
the operation of the device.                                  STATUS register with a result that is different than
                                                              intended.
The CPU registers include an 8-bit working register (W),
which serves as a pseudo accumulator. It holds the second     PA2 PA1 PA0 TO PD  Z  DC  C
operand of an instruction, receives the literal in immediate
type instructions, and also can be program selected as the    Bit 7                     Bit 0
destination register.
                                                              Bit 7-5: Page select bits PA2:PA0
A set of 31 file registers serves as the primary                        000 = Page 0 (000h - 01FFh)
accumulator. One of these registers holds the first operand             001 = Page 1 (200h - 03FFh)
of an instruction and another can be program-selected as                010 = Page 2 (400h - 05FFh)
the destination register. The first eight file registers                011 = Page 3 (600h - 07FFh)
include the Real-Time Clock/Counter register (RTCC),
the lower eight bits of the 11-bit Program Counter (PC),      Bit 4: Time Out bit, TO
the 8-bit STATUS register, three port control registers for             1 = Set to 1 after power up and upon execution
Port A, Port B, Port C, the 8-bit File Select Register                  of CLRWDT or SLEEP instructions
(FSR), and INDF used for indirect addressing.                           0 = A watchdog time-out occurred

The five low-order bits of the FSR register select one of     Bit 3: Power Down bit, PD
the 31 file registers in the indirect addressing mode.                  1= Set to a 1 after power up and upon execution
Calling for the file register located at address 00h (INDF)             of the CLRWDT instruction
in any of the file-oriented instructions selects indirect               0 = Cleared to a `0' upon execution of SLEEP
addressing, which uses the FSR register. It should be                   instruction
noted that the file register at address 00h is not a
physically implemented register. The CPU also contains        Bit 2: Zero bit, Z
an 8 level, 11-bit hardware push/pop stack for subroutine               1 = Result of math operation is zero
linkage.                                                                0 = Result of math operation is non-zero

         Table 4-1: Special-Function Register                 Bit 1: Digit Carry bit, DC
                                                                        After Addition:
Address          Name    Function                                       1 = A carry from bit 3 occurred
                                                                        0 = No carry from bit 3 occurred
00h              INDF    Used for indirect addressing                   After Subtraction:
                                                                        1 = No borrow from bit 3 occurred
01h              RTCC    Real Time Clock/Counter                        0 = A borrow from bit 3 occurred

02h              PC      Program Counter (low byte)           Bit 0: Carry bit, C
                                                                        After Addition:
03h              STATUS  Holds status bits of ALU                       1 = A carry from bit 7 of the result occurred
                                                                        0 = No carry from bit 7 of the result occurred
04h              FSR     File Select Register                           After Subtraction:
                                                                        1 = No borrow from bit 7 of the result occurred
05h              RA      Port RA control register                       0 = A borrow from bit 7 of the result occurred
                                                                        Rotate (RR or RL) Instructions:
06h              RB      Port RB control register                       The carry bit is loaded with the low or high order
                                                                        bit, respectively. When CF bit is cleared, Carry
07h              RC*     Port RC control register                       bit works as input For ADD and SUB
                                                                        instructions.
*In the SX20 package, Port C is not used, and address 07h is
available as a general-purpose RAM location.

4.1. PC Register (02h)

The PC register holds the lower eight bits of the program
counter. It is accessible at run time to perform branch
operations.

4.2. STATUS Register (03h)

The STATUS register holds the arithmetic status of the
ALU, the page select bits, and the reset state. The
STATUS register is accessible during run time, except
that bits PD and TO are read-only. It is recommended that
only SETB and CLRB instructions be used on this

Parallax Inc.                                        Page 13 of 51             Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                              www.parallax.com

4.3. OPTION Register

RTW RTW_IE RTS RTE_ES PSA PS2 PS1 PS0                   RTE_ES RTCC edge select:
                                                                  0 = RTCC increments on low-to-high transitions
Bit 7                   Bit 0                                     1 = RTCC increments on high-to-low transitions

When the OPTIONX bit in the FUSE word is cleared, bits  PSA Prescaler Assignment:
7 and 6 of the OPTION register function as described              0 = Prescaler is assigned to RTCC, with divide
below.                                                            rate determined by PS0-PS2 bits
When the OPTIONX bit is set, bits 7 and 6 of the                  1 = Prescaler is assigned to WDT, and divide
OPTION register read as `1's.                                     rate on RTCC is 1:1
RTW RTCC/W register selection:
                                                        PS2-PS0: Prescaler divider (see table below)
          0 = Register 01h addresses W
          1 = Register 01h addresses RTCC               Table 4-2: Prescaler Divider Ratios
RTE_IE RTCC edge interrupt enable:
          0 = RTCC roll-over interrupt is enabled       PS2, PS1, PS0  RTCC Divide  Watchdog Timer
          1 = RTCC roll-over interrupt is disabled                          Rate       Divide Rate
RTS RTCC increment select:
          0= RTCC increments on internal instruction    000            1:2                   1:1
          cycle
          1 = RTCC increments upon transition on RTCC   001            1:4                   1:2
          pin
                                                        010            1:8                   1:4

                                                        011            1:16                  1:8

                                                        100            1:32         1:16

                                                        101            1:64         1:32

                                                        110            1:128        1:64

                                                        07h111         1:256        1:128

                                                        Upon reset, all bits in the OPTION register are set to 1.

Parallax Inc.                        Page 14 of 51                                Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                                    www.parallax.com

5.0 DEVICE CONFIGURATION REGISTERS

The SX device has three registers (FUSE, FUSEX,                fly" during normal device operation. Instead, the FUSE
DEVICE) that control functions such as operating the           and FUSEX registers can only be accessed when the SX
device in Turbo mode, extended (8-level deep) stack            device is being programmed. The DEVICE register is a
operation, and speed selection for the internal RC             read-only, hard-wired register, programmed during the
oscillator. These registers are not programmable "on the       manufacturing process.

5.1. FUSE Word (Read/Program at FFFh in Main Memory Map)

TURBO SYNC Reserved Reserved IRC                        DIV1/  DIV0/
                                                                             Reserved      WDTE           FOSC1 FOSC0
                                                        IFBD   FOSC2                   CP                                 Bit 0

Bit 11

TURBO            Turbo mode enable:

                 0 = turbo (instruction clock = osc/1)

                 1 = instr clock = osc/4

SYNC             Synchronous input enable (for turbo mode): This bit synchronizes the signal presented at the input pin to
                 the internal clock through two internal flip-flops.

                 0 = enabled

                 1 = disabled

IRC              Internal RC oscillator enable:

                 0 = enabled - OSC1 pulled low by weak pullup, OSC2 pulled high by weak pullup

                 1 = disabled - OSC1 and OSC2 behave according to FOSC2: FOSC0

DIV1: DIV0 Internal RC oscillator divider:

                 00b = 4 MHz

                 01b = 1 MHz

                 10 = 128 KHz

                 11b = 32 KHz

IFBD             Internal crystal/resonator oscillator feedback resistor (1 M:

                 0 = disabled

                 Internal feedback resistor disable (external feedback required)

                 1= enabled    Internal feedback resistor enabled (valid when IRC = 1)

CP               Code protect enable:

                 0 = enabled (FUSE, code, and ID memories read back as garbled data)

                 1 = disabled (FUSE, code, and ID memories can be read normally)

WDTE Watchdog timer enable:

                 0 = disabled

                 1 = enabled

FOSC2: FOSC0 External oscillator configuration (valid when IRC = 1):

                 000b = LP1 - low power crystal (32KHz)

                 001b = LP2 - low power crystal/resonator (32 KHz to 1 MHz)

                 010b = XT1 - normal crystal/resonator (32 kHz to 10 MHz)

                 011b = XT2 - normal crystal/resonator (1MHz to 24 MHz)

                 100b = HS1 - high speed crystal/resonator/external crystal oscillator (1MHz to 50 MHz)

                 101b = HS2 - high speed crystal/resonator/external crystal oscillator (1 MHz to 50 MHz)

                 110b = HS3 - high speed crystal/resonator/external crystal oscillator (1 MHz to 75 MHz)

                 111b = RC network - OSC2 is pulled high with a weak pullup (no CLKOUT output)

                 Note: The frequencies are target values.

Parallax Inc.                                         Page 15 of 51                                     Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                          www.parallax.com

5.2. FUSEX Word (Read/Program via Programming Command)

IRCTRIM2 PINS IRCTRIM1 IRCTRIM0 OPTIONX /     CF  BOR1 BOR0  BORTR1     BORTR0     BP1 BP0
                                                                                              Bit 0
                              STACKX

Bit 11

IRCTRIM2:           Internal RC oscillator trim bits. This 3-bit field adjusts the operation of the internal RC oscillator to make it
IRCTRIM0            operate within the target frequency range 4 MHz plus or minus 8%. Parts are shipped from the factory
                    untrimmed. The device relies on the programming to0l to provide the trimming function.
PINS                000b = minimum frequency
OPTIONX /           111b = maximum frequency
STACKX              each step about 3%
CF                  Selects the number of pins.
BOR1: BOR0          0 = 18/20 pins
                    1 = 28 pins
BORTR1:
BORTR0              OPTION Register Extension and Stack Extension. Set to 1 to disable the programmability of bit 6 and bit 7
                    in the OPTION register, the RTW and RTE_IE bits (in other words, to force these two bits to 1) and to
BP1:BPO             limit the program stack size to two locations. Clear to 0 to enable programming of the RTW and RTE_IE
                    bits in the OPTION register, and to extend the stack size to eight locations.

                    Active low - makes carry bit input to ADD and SUB instructions.
                    Brown-Out Reset: These bits enable or disable the brown-out reset function and set the brown-out threshold
                    voltage as follows:
                    00b = 4.2 V
                    01b = 2.6 V
                    10b = 2.2 V
                    11b = Brown-Out disabled
                    Brown-Out trim bits (parts are shipped out of factory untrimmed).
                    01b = minimum threshold voltage
                    00b = LOW
                    11b = HIGH
                    10b = maximum threshold voltage
                    00b = 1 page, 1 bank
                    01b = 2 pages, 1 bank
                    10b = 4 pages, 4 banks
                    11b = 4 pages, 8 banks (default configuration)

5.3. DEVICE Word (Hard-Wired Read-Only)

1                1      1  1  1            1      0       0  1       1          1  0

Bit 11                                                                             Bit 0

Parallax Inc.                            Page 16 of 51                Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                       www.parallax.com

6.0 MEMORY ORGANIZATION                                       6.2. Data Memory

6.1. Program Memory                                           The data memory consists of 136 bytes of RAM,
                                                              organized as eight banks of 16 registers plus eight
The program memory is organized as 2K, 12-bit wide            registers which are not banked. Both banked and non-
words. The program memory words are addressed                 banked memory locations can be addressed directly or
sequentially by a binary program counter. The program         indirectly using the FSR (File Select Register). The
counter starts at zero. If there is no branch operation, it   special-function registers are mapped into the data
will increment to the maximum value possible for the          memory.
device and roll over and begin again.
                                                              6.2.1. File Select Register (04h)
Internally, the program memory has a semi-transparent
page structure. A page is composed of 512 contiguous          Instructions that specify a register as the operand can only
program memory words. The lower nine bits of the              express five bits of register address. This means that only
program counter are zeros at the first address of a page      registers 00h to 1Fh can be accessed. The File Select
and ones at the last address of a page. This page structure   Register (FSR) provides the ability to access registers
has no effect on the program counter. The program             beyond 1Fh.
counter will freely increment through the page
boundaries.                                                   Figure 6-1 shows how FSR can be used to address RAM
                                                              locations. The three high-order bits of FSR select one of
6.1.1. Program Counter                                        eight SRAM banks to be accessed. The five low-order bits
                                                              select one of 32 SRAM locations within the selected
The program counter contains the 11-bit address of the        bank. FSR.4 essentially enables or disables banked RAM.
instruction to be executed. The lower eight bits of the       For the lower 16 addresses, Bank 0 is always accessed,
program counter are contained in the PC register (02h)        irrespective of the three high-order bits. Thus, RAM
while the upper bits come from the upper three bits of the    register addresses 00h through 0Fh are "global" in that
STATUS register (PA0, PA1, PA2). This is necessary to         they can always be accessed, regardless of the contents of
cause jumps and subroutine calls across program memory        the FSR.
page boundaries. Prior to the execution of a branch
operation, the user program must initialize the upper bits    The entire data memory (including the dedicated-function
of the STATUS register to cause subsequent branch             registers) consists of the lower 16 bytes of Bank 0 and the
instructions to vector to the desired page. An alternative    upper 16 bytes of Bank 0 through Bank 7, for a total of
method is to use the PAGE instruction, which                  (1+8)*16 = 144 bytes. Eight of these bytes are for the
automatically causes subsequent branch instructions to        function registers, leaving 136 general-purpose memory
branch vector to the desired page, based on the value         locations. In the 18-pin SX packages, register RC is not
specified in the operand field. Upon reset, the program       used, which makes address 07h available as an additional
counter is initialized with 07FFh.                            general-purpose memory location.

6.1.2. Subroutine Stack                                       Below is an example of how to write to register 10h in
                                                              Bank 4:
The subroutine stack consists of eight 11-bit save
registers. A physical transfer of register contents from the  mov  FSR,#$90  ;Select Bank 4 by
program counter to the stack or vice versa, and within the                   ;setting FSR
stack, occurs on all operations affecting the stack,          mov  $10,#$64  ;load register 10h with
primarily calls and returns. The stack is physically and                     ;the literal 64h
logically separate from data RAM. The program cannot
read or write the stack.

Parallax Inc.  Page 17 of 51                                               Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                        www.parallax.com

                        Figure 6-1: Data Memory Organization

Parallax Inc.         Page 18 of 51                         Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                                                    www.parallax.com

7.0 POWER DOWN MODE                                        The WKEN_B register (Wakeup Enable Regis ter) allows
                                                           any Port B pin or combination of pins to cause the
The power down mode is entered by executing the            wakeup. Clearing a bit in the WKEN_B register enables
SLEEP instruction.                                         the wakeup on the corresponding Port B pin. If multi-
In power down mode, only the Watchdog Timer (WDT)          input wakeup is selected to cause a wakeup, the trigger
is active. If the Watchdog Timer is enabled, upon          condition on the selected pin can be either rising edge
execution of the SLEEP instruction, the Watchdog Timer     (low to high) or falling edge (high to low). The WKED_B
is cleared, the TO (time out) bit is set in the STATUS     register (Wakeup Edge Select) selects the desired
register, and the PD (power down) bit is cleared in the    transition edge. Setting a bit in the WKED_B register
STATUS register.                                           selects the falling edge on the corresponding Port B.
There are three different ways to exit from the power      Clearing the bit selects the rising edge. The WKEN_B
down mode: a timer overflow signal from the Watchdog       and WKED_B registers are set to FFh upon reset.
Timer (WDT), a valid transition on any of the Multi-Input  Once a valid transition occurs on the selected pin, the
Wakeup pins (Port B pins), or through an external reset    WKPND_B register (Wakeup Pending Register) latches
input on the MCLR pin. To achieve the lowest possible      the transition in the corresponding bit position. A logic `1'
power consumption, the Watchdog Timer should be            indicates the occurrence of the selected trigger edge on
disabled and the device should exit the power down mode    the corresponding Port B pin.
through the Multi-Input Wakeup (MIWU) pins or an           Upon exiting the power down mode, the Multi-Input
external reset.                                            Wakeup logic causes program counter to branch to the
                                                           maximum program memory address (same as reset).
7.1. Multi-Input Wakeup                                    Figure 7-1 shows the Multi-Input Wakeup block diagram.
Multi-Input Wakeup is one way of causing the device to
exit the power down mode. Port B is used to support this
feature.

Parallax Inc.  Figure 7-1: Multi-Input Wakeup Block Diagram   Rev 1.6 11/20/2006

                                                 Page 19 of 51
Parallax SX20AC/SX28AC                                                                www.parallax.com

7.2. Port B MIWU/Interrupt Configuration                    Here is an example of a program segment that configures
                                                            the RB0, RB1, and RB2 pins to operate as Multi Input
The WKPND_B register comes up with an unknown               Wakeup/Interrupt pins, sensitive to falling edges:
value upon reset. The user program must clear the register
prior to enabling the wake-up condition or interrupts. The  mov  M,#$0F ;prepare to write port data
proper initialization sequence is:
                                                                 ;direction registers
     1. Select the desired edge (through WKED_B
          register).                                        mov  W,#$07 ;load W with the value 07h

     2. Clear the WKPND_B register.                         mov  RB,W ;configure RB0-RB2 to be inputs

     3. Enable the Wakeup condition (through                mov  M,#$0A ;prepare to write WKED_B
          WKEN_B register).
                                                                 ;(edge) register
Below is an example of how to read the WKPND_B
register to determine which Port B pin caused the wakeup         ;W contains the value 07h
or interrupt, and to clear the WKPND_B register:
                                                            mov  !RB,W ;configure RB0-RB2 to sense

                                                                 ;falling edges

                                                            mov  M,#$09 ;prepare to access WKPND_B

                                                                 ;(pending) register

                                                            mov  W,#$00 ;clear W

                                                            mov  !RB,W ;clear all wakeup pending bits

mov  M,#$09                                                 mov  M,#$0B ;prepare to write WKEN_B (enable)

clr  W                                                           ;register

mov  RB,W ;W contains WKPND_B                               mov  W,#$F8h ;load W with the value F8h

                 ;contents of W exchanged                   mov  !RB,W ;enable RB0-RB2 to operate as

                 ;with contents of WKPND_B                       ;wakeup inputs

The final "mov" instruction in this example performs an     To prevent false interrupts, the enabling step (clearing bits
exchange of data between the working register (W) and       in WKEN_B) should be done as the last step in a
the WKPND_B register. This exchange occurs only with        sequence of Port B configuration steps. After this
Port B accesses. Otherwise, the "mov" instruction does      program segment is executed, the device can receive
not perform an exchange, but only moves data from the       interrupts on the RB0, RB1, and RB2 pins. If the device is
source to the destination.                                  put into the power down mode (by executing the SLEEP
                                                            instruction), the device can then receive wakeup signals
                                                            on those same pins.

Parallax Inc.                             Page 20 of 51                          Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                                                         www.parallax.com

8.0 INTERRUPT SUPPORT                                           transition edge to be either positive or negative. The
                                                                WKEN_B and WKED_B registers are set to FFh upon
The device supports both internal and external maskable         reset. Setting a bit in the WKED_B register selects the
interrupts. The internal interrupt is generated as a result of  falling edge while clearing the bit selects the rising edge
the RTCC rolling over from 0FFh to 00h. This interrupt          on the corresponding Port B pin.
source has an associated enable bit located in the              The WKPND_B register serves as the external interrupt
OPTION register. There is no pending bit associated with        pending register.
this interrupt.                                                 The WKPND_B register comes up a with random value
Port B provides the source for eight external software          upon reset. The user program must clear the WKPND_B
selectable, edge sensitive interrupts. These interrupt          register prior to enabling the interrupt. The proper
sources share logic with the Multi-Input Wakeup                 sequence is described in Section 7.2
circuitry. The WKEN_B register allows interrupt from            Figure 8-1 shows the structure of the interrupt logic.
Port B to be individually enabled or disabled. Clearing a
bit in the WKEN_B register enables the interrupt on the
corresponding Port B pin. The WKED_B selects the

Parallax Inc.  Figure 8-1: Interrupt Structure                Rev 1.6 11/20/2006

                                  Page 21 of 51
Parallax SX20AC/SX28AC                                                                                                         www.parallax.com

All interrupts are global in nature; that is, no interrupt has  If an external interrupt occurs during the interrupt routine,
priority over another. Interrupts are handled sequentially.     the pending register will be updated but the trigger will be
Figure 8-2 shows the interrupt processing sequence. Once        ignored unless interrupts are disabled at the beginning of
an interrupt is acknowledged, all subsequent global             the interrupt routine and enabled again at the end. This
interrupts are disabled until return from servicing the         also requires that the new interrupt does not occur before
current interrupt. The PC is pushed onto the single level       interrupts are disabled in the interrupt routine. If there is a
interrupt stack, and the contents of the FSR, STATUS,           possibility of additional interrupts occurring before they
and W registers are saved in their corresponding shadow         can be disabled, the device will miss those interrupt
registers. The status bits PA0, PA1, and PA2 bits are           triggers. In other words, using more than one interrupt,
cleared after the STATUS register has been saved in its         such as multiple external interrupts or both RTCC and
shadow register. The interrupt logic has its own                external interrupts, can result in missed or, at best, jittery
singlelevel stack and is not part of the CALL subroutine        interrupt handling should one occur during the processing
stack. The vector for the interrupt service routine is          of another. When handling external interrupts, the
address 0.                                                      interrupt routine should clear at least one pending register
                                                                bit. The bit that is cleared should represent the interrupt
Once in the interrupt service routine, the user program         being handled in order for the next interrupt to trigger.
must check all external interrupt pending bits (contained
in the WKPND_B register) to determine the source of the         Upon return from the interrupt service routine, the
interrupt. The interrupt service routine should clear the       contents of PC, FSR, STATUS, and W registers are
corresponding interrupt pending bit. If both internal and       restored from their corresponding shadow registers. The
external interrupts are enabled, the user program may also      interrupt service routine should end with instructions such
need to read the contents of RTCC to determine any              as RETI and RETIW. RETI pops the interrupt stack and
recent RTCC rollover. This is needed since there is no          the special shadow registers used for storing W,
interrupt pending bit associated with the RTCC rollover.        STATUS, and FSR (preserved during interrupt handling).
                                                                RETIW behaves like RETI but also adds W to RTCC.
Normally it is a requirement for the user program to            The interrupt return instruction enables the global
process every interrupt without missing any. To ensure          interrupts.
this, the longest path through the interrupt routine must
take less time than the shortest possible delay between
interrupts.

                                                     Figure 8-2: Interrupt Processing

Note: the interrupt logic has its own single-level stack and is not part of the CALL subroutine stack.

Parallax Inc.  Page 22 of 51                                                                          Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                                               www.parallax.com

9.0 OSCILLATOR CIRCUITS                                                Figure 9-1: Crystal Operation
                                                                           (or Ceramic Resonator)
The device supports several user-selectable oscillator
modes. The oscillator modes are selected by programming             (HS, XT or LP OSC Configuration)
the appropriate values into the FUSE Word register.
These are the different oscillator modes offered:                      Figure 9-2: Crystal Operation
                                                                           (or Ceramic Resonator)
          LP: Low Power Crystal
                                                                    (HS, XT or LP OSC Configuration)
          XT: Crystal/Resonator

          HS: High Speed Crystal/Resonator

          RC: External Resistor/Capacitor

9.1. XT, LP or HS modes
In XT, LP or HS, modes, you can use either an external
resonator circuit or an external clock source as the device
clock.

To use an external resonator circuit, connect a crystal or
ceramic resonator to the OSC1/CLKIN and
OSC2/CLKOUT pins according to the circuit
configuration shown in Figure 9-1. A parallel resonant
crystal type is recommended. Use of a series resonant
crystal is not recommended. Table 9-1 shows the
recommended external components associated with a
crystal-based oscillator. Table 9-2 shows the
recommended external component values for a resonator-
based oscillator.

Bits 5, 1 and 0 of the FUSE register (FOSC2:FOSC0) are
used to configure the different external resonator/crystal
oscillator modes. These bits allow the selection of the
appropriate gain setting for the internal driver to match
the desired operating frequency. If the XT, LP, or HS
mode is selected, the OSC1/CLKIN pin can be driven by
an external clock source rather than a resonator network,
as long as the clock signal meets the specified duty cycle,
rise and fall times, and input levels (Figure 9-2). In this
case, the OSC2/CLKOUT pin should be left open.

                 Table 9-1: External Component Selection for Crystal Oscillator (Vdd = 5.0V), Rs = 0

FOSC2:FOSC0                   Crystal Frequency               C1     C2     RF
                                                             15 pF  22 pF  1 M
010                           4 MHz                          56 pF  33 pF  1 M
                                                             33 pF  22 pF  1 M
011                           8 MHz                          15 pF  22 pF  1 M
                                                             15 pF  15 pF  1 M
011                           20 MHz

011                           32 MHz

                100           50* MHz
* 50 MHz fundamental crystal

Parallax Inc.                                  Page 23 of 51             Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                        www.parallax.com

     Table 9-2: External Component Selection for Murata Ceramic Resonators (Vdd = 5.0 V)

FOSC2:FOSC0 Frequency Resonator Part Number                C1                      C2            RF     RS
                                                          30 pF
011              4 MHz   CSA4.00MG                                                               1 M 0

011              4 MHz   CST4.00MGW                       Internal (30 pF)  Internal (30 pF)     1 M    0
                                                          Internal (47 pF)
011              4 MHz   CSTCC4.00G0H6                                      Internal (47 pF)     1 M    0

011              8 MHz   CSA8.00MTZ                       30 pF             30 pF                1 M 0

011              8 MHz   CST8.00MTW                       Internal (30 pF)  Internal (30 pF)     1 M    0
                                                          Internal (47 pF)
011              8 MHz   CSTCC8.00MG0H6                                     Internal (47 pF)     1 M    0

011              20 MHz  CSA20.00MXZ040                   5 pF              5 pF                 1 M 0

011              20 MHz  CST20.00MXW0H1                   Internal (5 pF)   Internal (5 pF)   1 M 0
                                                                5 pF              5 pF        22 k 0
011              20 MHz  CSACV20.00MXJ040

011              20 MHz  CSTCV20.00MXJ0H1                 Internal (5 pF)   Internal (5 pF)   22 k 0

100              33 MHz  CSA33.00MXJ040                         5 pF              5 pF           1 M 0
                                                          Internal (5 pF)   Internal (5 pF)      1 M 0
100              33 MHz  CST33.00MXW040

100              33 MHz  CSACV33.00MXJ040                 5 pF              5 pF                 1 M 0

100              33 MHz  CSTCV33.00MXJ040                 Internal (15 pF)  Internal (15 pF)     1 M    0
                                                                15 pF
101              50 MHz  CSA50.00MXZ040                                     15 pF             10 k 0

101              50 MHz  CST50.00MXW0H3                   Internal (15 pF)  Internal (15 pF) 10 k 0

101              50 MHz  CSACV50.00MXJ040                       15 pF       15 pF             10 k 0
                                                          Internal (15 pF)
101              50 MHz  CSTCV50.00MXJ0H3                                   Internal (15 pF) 10 k 0

                         Table 9-3: Clock Devices Available through Parallax Inc.

Parallax Stock#         Frequency      Device Type        Package                  Manufacturer/Part #
     250-04050              4 MHz    Ceramic resonator
     250-14050              4 MHz    Ceramic resonator    3-pin SIP         Murata CSTS0400MG03
     250-02060             20 Mhz    Ceramic resonator
     250-12060             20 MHz    Ceramic resonator    SMT               Jiankang ZZTTC4.0MG
     250-05060             50 MHz    Ceramic resonator
     250-15060             50 MHz    Ceramic resonator    3-pin SIP         Murata CST20.00MXW040
     252-00005             75 MHz
                                        TTL Oscillator    SMT               Transko CR3731M-20.000MHz

                                                          3-pin SIP         Murata CSTLS50M0X51-B0

                                                          SMT               Murata CSTCV50.00MXJ040-TC20

                                                          8-pin DIP half-size Transko SX0550HT00ET

Parallax Inc.                            Page 24 of 51                                      Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                                                      www.parallax.com

9.2. 75 MHz Operation                                        frame capacitance between package types also affects the
It is a good engineering practice to design your system to   oscillation frequency, especially for low C values. The
operate as conservatively as possible; that is as slowly as  external R and C component tolerances contribute to
possible. However, some applications require a high          oscillator frequency variation as well.
clock rate and there is no way around it. Consider also
that since the physical size of the elements within ceramic  Figure 9-4 shows the external RC connection diagram.
resonators vary inversely with the operational frequency,    The recommended R value is from 3 k to 100 k. For R
you will not find a great selection of resonators designed   values below 2.2 k, the oscillator may become unstable,
to operate over 50MHz.                                       or may stop completely. For very high R values (such as 1
To aid our customers who need to exploit the full-speed      M), the oscillator becomes sensitive to noise, humidity,
capabilities of the SX, we have specified a custom TTL       and leakage.
oscillator that performs well throughout the industrial
temperature range. Figure 9-3 depicts how the SX is used     Although the oscillator will operate with no external
with the Transko 75MHz TTL oscillator.                       capacitor (C = 0 pF), it is recommended that you use
                                                             values above 20 pF for noise immunity and stability. With
                                                             no or small external capacitance, the oscillation frequency
                                                             can vary significantly due to variation in PCB trace or
                                                             package lead frame capacitances.

                                                             9.4. Internal RC Mode

                                                             The internal RC mode uses an internal oscillator, so the
                                                             device does not need any external components. At
                                                             4 MHz, the internal oscillator provides typically +/-8%
                                                             accuracy over the allowed temperature range. The internal
                                                             clock frequency can be divided down to provide one of
                                                             eight lower-frequency choices by selecting the desired
                                                             value in the FUSE Word register. The frequency range is
                                                             from 31.25 KHz to 4 MHz. The default operating
                                                             frequency of the internal RC oscillator may not be 4
                                                             MHz. This is due to the fact that the SX device requires
                                                             trimming to obtain 4 MHz operation. The parts shipped
                                                             out of the factory are not trimmed. The device relies on
                                                             the programming tool provided by the third party vendors
                                                             to support trimming.

               Figure 9-3: SX28AC/DP with                    Figure 9-4: RC
                   75 MHz TTL Oscillator                     Oscillator Mode

9.3. External RC Mode
The external RC oscillator mode provides a cost-effective
approach for applications that do not require a precise
operating frequency. In this mode, the RC oscillator
frequency is a function of the supply voltage, the resistor
(R) and capacitor (C) values, and the operating
temperature. In addition, the oscillator frequency will
vary from unit to unit due to normal manufacturing
process variations. Furthermore, the difference in lead

Parallax Inc.  Page 25 of 51                               Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                      www.parallax.com

10.0 REAL TIME CLOCK (RTCC)/WATCHDOG TIMER

The device contains an 8-bit Real Time Clock/Counter        The RTCC generates an interrupt as a result of an RTCC
(RTCC) and an 8-bit Watchdog Timer (WDT). An 8-bit          rollover from 0FF to 000. There is no interrupt pending
programmable prescaler extends the RTCC to 16 bits. If      bit to indicate the overflow occurrence. The RTCC
the prescaler is not used for the RTCC, it can serve as a   register must be sampled by the program to determine any
postscaler for the Watchdog Timer. Figure 10-1 shows the    overflow occurrence.
RTCC and WDT block diagram.
                                                            10.2. Watchdog Timer
10.1. RTCC
                                                            The watchdog logic consists of a Watchdog Timer which
RTCC is an 8-bit real-time timer that is incremented once   shares the same 8-bit programmable prescaler with the
each instruction cycle or from a transition on the RTCC     RTCC. The prescaler actually serves as a postscaler if
pin. The on-board prescaler can be used to extend the       used in conjunction with the WDT, in contrast to its use
RTCC counter to 16 bits.                                    as a prescaler with the RTCC.

The RTCC counter can be clocked by the internal             10.3. The Prescaler
instruction cycle clock or by an external clock source
presented at the RTCC pin.                                  The 8-bit prescaler may be assigned to either the RTCC or
                                                            the WDT through the PSA bit (bit 3 of the OPTION
To select the internal clock source, bit 5 of the OPTION    register). Setting the PSA bit assigns the prescaler to the
register should be cleared. In this mode, RTCC is           WDT. If assigned to the WDT, the WDT clocks the
incremented at each instruction cycle unless the prescaler  prescaler and the prescaler divide rate is selected by the
is selected to increment the counter.                       PS0, PS1, and PS2 bits located in the OPTION register.
                                                            Clearing the PSA bit assigns the prescaler to the RTCC.
To select the external clock source, bit 5 of the OPTION    Once assigned to the RTCC, the prescaler clocks the
register must be set. In this mode, the RTCC counter is     RTCC and the divide rate is selected by the PS0, PS1, and
incremented with each valid signal transition at the RTCC   PS2 bits in the OPTION register. The prescaler is not
pin. By using bit 4 of the OPTION register, the transition  mapped into the data memory, so run-time access is not
can be programmed to be either a falling edge or rising
edge. Setting the control bit selects the falling edge to   possible. The prescaler cannot be assigned to both the
increment the counter. Clearing the bit selects the rising  RTCC and WDT simultaneously.
edge.

                                                            Figure 10-1
                                                            RTCC and WDT Block Diagram

Parallax Inc.         Page 26 of 51                       Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                            www.parallax.com

11.0 COMPARATOR                                             The final "mov" instruction in this example performs an
                                                            exchange of data between the working register (W) and
The device contains an on-chip differential comparator.     the CMP_B register. This exchange occurs only with Port
Ports RB0-RB2 support the comparator. Ports RB1 and         B accesses. Otherwise, the "mov" instruction does not
RB2 are the comparator negative and positive inputs,        perform an exchange, but only moves data from the
respectively, while Port RB0 serves as the comparator       source to the destination.
output pin. To use these pins in conjunction with the
comparator, the user program must configure Ports RB1       Figure 11-1 shows the comparator block diagram.
and RB2 as inputs and Port RB0 as an output. The
CMP_B register is used to enable the comparator, to read    CMP_B - Comparator Enable/Status Register
the output of the comparator internally, and to enable the
output of the comparator to the comparator output pin.       CMP _ EN  CMP _ OE   Reserved       CMP_RES
                                                                Bit 7      Bit 6   Bits 5-1          Bit 0
The comparator enable bits are set to "1" upon reset, thus
disabling the comparator. To avoid drawing additional       CMP _ RES  Comparator result: 1 for RB2>RB1 or 0
current during the power down mode, the comparator                     for RB2 RB2RB1

                                                                                  Figure 11-1:
                                                                                  Comparator
                                                                                  Block Diagram

Parallax Inc.                               Page 27 of 51                       Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                                                      www.parallax.com

12.0 RESET                                                   and stabilize before MCLR pin is brought high. The
                                                             device will actually come out of reset TDRT msec after
Power-On Reset, Brown-Out Reset, Watchdog Reset, or          MCLR goes high.
External Reset initializes the device. Each one of these     The brown-out circuitry resets the chip when device
reset conditions causes the program counter to branch to     power (VDD) dips below its minimum allowed value, but
the top of the program memory. For example, on the           not to zero, and then recovers to the normal value.
device with 2048 K ($800 hex) words of program
memory, the program counter is initialized to 07FF upon        Figure 12-1: Time-Out Sequence on Power-Up
a valid reset condition.                                                        (MCLR not tied to Vdd)

The device incorporates an on-chip Power-On Reset
(POR) circuit that generates an internal reset as VDD rises
during power-up. Figure 12-2 is a block diagram of the
circuit. The circuit contains a 10-bit Delay Reset Timer
(DRT) and a reset latch. The DRT controls the reset
timeout delay. The reset latch controls the internal reset
signal.

Upon power-up, the reset latch is set (device held in
reset), and the DRT starts counting once it detects a valid
logic high signal at the MCLR pin. Once DRT reaches the
end of the timeout period (typically 72 msec), the reset
latch is cleared, releasing the device from reset state.
Figure 12-1 shows a power-up sequence where MCLR is
not tied to the VDD pin and VDD signal is allowed to rise

                                                             Figure 12-2
                                                             Block Diagram
                                                             of On-Chip Reset Circuit

                                                             Note: Ripple counter is 10 bits for Power
                                                             on Reset (POR) only.

Parallax Inc.  Page 28 of 51                               Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                                                       www.parallax.com

Figure 12-3 shows the on-chip Power-On Reset sequence          Figure 12-5: External Power-On Reset Circuit
where the MCLR pin is tied to VDD via a 10K resistor.          (For Slow Vdd Power-Up)
Note: connecting the MCLR pin directly to the VDD
supply is not recommended. If the VDD signal is stable        A 2-bit field in the FUSEX register can be used to specify
before the DRT timeout period expires, the device will        the Delay Reset Timer (DRT) timeout period that results
receive a proper reset. However, Figure 12-4 depicts a        in an automatic wake-up from the power down mode.
situation where VDD rises too slowly. In this scenario, the
DRT will time-out prior to VDD reaching a valid operating               10 = 0.25 msec
voltage level (VDD min). This means the device will come                11 = 18 msec (default)
out of reset and start operating with the supply voltage not            00 = 60 msec
at a valid level. In this situation, it is recommended that             01 = 1 sec
you use the external RC circuit shown in Figure 12-5. The
RC delay should exceed the time period it takes VDD to        Note 1: The external Power-On Reset circuit is required
reach a valid operating voltage.                              only if VDD power-up is too slow. The diode D helps
                                                              discharge the capacitor quickly when VDD powers down.
Figure 12-3: Time-Out Sequence on Power-Up                   Note 2: R < 40 k is recommended to make sure that
(MCLR not tied to Vdd): Fast Vdd Rise Time                   voltage drop across R does not violate the device
                                                              electrical specifications.
Figure 12-4: Time-Out Sequence on Power-Up                   Note 3: R1 = 100  to 1 k will limit any current
(MCLR not tied to Vdd): Slow Vdd Rise Time                   flowing into MCLR from external capacitor C. This helps
                                                              prevent MCLR pin breakdown due to Electrostatic
                                                              Discharge (ESD) or Electrical Overstress (EOS).

                                                              13.0 BROWN-OUT DETECTOR

                                                              The on-chip brown-out detection circuitry resets the
                                                              device when VDD dips below the specified brown-out
                                                              voltage. The device is held in reset as long as VDD stays
                                                              below the brown-out voltage. The device will come out of
                                                              reset when VDD rises above the brown-out voltage. The
                                                              brown-out level is preset to approximately 4.2 V at the
                                                              factory. The brown-out circuit can be disabled through
                                                              BOR0 and BOR1 bits contained in the FUSEX Word
                                                              register.

Parallax Inc.  Page 29 of 51                                Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                                      www.parallax.com

14.0 REGISTER STATES UPON DIFFERENT RESET OPERATIONS

The effect of different reset operation on a register             an unknown value should be initialized by the software to
depends on the register and the type of reset operation.          a known value; you cannot simply test the initial state and
Some registers are initialized to specific values, some are       rely on it starting in that state consistently. Table 14-1
left unchanged, some are undefined, and some are                  lists the SX registers and shows the state of each register
initialized to an unknown value. A register that starts with      upon different reset.

                                   Table 14-1: Register States upon Different Resets

       Register              Power-On             Wakeup          Brown-Out            Watchdog Timer            MCLR
W
                        Undefined            Unchanged            Undefined            Unchanged            Unchanged

OPTION                  FFh                  FFh                  FFh                  FFh                  FFh

MODE                    0Fh                  0Fh                  0Fh                  0Fh                  0Fh

RTCC (01h)              Undefined            Unchanged            Undefined            Unchanged            Unchanged

PC (02h)                FFh                  FFh                  FFh                  FFh                  FFh
STATUS (03h)
FSR (04h)               Bits 0-2: undefined  Bits 0-2: unchanged  Bits 0-4: undefined  Bits 0-2: unchanged  Bits 0-2: unchanged
                        Bits 3-4: 11         Bits 3-4: unchanged  Bits 5-7: 000        Bits 3-4: (Note 1)   Bits 3-4: (Note 2)
                        Bits 5-7: 000        Bits 5-7: 000                             Bits 5-7: 000        Bits 5-7: 000
                                                                  Bits 0-6: undefined
                        Undefined            Bits 0-6: unchanged  Bit 7: 1             Bits 0-6: unchanged  Bits 0-6: unchanged
                                             Bit 7: 1                                  Bit 7: 1             Bit 7: 1

RA/RB/RC Direction FFh                       FFh                  FFh                  FFh                  FFh

RA/RB/RC Data           Undefined            Unchanged            Undefined            Unchanged            Unchanged
Other File Registers
SPRAM                   Undefined            Unchanged            Undefined            Unchanged            Unchanged
CMP_B
                        Bits 0, 6-7: 1       Bits 0, 6-7: 1       Bits 0, 6-7: 1       Bits 0, 6-7: 1       Bits 0, 6-7: 1
WKPND_B                 Bits 1-5: undefined  Bits 1-5: undefined  Bits 1-5: undefined  Bits 1-5: undefined  Bits 1-5: undefined

                        Undefined            Unchanged            Undefined            Unchanged            Unchanged

WKED_B                  FFh                  FFh                  FFh                  FFh                  FFh

WKEN_B                  FFh                  FFh                  FFh                  FFh                  FFh

ST_B/ST_C               FFh                  FFh                  FFh                  FFh                  FFh

LVL_A/LVL_B/LVL_C FFh                        FFh                  FFh                  FFh                  FFh

PLP_A/PLP_B/PLP_C FFh                        FFh                  FFh                  FFh                  FFh

Watchdog Counter        Undefined            Unchanged            Undefined            Unchanged            Unchanged

Note 1: Watchdog reset during Power Down mode: 00(TO, PD); during Active mode: 01 (TO, PD).
Note 2: External reset during Power Down mode: 10 (TO, PD); during Active mode, Unchanged ((TO, PD)

Parallax Inc.                                         Page 30 of 51                                       Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                              www.parallax.com

15.0 INSTRUCTION SET                                          written to its destination, the second instruction is
                                                              executed, the third instruction is decoded, and the fourth
As mentioned earlier, the SX family of devices uses a         instruction is fetched. Once the pipeline is full,
modified Harvard architecture with memory-mapped              instructions are executed at the rate of one per clock
input/output. The device also has a RISC type architecture    cycle.
in that there are 43 single-word basic instructions. The
instruction set contains byte-oriented file register,         Instructions that directly affect the contents of the
bitoriented file register, and literal/control instructions.  program counter (such as jumps and calls) require that the
Working register W is one of the CPU registers, which         pipeline be cleared and subsequently refilled. Therefore,
serves as a pseudo accumulator. It is a pseudo                these instruction take more than one clock cycle.
accumulator in a sense that it holds the second operand,
receives the literal in the immediate type instructions, and  The instruction execution time is derived by dividing the
also can be program-selected as the destination register.     oscillator frequency by either one (turbo mode) or four
The bank of 31 file registers can also serve as the primary   (non-turbo mode). The divide-by factor is selected
accumulators, but they represent the first operand and        through the FUSE Word register.
may be program-selected as the destination registers.

15.1. Instruction Set Features                                     Figure 15-1: Pipeline and Clock Scheme

   All single-word (12-bit) instructions for compact         15.3. Addressing Modes
      code efficiency.
                                                              The device supports the following addressing modes:
   All instructions are single cycle except the jump
      type instructions (JMP, CALL) and failed test             Data Direct
      instructions (DECSZ fr, INCSZ fr, SB bit, SNB bit),       Data Indirect
      which are two cycle.                                       Immediate
                                                                Program Direct
   A set of File registers can be addressed directly or         Program Indirect
      indirectly, and serve as accumulators to provide first    Relative
      operand; W register provides the second operand.
                                                              Both direct and indirect addressing modes are available.
   Many instructions include a destination bit which         The INDF register, though physically not implemented, is
      selects either the register file or the accumulator as  used in conjunction with the indirect data pointer (FSR) to
      the destination for the result.                         perform indirect addressing. An instruction using INDF as
                                                              its operand field actually performs the operation on the
   Bit manipulation instructions (Set, Clear, Test and       register pointed by the contents of the FSR. Consequently,
      Skip if Set, Test and Skip if Clear).                   processing two multiple-byte operands requires alternate
                                                              loading of the operand addresses into the FSR pointer as
   STATUS Word register memory-mapped as a                   the multiple byte data fields are processed. Examples:
      register file, allowing testing of status bits (carry,
      digit carry, zero, power down, and timeout).            Direct addressing:

   Program Counter (PC) memory-mapped as register            mov  RA,#01           ;move "1" to RA
      file allows W to be used as offset register for
      indirect addressing of program memory.                  Indirect Addressing:

   Indirect addressing data pointer FSR (file select         mov  FSR,#RA ;FSR = address of RA
      register) memory-mapped as a register file.
                                                              mov  INDF,#$01        ;move "1" to RA
   IREAD instruction allows reading the instruction
      from the program memory addressed by W and
      upper four bits of MODE register.

   Eight-level, 11-bit push/pop hardware stack for
      subroutine linkage using the Call and Return
      instructions.

   Six addressing modes provide great flexibility.

15.2. Instruction Execution

An instruction goes through a four-stage pipeline to be
executed (Figure 15-1). The first instruction is fetched
from the program memory on the first clock cycle. On the
second clock cycle, the first instruction is decoded and the
second instruction is fetched. On the third clock cycle, the
first instruction is executed, the second instruction is
decoded, and the third instruction is fetched. On the
fourth clock cycle, the first instruction's results are

Parallax Inc.         Page 31 of 51                                               Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                                                       www.parallax.com

15.4. RAM Addressing                                          15.7. Input/Output Operation

Direct Addressing                                             The device contains three registers associated with each
                                                              I/O port. The first register (Data Direction Register),
The FSR register must initialized with an appropriate         configures each port pin as a Hi-Z input or output. The
value in order to address the desired RAM register. The       second register (TTL/CMOS Register), selects the desired
following table and code example show how to directly         input level for the input. The third register (Pull-Up
access the banked registers.                                  Register), enables a weak pull-up resistor on the pin
                                                              configured as a input. In addition to using the associated
     Bank                       FSR Value                     port registers, appropriate values must be written into the
        0                            010h                     MODE register to configure the I/O ports.
        1                            030h
        2                            050h                     When two successive read-modify-write instructions are
        3                            070h                     used on the same I/O port with a very high clock rate, the
        4                            090h                     "write" part of one instruction might not occur soon
        5                           0B0h                      enough before the "read" part of the very next instruction,
        6                           0D0h                      resulting in getting "old" data for the second instruction.
        7                           0F0h                      To ensure predictable results, avoid using two successive
                                                              read-modify-write instructions that access the same port
mov  FSR,#$070          ;Select RAM Bank 3                    data register if the clock rate is high.
                        ;Clear register 10h on
clr  $010               ;Bank 3                               15.8. Increment/Decrement
                        ;Select RAM Bank 6
mov  FSR,#$D0           ;Clear register 10h on                The bank of 31 registers serves as a set of accumulators.
                        ;Bank 6                               The instruction set contains instructions to increment and
clr  $010                                                     decrement the register file. The device also includes both
                                                              INCSZ fr (increment file register and skip if zero) and
Indirect Addressing                                           DECSZ fr (decrement file register and skip if zero)
                                                              instructions.
To access any register via indirect addressing, simply
move the eight-bit address of the desired register into the   15.9. Loop Counting and Data Pointing
FSR and use INDF as the operand. The example below            Testing
shows how to clear all RAM locations from 10h to 1Fh in
                                                              The device has specific instructions to facilitate loop
all eight banks:                                              counting. The DECSZ fr (decrement file register and skip
                                                              if zero) tests any one of the file registers and skips the
clr  FSR          ;clear FSR to 00h (at addr 04h)             next instruction (which can be a branch back to loop) if
                                                              the result is zero.
:loop setb SFR.4 ;set bit 4: addr 10h-1Fh,
                                                              15.10. Branch and Loop Call Instructions
                  ;30-3Fh, etc
                                                              The device contains an 8-level hardware stack where the
clr  INDF ;clear register pointed to by                       return address is stored when a subroutine is called.
                                                              Multiple stack levels allow subroutine nesting. The
                  ;FSR                                        instruction set supports absolute address branching.

incsz FSR         ;increment FSR and test, skip

                  ;jmp if 00h

jmp  :loop ;jump back and clear next

                  ;register

15.5. The Bank Instruction

Often it is desirable to set the bank select bits of the FSR
register in one instruction cycle. The Bank instruction
provides this capability. This instruction sets the upper
bits of the FSR to point to a specific RAM bank without
affecting the other FSR bits. Example:

bank $F0 ;Select Bank 7 in FSR

inc $1F ;increment file register

                     ;1Fh in Bank 7

15.6. Bit Manipulation

The instruction set contains instructions to set, reset, and
test individual bits in data memory. The device is capable
of bit addressing anywhere in data memory.

Parallax Inc.                                    Page 32 of 51  Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                          www.parallax.com

15.10.1.         Jump Operation                                15.10.4.  Page Call Operation

When a JMP instruction is executed, the lower nine bits        When a subroutine that resides on a different page is
of the program counter is loaded with the address of the       called, the page select bits must contain the proper values
specified label. The upper two bits of the program counter     to point to the desired page before the call instruction is
are loaded with the page select bits, PA1:PA0, contained       executed. This can be done easily using SETB and CLRB
in the STATUS register. Therefore, care must be                instructions or writing a value to the STATUS register.
exercised to ensure the page select bits are pointing to the   The device also has the PAGE instruction, which
correct page before the jump occurs.                           automatically selects the page in a single-cycle execution.

15.10.2.         Page Jump Operation

When a JMP instruction is executed and the intended            Note:"N" must be 0, 1, 2, or 3.
destination is on a different page, the page select bits must
be initialized with appropriate values to point to the         15.11. Return Instructions
desired page before the jump occurs. This can be done
easily with SETB and CLRB instructions or by writing a         The device has several instructions for returning from
value to the STATUS register. The device also has the          subroutines and interrupt service routines. The return
PAGE instruction, which automatically selects the page in      from subroutine instructions are RET (return without
a single-cycle execution.                                      affecting W), RETP (same as RET but affects PA1:PA0),
                                                               RETI (return from interrupt), RETIW (return and add W
Note: "N" must be 0, 1, 2, or 3.                               to RTCC), and RETW #literal (return and place literal in
                                                               W). The literal serves as an immediate data value from
                                                               memory. This instruction can be used for table lookup
                                                               operations. To do table lookup, the table must contain a
                                                               string of RETW #literal instructions. The first instruction
                                                               just in front of the table calculates the offset into the table.
                                                               The table can be used as a result of a CALL.

15.10.3.         Call Operation                                15.12. Subroutine Operation

   The following happens when a CALL instruction is           15.12.1.  Push Operation
      executed:
                                                               When a subroutine is called, the return address is pushed
   The current value of the program counter is                onto the subroutine stack. Specifically, each address in the
      incremented and pushed onto the top of the stack.        stack is moved to the next lower level in order to make
                                                               room for the new address to be stored. Stack 1 receives
   The lower eight bits of the label address are copied       the contents of the program counter. Stack 8 is
      into the lower eight bits of the program counter.        overwritten with what was in Stack 7. The contents of
                                                               stack 8 are lost.
   The ninth bit of the Program Counter is cleared to
      zero.

   The page select bits (in STATUS register) are
      copied into the upper two bits of the Program
      Counter.

This means that the call destination must start in the lower
half of any page. For example, 00h-0FFh, 200h2FFh,
400h-4FFh, etc.

Parallax Inc.                       Page 33 of 51                                             Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                                                            www.parallax.com

15.12.2.         Pop Operation                                     SB bit (bit test file register and skip if bit set). These
                                                                   instructions will cause the next instruction to be skipped if
When a return instruction is executed the subroutine stack         the tested condition is true. If a skip instruction is
is popped. Specifically, the contents of Stack 1 are copied        immediately followed by a PAGE or BANK instruction
into the program counter and the contents of each stack            (and the tested condition is true) then two instructions are
level are moved to the next higher level. For example,             skipped and the operation consumes three cycles. This is
Stack 1 receives the contents of Stack 2, etc., until Stack 7      useful for conditional branching to another page where a
is overwritten with the contents of Stack 8. Stack 8 is left       PAGE instruction precedes a JMP. If several PAGE and
unchanged, so the contents of Stack 8 are duplicated in            BANK instructions immediately follow a skip instruction
Stack 7.                                                           then they are all skipped plus the next instruction and a
                                                                   cycle is consumed for each.
15.13. Comparison and Conditional Branch
Instructions                                                       15.14. Logical Instruction
                                                                   The instruction set contain a full complement of the
The instruction set includes instructions such as                  logical instructions (AND, OR, Exclusive OR), with the
DECSZ fr (decrement file register and skip if zero),               W register and a selected memory location (using either
INCSZ fr (increment file register and skip if zero),               direct or indirect addressing) serving as the two operands.
SNB bit (bit test file register and skip if bit clear), and
                                                                   15.15. Shift and Rotate Instructions
                                                                   The instruction set includes instructions for left or right
                                                                   rotate-through-carry.

                                                                   15.16. Complement and SWAP
                                                                   The device can perform one's complement operation on
                                                                   the file register (fr) and W register. The MOV W,fr
                                                                   instruction performs nibble-swap on the fr and puts the
                                                                   value into the W register.

                                Table 15-1: Key to Abbreviations and Symbols

Symbol    Description                                              Symbol    Description
    W     Working register                                              n    Numerical value bit in opcode
     fr   File register (memory mapped in range of 00h to FFh)          b    Bit position selector bit in opcode
    PC    Lower eight bits of program counter (file register 02h)       .    File register / bit selector separator in assembly instruct.
          STATUS register (file register 03h)                           #    Immediate literal designator in assembly instruction
STATUS    File Select Register (file register 04h)                      lit  Literal value in assembly language instruction
   FSR    Carry bit in STATUS register (Bit 0)                               8-bit address in assembly language instruction
     C    Digit Carry bit in STATUS register (Bit 1)                 addr8   9-bit address in assembly language instruction
   DC     Zero bit in STATUS register (Bit 2)                        addr9   12-bit address in assembly language instruction
     Z    Power Down bit in STATUS register (Bit 3)                 addr12   Logical 1's complement
    PD    Watchdog Timeout bit in STATUS register (Bit 4)                    Logical OR
    TO    Page select bits in STATUS register (Bits7:5)                 /    Logical exclusive OR
          OPTION register (not memory mapped)                           |    Logical AND
PA2:PA0   Watchdog Timer register (not memory-mapped)                   ^    Swap high and low nibbles (4-bit segments)
OPTION    MODE register (not memory mapped)                             &    Rotate left through carry bit
          Port control register pointer (RA, RB, RC)                       Rotate right through carry bit
  WDT     Non-memory-mapped register designator                        >    Increment file register
          Constant value bit in opcode                                  --
    rx                                                                 ++
     !
     f
     k

Parallax Inc.                 Page 34 of 51                                 Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                          www.parallax.com

16.0 NATIVE SX INSTRUCTION SET SUMMARY TABLES

Table 16-1 through Table 16-6 list all of the native         In some cases, the exact number of cycles depends on the
assembly instructions, organized by category. For each       outcome of the instruction (such as the test-and-skip
instruction, the table shows the instruction mnemonic (as    instructions) or the clocking mode (Slow or Turbo). In
written in assembly language), a brief description of what   those cases, all possible numbers of cycles are shown in
the instruction does, the number of instruction cycles       the table. The instruction execution time is derived by
required for execution, the binary opcode, and the status    dividing the oscillator frequency by either one (Turbo
bits affected by the instruction.                            mode) or four (Slow). The divide-by factor is selected
                                                             through the FUSE Word register.
The "Clock Cycles (Turbo)" column typically shows a
value of 1, which means that the overall throughput for      A superset of these instructions are available in the SASM
the instruction is one per clock cycle. Exceptions include   assembler of the SX-Key IDE, and supported by the SX
program control branch instructions, which take 3 clock      Key User's Manual. Both are available for free download
cycles, and the system control instruction IREAD, which      from www.parallax.com/sx.
takes 4.

                        Table 16-1: Native SX Instruction Set: Logical Operands

   Mnemonic,                             Description         Clock Cycles Clock Cycles  Opcode             Bits
    Operands                                                 (Slow Mode) (Turbo)                        Affected
AND fr,W         AND of fr and W into fr (fr = fr & W)
AND W,fr         AND of W and fr into W (W = W & fr)         4  1                       0001 011f ffff       Z
AND W,#lit       AND of W and Literal into W (W = W &b lit)                                                  Z
NOT fr           Complement of fr into fr (fr = fr ^ FFh)    4  1                       0001 010f ffff       Z
OR fr,W          OR of fr and W into fr (fr = fr | W)                                                        Z
OR W,fr          OR of W and fr in to fr (W W | fr)        4  1                       1110 kkkk kkkk       Z
OR w,#lit        Or of W and Literal into W (W = W | lit)                                                    Z
XOR fr,W         XOR of fr and W into fr (fr = fr ^ W)       4  1                       0010 011f ffff       Z
XOR W,fr         XOR of W and fr into W (W = W ^ fr)                                                         Z
XOR W,#lit       XOR of W and Literal into W (W = W ^ lit)   4  1                       0001 001f ffff       Z
                                                                                                             Z
                                                             4  1                       0001 000f ffff

                                                             4  1                       1101 kkkk kkkk

                                                             4  1                       0001 101f ffff

                                                             4  1                       0001 100f ffff

                                                             4  1                       1111 kkkk kkkk

Parallax Inc.         Page 35 of 51                                                           Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                                          www.parallax.com

                 Table 16-2: Native SX Instruction Set: Arithmetic and Shift Operations

   Mnemonic,                             Description                      Clock Cycles Clock Cycles     Opcode             Bits
    Operands                                                              (Slow Mode) (Turbo)                           Affected
ADD fr,W         Add W to fr (fr = fr + W); carry bit is added if CF                                                    C, DC, Z
                 bit in FUSEX register is cleared to 0                    4              1              0001 111f ffff
ADD W,fr         Add fr to W (W = W +fr); carry bit is added if CF                                                      C, DC, Z
CLR fr           bit in FUSEX register is cleared to 0                           4              1       0001 110f ffff       Z
CLR W            Clear fr (fr = 0)                                               4              1       0000 011f ffff       Z
CLR !WDT                                                                         4              1       0000 0100 0000
DEC fr           Clear W (W = 0)                                                 4              1       0000 0000 0100   TO, PD
DECSZ fr         Clear Watchdog Timer, clear prescaler if                        4              1       0000 111f ffff       Z
INC fr           assigned to the Watchdog (TO = 1, PD = 1)                4 or 8 (skip)  1 or 2 (skip)  0010 111f ffff
INCSZ fr         Decrement fr (fr = fr 1)                                      4              1       0010 101f ffff    none
RL fr            Decrement fr and Skip if Zero (fr = fr 1 and skip      4 or 8 (skip)  1 or 2 (skip)  0011 111f ffff       Z
RR fr            next instruction if result is zero)                             4              1       0011 011f ffff
                 Increment fr (fr = fr +1)                                       4              1       0011 001f ffff    none
SUB fr,W         Increment fr and Skip if Zero (fr = fr +1 and skip                                                         C
                 next instruction if result is zero)                      4              1              0000 101f ffff      C
SWAP fr          Rotate fr Left through Carry (fr = > fr)
                 Subtract W from fr (fr = fr W); complement of                                                          none
                 the carry bit is subtracted if CF bit in FUSEX
                 register is cleared to 0
                 Swap high/low nibbles so fr xy = yx (fr =  fr)

                        Table 16-3: Native SX Instruction Set: Bitwise Operations

   Mnemonic,                              Description                     Clock Cycles Clock Cycles     Opcode             Bits
    Operands                                                              (Slow Mode) (Turbo)                           Affected
CLRB fr.bit      Clear Bit in fr (fr.bit = 0)
                 Test Bit in fr and Skip if set (test fr.bit and skip     4              1              0100 bbbf ffff    none
SB fr.bit        next instruction if bit is 1)                                                                            none
SETB fr.bit      Set Bit in fr (fr.bit = 1)                               4 or 8 (skip) 1 or 2 (skip) 0111 bbbf ffff      none
                 Test Bit in fr and Skip if clear ( test fr.bit and skip                                                  none
SNB fr.bit       next instruction if bit is 0)                            4              1              0101 bbbf ffff

                                                                          4 or 8 (skip) 1 or 2 (skip) 0110 bbbf ffff

Parallax Inc.         Page 36 of 51                                                                           Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                              www.parallax.com

                        Table 16-4: Native SX Instruction Set: Data Movement Instructions

    Mnemonic,                             Description                 Clock Cycles Clock Cycles            Opcode      Bits
     Operands                                                         (Slow Mode) (Turbo)           0000 001f ffff  Affected
MOV fr,W         Move W to fr (fr = W)                                                              0010 000f ffff
MOV W,fr                                                              4              1                                none
                 Move fr to W (W = fr)                                                              0000 100f ffff       Z
MOV W,fr-W       Move (fr-W) to W (W = fr-W); complement of           4              1
                 carry bit is subtracted if CF bit in FUSEX register                                1100 kkkk kkkk  C, DC, Z
MOV W,#lit       is cleared to 0                                      4              1              0010 010f ffff
MOV W,/fr        Move Literal to W (W = lit)                                                        0000 110f ffff    none
MOV W,--fr                                                            4              1              0010 100f ffff       Z
MOV W,++fr       Move Complement of fr to W (W = fr ^ FFh)                                          0011 010f ffff       Z
MOV W,fr       Move (fr 1) to W (W = fr 1)                                                    0011 100f ffff      C
MOV W,fr                                                            4              1              0000 0100 0010      C
MOV W,M          Move (fr = 1) to W (W = fr = 1)                                                    0010 110f ffff
MOVSZ W,--fr     Rotate fr Left through Carry and Move to W           4              1              0011 110f ffff    none
MOVSZ W,++fr     (W = >> ffr)                                                                       0000 0100 0011    none
MOV M,W          Rotate fr Right through Carry and Move to W (W       4              1              0000 0101 kkkk    none
MOV M,#lit       =  fr)                                                                                             none
                 Swap High/Low nibbles of fr and move to W (W =       4              1              0000 0000 0fff    none
MOV !rx,W        fr)                                                                                                none
                 Move MODE register to W (W = MODE), high             4              1              0000 0000 0010
MOV !OPTION,W    nibble is cleared                                                                  0010 001f ffff    none
TEST fr          Move (fr 1) to W and Skip if Zero (w = fr 1 and  4              1
                 skip next instruction if result is zero)                                                             none
                 Move (fr + 1) to W and Skip of Zero (W = fr +1       4 or 8 (skip) 1 or 2 (skip)                        Z
                 and skip next instruction if result is zero)
                 Move W to MODE register (MODE = W)                   4 or 8 (skip)  1 or 2 (skip)
                                                                             4              1
                 Move Literal to MODE register (MODE = lit)                  4              1
                 Move W to Port Rx control register: rx  W
                 (exchange W and WKPND_B or CMP_B or rx =             4              1
                 w (move W to rx for all other port control
                 registers)                                           4              1
                 Move W to OPTION register (OPTION = W)
                                                                      4              1
                 Test fr for zero (fr = fr to set or clear Z bit)

Parallax Inc.         Page 37 of 51                                                               Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                              www.parallax.com

                        Table 16-5: SX Instruction Set: Program Control Instructions

   Mnemonic,                              Description            Clock Cycles Clock Cycles  Opcode               Bits
    Operands                                                     (Slow Mode) (Turbo)                          Affected
                 Call Subroutine:
CALL addr8       Top-of-stack = program counter + 1                     8   3               1001 kkkk kkkk       none
                 PC(7:0) = addr8
JMP addr8        Program counter (8) = 0                                8   3               101k kkkk kkkk       none
NOP              Program counter (10:9) = PA1:PA0
RET              Jump to Address:                                       4   1               0000 0000 0000       none
RETP             PC(7:0) = addr9(7:0)                                                                            none
RETI             Program counter = (8) = addr9(8)                       8   3               0000 0000 1100
RETIW            Program counter (10:9) = PA1:PA0                                                             PA1, PA0
RETW lit                                                                8   3               0000 0000 1101  All STATUS
                 No Operation                                                                               except TO,
                                                                        8   3               0000 0000 1110
                 Return from subroutine                                                                          PD
                 (program counter = top-of-stack)                       8   3               0000 0000 1111  All STATUS
                 Return from subroutine across Page boundary                                                except TO,
                 (PA1:PA0 = top-of-stack (10:19) and program            8   3               1000 kkkk kkkk
                 counter = top-of-stack)                                                                         PD
                                                                                                                 none
                 Return from Interrupt (restore W, STATUS, FSR,
                 and program counter from shadow registers)

                 Return from Interrupt and add W to RTCC
                 (restore W, STATUS FSR, and program counter
                 from shadow registers; and add W to RTCC)
                 Return from Subroutine with Liter in W
                 (W = lit and program counter = top-of-stack)

                        Table 16-6: SX Instruction Set: System Control Instructions

   Mnemonic,                             Description             Clock Cycles Clock Cycles  Opcode             Bits
    Operands                                                     (Slow Mode) (Turbo)                        Affected
BANK addr8       Load Bank number into FSR(7:5)
IREAD            FSR(7:5) = addr8(7:5)                                  4   1               0000 0001 1nnn     none
PAGE addr12      Read word from Instruction memory                                                             none
                 MODE:W = data at (MODE:W)                              16  4               0000 0100 0001  PA1, PA0
SLEEP            Load Page number into STATUS(7:5)
                 STATUS(7:5) = addr12(11:9)                             4   1               0000 0001 0nnn   TO, PD
                 Power down mode
                 WDT = 00h, TO = 1, stop oscillator                     4   1               0000 0000 0011
                 (PD = 0, clears prescaler if assigned)

Parallax Inc.                                          Page 38 of 51                              Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                                                  www.parallax.com

16.1. Equivalent Assembler Mnemonics                       carry), which is interpreted the same as the instruction
                                                           "clrb $03.0" (clear bit 0 in the STATUS register). Some
Some assemblers support additional instruction             of the commonly supported equivalent assembler
mnemonics that are special cases of existing instructions  mnemonics are described in Table 16-7.
or alternative mnemonics for standard ones. For example,
an assembler might support the mnemonic "CLC" (clear

                        Table 16-7: SX Equivalent Assembler Mnemonics

       Syntax           Description                              Equivalent                                             Cycles

CLC                     Clear Carry bit                          CLRB $03.0                                             1

CLZ                     Clear Zero bit                           CLRB $03.2                                             1

JMP W                   Jump Indirect W                          MOV $02,W        4 or 3 (see Note 1)

JMP PC+W                Jump Indirect W Relative                  ADD $02,W       4 or 3 (see Note 1)
MODE imm4                                                         MOV M,#lit                 1
NOT W                   Move Immediate to MODE                   XOR W,#$FF                  1
                        Register

                        Complement of W

SC                      Skip if Carry bit set                    SB $03.0         1 or 2 (see Note 2)

SKIP                    Skip Next Instruction              SNB $02.0 or SB $02.0  4 or 2 (see Note 3)

Note 1: The JMP W and JMP PC+W instructions take 4 cycles in the Slow clocking mode, or 3 cycles in the Turbo clocking mode.

Note 2: The SC instruction takes 1 cycle if the tested condition is false or 2 cycles if the tested condition is true.

Note 3: The assembler converts the SKIP instruction into a SNB or SB instruction that tests the least significant bit of the program
counter, choosing SNB or SB so that the tested condition is always true. The instruction takes 4 cycles in the Slow clocking mode
or 2 cycles in theTurbo clocking mode.

Parallax Inc.                                   Page 39 of 51                                                         Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                            www.parallax.com

17.0 ELECTRICAL CHARACTERISTICS

17.1. Absolute Maximum Ratings
Stresses in excess of the absolute maximum ratings can cause permanent damage to the device. These are absolute stress
ratings only. Functional operation of the device is not implied at these or any other conditions in excess of those given in the
remainder of Section 17.0. Exposure to absolute maximum ratings for extended periods can adversely affect device
reliability.

                                                     Table 17-1: Absolute Maximum Ratings         -40 C to +85 C
                 Ambient temperature under bias                                                   -65 C to +150 C
                                                                                                  0 V to +7.0 V
                 Storage temperature                                                              0 V to +13.5 V
                 Voltage on Vdd with respect to Vss                                               0 V to +13.5 V
                 Voltage on OSC1 with respect to Vss                                              -0.6 V to (Vdd + 0.6V )V
                 Voltage on MCLR with respect to Vss                                              700 mW
                 Voltage on all other pins with respect to Vss                                    130 mA
                 Total power dissipation                                                          130 mA
                 Max. current out of Vss pin                                                      500 A
                 Max. current into Vdd pin                                                        45 mA
                 Max. DC current into an input pin with internal protection diode forward biased  45 mA
                 Max. allowable sink current per I/O pin
                 Max allowable source current per I/O pin

Parallax Inc.         Page 40 of 51                                                             Rev 1.6 11/20/2006
Parallax SX20AC/SX28AC                                                                                    www.parallax.com

17.2. DC Characteristics
SX20/28AC at 75MHz(Temp Range: 0C
小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 大学堂 TI培训 Datasheet 电子工程

器件索引   0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
搜索索引   0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved