Page 2
Trademarks Rabbit and Dynamic C are registered trademarks of Digi International Inc. Rabbit 6000 is a trademark of Digi International Inc. The latest revision of this manual is available on the Digi Web site, http://www.digi.com/support/.
200 MHz, with compact code and support for up to 16 MB of memory. Operating with a 1.2 V core and 3.3 V I/O, the Rabbit 6000 boasts 16 channels of DMA, six serial ports with IrDA, 64+ digital I/O, quadrature decoder, PWM outputs, I C port, and pulse capture and measurement capabilities.
The PWM outputs can be filtered to create a 10-bit D/A con- verter or they can be used directly to drive devices such as motors or solenoids. The Rabbit 6000 has eight digi.com...
Page 10
C port capable of up to 400 kbits/s and 10-bit addressing. The Rabbit 6000 has three timer systems. Timer A consists of twelve 8-bit counters, each of which has a pro- grammed time constant. Six of them can be cascaded from the primary Timer A counter. Timer B contains a 10-bit counter, two match registers, and two step registers.
1.4 Basic Specifications Two versions of the Rabbit 6000 are available—the standard 292-ball BGA and a smaller 233-ball BGA for specialty Wi-Fi applications. The larger package is intended for most Rabbit applications; the smaller package has no address or data bus, and is intended for particular applications. If you need further informa- tion, please contact your Rabbit sales representative.
Page 15
(Wi-Fi disabled) D/A Converter Channels None None None (Wi-Fi disabled) * Limitations on the use of the 1MB internal RAM are present when running in lower CPU frequency or sleepy modes. See Section 5.3.1, “Internal RAM”. digi.com Rabbit 6000 User’s Manual...
I/O ring further reduce EMI from the Rabbit 6000. Note that the spectrum spreader is not usable at main clock frequencies above 115 MHz because of the short period.
The 32 kHz clock input is on the CLK_32K pin. There is an internal Schmitt trigger on this pin to reduce sensitivity to noise. The peripheral clock or peripheral clock divided by 2 may be optionally output on the CLK pin by enabling it via bits 7–6 in GOCR. digi.com Rabbit 6000 User’s Manual...
Wi-Fi PLL status. GCM0R, GCM1R Used to select the main PLL loop and pre-divider values. GCDR Used to enable the main PLL. ENPR Used to enable the Wi-Fi PLL (automatic when Wi-Fi is enabled). digi.com Rabbit 6000 User’s Manual...
When the 32 kHz clock is enabled in GCSR, it can be further divided by 2, 4, 8, or 16 to generate even lower frequencies by enabling those modes in bits 0–2 of GPSCR. See Table 2-6 for more details. digi.com Rabbit 6000 User’s Manual...
48 MHz 192 MHz 384 MHz xxx10000 xxxx0010 Note that if the PLL is enabled, restrictions may exist for the use of the spectrum spreader and clock dou- bler. The following sections provide more details. digi.com Rabbit 6000 User’s Manual...
Strong 00xxxxxx up to 50 MHz; strong spreading of 3 ns frequencies over 50 MHz Strong spreading of frequencies up Strong — 10xxxxxx to 50 MHz; normal spreading of 4.5 ns frequencies over 50 MHz digi.com Rabbit 6000 User’s Manual...
Page 23
If the doubler is not used, then the spreader affects every clock cycle, and the clock low time is reduced. digi.com Rabbit 6000 User’s Manual...
Table 2-5. Recommended Delays Set In GCDR for Clock Doubler Recommended GCDR Value Frequency Range 7.3728 MHz 0x0F 0x0B 7.3728–11.0592 MHz 0x09 11.0592–16.5888 MHz 0x06 16.5888–20.2752 MHz 0x03 20.2752–52.8384 MHz 0x01 52.8384–77.4144 MHz 0x00 >77.4144 MHz digi.com Rabbit 6000 User’s Manual...
Page 25
2 clocks long and includes both a long and a short clock, resulting in no net change due to asymmetry. However, if an odd number of wait states is used, then the memory access time will be affected slightly. digi.com Rabbit 6000 User’s Manual...
32 kHz clock is optional. A self-contained external oscillator is the recommended oscillator circuit for the Rabbit 6000, but a tunable oscillator circuit such as the one shown below may be used. The values of resistors and capacitors may need to be adjusted for various frequencies and crystal load capacitances.
Page 27
Details about this requirement are available in Technical Note TN303, “Conformal Coating”, from the Rabbit Web site. The need for a conformal coating can be avoided by using a single external clock chip.
Processor clock from the main clock, divided by 6. Peripheral clock from the main clock, divided by 6. Periodic interrupts are disabled. Periodic interrupts use Interrupt Priority 1. Periodic interrupts use Interrupt Priority 2. Periodic interrupts use Interrupt Priority 3. digi.com Rabbit 6000 User’s Manual...
Page 29
These bits are reserved and should be written with zeros. System PLL pre-divider value. All zeros is not a valid value for the PLL pre-divider. Neither divider value should not be modified while the PLL is supplying the clock to the system. digi.com Rabbit 6000 User’s Manual...
Page 31
This bit combination is reserved and should not be used. /BUFEN pin is active (low) during external I/O cycles. /BUFEN pin is active (low) during data memory accesses. /BUFEN pin is low. /BUFEN pin is high. digi.com Rabbit 6000 User’s Manual...
Page 32
This bit combination is reserved and should not be used. FIMA clock from system PLL output. Response to this setting may be delayed until the PLL output is stable (roughly 200 µs after enabling the system PLL, uses 32 kHz clock to generate delay). digi.com Rabbit 6000 User’s Manual...
Page 33
Wi-Fi PLL not enabled or output not stable. (Read- Wi-Fi PLL is enabled, with stable output. only) System PLL not enabled or output not stable. (Read- System PLL is enabled, with stable output. only) digi.com Rabbit 6000 User’s Manual...
Page 34
Network Port D interrupts use Interrupt Priority 3. Network Port C interrupts are disabled. Network Port C interrupts use Interrupt Priority 1. Network Port C interrupts use Interrupt Priority 2. Network Port C interrupts use Interrupt Priority 3. digi.com Rabbit 6000 User’s Manual...
After reset, the Rabbit 6000 checks the state of the SMODE and SYSCFG pins. Depending on the state of the SMODE pins, it either begins normal operation by fetching instruction bytes from memory bank zero, which is mapped to either /CS0 or /CS3 depending on the state of the SYSCFG pin, or it enters a special bootstrap mode where it fetches bytes from either Serial Port A or the slave port.
SMODE0 and SMODE1 pins controls its operation. SYSCFG — When the Rabbit 6000 is first powered up or when it is reset, the state of this pin controls whether memory bank zero is mapped to /CS0 or the internal SRAM (/CS3).
3.3 Operation Pulling the /RESET pin low will initialize everything in the Rabbit 6000 except for the real-time clock reg- isters, the 32K battery-backed RAM and the onchip-encryption RAM. The reset of the Rabbit 6000 is delayed until any write cycles in progress are completed; the reset takes effect as soon as no write cycles are occurring.
Page 39
Bootstrap from Serial Port A, asynchronous mode. If both SMODE pins are zero, the Rabbit 6000 begins fetching instructions from the memory device mapped into memory bank 0. When SYSCFG is low, memory bank 0 is set to /CS0 and /OE0. If SYSCFG is high, memory bank 0 is set to /CS3 and /OE0.
Serial clock (output to serial flash) The Rabbit 6000 divides the main clock by 64 to provide the SPI clock for the serial flash bootstrap. Once this mode is entered, the Rabbit 6000 will send the byte sequence “0x03 0x00 0x00 0x00”, which is an industry-standard command that enables continuous read mode starting at serial flash address 0x0.
3.3.3 Parallel Bootstrap When the parallel bootstrap mode is selected by the SMODE pins, the Rabbit 6000 will enable the parallel slave port interface on Parallel Ports A and B, and will wait for triplets to be sent to that interface. See Chapter 21 for more details on the operation of the slave port.
RAM to read out the bytes. A feature new to the Rabbit 6000 is a 14-bit CPU clock cycle counter. This counter counts the number of CPU cycles that occur during one 32 kHz clock period. This is useful for determining the frequency of the main CPU oscillator which can be used in baud rate calculations as well as other CPU clock dependant features.
It is cleared by restarting the secondary watchdog by writing 0x5F to WDTCR or writ- ing a new timeout value to SWDTR. The secondary watchdog interrupt always occurs at Priority 3. digi.com Rabbit 6000 User’s Manual...
0x40 – 0xC0 to RTCCR and then writing bytes repeatedly to RTCCR to increment the appropriate bytes of the real-time clock. The byte increment mode is disabled by writing 0x00 to RTCCR. digi.com Rabbit 6000 User’s Manual...
8 bits of this 14-bit counter are accessed by reading WDTCR, and the upper 6 bits are accessed by reading WDTTR. This value is updated continually, so be careful to not change the main clock frequency between reading the two registers. digi.com Rabbit 6000 User’s Manual...
Processor clock from the main clock, divided by 6. Peripheral clock from the main clock, divided by 6. Periodic interrupts are disabled. Periodic interrupts use Interrupt Priority 1. Periodic interrupts use Interrupt Priority 2. Periodic interrupts use Interrupt Priority 3. digi.com Rabbit 6000 User’s Manual...
Page 49
Description Read The current value of the 48-bit real-time clock counter is returned. Writing to RTC0R transfers the current count of the real-time clock to a Write holding register while the real-time clock continues counting. digi.com Rabbit 6000 User’s Manual...
Page 50
The watchdog timer will be re-enabled by any other write to this register. other Normal clocking (32 kHz clock) for the watchdog timer. read Return the most-significant 6 bits of the CPU clock cycle counter. digi.com Rabbit 6000 User’s Manual...
Page 51
Program fetch as a function of the SMODE pins. (Read- Ignore the SMODE pins program fetch function. only) Read These bits report the state of the SMODE pins. 00010 RAM identifier for this version of the chip. digi.com Rabbit 6000 User’s Manual...
Page 52
Program fetch as a function of the SMODE pins. (Read- Ignore the SMODE pins program fetch function. only) Read These bits report the state of the SMODE pins. 00100 CPU identifier for this version of the chip. digi.com Rabbit 6000 User’s Manual...
Page 53
These bits report the state of the SMODE pins. 00000 CPU identifier for this version of the chip. Battery-Backed Onchip-Encryption RAM (VRAM00) (Address = 0x0600) through through (VRAM31) (Address = 0x061F) Bit(s) Value Description General-purpose RAM locations. Cleared by Intrusion Detect conditions. digi.com Rabbit 6000 User’s Manual...
ANAGEMENT 5.1 Overview The Rabbit 6000 supports both 8-bit and 16-bit external flash and SRAM devices; three chip selects, and two read/write-enable strobes allow up to six external devices to be attached at once. The 8-bit mode allows 0, 1, 2, or 4 wait states to be specified for each device, and the 16-bit mode allows 0 to 7 wait states depending on the settings.
Page 55
Figure 5.1 Mapping Rabbit 6000 Physical Memory Space Either one or both of the two most significant address bits (which are used to select the quadrant) can be inverted, providing the ability to bank-switch other pages from a larger memory device into the same memory bank.
Page 56
The same instructions can be used to write to logical addresses. All of these instructions are available in the Rabbit 6000, as well as new instructions for more operations using physical addresses.
When a stack-related write is attempted to a region outside that set by the stack limit registers, a stack limit violation occurs. The interrupt request is cleared when it is handled. The stack limit violation interrupt vec- tor is in the IIR at offset 0x1B0. It is always set to Priority 3. digi.com Rabbit 6000 User’s Manual...
5.3.1 Internal RAM There are two internal RAM devices in the Rabbit 6000. A 1 MB RAM is located on /CS3, /OE0, /WE0, and a 32 KB battery-backed SRAM is located on /CS3, /OE1, /WE1. Both of them can be run at speeds up to 200 MHz with no additional wait states.
5.3.3 Memory Bank Operation On startup the Rabbit 6000 checks the status of the SYSCFG pin. To provide support for external memory, the SYSCFG pin should be set low and Memory Bank 0 enabled to use /CS0, /OE0, and /WE0 in 8-bit mode with four wait states and write protection enabled.
Page 63
It is possible to force /CS1 to be always active in MMIDR; enabling this will cause conflicts only if a device shares a /OE or /WE strobe with another device. This option allows faster access to particular memory devices. digi.com Rabbit 6000 User’s Manual...
5.3.4 Memory Modes The Rabbit 6000 supports both 8-bit and 16-bit memories on all chip selects, including both internal RAMs. It also provides support for page-mode devices. The mode for each chip select is set in MACR; 8- bit mode is the default for all chip selects.
Page 65
In the Rabbit 6000 (and most memory devices) a page can be selected as either 8 or 16 bytes. Thus, if an address is identical to the previous address except in the lower four bits, the access time is assumed to be faster.
“window” that uses the instruction address decoding when read or written as data. This mapping will only occur when the RAMSR is within the root or data segments; the RAMSR will be ignored if it is mapped to the stack segment or XPC window. digi.com Rabbit 6000 User’s Manual...
WPSxR, WPSxLR, WPSxHR 5.3.7 Stack Protection The Rabbit 6000 provides stack overflow and underflow protection. Low and high logical address limits can be set in STKLLR and STKHLR; a Priority 3 stack-violation interrupt occurs when a stack-based write occurs within the 16 bytes below the upper limit or within the 16 bytes above the lower limit. Note that the writes will still occur even if they are within the 16 bytes surrounding the limits, but the interrupt can serve as a warning to the application that the stack is in danger of being over or underrun.
MBxCR decision. Normal operation. For a data segment access, invert A16 Normal operation. For a root segment access, invert bank select address MSB before MBxCR decision. Normal operation. For a root segment access, invert A16 digi.com Rabbit 6000 User’s Manual...
Page 69
(Address = 0x0012) Bit(s) Value Description Read The current contents of this register are reported. Eight LSBs (MSBs are set to zero by write) of physical address offset to Write use if: SEGSIZ[3:0] Addr[15:12] < SEGSIZ[7:4] digi.com Rabbit 6000 User’s Manual...
Page 70
(Address = 0x0013) Bit(s) Value Description Read The current contents of this register are reported. Boundary value for switching from DATSEG to STACKSEG for Write translation. Write Boundary value for switching from none to DATSEG for translation. digi.com Rabbit 6000 User’s Manual...
Page 71
/CS2 is active for accesses in this bank. /CS3 (internal memory) is active for accesses in this bank. When standalone operation is selected (by strapping the SCFG pin high), this bit combination is forced for MB0CR only. digi.com Rabbit 6000 User’s Manual...
Page 72
/CS2 is active for accesses in this bank. /CS3 (internal memory) is active for accesses in this bank. When standalone operation is selected (by strapping the SCFG pin high), this bit combination is forced for MB0CR only. digi.com Rabbit 6000 User’s Manual...
Page 73
For an XPC access, use MB1LCR independent of Bank Select Address. 0110 For an XPC access, use MB2LCR independent of Bank Select Address. 0111 For an XPC access, use MB3LCR independent of Bank Select Address. digi.com Rabbit 6000 User’s Manual...
Page 74
Extended timing for /WE1 (falling edge to falling edge, two clocks minimum). Normal timing for /WE0 (rising edge to falling edge, one and one-half clocks minimum). Extended timing for /WE0 (falling edge to falling edge, two clocks minimum). digi.com Rabbit 6000 User’s Manual...
Page 75
Page-Mode 8-bit operation for /CS1. Normal 16-bit operation for /CS1. Page-Mode 16-bit operation for /CS1. Normal 8-bit operation for /CS0. Page-Mode 8-bit operation for /CS0. Normal 16-bit operation for /CS0. Page-Mode 16-bit operation for /CS0. digi.com Rabbit 6000 User’s Manual...
Page 76
Disable RAM segment limit checking. Select data-type MMU translation if PC[15:10] is equal to RAMSR[7:2]. Select data-type MMU translation if PC[15:11] is equal to RAMSR[7:3]. Select data-type MMU translation if PC[15:12] is equal to RAMSR[7:4]. digi.com Rabbit 6000 User’s Manual...
Page 77
(Address = 0x0480) (WPSBR) (Address = 0x0484) Bit(s) Value Description When these eight bits [23:16] match bits of the physical address, write- protect that 64 KB range in 4 KB increments using WPSxLR and WPSxHR. digi.com Rabbit 6000 User’s Manual...
Page 78
Write-Protect Segment x Low Register (WPSALR) (Address = 0x0481) (WPSBLR) (Address = 0x0485) Bit(s) Value Description Disable 4 KB write protect for relative address 0x7000–0x7FFF in WP Segment x. Enable 4 KB write protect for relative address 0x7000–0x7FFF in WP Segment x.
Page 79
Write-Protect Segment x High Register (WPSAHR) (Address = 0x0482) (WPSBHR) (Address = 0x0486) Bit(s) Value Description Disable 4 KB write protect for relative address 0xF000–0xFFFF in WP Segment x. Enable 4 KB write protect for relative address 0xF000–0xFFFF in WP Segment x.
Page 80
Fast output slew rate. Slow output slew rate. 4 mA output drive capability. 8 mA output drive capability. 10 mA output drive capability. 14 mA output drive capability. These bits are reserved and should be written with zeros. digi.com Rabbit 6000 User’s Manual...
Page 81
4 mA output drive capability. 8 mA output drive capability. 10 mA output drive capability. 14 mA output drive capability. No pullup or pulldown resistors. 75 k pullup resistor. 75 k pulldown resistor. 75 k keeper. digi.com Rabbit 6000 User’s Manual...
Page 82
Fast output slew rate. Slow output slew rate. 4 mA output drive capability. 8 mA output drive capability. 10 mA output drive capability. 14 mA output drive capability. These bits are reserved and should be written with zeros. digi.com Rabbit 6000 User’s Manual...
NTERRUPTS 6.1 Overview The Rabbit 6000 can operate at one of four priority levels, 0–3, with Priority 0 being the expected standard operating level. The current priority and up to three previous priority levels are kept in the processor’s 8- bit IP register, where bits 0–1 contain the current priority.
The second column shows the vectors in the first 256 bytes of the table, and the third column shows the vectors in the second 256 bytes. Interrupts that are new to the Rabbit 6000 are highlighted as such.
Page 85
Table 6-2 shows the structure of the external interrupt vector table. Each interrupt vector falls on a 16-byte boundary inside the table. Interrupts that are new to the Rabbit 6000 are highlighted as such. Table 6-2. External Interrupt Vector Table Structure...
Page 86
Serial Port C Tx: Write to SCDR, SCAR, SCLR or dummy write to SCSR. Rx: Read from SDDR or SDAR. Lowest Serial Port D Tx: Write to SDDR, SDAR, SDLR or dummy write to SDSR. digi.com Rabbit 6000 User’s Manual...
7.1 Overview The Rabbit 6000 has eight external interrupt vectors. Interrupts 0 and 1 can share up to three pins each, and interrupts 2–7 each only have one pin, providing a total of up to 12 external interrupt inputs out of 22 pos- sible pins.
External interrupts 0 and 1 can be enabled on pins PD0, PD1, PE0, PE1, PE4, and PE5. The remaining interrupts can be enabled on any pin of Parallel Ports F or G. Each pin is associated with a particular inter- rupt vector as shown in Table 7-1 below. Table 7-1. Rabbit 6000 Interrupt Vectors Vector Register...
Interrupts 2-7 allow only a single input at any one time. 7.4.1 Example ISR A sample interrupt handler is shown below. extInt_isr:: ; respond to external interrupt here ; interrupt is automatically cleared by interrupt acknowledge ipres digi.com Rabbit 6000 User’s Manual...
Parallel Port E low nibble interrupt on both edges. This external interrupt is disabled. This external interrupt uses Interrupt Priority 1. This external interrupt uses Interrupt Priority 2. This external interrupt uses Interrupt Priority 3. digi.com Rabbit 6000 User’s Manual...
Page 93
Interrupt on falling edge. Interrupt on rising edge. Interrupt on both edges. This external interrupt is disabled. This external interrupt uses Interrupt Priority 1. This external interrupt uses Interrupt Priority 2. This external interrupt uses Interrupt Priority 3. digi.com Rabbit 6000 User’s Manual...
After reset, the default condition for Parallel Port A is all inputs. When PADR is read, the actual voltage on the pins is returned, whether the port is set as an input or an output. digi.com Rabbit 6000 User’s Manual...
8.1.1 Block Diagram 8.1.2 Registers Register Name Mnemonic I/O Address Reset Port A Data Register PADR 0x0030 xxxxxxxx Port Ax Control Register (x = 0-7) PAxCR 0x04B0 + x xxx00000 digi.com Rabbit 6000 User’s Manual...
Any outputs on Parallel Port A are clocked by the peripheral clock. 8.2.3 Other Registers Register Function SPCR Used to set up Parallel Port A. 8.2.4 Interrupts There are no interrupts associated with Parallel Port A, except when the slave port is being used. digi.com Rabbit 6000 User’s Manual...
If one of the Flexible Interface Modules has been enabled to use Parallel Port A, writing to PADR will no longer change the state of the pins. The other Parallel Port A registers are still valid. Refer to Chapter 33 for more details. digi.com Rabbit 6000 User’s Manual...
4 mA output drive capability. 8 mA output drive capability. 10 mA output drive capability. 14 mA output drive capability. No pullup or pulldown resistor. 75 k pullup resistor. 75 k pulldown resistor. 75 k keeper. digi.com Rabbit 6000 User’s Manual...
Page 99
Parallel Port B[7:0] is used for the address bus. Slave port interrupts are disabled. Slave port interrupts use Interrupt Priority 1. Slave port interrupts use Interrupt Priority 2. Slave port interrupts use Interrupt Priority 3. digi.com Rabbit 6000 User’s Manual...
Note that it is possible for either Flexible Interface Module to use any of the parallel ports. See Chapter 33 for more information. Table 9-1. Parallel Port B Pin Alternate Output Functions Serial Ports External I/O Pin Name A–D — — — — — — SCLKA SCLKB digi.com Rabbit 6000 User’s Manual...
After reset, the default condition for Parallel Port B is six inputs (bits 2-7) and two outputs (bits 0-1). When PBDR is read, the actual voltage on the pins is returned, whether the pins are set as inputs or out- puts. 9.1.1 Block Diagram digi.com Rabbit 6000 User’s Manual...
I/O bus; as control signals for the slave port; or as clocks for Serial Ports A and B. On startup, bits 6 and 7 are outputs set low for backwards compatibility with the Rabbit 2000. All other pins are inputs.
If one of the Flexible Interface Module has been enabled to use Parallel Port B, writing to PBDR will no longer change the state of the pins. The other Parallel Port B registers are still valid. Refer to Chapter 33 for more details. digi.com Rabbit 6000 User’s Manual...
4 mA output drive capability. 8 mA output drive capability. 10 mA output drive capability. 14 mA output drive capability. No pullup or pulldown resistor. 75 k pullup resistor. 75 k pulldown resistor. 75 k keeper. digi.com Rabbit 6000 User’s Manual...
Page 105
Parallel Port B[7:0] is used for the address bus. Slave port interrupts are disabled. Slave port interrupts use Interrupt Priority 1. Slave port interrupts use Interrupt Priority 2. Slave port interrupts use Interrupt Priority 3. digi.com Rabbit 6000 User’s Manual...
Alt Out 0 Alt Out 1 Alt Out 2 Alt Out 3 PWM3 SCLKC PWM2 PWM1 RCLKE PWM0 TCLKE TIMER C3 SCLKD TIMER C2 TIMER C1 RCLKF TIMER C0 TCLKF NOTE: I0-I7 are strobes for External I/O digi.com Rabbit 6000 User’s Manual...
After reset, the default condition for Parallel Port C is four outputs (the even-numbered bits) and four inputs (the odd-numbered bits). For compatibility with the Rabbit 2000 and the Rabbit 3000 microproces- sors, these outputs are driven with a logic zero (low) on PC6 and a logic one (high) on PC4, PC2, and PC0.
On startup, PC4, PC2, and PC0 are outputs set high, PC6 is set low, and the other pins are inputs for com- patibility with the Rabbit 3000. The individual pins can be set to be open-drain via PCDCR. Drive strength, slew rate, and the pullup/down resistor status are selectable via PCxCR.
If one of the Flexible Interface Modules has been enabled to use Parallel Port C, writing to PCDR will no longer change the state of the pins, and the settings of PCFR, PCALR, and PCAHR will be ignored. The other Parallel Port C registers are still valid. Refer to Chapter 33 for more details. digi.com Rabbit 6000 User’s Manual...
Parallel Port C bit 0 alternate output 0 (TXD). Parallel Port C bit 0 alternate output 1 (I0). Parallel Port C bit 0 alternate output 2 (TIMER C0). Parallel Port C bit 0 alternate output 3 (TCLKF). digi.com Rabbit 6000 User’s Manual...
Page 111
The corresponding port bit, as an output, is open-drain. Parallel Port C Function Register (PCFR) (Address = 0x0055) Bit(s) Value Description The corresponding port bit functions normally. The corresponding port bit carries its alternate signal as an output. See Table 10-1. digi.com Rabbit 6000 User’s Manual...
Page 112
4 mA output drive capability. 8 mA output drive capability. 10 mA output drive capability. 14 mA output drive capability. No pullup or pulldown resistor. 75 k pullup resistor. 75 k pulldown resistor. 75 k keeper. digi.com Rabbit 6000 User’s Manual...
0x0065 xxxxxxxx Port D Drive Control Register PDDCR 0x0066 xxxxxxxx Port D Data Direction Register PDDDR 0x0067 00000000 Port D Bit x Register PDBxR 0x0068+x xxxxxxxx Port Dx Control Register PDxCR 0x04E0 + x xxx00000 digi.com Rabbit 6000 User’s Manual...
Select a Parallel Port D pin as an external interrupt input. DMR0CR, DMR1CR Select a Parallel Port D pin as an external DMA request input. 11.2.4 Interrupts External interrupts can be accepted from pins PD1 or PD0; see Chapter 7 for more details. digi.com Rabbit 6000 User’s Manual...
If one of the Flexible Interface Module has been enabled to use Parallel Port D, writing to PDDR will no longer change the state of the pins, and the settings of PDFR, PDALR, and PDAHR will be ignored. The other Parallel Port D registers are still valid. Refer to Chapter 33 for more details. digi.com Rabbit 6000 User’s Manual...
Parallel Port D bit 0 alternate output 0 (SCLKD). Parallel Port D bit 0 alternate output 1 (I0). Parallel Port D bit 0 alternate output 2 (TIMER C0). Parallel Port D bit 0 alternate output 3 (TCLKF). digi.com Rabbit 6000 User’s Manual...
Page 120
The lower nibble of the port transfer clock is the output of Timer A1. The lower nibble of the port transfer clock is the output of Timer B1. The lower nibble of the port transfer clock is the output of Timer B2. digi.com Rabbit 6000 User’s Manual...
Page 121
The port buffer (bit 1) is written with the value of this bit. The port buffer Write will be transferred to the port output register on the next rising edge of the port transfer clock digi.com Rabbit 6000 User’s Manual...
Page 122
The port buffer (bit 5) is written with the value of this bit. The port buffer Write will be transferred to the port output register on the next rising edge of the port transfer clock digi.com Rabbit 6000 User’s Manual...
Page 123
The port buffer (bit 7) is written with the value of this bit. The port buffer Write will be transferred to the port output register on the next rising edge of the port transfer clock digi.com Rabbit 6000 User’s Manual...
Page 124
4 mA output drive capability. 8 mA output drive capability. 10 mA output drive capability. 14 mA output drive capability. No pullup or pulldown resistor. 75 k pullup resistor. 75 k pulldown resistor. 75 k keeper. digi.com Rabbit 6000 User’s Manual...
0x0075 00000000 Port E Drive Control Register PEDCR 0x0076 00000000 Port E Data Direction Register PEDDR 0x0077 00000000 Port E Bit x Register PEBxR 0x0078+x xxxxxxxx Port Ex Control Register PExCR 0x04F0 + x xxx00000 digi.com Rabbit 6000 User’s Manual...
Select a Parallel Port E pin for I/O handshake. USBWR Enable USB overcurrent detection on PE3. 12.2.4 Interrupts External interrupts can be accepted from pins PE5, PE4, PE1 or PE0; see Chapter 7 for more details. digi.com Rabbit 6000 User’s Manual...
If one of the Flexible Interface Modules has been enabled to use Parallel Port E, writing to PEDR will no longer change the state of the pins, and the settings of PEFR, PEALR, and PEAHR will be ignored. The other Parallel Port E registers are still valid. Refer to Chapter 33 for more details. digi.com Rabbit 6000 User’s Manual...
Parallel Port E bit 0 alternate output 0 (I0). Parallel Port E bit 0 alternate output 1 (SDATG). Parallel Port E bit 0 alternate output 2 (TIMER C0). Parallel Port E bit 0 alternate output 3 (TCLKF). digi.com Rabbit 6000 User’s Manual...
Page 132
The lower nibble peripheral clock is perclk/2. The lower nibble peripheral clock is the output of Timer A1. The lower nibble peripheral clock is the output of Timer B1. The lower nibble peripheral clock is the output of Timer B2. digi.com Rabbit 6000 User’s Manual...
Page 133
These bits are ignored. The port buffer (bit 1) is written with the value of this bit. The port buffer Write will be transferred to the port output register on the next rising edge of the peripheral clock. digi.com Rabbit 6000 User’s Manual...
Page 134
These bits are ignored. The port buffer (bit 5) is written with the value of this bit. The port buffer Write will be transferred to the port output register on the next rising edge of the peripheral clock. digi.com Rabbit 6000 User’s Manual...
Page 135
4 mA output drive capability. 8 mA output drive capability. 10 mA output drive capability. 14 mA output drive capability. No pullup or pulldown resistor. 75 k pullup resistor. 75 k pulldown resistor. 75 k keeper. digi.com Rabbit 6000 User’s Manual...
Parallel Port F pins can be synchronized to the output of Timer A1, Timer B1, or Timer B2. 13.2.3 Other Registers Register Function I2CR, I3CR, I4CR, Select a Parallel Port F pin as an external interrupt input. I5CR, I6CR, I7CR digi.com Rabbit 6000 User’s Manual...
Parallel Port F, writing to PFDR will no longer change the state of the pins, and the set- tings of PFFR, PFALR, and PFAHR will be ignored. The other Parallel Port F registers are still valid. Refer to Chapter 33 for more details. digi.com Rabbit 6000 User’s Manual...
Parallel Port F bit 0 alternate output 0 (FIMA0). Parallel Port F bit 0 alternate output 1 (I0). Parallel Port F bit 0 alternate output 2 (TIMER C0). Parallel Port F bit 0 alternate output 3 (TCLKF). digi.com Rabbit 6000 User’s Manual...
Page 142
The lower nibble peripheral clock is perclk/2. The lower nibble peripheral clock is the output of Timer A1. The lower nibble peripheral clock is the output of Timer B1. The lower nibble peripheral clock is the output of Timer B2. digi.com Rabbit 6000 User’s Manual...
Page 143
The corresponding port bit, as an output, is open-drain. Parallel Port F Data Direction Register (PFDDR) (Address = 0x003F) Bit(s) Value Description The corresponding port bit is an input. The corresponding port bit is an output. digi.com Rabbit 6000 User’s Manual...
Page 144
4 mA output drive capability. 8 mA output drive capability. 10 mA output drive capability. 14 mA output drive capability. No pullup or pulldown resistor. 75 k pullup resistor. 75 k pulldown resistor. 75 k keeper. digi.com Rabbit 6000 User’s Manual...
Parallel Port G pins can be synchronized to the output of Timer A1, Timer B1, or Timer B2. 14.2.3 Other Registers Register Function I2CR, I3CR, I4CR, Select a Parallel Port G pin as an external interrupt input. I5CR, I6CR, I7CR digi.com Rabbit 6000 User’s Manual...
Parallel Port G, writing to PGDR will no longer change the state of the pins, and the settings of PGFR, PGALR, and PGAHR will be ignored. The other Parallel Port G registers are still valid. Refer to Chapter 33 for more details. digi.com Rabbit 6000 User’s Manual...
Parallel Port G bit 0 alternate output 0 (FIMB0). Parallel Port G bit 0 alternate output 1 (I0). Parallel Port G bit 0 alternate output 2 (TIMER C0). Parallel Port G bit 0 alternate output 3 (TCLKF). digi.com Rabbit 6000 User’s Manual...
Page 150
Parallel Port G bit 4 alternate output 0 (FIMB4). Parallel Port G bit 4 alternate output 1 (I4). Parallel Port G bit 4 alternate output 2 (PWM0). Parallel Port G bit 4 alternate output 3 (TCLKE). digi.com Rabbit 6000 User’s Manual...
Page 151
The corresponding port bit, as an output, is open-drain. Parallel Port G Data Direction Register (PGDDR) (Address = 0x004F) Bit(s) Value Description The corresponding port bit is an input. The corresponding port bit is an output. digi.com Rabbit 6000 User’s Manual...
Page 152
4 mA output drive capability. 8 mA output drive capability. 10 mA output drive capability. 14 mA output drive capability. No pullup or pulldown resistor. 75 k pullup resistor. 75 k pulldown resistor. 75 k keeper. digi.com Rabbit 6000 User’s Manual...
Table 15-1. Parallel Port H Pin Alternate Output Functions 16-bit Pin Name Alt Out 1 Alt Out 2 Alt Out 3 I/O Bus PWM3 SCLKC PWM2 PWM1 RCLKE PWM0 TCLKE TIMER C3 SCLKD TIMER C2 TIMER C1 RCLKF TIMER C0 TCLKF digi.com Rabbit 6000 User’s Manual...
PHAHR 0x0033 00000000 Port H Function Register PHFR 0x0035 00000000 Port H Drive Control Register PHDCR 0x0036 00000000 Port H Data Direction Register PHDDR 0x0037 00000000 Port Hx Control Register PExCR 0x04D8 + x xxx00000 digi.com Rabbit 6000 User’s Manual...
15.2.2 Clocks All outputs on Parallel Port H are clocked by the peripheral clock. 15.2.3 Other Registers Register Function Enable 16-bit data bus. IBxER 15.2.4 Interrupts There are no interrupts associated with Parallel Port H. digi.com Rabbit 6000 User’s Manual...
If one of the Flexible Interface Modules has been enabled to use Parallel Port H, writing to PHDR will no longer change the state of the pins, and the settings of PHFR, PHALR, and PHAHR will be ignored. The other Parallel Port H registers are still valid. Refer to Chapter 33 for more details. digi.com Rabbit 6000 User’s Manual...
This value is reserved and must not be used. Parallel Port H bit 0 alternate output 1 (I0). Parallel Port H bit 0 alternate output 2 (TIMER C0). Parallel Port H bit 0 alternate output 3 (TCLKF). digi.com Rabbit 6000 User’s Manual...
Page 159
Table 15-1. Parallel Port H Drive Control Register (PHDCR) (Address = 0x0036) Bit(s) Value Description The corresponding port bit, as an output, is driven high and low. The corresponding port bit, as an output, is open-drain. digi.com Rabbit 6000 User’s Manual...
Page 160
4 mA output drive capability. 8 mA output drive capability. 10 mA output drive capability. 14 mA output drive capability. No pullup or pulldown resistor. 75 k pullup resistor. 75 k pulldown resistor. 75 k keeper. digi.com Rabbit 6000 User’s Manual...
Timers A2–A7 can be used to generate baud rates for Serial Ports A–F, or they can be used as general-pur- pose timers if the dedicated baud rate timers on the Rabbit 6000 serial ports are used. Timers A8, A9, A10, and A11 serve as prescalers which determine the resolution of the input capture, PWM, quadrature decoder, and Timers B/C peripherals respectively.
Page 162
After these bits are cleared, they cannot cause an interrupt. The proper rule to follow is for the interrupt routine to handle all bits that it sees set. digi.com Rabbit 6000 User’s Manual...
Timer A Time Constant 11 Register TAT11R 0x00AC 00000000 Timer A Time Constant 6 Register TAT6R 0x00AD xxxxxxxx Timer A Time Constant 12 Register TAT12R 0x00AE 00000000 Timer A Time Constant 7 Register TAT7R 0x00AF xxxxxxxx digi.com Rabbit 6000 User’s Manual...
Page 165
TACSR. The interrupt request is cleared when TACSR is read. The Timer A interrupt vector is in the IIR at offset 0x0A0. It can be set as priority 1, 2, or 3 in TACR. digi.com Rabbit 6000 User’s Manual...
Page 166
A sample interrupt handler is shown below. timerA_isr:: push af ; save used registers ioi ld a, (TACSR) ; clear the interrupt request and get status ; handle all interrupts flagged in TACSR here pop af ; restore registers ipres digi.com Rabbit 6000 User’s Manual...
Page 167
Timer A9 clocked by the main Timer A clock. Timer A9 clocked by the output of Timer A12. Timer A8 clocked by the main Timer A clock. Timer A8 clocked by the output of Timer A12. digi.com Rabbit 6000 User’s Manual...
Page 168
Time constant for the Timer A counter. This time constant will take effect the next time that the Timer A counter counts down to zero. The timer counts modulo n + 1, where n is the programmed time constant. digi.com Rabbit 6000 User’s Manual...
Page 169
If there is no pending match value, the new value is loaded immediately. digi.com Rabbit 6000 User’s Manual...
TBCR. TA12 may be used as a prescaler for TA11. 17.2.3 Other Registers Register Function GCSR Select peripheral clock mode. TAECR Enables selection of TA12 as prescaler for TA8-TA11. TAPR The output of TAPR drives Timers A1 and A12. digi.com Rabbit 6000 User’s Manual...
; save used registers ioi ld a, (TBCSR) ; clear the interrupt request and get status ; handle all interrupts flagged in TBCSR here ; reload match register(s) if necessary pop af ; restore used registers ipres digi.com Rabbit 6000 User’s Manual...
Timer B clocked by the output of Timer A11. Timer B interrupts are disabled. Timer B interrupt use Interrupt Priority 1. Timer B interrupt use Interrupt Priority 2. Timer B interrupt use Interrupt Priority 3. digi.com Rabbit 6000 User’s Manual...
Page 174
These bits are ignored but should be written with zeros. Two MSBs of the step size for the Timer B comparator. The new compare value will be loaded into the actual comparator when the current compare detects a match. digi.com Rabbit 6000 User’s Manual...
Page 175
The current value of the two MSBs of the Timer B counter is reported. These bits are always read as zeros. Timer B Count LSB Register (TBCLR) (Address = 0x00BF) Bit(s) Value Description Read The current value of the eight LSBs of the Timer B counter is reported. digi.com Rabbit 6000 User’s Manual...
0x50C -> 0x50D -> 0x50E -> 0x50F -> 0x518 -> 0x519 -> 0x51A -> 0x51B -> 0x51C -> 0x51D -> 0x51E -> 0x51F -> When the DMA destination address is the TCBAR, the DMA request from Timer C is connected automati- cally to the DMA. digi.com Rabbit 6000 User’s Manual...
The output of TAPR drives Timers A1 and A12. 18.2.4 Interrupts A Timer C interrupt is enabled in TCCR, and will occur whenever the count limit value is reached. The interrupt request is cleared when TCCSR is read. digi.com Rabbit 6000 User’s Manual...
A sample interrupt handler is shown below. timerC_isr:: push af ; save used registers ioi ld a, (TCCSR) ; clear the interrupt request and get status ; handle all interrupts flagged in TCCSR here pop af ; restore used registers ipres digi.com Rabbit 6000 User’s Manual...
The eight LSBs of the divider limit value for Timer C are stored. Timer C Divider High Register (TCDHR) (Address = 0x0503) Bit(s) Value Description The eight MSBs of the divider limit value for Timer C are stored. digi.com Rabbit 6000 User’s Manual...
Page 182
Timer C Reset x High Register (TCR0HR) (Address = 0x050B) (TCR1HR) (Address = 0x050F) (TCR2HR) (Address = 0x051B) (TCR3HR) (Address = 0x051F) Bit(s) Value Description Eight MSBs of the match value to reset Timer C Output x. digi.com Rabbit 6000 User’s Manual...
Page 183
Timer C register address in the sequence. Timer C Block Pointer Register (TCBPR) (Address = 0x00F9) Bit(s) Value Description These bits always read as 0x0. Five least significant bits of the Timer C register address for indirect access. digi.com Rabbit 6000 User’s Manual...
All four common SPI clock modes are supported, and the bit order of the data may be either MSB or LSB first. The transmit and receive operations are under program control as well. Figure 19.1 Serial Ports A – D Operation in Clocked Serial Mode digi.com Rabbit 6000 User’s Manual...
Page 185
NOTE: The maximum external serial clock rate for the SPI port is 1/6 of the peripheral clock rate. digi.com Rabbit 6000 User’s Manual...
0xx00000 Serial Port D Control Register SDCR 0x00F4 xx000000 Serial Port D Extended Register SDER 0x00F5 00000000 Serial Port D Divider Low Register SDDLR 0x00F6 xxxxxxxx Serial Port D Divider High Register SDDHR 0x00F7 0xxxxxxx digi.com Rabbit 6000 User’s Manual...
The data clocks for Serial Ports A – D are based on the peripheral clock and are divided by either a Timer A divider or a dedicated 15-bit divider. In either case, the overall clock divider will be the value in the selected register plus one. digi.com Rabbit 6000 User’s Manual...
Serial Port C at offset 0x0E0 • Serial Port D at offset 0x0F0 Each of them can be set as Priority 1, 2, or 3 in SxCR, where x is A – D for the four serial ports. digi.com Rabbit 6000 User’s Manual...
; interrupt done: pop af ; restore used registers ipres To transmit with a “1” address bit appended, write the data to SxAR instead of SxDR; to append a “0” address bit write to SxLR instead. digi.com Rabbit 6000 User’s Manual...
The following steps explain how to set up Serial Ports A – D for the clocked serial mode. When the inter- nal clock is selected, the Rabbit 6000 is in control of all transmit and receive operations. When an external clock is selected the other device controls all transmit and receive operation.
Page 192
; get next byte to be transmitted into Register A here ; load TX buffer with next byte, clear interrupt, and start ;transmission ioi ld (SBAR), a done: pop af ; restore used registers ipres digi.com Rabbit 6000 User’s Manual...
(Address = 0x00E2) (SDLR) (Address = 0x00F2) Bit(s) Value Description Read Returns the contents of the receive buffer. Loads the transmit buffer with an address byte, marked with a “one” Write address bit, for transmission. digi.com Rabbit 6000 User’s Manual...
Page 194
The transmitter is sending a byte. An interrupt may be generated when the transmitter clears this bit, which occurs only if the transmitter is ready to start sending another byte and the transmit buffer is empty. These bits are always zero in the asynchronous mode. digi.com Rabbit 6000 User’s Manual...
Page 195
The transmitter is sending a byte. An interrupt is generated when the transmitter clears this bit, which occurs only if the transmitter is ready to start sending another byte but the transmit buffer is empty. Normal clocked serial transmit (command per byte). digi.com Rabbit 6000 User’s Manual...
Page 196
Clocked serial mode with external clock. Clocked serial mode with internal clock. The serial port interrupt is disabled. The serial port uses Interrupt Priority 1. The serial port uses Interrupt Priority 2. The serial port uses Interrupt Priority 3. digi.com Rabbit 6000 User’s Manual...
Page 197
Continue character assembly during break to allow timing the break condition. Inhibit character assembly during break. One character (all zeros, with framing error) at start and one character (garbage) at completion. This bit is ignored in the asynchronous mode. digi.com Rabbit 6000 User’s Manual...
Page 198
(Address = 0x00F6) Bit(s) Value Description Eight LSBs of the divider that generates the serial clock for this channel. This divider is not used unless the MSB of the corresponding SxDHR is set to one. digi.com Rabbit 6000 User’s Manual...
Page 199
Enable the serial port divider, and use its output to clock the serial port. The serial port divider counts modulo n + 1 and is clocked by the peripheral clock. Seven MSBs of the divider that generates the serial clock for this channel. digi.com Rabbit 6000 User’s Manual...
(FM0), and biphase-mark (FM1). IrDA-compliant RZI encoding is also available in HDLC mode; it reduces the bit widths to ¼ the normal width, which allows the serial- port signal to be connected directly to an IrDA transceiver. digi.com Rabbit 6000 User’s Manual...
(DPLL). The timing of this synchro- nization is adjusted with each incoming transition, allowing for tracking if the two external clocks differ slightly in frequency. For more on the clock synchronization and data encoding, see Section 20.3.3. 20.1.1 Block Diagram digi.com Rabbit 6000 User’s Manual...
Serial Port F Status Register SFCR 0x00DC xx000000 Serial Port F Control Register SFER 0x00DD 00000000 Serial Port F Extended Register SFDLR 0x00DE xxxxxxxx Serial Port F Divider Low Register SFDHR 0x00DF 0xxxxxxx Serial Port F Divider High Register digi.com Rabbit 6000 User’s Manual...
• Serial Port E at offset 0x1C0 • Serial Port F at offset 0x1D0 Each of them can be set as Priority 1, 2, or 3 in SxCR, where x is E – F for the two serial ports. digi.com Rabbit 6000 User’s Manual...
(i.e., it is not addressed to this device), writing a 01 to bits 6–7 of SxCR will force the receiver back into the flag search mode. digi.com Rabbit 6000 User’s Manual...
Last Byte Bit Pattern Valid Data Bits bbbbbbb0 bbbbbb01 bbbbb011 bbbb0111 bbb01111 bb011111 b0111111 digi.com Rabbit 6000 User’s Manual...
Page 207
DPLL output clock rate must be very small, and depends on the longest possible run of zeros in the received frame. NRZI encoding guarantees at least one transition every six bits (with the inserted zeros). Since the DPLL can adjust by two digi.com Rabbit 6000 User’s Manual...
Page 208
• In the biphase-level mode this means the transition that defines the last zero of the closing flag. • In the biphase-mark and the biphase-space modes this means the transition that defines the end of the last zero of the closing flag. digi.com Rabbit 6000 User’s Manual...
Page 209
Decoding biphase-level data requires that the data be sampled at either the quarter or three-quarter point in the bit cell. The DPLL here uses the quarter point to sample the data. digi.com Rabbit 6000 User’s Manual...
(Address = 0x00CA) (SFLR) (Address = 0x00DA) Bit(s) Value Description Read Returns the contents of the receive buffer. Loads the transmit buffer with an address byte, marked with a “one” address bit, Write for transmission. digi.com Rabbit 6000 User’s Manual...
Page 211
The transmitter is sending a byte. An interrupt is generated when the transmitter clears this bit, which occurs only if the transmitter is ready to start sending another byte and the transmit buffer is empty. These bits are always zero in the asynchronous mode. digi.com Rabbit 6000 User’s Manual...
Page 212
The transmitter finished sending a closing flag. Data written in response to this interrupt will cause at least two flags to be transmitted between frames. The byte in the receiver buffer is 8 bits. The byte in the receiver buffer is less than 8 bits. digi.com Rabbit 6000 User’s Manual...
Page 213
If necessary, the receiver and transmitter clocks can be output via parallel port pins. The serial port interrupt is disabled. The serial port uses Interrupt Priority 1. The serial port uses Interrupt Priority 2. The serial port uses Interrupt Priority 3. digi.com Rabbit 6000 User’s Manual...
Page 214
Continue character assembly during break to allow timing the break condition. Inhibit character assembly during break. One character (all zeros, with framing error) at start and one character (garbage) at completion. This bit is ignored in the asynchronous mode. digi.com Rabbit 6000 User’s Manual...
Page 215
Enable the serial port divider, and use its output to clock the serial port. The serial port divider counts modulo n + 1 and is clocked by the peripheral clock. Seven MSBs of the divider that generates the serial clock for this channel. digi.com Rabbit 6000 User’s Manual...
The slave port can be used to bootstrap the processor by setting the SMODE pins appropriately. See Chapter 3 for more information on this mode. If a Rabbit is used as the master device as well as the slave, the recommended bus interface for the master to use is the External I/O bus.
Slave Port Data 0 Register SPD0R 0x0020 xxxxxxxx Slave Port Data 1 Register SPD1R 0x0021 xxxxxxxx Slave Port Data 2 Register SPD2R 0x0022 xxxxxxxx Slave Port Status Register SPSR 0x0023 00000000 Slave Port Control Register SPCR 0x0024 0xx00000 digi.com Rabbit 6000 User’s Manual...
The slave port interrupt vector is in the IIR at offset 0x080. It can be set as Priority 1, 2, or 3 by writing to SPCR. digi.com Rabbit 6000 User’s Manual...
21.3 Operation Figure 21.1 shows a typical slave port connection between a Rabbit processor as the master and two slaves. Figure 21.1 Master/Slave Port Connections digi.com Rabbit 6000 User’s Manual...
/SLVATTN (from Slave #2) Note that the slave port on the master Rabbit processor is not used; the master uses the data bus to send and receive data to the slave port data registers on the slave devices. In this setup, pins PD6 and PD7 are set up as chip selects for the two slave devices, and PE0 and PE1 are used as external interrupt inputs to monitor the /SLVATTN signals from the slaves.
(SPD1R), a ld a, (to_mas_d0) ioi ld (SPD0R), a ; this write asserts /SLVATTN ; the interrupt request is cleared by any read/write of the ; registers pop af ; restore used registers ipres digi.com Rabbit 6000 User’s Manual...
Similarly, it is possible to receive a scrambled value from a data register if it is read while being written. The protocol used should take account of this and prevent it from occurring (the protocol described above guarantees this will not occur). digi.com Rabbit 6000 User’s Manual...
/SWR High to /SRD Low Setup — SRD) Time Tw(SWR) /SWR Low Pulse Width — Tsu(SD) SD Setup Time — Th(SD) SD Hold Time — Tsu(SRD – /SRD High to /SWR Low Setup — SWR) Time digi.com Rabbit 6000 User’s Manual...
Page 224
Figure 21.2 shows the sequence of events when the master reads/writes the slave port registers. Figure 21.2 Slave Port R/W Timing Diagram digi.com Rabbit 6000 User’s Manual...
Slave port write byte 2 is full. Slave port write byte 1 is empty. Slave port write byte 1 is full. Slave port write byte 0 is empty. Slave port write byte 0 is full. digi.com Rabbit 6000 User’s Manual...
Page 226
Parallel Port B[7:0] is used for the address bus. Slave port interrupts are disabled. Slave port interrupts use Interrupt Priority 1. Slave port interrupts use Interrupt Priority 2. Slave port interrupts use Interrupt Priority 3. digi.com Rabbit 6000 User’s Manual...
I/O pin or divide the peripheral clock by a value between 2 and 256. The Rabbit 6000 also has a dedicated 1 megasamples/s, 12-bit A/D converter with an 8-way multiplexer, and is described in Chapter 23.
Page 228
-0.2V to 1.45V Compliance Range Operating Current Active 13 mA @ 2.5 V Standby 0.7 mA @ 2.5V Power down < 1 µA @ 2.5 V Nonlinearity ±0.5 LSB typ. Differential (DNL) ±1 LSB typ. Integral (INL) digi.com Rabbit 6000 User’s Manual...
Page 229
0.1 x VCC33A to 0.9 x VCC33A Single-ended Wi-Fi slow A/D converter Operating Current Active 5 mA @ 3.3 V Standby < 10 µA @ 3.3 V Nonlinearity ±0.8 LSB typ. Differential (DNL) ±2 LSB typ. Integral (INL) digi.com Rabbit 6000 User’s Manual...
256, or by a clock input on PD4, PD5, or PD6, depending on the component. Exercise care when select- ing the clock to keep the data rate below the maximum sample rate of the component you are configuring. digi.com Rabbit 6000 User’s Manual...
4. For faster update, an 8-bit value can be obtained by only reading A2MR. 5. To reduce power consumption, the slow A/D converter can be put into a sleep mode by writing to A2CR. digi.com Rabbit 6000 User’s Manual...
— we obtained good results with ferrite beads rated at 120 at 100 MHz. Also note that a common ground plane is used; better results may be expected if a separate analog ground plane is laid out. Figure 22.1 Sample Fast A/D Converter Circuit Figure 22.2 Sample Fast D/A Converter Circuit digi.com Rabbit 6000 User’s Manual...
Analog Component 0 Q MSB Register (A0QMR) (Address = 0x0803) Bit(s) Value Description The current value of the eight most-significant bits of the fast A/D Read converter are returned. Write Writes to this register are ignored. digi.com Rabbit 6000 User’s Manual...
Page 236
D/A converter until the Write corresponding MSB register is written to guarantee that the full 10 bits are valid. Read These bits always return zeros when read. These bits are ignored and will always return zeros when read. digi.com Rabbit 6000 User’s Manual...
Page 237
Fast D/A converter uses 2’s compliment coding. Fast D/A converter uses binary encoding. Fast D/A converter powered down. Fast D/A converter in sleep mode. This bit combination is reserved and should not be used. Fast D/A converter active. digi.com Rabbit 6000 User’s Manual...
Page 238
Analog Component 2 MSB Register (A2MR) (Address = 0x0821) Bit(s) Value Description The current value of the eight most-significant bits of the slow A/D Read converter are returned. Write Writes to this register are ignored. digi.com Rabbit 6000 User’s Manual...
Page 239
Conversion not complete. (Read- Conversion complete. only) No effect on slow A/D converter. (Write- Start conversion. only) This bit is reserved and should be written as zero. Slow A/D converter in sleep mode. Slow A/D converter active. digi.com Rabbit 6000 User’s Manual...
ONVERTER 23.1 Overview The Rabbit 6000 has a 1 megasamples/s, 12-bit A/D converter with a separate 8-channel multiplexer avail- able at all times. Each individual multiplexer channel can be read separately. Note that use of the multiplexer reduces the effective accuracy to 11 bits.
The A/D converter can be clocked by the peripheral clock divided by 2, 4, 8, 16, 32, 64, 128, or 256, or by a clock input on PD4, depending on the value set in ADCCR. Exercise care when selecting the clock to keep the data rate below the maximum sample rate of the component you are configuring. digi.com Rabbit 6000 User’s Manual...
The following actions occur within the interrupt service routine. • Read ADCLR to get the 4 least-significant bits of the result and clear the interrupt flag. • Read ADCMR to get the 8 most-significant bits of the result. digi.com Rabbit 6000 User’s Manual...
A sample circuit is shown below for the analog components. For more information about possible post- multiplexer/pre-A/D converter filtering circuits, please contact your sales representative at Digi International. Figure 23.1 Sample Multiplexed A/D Converter Circuit digi.com Rabbit 6000 User’s Manual...
(Address = 0x0541) Bit(s) Value Description The current values of the 8 most-significant bits of the multiplexed A/D Read converter channel are returned. The channel is selected in ADCCSR. Write Writes to this register are ignored. digi.com Rabbit 6000 User’s Manual...
Page 246
No conversion start. This bit always returns zero during read. Start conversion command, using the accompanying channel selection. This command is ignored while in the continuous conversion mode. This command can by issued while another conversion is running for maximum throughput. digi.com Rabbit 6000 User’s Manual...
Page 248
(ADC6MR) (Address = 0x055D) (ADC7MR) (Address = 0x055F) Bit(s) Value Description The current values of the 8 most-significant bits of the multiplexed A/D Read converter channel are returned. Write Writes to this register are ignored. digi.com Rabbit 6000 User’s Manual...
HANNELS 24.1 Overview There are 16 independent DMA channels on the Rabbit 6000. All 16 channels are identical, and are capable of transferring data between memory, external I/O, or internal I/O. The priority among the channels can be either fixed or rotating, and the DMA use of the external bus can be limited to guarantee interrupt latency or CPU throughput.
Page 250
“initial address” that points to the first buffer descriptor in memory and allows the DMA channel to rewind itself automatically in the case of a transmit retry by the network port. Each buffer descriptor contains a digi.com Rabbit 6000 User’s Manual...
Page 251
DMA activ- ity during execution. Note that a simultaneous interrupt request and DMA transfer request will be resolved in favor of the DMA transfer request. digi.com Rabbit 6000 User’s Manual...
Normally all DMA transfers are flow-through, meaning that the DMA does separate read and write trans- actions to transfer the data. However, the Rabbit 6000 DMA also contains dedicated buses to support fly- by transactions to and from certain internal I/O addresses on the Ethernet, Wi-Fi, and USB peripherals. A fly-by transfer looks like a single transaction on the internal and external bus, where data are transferred directly to/from the peripheral from/to a memory device.
The DMA interrupt vectors are in the EIR starting at offsets 0x080–0x0F0 for DMA Channels 0 to 7, and 0x180–0x1F0 for DMA Channels 8 to 15. They can be set as Priority 1, 2, or 3. digi.com Rabbit 6000 User’s Manual...
DMR1CR. Make sure that the pin selected is set up as an input. Note that this enable will be logi- cal-ANDed to any internal DMA enables if the DMA transfer is to/from an internal peripheral. digi.com Rabbit 6000 User’s Manual...
4 of DyCR set. 24.3.2 Example ISR A sample interrupt handler is shown below. dma_isr:: push af ; do something with the data in the current buffer ; the interrupt request is automatically cleared pop af ipres digi.com Rabbit 6000 User’s Manual...
Table 24-4 shows the effective number of clock cycles required per burst, assuming a single DMA channel transfer, 8-bit memory, and no wait states. Access via 16-bit memory would provide up to twice the throughput, depending on the address alignment. digi.com Rabbit 6000 User’s Manual...
It is possible to control the priority between separate DMA channels. There are three channel-priority options in the Rabbit 6000. The first is fixed priority after every byte where the priority of each channel is equal to its number, i.e., if both DMA Channels 3 and 4 have a pending transfer request, DMA Channel 4 will always be enabled first.
By using these options in various ways, the Rabbit 6000 DMA can be operated in a number of conventional DMA modes. The most common options are described here; others are certainly possible by different use of the available linking methods.
Page 261
A linked list is similar to a buffer array, except that 16-byte descriptors are used and the descriptors are not necessarily adjacent in memory. The advantage of this mode is the ability to spread descriptors. digi.com Rabbit 6000 User’s Manual...
Page 262
(which can be located anywhere in memory). This method could be useful where a message is broken down into separate transfers, but entire messages could be scattered/gathered from anywhere in memory. digi.com Rabbit 6000 User’s Manual...
DMA to update the settings of these peripherals at some desired rate. This allows complex PWM waveforms to be generated by using the DMA timed request to update the PWM duty cycles at regular intervals. digi.com Rabbit 6000 User’s Manual...
The corresponding DMA channel (7-0) is enabled and active. These bits are set (rd-only) by the Start command and remain set until the completion of the last buffer or receipt of a Halt command. digi.com Rabbit 6000 User’s Manual...
Page 265
(Address = 0x0121) Bit(s) Value Description No effect on the corresponding DMA channel (15–8). Halt the corresponding DMA channel (15–8). The DMA registers retain the current state, and the DMA can be restarted using DMCSMR. digi.com Rabbit 6000 User’s Manual...
Page 266
DMA transfers at Priority 2. No DMA transfers while CPU operates at Priority 3. DMA transfers at Priority 3. DMA transfers at any time. DMA interrupts are disabled. DMA interrupts use Interrupt Priority 1. DMA interrupts use Interrupt Priority 2. DMA interrupts use Interrupt Priority 3. digi.com Rabbit 6000 User’s Manual...
Page 267
Minimum 16 clocks between bursts. Minimum 24 clocks between bursts. Minimum 32 clocks between bursts. Minimum 64 clocks between bursts. Minimum 128 clocks between bursts. Minimum 256 clocks between bursts. Minimum 512 clocks between bursts. digi.com Rabbit 6000 User’s Manual...
Page 270
Timed DMA request supplied to DMA Channel 15. DMA Timed Request Divider Low Register (DTRDLR) (Address = 0x0116) Bit(s) Value Description The eight LSBs of the limit value for the DMA timed request timer are Write stored. digi.com Rabbit 6000 User’s Manual...
Page 271
Maximum four transfers per burst. Maximum eight transfers per burst. Maximum sixteen transfers per burst. Maximum thirty-two transfers per burst. Maximum sixty-four transfers per burst. These bits are reserved and should be written with zeros. digi.com Rabbit 6000 User’s Manual...
Page 272
(Address = 0x0928) (D11TBR) (Address = 0x0938) (D12TBR) (Address = 0x0948) (D13TBR) (Address = 0x0958) (D14TBR) (Address = 0x0968) (D15TBR) (Address = 0x0978) Bit(s) Value Description Byte value that, if matched, will terminate a buffer. digi.com Rabbit 6000 User’s Manual...
Page 273
A zero in a bit position disables the corresponding bit from contributing to the termination condition. A value of all zeros in this register disables the termination-byte match feature. digi.com Rabbit 6000 User’s Manual...
Page 274
(D11BU1R) (Address = 0x093B) (D12BU1R) (Address = 0x094B) (D13BU1R) (Address = 0x095B) (D14BU1R) (Address = 0x096B) (D15BU1R) (Address = 0x097B) Bit(s) Value Description Bits 15:8 of the buffer unused-length value are stored in this register. digi.com Rabbit 6000 User’s Manual...
Page 275
(Address = 0x092D) (D11IA1R) (Address = 0x093D) (D12IA1R) (Address = 0x094D) (D13IA1R) (Address = 0x095D) (D14IA1R) (Address = 0x096D) (D15IA1R) (Address = 0x097D) Bit(s) Value Description Bits 15:8 of the initial address are stored in this register. digi.com Rabbit 6000 User’s Manual...
Page 276
(Address = 0x092E) (D11IA2R) (Address = 0x093E) (D12IA2R) (Address = 0x094E) (D13IA2R) (Address = 0x095E) (D14IA2R) (Address = 0x096E) (D15IA2R) (Address = 0x097E) Bit(s) Value Description Bits 23:16 of the initial address are stored in this register. digi.com Rabbit 6000 User’s Manual...
Page 277
Disconnect source DMA request. DMA will transfer full buffer size. Normal source address. Source address fixed, independent of type. Auto-connect destination DMA request. Disconnect destination DMA request (full buffer transfer). Normal destination address. Destination address fixed, independent of type. digi.com Rabbit 6000 User’s Manual...
Page 278
Source address is memory (three-byte) address, auto-increment. Destination address is fixed internal I/O (two-byte) address. Destination address is fixed external I/O (two-byte) address. Destination address is memory (three-byte) address, auto-decrement. Destination address is memory (three-byte) address, auto-increment. digi.com Rabbit 6000 User’s Manual...
Page 279
(D11L1R) (Address = 0x09B3) (D12L1R) (Address = 0x09C3) (D13L1R) (Address = 0x09D3) (D14L1R) (Address = 0x09E3) (D15L1R) (Address = 0x09F3) Bit(s) Value Description Bits 15:8 of the buffer length value are stored in this register. digi.com Rabbit 6000 User’s Manual...
Page 280
(Address = 0x09A5) (D11SA1R) (Address = 0x09B5) (D12SA1R) (Address = 0x09C5) (D13SA1R) (Address = 0x09D5) (D14SA1R) (Address = 0x09E5) (D15SA1R) (Address = 0x09F5) Bit(s) Value Description Bits 15:8 of the source address are stored in this register. digi.com Rabbit 6000 User’s Manual...
Page 281
(Address = 0x09A8) (D11DA0R) (Address = 0x09B8) (D12DA0R) (Address = 0x09C8) (D13DA0R) (Address = 0x09D8) (D14DA0R) (Address = 0x09E8) (D15DA0R) (Address = 0x09F8) Bit(s) Value Description Bits 7:0 of the destination address are stored in this register. digi.com Rabbit 6000 User’s Manual...
Page 282
(Address = 0x09AA) (D11DA2R) (Address = 0x09BA) (D12DA2R) (Address = 0x09CA) (D13DA2R) (Address = 0x09DA) (D14DA2R) (Address = 0x09EA) (D15DA2R) (Address = 0x09FA) Bit(s) Value Description Bits 23:16 of the destination address are stored in this register. digi.com Rabbit 6000 User’s Manual...
Page 283
(Address = 0x09AD) (D11LA1R) (Address = 0x09BD) (D12LA1R) (Address = 0x09CD) (D13LA1R) (Address = 0x09DD) (D14LA1R) (Address = 0x09ED) (D15LA1R) (Address = 0x09FD) Bit(s) Value Description Bits 15:8 of the link address are stored in this register. digi.com Rabbit 6000 User’s Manual...
Page 284
(Address = 0x09AE) (D11LA2R) (Address = 0x09BE) (D12LA2R) (Address = 0x09CE) (D13LA2R) (Address = 0x09DE) (D14LA2R) (Address = 0x09EE) (D15LA2R) (Address = 0x09FE) Bit(s) Value Description Bits 23:16 of the link address are stored in this register. digi.com Rabbit 6000 User’s Manual...
Character assembly begins at this point, and each byte is transferred to the receive FIFO. However, no interrupt or DMA request will occur until after the first six bytes of the frame have been received and checked for an address match. digi.com Rabbit 6000 User’s Manual...
Page 286
There is a dedicated 2.5 V regulator in the Rabbit 6000 to power the Ethernet PHY. Several pins come off the chip to allow for bypass capacitors. The regulator is disabled if Network Port B is disabled.
Network Port B Direct MII Register NBDMR 0x022A xxxxxxxx Network Port B Configuration 0 Register NBCF0R 0x0240 00000000 Network Port B Configuration 1 Register NBCF1R 0x0241 00000000 Network Port B Configuration 2 Register NBCF2R 0x0242 00000000 digi.com Rabbit 6000 User’s Manual...
Page 289
Network Port B Station Address 2 Register NBSA2R 0x0262 00000000 Network Port B Station Address 3 Register NBSA3R 0x0263 00000000 Network Port B Station Address 4 Register NBSA4R 0x0264 00000000 Network Port B Station Address 5 Register NBSA5R 0x0265 00000000 digi.com Rabbit 6000 User’s Manual...
For optimal power reduction, the XTL_25MO pin should be attached to the ETH_2.5V signal if the external 25 MHz clock interface is not used. 25.2.3 Other Registers Register Function Select shared or external 25 MHz clock. MSCR Reset PHY. ENPR Enable 10/100 Ethernet functionality. digi.com Rabbit 6000 User’s Manual...
3. Write the interrupt vector for the interrupt service routine to the external interrupt table. 4. Select the desired interrupts and interrupt priority by writing to NBCSR. 5. Select the MII interface settings by writing to NBMCFR, NBMRAR, and NBMPAR. digi.com Rabbit 6000 User’s Manual...
4. The packet transmission will proceed automatically when data come in. When the DMA trans- fer is complete, the DMA interrupt can be used to start the packet processing. The status of the received packet is appended to the received data. digi.com Rabbit 6000 User’s Manual...
; handle transmit pause pop af ipres A sample packet receive interrupt handler is shown below. dma_eth_rx_isr:: ; interrupt is automatically cleared ; check status bytes appended to packet just received ipres digi.com Rabbit 6000 User’s Manual...
Frame transmission not too long. Frame transmission too long. No excessive defers. Frame transmission deferred excessively. No collisions. Frame transmission encountered at least one collision. No late collisions. Frame transmission encountered a late collision (later than one slot time). digi.com Rabbit 6000 User’s Manual...
Page 296
This bit is reserved and will always read as zero. The Network Port interrupt is disabled. The Network Port uses Interrupt Priority 1. The Network Port uses Interrupt Priority 2. The Network Port uses Interrupt Priority 3. digi.com Rabbit 6000 User’s Manual...
Page 297
(Address = 0x0208) Bit(s) Value Description LSB of parameter sent in PAUSE control frame. Network Port B Transmit Pause MSB Register (NBTPMR) (Address = 0x0209) Bit(s) Value Description MSB of parameter sent in PAUSE control frame. digi.com Rabbit 6000 User’s Manual...
Page 298
Receive frames with broadcast address accepted Receive frames with multicast addresses ignored. Receive frames with multicast addresses accepted if passing hashing filter. Receive frames with mismatched physical addresses are ignored. Receive frames with any physical address accepted. Promiscuous mode. digi.com Rabbit 6000 User’s Manual...
Page 299
CRC are used as an index into this 64-bit Write table. If the corresponding bit is zero, the frame is discarded. If the corresponding bit is one, the frame is accepted. digi.com Rabbit 6000 User’s Manual...
Page 300
These bits are ignored and will always return zeros when read. No operation. Reset MAC control sublayer/receive domain logic. No operation. Reset receiver. No operation. Reset MAC control sublayer/transmit domain logic. No operation. Reset transmitter. digi.com Rabbit 6000 User’s Manual...
Page 301
Enable immediate retransmit (no back-off). These bits are ignored and will always return zeros when read. Disable preamble length limit checking. Enable preamble length limit checking (12 bytes or less only). Disable preamble checking. Enable preamble checking. digi.com Rabbit 6000 User’s Manual...
Page 302
Network Port B Collision Window Register (NBCWR) (Address = 0x0249) Bit(s) Value Description These bits are ignored and will always return zero when read. Collision window (slot time). Default (and value specified by 802.3) is 0x37. digi.com Rabbit 6000 User’s Manual...
Page 303
MII Management Clock is system clock divided by 20. MII Management Clock is system clock divided by 40. MII Management Clock is system clock divided by 80. Enable MII frame preambles. Disable MII frame preambles. Disable MII scan function. Enable MII scan function. digi.com Rabbit 6000 User’s Manual...
Page 304
Value Description These bits are ignored and will always return zeros when read. MII PHY address. Network Port B MII Write LSB Register (NBMWLR) (Address = 0x0256) Bit(s) Value Description LSB of MII write data. digi.com Rabbit 6000 User’s Manual...
Page 305
MII read data valid. MII read data not valid. MII not busy scanning. MII scan operation in progress. MII not busy performing a read or write cycle. MII busy performing a read or write cycle. digi.com Rabbit 6000 User’s Manual...
Page 307
This bit combination is reserved and should not be used. FIMA clock from system PLL output. Response to this setting may be delayed until the PLL output is stable (roughly 200 µs after enabling the system PLL, uses 32 kHz clock to generate delay). digi.com Rabbit 6000 User’s Manual...
Page 308
Network Port D interrupts use Interrupt Priority 3. Network Port C interrupts are disabled. Network Port C interrupts use Interrupt Priority 1. Network Port C interrupts use Interrupt Priority 2. Network Port C interrupts use Interrupt Priority 3. digi.com Rabbit 6000 User’s Manual...
Up to four expanded keys can be stored in the peripheral at one time. There is a dedicated 2.5 V regulator in the Rabbit 6000 to power the Wi-Fi D/A converter. Several pins come off the chip to allow for bypass capacitors. The regulator is disabled if Network Port C is disabled.
The interface for Wi-Fi peripheral does not run at the CPU frequency, but instead uses the 80MHz Wi-Fi clock. This means that Wait states are usually necessary when accessing it from the Rabbit 6000. The Net- work Port C CPU Wait Register (NCCWR) provides a five-bit field for selecting Wait states for CPU accesses.
Although this 65nS cycle time limits the bus bandwidth of the Wi-Fi peripheral to 15MByte/sec, the 2K buffers for both receive and transmit data mean that this limit does not affect overall Wi-Fi throughput. 26.3.1 Other Registers Register Function ENPR Enable Wi-Fi functionality. MSSR Select crystal or external 20 MHz clock. digi.com Rabbit 6000 User’s Manual...
2, or 3 by writing to ENPR. 26.4 Operation At the present time, the wireless peripheral is intended to be used only in Rabbit-branded and other prod- ucts offered by Digi International. Dynamic C has the necessary drivers. Customers wishing to incorporate the wireless peripheral in their own design should contact the sales representative at Digi International for more information.
27. USB H 27.1 Overview Network Port D implements a USB 2.0 compliant host interface and PHY. The USB host in the Rabbit 6000 supports both full-speed (12 Mbit/s) and low-speed (1.5 Mbit/s) operation. It conforms to the Open Host Controller Interface (OHCI) specification, and is fully interfaced with the Rabbit 6000 DMA. Both receive and transmit have a dedicated 2048-byte FIFO.
The USB peripheral has a fixed 250ns access time, so wait states are usually necessary when accessing it from the Rabbit 6000. The required number of wait states can be determined by dividing 250ns by the period of the main clock and rounding up. NDWR is used to select between 0-63 wait states. The 250nS cycle time for the USB peripheral comes from the 48MHz USB clock (it is twelve cycles of this clock per access).
The network port interrupt vector is located in the IIR at offset 0x110. It can be set as Priority 1, 2, or 3 by writing to ENPR. Details about what events cause interrupts are available in the OHCI specification. digi.com Rabbit 6000 User’s Manual...
7. Enable Network Port D and select the interrupt priority by writing to ENPR. 27.3.3 Transmit and Receive Refer to the OHCI specification for transmission and reception operation. 27.3.4 Handling Interrupts Refer to the OHCI specification for details on handling interrupts. digi.com Rabbit 6000 User’s Manual...
Network Port D (internal I/O page 0x0B) reads and writes. That is, 0x00 selects 63 wait states and 0x3F selects zero wait states. Network Port D has a minimum bus cycle time of 250 ns. digi.com Rabbit 6000 User’s Manual...
The capture counter can synchronized with Timer B outputs to load parallel port output registers. This makes it possible to generate an output signal precisely synchronized with an input signal. digi.com Rabbit 6000 User’s Manual...
Because of this, there is some delay between the input transition and when an interrupt is requested, as shown below. The status bits in ICSxR are set coincident with the interrupt request and are reset when read from the ICSxR. digi.com Rabbit 6000 User’s Manual...
(ICCSR) ; clear the interrupt request and get status ; determine which interrupts have occurred ; if rollover, perform any necessary software counter adjustments here ; read counter values pop af ipres digi.com Rabbit 6000 User’s Manual...
5. Reading the latch registers at any time after an initial start pulse is received will return the current count. Until an initial start pulse is received, the latch registers will have a residual value. digi.com Rabbit 6000 User’s Manual...
Disable Input Capture 2 interrupt on roll-over to all zeros. Enable Input Capture 2 interrupt on roll-over to all zeros. Disable Input Capture 1 interrupt on roll-over to all zeros. Enable Input Capture 1 interrupt on roll-over to all zeros. digi.com Rabbit 6000 User’s Manual...
Page 329
These bits are reserved and should be written with zero. Input Capture interrupts are disabled. Input Capture interrupt use Interrupt Priority 1. Input Capture interrupt use Interrupt Priority 2. Input Capture interrupt use Interrupt Priority 3. digi.com Rabbit 6000 User’s Manual...
Page 330
Ignore the ending input. These two bits are ignored in Counter operation. The Stop condition is the rising edge of the ending input. The Stop condition is the falling edge of the ending input. The Stop condition is either edge of the ending input. digi.com Rabbit 6000 User’s Manual...
Page 331
MSB of the count. In Counter operation, if no latching condition is specified the value written to this register is returned. Write The eight LSBs of the match value for counter mode are stored. digi.com Rabbit 6000 User’s Manual...
Page 332
The most significant eight bits of the latched Input capture count are Read returned. In Counter operation, if no latching condition is specified the value written to this register is returned. Write The eight MSBs of the match value for counter mode are stored. digi.com Rabbit 6000 User’s Manual...
ECODER 29.1 Overview The Rabbit 6000 has a two-channel Quadrature Decoder that accepts inputs via specific pins on Parallel Ports D and E. Each channel has two inputs, the in-phase (I) input and the 90 degree or quadrature-phase (Q) input. An 8 or 10-bit up/down counter counts encoder steps in the forward and backward directions, and provides interrupts when the count goes from 0x00 to 0xFF (or 0x3FF) or from 0xFF (or 0x3FF) to 0x00.
Page 334
0x00, or when the counter decrements from 0x00 to 0xFF (0x3FF in 10-bit mode). The timing for the interrupt is shown below. Note that the status bits in the QDCSR are set coincident with the inter- rupt, and the interrupt and status bits are cleared by reading the QDCSR. digi.com Rabbit 6000 User’s Manual...
The Quadrature Decoder interrupt vector is in the IIR at offset 0x190. It can be set as Priority 1, 2, or 3. The status bits in the QDCSR are set coincident with the interrupt request and are reset when QDCSR is read. digi.com Rabbit 6000 User’s Manual...
; save used registers ioi ld a, (QDCSR) ; clear the interrupt request and get status ; perform any necessary software counter adjustments here ; read current counter value(s) pop af ; restore used registers ipres digi.com Rabbit 6000 User’s Manual...
This bit is cleared by a read of this register. This bit always reads as zero. No effect on the Quadrature Decoder 1. (Write- Reset Quadrature Decoder 1 to all zeros, without causing an interrupt. only) digi.com Rabbit 6000 User’s Manual...
Page 339
(Address = 0x0095) (QDC2HR) (Address = 0x0097) Bit(s) Value Description Read These bits are reserved and will always read as zeros. The current value of bits 9-8 of the Quadrature Decoder counter is Read reported. digi.com Rabbit 6000 User’s Manual...
These options provide support for driving servos and to generate audio signals. The setup for this interrupt is done in the PWL0R and PWL1R registers. The timing is shown below. digi.com Rabbit 6000 User’s Manual...
Page 342
Operation in the spread mode reduces the filtering requirements on the PWM output in most cases. The DMA channels on the Rabbit 6000 are designed to work with fixed I/O addresses. To allow DMA control of the PWM, a separate PWM Block Access Register (PWBAR) and PWM Block Pointer Register (PWBPR) are available.
This option is selected in PWL1R. The interrupt request is cleared by a write to any PWM register. The PWM interrupt vector is in the IIR at offset 0x170. It can be set as Priority 1, 2, or 3 by writing to PWL0R. digi.com Rabbit 6000 User’s Manual...
; load next PWM value into HL here ioi ld (PWL0R), hl ; update the PWM value in PWL0R and PWM0R ; note that interrupt request is also ; cleared by register write above pop af ; restore used registers ipres digi.com Rabbit 6000 User’s Manual...
Suppress PWM interrupts seven out of eight iterations of PWM counter. Suppress PWM interrupts three out of four iterations of PWM counter. Suppress PWM interrupts one out of two iterations of PWM counter. PWM output High for single block. Spread PWM output throughout the cycle. digi.com Rabbit 6000 User’s Manual...
Page 347
PWM register address in the sequence. PWM Block Pointer Register (PWBPR) (Address = 0x00E9) Bit(s) Value Description These bits are reserved. Three least significant bits of the PWM register address for indirect access. digi.com Rabbit 6000 User’s Manual...
31.1 Overview The Rabbit 6000’s external I/O space consists of 64KB that is accessed by prefixing a read or write instruc- tion with the IOE instruction. These accesses can go onto the memory bus or onto the external I/O bus (described below).
31.1.2 I/O Strobes There are eight I/O strobes available in the Rabbit 6000. Each has a separate 8KB address range that can be enabled as a chip select, read strobe, write strobe, or a read/write strobe. The number of wait states can be set to 1, 3, 7, or 15, and the signal can be active high or low.
I/O banks. The external device holds this signal (active high or low) when it is busy and cannot accept a transaction. The Rabbit 6000 will then hold midway through the transaction until either the handshake signal goes inactive or a timeout occurs. The timeout can be defined anywhere from 32 to 2048 clocks.
3. Select the handshake timeout value by writing to IHTR. Once enabled, the handshake will be checked for every external I/O transaction in a bank that was enabled in IHSR. After these transactions, the program should check for a timeout by reading IHTR. digi.com Rabbit 6000 User’s Manual...
Enable I/O handshake for I/O Bank 2. Disable I/O handshake for I/O Bank 1. Enable I/O handshake for I/O Bank 1. Disable I/O handshake for I/O Bank 0. Enable I/O handshake for I/O Bank 0. digi.com Rabbit 6000 User’s Manual...
Page 356
Time constant for the I/O handshake timeout counter. This time constant (times 32) selects the number of peripheral clock cycles that the I/O handshake input may delay completion of an I/O transaction before the I/O transaction will complete automatically. digi.com Rabbit 6000 User’s Manual...
Page 357
Shorten read strobe by one clock cycle and write strobe by one-half clock cycle. Transaction length remains the same. This guarantees one clock cycle hold time for both address and data for I/O transactions. Use I/O bus if enabled in SPCR. Always use memory data bus. digi.com Rabbit 6000 User’s Manual...
Page 358
I/O transactions use the CPU clock divided by 2. I/O transactions use the CPU clock divided by 4. I/O transactions use the CPU clock divided by 8. I/O transactions use the CPU clock divided by 16. digi.com Rabbit 6000 User’s Manual...
Page 359
Parallel Port B[7:0] is used for the address bus. Slave port interrupts are disabled. Slave port interrupts use Interrupt Priority 1. Slave port interrupts use Interrupt Priority 2. Slave port interrupts use Interrupt Priority 3. digi.com Rabbit 6000 User’s Manual...
REAKPOINTS 32.1 Overview The Rabbit 6000 contains seven hardware breakpoints to support debugging. Each hardware breakpoint consists of a 24-bit address match register and a 24-bit mask register. A breakpoint can be generated on an address match for execution, data read, data write, or any combination thereof. The mask register serves to mask off selected bits from the address compare.
The breakpoint interrupt vector is in the EIR at offset 0x140; note that this is a different vector address than in previous Rabbit processors. It is always set to Interrupt Priority 3, and is the highest priority inter- rupt; if two Interrupt Priority 3 vectors are pending, the breakpoint interrupt will always be handled first.
; reenable any breakpoints by writing to BDCR pop af ipres ; you should exit the handler with these two instruc- tions ; if you reenabled breakpoints, otherwise another breakpoint ; interrupt may occur inside the ISR digi.com Rabbit 6000 User’s Manual...
Breakpoint x on User Mode write address match. Breakpoint x on System Mode write address match. Breakpoint x on System or User Mode write address match. These bits are reserved and should be written with zeros. digi.com Rabbit 6000 User’s Manual...
Page 367
(Address = 0x033A) (B4M2R) (Address = 0x034A) (B5M2R) (Address = 0x036A) (B6M2R) (Address = 0x037A) Bit(s) Value Description Breakpoint x Mask [23:16]. (A one in a bit position inhibits the address compare for that bit position. digi.com Rabbit 6000 User’s Manual...
Flexible Interface Module functionality is available on Parallel Ports F and G. Other Rabbit parallel ports can be accessed to a limited extent using port override modes avail- able on the Flexible Interface Module. If the override is enabled, the entire parallel port is then controlled by the FIM.
The Flexible Interface Modules have two clocking options, selectable in the Master System Configuration Register. One option is to use the main clock output, just like the Rabbit processor; the other is to use the output of the main PLL.
33.4.1 Handling Interrupts The interrupt receive/acknowledge handshaking between the Flexible Interface Module and the Rabbit 6000 has to be handled manually for both the Flexible Interface Module interrupting the Rabbit and vice versa. Sample code for each is shown below.
Page 373
33.4.1.2 Flexible Interface Module Interrupt Request to Rabbit FIM_A_ISR: push af ; save registers push bc ioi ld a, (FAIOR) ; get interrupt value that FIMA sent ld a, 0x80 ioi ld (FAIIR), a ; set acknowledge bit for FIMA ld b, 255 ;...
Page 375
These bits are reserved and should always be written with zeros. Flexible Interface Module interrupt disabled. Flexible Interface Module interrupt uses priority 1. Flexible Interface Module interrupt uses priority 2. Flexible Interface Module interrupt uses priority 3. digi.com Rabbit 6000 User’s Manual...
Page 376
Flexible Interface Module processor. Bytes 0–7 are mapped to data memory addresses 0x10–0x17, and bytes 8–15 are mapped to data memory addresses 0x90–0x97. These registers are read-write for the Rabbit, but read-only for the FIM. FIMA Port Expansion x Register (FAPE0R)
Page 377
Returns the contents of the receive FIFO buffer. FIMB Rx Status FIFO Register (FBRSFR) (Address = 0x7001) Bit(s) Value Description This bit is reserved and always returns zero. read Returns the contents of the receive status FIFO buffer. digi.com Rabbit 6000 User’s Manual...
Page 378
The Flexible Interface Module processor will wait for the main processor to set bit 7 of the Inbound Interrupt Register before clearing the interrupt code. The code values are user-defined. digi.com Rabbit 6000 User’s Manual...
Page 379
These bits are reserved and should always be written with zeros. Flexible Interface Module interrupt disabled. Flexible Interface Module interrupt uses priority 1. Flexible Interface Module interrupt uses priority 2. Flexible Interface Module interrupt uses priority 3. digi.com Rabbit 6000 User’s Manual...
Page 380
User-defined status bytes that are mapped to the data memory of the Flexible Interface Module processor. Bytes 0–7 are mapped to data (Read- memory addresses 0x18–0x1F, and bytes 8–15 are mapped to data only) memory addresses 0x98–0x9F. digi.com Rabbit 6000 User’s Manual...
Page 381
This bit is reserved and should be written with zero. no reset of Flexible Interface Module A. Reads always return zero. (wr-only) Reset Flexible interface Module A. This bit holds FIMA in Reset while set. digi.com Rabbit 6000 User’s Manual...
Page 382
Override Port C operation (FIM A or FIM B controls the port). Normal operation for Port B. Override Port B operation (FIM A or FIM B controls the port). Normal operation for Port A. Override Port A operation (FIM A or FIM B controls the port). digi.com Rabbit 6000 User’s Manual...
ORRECTION 34.1 Overview The Rabbit 6000 contains a hardware-assist Error Check and Correction (ECC) peripheral to aid in gener- ating and checking various check codes. It consists of a 32-bit counter and the required circuitry for the operations listed in Table 34-1.
2. If desired, the initial state of the CRC counter can be set by writing to ECWxR. 3. Start writing data to ECDxR. 4. When all data have been written for that block, read the CRC counter from ECDxR for normal bit order, or ECWxR for reverse bit order. digi.com Rabbit 6000 User’s Manual...
(Address = 0x05C2) Bit(s) Value Description Read LP/CRC bits 23–16. Write Data byte for ECC/CRC calculation. ECC Data 3 Register (ECD3R) (Address = 0x05C3) Bit(s) Value Description Read LP/CRC bits 31–24. Write Data byte for ECC/CRC calculation. digi.com Rabbit 6000 User’s Manual...
Page 387
These bits are reserved and should be written with zeros. Read {00, CP value}. Write {00, CP set value} ECC CP Read Shifted Register (ECPSR) (Address = 0x05C6) Bit(s) Value Description Read {CP value, 00}. Write {00, CP set value}. digi.com Rabbit 6000 User’s Manual...
Page 388
Set bits 7–0 o f the ECC counter. ECC Count 1 Register (ECC1R) (Address = 0x05CC) Bit(s) Value Description Read Returns bits 15–8 of the ECC counter. Write Set bits 15–8 o f the ECC counter. digi.com Rabbit 6000 User’s Manual...
35. I ERIPHERAL ERIAL 35.1 Overview Serial Port G in the Rabbit 6000 is a fully featured I C peripheral. It supports the following features of the Phillips I C standard: • Master or slave mode • Standard (100 kbit/s) and fast (400 kbit/s) clock modes •...
Serial Port G Timing Control Registers SGTC2R 0x0596 00000000 SGTC3R 0x0597 00000000 SGSBM0R 0x0598 00000011 SGSBM1R 0x0599 00000000 Serial Port G Bus Monitor Registers SGSBM2R 0x059A 00000000 SGSBM3R 0x059B 00000000 Serial Port G Main Control Register SGMCR 0x059F 00000000 digi.com Rabbit 6000 User’s Manual...
(master mode) The interrupt selection is in SGC1R. The I C interrupt vector is located in the IIR at offset 0x150. It can be set as Priority 1, 2, or 3 in SGMCR. digi.com Rabbit 6000 User’s Manual...
7. Monitor bit 4 of SGSxR to determine when the byte has been sent. 8. Repeat Steps 6–8 until all data have been sent. To start communicating with a new slave, restart at Step 2. digi.com Rabbit 6000 User’s Manual...
7. If bits 1 or 7 of SGSxR are set, then an ACK or STOP condition occurred and the slave can go back to Step 1. If not, it should go back to Step 4 to receive the next byte. digi.com Rabbit 6000 User’s Manual...
Master mode operation (I C controller clock is an output). Disable the I C controller. Enable the I C controller. No effect. Reset the I C controller. This bit is automatically cleared after two clock cycles. digi.com Rabbit 6000 User’s Manual...
Page 396
No effect. Force SDA low. This is not used in normal operation. Serial Port G Control 3 Register (SGC3R) (Address = 0x0583) Bit(s) Value Description These bits are reserved and should always be written as zeros. digi.com Rabbit 6000 User’s Manual...
Page 397
Controller has not received or sent a non-ACK. (Read- Controller has received or sent a non-ACK. only) Controller is not in master-receive or slave-transmit mode. (Read- Controller is in master-receive or slave-transmit mode. only) digi.com Rabbit 6000 User’s Manual...
Page 398
These bits are reserved and will always return zeros. Serial Port G Clock Division 0 Register (SGCD0R) (Address = 0x0588) Bit(s) Value Description Bits 7–0 of the divider that generates the I C clock on SCL). digi.com Rabbit 6000 User’s Manual...
Page 399
Bit(s) Value Description These bits are reserved and should always be written with zeros. Bits 9–8 of the slave address when operating in the slave mode. These bits are ignored in the 7-bit addressing mode. digi.com Rabbit 6000 User’s Manual...
Page 400
Description These bits are reserved and should be written as zeros. Serial Port G Timing Control 3 Register (SGTC3R) (Address = 0x0597) Bit(s) Value Description These bits are reserved and should be written as zeros. digi.com Rabbit 6000 User’s Manual...
Page 401
Description These bits are reserved and should be written as zeros. Serial Port G Bus Monitor 3 Register (SGBM3R) (Address = 0x059B) Bit(s) Value Description These bits are reserved and should be written as zeros. digi.com Rabbit 6000 User’s Manual...
Page 402
Parallel Port PE0 is used for SDA. Parallel Port PE4 is used for SDA. The serial port interrupt is disabled. The serial port uses interrupt priority 1. The serial port uses interrupt priority 2. The serial port uses interrupt priority 3. digi.com Rabbit 6000 User’s Manual...
The Rabbit 6000 contains several power-saving features. Since the power consumed by the pro- cessor is proportional to the clock speed, the Rabbit 6000 provides 12 clock modes that can go as low as 2 kHz. To further reduce power consumption in those ultra-sleepy modes, various short- ened chip select strobes are available to reduce current draw by the attached memory devices.
36.1.1 Registers Register Name Mnemonic I/O Address Reset GCSR 0x0000 11000000 Global Control/Status Register GPSCR 0x000D 00000000 Global Power Save Control Register GCDR 0x000F 00000000 Global Clock Double Register digi.com Rabbit 6000 User’s Manual...
36.2.3 Clock Rates The processor and peripheral clocks in the Rabbit 6000 can be run in six different modes using the main oscillator or the main PLL: full speed; divided by 2, 4, 6, or 8; and the processor clock divided by 8 with the peripheral clock at full speed.
Page 406
1MB RAM is 12MHz. It is recommended that in that situation the Rabbit 6000 be performing a tight polling loop in another memory device, either SRAM or external parallel flash, waiting for a wake-up event.
The read data in the fig- ures below is sampled by the rising edge of CLKI that terminated the T2 cycle. Wait states are inserted between T1 and T2 so they do not affect the width of the strobe. digi.com Rabbit 6000 User’s Manual...
Page 409
32 kHz clock (30.5 µs); otherwise the timing is identical to the short chip select options based off the main oscillator. Read strobe figures are shown below. digi.com Rabbit 6000 User’s Manual...
(selectable) period of time ranging from 165 to 345 nS; this can be enabled for both reads and writes, or reads only. A sample read and write timing diagram is shown below. digi.com Rabbit 6000 User’s Manual...
Processor clock from the fast clock, divided by 6. Peripheral clock from the fast clock, divided by 6. Periodic interrupts are disabled. Periodic interrupts use Interrupt Priority 1. Periodic interrupts use Interrupt Priority 2. Periodic interrupts use Interrupt Priority 3. digi.com Rabbit 6000 User’s Manual...
Page 414
This bit combination is reserved and should not be used. This bit combination is reserved and should not be used. 32KHz clock divided by two (16.384KHz). 32KHz clock divided by four (8.192KHz). 32KHz clock divided by eight (4.096KHz). 32KHz clock divided by sixteen (2.048KHz). digi.com Rabbit 6000 User’s Manual...
4-14 mA /CS1 8 mA Other memory strobes (selectable) 4-14 mA DRIVE /IOWR, /IORD, /IOBEN (selectable) 4-14 mA All parallel port pins (selectable) 4-14 mA CLK, ACK_LED, LED[3:0] 16 mA All other pins 8 mA digi.com Rabbit 6000 User’s Manual...
Page 417
(rest of device powered) VBATIO 3.0 V 3.3 V 3.6 V (rest of device powered down) 1.08 V 1.2 V 3.6 V VBATIO Current (rest of device powered) to be VBATIO (rest of device powered down) determined digi.com Rabbit 6000 User’s Manual...
Clock to Memory Write Strobe Delay 3 ns 6 ns High Z to Data Valid Relative to Clock T 3 ns 8 ns DVHZ Data Valid to High Z Relative to Clock T 3 ns 8 ns DVHZ digi.com Rabbit 6000 User’s Manual...
Clock to I/O Buffer Enable Delay 3 ns 6 ns BUFEN High Z to Data Valid Relative to Clock T 3 ns 6 ns DHZV Data Valid to High Z Relative to Clock T 1 ns 2 ns DVHZ digi.com Rabbit 6000 User’s Manual...
Page 423
Figure 37.3 I/O Read Cycles—No Extra Wait States NOTE: /IOCSx can be programmed to be active low (default) or active high. digi.com Rabbit 6000 User’s Manual...
Page 424
Figure 37.4 I/O Write Cycles—No Extra Wait States NOTE: /IOCSx can be programmed to be active low (default) or active high. digi.com Rabbit 6000 User’s Manual...
Table 37-5. Exercise care that they are only enabled when being used. 37.5.1 Sleepy Mode Current Consumption The Rabbit 6000 supports designs with very low power consumption by using features such as the ultra- sleepy modes and self-timed chip selects. At the low frequencies possible in the ultra-sleepy modes (as low as 2 kHz), the external memory devices become significant factors in the current consumption unless one of the short or self-timed chip selects is used.
37.5.2 Battery-Backed Clock Current Consumption For the battery-backed features of the Rabbit 6000 to operate while the processor is powered down, both the VBAT and VBATIO pins need to be supplied properly. The VBAT pin powers the internal real-time clock and the battery-backed SRAM, while VBATIO powers the /RESET, /CS1, CLK32K, and RESOUT pins.
38.1.3 Mechanical Dimensions and Land Pattern Figure 38-3(a). BGA 292 Package Outline digi.com Rabbit 6000 User’s Manual...
Page 432
The design considerations in Table 38-2 are based on 5 mil design rules and assume a single conductor between solder lands. Table 38-2. Design Considerations (all dimensions in mm) Feature Recommendation Solder Land Diameter 0.356 (0.014) digi.com Rabbit 6000 User’s Manual...
Page 433
NSMD Defined Land Diameter 0.406 (0.016) Land to Mask Clearance (min.) 0.076 (0.003) Conductor Width (max.) 0.127 (0.005) Conductor Spacing (typ.) 0.127 (0.005) Via Capture Pad (max.) 0.406 (0.016) Via Drill Size (max.) 0.203 (0.008) digi.com Rabbit 6000 User’s Manual...
38.2 Rabbit Pin Descriptions Table 38-3 lists all the pins on the Rabbit 6000 along with the data direction of the pin, its function, and the pin number on the die. Table 38-3. Rabbit 6000 Pin Descriptions Pin Group Pin Name...
Page 435
Table 38-3. Rabbit 6000 Pin Descriptions Pin Group Pin Name Direction Function BGA 292 Ball BGA 233 Ball Output Address Bus CPU Buses Output Address Bus 0 Bar Bidirectional Data Bus VBAT Input 1.2V Real-Time Clock VBATIO Input 2.0V - 3.3V R4, T4 digi.com...
Page 436
Table 38-3. Rabbit 6000 Pin Descriptions Pin Group Pin Name Direction Function BGA 292 Ball BGA 233 Ball /WDT Output WDT Time-Out STATUS Output IFetch First Byte Status & SYSCFG Input System Config. Control SMODE1, Bootstrap Mode & Inputs SMODE0...
Page 437
Table 38-3. Rabbit 6000 Pin Descriptions Pin Group Pin Name Direction Function BGA 292 Ball BGA 233 Ball Input / Output Parallel Port A Input / Output Parallel Port B Input / Output Parallel Port C I/O Ports Input / Output...
Page 438
Table 38-3. Rabbit 6000 Pin Descriptions Pin Group Pin Name Direction Function BGA 292 Ball BGA 233 Ball Input / Output Parallel Port G I/O Ports (cont’d) Input / Output Parallel Port H Output Transmit Input Receive /SPEED_LED Ethernet /TX_LED...
Page 439
Table 38-3. Rabbit 6000 Pin Descriptions Pin Group Pin Name Direction Function BGA 292 Ball BGA 233 Ball /WIFI_ACT_LED Output Link Activity ANT1 Outputs Antenna Select ANT2 LNA1 Outputs LNA Control LNA0 PA2G_ON Output 2GHz PA Enable PA5G_ON Output 5GHz PA Enable...
Page 453
Global Clock Double Register ......30 SxCR ............196, 213 Global Clock Modulator 0 Register ....29 SxDHR ..........199, 215 Global Clock Modulator 1 Register ....29 SxDLR ..........198, 215 Global Control/Status Register ....28, 48 SxDR ............193, 210 Global Output Control Register ......31 digi.com Rabbit 6000 User’s Manual...
Page 454
Serial Port G Timing Control 1 Register ..400 I/O Bank x Extended Register ......358 Serial Port G Timing Control 2 Register ..400 I/O Handshake Control Register ....355 Serial Port G Timing Control 3 Register ..400 digi.com Rabbit 6000 User’s Manual...
Page 455
Parallel Port D Data Direction Register ..121 Network Port B MII Read MSB Register ..305 Parallel Port D Data Register .......119 Network Port B MII Register Address Register . Parallel Port D Drive Control Register ..121 digi.com Rabbit 6000 User’s Manual...
Page 456
PWM MSB x Register ........347 Real-Time Clock x Register ......49 Quadrature Decoder ..........335 Secondary Watchdog Timer Register .....51 Quad Decode Control Register .....339 Watchdog Timer Control Register ....50 Quad Decode Control/Status Register ..338 Watchdog Timer Test Register .......50 digi.com Rabbit 6000 User’s Manual...
Need help?
Do you have a question about the 6000 and is the answer not in the manual?
Questions and answers